@synthaxai/ui 1.0.0 → 1.2.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 (36) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +40 -220
  3. package/dist/data-display/DataTable/DataTable.svelte +14 -8
  4. package/dist/data-display/DataTable/DataTable.svelte.d.ts +64 -61
  5. package/dist/data-display/DataTable/DataTable.svelte.d.ts.map +1 -1
  6. package/dist/forms/DatePicker/DatePicker.svelte +1564 -0
  7. package/dist/forms/DatePicker/DatePicker.svelte.d.ts +129 -0
  8. package/dist/forms/DatePicker/DatePicker.svelte.d.ts.map +1 -0
  9. package/dist/forms/DatePicker/index.d.ts +8 -0
  10. package/dist/forms/DatePicker/index.d.ts.map +1 -0
  11. package/dist/forms/DatePicker/index.js +7 -0
  12. package/dist/forms/MultiSelect/MultiSelect.svelte +1651 -0
  13. package/dist/forms/MultiSelect/MultiSelect.svelte.d.ts +127 -0
  14. package/dist/forms/MultiSelect/MultiSelect.svelte.d.ts.map +1 -0
  15. package/dist/forms/MultiSelect/index.d.ts +9 -0
  16. package/dist/forms/MultiSelect/index.d.ts.map +1 -0
  17. package/dist/forms/MultiSelect/index.js +7 -0
  18. package/dist/forms/SearchInput/SearchInput.svelte +1319 -0
  19. package/dist/forms/SearchInput/SearchInput.svelte.d.ts +148 -0
  20. package/dist/forms/SearchInput/SearchInput.svelte.d.ts.map +1 -0
  21. package/dist/forms/SearchInput/index.d.ts +9 -0
  22. package/dist/forms/SearchInput/index.d.ts.map +1 -0
  23. package/dist/forms/SearchInput/index.js +7 -0
  24. package/dist/forms/TextInput/TextInput.svelte +763 -122
  25. package/dist/forms/TextInput/TextInput.svelte.d.ts +98 -13
  26. package/dist/forms/TextInput/TextInput.svelte.d.ts.map +1 -1
  27. package/dist/forms/TextInput/index.d.ts +7 -1
  28. package/dist/forms/TextInput/index.d.ts.map +1 -1
  29. package/dist/forms/TextInput/index.js +7 -1
  30. package/dist/forms/index.d.ts +3 -0
  31. package/dist/forms/index.d.ts.map +1 -1
  32. package/dist/forms/index.js +3 -0
  33. package/dist/index.d.ts +5 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +5 -1
  36. package/package.json +7 -7
