@colletdev/svelte 0.1.3

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 (107) hide show
  1. package/README.md +58 -0
  2. package/package.json +33 -0
  3. package/src/accordion.svelte +52 -0
  4. package/src/accordion.svelte.d.ts +19 -0
  5. package/src/activity-group.svelte +34 -0
  6. package/src/activity-group.svelte.d.ts +16 -0
  7. package/src/alert.svelte +61 -0
  8. package/src/alert.svelte.d.ts +24 -0
  9. package/src/autocomplete.svelte +126 -0
  10. package/src/autocomplete.svelte.d.ts +47 -0
  11. package/src/avatar.svelte +32 -0
  12. package/src/avatar.svelte.d.ts +15 -0
  13. package/src/backdrop.svelte +24 -0
  14. package/src/backdrop.svelte.d.ts +11 -0
  15. package/src/badge.svelte +45 -0
  16. package/src/badge.svelte.d.ts +19 -0
  17. package/src/breadcrumb.svelte +42 -0
  18. package/src/breadcrumb.svelte.d.ts +16 -0
  19. package/src/button.svelte +52 -0
  20. package/src/button.svelte.d.ts +23 -0
  21. package/src/card.svelte +67 -0
  22. package/src/card.svelte.d.ts +22 -0
  23. package/src/carousel.svelte +59 -0
  24. package/src/carousel.svelte.d.ts +29 -0
  25. package/src/chat-input.svelte +76 -0
  26. package/src/chat-input.svelte.d.ts +28 -0
  27. package/src/checkbox.svelte +83 -0
  28. package/src/checkbox.svelte.d.ts +29 -0
  29. package/src/code-block.svelte +40 -0
  30. package/src/code-block.svelte.d.ts +19 -0
  31. package/src/collapsible.svelte +56 -0
  32. package/src/collapsible.svelte.d.ts +27 -0
  33. package/src/date-picker.svelte +110 -0
  34. package/src/date-picker.svelte.d.ts +40 -0
  35. package/src/dialog.svelte +56 -0
  36. package/src/dialog.svelte.d.ts +24 -0
  37. package/src/drawer.svelte +56 -0
  38. package/src/drawer.svelte.d.ts +24 -0
  39. package/src/elements.d.ts +715 -0
  40. package/src/fab.svelte +48 -0
  41. package/src/fab.svelte.d.ts +21 -0
  42. package/src/file-upload.svelte +55 -0
  43. package/src/file-upload.svelte.d.ts +24 -0
  44. package/src/index.ts +85 -0
  45. package/src/label.svelte +29 -0
  46. package/src/label.svelte.d.ts +20 -0
  47. package/src/listbox.svelte +75 -0
  48. package/src/listbox.svelte.d.ts +21 -0
  49. package/src/menu.svelte +76 -0
  50. package/src/menu.svelte.d.ts +27 -0
  51. package/src/message-bubble.svelte +49 -0
  52. package/src/message-bubble.svelte.d.ts +20 -0
  53. package/src/message-group.svelte +41 -0
  54. package/src/message-group.svelte.d.ts +16 -0
  55. package/src/message-part.svelte +20 -0
  56. package/src/message-part.svelte.d.ts +9 -0
  57. package/src/pagination.svelte +40 -0
  58. package/src/pagination.svelte.d.ts +19 -0
  59. package/src/popover.svelte +66 -0
  60. package/src/popover.svelte.d.ts +28 -0
  61. package/src/profile-menu.svelte +55 -0
  62. package/src/profile-menu.svelte.d.ts +24 -0
  63. package/src/progress.svelte +33 -0
  64. package/src/progress.svelte.d.ts +16 -0
  65. package/src/radio-group.svelte +91 -0
  66. package/src/radio-group.svelte.d.ts +26 -0
  67. package/src/scrollbar.svelte +41 -0
  68. package/src/scrollbar.svelte.d.ts +16 -0
  69. package/src/search-bar.svelte +94 -0
  70. package/src/search-bar.svelte.d.ts +34 -0
  71. package/src/select.svelte +112 -0
  72. package/src/select.svelte.d.ts +37 -0
  73. package/src/separator.svelte +25 -0
  74. package/src/separator.svelte.d.ts +18 -0
  75. package/src/sidebar.svelte +65 -0
  76. package/src/sidebar.svelte.d.ts +26 -0
  77. package/src/skeleton.svelte +30 -0
  78. package/src/skeleton.svelte.d.ts +14 -0
  79. package/src/slider.svelte +100 -0
  80. package/src/slider.svelte.d.ts +35 -0
  81. package/src/speed-dial.svelte +66 -0
  82. package/src/speed-dial.svelte.d.ts +30 -0
  83. package/src/spinner.svelte +26 -0
  84. package/src/spinner.svelte.d.ts +12 -0
  85. package/src/split-button.svelte +64 -0
  86. package/src/split-button.svelte.d.ts +28 -0
  87. package/src/stepper.svelte +48 -0
  88. package/src/stepper.svelte.d.ts +19 -0
  89. package/src/switch.svelte +85 -0
  90. package/src/switch.svelte.d.ts +30 -0
  91. package/src/table.svelte +133 -0
  92. package/src/table.svelte.d.ts +33 -0
  93. package/src/tabs.svelte +51 -0
  94. package/src/tabs.svelte.d.ts +21 -0
  95. package/src/text-input.svelte +126 -0
  96. package/src/text-input.svelte.d.ts +49 -0
  97. package/src/text.svelte +63 -0
  98. package/src/text.svelte.d.ts +23 -0
  99. package/src/thinking.svelte +30 -0
  100. package/src/thinking.svelte.d.ts +14 -0
  101. package/src/toast.svelte +58 -0
  102. package/src/toast.svelte.d.ts +25 -0
  103. package/src/toggle-group.svelte +64 -0
  104. package/src/toggle-group.svelte.d.ts +23 -0
  105. package/src/tooltip.svelte +38 -0
  106. package/src/tooltip.svelte.d.ts +17 -0
  107. package/src/types.ts +334 -0
