@dashforge/tw 1.7.0 → 2.0.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 (392) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/dist/{src/components → components}/Accordion/accordion.variants.d.ts +3 -3
  3. package/dist/{src/components → components}/AppShell/appShell.types.d.ts +8 -0
  4. package/dist/{src/components → components}/AppShell/appShell.variants.d.ts +39 -2
  5. package/dist/{src/components → components}/Box/box.types.d.ts +19 -1
  6. package/dist/{src/components → components}/Box/box.variants.d.ts +18 -0
  7. package/dist/{src/components → components}/Button/button.types.d.ts +21 -0
  8. package/dist/{src/components → components}/Button/button.variants.d.ts +60 -0
  9. package/dist/{src/components → components}/Calendar/calendar.types.d.ts +52 -2
  10. package/dist/{src/components → components}/Chip/chip.types.d.ts +42 -0
  11. package/dist/{src/components → components}/Chip/chip.variants.d.ts +9 -0
  12. package/dist/{src/components → components}/Grid/grid.types.d.ts +42 -0
  13. package/dist/components/Kbd/Kbd.d.ts +13 -0
  14. package/dist/components/Kbd/kbd.types.d.ts +62 -0
  15. package/dist/components/Kbd/kbd.variants.d.ts +54 -0
  16. package/dist/{src/components → components}/Select/Select.d.ts +1 -1
  17. package/dist/{src/components → components}/Slider/Slider.d.ts +1 -1
  18. package/dist/{src/components → components}/Stack/stack.types.d.ts +42 -0
  19. package/dist/{src/components → components}/Stack/stack.variants.d.ts +8 -0
  20. package/dist/{src/components → components}/TopBar/TopBar.d.ts +16 -1
  21. package/dist/components/TopBar/topBar.types.d.ts +142 -0
  22. package/dist/components/TopBar/topBar.variants.d.ts +136 -0
  23. package/dist/components/_shared/resolveValidationState.d.ts +52 -0
  24. package/dist/index.d.ts +212 -1
  25. package/dist/index.esm.js +845 -124
  26. package/package.json +10 -8
  27. package/dist/src/components/Accordion/Accordion.d.ts.map +0 -1
  28. package/dist/src/components/Accordion/accordion.types.d.ts.map +0 -1
  29. package/dist/src/components/Accordion/accordion.variants.d.ts.map +0 -1
  30. package/dist/src/components/Alert/Alert.d.ts.map +0 -1
  31. package/dist/src/components/Alert/alert.types.d.ts.map +0 -1
  32. package/dist/src/components/Alert/alert.variants.d.ts.map +0 -1
  33. package/dist/src/components/AppShell/AppShell.d.ts.map +0 -1
  34. package/dist/src/components/AppShell/appShell.types.d.ts.map +0 -1
  35. package/dist/src/components/AppShell/appShell.variants.d.ts.map +0 -1
  36. package/dist/src/components/AspectRatio/AspectRatio.d.ts.map +0 -1
  37. package/dist/src/components/AspectRatio/aspectRatio.types.d.ts.map +0 -1
  38. package/dist/src/components/Autocomplete/Autocomplete.d.ts.map +0 -1
  39. package/dist/src/components/Autocomplete/autocomplete.props.type-test.d.ts.map +0 -1
  40. package/dist/src/components/Autocomplete/autocomplete.types.d.ts.map +0 -1
  41. package/dist/src/components/Autocomplete/autocomplete.variants.d.ts.map +0 -1
  42. package/dist/src/components/Avatar/Avatar.d.ts.map +0 -1
  43. package/dist/src/components/Avatar/avatar.types.d.ts.map +0 -1
  44. package/dist/src/components/Avatar/avatar.variants.d.ts.map +0 -1
  45. package/dist/src/components/Badge/Badge.d.ts.map +0 -1
  46. package/dist/src/components/Badge/badge.types.d.ts.map +0 -1
  47. package/dist/src/components/Badge/badge.variants.d.ts.map +0 -1
  48. package/dist/src/components/Box/Box.d.ts.map +0 -1
  49. package/dist/src/components/Box/box.types.d.ts.map +0 -1
  50. package/dist/src/components/Box/box.variants.d.ts.map +0 -1
  51. package/dist/src/components/Breadcrumbs/Breadcrumbs.d.ts.map +0 -1
  52. package/dist/src/components/Breadcrumbs/breadcrumbs.types.d.ts.map +0 -1
  53. package/dist/src/components/Breadcrumbs/breadcrumbs.variants.d.ts.map +0 -1
  54. package/dist/src/components/Button/Button.d.ts.map +0 -1
  55. package/dist/src/components/Button/button.types.d.ts.map +0 -1
  56. package/dist/src/components/Button/button.variants.d.ts.map +0 -1
  57. package/dist/src/components/Calendar/Calendar.d.ts.map +0 -1
  58. package/dist/src/components/Calendar/calendar.types.d.ts.map +0 -1
  59. package/dist/src/components/Calendar/calendar.variants.d.ts.map +0 -1
  60. package/dist/src/components/Card/Card.d.ts.map +0 -1
  61. package/dist/src/components/Card/card.types.d.ts.map +0 -1
  62. package/dist/src/components/Checkbox/Checkbox.d.ts.map +0 -1
  63. package/dist/src/components/Checkbox/checkbox.types.d.ts.map +0 -1
  64. package/dist/src/components/Checkbox/checkbox.variants.d.ts.map +0 -1
  65. package/dist/src/components/Chip/Chip.d.ts.map +0 -1
  66. package/dist/src/components/Chip/chip.types.d.ts.map +0 -1
  67. package/dist/src/components/Chip/chip.variants.d.ts.map +0 -1
  68. package/dist/src/components/ConfirmDialog/ConfirmDialog.d.ts.map +0 -1
  69. package/dist/src/components/ConfirmDialog/confirmDialog.types.d.ts.map +0 -1
  70. package/dist/src/components/ConfirmDialog/confirmDialog.variants.d.ts.map +0 -1
  71. package/dist/src/components/Container/Container.d.ts.map +0 -1
  72. package/dist/src/components/Container/container.types.d.ts.map +0 -1
  73. package/dist/src/components/Container/container.variants.d.ts.map +0 -1
  74. package/dist/src/components/DataGrid/DataGrid.d.ts.map +0 -1
  75. package/dist/src/components/DataGrid/dataGrid.types.d.ts.map +0 -1
  76. package/dist/src/components/DataGrid/dataGrid.variants.d.ts.map +0 -1
  77. package/dist/src/components/DataGrid/filters/ColumnFilters.d.ts.map +0 -1
  78. package/dist/src/components/DataGrid/reorder/useColumnReorder.d.ts.map +0 -1
  79. package/dist/src/components/DataGrid/resize/useColumnResize.d.ts.map +0 -1
  80. package/dist/src/components/DataGrid/visibility/ColumnVisibilityMenu.d.ts.map +0 -1
  81. package/dist/src/components/DatePicker/DatePicker.d.ts.map +0 -1
  82. package/dist/src/components/DatePicker/datePicker.types.d.ts.map +0 -1
  83. package/dist/src/components/DatePicker/datePicker.variants.d.ts.map +0 -1
  84. package/dist/src/components/DateRangePicker/DateRangePicker.d.ts.map +0 -1
  85. package/dist/src/components/DateRangePicker/dateRangePicker.types.d.ts.map +0 -1
  86. package/dist/src/components/DateRangePicker/dateRangePicker.variants.d.ts.map +0 -1
  87. package/dist/src/components/DateTimePicker/DateTimePicker.d.ts.map +0 -1
  88. package/dist/src/components/DateTimePicker/dateTimePicker.types.d.ts.map +0 -1
  89. package/dist/src/components/DateTimePicker/dateTimePicker.variants.d.ts.map +0 -1
  90. package/dist/src/components/Dialog/Dialog.d.ts.map +0 -1
  91. package/dist/src/components/Dialog/dialog.types.d.ts.map +0 -1
  92. package/dist/src/components/Dialog/dialog.variants.d.ts.map +0 -1
  93. package/dist/src/components/Divider/Divider.d.ts.map +0 -1
  94. package/dist/src/components/Divider/divider.types.d.ts.map +0 -1
  95. package/dist/src/components/Divider/divider.variants.d.ts.map +0 -1
  96. package/dist/src/components/Drawer/Drawer.d.ts.map +0 -1
  97. package/dist/src/components/Drawer/drawer.types.d.ts.map +0 -1
  98. package/dist/src/components/Drawer/drawer.variants.d.ts.map +0 -1
  99. package/dist/src/components/Grid/Grid.d.ts.map +0 -1
  100. package/dist/src/components/Grid/grid.types.d.ts.map +0 -1
  101. package/dist/src/components/Grid/grid.variants.d.ts.map +0 -1
  102. package/dist/src/components/IconButton/IconButton.d.ts.map +0 -1
  103. package/dist/src/components/IconButton/iconButton.types.d.ts.map +0 -1
  104. package/dist/src/components/IconButton/iconButton.variants.d.ts.map +0 -1
  105. package/dist/src/components/Image/Image.d.ts.map +0 -1
  106. package/dist/src/components/Image/image.types.d.ts.map +0 -1
  107. package/dist/src/components/Image/image.variants.d.ts.map +0 -1
  108. package/dist/src/components/LeftNav/LeftNav.d.ts.map +0 -1
  109. package/dist/src/components/LeftNav/leftNav.types.d.ts.map +0 -1
  110. package/dist/src/components/LeftNav/leftNav.variants.d.ts.map +0 -1
  111. package/dist/src/components/Link/Link.d.ts.map +0 -1
  112. package/dist/src/components/Link/link.types.d.ts.map +0 -1
  113. package/dist/src/components/Link/link.variants.d.ts.map +0 -1
  114. package/dist/src/components/Menu/Menu.d.ts.map +0 -1
  115. package/dist/src/components/Menu/menu.types.d.ts.map +0 -1
  116. package/dist/src/components/Menu/menu.variants.d.ts.map +0 -1
  117. package/dist/src/components/NumberField/NumberField.d.ts.map +0 -1
  118. package/dist/src/components/NumberField/numberField.types.d.ts.map +0 -1
  119. package/dist/src/components/NumberField/numberField.variants.d.ts.map +0 -1
  120. package/dist/src/components/OTPField/OTPField.d.ts.map +0 -1
  121. package/dist/src/components/OTPField/otpField.types.d.ts.map +0 -1
  122. package/dist/src/components/OTPField/otpField.variants.d.ts.map +0 -1
  123. package/dist/src/components/Pagination/Pagination.d.ts.map +0 -1
  124. package/dist/src/components/Pagination/pagination.helpers.d.ts.map +0 -1
  125. package/dist/src/components/Pagination/pagination.types.d.ts.map +0 -1
  126. package/dist/src/components/Pagination/pagination.variants.d.ts.map +0 -1
  127. package/dist/src/components/Popover/Popover.d.ts.map +0 -1
  128. package/dist/src/components/Popover/popover.types.d.ts.map +0 -1
  129. package/dist/src/components/Popover/popover.variants.d.ts.map +0 -1
  130. package/dist/src/components/Progress/Progress.d.ts.map +0 -1
  131. package/dist/src/components/Progress/progress.types.d.ts.map +0 -1
  132. package/dist/src/components/Progress/progress.variants.d.ts.map +0 -1
  133. package/dist/src/components/RadioGroup/RadioGroup.d.ts.map +0 -1
  134. package/dist/src/components/RadioGroup/radioGroup.types.d.ts.map +0 -1
  135. package/dist/src/components/RadioGroup/radioGroup.variants.d.ts.map +0 -1
  136. package/dist/src/components/Select/Select.d.ts.map +0 -1
  137. package/dist/src/components/Select/select.types.d.ts.map +0 -1
  138. package/dist/src/components/Select/select.variants.d.ts.map +0 -1
  139. package/dist/src/components/Skeleton/Skeleton.d.ts.map +0 -1
  140. package/dist/src/components/Skeleton/skeleton.types.d.ts.map +0 -1
  141. package/dist/src/components/Skeleton/skeleton.variants.d.ts.map +0 -1
  142. package/dist/src/components/Slider/Slider.d.ts.map +0 -1
  143. package/dist/src/components/Slider/slider.types.d.ts.map +0 -1
  144. package/dist/src/components/Slider/slider.variants.d.ts.map +0 -1
  145. package/dist/src/components/Snackbar/Snackbar.d.ts.map +0 -1
  146. package/dist/src/components/Snackbar/snackbar.types.d.ts.map +0 -1
  147. package/dist/src/components/Snackbar/snackbar.variants.d.ts.map +0 -1
  148. package/dist/src/components/Spinner/Spinner.d.ts.map +0 -1
  149. package/dist/src/components/Spinner/spinner.types.d.ts.map +0 -1
  150. package/dist/src/components/Spinner/spinner.variants.d.ts.map +0 -1
  151. package/dist/src/components/Stack/Stack.d.ts.map +0 -1
  152. package/dist/src/components/Stack/stack.types.d.ts.map +0 -1
  153. package/dist/src/components/Stack/stack.variants.d.ts.map +0 -1
  154. package/dist/src/components/Stepper/Step.d.ts.map +0 -1
  155. package/dist/src/components/Stepper/Stepper.d.ts.map +0 -1
  156. package/dist/src/components/Stepper/StepperContext.d.ts.map +0 -1
  157. package/dist/src/components/Stepper/stepper.types.d.ts.map +0 -1
  158. package/dist/src/components/Stepper/stepper.variants.d.ts.map +0 -1
  159. package/dist/src/components/Stepper/useStep.d.ts.map +0 -1
  160. package/dist/src/components/Switch/Switch.d.ts.map +0 -1
  161. package/dist/src/components/Switch/switch.types.d.ts.map +0 -1
  162. package/dist/src/components/Switch/switch.variants.d.ts.map +0 -1
  163. package/dist/src/components/Table/Table.d.ts.map +0 -1
  164. package/dist/src/components/Table/cells/RenderButton.d.ts.map +0 -1
  165. package/dist/src/components/Table/cells/RenderChip.d.ts.map +0 -1
  166. package/dist/src/components/Table/cells/RenderText.d.ts.map +0 -1
  167. package/dist/src/components/Table/cells/RenderTwoLine.d.ts.map +0 -1
  168. package/dist/src/components/Table/cells/RowActionsMenu.d.ts.map +0 -1
  169. package/dist/src/components/Table/cells/index.d.ts.map +0 -1
  170. package/dist/src/components/Table/table.types.d.ts.map +0 -1
  171. package/dist/src/components/Table/table.variants.d.ts.map +0 -1
  172. package/dist/src/components/Tabs/Tabs.d.ts.map +0 -1
  173. package/dist/src/components/Tabs/tabs.types.d.ts.map +0 -1
  174. package/dist/src/components/Tabs/tabs.variants.d.ts.map +0 -1
  175. package/dist/src/components/Tabs/useTabs.d.ts.map +0 -1
  176. package/dist/src/components/TextField/TextField.d.ts.map +0 -1
  177. package/dist/src/components/TextField/textField.types.d.ts.map +0 -1
  178. package/dist/src/components/TextField/textField.variants.d.ts.map +0 -1
  179. package/dist/src/components/Textarea/Textarea.d.ts.map +0 -1
  180. package/dist/src/components/Textarea/textarea.types.d.ts.map +0 -1
  181. package/dist/src/components/Textarea/textarea.variants.d.ts.map +0 -1
  182. package/dist/src/components/TimePicker/TimePicker.d.ts.map +0 -1
  183. package/dist/src/components/TimePicker/timePicker.types.d.ts.map +0 -1
  184. package/dist/src/components/TimePicker/timePicker.variants.d.ts.map +0 -1
  185. package/dist/src/components/Tooltip/Tooltip.d.ts.map +0 -1
  186. package/dist/src/components/Tooltip/tooltip.types.d.ts.map +0 -1
  187. package/dist/src/components/Tooltip/tooltip.variants.d.ts.map +0 -1
  188. package/dist/src/components/TopBar/TopBar.d.ts.map +0 -1
  189. package/dist/src/components/TopBar/topBar.types.d.ts +0 -73
  190. package/dist/src/components/TopBar/topBar.types.d.ts.map +0 -1
  191. package/dist/src/components/TopBar/topBar.variants.d.ts +0 -79
  192. package/dist/src/components/TopBar/topBar.variants.d.ts.map +0 -1
  193. package/dist/src/components/Typography/Typography.d.ts.map +0 -1
  194. package/dist/src/components/Typography/typography.types.d.ts.map +0 -1
  195. package/dist/src/components/Typography/typography.variants.d.ts.map +0 -1
  196. package/dist/src/components/Video/Video.d.ts.map +0 -1
  197. package/dist/src/components/Video/video.types.d.ts.map +0 -1
  198. package/dist/src/components/Video/video.variants.d.ts.map +0 -1
  199. package/dist/src/components/VisuallyHidden/VisuallyHidden.d.ts.map +0 -1
  200. package/dist/src/components/VisuallyHidden/visuallyHidden.types.d.ts.map +0 -1
  201. package/dist/src/components/_shared/data/getNestedValue.d.ts.map +0 -1
  202. package/dist/src/components/_shared/data/useColumnAutoDetect.d.ts.map +0 -1
  203. package/dist/src/components/_shared/data/useControllableState.d.ts.map +0 -1
  204. package/dist/src/components/_shared/data/useDebouncedValue.d.ts.map +0 -1
  205. package/dist/src/components/_shared/data/useTableFilter.d.ts.map +0 -1
  206. package/dist/src/components/_shared/data/useTableSearch.d.ts.map +0 -1
  207. package/dist/src/components/_shared/data/useTableSelection.d.ts.map +0 -1
  208. package/dist/src/components/_shared/data/useTableSort.d.ts.map +0 -1
  209. package/dist/src/components/_shared/data/useVirtualizer.d.ts.map +0 -1
  210. package/dist/src/components/_shared/fieldTooltip.d.ts.map +0 -1
  211. package/dist/src/components/_shared/resolveValidationState.d.ts +0 -42
  212. package/dist/src/components/_shared/resolveValidationState.d.ts.map +0 -1
  213. package/dist/src/components/_shared/severity/index.d.ts.map +0 -1
  214. package/dist/src/components/_shared/severity/severity.types.d.ts.map +0 -1
  215. package/dist/src/components/_shared/severity/severityIcons.d.ts.map +0 -1
  216. package/dist/src/components/_shared/severity/severityVariants.d.ts.map +0 -1
  217. package/dist/src/hooks/useAccessState.d.ts.map +0 -1
  218. package/dist/src/hooks/useStandaloneFieldWarning.d.ts.map +0 -1
  219. package/dist/src/index.d.ts +0 -199
  220. package/dist/src/index.d.ts.map +0 -1
  221. package/dist/src/utils/cn.d.ts.map +0 -1
  222. /package/dist/{src/components → components}/Accordion/Accordion.d.ts +0 -0
  223. /package/dist/{src/components → components}/Accordion/accordion.types.d.ts +0 -0
  224. /package/dist/{src/components → components}/Alert/Alert.d.ts +0 -0
  225. /package/dist/{src/components → components}/Alert/alert.types.d.ts +0 -0
  226. /package/dist/{src/components → components}/Alert/alert.variants.d.ts +0 -0
  227. /package/dist/{src/components → components}/AppShell/AppShell.d.ts +0 -0
  228. /package/dist/{src/components → components}/AspectRatio/AspectRatio.d.ts +0 -0
  229. /package/dist/{src/components → components}/AspectRatio/aspectRatio.types.d.ts +0 -0
  230. /package/dist/{src/components → components}/Autocomplete/Autocomplete.d.ts +0 -0
  231. /package/dist/{src/components → components}/Autocomplete/autocomplete.props.type-test.d.ts +0 -0
  232. /package/dist/{src/components → components}/Autocomplete/autocomplete.types.d.ts +0 -0
  233. /package/dist/{src/components → components}/Autocomplete/autocomplete.variants.d.ts +0 -0
  234. /package/dist/{src/components → components}/Avatar/Avatar.d.ts +0 -0
  235. /package/dist/{src/components → components}/Avatar/avatar.types.d.ts +0 -0
  236. /package/dist/{src/components → components}/Avatar/avatar.variants.d.ts +0 -0
  237. /package/dist/{src/components → components}/Badge/Badge.d.ts +0 -0
  238. /package/dist/{src/components → components}/Badge/badge.types.d.ts +0 -0
  239. /package/dist/{src/components → components}/Badge/badge.variants.d.ts +0 -0
  240. /package/dist/{src/components → components}/Box/Box.d.ts +0 -0
  241. /package/dist/{src/components → components}/Breadcrumbs/Breadcrumbs.d.ts +0 -0
  242. /package/dist/{src/components → components}/Breadcrumbs/breadcrumbs.types.d.ts +0 -0
  243. /package/dist/{src/components → components}/Breadcrumbs/breadcrumbs.variants.d.ts +0 -0
  244. /package/dist/{src/components → components}/Button/Button.d.ts +0 -0
  245. /package/dist/{src/components → components}/Calendar/Calendar.d.ts +0 -0
  246. /package/dist/{src/components → components}/Calendar/calendar.variants.d.ts +0 -0
  247. /package/dist/{src/components → components}/Card/Card.d.ts +0 -0
  248. /package/dist/{src/components → components}/Card/card.types.d.ts +0 -0
  249. /package/dist/{src/components → components}/Checkbox/Checkbox.d.ts +0 -0
  250. /package/dist/{src/components → components}/Checkbox/checkbox.types.d.ts +0 -0
  251. /package/dist/{src/components → components}/Checkbox/checkbox.variants.d.ts +0 -0
  252. /package/dist/{src/components → components}/Chip/Chip.d.ts +0 -0
  253. /package/dist/{src/components → components}/ConfirmDialog/ConfirmDialog.d.ts +0 -0
  254. /package/dist/{src/components → components}/ConfirmDialog/confirmDialog.types.d.ts +0 -0
  255. /package/dist/{src/components → components}/ConfirmDialog/confirmDialog.variants.d.ts +0 -0
  256. /package/dist/{src/components → components}/Container/Container.d.ts +0 -0
  257. /package/dist/{src/components → components}/Container/container.types.d.ts +0 -0
  258. /package/dist/{src/components → components}/Container/container.variants.d.ts +0 -0
  259. /package/dist/{src/components → components}/DataGrid/DataGrid.d.ts +0 -0
  260. /package/dist/{src/components → components}/DataGrid/dataGrid.types.d.ts +0 -0
  261. /package/dist/{src/components → components}/DataGrid/dataGrid.variants.d.ts +0 -0
  262. /package/dist/{src/components → components}/DataGrid/filters/ColumnFilters.d.ts +0 -0
  263. /package/dist/{src/components → components}/DataGrid/reorder/useColumnReorder.d.ts +0 -0
  264. /package/dist/{src/components → components}/DataGrid/resize/useColumnResize.d.ts +0 -0
  265. /package/dist/{src/components → components}/DataGrid/visibility/ColumnVisibilityMenu.d.ts +0 -0
  266. /package/dist/{src/components → components}/DatePicker/DatePicker.d.ts +0 -0
  267. /package/dist/{src/components → components}/DatePicker/datePicker.types.d.ts +0 -0
  268. /package/dist/{src/components → components}/DatePicker/datePicker.variants.d.ts +0 -0
  269. /package/dist/{src/components → components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  270. /package/dist/{src/components → components}/DateRangePicker/dateRangePicker.types.d.ts +0 -0
  271. /package/dist/{src/components → components}/DateRangePicker/dateRangePicker.variants.d.ts +0 -0
  272. /package/dist/{src/components → components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  273. /package/dist/{src/components → components}/DateTimePicker/dateTimePicker.types.d.ts +0 -0
  274. /package/dist/{src/components → components}/DateTimePicker/dateTimePicker.variants.d.ts +0 -0
  275. /package/dist/{src/components → components}/Dialog/Dialog.d.ts +0 -0
  276. /package/dist/{src/components → components}/Dialog/dialog.types.d.ts +0 -0
  277. /package/dist/{src/components → components}/Dialog/dialog.variants.d.ts +0 -0
  278. /package/dist/{src/components → components}/Divider/Divider.d.ts +0 -0
  279. /package/dist/{src/components → components}/Divider/divider.types.d.ts +0 -0
  280. /package/dist/{src/components → components}/Divider/divider.variants.d.ts +0 -0
  281. /package/dist/{src/components → components}/Drawer/Drawer.d.ts +0 -0
  282. /package/dist/{src/components → components}/Drawer/drawer.types.d.ts +0 -0
  283. /package/dist/{src/components → components}/Drawer/drawer.variants.d.ts +0 -0
  284. /package/dist/{src/components → components}/Grid/Grid.d.ts +0 -0
  285. /package/dist/{src/components → components}/Grid/grid.variants.d.ts +0 -0
  286. /package/dist/{src/components → components}/IconButton/IconButton.d.ts +0 -0
  287. /package/dist/{src/components → components}/IconButton/iconButton.types.d.ts +0 -0
  288. /package/dist/{src/components → components}/IconButton/iconButton.variants.d.ts +0 -0
  289. /package/dist/{src/components → components}/Image/Image.d.ts +0 -0
  290. /package/dist/{src/components → components}/Image/image.types.d.ts +0 -0
  291. /package/dist/{src/components → components}/Image/image.variants.d.ts +0 -0
  292. /package/dist/{src/components → components}/LeftNav/LeftNav.d.ts +0 -0
  293. /package/dist/{src/components → components}/LeftNav/leftNav.types.d.ts +0 -0
  294. /package/dist/{src/components → components}/LeftNav/leftNav.variants.d.ts +0 -0
  295. /package/dist/{src/components → components}/Link/Link.d.ts +0 -0
  296. /package/dist/{src/components → components}/Link/link.types.d.ts +0 -0
  297. /package/dist/{src/components → components}/Link/link.variants.d.ts +0 -0
  298. /package/dist/{src/components → components}/Menu/Menu.d.ts +0 -0
  299. /package/dist/{src/components → components}/Menu/menu.types.d.ts +0 -0
  300. /package/dist/{src/components → components}/Menu/menu.variants.d.ts +0 -0
  301. /package/dist/{src/components → components}/NumberField/NumberField.d.ts +0 -0
  302. /package/dist/{src/components → components}/NumberField/numberField.types.d.ts +0 -0
  303. /package/dist/{src/components → components}/NumberField/numberField.variants.d.ts +0 -0
  304. /package/dist/{src/components → components}/OTPField/OTPField.d.ts +0 -0
  305. /package/dist/{src/components → components}/OTPField/otpField.types.d.ts +0 -0
  306. /package/dist/{src/components → components}/OTPField/otpField.variants.d.ts +0 -0
  307. /package/dist/{src/components → components}/Pagination/Pagination.d.ts +0 -0
  308. /package/dist/{src/components → components}/Pagination/pagination.helpers.d.ts +0 -0
  309. /package/dist/{src/components → components}/Pagination/pagination.types.d.ts +0 -0
  310. /package/dist/{src/components → components}/Pagination/pagination.variants.d.ts +0 -0
  311. /package/dist/{src/components → components}/Popover/Popover.d.ts +0 -0
  312. /package/dist/{src/components → components}/Popover/popover.types.d.ts +0 -0
  313. /package/dist/{src/components → components}/Popover/popover.variants.d.ts +0 -0
  314. /package/dist/{src/components → components}/Progress/Progress.d.ts +0 -0
  315. /package/dist/{src/components → components}/Progress/progress.types.d.ts +0 -0
  316. /package/dist/{src/components → components}/Progress/progress.variants.d.ts +0 -0
  317. /package/dist/{src/components → components}/RadioGroup/RadioGroup.d.ts +0 -0
  318. /package/dist/{src/components → components}/RadioGroup/radioGroup.types.d.ts +0 -0
  319. /package/dist/{src/components → components}/RadioGroup/radioGroup.variants.d.ts +0 -0
  320. /package/dist/{src/components → components}/Select/select.types.d.ts +0 -0
  321. /package/dist/{src/components → components}/Select/select.variants.d.ts +0 -0
  322. /package/dist/{src/components → components}/Skeleton/Skeleton.d.ts +0 -0
  323. /package/dist/{src/components → components}/Skeleton/skeleton.types.d.ts +0 -0
  324. /package/dist/{src/components → components}/Skeleton/skeleton.variants.d.ts +0 -0
  325. /package/dist/{src/components → components}/Slider/slider.types.d.ts +0 -0
  326. /package/dist/{src/components → components}/Slider/slider.variants.d.ts +0 -0
  327. /package/dist/{src/components → components}/Snackbar/Snackbar.d.ts +0 -0
  328. /package/dist/{src/components → components}/Snackbar/snackbar.types.d.ts +0 -0
  329. /package/dist/{src/components → components}/Snackbar/snackbar.variants.d.ts +0 -0
  330. /package/dist/{src/components → components}/Spinner/Spinner.d.ts +0 -0
  331. /package/dist/{src/components → components}/Spinner/spinner.types.d.ts +0 -0
  332. /package/dist/{src/components → components}/Spinner/spinner.variants.d.ts +0 -0
  333. /package/dist/{src/components → components}/Stack/Stack.d.ts +0 -0
  334. /package/dist/{src/components → components}/Stepper/Step.d.ts +0 -0
  335. /package/dist/{src/components → components}/Stepper/Stepper.d.ts +0 -0
  336. /package/dist/{src/components → components}/Stepper/StepperContext.d.ts +0 -0
  337. /package/dist/{src/components → components}/Stepper/stepper.types.d.ts +0 -0
  338. /package/dist/{src/components → components}/Stepper/stepper.variants.d.ts +0 -0
  339. /package/dist/{src/components → components}/Stepper/useStep.d.ts +0 -0
  340. /package/dist/{src/components → components}/Switch/Switch.d.ts +0 -0
  341. /package/dist/{src/components → components}/Switch/switch.types.d.ts +0 -0
  342. /package/dist/{src/components → components}/Switch/switch.variants.d.ts +0 -0
  343. /package/dist/{src/components → components}/Table/Table.d.ts +0 -0
  344. /package/dist/{src/components → components}/Table/cells/RenderButton.d.ts +0 -0
  345. /package/dist/{src/components → components}/Table/cells/RenderChip.d.ts +0 -0
  346. /package/dist/{src/components → components}/Table/cells/RenderText.d.ts +0 -0
  347. /package/dist/{src/components → components}/Table/cells/RenderTwoLine.d.ts +0 -0
  348. /package/dist/{src/components → components}/Table/cells/RowActionsMenu.d.ts +0 -0
  349. /package/dist/{src/components → components}/Table/cells/index.d.ts +0 -0
  350. /package/dist/{src/components → components}/Table/table.types.d.ts +0 -0
  351. /package/dist/{src/components → components}/Table/table.variants.d.ts +0 -0
  352. /package/dist/{src/components → components}/Tabs/Tabs.d.ts +0 -0
  353. /package/dist/{src/components → components}/Tabs/tabs.types.d.ts +0 -0
  354. /package/dist/{src/components → components}/Tabs/tabs.variants.d.ts +0 -0
  355. /package/dist/{src/components → components}/Tabs/useTabs.d.ts +0 -0
  356. /package/dist/{src/components → components}/TextField/TextField.d.ts +0 -0
  357. /package/dist/{src/components → components}/TextField/textField.types.d.ts +0 -0
  358. /package/dist/{src/components → components}/TextField/textField.variants.d.ts +0 -0
  359. /package/dist/{src/components → components}/Textarea/Textarea.d.ts +0 -0
  360. /package/dist/{src/components → components}/Textarea/textarea.types.d.ts +0 -0
  361. /package/dist/{src/components → components}/Textarea/textarea.variants.d.ts +0 -0
  362. /package/dist/{src/components → components}/TimePicker/TimePicker.d.ts +0 -0
  363. /package/dist/{src/components → components}/TimePicker/timePicker.types.d.ts +0 -0
  364. /package/dist/{src/components → components}/TimePicker/timePicker.variants.d.ts +0 -0
  365. /package/dist/{src/components → components}/Tooltip/Tooltip.d.ts +0 -0
  366. /package/dist/{src/components → components}/Tooltip/tooltip.types.d.ts +0 -0
  367. /package/dist/{src/components → components}/Tooltip/tooltip.variants.d.ts +0 -0
  368. /package/dist/{src/components → components}/Typography/Typography.d.ts +0 -0
  369. /package/dist/{src/components → components}/Typography/typography.types.d.ts +0 -0
  370. /package/dist/{src/components → components}/Typography/typography.variants.d.ts +0 -0
  371. /package/dist/{src/components → components}/Video/Video.d.ts +0 -0
  372. /package/dist/{src/components → components}/Video/video.types.d.ts +0 -0
  373. /package/dist/{src/components → components}/Video/video.variants.d.ts +0 -0
  374. /package/dist/{src/components → components}/VisuallyHidden/VisuallyHidden.d.ts +0 -0
  375. /package/dist/{src/components → components}/VisuallyHidden/visuallyHidden.types.d.ts +0 -0
  376. /package/dist/{src/components → components}/_shared/data/getNestedValue.d.ts +0 -0
  377. /package/dist/{src/components → components}/_shared/data/useColumnAutoDetect.d.ts +0 -0
  378. /package/dist/{src/components → components}/_shared/data/useControllableState.d.ts +0 -0
  379. /package/dist/{src/components → components}/_shared/data/useDebouncedValue.d.ts +0 -0
  380. /package/dist/{src/components → components}/_shared/data/useTableFilter.d.ts +0 -0
  381. /package/dist/{src/components → components}/_shared/data/useTableSearch.d.ts +0 -0
  382. /package/dist/{src/components → components}/_shared/data/useTableSelection.d.ts +0 -0
  383. /package/dist/{src/components → components}/_shared/data/useTableSort.d.ts +0 -0
  384. /package/dist/{src/components → components}/_shared/data/useVirtualizer.d.ts +0 -0
  385. /package/dist/{src/components → components}/_shared/fieldTooltip.d.ts +0 -0
  386. /package/dist/{src/components → components}/_shared/severity/index.d.ts +0 -0
  387. /package/dist/{src/components → components}/_shared/severity/severity.types.d.ts +0 -0
  388. /package/dist/{src/components → components}/_shared/severity/severityIcons.d.ts +0 -0
  389. /package/dist/{src/components → components}/_shared/severity/severityVariants.d.ts +0 -0
  390. /package/dist/{src/hooks → hooks}/useAccessState.d.ts +0 -0
  391. /package/dist/{src/hooks → hooks}/useStandaloneFieldWarning.d.ts +0 -0
  392. /package/dist/{src/utils → utils}/cn.d.ts +0 -0
@@ -1,4 +1,6 @@
1
1
  import type { ElementType, HTMLAttributes } from 'react';
2
+ import type { Engine } from '@dashforge/ui-core';
3
+ import type { AccessRequirement } from '@dashforge/rbac';
2
4
  /**
3
5
  * Grid types — discriminated union for container vs item role.
4
6
  *
@@ -94,6 +96,46 @@ interface GridCommonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'classNam
94
96
  asChild?: boolean;
95
97
  /** Utility-class override, merged via tailwind-merge. */
96
98
  sx?: string;
99
+ /**
100
+ * Reactive visibility predicate. When it returns `false` the component
101
+ * renders `null`. Inside a `<DashForm>` it subscribes reactively to
102
+ * engine state; outside a form it is evaluated as a plain closure.
103
+ *
104
+ * Use it for state-driven hiding. **For permission-driven hiding prefer
105
+ * `access` with `onUnauthorized: 'hide'`**, which is the semantically
106
+ * correct path and surfaces properly in RBAC dev tools.
107
+ *
108
+ * @default undefined
109
+ *
110
+ * @example
111
+ * ```tsx
112
+ * <Grid visibleWhen={() => pendingCount > 0}>
113
+ * <Typography variant="h3">{pendingCount} pending</Typography>
114
+ * </Grid>
115
+ * ```
116
+ */
117
+ visibleWhen?: (engine: Engine) => boolean;
118
+ /**
119
+ * RBAC requirement, evaluated by the centralized `@dashforge/rbac`
120
+ * policy engine. Brings Grid to parity with `<Box>`, which has
121
+ * carried both props since 1.1.0.
122
+ *
123
+ * - `onUnauthorized: 'hide'` → does not render
124
+ * - `onUnauthorized: 'disable'` → `aria-disabled` + dimmed; interactive
125
+ * children derive their own state from `data-disabled` or carry their
126
+ * own `access`
127
+ * - `onUnauthorized: 'readonly'` → `aria-readonly`, for gated sections
128
+ *
129
+ * @default undefined
130
+ *
131
+ * @example
132
+ * ```tsx
133
+ * <Grid access={{ resource: 'billing', action: 'read', onUnauthorized: 'hide' }}>
134
+ * <RevenueCard />
135
+ * </Grid>
136
+ * ```
137
+ */
138
+ access?: AccessRequirement;
97
139
  }
98
140
  /**
99
141
  * `<Grid>` props — discriminated union: container OR item, never both.
@@ -0,0 +1,13 @@
1
+ import type { KbdProps } from './kbd.types.js';
2
+ /**
3
+ * `<Kbd>` — a single keycap.
4
+ *
5
+ * ```tsx
6
+ * Press <Kbd>Esc</Kbd> to close
7
+ * ```
8
+ *
9
+ * See {@link KbdProps} for the full API surface, including why chords are
10
+ * composed rather than passed as an array.
11
+ */
12
+ export declare const Kbd: import("react").ForwardRefExoticComponent<KbdProps & import("react").RefAttributes<HTMLElement>>;
13
+ //# sourceMappingURL=Kbd.d.ts.map
@@ -0,0 +1,62 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { KbdVariants } from './kbd.variants.js';
3
+ /** Size scale. `md` matches body text; `sm` sits inside dense chrome. */
4
+ export type KbdSize = NonNullable<KbdVariants['size']>;
5
+ /**
6
+ * Subset of `<Kbd>` props configurable through
7
+ * `theme.components.Kbd.defaults` (Option C).
8
+ */
9
+ export type KbdVariantProps = Pick<KbdVariants, 'size'>;
10
+ /**
11
+ * Props for `<Kbd>` — a single keycap, for showing the key that triggers
12
+ * something (`⌘K`, `Esc`, `Shift`).
13
+ *
14
+ * It renders the semantic `<kbd>` element rather than a styled span, which
15
+ * is the whole reason the primitive exists: assistive tech and reader modes
16
+ * treat `<kbd>` as keyboard input, and a span says nothing.
17
+ *
18
+ * **Combinations compose.** There is no `keys` prop: a chord is two caps
19
+ * and whatever separator the design calls for, and baking one in would
20
+ * decide `⌘ + K` against `⌘K` for every consumer.
21
+ *
22
+ * ```tsx
23
+ * <span className="inline-flex items-center gap-1">
24
+ * <Kbd>⌘</Kbd>
25
+ * <Kbd>K</Kbd>
26
+ * </span>
27
+ * ```
28
+ *
29
+ * A keycap is display chrome, so it carries no `access` / `visibleWhen`:
30
+ * like `<Typography>`, it is gated by wrapping it, not by gating itself.
31
+ */
32
+ export interface KbdProps {
33
+ /** The key label. Usually one glyph or a short word (`Esc`, `Tab`). */
34
+ children: ReactNode;
35
+ /**
36
+ * Cap size.
37
+ *
38
+ * @default 'md'
39
+ */
40
+ size?: KbdSize;
41
+ /**
42
+ * Utility classes appended to the variant chain. Resolved through
43
+ * `tailwind-merge`, so a consumer's class always wins over the recipe.
44
+ *
45
+ * @default undefined
46
+ */
47
+ sx?: string;
48
+ /**
49
+ * Escape hatch for the rendered `<kbd>`: `id`, `title`, `data-*`.
50
+ *
51
+ * @default undefined
52
+ */
53
+ className?: string;
54
+ }
55
+ declare module '@dashforge/tw-tokens' {
56
+ interface TWComponentDefaults {
57
+ Kbd?: {
58
+ defaults?: Partial<KbdVariantProps>;
59
+ };
60
+ }
61
+ }
62
+ //# sourceMappingURL=kbd.types.d.ts.map
@@ -0,0 +1,54 @@
1
+ import { type VariantProps } from 'tailwind-variants';
2
+ /**
3
+ * Tailwind-variants recipe for `<Kbd>`.
4
+ *
5
+ * One axis, `size`, because a keycap has no intent: it is chrome around a
6
+ * literal key, not a status or an action. Colour is fixed to the neutral
7
+ * ramp, which auto-inverts through the preset's CSS vars, so the cap reads
8
+ * as a raised surface in light and a recessed one in dark with no `dark:`
9
+ * variant to keep in sync.
10
+ *
11
+ * The border is what makes the cap read as a cap, and it is at `-500`
12
+ * rather than the `-300` a hairline invites. Measured on `learn/dash`
13
+ * against both surfaces a keycap realistically sits on:
14
+ *
15
+ * surface neutral-100 ... 1.09 vs page, 1.04 vs card
16
+ * surface neutral-200 ... 1.26 / 1.21
17
+ * border neutral-300 ... 1.48 / 1.42
18
+ * border neutral-400 ... 2.52 / 2.42
19
+ * border neutral-500 ... 4.74 / 4.54 <- the first that clears 3:1
20
+ *
21
+ * The first draft assumed the `bg-neutral-100` surface would do the
22
+ * separating and left the border at `-300`. It does not: a neutral surface
23
+ * one step off the page is ~1.1:1 by construction, and in dark mode it
24
+ * lands on exactly the same colour as a card, so the cap disappeared into
25
+ * the panel and only the hairline was left. That is the same shape that
26
+ * failed on the outline Chip (README-BUG § BUG 40), and it reached the
27
+ * same tier for the same reason.
28
+ *
29
+ * The surface stays as a faint lift, not as the separator.
30
+ *
31
+ * `rounded-md` rather than a bare `rounded`, which is hard-coded at
32
+ * 0.25rem and immune to the radius tokens (README-BUG § BUG 26).
33
+ */
34
+ export declare const kbdVariants: import("tailwind-variants").TVReturnType<{
35
+ size: {
36
+ sm: string;
37
+ md: string;
38
+ lg: string;
39
+ };
40
+ }, undefined, string[], {
41
+ size: {
42
+ sm: string;
43
+ md: string;
44
+ lg: string;
45
+ };
46
+ }, undefined, import("tailwind-variants").TVReturnType<{
47
+ size: {
48
+ sm: string;
49
+ md: string;
50
+ lg: string;
51
+ };
52
+ }, undefined, string[], unknown, unknown, undefined>>;
53
+ export type KbdVariants = VariantProps<typeof kbdVariants>;
54
+ //# sourceMappingURL=kbd.variants.d.ts.map
@@ -9,6 +9,6 @@ import type { SelectProps, SelectValue } from './select.types.js';
9
9
  * `<Select<'a' | 'b'> options={…} onChange={…} />`.
10
10
  */
11
11
  export declare const Select: <V extends SelectValue = string>(props: SelectProps<V> & {
12
- ref?: React.Ref<HTMLButtonElement>;
12
+ ref?: React.Ref<HTMLDivElement>;
13
13
  }) => ReactElement | null;
14
14
  //# sourceMappingURL=Select.d.ts.map
@@ -10,6 +10,6 @@ import type { SliderProps, SliderSingleProps, SliderRangeProps } from './slider.
10
10
  *
11
11
  * See {@link SliderProps} for the full API surface.
12
12
  */
13
- export declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HTMLSpanElement>>;
13
+ export declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HTMLDivElement>>;
14
14
  export type { SliderSingleProps, SliderRangeProps };
15
15
  //# sourceMappingURL=Slider.d.ts.map
@@ -1,4 +1,6 @@
1
1
  import type { ElementType, HTMLAttributes, ReactNode } from 'react';
2
+ import type { Engine } from '@dashforge/ui-core';
3
+ import type { AccessRequirement } from '@dashforge/rbac';
2
4
  import type { StackGap, StackVariants } from './stack.variants.js';
3
5
  /**
4
6
  * Subset of `<Stack>` props theme-configurable via
@@ -108,5 +110,45 @@ export interface StackProps extends Omit<HTMLAttributes<HTMLDivElement>, 'classN
108
110
  * variant defaults.
109
111
  */
110
112
  sx?: string;
113
+ /**
114
+ * Reactive visibility predicate. When it returns `false` the component
115
+ * renders `null`. Inside a `<DashForm>` it subscribes reactively to
116
+ * engine state; outside a form it is evaluated as a plain closure.
117
+ *
118
+ * Use it for state-driven hiding. **For permission-driven hiding prefer
119
+ * `access` with `onUnauthorized: 'hide'`**, which is the semantically
120
+ * correct path and surfaces properly in RBAC dev tools.
121
+ *
122
+ * @default undefined
123
+ *
124
+ * @example
125
+ * ```tsx
126
+ * <Stack visibleWhen={() => pendingCount > 0}>
127
+ * <Typography variant="h3">{pendingCount} pending</Typography>
128
+ * </Stack>
129
+ * ```
130
+ */
131
+ visibleWhen?: (engine: Engine) => boolean;
132
+ /**
133
+ * RBAC requirement, evaluated by the centralized `@dashforge/rbac`
134
+ * policy engine. Brings Stack to parity with `<Box>`, which has
135
+ * carried both props since 1.1.0.
136
+ *
137
+ * - `onUnauthorized: 'hide'` → does not render
138
+ * - `onUnauthorized: 'disable'` → `aria-disabled` + dimmed; interactive
139
+ * children derive their own state from `data-disabled` or carry their
140
+ * own `access`
141
+ * - `onUnauthorized: 'readonly'` → `aria-readonly`, for gated sections
142
+ *
143
+ * @default undefined
144
+ *
145
+ * @example
146
+ * ```tsx
147
+ * <Stack access={{ resource: 'billing', action: 'read', onUnauthorized: 'hide' }}>
148
+ * <RevenueCard />
149
+ * </Stack>
150
+ * ```
151
+ */
152
+ access?: AccessRequirement;
111
153
  }
