@dashforge/tw 1.0.0 → 1.1.1

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 (692) hide show
  1. package/CHANGELOG.md +241 -0
  2. package/README.md +74 -15
  3. package/dist/index.d.ts +1 -146
  4. package/dist/index.esm.js +3127 -748
  5. package/dist/src/components/Alert/Alert.d.ts +65 -0
  6. package/dist/src/components/Alert/Alert.d.ts.map +1 -0
  7. package/dist/src/components/Alert/alert.types.d.ts +130 -0
  8. package/dist/src/components/Alert/alert.types.d.ts.map +1 -0
  9. package/dist/src/components/Alert/alert.variants.d.ts +85 -0
  10. package/dist/src/components/Alert/alert.variants.d.ts.map +1 -0
  11. package/dist/src/components/Avatar/Avatar.d.ts +48 -0
  12. package/dist/src/components/Avatar/Avatar.d.ts.map +1 -0
  13. package/dist/src/components/Avatar/avatar.types.d.ts +162 -0
  14. package/dist/src/components/Avatar/avatar.types.d.ts.map +1 -0
  15. package/dist/src/components/Avatar/avatar.variants.d.ts +208 -0
  16. package/dist/src/components/Avatar/avatar.variants.d.ts.map +1 -0
  17. package/dist/src/components/Badge/Badge.d.ts +63 -0
  18. package/dist/src/components/Badge/Badge.d.ts.map +1 -0
  19. package/dist/src/components/Badge/badge.types.d.ts +124 -0
  20. package/dist/src/components/Badge/badge.types.d.ts.map +1 -0
  21. package/dist/src/components/Badge/badge.variants.d.ts +262 -0
  22. package/dist/src/components/Badge/badge.variants.d.ts.map +1 -0
  23. package/dist/src/components/Box/Box.d.ts.map +1 -1
  24. package/dist/src/components/Box/box.types.d.ts +53 -0
  25. package/dist/src/components/Box/box.types.d.ts.map +1 -1
  26. package/dist/src/components/Button/Button.d.ts.map +1 -1
  27. package/dist/src/components/Button/button.types.d.ts +35 -0
  28. package/dist/src/components/Button/button.types.d.ts.map +1 -1
  29. package/dist/src/components/Card/Card.d.ts +107 -0
  30. package/dist/src/components/Card/Card.d.ts.map +1 -0
  31. package/dist/src/components/Card/card.types.d.ts +119 -0
  32. package/dist/src/components/Card/card.types.d.ts.map +1 -0
  33. package/dist/src/components/Chip/Chip.d.ts +67 -0
  34. package/dist/src/components/Chip/Chip.d.ts.map +1 -0
  35. package/dist/src/components/Chip/chip.types.d.ts +113 -0
  36. package/dist/src/components/Chip/chip.types.d.ts.map +1 -0
  37. package/dist/src/components/Chip/chip.variants.d.ts +155 -0
  38. package/dist/src/components/Chip/chip.variants.d.ts.map +1 -0
  39. package/dist/src/components/IconButton/IconButton.d.ts +57 -0
  40. package/dist/src/components/IconButton/IconButton.d.ts.map +1 -0
  41. package/dist/src/components/IconButton/iconButton.types.d.ts +96 -0
  42. package/dist/src/components/IconButton/iconButton.types.d.ts.map +1 -0
  43. package/dist/src/components/IconButton/iconButton.variants.d.ts +26 -0
  44. package/dist/src/components/IconButton/iconButton.variants.d.ts.map +1 -0
  45. package/dist/src/components/Menu/Menu.d.ts +118 -0
  46. package/dist/src/components/Menu/Menu.d.ts.map +1 -0
  47. package/dist/src/components/Menu/menu.types.d.ts +179 -0
  48. package/dist/src/components/Menu/menu.types.d.ts.map +1 -0
  49. package/dist/src/components/Menu/menu.variants.d.ts +129 -0
  50. package/dist/src/components/Menu/menu.variants.d.ts.map +1 -0
  51. package/dist/src/components/Snackbar/Snackbar.d.ts.map +1 -1
  52. package/dist/src/components/Snackbar/snackbar.types.d.ts +40 -3
  53. package/dist/src/components/Snackbar/snackbar.types.d.ts.map +1 -1
  54. package/dist/src/components/Snackbar/snackbar.variants.d.ts +12 -57
  55. package/dist/src/components/Snackbar/snackbar.variants.d.ts.map +1 -1
  56. package/dist/src/components/Spinner/Spinner.d.ts +44 -0
  57. package/dist/src/components/Spinner/Spinner.d.ts.map +1 -0
  58. package/dist/src/components/Spinner/spinner.types.d.ts +89 -0
  59. package/dist/src/components/Spinner/spinner.types.d.ts.map +1 -0
  60. package/dist/src/components/Spinner/spinner.variants.d.ts +111 -0
  61. package/dist/src/components/Spinner/spinner.variants.d.ts.map +1 -0
  62. package/dist/src/components/Table/cells/RenderChip.d.ts +15 -72
  63. package/dist/src/components/Table/cells/RenderChip.d.ts.map +1 -1
  64. package/dist/src/components/_shared/severity/index.d.ts +21 -0
  65. package/dist/src/components/_shared/severity/index.d.ts.map +1 -0
  66. package/dist/src/components/_shared/severity/severity.types.d.ts +48 -0
  67. package/dist/src/components/_shared/severity/severity.types.d.ts.map +1 -0
  68. package/dist/src/components/_shared/severity/severityIcons.d.ts +45 -0
  69. package/dist/src/components/_shared/severity/severityIcons.d.ts.map +1 -0
  70. package/dist/src/components/_shared/severity/severityVariants.d.ts +22 -0
  71. package/dist/src/components/_shared/severity/severityVariants.d.ts.map +1 -0
  72. package/dist/src/index.d.ts +27 -2
  73. package/dist/src/index.d.ts.map +1 -1
  74. package/package.json +9 -3
  75. package/.swcrc +0 -29
  76. package/A11Y.md +0 -130
  77. package/CONSUMER-VALIDATION.md +0 -130
  78. package/COVERAGE.md +0 -63
  79. package/LICENSE +0 -21
  80. package/PARITY.md +0 -481
  81. package/PERFORMANCE.md +0 -227
  82. package/REFINEMENT-NOTES.md +0 -50
  83. package/THEME-AUDIT.md +0 -174
  84. package/dist/components/Accordion/Accordion.d.ts +0 -21
  85. package/dist/components/Accordion/Accordion.d.ts.map +0 -1
  86. package/dist/components/Accordion/accordion.types.d.ts +0 -74
  87. package/dist/components/Accordion/accordion.types.d.ts.map +0 -1
  88. package/dist/components/Accordion/accordion.variants.d.ts +0 -58
  89. package/dist/components/Accordion/accordion.variants.d.ts.map +0 -1
  90. package/dist/components/AppShell/AppShell.d.ts +0 -46
  91. package/dist/components/AppShell/AppShell.d.ts.map +0 -1
  92. package/dist/components/AppShell/appShell.types.d.ts +0 -62
  93. package/dist/components/AppShell/appShell.types.d.ts.map +0 -1
  94. package/dist/components/AppShell/appShell.variants.d.ts +0 -65
  95. package/dist/components/AppShell/appShell.variants.d.ts.map +0 -1
  96. package/dist/components/AspectRatio/AspectRatio.d.ts +0 -36
  97. package/dist/components/AspectRatio/AspectRatio.d.ts.map +0 -1
  98. package/dist/components/AspectRatio/aspectRatio.types.d.ts +0 -50
  99. package/dist/components/AspectRatio/aspectRatio.types.d.ts.map +0 -1
  100. package/dist/components/Autocomplete/Autocomplete.d.ts +0 -32
  101. package/dist/components/Autocomplete/Autocomplete.d.ts.map +0 -1
  102. package/dist/components/Autocomplete/autocomplete.types.d.ts +0 -214
  103. package/dist/components/Autocomplete/autocomplete.types.d.ts.map +0 -1
  104. package/dist/components/Autocomplete/autocomplete.variants.d.ts +0 -214
  105. package/dist/components/Autocomplete/autocomplete.variants.d.ts.map +0 -1
  106. package/dist/components/Box/Box.d.ts +0 -36
  107. package/dist/components/Box/Box.d.ts.map +0 -1
  108. package/dist/components/Box/box.types.d.ts +0 -54
  109. package/dist/components/Box/box.types.d.ts.map +0 -1
  110. package/dist/components/Box/box.variants.d.ts +0 -402
  111. package/dist/components/Box/box.variants.d.ts.map +0 -1
  112. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +0 -23
  113. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +0 -1
  114. package/dist/components/Breadcrumbs/breadcrumbs.types.d.ts +0 -98
  115. package/dist/components/Breadcrumbs/breadcrumbs.types.d.ts.map +0 -1
  116. package/dist/components/Breadcrumbs/breadcrumbs.variants.d.ts +0 -85
  117. package/dist/components/Breadcrumbs/breadcrumbs.variants.d.ts.map +0 -1
  118. package/dist/components/Button/Button.d.ts +0 -44
  119. package/dist/components/Button/Button.d.ts.map +0 -1
  120. package/dist/components/Button/button.types.d.ts +0 -66
  121. package/dist/components/Button/button.types.d.ts.map +0 -1
  122. package/dist/components/Button/button.variants.d.ts +0 -104
  123. package/dist/components/Button/button.variants.d.ts.map +0 -1
  124. package/dist/components/Calendar/Calendar.d.ts +0 -14
  125. package/dist/components/Calendar/Calendar.d.ts.map +0 -1
  126. package/dist/components/Calendar/calendar.types.d.ts +0 -72
  127. package/dist/components/Calendar/calendar.types.d.ts.map +0 -1
  128. package/dist/components/Calendar/calendar.variants.d.ts +0 -99
  129. package/dist/components/Calendar/calendar.variants.d.ts.map +0 -1
  130. package/dist/components/Checkbox/Checkbox.d.ts +0 -31
  131. package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
  132. package/dist/components/Checkbox/checkbox.types.d.ts +0 -86
  133. package/dist/components/Checkbox/checkbox.types.d.ts.map +0 -1
  134. package/dist/components/Checkbox/checkbox.variants.d.ts +0 -109
  135. package/dist/components/Checkbox/checkbox.variants.d.ts.map +0 -1
  136. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +0 -38
  137. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +0 -1
  138. package/dist/components/ConfirmDialog/confirmDialog.types.d.ts +0 -80
  139. package/dist/components/ConfirmDialog/confirmDialog.types.d.ts.map +0 -1
  140. package/dist/components/ConfirmDialog/confirmDialog.variants.d.ts +0 -90
  141. package/dist/components/ConfirmDialog/confirmDialog.variants.d.ts.map +0 -1
  142. package/dist/components/Container/Container.d.ts +0 -35
  143. package/dist/components/Container/Container.d.ts.map +0 -1
  144. package/dist/components/Container/container.types.d.ts +0 -41
  145. package/dist/components/Container/container.types.d.ts.map +0 -1
  146. package/dist/components/Container/container.variants.d.ts +0 -93
  147. package/dist/components/Container/container.variants.d.ts.map +0 -1
  148. package/dist/components/DataGrid/DataGrid.d.ts +0 -29
  149. package/dist/components/DataGrid/DataGrid.d.ts.map +0 -1
  150. package/dist/components/DataGrid/dataGrid.types.d.ts +0 -214
  151. package/dist/components/DataGrid/dataGrid.types.d.ts.map +0 -1
  152. package/dist/components/DataGrid/dataGrid.variants.d.ts +0 -222
  153. package/dist/components/DataGrid/dataGrid.variants.d.ts.map +0 -1
  154. package/dist/components/DataGrid/filters/ColumnFilters.d.ts +0 -23
  155. package/dist/components/DataGrid/filters/ColumnFilters.d.ts.map +0 -1
  156. package/dist/components/DataGrid/reorder/useColumnReorder.d.ts +0 -50
  157. package/dist/components/DataGrid/reorder/useColumnReorder.d.ts.map +0 -1
  158. package/dist/components/DataGrid/resize/useColumnResize.d.ts +0 -39
  159. package/dist/components/DataGrid/resize/useColumnResize.d.ts.map +0 -1
  160. package/dist/components/DataGrid/visibility/ColumnVisibilityMenu.d.ts +0 -44
  161. package/dist/components/DataGrid/visibility/ColumnVisibilityMenu.d.ts.map +0 -1
  162. package/dist/components/DatePicker/DatePicker.d.ts +0 -14
  163. package/dist/components/DatePicker/DatePicker.d.ts.map +0 -1
  164. package/dist/components/DatePicker/datePicker.types.d.ts +0 -88
  165. package/dist/components/DatePicker/datePicker.types.d.ts.map +0 -1
  166. package/dist/components/DatePicker/datePicker.variants.d.ts +0 -97
  167. package/dist/components/DatePicker/datePicker.variants.d.ts.map +0 -1
  168. package/dist/components/DateRangePicker/DateRangePicker.d.ts +0 -13
  169. package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +0 -1
  170. package/dist/components/DateRangePicker/dateRangePicker.types.d.ts +0 -85
  171. package/dist/components/DateRangePicker/dateRangePicker.types.d.ts.map +0 -1
  172. package/dist/components/DateRangePicker/dateRangePicker.variants.d.ts +0 -183
  173. package/dist/components/DateRangePicker/dateRangePicker.variants.d.ts.map +0 -1
  174. package/dist/components/DateTimePicker/DateTimePicker.d.ts +0 -13
  175. package/dist/components/DateTimePicker/DateTimePicker.d.ts.map +0 -1
  176. package/dist/components/DateTimePicker/dateTimePicker.types.d.ts +0 -90
  177. package/dist/components/DateTimePicker/dateTimePicker.types.d.ts.map +0 -1
  178. package/dist/components/DateTimePicker/dateTimePicker.variants.d.ts +0 -107
  179. package/dist/components/DateTimePicker/dateTimePicker.variants.d.ts.map +0 -1
  180. package/dist/components/Dialog/Dialog.d.ts +0 -17
  181. package/dist/components/Dialog/Dialog.d.ts.map +0 -1
  182. package/dist/components/Dialog/dialog.types.d.ts +0 -75
  183. package/dist/components/Dialog/dialog.types.d.ts.map +0 -1
  184. package/dist/components/Dialog/dialog.variants.d.ts +0 -80
  185. package/dist/components/Dialog/dialog.variants.d.ts.map +0 -1
  186. package/dist/components/Divider/Divider.d.ts +0 -50
  187. package/dist/components/Divider/Divider.d.ts.map +0 -1
  188. package/dist/components/Divider/divider.types.d.ts +0 -47
  189. package/dist/components/Divider/divider.types.d.ts.map +0 -1
  190. package/dist/components/Divider/divider.variants.d.ts +0 -129
  191. package/dist/components/Divider/divider.variants.d.ts.map +0 -1
  192. package/dist/components/Grid/Grid.d.ts +0 -32
  193. package/dist/components/Grid/Grid.d.ts.map +0 -1
  194. package/dist/components/Grid/grid.types.d.ts +0 -103
  195. package/dist/components/Grid/grid.types.d.ts.map +0 -1
  196. package/dist/components/Grid/grid.variants.d.ts +0 -453
  197. package/dist/components/Grid/grid.variants.d.ts.map +0 -1
  198. package/dist/components/LeftNav/LeftNav.d.ts +0 -34
  199. package/dist/components/LeftNav/LeftNav.d.ts.map +0 -1
  200. package/dist/components/LeftNav/leftNav.types.d.ts +0 -136
  201. package/dist/components/LeftNav/leftNav.types.d.ts.map +0 -1
  202. package/dist/components/LeftNav/leftNav.variants.d.ts +0 -143
  203. package/dist/components/LeftNav/leftNav.variants.d.ts.map +0 -1
  204. package/dist/components/NumberField/NumberField.d.ts +0 -18
  205. package/dist/components/NumberField/NumberField.d.ts.map +0 -1
  206. package/dist/components/NumberField/numberField.types.d.ts +0 -79
  207. package/dist/components/NumberField/numberField.types.d.ts.map +0 -1
  208. package/dist/components/NumberField/numberField.variants.d.ts +0 -169
  209. package/dist/components/NumberField/numberField.variants.d.ts.map +0 -1
  210. package/dist/components/OTPField/OTPField.d.ts +0 -25
  211. package/dist/components/OTPField/OTPField.d.ts.map +0 -1
  212. package/dist/components/OTPField/otpField.types.d.ts +0 -74
  213. package/dist/components/OTPField/otpField.types.d.ts.map +0 -1
  214. package/dist/components/OTPField/otpField.variants.d.ts +0 -105
  215. package/dist/components/OTPField/otpField.variants.d.ts.map +0 -1
  216. package/dist/components/Pagination/Pagination.d.ts +0 -32
  217. package/dist/components/Pagination/Pagination.d.ts.map +0 -1
  218. package/dist/components/Pagination/pagination.helpers.d.ts +0 -23
  219. package/dist/components/Pagination/pagination.helpers.d.ts.map +0 -1
  220. package/dist/components/Pagination/pagination.types.d.ts +0 -120
  221. package/dist/components/Pagination/pagination.types.d.ts.map +0 -1
  222. package/dist/components/Pagination/pagination.variants.d.ts +0 -150
  223. package/dist/components/Pagination/pagination.variants.d.ts.map +0 -1
  224. package/dist/components/Popover/Popover.d.ts +0 -15
  225. package/dist/components/Popover/Popover.d.ts.map +0 -1
  226. package/dist/components/Popover/popover.types.d.ts +0 -45
  227. package/dist/components/Popover/popover.types.d.ts.map +0 -1
  228. package/dist/components/Popover/popover.variants.d.ts +0 -34
  229. package/dist/components/Popover/popover.variants.d.ts.map +0 -1
  230. package/dist/components/RadioGroup/RadioGroup.d.ts +0 -35
  231. package/dist/components/RadioGroup/RadioGroup.d.ts.map +0 -1
  232. package/dist/components/RadioGroup/radioGroup.types.d.ts +0 -103
  233. package/dist/components/RadioGroup/radioGroup.types.d.ts.map +0 -1
  234. package/dist/components/RadioGroup/radioGroup.variants.d.ts +0 -166
  235. package/dist/components/RadioGroup/radioGroup.variants.d.ts.map +0 -1
  236. package/dist/components/Skeleton/Skeleton.d.ts +0 -23
  237. package/dist/components/Skeleton/Skeleton.d.ts.map +0 -1
  238. package/dist/components/Skeleton/skeleton.types.d.ts +0 -56
  239. package/dist/components/Skeleton/skeleton.types.d.ts.map +0 -1
  240. package/dist/components/Skeleton/skeleton.variants.d.ts +0 -110
  241. package/dist/components/Skeleton/skeleton.variants.d.ts.map +0 -1
  242. package/dist/components/Snackbar/Snackbar.d.ts +0 -37
  243. package/dist/components/Snackbar/Snackbar.d.ts.map +0 -1
  244. package/dist/components/Snackbar/snackbar.types.d.ts +0 -86
  245. package/dist/components/Snackbar/snackbar.types.d.ts.map +0 -1
  246. package/dist/components/Snackbar/snackbar.variants.d.ts +0 -153
  247. package/dist/components/Snackbar/snackbar.variants.d.ts.map +0 -1
  248. package/dist/components/Stack/Stack.d.ts +0 -24
  249. package/dist/components/Stack/Stack.d.ts.map +0 -1
  250. package/dist/components/Stack/stack.types.d.ts +0 -61
  251. package/dist/components/Stack/stack.types.d.ts.map +0 -1
  252. package/dist/components/Stack/stack.variants.d.ts +0 -163
  253. package/dist/components/Stack/stack.variants.d.ts.map +0 -1
  254. package/dist/components/Switch/Switch.d.ts +0 -15
  255. package/dist/components/Switch/Switch.d.ts.map +0 -1
  256. package/dist/components/Switch/switch.types.d.ts +0 -47
  257. package/dist/components/Switch/switch.types.d.ts.map +0 -1
  258. package/dist/components/Switch/switch.variants.d.ts +0 -105
  259. package/dist/components/Switch/switch.variants.d.ts.map +0 -1
  260. package/dist/components/Table/Table.d.ts +0 -24
  261. package/dist/components/Table/Table.d.ts.map +0 -1
  262. package/dist/components/Table/cells/RenderButton.d.ts +0 -13
  263. package/dist/components/Table/cells/RenderButton.d.ts.map +0 -1
  264. package/dist/components/Table/cells/RenderChip.d.ts +0 -80
  265. package/dist/components/Table/cells/RenderChip.d.ts.map +0 -1
  266. package/dist/components/Table/cells/RenderText.d.ts +0 -21
  267. package/dist/components/Table/cells/RenderText.d.ts.map +0 -1
  268. package/dist/components/Table/cells/RenderTwoLine.d.ts +0 -20
  269. package/dist/components/Table/cells/RenderTwoLine.d.ts.map +0 -1
  270. package/dist/components/Table/cells/RowActionsMenu.d.ts +0 -36
  271. package/dist/components/Table/cells/RowActionsMenu.d.ts.map +0 -1
  272. package/dist/components/Table/cells/index.d.ts +0 -11
  273. package/dist/components/Table/cells/index.d.ts.map +0 -1
  274. package/dist/components/Table/table.types.d.ts +0 -399
  275. package/dist/components/Table/table.types.d.ts.map +0 -1
  276. package/dist/components/Table/table.variants.d.ts +0 -285
  277. package/dist/components/Table/table.variants.d.ts.map +0 -1
  278. package/dist/components/Tabs/Tabs.d.ts +0 -19
  279. package/dist/components/Tabs/Tabs.d.ts.map +0 -1
  280. package/dist/components/Tabs/tabs.types.d.ts +0 -61
  281. package/dist/components/Tabs/tabs.types.d.ts.map +0 -1
  282. package/dist/components/Tabs/tabs.variants.d.ts +0 -82
  283. package/dist/components/Tabs/tabs.variants.d.ts.map +0 -1
  284. package/dist/components/Tabs/useTabs.d.ts +0 -55
  285. package/dist/components/Tabs/useTabs.d.ts.map +0 -1
  286. package/dist/components/TextField/TextField.d.ts +0 -25
  287. package/dist/components/TextField/TextField.d.ts.map +0 -1
  288. package/dist/components/TextField/textField.types.d.ts +0 -98
  289. package/dist/components/TextField/textField.types.d.ts.map +0 -1
  290. package/dist/components/TextField/textField.variants.d.ts +0 -166
  291. package/dist/components/TextField/textField.variants.d.ts.map +0 -1
  292. package/dist/components/Textarea/Textarea.d.ts +0 -16
  293. package/dist/components/Textarea/Textarea.d.ts.map +0 -1
  294. package/dist/components/Textarea/textarea.types.d.ts +0 -63
  295. package/dist/components/Textarea/textarea.types.d.ts.map +0 -1
  296. package/dist/components/Textarea/textarea.variants.d.ts +0 -197
  297. package/dist/components/Textarea/textarea.variants.d.ts.map +0 -1
  298. package/dist/components/TimePicker/TimePicker.d.ts +0 -12
  299. package/dist/components/TimePicker/TimePicker.d.ts.map +0 -1
  300. package/dist/components/TimePicker/timePicker.types.d.ts +0 -80
  301. package/dist/components/TimePicker/timePicker.types.d.ts.map +0 -1
  302. package/dist/components/TimePicker/timePicker.variants.d.ts +0 -103
  303. package/dist/components/TimePicker/timePicker.variants.d.ts.map +0 -1
  304. package/dist/components/Tooltip/Tooltip.d.ts +0 -29
  305. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  306. package/dist/components/Tooltip/tooltip.types.d.ts +0 -47
  307. package/dist/components/Tooltip/tooltip.types.d.ts.map +0 -1
  308. package/dist/components/Tooltip/tooltip.variants.d.ts +0 -34
  309. package/dist/components/Tooltip/tooltip.variants.d.ts.map +0 -1
  310. package/dist/components/TopBar/TopBar.d.ts +0 -33
  311. package/dist/components/TopBar/TopBar.d.ts.map +0 -1
  312. package/dist/components/TopBar/topBar.types.d.ts +0 -49
  313. package/dist/components/TopBar/topBar.types.d.ts.map +0 -1
  314. package/dist/components/TopBar/topBar.variants.d.ts +0 -79
  315. package/dist/components/TopBar/topBar.variants.d.ts.map +0 -1
  316. package/dist/components/Typography/Typography.d.ts +0 -42
  317. package/dist/components/Typography/Typography.d.ts.map +0 -1
  318. package/dist/components/Typography/typography.types.d.ts +0 -61
  319. package/dist/components/Typography/typography.types.d.ts.map +0 -1
  320. package/dist/components/Typography/typography.variants.d.ts +0 -167
  321. package/dist/components/Typography/typography.variants.d.ts.map +0 -1
  322. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +0 -42
  323. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +0 -1
  324. package/dist/components/VisuallyHidden/visuallyHidden.types.d.ts +0 -42
  325. package/dist/components/VisuallyHidden/visuallyHidden.types.d.ts.map +0 -1
  326. package/dist/components/_shared/data/getNestedValue.d.ts +0 -20
  327. package/dist/components/_shared/data/getNestedValue.d.ts.map +0 -1
  328. package/dist/components/_shared/data/useColumnAutoDetect.d.ts +0 -45
  329. package/dist/components/_shared/data/useColumnAutoDetect.d.ts.map +0 -1
  330. package/dist/components/_shared/data/useControllableState.d.ts +0 -23
  331. package/dist/components/_shared/data/useControllableState.d.ts.map +0 -1
  332. package/dist/components/_shared/data/useDebouncedValue.d.ts +0 -10
  333. package/dist/components/_shared/data/useDebouncedValue.d.ts.map +0 -1
  334. package/dist/components/_shared/data/useTableFilter.d.ts +0 -36
  335. package/dist/components/_shared/data/useTableFilter.d.ts.map +0 -1
  336. package/dist/components/_shared/data/useTableSearch.d.ts +0 -23
  337. package/dist/components/_shared/data/useTableSearch.d.ts.map +0 -1
  338. package/dist/components/_shared/data/useTableSelection.d.ts +0 -25
  339. package/dist/components/_shared/data/useTableSelection.d.ts.map +0 -1
  340. package/dist/components/_shared/data/useTableSort.d.ts +0 -20
  341. package/dist/components/_shared/data/useTableSort.d.ts.map +0 -1
  342. package/dist/components/_shared/data/useVirtualizer.d.ts +0 -107
  343. package/dist/components/_shared/data/useVirtualizer.d.ts.map +0 -1
  344. package/dist/components/_shared/resolveValidationState.d.ts +0 -42
  345. package/dist/components/_shared/resolveValidationState.d.ts.map +0 -1
  346. package/dist/hooks/useAccessState.d.ts +0 -37
  347. package/dist/hooks/useAccessState.d.ts.map +0 -1
  348. package/dist/index.d.ts.map +0 -1
  349. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  350. package/dist/utils/cn.d.ts +0 -26
  351. package/dist/utils/cn.d.ts.map +0 -1
  352. package/eslint.config.mjs +0 -62
  353. package/project.json +0 -15
  354. package/rollup.config.cjs +0 -16
  355. package/src/components/Accordion/Accordion.test.tsx +0 -95
  356. package/src/components/Accordion/Accordion.tsx +0 -97
  357. package/src/components/Accordion/accordion.types.ts +0 -66
  358. package/src/components/Accordion/accordion.variants.ts +0 -32
  359. package/src/components/AppShell/AppShell.test.tsx +0 -223
  360. package/src/components/AppShell/AppShell.tsx +0 -239
  361. package/src/components/AppShell/appShell.types.ts +0 -49
  362. package/src/components/AppShell/appShell.variants.ts +0 -54
  363. package/src/components/AspectRatio/AspectRatio.test.tsx +0 -173
  364. package/src/components/AspectRatio/AspectRatio.tsx +0 -73
  365. package/src/components/AspectRatio/aspectRatio.types.ts +0 -54
  366. package/src/components/Autocomplete/Autocomplete.perf.test.tsx +0 -225
  367. package/src/components/Autocomplete/Autocomplete.test.tsx +0 -556
  368. package/src/components/Autocomplete/Autocomplete.tsx +0 -1069
  369. package/src/components/Autocomplete/autocomplete.types.ts +0 -198
  370. package/src/components/Autocomplete/autocomplete.variants.ts +0 -141
  371. package/src/components/Box/Box.test.tsx +0 -370
  372. package/src/components/Box/Box.tsx +0 -83
  373. package/src/components/Box/box.types.ts +0 -61
  374. package/src/components/Box/box.variants.ts +0 -230
  375. package/src/components/Breadcrumbs/Breadcrumbs.perf.test.tsx +0 -128
  376. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +0 -231
  377. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -203
  378. package/src/components/Breadcrumbs/breadcrumbs.types.ts +0 -87
  379. package/src/components/Breadcrumbs/breadcrumbs.variants.ts +0 -54
  380. package/src/components/Button/Button.test.tsx +0 -183
  381. package/src/components/Button/Button.tsx +0 -150
  382. package/src/components/Button/button.types.ts +0 -74
  383. package/src/components/Button/button.variants.ts +0 -159
  384. package/src/components/Calendar/Calendar.test.tsx +0 -75
  385. package/src/components/Calendar/Calendar.tsx +0 -264
  386. package/src/components/Calendar/calendar.types.ts +0 -65
  387. package/src/components/Calendar/calendar.variants.ts +0 -64
  388. package/src/components/Checkbox/Checkbox.test.tsx +0 -146
  389. package/src/components/Checkbox/Checkbox.tsx +0 -286
  390. package/src/components/Checkbox/checkbox.types.ts +0 -88
  391. package/src/components/Checkbox/checkbox.variants.ts +0 -68
  392. package/src/components/ConfirmDialog/ConfirmDialog.perf.test.tsx +0 -172
  393. package/src/components/ConfirmDialog/ConfirmDialog.test.tsx +0 -311
  394. package/src/components/ConfirmDialog/ConfirmDialog.tsx +0 -252
  395. package/src/components/ConfirmDialog/confirmDialog.types.ts +0 -70
  396. package/src/components/ConfirmDialog/confirmDialog.variants.ts +0 -76
  397. package/src/components/Container/Container.test.tsx +0 -209
  398. package/src/components/Container/Container.tsx +0 -74
  399. package/src/components/Container/container.types.ts +0 -45
  400. package/src/components/Container/container.variants.ts +0 -81
  401. package/src/components/DataGrid/DataGrid.perf.test.tsx +0 -114
  402. package/src/components/DataGrid/DataGrid.test.tsx +0 -1153
  403. package/src/components/DataGrid/DataGrid.tsx +0 -1282
  404. package/src/components/DataGrid/dataGrid.types.ts +0 -238
  405. package/src/components/DataGrid/dataGrid.variants.ts +0 -152
  406. package/src/components/DataGrid/filters/ColumnFilters.test.tsx +0 -330
  407. package/src/components/DataGrid/filters/ColumnFilters.tsx +0 -456
  408. package/src/components/DataGrid/reorder/useColumnReorder.test.ts +0 -130
  409. package/src/components/DataGrid/reorder/useColumnReorder.ts +0 -144
  410. package/src/components/DataGrid/resize/useColumnResize.test.ts +0 -144
  411. package/src/components/DataGrid/resize/useColumnResize.ts +0 -135
  412. package/src/components/DataGrid/visibility/ColumnVisibilityMenu.tsx +0 -186
  413. package/src/components/DatePicker/DatePicker.test.tsx +0 -76
  414. package/src/components/DatePicker/DatePicker.tsx +0 -305
  415. package/src/components/DatePicker/datePicker.types.ts +0 -77
  416. package/src/components/DatePicker/datePicker.variants.ts +0 -50
  417. package/src/components/DateRangePicker/DateRangePicker.test.tsx +0 -92
  418. package/src/components/DateRangePicker/DateRangePicker.tsx +0 -510
  419. package/src/components/DateRangePicker/dateRangePicker.types.ts +0 -74
  420. package/src/components/DateRangePicker/dateRangePicker.variants.ts +0 -101
  421. package/src/components/DateTimePicker/DateTimePicker.test.tsx +0 -78
  422. package/src/components/DateTimePicker/DateTimePicker.tsx +0 -347
  423. package/src/components/DateTimePicker/dateTimePicker.types.ts +0 -79
  424. package/src/components/DateTimePicker/dateTimePicker.variants.ts +0 -55
  425. package/src/components/Dialog/Dialog.test.tsx +0 -96
  426. package/src/components/Dialog/Dialog.tsx +0 -102
  427. package/src/components/Dialog/dialog.types.ts +0 -62
  428. package/src/components/Dialog/dialog.variants.ts +0 -66
  429. package/src/components/Divider/Divider.test.tsx +0 -243
  430. package/src/components/Divider/Divider.tsx +0 -140
  431. package/src/components/Divider/divider.types.ts +0 -52
  432. package/src/components/Divider/divider.variants.ts +0 -116
  433. package/src/components/Grid/Grid.test.tsx +0 -321
  434. package/src/components/Grid/Grid.tsx +0 -148
  435. package/src/components/Grid/grid.types.ts +0 -112
  436. package/src/components/Grid/grid.variants.ts +0 -133
  437. package/src/components/LeftNav/LeftNav.perf.test.tsx +0 -172
  438. package/src/components/LeftNav/LeftNav.test.tsx +0 -302
  439. package/src/components/LeftNav/LeftNav.tsx +0 -330
  440. package/src/components/LeftNav/leftNav.types.ts +0 -120
  441. package/src/components/LeftNav/leftNav.variants.ts +0 -107
  442. package/src/components/NumberField/NumberField.test.tsx +0 -83
  443. package/src/components/NumberField/NumberField.tsx +0 -321
  444. package/src/components/NumberField/numberField.types.ts +0 -72
  445. package/src/components/NumberField/numberField.variants.ts +0 -94
  446. package/src/components/OTPField/OTPField.test.tsx +0 -121
  447. package/src/components/OTPField/OTPField.tsx +0 -250
  448. package/src/components/OTPField/otpField.types.ts +0 -58
  449. package/src/components/OTPField/otpField.variants.ts +0 -72
  450. package/src/components/Pagination/Pagination.test.tsx +0 -314
  451. package/src/components/Pagination/Pagination.tsx +0 -277
  452. package/src/components/Pagination/pagination.helpers.ts +0 -102
  453. package/src/components/Pagination/pagination.types.ts +0 -117
  454. package/src/components/Pagination/pagination.variants.ts +0 -117
  455. package/src/components/Popover/Popover.test.tsx +0 -72
  456. package/src/components/Popover/Popover.tsx +0 -55
  457. package/src/components/Popover/popover.types.ts +0 -42
  458. package/src/components/Popover/popover.variants.ts +0 -24
  459. package/src/components/RadioGroup/RadioGroup.test.tsx +0 -140
  460. package/src/components/RadioGroup/RadioGroup.tsx +0 -283
  461. package/src/components/RadioGroup/radioGroup.types.ts +0 -85
  462. package/src/components/RadioGroup/radioGroup.variants.ts +0 -87
  463. package/src/components/Skeleton/Skeleton.test.tsx +0 -127
  464. package/src/components/Skeleton/Skeleton.tsx +0 -49
  465. package/src/components/Skeleton/skeleton.types.ts +0 -59
  466. package/src/components/Skeleton/skeleton.variants.ts +0 -87
  467. package/src/components/Snackbar/Snackbar.perf.test.tsx +0 -144
  468. package/src/components/Snackbar/Snackbar.test.tsx +0 -327
  469. package/src/components/Snackbar/Snackbar.tsx +0 -298
  470. package/src/components/Snackbar/snackbar.types.ts +0 -83
  471. package/src/components/Snackbar/snackbar.variants.ts +0 -74
  472. package/src/components/Stack/Stack.test.tsx +0 -309
  473. package/src/components/Stack/Stack.tsx +0 -115
  474. package/src/components/Stack/stack.types.ts +0 -68
  475. package/src/components/Stack/stack.variants.ts +0 -80
  476. package/src/components/Switch/Switch.test.tsx +0 -131
  477. package/src/components/Switch/Switch.tsx +0 -158
  478. package/src/components/Switch/switch.types.ts +0 -36
  479. package/src/components/Switch/switch.variants.ts +0 -70
  480. package/src/components/Table/Table.perf.test.tsx +0 -81
  481. package/src/components/Table/Table.test.tsx +0 -674
  482. package/src/components/Table/Table.tsx +0 -863
  483. package/src/components/Table/cells/RenderButton.tsx +0 -23
  484. package/src/components/Table/cells/RenderChip.tsx +0 -100
  485. package/src/components/Table/cells/RenderText.tsx +0 -37
  486. package/src/components/Table/cells/RenderTwoLine.tsx +0 -34
  487. package/src/components/Table/cells/RowActionsMenu.tsx +0 -147
  488. package/src/components/Table/cells/cells.test.tsx +0 -247
  489. package/src/components/Table/cells/index.ts +0 -14
  490. package/src/components/Table/table.types.ts +0 -438
  491. package/src/components/Table/table.variants.ts +0 -207
  492. package/src/components/Tabs/Tabs.test.tsx +0 -145
  493. package/src/components/Tabs/Tabs.tsx +0 -77
  494. package/src/components/Tabs/tabs.types.ts +0 -55
  495. package/src/components/Tabs/tabs.variants.ts +0 -69
  496. package/src/components/Tabs/useTabs.ts +0 -167
  497. package/src/components/TextField/TextField.test.tsx +0 -198
  498. package/src/components/TextField/TextField.tsx +0 -245
  499. package/src/components/TextField/textField.types.ts +0 -90
  500. package/src/components/TextField/textField.variants.ts +0 -105
  501. package/src/components/Textarea/Textarea.test.tsx +0 -75
  502. package/src/components/Textarea/Textarea.tsx +0 -190
  503. package/src/components/Textarea/textarea.types.ts +0 -60
  504. package/src/components/Textarea/textarea.variants.ts +0 -85
  505. package/src/components/TimePicker/TimePicker.test.tsx +0 -65
  506. package/src/components/TimePicker/TimePicker.tsx +0 -274
  507. package/src/components/TimePicker/timePicker.types.ts +0 -69
  508. package/src/components/TimePicker/timePicker.variants.ts +0 -53
  509. package/src/components/Tooltip/Tooltip.test.tsx +0 -73
  510. package/src/components/Tooltip/Tooltip.tsx +0 -70
  511. package/src/components/Tooltip/tooltip.types.ts +0 -44
  512. package/src/components/Tooltip/tooltip.variants.ts +0 -28
  513. package/src/components/TopBar/TopBar.test.tsx +0 -129
  514. package/src/components/TopBar/TopBar.tsx +0 -66
  515. package/src/components/TopBar/topBar.types.ts +0 -42
  516. package/src/components/TopBar/topBar.variants.ts +0 -38
  517. package/src/components/Typography/Typography.test.tsx +0 -247
  518. package/src/components/Typography/Typography.tsx +0 -112
  519. package/src/components/Typography/typography.types.ts +0 -65
  520. package/src/components/Typography/typography.variants.ts +0 -130
  521. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +0 -86
  522. package/src/components/VisuallyHidden/VisuallyHidden.tsx +0 -59
  523. package/src/components/VisuallyHidden/visuallyHidden.types.ts +0 -45
  524. package/src/components/_shared/data/getNestedValue.test.ts +0 -50
  525. package/src/components/_shared/data/getNestedValue.ts +0 -32
  526. package/src/components/_shared/data/useColumnAutoDetect.test.ts +0 -123
  527. package/src/components/_shared/data/useColumnAutoDetect.ts +0 -100
  528. package/src/components/_shared/data/useControllableState.ts +0 -48
  529. package/src/components/_shared/data/useDebouncedValue.ts +0 -24
  530. package/src/components/_shared/data/useTableFilter.test.ts +0 -166
  531. package/src/components/_shared/data/useTableFilter.ts +0 -118
  532. package/src/components/_shared/data/useTableSearch.test.ts +0 -115
  533. package/src/components/_shared/data/useTableSearch.ts +0 -66
  534. package/src/components/_shared/data/useTableSelection.test.ts +0 -100
  535. package/src/components/_shared/data/useTableSelection.ts +0 -100
  536. package/src/components/_shared/data/useTableSort.test.ts +0 -150
  537. package/src/components/_shared/data/useTableSort.ts +0 -141
  538. package/src/components/_shared/data/useVirtualizer.test.ts +0 -158
  539. package/src/components/_shared/data/useVirtualizer.ts +0 -199
  540. package/src/components/_shared/resolveValidationState.ts +0 -60
  541. package/src/components/_shared/themeIdentity.test.ts +0 -113
  542. package/src/hooks/useAccessState.spec.tsx +0 -161
  543. package/src/hooks/useAccessState.ts +0 -81
  544. package/src/index.ts +0 -388
  545. package/src/utils/cn.spec.ts +0 -16
  546. package/src/utils/cn.ts +0 -29
  547. package/test-output/vitest/coverage/base.css +0 -224
  548. package/test-output/vitest/coverage/block-navigation.js +0 -87
  549. package/test-output/vitest/coverage/clover.xml +0 -2418
  550. package/test-output/vitest/coverage/coverage-final.json +0 -89
  551. package/test-output/vitest/coverage/favicon.png +0 -0
  552. package/test-output/vitest/coverage/index.html +0 -746
  553. package/test-output/vitest/coverage/prettify.css +0 -1
  554. package/test-output/vitest/coverage/prettify.js +0 -2
  555. package/test-output/vitest/coverage/sort-arrow-sprite.png +0 -0
  556. package/test-output/vitest/coverage/sorter.js +0 -210
  557. package/test-output/vitest/coverage/src/components/Accordion/Accordion.tsx.html +0 -376
  558. package/test-output/vitest/coverage/src/components/Accordion/accordion.variants.ts.html +0 -181
  559. package/test-output/vitest/coverage/src/components/Accordion/index.html +0 -131
  560. package/test-output/vitest/coverage/src/components/AppShell/AppShell.tsx.html +0 -802
  561. package/test-output/vitest/coverage/src/components/AppShell/appShell.variants.ts.html +0 -247
  562. package/test-output/vitest/coverage/src/components/AppShell/index.html +0 -131
  563. package/test-output/vitest/coverage/src/components/AspectRatio/AspectRatio.tsx.html +0 -304
  564. package/test-output/vitest/coverage/src/components/AspectRatio/index.html +0 -116
  565. package/test-output/vitest/coverage/src/components/Autocomplete/Autocomplete.tsx.html +0 -3292
  566. package/test-output/vitest/coverage/src/components/Autocomplete/autocomplete.variants.ts.html +0 -508
  567. package/test-output/vitest/coverage/src/components/Autocomplete/index.html +0 -131
  568. package/test-output/vitest/coverage/src/components/Box/Box.tsx.html +0 -334
  569. package/test-output/vitest/coverage/src/components/Box/box.variants.ts.html +0 -775
  570. package/test-output/vitest/coverage/src/components/Box/index.html +0 -131
  571. package/test-output/vitest/coverage/src/components/Breadcrumbs/Breadcrumbs.tsx.html +0 -694
  572. package/test-output/vitest/coverage/src/components/Breadcrumbs/breadcrumbs.variants.ts.html +0 -247
  573. package/test-output/vitest/coverage/src/components/Breadcrumbs/index.html +0 -131
  574. package/test-output/vitest/coverage/src/components/Button/Button.tsx.html +0 -535
  575. package/test-output/vitest/coverage/src/components/Button/button.variants.ts.html +0 -562
  576. package/test-output/vitest/coverage/src/components/Button/index.html +0 -131
  577. package/test-output/vitest/coverage/src/components/Checkbox/Checkbox.tsx.html +0 -943
  578. package/test-output/vitest/coverage/src/components/Checkbox/checkbox.variants.ts.html +0 -289
  579. package/test-output/vitest/coverage/src/components/Checkbox/index.html +0 -131
  580. package/test-output/vitest/coverage/src/components/ConfirmDialog/ConfirmDialog.tsx.html +0 -841
  581. package/test-output/vitest/coverage/src/components/ConfirmDialog/confirmDialog.variants.ts.html +0 -313
  582. package/test-output/vitest/coverage/src/components/ConfirmDialog/index.html +0 -131
  583. package/test-output/vitest/coverage/src/components/Container/Container.tsx.html +0 -307
  584. package/test-output/vitest/coverage/src/components/Container/container.variants.ts.html +0 -328
  585. package/test-output/vitest/coverage/src/components/Container/index.html +0 -131
  586. package/test-output/vitest/coverage/src/components/DataGrid/DataGrid.tsx.html +0 -3937
  587. package/test-output/vitest/coverage/src/components/DataGrid/dataGrid.variants.ts.html +0 -541
  588. package/test-output/vitest/coverage/src/components/DataGrid/filters/ColumnFilters.tsx.html +0 -1453
  589. package/test-output/vitest/coverage/src/components/DataGrid/filters/index.html +0 -116
  590. package/test-output/vitest/coverage/src/components/DataGrid/index.html +0 -131
  591. package/test-output/vitest/coverage/src/components/DataGrid/reorder/index.html +0 -116
  592. package/test-output/vitest/coverage/src/components/DataGrid/reorder/useColumnReorder.ts.html +0 -517
  593. package/test-output/vitest/coverage/src/components/DataGrid/resize/index.html +0 -116
  594. package/test-output/vitest/coverage/src/components/DataGrid/resize/useColumnResize.ts.html +0 -490
  595. package/test-output/vitest/coverage/src/components/DataGrid/visibility/ColumnVisibilityMenu.tsx.html +0 -592
  596. package/test-output/vitest/coverage/src/components/DataGrid/visibility/index.html +0 -116
  597. package/test-output/vitest/coverage/src/components/DateTimePicker/DateTimePicker.tsx.html +0 -1042
  598. package/test-output/vitest/coverage/src/components/DateTimePicker/dateTimePicker.variants.ts.html +0 -337
  599. package/test-output/vitest/coverage/src/components/DateTimePicker/index.html +0 -131
  600. package/test-output/vitest/coverage/src/components/Dialog/Dialog.tsx.html +0 -391
  601. package/test-output/vitest/coverage/src/components/Dialog/dialog.variants.ts.html +0 -283
  602. package/test-output/vitest/coverage/src/components/Dialog/index.html +0 -131
  603. package/test-output/vitest/coverage/src/components/Divider/Divider.tsx.html +0 -505
  604. package/test-output/vitest/coverage/src/components/Divider/divider.variants.ts.html +0 -433
  605. package/test-output/vitest/coverage/src/components/Divider/index.html +0 -131
  606. package/test-output/vitest/coverage/src/components/Grid/Grid.tsx.html +0 -529
  607. package/test-output/vitest/coverage/src/components/Grid/grid.variants.ts.html +0 -484
  608. package/test-output/vitest/coverage/src/components/Grid/index.html +0 -131
  609. package/test-output/vitest/coverage/src/components/LeftNav/LeftNav.tsx.html +0 -1075
  610. package/test-output/vitest/coverage/src/components/LeftNav/index.html +0 -131
  611. package/test-output/vitest/coverage/src/components/LeftNav/leftNav.variants.ts.html +0 -406
  612. package/test-output/vitest/coverage/src/components/NumberField/NumberField.tsx.html +0 -1048
  613. package/test-output/vitest/coverage/src/components/NumberField/index.html +0 -131
  614. package/test-output/vitest/coverage/src/components/NumberField/numberField.variants.ts.html +0 -367
  615. package/test-output/vitest/coverage/src/components/OTPField/OTPField.tsx.html +0 -835
  616. package/test-output/vitest/coverage/src/components/OTPField/index.html +0 -131
  617. package/test-output/vitest/coverage/src/components/OTPField/otpField.variants.ts.html +0 -301
  618. package/test-output/vitest/coverage/src/components/Pagination/Pagination.tsx.html +0 -916
  619. package/test-output/vitest/coverage/src/components/Pagination/index.html +0 -146
  620. package/test-output/vitest/coverage/src/components/Pagination/pagination.helpers.ts.html +0 -391
  621. package/test-output/vitest/coverage/src/components/Pagination/pagination.variants.ts.html +0 -436
  622. package/test-output/vitest/coverage/src/components/Popover/Popover.tsx.html +0 -250
  623. package/test-output/vitest/coverage/src/components/Popover/index.html +0 -131
  624. package/test-output/vitest/coverage/src/components/Popover/popover.variants.ts.html +0 -157
  625. package/test-output/vitest/coverage/src/components/RadioGroup/RadioGroup.tsx.html +0 -934
  626. package/test-output/vitest/coverage/src/components/RadioGroup/index.html +0 -131
  627. package/test-output/vitest/coverage/src/components/RadioGroup/radioGroup.variants.ts.html +0 -346
  628. package/test-output/vitest/coverage/src/components/Skeleton/Skeleton.tsx.html +0 -232
  629. package/test-output/vitest/coverage/src/components/Skeleton/index.html +0 -131
  630. package/test-output/vitest/coverage/src/components/Skeleton/skeleton.variants.ts.html +0 -346
  631. package/test-output/vitest/coverage/src/components/Snackbar/Snackbar.tsx.html +0 -979
  632. package/test-output/vitest/coverage/src/components/Snackbar/index.html +0 -131
  633. package/test-output/vitest/coverage/src/components/Snackbar/snackbar.variants.ts.html +0 -307
  634. package/test-output/vitest/coverage/src/components/Stack/Stack.tsx.html +0 -430
  635. package/test-output/vitest/coverage/src/components/Stack/index.html +0 -131
  636. package/test-output/vitest/coverage/src/components/Stack/stack.variants.ts.html +0 -325
  637. package/test-output/vitest/coverage/src/components/Switch/Switch.tsx.html +0 -559
  638. package/test-output/vitest/coverage/src/components/Switch/index.html +0 -131
  639. package/test-output/vitest/coverage/src/components/Switch/switch.variants.ts.html +0 -295
  640. package/test-output/vitest/coverage/src/components/Table/Table.tsx.html +0 -2677
  641. package/test-output/vitest/coverage/src/components/Table/cells/RenderButton.tsx.html +0 -154
  642. package/test-output/vitest/coverage/src/components/Table/cells/RenderChip.tsx.html +0 -385
  643. package/test-output/vitest/coverage/src/components/Table/cells/RenderText.tsx.html +0 -196
  644. package/test-output/vitest/coverage/src/components/Table/cells/RenderTwoLine.tsx.html +0 -187
  645. package/test-output/vitest/coverage/src/components/Table/cells/RowActionsMenu.tsx.html +0 -526
  646. package/test-output/vitest/coverage/src/components/Table/cells/index.html +0 -191
  647. package/test-output/vitest/coverage/src/components/Table/cells/index.ts.html +0 -127
  648. package/test-output/vitest/coverage/src/components/Table/index.html +0 -131
  649. package/test-output/vitest/coverage/src/components/Table/table.variants.ts.html +0 -706
  650. package/test-output/vitest/coverage/src/components/Tabs/Tabs.tsx.html +0 -283
  651. package/test-output/vitest/coverage/src/components/Tabs/index.html +0 -131
  652. package/test-output/vitest/coverage/src/components/Tabs/tabs.variants.ts.html +0 -292
  653. package/test-output/vitest/coverage/src/components/TextField/TextField.tsx.html +0 -820
  654. package/test-output/vitest/coverage/src/components/TextField/index.html +0 -131
  655. package/test-output/vitest/coverage/src/components/TextField/textField.variants.ts.html +0 -400
  656. package/test-output/vitest/coverage/src/components/Textarea/Textarea.tsx.html +0 -655
  657. package/test-output/vitest/coverage/src/components/Textarea/index.html +0 -131
  658. package/test-output/vitest/coverage/src/components/Textarea/textarea.variants.ts.html +0 -340
  659. package/test-output/vitest/coverage/src/components/Tooltip/Tooltip.tsx.html +0 -295
  660. package/test-output/vitest/coverage/src/components/Tooltip/index.html +0 -131
  661. package/test-output/vitest/coverage/src/components/Tooltip/tooltip.variants.ts.html +0 -169
  662. package/test-output/vitest/coverage/src/components/TopBar/TopBar.tsx.html +0 -283
  663. package/test-output/vitest/coverage/src/components/TopBar/index.html +0 -131
  664. package/test-output/vitest/coverage/src/components/TopBar/topBar.variants.ts.html +0 -199
  665. package/test-output/vitest/coverage/src/components/Typography/Typography.tsx.html +0 -421
  666. package/test-output/vitest/coverage/src/components/Typography/index.html +0 -131
  667. package/test-output/vitest/coverage/src/components/Typography/typography.variants.ts.html +0 -436
  668. package/test-output/vitest/coverage/src/components/VisuallyHidden/VisuallyHidden.tsx.html +0 -262
  669. package/test-output/vitest/coverage/src/components/VisuallyHidden/index.html +0 -116
  670. package/test-output/vitest/coverage/src/components/_shared/data/getNestedValue.ts.html +0 -181
  671. package/test-output/vitest/coverage/src/components/_shared/data/index.html +0 -236
  672. package/test-output/vitest/coverage/src/components/_shared/data/useColumnAutoDetect.ts.html +0 -385
  673. package/test-output/vitest/coverage/src/components/_shared/data/useControllableState.ts.html +0 -229
  674. package/test-output/vitest/coverage/src/components/_shared/data/useDebouncedValue.ts.html +0 -157
  675. package/test-output/vitest/coverage/src/components/_shared/data/useTableFilter.ts.html +0 -439
  676. package/test-output/vitest/coverage/src/components/_shared/data/useTableSearch.ts.html +0 -283
  677. package/test-output/vitest/coverage/src/components/_shared/data/useTableSelection.ts.html +0 -385
  678. package/test-output/vitest/coverage/src/components/_shared/data/useTableSort.ts.html +0 -508
  679. package/test-output/vitest/coverage/src/components/_shared/data/useVirtualizer.ts.html +0 -682
  680. package/test-output/vitest/coverage/src/components/_shared/index.html +0 -116
  681. package/test-output/vitest/coverage/src/components/_shared/resolveValidationState.ts.html +0 -265
  682. package/test-output/vitest/coverage/src/hooks/index.html +0 -116
  683. package/test-output/vitest/coverage/src/hooks/useAccessState.ts.html +0 -328
  684. package/test-output/vitest/coverage/src/index.html +0 -116
  685. package/test-output/vitest/coverage/src/index.ts.html +0 -1153
  686. package/test-output/vitest/coverage/src/utils/cn.ts.html +0 -172
  687. package/test-output/vitest/coverage/src/utils/index.html +0 -116
  688. package/tsconfig.json +0 -13
  689. package/tsconfig.lib.json +0 -58
  690. package/tsconfig.spec.json +0 -34
  691. package/vite.config.ts +0 -33
  692. package/vitest.config.mts +0 -29
