@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,129 @@
1
+ /**
2
+ * Date format options for the DatePicker.
3
+ */
4
+ export type DateFormat = 'MM/DD/YYYY' | 'DD/MM/YYYY' | 'YYYY-MM-DD';
5
+ /**
6
+ * Parses a date string into a Date object based on format.
7
+ */
8
+ export declare function parseDate(value: string, format: DateFormat): Date | null;
9
+ /**
10
+ * Formats a Date object into a string based on format.
11
+ */
12
+ export declare function formatDate(date: Date | null, format: DateFormat): string;
13
+ /**
14
+ * Calculates age from a date of birth.
15
+ */
16
+ export declare function calculateAge(dob: Date): {
17
+ years: number;
18
+ months: number;
19
+ days: number;
20
+ };
21
+ /**
22
+ * Formats age for display.
23
+ */
24
+ export declare function formatAge(dob: Date): string;
25
+ import type { Snippet } from 'svelte';
26
+ type InputSize = 'sm' | 'md' | 'lg';
27
+ interface Props {
28
+ /** Unique identifier for the input */
29
+ id?: string;
30
+ /** Form field name */
31
+ name?: string;
32
+ /** Label text for the input */
33
+ label: string;
34
+ /** Current value as ISO date string (YYYY-MM-DD) or empty string */
35
+ value?: string;
36
+ /** Display format for the date */
37
+ format?: DateFormat;
38
+ /** Placeholder text */
39
+ placeholder?: string;
40
+ /** Whether the field is required */
41
+ required?: boolean;
42
+ /** Whether the field is disabled */
43
+ disabled?: boolean;
44
+ /** Whether the field is read-only */
45
+ readonly?: boolean;
46
+ /** Error message to display */
47
+ error?: string;
48
+ /** Hint text to display below the input */
49
+ hint?: string;
50
+ /** Success message when valid */
51
+ successMessage?: string;
52
+ /** Size of the input */
53
+ size?: InputSize;
54
+ /** Icon to display on the left */
55
+ iconLeft?: Snippet;
56
+ /** Whether to hide the label visually (still accessible) */
57
+ hideLabel?: boolean;
58
+ /** Additional CSS classes for the wrapper */
59
+ class?: string;
60
+ /** Show age calculation (for DOB fields) */
61
+ showAge?: boolean;
62
+ /** Minimum selectable date */
63
+ minDate?: Date;
64
+ /** Maximum selectable date */
65
+ maxDate?: Date;
66
+ /** Disable dates in the past */
67
+ disablePast?: boolean;
68
+ /** Disable dates in the future */
69
+ disableFuture?: boolean;
70
+ /** Function to check if a specific date should be disabled */
71
+ isDateDisabled?: (date: Date) => boolean;
72
+ /** Show clear button */
73
+ clearable?: boolean;
74
+ /** Show validation state immediately without waiting for interaction */
75
+ validateOnMount?: boolean;
76
+ /** Called when value changes */
77
+ onchange?: (value: string, date: Date | null) => void;
78
+ /** Called when calendar is opened */
79
+ onopen?: () => void;
80
+ /** Called when calendar is closed */
81
+ onclose?: () => void;
82
+ /** Called when clear button is clicked */
83
+ onclear?: () => void;
84
+ /** Test ID for e2e testing */
85
+ testId?: string;
86
+ }
87
+ /**
88
+ * DatePicker
89
+ *
90
+ * A fully accessible, healthcare-grade date picker component with:
91
+ * - Calendar popup with full keyboard navigation (WAI-ARIA dialog pattern)
92
+ * - Direct text input with automatic formatting
93
+ * - Age calculation display (critical for healthcare DOB fields)
94
+ * - Min/max date constraints
95
+ * - Past/future date restrictions
96
+ * - Disabled dates support
97
+ * - Focus trap and restoration
98
+ * - Screen reader announcements for month/year navigation
99
+ *
100
+ * Follows W3C APG Date Picker Dialog pattern:
101
+ * https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/examples/datepicker-dialog/
102
+ *
103
+ * @example Basic usage
104
+ * <DatePicker
105
+ * label="Date of Birth"
106
+ * bind:value={dateOfBirth}
107
+ * showAge
108
+ * />
109
+ *
110
+ * @example Appointment scheduling (no past dates)
111
+ * <DatePicker
112
+ * label="Appointment Date"
113
+ * bind:value={appointmentDate}
114
+ * disablePast
115
+ * minDate={new Date()}
116
+ * />
117
+ *
118
+ * @example Coverage period (date range)
119
+ * <DatePicker
120
+ * label="Coverage Start"
121
+ * bind:value={coverageStart}
122
+ * minDate={new Date('2020-01-01')}
123
+ * maxDate={new Date('2030-12-31')}
124
+ * />
125
+ */
126
+ declare const DatePicker: import("svelte").Component<Props, {}, "value">;
127
+ type DatePicker = ReturnType<typeof DatePicker>;
128
+ export default DatePicker;
129
+ //# sourceMappingURL=DatePicker.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.svelte.d.ts","sourceRoot":"","sources":["../../../src/forms/DatePicker/DatePicker.svelte.ts"],"names":[],"mappings":"AAGC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEpE;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAkCxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAexE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAkBvF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAU3C;AAGF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAOrC,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC,UAAU,KAAK;IACd,sCAAsC;IACtC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,8BAA8B;IAC9B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kCAAkC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACzC,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AA4tBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,QAAA,MAAM,UAAU,gDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @synthaxai/ui - DatePicker Component
3
+ *
4
+ * A fully accessible date picker with calendar popup, input masking,
5
+ * and healthcare-specific features like age calculation.
6
+ */
7
+ export { default as DatePicker } from './DatePicker.svelte';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/DatePicker/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @synthaxai/ui - DatePicker Component
3
+ *
4
+ * A fully accessible date picker with calendar popup, input masking,
5
+ * and healthcare-specific features like age calculation.
6
+ */
7
+ export { default as DatePicker } from './DatePicker.svelte';