112
154
  //# sourceMappingURL=stack.types.d.ts.map
@@ -182,5 +182,13 @@ export type StackGap = 0 | 0.5 | 1 | 2 | 3 | 4 | 6 | 8 | 12 | 16 | 24;
182
182
  * `gap` value at render time. Same set as {@link StackGap}. Frozen
183
183
  * so callers can't mutate the source of truth.
184
184
  */
185
+ /**
186
+ * The accepted `direction` values, for the dev-time guard in `Stack.tsx`.
187
+ *
188
+ * Frozen and exported rather than inlined so the warning cannot drift from
189
+ * the variant recipe: adding an axis value without adding it here would
190
+ * make the guard warn about something that works.
191
+ */
192
+ export declare const STACK_DIRECTION_VALUES: readonly ["row", "col", "row-reverse", "col-reverse"];
185
193
  export declare const STACK_GAP_VALUES: readonly StackGap[];
186
194
  //# sourceMappingURL=stack.variants.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { TopBarProps } from './topBar.types.js';
1
+ import type { TopBarProps, TopBarBrandProps } from './topBar.types.js';
2
2
  /**
3
3
  * Dashforge TW TopBar — sticky header with 3 named slots.
4
4
  *
@@ -30,4 +30,19 @@ import type { TopBarProps } from './topBar.types.js';
30
30
  * appropriate roles (`<nav>`, `<search>`, etc.) where needed.
31
31
  */
