@dashforge/tw 1.1.1 → 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 (191) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/README.md +45 -0
  3. package/dist/index.esm.js +3985 -476
  4. package/dist/src/components/Accordion/Accordion.d.ts.map +1 -1
  5. package/dist/src/components/Accordion/accordion.types.d.ts +7 -0
  6. package/dist/src/components/Accordion/accordion.types.d.ts.map +1 -1
  7. package/dist/src/components/Alert/Alert.d.ts +1 -1
  8. package/dist/src/components/Alert/Alert.d.ts.map +1 -1
  9. package/dist/src/components/Alert/alert.types.d.ts +17 -0
  10. package/dist/src/components/Alert/alert.types.d.ts.map +1 -1
  11. package/dist/src/components/AppShell/AppShell.d.ts.map +1 -1
  12. package/dist/src/components/AppShell/appShell.types.d.ts +7 -0
  13. package/dist/src/components/AppShell/appShell.types.d.ts.map +1 -1
  14. package/dist/src/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  15. package/dist/src/components/Autocomplete/autocomplete.types.d.ts +47 -1
  16. package/dist/src/components/Autocomplete/autocomplete.types.d.ts.map +1 -1
  17. package/dist/src/components/Avatar/Avatar.d.ts.map +1 -1
  18. package/dist/src/components/Avatar/avatar.types.d.ts +17 -1
  19. package/dist/src/components/Avatar/avatar.types.d.ts.map +1 -1
  20. package/dist/src/components/Badge/Badge.d.ts.map +1 -1
  21. package/dist/src/components/Badge/badge.types.d.ts +27 -2
  22. package/dist/src/components/Badge/badge.types.d.ts.map +1 -1
  23. package/dist/src/components/Box/Box.d.ts.map +1 -1
  24. package/dist/src/components/Box/box.types.d.ts +64 -1
  25. package/dist/src/components/Box/box.types.d.ts.map +1 -1
  26. package/dist/src/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  27. package/dist/src/components/Breadcrumbs/breadcrumbs.types.d.ts +26 -1
  28. package/dist/src/components/Breadcrumbs/breadcrumbs.types.d.ts.map +1 -1
  29. package/dist/src/components/Button/Button.d.ts.map +1 -1
  30. package/dist/src/components/Button/button.types.d.ts +53 -1
  31. package/dist/src/components/Button/button.types.d.ts.map +1 -1
  32. package/dist/src/components/Calendar/Calendar.d.ts.map +1 -1
  33. package/dist/src/components/Calendar/calendar.types.d.ts +16 -0
  34. package/dist/src/components/Calendar/calendar.types.d.ts.map +1 -1
  35. package/dist/src/components/Card/Card.d.ts.map +1 -1
  36. package/dist/src/components/Card/card.types.d.ts +17 -0
  37. package/dist/src/components/Card/card.types.d.ts.map +1 -1
  38. package/dist/src/components/Checkbox/Checkbox.d.ts.map +1 -1
  39. package/dist/src/components/Checkbox/checkbox.types.d.ts +19 -1
  40. package/dist/src/components/Checkbox/checkbox.types.d.ts.map +1 -1
  41. package/dist/src/components/Chip/Chip.d.ts.map +1 -1
  42. package/dist/src/components/Chip/chip.types.d.ts +40 -1
  43. package/dist/src/components/Chip/chip.types.d.ts.map +1 -1
  44. package/dist/src/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -1
  45. package/dist/src/components/ConfirmDialog/confirmDialog.types.d.ts +30 -2
  46. package/dist/src/components/ConfirmDialog/confirmDialog.types.d.ts.map +1 -1
  47. package/dist/src/components/Container/Container.d.ts.map +1 -1
  48. package/dist/src/components/Container/container.types.d.ts +29 -1
  49. package/dist/src/components/Container/container.types.d.ts.map +1 -1
  50. package/dist/src/components/DataGrid/DataGrid.d.ts +1 -1
  51. package/dist/src/components/DataGrid/DataGrid.d.ts.map +1 -1
  52. package/dist/src/components/DataGrid/dataGrid.types.d.ts +124 -10
  53. package/dist/src/components/DataGrid/dataGrid.types.d.ts.map +1 -1
  54. package/dist/src/components/DatePicker/DatePicker.d.ts +1 -1
  55. package/dist/src/components/DatePicker/DatePicker.d.ts.map +1 -1
  56. package/dist/src/components/DatePicker/datePicker.types.d.ts +18 -0
  57. package/dist/src/components/DatePicker/datePicker.types.d.ts.map +1 -1
  58. package/dist/src/components/DateRangePicker/DateRangePicker.d.ts +1 -1
  59. package/dist/src/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  60. package/dist/src/components/DateRangePicker/dateRangePicker.types.d.ts +18 -0
  61. package/dist/src/components/DateRangePicker/dateRangePicker.types.d.ts.map +1 -1
  62. package/dist/src/components/DateTimePicker/DateTimePicker.d.ts +1 -1
  63. package/dist/src/components/DateTimePicker/DateTimePicker.d.ts.map +1 -1
  64. package/dist/src/components/DateTimePicker/dateTimePicker.types.d.ts +20 -0
  65. package/dist/src/components/DateTimePicker/dateTimePicker.types.d.ts.map +1 -1
  66. package/dist/src/components/Dialog/Dialog.d.ts.map +1 -1
  67. package/dist/src/components/Dialog/dialog.types.d.ts +25 -1
  68. package/dist/src/components/Dialog/dialog.types.d.ts.map +1 -1
  69. package/dist/src/components/Divider/Divider.d.ts.map +1 -1
  70. package/dist/src/components/Divider/divider.types.d.ts +37 -1
  71. package/dist/src/components/Divider/divider.types.d.ts.map +1 -1
  72. package/dist/src/components/Drawer/Drawer.d.ts +21 -0
  73. package/dist/src/components/Drawer/Drawer.d.ts.map +1 -0
  74. package/dist/src/components/Drawer/drawer.types.d.ts +311 -0
  75. package/dist/src/components/Drawer/drawer.types.d.ts.map +1 -0
  76. package/dist/src/components/Drawer/drawer.variants.d.ts +177 -0
  77. package/dist/src/components/Drawer/drawer.variants.d.ts.map +1 -0
  78. package/dist/src/components/Grid/Grid.d.ts.map +1 -1
  79. package/dist/src/components/Grid/grid.types.d.ts +16 -0
  80. package/dist/src/components/Grid/grid.types.d.ts.map +1 -1
  81. package/dist/src/components/IconButton/IconButton.d.ts.map +1 -1
  82. package/dist/src/components/IconButton/iconButton.types.d.ts +40 -1
  83. package/dist/src/components/IconButton/iconButton.types.d.ts.map +1 -1
  84. package/dist/src/components/LeftNav/LeftNav.d.ts.map +1 -1
  85. package/dist/src/components/LeftNav/leftNav.types.d.ts +26 -6
  86. package/dist/src/components/LeftNav/leftNav.types.d.ts.map +1 -1
  87. package/dist/src/components/Link/Link.d.ts +15 -0
  88. package/dist/src/components/Link/Link.d.ts.map +1 -0
  89. package/dist/src/components/Link/link.types.d.ts +169 -0
  90. package/dist/src/components/Link/link.types.d.ts.map +1 -0
  91. package/dist/src/components/Link/link.variants.d.ts +107 -0
  92. package/dist/src/components/Link/link.variants.d.ts.map +1 -0
  93. package/dist/src/components/Menu/Menu.d.ts +1 -1
  94. package/dist/src/components/Menu/Menu.d.ts.map +1 -1
  95. package/dist/src/components/Menu/menu.types.d.ts +20 -0
  96. package/dist/src/components/Menu/menu.types.d.ts.map +1 -1
  97. package/dist/src/components/NumberField/NumberField.d.ts.map +1 -1
  98. package/dist/src/components/NumberField/numberField.types.d.ts +47 -1
  99. package/dist/src/components/NumberField/numberField.types.d.ts.map +1 -1
  100. package/dist/src/components/OTPField/OTPField.d.ts.map +1 -1
  101. package/dist/src/components/OTPField/otpField.types.d.ts +35 -1
  102. package/dist/src/components/OTPField/otpField.types.d.ts.map +1 -1
  103. package/dist/src/components/Pagination/Pagination.d.ts.map +1 -1
  104. package/dist/src/components/Pagination/pagination.types.d.ts +26 -1
  105. package/dist/src/components/Pagination/pagination.types.d.ts.map +1 -1
  106. package/dist/src/components/Popover/Popover.d.ts.map +1 -1
  107. package/dist/src/components/Popover/popover.types.d.ts +29 -0
  108. package/dist/src/components/Popover/popover.types.d.ts.map +1 -1
  109. package/dist/src/components/Progress/Progress.d.ts +20 -0
  110. package/dist/src/components/Progress/Progress.d.ts.map +1 -0
  111. package/dist/src/components/Progress/progress.types.d.ts +200 -0
  112. package/dist/src/components/Progress/progress.types.d.ts.map +1 -0
  113. package/dist/src/components/Progress/progress.variants.d.ts +224 -0
  114. package/dist/src/components/Progress/progress.variants.d.ts.map +1 -0
  115. package/dist/src/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  116. package/dist/src/components/RadioGroup/radioGroup.types.d.ts +25 -1
  117. package/dist/src/components/RadioGroup/radioGroup.types.d.ts.map +1 -1
  118. package/dist/src/components/Select/Select.d.ts +14 -0
  119. package/dist/src/components/Select/Select.d.ts.map +1 -0
  120. package/dist/src/components/Select/select.types.d.ts +272 -0
  121. package/dist/src/components/Select/select.types.d.ts.map +1 -0
  122. package/dist/src/components/Select/select.variants.d.ts +204 -0
  123. package/dist/src/components/Select/select.variants.d.ts.map +1 -0
  124. package/dist/src/components/Skeleton/Skeleton.d.ts.map +1 -1
  125. package/dist/src/components/Skeleton/skeleton.types.d.ts +25 -1
  126. package/dist/src/components/Skeleton/skeleton.types.d.ts.map +1 -1
  127. package/dist/src/components/Slider/Slider.d.ts +15 -0
  128. package/dist/src/components/Slider/Slider.d.ts.map +1 -0
  129. package/dist/src/components/Slider/slider.types.d.ts +268 -0
  130. package/dist/src/components/Slider/slider.types.d.ts.map +1 -0
  131. package/dist/src/components/Slider/slider.variants.d.ts +313 -0
  132. package/dist/src/components/Slider/slider.variants.d.ts.map +1 -0
  133. package/dist/src/components/Snackbar/Snackbar.d.ts.map +1 -1
  134. package/dist/src/components/Snackbar/snackbar.types.d.ts +29 -5
  135. package/dist/src/components/Snackbar/snackbar.types.d.ts.map +1 -1
  136. package/dist/src/components/Spinner/Spinner.d.ts.map +1 -1
  137. package/dist/src/components/Spinner/spinner.types.d.ts +22 -2
  138. package/dist/src/components/Spinner/spinner.types.d.ts.map +1 -1
  139. package/dist/src/components/Stack/Stack.d.ts.map +1 -1
  140. package/dist/src/components/Stack/stack.types.d.ts +53 -2
  141. package/dist/src/components/Stack/stack.types.d.ts.map +1 -1
  142. package/dist/src/components/Stack/stack.variants.d.ts +23 -0
  143. package/dist/src/components/Stack/stack.variants.d.ts.map +1 -1
  144. package/dist/src/components/Stepper/Step.d.ts +30 -0
  145. package/dist/src/components/Stepper/Step.d.ts.map +1 -0
  146. package/dist/src/components/Stepper/Stepper.d.ts +15 -0
  147. package/dist/src/components/Stepper/Stepper.d.ts.map +1 -0
  148. package/dist/src/components/Stepper/StepperContext.d.ts +8 -0
  149. package/dist/src/components/Stepper/StepperContext.d.ts.map +1 -0
  150. package/dist/src/components/Stepper/stepper.types.d.ts +358 -0
  151. package/dist/src/components/Stepper/stepper.types.d.ts.map +1 -0
  152. package/dist/src/components/Stepper/stepper.variants.d.ts +253 -0
  153. package/dist/src/components/Stepper/stepper.variants.d.ts.map +1 -0
  154. package/dist/src/components/Stepper/useStep.d.ts +53 -0
  155. package/dist/src/components/Stepper/useStep.d.ts.map +1 -0
  156. package/dist/src/components/Switch/Switch.d.ts.map +1 -1
  157. package/dist/src/components/Switch/switch.types.d.ts +44 -1
  158. package/dist/src/components/Switch/switch.types.d.ts.map +1 -1
  159. package/dist/src/components/Table/Table.d.ts +1 -1
  160. package/dist/src/components/Table/Table.d.ts.map +1 -1
  161. package/dist/src/components/Table/table.types.d.ts +103 -8
  162. package/dist/src/components/Table/table.types.d.ts.map +1 -1
  163. package/dist/src/components/Tabs/Tabs.d.ts.map +1 -1
  164. package/dist/src/components/Tabs/tabs.types.d.ts +26 -1
  165. package/dist/src/components/Tabs/tabs.types.d.ts.map +1 -1
  166. package/dist/src/components/TextField/TextField.d.ts.map +1 -1
  167. package/dist/src/components/TextField/textField.types.d.ts +30 -1
  168. package/dist/src/components/TextField/textField.types.d.ts.map +1 -1
  169. package/dist/src/components/Textarea/Textarea.d.ts.map +1 -1
  170. package/dist/src/components/Textarea/textarea.types.d.ts +51 -1
  171. package/dist/src/components/Textarea/textarea.types.d.ts.map +1 -1
  172. package/dist/src/components/TimePicker/TimePicker.d.ts +1 -1
  173. package/dist/src/components/TimePicker/TimePicker.d.ts.map +1 -1
  174. package/dist/src/components/TimePicker/timePicker.types.d.ts +18 -0
  175. package/dist/src/components/TimePicker/timePicker.types.d.ts.map +1 -1
  176. package/dist/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  177. package/dist/src/components/Tooltip/tooltip.types.d.ts +30 -0
  178. package/dist/src/components/Tooltip/tooltip.types.d.ts.map +1 -1
  179. package/dist/src/components/TopBar/TopBar.d.ts.map +1 -1
  180. package/dist/src/components/TopBar/topBar.types.d.ts +25 -1
  181. package/dist/src/components/TopBar/topBar.types.d.ts.map +1 -1
  182. package/dist/src/components/Typography/Typography.d.ts.map +1 -1
  183. package/dist/src/components/Typography/typography.types.d.ts +47 -1
  184. package/dist/src/components/Typography/typography.types.d.ts.map +1 -1
  185. package/dist/src/components/Typography/typography.variants.d.ts +2 -2
  186. package/dist/src/components/Typography/typography.variants.d.ts.map +1 -1
  187. package/dist/src/hooks/useStandaloneFieldWarning.d.ts +38 -0
  188. package/dist/src/hooks/useStandaloneFieldWarning.d.ts.map +1 -0
  189. package/dist/src/index.d.ts +61 -41
  190. package/dist/src/index.d.ts.map +1 -1
  191. package/package.json +6 -5
