@streamscloud/kit 0.0.1-1771078892208 → 0.1.0

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 (61) hide show
  1. package/dist/ui/button/cmp.button.svelte +48 -0
  2. package/dist/ui/button/cmp.button.svelte.d.ts +48 -0
  3. package/dist/ui/button/cmp.options-button.svelte +12 -0
  4. package/dist/ui/button/cmp.options-button.svelte.d.ts +16 -0
  5. package/dist/ui/card-actions/cmp.card-action.svelte +10 -0
  6. package/dist/ui/card-actions/cmp.card-action.svelte.d.ts +9 -0
  7. package/dist/ui/card-actions/cmp.card-actions.svelte +17 -0
  8. package/dist/ui/card-actions/cmp.card-actions.svelte.d.ts +17 -0
  9. package/dist/ui/dialog/cmp.dialog-button.svelte +5 -0
  10. package/dist/ui/dialog/cmp.dialog-button.svelte.d.ts +2 -0
  11. package/dist/ui/dialog/cmp.dialog-cancel-button.svelte +5 -0
  12. package/dist/ui/dialog/cmp.dialog-cancel-button.svelte.d.ts +1 -0
  13. package/dist/ui/dialog/cmp.dialog-close-button.svelte +10 -0
  14. package/dist/ui/dialog/cmp.dialog-close-button.svelte.d.ts +9 -0
  15. package/dist/ui/dialog/cmp.dialog.svelte +23 -0
  16. package/dist/ui/dialog/cmp.dialog.svelte.d.ts +29 -0
  17. package/dist/ui/dropdown/cmp.dropdown.svelte +10 -0
  18. package/dist/ui/dropdown/cmp.dropdown.svelte.d.ts +17 -0
  19. package/dist/ui/dynamic-component/cmp.dynamic-component.svelte +10 -0
  20. package/dist/ui/dynamic-component/cmp.dynamic-component.svelte.d.ts +8 -0
  21. package/dist/ui/icon/cmp.icon.svelte +20 -0
  22. package/dist/ui/icon/cmp.icon.svelte.d.ts +20 -0
  23. package/dist/ui/image/cmp.image-round.svelte +10 -0
  24. package/dist/ui/image/cmp.image-round.svelte.d.ts +10 -0
  25. package/dist/ui/image/cmp.image-rounded.svelte +20 -0
  26. package/dist/ui/image/cmp.image-rounded.svelte.d.ts +20 -0
  27. package/dist/ui/image/cmp.image-stub.svelte +10 -0
  28. package/dist/ui/image/cmp.image-stub.svelte.d.ts +8 -0
  29. package/dist/ui/image/cmp.image.svelte +13 -0
  30. package/dist/ui/image/cmp.image.svelte.d.ts +15 -0
  31. package/dist/ui/infinite-scrolling/cmp.infinite-scrolling.svelte +10 -0
  32. package/dist/ui/infinite-scrolling/cmp.infinite-scrolling.svelte.d.ts +12 -3
  33. package/dist/ui/line-clamp/cmp.line-clamp-auto.svelte +10 -0
  34. package/dist/ui/line-clamp/cmp.line-clamp-auto.svelte.d.ts +9 -0
  35. package/dist/ui/line-clamp/cmp.line-clamp.svelte +11 -0
  36. package/dist/ui/line-clamp/cmp.line-clamp.svelte.d.ts +11 -0
  37. package/dist/ui/loading/cmp.loading.svelte +11 -0
  38. package/dist/ui/loading/cmp.loading.svelte.d.ts +13 -0
  39. package/dist/ui/player/buttons/cmp.mobile-player-buttons.svelte +10 -0
  40. package/dist/ui/player/buttons/cmp.mobile-player-buttons.svelte.d.ts +8 -0
  41. package/dist/ui/player/buttons/cmp.player-buttons.svelte +11 -0
  42. package/dist/ui/player/buttons/cmp.player-buttons.svelte.d.ts +12 -0
  43. package/dist/ui/player/buttons/cmp.responsive-player-buttons.svelte +11 -0
  44. package/dist/ui/player/buttons/cmp.responsive-player-buttons.svelte.d.ts +9 -0
  45. package/dist/ui/player/carousel/cmp.carousel.svelte +13 -0
  46. package/dist/ui/player/carousel/cmp.carousel.svelte.d.ts +18 -0
  47. package/dist/ui/player/feed-slider/cmp.feed-slider.svelte +5 -0
  48. package/dist/ui/player/feed-slider/cmp.feed-slider.svelte.d.ts +3 -0
  49. package/dist/ui/progress/cmp.progress.svelte +8 -12
  50. package/dist/ui/progress/cmp.progress.svelte.d.ts +1 -5
  51. package/dist/ui/proportional-container/cmp.proportional-container.svelte +12 -0
  52. package/dist/ui/proportional-container/cmp.proportional-container.svelte.d.ts +11 -0
  53. package/dist/ui/seek-bar/cmp.seek-bar.svelte +13 -0
  54. package/dist/ui/seek-bar/cmp.seek-bar.svelte.d.ts +14 -1
  55. package/dist/ui/swipe-indicator/cmp.swipe-indicator.svelte +12 -0
  56. package/dist/ui/swipe-indicator/cmp.swipe-indicator.svelte.d.ts +11 -0
  57. package/dist/ui/time-ago/cmp.time-ago.svelte +12 -0
  58. package/dist/ui/time-ago/cmp.time-ago.svelte.d.ts +10 -0
  59. package/dist/ui/video/cmp.video.svelte +13 -0
  60. package/dist/ui/video/cmp.video.svelte.d.ts +23 -0
  61. package/package.json +1 -1
