@umodeapporg/ui 0.1.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 (667) hide show
  1. package/dist/assets/images/common-pngs/sparkles.png.js +5 -0
  2. package/dist/assets/images/common-pngs/sparkles.png.js.map +1 -0
  3. package/dist/assets/umode-ui.css +182 -0
  4. package/dist/components/DateTime/DatePicker.d.ts +19 -0
  5. package/dist/components/DateTime/DatePicker.js +121 -0
  6. package/dist/components/DateTime/DatePicker.js.map +1 -0
  7. package/dist/components/DateTime/DateRangePicker.d.ts +19 -0
  8. package/dist/components/DateTime/DateRangePicker.js +205 -0
  9. package/dist/components/DateTime/DateRangePicker.js.map +1 -0
  10. package/dist/components/Form/ControlledButton.d.ts +13 -0
  11. package/dist/components/Form/ControlledButton.js +68 -0
  12. package/dist/components/Form/ControlledButton.js.map +1 -0
  13. package/dist/components/Form/ControlledCheckbox.d.ts +12 -0
  14. package/dist/components/Form/ControlledCheckbox.js +101 -0
  15. package/dist/components/Form/ControlledCheckbox.js.map +1 -0
  16. package/dist/components/Form/ControlledDialog.d.ts +44 -0
  17. package/dist/components/Form/ControlledDialog.js +185 -0
  18. package/dist/components/Form/ControlledDialog.js.map +1 -0
  19. package/dist/components/Form/ControlledDialogPrimitives.d.ts +30 -0
  20. package/dist/components/Form/ControlledDialogPrimitives.js +121 -0
  21. package/dist/components/Form/ControlledDialogPrimitives.js.map +1 -0
  22. package/dist/components/Form/ControlledDrawer.d.ts +37 -0
  23. package/dist/components/Form/ControlledDrawer.js +237 -0
  24. package/dist/components/Form/ControlledDrawer.js.map +1 -0
  25. package/dist/components/Form/ControlledForm/InputField.d.ts +11 -0
  26. package/dist/components/Form/ControlledForm/InputField.js +75 -0
  27. package/dist/components/Form/ControlledForm/InputField.js.map +1 -0
  28. package/dist/components/Form/ControlledForm/index.d.ts +27 -0
  29. package/dist/components/Form/ControlledForm/index.js +113 -0
  30. package/dist/components/Form/ControlledForm/index.js.map +1 -0
  31. package/dist/components/Form/ControlledImage/Img.d.ts +11 -0
  32. package/dist/components/Form/ControlledImage/Img.js +29 -0
  33. package/dist/components/Form/ControlledImage/Img.js.map +1 -0
  34. package/dist/components/Form/ControlledImage/index.d.ts +30 -0
  35. package/dist/components/Form/ControlledImage/index.js +107 -0
  36. package/dist/components/Form/ControlledImage/index.js.map +1 -0
  37. package/dist/components/Form/ControlledImage/useImage.d.ts +9 -0
  38. package/dist/components/Form/ControlledImage/useImage.js +110 -0
  39. package/dist/components/Form/ControlledImage/useImage.js.map +1 -0
  40. package/dist/components/Form/ControlledInput.d.ts +23 -0
  41. package/dist/components/Form/ControlledInput.js +52 -0
  42. package/dist/components/Form/ControlledInput.js.map +1 -0
  43. package/dist/components/Form/ControlledRadio.d.ts +15 -0
  44. package/dist/components/Form/ControlledRadio.js +91 -0
  45. package/dist/components/Form/ControlledRadio.js.map +1 -0
  46. package/dist/components/Form/ControlledSelect.d.ts +44 -0
  47. package/dist/components/Form/ControlledSelect.js +545 -0
  48. package/dist/components/Form/ControlledSelect.js.map +1 -0
  49. package/dist/components/Form/ControlledSwitch.d.ts +14 -0
  50. package/dist/components/Form/ControlledSwitch.js +88 -0
  51. package/dist/components/Form/ControlledSwitch.js.map +1 -0
  52. package/dist/components/Form/ControlledTabs.d.ts +70 -0
  53. package/dist/components/Form/ControlledTabs.js +470 -0
  54. package/dist/components/Form/ControlledTabs.js.map +1 -0
  55. package/dist/components/Form/ControlledTabsPrimitives.d.ts +43 -0
  56. package/dist/components/Form/ControlledTabsPrimitives.js +47 -0
  57. package/dist/components/Form/ControlledTabsPrimitives.js.map +1 -0
  58. package/dist/components/Form/ControlledTextarea.d.ts +22 -0
  59. package/dist/components/Form/ControlledTextarea.js +46 -0
  60. package/dist/components/Form/ControlledTextarea.js.map +1 -0
  61. package/dist/components/Form/ControlledTimeline.d.ts +26 -0
  62. package/dist/components/Form/ControlledTimeline.js +57 -0
  63. package/dist/components/Form/ControlledTimeline.js.map +1 -0
  64. package/dist/components/Form/ControlledViewToggle.d.ts +74 -0
  65. package/dist/components/Form/ControlledViewToggle.js +157 -0
  66. package/dist/components/Form/ControlledViewToggle.js.map +1 -0
  67. package/dist/components/Form/ControlledVoiceTextarea.d.ts +11 -0
  68. package/dist/components/Form/ControlledVoiceTextarea.js +88 -0
  69. package/dist/components/Form/ControlledVoiceTextarea.js.map +1 -0
  70. package/dist/components/Form/CurrencyInput.d.ts +8 -0
  71. package/dist/components/Form/CurrencyInput.js +17 -0
  72. package/dist/components/Form/CurrencyInput.js.map +1 -0
  73. package/dist/components/Form/RichTextEditor.d.ts +80 -0
  74. package/dist/components/Form/RichTextEditor.js +546 -0
  75. package/dist/components/Form/RichTextEditor.js.map +1 -0
  76. package/dist/components/Form/attachments/AttachmentPreviewList.d.ts +8 -0
  77. package/dist/components/Form/attachments/AttachmentPreviewList.js +71 -0
  78. package/dist/components/Form/attachments/AttachmentPreviewList.js.map +1 -0
  79. package/dist/components/Form/attachments/FileDropzone.d.ts +12 -0
  80. package/dist/components/Form/attachments/FileDropzone.js +84 -0
  81. package/dist/components/Form/attachments/FileDropzone.js.map +1 -0
  82. package/dist/components/Navigation/ControlledBreadcrumb.d.ts +13 -0
  83. package/dist/components/Navigation/ControlledBreadcrumb.js +23 -0
  84. package/dist/components/Navigation/ControlledBreadcrumb.js.map +1 -0
  85. package/dist/components/Navigation/ErrorPage.d.ts +2 -0
  86. package/dist/components/Navigation/ErrorPage.js +27 -0
  87. package/dist/components/Navigation/ErrorPage.js.map +1 -0
  88. package/dist/components/Navigation/PageTitle.d.ts +41 -0
  89. package/dist/components/Navigation/PageTitle.js +147 -0
  90. package/dist/components/Navigation/PageTitle.js.map +1 -0
  91. package/dist/components/Navigation/PageTitleNavigationContext.d.ts +21 -0
  92. package/dist/components/Navigation/PageTitleNavigationContext.js +17 -0
  93. package/dist/components/Navigation/PageTitleNavigationContext.js.map +1 -0
  94. package/dist/components/Search/UnifiedSearchBar.d.ts +31 -0
  95. package/dist/components/Search/UnifiedSearchBar.js +167 -0
  96. package/dist/components/Search/UnifiedSearchBar.js.map +1 -0
  97. package/dist/components/Search/filters/ActiveFiltersBar.d.ts +15 -0
  98. package/dist/components/Search/filters/ActiveFiltersBar.js +48 -0
  99. package/dist/components/Search/filters/ActiveFiltersBar.js.map +1 -0
  100. package/dist/components/Search/filters/FilterChipsRow.d.ts +17 -0
  101. package/dist/components/Search/filters/FilterChipsRow.js +113 -0
  102. package/dist/components/Search/filters/FilterChipsRow.js.map +1 -0
  103. package/dist/components/Search/filters/FilterFieldControl.d.ts +19 -0
  104. package/dist/components/Search/filters/FilterFieldControl.js +387 -0
  105. package/dist/components/Search/filters/FilterFieldControl.js.map +1 -0
  106. package/dist/components/Search/filters/FiltersButton.d.ts +24 -0
  107. package/dist/components/Search/filters/FiltersButton.js +52 -0
  108. package/dist/components/Search/filters/FiltersButton.js.map +1 -0
  109. package/dist/components/Search/filters/FiltersForm.d.ts +18 -0
  110. package/dist/components/Search/filters/FiltersForm.js +112 -0
  111. package/dist/components/Search/filters/FiltersForm.js.map +1 -0
  112. package/dist/components/Search/filters/FiltersPanel.d.ts +32 -0
  113. package/dist/components/Search/filters/FiltersPanel.js +264 -0
  114. package/dist/components/Search/filters/FiltersPanel.js.map +1 -0
  115. package/dist/components/Search/filters/FiltersSummaryTooltip.d.ts +20 -0
  116. package/dist/components/Search/filters/FiltersSummaryTooltip.js +26 -0
  117. package/dist/components/Search/filters/FiltersSummaryTooltip.js.map +1 -0
  118. package/dist/components/Search/filters/filterTypes.d.ts +162 -0
  119. package/dist/components/Search/filters/filterTypes.js +2 -0
  120. package/dist/components/Search/filters/filterTypes.js.map +1 -0
  121. package/dist/components/Search/filters/filterValues.d.ts +22 -0
  122. package/dist/components/Search/filters/filterValues.js +91 -0
  123. package/dist/components/Search/filters/filterValues.js.map +1 -0
  124. package/dist/components/Search/filters/filtersLayout.d.ts +4 -0
  125. package/dist/components/Search/filters/filtersLayout.js +18 -0
  126. package/dist/components/Search/filters/filtersLayout.js.map +1 -0
  127. package/dist/components/Search/filters/index.d.ts +11 -0
  128. package/dist/components/Search/filters/index.js +32 -0
  129. package/dist/components/Search/filters/index.js.map +1 -0
  130. package/dist/components/Search/filters/useFilters.d.ts +33 -0
  131. package/dist/components/Search/filters/useFilters.js +162 -0
  132. package/dist/components/Search/filters/useFilters.js.map +1 -0
  133. package/dist/components/Search/index.d.ts +2 -0
  134. package/dist/components/Search/index.js +34 -0
  135. package/dist/components/Search/index.js.map +1 -0
  136. package/dist/components/UI/AccordionIcon.d.ts +10 -0
  137. package/dist/components/UI/AccordionIcon.js +22 -0
  138. package/dist/components/UI/AccordionIcon.js.map +1 -0
  139. package/dist/components/UI/AlertInfo/dismissedAlertsStore.d.ts +2 -0
  140. package/dist/components/UI/AlertInfo/dismissedAlertsStore.js +22 -0
  141. package/dist/components/UI/AlertInfo/dismissedAlertsStore.js.map +1 -0
  142. package/dist/components/UI/AlertInfo/index.d.ts +30 -0
  143. package/dist/components/UI/AlertInfo/index.js +78 -0
  144. package/dist/components/UI/AlertInfo/index.js.map +1 -0
  145. package/dist/components/UI/BaseDataCard.d.ts +25 -0
  146. package/dist/components/UI/BaseDataCard.js +163 -0
  147. package/dist/components/UI/BaseDataCard.js.map +1 -0
  148. package/dist/components/UI/BulkActionBar.d.ts +35 -0
  149. package/dist/components/UI/BulkActionBar.js +125 -0
  150. package/dist/components/UI/BulkActionBar.js.map +1 -0
  151. package/dist/components/UI/Chips/OutlinedChip.d.ts +42 -0
  152. package/dist/components/UI/Chips/OutlinedChip.js +183 -0
  153. package/dist/components/UI/Chips/OutlinedChip.js.map +1 -0
  154. package/dist/components/UI/Chips/StatusChip.d.ts +8 -0
  155. package/dist/components/UI/Chips/StatusChip.js +33 -0
  156. package/dist/components/UI/Chips/StatusChip.js.map +1 -0
  157. package/dist/components/UI/Chips/chipTones.d.ts +6 -0
  158. package/dist/components/UI/Chips/chipTones.js +53 -0
  159. package/dist/components/UI/Chips/chipTones.js.map +1 -0
  160. package/dist/components/UI/ColorSwatch.d.ts +30 -0
  161. package/dist/components/UI/ColorSwatch.js +53 -0
  162. package/dist/components/UI/ColorSwatch.js.map +1 -0
  163. package/dist/components/UI/Colors.d.ts +10 -0
  164. package/dist/components/UI/Colors.js +41 -0
  165. package/dist/components/UI/Colors.js.map +1 -0
  166. package/dist/components/UI/ControlledAccordion.d.ts +38 -0
  167. package/dist/components/UI/ControlledAccordion.js +89 -0
  168. package/dist/components/UI/ControlledAccordion.js.map +1 -0
  169. package/dist/components/UI/ControlledCollapse.d.ts +13 -0
  170. package/dist/components/UI/ControlledCollapse.js +32 -0
  171. package/dist/components/UI/ControlledCollapse.js.map +1 -0
  172. package/dist/components/UI/ControlledMenu.d.ts +73 -0
  173. package/dist/components/UI/ControlledMenu.js +231 -0
  174. package/dist/components/UI/ControlledMenu.js.map +1 -0
  175. package/dist/components/UI/ControlledPopover.d.ts +44 -0
  176. package/dist/components/UI/ControlledPopover.js +144 -0
  177. package/dist/components/UI/ControlledPopover.js.map +1 -0
  178. package/dist/components/UI/ControlledProgress.d.ts +13 -0
  179. package/dist/components/UI/ControlledProgress.js +46 -0
  180. package/dist/components/UI/ControlledProgress.js.map +1 -0
  181. package/dist/components/UI/ControlledSlider.d.ts +13 -0
  182. package/dist/components/UI/ControlledSlider.js +29 -0
  183. package/dist/components/UI/ControlledSlider.js.map +1 -0
  184. package/dist/components/UI/ControlledTooltip.d.ts +21 -0
  185. package/dist/components/UI/ControlledTooltip.js +140 -0
  186. package/dist/components/UI/ControlledTooltip.js.map +1 -0
  187. package/dist/components/UI/CustomBadge.d.ts +15 -0
  188. package/dist/components/UI/CustomBadge.js +34 -0
  189. package/dist/components/UI/CustomBadge.js.map +1 -0
  190. package/dist/components/UI/CustomCard.d.ts +13 -0
  191. package/dist/components/UI/CustomCard.js +36 -0
  192. package/dist/components/UI/CustomCard.js.map +1 -0
  193. package/dist/components/UI/CustomChart.d.ts +21 -0
  194. package/dist/components/UI/CustomChart.js +108 -0
  195. package/dist/components/UI/CustomChart.js.map +1 -0
  196. package/dist/components/UI/DataTable/DataTable.d.ts +100 -0
  197. package/dist/components/UI/DataTable/DataTable.js +546 -0
  198. package/dist/components/UI/DataTable/DataTable.js.map +1 -0
  199. package/dist/components/UI/DataTable/DataTableAutoCard.d.ts +20 -0
  200. package/dist/components/UI/DataTable/DataTableAutoCard.js +39 -0
  201. package/dist/components/UI/DataTable/DataTableAutoCard.js.map +1 -0
  202. package/dist/components/UI/DataTable/DataTableBody.d.ts +29 -0
  203. package/dist/components/UI/DataTable/DataTableBody.js +243 -0
  204. package/dist/components/UI/DataTable/DataTableBody.js.map +1 -0
  205. package/dist/components/UI/DataTable/DataTableBodyCell.d.ts +21 -0
  206. package/dist/components/UI/DataTable/DataTableBodyCell.js +77 -0
  207. package/dist/components/UI/DataTable/DataTableBodyCell.js.map +1 -0
  208. package/dist/components/UI/DataTable/DataTableBulkEditButton.d.ts +11 -0
  209. package/dist/components/UI/DataTable/DataTableBulkEditButton.js +24 -0
  210. package/dist/components/UI/DataTable/DataTableBulkEditButton.js.map +1 -0
  211. package/dist/components/UI/DataTable/DataTableBulkEditDialog.d.ts +25 -0
  212. package/dist/components/UI/DataTable/DataTableBulkEditDialog.js +251 -0
  213. package/dist/components/UI/DataTable/DataTableBulkEditDialog.js.map +1 -0
  214. package/dist/components/UI/DataTable/DataTableColumnToggle.d.ts +34 -0
  215. package/dist/components/UI/DataTable/DataTableColumnToggle.js +168 -0
  216. package/dist/components/UI/DataTable/DataTableColumnToggle.js.map +1 -0
  217. package/dist/components/UI/DataTable/DataTableDetailModal.d.ts +17 -0
  218. package/dist/components/UI/DataTable/DataTableDetailModal.js +109 -0
  219. package/dist/components/UI/DataTable/DataTableDetailModal.js.map +1 -0
  220. package/dist/components/UI/DataTable/DataTableDetailPanel.d.ts +21 -0
  221. package/dist/components/UI/DataTable/DataTableDetailPanel.js +51 -0
  222. package/dist/components/UI/DataTable/DataTableDetailPanel.js.map +1 -0
  223. package/dist/components/UI/DataTable/DataTableDetailTable.d.ts +35 -0
  224. package/dist/components/UI/DataTable/DataTableDetailTable.js +129 -0
  225. package/dist/components/UI/DataTable/DataTableDetailTable.js.map +1 -0
  226. package/dist/components/UI/DataTable/DataTableEditModeButton.d.ts +12 -0
  227. package/dist/components/UI/DataTable/DataTableEditModeButton.js +29 -0
  228. package/dist/components/UI/DataTable/DataTableEditModeButton.js.map +1 -0
  229. package/dist/components/UI/DataTable/DataTableFilters.d.ts +20 -0
  230. package/dist/components/UI/DataTable/DataTableFilters.js +64 -0
  231. package/dist/components/UI/DataTable/DataTableFilters.js.map +1 -0
  232. package/dist/components/UI/DataTable/DataTableHead.d.ts +27 -0
  233. package/dist/components/UI/DataTable/DataTableHead.js +198 -0
  234. package/dist/components/UI/DataTable/DataTableHead.js.map +1 -0
  235. package/dist/components/UI/DataTable/DataTablePagination.d.ts +15 -0
  236. package/dist/components/UI/DataTable/DataTablePagination.js +145 -0
  237. package/dist/components/UI/DataTable/DataTablePagination.js.map +1 -0
  238. package/dist/components/UI/DataTable/DataTableSaveButton.d.ts +13 -0
  239. package/dist/components/UI/DataTable/DataTableSaveButton.js +21 -0
  240. package/dist/components/UI/DataTable/DataTableSaveButton.js.map +1 -0
  241. package/dist/components/UI/DataTable/DataTableSegmentedTabs.d.ts +8 -0
  242. package/dist/components/UI/DataTable/DataTableSegmentedTabs.js +35 -0
  243. package/dist/components/UI/DataTable/DataTableSegmentedTabs.js.map +1 -0
  244. package/dist/components/UI/DataTable/DataTableStates.d.ts +17 -0
  245. package/dist/components/UI/DataTable/DataTableStates.js +59 -0
  246. package/dist/components/UI/DataTable/DataTableStates.js.map +1 -0
  247. package/dist/components/UI/DataTable/DataTableToolbar.d.ts +28 -0
  248. package/dist/components/UI/DataTable/DataTableToolbar.js +109 -0
  249. package/dist/components/UI/DataTable/DataTableToolbar.js.map +1 -0
  250. package/dist/components/UI/DataTable/applyDataTableFilters.d.ts +16 -0
  251. package/dist/components/UI/DataTable/applyDataTableFilters.js +53 -0
  252. package/dist/components/UI/DataTable/applyDataTableFilters.js.map +1 -0
  253. package/dist/components/UI/DataTable/cells/DataTableActionsCell.d.ts +7 -0
  254. package/dist/components/UI/DataTable/cells/DataTableActionsCell.js +55 -0
  255. package/dist/components/UI/DataTable/cells/DataTableActionsCell.js.map +1 -0
  256. package/dist/components/UI/DataTable/cells/DataTableCell.d.ts +15 -0
  257. package/dist/components/UI/DataTable/cells/DataTableCell.js +63 -0
  258. package/dist/components/UI/DataTable/cells/DataTableCell.js.map +1 -0
  259. package/dist/components/UI/DataTable/cells/DataTableCodeCell.d.ts +6 -0
  260. package/dist/components/UI/DataTable/cells/DataTableCodeCell.js +7 -0
  261. package/dist/components/UI/DataTable/cells/DataTableCodeCell.js.map +1 -0
  262. package/dist/components/UI/DataTable/cells/DataTableColorCell.d.ts +7 -0
  263. package/dist/components/UI/DataTable/cells/DataTableColorCell.js +10 -0
  264. package/dist/components/UI/DataTable/cells/DataTableColorCell.js.map +1 -0
  265. package/dist/components/UI/DataTable/cells/DataTableCountCell.d.ts +5 -0
  266. package/dist/components/UI/DataTable/cells/DataTableCountCell.js +7 -0
  267. package/dist/components/UI/DataTable/cells/DataTableCountCell.js.map +1 -0
  268. package/dist/components/UI/DataTable/cells/DataTableDateCell.d.ts +5 -0
  269. package/dist/components/UI/DataTable/cells/DataTableDateCell.js +12 -0
  270. package/dist/components/UI/DataTable/cells/DataTableDateCell.js.map +1 -0
  271. package/dist/components/UI/DataTable/cells/DataTableEditableCell.d.ts +23 -0
  272. package/dist/components/UI/DataTable/cells/DataTableEditableCell.js +242 -0
  273. package/dist/components/UI/DataTable/cells/DataTableEditableCell.js.map +1 -0
  274. package/dist/components/UI/DataTable/cells/DataTableEmpenhoCell.d.ts +10 -0
  275. package/dist/components/UI/DataTable/cells/DataTableEmpenhoCell.js +7 -0
  276. package/dist/components/UI/DataTable/cells/DataTableEmpenhoCell.js.map +1 -0
  277. package/dist/components/UI/DataTable/cells/DataTableOriginCell.d.ts +6 -0
  278. package/dist/components/UI/DataTable/cells/DataTableOriginCell.js +25 -0
  279. package/dist/components/UI/DataTable/cells/DataTableOriginCell.js.map +1 -0
  280. package/dist/components/UI/DataTable/cells/DataTableStatusCell.d.ts +6 -0
  281. package/dist/components/UI/DataTable/cells/DataTableStatusCell.js +24 -0
  282. package/dist/components/UI/DataTable/cells/DataTableStatusCell.js.map +1 -0
  283. package/dist/components/UI/DataTable/cells/DataTableTagCell.d.ts +6 -0
  284. package/dist/components/UI/DataTable/cells/DataTableTagCell.js +25 -0
  285. package/dist/components/UI/DataTable/cells/DataTableTagCell.js.map +1 -0
  286. package/dist/components/UI/DataTable/cells/DataTableTextCell.d.ts +6 -0
  287. package/dist/components/UI/DataTable/cells/DataTableTextCell.js +7 -0
  288. package/dist/components/UI/DataTable/cells/DataTableTextCell.js.map +1 -0
  289. package/dist/components/UI/DataTable/cells/DataTableThumbnailCell.d.ts +6 -0
  290. package/dist/components/UI/DataTable/cells/DataTableThumbnailCell.js +10 -0
  291. package/dist/components/UI/DataTable/cells/DataTableThumbnailCell.js.map +1 -0
  292. package/dist/components/UI/DataTable/dataTableClasses.d.ts +12 -0
  293. package/dist/components/UI/DataTable/dataTableClasses.js +29 -0
  294. package/dist/components/UI/DataTable/dataTableClasses.js.map +1 -0
  295. package/dist/components/UI/DataTable/dataTableColumnWidths.d.ts +15 -0
  296. package/dist/components/UI/DataTable/dataTableColumnWidths.js +153 -0
  297. package/dist/components/UI/DataTable/dataTableColumnWidths.js.map +1 -0
  298. package/dist/components/UI/DataTable/dataTableColumnsStore.d.ts +12 -0
  299. package/dist/components/UI/DataTable/dataTableColumnsStore.js +68 -0
  300. package/dist/components/UI/DataTable/dataTableColumnsStore.js.map +1 -0
  301. package/dist/components/UI/DataTable/dataTableMotion.d.ts +6 -0
  302. package/dist/components/UI/DataTable/dataTableMotion.js +15 -0
  303. package/dist/components/UI/DataTable/dataTableMotion.js.map +1 -0
  304. package/dist/components/UI/DataTable/grid/GridFillHandle.d.ts +8 -0
  305. package/dist/components/UI/DataTable/grid/GridFillHandle.js +70 -0
  306. package/dist/components/UI/DataTable/grid/GridFillHandle.js.map +1 -0
  307. package/dist/components/UI/DataTable/grid/GridProvider.d.ts +31 -0
  308. package/dist/components/UI/DataTable/grid/GridProvider.js +85 -0
  309. package/dist/components/UI/DataTable/grid/GridProvider.js.map +1 -0
  310. package/dist/components/UI/DataTable/grid/fill/fillStrategies.d.ts +19 -0
  311. package/dist/components/UI/DataTable/grid/fill/fillStrategies.js +73 -0
  312. package/dist/components/UI/DataTable/grid/fill/fillStrategies.js.map +1 -0
  313. package/dist/components/UI/DataTable/grid/gridStore.d.ts +69 -0
  314. package/dist/components/UI/DataTable/grid/gridStore.js +219 -0
  315. package/dist/components/UI/DataTable/grid/gridStore.js.map +1 -0
  316. package/dist/components/UI/DataTable/grid/gridTypes.d.ts +47 -0
  317. package/dist/components/UI/DataTable/grid/gridTypes.js +27 -0
  318. package/dist/components/UI/DataTable/grid/gridTypes.js.map +1 -0
  319. package/dist/components/UI/DataTable/grid/useGridFillApply.d.ts +18 -0
  320. package/dist/components/UI/DataTable/grid/useGridFillApply.js +74 -0
  321. package/dist/components/UI/DataTable/grid/useGridFillApply.js.map +1 -0
  322. package/dist/components/UI/DataTable/grid/useGridInstance.d.ts +27 -0
  323. package/dist/components/UI/DataTable/grid/useGridInstance.js +41 -0
  324. package/dist/components/UI/DataTable/grid/useGridInstance.js.map +1 -0
  325. package/dist/components/UI/DataTable/grid/useGridKeyboard.d.ts +17 -0
  326. package/dist/components/UI/DataTable/grid/useGridKeyboard.js +114 -0
  327. package/dist/components/UI/DataTable/grid/useGridKeyboard.js.map +1 -0
  328. package/dist/components/UI/DataTable/index.d.ts +19 -0
  329. package/dist/components/UI/DataTable/index.js +34 -0
  330. package/dist/components/UI/DataTable/index.js.map +1 -0
  331. package/dist/components/UI/DataTable/types.d.ts +513 -0
  332. package/dist/components/UI/DataTable/types.js +13 -0
  333. package/dist/components/UI/DataTable/types.js.map +1 -0
  334. package/dist/components/UI/DataTable/useCellEditingState.d.ts +20 -0
  335. package/dist/components/UI/DataTable/useCellEditingState.js +33 -0
  336. package/dist/components/UI/DataTable/useCellEditingState.js.map +1 -0
  337. package/dist/components/UI/DataTable/useColumnOrder.d.ts +25 -0
  338. package/dist/components/UI/DataTable/useColumnOrder.js +94 -0
  339. package/dist/components/UI/DataTable/useColumnOrder.js.map +1 -0
  340. package/dist/components/UI/DataTable/useColumnSizing.d.ts +9 -0
  341. package/dist/components/UI/DataTable/useColumnSizing.js +21 -0
  342. package/dist/components/UI/DataTable/useColumnSizing.js.map +1 -0
  343. package/dist/components/UI/DataTable/useColumnVisibility.d.ts +19 -0
  344. package/dist/components/UI/DataTable/useColumnVisibility.js +47 -0
  345. package/dist/components/UI/DataTable/useColumnVisibility.js.map +1 -0
  346. package/dist/components/UI/DataTable/useDataTableCommitQueue.d.ts +69 -0
  347. package/dist/components/UI/DataTable/useDataTableCommitQueue.js +220 -0
  348. package/dist/components/UI/DataTable/useDataTableCommitQueue.js.map +1 -0
  349. package/dist/components/UI/DataTable/useDataTableEditBuffer.d.ts +36 -0
  350. package/dist/components/UI/DataTable/useDataTableEditBuffer.js +29 -0
  351. package/dist/components/UI/DataTable/useDataTableEditBuffer.js.map +1 -0
  352. package/dist/components/UI/DataTable/useDataTableInstance.d.ts +65 -0
  353. package/dist/components/UI/DataTable/useDataTableInstance.js +306 -0
  354. package/dist/components/UI/DataTable/useDataTableInstance.js.map +1 -0
  355. package/dist/components/UI/DataTable/useDataTableSource.d.ts +85 -0
  356. package/dist/components/UI/DataTable/useDataTableSource.js +199 -0
  357. package/dist/components/UI/DataTable/useDataTableSource.js.map +1 -0
  358. package/dist/components/UI/DataTable/useFlipRows.d.ts +22 -0
  359. package/dist/components/UI/DataTable/useFlipRows.js +90 -0
  360. package/dist/components/UI/DataTable/useFlipRows.js.map +1 -0
  361. package/dist/components/UI/ErrorBoundary.d.ts +20 -0
  362. package/dist/components/UI/ErrorBoundary.js +36 -0
  363. package/dist/components/UI/ErrorBoundary.js.map +1 -0
  364. package/dist/components/UI/GeneratedByAI.d.ts +2 -0
  365. package/dist/components/UI/GeneratedByAI.js +12 -0
  366. package/dist/components/UI/GeneratedByAI.js.map +1 -0
  367. package/dist/components/UI/HorizontalScrollArea.d.ts +22 -0
  368. package/dist/components/UI/HorizontalScrollArea.js +73 -0
  369. package/dist/components/UI/HorizontalScrollArea.js.map +1 -0
  370. package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.d.ts +15 -0
  371. package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.js +144 -0
  372. package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.js.map +1 -0
  373. package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.d.ts +29 -0
  374. package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.js +84 -0
  375. package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.js.map +1 -0
  376. package/dist/components/UI/ImageAnnotator/AnnotationEditor.d.ts +12 -0
  377. package/dist/components/UI/ImageAnnotator/AnnotationEditor.js +267 -0
  378. package/dist/components/UI/ImageAnnotator/AnnotationEditor.js.map +1 -0
  379. package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.d.ts +13 -0
  380. package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.js +58 -0
  381. package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.js.map +1 -0
  382. package/dist/components/UI/ImageAnnotator/annotationStyle.d.ts +28 -0
  383. package/dist/components/UI/ImageAnnotator/annotationStyle.js +56 -0
  384. package/dist/components/UI/ImageAnnotator/annotationStyle.js.map +1 -0
  385. package/dist/components/UI/ImageAnnotator/canvas/AnnotationElementNode.d.ts +17 -0
  386. package/dist/components/UI/ImageAnnotator/canvas/AnnotationElementNode.js +329 -0
  387. package/dist/components/UI/ImageAnnotator/canvas/AnnotationElementNode.js.map +1 -0
  388. package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.d.ts +10 -0
  389. package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.js +125 -0
  390. package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.js.map +1 -0
  391. package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.d.ts +19 -0
  392. package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.js +216 -0
  393. package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.js.map +1 -0
  394. package/dist/components/UI/ImageAnnotator/components/AnnotationActionBar.d.ts +15 -0
  395. package/dist/components/UI/ImageAnnotator/components/AnnotationActionBar.js +77 -0
  396. package/dist/components/UI/ImageAnnotator/components/AnnotationActionBar.js.map +1 -0
  397. package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.d.ts +11 -0
  398. package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.js +69 -0
  399. package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.js.map +1 -0
  400. package/dist/components/UI/ImageAnnotator/components/AnnotationElementActions.d.ts +8 -0
  401. package/dist/components/UI/ImageAnnotator/components/AnnotationElementActions.js +58 -0
  402. package/dist/components/UI/ImageAnnotator/components/AnnotationElementActions.js.map +1 -0
  403. package/dist/components/UI/ImageAnnotator/components/AnnotationStyleBar.d.ts +13 -0
  404. package/dist/components/UI/ImageAnnotator/components/AnnotationStyleBar.js +183 -0
  405. package/dist/components/UI/ImageAnnotator/components/AnnotationStyleBar.js.map +1 -0
  406. package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.d.ts +15 -0
  407. package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.js +78 -0
  408. package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.js.map +1 -0
  409. package/dist/components/UI/ImageAnnotator/components/AnnotationToolButton.d.ts +15 -0
  410. package/dist/components/UI/ImageAnnotator/components/AnnotationToolButton.js +46 -0
  411. package/dist/components/UI/ImageAnnotator/components/AnnotationToolButton.js.map +1 -0
  412. package/dist/components/UI/ImageAnnotator/components/AnnotationToolbar.d.ts +10 -0
  413. package/dist/components/UI/ImageAnnotator/components/AnnotationToolbar.js +80 -0
  414. package/dist/components/UI/ImageAnnotator/components/AnnotationToolbar.js.map +1 -0
  415. package/dist/components/UI/ImageAnnotator/helpers/annotationCanvas.d.ts +21 -0
  416. package/dist/components/UI/ImageAnnotator/helpers/annotationCanvas.js +45 -0
  417. package/dist/components/UI/ImageAnnotator/helpers/annotationCanvas.js.map +1 -0
  418. package/dist/components/UI/ImageAnnotator/helpers/annotationElements.d.ts +15 -0
  419. package/dist/components/UI/ImageAnnotator/helpers/annotationElements.js +165 -0
  420. package/dist/components/UI/ImageAnnotator/helpers/annotationElements.js.map +1 -0
  421. package/dist/components/UI/ImageAnnotator/helpers/annotationExport.d.ts +15 -0
  422. package/dist/components/UI/ImageAnnotator/helpers/annotationExport.js +23 -0
  423. package/dist/components/UI/ImageAnnotator/helpers/annotationExport.js.map +1 -0
  424. package/dist/components/UI/ImageAnnotator/helpers/konvaFullBuild.d.ts +8 -0
  425. package/dist/components/UI/ImageAnnotator/helpers/konvaFullBuild.js +10 -0
  426. package/dist/components/UI/ImageAnnotator/helpers/konvaFullBuild.js.map +1 -0
  427. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationBaseImage.d.ts +9 -0
  428. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationBaseImage.js +56 -0
  429. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationBaseImage.js.map +1 -0
  430. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.d.ts +27 -0
  431. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.js +149 -0
  432. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.js.map +1 -0
  433. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationShortcuts.d.ts +14 -0
  434. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationShortcuts.js +79 -0
  435. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationShortcuts.js.map +1 -0
  436. package/dist/components/UI/ImageAnnotator/hooks/useCoarsePointer.d.ts +5 -0
  437. package/dist/components/UI/ImageAnnotator/hooks/useCoarsePointer.js +23 -0
  438. package/dist/components/UI/ImageAnnotator/hooks/useCoarsePointer.js.map +1 -0
  439. package/dist/components/UI/ImageAnnotator/hooks/useHtmlImage.d.ts +2 -0
  440. package/dist/components/UI/ImageAnnotator/hooks/useHtmlImage.js +27 -0
  441. package/dist/components/UI/ImageAnnotator/hooks/useHtmlImage.js.map +1 -0
  442. package/dist/components/UI/ImageAnnotator/interfaces/annotationDocument.d.ts +89 -0
  443. package/dist/components/UI/ImageAnnotator/interfaces/annotationDocument.js +13 -0
  444. package/dist/components/UI/ImageAnnotator/interfaces/annotationDocument.js.map +1 -0
  445. package/dist/components/UI/ImagePlaceholder.d.ts +24 -0
  446. package/dist/components/UI/ImagePlaceholder.js +26 -0
  447. package/dist/components/UI/ImagePlaceholder.js.map +1 -0
  448. package/dist/components/UI/ImageZoomOverlay.d.ts +7 -0
  449. package/dist/components/UI/ImageZoomOverlay.js +49 -0
  450. package/dist/components/UI/ImageZoomOverlay.js.map +1 -0
  451. package/dist/components/UI/InformationCard.d.ts +26 -0
  452. package/dist/components/UI/InformationCard.js +89 -0
  453. package/dist/components/UI/InformationCard.js.map +1 -0
  454. package/dist/components/UI/Kanban/KanbanBoard.d.ts +26 -0
  455. package/dist/components/UI/Kanban/KanbanBoard.js +89 -0
  456. package/dist/components/UI/Kanban/KanbanBoard.js.map +1 -0
  457. package/dist/components/UI/Kanban/KanbanCard.d.ts +22 -0
  458. package/dist/components/UI/Kanban/KanbanCard.js +47 -0
  459. package/dist/components/UI/Kanban/KanbanCard.js.map +1 -0
  460. package/dist/components/UI/Kanban/KanbanLane.d.ts +37 -0
  461. package/dist/components/UI/Kanban/KanbanLane.js +77 -0
  462. package/dist/components/UI/Kanban/KanbanLane.js.map +1 -0
  463. package/dist/components/UI/Kanban/index.d.ts +4 -0
  464. package/dist/components/UI/Kanban/index.js +11 -0
  465. package/dist/components/UI/Kanban/index.js.map +1 -0
  466. package/dist/components/UI/Kanban/kanbanBoardContext.d.ts +13 -0
  467. package/dist/components/UI/Kanban/kanbanBoardContext.js +13 -0
  468. package/dist/components/UI/Kanban/kanbanBoardContext.js.map +1 -0
  469. package/dist/components/UI/LazyMarkdown.d.ts +5 -0
  470. package/dist/components/UI/LazyMarkdown.js +8 -0
  471. package/dist/components/UI/LazyMarkdown.js.map +1 -0
  472. package/dist/components/UI/LoadingPage.d.ts +2 -0
  473. package/dist/components/UI/LoadingPage.js +13 -0
  474. package/dist/components/UI/LoadingPage.js.map +1 -0
  475. package/dist/components/UI/LoadingSpinner.d.ts +14 -0
  476. package/dist/components/UI/LoadingSpinner.js +32 -0
  477. package/dist/components/UI/LoadingSpinner.js.map +1 -0
  478. package/dist/components/UI/MaterialSymbol/consts.d.ts +2 -0
  479. package/dist/components/UI/MaterialSymbol/consts.js +3472 -0
  480. package/dist/components/UI/MaterialSymbol/consts.js.map +1 -0
  481. package/dist/components/UI/MaterialSymbol/index.d.ts +18 -0
  482. package/dist/components/UI/MaterialSymbol/index.js +46 -0
  483. package/dist/components/UI/MaterialSymbol/index.js.map +1 -0
  484. package/dist/components/UI/MaterialSymbol/types.d.ts +37 -0
  485. package/dist/components/UI/MaterialSymbol/types.js +2 -0
  486. package/dist/components/UI/MaterialSymbol/types.js.map +1 -0
  487. package/dist/components/UI/NoDataFound/index.d.ts +31 -0
  488. package/dist/components/UI/NoDataFound/index.js +215 -0
  489. package/dist/components/UI/NoDataFound/index.js.map +1 -0
  490. package/dist/components/UI/NoDataFound/noDataFoundPresets.d.ts +31 -0
  491. package/dist/components/UI/NoDataFound/noDataFoundPresets.js +99 -0
  492. package/dist/components/UI/NoDataFound/noDataFoundPresets.js.map +1 -0
  493. package/dist/components/UI/ReferenceCard.d.ts +16 -0
  494. package/dist/components/UI/ReferenceCard.js +59 -0
  495. package/dist/components/UI/ReferenceCard.js.map +1 -0
  496. package/dist/components/UI/RichTextContent.d.ts +14 -0
  497. package/dist/components/UI/RichTextContent.js +28 -0
  498. package/dist/components/UI/RichTextContent.js.map +1 -0
  499. package/dist/components/UI/SkeletonLoading.d.ts +9 -0
  500. package/dist/components/UI/SkeletonLoading.js +20 -0
  501. package/dist/components/UI/SkeletonLoading.js.map +1 -0
  502. package/dist/components/UI/ThreeDots.d.ts +11 -0
  503. package/dist/components/UI/ThreeDots.js +18 -0
  504. package/dist/components/UI/ThreeDots.js.map +1 -0
  505. package/dist/components/UI/Toast.d.ts +16 -0
  506. package/dist/components/UI/Toast.js +81 -0
  507. package/dist/components/UI/Toast.js.map +1 -0
  508. package/dist/components/UI/ToastHost.d.ts +2 -0
  509. package/dist/components/UI/ToastHost.js +25 -0
  510. package/dist/components/UI/ToastHost.js.map +1 -0
  511. package/dist/components/UI/TypingEffect.d.ts +10 -0
  512. package/dist/components/UI/TypingEffect.js +31 -0
  513. package/dist/components/UI/TypingEffect.js.map +1 -0
  514. package/dist/components/UI/UmodeLogo.d.ts +10 -0
  515. package/dist/components/UI/UmodeLogo.js +128 -0
  516. package/dist/components/UI/UmodeLogo.js.map +1 -0
  517. package/dist/components/UI/UsersAvatar.d.ts +7 -0
  518. package/dist/components/UI/UsersAvatar.js +29 -0
  519. package/dist/components/UI/UsersAvatar.js.map +1 -0
  520. package/dist/components/UI/access/UiAccessContext.d.ts +21 -0
  521. package/dist/components/UI/access/UiAccessContext.js +14 -0
  522. package/dist/components/UI/access/UiAccessContext.js.map +1 -0
  523. package/dist/components/UI/cells/ArrayCell.d.ts +5 -0
  524. package/dist/components/UI/cells/ArrayCell.js +25 -0
  525. package/dist/components/UI/cells/ArrayCell.js.map +1 -0
  526. package/dist/components/UI/cells/BooleanCell.d.ts +5 -0
  527. package/dist/components/UI/cells/BooleanCell.js +22 -0
  528. package/dist/components/UI/cells/BooleanCell.js.map +1 -0
  529. package/dist/components/UI/cells/DetailsTableCell.d.ts +7 -0
  530. package/dist/components/UI/cells/DetailsTableCell.js +30 -0
  531. package/dist/components/UI/cells/DetailsTableCell.js.map +1 -0
  532. package/dist/components/UI/cells/ProductImageCell.d.ts +5 -0
  533. package/dist/components/UI/cells/ProductImageCell.js +21 -0
  534. package/dist/components/UI/cells/ProductImageCell.js.map +1 -0
  535. package/dist/components/UI/cells/UrlLinkCell.d.ts +6 -0
  536. package/dist/components/UI/cells/UrlLinkCell.js +19 -0
  537. package/dist/components/UI/cells/UrlLinkCell.js.map +1 -0
  538. package/dist/components/Upload/SimpleUploaderComponent.d.ts +9 -0
  539. package/dist/components/Upload/SimpleUploaderComponent.js +72 -0
  540. package/dist/components/Upload/SimpleUploaderComponent.js.map +1 -0
  541. package/dist/components/Upload/UploaderComponent.d.ts +29 -0
  542. package/dist/components/Upload/UploaderComponent.js +241 -0
  543. package/dist/components/Upload/UploaderComponent.js.map +1 -0
  544. package/dist/components/Upload/XlsExportButton.d.ts +13 -0
  545. package/dist/components/Upload/XlsExportButton.js +47 -0
  546. package/dist/components/Upload/XlsExportButton.js.map +1 -0
  547. package/dist/helpers/composeRefs.d.ts +7 -0
  548. package/dist/helpers/composeRefs.js +14 -0
  549. package/dist/helpers/composeRefs.js.map +1 -0
  550. package/dist/helpers/dateHelpers.d.ts +47 -0
  551. package/dist/helpers/dateHelpers.js +69 -0
  552. package/dist/helpers/dateHelpers.js.map +1 -0
  553. package/dist/helpers/fileAttachments.d.ts +3 -0
  554. package/dist/helpers/fileAttachments.js +17 -0
  555. package/dist/helpers/fileAttachments.js.map +1 -0
  556. package/dist/helpers/formatHelpers.d.ts +36 -0
  557. package/dist/helpers/formatHelpers.js +65 -0
  558. package/dist/helpers/formatHelpers.js.map +1 -0
  559. package/dist/helpers/imageCompression.d.ts +5 -0
  560. package/dist/helpers/imageCompression.js +49 -0
  561. package/dist/helpers/imageCompression.js.map +1 -0
  562. package/dist/helpers/imageFile.d.ts +16 -0
  563. package/dist/helpers/imageFile.js +59 -0
  564. package/dist/helpers/imageFile.js.map +1 -0
  565. package/dist/helpers/layeredSurfaces.d.ts +10 -0
  566. package/dist/helpers/layeredSurfaces.js +14 -0
  567. package/dist/helpers/layeredSurfaces.js.map +1 -0
  568. package/dist/helpers/mathHelpers.d.ts +14 -0
  569. package/dist/helpers/mathHelpers.js +13 -0
  570. package/dist/helpers/mathHelpers.js.map +1 -0
  571. package/dist/helpers/mergeClasses.d.ts +6 -0
  572. package/dist/helpers/mergeClasses.js +12 -0
  573. package/dist/helpers/mergeClasses.js.map +1 -0
  574. package/dist/helpers/moduleLoadErrorHelpers.d.ts +1 -0
  575. package/dist/helpers/moduleLoadErrorHelpers.js +25 -0
  576. package/dist/helpers/moduleLoadErrorHelpers.js.map +1 -0
  577. package/dist/helpers/objectHelpers.d.ts +13 -0
  578. package/dist/helpers/objectHelpers.js +60 -0
  579. package/dist/helpers/objectHelpers.js.map +1 -0
  580. package/dist/helpers/richText.d.ts +37 -0
  581. package/dist/helpers/richText.js +171 -0
  582. package/dist/helpers/richText.js.map +1 -0
  583. package/dist/helpers/stringHelpers.d.ts +45 -0
  584. package/dist/helpers/stringHelpers.js +57 -0
  585. package/dist/helpers/stringHelpers.js.map +1 -0
  586. package/dist/helpers/themeTokens.d.ts +28 -0
  587. package/dist/helpers/themeTokens.js +33 -0
  588. package/dist/helpers/themeTokens.js.map +1 -0
  589. package/dist/helpers/uiErrorPresenter.d.ts +21 -0
  590. package/dist/helpers/uiErrorPresenter.js +10 -0
  591. package/dist/helpers/uiErrorPresenter.js.map +1 -0
  592. package/dist/helpers/uiLogger.d.ts +8 -0
  593. package/dist/helpers/uiLogger.js +16 -0
  594. package/dist/helpers/uiLogger.js.map +1 -0
  595. package/dist/helpers/uiPreferences.d.ts +13 -0
  596. package/dist/helpers/uiPreferences.js +35 -0
  597. package/dist/helpers/uiPreferences.js.map +1 -0
  598. package/dist/helpers/urlParamSync.d.ts +19 -0
  599. package/dist/helpers/urlParamSync.js +54 -0
  600. package/dist/helpers/urlParamSync.js.map +1 -0
  601. package/dist/helpers/utilityHelpers.d.ts +81 -0
  602. package/dist/helpers/utilityHelpers.js +133 -0
  603. package/dist/helpers/utilityHelpers.js.map +1 -0
  604. package/dist/helpers/validationHelpers.d.ts +36 -0
  605. package/dist/helpers/validationHelpers.js +44 -0
  606. package/dist/helpers/validationHelpers.js.map +1 -0
  607. package/dist/hooks/useAnchoredFloating.d.ts +22 -0
  608. package/dist/hooks/useAnchoredFloating.js +59 -0
  609. package/dist/hooks/useAnchoredFloating.js.map +1 -0
  610. package/dist/hooks/useBreakpoint.d.ts +16 -0
  611. package/dist/hooks/useBreakpoint.js +47 -0
  612. package/dist/hooks/useBreakpoint.js.map +1 -0
  613. package/dist/hooks/useDebounce.d.ts +8 -0
  614. package/dist/hooks/useDebounce.js +36 -0
  615. package/dist/hooks/useDebounce.js.map +1 -0
  616. package/dist/hooks/useFileAttachments.d.ts +43 -0
  617. package/dist/hooks/useFileAttachments.js +158 -0
  618. package/dist/hooks/useFileAttachments.js.map +1 -0
  619. package/dist/hooks/useHoverCapable.d.ts +6 -0
  620. package/dist/hooks/useHoverCapable.js +28 -0
  621. package/dist/hooks/useHoverCapable.js.map +1 -0
  622. package/dist/hooks/useInlineEditor.d.ts +5 -0
  623. package/dist/hooks/useInlineEditor.js +41 -0
  624. package/dist/hooks/useInlineEditor.js.map +1 -0
  625. package/dist/hooks/useMobile.d.ts +7 -0
  626. package/dist/hooks/useMobile.js +8 -0
  627. package/dist/hooks/useMobile.js.map +1 -0
  628. package/dist/hooks/useNotification.d.ts +38 -0
  629. package/dist/hooks/useNotification.js +39 -0
  630. package/dist/hooks/useNotification.js.map +1 -0
  631. package/dist/hooks/useResolvedTheme.d.ts +7 -0
  632. package/dist/hooks/useResolvedTheme.js +15 -0
  633. package/dist/hooks/useResolvedTheme.js.map +1 -0
  634. package/dist/hooks/useVoiceTranscription.d.ts +25 -0
  635. package/dist/hooks/useVoiceTranscription.js +106 -0
  636. package/dist/hooks/useVoiceTranscription.js.map +1 -0
  637. package/dist/index.d.ts +50 -0
  638. package/dist/index.js +125 -0
  639. package/dist/index.js.map +1 -0
  640. package/dist/interfaces/IFileAttachment.d.ts +18 -0
  641. package/dist/interfaces/IFileAttachment.js +2 -0
  642. package/dist/interfaces/IFileAttachment.js.map +1 -0
  643. package/dist/interfaces/IFilterOption.d.ts +10 -0
  644. package/dist/interfaces/IFilterOption.js +2 -0
  645. package/dist/interfaces/IFilterOption.js.map +1 -0
  646. package/dist/locales/en/ui.json.d.ts +470 -0
  647. package/dist/locales/en/ui.json.js +99 -0
  648. package/dist/locales/en/ui.json.js.map +1 -0
  649. package/dist/locales/index.d.ts +938 -0
  650. package/dist/locales/index.js +7 -0
  651. package/dist/locales/index.js.map +1 -0
  652. package/dist/locales/pt/ui.json.d.ts +470 -0
  653. package/dist/locales/pt/ui.json.js +99 -0
  654. package/dist/locales/pt/ui.json.js.map +1 -0
  655. package/dist/motion/index.d.ts +2 -0
  656. package/dist/motion/index.js +17 -0
  657. package/dist/motion/index.js.map +1 -0
  658. package/dist/motion/motionPresets.d.ts +44 -0
  659. package/dist/motion/motionPresets.js +67 -0
  660. package/dist/motion/motionPresets.js.map +1 -0
  661. package/dist/motion/motionTokens.d.ts +40 -0
  662. package/dist/motion/motionTokens.js +29 -0
  663. package/dist/motion/motionTokens.js.map +1 -0
  664. package/package.json +174 -0
  665. package/src/assets/styles/theme.css +381 -0
  666. package/tailwind-plugins/glass.js +167 -0
  667. package/tailwind.preset.js +367 -0