@@ -0,0 +1,204 @@
1
+ import { type VariantProps } from 'tailwind-variants';
2
+ /**
3
+ * Tailwind-variants recipe for `<Select>` — enum picker with slots.
4
+ *
5
+ * Slots (mirror Autocomplete where semantics overlap so Blueprint's
6
+ * TwSelect binding migration is a rename, not a rewrite):
7
+ * - `root` — outer wrapper (label + trigger + helper/error)
8
+ * - `label` — text label above the trigger
9
+ * - `requiredMark` — red `*` for required fields
10
+ * - `trigger` — button surface displaying the current value
11
+ * - `triggerText` — the selected label text (or placeholder)
12
+ * - `triggerPlaceholder` — muted placeholder when no value is selected
13
+ * - `chevron` — caret glyph on the trigger, rotates on open
14
+ * - `popover` — floating panel containing the option list
15
+ * - `listBox` — the `<ul>` wrapping the options
16
+ * - `listItem` — single option row
17
+ * - `listItemIndicator` — checkmark on the currently-selected option
18
+ * - `emptyState` — fallback when the options array is empty
19
+ * - `helperText` — descriptive line below the trigger
20
+ * - `errorText` — semantic counterpart for error mode
21
+ * - `chipsList` — wrapper around selected chips (multi-select only)
22
+ * - `chip` — individual selected chip
23
+ * - `chipRemove` — `×` button on a chip
24
+ *
25
+ * Sized / laid-out via the same axes as Autocomplete for consistency —
26
+ * consumers switching between the two get identical density knobs.
27
+ */
28
+ export declare const selectVariants: import("tailwind-variants").TVReturnType<{
29
+ size: {
30
+ sm: {
31
+ trigger: string;
32
+ chevron: string;
33
+ };
34
+ md: {
35
+ trigger: string;
36
+ chevron: string;
37
+ };
38
+ lg: {
39
+ trigger: string;
40
+ chevron: string;
41
+ };
42
+ };
43
+ layout: {
44
+ stacked: {
45
+ root: string;
46
+ };
47
+ inline: {
48
+ root: string;
49
+ label: string;
50
+ };
51
+ };
52
+ error: {
53
+ true: {
54
+ trigger: string;
55
+ };
56
+ };
57
+ fullWidth: {
58
+ true: {
59
+ root: string;
60
+ trigger: string;
61
+ };
62
+ };
63
+ disabled: {
64
+ true: {
65
+ trigger: string;
66
+ };
67
+ };
68
+ }, {
69
+ root: string;
70
+ label: string;
71
+ requiredMark: string;
72
+ trigger: string[];
73
+ triggerText: string[];
74
+ triggerPlaceholder: string[];
75
+ chevron: string[];
76
+ popover: string[];
77
+ listBox: string;
78
+ listItem: string[];
79
+ listItemIndicator: string[];
80
+ emptyState: string;
81
+ helperText: string;
82
+ errorText: string;
83
+ chipsList: string;
84
+ chip: string[];
85
+ chipRemove: string[];
86
+ }, undefined, {
87
+ size: {
88
+ sm: {
89
+ trigger: string;
90
+ chevron: string;
91
+ };
92
+ md: {
93
+ trigger: string;
94
+ chevron: string;
95
+ };
96
+ lg: {
97
+ trigger: string;
98
+ chevron: string;
99
+ };
100
+ };
101
+ layout: {
102
+ stacked: {
103
+ root: string;
104
+ };
105
+ inline: {
106
+ root: string;
107
+ label: string;
108
+ };
109
+ };
110
+ error: {
111
+ true: {
112
+ trigger: string;
113
+ };
114
+ };
115
+ fullWidth: {
116
+ true: {
117
+ root: string;
118
+ trigger: string;
119
+ };
120
+ };
121
+ disabled: {
122
+ true: {
123
+ trigger: string;
124
+ };
125
+ };
126
+ }, {
127
+ root: string;
128
+ label: string;
129
+ requiredMark: string;
130
+ trigger: string[];
131
+ triggerText: string[];
132
+ triggerPlaceholder: string[];
133
+ chevron: string[];
134
+ popover: string[];
135
+ listBox: string;
136
+ listItem: string[];
137
+ listItemIndicator: string[];
138
+ emptyState: string;
139
+ helperText: string;
140
+ errorText: string;
141
+ chipsList: string;
142
+ chip: string[];
143
+ chipRemove: string[];
144
+ }, import("tailwind-variants").TVReturnType<{
145
+ size: {
146
+ sm: {
147
+ trigger: string;
148
+ chevron: string;
149
+ };
150
+ md: {
151
+ trigger: string;
152
+ chevron: string;
153
+ };
154
+ lg: {
155
+ trigger: string;
156
+ chevron: string;
157
+ };
158
+ };
159
+ layout: {
160
+ stacked: {
161
+ root: string;
162
+ };
163
+ inline: {
164
+ root: string;
165
+ label: string;
166
+ };
167
+ };
168
+ error: {
169
+ true: {
170
+ trigger: string;
171
+ };
172
+ };
173
+ fullWidth: {
174
+ true: {
175
+ root: string;
176
+ trigger: string;
177
+ };
178
+ };
179
+ disabled: {
180
+ true: {
181
+ trigger: string;
182
+ };
183
+ };
184
+ }, {
185
+ root: string;
186
+ label: string;
187
+ requiredMark: string;
188
+ trigger: string[];
189
+ triggerText: string[];
190
+ triggerPlaceholder: string[];
191
+ chevron: string[];
192
+ popover: string[];
193
+ listBox: string;
194
+ listItem: string[];
195
+ listItemIndicator: string[];
196
+ emptyState: string;
197
+ helperText: string;
198
+ errorText: string;
199
+ chipsList: string;
200
+ chip: string[];
201
+ chipRemove: string[];
202
+ }, undefined, unknown, unknown, undefined>>;
203
+ export type SelectVariants = VariantProps<typeof selectVariants>;
204
+ //# sourceMappingURL=select.variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.variants.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/select.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA4GzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAuB5C"}
1
+ {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CA0B5C"}
@@ -1,4 +1,17 @@
1
1
  import type { SkeletonVariants } from './skeleton.variants.js';
2
+ /**
3
+ * Subset of `<Skeleton>` props theme-configurable via
4
+ * `theme.components.Skeleton.defaults` (Option C).
5
+ */
6
+ export type SkeletonVariantProps = Pick<SkeletonVariants, 'variant' | 'animation'>;
7
+ declare module '@dashforge/tw-tokens' {
8
+ interface TWComponentDefaults {
9
+ Skeleton?: {
10
+ defaults?: Partial<SkeletonVariantProps>;
11
+ slotProps?: SkeletonSlotProps;
12
+ };
13
+ }
14
+ }
2
15
  export interface SkeletonSlotProps {
3
16
  /** Root element override. */
4
17
  root?: {
@@ -35,7 +48,18 @@ export interface SkeletonSlotProps {
35
48
  * </div>
36
49
  * ```
37
50
  */
38
- export interface SkeletonProps extends Pick<SkeletonVariants, 'variant' | 'animation'> {
51
+ export interface SkeletonProps {
52
+ /**
53
+ * Shape preset — `text` (rounded rectangle sized for a line),
54
+ * `rectangle` (larger block), `circle` (avatar shape).
55
+ * @default 'text'
56
+ */
57
+ variant?: SkeletonVariants['variant'];
58
+ /**
59
+ * Loading animation style. Always `motion-reduce` safe.
60
+ * @default 'pulse'
61
+ */
62
+ animation?: SkeletonVariants['animation'];
39
63
  /**
40
64
  * CSS width (e.g. `"200px"`, `"100%"`, `"60%"`).
41
65
  *
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Skeleton/skeleton.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,WAAW,CAAC;IACvD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B"}
1
+ {"version":3,"file":"skeleton.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Skeleton/skeleton.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;AAEnF,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,mBAAmB;QAC3B,QAAQ,CAAC,EAAE;YACT,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACzC,SAAS,CAAC,EAAE,iBAAiB,CAAC;SAC/B,CAAC;KACH;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAEtC;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAE1C;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B"}
@@ -0,0 +1,15 @@
1
+ import type { SliderProps, SliderSingleProps, SliderRangeProps } from './slider.types.js';
2
+ /**
3
+ * Dashforge TW `<Slider>` — token-driven numeric value picker.
4
+ *
5
+ * Single or range mode via `range?: boolean` discriminator. Bridge
6
+ * integration mirrors TextField / Autocomplete / Select. Commit to the
7
+ * form bridge on drag-end by default (`onValueCommit`); opt into
8
+ * per-tick commits via `commitOnChange`. Keyboard changes always
9
+ * commit immediately.
10
+ *
11
+ * See {@link SliderProps} for the full API surface.
12
+ */
13
+ export declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HTMLSpanElement>>;
14
+ export type { SliderSingleProps, SliderRangeProps };
15
+ //# sourceMappingURL=Slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../../src/components/Slider/Slider.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAEV,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAgE3B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,yGAyXjB,CAAC;AAOH,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,268 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { Engine } from '@dashforge/ui-core';
3
+ import type { AccessRequirement } from '@dashforge/rbac';
4
+ import type { SliderVariants } from './slider.variants.js';
5
+ /**
6
+ * The value shape a `<Slider>` accepts.
7
+ *
8
+ * - `number` — single-value mode (default). Common: volume, opacity,
9
+ * threshold, rating.
10
+ * - `readonly [number, number]` — range mode (`range={true}`). Common:
11
+ * price range, min/max filter, time window.
12
+ */
13
+ export type SliderValue = number | readonly [number, number];
14
+ /**
15
+ * A tick on the track.
16
+ *
17
+ * @property value — the numeric position on the track (must be within
18
+ * `[min, max]`).
19
+ * @property label — optional display node under the tick. Passing
20
+ * `undefined` renders only the tick, no text.
21
+ */
22
+ export interface SliderMark {
23
+ value: number;
24
+ label?: ReactNode;
25
+ }
26
+ /**
27
+ * Subset of `<Slider>` props theme-configurable via
28
+ * `theme.components.Slider.defaults` (Option C).
29
+ *
30
+ * These are the visual axes a DS typically pins application-wide —
31
+ * density, layout, color intent. `error` / `disabled` / `fullWidth`
32
+ * are per-instance state axes, not visual identity.
33
+ */
34
+ export type SliderVariantProps = Pick<SliderVariants, 'size' | 'layout' | 'color' | 'fullWidth'>;
35
+ /**
36
+ * Per-slot override map. See {@link sliderVariants} for the full slot
37
+ * roster.
38
+ */
39
+ export interface SliderSlotProps {
40
+ root?: {
41
+ className?: string;
42
+ };
43
+ label?: {
44
+ className?: string;
45
+ };
46
+ requiredMark?: {
47
+ className?: string;
48
+ };
49
+ controlWrapper?: {
50
+ className?: string;
51
+ };
52
+ track?: {
53
+ className?: string;
54
+ };
55
+ rangeSegment?: {
56
+ className?: string;
57
+ };
58
+ thumb?: {
59
+ className?: string;
60
+ };
61
+ mark?: {
62
+ className?: string;
63
+ };
64
+ markLabel?: {
65
+ className?: string;
66
+ };
67
+ valueLabel?: {
68
+ className?: string;
69
+ };
70
+ helperText?: {
71
+ className?: string;
72
+ };
73
+ errorText?: {
74
+ className?: string;
75
+ };
76
+ }
77
+ declare module '@dashforge/tw-tokens' {
78
+ interface TWComponentDefaults {
79
+ Slider?: {
80
+ defaults?: Partial<SliderVariantProps>;
81
+ slotProps?: SliderSlotProps;
82
+ };
83
+ }
84
+ }
85
+ interface SliderCommonProps {
86
+ /**
87
+ * Field name. Required — matches every other tw form widget. Enforced
88
+ * at the type level to prevent the "silent no-op" family of bugs
89
+ * (see #113).
90
+ */
91
+ name: string;
92
+ /**
93
+ * RHF rules. Forwarded to `bridge.register(name, rules)` inside a
94
+ * `<DashFormProvider>`. Ignored standalone.
95
+ */
96
+ rules?: unknown;
97
+ /** Text or node above (or to the left in `inline` layout) the control. */
98
+ label?: ReactNode;
99
+ /** Descriptive line below the control. Replaced by the validation error message when the field is invalid. */
100
+ helperText?: ReactNode;
101
+ /** Force error state (danger colour on track + thumb, `aria-invalid` on the thumb). */
102
+ error?: boolean;
103
+ /** Renders the red `*` next to the label. */
104
+ required?: boolean;
105
+ /** Grays out the control; blocks drag + keyboard. */
106
+ disabled?: boolean;
107
+ /** Stretches the root to `w-full`. */
108
+ fullWidth?: boolean;
109
+ /**
110
+ * Layout — `stacked` (label above) or `inline` (label left of the
111
+ * control). Matches TextField / Select / Autocomplete.
112
+ * @default 'stacked'
113
+ */
114
+ layout?: SliderVariants['layout'];
115
+ /**
116
+ * Density knob.
117
+ * @default 'md'
118
+ */
119
+ size?: SliderVariants['size'];
120
+ /**
121
+ * Colour intent for the range segment + thumb + value label.
122
+ * `neutral` auto-inverts via the preset CSS-var swap. Configurable
123
+ * application-wide via `theme.components.Slider.defaults.color`.
124
+ * @default 'primary'
125
+ */
126
+ color?: SliderVariants['color'];
127
+ /** Reactive visibility predicate. Falsy → renders null. */
128
+ visibleWhen?: (engine: Engine) => boolean;
129
+ /** RBAC gate — see `useAccessState`. */
130
+ access?: AccessRequirement;
131
+ /** Lower bound of the track. @default 0 */
132
+ min?: number;
133
+ /** Upper bound of the track. @default 100 */
134
+ max?: number;
135
+ /**
136
+ * Step size between valid values. `keyboardStep` in Radix defaults
137
+ * to this. Set to `1` for integers, `0.1` / `0.01` for fractional.
138
+ * @default 1
139
+ */
140
+ step?: number;
141
+ /**
142
+ * Tick marks on the track.
143
+ *
144
+ * - `readonly SliderMark[]` — explicit marks with optional labels.
145
+ * - `true` — auto-generate marks at every `step` position (only up to
146
+ * a reasonable density; skipped if the resulting count > 21).
147
+ * - `false` / omitted — no marks.
148
+ */
149
+ marks?: readonly SliderMark[] | boolean;
150
+ /**
151
+ * Show the current value as a tooltip above the thumb.
152
+ *
153
+ * - `'auto'` — visible on hover, drag, or keyboard focus.
154
+ * - `'always'` — always visible.
155
+ * - `'off'` — never rendered.
156
+ *
157
+ * @default 'off'
158
+ */
159
+ showValueLabel?: 'auto' | 'always' | 'off';
160
+ /**
161
+ * Format the display value in the value label tooltip and in the
162
+ * marks' labels when `marks: true` auto-labelling kicks in.
163
+ * @default (value) => String(value)
164
+ */
165
+ formatValue?: (value: number) => ReactNode;
166
+ /**
167
+ * When true, writes to the form bridge on every drag tick instead of
168
+ * only on drag-end. Costs 60 setValue/sec during drag but gives the
169
+ * "value in form == value shown" semantic if the consumer's form
170
+ * depends on the value reactively (e.g. price-range filter feeding a
171
+ * live product list).
172
+ *
173
+ * Keyboard changes always commit immediately regardless of this
174
+ * setting — each arrow-key press is a single tick + commit.
175
+ *
176
+ * @default false
177
+ */
178
+ commitOnChange?: boolean;
179
+ /**
180
+ * Utility-class shortcut for `slotProps.controlWrapper.className` —
181
+ * mirrors the Dashforge idiom on other primitives.
182
+ */
183
+ sx?: string;
184
+ /** Per-slot overrides. */
185
+ slotProps?: SliderSlotProps;
186
+ /** `data-testid` on the root wrapper. */
187
+ testId?: string;
188
+ }
189
+ /**
190
+ * Single-value mode — `range` omitted or `false`. `value` /
191
+ * `defaultValue` are `number`; `onChange` / `onCommit` receive `number`.
192
+ */
193
+ export interface SliderSingleProps extends SliderCommonProps {
194
+ range?: false;
195
+ /** Controlled value. */
196
+ value?: number;
197
+ /** Uncontrolled initial value. */
198
+ defaultValue?: number;
199
+ /**
200
+ * Fires on every drag tick + keyboard step. UI-side handler — does
201
+ * NOT write to the bridge unless `commitOnChange` is true.
202
+ */
203
+ onChange?: (value: number) => void;
204
+ /**
205
+ * Fires on drag-end (pointer up) and on every keyboard step. This is
206
+ * what writes to the form bridge — matches MUI / Ant defaults.
207
+ */
208
+ onCommit?: (value: number) => void;
209
+ onBlur?: () => void;
210
+ }
211
+ /**
212
+ * Range mode — `range={true}`. `value` / `defaultValue` are
213
+ * `[number, number]`; `onChange` / `onCommit` receive the tuple.
214
+ */
215
+ export interface SliderRangeProps extends SliderCommonProps {
216
+ range: true;
217
+ /** Controlled `[min, max]` tuple. */
218
+ value?: readonly [number, number];
219
+ /** Uncontrolled initial `[min, max]` tuple. */
220
+ defaultValue?: readonly [number, number];
221
+ /** UI-side per-tick callback. */
222
+ onChange?: (value: readonly [number, number]) => void;
223
+ /** Drag-end / keyboard-step callback. Writes to the bridge. */
224
+ onCommit?: (value: readonly [number, number]) => void;
225
+ onBlur?: () => void;
226
+ }
227
+ /**
228
+ * Props for `<Slider>`.
229
+ *
230
+ * Discriminated on `range` — TypeScript narrows `value` / `onChange` /
231
+ * `onCommit` to `number` (single) or `[number, number]` (range) based
232
+ * on the runtime `range` prop.
233
+ *
234
+ * @example Single-value (volume slider)
235
+ * ```tsx
236
+ * <Slider name="volume" min={0} max={100} value={volume} onCommit={setVolume} />
237
+ * ```
238
+ *
239
+ * @example Range (price filter)
240
+ * ```tsx
241
+ * <Slider
242
+ * name="priceRange"
243
+ * range
244
+ * min={0}
245
+ * max={1000}
246
+ * value={[100, 500]}
247
+ * onCommit={setPriceRange}
248
+ * />
249
+ * ```
250
+ *
251
+ * @example Marks with labels + custom formatter
252
+ * ```tsx
253
+ * <Slider
254
+ * name="brightness"
255
+ * min={0} max={100} step={25}
256
+ * marks={[
257
+ * { value: 0, label: 'Off' },
258
+ * { value: 50, label: 'Med' },
259
+ * { value: 100, label: 'Max' },
260
+ * ]}
261
+ * showValueLabel="auto"
262
+ * formatValue={(v) => `${v}%`}
263
+ * />
264
+ * ```
265
+ */
266
+ export type SliderProps = SliderSingleProps | SliderRangeProps;
267
+ export {};
268
+ //# sourceMappingURL=slider.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Slider/slider.types.ts"],"names":[],"mappings":"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"}