@@ -0,0 +1,112 @@
1
+ <!-- Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT -->
2
+ <!-- Svelte 5 wrapper for <cx-select> -->
3
+ <script lang="ts">
4
+ import type { FocusDetail, InputDetail, KeyboardDetail, OptionGroup, SelectDetail, SelectOption } from './types.js';
5
+
6
+ interface Props {
7
+ id?: string;
8
+ label?: string;
9
+ variant?: 'outline' | 'filled' | 'ghost';
10
+ shape?: 'sharp' | 'rounded' | 'pill';
11
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
12
+ mode?: 'single' | 'multiple';
13
+ selected?: string[] | string;
14
+ placeholder?: string;
15
+ helperText?: string;
16
+ error?: string;
17
+ disabled?: boolean;
18
+ required?: boolean;
19
+ name?: string;
20
+ items?: SelectOption[] | string;
21
+ groups?: OptionGroup[] | string;
22
+ onInput?: (event: CustomEvent<InputDetail>) => void;
23
+ onChange?: (event: CustomEvent<SelectDetail>) => void;
24
+ onFocus?: (event: CustomEvent<FocusDetail>) => void;
25
+ onBlur?: (event: CustomEvent<FocusDetail>) => void;
26
+ onKeydown?: (event: CustomEvent<KeyboardDetail>) => void;
27
+ onKeyup?: (event: CustomEvent<KeyboardDetail>) => void;
28
+ }
29
+
30
+ let { id, label, variant, shape, size, mode, selected, placeholder, helperText, error, disabled, required, name, items, groups, onInput, onChange, onFocus, onBlur, onKeydown, onKeyup }: Props = $props();
31
+
32
+ let el: HTMLElement;
33
+
34
+
35
+ $effect(() => {
36
+ if (!el) return;
37
+ if (name != null) el.setAttribute('name', String(name));
38
+ else el.removeAttribute('name');
39
+ });
40
+ $effect(() => {
41
+ if (!el) return;
42
+ if (selected != null) el.setAttribute('selected', typeof selected === 'object' ? JSON.stringify(selected) : String(selected));
43
+ else el.removeAttribute('selected');
44
+ });
45
+ $effect(() => {
46
+ if (!el) return;
47
+ if (items != null) el.setAttribute('items', typeof items === 'object' ? JSON.stringify(items) : String(items));
48
+ else el.removeAttribute('items');
49
+ });
50
+ $effect(() => {
51
+ if (!el) return;
52
+ if (groups != null) el.setAttribute('groups', typeof groups === 'object' ? JSON.stringify(groups) : String(groups));
53
+ else el.removeAttribute('groups');
54
+ });
55
+ $effect(() => {
56
+ if (!el) return;
57
+ const handler = (e: Event) => onInput?.(e as CustomEvent);
58
+ el.addEventListener('cx-input', handler);
59
+ return () => el.removeEventListener('cx-input', handler);
60
+ });
61
+ $effect(() => {
62
+ if (!el) return;
63
+ const handler = (e: Event) => onChange?.(e as CustomEvent);
64
+ el.addEventListener('cx-change', handler);
65
+ return () => el.removeEventListener('cx-change', handler);
66
+ });
67
+ $effect(() => {
68
+ if (!el) return;
69
+ const handler = (e: Event) => onFocus?.(e as CustomEvent);
70
+ el.addEventListener('cx-focus', handler);
71
+ return () => el.removeEventListener('cx-focus', handler);
72
+ });
73
+ $effect(() => {
74
+ if (!el) return;
75
+ const handler = (e: Event) => onBlur?.(e as CustomEvent);
76
+ el.addEventListener('cx-blur', handler);
77
+ return () => el.removeEventListener('cx-blur', handler);
78
+ });
79
+ $effect(() => {
80
+ if (!el) return;
81
+ const handler = (e: Event) => onKeydown?.(e as CustomEvent);
82
+ el.addEventListener('cx-keydown', handler);
83
+ return () => el.removeEventListener('cx-keydown', handler);
84
+ });
85
+ $effect(() => {
86
+ if (!el) return;
87
+ const handler = (e: Event) => onKeyup?.(e as CustomEvent);
88
+ el.addEventListener('cx-keyup', handler);
89
+ return () => el.removeEventListener('cx-keyup', handler);
90
+ });
91
+ /** Opens the dropdown. */
92
+ export function open() { (el as any)?.open(); }
93
+ /** Closes the dropdown. */
94
+ export function close() { (el as any)?.close(); }
95
+ /** Focuses the trigger button. */
96
+ export function focus() { (el as any)?.focus(); }
97
+ </script>
98
+
99
+ <cx-select
100
+ bind:this={el}
101
+ id={typeof id === 'object' && id != null ? JSON.stringify(id) : id}
102
+ label={typeof label === 'object' && label != null ? JSON.stringify(label) : label}
103
+ variant={typeof variant === 'object' && variant != null ? JSON.stringify(variant) : variant}
104
+ shape={typeof shape === 'object' && shape != null ? JSON.stringify(shape) : shape}
105
+ size={typeof size === 'object' && size != null ? JSON.stringify(size) : size}
106
+ mode={typeof mode === 'object' && mode != null ? JSON.stringify(mode) : mode}
107
+ placeholder={typeof placeholder === 'object' && placeholder != null ? JSON.stringify(placeholder) : placeholder}
108
+ helper-text={typeof helperText === 'object' && helperText != null ? JSON.stringify(helperText) : helperText}
109
+ error={typeof error === 'object' && error != null ? JSON.stringify(error) : error}
110
+ disabled={disabled || undefined}
111
+ required={required || undefined}
112
+ />
@@ -0,0 +1,37 @@
1
+ // Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT
2
+ import type { Component } from 'svelte';
3
+ import type { FocusDetail, InputDetail, KeyboardDetail, OptionGroup, SelectDetail, SelectOption } from './types.js';
4
+
5
+ interface SelectProps {
6
+ id?: string;
7
+ label?: string;
8
+ variant?: 'outline' | 'filled' | 'ghost';
9
+ shape?: 'sharp' | 'rounded' | 'pill';
10
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
11
+ mode?: 'single' | 'multiple';
12
+ selected?: string[] | string;
13
+ placeholder?: string;
14
+ helperText?: string;
15
+ error?: string;
16
+ disabled?: boolean;
17
+ required?: boolean;
18
+ name?: string;
19
+ items?: SelectOption[] | string;
20
+ groups?: OptionGroup[] | string;
21
+ onInput?: (event: CustomEvent<InputDetail>) => void;
22
+ onChange?: (event: CustomEvent<SelectDetail>) => void;
23
+ onFocus?: (event: CustomEvent<FocusDetail>) => void;
24
+ onBlur?: (event: CustomEvent<FocusDetail>) => void;
25
+ onKeydown?: (event: CustomEvent<KeyboardDetail>) => void;
26
+ onKeyup?: (event: CustomEvent<KeyboardDetail>) => void;
27
+ }
28
+
29
+ declare const Select: Component<SelectProps, {
30
+ /** Opens the dropdown. */
31
+ open(): void;
32
+ /** Closes the dropdown. */
33
+ close(): void;
34
+ /** Focuses the trigger button. */
35
+ focus(): void;
36
+ }>;
37
+ export default Select;
@@ -0,0 +1,25 @@
1
+ <!-- Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT -->
2
+ <!-- Svelte wrapper for <cx-separator> -->
3
+ <script lang="ts">
4
+ export let id: string;
5
+ export let variant: string | undefined = undefined;
6
+ export let orientation: string | undefined = undefined;
7
+ export let size: string | undefined = undefined;
8
+ export let label: string | undefined = undefined;
9
+ export let semantic: boolean | undefined = undefined;
10
+ export let color: string | undefined = undefined;
11
+
12
+ </script>
13
+
14
+ <cx-separator
15
+ id={id}
16
+ variant={variant}
17
+ orientation={orientation}
18
+ size={size}
19
+ label={label}
20
+ semantic={semantic || undefined}
21
+ color={color}
22
+
23
+ >
24
+ <slot />
25
+ </cx-separator>
@@ -0,0 +1,18 @@
1
+ // Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT
2
+ import { SvelteComponent } from 'svelte';
3
+
4
+ export interface SeparatorProps {
5
+ id: string;
6
+ variant?: string;
7
+ orientation?: string;
8
+ size?: string;
9
+ label?: string;
10
+ semantic?: boolean;
11
+ color?: string;
12
+ }
13
+
14
+ export interface SeparatorEvents {
15
+
16
+ }
17
+
18
+ export default class Separator extends SvelteComponent<SeparatorProps, SeparatorEvents> {}
@@ -0,0 +1,65 @@
1
+ <!-- Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT -->
2
+ <!-- Svelte 5 wrapper for <cx-sidebar> -->
3
+ <script lang="ts">
4
+ import type { CloseDetail, NavigateDetail, SidebarGroup } from './types.js';
5
+
6
+ interface Props {
7
+ id?: string;
8
+ label?: string;
9
+ groups?: SidebarGroup[] | string;
10
+ separatorsAfter?: string;
11
+ side?: 'left' | 'right';
12
+ state?: 'expanded' | 'narrow' | 'hidden';
13
+ shape?: 'sharp' | 'rounded' | 'pill';
14
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
15
+ onClose?: (event: CustomEvent<CloseDetail>) => void;
16
+ onNavigate?: (event: CustomEvent<NavigateDetail>) => void;
17
+ header?: import('svelte').Snippet;
18
+ footer?: import('svelte').Snippet;
19
+ }
20
+
21
+ let { id, label, groups, separatorsAfter, side, state, shape, size, onClose, onNavigate, header, footer }: Props = $props();
22
+
23
+ let el: HTMLElement;
24
+
25
+
26
+ $effect(() => {
27
+ if (!el) return;
28
+ if (groups != null) el.setAttribute('groups', typeof groups === 'object' ? JSON.stringify(groups) : String(groups));
29
+ else el.removeAttribute('groups');
30
+ });
31
+ $effect(() => {
32
+ if (!el) return;
33
+ const handler = (e: Event) => onClose?.(e as CustomEvent);
34
+ el.addEventListener('cx-close', handler);
35
+ return () => el.removeEventListener('cx-close', handler);
36
+ });
37
+ $effect(() => {
38
+ if (!el) return;
39
+ const handler = (e: Event) => onNavigate?.(e as CustomEvent);
40
+ el.addEventListener('cx-navigate', handler);
41
+ return () => el.removeEventListener('cx-navigate', handler);
42
+ });
43
+ /** Opens the mobile sidebar drawer. */
44
+ export function open() { (el as any)?.open(); }
45
+ /** Closes the mobile sidebar drawer. */
46
+ export function close() { (el as any)?.close(); }
47
+ </script>
48
+
49
+ <cx-sidebar
50
+ bind:this={el}
51
+ id={typeof id === 'object' && id != null ? JSON.stringify(id) : id}
52
+ label={typeof label === 'object' && label != null ? JSON.stringify(label) : label}
53
+ separators-after={typeof separatorsAfter === 'object' && separatorsAfter != null ? JSON.stringify(separatorsAfter) : separatorsAfter}
54
+ side={typeof side === 'object' && side != null ? JSON.stringify(side) : side}
55
+ state={typeof state === 'object' && state != null ? JSON.stringify(state) : state}
56
+ shape={typeof shape === 'object' && shape != null ? JSON.stringify(shape) : shape}
57
+ size={typeof size === 'object' && size != null ? JSON.stringify(size) : size}
58
+ >
59
+ {#if header}
60
+ <div slot="header" style="display:contents">{@render header()}</div>
61
+ {/if}
62
+ {#if footer}
63
+ <div slot="footer" style="display:contents">{@render footer()}</div>
64
+ {/if}
65
+ </cx-sidebar>
@@ -0,0 +1,26 @@
1
+ // Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT
2
+ import type { Component } from 'svelte';
3
+ import type { CloseDetail, NavigateDetail, SidebarGroup } from './types.js';
4
+
5
+ interface SidebarProps {
6
+ id?: string;
7
+ label?: string;
8
+ groups?: SidebarGroup[] | string;
9
+ separatorsAfter?: string;
10
+ side?: 'left' | 'right';
11
+ state?: 'expanded' | 'narrow' | 'hidden';
12
+ shape?: 'sharp' | 'rounded' | 'pill';
13
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
14
+ onClose?: (event: CustomEvent<CloseDetail>) => void;
15
+ onNavigate?: (event: CustomEvent<NavigateDetail>) => void;
16
+ header?: import('svelte').Snippet;
17
+ footer?: import('svelte').Snippet;
18
+ }
19
+
20
+ declare const Sidebar: Component<SidebarProps, {
21
+ /** Opens the mobile sidebar drawer. */
22
+ open(): void;
23
+ /** Closes the mobile sidebar drawer. */
24
+ close(): void;
25
+ }>;
26
+ export default Sidebar;
@@ -0,0 +1,30 @@
1
+ <!-- Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT -->
2
+ <!-- Svelte 5 wrapper for <cx-skeleton> -->
3
+ <script lang="ts">
4
+
5
+ interface Props {
6
+ id?: string;
7
+ variant?: 'text' | 'circle' | 'rectangular';
8
+ animation?: 'pulse' | 'wave';
9
+ label?: string;
10
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
11
+ lines?: number;
12
+ }
13
+
14
+ let { id, variant, animation, label, size, lines }: Props = $props();
15
+
16
+ let el: HTMLElement;
17
+
18
+
19
+
20
+ </script>
21
+
22
+ <cx-skeleton
23
+ bind:this={el}
24
+ id={typeof id === 'object' && id != null ? JSON.stringify(id) : id}
25
+ variant={typeof variant === 'object' && variant != null ? JSON.stringify(variant) : variant}
26
+ animation={typeof animation === 'object' && animation != null ? JSON.stringify(animation) : animation}
27
+ label={typeof label === 'object' && label != null ? JSON.stringify(label) : label}
28
+ size={typeof size === 'object' && size != null ? JSON.stringify(size) : size}
29
+ lines={typeof lines === 'object' && lines != null ? JSON.stringify(lines) : lines}
30
+ />
@@ -0,0 +1,14 @@
1
+ // Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT
2
+ import type { Component } from 'svelte';
3
+
4
+ interface SkeletonProps {
5
+ id?: string;
6
+ variant?: 'text' | 'circle' | 'rectangular';
7
+ animation?: 'pulse' | 'wave';
8
+ label?: string;
9
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
10
+ lines?: number;
11
+ }
12
+
13
+ declare const Skeleton: Component<SkeletonProps, {}>;
14
+ export default Skeleton;
@@ -0,0 +1,100 @@
1
+ <!-- Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT -->
2
+ <!-- Svelte 5 wrapper for <cx-slider> -->
3
+ <script lang="ts">
4
+ import type { FocusDetail, KeyboardDetail, SliderDetail } from './types.js';
5
+
6
+ interface Props {
7
+ id?: string;
8
+ label?: string;
9
+ ariaLabel?: string;
10
+ value?: number;
11
+ min?: number;
12
+ max?: number;
13
+ step?: number;
14
+ orientation?: 'horizontal' | 'vertical';
15
+ shape?: 'sharp' | 'rounded' | 'pill';
16
+ intent?: 'neutral' | 'primary' | 'info' | 'success' | 'warning' | 'danger';
17
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
18
+ showValue?: boolean;
19
+ valueText?: string;
20
+ helperText?: string;
21
+ errorText?: string;
22
+ disabled?: boolean;
23
+ unlabeled?: boolean;
24
+ onInput?: (event: CustomEvent<SliderDetail>) => void;
25
+ onChange?: (event: CustomEvent) => void;
26
+ onFocus?: (event: CustomEvent<FocusDetail>) => void;
27
+ onBlur?: (event: CustomEvent<FocusDetail>) => void;
28
+ onKeydown?: (event: CustomEvent<KeyboardDetail>) => void;
29
+ onKeyup?: (event: CustomEvent<KeyboardDetail>) => void;
30
+ }
31
+
32
+ let { id, label, ariaLabel, value, min, max, step, orientation, shape, intent, size, showValue, valueText, helperText, errorText, disabled, unlabeled, onInput, onChange, onFocus, onBlur, onKeydown, onKeyup }: Props = $props();
33
+
34
+ let el: HTMLElement;
35
+
36
+
37
+ $effect(() => {
38
+ if (!el) return;
39
+ if (value != null) el.setAttribute('value', String(value));
40
+ else el.removeAttribute('value');
41
+ });
42
+ $effect(() => {
43
+ if (!el) return;
44
+ const handler = (e: Event) => onInput?.(e as CustomEvent);
45
+ el.addEventListener('cx-input', handler);
46
+ return () => el.removeEventListener('cx-input', handler);
47
+ });
48
+ $effect(() => {
49
+ if (!el) return;
50
+ const handler = (e: Event) => onChange?.(e as CustomEvent);
51
+ el.addEventListener('cx-change', handler);
52
+ return () => el.removeEventListener('cx-change', handler);
53
+ });
54
+ $effect(() => {
55
+ if (!el) return;
56
+ const handler = (e: Event) => onFocus?.(e as CustomEvent);
57
+ el.addEventListener('cx-focus', handler);
58
+ return () => el.removeEventListener('cx-focus', handler);
59
+ });
60
+ $effect(() => {
61
+ if (!el) return;
62
+ const handler = (e: Event) => onBlur?.(e as CustomEvent);
63
+ el.addEventListener('cx-blur', handler);
64
+ return () => el.removeEventListener('cx-blur', handler);
65
+ });
66
+ $effect(() => {
67
+ if (!el) return;
68
+ const handler = (e: Event) => onKeydown?.(e as CustomEvent);
69
+ el.addEventListener('cx-keydown', handler);
70
+ return () => el.removeEventListener('cx-keydown', handler);
71
+ });
72
+ $effect(() => {
73
+ if (!el) return;
74
+ const handler = (e: Event) => onKeyup?.(e as CustomEvent);
75
+ el.addEventListener('cx-keyup', handler);
76
+ return () => el.removeEventListener('cx-keyup', handler);
77
+ });
78
+ /** Focuses the range input. */
79
+ export function focus() { (el as any)?.focus(); }
80
+ </script>
81
+
82
+ <cx-slider
83
+ bind:this={el}
84
+ id={typeof id === 'object' && id != null ? JSON.stringify(id) : id}
85
+ label={typeof label === 'object' && label != null ? JSON.stringify(label) : label}
86
+ aria-label={typeof ariaLabel === 'object' && ariaLabel != null ? JSON.stringify(ariaLabel) : ariaLabel}
87
+ min={typeof min === 'object' && min != null ? JSON.stringify(min) : min}
88
+ max={typeof max === 'object' && max != null ? JSON.stringify(max) : max}
89
+ step={typeof step === 'object' && step != null ? JSON.stringify(step) : step}
90
+ orientation={typeof orientation === 'object' && orientation != null ? JSON.stringify(orientation) : orientation}
91
+ shape={typeof shape === 'object' && shape != null ? JSON.stringify(shape) : shape}
92
+ intent={typeof intent === 'object' && intent != null ? JSON.stringify(intent) : intent}
93
+ size={typeof size === 'object' && size != null ? JSON.stringify(size) : size}
94
+ show-value={showValue || undefined}
95
+ value-text={typeof valueText === 'object' && valueText != null ? JSON.stringify(valueText) : valueText}
96
+ helper-text={typeof helperText === 'object' && helperText != null ? JSON.stringify(helperText) : helperText}
97
+ error-text={typeof errorText === 'object' && errorText != null ? JSON.stringify(errorText) : errorText}
98
+ disabled={disabled || undefined}
99
+ unlabeled={unlabeled || undefined}
100
+ />
@@ -0,0 +1,35 @@
1
+ // Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT
2
+ import type { Component } from 'svelte';
3
+ import type { FocusDetail, KeyboardDetail, SliderDetail } from './types.js';
4
+
5
+ interface SliderProps {
6
+ id?: string;
7
+ label?: string;
8
+ ariaLabel?: string;
9
+ value?: number;
10
+ min?: number;
11
+ max?: number;
12
+ step?: number;
13
+ orientation?: 'horizontal' | 'vertical';
14
+ shape?: 'sharp' | 'rounded' | 'pill';
15
+ intent?: 'neutral' | 'primary' | 'info' | 'success' | 'warning' | 'danger';
16
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
17
+ showValue?: boolean;
18
+ valueText?: string;
19
+ helperText?: string;
20
+ errorText?: string;
21
+ disabled?: boolean;
22
+ unlabeled?: boolean;
23
+ onInput?: (event: CustomEvent<SliderDetail>) => void;
24
+ onChange?: (event: CustomEvent) => void;
25
+ onFocus?: (event: CustomEvent<FocusDetail>) => void;
26
+ onBlur?: (event: CustomEvent<FocusDetail>) => void;
27
+ onKeydown?: (event: CustomEvent<KeyboardDetail>) => void;
28
+ onKeyup?: (event: CustomEvent<KeyboardDetail>) => void;
29
+ }
30
+
31
+ declare const Slider: Component<SliderProps, {
32
+ /** Focuses the range input. */
33
+ focus(): void;
34
+ }>;
35
+ export default Slider;
@@ -0,0 +1,66 @@
1
+ <!-- Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT -->
2
+ <!-- Svelte 5 wrapper for <cx-speed-dial> -->
3
+ <script lang="ts">
4
+ import type { CollapsibleDetail, MenuActionDetail, SpeedDialAction } from './types.js';
5
+
6
+ interface Props {
7
+ id: string;
8
+ icon: string;
9
+ ariaLabel?: string;
10
+ closeIcon?: string;
11
+ actions?: SpeedDialAction[] | string;
12
+ variant?: 'filled' | 'outline' | 'ghost';
13
+ shape?: 'rounded' | 'pill';
14
+ size?: 'sm' | 'md' | 'lg';
15
+ direction?: 'up' | 'down' | 'left' | 'right';
16
+ backdrop?: boolean;
17
+ tooltips?: boolean;
18
+ disabled?: boolean;
19
+ onAction?: (event: CustomEvent<MenuActionDetail>) => void;
20
+ onChange?: (event: CustomEvent<CollapsibleDetail>) => void;
21
+ }
22
+
23
+ let { id, icon, ariaLabel, closeIcon, actions, variant, shape, size, direction, backdrop, tooltips, disabled, onAction, onChange }: Props = $props();
24
+
25
+ let el: HTMLElement;
26
+
27
+
28
+ $effect(() => {
29
+ if (!el) return;
30
+ if (actions != null) el.setAttribute('actions', typeof actions === 'object' ? JSON.stringify(actions) : String(actions));
31
+ else el.removeAttribute('actions');
32
+ });
33
+ $effect(() => {
34
+ if (!el) return;
35
+ const handler = (e: Event) => onAction?.(e as CustomEvent);
36
+ el.addEventListener('cx-action', handler);
37
+ return () => el.removeEventListener('cx-action', handler);
38
+ });
39
+ $effect(() => {
40
+ if (!el) return;
41
+ const handler = (e: Event) => onChange?.(e as CustomEvent);
42
+ el.addEventListener('cx-change', handler);
43
+ return () => el.removeEventListener('cx-change', handler);
44
+ });
45
+ /** Opens the speed dial action menu. */
46
+ export function open() { (el as any)?.open(); }
47
+ /** Closes the speed dial action menu. */
48
+ export function close() { (el as any)?.close(); }
49
+ /** Toggles the speed dial action menu. */
50
+ export function toggle() { (el as any)?.toggle(); }
51
+ </script>
52
+
53
+ <cx-speed-dial
54
+ bind:this={el}
55
+ id={typeof id === 'object' && id != null ? JSON.stringify(id) : id}
56
+ icon={typeof icon === 'object' && icon != null ? JSON.stringify(icon) : icon}
57
+ aria-label={typeof ariaLabel === 'object' && ariaLabel != null ? JSON.stringify(ariaLabel) : ariaLabel}
58
+ close-icon={typeof closeIcon === 'object' && closeIcon != null ? JSON.stringify(closeIcon) : closeIcon}
59
+ variant={typeof variant === 'object' && variant != null ? JSON.stringify(variant) : variant}
60
+ shape={typeof shape === 'object' && shape != null ? JSON.stringify(shape) : shape}
61
+ size={typeof size === 'object' && size != null ? JSON.stringify(size) : size}
62
+ direction={typeof direction === 'object' && direction != null ? JSON.stringify(direction) : direction}
63
+ backdrop={backdrop || undefined}
64
+ tooltips={tooltips || undefined}
65
+ disabled={disabled || undefined}
66
+ />
@@ -0,0 +1,30 @@
1
+ // Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT
2
+ import type { Component } from 'svelte';
3
+ import type { CollapsibleDetail, MenuActionDetail, SpeedDialAction } from './types.js';
4
+
5
+ interface SpeedDialProps {
6
+ id: string;
7
+ icon: string;
8
+ ariaLabel?: string;
9
+ closeIcon?: string;
10
+ actions?: SpeedDialAction[] | string;
11
+ variant?: 'filled' | 'outline' | 'ghost';
12
+ shape?: 'rounded' | 'pill';
13
+ size?: 'sm' | 'md' | 'lg';
14
+ direction?: 'up' | 'down' | 'left' | 'right';
15
+ backdrop?: boolean;
16
+ tooltips?: boolean;
17
+ disabled?: boolean;
18
+ onAction?: (event: CustomEvent<MenuActionDetail>) => void;
19
+ onChange?: (event: CustomEvent<CollapsibleDetail>) => void;
20
+ }
21
+
22
+ declare const SpeedDial: Component<SpeedDialProps, {
23
+ /** Opens the speed dial action menu. */
24
+ open(): void;
25
+ /** Closes the speed dial action menu. */
26
+ close(): void;
27
+ /** Toggles the speed dial action menu. */
28
+ toggle(): void;
29
+ }>;
30
+ export default SpeedDial;
@@ -0,0 +1,26 @@
1
+ <!-- Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT -->
2
+ <!-- Svelte 5 wrapper for <cx-spinner> -->
3
+ <script lang="ts">
4
+
5
+ interface Props {
6
+ id?: string;
7
+ variant?: 'circle' | 'square';
8
+ label?: string;
9
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
10
+ }
11
+
12
+ let { id, variant, label, size }: Props = $props();
13
+
14
+ let el: HTMLElement;
15
+
16
+
17
+
18
+ </script>
19
+
20
+ <cx-spinner
21
+ bind:this={el}
22
+ id={typeof id === 'object' && id != null ? JSON.stringify(id) : id}
23
+ variant={typeof variant === 'object' && variant != null ? JSON.stringify(variant) : variant}
24
+ label={typeof label === 'object' && label != null ? JSON.stringify(label) : label}
25
+ size={typeof size === 'object' && size != null ? JSON.stringify(size) : size}
26
+ />
@@ -0,0 +1,12 @@
1
+ // Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT
2
+ import type { Component } from 'svelte';
3
+
4
+ interface SpinnerProps {
5
+ id?: string;
6
+ variant?: 'circle' | 'square';
7
+ label?: string;
8
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
9
+ }
10
+
11
+ declare const Spinner: Component<SpinnerProps, {}>;
12
+ export default Spinner;
@@ -0,0 +1,64 @@
1
+ <!-- Auto-generated by scripts/generate-svelte.mjs — DO NOT EDIT -->
2
+ <!-- Svelte 5 wrapper for <cx-split-button> -->
3
+ <script lang="ts">
4
+ import type { ClickDetail, MenuActionDetail, SplitMenuEntry } from './types.js';
5
+
6
+ interface Props {
7
+ id: string;
8
+ label: string;
9
+ entries?: SplitMenuEntry[] | string;
10
+ variant?: 'filled' | 'outline' | 'ghost';
11
+ intent?: 'neutral' | 'primary' | 'info' | 'success' | 'warning' | 'danger';
12
+ shape?: 'sharp' | 'rounded' | 'pill';
13
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
14
+ iconLeading?: string;
15
+ disabled?: boolean;
16
+ primaryDisabled?: boolean;
17
+ triggerDisabled?: boolean;
18
+ triggerLabel?: string;
19
+ onClick?: (event: CustomEvent<ClickDetail>) => void;
20
+ onAction?: (event: CustomEvent<MenuActionDetail>) => void;
21
+ }
22
+
23
+ let { id, label, entries, variant, intent, shape, size, iconLeading, disabled, primaryDisabled, triggerDisabled, triggerLabel, onClick, onAction }: Props = $props();
24
+
25
+ let el: HTMLElement;
26
+
27
+
28
+ $effect(() => {
29
+ if (!el) return;
30
+ if (entries != null) el.setAttribute('entries', typeof entries === 'object' ? JSON.stringify(entries) : String(entries));
31
+ else el.removeAttribute('entries');
32
+ });
33
+ $effect(() => {
34
+ if (!el) return;
35
+ const handler = (e: Event) => onClick?.(e as CustomEvent);
36
+ el.addEventListener('cx-click', handler);
37
+ return () => el.removeEventListener('cx-click', handler);
38
+ });
39
+ $effect(() => {
40
+ if (!el) return;
41
+ const handler = (e: Event) => onAction?.(e as CustomEvent);
42
+ el.addEventListener('cx-action', handler);
43
+ return () => el.removeEventListener('cx-action', handler);
44
+ });
45
+ /** Opens the dropdown menu. */
46
+ export function open() { (el as any)?.open(); }
47
+ /** Closes the dropdown menu. */
48
+ export function close() { (el as any)?.close(); }
49
+ </script>
50
+
51
+ <cx-split-button
52
+ bind:this={el}
53
+ id={typeof id === 'object' && id != null ? JSON.stringify(id) : id}
54
+ label={typeof label === 'object' && label != null ? JSON.stringify(label) : label}
55
+ variant={typeof variant === 'object' && variant != null ? JSON.stringify(variant) : variant}
56
+ intent={typeof intent === 'object' && intent != null ? JSON.stringify(intent) : intent}
57
+ shape={typeof shape === 'object' && shape != null ? JSON.stringify(shape) : shape}
58
+ size={typeof size === 'object' && size != null ? JSON.stringify(size) : size}
59
+ icon-leading={typeof iconLeading === 'object' && iconLeading != null ? JSON.stringify(iconLeading) : iconLeading}
60
+ disabled={disabled || undefined}
61
+ primary-disabled={primaryDisabled || undefined}
62
+ trigger-disabled={triggerDisabled || undefined}
63
+ trigger-label={typeof triggerLabel === 'object' && triggerLabel != null ? JSON.stringify(triggerLabel) : triggerLabel}
64
+ />