@@ -0,0 +1,20 @@
1
+ import { Row } from '@tanstack/react-table';
2
+ import { IDataTableColumnConfig, IDataTableRow } from './types';
3
+ interface IDataTableAutoCardProps<T extends IDataTableRow> {
4
+ row: Row<T>;
5
+ columnConfigById: Map<string, IDataTableColumnConfig<T>>;
6
+ }
7
+ /**
8
+ * A table row rendered as a stacked label/value card, for viewports too narrow to
9
+ * read a real table.
10
+ *
11
+ * It is deliberately derived from the SAME column definitions the table uses, so
12
+ * a screen gets a usable narrow layout without authoring a second renderer and
13
+ * without the two drifting apart. Column visibility, order and the cell renderers
14
+ * are all inherited; only the geometry changes.
15
+ *
16
+ * Tables that ship a real `config.renderCard` keep using it: this is the fallback
17
+ * for the ones that do not.
18
+ */
19
+ declare const DataTableAutoCard: <T extends IDataTableRow>({ row, columnConfigById }: IDataTableAutoCardProps<T>) => import("react").JSX.Element;
20
+ export default DataTableAutoCard;
@@ -0,0 +1,39 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import classNames from "classnames";
3
+ import { flexRender } from "@tanstack/react-table";
4
+ import { isBadgeColumnType } from "./dataTableColumnWidths.js";
5
+ const DataTableAutoCard = ({ row, columnConfigById }) => {
6
+ const cells = row.getVisibleCells();
7
+ const actionCells = cells.filter((cell) => columnConfigById.get(cell.column.id)?.type === "actions");
8
+ const contentCells = cells.filter((cell) => columnConfigById.get(cell.column.id)?.type !== "actions");
9
+ const [titleCell, ...fieldCells] = contentCells;
10
+ const resolveHeader = (columnId) => {
11
+ const header = columnConfigById.get(columnId)?.header;
12
+ return typeof header === "string" ? header : "";
13
+ };
14
+ return /* @__PURE__ */ jsxs("article", { className: "flex w-full flex-col gap-2 rounded-xl border border-border bg-surface p-3 shadow-sm", children: [
15
+ titleCell && /* @__PURE__ */ jsx("div", { className: "min-w-0 break-words text-sm font-semibold text-foreground", children: flexRender(titleCell.column.columnDef.cell, titleCell.getContext()) }),
16
+ fieldCells.length > 0 && /* @__PURE__ */ jsx("dl", { className: "flex flex-col gap-1.5", children: fieldCells.map((cell) => {
17
+ const label = resolveHeader(cell.column.id);
18
+ const isBadge = isBadgeColumnType(columnConfigById.get(cell.column.id)?.type);
19
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5", children: [
20
+ /* @__PURE__ */ jsx("dt", { className: "shrink-0 text-xxs uppercase tracking-wide text-foreground-faint", children: label }),
21
+ /* @__PURE__ */ jsx(
22
+ "dd",
23
+ {
24
+ className: classNames(
25
+ "ml-auto min-w-0 break-words text-right text-sm text-foreground-muted",
26
+ isBadge && "shrink-0"
27
+ ),
28
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
29
+ }
30
+ )
31
+ ] }, cell.id);
32
+ }) }),
33
+ actionCells.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-end gap-2 border-t border-border-subtle pt-2", children: actionCells.map((cell) => /* @__PURE__ */ jsx("div", { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) })
34
+ ] });
35
+ };
36
+ export {
37
+ DataTableAutoCard as default
38
+ };
39
+ //# sourceMappingURL=DataTableAutoCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableAutoCard.js","sources":["../../../../src/components/UI/DataTable/DataTableAutoCard.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport { flexRender, type Row } from '@tanstack/react-table';\n\nimport { isBadgeColumnType } from './dataTableClasses';\nimport type { IDataTableColumnConfig, IDataTableRow } from './types';\n\ninterface IDataTableAutoCardProps<T extends IDataTableRow> {\n row: Row<T>;\n columnConfigById: Map<string, IDataTableColumnConfig<T>>;\n}\n\n/**\n * A table row rendered as a stacked label/value card, for viewports too narrow to\n * read a real table.\n *\n * It is deliberately derived from the SAME column definitions the table uses, so\n * a screen gets a usable narrow layout without authoring a second renderer and\n * without the two drifting apart. Column visibility, order and the cell renderers\n * are all inherited; only the geometry changes.\n *\n * Tables that ship a real `config.renderCard` keep using it: this is the fallback\n * for the ones that do not.\n */\nconst DataTableAutoCard = <T extends IDataTableRow>({ row, columnConfigById }: IDataTableAutoCardProps<T>) => {\n const cells = row.getVisibleCells();\n\n const actionCells = cells.filter((cell) => columnConfigById.get(cell.column.id)?.type === 'actions');\n const contentCells = cells.filter((cell) => columnConfigById.get(cell.column.id)?.type !== 'actions');\n\n // The first column is the row's identity everywhere else in the table (it is the\n // frozen one), so it reads as the card title instead of another labelled field.\n const [titleCell, ...fieldCells] = contentCells;\n\n const resolveHeader = (columnId: string): string => {\n const header = columnConfigById.get(columnId)?.header;\n return typeof header === 'string' ? header : '';\n };\n\n return (\n <article className=\"flex w-full flex-col gap-2 rounded-xl border border-border bg-surface p-3 shadow-sm\">\n {titleCell && (\n <div className=\"min-w-0 break-words text-sm font-semibold text-foreground\">\n {flexRender(titleCell.column.columnDef.cell, titleCell.getContext())}\n </div>\n )}\n\n {fieldCells.length > 0 && (\n <dl className=\"flex flex-col gap-1.5\">\n {fieldCells.map((cell) => {\n const label = resolveHeader(cell.column.id);\n const isBadge = isBadgeColumnType(columnConfigById.get(cell.column.id)?.type);\n\n return (\n <div key={cell.id} className=\"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5\">\n <dt className=\"shrink-0 text-xxs uppercase tracking-wide text-foreground-faint\">{label}</dt>\n <dd\n className={classNames(\n 'ml-auto min-w-0 break-words text-right text-sm text-foreground-muted',\n isBadge && 'shrink-0',\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </dd>\n </div>\n );\n })}\n </dl>\n )}\n\n {actionCells.length > 0 && (\n <div className=\"flex flex-wrap items-center justify-end gap-2 border-t border-border-subtle pt-2\">\n {actionCells.map((cell) => (\n <div key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</div>\n ))}\n </div>\n )}\n </article>\n );\n};\n\nexport default DataTableAutoCard;\n"],"names":[],"mappings":";;;;AAwBA,MAAM,oBAAoB,CAA0B,EAAE,KAAK,uBAAmD;AAC5G,QAAM,QAAQ,IAAI,gBAAA;AAElB,QAAM,cAAc,MAAM,OAAO,CAAC,SAAS,iBAAiB,IAAI,KAAK,OAAO,EAAE,GAAG,SAAS,SAAS;AACnG,QAAM,eAAe,MAAM,OAAO,CAAC,SAAS,iBAAiB,IAAI,KAAK,OAAO,EAAE,GAAG,SAAS,SAAS;AAIpG,QAAM,CAAC,WAAW,GAAG,UAAU,IAAI;AAEnC,QAAM,gBAAgB,CAAC,aAA6B;AAClD,UAAM,SAAS,iBAAiB,IAAI,QAAQ,GAAG;AAC/C,WAAO,OAAO,WAAW,WAAW,SAAS;AAAA,EAC/C;AAEA,SACE,qBAAC,WAAA,EAAQ,WAAU,uFAChB,UAAA;AAAA,IAAA,aACC,oBAAC,OAAA,EAAI,WAAU,6DACZ,UAAA,WAAW,UAAU,OAAO,UAAU,MAAM,UAAU,WAAA,CAAY,GACrE;AAAA,IAGD,WAAW,SAAS,KACnB,oBAAC,MAAA,EAAG,WAAU,yBACX,UAAA,WAAW,IAAI,CAAC,SAAS;AACxB,YAAM,QAAQ,cAAc,KAAK,OAAO,EAAE;AAC1C,YAAM,UAAU,kBAAkB,iBAAiB,IAAI,KAAK,OAAO,EAAE,GAAG,IAAI;AAE5E,aACE,qBAAC,OAAA,EAAkB,WAAU,mEAC3B,UAAA;AAAA,QAAA,oBAAC,MAAA,EAAG,WAAU,mEAAmE,UAAA,OAAM;AAAA,QACvF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,WAAW;AAAA,YAAA;AAAA,YAGZ,qBAAW,KAAK,OAAO,UAAU,MAAM,KAAK,YAAY;AAAA,UAAA;AAAA,QAAA;AAAA,MAC3D,EAAA,GATQ,KAAK,EAUf;AAAA,IAEJ,CAAC,EAAA,CACH;AAAA,IAGD,YAAY,SAAS,KACpB,oBAAC,OAAA,EAAI,WAAU,oFACZ,UAAA,YAAY,IAAI,CAAC,SAChB,oBAAC,SAAmB,UAAA,WAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAA,CAAY,EAAA,GAAlE,KAAK,EAA+D,CAC/E,EAAA,CACH;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -0,0 +1,29 @@
1
+ import { Row } from '@tanstack/react-table';
2
+ import { IDataTableDetailColumnsState } from './DataTableDetailTable';
3
+ import { IDataTableColumnConfig, IDataTableConfig, IDataTableRow } from './types';
4
+ interface IDataTableBodyProps<T extends IDataTableRow, C extends IDataTableRow = IDataTableRow> {
5
+ config: IDataTableConfig<T, C>;
6
+ visibleRows: Array<Row<T>>;
7
+ columnConfigById: Map<string, IDataTableColumnConfig<T>>;
8
+ /** Row-derived widths for actions/badge columns; other columns fall back to the seed. */
9
+ columnContentWidths: Map<string, number>;
10
+ registerRow: (id: string) => (element: HTMLElement | null) => void;
11
+ onCollapseStart: (childRowIds: Array<string>) => void;
12
+ detailColumnsState?: IDataTableDetailColumnsState;
13
+ detailSlotWidth?: number;
14
+ showActionsShadow?: boolean;
15
+ /** Denser cell padding for embedded/editor (fit) layouts. */
16
+ dense?: boolean;
17
+ /** Roomier cell padding, for tables that need to read bigger. */
18
+ spacious?: boolean;
19
+ /** Whether editable columns show the drag-to-fill handle. */
20
+ fillEnabled?: boolean;
21
+ /** While true the cells own the pointer and the row click is suspended. */
22
+ editMode?: boolean;
23
+ /** Full-width band rendered as the first body row, spanning every column. */
24
+ bodyTopRow?: React.ReactNode;
25
+ /** Number of visible leaf columns the `bodyTopRow` cell must span. */
26
+ bodyTopRowColSpan?: number;
27
+ }
28
+ declare const DataTableBody: <T extends IDataTableRow, C extends IDataTableRow = IDataTableRow>({ config, visibleRows, columnConfigById, columnContentWidths, registerRow, onCollapseStart, detailColumnsState, detailSlotWidth, showActionsShadow, dense, spacious, fillEnabled, editMode, bodyTopRow, bodyTopRowColSpan, }: IDataTableBodyProps<T, C>) => import("react").JSX.Element;
29
+ export default DataTableBody;
@@ -0,0 +1,243 @@
1
+ import { jsxs, jsx, Fragment as Fragment$1 } from "react/jsx-runtime";
2
+ import { Fragment } from "react";
3
+ import classNames from "classnames";
4
+ import ControlledButton from "../../Form/ControlledButton.js";
5
+ import LoadingSpinner from "../LoadingSpinner.js";
6
+ import { MaterialSymbol } from "../MaterialSymbol/index.js";
7
+ import { flexRender } from "@tanstack/react-table";
8
+ import DataTable from "./DataTable.js";
9
+ import DataTableBodyCell from "./DataTableBodyCell.js";
10
+ import { alignClass, FROZEN_LEFT_COLUMN_SHADOW, FROZEN_COLUMN_SHADOW } from "./dataTableClasses.js";
11
+ import { resolveColumnMinWidthPx } from "./dataTableColumnWidths.js";
12
+ import DataTableDetailPanel from "./DataTableDetailPanel.js";
13
+ import { dataTableOpacityTransitionClass } from "./dataTableMotion.js";
14
+ import { isDataTablePanelExpansion, isDataTableSubRowsExpansion, isDataTableDetailTableExpansion, isDataTableTableExpansion } from "./types.js";
15
+ const INDENT_PER_LEVEL_PX = 24;
16
+ const DataTableBody = ({
17
+ config,
18
+ visibleRows,
19
+ columnConfigById,
20
+ columnContentWidths,
21
+ registerRow,
22
+ onCollapseStart,
23
+ detailColumnsState,
24
+ detailSlotWidth,
25
+ showActionsShadow = false,
26
+ dense = false,
27
+ spacious = false,
28
+ fillEnabled = false,
29
+ editMode = false,
30
+ bodyTopRow,
31
+ bodyTopRowColSpan
32
+ }) => {
33
+ const expansion = config.expansion;
34
+ const panelExpansionConfig = expansion && isDataTablePanelExpansion(expansion) ? expansion : null;
35
+ const subRowsExpansionConfig = expansion && isDataTableSubRowsExpansion(expansion) ? expansion : null;
36
+ const detailTableExpansionConfig = expansion && isDataTableDetailTableExpansion(expansion) ? expansion : null;
37
+ const tableExpansionConfig = expansion && isDataTableTableExpansion(expansion) ? expansion : null;
38
+ const rowClickEnabled = !!config.onRowClick && !editMode;
39
+ const summaryCells = config.summaryRow?.(visibleRows.map((row) => row.original)) ?? null;
40
+ const summaryContentById = new Map((summaryCells ?? []).map((cell) => [cell.columnId, cell.content]));
41
+ const expandTriggerColumnId = expansion?.triggerColumnId ?? null;
42
+ const toggleRowExpansion = (row) => {
43
+ if (!expansion || !row.getCanExpand()) return;
44
+ const willExpand = !row.getIsExpanded();
45
+ if (!willExpand && subRowsExpansionConfig) {
46
+ onCollapseStart(row.subRows.map((subRow) => subRow.id));
47
+ }
48
+ if (willExpand && tableExpansionConfig && tableExpansionConfig.getChildRows(row.original) === void 0) {
49
+ tableExpansionConfig.loadChildren?.(row.original);
50
+ }
51
+ row.toggleExpanded();
52
+ expansion.onExpandChange?.(row.original, willExpand);
53
+ };
54
+ const renderExpandControl = (row) => {
55
+ if (!expansion) return null;
56
+ if (!row.getCanExpand()) return /* @__PURE__ */ jsx("span", { className: "inline-block size-8 shrink-0" });
57
+ return /* @__PURE__ */ jsx(
58
+ ControlledButton,
59
+ {
60
+ defaultHtmlButton: true,
61
+ onClick: (event) => {
62
+ event.stopPropagation();
63
+ toggleRowExpansion(row);
64
+ },
65
+ className: "inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-foreground-subtle transition-colors hover:bg-muted-hover hover:text-foreground-muted",
66
+ children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: row.getIsExpanded() ? "expand_more" : "chevron_right", size: 20 })
67
+ }
68
+ );
69
+ };
70
+ const tableBody = /* @__PURE__ */ jsxs(
71
+ "tbody",
72
+ {
73
+ className: classNames(
74
+ dataTableOpacityTransitionClass,
75
+ "[&_tr:last-child_td:first-child]:rounded-bl-md [&_tr:last-child_td:last-child]:rounded-br-md [&_tr:last-child_td]:border-b-0"
76
+ ),
77
+ children: [
78
+ bodyTopRow && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: bodyTopRowColSpan, className: "border-b border-border bg-surface p-0", children: /* @__PURE__ */ jsx("div", { className: "sticky left-0", style: detailSlotWidth ? { width: detailSlotWidth } : void 0, children: /* @__PURE__ */ jsx("div", { className: dense ? "px-2 py-2" : "px-4 py-2.5", children: bodyTopRow }) }) }) }),
79
+ visibleRows.map((row) => {
80
+ const isDimmed = config.rowIsDimmed?.(row.original) ?? false;
81
+ const isChild = row.depth > 0;
82
+ const isExpanded = row.getIsExpanded();
83
+ const columnCount = row.getVisibleCells().length;
84
+ const showSubRowsLoading = !!subRowsExpansionConfig && isExpanded && row.subRows.length === 0 && !!subRowsExpansionConfig.isLoadingChildren?.(row.original);
85
+ const showPanelContent = !!panelExpansionConfig && isExpanded;
86
+ const showPanelLoading = showPanelContent && !!panelExpansionConfig.isLoadingContent?.(row.original);
87
+ const showDetailTable = !!detailTableExpansionConfig && isExpanded;
88
+ const detailRows = showDetailTable ? detailTableExpansionConfig.getDetailRows(row.original) : void 0;
89
+ const showDetailLoading = showDetailTable && (detailRows === void 0 || !!detailTableExpansionConfig.isLoadingChildren?.(row.original));
90
+ const showNestedTable = !!tableExpansionConfig && isExpanded;
91
+ const nestedRows = showNestedTable ? tableExpansionConfig.getChildRows(row.original) : void 0;
92
+ const showNestedLoading = showNestedTable && (nestedRows === void 0 || !!tableExpansionConfig.isLoadingChildren?.(row.original));
93
+ const visibleCells = row.getVisibleCells();
94
+ const lastCellIndex = visibleCells.length - 1;
95
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
96
+ /* @__PURE__ */ jsx(
97
+ "tr",
98
+ {
99
+ ref: registerRow(row.id),
100
+ onClick: rowClickEnabled ? () => config.onRowClick?.(row.original) : void 0,
101
+ className: classNames("transition-colors", dense ? "h-9" : "h-12", {
102
+ "cursor-pointer": rowClickEnabled,
103
+ "bg-surface": !isChild,
104
+ "hover:bg-muted": rowClickEnabled && !isChild,
105
+ "bg-muted-hover": isChild,
106
+ "hover:bg-muted-active": isChild && rowClickEnabled
107
+ }),
108
+ children: visibleCells.map((cell, cellIndex) => {
109
+ const columnConfig = columnConfigById.get(cell.column.id);
110
+ const cellContent = flexRender(cell.column.columnDef.cell, cell.getContext());
111
+ const isFirstCell = cellIndex === 0;
112
+ const isActionsCell = cellIndex === lastCellIndex && columnConfig?.type === "actions";
113
+ const isTriggerColumnCell = !!expandTriggerColumnId && cell.column.id === expandTriggerColumnId;
114
+ const isExpandCell = !!expansion && (expandTriggerColumnId ? isTriggerColumnCell : isFirstCell);
115
+ return /* @__PURE__ */ jsx(
116
+ DataTableBodyCell,
117
+ {
118
+ rowId: row.id,
119
+ columnId: cell.column.id,
120
+ navigable: editMode && columnConfig?.type !== "actions",
121
+ fillEnabled: fillEnabled && !!columnConfig?.editable && columnConfig.editable.fillable !== false,
122
+ className: classNames(
123
+ "border-b border-border-subtle align-middle",
124
+ dense ? "px-3 py-1.5" : spacious ? "px-5 py-4" : "px-4 py-2.5",
125
+ !isFirstCell && !isActionsCell && "overflow-hidden",
126
+ alignClass(columnConfig?.cellAlign),
127
+ { "opacity-60": isDimmed && columnConfig?.type !== "actions" },
128
+ isFirstCell && "sticky left-0 z-10 bg-inherit",
129
+ isFirstCell && showActionsShadow && FROZEN_LEFT_COLUMN_SHADOW,
130
+ isActionsCell && "sticky right-0 z-10 bg-inherit",
131
+ isActionsCell && showActionsShadow && FROZEN_COLUMN_SHADOW
132
+ ),
133
+ style: {
134
+ minWidth: columnContentWidths.get(cell.column.id) ?? resolveColumnMinWidthPx(columnConfig, {
135
+ isFirstColumn: isFirstCell,
136
+ hasColumnToggle: isFirstCell
137
+ })
138
+ },
139
+ children: isExpandCell ? /* @__PURE__ */ jsxs(
140
+ "div",
141
+ {
142
+ role: isTriggerColumnCell && row.getCanExpand() ? "button" : void 0,
143
+ tabIndex: isTriggerColumnCell && row.getCanExpand() ? 0 : void 0,
144
+ onClick: isTriggerColumnCell && row.getCanExpand() ? (event) => {
145
+ event.stopPropagation();
146
+ toggleRowExpansion(row);
147
+ } : void 0,
148
+ onKeyDown: isTriggerColumnCell && row.getCanExpand() ? (event) => {
149
+ if (event.key !== "Enter" && event.key !== " ") return;
150
+ event.preventDefault();
151
+ event.stopPropagation();
152
+ toggleRowExpansion(row);
153
+ } : void 0,
154
+ className: classNames("flex min-w-0 items-center gap-1.5", {
155
+ "cursor-pointer rounded-md": isTriggerColumnCell && row.getCanExpand()
156
+ }),
157
+ style: { paddingLeft: isFirstCell ? row.depth * INDENT_PER_LEVEL_PX : void 0 },
158
+ children: [
159
+ renderExpandControl(row),
160
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: cellContent })
161
+ ]
162
+ }
163
+ ) : cellContent
164
+ },
165
+ cell.id
166
+ );
167
+ })
168
+ }
169
+ ),
170
+ showSubRowsLoading && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: columnCount, className: "border-b border-border px-4 py-3", children: /* @__PURE__ */ jsx(LoadingSpinner, { size: 5, color: "foreground-faint" }) }) }),
171
+ showPanelContent && panelExpansionConfig && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: columnCount, className: "border-b border-border p-0", children: /* @__PURE__ */ jsx("div", { className: "w-full bg-surface py-3", children: showPanelLoading ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center py-2", children: /* @__PURE__ */ jsx(LoadingSpinner, { size: 5, color: "foreground-faint" }) }) : panelExpansionConfig.renderExpandedContent(row.original, {
172
+ collapse: () => {
173
+ if (!row.getIsExpanded()) return;
174
+ row.toggleExpanded(false);
175
+ panelExpansionConfig.onExpandChange?.(row.original, false);
176
+ }
177
+ }) }) }) }),
178
+ showDetailTable && detailTableExpansionConfig && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: columnCount, className: "border-b border-border bg-muted/70 p-0", children: /* @__PURE__ */ jsx(
179
+ DataTableDetailPanel,
180
+ {
181
+ columns: typeof detailTableExpansionConfig.columns === "function" ? detailTableExpansionConfig.columns(row.original) : detailTableExpansionConfig.columns,
182
+ rows: detailRows ?? [],
183
+ loading: showDetailLoading,
184
+ onRowClick: detailTableExpansionConfig.onDetailRowClick ? (detailRow) => detailTableExpansionConfig.onDetailRowClick?.(detailRow, row.original) : void 0,
185
+ rowIsDimmed: detailTableExpansionConfig.detailRowIsDimmed,
186
+ emptyMessage: detailTableExpansionConfig.emptyMessage,
187
+ columnsState: detailColumnsState,
188
+ slotWidth: detailSlotWidth
189
+ }
190
+ ) }) }),
191
+ showNestedTable && tableExpansionConfig && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: columnCount, className: "border-b border-border bg-muted/70 p-0", children: /* @__PURE__ */ jsx("div", { className: "sticky left-0", style: detailSlotWidth ? { width: detailSlotWidth } : void 0, children: /* @__PURE__ */ jsx("div", { className: "px-3 py-3", children: /* @__PURE__ */ jsx(
192
+ DataTable,
193
+ {
194
+ config: tableExpansionConfig.childConfig,
195
+ rows: nestedRows ?? [],
196
+ loading: showNestedLoading
197
+ }
198
+ ) }) }) }) })
199
+ ] }, row.id);
200
+ })
201
+ ]
202
+ }
203
+ );
204
+ const summaryFooter = summaryCells && summaryCells.length > 0 && visibleRows.length > 0 ? /* @__PURE__ */ jsx("tfoot", { children: /* @__PURE__ */ jsx("tr", { className: "bg-muted font-semibold text-foreground-muted", children: visibleRows[0]?.getVisibleCells().map((cell, cellIndex) => {
205
+ const columnConfig = columnConfigById.get(cell.column.id);
206
+ const isFirstCell = cellIndex === 0;
207
+ const isActionsCell = cellIndex === (visibleRows[0]?.getVisibleCells().length ?? 0) - 1 && columnConfig?.type === "actions";
208
+ const content = summaryContentById.get(cell.column.id) ?? null;
209
+ return /* @__PURE__ */ jsx(
210
+ "td",
211
+ {
212
+ className: classNames(
213
+ "sticky bottom-0 z-10 border-t-2 border-border bg-muted align-middle",
214
+ dense ? "px-3 py-1.5" : "px-4 py-2.5",
215
+ alignClass(columnConfig?.cellAlign),
216
+ isFirstCell && "left-0 z-20",
217
+ isFirstCell && showActionsShadow && FROZEN_LEFT_COLUMN_SHADOW,
218
+ isActionsCell && "right-0 z-20",
219
+ isActionsCell && showActionsShadow && FROZEN_COLUMN_SHADOW
220
+ ),
221
+ style: {
222
+ minWidth: resolveColumnMinWidthPx(columnConfig, {
223
+ isFirstColumn: isFirstCell,
224
+ hasColumnToggle: isFirstCell
225
+ })
226
+ },
227
+ children: isFirstCell && expansion ? /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-1.5", children: [
228
+ /* @__PURE__ */ jsx("span", { className: "inline-block size-8 shrink-0" }),
229
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: content })
230
+ ] }) : content
231
+ },
232
+ cell.column.id
233
+ );
234
+ }) }) }) : null;
235
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
236
+ tableBody,
237
+ summaryFooter
238
+ ] });
239
+ };
240
+ export {
241
+ DataTableBody as default
242
+ };
243
+ //# sourceMappingURL=DataTableBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableBody.js","sources":["../../../../src/components/UI/DataTable/DataTableBody.tsx"],"sourcesContent":["import { Fragment } from 'react';\nimport classNames from 'classnames';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport LoadingSpinner from '@/components/UI/LoadingSpinner';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\nimport { flexRender, type Row } from '@tanstack/react-table';\n\nimport DataTable from './DataTable';\nimport DataTableBodyCell from './DataTableBodyCell';\nimport { alignClass, FROZEN_COLUMN_SHADOW, FROZEN_LEFT_COLUMN_SHADOW } from './dataTableClasses';\nimport { resolveColumnMinWidthPx } from './dataTableColumnWidths';\nimport DataTableDetailPanel from './DataTableDetailPanel';\nimport { type IDataTableDetailColumnsState } from './DataTableDetailTable';\nimport { dataTableOpacityTransitionClass } from './dataTableMotion';\nimport {\n type IDataTableColumnConfig,\n type IDataTableConfig,\n type IDataTableRow,\n isDataTableDetailTableExpansion,\n isDataTablePanelExpansion,\n isDataTableSubRowsExpansion,\n isDataTableTableExpansion,\n} from './types';\n\ninterface IDataTableBodyProps<T extends IDataTableRow, C extends IDataTableRow = IDataTableRow> {\n config: IDataTableConfig<T, C>;\n visibleRows: Array<Row<T>>;\n columnConfigById: Map<string, IDataTableColumnConfig<T>>;\n /** Row-derived widths for actions/badge columns; other columns fall back to the seed. */\n columnContentWidths: Map<string, number>;\n registerRow: (id: string) => (element: HTMLElement | null) => void;\n onCollapseStart: (childRowIds: Array<string>) => void;\n detailColumnsState?: IDataTableDetailColumnsState;\n detailSlotWidth?: number;\n showActionsShadow?: boolean;\n /** Denser cell padding for embedded/editor (fit) layouts. */\n dense?: boolean;\n /** Roomier cell padding, for tables that need to read bigger. */\n spacious?: boolean;\n /** Whether editable columns show the drag-to-fill handle. */\n fillEnabled?: boolean;\n /** While true the cells own the pointer and the row click is suspended. */\n editMode?: boolean;\n /** Full-width band rendered as the first body row, spanning every column. */\n bodyTopRow?: React.ReactNode;\n /** Number of visible leaf columns the `bodyTopRow` cell must span. */\n bodyTopRowColSpan?: number;\n}\n\nconst INDENT_PER_LEVEL_PX = 24;\n\nconst DataTableBody = <T extends IDataTableRow, C extends IDataTableRow = IDataTableRow>({\n config,\n visibleRows,\n columnConfigById,\n columnContentWidths,\n registerRow,\n onCollapseStart,\n detailColumnsState,\n detailSlotWidth,\n showActionsShadow = false,\n dense = false,\n spacious = false,\n fillEnabled = false,\n editMode = false,\n bodyTopRow,\n bodyTopRowColSpan,\n}: IDataTableBodyProps<T, C>) => {\n const expansion = config.expansion;\n const panelExpansionConfig = expansion && isDataTablePanelExpansion(expansion) ? expansion : null;\n const subRowsExpansionConfig = expansion && isDataTableSubRowsExpansion(expansion) ? expansion : null;\n const detailTableExpansionConfig = expansion && isDataTableDetailTableExpansion(expansion) ? expansion : null;\n const tableExpansionConfig = expansion && isDataTableTableExpansion(expansion) ? expansion : null;\n\n const rowClickEnabled = !!config.onRowClick && !editMode;\n\n const summaryCells = config.summaryRow?.(visibleRows.map((row) => row.original)) ?? null;\n const summaryContentById = new Map((summaryCells ?? []).map((cell) => [cell.columnId, cell.content]));\n\n const expandTriggerColumnId = expansion?.triggerColumnId ?? null;\n\n const toggleRowExpansion = (row: Row<T>) => {\n if (!expansion || !row.getCanExpand()) return;\n\n const willExpand = !row.getIsExpanded();\n if (!willExpand && subRowsExpansionConfig) {\n onCollapseStart(row.subRows.map((subRow) => subRow.id));\n }\n if (willExpand && tableExpansionConfig && tableExpansionConfig.getChildRows(row.original) === undefined) {\n tableExpansionConfig.loadChildren?.(row.original);\n }\n row.toggleExpanded();\n expansion.onExpandChange?.(row.original, willExpand);\n };\n\n const renderExpandControl = (row: Row<T>) => {\n if (!expansion) return null;\n\n if (!row.getCanExpand()) return <span className=\"inline-block size-8 shrink-0\" />;\n\n return (\n <ControlledButton\n defaultHtmlButton\n onClick={(event) => {\n event.stopPropagation();\n toggleRowExpansion(row);\n }}\n className=\"inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-foreground-subtle transition-colors hover:bg-muted-hover hover:text-foreground-muted\"\n >\n <MaterialSymbol icon={row.getIsExpanded() ? 'expand_more' : 'chevron_right'} size={20} />\n </ControlledButton>\n );\n };\n\n const tableBody = (\n <tbody\n className={classNames(\n dataTableOpacityTransitionClass,\n '[&_tr:last-child_td:first-child]:rounded-bl-md [&_tr:last-child_td:last-child]:rounded-br-md [&_tr:last-child_td]:border-b-0',\n )}\n >\n {bodyTopRow && (\n <tr>\n <td colSpan={bodyTopRowColSpan} className=\"border-b border-border bg-surface p-0\">\n {/* Pin the band to the scroller's visible width so it never widens with\n the (possibly overflowing) table and its trailing controls stay in view. */}\n <div className=\"sticky left-0\" style={detailSlotWidth ? { width: detailSlotWidth } : undefined}>\n <div className={dense ? 'px-2 py-2' : 'px-4 py-2.5'}>{bodyTopRow}</div>\n </div>\n </td>\n </tr>\n )}\n\n {visibleRows.map((row) => {\n const isDimmed = config.rowIsDimmed?.(row.original) ?? false;\n const isChild = row.depth > 0;\n const isExpanded = row.getIsExpanded();\n const columnCount = row.getVisibleCells().length;\n\n const showSubRowsLoading =\n !!subRowsExpansionConfig &&\n isExpanded &&\n row.subRows.length === 0 &&\n !!subRowsExpansionConfig.isLoadingChildren?.(row.original);\n\n const showPanelContent = !!panelExpansionConfig && isExpanded;\n const showPanelLoading = showPanelContent && !!panelExpansionConfig.isLoadingContent?.(row.original);\n\n const showDetailTable = !!detailTableExpansionConfig && isExpanded;\n const detailRows = showDetailTable ? detailTableExpansionConfig.getDetailRows(row.original) : undefined;\n const showDetailLoading =\n showDetailTable &&\n (detailRows === undefined || !!detailTableExpansionConfig.isLoadingChildren?.(row.original));\n\n const showNestedTable = !!tableExpansionConfig && isExpanded;\n const nestedRows = showNestedTable ? tableExpansionConfig.getChildRows(row.original) : undefined;\n const showNestedLoading =\n showNestedTable && (nestedRows === undefined || !!tableExpansionConfig.isLoadingChildren?.(row.original));\n\n const visibleCells = row.getVisibleCells();\n const lastCellIndex = visibleCells.length - 1;\n\n return (\n <Fragment key={row.id}>\n <tr\n ref={registerRow(row.id)}\n // Em modo de edição o clique pertence à célula: abrir o registro\n // aqui roubaria todo gesto de seleção, arraste e edição.\n onClick={rowClickEnabled ? () => config.onRowClick?.(row.original) : undefined}\n // A altura na linha vale como MÍNIMO numa tabela: linhas de texto puro e\n // linhas com miniatura ou chip param de alternar de altura, e o olho\n // percorre a coluna sem tropeço. Conteúdo mais alto ainda expande.\n className={classNames('transition-colors', dense ? 'h-9' : 'h-12', {\n 'cursor-pointer': rowClickEnabled,\n 'bg-surface': !isChild,\n 'hover:bg-muted': rowClickEnabled && !isChild,\n 'bg-muted-hover': isChild,\n 'hover:bg-muted-active': isChild && rowClickEnabled,\n })}\n >\n {visibleCells.map((cell, cellIndex) => {\n const columnConfig = columnConfigById.get(cell.column.id);\n const cellContent = flexRender(cell.column.columnDef.cell, cell.getContext());\n const isFirstCell = cellIndex === 0;\n const isActionsCell = cellIndex === lastCellIndex && columnConfig?.type === 'actions';\n const isTriggerColumnCell = !!expandTriggerColumnId && cell.column.id === expandTriggerColumnId;\n const isExpandCell = !!expansion && (expandTriggerColumnId ? isTriggerColumnCell : isFirstCell);\n\n return (\n <DataTableBodyCell\n key={cell.id}\n rowId={row.id}\n columnId={cell.column.id}\n navigable={editMode && columnConfig?.type !== 'actions'}\n fillEnabled={fillEnabled && !!columnConfig?.editable && columnConfig.editable.fillable !== false}\n className={classNames(\n 'border-b border-border-subtle align-middle',\n dense ? 'px-3 py-1.5' : spacious ? 'px-5 py-4' : 'px-4 py-2.5',\n !isFirstCell && !isActionsCell && 'overflow-hidden',\n alignClass(columnConfig?.cellAlign),\n { 'opacity-60': isDimmed && columnConfig?.type !== 'actions' },\n isFirstCell && 'sticky left-0 z-10 bg-inherit',\n isFirstCell && showActionsShadow && FROZEN_LEFT_COLUMN_SHADOW,\n isActionsCell && 'sticky right-0 z-10 bg-inherit',\n isActionsCell && showActionsShadow && FROZEN_COLUMN_SHADOW,\n )}\n style={{\n minWidth:\n columnContentWidths.get(cell.column.id) ??\n resolveColumnMinWidthPx(columnConfig, {\n isFirstColumn: isFirstCell,\n hasColumnToggle: isFirstCell,\n }),\n }}\n >\n {isExpandCell ? (\n <div\n role={isTriggerColumnCell && row.getCanExpand() ? 'button' : undefined}\n tabIndex={isTriggerColumnCell && row.getCanExpand() ? 0 : undefined}\n onClick={\n isTriggerColumnCell && row.getCanExpand()\n ? (event) => {\n event.stopPropagation();\n toggleRowExpansion(row);\n }\n : undefined\n }\n onKeyDown={\n isTriggerColumnCell && row.getCanExpand()\n ? (event) => {\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n event.stopPropagation();\n toggleRowExpansion(row);\n }\n : undefined\n }\n className={classNames('flex min-w-0 items-center gap-1.5', {\n 'cursor-pointer rounded-md': isTriggerColumnCell && row.getCanExpand(),\n })}\n style={{ paddingLeft: isFirstCell ? row.depth * INDENT_PER_LEVEL_PX : undefined }}\n >\n {renderExpandControl(row)}\n <div className=\"min-w-0 flex-1\">{cellContent}</div>\n </div>\n ) : (\n cellContent\n )}\n </DataTableBodyCell>\n );\n })}\n </tr>\n\n {showSubRowsLoading && (\n <tr>\n <td colSpan={columnCount} className=\"border-b border-border px-4 py-3\">\n <LoadingSpinner size={5} color=\"foreground-faint\" />\n </td>\n </tr>\n )}\n\n {showPanelContent && panelExpansionConfig && (\n <tr>\n <td colSpan={columnCount} className=\"border-b border-border p-0\">\n <div className=\"w-full bg-surface py-3\">\n {showPanelLoading ? (\n <div className=\"flex items-center justify-center py-2\">\n <LoadingSpinner size={5} color=\"foreground-faint\" />\n </div>\n ) : (\n panelExpansionConfig.renderExpandedContent(row.original, {\n collapse: () => {\n if (!row.getIsExpanded()) return;\n row.toggleExpanded(false);\n panelExpansionConfig.onExpandChange?.(row.original, false);\n },\n })\n )}\n </div>\n </td>\n </tr>\n )}\n\n {showDetailTable && detailTableExpansionConfig && (\n <tr>\n <td colSpan={columnCount} className=\"border-b border-border bg-muted/70 p-0\">\n <DataTableDetailPanel\n columns={\n typeof detailTableExpansionConfig.columns === 'function'\n ? detailTableExpansionConfig.columns(row.original)\n : detailTableExpansionConfig.columns\n }\n rows={detailRows ?? []}\n loading={showDetailLoading}\n onRowClick={\n detailTableExpansionConfig.onDetailRowClick\n ? (detailRow) => detailTableExpansionConfig.onDetailRowClick?.(detailRow, row.original)\n : undefined\n }\n rowIsDimmed={detailTableExpansionConfig.detailRowIsDimmed}\n emptyMessage={detailTableExpansionConfig.emptyMessage}\n columnsState={detailColumnsState}\n slotWidth={detailSlotWidth}\n />\n </td>\n </tr>\n )}\n\n {showNestedTable && tableExpansionConfig && (\n <tr>\n <td colSpan={columnCount} className=\"border-b border-border bg-muted/70 p-0\">\n <div className=\"sticky left-0\" style={detailSlotWidth ? { width: detailSlotWidth } : undefined}>\n <div className=\"px-3 py-3\">\n <DataTable\n config={tableExpansionConfig.childConfig}\n rows={nestedRows ?? []}\n loading={showNestedLoading}\n />\n </div>\n </div>\n </td>\n </tr>\n )}\n </Fragment>\n );\n })}\n </tbody>\n );\n\n const summaryFooter =\n summaryCells && summaryCells.length > 0 && visibleRows.length > 0 ? (\n <tfoot>\n <tr className=\"bg-muted font-semibold text-foreground-muted\">\n {visibleRows[0]?.getVisibleCells().map((cell, cellIndex) => {\n const columnConfig = columnConfigById.get(cell.column.id);\n const isFirstCell = cellIndex === 0;\n const isActionsCell =\n cellIndex === (visibleRows[0]?.getVisibleCells().length ?? 0) - 1 && columnConfig?.type === 'actions';\n const content = summaryContentById.get(cell.column.id) ?? null;\n\n return (\n <td\n key={cell.column.id}\n className={classNames(\n 'sticky bottom-0 z-10 border-t-2 border-border bg-muted align-middle',\n dense ? 'px-3 py-1.5' : 'px-4 py-2.5',\n alignClass(columnConfig?.cellAlign),\n isFirstCell && 'left-0 z-20',\n isFirstCell && showActionsShadow && FROZEN_LEFT_COLUMN_SHADOW,\n isActionsCell && 'right-0 z-20',\n isActionsCell && showActionsShadow && FROZEN_COLUMN_SHADOW,\n )}\n style={{\n minWidth: resolveColumnMinWidthPx(columnConfig, {\n isFirstColumn: isFirstCell,\n hasColumnToggle: isFirstCell,\n }),\n }}\n >\n {isFirstCell && expansion ? (\n <div className=\"flex min-w-0 items-center gap-1.5\">\n <span className=\"inline-block size-8 shrink-0\" />\n <div className=\"min-w-0 flex-1\">{content}</div>\n </div>\n ) : (\n content\n )}\n </td>\n );\n })}\n </tr>\n </tfoot>\n ) : null;\n\n return (\n <>\n {tableBody}\n {summaryFooter}\n </>\n );\n};\n\nexport default DataTableBody;\n"],"names":["Fragment"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ interface IDataTableBodyCellProps {
3
+ /** TanStack row id: unique across nesting levels, unlike the entity id. */
4
+ rowId: string;
5
+ columnId: string;
6
+ /** Actions columns hold controls, never a value: they stay out of the matrix. */
7
+ navigable: boolean;
8
+ /** Whether this column accepts a drag-to-fill from the selection corner. */
9
+ fillEnabled?: boolean;
10
+ className: string;
11
+ style?: React.CSSProperties;
12
+ children: React.ReactNode;
13
+ }
14
+ /**
15
+ * The `<td>` of a data row. Outside a spreadsheet-enabled table it renders exactly
16
+ * what it always did; inside one it also carries the roving tabindex, the grid
17
+ * semantics and its own subscription to the grid state, so moving the active cell
18
+ * re-renders two cells instead of the table.
19
+ */
20
+ declare const DataTableBodyCell: React.FC<IDataTableBodyCellProps>;
21
+ export default DataTableBodyCell;
@@ -0,0 +1,77 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from "react";
3
+ import classNames from "classnames";
4
+ import GridFillHandle from "./grid/GridFillHandle.js";
5
+ import { useGridStoreApi, useGridCellRegistry, useGridCellState } from "./grid/GridProvider.js";
6
+ import { GRID_COLUMN_DATA_ATTR, GRID_ROW_DATA_ATTR, GRID_CELL_DATA_ATTR, GRID_CELL_TABBABLE, buildGridCellKey, GRID_CELL_FILL_HANDLE, GRID_CELL_SELECTED, GRID_CELL_ACTIVE, GRID_CELL_FILL_PREVIEW, GRID_CELL_SAVING, GRID_CELL_SAVE_ERROR } from "./grid/gridTypes.js";
7
+ const DataTableBodyCell = ({
8
+ rowId,
9
+ columnId,
10
+ navigable,
11
+ fillEnabled = false,
12
+ className,
13
+ style,
14
+ children
15
+ }) => {
16
+ const store = useGridStoreApi();
17
+ const registry = useGridCellRegistry();
18
+ const cellState = useGridCellState(rowId, columnId);
19
+ const isGridCell = !!store && !!registry && navigable;
20
+ const cellKey = buildGridCellKey(rowId, columnId);
21
+ const registerCell = useCallback(
22
+ (element) => {
23
+ if (!registry) return;
24
+ registry.register(cellKey, element);
25
+ },
26
+ [registry, cellKey]
27
+ );
28
+ const handleMouseDown = useCallback(
29
+ (event) => {
30
+ store?.getState().setActiveCell({ rowId, columnId }, { extend: event.shiftKey });
31
+ },
32
+ [store, rowId, columnId]
33
+ );
34
+ if (!isGridCell) {
35
+ return /* @__PURE__ */ jsx("td", { className, style, children });
36
+ }
37
+ const isActive = (cellState & GRID_CELL_ACTIVE) !== 0;
38
+ const isSelected = (cellState & GRID_CELL_SELECTED) !== 0;
39
+ const isFillPreview = (cellState & GRID_CELL_FILL_PREVIEW) !== 0;
40
+ const showsFillHandle = fillEnabled && (cellState & GRID_CELL_FILL_HANDLE) !== 0;
41
+ const isSaving = (cellState & GRID_CELL_SAVING) !== 0;
42
+ const hasSaveError = (cellState & GRID_CELL_SAVE_ERROR) !== 0;
43
+ return /* @__PURE__ */ jsxs(
44
+ "td",
45
+ {
46
+ ref: registerCell,
47
+ role: "gridcell",
48
+ "aria-selected": isSelected,
49
+ tabIndex: isActive || (cellState & GRID_CELL_TABBABLE) !== 0 ? 0 : -1,
50
+ onMouseDown: handleMouseDown,
51
+ ...{ [GRID_CELL_DATA_ATTR]: cellKey, [GRID_ROW_DATA_ATTR]: rowId, [GRID_COLUMN_DATA_ATTR]: columnId },
52
+ className: classNames(
53
+ className,
54
+ "outline-none",
55
+ // `!` because the frozen first/actions cells paint `bg-inherit`, which is
56
+ // the same utility group: the state fill has to win regardless of the
57
+ // order Tailwind emits them in.
58
+ isSelected && !isActive && "!bg-brand-soft/40",
59
+ isFillPreview && "!bg-brand-soft/60",
60
+ (isActive || showsFillHandle) && "relative",
61
+ isActive && "z-20 ring-2 ring-inset ring-brand",
62
+ isFillPreview && "ring-1 ring-inset ring-brand-border",
63
+ isSaving && "opacity-70",
64
+ hasSaveError && "!bg-danger-soft ring-1 ring-inset ring-danger-border"
65
+ ),
66
+ style,
67
+ children: [
68
+ children,
69
+ showsFillHandle && /* @__PURE__ */ jsx(GridFillHandle, {})
70
+ ]
71
+ }
72
+ );
73
+ };
74
+ export {
75
+ DataTableBodyCell as default
76
+ };
77
+ //# sourceMappingURL=DataTableBodyCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableBodyCell.js","sources":["../../../../src/components/UI/DataTable/DataTableBodyCell.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport classNames from 'classnames';\n\nimport GridFillHandle from './grid/GridFillHandle';\nimport { useGridCellRegistry, useGridCellState, useGridStoreApi } from './grid/GridProvider';\nimport {\n buildGridCellKey,\n GRID_CELL_ACTIVE,\n GRID_CELL_DATA_ATTR,\n GRID_CELL_FILL_HANDLE,\n GRID_CELL_FILL_PREVIEW,\n GRID_CELL_SAVE_ERROR,\n GRID_CELL_SAVING,\n GRID_CELL_SELECTED,\n GRID_CELL_TABBABLE,\n GRID_COLUMN_DATA_ATTR,\n GRID_ROW_DATA_ATTR,\n} from './grid/gridTypes';\n\ninterface IDataTableBodyCellProps {\n /** TanStack row id: unique across nesting levels, unlike the entity id. */\n rowId: string;\n columnId: string;\n /** Actions columns hold controls, never a value: they stay out of the matrix. */\n navigable: boolean;\n /** Whether this column accepts a drag-to-fill from the selection corner. */\n fillEnabled?: boolean;\n className: string;\n style?: React.CSSProperties;\n children: React.ReactNode;\n}\n\n/**\n * The `<td>` of a data row. Outside a spreadsheet-enabled table it renders exactly\n * what it always did; inside one it also carries the roving tabindex, the grid\n * semantics and its own subscription to the grid state, so moving the active cell\n * re-renders two cells instead of the table.\n */\nconst DataTableBodyCell: React.FC<IDataTableBodyCellProps> = ({\n rowId,\n columnId,\n navigable,\n fillEnabled = false,\n className,\n style,\n children,\n}) => {\n const store = useGridStoreApi();\n const registry = useGridCellRegistry();\n const cellState = useGridCellState(rowId, columnId);\n\n const isGridCell = !!store && !!registry && navigable;\n const cellKey = buildGridCellKey(rowId, columnId);\n\n const registerCell = useCallback(\n (element: HTMLTableCellElement | null) => {\n if (!registry) return;\n registry.register(cellKey, element);\n },\n [registry, cellKey],\n );\n\n const handleMouseDown = useCallback(\n (event: React.MouseEvent<HTMLTableCellElement>) => {\n store?.getState().setActiveCell({ rowId, columnId }, { extend: event.shiftKey });\n },\n [store, rowId, columnId],\n );\n\n if (!isGridCell) {\n return (\n <td className={className} style={style}>\n {children}\n </td>\n );\n }\n\n const isActive = (cellState & GRID_CELL_ACTIVE) !== 0;\n const isSelected = (cellState & GRID_CELL_SELECTED) !== 0;\n const isFillPreview = (cellState & GRID_CELL_FILL_PREVIEW) !== 0;\n const showsFillHandle = fillEnabled && (cellState & GRID_CELL_FILL_HANDLE) !== 0;\n const isSaving = (cellState & GRID_CELL_SAVING) !== 0;\n const hasSaveError = (cellState & GRID_CELL_SAVE_ERROR) !== 0;\n\n return (\n <td\n ref={registerCell}\n role=\"gridcell\"\n aria-selected={isSelected}\n tabIndex={isActive || (cellState & GRID_CELL_TABBABLE) !== 0 ? 0 : -1}\n onMouseDown={handleMouseDown}\n {...{ [GRID_CELL_DATA_ATTR]: cellKey, [GRID_ROW_DATA_ATTR]: rowId, [GRID_COLUMN_DATA_ATTR]: columnId }}\n className={classNames(\n className,\n 'outline-none',\n // `!` because the frozen first/actions cells paint `bg-inherit`, which is\n // the same utility group: the state fill has to win regardless of the\n // order Tailwind emits them in.\n isSelected && !isActive && '!bg-brand-soft/40',\n isFillPreview && '!bg-brand-soft/60',\n (isActive || showsFillHandle) && 'relative',\n isActive && 'z-20 ring-2 ring-inset ring-brand',\n isFillPreview && 'ring-1 ring-inset ring-brand-border',\n isSaving && 'opacity-70',\n hasSaveError && '!bg-danger-soft ring-1 ring-inset ring-danger-border',\n )}\n style={style}\n >\n {children}\n {showsFillHandle && <GridFillHandle />}\n </td>\n );\n};\n\nexport default DataTableBodyCell;\n"],"names":[],"mappings":";;;;;;AAsCA,MAAM,oBAAuD,CAAC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,gBAAA;AACd,QAAM,WAAW,oBAAA;AACjB,QAAM,YAAY,iBAAiB,OAAO,QAAQ;AAElD,QAAM,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY;AAC5C,QAAM,UAAU,iBAAiB,OAAO,QAAQ;AAEhD,QAAM,eAAe;AAAA,IACnB,CAAC,YAAyC;AACxC,UAAI,CAAC,SAAU;AACf,eAAS,SAAS,SAAS,OAAO;AAAA,IACpC;AAAA,IACA,CAAC,UAAU,OAAO;AAAA,EAAA;AAGpB,QAAM,kBAAkB;AAAA,IACtB,CAAC,UAAkD;AACjD,aAAO,SAAA,EAAW,cAAc,EAAE,OAAO,SAAA,GAAY,EAAE,QAAQ,MAAM,UAAU;AAAA,IACjF;AAAA,IACA,CAAC,OAAO,OAAO,QAAQ;AAAA,EAAA;AAGzB,MAAI,CAAC,YAAY;AACf,WACE,oBAAC,MAAA,EAAG,WAAsB,OACvB,SAAA,CACH;AAAA,EAEJ;AAEA,QAAM,YAAY,YAAY,sBAAsB;AACpD,QAAM,cAAc,YAAY,wBAAwB;AACxD,QAAM,iBAAiB,YAAY,4BAA4B;AAC/D,QAAM,kBAAkB,gBAAgB,YAAY,2BAA2B;AAC/E,QAAM,YAAY,YAAY,sBAAsB;AACpD,QAAM,gBAAgB,YAAY,0BAA0B;AAE5D,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,MAAK;AAAA,MACL,iBAAe;AAAA,MACf,UAAU,aAAa,YAAY,wBAAwB,IAAI,IAAI;AAAA,MACnE,aAAa;AAAA,MACZ,GAAG,EAAE,CAAC,mBAAmB,GAAG,SAAS,CAAC,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAA;AAAA,MAC5F,WAAW;AAAA,QACT;AAAA,QACA;AAAA;AAAA;AAAA;AAAA,QAIA,cAAc,CAAC,YAAY;AAAA,QAC3B,iBAAiB;AAAA,SAChB,YAAY,oBAAoB;AAAA,QACjC,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,YAAY;AAAA,QACZ,gBAAgB;AAAA,MAAA;AAAA,MAElB;AAAA,MAEC,UAAA;AAAA,QAAA;AAAA,QACA,uCAAoB,gBAAA,CAAA,CAAe;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ interface IDataTableBulkEditButtonProps {
3
+ onClick: () => void;
4
+ }
5
+ /**
6
+ * Abre a edição em massa. Fica junto do controle de colunas e do modo planilha,
7
+ * e existe nos dois modos de exibição: nos cards o alcance é o acumulado do
8
+ * scroll infinito, que é onde a edição célula a célula não alcança.
9
+ */
10
+ declare const DataTableBulkEditButton: React.FC<IDataTableBulkEditButtonProps>;
11
+ export default DataTableBulkEditButton;
@@ -0,0 +1,24 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useTranslation } from "react-i18next";
3
+ import ControlledButton from "../../Form/ControlledButton.js";
4
+ import ControlledTooltip from "../ControlledTooltip.js";
5
+ import { MaterialSymbol } from "../MaterialSymbol/index.js";
6
+ const DataTableBulkEditButton = ({ onClick }) => {
7
+ const { t } = useTranslation("ui");
8
+ return /* @__PURE__ */ jsx(ControlledTooltip, { content: t("dataTable.bulkEdit.hint"), children: /* @__PURE__ */ jsxs(
9
+ ControlledButton,
10
+ {
11
+ defaultHtmlButton: true,
12
+ onClick,
13
+ className: "inline-flex shrink-0 items-center gap-1.5 rounded-lg border border-border bg-surface p-2.5 text-sm font-medium text-foreground-subtle shadow-sm transition-colors hover:bg-muted-hover hover:text-foreground-muted",
14
+ children: [
15
+ /* @__PURE__ */ jsx(MaterialSymbol, { icon: "playlist_add_check", size: 18 }),
16
+ /* @__PURE__ */ jsx("span", { children: t("dataTable.bulkEdit.open") })
17
+ ]
18
+ }
19
+ ) });
20
+ };
21
+ export {
22
+ DataTableBulkEditButton as default
23
+ };
24
+ //# sourceMappingURL=DataTableBulkEditButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableBulkEditButton.js","sources":["../../../../src/components/UI/DataTable/DataTableBulkEditButton.tsx"],"sourcesContent":["import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledButton from '@/components/Form/ControlledButton';\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\n\ninterface IDataTableBulkEditButtonProps {\n onClick: () => void;\n}\n\n/**\n * Abre a edição em massa. Fica junto do controle de colunas e do modo planilha,\n * e existe nos dois modos de exibição: nos cards o alcance é o acumulado do\n * scroll infinito, que é onde a edição célula a célula não alcança.\n */\nconst DataTableBulkEditButton: React.FC<IDataTableBulkEditButtonProps> = ({ onClick }) => {\n const { t } = useTranslation('ui');\n\n return (\n <ControlledTooltip content={t('dataTable.bulkEdit.hint')}>\n <ControlledButton\n defaultHtmlButton\n onClick={onClick}\n className=\"inline-flex shrink-0 items-center gap-1.5 rounded-lg border border-border bg-surface p-2.5 text-sm font-medium text-foreground-subtle shadow-sm transition-colors hover:bg-muted-hover hover:text-foreground-muted\"\n >\n <MaterialSymbol icon=\"playlist_add_check\" size={18} />\n <span>{t('dataTable.bulkEdit.open')}</span>\n </ControlledButton>\n </ControlledTooltip>\n );\n};\n\nexport default DataTableBulkEditButton;\n"],"names":[],"mappings":";;;;;AAgBA,MAAM,0BAAmE,CAAC,EAAE,cAAc;AACxF,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AAEjC,SACE,oBAAC,mBAAA,EAAkB,SAAS,EAAE,yBAAyB,GACrD,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,mBAAiB;AAAA,MACjB;AAAA,MACA,WAAU;AAAA,MAEV,UAAA;AAAA,QAAA,oBAAC,gBAAA,EAAe,MAAK,sBAAqB,MAAM,IAAI;AAAA,QACpD,oBAAC,QAAA,EAAM,UAAA,EAAE,yBAAyB,EAAA,CAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAExC;AAEJ;"}
@@ -0,0 +1,25 @@
1
+ import { IDataTableColumnConfig, IDataTableFillChange, IDataTableRow } from './types';
2
+ interface IDataTableBulkEditDialogProps<T extends IDataTableRow> {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ /** Todas as colunas da tabela: só as editáveis viram opção de campo. */
6
+ columns: Array<IDataTableColumnConfig<T>>;
7
+ /** As linhas carregadas: a página atual na lista, o acumulado do scroll nos cards. */
8
+ rows: Array<T>;
9
+ /** Rótulo de cada linha na lista de escolha. Sem ele, a primeira coluna de texto responde. */
10
+ getRowLabel?: (row: T) => string;
11
+ /** Ids já escolhidos fora do diálogo: abre no modo "escolher" com eles marcados. */
12
+ initialTargetIds?: ReadonlyArray<string>;
13
+ onApply: (changes: Array<IDataTableFillChange<T>>) => void;
14
+ }
15
+ /**
16
+ * Aplica um valor a um campo em várias linhas de uma vez. É a mesma edição de
17
+ * célula da planilha, com o alcance escolhido pelo usuário: todas as linhas
18
+ * carregadas ou um subconjunto marcado na lista.
19
+ *
20
+ * O diálogo não persiste nada. Ele devolve as células escritas por `onApply`, que
21
+ * o host entrega ao `onFillCells` da fila de commit: um render, um flush e uma
22
+ * requisição em lote, exatamente como o preenchimento por arraste.
23
+ */
24
+ declare const DataTableBulkEditDialog: <T extends IDataTableRow>({ open, onClose, columns, rows, getRowLabel, initialTargetIds, onApply, }: IDataTableBulkEditDialogProps<T>) => import("react").JSX.Element;
25
+ export default DataTableBulkEditDialog;