@human-synthesis/norns-ui 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -129
  3. package/package.json +23 -15
  4. package/src/auto-import.js +96 -22
  5. package/src/components/Accordion.n +38 -0
  6. package/src/components/Audio.n +24 -0
  7. package/src/components/Autocomplete.n +59 -0
  8. package/src/components/Avatar.n +27 -0
  9. package/src/components/AvatarGroup.n +25 -0
  10. package/src/components/Badge.n +20 -0
  11. package/src/components/Banner.n +25 -0
  12. package/src/components/Breadcrumbs.n +22 -0
  13. package/src/components/Btn.n +29 -8
  14. package/src/components/ButtonGroup.n +14 -0
  15. package/src/components/Calendar.n +153 -0
  16. package/src/components/Card.n +34 -0
  17. package/src/components/Carousel.n +66 -0
  18. package/src/components/Chip.n +27 -0
  19. package/src/components/Collapsible.n +32 -0
  20. package/src/components/ColorPicker.n +62 -0
  21. package/src/components/ContextMenu.n +48 -0
  22. package/src/components/CopyButton.n +50 -0
  23. package/src/components/DataTable.n +61 -0
  24. package/src/components/DatePicker.n +68 -0
  25. package/src/components/DateRangePicker.n +59 -0
  26. package/src/components/Dialog.n +54 -0
  27. package/src/components/Drawer.n +49 -0
  28. package/src/components/Dropdown.n +41 -0
  29. package/src/components/Field.n +29 -20
  30. package/src/components/Form.n +22 -0
  31. package/src/components/GradientText.n +21 -0
  32. package/src/components/Header.n +23 -0
  33. package/src/components/HeroBanner.n +37 -0
  34. package/src/components/HierarchicalMenu.n +38 -0
  35. package/src/components/Icon.n +16 -0
  36. package/src/components/Image.n +31 -0
  37. package/src/components/MegaMenu.n +36 -0
  38. package/src/components/MultiSelect.n +56 -0
  39. package/src/components/NumberInput.n +49 -0
  40. package/src/components/OtpField.n +67 -0
  41. package/src/components/Pagination.n +73 -0
  42. package/src/components/Popover.n +32 -0
  43. package/src/components/PreviewCard.n +30 -0
  44. package/src/components/Progress.n +26 -0
  45. package/src/components/ProgressCircular.n +52 -0
  46. package/src/components/RichTooltip.n +33 -0
  47. package/src/components/RippleButton.n +56 -0
  48. package/src/components/ScrollArea.n +31 -0
  49. package/src/components/Separator.n +12 -0
  50. package/src/components/Sheet.n +55 -0
  51. package/src/components/ShinyButton.n +36 -0
  52. package/src/components/Skeleton.n +27 -0
  53. package/src/components/Stepper.n +35 -0
  54. package/src/components/Surface.n +10 -0
  55. package/src/components/Tabs.n +28 -0
  56. package/src/components/TagsInput.n +66 -0
  57. package/src/components/ThemeToggler.n +43 -0
  58. package/src/components/TimePicker.n +166 -0
  59. package/src/components/Timeline.n +27 -0
  60. package/src/components/ToastProvider.n +16 -0
  61. package/src/components/ToggleButton.n +29 -0
  62. package/src/components/ToggleButtonGroup.n +34 -0
  63. package/src/components/Toolbar.n +15 -0
  64. package/src/components/Tooltip.n +34 -0
  65. package/src/components/Tree.n +57 -0
  66. package/src/components/Uploader.n +88 -0
  67. package/src/components/Video.n +26 -0
  68. package/src/index.js +76 -0
  69. package/src/lib/toast.svelte.js +42 -0
  70. package/src/motion/AnimatedNumber.n +55 -0
  71. package/src/motion/GradientBackground.n +25 -0
  72. package/src/motion/LiquidButton.n +48 -0
  73. package/src/motion/Reveal.n +37 -0
  74. package/src/motion/Sparkles.n +53 -0
  75. package/src/motion/index.js +18 -0
  76. package/src/styles/atoms.css +1794 -71
  77. package/src/styles/tokens.css +171 -40
  78. package/src/types/Accordion.d.ts +17 -0
  79. package/src/types/AnimatedNumber.d.ts +15 -0
  80. package/src/types/Audio.d.ts +18 -0
  81. package/src/types/Autocomplete.d.ts +17 -0
  82. package/src/types/Avatar.d.ts +14 -0
  83. package/src/types/AvatarGroup.d.ts +15 -0
  84. package/src/types/Badge.d.ts +14 -0
  85. package/src/types/Banner.d.ts +15 -0
  86. package/src/types/Breadcrumbs.d.ts +15 -0
  87. package/src/types/Btn.d.ts +10 -0
  88. package/src/types/ButtonGroup.d.ts +10 -0
  89. package/src/types/Calendar.d.ts +20 -0
  90. package/src/types/Card.d.ts +19 -0
  91. package/src/types/Carousel.d.ts +23 -0
  92. package/src/types/Chip.d.ts +12 -0
  93. package/src/types/Collapsible.d.ts +12 -0
  94. package/src/types/ColorPicker.d.ts +15 -0
  95. package/src/types/ContextMenu.d.ts +19 -0
  96. package/src/types/CopyButton.d.ts +16 -0
  97. package/src/types/DataTable.d.ts +27 -0
  98. package/src/types/DatePicker.d.ts +18 -0
  99. package/src/types/DateRangePicker.d.ts +17 -0
  100. package/src/types/Dialog.d.ts +17 -0
  101. package/src/types/Drawer.d.ts +18 -0
  102. package/src/types/Dropdown.d.ts +23 -0
  103. package/src/types/Field.d.ts +14 -3
  104. package/src/types/Form.d.ts +17 -0
  105. package/src/types/GradientBackground.d.ts +14 -0
  106. package/src/types/GradientText.d.ts +19 -0
  107. package/src/types/Header.d.ts +12 -0
  108. package/src/types/HeroBanner.d.ts +17 -0
  109. package/src/types/HierarchicalMenu.d.ts +20 -0
  110. package/src/types/Icon.d.ts +21 -0
  111. package/src/types/Image.d.ts +15 -0
  112. package/src/types/LiquidButton.d.ts +15 -0
  113. package/src/types/MegaMenu.d.ts +29 -0
  114. package/src/types/MultiSelect.d.ts +13 -0
  115. package/src/types/NumberInput.d.ts +17 -0
  116. package/src/types/OtpField.d.ts +13 -0
  117. package/src/types/Pagination.d.ts +13 -0
  118. package/src/types/Popover.d.ts +18 -0
  119. package/src/types/PreviewCard.d.ts +16 -0
  120. package/src/types/Progress.d.ts +14 -0
  121. package/src/types/ProgressCircular.d.ts +14 -0
  122. package/src/types/Reveal.d.ts +20 -0
  123. package/src/types/RichTooltip.d.ts +16 -0
  124. package/src/types/RippleButton.d.ts +15 -0
  125. package/src/types/ScrollArea.d.ts +11 -0
  126. package/src/types/Separator.d.ts +9 -0
  127. package/src/types/Sheet.d.ts +20 -0
  128. package/src/types/ShinyButton.d.ts +15 -0
  129. package/src/types/Skeleton.d.ts +13 -0
  130. package/src/types/Sparkles.d.ts +13 -0
  131. package/src/types/Stepper.d.ts +19 -0
  132. package/src/types/Surface.d.ts +10 -0
  133. package/src/types/Tabs.d.ts +17 -0
  134. package/src/types/TagsInput.d.ts +17 -0
  135. package/src/types/ThemeToggler.d.ts +17 -0
  136. package/src/types/TimePicker.d.ts +20 -0
  137. package/src/types/Timeline.d.ts +17 -0
  138. package/src/types/ToastProvider.d.ts +15 -0
  139. package/src/types/ToggleButton.d.ts +15 -0
  140. package/src/types/ToggleButtonGroup.d.ts +20 -0
  141. package/src/types/Toolbar.d.ts +12 -0
  142. package/src/types/Tooltip.d.ts +15 -0
  143. package/src/types/Tree.d.ts +20 -0
  144. package/src/types/Uploader.d.ts +15 -0
  145. package/src/types/Video.d.ts +20 -0