@@ -8,3 +8,51 @@ let { type = 'button', disabled = false, autofocus = false, variant = null, size
8
8
  {@render children()}
9
9
  </ButtonBase>
10
10
  </ButtonTheme>
11
+
12
+ <!--
13
+ @component
14
+ A themed button component combining `ButtonBase` (structure) and `ButtonTheme` (colors/sizes).
15
+
16
+ ### Base CSS Custom Properties
17
+ | Property | Description | Default |
18
+ |---|---|---|
19
+ | `--sc-kit--button--font--size` | Root font size | `1rem` |
20
+ | `--sc-kit--button--font--color` | Text color | `black` |
21
+ | `--sc-kit--button--font--color--active` | Text color when pressed | inherits `--font--color` |
22
+ | `--sc-kit--button--font--color--disabled` | Text color when disabled | inherits `--font--color` |
23
+ | `--sc-kit--button--font-weight` | Font weight | `400` |
24
+ | `--sc-kit--button--text--font-size` | Label text size | `0.75em` |
25
+ | `--sc-kit--button--icon--font-size` | Icon size inside the button | `1em` |
26
+ | `--sc-kit--button--justify-content` | Horizontal alignment | `center` |
27
+ | `--sc-kit--button--background` | Background color | `white` |
28
+ | `--sc-kit--button--background--hover` | Background on hover | inherits `--background` |
29
+ | `--sc-kit--button--background--active` | Background when pressed | inherits `--background` |
30
+ | `--sc-kit--button--background--disabled` | Background when disabled | inherits `--background` |
31
+ | `--sc-kit--button--border` | Border shorthand | `none` |
32
+ | `--sc-kit--button--border--disabled` | Border when disabled | inherits `--border` |
33
+ | `--sc-kit--button--border-radius` | Corner rounding | `0.25em` |
34
+ | `--sc-kit--button--padding--vertical` | Vertical padding | `0` |
35
+ | `--sc-kit--button--padding--horizontal` | Horizontal padding | `1em` |
36
+ | `--sc-kit--button--min-width` | Minimum width | `0` |
37
+ | `--sc-kit--button--width` | Explicit width | `auto` |
38
+ | `--sc-kit--button--height` | Button height | `2em` |
39
+ | `--sc-kit--button--box-shadow` | Box shadow | `none` |
40
+
41
+ ### Variant CSS Custom Properties
42
+ Each variant overrides the base properties above using the pattern:
43
+ `--sc-kit--button--{variant}--{property}`
44
+
45
+ **Available variants:** `primary`, `standard`, `alert`, `warning`, `white`, `gray`, `green`, `black`, `text-only`, `transparent-success`, `transparent-primary`, `transparent-gray`, `transparent-white`, `transparent-warning`, `transparent-destructive`
46
+
47
+ **Overridable property suffixes per variant:**
48
+ `font--color`, `font--color--active`, `font--color--disabled`, `background`, `background--hover`, `background--active`, `background--disabled`, `border`, `border--disabled`, `box-shadow`
49
+
50
+ **Example:** `--sc-kit--button--primary--background: hotpink;`
51
+
52
+ ### Size Presets
53
+ | Size | Height | Text size | Font weight |
54
+ |---|---|---|---|
55
+ | `standard` | `2em` | `0.75em` | `400` |
56
+ | `large` | `3em` | `0.9375em` | `500` |
57
+ | `small` | `1.5em` | `0.625em` | `400` |
58
+ -->
@@ -4,13 +4,61 @@ type Props = {
4
4
  type?: 'button' | 'submit' | 'reset';
5
5
  disabled?: boolean;
6
6
  autofocus?: boolean;
7
+ /** Color variant applied via `ButtonTheme` */
7
8
  variant?: ButtonVariant | null;
9
+ /** Size preset: `'standard'` (32px), `'large'` (48px), or `'small'` (24px) */
8
10
  size?: ButtonSize | null;
9
11
  on?: {
10
12
  click?: (e: MouseEvent) => void;
11
13
  };
12
14
  children: Snippet;
13
15
  };
16
+ /**
17
+ * A themed button component combining `ButtonBase` (structure) and `ButtonTheme` (colors/sizes).
18
+ *
19
+ * ### Base CSS Custom Properties
20
+ * | Property | Description | Default |
21
+ * |---|---|---|
22
+ * | `--sc-kit--button--font--size` | Root font size | `1rem` |
23
+ * | `--sc-kit--button--font--color` | Text color | `black` |
24
+ * | `--sc-kit--button--font--color--active` | Text color when pressed | inherits `--font--color` |
25
+ * | `--sc-kit--button--font--color--disabled` | Text color when disabled | inherits `--font--color` |
26
+ * | `--sc-kit--button--font-weight` | Font weight | `400` |
27
+ * | `--sc-kit--button--text--font-size` | Label text size | `0.75em` |
28
+ * | `--sc-kit--button--icon--font-size` | Icon size inside the button | `1em` |
29
+ * | `--sc-kit--button--justify-content` | Horizontal alignment | `center` |
30
+ * | `--sc-kit--button--background` | Background color | `white` |
31
+ * | `--sc-kit--button--background--hover` | Background on hover | inherits `--background` |
32
+ * | `--sc-kit--button--background--active` | Background when pressed | inherits `--background` |
33
+ * | `--sc-kit--button--background--disabled` | Background when disabled | inherits `--background` |
34
+ * | `--sc-kit--button--border` | Border shorthand | `none` |
35
+ * | `--sc-kit--button--border--disabled` | Border when disabled | inherits `--border` |
36
+ * | `--sc-kit--button--border-radius` | Corner rounding | `0.25em` |
37
+ * | `--sc-kit--button--padding--vertical` | Vertical padding | `0` |
38
+ * | `--sc-kit--button--padding--horizontal` | Horizontal padding | `1em` |
39
+ * | `--sc-kit--button--min-width` | Minimum width | `0` |
40
+ * | `--sc-kit--button--width` | Explicit width | `auto` |
41
+ * | `--sc-kit--button--height` | Button height | `2em` |
42
+ * | `--sc-kit--button--box-shadow` | Box shadow | `none` |
43
+ *
44
+ * ### Variant CSS Custom Properties
45
+ * Each variant overrides the base properties above using the pattern:
46
+ * `--sc-kit--button--{variant}--{property}`
47
+ *
48
+ * **Available variants:** `primary`, `standard`, `alert`, `warning`, `white`, `gray`, `green`, `black`, `text-only`, `transparent-success`, `transparent-primary`, `transparent-gray`, `transparent-white`, `transparent-warning`, `transparent-destructive`
49
+ *
50
+ * **Overridable property suffixes per variant:**
51
+ * `font--color`, `font--color--active`, `font--color--disabled`, `background`, `background--hover`, `background--active`, `background--disabled`, `border`, `border--disabled`, `box-shadow`
52
+ *
53
+ * **Example:** `--sc-kit--button--primary--background: hotpink;`
54
+ *
55
+ * ### Size Presets
56
+ * | Size | Height | Text size | Font weight |
57
+ * |---|---|---|---|
58
+ * | `standard` | `2em` | `0.75em` | `400` |
59
+ * | `large` | `3em` | `0.9375em` | `500` |
60
+ * | `small` | `1.5em` | `0.625em` | `400` |
61
+ */
14
62
  declare const Cmp: import("svelte").Component<Props, {}, "">;
15
63
  type Cmp = ReturnType<typeof Cmp>;
16
64
  export default Cmp;
@@ -111,6 +111,18 @@ const toggleRight = (e) => {
111
111
  </div>
112
112
  </ButtonTheme>
113
113
 
114
+ <!--
115
+ @component
116
+ A split button with optional left and/or right dropdown menus, combining a main action button with chevron-triggered option panels.
117
+
118
+ ### CSS Custom Properties
119
+ Inherits all `--sc-kit--button--*` base and variant properties from `Button`.
120
+
121
+ | Property | Description | Default |
122
+ |---|---|---|
123
+ | `--sc-kit--options-button--dropdown--min-width` | Minimum width of the dropdown panel | `10em` |
124
+ -->
125
+
114
126
  <style>.options-button {
115
127
  --_options-button--font--color: var(--sc-kit--button--font--color, black);
116
128
  --_options-button--font-weight: var(--sc-kit--button--font-weight, 400);
@@ -5,17 +5,33 @@ type Props = {
5
5
  type?: 'button' | 'submit' | 'reset';
6
6
  disabled?: boolean;
7
7
  autofocus?: boolean;
8
+ /** Color variant applied via `ButtonTheme` */
8
9
  variant?: ButtonVariant | null;
10
+ /** Size preset: `'standard'`, `'large'`, or `'small'` */
9
11
  size?: ButtonSize | null;
12
+ /** Popper.js placement of the options dropdown @default 'bottom-start' */
10
13
  optionsPosition?: Placement;
14
+ /** Distance in px between the trigger and the dropdown @default 4 */
11
15
  optionsOffset?: number;
12
16
  on?: {
13
17
  click?: (e: MouseEvent) => void;
14
18
  };
15
19
  children: Snippet;
20
+ /** Left-side dropdown content (shown via chevron toggle) */
16
21
  options?: Snippet;
22
+ /** Right-side dropdown content (shown via chevron toggle) */
17
23
  rightOptions?: Snippet;
18
24
  };
25
+ /**
26
+ * A split button with optional left and/or right dropdown menus, combining a main action button with chevron-triggered option panels.
27
+ *
28
+ * ### CSS Custom Properties
29
+ * Inherits all `--sc-kit--button--*` base and variant properties from `Button`.
30
+ *
31
+ * | Property | Description | Default |
32
+ * |---|---|---|
33
+ * | `--sc-kit--options-button--dropdown--min-width` | Minimum width of the dropdown panel | `10em` |
34
+ */
19
35
  declare const Cmp: import("svelte").Component<Props, {}, "">;
20
36
  type Cmp = ReturnType<typeof Cmp>;
21
37
  export default Cmp;
@@ -17,6 +17,16 @@ let { action, on } = $props();
17
17
  <Icon src={action.icon} color={action.iconColor ?? 'text'} />
18
18
  </button>
19
19
 
20
+ <!--
21
+ @component
22
+ A single icon button representing a card action, with a scale-on-hover effect.
23
+
24
+ ### CSS Custom Properties
25
+ | Property | Description | Default |
26
+ |---|---|---|
27
+ | `--sc-kit--card-action--padding` | Button padding | `0.3125em` |
28
+ -->
29
+
20
30
  <style>.card-action {
21
31
  --_card-action--padding: var(--sc-kit--card-action--padding, 0.3125em);
22
32
  padding: var(--_card-action--padding);
@@ -1,10 +1,19 @@
1
1
  import type { CardActionModel } from './types';
2
2
  type Props = {
3
+ /** Action definition containing icon, callback, title, and color */
3
4
  action: CardActionModel;
4
5
  on?: {
5
6
  click?: () => void;
6
7
  };
7
8
  };
9
+ /**
10
+ * A single icon button representing a card action, with a scale-on-hover effect.
11
+ *
12
+ * ### CSS Custom Properties
13
+ * | Property | Description | Default |
14
+ * |---|---|---|
15
+ * | `--sc-kit--card-action--padding` | Button padding | `0.3125em` |
16
+ */
8
17
  declare const Cmp: import("svelte").Component<Props, {}, "">;
9
18
  type Cmp = ReturnType<typeof Cmp>;
10
19
  export default Cmp;
@@ -26,6 +26,23 @@ let closeDropdown = () => {
26
26
  </div>
27
27
  {/if}
28
28
 
29
+ <!--
30
+ @component
31
+ An absolutely-positioned actions menu that reveals on hover, showing a "more" trigger icon with a dropdown of `CardAction` items. Wrap the parent container with the `.card-actions-container` class.
32
+
33
+ ### CSS Custom Properties
34
+ | Property | Description | Default |
35
+ |---|---|---|
36
+ | `--sc-kit--card-actions--background` | Trigger background | `neutral-50` / `neutral-900` |
37
+ | `--sc-kit--card-actions--border-radius` | Corner rounding | `0.1875em` |
38
+ | `--sc-kit--card-actions--dropdown-background` | Dropdown panel background | inherits `--background` |
39
+ | `--sc-kit--card-actions--font-size` | Base font size | `1rem` |
40
+ | `--sc-kit--card-actions--left-offset` | Left position offset | `0.3125em` |
41
+ | `--sc-kit--card-actions--opacity` | Resting opacity (0 = hidden until hover) | `0` |
42
+ | `--sc-kit--card-actions--right-offset` | Right position offset | `auto` |
43
+ | `--sc-kit--card-actions--top-offset` | Top position offset | `0.3125em` |
44
+ -->
45
+
29
46
  <style>.card-actions {
30
47
  --_card-actions--background: var(--sc-kit--card-actions--background, light-dark(#f9fafb, #111827));
31
48
  --_card-actions--border-radius: var(--sc-kit--card-actions--border-radius, 0.1875em);
@@ -1,9 +1,26 @@
1
1
  import { type DropdownPosition } from '../dropdown';
2
2
  import type { CardActionModel } from './types';
3
3
  type Props = {
4
+ /** Array of action definitions to display in the dropdown */
4
5
  actions: CardActionModel[];
6
+ /** Popper.js placement of the dropdown panel @default 'bottom-start' */
5
7
  dropdownPosition?: DropdownPosition;
6
8
  };
9
+ /**
10
+ * An absolutely-positioned actions menu that reveals on hover, showing a "more" trigger icon with a dropdown of `CardAction` items. Wrap the parent container with the `.card-actions-container` class.
11
+ *
12
+ * ### CSS Custom Properties
13
+ * | Property | Description | Default |
14
+ * |---|---|---|
15
+ * | `--sc-kit--card-actions--background` | Trigger background | `neutral-50` / `neutral-900` |
16
+ * | `--sc-kit--card-actions--border-radius` | Corner rounding | `0.1875em` |
17
+ * | `--sc-kit--card-actions--dropdown-background` | Dropdown panel background | inherits `--background` |
18
+ * | `--sc-kit--card-actions--font-size` | Base font size | `1rem` |
19
+ * | `--sc-kit--card-actions--left-offset` | Left position offset | `0.3125em` |
20
+ * | `--sc-kit--card-actions--opacity` | Resting opacity (0 = hidden until hover) | `0` |
21
+ * | `--sc-kit--card-actions--right-offset` | Right position offset | `auto` |
22
+ * | `--sc-kit--card-actions--top-offset` | Top position offset | `0.3125em` |
23
+ */
7
24
  declare const Cmp: import("svelte").Component<Props, {}, "">;
8
25
  type Cmp = ReturnType<typeof Cmp>;
9
26
  export default Cmp;
@@ -8,6 +8,11 @@ let { type = 'button', disabled = false, autofocus = false, variant = 'primary',
8
8
  </Button>
9
9
  </div>
10
10
 
11
+ <!--
12
+ @component
13
+ A dialog-specific action button with a minimum width preset. Defaults to the `primary` variant.
14
+ -->
15
+
11
16
  <style>.dialog-button {
12
17
  --sc-kit--button--min-width: 8em;
13
18
  }</style>
@@ -4,12 +4,14 @@ type Props = {
4
4
  type?: 'button' | 'submit' | 'reset';
5
5
  disabled?: boolean;
6
6
  autofocus?: boolean;
7
+ /** Button color variant @default 'primary' */
7
8
  variant?: ButtonVariant;
8
9
  on?: {
9
10
  click?: (e: MouseEvent) => void;
10
11
  };
11
12
  children: Snippet;
12
13
  };
14
+ /** A dialog-specific action button with a minimum width preset. Defaults to the `primary` variant. */
13
15
  declare const Cmp: import("svelte").Component<Props, {}, "">;
14
16
  type Cmp = ReturnType<typeof Cmp>;
15
17
  export default Cmp;
@@ -8,6 +8,11 @@ let { disabled = false, on, children } = $props();
8
8
  </Button>
9
9
  </div>
10
10
 
11
+ <!--
12
+ @component
13
+ A dialog-specific cancel button using the `standard` variant with a minimum width preset.
14
+ -->
15
+
11
16
  <style>.dialog-cancel-button {
12
17
  --sc-kit--button--min-width: 8em;
13
18
  }</style>
@@ -6,6 +6,7 @@ type Props = {
6
6
  };
7
7
  children: Snippet;
8
8
  };
9
+ /** A dialog-specific cancel button using the `standard` variant with a minimum width preset. */
9
10
  declare const Cmp: import("svelte").Component<Props, {}, "">;
10
11
  type Cmp = ReturnType<typeof Cmp>;
11
12
  export default Cmp;
@@ -10,6 +10,16 @@ const handleClick = () => {
10
10
  <Icon src={IconDismiss24Filled} />
11
11
  </button>
12
12
 
13
+ <!--
14
+ @component
15
+ A dismiss (X) icon button that cancels the parent dialog via the provided `DialogController`.
16
+
17
+ ### CSS Custom Properties
18
+ | Property | Description | Default |
19
+ |---|---|---|
20
+ | `--sc-kit--dialog-close-button--color` | Icon color | `neutral-500` / `neutral-300` |
21
+ -->
22
+
13
23
  <style>.dialog-close-button {
14
24
  --_dialog-close-button--color: var(--sc-kit--dialog-close-button--color, light-dark(#6b7280, #d1d5db));
15
25
  --sc-kit--icon--size: 1.5rem;
@@ -1,6 +1,7 @@
1
1
  import type { DialogController } from './dialog-controller';
2
2
  declare function $$render<TResult = void, TCancelResult = void>(): {
3
3
  props: {
4
+ /** Dialog controller to call `cancel()` on when clicked */
4
5
  controller: DialogController<TResult, TCancelResult>;
5
6
  };
6
7
  exports: {};
@@ -22,6 +23,14 @@ interface $$IsomorphicComponent {
22
23
  <TResult = void, TCancelResult = void>(internal: unknown, props: ReturnType<__sveltets_Render<TResult, TCancelResult>['props']> & {}): ReturnType<__sveltets_Render<TResult, TCancelResult>['exports']>;
23
24
  z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
24
25
  }
26
+ /**
27
+ * A dismiss (X) icon button that cancels the parent dialog via the provided `DialogController`.
28
+ *
29
+ * ### CSS Custom Properties
30
+ * | Property | Description | Default |
31
+ * |---|---|---|
32
+ * | `--sc-kit--dialog-close-button--color` | Icon color | `neutral-500` / `neutral-300` |
33
+ */
25
34
  declare const Cmp: $$IsomorphicComponent;
26
35
  type Cmp<TResult = void, TCancelResult = void> = InstanceType<typeof Cmp<TResult, TCancelResult>>;
27
36
  export default Cmp;
@@ -36,6 +36,29 @@ const showCloseButton = $derived(!hideCloseButton && !controller.settings.nonCan
36
36
  {/if}
37
37
  </div>
38
38
 
39
+ <!--
40
+ @component
41
+ A structured dialog panel with header (title + close button), scrollable body, and footer sections. Render inside a `DialogContainer` via the `Dialogs` singleton.
42
+
43
+ ### CSS Custom Properties
44
+ | Property | Description | Default |
45
+ |---|---|---|
46
+ | `--sc-kit--dialog--background` | Dialog background | `white` / `black` |
47
+ | `--sc-kit--dialog--border-color` | Header/footer separator border | `neutral-100` / `dark-800` |
48
+ | `--sc-kit--dialog--border-radius` | Corner rounding | `0.5rem` |
49
+ | `--sc-kit--dialog--color` | Text color | `black` / `white` |
50
+ | `--sc-kit--dialog--shadow-color` | Box shadow color | `rgba(47,43,67,0.1)` / `rgba(255,255,255,0.1)` |
51
+ | `--sc-kit--dialog--height` | Dialog height | `auto` |
52
+ | `--sc-kit--dialog--max-height` | Maximum height | `none` |
53
+ | `--sc-kit--dialog--min-height` | Minimum height | `auto` |
54
+ | `--sc-kit--dialog--padding-block` | Vertical padding for header/body/footer | `1.25rem` |
55
+ | `--sc-kit--dialog--padding-inline` | Horizontal padding for header/body/footer | `1.5rem` |
56
+ | `--sc-kit--dialog--body--padding-block` | Body-specific vertical padding | inherits `--padding-block` |
57
+ | `--sc-kit--dialog--body--padding-inline` | Body-specific horizontal padding | inherits `--padding-inline` |
58
+ | `--sc-kit--dialog--header--padding-block` | Header-specific vertical padding | inherits `--padding-block` |
59
+ | `--sc-kit--dialog--header--padding-inline` | Header-specific horizontal padding | inherits `--padding-inline` |
60
+ -->
61
+
39
62
  <style>.dialog {
40
63
  --_dialog--background: var(--sc-kit--dialog--background, light-dark(#ffffff, #000000));
41
64
  --_dialog--border-color: var(--sc-kit--dialog--border-color, light-dark(#f2f2f3, #1e1e1e));
@@ -2,13 +2,21 @@ import type { DialogController } from './dialog-controller';
2
2
  import type { Snippet } from 'svelte';
3
3
  declare function $$render<TResult = void, TCancelResult = void>(): {
4
4
  props: {
5
+ /** Dialog controller instance that manages open/close/result lifecycle */
5
6
  controller: DialogController<TResult, TCancelResult>;
7
+ /** Hide the close (X) button in the header */
6
8
  hideCloseButton?: boolean;
9
+ /** Title content rendered inside the header */
7
10
  title?: Snippet;
11
+ /** Body content rendered in the scrollable middle section */
8
12
  body?: Snippet;
13
+ /** Footer content rendered at the bottom (typically action buttons) */
9
14
  footer?: Snippet;
15
+ /** Replaces the entire default header (title + close button) */
10
16
  headerSection?: Snippet;
17
+ /** Replaces the entire default body wrapper */
11
18
  bodySection?: Snippet;
19
+ /** Replaces the entire default footer wrapper */
12
20
  footerSection?: Snippet;
13
21
  };
14
22
  exports: {};
@@ -30,6 +38,27 @@ interface $$IsomorphicComponent {
30
38
  <TResult = void, TCancelResult = void>(internal: unknown, props: ReturnType<__sveltets_Render<TResult, TCancelResult>['props']> & {}): ReturnType<__sveltets_Render<TResult, TCancelResult>['exports']>;
31
39
  z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
32
40
  }
41
+ /**
42
+ * A structured dialog panel with header (title + close button), scrollable body, and footer sections. Render inside a `DialogContainer` via the `Dialogs` singleton.
43
+ *
44
+ * ### CSS Custom Properties
45
+ * | Property | Description | Default |
46
+ * |---|---|---|
47
+ * | `--sc-kit--dialog--background` | Dialog background | `white` / `black` |
48
+ * | `--sc-kit--dialog--border-color` | Header/footer separator border | `neutral-100` / `dark-800` |
49
+ * | `--sc-kit--dialog--border-radius` | Corner rounding | `0.5rem` |
50
+ * | `--sc-kit--dialog--color` | Text color | `black` / `white` |
51
+ * | `--sc-kit--dialog--shadow-color` | Box shadow color | `rgba(47,43,67,0.1)` / `rgba(255,255,255,0.1)` |
52
+ * | `--sc-kit--dialog--height` | Dialog height | `auto` |
53
+ * | `--sc-kit--dialog--max-height` | Maximum height | `none` |
54
+ * | `--sc-kit--dialog--min-height` | Minimum height | `auto` |
55
+ * | `--sc-kit--dialog--padding-block` | Vertical padding for header/body/footer | `1.25rem` |
56
+ * | `--sc-kit--dialog--padding-inline` | Horizontal padding for header/body/footer | `1.5rem` |
57
+ * | `--sc-kit--dialog--body--padding-block` | Body-specific vertical padding | inherits `--padding-block` |
58
+ * | `--sc-kit--dialog--body--padding-inline` | Body-specific horizontal padding | inherits `--padding-inline` |
59
+ * | `--sc-kit--dialog--header--padding-block` | Header-specific vertical padding | inherits `--padding-block` |
60
+ * | `--sc-kit--dialog--header--padding-inline` | Header-specific horizontal padding | inherits `--padding-inline` |
61
+ */
33
62
  declare const Cmp: $$IsomorphicComponent;
34
63
  type Cmp<TResult = void, TCancelResult = void> = InstanceType<typeof Cmp<TResult, TCancelResult>>;
35
64
  export default Cmp;
@@ -134,6 +134,16 @@ const initPopper = (node) => {
134
134
  {/if}
135
135
  </div>
136
136
 
137
+ <!--
138
+ @component
139
+ A Popper.js-powered dropdown that positions content relative to a trigger element, with click-outside-to-close, optional backdrop, and imperative open/close control.
140
+
141
+ ### CSS Custom Properties
142
+ | Property | Description | Default |
143
+ |---|---|---|
144
+ | `--sc-kit--dropdown--width` | Trigger element width | `auto` |
145
+ -->
146
+
137
147
  <style>.dropdown-backdrop {
138
148
  position: fixed;
139
149
  inset: 0;
@@ -1,24 +1,41 @@
1
1
  import { type Placement } from '@popperjs/core';
2
2
  import type { Snippet } from 'svelte';
3
3
  type Props = {
4
+ /** Popper.js placement of the dropdown content @default 'bottom-start' */
4
5
  position?: Placement;
5
6
  disabled?: boolean;
7
+ /** Prevent the dropdown from closing when clicking inside its content */
6
8
  keepDropdownOpen?: boolean;
9
+ /** Use `position: fixed` for the Popper strategy (useful inside overflow containers) */
7
10
  fixedPosition?: boolean;
11
+ /** Distance in px between the trigger and the dropdown content @default 8 */
8
12
  offset?: number;
13
+ /** Padding in px from the viewport boundary @default 8 */
9
14
  boundaryMargin?: number;
15
+ /** Show a semi-transparent backdrop overlay when open */
10
16
  backdrop?: boolean;
17
+ /** Programmatically request the dropdown to open */
11
18
  isOpenRequested?: boolean;
12
19
  on?: {
13
20
  opened?: () => void;
14
21
  closed?: () => void;
22
+ /** Fires after mount, providing a `toggleOpen` callback for imperative control */
15
23
  mounted?: (callbacks: {
16
24
  toggleOpen: (value?: boolean) => void;
17
25
  }) => void;
18
26
  };
19
27
  children: Snippet;
28
+ /** Custom trigger snippet; defaults to a chevron-down icon */
20
29
  trigger?: Snippet;
21
30
  };
31
+ /**
32
+ * A Popper.js-powered dropdown that positions content relative to a trigger element, with click-outside-to-close, optional backdrop, and imperative open/close control.
33
+ *
34
+ * ### CSS Custom Properties
35
+ * | Property | Description | Default |
36
+ * |---|---|---|
37
+ * | `--sc-kit--dropdown--width` | Trigger element width | `auto` |
38
+ */
22
39
  declare const Cmp: import("svelte").Component<Props, {}, "">;
23
40
  type Cmp = ReturnType<typeof Cmp>;
24
41
  export default Cmp;
@@ -3,3 +3,13 @@ export {};
3
3
  </script>
4
4
 
5
5
  <DynamicModel.component {...DynamicModel.props}></DynamicModel.component>
6
+
7
+ <!--
8
+ @component
9
+ Renders a dynamic Svelte component from a model object, spreading its props automatically.
10
+
11
+ ### Props
12
+ | Prop | Type | Description |
13
+ |---|---|---|
14
+ | `model` | `DynamicComponentModel` | Component reference and its props to render |
15
+ -->
@@ -2,6 +2,14 @@ import type { DynamicComponentModel } from './types.svelte';
2
2
  type Props = {
3
3
  model: DynamicComponentModel;
4
4
  };
5
+ /**
6
+ * Renders a dynamic Svelte component from a model object, spreading its props automatically.
7
+ *
8
+ * ### Props
9
+ * | Prop | Type | Description |
10
+ * |---|---|---|
11
+ * | `model` | `DynamicComponentModel` | Component reference and its props to render |
12
+ */
5
13
  declare const Cmp: import("svelte").Component<Props, {}, "">;
6
14
  type Cmp = ReturnType<typeof Cmp>;
7
15
  export default Cmp;
@@ -18,6 +18,26 @@ let { src, color = null } = $props();
18
18
  <i class="invalid-svg">Invalid SVG</i>
19
19
  {/if}
20
20
 
21
+ <!--
22
+ @component
23
+ Renders an inline SVG icon with configurable size, color presets, and optional stroke/filter effects.
24
+
25
+ ### CSS Custom Properties
26
+ | Property | Description | Default |
27
+ |---|---|---|
28
+ | `--sc-kit--icon--color` | Fill color (overrides currentColor) | `currentColor` |
29
+ | `--sc-kit--icon--color-blue` | Color for `blue` preset | `#3b82f6` / `#60a5fa` |
30
+ | `--sc-kit--icon--color-gray` | Color for `gray` preset | `#737373` |
31
+ | `--sc-kit--icon--color-green` | Color for `green` preset | `#22c55e` |
32
+ | `--sc-kit--icon--color-orange` | Color for `orange` preset | `#f97316` |
33
+ | `--sc-kit--icon--color-red` | Color for `red` preset | `#ef4444` |
34
+ | `--sc-kit--icon--color-text` | Color for `text` preset | `neutral-800` / `white` |
35
+ | `--sc-kit--icon--color-white` | Color for `white` preset | `white` |
36
+ | `--sc-kit--icon--filter` | CSS filter applied to the SVG | `none` |
37
+ | `--sc-kit--icon--size` | Width and height of the SVG | `1.25rem` |
38
+ | `--sc-kit--icon--stroke-width` | Stroke width on SVG paths | `0` |
39
+ -->
40
+
21
41
  <style>.icon {
22
42
  --_icon--color: var(--sc-kit--icon--color);
23
43
  --_icon--color-blue: var(--sc-kit--icon--color-blue, light-dark(#3b82f6, #60a5fa));
@@ -1,8 +1,28 @@
1
1
  import type { IconColor } from './types';
2
2
  interface Props {
3
+ /** Raw SVG string (must start with `<svg`) */
3
4
  src: string;
5
+ /** Predefined color preset applied to the icon */
4
6
  color?: IconColor | null;
5
7
  }
8
+ /**
9
+ * Renders an inline SVG icon with configurable size, color presets, and optional stroke/filter effects.
10
+ *
11
+ * ### CSS Custom Properties
12
+ * | Property | Description | Default |
13
+ * |---|---|---|
14
+ * | `--sc-kit--icon--color` | Fill color (overrides currentColor) | `currentColor` |
15
+ * | `--sc-kit--icon--color-blue` | Color for `blue` preset | `#3b82f6` / `#60a5fa` |
16
+ * | `--sc-kit--icon--color-gray` | Color for `gray` preset | `#737373` |
17
+ * | `--sc-kit--icon--color-green` | Color for `green` preset | `#22c55e` |
18
+ * | `--sc-kit--icon--color-orange` | Color for `orange` preset | `#f97316` |
19
+ * | `--sc-kit--icon--color-red` | Color for `red` preset | `#ef4444` |
20
+ * | `--sc-kit--icon--color-text` | Color for `text` preset | `neutral-800` / `white` |
21
+ * | `--sc-kit--icon--color-white` | Color for `white` preset | `white` |
22
+ * | `--sc-kit--icon--filter` | CSS filter applied to the SVG | `none` |
23
+ * | `--sc-kit--icon--size` | Width and height of the SVG | `1.25rem` |
24
+ * | `--sc-kit--icon--stroke-width` | Stroke width on SVG paths | `0` |
25
+ */
6
26
  declare const Cmp: import("svelte").Component<Props, {}, "">;
7
27
  type Cmp = ReturnType<typeof Cmp>;
8
28
  export default Cmp;
@@ -8,6 +8,16 @@ let { src, alt = '', ring = false, on } = $props();
8
8
  </div>
9
9
  </div>
10
10
 
11
+ <!--
12
+ @component
13
+ A circular image avatar built on top of `ImageRounded`, forcing 50% border-radius on all layers.
14
+
15
+ ### CSS Custom Properties
16
+ | Property | Description | Default |
17
+ |---|---|---|
18
+ | `--sc-kit--image--round--size` | Diameter of the circle | `100%` |
19
+ -->
20
+
11
21
  <style>.round-img {
12
22
  --_image--round--size: var(--sc-kit--image--round--size, 100%);
13
23
  --sc-kit--image--rounded--inner--border-radius: 50%;
@@ -1,11 +1,21 @@
1
1
  type Props = {
2
+ /** Image URL to display */
2
3
  src: string | null | undefined;
3
4
  alt?: string;
5
+ /** Show a decorative gradient ring around the image */
4
6
  ring?: boolean;
5
7
  on?: {
6
8
  click: () => void;
7
9
  };
8
10
  };
11
+ /**
12
+ * A circular image avatar built on top of `ImageRounded`, forcing 50% border-radius on all layers.
13
+ *
14
+ * ### CSS Custom Properties
15
+ * | Property | Description | Default |
16
+ * |---|---|---|
17
+ * | `--sc-kit--image--round--size` | Diameter of the circle | `100%` |
18
+ */
9
19
  declare const Cmp: import("svelte").Component<Props, {}, "">;
10
20
  type Cmp = ReturnType<typeof Cmp>;
11
21
  export default Cmp;
@@ -8,6 +8,26 @@ let { src, alt = '', ring = false, on } = $props();
8
8
  </div>
9
9
  </div>
10
10
 
11
+ <!--
12
+ @component
13
+ A rounded-corner image with an optional decorative double-border ring (outer gradient + inner solid).
14
+
15
+ ### CSS Custom Properties
16
+ | Property | Description | Default |
17
+ |---|---|---|
18
+ | `--sc-kit--image--rounded--size` | Shorthand for both width and height | `100%` |
19
+ | `--sc-kit--image--rounded--width` | Container width | inherits `--size` |
20
+ | `--sc-kit--image--rounded--height` | Container height | inherits `--size` |
21
+ | `--sc-kit--image--rounded--image--border-radius` | Inner image corner radius | computed |
22
+ | `--sc-kit--image--rounded--inner--border-color` | Inner border color | `white` / `dark-900` |
23
+ | `--sc-kit--image--rounded--inner--border-radius` | Inner border radius | computed |
24
+ | `--sc-kit--image--rounded--inner--border-width` | Inner border thickness | `4px` |
25
+ | `--sc-kit--image--rounded--outer--border-color` | Outer ring gradient | `primary-500` to `primary-100` |
26
+ | `--sc-kit--image--rounded--outer--border-radius` | Outer border radius | `2px` |
27
+ | `--sc-kit--image--rounded--outer--border-width` | Outer ring thickness | `2px` |
28
+ | `--sc-kit--image--rounded--stub--background` | Background when `src` is empty | `neutral-300` / `neutral-700` |
29
+ -->
30
+
11
31
  <style>.rounded-img {
12
32
  --_image--rounded--size: var(--sc-kit--image--rounded--size, 100%);
13
33
  --_image--rounded--width: var(--sc-kit--image--rounded--width, var(--_image--rounded--size));