@dashforge/tw 0.1.0-beta → 0.2.1-beta

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 (195) hide show
  1. package/A11Y.md +130 -0
  2. package/CHANGELOG.md +231 -0
  3. package/dist/index.d.ts +1 -82
  4. package/dist/index.esm.js +1608 -11
  5. package/dist/src/components/AspectRatio/AspectRatio.d.ts +36 -0
  6. package/dist/src/components/AspectRatio/AspectRatio.d.ts.map +1 -0
  7. package/dist/src/components/AspectRatio/aspectRatio.types.d.ts +50 -0
  8. package/dist/src/components/AspectRatio/aspectRatio.types.d.ts.map +1 -0
  9. package/dist/src/components/Box/Box.d.ts +36 -0
  10. package/dist/src/components/Box/Box.d.ts.map +1 -0
  11. package/dist/src/components/Box/box.types.d.ts +54 -0
  12. package/dist/src/components/Box/box.types.d.ts.map +1 -0
  13. package/dist/src/components/Box/box.variants.d.ts +402 -0
  14. package/dist/src/components/Box/box.variants.d.ts.map +1 -0
  15. package/dist/src/components/Button/Button.d.ts.map +1 -1
  16. package/dist/src/components/Checkbox/Checkbox.d.ts.map +1 -1
  17. package/dist/src/components/Container/Container.d.ts +35 -0
  18. package/dist/src/components/Container/Container.d.ts.map +1 -0
  19. package/dist/src/components/Container/container.types.d.ts +41 -0
  20. package/dist/src/components/Container/container.types.d.ts.map +1 -0
  21. package/dist/src/components/Container/container.variants.d.ts +93 -0
  22. package/dist/src/components/Container/container.variants.d.ts.map +1 -0
  23. package/dist/src/components/Divider/Divider.d.ts +50 -0
  24. package/dist/src/components/Divider/Divider.d.ts.map +1 -0
  25. package/dist/src/components/Divider/divider.types.d.ts +47 -0
  26. package/dist/src/components/Divider/divider.types.d.ts.map +1 -0
  27. package/dist/src/components/Divider/divider.variants.d.ts +129 -0
  28. package/dist/src/components/Divider/divider.variants.d.ts.map +1 -0
  29. package/dist/src/components/Grid/Grid.d.ts +32 -0
  30. package/dist/src/components/Grid/Grid.d.ts.map +1 -0
  31. package/dist/src/components/Grid/grid.types.d.ts +103 -0
  32. package/dist/src/components/Grid/grid.types.d.ts.map +1 -0
  33. package/dist/src/components/Grid/grid.variants.d.ts +453 -0
  34. package/dist/src/components/Grid/grid.variants.d.ts.map +1 -0
  35. package/dist/src/components/NumberField/NumberField.d.ts.map +1 -1
  36. package/dist/src/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  37. package/dist/src/components/Stack/Stack.d.ts +24 -0
  38. package/dist/src/components/Stack/Stack.d.ts.map +1 -0
  39. package/dist/src/components/Stack/stack.types.d.ts +61 -0
  40. package/dist/src/components/Stack/stack.types.d.ts.map +1 -0
  41. package/dist/src/components/Stack/stack.variants.d.ts +163 -0
  42. package/dist/src/components/Stack/stack.variants.d.ts.map +1 -0
  43. package/dist/src/components/Typography/Typography.d.ts +42 -0
  44. package/dist/src/components/Typography/Typography.d.ts.map +1 -0
  45. package/dist/src/components/Typography/typography.types.d.ts +61 -0
  46. package/dist/src/components/Typography/typography.types.d.ts.map +1 -0
  47. package/dist/src/components/Typography/typography.variants.d.ts +167 -0
  48. package/dist/src/components/Typography/typography.variants.d.ts.map +1 -0
  49. package/dist/src/components/VisuallyHidden/VisuallyHidden.d.ts +42 -0
  50. package/dist/src/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
  51. package/dist/src/components/VisuallyHidden/visuallyHidden.types.d.ts +42 -0
  52. package/dist/src/components/VisuallyHidden/visuallyHidden.types.d.ts.map +1 -0
  53. package/dist/src/index.d.ts +23 -1
  54. package/dist/src/index.d.ts.map +1 -1
  55. package/package.json +3 -3
  56. package/src/components/AspectRatio/AspectRatio.test.tsx +173 -0
  57. package/src/components/AspectRatio/AspectRatio.tsx +73 -0
  58. package/src/components/AspectRatio/aspectRatio.types.ts +54 -0
  59. package/src/components/Box/Box.test.tsx +349 -0
  60. package/src/components/Box/Box.tsx +83 -0
  61. package/src/components/Box/box.types.ts +61 -0
  62. package/src/components/Box/box.variants.ts +211 -0
  63. package/src/components/Button/Button.tsx +11 -0
  64. package/src/components/Checkbox/Checkbox.tsx +26 -2
  65. package/src/components/Container/Container.test.tsx +209 -0
  66. package/src/components/Container/Container.tsx +74 -0
  67. package/src/components/Container/container.types.ts +45 -0
  68. package/src/components/Container/container.variants.ts +81 -0
  69. package/src/components/Divider/Divider.test.tsx +241 -0
  70. package/src/components/Divider/Divider.tsx +140 -0
  71. package/src/components/Divider/divider.types.ts +52 -0
  72. package/src/components/Divider/divider.variants.ts +115 -0
  73. package/src/components/Grid/Grid.test.tsx +321 -0
  74. package/src/components/Grid/Grid.tsx +148 -0
  75. package/src/components/Grid/grid.types.ts +112 -0
  76. package/src/components/Grid/grid.variants.ts +133 -0
  77. package/src/components/NumberField/NumberField.tsx +30 -2
  78. package/src/components/RadioGroup/RadioGroup.tsx +23 -1
  79. package/src/components/Stack/Stack.test.tsx +309 -0
  80. package/src/components/Stack/Stack.tsx +115 -0
  81. package/src/components/Stack/stack.types.ts +68 -0
  82. package/src/components/Stack/stack.variants.ts +80 -0
  83. package/src/components/Typography/Typography.test.tsx +230 -0
  84. package/src/components/Typography/Typography.tsx +112 -0
  85. package/src/components/Typography/typography.types.ts +65 -0
  86. package/src/components/Typography/typography.variants.ts +113 -0
  87. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +86 -0
  88. package/src/components/VisuallyHidden/VisuallyHidden.tsx +59 -0
  89. package/src/components/VisuallyHidden/visuallyHidden.types.ts +45 -0
  90. package/src/index.ts +50 -1
  91. package/LICENSE +0 -21
  92. package/dist/components/AppShell/AppShell.d.ts +0 -32
  93. package/dist/components/AppShell/AppShell.d.ts.map +0 -1
  94. package/dist/components/AppShell/appShell.types.d.ts +0 -62
  95. package/dist/components/AppShell/appShell.types.d.ts.map +0 -1
  96. package/dist/components/AppShell/appShell.variants.d.ts +0 -65
  97. package/dist/components/AppShell/appShell.variants.d.ts.map +0 -1
  98. package/dist/components/Autocomplete/Autocomplete.d.ts +0 -32
  99. package/dist/components/Autocomplete/Autocomplete.d.ts.map +0 -1
  100. package/dist/components/Autocomplete/autocomplete.types.d.ts +0 -214
  101. package/dist/components/Autocomplete/autocomplete.types.d.ts.map +0 -1
  102. package/dist/components/Autocomplete/autocomplete.variants.d.ts +0 -214
  103. package/dist/components/Autocomplete/autocomplete.variants.d.ts.map +0 -1
  104. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +0 -23
  105. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +0 -1
  106. package/dist/components/Breadcrumbs/breadcrumbs.types.d.ts +0 -98
  107. package/dist/components/Breadcrumbs/breadcrumbs.types.d.ts.map +0 -1
  108. package/dist/components/Breadcrumbs/breadcrumbs.variants.d.ts +0 -85
  109. package/dist/components/Breadcrumbs/breadcrumbs.variants.d.ts.map +0 -1
  110. package/dist/components/Button/Button.d.ts +0 -44
  111. package/dist/components/Button/Button.d.ts.map +0 -1
  112. package/dist/components/Button/button.types.d.ts +0 -66
  113. package/dist/components/Button/button.types.d.ts.map +0 -1
  114. package/dist/components/Button/button.variants.d.ts +0 -104
  115. package/dist/components/Button/button.variants.d.ts.map +0 -1
  116. package/dist/components/Checkbox/Checkbox.d.ts +0 -31
  117. package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
  118. package/dist/components/Checkbox/checkbox.types.d.ts +0 -86
  119. package/dist/components/Checkbox/checkbox.types.d.ts.map +0 -1
  120. package/dist/components/Checkbox/checkbox.variants.d.ts +0 -109
  121. package/dist/components/Checkbox/checkbox.variants.d.ts.map +0 -1
  122. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +0 -38
  123. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +0 -1
  124. package/dist/components/ConfirmDialog/confirmDialog.types.d.ts +0 -80
  125. package/dist/components/ConfirmDialog/confirmDialog.types.d.ts.map +0 -1
  126. package/dist/components/ConfirmDialog/confirmDialog.variants.d.ts +0 -90
  127. package/dist/components/ConfirmDialog/confirmDialog.variants.d.ts.map +0 -1
  128. package/dist/components/DateTimePicker/DateTimePicker.d.ts +0 -49
  129. package/dist/components/DateTimePicker/DateTimePicker.d.ts.map +0 -1
  130. package/dist/components/DateTimePicker/dateTimePicker.types.d.ts +0 -95
  131. package/dist/components/DateTimePicker/dateTimePicker.types.d.ts.map +0 -1
  132. package/dist/components/DateTimePicker/dateTimePicker.variants.d.ts +0 -165
  133. package/dist/components/DateTimePicker/dateTimePicker.variants.d.ts.map +0 -1
  134. package/dist/components/LeftNav/LeftNav.d.ts +0 -34
  135. package/dist/components/LeftNav/LeftNav.d.ts.map +0 -1
  136. package/dist/components/LeftNav/leftNav.types.d.ts +0 -136
  137. package/dist/components/LeftNav/leftNav.types.d.ts.map +0 -1
  138. package/dist/components/LeftNav/leftNav.variants.d.ts +0 -143
  139. package/dist/components/LeftNav/leftNav.variants.d.ts.map +0 -1
  140. package/dist/components/NumberField/NumberField.d.ts +0 -18
  141. package/dist/components/NumberField/NumberField.d.ts.map +0 -1
  142. package/dist/components/NumberField/numberField.types.d.ts +0 -79
  143. package/dist/components/NumberField/numberField.types.d.ts.map +0 -1
  144. package/dist/components/NumberField/numberField.variants.d.ts +0 -169
  145. package/dist/components/NumberField/numberField.variants.d.ts.map +0 -1
  146. package/dist/components/OTPField/OTPField.d.ts +0 -25
  147. package/dist/components/OTPField/OTPField.d.ts.map +0 -1
  148. package/dist/components/OTPField/otpField.types.d.ts +0 -74
  149. package/dist/components/OTPField/otpField.types.d.ts.map +0 -1
  150. package/dist/components/OTPField/otpField.variants.d.ts +0 -105
  151. package/dist/components/OTPField/otpField.variants.d.ts.map +0 -1
  152. package/dist/components/RadioGroup/RadioGroup.d.ts +0 -35
  153. package/dist/components/RadioGroup/RadioGroup.d.ts.map +0 -1
  154. package/dist/components/RadioGroup/radioGroup.types.d.ts +0 -103
  155. package/dist/components/RadioGroup/radioGroup.types.d.ts.map +0 -1
  156. package/dist/components/RadioGroup/radioGroup.variants.d.ts +0 -166
  157. package/dist/components/RadioGroup/radioGroup.variants.d.ts.map +0 -1
  158. package/dist/components/Snackbar/Snackbar.d.ts +0 -37
  159. package/dist/components/Snackbar/Snackbar.d.ts.map +0 -1
  160. package/dist/components/Snackbar/snackbar.types.d.ts +0 -86
  161. package/dist/components/Snackbar/snackbar.types.d.ts.map +0 -1
  162. package/dist/components/Snackbar/snackbar.variants.d.ts +0 -153
  163. package/dist/components/Snackbar/snackbar.variants.d.ts.map +0 -1
  164. package/dist/components/Switch/Switch.d.ts +0 -15
  165. package/dist/components/Switch/Switch.d.ts.map +0 -1
  166. package/dist/components/Switch/switch.types.d.ts +0 -47
  167. package/dist/components/Switch/switch.types.d.ts.map +0 -1
  168. package/dist/components/Switch/switch.variants.d.ts +0 -105
  169. package/dist/components/Switch/switch.variants.d.ts.map +0 -1
  170. package/dist/components/TextField/TextField.d.ts +0 -25
  171. package/dist/components/TextField/TextField.d.ts.map +0 -1
  172. package/dist/components/TextField/textField.types.d.ts +0 -72
  173. package/dist/components/TextField/textField.types.d.ts.map +0 -1
  174. package/dist/components/TextField/textField.variants.d.ts +0 -160
  175. package/dist/components/TextField/textField.variants.d.ts.map +0 -1
  176. package/dist/components/Textarea/Textarea.d.ts +0 -16
  177. package/dist/components/Textarea/Textarea.d.ts.map +0 -1
  178. package/dist/components/Textarea/textarea.types.d.ts +0 -63
  179. package/dist/components/Textarea/textarea.types.d.ts.map +0 -1
  180. package/dist/components/Textarea/textarea.variants.d.ts +0 -197
  181. package/dist/components/Textarea/textarea.variants.d.ts.map +0 -1
  182. package/dist/components/TopBar/TopBar.d.ts +0 -33
  183. package/dist/components/TopBar/TopBar.d.ts.map +0 -1
  184. package/dist/components/TopBar/topBar.types.d.ts +0 -49
  185. package/dist/components/TopBar/topBar.types.d.ts.map +0 -1
  186. package/dist/components/TopBar/topBar.variants.d.ts +0 -79
  187. package/dist/components/TopBar/topBar.variants.d.ts.map +0 -1
  188. package/dist/components/_shared/resolveValidationState.d.ts +0 -42
  189. package/dist/components/_shared/resolveValidationState.d.ts.map +0 -1
  190. package/dist/hooks/useAccessState.d.ts +0 -37
  191. package/dist/hooks/useAccessState.d.ts.map +0 -1
  192. package/dist/index.d.ts.map +0 -1
  193. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  194. package/dist/utils/cn.d.ts +0 -26
  195. package/dist/utils/cn.d.ts.map +0 -1