32
32
  export declare function TopBar(props: TopBarProps): import("react/jsx-runtime").JSX.Element;
33
+ /**
34
+ * `<TopBarBrand>` — the mark-plus-text block for a `<TopBar>`'s `start`
35
+ * slot.
36
+ *
37
+ * ```tsx
38
+ * <TopBar
39
+ * start={<TopBarBrand logo={<Logo />} title="Dashforge" subtitle="src/App.tsx" />}
40
+ * end={<UserMenu />}
41
+ * />
42
+ * ```
43
+ *
44
+ * See {@link TopBarBrandProps} for why it is a sibling export rather than
45
+ * `TopBar.Brand`, and why it stays layout-only.
46
+ */
47
+ export declare const TopBarBrand: import("react").ForwardRefExoticComponent<TopBarBrandProps & import("react").RefAttributes<HTMLDivElement>>;
33
48
  //# sourceMappingURL=TopBar.d.ts.map
@@ -0,0 +1,142 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { TopBarVariants } from './topBar.variants.js';
3
+ /**
4
+ * Subset of `<TopBar>` props theme-configurable via
5
+ * `theme.components.TopBar.defaults` (Option C).
6
+ */
7
+ export type TopBarVariantProps = Pick<TopBarVariants, 'height' | 'sticky'>;
8
+ declare module '@dashforge/tw-tokens' {
9
+ interface TWComponentDefaults {
10
+ TopBar?: {
11
+ defaults?: Partial<TopBarVariantProps>;
12
+ slotProps?: TopBarSlotProps;
13
+ };
14
+ }
15
+ }
16
+ export interface TopBarSlotProps {
17
+ root?: {
18
+ className?: string;
19
+ };
20
+ start?: {
21
+ className?: string;
22
+ };
23
+ center?: {
24
+ className?: string;
25
+ };
26
+ end?: {
27
+ className?: string;
28
+ };
29
+ }
30
+ /**
31
+ * Props for `<TopBar>`.
32
+ *
33
+ * Pure composition container with 3 named slots — `start`, `center`,
34
+ * `end` — that fill a sticky horizontal bar.
35
+ *
36
+ * Typical patterns:
37
+ *
38
+ * - **start**: mobile menu toggle, brand/logo
39
+ * - **center**: Breadcrumbs, page title, global search
40
+ * - **end**: notifications icon, user menu, theme toggle
41
+ *
42
+ * The component is intentionally minimal: it just lays out the three
43
+ * regions. All semantics (e.g., `<header role="banner">`) come for
44
+ * free from rendering as an HTML `<header>` element.
45
+ */
46
+ export interface TopBarProps {
47
+ /**
48
+ * Bar height tier — sm:h-12, md:h-14, lg:h-16.
49
+ * @default 'md'
50
+ */
51
+ height?: TopBarVariants['height'];
52
+ /**
53
+ * Apply `position: sticky; top: 0` so the bar stays pinned during
54
+ * page scroll.
55
+ * @default true
56
+ */
57
+ sticky?: TopBarVariants['sticky'];
58
+ /** Left-aligned slot (mobile menu, brand). */
59
+ start?: ReactNode;
60
+ /** Center slot (breadcrumbs, title). Grows to fill remaining space. */
61
+ center?: ReactNode;
62
+ /** Right-aligned slot (actions, user menu). */
63
+ end?: ReactNode;
64
+ /** Convenience: render the bar as a plain `<div>` (no banner role). */
65
+ asDiv?: boolean;
66
+ /** Root className shortcut. */
67
+ sx?: string;
68
+ /** Per-slot className overrides. */
69
+ slotProps?: TopBarSlotProps;
70
+ /** Children render between `start` and `end` when no `center` is set. */
71
+ children?: ReactNode;
72
+ }
73
+ /** Per-slot class overrides for `<TopBarBrand>`. */
74
+ export interface TopBarBrandSlotProps {
75
+ /** Outer wrapper holding logo, title and subtitle. */
76
+ root?: {
77
+ className?: string;
78
+ };
79
+ /** The mark. */
80
+ logo?: {
81
+ className?: string;
82
+ };
83
+ /** Wrapper around the two text lines. */
84
+ text?: {
85
+ className?: string;
86
+ };
87
+ /** The primary line. */
88
+ title?: {
89
+ className?: string;
90
+ };
91
+ /** The secondary line. */
92
+ subtitle?: {
93
+ className?: string;
94
+ };
95
+ }
96
+ /**
97
+ * Props for `<TopBarBrand>` — the "mark plus a line or two of text" block
98
+ * that fills a `<TopBar>`'s `start` slot. kensaadi/dashforge#63 gap G.
99
+ *
100
+ * A **sibling export, not `TopBar.Brand`**, despite how the request was
101
+ * written: this catalog attaches subcomponents as named siblings
102
+ * (`Card` / `CardContent` / `CardActionArea`), and one component doing it
103
+ * differently is worse than matching the request's punctuation.
104
+ *
105
+ * It is deliberately layout only: no link, no routing, no click. A brand
106
+ * that navigates home is a `<Link>` or a router component wrapped around
107
+ * this, which keeps the router out of the library.
108
+ *
109
+ * ⚠️ This lands ahead of kensaadi/dashforge#132, whose job is to freeze the
110
+ * AppShell and TopBar surface, and #134 lists this helper as one of its
111
+ * deliverables. It is kept to the smallest shape that removes the
112
+ * duplication so the audit can adopt or reshape it cheaply.
113
+ */
114
+ export interface TopBarBrandProps {
115
+ /** The mark: an svg, an `<img>`, an icon. Omit for text-only brands. */
116
+ logo?: ReactNode;
117
+ /**
118
+ * The primary line, e.g. the product name.
119
+ */
120
+ title: ReactNode;
121
+ /**
122
+ * The secondary line, e.g. the open file or the current page. Omitted,
123
+ * the block is a single line and the title centres against the logo.
124
+ *
125
+ * @default undefined
126
+ */
127
+ subtitle?: ReactNode;
128
+ /**
129
+ * Utility classes appended to the root's variant chain, resolved through
130
+ * `tailwind-merge`.
131
+ *
132
+ * @default undefined
133
+ */
134
+ sx?: string;
135
+ /**
136
+ * Per-slot class overrides.
137
+ *
138
+ * @default undefined
139
+ */
140
+ slotProps?: TopBarBrandSlotProps;
141
+ }
142
+ //# sourceMappingURL=topBar.types.d.ts.map
@@ -0,0 +1,136 @@
1
+ import { type VariantProps } from 'tailwind-variants';
2
+ /**
3
+ * Tailwind-variants recipe for `<TopBar>`.
4
+ *
5
+ * Slots:
6
+ * - `root` — outer `<header>` (or `<div>` with `asDiv`)
7
+ * - `start` — left region (shrink-to-content)
8
+ * - `center` — middle region (grows to fill)
9
+ * - `end` — right region (shrink-to-content)
10
+ */
11
+ export declare const topBarVariants: import("tailwind-variants").TVReturnType<{
12
+ height: {
13
+ sm: {
14
+ root: string;
15
+ };
16
+ md: {
17
+ root: string;
18
+ };
19
+ lg: {
20
+ root: string;
21
+ };
22
+ };
23
+ sticky: {
24
+ true: {
25
+ root: string;
26
+ };
27
+ };
28
+ }, {
29
+ root: string[];
30
+ start: string;
31
+ center: string;
32
+ end: string;
33
+ }, undefined, {
34
+ height: {
35
+ sm: {
36
+ root: string;
37
+ };
38
+ md: {
39
+ root: string;
40
+ };
41
+ lg: {
42
+ root: string;
43
+ };
44
+ };
45
+ sticky: {
46
+ true: {
47
+ root: string;
48
+ };
49
+ };
50
+ }, {
51
+ root: string[];
52
+ start: string;
53
+ center: string;
54
+ end: string;
55
+ }, import("tailwind-variants").TVReturnType<{
56
+ height: {
57
+ sm: {
58
+ root: string;
59
+ };
60
+ md: {
61
+ root: string;
62
+ };
63
+ lg: {
64
+ root: string;
65
+ };
66
+ };
67
+ sticky: {
68
+ true: {
69
+ root: string;
70
+ };
71
+ };
72
+ }, {
73
+ root: string[];
74
+ start: string;
75
+ center: string;
76
+ end: string;
77
+ }, undefined, unknown, unknown, undefined>>;
78
+ export type TopBarVariants = VariantProps<typeof topBarVariants>;
79
+ /**
80
+ * Recipe for `<TopBarBrand>`.
81
+ *
82
+ * `min-w-0` plus `truncate` on both lines is the load-bearing part: a bar
83
+ * is a fixed-height row, and a long subtitle (a file path, which is the
84
+ * case this exists for) would otherwise push the `center` and `end` slots
85
+ * out of the bar rather than ellipsing.
86
+ */
87
+ export declare const topBarBrandVariants: import("tailwind-variants").TVReturnType<{
88
+ [key: string]: {
89
+ [key: string]: import("tailwind-merge").ClassNameValue | {
90
+ title?: import("tailwind-merge").ClassNameValue;
91
+ text?: import("tailwind-merge").ClassNameValue;
92
+ root?: import("tailwind-merge").ClassNameValue;
93
+ logo?: import("tailwind-merge").ClassNameValue;
94
+ subtitle?: import("tailwind-merge").ClassNameValue;
95
+ };
96
+ };
97
+ } | {
98
+ [x: string]: {
99
+ [x: string]: import("tailwind-merge").ClassNameValue | {
100
+ title?: import("tailwind-merge").ClassNameValue;
101
+ text?: import("tailwind-merge").ClassNameValue;
102
+ root?: import("tailwind-merge").ClassNameValue;
103
+ logo?: import("tailwind-merge").ClassNameValue;
104
+ subtitle?: import("tailwind-merge").ClassNameValue;
105
+ };
106
+ };
107
+ } | {}, {
108
+ root: string;
109
+ logo: string;
110
+ text: string;
111
+ title: string;
112
+ subtitle: string;
113
+ }, undefined, {
114
+ [key: string]: {
115
+ [key: string]: import("tailwind-merge").ClassNameValue | {
116
+ title?: import("tailwind-merge").ClassNameValue;
117
+ text?: import("tailwind-merge").ClassNameValue;
118
+ root?: import("tailwind-merge").ClassNameValue;
119
+ logo?: import("tailwind-merge").ClassNameValue;
120
+ subtitle?: import("tailwind-merge").ClassNameValue;
121
+ };
122
+ };
123
+ } | {}, {
124
+ root: string;
125
+ logo: string;
126
+ text: string;
127
+ title: string;
128
+ subtitle: string;
129
+ }, import("tailwind-variants").TVReturnType<unknown, {
130
+ root: string;
131
+ logo: string;
132
+ text: string;
133
+ title: string;
134
+ subtitle: string;
135
+ }, undefined, unknown, unknown, undefined>>;
136
+ //# sourceMappingURL=topBar.variants.d.ts.map
@@ -0,0 +1,52 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { DashFormBridge } from '@dashforge/ui-core';
3
+ /**
4
+ * Resolved validation state for a bridge-managed field.
5
+ *
6
+ * Returned by `resolveValidationState`, this is consumed by all form
7
+ * components that surface error + helper text (TextField, Checkbox,
8
+ * Switch, …) to derive their final render state.
9
+ */
10
+ export interface ValidationState {
11
+ error: boolean;
12
+ helperText: ReactNode;
13
+ }
14
+ /**
15
+ * Compute `error` + `helperText` for a bridge-managed field.
16
+ *
17
+ * **Renderer-agnostic.** Mirrors the MUI-side
18
+ * `ui/src/components/TextField/textField.validation.ts`. Promoted to a
19
+ * `_shared/` directory inside `@dashforge/tw` so all 14 bridge-managed
20
+ * form components reuse the same precedence without depending on a
21
+ * specific component folder.
22
+ *
23
+ * ⚠️ This file is a COPY, not an import. The two sides have to be kept
24
+ * in step by hand, and once already were not: BUG 17 (2026-09-15)
25
+ * inverted the `helperText` precedence on the MUI side only, and this
26
+ * copy kept the broken order for ten days until BUG 32 caught it. The
27
+ * verification that missed it was a grep for imports of the MUI file,
28
+ * which by construction cannot reach a copy. **When you change the
29
+ * precedence here, change it there too — and vice versa.**
30
+ *
31
+ * Precedence rules:
32
+ *
33
+ * 1. **`error`: the explicit prop wins.** An author who passes `error`
34
+ * is forcing the visual state, so it overrides the auto-gate.
35
+ * 2. **`helperText`: the validation message wins while it is showing;
36
+ * the explicit prop is the fallback for the no-error state.** A
37
+ * constant hint ("Unique, uppercase") must not swallow the reason a
38
+ * required field was rejected — that leaves the user looking at a
39
+ * red field with no explanation. See README-BUG.md § BUG 17 / § BUG 32.
40
+ * 3. **Auto values are gated by interaction.** The bridge's error is
41
+ * surfaced only when the field is `touched` OR the form has been
42
+ * submitted at least once (`submitCount > 0`). This prevents the
43
+ * "error spam while typing" anti-pattern.
44
+ *
45
+ * @param name field name registered with the bridge
46
+ * @param bridge active `DashFormBridge` (guaranteed non-null at
47
+ * call sites by the surrounding `if (bridge)`)
48
+ * @param explicitError `error` prop from the consumer
49
+ * @param explicitHelperText `helperText` prop from the consumer
50
+ */
51
+ export declare function resolveValidationState(name: string, bridge: DashFormBridge, explicitError: boolean | undefined, explicitHelperText: ReactNode | undefined): ValidationState;
52
+ //# sourceMappingURL=resolveValidationState.d.ts.map