@@ -0,0 +1,23 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type DropdownItem = {
4
+ label?: string;
5
+ separator?: boolean;
6
+ disabled?: boolean;
7
+ onSelect?: (event: Event) => void;
8
+ };
9
+
10
+ export type DropdownProps = {
11
+ open?: boolean;
12
+ side?: 'top' | 'right' | 'bottom' | 'left';
13
+ align?: 'start' | 'center' | 'end';
14
+ sideOffset?: number;
15
+ items?: DropdownItem[];
16
+ trigger?: Snippet;
17
+ children?: Snippet;
18
+ triggerClass?: string;
19
+ class?: string;
20
+ };
21
+
22
+ declare const Dropdown: Component<DropdownProps>;
23
+ export default Dropdown;
@@ -1,15 +1,26 @@
1
1
  import type { Component, Snippet } from 'svelte';
2
2
 
3
3
  export type FieldProps = {
4
- /** Label text rendered above the control. Used as id-derivation fallback if no `id` is given. */
4
+ /** Label text rendered above the control. Used as id-derivation fallback if no `id`/`name` is given. */
5
5
  label?: string;
6
6
  /** Helper text shown below the control when there's no error. */
7
7
  help?: string;
8
- /** Error message shown below the control. Switches the inner control to error styling via context. */
8
+ /**
9
+ * Explicit error message. Overrides any auto-resolved error from the
10
+ * parent `<Form form={...}>` context. Switches the inner control to
11
+ * error styling.
12
+ */
9
13
  error?: string;
14
+ /**
15
+ * Field name — used to look up an auto-error from the parent `<Form>`
16
+ * context (matching `form.errors[*].path[0].key`) and as the default
17
+ * id for the inner control. When set, an inner `<Input>` doesn't need
18
+ * an explicit `name=` either if it inherits from this Field.
19
+ */
20
+ name?: string;
10
21
  /** Adds a red asterisk after the label. Cosmetic; pair with `required` on the actual input. */
11
22
  required?: boolean;
12
- /** Explicit id for the control. Otherwise derived from `label`, otherwise undefined. */
23
+ /** Explicit id for the control. Otherwise: `name`, then slugified `label`, then undefined. */
13
24
  id?: string;
14
25
  /** Optional class merged into the field wrapper. */
15
26
  class?: string;
@@ -1,10 +1,27 @@
1
1
  import type { Component, Snippet } from 'svelte';
2
2
  import type { HTMLFormAttributes } from 'svelte/elements';
3
3
 
4
+ /**
5
+ * The shape returned by `fail(400, { errors, values })` from a SvelteKit
6
+ * action — what `+page.server.c`'s `page.actions` produces on validation
7
+ * failure (or a manually-constructed equivalent). `errors` is a valibot
8
+ * issue list; `values` is the raw form data echoed back for re-rendering.
9
+ */
10
+ export type FormActionResult = {
11
+ errors?: Array<{ path?: Array<{ key?: string }>; message: string }>;
12
+ values?: Record<string, string>;
13
+ } | null | undefined;
14
+
4
15
  export type FormProps = Omit<HTMLFormAttributes, 'class' | 'children'> & {
5
16
  method?: 'GET' | 'POST';
6
17
  action?: string;
7
18
  enctype?: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';
19
+ /**
20
+ * Pass the page's `form` prop here. Form derives a `name → message` errors
21
+ * map and exposes it via context so descendant `<Field name="...">` looks
22
+ * up its own error automatically.
23
+ */
24
+ form?: FormActionResult;
8
25
  class?: string;
9
26
  children?: Snippet;
10
27
  };
@@ -0,0 +1,14 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type GradientBackgroundProps = {
4
+ colors?: string[];
5
+ /** Loop duration in seconds. Default 18. */
6
+ duration?: number;
7
+ /** Gradient angle. Default 130. */
8
+ angle?: number;
9
+ children?: Snippet;
10
+ class?: string;
11
+ };
12
+
13
+ declare const GradientBackground: Component<GradientBackgroundProps>;
14
+ export default GradientBackground;
@@ -0,0 +1,19 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type GradientTextProps = {
4
+ /** Start color. Default `var(--color-primary-500)`. Accepts any CSS color. */
5
+ from?: string;
6
+ /** End color. Default `var(--color-info-500)`. */
7
+ to?: string;
8
+ /** Optional middle stop. */
9
+ via?: string;
10
+ /** Animate the gradient via background-position keyframes. Default true. */
11
+ animate?: boolean;
12
+ /** Gradient angle in degrees. Default 90. */
13
+ angle?: number;
14
+ children?: Snippet;
15
+ class?: string;
16
+ };
17
+
18
+ declare const GradientText: Component<GradientTextProps>;
19
+ export default GradientText;
@@ -0,0 +1,12 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type HeaderProps = {
4
+ sticky?: boolean;
5
+ brand?: Snippet;
6
+ nav?: Snippet;
7
+ actions?: Snippet;
8
+ class?: string;
9
+ };
10
+
11
+ declare const Header: Component<HeaderProps>;
12
+ export default Header;
@@ -0,0 +1,17 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type HeroBannerProps = {
4
+ title: string;
5
+ description?: string;
6
+ /** Background/decorative image src; rendered with reduced opacity behind the content. */
7
+ image?: string;
8
+ align?: 'left' | 'center';
9
+ /** Apply animated `GradientText` to the title. Default false. */
10
+ gradient?: boolean;
11
+ actions?: Snippet;
12
+ children?: Snippet;
13
+ class?: string;
14
+ };
15
+
16
+ declare const HeroBanner: Component<HeroBannerProps>;
17
+ export default HeroBanner;
@@ -0,0 +1,20 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type HierarchicalMenuItem = {
4
+ label: string;
5
+ href?: string;
6
+ icon?: string;
7
+ description?: string;
8
+ children?: HierarchicalMenuItem[];
9
+ };
10
+
11
+ export type HierarchicalMenuProps = {
12
+ items?: HierarchicalMenuItem[];
13
+ /** aria-label for the <nav> wrapper. */
14
+ label?: string;
15
+ onSelect?: (item: HierarchicalMenuItem) => void;
16
+ class?: string;
17
+ };
18
+
19
+ declare const HierarchicalMenu: Component<HierarchicalMenuProps>;
20
+ export default HierarchicalMenu;
@@ -0,0 +1,21 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type IconProps = {
4
+ /**
5
+ * Iconify icon name in `<set>:<name>` form, e.g. `"lucide:check"` or
6
+ * `"mdi:home"`. The `@iconify-json/lucide` package ships with the library;
7
+ * other sets can be installed alongside (`@iconify-json/heroicons`, etc.).
8
+ */
9
+ name: string;
10
+ /**
11
+ * Tailwind size utility for the icon, e.g. `"size-4"`, `"size-5"`. Default
12
+ * `"size-4"`. Pass any class string accepted by Tailwind.
13
+ */
14
+ size?: string;
15
+ flip?: 'horizontal' | 'vertical' | 'horizontal,vertical';
16
+ rotate?: 90 | 180 | 270 | string;
17
+ class?: string;
18
+ };
19
+
20
+ declare const Icon: Component<IconProps>;
21
+ export default Icon;
@@ -0,0 +1,15 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type ImageProps = {
4
+ src: string;
5
+ alt?: string;
6
+ loading?: 'lazy' | 'eager';
7
+ fit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';
8
+ rounded?: boolean | 'sm' | 'md' | 'lg' | 'full';
9
+ width?: number | string;
10
+ height?: number | string;
11
+ class?: string;
12
+ };
13
+
14
+ declare const Image: Component<ImageProps>;
15
+ export default Image;
@@ -0,0 +1,15 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type LiquidButtonProps = {
4
+ variant?: 'primary' | 'secondary' | 'ghost' | 'danger' | 'link';
5
+ size?: 'sm' | 'md' | 'lg';
6
+ type?: 'button' | 'submit' | 'reset';
7
+ disabled?: boolean;
8
+ onclick?: (event: MouseEvent) => void;
9
+ icon?: string;
10
+ children?: Snippet;
11
+ class?: string;
12
+ };
13
+
14
+ declare const LiquidButton: Component<LiquidButtonProps>;
15
+ export default LiquidButton;
@@ -0,0 +1,29 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type MegaMenuItem = {
4
+ label: string;
5
+ href?: string;
6
+ icon?: string;
7
+ description?: string;
8
+ };
9
+
10
+ export type MegaMenuColumn = {
11
+ title?: string;
12
+ items: MegaMenuItem[];
13
+ };
14
+
15
+ export type MegaMenuSection = {
16
+ label: string;
17
+ cols?: 2 | 3 | 4;
18
+ columns: MegaMenuColumn[];
19
+ };
20
+
21
+ export type MegaMenuProps = {
22
+ sections?: MegaMenuSection[];
23
+ /** aria-label for the <nav> wrapper. */
24
+ label?: string;
25
+ class?: string;
26
+ };
27
+
28
+ declare const MegaMenu: Component<MegaMenuProps>;
29
+ export default MegaMenu;
@@ -0,0 +1,13 @@
1
+ import type { Component } from 'svelte';
2
+ import type { ComboboxItem } from './Autocomplete';
3
+
4
+ export type MultiSelectProps = {
5
+ items?: ComboboxItem[];
6
+ value?: string[];
7
+ open?: boolean;
8
+ placeholder?: string;
9
+ disabled?: boolean;
10
+ };
11
+
12
+ declare const MultiSelect: Component<MultiSelectProps>;
13
+ export default MultiSelect;
@@ -0,0 +1,17 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type NumberInputProps = {
4
+ value?: number;
5
+ min?: number;
6
+ max?: number;
7
+ stepSize?: number;
8
+ disabled?: boolean;
9
+ readonly?: boolean;
10
+ name?: string;
11
+ id?: string;
12
+ error?: boolean;
13
+ class?: string;
14
+ };
15
+
16
+ declare const NumberInput: Component<NumberInputProps>;
17
+ export default NumberInput;
@@ -0,0 +1,13 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type OtpFieldProps = {
4
+ value?: string;
5
+ length?: number;
6
+ mask?: boolean;
7
+ label?: string;
8
+ oncomplete?: (value: string) => void;
9
+ class?: string;
10
+ };
11
+
12
+ declare const OtpField: Component<OtpFieldProps>;
13
+ export default OtpField;
@@ -0,0 +1,13 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type PaginationProps = {
4
+ page?: number;
5
+ total?: number;
6
+ pageSize?: number;
7
+ /** How many pages to show on each side of the current. Default 1. */
8
+ siblingCount?: number;
9
+ class?: string;
10
+ };
11
+
12
+ declare const Pagination: Component<PaginationProps>;
13
+ export default Pagination;
@@ -0,0 +1,18 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type PopoverSide = 'top' | 'right' | 'bottom' | 'left';
4
+ export type PopoverAlign = 'start' | 'center' | 'end';
5
+
6
+ export type PopoverProps = {
7
+ open?: boolean;
8
+ side?: PopoverSide;
9
+ align?: PopoverAlign;
10
+ sideOffset?: number;
11
+ trigger?: Snippet;
12
+ children?: Snippet;
13
+ triggerClass?: string;
14
+ class?: string;
15
+ };
16
+
17
+ declare const Popover: Component<PopoverProps>;
18
+ export default Popover;
@@ -0,0 +1,16 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type PreviewCardProps = {
4
+ href?: string;
5
+ side?: 'top' | 'right' | 'bottom' | 'left';
6
+ align?: 'start' | 'center' | 'end';
7
+ sideOffset?: number;
8
+ openDelay?: number;
9
+ trigger?: Snippet;
10
+ children?: Snippet;
11
+ triggerClass?: string;
12
+ class?: string;
13
+ };
14
+
15
+ declare const PreviewCard: Component<PreviewCardProps>;
16
+ export default PreviewCard;
@@ -0,0 +1,14 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type ProgressVariant = 'primary' | 'success' | 'warning' | 'danger';
4
+
5
+ export type ProgressProps = {
6
+ value?: number;
7
+ max?: number;
8
+ variant?: ProgressVariant;
9
+ indeterminate?: boolean;
10
+ class?: string;
11
+ };
12
+
13
+ declare const Progress: Component<ProgressProps>;
14
+ export default Progress;
@@ -0,0 +1,14 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type ProgressCircularSize = 'sm' | 'md' | 'lg';
4
+
5
+ export type ProgressCircularProps = {
6
+ value?: number;
7
+ max?: number;
8
+ size?: ProgressCircularSize;
9
+ indeterminate?: boolean;
10
+ class?: string;
11
+ };
12
+
13
+ declare const ProgressCircular: Component<ProgressCircularProps>;
14
+ export default ProgressCircular;
@@ -0,0 +1,20 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type RevealProps = {
4
+ direction?: 'up' | 'down' | 'left' | 'right';
5
+ /** Travel distance in pixels. Default 12. */
6
+ distance?: number;
7
+ /** Animation duration in seconds. Default 0.5. */
8
+ duration?: number;
9
+ /** Delay before animating, seconds. Default 0. */
10
+ delay?: number;
11
+ /** Re-trigger on every entry (false) or just the first time (true). Default true. */
12
+ once?: boolean;
13
+ /** IntersectionObserver threshold (0–1). Default 0.15. */
14
+ threshold?: number;
15
+ children?: Snippet;
16
+ class?: string;
17
+ };
18
+
19
+ declare const Reveal: Component<RevealProps>;
20
+ export default Reveal;
@@ -0,0 +1,16 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type RichTooltipProps = {
4
+ side?: 'top' | 'right' | 'bottom' | 'left';
5
+ align?: 'start' | 'center' | 'end';
6
+ sideOffset?: number;
7
+ openDelay?: number;
8
+ closeDelay?: number;
9
+ trigger?: Snippet;
10
+ children?: Snippet;
11
+ triggerClass?: string;
12
+ class?: string;
13
+ };
14
+
15
+ declare const RichTooltip: Component<RichTooltipProps>;
16
+ export default RichTooltip;
@@ -0,0 +1,15 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type RippleButtonProps = {
4
+ variant?: 'primary' | 'secondary' | 'ghost' | 'danger' | 'link';
5
+ size?: 'sm' | 'md' | 'lg';
6
+ type?: 'button' | 'submit' | 'reset';
7
+ disabled?: boolean;
8
+ onclick?: (event: MouseEvent) => void;
9
+ icon?: string;
10
+ children?: Snippet;
11
+ class?: string;
12
+ };
13
+
14
+ declare const RippleButton: Component<RippleButtonProps>;
15
+ export default RippleButton;
@@ -0,0 +1,11 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type ScrollAreaProps = {
4
+ type?: 'hover' | 'auto' | 'scroll' | 'always';
5
+ horizontal?: boolean;
6
+ children?: Snippet;
7
+ class?: string;
8
+ };
9
+
10
+ declare const ScrollArea: Component<ScrollAreaProps>;
11
+ export default ScrollArea;
@@ -0,0 +1,9 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type SeparatorProps = {
4
+ orientation?: 'horizontal' | 'vertical';
5
+ class?: string;
6
+ };
7
+
8
+ declare const Separator: Component<SeparatorProps>;
9
+ export default Separator;
@@ -0,0 +1,20 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type SheetSide = 'top' | 'right' | 'bottom' | 'left';
4
+
5
+ export type SheetProps = {
6
+ open?: boolean;
7
+ side?: SheetSide;
8
+ title?: string;
9
+ description?: string;
10
+ hideClose?: boolean;
11
+ trigger?: Snippet;
12
+ actions?: Snippet;
13
+ children?: Snippet;
14
+ triggerClass?: string;
15
+ overlayClass?: string;
16
+ class?: string;
17
+ };
18
+
19
+ declare const Sheet: Component<SheetProps>;
20
+ export default Sheet;
@@ -0,0 +1,15 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type ShinyButtonProps = {
4
+ variant?: 'primary' | 'secondary' | 'ghost' | 'danger' | 'link';
5
+ size?: 'sm' | 'md' | 'lg';
6
+ type?: 'button' | 'submit' | 'reset';
7
+ disabled?: boolean;
8
+ onclick?: (event: MouseEvent) => void;
9
+ icon?: string;
10
+ children?: Snippet;
11
+ class?: string;
12
+ };
13
+
14
+ declare const ShinyButton: Component<ShinyButtonProps>;
15
+ export default ShinyButton;
@@ -0,0 +1,13 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type SkeletonVariant = 'rect' | 'text' | 'circle';
4
+
5
+ export type SkeletonProps = {
6
+ variant?: SkeletonVariant;
7
+ width?: number | string;
8
+ height?: number | string;
9
+ class?: string;
10
+ };
11
+
12
+ declare const Skeleton: Component<SkeletonProps>;
13
+ export default Skeleton;
@@ -0,0 +1,13 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type SparklesProps = {
4
+ density?: number;
5
+ colors?: string[];
6
+ minSize?: number;
7
+ maxSize?: number;
8
+ children?: Snippet;
9
+ class?: string;
10
+ };
11
+
12
+ declare const Sparkles: Component<SparklesProps>;
13
+ export default Sparkles;
@@ -0,0 +1,19 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type StepperStep = {
4
+ id?: string;
5
+ label: string;
6
+ complete?: boolean;
7
+ current?: boolean;
8
+ };
9
+
10
+ export type StepperProps = {
11
+ steps?: StepperStep[];
12
+ /** Index of the active step. Steps before are auto-marked complete unless overridden. */
13
+ current?: number;
14
+ orientation?: 'horizontal' | 'vertical';
15
+ class?: string;
16
+ };
17
+
18
+ declare const Stepper: Component<StepperProps>;
19
+ export default Stepper;
@@ -0,0 +1,10 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type SurfaceProps = {
4
+ tone?: 'glass';
5
+ children?: Snippet;
6
+ class?: string;
7
+ };
8
+
9
+ declare const Surface: Component<SurfaceProps>;
10
+ export default Surface;
@@ -0,0 +1,17 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+
3
+ export type TabsItem = {
4
+ value: string;
5
+ label: string;
6
+ panel?: Snippet;
7
+ disabled?: boolean;
8
+ };
9
+
10
+ export type TabsProps = {
11
+ value?: string;
12
+ items?: TabsItem[];
13
+ class?: string;
14
+ };
15
+
16
+ declare const Tabs: Component<TabsProps>;
17
+ export default Tabs;
@@ -0,0 +1,17 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type TagsInputProps = {
4
+ value?: string[];
5
+ max?: number;
6
+ placeholder?: string;
7
+ commitOnBlur?: boolean;
8
+ separators?: string[];
9
+ disabled?: boolean;
10
+ name?: string;
11
+ id?: string;
12
+ error?: boolean;
13
+ class?: string;
14
+ };
15
+
16
+ declare const TagsInput: Component<TagsInputProps>;
17
+ export default TagsInput;
@@ -0,0 +1,17 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type ThemeTogglerProps = {
4
+ variant?: 'primary' | 'secondary' | 'ghost' | 'danger' | 'link';
5
+ size?: 'sm' | 'md' | 'lg';
6
+ showLabel?: boolean;
7
+ labelLight?: string;
8
+ labelDark?: string;
9
+ lightIcon?: string;
10
+ darkIcon?: string;
11
+ /** localStorage key. Default `'norns-theme'`. */
12
+ storageKey?: string;
13
+ class?: string;
14
+ };
15
+
16
+ declare const ThemeToggler: Component<ThemeTogglerProps>;
17
+ export default ThemeToggler;
@@ -0,0 +1,20 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type TimePickerProps = {
4
+ /** Time string `HH:MM` (24h regardless of display `hourCycle`). Bindable. */
5
+ value?: string;
6
+ open?: boolean;
7
+ /** Minute increment in the picker (5, 10, 15, 30). Default 5. */
8
+ minuteStep?: number;
9
+ hourCycle?: 12 | 24;
10
+ placeholder?: string;
11
+ disabled?: boolean;
12
+ label?: string;
13
+ name?: string;
14
+ id?: string;
15
+ error?: boolean;
16
+ class?: string;
17
+ };
18
+
19
+ declare const TimePicker: Component<TimePickerProps>;
20
+ export default TimePicker;
@@ -0,0 +1,17 @@
1
+ import type { Component } from 'svelte';
2
+
3
+ export type TimelineItem = {
4
+ time?: string;
5
+ title?: string;
6
+ description?: string;
7
+ icon?: string;
8
+ variant?: 'primary' | 'success' | 'warning' | 'danger' | 'info';
9
+ };
10
+
11
+ export type TimelineProps = {
12
+ items?: TimelineItem[];
13
+ class?: string;
14
+ };
15
+
16
+ declare const Timeline: Component<TimelineProps>;
17
+ export default Timeline;