@@ -1,199 +0,0 @@
1
- import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
2
-
3
- /**
4
- * Window descriptor — which slice of the row array is currently
5
- * mounted in DOM, and how much spacer height to render above and
6
- * below the visible window so the scrollbar size matches the
7
- * "virtual" total height.
8
- */
9
- export interface VirtualizerWindow {
10
- /** First row index inside the visible window (inclusive). */
11
- startIndex: number;
12
- /** Last row index inside the visible window (inclusive). */
13
- endIndex: number;
14
- /** Pixels to render above the visible rows (spacer top). */
15
- paddingTop: number;
16
- /** Pixels to render below the visible rows (spacer bottom). */
17
- paddingBottom: number;
18
- }
19
-
20
- export interface UseVirtualizerArgs {
21
- /** Total number of rows in the underlying data set. */
22
- totalCount: number;
23
- /** Fixed row height in pixels. */
24
- rowHeight: number;
25
- /**
26
- * Visible viewport height in pixels. Pass the height of the
27
- * scroll container.
28
- */
29
- viewportHeight: number;
30
- /** Current scrollTop of the scroll container. */
31
- scrollTop: number;
32
- /**
33
- * How many extra rows to render above / below the visible window
34
- * for smoother scrolling (reduces blank-flash on fast scroll).
35
- * @default 5
36
- */
37
- overscan?: number;
38
- }
39
-
40
- /**
41
- * Compute the visible window of rows + the spacer heights given the
42
- * current scroll position. Pure function — exported for testability.
43
- *
44
- * @example
45
- * ```ts
46
- * computeWindow({ totalCount: 1000, rowHeight: 48, viewportHeight: 600,
47
- * scrollTop: 0, overscan: 5 });
48
- * // → { startIndex: 0, endIndex: 17, paddingTop: 0, paddingBottom: 47136 }
49
- * ```
50
- */
51
- export function computeWindow(args: UseVirtualizerArgs): VirtualizerWindow {
52
- const { totalCount, rowHeight, viewportHeight, scrollTop, overscan = 5 } = args;
53
-
54
- if (totalCount <= 0 || rowHeight <= 0 || viewportHeight <= 0) {
55
- return { startIndex: 0, endIndex: -1, paddingTop: 0, paddingBottom: 0 };
56
- }
57
-
58
- // Raw visible range from scrollTop alone.
59
- const rawStart = Math.floor(scrollTop / rowHeight);
60
- const rawEnd = Math.ceil((scrollTop + viewportHeight) / rowHeight);
61
-
62
- // Apply overscan + clamp to [0, totalCount - 1].
63
- const startIndex = Math.max(0, rawStart - overscan);
64
- const endIndex = Math.min(totalCount - 1, rawEnd + overscan);
65
-
66
- const paddingTop = startIndex * rowHeight;
67
- const paddingBottom = Math.max(0, (totalCount - 1 - endIndex) * rowHeight);
68
-
69
- return { startIndex, endIndex, paddingTop, paddingBottom };
70
- }
71
-
72
- /**
73
- * `useVirtualizer` — viewport-based row windowing for `<DataGrid>`.
74
- *
75
- * Hand-rolled (no `@tanstack/react-virtual` dep — constraint memorized
76
- * in `feedback_dashforge_preset_is_identity` companion: "no new
77
- * external runtime deps"). Uses scroll event + `requestAnimationFrame`
78
- * debounce + `ResizeObserver` on the container. Fixed row height
79
- * only in v1 — variable-height with measurement cache deferred to
80
- * v1-bis.
81
- *
82
- * Returns:
83
- * - `scrollRef`: attach to the scroll container `<div>`.
84
- * - `window`: which row indices to mount + top/bottom spacer heights
85
- * to preserve scroll-area size.
86
- * - `viewportHeight`: current container height (re-measured on
87
- * `ResizeObserver` ticks).
88
- *
89
- * The DataGrid renders `rows.slice(window.startIndex, window.endIndex + 1)`
90
- * between two spacer `<tr style={{ height: paddingTop }} />` elements
91
- * (above and below). This preserves `<table>` semantics — screen
92
- * readers see a continuous structure with `aria-hidden` spacers.
93
- *
94
- * @example
95
- * ```tsx
96
- * const { scrollRef, window } = useVirtualizer({
97
- * totalCount: rows.length,
98
- * rowHeight: 48,
99
- * overscan: 5,
100
- * });
101
- *
102
- * return (
103
- * <div ref={scrollRef} style={{ height: 600, overflow: 'auto' }}>
104
- * <table>
105
- * <tbody>
106
- * <tr aria-hidden="true" style={{ height: window.paddingTop }} />
107
- * {rows.slice(window.startIndex, window.endIndex + 1).map(...)}
108
- * <tr aria-hidden="true" style={{ height: window.paddingBottom }} />
109
- * </tbody>
110
- * </table>
111
- * </div>
112
- * );
113
- * ```
114
- */
115
- export function useVirtualizer(args: {
116
- totalCount: number;
117
- rowHeight: number;
118
- overscan?: number;
119
- /**
120
- * Initial viewport height — used before the ResizeObserver
121
- * settles on first paint. Pass an explicit `height` prop value
122
- * if you have one; otherwise the hook re-measures on layout.
123
- * @default 400
124
- */
125
- initialViewportHeight?: number;
126
- }): {
127
- scrollRef: React.RefObject<HTMLDivElement | null>;
128
- window: VirtualizerWindow;
129
- viewportHeight: number;
130
- } {
131
- const { totalCount, rowHeight, overscan = 5, initialViewportHeight = 400 } = args;
132
-
133
- const scrollRef = useRef<HTMLDivElement | null>(null);
134
- const [scrollTop, setScrollTop] = useState(0);
135
- const [viewportHeight, setViewportHeight] = useState(initialViewportHeight);
136
-
137
- // Debounce scroll handler via requestAnimationFrame so we never
138
- // re-render more than once per paint frame even when the scroll
139
- // event fires rapidly during fast scrolling.
140
- const rafIdRef = useRef<number | null>(null);
141
- const handleScroll = useCallback(() => {
142
- if (rafIdRef.current != null) return;
143
- rafIdRef.current = requestAnimationFrame(() => {
144
- rafIdRef.current = null;
145
- const el = scrollRef.current;
146
- if (!el) return;
147
- setScrollTop(el.scrollTop);
148
- });
149
- }, []);
150
-
151
- // Attach scroll listener.
152
- useEffect(() => {
153
- const el = scrollRef.current;
154
- if (!el) return;
155
- el.addEventListener('scroll', handleScroll, { passive: true });
156
- return () => {
157
- el.removeEventListener('scroll', handleScroll);
158
- if (rafIdRef.current != null) {
159
- cancelAnimationFrame(rafIdRef.current);
160
- rafIdRef.current = null;
161
- }
162
- };
163
- }, [handleScroll]);
164
-
165
- // Track container viewport height via ResizeObserver — re-virtualize
166
- // when the container size changes (window resize, sidebar collapse,
167
- // etc.). Use `useLayoutEffect` so the first measurement happens
168
- // before paint to avoid a flash of stale window.
169
- //
170
- // **Defensive**: only accept measurements > 0. jsdom (test env)
171
- // returns `clientHeight === 0` for unmounted containers, which would
172
- // collapse the window to empty. The hook keeps the
173
- // `initialViewportHeight` fallback in that case.
174
- useLayoutEffect(() => {
175
- const el = scrollRef.current;
176
- if (!el) return;
177
- if (el.clientHeight > 0) {
178
- setViewportHeight(el.clientHeight);
179
- }
180
- if (typeof ResizeObserver === 'undefined') return;
181
- const observer = new ResizeObserver((entries) => {
182
- const entry = entries[0];
183
- if (!entry || entry.contentRect.height <= 0) return;
184
- setViewportHeight(entry.contentRect.height);
185
- });
186
- observer.observe(el);
187
- return () => observer.disconnect();
188
- }, []);
189
-
190
- const window = computeWindow({
191
- totalCount,
192
- rowHeight,
193
- viewportHeight,
194
- scrollTop,
195
- overscan,
196
- });
197
-
198
- return { scrollRef, window, viewportHeight };
199
- }
@@ -1,60 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import type { DashFormBridge } from '@dashforge/ui-core';
3
-
4
- /**
5
- * Resolved validation state for a bridge-managed field.
6
- *
7
- * Returned by `resolveValidationState`, this is consumed by all form
8
- * components that surface error + helper text (TextField, Checkbox,
9
- * Switch, …) to derive their final render state.
10
- */
11
- export interface ValidationState {
12
- error: boolean;
13
- helperText: ReactNode;
14
- }
15
-
16
- /**
17
- * Compute `error` + `helperText` for a bridge-managed field.
18
- *
19
- * **Renderer-agnostic** — copy of the MUI-side
20
- * `textField.validation.ts`. Promoted to a `_shared/` directory inside
21
- * `@dashforge/tw` so all form components (TextField + Checkbox +
22
- * Switch) reuse the same precedence logic without depending on a
23
- * specific component folder.
24
- *
25
- * Precedence rules (matches MUI side byte-for-byte):
26
- *
27
- * 1. **Explicit props win.** If the user passed `error` / `helperText`
28
- * explicitly, those values are used as-is.
29
- * 2. **Auto values are gated by interaction.** The bridge's error is
30
- * surfaced only when the field is `touched` OR the form has been
31
- * submitted at least once (`submitCount > 0`). This prevents the
32
- * "error spam while typing" anti-pattern.
33
- * 3. **`error === false` explicitly clears the bridge's error message
34
- * text.** Useful for forcing a "valid" visual state regardless of
35
- * bridge state.
36
- *
37
- * @param name field name registered with the bridge
38
- * @param bridge active `DashFormBridge` (guaranteed non-null at
39
- * call sites by the surrounding `if (bridge)`)
40
- * @param explicitError `error` prop from the consumer
41
- * @param explicitHelperText `helperText` prop from the consumer
42
- */
43
- export function resolveValidationState(
44
- name: string,
45
- bridge: DashFormBridge,
46
- explicitError: boolean | undefined,
47
- explicitHelperText: ReactNode | undefined
48
- ): ValidationState {
49
- const autoErr = bridge.getError(name) ?? null;
50
- const autoTouched = bridge.isTouched(name) ?? false;
51
- const submitCount = bridge.submitCount ?? 0;
52
-
53
- const allowAutoError = autoTouched || submitCount > 0;
54
-
55
- const error = explicitError ?? (Boolean(autoErr) && allowAutoError);
56
- const helperText =
57
- explicitHelperText ?? (allowAutoError ? autoErr?.message : undefined);
58
-
59
- return { error, helperText };
60
- }
@@ -1,113 +0,0 @@
1
- import { readFileSync, readdirSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { describe, it, expect } from 'vitest';
4
-
5
- /**
6
- * Package-level theme-identity regression test.
7
- *
8
- * Enforces the Dashforge rule
9
- * (memory: `feedback_dashforge_preset_is_identity`):
10
- * the `@dashforge/tw-theme` default preset auto-inverts the neutral
11
- * palette via a CSS-variable swap (`bg-neutral-50` is light surface
12
- * in light mode AND dark surface in dark mode — same class, different
13
- * physical color). Adding a `dark:` Tailwind variant on a
14
- * `neutral-*` class creates a DOUBLE inversion that breaks dark mode.
15
- *
16
- * The Sprint 4.1 Table fix established the rule; Sprint 4.3 applies
17
- * it to the whole catalog and adds this test as a regression guard.
18
- *
19
- * **Allowed exception** (Category B in `THEME-AUDIT.md`): the pattern
20
- * `bg-white dark:bg-neutral-N` / `fill-white dark:fill-neutral-N` is
21
- * LEGITIMATE — `bg-white` is hardcoded (no auto-inversion via CSS
22
- * vars) so a `dark:` counterpart IS needed to get a dark elevated
23
- * surface in dark mode. The regex below strips these legitimate
24
- * patterns before scanning for the anti-pattern.
25
- *
26
- * Color palettes (`primary` / `secondary` / `success` / `warning` /
27
- * `danger` / `info`) are EXEMPT from this rule by design — they
28
- * do not auto-invert, so `dark:` shifts on them are legitimate
29
- * design choices (tone refinement across modes).
30
- */
31
- const COMPONENTS_DIR = join(__dirname, '..');
32
-
33
- // The legitimate Category B patterns we allow:
34
- // 1. `bg-white dark:bg-neutral-N`
35
- // 2. `fill-white dark:fill-neutral-N`
36
- // 3. variant-prefixed versions, e.g.
37
- // `data-[state=active]:bg-white dark:data-[state=active]:bg-neutral-N`
38
- //
39
- // Strip these from the source before scanning for the anti-pattern.
40
- const CATEGORY_B_RE =
41
- /(?:[\w[\]:-]+:)?(?:bg|fill)-white\s+dark:(?:[\w[\]:-]+:)*(?:bg|fill)-neutral-\d+/g;
42
-
43
- // Anti-pattern: any `dark:` variant on a `neutral-N` class.
44
- // Covers `bg`, `text`, `border`, `ring`, `placeholder:text`,
45
- // `hover:bg`, `focus-visible:bg`, `data-[state=*]:bg`, etc.
46
- const NEUTRAL_DARK_RE =
47
- /dark:(?:[\w[\]:-]+:)*(?:bg|text|border|ring|fill|placeholder|focus-visible|hover|focus|data)?-?neutral-\d+/;
48
-
49
- function walkSourceFiles(dir: string): string[] {
50
- const entries = readdirSync(dir, { withFileTypes: true });
51
- const out: string[] = [];
52
- for (const entry of entries) {
53
- const full = join(dir, entry.name);
54
- if (entry.isDirectory()) {
55
- out.push(...walkSourceFiles(full));
56
- continue;
57
- }
58
- if (!entry.isFile()) continue;
59
- if (entry.name.endsWith('.test.ts')) continue;
60
- if (entry.name.endsWith('.test.tsx')) continue;
61
- if (entry.name.endsWith('.spec.ts')) continue;
62
- if (entry.name.endsWith('.spec.tsx')) continue;
63
- if (!/\.(ts|tsx)$/.test(entry.name)) continue;
64
- out.push(full);
65
- }
66
- return out;
67
- }
68
-
69
- describe('Catalog — theme identity rule (no `dark:` on neutral palette)', () => {
70
- const files = walkSourceFiles(COMPONENTS_DIR);
71
-
72
- it('finds the catalog source files', () => {
73
- expect(files.length).toBeGreaterThan(20);
74
- });
75
-
76
- for (const file of files) {
77
- const rel = file.replace(COMPONENTS_DIR + '/', '');
78
- it(`${rel} — no \`dark:*-neutral-N\` anti-pattern`, () => {
79
- const source = readFileSync(file, 'utf-8');
80
- const stripped = source
81
- // 1. Strip legitimate Category B patterns (bg-white / fill-white
82
- // paired with a `dark:` neutral target — bg-white doesn't
83
- // auto-invert, so the `dark:` is intentional).
84
- .replace(CATEGORY_B_RE, '')
85
- // 2. Strip comments — the regex examples in THEME-AUDIT and
86
- // this test source itself contain the anti-pattern as text.
87
- .replace(/\/\/.*$/gm, '')
88
- .replace(/\/\*[\s\S]*?\*\//g, '');
89
-
90
- const match = stripped.match(NEUTRAL_DARK_RE);
91
- if (match) {
92
- const idx = stripped.indexOf(match[0]);
93
- const context = stripped.slice(
94
- Math.max(0, idx - 80),
95
- idx + match[0].length + 80,
96
- );
97
- throw new Error(
98
- `Found \`dark:*-neutral-N\` anti-pattern in ${rel}:\n` +
99
- ` ...${context.replace(/\s+/g, ' ').trim()}...\n\n` +
100
- `Rule: dashforgePreset() auto-inverts neutral palette via CSS-var swap. ` +
101
- `Adding \`dark:bg-neutral-N\` (or similar) creates double inversion ` +
102
- `and breaks dark mode.\n\n` +
103
- `Fix: drop the \`dark:\` variant — the base class auto-inverts.\n\n` +
104
- `Exception: \`bg-white dark:bg-neutral-N\` IS allowed (bg-white doesn't ` +
105
- `auto-invert, the dark variant is required for proper dark elevation).\n\n` +
106
- `See: libs/dashforge/tw/THEME-AUDIT.md, ` +
107
- `memory \`feedback_dashforge_preset_is_identity\`.`,
108
- );
109
- }
110
- expect(match).toBeNull();
111
- });
112
- }
113
- });
@@ -1,161 +0,0 @@
1
- // @vitest-environment jsdom
2
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
3
- import { renderHook } from '@testing-library/react';
4
- import { RbacProvider } from '@dashforge/rbac';
5
- import type {
6
- RbacPolicy,
7
- Subject,
8
- AccessRequirement,
9
- } from '@dashforge/rbac';
10
- import { useAccessState } from './useAccessState.js';
11
-
12
- /**
13
- * TW-side copy of the MUI useAccessState unit test, kept independent
14
- * per the isolation contract. The hook contract is identical so the
15
- * MUI test cases double as the source of truth for behaviour parity.
16
- */
17
-
18
- const FULL_ACCESS_POLICY: RbacPolicy = {
19
- roles: [
20
- {
21
- name: 'admin',
22
- permissions: [{ resource: '*', action: '*', effect: 'allow' }],
23
- },
24
- ],
25
- };
26
-
27
- const READ_ONLY_POLICY: RbacPolicy = {
28
- roles: [
29
- {
30
- name: 'viewer',
31
- permissions: [
32
- { resource: 'document', action: 'read', effect: 'allow' },
33
- { resource: 'document', action: 'update', effect: 'deny' },
34
- ],
35
- },
36
- ],
37
- };
38
-
39
- const adminSubject: Subject = { id: 'admin-user', roles: ['admin'] };
40
- const viewerSubject: Subject = { id: 'viewer-user', roles: ['viewer'] };
41
-
42
- function wrapWithRbac(policy: RbacPolicy, subject: Subject) {
43
- return function Wrapper({ children }: { children: React.ReactNode }) {
44
- return (
45
- <RbacProvider policy={policy} subject={subject}>
46
- {children}
47
- </RbacProvider>
48
- );
49
- };
50
- }
51
-
52
- describe('useAccessState (tw)', () => {
53
- describe('no access requirement', () => {
54
- it('returns default full-access state when access is undefined', () => {
55
- const { result } = renderHook(() => useAccessState(undefined));
56
- expect(result.current).toEqual({
57
- visible: true,
58
- disabled: false,
59
- readonly: false,
60
- granted: true,
61
- });
62
- });
63
-
64
- it('returns stable identity across re-renders', () => {
65
- const { result, rerender } = renderHook(() => useAccessState(undefined));
66
- const first = result.current;
67
- rerender();
68
- expect(result.current).toBe(first);
69
- });
70
- });
71
-
72
- describe('access requirement WITHOUT RbacProvider (fail-safe)', () => {
73
- let warnSpy: ReturnType<typeof vi.spyOn>;
74
- beforeEach(() => {
75
- warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => undefined);
76
- });
77
- afterEach(() => {
78
- warnSpy.mockRestore();
79
- });
80
-
81
- it('returns DEFAULT_ACCESS_STATE (fails open) when no provider mounted', () => {
82
- const access: AccessRequirement = { resource: 'doc', action: 'read' };
83
- const { result } = renderHook(() => useAccessState(access));
84
- expect(result.current.visible).toBe(true);
85
- expect(result.current.granted).toBe(true);
86
- });
87
-
88
- it('logs a dev-mode warning naming the missing requirement', () => {
89
- const access: AccessRequirement = { resource: 'doc', action: 'update' };
90
- renderHook(() => useAccessState(access));
91
- expect(warnSpy).toHaveBeenCalled();
92
- const msg = String(warnSpy.mock.calls[0]?.[0] ?? '');
93
- expect(msg).toContain('No RbacProvider');
94
- expect(msg).toContain('doc');
95
- expect(msg).toContain('update');
96
- });
97
- });
98
-
99
- describe('access requirement WITH RbacProvider', () => {
100
- it('grants when policy allows', () => {
101
- const access: AccessRequirement = { resource: 'document', action: 'read' };
102
- const { result } = renderHook(() => useAccessState(access), {
103
- wrapper: wrapWithRbac(FULL_ACCESS_POLICY, adminSubject),
104
- });
105
- expect(result.current.granted).toBe(true);
106
- expect(result.current.visible).toBe(true);
107
- });
108
-
109
- it('denies (hide) when policy forbids and onUnauthorized=hide', () => {
110
- const access: AccessRequirement = {
111
- resource: 'document',
112
- action: 'update',
113
- onUnauthorized: 'hide',
114
- };
115
- const { result } = renderHook(() => useAccessState(access), {
116
- wrapper: wrapWithRbac(READ_ONLY_POLICY, viewerSubject),
117
- });
118
- expect(result.current.granted).toBe(false);
119
- expect(result.current.visible).toBe(false);
120
- });
121
-
122
- it('denies (disable) when policy forbids and onUnauthorized=disable', () => {
123
- const access: AccessRequirement = {
124
- resource: 'document',
125
- action: 'update',
126
- onUnauthorized: 'disable',
127
- };
128
- const { result } = renderHook(() => useAccessState(access), {
129
- wrapper: wrapWithRbac(READ_ONLY_POLICY, viewerSubject),
130
- });
131
- expect(result.current.granted).toBe(false);
132
- expect(result.current.visible).toBe(true);
133
- expect(result.current.disabled).toBe(true);
134
- });
135
-
136
- it('denies (readonly) when policy forbids and onUnauthorized=readonly', () => {
137
- const access: AccessRequirement = {
138
- resource: 'document',
139
- action: 'update',
140
- onUnauthorized: 'readonly',
141
- };
142
- const { result } = renderHook(() => useAccessState(access), {
143
- wrapper: wrapWithRbac(READ_ONLY_POLICY, viewerSubject),
144
- });
145
- expect(result.current.granted).toBe(false);
146
- expect(result.current.readonly).toBe(true);
147
- });
148
- });
149
-
150
- describe('memoization', () => {
151
- it('returns identical reference when access reference stays the same', () => {
152
- const access: AccessRequirement = { resource: 'doc', action: 'read' };
153
- const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => undefined);
154
- const { result, rerender } = renderHook(() => useAccessState(access));
155
- const first = result.current;
156
- rerender();
157
- expect(result.current).toBe(first);
158
- warnSpy.mockRestore();
159
- });
160
- });
161
- });
@@ -1,81 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { useRbacOptional, resolveAccessState } from '@dashforge/rbac';
3
- import type { AccessRequirement, AccessState } from '@dashforge/rbac';
4
-
5
- /**
6
- * Default full-access state. Returned when no access requirement is
7
- * supplied **or** when no `RbacProvider` is mounted (fail-safe default).
8
- *
9
- * @internal
10
- */
11
- const DEFAULT_ACCESS_STATE: AccessState = {
12
- visible: true,
13
- disabled: false,
14
- readonly: false,
15
- granted: true,
16
- };
17
-
18
- /**
19
- * Hook to resolve RBAC access state for a UI component.
20
- *
21
- * **TW-side copy of the MUI implementation** in `@dashforge/ui/src/hooks/useAccessState.ts`.
22
- * Per the architecture plan v2 (2026-05-15) the two ecosystems share
23
- * only the bridge layer (`@dashforge/forms` + `@dashforge/ui-core` +
24
- * `@dashforge/rbac`); UI-side hooks are duplicated intentionally so
25
- * the MUI and TW ecosystems remain fully isolated.
26
- *
27
- * The behaviour is byte-equivalent to the MUI side:
28
- *
29
- * - If `access` is undefined → returns `DEFAULT_ACCESS_STATE`.
30
- * - If `access` is supplied but no `RbacProvider` is mounted → returns
31
- * `DEFAULT_ACCESS_STATE` and emits a dev-only `console.warn` so the
32
- * developer notices the missing provider. Failing **open** is the
33
- * safer default (RBAC silently denying everything would be a hidden
34
- * regression in development).
35
- * - Otherwise → evaluates the requirement against the active
36
- * `rbac.engine` + `rbac.subject` via `resolveAccessState`.
37
- *
38
- * The memo dependency list is `[access, rbac]` — a stable RBAC
39
- * context + identical access requirement re-uses the same result
40
- * object so downstream `useMemo` / `React.memo` comparisons stay
41
- * cheap.
42
- *
43
- * @example
44
- * ```tsx
45
- * function MyComponent({ access }: { access?: AccessRequirement }) {
46
- * const accessState = useAccessState(access);
47
- * if (!accessState.visible) return null;
48
- * return <input disabled={accessState.disabled} readOnly={accessState.readonly} />;
49
- * }
50
- * ```
51
- */
52
- export function useAccessState(
53
- access: AccessRequirement | undefined
54
- ): AccessState {
55
- // Hooks are called unconditionally to comply with the rules of hooks.
56
- // `useRbacOptional` returns `null` when no provider is mounted
57
- // (it does NOT throw — that's intentional, see its doc).
58
- const rbac = useRbacOptional();
59
-
60
- return useMemo(() => {
61
- if (!access) {
62
- return DEFAULT_ACCESS_STATE;
63
- }
64
-
65
- if (!rbac) {
66
- if (process.env.NODE_ENV !== 'production') {
67
-
68
- console.warn(
69
- '[useAccessState] No RbacProvider found but access requirement was provided. ' +
70
- 'Defaulting to full access. Wrap your component tree with <RbacProvider> to enable RBAC. ' +
71
- `Resource: ${access.resource}, Action: ${access.action}`
72
- );
73
- }
74
- return DEFAULT_ACCESS_STATE;
75
- }
76
-
77
- return resolveAccessState(access, (request) =>
78
- rbac.engine.can(rbac.subject, request)
79
- );
80
- }, [access, rbac]);
81
- }