@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,91 @@
1
+ const emptyValueForKind = (kind) => {
2
+ switch (kind) {
3
+ case "multiselect":
4
+ case "checkbox-group":
5
+ case "tags":
6
+ return [];
7
+ case "boolean":
8
+ return false;
9
+ case "date-range":
10
+ case "range":
11
+ return {};
12
+ default:
13
+ return "";
14
+ }
15
+ };
16
+ const isDateRangeEmpty = (value) => !value.from && !value.to;
17
+ const isRangeEmpty = (value) => (value.min === void 0 || value.min === null) && (value.max === void 0 || value.max === null);
18
+ const isFilterValueEmpty = (field, value) => {
19
+ if (field.kind === "custom" && field.isActive) return !field.isActive(value);
20
+ if (value === null || value === void 0) return true;
21
+ if (Array.isArray(value)) return value.length === 0;
22
+ if (typeof value === "string") return value.trim().length === 0;
23
+ if (typeof value === "boolean") return !value;
24
+ if (typeof value === "number") return Number.isNaN(value);
25
+ if (field.kind === "date-range") return isDateRangeEmpty(value);
26
+ if (field.kind === "range") return isRangeEmpty(value);
27
+ if (typeof value === "object") return Object.keys(value).length === 0;
28
+ return false;
29
+ };
30
+ const getActiveFilterFields = (fields, values) => (fields ?? []).filter((field) => !isFilterValueEmpty(field, values?.[field.key]));
31
+ const countActiveFilters = (fields, values) => getActiveFilterFields(fields, values).length;
32
+ const buildEmptyFilterValues = (fields) => {
33
+ const empty = {};
34
+ (fields ?? []).forEach((field) => {
35
+ empty[field.key] = emptyValueForKind(field.kind);
36
+ });
37
+ return empty;
38
+ };
39
+ const optionLabel = (options, value) => (options ?? []).find((option) => option.value === value)?.label ?? value;
40
+ const fieldOptions = (field) => {
41
+ if (field.kind === "select" || field.kind === "multiselect" || field.kind === "checkbox-group" || field.kind === "radio" || field.kind === "tags") {
42
+ return field.options;
43
+ }
44
+ if (field.kind === "async-select") return field.initialOptions;
45
+ return void 0;
46
+ };
47
+ const formatFilterValue = (field, value) => {
48
+ if (field.formatChip) return field.formatChip(value);
49
+ if (isFilterValueEmpty(field, value)) return "";
50
+ if (Array.isArray(value)) {
51
+ return value.map((entry) => optionLabel(fieldOptions(field), String(entry))).join(", ");
52
+ }
53
+ if (field.kind === "boolean") return field.label ?? field.title;
54
+ if (field.kind === "date-range") {
55
+ const range = value;
56
+ if (range.from && range.to) return `${range.from} / ${range.to}`;
57
+ return range.from ?? range.to ?? "";
58
+ }
59
+ if (field.kind === "range") {
60
+ const range = value;
61
+ const unit = "unit" in field && field.unit ? ` ${field.unit}` : "";
62
+ if (range.min !== void 0 && range.max !== void 0) return `${range.min}${unit} - ${range.max}${unit}`;
63
+ if (range.min !== void 0) return `>= ${range.min}${unit}`;
64
+ if (range.max !== void 0) return `<= ${range.max}${unit}`;
65
+ return "";
66
+ }
67
+ return optionLabel(fieldOptions(field), String(value));
68
+ };
69
+ const getVisibleFilterFields = (fields, values) => (fields ?? []).filter((field) => field.visibleWhen ? field.visibleWhen(values) : true);
70
+ const clearDependentValues = (fields, changedKey, values) => {
71
+ const dependents = (fields ?? []).filter((field) => (field.dependsOn ?? []).includes(changedKey));
72
+ if (dependents.length === 0) return values;
73
+ const next = { ...values };
74
+ dependents.forEach((field) => {
75
+ next[field.key] = emptyValueForKind(field.kind);
76
+ });
77
+ return next;
78
+ };
79
+ const areFilterValuesEqual = (a, b) => JSON.stringify(a ?? {}) === JSON.stringify(b ?? {});
80
+ export {
81
+ areFilterValuesEqual,
82
+ buildEmptyFilterValues,
83
+ clearDependentValues,
84
+ countActiveFilters,
85
+ emptyValueForKind,
86
+ formatFilterValue,
87
+ getActiveFilterFields,
88
+ getVisibleFilterFields,
89
+ isFilterValueEmpty
90
+ };
91
+ //# sourceMappingURL=filterValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterValues.js","sources":["../../../../src/components/Search/filters/filterValues.ts"],"sourcesContent":["import { IFilterOption } from '@/interfaces/IFilterOption';\n\nimport { IFilterDateRangeValue, IFilterRangeValue, TFilterField, TFilterFieldKind, TFilterValues } from './filterTypes';\n\n/** Value a field holds when it is not filtering anything. */\nexport const emptyValueForKind = (kind: TFilterFieldKind): unknown => {\n switch (kind) {\n case 'multiselect':\n case 'checkbox-group':\n case 'tags':\n return [];\n case 'boolean':\n return false;\n case 'date-range':\n case 'range':\n return {};\n default:\n return '';\n }\n};\n\nconst isDateRangeEmpty = (value: IFilterDateRangeValue): boolean => !value.from && !value.to;\n\nconst isRangeEmpty = (value: IFilterRangeValue): boolean =>\n (value.min === undefined || value.min === null) && (value.max === undefined || value.max === null);\n\n/**\n * The single definition of \"this field is filtering something\". Booleans,\n * numbers and interval objects count, which the previous string/array-only\n * check silently dropped.\n */\nexport const isFilterValueEmpty = (field: TFilterField, value: unknown): boolean => {\n if (field.kind === 'custom' && field.isActive) return !field.isActive(value);\n if (value === null || value === undefined) return true;\n if (Array.isArray(value)) return value.length === 0;\n if (typeof value === 'string') return value.trim().length === 0;\n if (typeof value === 'boolean') return !value;\n if (typeof value === 'number') return Number.isNaN(value);\n if (field.kind === 'date-range') return isDateRangeEmpty(value as IFilterDateRangeValue);\n if (field.kind === 'range') return isRangeEmpty(value as IFilterRangeValue);\n if (typeof value === 'object') return Object.keys(value as object).length === 0;\n\n return false;\n};\n\nexport const getActiveFilterFields = (fields: Array<TFilterField>, values: TFilterValues): Array<TFilterField> =>\n (fields ?? []).filter((field) => !isFilterValueEmpty(field, values?.[field.key]));\n\nexport const countActiveFilters = (fields: Array<TFilterField>, values: TFilterValues): number =>\n getActiveFilterFields(fields, values).length;\n\nexport const buildEmptyFilterValues = (fields: Array<TFilterField>): TFilterValues => {\n const empty: TFilterValues = {};\n (fields ?? []).forEach((field) => {\n empty[field.key] = emptyValueForKind(field.kind);\n });\n\n return empty;\n};\n\nconst optionLabel = (options: Array<IFilterOption> | undefined, value: string): string =>\n (options ?? []).find((option) => option.value === value)?.label ?? value;\n\nconst fieldOptions = (field: TFilterField): Array<IFilterOption> | undefined => {\n if (\n field.kind === 'select' ||\n field.kind === 'multiselect' ||\n field.kind === 'checkbox-group' ||\n field.kind === 'radio' ||\n field.kind === 'tags'\n ) {\n return field.options;\n }\n if (field.kind === 'async-select') return field.initialOptions;\n\n return undefined;\n};\n\n/** Human-readable value used by the active-filter chips and the trigger tooltip. */\nexport const formatFilterValue = (field: TFilterField, value: unknown): string => {\n if (field.formatChip) return field.formatChip(value);\n if (isFilterValueEmpty(field, value)) return '';\n\n if (Array.isArray(value)) {\n return value.map((entry) => optionLabel(fieldOptions(field), String(entry))).join(', ');\n }\n\n if (field.kind === 'boolean') return field.label ?? field.title;\n\n if (field.kind === 'date-range') {\n const range = value as IFilterDateRangeValue;\n if (range.from && range.to) return `${range.from} / ${range.to}`;\n return range.from ?? range.to ?? '';\n }\n\n if (field.kind === 'range') {\n const range = value as IFilterRangeValue;\n const unit = 'unit' in field && field.unit ? ` ${field.unit}` : '';\n if (range.min !== undefined && range.max !== undefined) return `${range.min}${unit} - ${range.max}${unit}`;\n if (range.min !== undefined) return `>= ${range.min}${unit}`;\n if (range.max !== undefined) return `<= ${range.max}${unit}`;\n return '';\n }\n\n return optionLabel(fieldOptions(field), String(value));\n};\n\n/**\n * Fields the user can actually see right now. `visibleWhen` reads the whole\n * draft, so a field hidden by a dependency never contributes a stale value.\n */\nexport const getVisibleFilterFields = (fields: Array<TFilterField>, values: TFilterValues): Array<TFilterField> =>\n (fields ?? []).filter((field) => (field.visibleWhen ? field.visibleWhen(values) : true));\n\n/** Clears every field that declared `dependsOn` pointing at the changed key. */\nexport const clearDependentValues = (\n fields: Array<TFilterField>,\n changedKey: string,\n values: TFilterValues,\n): TFilterValues => {\n const dependents = (fields ?? []).filter((field) => (field.dependsOn ?? []).includes(changedKey));\n if (dependents.length === 0) return values;\n\n const next = { ...values };\n dependents.forEach((field) => {\n next[field.key] = emptyValueForKind(field.kind);\n });\n\n return next;\n};\n\nexport const areFilterValuesEqual = (a: TFilterValues, b: TFilterValues): boolean =>\n JSON.stringify(a ?? {}) === JSON.stringify(b ?? {});\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type TFiltersVariant = 'drawer' | 'popover' | 'inline' | 'chips';
2
+ export type TFiltersSize = 'sm' | 'md' | 'lg';
3
+ export declare const getFiltersPanelWidth: (size: TFiltersSize) => number;
4
+ export declare const FILTERS_POPOVER_WIDTH_REM = 20;
@@ -0,0 +1,18 @@
1
+ import { remToPx } from "../../../helpers/utilityHelpers.js";
2
+ const FILTERS_WIDTH_REM = {
3
+ sm: 22,
4
+ md: 26,
5
+ lg: 32
6
+ };
7
+ const VIEWPORT_RATIO = 0.92;
8
+ const getFiltersPanelWidth = (size) => {
9
+ const desired = remToPx(FILTERS_WIDTH_REM[size]);
10
+ const viewportCap = typeof window === "undefined" ? desired : Math.round(window.innerWidth * VIEWPORT_RATIO);
11
+ return Math.min(desired, viewportCap);
12
+ };
13
+ const FILTERS_POPOVER_WIDTH_REM = 20;
14
+ export {
15
+ FILTERS_POPOVER_WIDTH_REM,
16
+ getFiltersPanelWidth
17
+ };
18
+ //# sourceMappingURL=filtersLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtersLayout.js","sources":["../../../../src/components/Search/filters/filtersLayout.ts"],"sourcesContent":["import { remToPx } from '@/helpers/utilityHelpers';\n\nexport type TFiltersVariant = 'drawer' | 'popover' | 'inline' | 'chips';\nexport type TFiltersSize = 'sm' | 'md' | 'lg';\n\n/**\n * Widths live in rem so the panel follows the fluid density scale\n * (`html { font-size: clamp(...) }`), instead of the old hardcoded 400px.\n */\nconst FILTERS_WIDTH_REM: Record<TFiltersSize, number> = {\n sm: 22,\n md: 26,\n lg: 32,\n};\n\nconst VIEWPORT_RATIO = 0.92;\n\nexport const getFiltersPanelWidth = (size: TFiltersSize): number => {\n const desired = remToPx(FILTERS_WIDTH_REM[size]);\n const viewportCap = typeof window === 'undefined' ? desired : Math.round(window.innerWidth * VIEWPORT_RATIO);\n\n return Math.min(desired, viewportCap);\n};\n\nexport const FILTERS_POPOVER_WIDTH_REM = 20;\n"],"names":[],"mappings":";AASA,MAAM,oBAAkD;AAAA,EACtD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,iBAAiB;AAEhB,MAAM,uBAAuB,CAAC,SAA+B;AAClE,QAAM,UAAU,QAAQ,kBAAkB,IAAI,CAAC;AAC/C,QAAM,cAAc,OAAO,WAAW,cAAc,UAAU,KAAK,MAAM,OAAO,aAAa,cAAc;AAE3G,SAAO,KAAK,IAAI,SAAS,WAAW;AACtC;AAEO,MAAM,4BAA4B;"}
@@ -0,0 +1,11 @@
1
+ export { default as ActiveFiltersBar } from './ActiveFiltersBar';
2
+ export { default as FilterChipsRow } from './FilterChipsRow';
3
+ export { default as FilterFieldControl } from './FilterFieldControl';
4
+ export { default as FiltersButton } from './FiltersButton';
5
+ export { default as FiltersForm } from './FiltersForm';
6
+ export * from './filtersLayout';
7
+ export { default as FiltersPanel } from './FiltersPanel';
8
+ export { default as FiltersSummaryTooltip } from './FiltersSummaryTooltip';
9
+ export * from './filterTypes';
10
+ export * from './filterValues';
11
+ export { useFilters } from './useFilters';
@@ -0,0 +1,32 @@
1
+ import { default as default2 } from "./ActiveFiltersBar.js";
2
+ import { default as default3 } from "./FilterChipsRow.js";
3
+ import { default as default4 } from "./FilterFieldControl.js";
4
+ import { default as default5 } from "./FiltersButton.js";
5
+ import { default as default6 } from "./FiltersForm.js";
6
+ import { FILTERS_POPOVER_WIDTH_REM, getFiltersPanelWidth } from "./filtersLayout.js";
7
+ import { default as default7 } from "./FiltersPanel.js";
8
+ import { default as default8 } from "./FiltersSummaryTooltip.js";
9
+ import { areFilterValuesEqual, buildEmptyFilterValues, clearDependentValues, countActiveFilters, emptyValueForKind, formatFilterValue, getActiveFilterFields, getVisibleFilterFields, isFilterValueEmpty } from "./filterValues.js";
10
+ import { useFilters } from "./useFilters.js";
11
+ export {
12
+ default2 as ActiveFiltersBar,
13
+ FILTERS_POPOVER_WIDTH_REM,
14
+ default3 as FilterChipsRow,
15
+ default4 as FilterFieldControl,
16
+ default5 as FiltersButton,
17
+ default6 as FiltersForm,
18
+ default7 as FiltersPanel,
19
+ default8 as FiltersSummaryTooltip,
20
+ areFilterValuesEqual,
21
+ buildEmptyFilterValues,
22
+ clearDependentValues,
23
+ countActiveFilters,
24
+ emptyValueForKind,
25
+ formatFilterValue,
26
+ getActiveFilterFields,
27
+ getFiltersPanelWidth,
28
+ getVisibleFilterFields,
29
+ isFilterValueEmpty,
30
+ useFilters
31
+ };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,33 @@
1
+ import { TFilterField, TFilterValues } from './filterTypes';
2
+ export interface IUseFiltersParams {
3
+ fields: Array<TFilterField>;
4
+ /** Values owned by the host. When given, the hook is controlled. */
5
+ value?: TFilterValues;
6
+ onChange?: (values: TFilterValues) => void;
7
+ initialValues?: TFilterValues;
8
+ /**
9
+ * Namespace for URL persistence. Without it, filters live only in memory
10
+ * (current behaviour everywhere in the app).
11
+ */
12
+ urlKey?: string;
13
+ }
14
+ export interface IUseFiltersResult {
15
+ /** Values currently in effect on the list. */
16
+ applied: TFilterValues;
17
+ /** Values being edited inside the drawer. */
18
+ draft: TFilterValues;
19
+ isDirty: boolean;
20
+ activeCount: number;
21
+ activeFields: Array<TFilterField>;
22
+ setDraftValue: (key: string, value: unknown) => void;
23
+ setDraft: (values: TFilterValues) => void;
24
+ resetDraft: () => void;
25
+ apply: () => TFilterValues;
26
+ clear: () => TFilterValues;
27
+ removeApplied: (key: string) => TFilterValues;
28
+ }
29
+ /**
30
+ * Single owner of filter state: draft while the panel is open, applied once
31
+ * confirmed. Every consumer used to rebuild this by hand, each one differently.
32
+ */
33
+ export declare const useFilters: ({ fields, value, onChange, initialValues, urlKey, }: IUseFiltersParams) => IUseFiltersResult;
@@ -0,0 +1,162 @@
1
+ import { useMemo, useCallback, useState, useRef, useEffect } from "react";
2
+ import { useSearchParams } from "react-router-dom";
3
+ import { buildEmptyFilterValues, clearDependentValues, emptyValueForKind, getActiveFilterFields, areFilterValuesEqual, countActiveFilters } from "./filterValues.js";
4
+ const URL_PREFIX = "f.";
5
+ const serializeValue = (value) => {
6
+ if (value === null || value === void 0) return null;
7
+ if (Array.isArray(value)) return value.length > 0 ? value.map(String).join(",") : null;
8
+ if (typeof value === "boolean") return value ? "1" : null;
9
+ if (typeof value === "object") {
10
+ const entries = Object.entries(value).filter(
11
+ ([, entry]) => entry !== void 0 && entry !== null && entry !== ""
12
+ );
13
+ return entries.length > 0 ? JSON.stringify(Object.fromEntries(entries)) : null;
14
+ }
15
+ const asString = String(value);
16
+ return asString.trim().length > 0 ? asString : null;
17
+ };
18
+ const deserializeValue = (field, raw) => {
19
+ switch (field.kind) {
20
+ case "multiselect":
21
+ case "checkbox-group":
22
+ case "tags":
23
+ return raw.split(",").filter(Boolean);
24
+ case "boolean":
25
+ return raw === "1" || raw === "true";
26
+ case "number":
27
+ return raw;
28
+ case "date-range":
29
+ case "range":
30
+ try {
31
+ return JSON.parse(raw);
32
+ } catch {
33
+ return emptyValueForKind(field.kind);
34
+ }
35
+ case "async-select":
36
+ return field.multiple ? raw.split(",").filter(Boolean) : raw;
37
+ default:
38
+ return raw;
39
+ }
40
+ };
41
+ const useFilters = ({
42
+ fields,
43
+ value,
44
+ onChange,
45
+ initialValues,
46
+ urlKey
47
+ }) => {
48
+ const safeFields = useMemo(() => Array.isArray(fields) ? fields : [], [fields]);
49
+ const [searchParams, setSearchParams] = useSearchParams();
50
+ const readFromUrl = useCallback(() => {
51
+ if (!urlKey) return null;
52
+ const fromUrl = {};
53
+ let found = false;
54
+ safeFields.forEach((field) => {
55
+ const raw = searchParams.get(`${URL_PREFIX}${urlKey}.${field.key}`);
56
+ if (raw === null) return;
57
+ found = true;
58
+ fromUrl[field.key] = deserializeValue(field, raw);
59
+ });
60
+ return found ? fromUrl : null;
61
+ }, [urlKey, safeFields, searchParams]);
62
+ const buildInitial = useCallback(
63
+ () => ({
64
+ ...buildEmptyFilterValues(safeFields),
65
+ ...initialValues ?? {},
66
+ ...readFromUrl() ?? {}
67
+ }),
68
+ // `readFromUrl` is only meant to seed the first render; re-reading it on
69
+ // every change would fight the user typing in the drawer.
70
+ [safeFields]
71
+ );
72
+ const [internalApplied, setInternalApplied] = useState(buildInitial);
73
+ const applied = value ?? internalApplied;
74
+ const [draft, setDraftState] = useState(applied);
75
+ const draftRef = useRef(draft);
76
+ const commitDraft = useCallback((next) => {
77
+ draftRef.current = next;
78
+ setDraftState(next);
79
+ }, []);
80
+ const appliedKey = JSON.stringify(applied);
81
+ useEffect(() => {
82
+ commitDraft(applied);
83
+ }, [appliedKey, commitDraft]);
84
+ const writeToUrl = useCallback(
85
+ (next) => {
86
+ if (!urlKey) return;
87
+ setSearchParams(
88
+ (current) => {
89
+ const params = new URLSearchParams(current);
90
+ safeFields.forEach((field) => {
91
+ const paramKey = `${URL_PREFIX}${urlKey}.${field.key}`;
92
+ const serialized = serializeValue(next[field.key]);
93
+ if (serialized === null) {
94
+ params.delete(paramKey);
95
+ } else {
96
+ params.set(paramKey, serialized);
97
+ }
98
+ });
99
+ return params;
100
+ },
101
+ { replace: true }
102
+ );
103
+ },
104
+ [urlKey, safeFields, setSearchParams]
105
+ );
106
+ const publish = useCallback(
107
+ (next) => {
108
+ if (value === void 0) setInternalApplied(next);
109
+ writeToUrl(next);
110
+ onChange?.(next);
111
+ return next;
112
+ },
113
+ [value, writeToUrl, onChange]
114
+ );
115
+ const setDraftValue = useCallback(
116
+ (key, nextValue) => {
117
+ const withValue = { ...draftRef.current, [key]: nextValue };
118
+ commitDraft(clearDependentValues(safeFields, key, withValue));
119
+ },
120
+ [safeFields, commitDraft]
121
+ );
122
+ const setDraft = useCallback((values) => commitDraft(values), [commitDraft]);
123
+ const resetDraft = useCallback(() => commitDraft(applied), [applied, commitDraft]);
124
+ const apply = useCallback(() => publish({ ...draftRef.current }), [publish]);
125
+ const clear = useCallback(() => {
126
+ const empty = buildEmptyFilterValues(safeFields);
127
+ commitDraft(empty);
128
+ return publish(empty);
129
+ }, [safeFields, commitDraft, publish]);
130
+ const removeApplied = useCallback(
131
+ (key) => {
132
+ const field = safeFields.find((item) => item.key === key);
133
+ if (!field) return applied;
134
+ const next = clearDependentValues(safeFields, key, {
135
+ ...applied,
136
+ [key]: emptyValueForKind(field.kind)
137
+ });
138
+ commitDraft(next);
139
+ return publish(next);
140
+ },
141
+ [safeFields, applied, commitDraft, publish]
142
+ );
143
+ const activeFields = useMemo(() => getActiveFilterFields(safeFields, applied), [safeFields, applied]);
144
+ const isDirty = useMemo(() => !areFilterValuesEqual(draft, applied), [draft, applied]);
145
+ return {
146
+ applied,
147
+ draft,
148
+ isDirty,
149
+ activeCount: countActiveFilters(safeFields, applied),
150
+ activeFields,
151
+ setDraftValue,
152
+ setDraft,
153
+ resetDraft,
154
+ apply,
155
+ clear,
156
+ removeApplied
157
+ };
158
+ };
159
+ export {
160
+ useFilters
161
+ };
162
+ //# sourceMappingURL=useFilters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilters.js","sources":["../../../../src/components/Search/filters/useFilters.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useSearchParams } from 'react-router-dom';\n\nimport { TFilterField, TFilterValues } from './filterTypes';\nimport {\n areFilterValuesEqual,\n buildEmptyFilterValues,\n clearDependentValues,\n countActiveFilters,\n emptyValueForKind,\n getActiveFilterFields,\n} from './filterValues';\n\nconst URL_PREFIX = 'f.';\n\nconst serializeValue = (value: unknown): string | null => {\n if (value === null || value === undefined) return null;\n if (Array.isArray(value)) return value.length > 0 ? value.map(String).join(',') : null;\n if (typeof value === 'boolean') return value ? '1' : null;\n if (typeof value === 'object') {\n const entries = Object.entries(value as Record<string, unknown>).filter(\n ([, entry]) => entry !== undefined && entry !== null && entry !== '',\n );\n return entries.length > 0 ? JSON.stringify(Object.fromEntries(entries)) : null;\n }\n const asString = String(value);\n\n return asString.trim().length > 0 ? asString : null;\n};\n\nconst deserializeValue = (field: TFilterField, raw: string): unknown => {\n switch (field.kind) {\n case 'multiselect':\n case 'checkbox-group':\n case 'tags':\n return raw.split(',').filter(Boolean);\n case 'boolean':\n return raw === '1' || raw === 'true';\n case 'number':\n return raw;\n case 'date-range':\n case 'range':\n try {\n return JSON.parse(raw);\n } catch {\n return emptyValueForKind(field.kind);\n }\n case 'async-select':\n return field.multiple ? raw.split(',').filter(Boolean) : raw;\n default:\n return raw;\n }\n};\n\nexport interface IUseFiltersParams {\n fields: Array<TFilterField>;\n /** Values owned by the host. When given, the hook is controlled. */\n value?: TFilterValues;\n onChange?: (values: TFilterValues) => void;\n initialValues?: TFilterValues;\n /**\n * Namespace for URL persistence. Without it, filters live only in memory\n * (current behaviour everywhere in the app).\n */\n urlKey?: string;\n}\n\nexport interface IUseFiltersResult {\n /** Values currently in effect on the list. */\n applied: TFilterValues;\n /** Values being edited inside the drawer. */\n draft: TFilterValues;\n isDirty: boolean;\n activeCount: number;\n activeFields: Array<TFilterField>;\n setDraftValue: (key: string, value: unknown) => void;\n setDraft: (values: TFilterValues) => void;\n resetDraft: () => void;\n apply: () => TFilterValues;\n clear: () => TFilterValues;\n removeApplied: (key: string) => TFilterValues;\n}\n\n/**\n * Single owner of filter state: draft while the panel is open, applied once\n * confirmed. Every consumer used to rebuild this by hand, each one differently.\n */\nexport const useFilters = ({\n fields,\n value,\n onChange,\n initialValues,\n urlKey,\n}: IUseFiltersParams): IUseFiltersResult => {\n const safeFields = useMemo(() => (Array.isArray(fields) ? fields : []), [fields]);\n const [searchParams, setSearchParams] = useSearchParams();\n\n const readFromUrl = useCallback((): TFilterValues | null => {\n if (!urlKey) return null;\n const fromUrl: TFilterValues = {};\n let found = false;\n safeFields.forEach((field) => {\n const raw = searchParams.get(`${URL_PREFIX}${urlKey}.${field.key}`);\n if (raw === null) return;\n found = true;\n fromUrl[field.key] = deserializeValue(field, raw);\n });\n\n return found ? fromUrl : null;\n }, [urlKey, safeFields, searchParams]);\n\n const buildInitial = useCallback(\n (): TFilterValues => ({\n ...buildEmptyFilterValues(safeFields),\n ...(initialValues ?? {}),\n ...(readFromUrl() ?? {}),\n }),\n // `readFromUrl` is only meant to seed the first render; re-reading it on\n // every change would fight the user typing in the drawer.\n [safeFields],\n );\n\n const [internalApplied, setInternalApplied] = useState<TFilterValues>(buildInitial);\n const applied = value ?? internalApplied;\n\n const [draft, setDraftState] = useState<TFilterValues>(applied);\n const draftRef = useRef<TFilterValues>(draft);\n\n const commitDraft = useCallback((next: TFilterValues) => {\n draftRef.current = next;\n setDraftState(next);\n }, []);\n\n const appliedKey = JSON.stringify(applied);\n\n // The host can apply values from outside (deep link, a freshly created\n // record, a preset). The draft must follow, or the panel would reopen\n // showing stale values.\n useEffect(() => {\n commitDraft(applied);\n }, [appliedKey, commitDraft]);\n\n const writeToUrl = useCallback(\n (next: TFilterValues) => {\n if (!urlKey) return;\n setSearchParams(\n (current) => {\n const params = new URLSearchParams(current);\n safeFields.forEach((field) => {\n const paramKey = `${URL_PREFIX}${urlKey}.${field.key}`;\n const serialized = serializeValue(next[field.key]);\n if (serialized === null) {\n params.delete(paramKey);\n } else {\n params.set(paramKey, serialized);\n }\n });\n\n return params;\n },\n { replace: true },\n );\n },\n [urlKey, safeFields, setSearchParams],\n );\n\n const publish = useCallback(\n (next: TFilterValues) => {\n if (value === undefined) setInternalApplied(next);\n writeToUrl(next);\n onChange?.(next);\n\n return next;\n },\n [value, writeToUrl, onChange],\n );\n\n const setDraftValue = useCallback(\n (key: string, nextValue: unknown) => {\n const withValue = { ...draftRef.current, [key]: nextValue };\n commitDraft(clearDependentValues(safeFields, key, withValue));\n },\n [safeFields, commitDraft],\n );\n\n const setDraft = useCallback((values: TFilterValues) => commitDraft(values), [commitDraft]);\n\n const resetDraft = useCallback(() => commitDraft(applied), [applied, commitDraft]);\n\n const apply = useCallback(() => publish({ ...draftRef.current }), [publish]);\n\n const clear = useCallback(() => {\n const empty = buildEmptyFilterValues(safeFields);\n commitDraft(empty);\n\n return publish(empty);\n }, [safeFields, commitDraft, publish]);\n\n const removeApplied = useCallback(\n (key: string) => {\n const field = safeFields.find((item) => item.key === key);\n if (!field) return applied;\n const next = clearDependentValues(safeFields, key, {\n ...applied,\n [key]: emptyValueForKind(field.kind),\n });\n commitDraft(next);\n\n return publish(next);\n },\n [safeFields, applied, commitDraft, publish],\n );\n\n const activeFields = useMemo(() => getActiveFilterFields(safeFields, applied), [safeFields, applied]);\n\n const isDirty = useMemo(() => !areFilterValuesEqual(draft, applied), [draft, applied]);\n\n return {\n applied,\n draft,\n isDirty,\n activeCount: countActiveFilters(safeFields, applied),\n activeFields,\n setDraftValue,\n setDraft,\n resetDraft,\n apply,\n clear,\n removeApplied,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './filters';
2
+ export { default as UnifiedSearchBar } from './UnifiedSearchBar';
@@ -0,0 +1,34 @@
1
+ import { default as default2 } from "./filters/ActiveFiltersBar.js";
2
+ import { default as default3 } from "./filters/FilterChipsRow.js";
3
+ import { default as default4 } from "./filters/FilterFieldControl.js";
4
+ import { default as default5 } from "./filters/FiltersButton.js";
5
+ import { default as default6 } from "./filters/FiltersForm.js";
6
+ import { FILTERS_POPOVER_WIDTH_REM, getFiltersPanelWidth } from "./filters/filtersLayout.js";
7
+ import { default as default7 } from "./filters/FiltersPanel.js";
8
+ import { default as default8 } from "./filters/FiltersSummaryTooltip.js";
9
+ import { areFilterValuesEqual, buildEmptyFilterValues, clearDependentValues, countActiveFilters, emptyValueForKind, formatFilterValue, getActiveFilterFields, getVisibleFilterFields, isFilterValueEmpty } from "./filters/filterValues.js";
10
+ import { useFilters } from "./filters/useFilters.js";
11
+ import { default as default9 } from "./UnifiedSearchBar.js";
12
+ export {
13
+ default2 as ActiveFiltersBar,
14
+ FILTERS_POPOVER_WIDTH_REM,
15
+ default3 as FilterChipsRow,
16
+ default4 as FilterFieldControl,
17
+ default5 as FiltersButton,
18
+ default6 as FiltersForm,
19
+ default7 as FiltersPanel,
20
+ default8 as FiltersSummaryTooltip,
21
+ default9 as UnifiedSearchBar,
22
+ areFilterValuesEqual,
23
+ buildEmptyFilterValues,
24
+ clearDependentValues,
25
+ countActiveFilters,
26
+ emptyValueForKind,
27
+ formatFilterValue,
28
+ getActiveFilterFields,
29
+ getFiltersPanelWidth,
30
+ getVisibleFilterFields,
31
+ isFilterValueEmpty,
32
+ useFilters
33
+ };
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,10 @@
1
+ import { JSX } from 'react';
2
+ interface IIconProps {
3
+ id: number;
4
+ open: number;
5
+ slot?: JSX.Element;
6
+ size?: number;
7
+ iconClassName?: string;
8
+ }
9
+ export declare function AccordionIcon({ id, open, slot, size, iconClassName }: IIconProps): JSX.Element;
10
+ export {};
@@ -0,0 +1,22 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useTranslation } from "react-i18next";
3
+ import ControlledTooltip from "./ControlledTooltip.js";
4
+ import { MaterialSymbol } from "./MaterialSymbol/index.js";
5
+ function AccordionIcon({ id, open, slot, size = 20, iconClassName }) {
6
+ const { t } = useTranslation("ui");
7
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-row gap-x-2", children: [
8
+ slot,
9
+ /* @__PURE__ */ jsx(ControlledTooltip, { content: open === id ? t("accordion.hide") : t("accordion.expand"), children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
10
+ MaterialSymbol,
11
+ {
12
+ icon: open === id ? "keyboard_arrow_up" : "keyboard_arrow_down",
13
+ size,
14
+ className: iconClassName
15
+ }
16
+ ) }) })
17
+ ] });
18
+ }
19
+ export {
20
+ AccordionIcon
21
+ };
22
+ //# sourceMappingURL=AccordionIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionIcon.js","sources":["../../../src/components/UI/AccordionIcon.tsx"],"sourcesContent":["import { JSX } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\nimport { MaterialSymbol } from '@/components/UI/MaterialSymbol';\n\ninterface IIconProps {\n id: number;\n open: number;\n slot?: JSX.Element;\n size?: number;\n iconClassName?: string;\n}\n\nexport function AccordionIcon({ id, open, slot, size = 20, iconClassName }: IIconProps) {\n const { t } = useTranslation('ui');\n\n return (\n <div className=\"flex flex-row gap-x-2\">\n {slot}\n\n <ControlledTooltip content={open === id ? t('accordion.hide') : t('accordion.expand')}>\n <div>\n <MaterialSymbol\n icon={open === id ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}\n size={size}\n className={iconClassName}\n />\n </div>\n </ControlledTooltip>\n </div>\n );\n}\n"],"names":[],"mappings":";;;;AAcO,SAAS,cAAc,EAAE,IAAI,MAAM,MAAM,OAAO,IAAI,iBAA6B;AACtF,QAAM,EAAE,EAAA,IAAM,eAAe,IAAI;AAEjC,SACE,qBAAC,OAAA,EAAI,WAAU,yBACZ,UAAA;AAAA,IAAA;AAAA,IAED,oBAAC,mBAAA,EAAkB,SAAS,SAAS,KAAK,EAAE,gBAAgB,IAAI,EAAE,kBAAkB,GAClF,UAAA,oBAAC,OAAA,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,SAAS,KAAK,sBAAsB;AAAA,QAC1C;AAAA,QACA,WAAW;AAAA,MAAA;AAAA,IAAA,GAEf,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ export declare const isAlertDismissed: (dismissKey: string) => boolean;
2
+ export declare const markAlertDismissed: (dismissKey: string) => void;
@@ -0,0 +1,22 @@
1
+ import { readUiPreference, resolveUiPreferenceScopeId, writeUiPreference } from "../../../helpers/uiPreferences.js";
2
+ const DISMISSED_ALERTS_KEY = "dismissed_alerts";
3
+ const scopedKey = (dismissKey) => {
4
+ const scopeId = resolveUiPreferenceScopeId();
5
+ return scopeId ? `${scopeId}:${dismissKey}` : null;
6
+ };
7
+ const readStore = () => readUiPreference(DISMISSED_ALERTS_KEY) ?? {};
8
+ const isAlertDismissed = (dismissKey) => {
9
+ const key = scopedKey(dismissKey);
10
+ return key ? readStore()[key] === true : false;
11
+ };
12
+ const markAlertDismissed = (dismissKey) => {
13
+ const key = scopedKey(dismissKey);
14
+ if (!key) return;
15
+ const store = readStore();
16
+ writeUiPreference(DISMISSED_ALERTS_KEY, { ...store, [key]: true });
17
+ };
18
+ export {
19
+ isAlertDismissed,
20
+ markAlertDismissed
21
+ };
22
+ //# sourceMappingURL=dismissedAlertsStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dismissedAlertsStore.js","sources":["../../../../src/components/UI/AlertInfo/dismissedAlertsStore.ts"],"sourcesContent":["import { readUiPreference, resolveUiPreferenceScopeId, writeUiPreference } from '@/helpers/uiPreferences';\n\n// Single consolidated entry for every dismissible alert, mirroring the DataTable\n// columns store. Each dismissal is keyed by `${scopeId}:${dismissKey}` so the\n// preference is scoped per user and per alert on a shared browser profile.\nconst DISMISSED_ALERTS_KEY = 'dismissed_alerts';\n\ntype TDismissedAlertsStore = Record<string, boolean>;\n\n// Returns null when there is no scope (no authenticated user), so the preference is\n// never written to (or read from) a shared bucket that would collide across accounts.\nconst scopedKey = (dismissKey: string): string | null => {\n const scopeId = resolveUiPreferenceScopeId();\n return scopeId ? `${scopeId}:${dismissKey}` : null;\n};\n\nconst readStore = (): TDismissedAlertsStore => readUiPreference<TDismissedAlertsStore>(DISMISSED_ALERTS_KEY) ?? {};\n\nexport const isAlertDismissed = (dismissKey: string): boolean => {\n const key = scopedKey(dismissKey);\n return key ? readStore()[key] === true : false;\n};\n\nexport const markAlertDismissed = (dismissKey: string): void => {\n const key = scopedKey(dismissKey);\n if (!key) return;\n\n const store = readStore();\n writeUiPreference(DISMISSED_ALERTS_KEY, { ...store, [key]: true });\n};\n"],"names":[],"mappings":";AAKA,MAAM,uBAAuB;AAM7B,MAAM,YAAY,CAAC,eAAsC;AACvD,QAAM,UAAU,2BAAA;AAChB,SAAO,UAAU,GAAG,OAAO,IAAI,UAAU,KAAK;AAChD;AAEA,MAAM,YAAY,MAA6B,iBAAwC,oBAAoB,KAAK,CAAA;AAEzG,MAAM,mBAAmB,CAAC,eAAgC;AAC/D,QAAM,MAAM,UAAU,UAAU;AAChC,SAAO,MAAM,UAAA,EAAY,GAAG,MAAM,OAAO;AAC3C;AAEO,MAAM,qBAAqB,CAAC,eAA6B;AAC9D,QAAM,MAAM,UAAU,UAAU;AAChC,MAAI,CAAC,IAAK;AAEV,QAAM,QAAQ,UAAA;AACd,oBAAkB,sBAAsB,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,MAAM;AACnE;"}
@@ -0,0 +1,30 @@
1
+ import { TChipTone } from '../Chips/chipTones';
2
+ import { SymbolCodepoints } from '../MaterialSymbol';
3
+ /** A chip is either a plain label (soft purple) or carries its own tone and icon. */
4
+ export type TAlertInfoField = string | {
5
+ label: string;
6
+ tone?: TChipTone;
7
+ icon?: SymbolCodepoints;
8
+ };
9
+ interface IAlertInfoProps {
10
+ title: string;
11
+ description?: string;
12
+ /** System/native labels rendered as chips. Strings default to the purple tone. */
13
+ fields?: Array<TAlertInfoField>;
14
+ /** Default leading icon for every chip that does not set its own (e.g. a lock for immutable values). */
15
+ fieldsIcon?: SymbolCodepoints;
16
+ /** Caption rendered inline right after the chips. The consumer composes it from `t()`. */
17
+ fieldsNote?: React.ReactNode;
18
+ /** Closing line rendered below the chips. The consumer composes it from `t()`. */
19
+ footnote?: React.ReactNode;
20
+ /**
21
+ * When set, the alert renders a dismiss button and persists the dismissal per
22
+ * user under this key, so dismissing one alert never affects the others.
23
+ */
24
+ dismissKey?: string;
25
+ /** Accessible name for the dismiss button, always from `t()`. */
26
+ dismissLabel?: string;
27
+ className?: string;
28
+ }
29
+ declare const AlertInfo: React.FC<IAlertInfoProps>;
30
+ export default AlertInfo;
@@ -0,0 +1,78 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useState, useCallback } from "react";
3
+ import classNames from "classnames";
4
+ import ControlledButton from "../../Form/ControlledButton.js";
5
+ import OutlinedChip from "../Chips/OutlinedChip.js";
6
+ import ControlledTooltip from "../ControlledTooltip.js";
7
+ import { MaterialSymbol } from "../MaterialSymbol/index.js";
8
+ import { isAlertDismissed, markAlertDismissed } from "./dismissedAlertsStore.js";
9
+ const AlertInfo = ({
10
+ title,
11
+ description,
12
+ fields,
13
+ fieldsIcon,
14
+ fieldsNote,
15
+ footnote,
16
+ dismissKey,
17
+ dismissLabel,
18
+ className
19
+ }) => {
20
+ const [visible, setVisible] = useState(() => !(dismissKey && isAlertDismissed(dismissKey)));
21
+ const handleDismiss = useCallback(() => {
22
+ if (dismissKey) markAlertDismissed(dismissKey);
23
+ setVisible(false);
24
+ }, [dismissKey]);
25
+ if (!visible) return null;
26
+ const safeFields = (fields ?? []).map(
27
+ (field) => typeof field === "string" ? { label: field, tone: "purple", icon: fieldsIcon } : field
28
+ );
29
+ const dismissButton = dismissKey && dismissLabel ? /* @__PURE__ */ jsx(
30
+ ControlledButton,
31
+ {
32
+ defaultHtmlButton: true,
33
+ onClick: handleDismiss,
34
+ "aria-label": dismissLabel,
35
+ className: "interactive flex size-7 shrink-0 items-center justify-center rounded-lg text-brand-emphasis hover:bg-brand-soft",
36
+ children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "close", size: 18 })
37
+ }
38
+ ) : null;
39
+ return /* @__PURE__ */ jsxs(
40
+ "div",
41
+ {
42
+ role: "status",
43
+ "aria-live": "polite",
44
+ className: classNames(
45
+ "flex items-start gap-3 rounded-xl border border-l-[3px] border-brand-border border-l-brand bg-brand-soft/50 p-4",
46
+ className
47
+ ),
48
+ children: [
49
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "flex size-9 shrink-0 items-center justify-center rounded-lg bg-brand text-brand-fg", children: /* @__PURE__ */ jsx(MaterialSymbol, { icon: "info", size: 20 }) }),
50
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-y-2", children: [
51
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold text-foreground", children: title }),
52
+ description && /* @__PURE__ */ jsx("p", { className: "text-xs text-foreground-muted", children: description }),
53
+ safeFields.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1.5", children: [
54
+ safeFields.map((field) => /* @__PURE__ */ jsx(
55
+ OutlinedChip,
56
+ {
57
+ label: field.label,
58
+ tone: field.tone ?? "purple",
59
+ variant: "outlined",
60
+ size: "sm",
61
+ preserveLabelCase: true,
62
+ chipIcon: field.icon ?? fieldsIcon
63
+ },
64
+ field.label
65
+ )),
66
+ fieldsNote && /* @__PURE__ */ jsx("span", { className: "text-xs italic text-foreground-subtle", children: fieldsNote })
67
+ ] }),
68
+ footnote && /* @__PURE__ */ jsx("p", { className: "text-xs text-foreground-muted", children: footnote })
69
+ ] }),
70
+ dismissButton && dismissLabel && /* @__PURE__ */ jsx(ControlledTooltip, { content: dismissLabel, children: dismissButton })
71
+ ]
72
+ }
73
+ );
74
+ };
75
+ export {
76
+ AlertInfo as default
77
+ };
78
+ //# sourceMappingURL=index.js.map