@@ -1,103 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import type { Engine } from '@dashforge/ui-core';
3
- import type { AccessRequirement } from '@dashforge/rbac';
4
- import type { RadioGroupVariants } from './radioGroup.variants.js';
5
- /**
6
- * A single selectable option in a `<RadioGroup>`.
7
- */
8
- export interface RadioGroupOption {
9
- /** The string value persisted on the form for this option. */
10
- value: string;
11
- /** Display label (string or any React node — e.g. with an icon). */
12
- label: ReactNode;
13
- /** Per-option explicit disable. ORed with group-level disable + RBAC. */
14
- disabled?: boolean;
15
- /**
16
- * RBAC access requirement for this specific option:
17
- * - `onUnauthorized: 'hide'` → option not rendered (unless it's the currently selected value, kept disabled to expose the choice)
18
- * - `onUnauthorized: 'disable'` → option visible but not selectable
19
- * - `onUnauthorized: 'readonly'` → falls back to disabled (radios have no true readonly semantics)
20
- *
21
- * Group-level access has **precedence** over option-level access — if the
22
- * whole group is hidden/disabled, that wins for all options regardless of
23
- * their own access.
24
- */
25
- access?: AccessRequirement;
26
- }
27
- /**
28
- * Optional className override for each slot. Use to extend specific parts
29
- * of the recipe without losing the default classes. Override semantics
30
- * follow the `tailwind-merge` last-wins rule.
31
- */
32
- export interface RadioGroupSlotProps {
33
- root?: {
34
- className?: string;
35
- };
36
- label?: {
37
- className?: string;
38
- };
39
- requiredMark?: {
40
- className?: string;
41
- };
42
- optionList?: {
43
- className?: string;
44
- };
45
- option?: {
46
- className?: string;
47
- };
48
- control?: {
49
- className?: string;
50
- };
51
- indicator?: {
52
- className?: string;
53
- };
54
- optionLabel?: {
55
- className?: string;
56
- };
57
- helperText?: {
58
- className?: string;
59
- };
60
- errorText?: {
61
- className?: string;
62
- };
63
- }
64
- /**
65
- * Props for `<RadioGroup>`.
66
- *
67
- * Mirrors the MUI-side `@dashforge/ui/RadioGroup` at the bridge level —
68
- * same `name` / `rules` / `visibleWhen` / `access` semantics, same
69
- * Form Closure v1 error gating, same option-level RBAC.
70
- */
71
- export interface RadioGroupProps extends RadioGroupVariants {
72
- /** Field name registered with the bridge. */
73
- name: string;
74
- /** Array of selectable options. Order is render order. */
75
- options: RadioGroupOption[];
76
- /** Group-level label (rendered above the option list). */
77
- label?: ReactNode;
78
- /** React Hook Form validation rules — forwarded to `bridge.register`. */
79
- rules?: unknown;
80
- /** Helper text shown below the option list when not in error state. */
81
- helperText?: ReactNode;
82
- /** Marks the group as required (renders red `*` after the label). */
83
- required?: boolean;
84
- /** Explicit error override (otherwise resolved from bridge). */
85
- error?: boolean;
86
- /** Explicit disable override (ORed with RBAC). */
87
- disabled?: boolean;
88
- /** Engine predicate — group not rendered when it returns `false`. */
89
- visibleWhen?: (engine: Engine) => boolean;
90
- /** Group-level RBAC requirement (precedes option-level access). */
91
- access?: AccessRequirement;
92
- /** Root className shortcut (`cn`'d with the variant root class). */
93
- sx?: string;
94
- /** Per-slot className overrides. */
95
- slotProps?: RadioGroupSlotProps;
96
- /** Controlled value (for standalone mode without a form bridge). */
97
- value?: string;
98
- /** Default value for uncontrolled mode (no-op in form mode — bridge wins). */
99
- defaultValue?: string;
100
- /** Change handler (called *after* bridge update in form mode). */
101
- onValueChange?: (value: string) => void;
102
- }
103
- //# sourceMappingURL=radioGroup.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radioGroup.types.d.ts","sourceRoot":"","sources":["../../../src/components/RadioGroup/radioGroup.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,EAAE,SAAS,CAAC;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,YAAY,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,WAAW,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,mEAAmE;IACnE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,oEAAoE;IACpE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC"}
@@ -1,166 +0,0 @@
1
- import { type VariantProps } from 'tailwind-variants';
2
- /**
3
- * Tailwind-variants recipe for `<RadioGroup>` with slots.
4
- *
5
- * Slots:
6
- * - `root` — outer wrapper (label + option list + helper/error)
7
- * - `label` — group-level label (rendered above the option list)
8
- * - `requiredMark` — red asterisk for required groups
9
- * - `optionList` — container for the radio options (flex direction
10
- * decided by the `layout` variant)
11
- * - `option` — wrapper for a single option (control + label)
12
- * - `control` — visible circle (Radix `RadioGroup.Item`)
13
- * - `indicator` — inner dot (Radix `RadioGroup.Indicator`)
14
- * - `optionLabel` — text label associated with the control
15
- * - `helperText` — descriptive line below the option list
16
- * - `errorText` — semantic counterpart of helperText for error mode
17
- *
18
- * Variants:
19
- * - `size` : sm / md / lg — drives control circle + label text size
20
- * - `layout` : stacked (vertical, default) / row (horizontal)
21
- * - `error` : bool — swaps borders + helperText color to danger tones
22
- */
23
- export declare const radioGroupVariants: import("tailwind-variants").TVReturnType<{
24
- size: {
25
- sm: {
26
- control: string;
27
- indicator: string;
28
- optionLabel: string;
29
- };
30
- md: {
31
- control: string;
32
- indicator: string;
33
- optionLabel: string;
34
- };
35
- lg: {
36
- control: string;
37
- indicator: string;
38
- optionLabel: string;
39
- };
40
- };
41
- layout: {
42
- stacked: {
43
- optionList: string;
44
- };
45
- row: {
46
- optionList: string;
47
- };
48
- };
49
- error: {
50
- true: {
51
- control: string;
52
- };
53
- };
54
- disabled: {
55
- true: {
56
- control: string;
57
- };
58
- };
59
- }, {
60
- root: string;
61
- label: string;
62
- requiredMark: string;
63
- optionList: string;
64
- option: string;
65
- control: string[];
66
- indicator: string;
67
- optionLabel: string;
68
- helperText: string;
69
- errorText: string;
70
- }, undefined, {
71
- size: {
72
- sm: {
73
- control: string;
74
- indicator: string;
75
- optionLabel: string;
76
- };
77
- md: {
78
- control: string;
79
- indicator: string;
80
- optionLabel: string;
81
- };
82
- lg: {
83
- control: string;
84
- indicator: string;
85
- optionLabel: string;
86
- };
87
- };
88
- layout: {
89
- stacked: {
90
- optionList: string;
91
- };
92
- row: {
93
- optionList: string;
94
- };
95
- };
96
- error: {
97
- true: {
98
- control: string;
99
- };
100
- };
101
- disabled: {
102
- true: {
103
- control: string;
104
- };
105
- };
106
- }, {
107
- root: string;
108
- label: string;
109
- requiredMark: string;
110
- optionList: string;
111
- option: string;
112
- control: string[];
113
- indicator: string;
114
- optionLabel: string;
115
- helperText: string;
116
- errorText: string;
117
- }, import("tailwind-variants").TVReturnType<{
118
- size: {
119
- sm: {
120
- control: string;
121
- indicator: string;
122
- optionLabel: string;
123
- };
124
- md: {
125
- control: string;
126
- indicator: string;
127
- optionLabel: string;
128
- };
129
- lg: {
130
- control: string;
131
- indicator: string;
132
- optionLabel: string;
133
- };
134
- };
135
- layout: {
136
- stacked: {
137
- optionList: string;
138
- };
139
- row: {
140
- optionList: string;
141
- };
142
- };
143
- error: {
144
- true: {
145
- control: string;
146
- };
147
- };
148
- disabled: {
149
- true: {
150
- control: string;
151
- };
152
- };
153
- }, {
154
- root: string;
155
- label: string;
156
- requiredMark: string;
157
- optionList: string;
158
- option: string;
159
- control: string[];
160
- indicator: string;
161
- optionLabel: string;
162
- helperText: string;
163
- errorText: string;
164
- }, undefined, unknown, unknown, undefined>>;
165
- export type RadioGroupVariants = VariantProps<typeof radioGroupVariants>;
166
- //# sourceMappingURL=radioGroup.variants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radioGroup.variants.d.ts","sourceRoot":"","sources":["../../../src/components/RadioGroup/radioGroup.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA6D7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- import type { SnackbarApi, SnackbarProviderProps } from './snackbar.types.js';
2
- /**
3
- * `useSnackbar()` — returns `{ enqueue, dismiss, dismissAll }`.
4
- *
5
- * Throws if called outside `<SnackbarProvider>` — silent no-op would
6
- * be a footgun for "Saved!" toasts that silently vanish.
7
- */
8
- export declare function useSnackbar(): SnackbarApi;
9
- /**
10
- * Dashforge TW Snackbar provider — transient, stacked toast notifications.
11
- *
12
- * **Behaviour**:
13
- * - `enqueue(opts)` returns the assigned `id`.
14
- * - Items appear in a fixed-corner stack (`position` prop).
15
- * - At most `maxVisible` (default 5) are shown — extras queue FIFO.
16
- * - Each item auto-dismisses after `autoHideMs` (default 4000); set
17
- * `0` for a persistent snackbar.
18
- * - Re-enqueueing with the SAME `id` reuses the slot and resets the
19
- * timer (de-dup pattern for repeated "Saved" toasts).
20
- *
21
- * **A11y**:
22
- * - Container is an `aria-live="polite"` region (assistive techs
23
- * announce new messages without stealing focus).
24
- * - Severity icon is `aria-hidden` — the message text carries the
25
- * semantic.
26
- * - Close + action buttons are focusable via Tab; the visual stack
27
- * order is the same as the announcement order.
28
- *
29
- * **Re-render contract**:
30
- * - Provider re-renders ONLY when the visible set changes.
31
- * - The `api` (returned by `useSnackbar()`) is stable across re-renders
32
- * — `useCallback`'d with no deps, mutates a ref internally.
33
- * - Consumers calling `useSnackbar()` get the same identity each time
34
- * so they can safely pass `enqueue` to `useEffect` deps.
35
- */
36
- export declare function SnackbarProvider(props: SnackbarProviderProps): import("react/jsx-runtime").JSX.Element;
37
- //# sourceMappingURL=Snackbar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Snackbar.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/Snackbar.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,WAAW,EAEX,qBAAqB,EAGtB,MAAM,qBAAqB,CAAC;AAI7B;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,WAAW,CAQzC;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CA4N5D"}
@@ -1,86 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import type { SnackbarVariants } from './snackbar.variants.js';
3
- /** Visual severity — drives icon color + accent on the snackbar surface. */
4
- export type SnackbarSeverity = 'info' | 'success' | 'warning' | 'danger';
5
- /** Corner anchor for the snackbar stack. */
6
- export type SnackbarPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
7
- /** One snackbar instance — what `useSnackbar().enqueue()` accepts. */
8
- export interface SnackbarOptions {
9
- /** Required text/content. */
10
- message: ReactNode;
11
- /** Visual severity. @default 'info' */
12
- severity?: SnackbarSeverity;
13
- /**
14
- * Auto-dismiss after this many ms. `0` / negative ⇒ persistent
15
- * (only dismissed by the close button or `dismiss(id)`).
16
- * @default 4000
17
- */
18
- autoHideMs?: number;
19
- /** Optional action button label + handler. */
20
- action?: {
21
- label: ReactNode;
22
- onClick: () => void;
23
- };
24
- /** Per-instance close-button visibility. @default true */
25
- showClose?: boolean;
26
- /**
27
- * Stable identifier for de-duplication. If a snackbar with the same
28
- * `id` is enqueued while already visible, the existing one is REUSED
29
- * (auto-dismiss timer reset) instead of stacking a duplicate. Useful
30
- * for "Saved" toasts triggered repeatedly from the same action.
31
- */
32
- id?: string;
33
- }
34
- /** Internal model — every enqueued snackbar gets a unique id + a tick. */
35
- export interface SnackbarRecord extends SnackbarOptions {
36
- id: string;
37
- /**
38
- * Monotonic creation tick, used to drive the entry CSS transition
39
- * (the consumer's CSS can target `data-state="entered"` keyed by tick).
40
- */
41
- tick: number;
42
- }
43
- export interface SnackbarSlotProps {
44
- container?: {
45
- className?: string;
46
- };
47
- item?: {
48
- className?: string;
49
- };
50
- icon?: {
51
- className?: string;
52
- };
53
- message?: {
54
- className?: string;
55
- };
56
- action?: {
57
- className?: string;
58
- };
59
- closeButton?: {
60
- className?: string;
61
- };
62
- }
63
- /** API exposed by `useSnackbar()`. */
64
- export interface SnackbarApi {
65
- /** Show a snackbar — returns its assigned id (auto-generated if not provided). */
66
- enqueue: (options: SnackbarOptions) => string;
67
- /** Dismiss a specific snackbar. */
68
- dismiss: (id: string) => void;
69
- /** Dismiss every visible snackbar. */
70
- dismissAll: () => void;
71
- }
72
- export interface SnackbarProviderProps extends SnackbarVariants {
73
- children: ReactNode;
74
- /** Corner the stack anchors to. @default 'bottom-right' */
75
- position?: SnackbarPosition;
76
- /**
77
- * Hard cap on simultaneously visible snackbars. Excess enqueued
78
- * items wait FIFO until a slot frees up. @default 5
79
- */
80
- maxVisible?: number;
81
- /** Defaults merged into every enqueue. */
82
- defaults?: Pick<SnackbarOptions, 'severity' | 'autoHideMs' | 'showClose'>;
83
- /** Per-slot className overrides. */
84
- slotProps?: SnackbarSlotProps;
85
- }
86
- //# sourceMappingURL=snackbar.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snackbar.types.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/snackbar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzE,4CAA4C;AAC5C,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,CAAC;AAEnB,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,OAAO,EAAE,SAAS,CAAC;IACnB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IACnD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,0EAA0E;AAC1E,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,WAAW,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,kFAAkF;IAClF,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;IAC9C,mCAAmC;IACnC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,sCAAsC;IACtC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,QAAQ,EAAE,SAAS,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC;IAC1E,oCAAoC;IACpC,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B"}
@@ -1,153 +0,0 @@
1
- import { type VariantProps } from 'tailwind-variants';
2
- /**
3
- * Tailwind-variants recipe for `<Snackbar>` (stacked toast surface).
4
- *
5
- * Slots:
6
- * - `container` — fixed-position outer stack
7
- * - `item` — single snackbar surface
8
- * - `icon` — leading severity icon
9
- * - `message` — main text
10
- * - `action` — optional action button
11
- * - `closeButton` — trailing `×` button
12
- */
13
- export declare const snackbarVariants: import("tailwind-variants").TVReturnType<{
14
- position: {
15
- 'top-left': {
16
- container: string;
17
- };
18
- 'top-center': {
19
- container: string;
20
- };
21
- 'top-right': {
22
- container: string;
23
- };
24
- 'bottom-left': {
25
- container: string;
26
- };
27
- 'bottom-center': {
28
- container: string;
29
- };
30
- 'bottom-right': {
31
- container: string;
32
- };
33
- };
34
- severity: {
35
- info: {
36
- item: string;
37
- icon: string;
38
- };
39
- success: {
40
- item: string;
41
- icon: string;
42
- };
43
- warning: {
44
- item: string;
45
- icon: string;
46
- };
47
- danger: {
48
- item: string;
49
- icon: string;
50
- };
51
- };
52
- }, {
53
- container: string[];
54
- item: string[];
55
- icon: string;
56
- message: string;
57
- action: string[];
58
- closeButton: string[];
59
- }, undefined, {
60
- position: {
61
- 'top-left': {
62
- container: string;
63
- };
64
- 'top-center': {
65
- container: string;
66
- };
67
- 'top-right': {
68
- container: string;
69
- };
70
- 'bottom-left': {
71
- container: string;
72
- };
73
- 'bottom-center': {
74
- container: string;
75
- };
76
- 'bottom-right': {
77
- container: string;
78
- };
79
- };
80
- severity: {
81
- info: {
82
- item: string;
83
- icon: string;
84
- };
85
- success: {
86
- item: string;
87
- icon: string;
88
- };
89
- warning: {
90
- item: string;
91
- icon: string;
92
- };
93
- danger: {
94
- item: string;
95
- icon: string;
96
- };
97
- };
98
- }, {
99
- container: string[];
100
- item: string[];
101
- icon: string;
102
- message: string;
103
- action: string[];
104
- closeButton: string[];
105
- }, import("tailwind-variants").TVReturnType<{
106
- position: {
107
- 'top-left': {
108
- container: string;
109
- };
110
- 'top-center': {
111
- container: string;
112
- };
113
- 'top-right': {
114
- container: string;
115
- };
116
- 'bottom-left': {
117
- container: string;
118
- };
119
- 'bottom-center': {
120
- container: string;
121
- };
122
- 'bottom-right': {
123
- container: string;
124
- };
125
- };
126
- severity: {
127
- info: {
128
- item: string;
129
- icon: string;
130
- };
131
- success: {
132
- item: string;
133
- icon: string;
134
- };
135
- warning: {
136
- item: string;
137
- icon: string;
138
- };
139
- danger: {
140
- item: string;
141
- icon: string;
142
- };
143
- };
144
- }, {
145
- container: string[];
146
- item: string[];
147
- icon: string;
148
- message: string;
149
- action: string[];
150
- closeButton: string[];
151
- }, undefined, unknown, unknown, undefined>>;
152
- export type SnackbarVariants = VariantProps<typeof snackbarVariants>;
153
- //# sourceMappingURL=snackbar.variants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snackbar.variants.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/snackbar.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAwD3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { SwitchProps } from './switch.types.js';
2
- /**
3
- * Dashforge TW Switch — bridge-integrated toggle.
4
- *
5
- * Implementation mirrors `<Checkbox>` (same 8-step bridge integration
6
- * pattern, same StrictMode-safe unregister, same controlled-vs-
7
- * uncontrolled Radix props logic) — the only differences are:
8
- *
9
- * - Renders Radix `Switch.Root` + `Switch.Thumb` instead of `Checkbox`.
10
- * - No indicator icon (the thumb position is the visual state).
11
- * - Variants drive both control track dimensions AND the thumb
12
- * translate-x distance so the knob lands flush at each end.
13
- */
14
- export declare function Switch(props: SwitchProps): import("react/jsx-runtime").JSX.Element | null;
15
- //# sourceMappingURL=Switch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/Switch/Switch.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,kDAsIxC"}
@@ -1,47 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import type { AccessRequirement } from '@dashforge/rbac';
3
- import type { Engine } from '@dashforge/ui-core';
4
- import type { SwitchVariants } from './switch.variants.js';
5
- export interface SwitchSlotProps {
6
- root?: {
7
- className?: string;
8
- };
9
- control?: {
10
- className?: string;
11
- };
12
- thumb?: {
13
- className?: string;
14
- };
15
- label?: {
16
- className?: string;
17
- };
18
- helperText?: {
19
- className?: string;
20
- };
21
- errorText?: {
22
- className?: string;
23
- };
24
- }
25
- /**
26
- * Props for the Dashforge TW `<Switch>` component.
27
- *
28
- * Mirrors the bridge contract of `@dashforge/ui/Switch` (MUI). Same
29
- * `name` / `rules` / `visibleWhen` / `access` semantics, same
30
- * validation gating. Renders through Radix `Switch.Root` + `Switch.Thumb`.
31
- */
32
- export interface SwitchProps extends Pick<SwitchVariants, 'size'> {
33
- name: string;
34
- label?: ReactNode;
35
- rules?: unknown;
36
- visibleWhen?: (engine: Engine) => boolean;
37
- checked?: boolean;
38
- defaultChecked?: boolean;
39
- disabled?: boolean;
40
- helperText?: ReactNode;
41
- error?: boolean;
42
- access?: AccessRequirement;
43
- sx?: string;
44
- slotProps?: SwitchSlotProps;
45
- onCheckedChange?: (checked: boolean) => void;
46
- }
47
- //# sourceMappingURL=switch.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"switch.types.d.ts","sourceRoot":"","sources":["../../../src/components/Switch/switch.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C"}