@@ -0,0 +1,127 @@
1
+ import type { Snippet } from 'svelte';
2
+ type InputSize = 'sm' | 'md' | 'lg';
3
+ /**
4
+ * Multi-select option item.
5
+ */
6
+ export interface MultiSelectOption {
7
+ /** Unique value for the option */
8
+ value: string;
9
+ /** Display label for the option */
10
+ label: string;
11
+ /** Whether the option is disabled */
12
+ disabled?: boolean;
13
+ /** Optional description shown below the label */
14
+ description?: string;
15
+ /** Optional metadata for custom rendering */
16
+ metadata?: Record<string, unknown>;
17
+ }
18
+ /**
19
+ * Grouped multi-select options.
20
+ */
21
+ export interface MultiSelectOptionGroup {
22
+ /** Group label */
23
+ label: string;
24
+ /** Options in this group */
25
+ options: MultiSelectOption[];
26
+ }
27
+ type MultiSelectOptions = MultiSelectOption[] | MultiSelectOptionGroup[];
28
+ interface Props {
29
+ /** Unique identifier for the component */
30
+ id?: string;
31
+ /** Form field name */
32
+ name?: string;
33
+ /** Label text for the field */
34
+ label: string;
35
+ /** Currently selected options (bindable) */
36
+ selected?: MultiSelectOption[];
37
+ /** Placeholder text when no selections */
38
+ placeholder?: string;
39
+ /** Options to display (flat or grouped) */
40
+ options?: MultiSelectOptions;
41
+ /** Whether the field is required */
42
+ required?: boolean;
43
+ /** Whether the field is disabled */
44
+ disabled?: boolean;
45
+ /** Whether the field is read-only */
46
+ readonly?: boolean;
47
+ /** Error message to display */
48
+ error?: string;
49
+ /** Hint text to display below the component */
50
+ hint?: string;
51
+ /** Success message when valid */
52
+ successMessage?: string;
53
+ /** Size of the component */
54
+ size?: InputSize;
55
+ /** Whether to hide the label visually (still accessible) */
56
+ hideLabel?: boolean;
57
+ /** Additional CSS classes for the wrapper */
58
+ class?: string;
59
+ /** Enable search/filter functionality */
60
+ searchable?: boolean;
61
+ /** Search placeholder text */
62
+ searchPlaceholder?: string;
63
+ /** Maximum number of selections allowed */
64
+ maxSelections?: number;
65
+ /** Whether to close dropdown after each selection */
66
+ closeOnSelect?: boolean;
67
+ /** Show loading spinner during async operations */
68
+ loading?: boolean;
69
+ /** Message to show when no options match search */
70
+ emptyMessage?: string;
71
+ /** Whether to show "Select All" option */
72
+ showSelectAll?: boolean;
73
+ /** Label for "Select All" */
74
+ selectAllLabel?: string;
75
+ /** Whether to show selected count badge */
76
+ showCount?: boolean;
77
+ /** Custom chip rendering */
78
+ chipContent?: Snippet<[MultiSelectOption]>;
79
+ /** Custom option rendering */
80
+ optionContent?: Snippet<[MultiSelectOption]>;
81
+ /** Custom empty state content */
82
+ emptyContent?: Snippet;
83
+ /** Called when selection changes */
84
+ onchange?: (selected: MultiSelectOption[]) => void;
85
+ /** Called when an option is selected */
86
+ onselect?: (option: MultiSelectOption) => void;
87
+ /** Called when an option is deselected */
88
+ ondeselect?: (option: MultiSelectOption) => void;
89
+ /** Called when search query changes */
90
+ onsearch?: (query: string) => void;
91
+ /** Test ID for e2e testing */
92
+ testId?: string;
93
+ /** Show validation state immediately */
94
+ validateOnMount?: boolean;
95
+ }
96
+ /**
97
+ * MultiSelect
98
+ *
99
+ * A fully accessible multi-select component with chips/tags display,
100
+ * following WAI-ARIA 1.2 listbox pattern. Supports searchable options,
101
+ * grouped options, and comprehensive keyboard navigation.
102
+ *
103
+ * Designed for healthcare applications requiring selection of multiple items
104
+ * such as service types, diagnoses, medications, or procedures.
105
+ *
106
+ * @example Basic usage
107
+ * <MultiSelect
108
+ * label="Service Types"
109
+ * options={serviceTypes}
110
+ * bind:selected={selectedServices}
111
+ * placeholder="Select services..."
112
+ * />
113
+ *
114
+ * @example With search and max selections
115
+ * <MultiSelect
116
+ * label="Diagnoses"
117
+ * options={diagnoses}
118
+ * bind:selected={selectedDiagnoses}
119
+ * searchable
120
+ * maxSelections={5}
121
+ * placeholder="Search diagnoses..."
122
+ * />
123
+ */
124
+ declare const MultiSelect: import("svelte").Component<Props, {}, "selected">;
125
+ type MultiSelect = ReturnType<typeof MultiSelect>;
126
+ export default MultiSelect;
127
+ //# sourceMappingURL=MultiSelect.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelect.svelte.d.ts","sourceRoot":"","sources":["../../../src/forms/MultiSelect/MultiSelect.svelte.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @synthaxai/ui - MultiSelect Component
3
+ *
4
+ * A fully accessible multi-select component with chips/tags display,
5
+ * following WAI-ARIA 1.2 listbox pattern for healthcare applications.
6
+ */
7
+ export { default as MultiSelect } from './MultiSelect.svelte';
8
+ export type { MultiSelectOption, MultiSelectOptionGroup } from './MultiSelect.svelte';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/MultiSelect/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @synthaxai/ui - MultiSelect Component
3
+ *
4
+ * A fully accessible multi-select component with chips/tags display,
5
+ * following WAI-ARIA 1.2 listbox pattern for healthcare applications.
6
+ */
7
+ export { default as MultiSelect } from './MultiSelect.svelte';