From c508d6ae31c85df08be6047e62d843f9d774f3ff Mon Sep 17 00:00:00 2001 From: unkn0wn Date: Tue, 9 Jun 2026 14:30:40 +0200 Subject: [PATCH] feat: add NumericStepper component and integrate into index page --- src/components/index.ts | 3 +- .../numericStepper/_numericStepper.scss | 14 +++ .../numericStepper/numericStepper.astro | 117 ++++++++++++++++++ src/pages/index.astro | 15 +++ 4 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 src/components/numericStepper/_numericStepper.scss create mode 100644 src/components/numericStepper/numericStepper.astro diff --git a/src/components/index.ts b/src/components/index.ts index bdd4d0d..f40ded0 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -11,4 +11,5 @@ export { default as Link } from './Link/link.astro'; export { default as ListItem } from './ListItem/listItem.astro'; export { default as ListItemTitle } from './ListItem/listItemTitle.astro'; export { default as ListItemSubtitle } from './ListItem/listItemSubtitle.astro'; -export { default as LoadingBar } from './LoadingBar/loadingBar.astro'; \ No newline at end of file +export { default as LoadingBar } from './LoadingBar/loadingBar.astro'; +export { default as NumericStepper } from './numericStepper/numericStepper.astro'; \ No newline at end of file diff --git a/src/components/numericStepper/_numericStepper.scss b/src/components/numericStepper/_numericStepper.scss new file mode 100644 index 0000000..315db00 --- /dev/null +++ b/src/components/numericStepper/_numericStepper.scss @@ -0,0 +1,14 @@ +@use '../../styles/tokens/typography' as *; + +.numeric-stepper { + display: flex; + flex-direction: column; + align-items: center; + gap: var(--nds-spacing-xs); + width: fit-content; + & p { + @include text-xl; + margin: 0; + + } +} \ No newline at end of file diff --git a/src/components/numericStepper/numericStepper.astro b/src/components/numericStepper/numericStepper.astro new file mode 100644 index 0000000..e11bd77 --- /dev/null +++ b/src/components/numericStepper/numericStepper.astro @@ -0,0 +1,117 @@ +--- +import Button from '../Button/button.astro'; +import { Arrow2Icon } from '../Icons'; + +export interface Props { + id: string; + min?: number; + max?: number; + value?: number; + step?: number; +} + +const { id, min, max, value = 0, step = 1 } = Astro.props; +--- + +
+ + + + +

{value}

+ + + + +
+ + + + \ No newline at end of file diff --git a/src/pages/index.astro b/src/pages/index.astro index f74958e..1790dfb 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -11,6 +11,7 @@ import ListItem from '../components/ListItem/listItem.astro'; import ListItemTitle from '../components/ListItem/listItemTitle.astro'; import ListItemSubtitle from '../components/ListItem/listItemSubtitle.astro'; import LoadingBar from '../components/LoadingBar/loadingBar.astro'; +import NumericStepper from '../components/numericStepper/numericStepper.astro'; import { Arrow2Icon, BinIcon, BurgerIcon, CalendarIcon, CheckIcon, CloseIcon, CodeIcon, CubeIcon, DownloadIcon, FilterIcon, HelpIcon, HomeIcon, @@ -25,6 +26,20 @@ const initialChecked = true;

Nova Design System

+
+

Numeric Stepper

+
+ +
+
+
+

Loading Bar

+
+ + +
+ +

Loading Bar