@umodeapporg/ui 0.0.0-canary.ca10e69

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 (845) hide show
  1. package/README.md +78 -0
  2. package/dist/assets/images/common-pngs/sparkles.png.js +5 -0
  3. package/dist/assets/images/common-pngs/sparkles.png.js.map +1 -0
  4. package/dist/assets/umode-ui.css +467 -0
  5. package/dist/components/DateTime/DatePicker.d.ts +21 -0
  6. package/dist/components/DateTime/DatePicker.js +124 -0
  7. package/dist/components/DateTime/DatePicker.js.map +1 -0
  8. package/dist/components/DateTime/DateRangePicker.d.ts +21 -0
  9. package/dist/components/DateTime/DateRangePicker.js +208 -0
  10. package/dist/components/DateTime/DateRangePicker.js.map +1 -0
  11. package/dist/components/Form/ControlledButton.d.ts +25 -0
  12. package/dist/components/Form/ControlledButton.js +73 -0
  13. package/dist/components/Form/ControlledButton.js.map +1 -0
  14. package/dist/components/Form/ControlledCheckbox.d.ts +16 -0
  15. package/dist/components/Form/ControlledCheckbox.js +115 -0
  16. package/dist/components/Form/ControlledCheckbox.js.map +1 -0
  17. package/dist/components/Form/ControlledDialog.d.ts +51 -0
  18. package/dist/components/Form/ControlledDialog.js +191 -0
  19. package/dist/components/Form/ControlledDialog.js.map +1 -0
  20. package/dist/components/Form/ControlledDialogPrimitives.d.ts +53 -0
  21. package/dist/components/Form/ControlledDialogPrimitives.js +245 -0
  22. package/dist/components/Form/ControlledDialogPrimitives.js.map +1 -0
  23. package/dist/components/Form/ControlledDrawer.d.ts +37 -0
  24. package/dist/components/Form/ControlledDrawer.js +241 -0
  25. package/dist/components/Form/ControlledDrawer.js.map +1 -0
  26. package/dist/components/Form/ControlledForm/InputField.d.ts +11 -0
  27. package/dist/components/Form/ControlledForm/InputField.js +75 -0
  28. package/dist/components/Form/ControlledForm/InputField.js.map +1 -0
  29. package/dist/components/Form/ControlledForm/index.d.ts +27 -0
  30. package/dist/components/Form/ControlledForm/index.js +113 -0
  31. package/dist/components/Form/ControlledForm/index.js.map +1 -0
  32. package/dist/components/Form/ControlledImage/Img.d.ts +11 -0
  33. package/dist/components/Form/ControlledImage/Img.js +29 -0
  34. package/dist/components/Form/ControlledImage/Img.js.map +1 -0
  35. package/dist/components/Form/ControlledImage/index.d.ts +33 -0
  36. package/dist/components/Form/ControlledImage/index.js +110 -0
  37. package/dist/components/Form/ControlledImage/index.js.map +1 -0
  38. package/dist/components/Form/ControlledImage/useImage.d.ts +9 -0
  39. package/dist/components/Form/ControlledImage/useImage.js +110 -0
  40. package/dist/components/Form/ControlledImage/useImage.js.map +1 -0
  41. package/dist/components/Form/ControlledInput.d.ts +23 -0
  42. package/dist/components/Form/ControlledInput.js +52 -0
  43. package/dist/components/Form/ControlledInput.js.map +1 -0
  44. package/dist/components/Form/ControlledRadio.d.ts +15 -0
  45. package/dist/components/Form/ControlledRadio.js +91 -0
  46. package/dist/components/Form/ControlledRadio.js.map +1 -0
  47. package/dist/components/Form/ControlledSelect.d.ts +53 -0
  48. package/dist/components/Form/ControlledSelect.js +797 -0
  49. package/dist/components/Form/ControlledSelect.js.map +1 -0
  50. package/dist/components/Form/ControlledSwitch.d.ts +21 -0
  51. package/dist/components/Form/ControlledSwitch.js +107 -0
  52. package/dist/components/Form/ControlledSwitch.js.map +1 -0
  53. package/dist/components/Form/ControlledTabs.d.ts +75 -0
  54. package/dist/components/Form/ControlledTabs.js +515 -0
  55. package/dist/components/Form/ControlledTabs.js.map +1 -0
  56. package/dist/components/Form/ControlledTabsPrimitives.d.ts +43 -0
  57. package/dist/components/Form/ControlledTabsPrimitives.js +48 -0
  58. package/dist/components/Form/ControlledTabsPrimitives.js.map +1 -0
  59. package/dist/components/Form/ControlledTextarea.d.ts +22 -0
  60. package/dist/components/Form/ControlledTextarea.js +46 -0
  61. package/dist/components/Form/ControlledTextarea.js.map +1 -0
  62. package/dist/components/Form/ControlledTimeline.d.ts +26 -0
  63. package/dist/components/Form/ControlledTimeline.js +60 -0
  64. package/dist/components/Form/ControlledTimeline.js.map +1 -0
  65. package/dist/components/Form/ControlledViewToggle.d.ts +74 -0
  66. package/dist/components/Form/ControlledViewToggle.js +157 -0
  67. package/dist/components/Form/ControlledViewToggle.js.map +1 -0
  68. package/dist/components/Form/ControlledVoiceTextarea.d.ts +13 -0
  69. package/dist/components/Form/ControlledVoiceTextarea.js +99 -0
  70. package/dist/components/Form/ControlledVoiceTextarea.js.map +1 -0
  71. package/dist/components/Form/CurrencyInput.d.ts +8 -0
  72. package/dist/components/Form/CurrencyInput.js +17 -0
  73. package/dist/components/Form/CurrencyInput.js.map +1 -0
  74. package/dist/components/Form/FieldLabel.d.ts +16 -0
  75. package/dist/components/Form/FieldLabel.js +7 -0
  76. package/dist/components/Form/FieldLabel.js.map +1 -0
  77. package/dist/components/Form/RichTextEditor.d.ts +86 -0
  78. package/dist/components/Form/RichTextEditor.js +581 -0
  79. package/dist/components/Form/RichTextEditor.js.map +1 -0
  80. package/dist/components/Form/attachments/AttachmentPreviewList.d.ts +22 -0
  81. package/dist/components/Form/attachments/AttachmentPreviewList.js +95 -0
  82. package/dist/components/Form/attachments/AttachmentPreviewList.js.map +1 -0
  83. package/dist/components/Form/attachments/FileDropzone.d.ts +12 -0
  84. package/dist/components/Form/attachments/FileDropzone.js +84 -0
  85. package/dist/components/Form/attachments/FileDropzone.js.map +1 -0
  86. package/dist/components/Navigation/ControlledBreadcrumb.d.ts +13 -0
  87. package/dist/components/Navigation/ControlledBreadcrumb.js +24 -0
  88. package/dist/components/Navigation/ControlledBreadcrumb.js.map +1 -0
  89. package/dist/components/Navigation/ErrorPage.d.ts +2 -0
  90. package/dist/components/Navigation/ErrorPage.js +27 -0
  91. package/dist/components/Navigation/ErrorPage.js.map +1 -0
  92. package/dist/components/Navigation/LinkButton.d.ts +26 -0
  93. package/dist/components/Navigation/LinkButton.js +82 -0
  94. package/dist/components/Navigation/LinkButton.js.map +1 -0
  95. package/dist/components/Navigation/PageTitle.d.ts +95 -0
  96. package/dist/components/Navigation/PageTitle.js +241 -0
  97. package/dist/components/Navigation/PageTitle.js.map +1 -0
  98. package/dist/components/Navigation/PageTitleCollapseContext.d.ts +13 -0
  99. package/dist/components/Navigation/PageTitleCollapseContext.js +9 -0
  100. package/dist/components/Navigation/PageTitleCollapseContext.js.map +1 -0
  101. package/dist/components/Navigation/PageTitleNavigationContext.d.ts +21 -0
  102. package/dist/components/Navigation/PageTitleNavigationContext.js +17 -0
  103. package/dist/components/Navigation/PageTitleNavigationContext.js.map +1 -0
  104. package/dist/components/Navigation/ReactRouterNavigationAdapter.d.ts +7 -0
  105. package/dist/components/Navigation/ReactRouterNavigationAdapter.js +27 -0
  106. package/dist/components/Navigation/ReactRouterNavigationAdapter.js.map +1 -0
  107. package/dist/components/Navigation/UiNavigationContext.d.ts +38 -0
  108. package/dist/components/Navigation/UiNavigationContext.js +44 -0
  109. package/dist/components/Navigation/UiNavigationContext.js.map +1 -0
  110. package/dist/components/Search/UnifiedSearchBar.d.ts +31 -0
  111. package/dist/components/Search/UnifiedSearchBar.js +167 -0
  112. package/dist/components/Search/UnifiedSearchBar.js.map +1 -0
  113. package/dist/components/Search/filters/ActiveFiltersBar.d.ts +15 -0
  114. package/dist/components/Search/filters/ActiveFiltersBar.js +48 -0
  115. package/dist/components/Search/filters/ActiveFiltersBar.js.map +1 -0
  116. package/dist/components/Search/filters/FilterChipsRow.d.ts +17 -0
  117. package/dist/components/Search/filters/FilterChipsRow.js +113 -0
  118. package/dist/components/Search/filters/FilterChipsRow.js.map +1 -0
  119. package/dist/components/Search/filters/FilterFieldControl.d.ts +19 -0
  120. package/dist/components/Search/filters/FilterFieldControl.js +390 -0
  121. package/dist/components/Search/filters/FilterFieldControl.js.map +1 -0
  122. package/dist/components/Search/filters/FiltersButton.d.ts +24 -0
  123. package/dist/components/Search/filters/FiltersButton.js +52 -0
  124. package/dist/components/Search/filters/FiltersButton.js.map +1 -0
  125. package/dist/components/Search/filters/FiltersForm.d.ts +18 -0
  126. package/dist/components/Search/filters/FiltersForm.js +112 -0
  127. package/dist/components/Search/filters/FiltersForm.js.map +1 -0
  128. package/dist/components/Search/filters/FiltersPanel.d.ts +32 -0
  129. package/dist/components/Search/filters/FiltersPanel.js +266 -0
  130. package/dist/components/Search/filters/FiltersPanel.js.map +1 -0
  131. package/dist/components/Search/filters/FiltersSummaryTooltip.d.ts +20 -0
  132. package/dist/components/Search/filters/FiltersSummaryTooltip.js +26 -0
  133. package/dist/components/Search/filters/FiltersSummaryTooltip.js.map +1 -0
  134. package/dist/components/Search/filters/filterTypes.d.ts +162 -0
  135. package/dist/components/Search/filters/filterTypes.js +2 -0
  136. package/dist/components/Search/filters/filterTypes.js.map +1 -0
  137. package/dist/components/Search/filters/filterValues.d.ts +22 -0
  138. package/dist/components/Search/filters/filterValues.js +91 -0
  139. package/dist/components/Search/filters/filterValues.js.map +1 -0
  140. package/dist/components/Search/filters/filtersLayout.d.ts +4 -0
  141. package/dist/components/Search/filters/filtersLayout.js +18 -0
  142. package/dist/components/Search/filters/filtersLayout.js.map +1 -0
  143. package/dist/components/Search/filters/index.d.ts +11 -0
  144. package/dist/components/Search/filters/index.js +32 -0
  145. package/dist/components/Search/filters/index.js.map +1 -0
  146. package/dist/components/Search/filters/useFilters.d.ts +33 -0
  147. package/dist/components/Search/filters/useFilters.js +162 -0
  148. package/dist/components/Search/filters/useFilters.js.map +1 -0
  149. package/dist/components/Search/index.d.ts +2 -0
  150. package/dist/components/Search/index.js +34 -0
  151. package/dist/components/Search/index.js.map +1 -0
  152. package/dist/components/Shell/AppHeader.d.ts +25 -0
  153. package/dist/components/Shell/AppHeader.js +69 -0
  154. package/dist/components/Shell/AppHeader.js.map +1 -0
  155. package/dist/components/Shell/AppShell.d.ts +22 -0
  156. package/dist/components/Shell/AppShell.js +146 -0
  157. package/dist/components/Shell/AppShell.js.map +1 -0
  158. package/dist/components/Shell/AppSidebar.d.ts +20 -0
  159. package/dist/components/Shell/AppSidebar.js +93 -0
  160. package/dist/components/Shell/AppSidebar.js.map +1 -0
  161. package/dist/components/Shell/LanguageToggle.d.ts +8 -0
  162. package/dist/components/Shell/LanguageToggle.js +59 -0
  163. package/dist/components/Shell/LanguageToggle.js.map +1 -0
  164. package/dist/components/Shell/PumpkinGlyph.d.ts +13 -0
  165. package/dist/components/Shell/PumpkinGlyph.js +29 -0
  166. package/dist/components/Shell/PumpkinGlyph.js.map +1 -0
  167. package/dist/components/Shell/SidebarMenu.d.ts +29 -0
  168. package/dist/components/Shell/SidebarMenu.js +254 -0
  169. package/dist/components/Shell/SidebarMenu.js.map +1 -0
  170. package/dist/components/Shell/ThemeToggle.d.ts +18 -0
  171. package/dist/components/Shell/ThemeToggle.js +68 -0
  172. package/dist/components/Shell/ThemeToggle.js.map +1 -0
  173. package/dist/components/Shell/headerControlStyles.d.ts +10 -0
  174. package/dist/components/Shell/headerControlStyles.js +11 -0
  175. package/dist/components/Shell/headerControlStyles.js.map +1 -0
  176. package/dist/components/Shell/sidebarFavorites.d.ts +21 -0
  177. package/dist/components/Shell/sidebarFavorites.js +69 -0
  178. package/dist/components/Shell/sidebarFavorites.js.map +1 -0
  179. package/dist/components/Shell/useSidebarState.d.ts +14 -0
  180. package/dist/components/Shell/useSidebarState.js +106 -0
  181. package/dist/components/Shell/useSidebarState.js.map +1 -0
  182. package/dist/components/UI/AccordionIcon.d.ts +10 -0
  183. package/dist/components/UI/AccordionIcon.js +22 -0
  184. package/dist/components/UI/AccordionIcon.js.map +1 -0
  185. package/dist/components/UI/AlertInfo/dismissedAlertsStore.d.ts +2 -0
  186. package/dist/components/UI/AlertInfo/dismissedAlertsStore.js +22 -0
  187. package/dist/components/UI/AlertInfo/dismissedAlertsStore.js.map +1 -0
  188. package/dist/components/UI/AlertInfo/index.d.ts +30 -0
  189. package/dist/components/UI/AlertInfo/index.js +78 -0
  190. package/dist/components/UI/AlertInfo/index.js.map +1 -0
  191. package/dist/components/UI/BaseDataCard.d.ts +27 -0
  192. package/dist/components/UI/BaseDataCard.js +170 -0
  193. package/dist/components/UI/BaseDataCard.js.map +1 -0
  194. package/dist/components/UI/BulkActionBar.d.ts +35 -0
  195. package/dist/components/UI/BulkActionBar.js +127 -0
  196. package/dist/components/UI/BulkActionBar.js.map +1 -0
  197. package/dist/components/UI/Chips/OutlinedChip.d.ts +42 -0
  198. package/dist/components/UI/Chips/OutlinedChip.js +190 -0
  199. package/dist/components/UI/Chips/OutlinedChip.js.map +1 -0
  200. package/dist/components/UI/Chips/StatusChip.d.ts +8 -0
  201. package/dist/components/UI/Chips/StatusChip.js +33 -0
  202. package/dist/components/UI/Chips/StatusChip.js.map +1 -0
  203. package/dist/components/UI/Chips/chipTones.d.ts +6 -0
  204. package/dist/components/UI/Chips/chipTones.js +53 -0
  205. package/dist/components/UI/Chips/chipTones.js.map +1 -0
  206. package/dist/components/UI/ColorSwatch.d.ts +30 -0
  207. package/dist/components/UI/ColorSwatch.js +53 -0
  208. package/dist/components/UI/ColorSwatch.js.map +1 -0
  209. package/dist/components/UI/Colors.d.ts +10 -0
  210. package/dist/components/UI/Colors.js +41 -0
  211. package/dist/components/UI/Colors.js.map +1 -0
  212. package/dist/components/UI/ControlledAccordion.d.ts +38 -0
  213. package/dist/components/UI/ControlledAccordion.js +95 -0
  214. package/dist/components/UI/ControlledAccordion.js.map +1 -0
  215. package/dist/components/UI/ControlledCollapse.d.ts +18 -0
  216. package/dist/components/UI/ControlledCollapse.js +40 -0
  217. package/dist/components/UI/ControlledCollapse.js.map +1 -0
  218. package/dist/components/UI/ControlledMenu.d.ts +79 -0
  219. package/dist/components/UI/ControlledMenu.js +234 -0
  220. package/dist/components/UI/ControlledMenu.js.map +1 -0
  221. package/dist/components/UI/ControlledPopover.d.ts +59 -0
  222. package/dist/components/UI/ControlledPopover.js +189 -0
  223. package/dist/components/UI/ControlledPopover.js.map +1 -0
  224. package/dist/components/UI/ControlledProgress.d.ts +13 -0
  225. package/dist/components/UI/ControlledProgress.js +46 -0
  226. package/dist/components/UI/ControlledProgress.js.map +1 -0
  227. package/dist/components/UI/ControlledSlider.d.ts +15 -0
  228. package/dist/components/UI/ControlledSlider.js +34 -0
  229. package/dist/components/UI/ControlledSlider.js.map +1 -0
  230. package/dist/components/UI/ControlledTooltip.d.ts +21 -0
  231. package/dist/components/UI/ControlledTooltip.js +146 -0
  232. package/dist/components/UI/ControlledTooltip.js.map +1 -0
  233. package/dist/components/UI/CustomBadge.d.ts +15 -0
  234. package/dist/components/UI/CustomBadge.js +34 -0
  235. package/dist/components/UI/CustomBadge.js.map +1 -0
  236. package/dist/components/UI/CustomCard.d.ts +13 -0
  237. package/dist/components/UI/CustomCard.js +36 -0
  238. package/dist/components/UI/CustomCard.js.map +1 -0
  239. package/dist/components/UI/CustomChart.d.ts +21 -0
  240. package/dist/components/UI/CustomChart.js +108 -0
  241. package/dist/components/UI/CustomChart.js.map +1 -0
  242. package/dist/components/UI/DataTable/DataTable.d.ts +108 -0
  243. package/dist/components/UI/DataTable/DataTable.js +606 -0
  244. package/dist/components/UI/DataTable/DataTable.js.map +1 -0
  245. package/dist/components/UI/DataTable/DataTableAutoCard.d.ts +20 -0
  246. package/dist/components/UI/DataTable/DataTableAutoCard.js +39 -0
  247. package/dist/components/UI/DataTable/DataTableAutoCard.js.map +1 -0
  248. package/dist/components/UI/DataTable/DataTableBody.d.ts +33 -0
  249. package/dist/components/UI/DataTable/DataTableBody.js +260 -0
  250. package/dist/components/UI/DataTable/DataTableBody.js.map +1 -0
  251. package/dist/components/UI/DataTable/DataTableBodyCell.d.ts +21 -0
  252. package/dist/components/UI/DataTable/DataTableBodyCell.js +88 -0
  253. package/dist/components/UI/DataTable/DataTableBodyCell.js.map +1 -0
  254. package/dist/components/UI/DataTable/DataTableBulkEditButton.d.ts +11 -0
  255. package/dist/components/UI/DataTable/DataTableBulkEditButton.js +24 -0
  256. package/dist/components/UI/DataTable/DataTableBulkEditButton.js.map +1 -0
  257. package/dist/components/UI/DataTable/DataTableBulkEditDialog.d.ts +25 -0
  258. package/dist/components/UI/DataTable/DataTableBulkEditDialog.js +282 -0
  259. package/dist/components/UI/DataTable/DataTableBulkEditDialog.js.map +1 -0
  260. package/dist/components/UI/DataTable/DataTableBulkEditRowsPicker.d.ts +13 -0
  261. package/dist/components/UI/DataTable/DataTableBulkEditRowsPicker.js +95 -0
  262. package/dist/components/UI/DataTable/DataTableBulkEditRowsPicker.js.map +1 -0
  263. package/dist/components/UI/DataTable/DataTableBulkEditValueEditor.d.ts +20 -0
  264. package/dist/components/UI/DataTable/DataTableBulkEditValueEditor.js +94 -0
  265. package/dist/components/UI/DataTable/DataTableBulkEditValueEditor.js.map +1 -0
  266. package/dist/components/UI/DataTable/DataTableColumnToggle.d.ts +34 -0
  267. package/dist/components/UI/DataTable/DataTableColumnToggle.js +170 -0
  268. package/dist/components/UI/DataTable/DataTableColumnToggle.js.map +1 -0
  269. package/dist/components/UI/DataTable/DataTableDetailModal.d.ts +17 -0
  270. package/dist/components/UI/DataTable/DataTableDetailModal.js +109 -0
  271. package/dist/components/UI/DataTable/DataTableDetailModal.js.map +1 -0
  272. package/dist/components/UI/DataTable/DataTableDetailPanel.d.ts +21 -0
  273. package/dist/components/UI/DataTable/DataTableDetailPanel.js +51 -0
  274. package/dist/components/UI/DataTable/DataTableDetailPanel.js.map +1 -0
  275. package/dist/components/UI/DataTable/DataTableDetailTable.d.ts +35 -0
  276. package/dist/components/UI/DataTable/DataTableDetailTable.js +129 -0
  277. package/dist/components/UI/DataTable/DataTableDetailTable.js.map +1 -0
  278. package/dist/components/UI/DataTable/DataTableEditModeButton.d.ts +12 -0
  279. package/dist/components/UI/DataTable/DataTableEditModeButton.js +29 -0
  280. package/dist/components/UI/DataTable/DataTableEditModeButton.js.map +1 -0
  281. package/dist/components/UI/DataTable/DataTableFilters.d.ts +20 -0
  282. package/dist/components/UI/DataTable/DataTableFilters.js +65 -0
  283. package/dist/components/UI/DataTable/DataTableFilters.js.map +1 -0
  284. package/dist/components/UI/DataTable/DataTableHead.d.ts +27 -0
  285. package/dist/components/UI/DataTable/DataTableHead.js +198 -0
  286. package/dist/components/UI/DataTable/DataTableHead.js.map +1 -0
  287. package/dist/components/UI/DataTable/DataTablePagination.d.ts +15 -0
  288. package/dist/components/UI/DataTable/DataTablePagination.js +149 -0
  289. package/dist/components/UI/DataTable/DataTablePagination.js.map +1 -0
  290. package/dist/components/UI/DataTable/DataTableSaveButton.d.ts +13 -0
  291. package/dist/components/UI/DataTable/DataTableSaveButton.js +21 -0
  292. package/dist/components/UI/DataTable/DataTableSaveButton.js.map +1 -0
  293. package/dist/components/UI/DataTable/DataTableSegmentedTabs.d.ts +8 -0
  294. package/dist/components/UI/DataTable/DataTableSegmentedTabs.js +35 -0
  295. package/dist/components/UI/DataTable/DataTableSegmentedTabs.js.map +1 -0
  296. package/dist/components/UI/DataTable/DataTableStates.d.ts +17 -0
  297. package/dist/components/UI/DataTable/DataTableStates.js +59 -0
  298. package/dist/components/UI/DataTable/DataTableStates.js.map +1 -0
  299. package/dist/components/UI/DataTable/DataTableToolbar.d.ts +28 -0
  300. package/dist/components/UI/DataTable/DataTableToolbar.js +110 -0
  301. package/dist/components/UI/DataTable/DataTableToolbar.js.map +1 -0
  302. package/dist/components/UI/DataTable/applyDataTableFilters.d.ts +16 -0
  303. package/dist/components/UI/DataTable/applyDataTableFilters.js +54 -0
  304. package/dist/components/UI/DataTable/applyDataTableFilters.js.map +1 -0
  305. package/dist/components/UI/DataTable/bulkEditValues.d.ts +8 -0
  306. package/dist/components/UI/DataTable/bulkEditValues.js +13 -0
  307. package/dist/components/UI/DataTable/bulkEditValues.js.map +1 -0
  308. package/dist/components/UI/DataTable/cells/DataTableActionsCell.d.ts +7 -0
  309. package/dist/components/UI/DataTable/cells/DataTableActionsCell.js +55 -0
  310. package/dist/components/UI/DataTable/cells/DataTableActionsCell.js.map +1 -0
  311. package/dist/components/UI/DataTable/cells/DataTableCell.d.ts +15 -0
  312. package/dist/components/UI/DataTable/cells/DataTableCell.js +63 -0
  313. package/dist/components/UI/DataTable/cells/DataTableCell.js.map +1 -0
  314. package/dist/components/UI/DataTable/cells/DataTableCodeCell.d.ts +6 -0
  315. package/dist/components/UI/DataTable/cells/DataTableCodeCell.js +7 -0
  316. package/dist/components/UI/DataTable/cells/DataTableCodeCell.js.map +1 -0
  317. package/dist/components/UI/DataTable/cells/DataTableColorCell.d.ts +7 -0
  318. package/dist/components/UI/DataTable/cells/DataTableColorCell.js +10 -0
  319. package/dist/components/UI/DataTable/cells/DataTableColorCell.js.map +1 -0
  320. package/dist/components/UI/DataTable/cells/DataTableCountCell.d.ts +5 -0
  321. package/dist/components/UI/DataTable/cells/DataTableCountCell.js +7 -0
  322. package/dist/components/UI/DataTable/cells/DataTableCountCell.js.map +1 -0
  323. package/dist/components/UI/DataTable/cells/DataTableDateCell.d.ts +5 -0
  324. package/dist/components/UI/DataTable/cells/DataTableDateCell.js +12 -0
  325. package/dist/components/UI/DataTable/cells/DataTableDateCell.js.map +1 -0
  326. package/dist/components/UI/DataTable/cells/DataTableEditableCell.d.ts +23 -0
  327. package/dist/components/UI/DataTable/cells/DataTableEditableCell.js +242 -0
  328. package/dist/components/UI/DataTable/cells/DataTableEditableCell.js.map +1 -0
  329. package/dist/components/UI/DataTable/cells/DataTableEmpenhoCell.d.ts +10 -0
  330. package/dist/components/UI/DataTable/cells/DataTableEmpenhoCell.js +7 -0
  331. package/dist/components/UI/DataTable/cells/DataTableEmpenhoCell.js.map +1 -0
  332. package/dist/components/UI/DataTable/cells/DataTableOriginCell.d.ts +6 -0
  333. package/dist/components/UI/DataTable/cells/DataTableOriginCell.js +25 -0
  334. package/dist/components/UI/DataTable/cells/DataTableOriginCell.js.map +1 -0
  335. package/dist/components/UI/DataTable/cells/DataTableStatusCell.d.ts +6 -0
  336. package/dist/components/UI/DataTable/cells/DataTableStatusCell.js +24 -0
  337. package/dist/components/UI/DataTable/cells/DataTableStatusCell.js.map +1 -0
  338. package/dist/components/UI/DataTable/cells/DataTableTagCell.d.ts +6 -0
  339. package/dist/components/UI/DataTable/cells/DataTableTagCell.js +25 -0
  340. package/dist/components/UI/DataTable/cells/DataTableTagCell.js.map +1 -0
  341. package/dist/components/UI/DataTable/cells/DataTableTextCell.d.ts +6 -0
  342. package/dist/components/UI/DataTable/cells/DataTableTextCell.js +7 -0
  343. package/dist/components/UI/DataTable/cells/DataTableTextCell.js.map +1 -0
  344. package/dist/components/UI/DataTable/cells/DataTableThumbnailCell.d.ts +6 -0
  345. package/dist/components/UI/DataTable/cells/DataTableThumbnailCell.js +10 -0
  346. package/dist/components/UI/DataTable/cells/DataTableThumbnailCell.js.map +1 -0
  347. package/dist/components/UI/DataTable/dataTableClasses.d.ts +12 -0
  348. package/dist/components/UI/DataTable/dataTableClasses.js +29 -0
  349. package/dist/components/UI/DataTable/dataTableClasses.js.map +1 -0
  350. package/dist/components/UI/DataTable/dataTableColumnWidths.d.ts +15 -0
  351. package/dist/components/UI/DataTable/dataTableColumnWidths.js +153 -0
  352. package/dist/components/UI/DataTable/dataTableColumnWidths.js.map +1 -0
  353. package/dist/components/UI/DataTable/dataTableColumnsStore.d.ts +12 -0
  354. package/dist/components/UI/DataTable/dataTableColumnsStore.js +68 -0
  355. package/dist/components/UI/DataTable/dataTableColumnsStore.js.map +1 -0
  356. package/dist/components/UI/DataTable/dataTableMotion.d.ts +6 -0
  357. package/dist/components/UI/DataTable/dataTableMotion.js +15 -0
  358. package/dist/components/UI/DataTable/dataTableMotion.js.map +1 -0
  359. package/dist/components/UI/DataTable/grid/GridFillHandle.d.ts +8 -0
  360. package/dist/components/UI/DataTable/grid/GridFillHandle.js +70 -0
  361. package/dist/components/UI/DataTable/grid/GridFillHandle.js.map +1 -0
  362. package/dist/components/UI/DataTable/grid/GridProvider.d.ts +36 -0
  363. package/dist/components/UI/DataTable/grid/GridProvider.js +128 -0
  364. package/dist/components/UI/DataTable/grid/GridProvider.js.map +1 -0
  365. package/dist/components/UI/DataTable/grid/fill/fillStrategies.d.ts +19 -0
  366. package/dist/components/UI/DataTable/grid/fill/fillStrategies.js +73 -0
  367. package/dist/components/UI/DataTable/grid/fill/fillStrategies.js.map +1 -0
  368. package/dist/components/UI/DataTable/grid/gridStore.d.ts +82 -0
  369. package/dist/components/UI/DataTable/grid/gridStore.js +259 -0
  370. package/dist/components/UI/DataTable/grid/gridStore.js.map +1 -0
  371. package/dist/components/UI/DataTable/grid/gridTypes.d.ts +59 -0
  372. package/dist/components/UI/DataTable/grid/gridTypes.js +27 -0
  373. package/dist/components/UI/DataTable/grid/gridTypes.js.map +1 -0
  374. package/dist/components/UI/DataTable/grid/useGridFillApply.d.ts +18 -0
  375. package/dist/components/UI/DataTable/grid/useGridFillApply.js +74 -0
  376. package/dist/components/UI/DataTable/grid/useGridFillApply.js.map +1 -0
  377. package/dist/components/UI/DataTable/grid/useGridInstance.d.ts +27 -0
  378. package/dist/components/UI/DataTable/grid/useGridInstance.js +41 -0
  379. package/dist/components/UI/DataTable/grid/useGridInstance.js.map +1 -0
  380. package/dist/components/UI/DataTable/grid/useGridKeyboard.d.ts +25 -0
  381. package/dist/components/UI/DataTable/grid/useGridKeyboard.js +135 -0
  382. package/dist/components/UI/DataTable/grid/useGridKeyboard.js.map +1 -0
  383. package/dist/components/UI/DataTable/index.d.ts +19 -0
  384. package/dist/components/UI/DataTable/index.js +34 -0
  385. package/dist/components/UI/DataTable/index.js.map +1 -0
  386. package/dist/components/UI/DataTable/types.d.ts +535 -0
  387. package/dist/components/UI/DataTable/types.js +13 -0
  388. package/dist/components/UI/DataTable/types.js.map +1 -0
  389. package/dist/components/UI/DataTable/useCellEditingState.d.ts +20 -0
  390. package/dist/components/UI/DataTable/useCellEditingState.js +33 -0
  391. package/dist/components/UI/DataTable/useCellEditingState.js.map +1 -0
  392. package/dist/components/UI/DataTable/useColumnOrder.d.ts +25 -0
  393. package/dist/components/UI/DataTable/useColumnOrder.js +94 -0
  394. package/dist/components/UI/DataTable/useColumnOrder.js.map +1 -0
  395. package/dist/components/UI/DataTable/useColumnSizing.d.ts +9 -0
  396. package/dist/components/UI/DataTable/useColumnSizing.js +21 -0
  397. package/dist/components/UI/DataTable/useColumnSizing.js.map +1 -0
  398. package/dist/components/UI/DataTable/useColumnVisibility.d.ts +19 -0
  399. package/dist/components/UI/DataTable/useColumnVisibility.js +47 -0
  400. package/dist/components/UI/DataTable/useColumnVisibility.js.map +1 -0
  401. package/dist/components/UI/DataTable/useDataTableCommitQueue.d.ts +69 -0
  402. package/dist/components/UI/DataTable/useDataTableCommitQueue.js +220 -0
  403. package/dist/components/UI/DataTable/useDataTableCommitQueue.js.map +1 -0
  404. package/dist/components/UI/DataTable/useDataTableEditBuffer.d.ts +36 -0
  405. package/dist/components/UI/DataTable/useDataTableEditBuffer.js +29 -0
  406. package/dist/components/UI/DataTable/useDataTableEditBuffer.js.map +1 -0
  407. package/dist/components/UI/DataTable/useDataTableInstance.d.ts +65 -0
  408. package/dist/components/UI/DataTable/useDataTableInstance.js +336 -0
  409. package/dist/components/UI/DataTable/useDataTableInstance.js.map +1 -0
  410. package/dist/components/UI/DataTable/useDataTableSource.d.ts +85 -0
  411. package/dist/components/UI/DataTable/useDataTableSource.js +199 -0
  412. package/dist/components/UI/DataTable/useDataTableSource.js.map +1 -0
  413. package/dist/components/UI/DataTable/useDataTableUndoHistory.d.ts +30 -0
  414. package/dist/components/UI/DataTable/useDataTableUndoHistory.js +130 -0
  415. package/dist/components/UI/DataTable/useDataTableUndoHistory.js.map +1 -0
  416. package/dist/components/UI/DataTable/useFlipRows.d.ts +22 -0
  417. package/dist/components/UI/DataTable/useFlipRows.js +90 -0
  418. package/dist/components/UI/DataTable/useFlipRows.js.map +1 -0
  419. package/dist/components/UI/ErrorBoundary.d.ts +20 -0
  420. package/dist/components/UI/ErrorBoundary.js +36 -0
  421. package/dist/components/UI/ErrorBoundary.js.map +1 -0
  422. package/dist/components/UI/Flow/FlowAnnotationDraftPreview.d.ts +6 -0
  423. package/dist/components/UI/Flow/FlowAnnotationDraftPreview.js +65 -0
  424. package/dist/components/UI/Flow/FlowAnnotationDraftPreview.js.map +1 -0
  425. package/dist/components/UI/Flow/FlowAnnotationNode.d.ts +34 -0
  426. package/dist/components/UI/Flow/FlowAnnotationNode.js +231 -0
  427. package/dist/components/UI/Flow/FlowAnnotationNode.js.map +1 -0
  428. package/dist/components/UI/Flow/FlowAnnotationToolbar.d.ts +32 -0
  429. package/dist/components/UI/Flow/FlowAnnotationToolbar.js +298 -0
  430. package/dist/components/UI/Flow/FlowAnnotationToolbar.js.map +1 -0
  431. package/dist/components/UI/Flow/FlowBlockNode.d.ts +35 -0
  432. package/dist/components/UI/Flow/FlowBlockNode.js +91 -0
  433. package/dist/components/UI/Flow/FlowBlockNode.js.map +1 -0
  434. package/dist/components/UI/Flow/FlowCanvas.d.ts +23 -0
  435. package/dist/components/UI/Flow/FlowCanvas.js +559 -0
  436. package/dist/components/UI/Flow/FlowCanvas.js.map +1 -0
  437. package/dist/components/UI/Flow/FlowConnectionEdge.d.ts +18 -0
  438. package/dist/components/UI/Flow/FlowConnectionEdge.js +116 -0
  439. package/dist/components/UI/Flow/FlowConnectionEdge.js.map +1 -0
  440. package/dist/components/UI/Flow/FlowEditorProvider.d.ts +17 -0
  441. package/dist/components/UI/Flow/FlowEditorProvider.js +27 -0
  442. package/dist/components/UI/Flow/FlowEditorProvider.js.map +1 -0
  443. package/dist/components/UI/Flow/FlowInspector.d.ts +11 -0
  444. package/dist/components/UI/Flow/FlowInspector.js +131 -0
  445. package/dist/components/UI/Flow/FlowInspector.js.map +1 -0
  446. package/dist/components/UI/Flow/FlowIssueList.d.ts +8 -0
  447. package/dist/components/UI/Flow/FlowIssueList.js +55 -0
  448. package/dist/components/UI/Flow/FlowIssueList.js.map +1 -0
  449. package/dist/components/UI/Flow/FlowLaneMap.d.ts +30 -0
  450. package/dist/components/UI/Flow/FlowLaneMap.js +206 -0
  451. package/dist/components/UI/Flow/FlowLaneMap.js.map +1 -0
  452. package/dist/components/UI/Flow/FlowNodeShell.d.ts +20 -0
  453. package/dist/components/UI/Flow/FlowNodeShell.js +81 -0
  454. package/dist/components/UI/Flow/FlowNodeShell.js.map +1 -0
  455. package/dist/components/UI/Flow/FlowResizablePanel.d.ts +20 -0
  456. package/dist/components/UI/Flow/FlowResizablePanel.js +118 -0
  457. package/dist/components/UI/Flow/FlowResizablePanel.js.map +1 -0
  458. package/dist/components/UI/Flow/FlowSelectionBar.d.ts +10 -0
  459. package/dist/components/UI/Flow/FlowSelectionBar.js +56 -0
  460. package/dist/components/UI/Flow/FlowSelectionBar.js.map +1 -0
  461. package/dist/components/UI/Flow/FlowZoomControls.d.ts +12 -0
  462. package/dist/components/UI/Flow/FlowZoomControls.js +54 -0
  463. package/dist/components/UI/Flow/FlowZoomControls.js.map +1 -0
  464. package/dist/components/UI/Flow/flowAnnotations.d.ts +38 -0
  465. package/dist/components/UI/Flow/flowAnnotations.js +123 -0
  466. package/dist/components/UI/Flow/flowAnnotations.js.map +1 -0
  467. package/dist/components/UI/Flow/flowBlockRegistry.d.ts +12 -0
  468. package/dist/components/UI/Flow/flowBlockRegistry.js +20 -0
  469. package/dist/components/UI/Flow/flowBlockRegistry.js.map +1 -0
  470. package/dist/components/UI/Flow/flowEditorStore.d.ts +73 -0
  471. package/dist/components/UI/Flow/flowEditorStore.js +402 -0
  472. package/dist/components/UI/Flow/flowEditorStore.js.map +1 -0
  473. package/dist/components/UI/Flow/flowGraph.d.ts +32 -0
  474. package/dist/components/UI/Flow/flowGraph.js +157 -0
  475. package/dist/components/UI/Flow/flowGraph.js.map +1 -0
  476. package/dist/components/UI/Flow/flowTypes.d.ts +104 -0
  477. package/dist/components/UI/Flow/flowTypes.js +2 -0
  478. package/dist/components/UI/Flow/flowTypes.js.map +1 -0
  479. package/dist/components/UI/Flow/flowViewport.d.ts +25 -0
  480. package/dist/components/UI/Flow/flowViewport.js +31 -0
  481. package/dist/components/UI/Flow/flowViewport.js.map +1 -0
  482. package/dist/components/UI/Flow/index.d.ts +13 -0
  483. package/dist/components/UI/Flow/index.js +44 -0
  484. package/dist/components/UI/Flow/index.js.map +1 -0
  485. package/dist/components/UI/Flow/useFlowAnnotationDrawing.d.ts +25 -0
  486. package/dist/components/UI/Flow/useFlowAnnotationDrawing.js +117 -0
  487. package/dist/components/UI/Flow/useFlowAnnotationDrawing.js.map +1 -0
  488. package/dist/components/UI/Flow/useFlowLabels.d.ts +10 -0
  489. package/dist/components/UI/Flow/useFlowLabels.js +51 -0
  490. package/dist/components/UI/Flow/useFlowLabels.js.map +1 -0
  491. package/dist/components/UI/GeneratedByAI.d.ts +2 -0
  492. package/dist/components/UI/GeneratedByAI.js +12 -0
  493. package/dist/components/UI/GeneratedByAI.js.map +1 -0
  494. package/dist/components/UI/HorizontalScrollArea.d.ts +22 -0
  495. package/dist/components/UI/HorizontalScrollArea.js +74 -0
  496. package/dist/components/UI/HorizontalScrollArea.js.map +1 -0
  497. package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.d.ts +21 -0
  498. package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.js +235 -0
  499. package/dist/components/UI/ImageAiAdjust/ImageAiAdjustDialog.js.map +1 -0
  500. package/dist/components/UI/ImageAiAdjust/ImageAiDiscardReasonDialog.d.ts +8 -0
  501. package/dist/components/UI/ImageAiAdjust/ImageAiDiscardReasonDialog.js +67 -0
  502. package/dist/components/UI/ImageAiAdjust/ImageAiDiscardReasonDialog.js.map +1 -0
  503. package/dist/components/UI/ImageAiAdjust/ImageAiVerificationNotice.d.ts +8 -0
  504. package/dist/components/UI/ImageAiAdjust/ImageAiVerificationNotice.js +39 -0
  505. package/dist/components/UI/ImageAiAdjust/ImageAiVerificationNotice.js.map +1 -0
  506. package/dist/components/UI/ImageAiAdjust/imageAiReview.d.ts +22 -0
  507. package/dist/components/UI/ImageAiAdjust/imageAiReview.js +37 -0
  508. package/dist/components/UI/ImageAiAdjust/imageAiReview.js.map +1 -0
  509. package/dist/components/UI/ImageAiAdjust/imageAiVerification.d.ts +19 -0
  510. package/dist/components/UI/ImageAiAdjust/imageAiVerification.js +25 -0
  511. package/dist/components/UI/ImageAiAdjust/imageAiVerification.js.map +1 -0
  512. package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.d.ts +52 -0
  513. package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.js +109 -0
  514. package/dist/components/UI/ImageAiAdjust/useImageAiAdjust.js.map +1 -0
  515. package/dist/components/UI/ImageAnnotator/AnnotationEditor.d.ts +13 -0
  516. package/dist/components/UI/ImageAnnotator/AnnotationEditor.js +362 -0
  517. package/dist/components/UI/ImageAnnotator/AnnotationEditor.js.map +1 -0
  518. package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.d.ts +15 -0
  519. package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.js +61 -0
  520. package/dist/components/UI/ImageAnnotator/ImageAnnotationDialog.js.map +1 -0
  521. package/dist/components/UI/ImageAnnotator/annotationStyle.d.ts +28 -0
  522. package/dist/components/UI/ImageAnnotator/annotationStyle.js +56 -0
  523. package/dist/components/UI/ImageAnnotator/annotationStyle.js.map +1 -0
  524. package/dist/components/UI/ImageAnnotator/canvas/AnnotationCropFrame.d.ts +16 -0
  525. package/dist/components/UI/ImageAnnotator/canvas/AnnotationCropFrame.js +156 -0
  526. package/dist/components/UI/ImageAnnotator/canvas/AnnotationCropFrame.js.map +1 -0
  527. package/dist/components/UI/ImageAnnotator/canvas/AnnotationElementNode.d.ts +17 -0
  528. package/dist/components/UI/ImageAnnotator/canvas/AnnotationElementNode.js +329 -0
  529. package/dist/components/UI/ImageAnnotator/canvas/AnnotationElementNode.js.map +1 -0
  530. package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.d.ts +10 -0
  531. package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.js +127 -0
  532. package/dist/components/UI/ImageAnnotator/canvas/AnnotationSelection.js.map +1 -0
  533. package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.d.ts +26 -0
  534. package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.js +241 -0
  535. package/dist/components/UI/ImageAnnotator/canvas/AnnotationStage.js.map +1 -0
  536. package/dist/components/UI/ImageAnnotator/components/AnnotationActionBar.d.ts +15 -0
  537. package/dist/components/UI/ImageAnnotator/components/AnnotationActionBar.js +77 -0
  538. package/dist/components/UI/ImageAnnotator/components/AnnotationActionBar.js.map +1 -0
  539. package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.d.ts +11 -0
  540. package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.js +70 -0
  541. package/dist/components/UI/ImageAnnotator/components/AnnotationColorPopover.js.map +1 -0
  542. package/dist/components/UI/ImageAnnotator/components/AnnotationCropBar.d.ts +12 -0
  543. package/dist/components/UI/ImageAnnotator/components/AnnotationCropBar.js +89 -0
  544. package/dist/components/UI/ImageAnnotator/components/AnnotationCropBar.js.map +1 -0
  545. package/dist/components/UI/ImageAnnotator/components/AnnotationElementActions.d.ts +8 -0
  546. package/dist/components/UI/ImageAnnotator/components/AnnotationElementActions.js +58 -0
  547. package/dist/components/UI/ImageAnnotator/components/AnnotationElementActions.js.map +1 -0
  548. package/dist/components/UI/ImageAnnotator/components/AnnotationStyleBar.d.ts +13 -0
  549. package/dist/components/UI/ImageAnnotator/components/AnnotationStyleBar.js +183 -0
  550. package/dist/components/UI/ImageAnnotator/components/AnnotationStyleBar.js.map +1 -0
  551. package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.d.ts +17 -0
  552. package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.js +79 -0
  553. package/dist/components/UI/ImageAnnotator/components/AnnotationTextOverlay.js.map +1 -0
  554. package/dist/components/UI/ImageAnnotator/components/AnnotationToolButton.d.ts +15 -0
  555. package/dist/components/UI/ImageAnnotator/components/AnnotationToolButton.js +46 -0
  556. package/dist/components/UI/ImageAnnotator/components/AnnotationToolButton.js.map +1 -0
  557. package/dist/components/UI/ImageAnnotator/components/AnnotationToolbar.d.ts +10 -0
  558. package/dist/components/UI/ImageAnnotator/components/AnnotationToolbar.js +91 -0
  559. package/dist/components/UI/ImageAnnotator/components/AnnotationToolbar.js.map +1 -0
  560. package/dist/components/UI/ImageAnnotator/helpers/annotationCanvas.d.ts +21 -0
  561. package/dist/components/UI/ImageAnnotator/helpers/annotationCanvas.js +45 -0
  562. package/dist/components/UI/ImageAnnotator/helpers/annotationCanvas.js.map +1 -0
  563. package/dist/components/UI/ImageAnnotator/helpers/annotationCrop.d.ts +12 -0
  564. package/dist/components/UI/ImageAnnotator/helpers/annotationCrop.js +64 -0
  565. package/dist/components/UI/ImageAnnotator/helpers/annotationCrop.js.map +1 -0
  566. package/dist/components/UI/ImageAnnotator/helpers/annotationElements.d.ts +15 -0
  567. package/dist/components/UI/ImageAnnotator/helpers/annotationElements.js +165 -0
  568. package/dist/components/UI/ImageAnnotator/helpers/annotationElements.js.map +1 -0
  569. package/dist/components/UI/ImageAnnotator/helpers/annotationExport.d.ts +15 -0
  570. package/dist/components/UI/ImageAnnotator/helpers/annotationExport.js +23 -0
  571. package/dist/components/UI/ImageAnnotator/helpers/annotationExport.js.map +1 -0
  572. package/dist/components/UI/ImageAnnotator/helpers/konvaFullBuild.d.ts +8 -0
  573. package/dist/components/UI/ImageAnnotator/helpers/konvaFullBuild.js +10 -0
  574. package/dist/components/UI/ImageAnnotator/helpers/konvaFullBuild.js.map +1 -0
  575. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationBaseImage.d.ts +9 -0
  576. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationBaseImage.js +56 -0
  577. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationBaseImage.js.map +1 -0
  578. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.d.ts +29 -0
  579. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.js +160 -0
  580. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationDocument.js.map +1 -0
  581. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationShortcuts.d.ts +14 -0
  582. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationShortcuts.js +80 -0
  583. package/dist/components/UI/ImageAnnotator/hooks/useAnnotationShortcuts.js.map +1 -0
  584. package/dist/components/UI/ImageAnnotator/hooks/useCoarsePointer.d.ts +5 -0
  585. package/dist/components/UI/ImageAnnotator/hooks/useCoarsePointer.js +23 -0
  586. package/dist/components/UI/ImageAnnotator/hooks/useCoarsePointer.js.map +1 -0
  587. package/dist/components/UI/ImageAnnotator/hooks/useHtmlImage.d.ts +2 -0
  588. package/dist/components/UI/ImageAnnotator/hooks/useHtmlImage.js +27 -0
  589. package/dist/components/UI/ImageAnnotator/hooks/useHtmlImage.js.map +1 -0
  590. package/dist/components/UI/ImageAnnotator/interfaces/annotationDocument.d.ts +98 -0
  591. package/dist/components/UI/ImageAnnotator/interfaces/annotationDocument.js +13 -0
  592. package/dist/components/UI/ImageAnnotator/interfaces/annotationDocument.js.map +1 -0
  593. package/dist/components/UI/ImageMaskPainter/index.d.ts +24 -0
  594. package/dist/components/UI/ImageMaskPainter/index.js +284 -0
  595. package/dist/components/UI/ImageMaskPainter/index.js.map +1 -0
  596. package/dist/components/UI/ImageMaskPainter/maskStrokes.d.ts +19 -0
  597. package/dist/components/UI/ImageMaskPainter/maskStrokes.js +71 -0
  598. package/dist/components/UI/ImageMaskPainter/maskStrokes.js.map +1 -0
  599. package/dist/components/UI/ImagePlaceholder.d.ts +24 -0
  600. package/dist/components/UI/ImagePlaceholder.js +29 -0
  601. package/dist/components/UI/ImagePlaceholder.js.map +1 -0
  602. package/dist/components/UI/ImageZoomOverlay.d.ts +7 -0
  603. package/dist/components/UI/ImageZoomOverlay.js +53 -0
  604. package/dist/components/UI/ImageZoomOverlay.js.map +1 -0
  605. package/dist/components/UI/InformationCard.d.ts +26 -0
  606. package/dist/components/UI/InformationCard.js +89 -0
  607. package/dist/components/UI/InformationCard.js.map +1 -0
  608. package/dist/components/UI/Kanban/KanbanBoard.d.ts +26 -0
  609. package/dist/components/UI/Kanban/KanbanBoard.js +91 -0
  610. package/dist/components/UI/Kanban/KanbanBoard.js.map +1 -0
  611. package/dist/components/UI/Kanban/KanbanCard.d.ts +22 -0
  612. package/dist/components/UI/Kanban/KanbanCard.js +47 -0
  613. package/dist/components/UI/Kanban/KanbanCard.js.map +1 -0
  614. package/dist/components/UI/Kanban/KanbanLane.d.ts +37 -0
  615. package/dist/components/UI/Kanban/KanbanLane.js +77 -0
  616. package/dist/components/UI/Kanban/KanbanLane.js.map +1 -0
  617. package/dist/components/UI/Kanban/index.d.ts +4 -0
  618. package/dist/components/UI/Kanban/index.js +11 -0
  619. package/dist/components/UI/Kanban/index.js.map +1 -0
  620. package/dist/components/UI/Kanban/kanbanBoardContext.d.ts +13 -0
  621. package/dist/components/UI/Kanban/kanbanBoardContext.js +13 -0
  622. package/dist/components/UI/Kanban/kanbanBoardContext.js.map +1 -0
  623. package/dist/components/UI/LazyMarkdown.d.ts +5 -0
  624. package/dist/components/UI/LazyMarkdown.js +8 -0
  625. package/dist/components/UI/LazyMarkdown.js.map +1 -0
  626. package/dist/components/UI/LoadingPage.d.ts +2 -0
  627. package/dist/components/UI/LoadingPage.js +13 -0
  628. package/dist/components/UI/LoadingPage.js.map +1 -0
  629. package/dist/components/UI/LoadingSpinner.d.ts +14 -0
  630. package/dist/components/UI/LoadingSpinner.js +32 -0
  631. package/dist/components/UI/LoadingSpinner.js.map +1 -0
  632. package/dist/components/UI/MaterialSymbol/consts.d.ts +2 -0
  633. package/dist/components/UI/MaterialSymbol/consts.js +3472 -0
  634. package/dist/components/UI/MaterialSymbol/consts.js.map +1 -0
  635. package/dist/components/UI/MaterialSymbol/index.d.ts +18 -0
  636. package/dist/components/UI/MaterialSymbol/index.js +51 -0
  637. package/dist/components/UI/MaterialSymbol/index.js.map +1 -0
  638. package/dist/components/UI/MaterialSymbol/types.d.ts +37 -0
  639. package/dist/components/UI/MaterialSymbol/types.js +2 -0
  640. package/dist/components/UI/MaterialSymbol/types.js.map +1 -0
  641. package/dist/components/UI/NoDataFound/index.d.ts +31 -0
  642. package/dist/components/UI/NoDataFound/index.js +215 -0
  643. package/dist/components/UI/NoDataFound/index.js.map +1 -0
  644. package/dist/components/UI/NoDataFound/noDataFoundPresets.d.ts +31 -0
  645. package/dist/components/UI/NoDataFound/noDataFoundPresets.js +99 -0
  646. package/dist/components/UI/NoDataFound/noDataFoundPresets.js.map +1 -0
  647. package/dist/components/UI/ReferenceCard.d.ts +16 -0
  648. package/dist/components/UI/ReferenceCard.js +59 -0
  649. package/dist/components/UI/ReferenceCard.js.map +1 -0
  650. package/dist/components/UI/RichTextContent.d.ts +14 -0
  651. package/dist/components/UI/RichTextContent.js +30 -0
  652. package/dist/components/UI/RichTextContent.js.map +1 -0
  653. package/dist/components/UI/SkeletonLoading.d.ts +9 -0
  654. package/dist/components/UI/SkeletonLoading.js +20 -0
  655. package/dist/components/UI/SkeletonLoading.js.map +1 -0
  656. package/dist/components/UI/ThreeDots.d.ts +11 -0
  657. package/dist/components/UI/ThreeDots.js +22 -0
  658. package/dist/components/UI/ThreeDots.js.map +1 -0
  659. package/dist/components/UI/Toast.d.ts +16 -0
  660. package/dist/components/UI/Toast.js +81 -0
  661. package/dist/components/UI/Toast.js.map +1 -0
  662. package/dist/components/UI/ToastHost.d.ts +2 -0
  663. package/dist/components/UI/ToastHost.js +25 -0
  664. package/dist/components/UI/ToastHost.js.map +1 -0
  665. package/dist/components/UI/TypingEffect.d.ts +10 -0
  666. package/dist/components/UI/TypingEffect.js +31 -0
  667. package/dist/components/UI/TypingEffect.js.map +1 -0
  668. package/dist/components/UI/UmodeLogo.d.ts +10 -0
  669. package/dist/components/UI/UmodeLogo.js +128 -0
  670. package/dist/components/UI/UmodeLogo.js.map +1 -0
  671. package/dist/components/UI/UserMenu.d.ts +50 -0
  672. package/dist/components/UI/UserMenu.js +212 -0
  673. package/dist/components/UI/UserMenu.js.map +1 -0
  674. package/dist/components/UI/UsersAvatar.d.ts +7 -0
  675. package/dist/components/UI/UsersAvatar.js +29 -0
  676. package/dist/components/UI/UsersAvatar.js.map +1 -0
  677. package/dist/components/UI/access/UiAccessContext.d.ts +21 -0
  678. package/dist/components/UI/access/UiAccessContext.js +14 -0
  679. package/dist/components/UI/access/UiAccessContext.js.map +1 -0
  680. package/dist/components/UI/cells/ArrayCell.d.ts +5 -0
  681. package/dist/components/UI/cells/ArrayCell.js +25 -0
  682. package/dist/components/UI/cells/ArrayCell.js.map +1 -0
  683. package/dist/components/UI/cells/BooleanCell.d.ts +5 -0
  684. package/dist/components/UI/cells/BooleanCell.js +22 -0
  685. package/dist/components/UI/cells/BooleanCell.js.map +1 -0
  686. package/dist/components/UI/cells/DetailsTableCell.d.ts +7 -0
  687. package/dist/components/UI/cells/DetailsTableCell.js +30 -0
  688. package/dist/components/UI/cells/DetailsTableCell.js.map +1 -0
  689. package/dist/components/UI/cells/ProductImageCell.d.ts +5 -0
  690. package/dist/components/UI/cells/ProductImageCell.js +21 -0
  691. package/dist/components/UI/cells/ProductImageCell.js.map +1 -0
  692. package/dist/components/UI/cells/UrlLinkCell.d.ts +6 -0
  693. package/dist/components/UI/cells/UrlLinkCell.js +19 -0
  694. package/dist/components/UI/cells/UrlLinkCell.js.map +1 -0
  695. package/dist/components/Upload/SimpleUploaderComponent.d.ts +9 -0
  696. package/dist/components/Upload/SimpleUploaderComponent.js +72 -0
  697. package/dist/components/Upload/SimpleUploaderComponent.js.map +1 -0
  698. package/dist/components/Upload/UploaderComponent.d.ts +29 -0
  699. package/dist/components/Upload/UploaderComponent.js +241 -0
  700. package/dist/components/Upload/UploaderComponent.js.map +1 -0
  701. package/dist/components/Upload/XlsExportButton.d.ts +13 -0
  702. package/dist/components/Upload/XlsExportButton.js +47 -0
  703. package/dist/components/Upload/XlsExportButton.js.map +1 -0
  704. package/dist/helpers/composeRefs.d.ts +7 -0
  705. package/dist/helpers/composeRefs.js +14 -0
  706. package/dist/helpers/composeRefs.js.map +1 -0
  707. package/dist/helpers/dateHelpers.d.ts +47 -0
  708. package/dist/helpers/dateHelpers.js +69 -0
  709. package/dist/helpers/dateHelpers.js.map +1 -0
  710. package/dist/helpers/fileAttachments.d.ts +3 -0
  711. package/dist/helpers/fileAttachments.js +17 -0
  712. package/dist/helpers/fileAttachments.js.map +1 -0
  713. package/dist/helpers/formatHelpers.d.ts +36 -0
  714. package/dist/helpers/formatHelpers.js +65 -0
  715. package/dist/helpers/formatHelpers.js.map +1 -0
  716. package/dist/helpers/iconFont.d.ts +9 -0
  717. package/dist/helpers/iconFont.js +37 -0
  718. package/dist/helpers/iconFont.js.map +1 -0
  719. package/dist/helpers/imageCompression.d.ts +5 -0
  720. package/dist/helpers/imageCompression.js +49 -0
  721. package/dist/helpers/imageCompression.js.map +1 -0
  722. package/dist/helpers/imageFile.d.ts +32 -0
  723. package/dist/helpers/imageFile.js +108 -0
  724. package/dist/helpers/imageFile.js.map +1 -0
  725. package/dist/helpers/layeredSurfaces.d.ts +28 -0
  726. package/dist/helpers/layeredSurfaces.js +19 -0
  727. package/dist/helpers/layeredSurfaces.js.map +1 -0
  728. package/dist/helpers/mathHelpers.d.ts +14 -0
  729. package/dist/helpers/mathHelpers.js +13 -0
  730. package/dist/helpers/mathHelpers.js.map +1 -0
  731. package/dist/helpers/mergeClasses.d.ts +10 -0
  732. package/dist/helpers/mergeClasses.js +34 -0
  733. package/dist/helpers/mergeClasses.js.map +1 -0
  734. package/dist/helpers/moduleLoadErrorHelpers.d.ts +1 -0
  735. package/dist/helpers/moduleLoadErrorHelpers.js +25 -0
  736. package/dist/helpers/moduleLoadErrorHelpers.js.map +1 -0
  737. package/dist/helpers/objectHelpers.d.ts +13 -0
  738. package/dist/helpers/objectHelpers.js +59 -0
  739. package/dist/helpers/objectHelpers.js.map +1 -0
  740. package/dist/helpers/portalHost.d.ts +10 -0
  741. package/dist/helpers/portalHost.js +7 -0
  742. package/dist/helpers/portalHost.js.map +1 -0
  743. package/dist/helpers/richText.d.ts +46 -0
  744. package/dist/helpers/richText.js +197 -0
  745. package/dist/helpers/richText.js.map +1 -0
  746. package/dist/helpers/stringHelpers.d.ts +45 -0
  747. package/dist/helpers/stringHelpers.js +57 -0
  748. package/dist/helpers/stringHelpers.js.map +1 -0
  749. package/dist/helpers/themeSkins.d.ts +12 -0
  750. package/dist/helpers/themeSkins.js +13 -0
  751. package/dist/helpers/themeSkins.js.map +1 -0
  752. package/dist/helpers/themeTokens.d.ts +28 -0
  753. package/dist/helpers/themeTokens.js +35 -0
  754. package/dist/helpers/themeTokens.js.map +1 -0
  755. package/dist/helpers/uiErrorPresenter.d.ts +21 -0
  756. package/dist/helpers/uiErrorPresenter.js +10 -0
  757. package/dist/helpers/uiErrorPresenter.js.map +1 -0
  758. package/dist/helpers/uiLogger.d.ts +8 -0
  759. package/dist/helpers/uiLogger.js +16 -0
  760. package/dist/helpers/uiLogger.js.map +1 -0
  761. package/dist/helpers/uiPreferences.d.ts +13 -0
  762. package/dist/helpers/uiPreferences.js +35 -0
  763. package/dist/helpers/uiPreferences.js.map +1 -0
  764. package/dist/helpers/urlParamSync.d.ts +19 -0
  765. package/dist/helpers/urlParamSync.js +54 -0
  766. package/dist/helpers/urlParamSync.js.map +1 -0
  767. package/dist/helpers/utilityHelpers.d.ts +81 -0
  768. package/dist/helpers/utilityHelpers.js +133 -0
  769. package/dist/helpers/utilityHelpers.js.map +1 -0
  770. package/dist/helpers/validationHelpers.d.ts +36 -0
  771. package/dist/helpers/validationHelpers.js +44 -0
  772. package/dist/helpers/validationHelpers.js.map +1 -0
  773. package/dist/hooks/useAnchoredFloating.d.ts +22 -0
  774. package/dist/hooks/useAnchoredFloating.js +59 -0
  775. package/dist/hooks/useAnchoredFloating.js.map +1 -0
  776. package/dist/hooks/useBreakpoint.d.ts +16 -0
  777. package/dist/hooks/useBreakpoint.js +47 -0
  778. package/dist/hooks/useBreakpoint.js.map +1 -0
  779. package/dist/hooks/useDebounce.d.ts +8 -0
  780. package/dist/hooks/useDebounce.js +36 -0
  781. package/dist/hooks/useDebounce.js.map +1 -0
  782. package/dist/hooks/useFileAttachments.d.ts +43 -0
  783. package/dist/hooks/useFileAttachments.js +158 -0
  784. package/dist/hooks/useFileAttachments.js.map +1 -0
  785. package/dist/hooks/useHoverCapable.d.ts +6 -0
  786. package/dist/hooks/useHoverCapable.js +28 -0
  787. package/dist/hooks/useHoverCapable.js.map +1 -0
  788. package/dist/hooks/useInlineEditor.d.ts +5 -0
  789. package/dist/hooks/useInlineEditor.js +42 -0
  790. package/dist/hooks/useInlineEditor.js.map +1 -0
  791. package/dist/hooks/useMobile.d.ts +7 -0
  792. package/dist/hooks/useMobile.js +8 -0
  793. package/dist/hooks/useMobile.js.map +1 -0
  794. package/dist/hooks/useNotification.d.ts +38 -0
  795. package/dist/hooks/useNotification.js +39 -0
  796. package/dist/hooks/useNotification.js.map +1 -0
  797. package/dist/hooks/useResolvedTheme.d.ts +7 -0
  798. package/dist/hooks/useResolvedTheme.js +15 -0
  799. package/dist/hooks/useResolvedTheme.js.map +1 -0
  800. package/dist/hooks/useThemeSkin.d.ts +7 -0
  801. package/dist/hooks/useThemeSkin.js +19 -0
  802. package/dist/hooks/useThemeSkin.js.map +1 -0
  803. package/dist/hooks/useVoiceTranscription.d.ts +29 -0
  804. package/dist/hooks/useVoiceTranscription.js +208 -0
  805. package/dist/hooks/useVoiceTranscription.js.map +1 -0
  806. package/dist/index.d.ts +63 -0
  807. package/dist/index.js +157 -0
  808. package/dist/index.js.map +1 -0
  809. package/dist/interfaces/IFileAttachment.d.ts +18 -0
  810. package/dist/interfaces/IFileAttachment.js +2 -0
  811. package/dist/interfaces/IFileAttachment.js.map +1 -0
  812. package/dist/interfaces/IFilterOption.d.ts +12 -0
  813. package/dist/interfaces/IFilterOption.js +2 -0
  814. package/dist/interfaces/IFilterOption.js.map +1 -0
  815. package/dist/locales/en/ui.json.d.ts +682 -0
  816. package/dist/locales/en/ui.json.js +120 -0
  817. package/dist/locales/en/ui.json.js.map +1 -0
  818. package/dist/locales/index.d.ts +1362 -0
  819. package/dist/locales/index.js +7 -0
  820. package/dist/locales/index.js.map +1 -0
  821. package/dist/locales/pt/ui.json.d.ts +682 -0
  822. package/dist/locales/pt/ui.json.js +120 -0
  823. package/dist/locales/pt/ui.json.js.map +1 -0
  824. package/dist/motion/index.d.ts +2 -0
  825. package/dist/motion/index.js +17 -0
  826. package/dist/motion/index.js.map +1 -0
  827. package/dist/motion/motionPresets.d.ts +44 -0
  828. package/dist/motion/motionPresets.js +67 -0
  829. package/dist/motion/motionPresets.js.map +1 -0
  830. package/dist/motion/motionTokens.d.ts +40 -0
  831. package/dist/motion/motionTokens.js +29 -0
  832. package/dist/motion/motionTokens.js.map +1 -0
  833. package/package.json +245 -0
  834. package/src/assets/fonts/LICENSE-Inter.txt +92 -0
  835. package/src/assets/fonts/LICENSE-MaterialSymbols.txt +202 -0
  836. package/src/assets/fonts/LICENSE-Virgil.txt +45 -0
  837. package/src/assets/fonts/inter-latin-ext.woff2 +0 -0
  838. package/src/assets/fonts/inter-latin.woff2 +0 -0
  839. package/src/assets/fonts/material-symbols-outlined.woff2 +0 -0
  840. package/src/assets/fonts/virgil.woff2 +0 -0
  841. package/src/assets/styles/base.css +585 -0
  842. package/src/assets/styles/index.css +1 -0
  843. package/src/assets/styles/theme.css +453 -0
  844. package/tailwind-plugins/glass.js +162 -0
  845. package/tailwind.preset.js +392 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploaderComponent.js","sources":["../../../src/components/Upload/UploaderComponent.tsx"],"sourcesContent":["import { useId, useState } from 'react';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\n\nimport { useNotification } from '../../hooks/useNotification';\nimport ControlledButton from '../Form/ControlledButton';\nimport { MaterialSymbol } from '../UI/MaterialSymbol';\n\ninterface IUploaderComponentProps {\n allowedTypes: Array<string>;\n handleFilesSelected: (files: Array<File>) => void;\n multiple?: boolean;\n className?: string;\n simpleLayout?: boolean;\n maxSizeMB?: number;\n /**\n * When true, valid files are sent immediately via `handleFilesSelected` instead of\n * being staged behind a manual \"send\" button. Keeps the default behavior elsewhere.\n */\n autoUpload?: boolean;\n /**\n * Visual style of the full dropzone. `'default'` keeps the neutral gray boxed look used\n * across the app; `'borderless'` drops the dashed frame/background and shows only the\n * centered content with the product accent (lilac icon and link, softer typography).\n * For panels where drag/paste already works anywhere and the frame is redundant.\n */\n variant?: 'default' | 'borderless';\n /**\n * When true, the component stops handling its own drag/drop (it still opens the file\n * picker on click and handles paste). Use when a parent container owns drag-and-drop for\n * a larger area and should be the single drop target, avoiding duplicated uploads.\n */\n disableDragDrop?: boolean;\n}\n\nconst UploaderComponent: React.FC<IUploaderComponentProps> = ({\n allowedTypes,\n handleFilesSelected,\n multiple = false,\n className,\n simpleLayout = false,\n maxSizeMB = 1,\n autoUpload = false,\n variant = 'default',\n disableDragDrop = false,\n}) => {\n const { t } = useTranslation('ui');\n const { notify } = useNotification();\n const isBorderless = variant === 'borderless';\n\n const MAX_FILE_SIZE_MB = maxSizeMB;\n const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024;\n const [files, setFiles] = useState<Array<File>>([]);\n const [isDragging, setIsDragging] = useState(false);\n const inputId = useId();\n\n const matchesAllowedType = (file: File): boolean => {\n if (allowedTypes.includes(file.type)) return true;\n const extension = '.' + (file.name.split('.').pop() ?? '').toLowerCase();\n return allowedTypes.some((type) => type.toLowerCase() === extension);\n };\n\n const handleFiles = (newFiles: Array<File>) => {\n if (autoUpload) {\n handleFilesSelected(newFiles);\n return;\n }\n setFiles(newFiles);\n if (!multiple && newFiles.length === 1) {\n handleFilesSelected(newFiles);\n }\n };\n\n const acceptExternalFiles = (candidates: Array<File>) => {\n const typeMatched = candidates.filter(matchesAllowedType);\n const validFiles = typeMatched.filter((file) => file.size <= MAX_FILE_SIZE_BYTES);\n\n if (validFiles.length < typeMatched.length) {\n notify({ message: t('uploader.filesIgnoredMaxSize', { size: MAX_FILE_SIZE_MB }), type: 'error' });\n }\n\n if (validFiles.length > 0) {\n handleFiles(validFiles);\n } else {\n notify({ message: t('uploader.invalidFormat'), type: 'error' });\n }\n };\n\n const clipboardFiles = (clipboardData: DataTransfer | null): Array<File> => {\n const fromFiles = Array.from(clipboardData?.files ?? []);\n if (fromFiles.length > 0) return fromFiles;\n return Array.from(clipboardData?.items ?? [])\n .filter((item) => item.kind === 'file')\n .map((item) => item.getAsFile())\n .filter((file): file is File => file !== null);\n };\n\n const handlePaste: React.ClipboardEventHandler<HTMLDivElement> = (event) => {\n const pasted = clipboardFiles(event.clipboardData);\n if (pasted.length === 0) return;\n event.preventDefault();\n acceptExternalFiles(pasted);\n };\n\n const handleDragEnterOrOver: React.DragEventHandler<HTMLDivElement> = (event) => {\n event.preventDefault();\n if (!isDragging) setIsDragging(true);\n };\n\n const handleDragLeave: React.DragEventHandler<HTMLDivElement> = (event) => {\n if (event.currentTarget.contains(event.relatedTarget as Node | null)) return;\n setIsDragging(false);\n };\n\n const handleFileChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const selectedFiles = event.target.files;\n if (selectedFiles && selectedFiles.length > 0) {\n const newFiles = Array.from(selectedFiles).filter((file) => file.size <= MAX_FILE_SIZE_BYTES);\n\n if (newFiles.length < selectedFiles.length) {\n notify({\n message: t('uploader.filesIgnoredMaxSize', { size: MAX_FILE_SIZE_MB }),\n type: 'error',\n });\n }\n\n if (newFiles.length > 0) {\n handleFiles(newFiles);\n }\n }\n };\n\n const handleDrop: React.DragEventHandler<HTMLDivElement> = (event) => {\n event.preventDefault();\n setIsDragging(false);\n acceptExternalFiles(Array.from(event.dataTransfer.files));\n };\n\n const handleRemoveFile = (index: number) => {\n setFiles((prevFiles) => {\n const next = prevFiles.filter((_, i) => i !== index);\n if (!multiple && next.length === 0) {\n handleFilesSelected([]);\n }\n return next;\n });\n };\n\n if (simpleLayout) {\n return (\n <div\n tabIndex={0}\n className={classNames(\n 'aspect-square w-[4.5rem] cursor-pointer rounded-lg border-2 border-dashed p-4 transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-border',\n isDragging ? 'border-brand bg-brand-soft' : 'border-border-strong hover:bg-muted',\n className,\n )}\n onDrop={handleDrop}\n onDragEnter={handleDragEnterOrOver}\n onDragOver={handleDragEnterOrOver}\n onDragLeave={handleDragLeave}\n onPaste={handlePaste}\n >\n <input\n type=\"file\"\n id={inputId}\n onChange={handleFileChange}\n accept={allowedTypes.join(', ')}\n multiple={multiple}\n className=\"hidden\"\n />\n <label htmlFor={inputId} className=\"flex size-full cursor-pointer items-center justify-center\">\n <MaterialSymbol icon=\"add_photo_alternate\" size={23} color=\"rgb(var(--color-foreground-subtle))\" />\n </label>\n </div>\n );\n }\n\n return (\n <div\n tabIndex={0}\n className={classNames(\n 'flex w-full flex-col items-center justify-center rounded-lg transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-brand-border',\n isBorderless ? 'py-4' : 'border-2 border-dashed px-4 py-8',\n !isBorderless && (isDragging ? 'border-brand bg-brand-soft' : 'border-border-strong'),\n isBorderless && isDragging && 'bg-brand-soft/60',\n className,\n )}\n onDrop={disableDragDrop ? undefined : handleDrop}\n onDragEnter={disableDragDrop ? undefined : handleDragEnterOrOver}\n onDragOver={disableDragDrop ? undefined : handleDragEnterOrOver}\n onDragLeave={disableDragDrop ? undefined : handleDragLeave}\n onPaste={handlePaste}\n >\n <div\n className={classNames(\n 'flex flex-col items-center justify-center gap-y-2',\n isBorderless ? 'text-foreground-muted' : 'text-foreground',\n )}\n >\n {/* Sem `color`: herda o `currentColor` do bloco acima, que já nomeia um token nos dois ramos. */}\n <MaterialSymbol icon=\"cloud_upload\" size={30} className={isBorderless ? 'text-brand-emphasis' : undefined} />\n <div\n className={classNames(\n 'flex flex-row flex-wrap justify-center gap-x-1',\n isBorderless ? 'font-medium' : 'font-bold',\n )}\n >\n <input\n type=\"file\"\n id={inputId}\n onChange={handleFileChange}\n accept={allowedTypes.join(', ')}\n multiple={multiple}\n className=\"hidden\"\n />\n <span>{t('uploader.dragOr')}</span>\n <label\n htmlFor={inputId}\n className={classNames(\n 'cursor-pointer underline underline-offset-2',\n isBorderless ? 'font-semibold text-brand-emphasis' : 'text-underline',\n )}\n >\n {t('uploader.selectFile')}\n </label>\n <span className=\"font-normal text-foreground-subtle\">{t('uploader.orPaste')}</span>\n </div>\n <span className=\"text-xs\">\n {t('uploader.allowedFormats')}{' '}\n {allowedTypes.map((type) => (type.startsWith('.') ? type : '.' + type.split('/')[1])).join(' ')}{' '}\n {t('uploader.upTo')} {MAX_FILE_SIZE_MB}\n {t('uploader.megabytesSuffix')}\n </span>\n </div>\n\n {files.length > 0 && (\n <div className=\"my-5 flex max-h-40 w-full flex-col gap-y-2 overflow-y-scroll\">\n {files.map((file, index) => (\n <div\n className=\"flex items-center justify-between rounded-lg border border-border-emphasis p-2\"\n key={`${file.name}-${file.size}-${file.lastModified}`}\n >\n <div className=\"flex flex-1 flex-col gap-1\">\n <p className=\"m-0 text-sm text-foreground\">{file.name}</p>\n </div>\n <div className=\"cursor-pointer\" onClick={() => handleRemoveFile(index)}>\n <ControlledTooltip content={t('actions.remove')}>\n <MaterialSymbol size={20} icon=\"delete_sweep\" color=\"rgb(var(--color-danger))\" />\n </ControlledTooltip>\n </div>\n </div>\n ))}\n </div>\n )}\n\n {files.length > 0 && multiple && (\n <ControlledButton\n variant=\"outlined\"\n tone=\"neutral\"\n size=\"sm\"\n className=\"inter-font flex items-center justify-center gap-x-2 rounded-md normal-case text-foreground\"\n onClick={() => handleFilesSelected(files)}\n >\n {t('uploader.sendFiles')}\n <MaterialSymbol icon=\"difference\" size={16} color=\"rgb(var(--color-foreground))\" />\n </ControlledButton>\n )}\n </div>\n );\n};\n\nexport default UploaderComponent;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ interface IXlsExportButtonProps {
3
+ onClickHook?: () => void;
4
+ fetchFunction?: () => Promise<Blob>;
5
+ filename?: string;
6
+ isLoading?: boolean;
7
+ disabled?: boolean;
8
+ buttonText?: string;
9
+ className?: string;
10
+ tooltipText?: string;
11
+ }
12
+ declare const XlsExportButton: React.FC<IXlsExportButtonProps>;
13
+ export default XlsExportButton;
@@ -0,0 +1,47 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import classNames from "classnames";
4
+ import ControlledTooltip from "../UI/ControlledTooltip.js";
5
+ import { handleDownload } from "../../helpers/utilityHelpers.js";
6
+ import ControlledButton from "../Form/ControlledButton.js";
7
+ import LoadingSpinner from "../UI/LoadingSpinner.js";
8
+ import { MaterialSymbol } from "../UI/MaterialSymbol/index.js";
9
+ const XlsExportButton = ({
10
+ onClickHook,
11
+ fetchFunction,
12
+ filename = "export.xls",
13
+ isLoading: externalLoading,
14
+ disabled = false,
15
+ buttonText = "Exportar",
16
+ className,
17
+ tooltipText = "Exportar dados da tabela"
18
+ }) => {
19
+ const [internalLoading, setInternalLoading] = useState(false);
20
+ const isLoading = externalLoading !== void 0 ? externalLoading : internalLoading;
21
+ const handleClick = async () => {
22
+ if (fetchFunction) {
23
+ await handleDownload(fetchFunction, filename, setInternalLoading);
24
+ } else if (onClickHook) {
25
+ onClickHook();
26
+ }
27
+ };
28
+ return /* @__PURE__ */ jsx(ControlledTooltip, { content: tooltipText, children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
29
+ ControlledButton,
30
+ {
31
+ onClick: handleClick,
32
+ disabled: isLoading || disabled,
33
+ className: classNames(
34
+ "rounded-md border border-border-subtle bg-transparent px-4 py-2 text-sm font-semibold capitalize text-foreground-muted shadow-none hover:bg-muted-hover hover:shadow-none",
35
+ className
36
+ ),
37
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center align-middle", children: [
38
+ isLoading ? /* @__PURE__ */ jsx(LoadingSpinner, { size: 4, color: "foreground" }) : /* @__PURE__ */ jsx(MaterialSymbol, { icon: "download", size: 18 }),
39
+ /* @__PURE__ */ jsx("span", { className: "ml-2", children: buttonText })
40
+ ] })
41
+ }
42
+ ) }) });
43
+ };
44
+ export {
45
+ XlsExportButton as default
46
+ };
47
+ //# sourceMappingURL=XlsExportButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsExportButton.js","sources":["../../../src/components/Upload/XlsExportButton.tsx"],"sourcesContent":["import { useState } from 'react';\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nimport ControlledTooltip from '@/components/UI/ControlledTooltip';\nimport { handleDownload } from '@/helpers/utilityHelpers';\n\nimport ControlledButton from '../Form/ControlledButton';\nimport LoadingSpinner from '../UI/LoadingSpinner';\nimport { MaterialSymbol } from '../UI/MaterialSymbol';\n\ninterface IXlsExportButtonProps {\n onClickHook?: () => void;\n fetchFunction?: () => Promise<Blob>;\n filename?: string;\n isLoading?: boolean;\n disabled?: boolean;\n buttonText?: string;\n className?: string;\n tooltipText?: string;\n}\n\nconst XlsExportButton: React.FC<IXlsExportButtonProps> = ({\n onClickHook,\n fetchFunction,\n filename = 'export.xls',\n isLoading: externalLoading,\n disabled = false,\n buttonText = 'Exportar',\n className,\n tooltipText = 'Exportar dados da tabela',\n}) => {\n const [internalLoading, setInternalLoading] = useState(false);\n\n const isLoading = externalLoading !== undefined ? externalLoading : internalLoading;\n\n const handleClick = async () => {\n if (fetchFunction) {\n await handleDownload(fetchFunction, filename, setInternalLoading);\n } else if (onClickHook) {\n onClickHook();\n }\n };\n\n return (\n <ControlledTooltip content={tooltipText}>\n <div>\n <ControlledButton\n onClick={handleClick}\n disabled={isLoading || disabled}\n className={classNames(\n 'rounded-md border border-border-subtle bg-transparent px-4 py-2 text-sm font-semibold capitalize text-foreground-muted shadow-none hover:bg-muted-hover hover:shadow-none',\n className,\n )}\n >\n <div className=\"flex flex-row items-center align-middle\">\n {isLoading ? <LoadingSpinner size={4} color=\"foreground\" /> : <MaterialSymbol icon=\"download\" size={18} />}\n <span className=\"ml-2\">{buttonText}</span>\n </div>\n </ControlledButton>\n </div>\n </ControlledTooltip>\n );\n};\n\nexport default XlsExportButton;\n"],"names":[],"mappings":";;;;;;;;AAsBA,MAAM,kBAAmD,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb;AAAA,EACA,cAAc;AAChB,MAAM;AACJ,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,KAAK;AAE5D,QAAM,YAAY,oBAAoB,SAAY,kBAAkB;AAEpE,QAAM,cAAc,YAAY;AAC9B,QAAI,eAAe;AACjB,YAAM,eAAe,eAAe,UAAU,kBAAkB;AAAA,IAClE,WAAW,aAAa;AACtB,kBAAA;AAAA,IACF;AAAA,EACF;AAEA,SACE,oBAAC,mBAAA,EAAkB,SAAS,aAC1B,8BAAC,OAAA,EACC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,MACT,UAAU,aAAa;AAAA,MACvB,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAGF,UAAA,qBAAC,OAAA,EAAI,WAAU,2CACZ,UAAA;AAAA,QAAA,YAAY,oBAAC,gBAAA,EAAe,MAAM,GAAG,OAAM,aAAA,CAAa,IAAK,oBAAC,gBAAA,EAAe,MAAK,YAAW,MAAM,IAAI;AAAA,QACxG,oBAAC,QAAA,EAAK,WAAU,QAAQ,UAAA,WAAA,CAAW;AAAA,MAAA,EAAA,CACrC;AAAA,IAAA;AAAA,EAAA,GAEJ,EAAA,CACF;AAEJ;"}
@@ -0,0 +1,7 @@
1
+ import { Ref } from 'react';
2
+ /**
3
+ * Applies one node to several refs. Floating surfaces need this: the handler registers the
4
+ * node as the positioning reference while an outer wrapper (a tooltip on the same trigger)
5
+ * registers it as its own reference, and a plain clone would silently drop one of them.
6
+ */
7
+ export declare const composeRefs: <T>(...refs: Array<Ref<T> | undefined>) => (node: T | null) => void;
@@ -0,0 +1,14 @@
1
+ const composeRefs = (...refs) => (node) => {
2
+ refs.forEach((ref) => {
3
+ if (!ref) return;
4
+ if (typeof ref === "function") {
5
+ ref(node);
6
+ return;
7
+ }
8
+ ref.current = node;
9
+ });
10
+ };
11
+ export {
12
+ composeRefs
13
+ };
14
+ //# sourceMappingURL=composeRefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composeRefs.js","sources":["../../src/helpers/composeRefs.ts"],"sourcesContent":["import type { MutableRefObject, Ref } from 'react';\n\n/**\n * Applies one node to several refs. Floating surfaces need this: the handler registers the\n * node as the positioning reference while an outer wrapper (a tooltip on the same trigger)\n * registers it as its own reference, and a plain clone would silently drop one of them.\n */\nexport const composeRefs =\n <T>(...refs: Array<Ref<T> | undefined>) =>\n (node: T | null): void => {\n refs.forEach((ref) => {\n if (!ref) return;\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n (ref as MutableRefObject<T | null>).current = node;\n });\n };\n"],"names":[],"mappings":"AAOO,MAAM,cACX,IAAO,SACP,CAAC,SAAyB;AACxB,OAAK,QAAQ,CAAC,QAAQ;AACpB,QAAI,CAAC,IAAK;AACV,QAAI,OAAO,QAAQ,YAAY;AAC7B,UAAI,IAAI;AACR;AAAA,IACF;AACC,QAAmC,UAAU;AAAA,EAChD,CAAC;AACH;"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Get the month name in Portuguese from a Date object
3
+ * @param date - The date object to extract the month name from
4
+ * @returns Capitalized month name in Portuguese
5
+ */
6
+ export declare const getMonthName: (date: Date) => string;
7
+ /**
8
+ * Format a Date object as DD/MM/YYYY string
9
+ * @param date - The date object to format
10
+ * @returns Formatted date string in DD/MM/YYYY format or '-' if invalid
11
+ */
12
+ export declare const formatDate: (date: Date) => string;
13
+ /**
14
+ * Format a Date object as simple date with abbreviated month in Portuguese
15
+ * @param date - The date object to format
16
+ * @returns Formatted date string like "15 Jan"
17
+ */
18
+ export declare const formatSimpleDate: (date: Date) => string;
19
+ /**
20
+ * Format an ISO date string as DD/MM/YYYY
21
+ * @param raw - ISO date string ('YYYY-MM-DD' or 'YYYY-MM-DDTHH:mm...')
22
+ * @returns Formatted date string in DD/MM/YYYY format, or the input unchanged if not parseable
23
+ */
24
+ export declare const formatIsoDate: (raw: string) => string;
25
+ /**
26
+ * Get current timestamp in local timezone as ISO-like string
27
+ * @returns Local timestamp string in format "YYYY-MM-DDTHH:MM:SS"
28
+ */
29
+ export declare const getLocalTimestamp: () => string;
30
+ /**
31
+ * Format an ISO timestamp string to DD/MM/YYYY HH:MM format
32
+ * @param input - ISO timestamp string (e.g., "2023-12-15T14:30:00")
33
+ * @returns Formatted timestamp string in DD/MM/YYYY HH:MM format
34
+ */
35
+ export declare const formatTimeStamps: (input: string) => string;
36
+ /**
37
+ * Format a Date object as a full date label in Portuguese
38
+ * @param date - The date object to format
39
+ * @returns Full date string like "segunda-feira, 15 de janeiro de 2024"
40
+ */
41
+ export declare const getFormatedDateLabel: (date: Date) => string;
42
+ /**
43
+ * Calculate and format duration from milliseconds to days
44
+ * @param duration - Duration in milliseconds
45
+ * @returns Formatted duration string like "5 dia(s)" or "Indisponível"
46
+ */
47
+ export declare const calculateDuration: (duration: number) => string;
@@ -0,0 +1,69 @@
1
+ const getMonthName = (date) => {
2
+ return capitalize(Intl.DateTimeFormat("pt-BR", { month: "long" }).format(date));
3
+ };
4
+ const formatDate = (date) => {
5
+ if (!(date instanceof Date) || isNaN(date.getTime())) {
6
+ return "-";
7
+ }
8
+ const day = String(date.getUTCDate()).padStart(2, "0");
9
+ const month = String(date.getUTCMonth() + 1).padStart(2, "0");
10
+ const year = date.getUTCFullYear();
11
+ return `${day}/${month}/${year}`;
12
+ };
13
+ const formatSimpleDate = (date) => {
14
+ return new Intl.DateTimeFormat("pt-BR", {
15
+ day: "2-digit",
16
+ month: "short",
17
+ timeZone: "UTC"
18
+ }).format(date);
19
+ };
20
+ const formatIsoDate = (raw) => {
21
+ const [year, month, day] = raw.slice(0, 10).split("-");
22
+ return year && month && day ? `${day}/${month}/${year}` : raw;
23
+ };
24
+ const getLocalTimestamp = () => {
25
+ const now = /* @__PURE__ */ new Date();
26
+ const year = now.getFullYear();
27
+ const month = String(now.getMonth() + 1).padStart(2, "0");
28
+ const day = String(now.getDate()).padStart(2, "0");
29
+ const hours = String(now.getHours()).padStart(2, "0");
30
+ const minutes = String(now.getMinutes()).padStart(2, "0");
31
+ const seconds = String(now.getSeconds()).padStart(2, "0");
32
+ return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;
33
+ };
34
+ const formatTimeStamps = (input) => {
35
+ const [datePart, timePart] = input?.split("T") ?? [];
36
+ if (!datePart || !timePart) return "-";
37
+ const [year, month, day] = datePart.split("-").map(Number);
38
+ const [hour, minute] = timePart.split(":").map(Number);
39
+ return `${day.toString().padStart(2, "0")}/${month.toString().padStart(2, "0")}/${year} ${hour.toString().padStart(2, "0")}:${minute.toString().padStart(2, "0")}`;
40
+ };
41
+ const getFormatedDateLabel = (date) => {
42
+ const options = {
43
+ weekday: "long",
44
+ day: "numeric",
45
+ month: "long",
46
+ year: "numeric"
47
+ };
48
+ return new Intl.DateTimeFormat("pt-BR", options).format(date);
49
+ };
50
+ const calculateDuration = (duration) => {
51
+ if (!duration) return "Indisponível";
52
+ const durationInDays = Math.ceil(duration / (1e3 * 60 * 60 * 24));
53
+ return `${durationInDays} dia(s)`;
54
+ };
55
+ const capitalize = (str) => {
56
+ if (!str || typeof str !== "string") return "";
57
+ return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
58
+ };
59
+ export {
60
+ calculateDuration,
61
+ formatDate,
62
+ formatIsoDate,
63
+ formatSimpleDate,
64
+ formatTimeStamps,
65
+ getFormatedDateLabel,
66
+ getLocalTimestamp,
67
+ getMonthName
68
+ };
69
+ //# sourceMappingURL=dateHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateHelpers.js","sources":["../../src/helpers/dateHelpers.ts"],"sourcesContent":["/**\n * Get the month name in Portuguese from a Date object\n * @param date - The date object to extract the month name from\n * @returns Capitalized month name in Portuguese\n */\nexport const getMonthName = (date: Date) => {\n return capitalize(Intl.DateTimeFormat('pt-BR', { month: 'long' }).format(date));\n};\n\n/**\n * Format a Date object as DD/MM/YYYY string\n * @param date - The date object to format\n * @returns Formatted date string in DD/MM/YYYY format or '-' if invalid\n */\nexport const formatDate = (date: Date) => {\n if (!(date instanceof Date) || isNaN(date.getTime())) {\n return '-';\n }\n\n const day = String(date.getUTCDate()).padStart(2, '0');\n const month = String(date.getUTCMonth() + 1).padStart(2, '0');\n const year = date.getUTCFullYear();\n return `${day}/${month}/${year}`;\n};\n\n/**\n * Format a Date object as simple date with abbreviated month in Portuguese\n * @param date - The date object to format\n * @returns Formatted date string like \"15 Jan\"\n */\nexport const formatSimpleDate = (date: Date) => {\n return new Intl.DateTimeFormat('pt-BR', {\n day: '2-digit',\n month: 'short',\n timeZone: 'UTC',\n }).format(date);\n};\n\n/**\n * Format an ISO date string as DD/MM/YYYY\n * @param raw - ISO date string ('YYYY-MM-DD' or 'YYYY-MM-DDTHH:mm...')\n * @returns Formatted date string in DD/MM/YYYY format, or the input unchanged if not parseable\n */\nexport const formatIsoDate = (raw: string): string => {\n const [year, month, day] = raw.slice(0, 10).split('-');\n return year && month && day ? `${day}/${month}/${year}` : raw;\n};\n\n/**\n * Get current timestamp in local timezone as ISO-like string\n * @returns Local timestamp string in format \"YYYY-MM-DDTHH:MM:SS\"\n */\nexport const getLocalTimestamp = (): string => {\n const now = new Date();\n const year = now.getFullYear();\n const month = String(now.getMonth() + 1).padStart(2, '0');\n const day = String(now.getDate()).padStart(2, '0');\n const hours = String(now.getHours()).padStart(2, '0');\n const minutes = String(now.getMinutes()).padStart(2, '0');\n const seconds = String(now.getSeconds()).padStart(2, '0');\n return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;\n};\n\n/**\n * Format an ISO timestamp string to DD/MM/YYYY HH:MM format\n * @param input - ISO timestamp string (e.g., \"2023-12-15T14:30:00\")\n * @returns Formatted timestamp string in DD/MM/YYYY HH:MM format\n */\nexport const formatTimeStamps = (input: string): string => {\n const [datePart, timePart] = input?.split('T') ?? [];\n if (!datePart || !timePart) return '-';\n\n const [year, month, day] = datePart.split('-').map(Number);\n const [hour, minute] = timePart.split(':').map(Number);\n\n return `${day.toString().padStart(2, '0')}/${month.toString().padStart(2, '0')}/${year} ${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;\n};\n\n/**\n * Format a Date object as a full date label in Portuguese\n * @param date - The date object to format\n * @returns Full date string like \"segunda-feira, 15 de janeiro de 2024\"\n */\nexport const getFormatedDateLabel = (date: Date) => {\n const options: Intl.DateTimeFormatOptions = {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n };\n\n return new Intl.DateTimeFormat('pt-BR', options).format(date);\n};\n\n/**\n * Calculate and format duration from milliseconds to days\n * @param duration - Duration in milliseconds\n * @returns Formatted duration string like \"5 dia(s)\" or \"Indisponível\"\n */\nexport const calculateDuration = (duration: number) => {\n // eslint-disable-next-line i18n-check/no-portuguese-strings\n if (!duration) return 'Indisponível';\n\n const durationInDays = Math.ceil(duration / (1000 * 60 * 60 * 24));\n\n return `${durationInDays} dia(s)`;\n};\n\n/**\n * Capitalize the first letter of a string and lowercase the rest\n * @param str - The string to capitalize\n * @returns Capitalized string or empty string if invalid input\n */\nconst capitalize = (str?: string) => {\n if (!str || typeof str !== 'string') return '';\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n};\n"],"names":[],"mappings":"AAKO,MAAM,eAAe,CAAC,SAAe;AAC1C,SAAO,WAAW,KAAK,eAAe,SAAS,EAAE,OAAO,QAAQ,EAAE,OAAO,IAAI,CAAC;AAChF;AAOO,MAAM,aAAa,CAAC,SAAe;AACxC,MAAI,EAAE,gBAAgB,SAAS,MAAM,KAAK,QAAA,CAAS,GAAG;AACpD,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,OAAO,KAAK,WAAA,CAAY,EAAE,SAAS,GAAG,GAAG;AACrD,QAAM,QAAQ,OAAO,KAAK,YAAA,IAAgB,CAAC,EAAE,SAAS,GAAG,GAAG;AAC5D,QAAM,OAAO,KAAK,eAAA;AAClB,SAAO,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI;AAChC;AAOO,MAAM,mBAAmB,CAAC,SAAe;AAC9C,SAAO,IAAI,KAAK,eAAe,SAAS;AAAA,IACtC,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,EAAA,CACX,EAAE,OAAO,IAAI;AAChB;AAOO,MAAM,gBAAgB,CAAC,QAAwB;AACpD,QAAM,CAAC,MAAM,OAAO,GAAG,IAAI,IAAI,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AACrD,SAAO,QAAQ,SAAS,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,KAAK;AAC5D;AAMO,MAAM,oBAAoB,MAAc;AAC7C,QAAM,0BAAU,KAAA;AAChB,QAAM,OAAO,IAAI,YAAA;AACjB,QAAM,QAAQ,OAAO,IAAI,SAAA,IAAa,CAAC,EAAE,SAAS,GAAG,GAAG;AACxD,QAAM,MAAM,OAAO,IAAI,QAAA,CAAS,EAAE,SAAS,GAAG,GAAG;AACjD,QAAM,QAAQ,OAAO,IAAI,SAAA,CAAU,EAAE,SAAS,GAAG,GAAG;AACpD,QAAM,UAAU,OAAO,IAAI,WAAA,CAAY,EAAE,SAAS,GAAG,GAAG;AACxD,QAAM,UAAU,OAAO,IAAI,WAAA,CAAY,EAAE,SAAS,GAAG,GAAG;AACxD,SAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO;AAC/D;AAOO,MAAM,mBAAmB,CAAC,UAA0B;AACzD,QAAM,CAAC,UAAU,QAAQ,IAAI,OAAO,MAAM,GAAG,KAAK,CAAA;AAClD,MAAI,CAAC,YAAY,CAAC,SAAU,QAAO;AAEnC,QAAM,CAAC,MAAM,OAAO,GAAG,IAAI,SAAS,MAAM,GAAG,EAAE,IAAI,MAAM;AACzD,QAAM,CAAC,MAAM,MAAM,IAAI,SAAS,MAAM,GAAG,EAAE,IAAI,MAAM;AAErD,SAAO,GAAG,IAAI,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,IAAI,MAAM,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,IAAI,OAAO,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC;AAClK;AAOO,MAAM,uBAAuB,CAAC,SAAe;AAClD,QAAM,UAAsC;AAAA,IAC1C,SAAS;AAAA,IACT,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,EAAA;AAGR,SAAO,IAAI,KAAK,eAAe,SAAS,OAAO,EAAE,OAAO,IAAI;AAC9D;AAOO,MAAM,oBAAoB,CAAC,aAAqB;AAErD,MAAI,CAAC,SAAU,QAAO;AAEtB,QAAM,iBAAiB,KAAK,KAAK,YAAY,MAAO,KAAK,KAAK,GAAG;AAEjE,SAAO,GAAG,cAAc;AAC1B;AAOA,MAAM,aAAa,CAAC,QAAiB;AACnC,MAAI,CAAC,OAAO,OAAO,QAAQ,SAAU,QAAO;AAC5C,SAAO,IAAI,OAAO,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAC,EAAE,YAAA;AACpD;"}
@@ -0,0 +1,3 @@
1
+ import { SymbolCodepoints } from '../components/UI/MaterialSymbol';
2
+ export declare const formatFileSize: (sizeInBytes: number) => string;
3
+ export declare const iconForMimeType: (mimeType: string) => SymbolCodepoints;
@@ -0,0 +1,17 @@
1
+ const formatFileSize = (sizeInBytes) => {
2
+ if (!Number.isFinite(sizeInBytes) || sizeInBytes <= 0) return "0 KB";
3
+ if (sizeInBytes < 1024 * 1024) return `${Math.max(1, Math.round(sizeInBytes / 1024))} KB`;
4
+ return `${(sizeInBytes / (1024 * 1024)).toFixed(1)} MB`;
5
+ };
6
+ const iconForMimeType = (mimeType) => {
7
+ if ((mimeType ?? "").startsWith("image/")) return "image";
8
+ if ((mimeType ?? "").startsWith("audio/")) return "mic";
9
+ if ((mimeType ?? "").startsWith("video/")) return "videocam";
10
+ if (mimeType === "application/pdf") return "picture_as_pdf";
11
+ return "description";
12
+ };
13
+ export {
14
+ formatFileSize,
15
+ iconForMimeType
16
+ };
17
+ //# sourceMappingURL=fileAttachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileAttachments.js","sources":["../../src/helpers/fileAttachments.ts"],"sourcesContent":["import { SymbolCodepoints } from '../components/UI/MaterialSymbol';\n\nexport const formatFileSize = (sizeInBytes: number): string => {\n if (!Number.isFinite(sizeInBytes) || sizeInBytes <= 0) return '0 KB';\n if (sizeInBytes < 1024 * 1024) return `${Math.max(1, Math.round(sizeInBytes / 1024))} KB`;\n return `${(sizeInBytes / (1024 * 1024)).toFixed(1)} MB`;\n};\n\nexport const iconForMimeType = (mimeType: string): SymbolCodepoints => {\n if ((mimeType ?? '').startsWith('image/')) return 'image';\n if ((mimeType ?? '').startsWith('audio/')) return 'mic';\n if ((mimeType ?? '').startsWith('video/')) return 'videocam';\n if (mimeType === 'application/pdf') return 'picture_as_pdf';\n return 'description';\n};\n"],"names":[],"mappings":"AAEO,MAAM,iBAAiB,CAAC,gBAAgC;AAC7D,MAAI,CAAC,OAAO,SAAS,WAAW,KAAK,eAAe,EAAG,QAAO;AAC9D,MAAI,cAAc,OAAO,KAAM,QAAO,GAAG,KAAK,IAAI,GAAG,KAAK,MAAM,cAAc,IAAI,CAAC,CAAC;AACpF,SAAO,IAAI,eAAe,OAAO,OAAO,QAAQ,CAAC,CAAC;AACpD;AAEO,MAAM,kBAAkB,CAAC,aAAuC;AACrE,OAAK,YAAY,IAAI,WAAW,QAAQ,EAAG,QAAO;AAClD,OAAK,YAAY,IAAI,WAAW,QAAQ,EAAG,QAAO;AAClD,OAAK,YAAY,IAAI,WAAW,QAAQ,EAAG,QAAO;AAClD,MAAI,aAAa,kBAAmB,QAAO;AAC3C,SAAO;AACT;"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Format a number as currency with Brazilian locale
3
+ * @param value - The value in cents to format (optional)
4
+ * @param currency - Currency code (default: 'BRL')
5
+ * @param numberOnly - If true, returns only the number without currency symbol
6
+ * @param decimals - Number of decimal places (default: 2)
7
+ * @returns Formatted currency string or 'R$ 0,00' if no value
8
+ */
9
+ export declare const formatCurrency: (value?: number, currency?: string, numberOnly?: boolean, decimals?: number) => string;
10
+ /**
11
+ * Format a number with Brazilian locale formatting
12
+ * @param value - The number to format (optional)
13
+ * @param forceDecimals - If true, always shows 2 decimal places
14
+ * @param round - If true, rounds the number before formatting
15
+ * @returns Formatted number string or '0' if no value
16
+ */
17
+ export declare const formatNumber: (value?: number, forceDecimals?: boolean, round?: boolean) => string;
18
+ /**
19
+ * Format a number as percentage with Brazilian locale
20
+ * @param value - The decimal value to format as percentage (e.g., 0.15 for 15%)
21
+ * @param digits - Number of decimal places to show (optional)
22
+ * @returns Formatted percentage string or '0%' if no value
23
+ */
24
+ export declare const formatPercentage: (value: number | undefined, digits?: number) => string;
25
+ /**
26
+ * Format a string as CPF (xxx.xxx.xxx-xx) or CNPJ (xx.xxx.xxx/xxxx-xx) based on its length
27
+ * @param value - The CPF or CNPJ string to be formatted (numbers only)
28
+ * @returns Formatted CPF or CNPJ string with appropriate mask
29
+ */
30
+ export declare const formatCpfCnpj: (value: string) => string;
31
+ /**
32
+ * Format a string as partner official fiscal classification with pattern 0000.00.00
33
+ * @param value - The fiscal classification string to be formatted
34
+ * @returns Formatted fiscal classification string with appropriate mask
35
+ */
36
+ export declare const formatPartnerOfficialFiscalClassification: (value: string) => string;
@@ -0,0 +1,65 @@
1
+ const formatCurrency = (value, currency = "BRL", numberOnly = false, decimals = 2) => {
2
+ if (value) {
3
+ const v = (value / 100).toLocaleString("pt-BR", {
4
+ style: "currency",
5
+ currency,
6
+ minimumFractionDigits: decimals,
7
+ maximumFractionDigits: decimals,
8
+ currencyDisplay: numberOnly ? "code" : void 0
9
+ });
10
+ if (numberOnly) {
11
+ return v.replace(/[a-z]{3}/i, "").trim();
12
+ }
13
+ return v;
14
+ }
15
+ return "R$ 0,00";
16
+ };
17
+ const formatNumber = (value, forceDecimals = false, round = false) => {
18
+ if (value) {
19
+ let v = value;
20
+ if (round) {
21
+ v = Math.round(v);
22
+ }
23
+ return v.toLocaleString("pt-BR", {
24
+ style: "decimal",
25
+ minimumFractionDigits: forceDecimals ? 2 : void 0,
26
+ maximumFractionDigits: forceDecimals ? 2 : void 0
27
+ });
28
+ }
29
+ return "0";
30
+ };
31
+ const formatPercentage = (value, digits) => {
32
+ if (value) {
33
+ return value.toLocaleString("pt-BR", {
34
+ style: "percent",
35
+ minimumFractionDigits: digits != null ? digits : void 0,
36
+ maximumFractionDigits: digits != null ? digits : void 0
37
+ });
38
+ }
39
+ return "0%";
40
+ };
41
+ const formatCpfCnpj = (value) => {
42
+ const digits = value.replace(/\D/g, "");
43
+ if (digits.length === 11) {
44
+ return digits.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/, "$1.$2.$3-$4");
45
+ }
46
+ if (digits.length === 14) {
47
+ return digits.replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/, "$1.$2.$3/$4-$5");
48
+ }
49
+ return digits;
50
+ };
51
+ const formatPartnerOfficialFiscalClassification = (value) => {
52
+ const digits = value.replace(/\D/g, "");
53
+ if (digits.length >= 8) {
54
+ return digits.replace(/(\d{4})(\d{2})(\d{2})(.*)/, "$1.$2.$3");
55
+ }
56
+ return value;
57
+ };
58
+ export {
59
+ formatCpfCnpj,
60
+ formatCurrency,
61
+ formatNumber,
62
+ formatPartnerOfficialFiscalClassification,
63
+ formatPercentage
64
+ };
65
+ //# sourceMappingURL=formatHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatHelpers.js","sources":["../../src/helpers/formatHelpers.ts"],"sourcesContent":["/**\n * Format a number as currency with Brazilian locale\n * @param value - The value in cents to format (optional)\n * @param currency - Currency code (default: 'BRL')\n * @param numberOnly - If true, returns only the number without currency symbol\n * @param decimals - Number of decimal places (default: 2)\n * @returns Formatted currency string or 'R$ 0,00' if no value\n */\nexport const formatCurrency = (\n value?: number,\n currency: string = 'BRL',\n numberOnly: boolean = false,\n decimals: number = 2,\n): string => {\n if (value) {\n const v = (value / 100).toLocaleString('pt-BR', {\n style: 'currency',\n currency: currency,\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n currencyDisplay: numberOnly ? 'code' : undefined,\n });\n if (numberOnly) {\n return v.replace(/[a-z]{3}/i, '').trim();\n }\n return v;\n }\n\n return 'R$ 0,00';\n};\n\n/**\n * Format a number with Brazilian locale formatting\n * @param value - The number to format (optional)\n * @param forceDecimals - If true, always shows 2 decimal places\n * @param round - If true, rounds the number before formatting\n * @returns Formatted number string or '0' if no value\n */\nexport const formatNumber = (value?: number, forceDecimals: boolean = false, round: boolean = false): string => {\n if (value) {\n let v = value;\n if (round) {\n v = Math.round(v);\n }\n return v.toLocaleString('pt-BR', {\n style: 'decimal',\n minimumFractionDigits: forceDecimals ? 2 : undefined,\n maximumFractionDigits: forceDecimals ? 2 : undefined,\n });\n }\n\n return '0';\n};\n\n/**\n * Format a number as percentage with Brazilian locale\n * @param value - The decimal value to format as percentage (e.g., 0.15 for 15%)\n * @param digits - Number of decimal places to show (optional)\n * @returns Formatted percentage string or '0%' if no value\n */\nexport const formatPercentage = (value: number | undefined, digits?: number): string => {\n if (value) {\n return value.toLocaleString('pt-BR', {\n style: 'percent',\n minimumFractionDigits: digits != null ? digits : undefined,\n maximumFractionDigits: digits != null ? digits : undefined,\n });\n }\n\n return '0%';\n};\n\n/**\n * Format a string as CPF (xxx.xxx.xxx-xx) or CNPJ (xx.xxx.xxx/xxxx-xx) based on its length\n * @param value - The CPF or CNPJ string to be formatted (numbers only)\n * @returns Formatted CPF or CNPJ string with appropriate mask\n */\nexport const formatCpfCnpj = (value: string): string => {\n const digits = value.replace(/\\D/g, '');\n\n if (digits.length === 11) {\n return digits.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/, '$1.$2.$3-$4');\n }\n\n if (digits.length === 14) {\n return digits.replace(/(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})/, '$1.$2.$3/$4-$5');\n }\n\n return digits;\n};\n\n/**\n * Format a string as partner official fiscal classification with pattern 0000.00.00\n * @param value - The fiscal classification string to be formatted\n * @returns Formatted fiscal classification string with appropriate mask\n */\nexport const formatPartnerOfficialFiscalClassification = (value: string): string => {\n const digits = value.replace(/\\D/g, '');\n\n if (digits.length >= 8) {\n return digits.replace(/(\\d{4})(\\d{2})(\\d{2})(.*)/, '$1.$2.$3');\n }\n\n return value;\n};\n"],"names":[],"mappings":"AAQO,MAAM,iBAAiB,CAC5B,OACA,WAAmB,OACnB,aAAsB,OACtB,WAAmB,MACR;AACX,MAAI,OAAO;AACT,UAAM,KAAK,QAAQ,KAAK,eAAe,SAAS;AAAA,MAC9C,OAAO;AAAA,MACP;AAAA,MACA,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,iBAAiB,aAAa,SAAS;AAAA,IAAA,CACxC;AACD,QAAI,YAAY;AACd,aAAO,EAAE,QAAQ,aAAa,EAAE,EAAE,KAAA;AAAA,IACpC;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AASO,MAAM,eAAe,CAAC,OAAgB,gBAAyB,OAAO,QAAiB,UAAkB;AAC9G,MAAI,OAAO;AACT,QAAI,IAAI;AACR,QAAI,OAAO;AACT,UAAI,KAAK,MAAM,CAAC;AAAA,IAClB;AACA,WAAO,EAAE,eAAe,SAAS;AAAA,MAC/B,OAAO;AAAA,MACP,uBAAuB,gBAAgB,IAAI;AAAA,MAC3C,uBAAuB,gBAAgB,IAAI;AAAA,IAAA,CAC5C;AAAA,EACH;AAEA,SAAO;AACT;AAQO,MAAM,mBAAmB,CAAC,OAA2B,WAA4B;AACtF,MAAI,OAAO;AACT,WAAO,MAAM,eAAe,SAAS;AAAA,MACnC,OAAO;AAAA,MACP,uBAAuB,UAAU,OAAO,SAAS;AAAA,MACjD,uBAAuB,UAAU,OAAO,SAAS;AAAA,IAAA,CAClD;AAAA,EACH;AAEA,SAAO;AACT;AAOO,MAAM,gBAAgB,CAAC,UAA0B;AACtD,QAAM,SAAS,MAAM,QAAQ,OAAO,EAAE;AAEtC,MAAI,OAAO,WAAW,IAAI;AACxB,WAAO,OAAO,QAAQ,gCAAgC,aAAa;AAAA,EACrE;AAEA,MAAI,OAAO,WAAW,IAAI;AACxB,WAAO,OAAO,QAAQ,uCAAuC,gBAAgB;AAAA,EAC/E;AAEA,SAAO;AACT;AAOO,MAAM,4CAA4C,CAAC,UAA0B;AAClF,QAAM,SAAS,MAAM,QAAQ,OAAO,EAAE;AAEtC,MAAI,OAAO,UAAU,GAAG;AACtB,WAAO,OAAO,QAAQ,6BAA6B,UAAU;AAAA,EAC/D;AAEA,SAAO;AACT;"}
@@ -0,0 +1,9 @@
1
+ export type TIconFontState = 'loading' | 'ready' | 'unavailable';
2
+ export declare const ICON_FONT_FAMILY = "Material Symbols Outlined";
3
+ /**
4
+ * Starts the icon font download at boot and mirrors its state on `<html data-icon-font>`.
5
+ * base.css hides the ligature text while the state is `loading` or `unavailable`, so a
6
+ * blocked or failed font leaves empty glyph boxes instead of icon names spread over the
7
+ * layout. Resolves to null when there is no DOM or the host registered no icon face.
8
+ */
9
+ export declare const watchIconFont: () => Promise<TIconFontState | null>;
@@ -0,0 +1,37 @@
1
+ import { uiLogger } from "./uiLogger.js";
2
+ const ICON_FONT_FAMILY = "Material Symbols Outlined";
3
+ const ICON_FONT_STATE_ATTRIBUTE = "data-icon-font";
4
+ const normalizeFontFamily = (family) => family.replace(/["']/g, "").trim();
5
+ const findIconFontFaces = () => {
6
+ const iconFontFaces = [];
7
+ document.fonts.forEach((fontFace) => {
8
+ if (normalizeFontFamily(fontFace.family) === ICON_FONT_FAMILY) iconFontFaces.push(fontFace);
9
+ });
10
+ return iconFontFaces;
11
+ };
12
+ const watchIconFont = async () => {
13
+ if (typeof document === "undefined" || !document.fonts) return null;
14
+ const iconFontFaces = findIconFontFaces();
15
+ if (iconFontFaces.length === 0) return null;
16
+ const rootElement = document.documentElement;
17
+ const isAlreadyLoaded = iconFontFaces.every((fontFace) => fontFace.status === "loaded");
18
+ if (isAlreadyLoaded) {
19
+ rootElement.setAttribute(ICON_FONT_STATE_ATTRIBUTE, "ready");
20
+ return "ready";
21
+ }
22
+ rootElement.setAttribute(ICON_FONT_STATE_ATTRIBUTE, "loading");
23
+ try {
24
+ await Promise.all(iconFontFaces.map((fontFace) => fontFace.load()));
25
+ rootElement.setAttribute(ICON_FONT_STATE_ATTRIBUTE, "ready");
26
+ return "ready";
27
+ } catch (error) {
28
+ rootElement.setAttribute(ICON_FONT_STATE_ATTRIBUTE, "unavailable");
29
+ uiLogger.warn(`[iconFont] ${ICON_FONT_FAMILY} could not be loaded; icons are hidden`, error);
30
+ return "unavailable";
31
+ }
32
+ };
33
+ export {
34
+ ICON_FONT_FAMILY,
35
+ watchIconFont
36
+ };
37
+ //# sourceMappingURL=iconFont.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iconFont.js","sources":["../../src/helpers/iconFont.ts"],"sourcesContent":["import { uiLogger } from './uiLogger';\n\nexport type TIconFontState = 'loading' | 'ready' | 'unavailable';\n\nexport const ICON_FONT_FAMILY = 'Material Symbols Outlined';\n\nconst ICON_FONT_STATE_ATTRIBUTE = 'data-icon-font';\n\nconst normalizeFontFamily = (family: string): string => family.replace(/[\"']/g, '').trim();\n\nconst findIconFontFaces = (): Array<FontFace> => {\n const iconFontFaces: Array<FontFace> = [];\n document.fonts.forEach((fontFace) => {\n if (normalizeFontFamily(fontFace.family) === ICON_FONT_FAMILY) iconFontFaces.push(fontFace);\n });\n return iconFontFaces;\n};\n\n/**\n * Starts the icon font download at boot and mirrors its state on `<html data-icon-font>`.\n * base.css hides the ligature text while the state is `loading` or `unavailable`, so a\n * blocked or failed font leaves empty glyph boxes instead of icon names spread over the\n * layout. Resolves to null when there is no DOM or the host registered no icon face.\n */\nexport const watchIconFont = async (): Promise<TIconFontState | null> => {\n if (typeof document === 'undefined' || !document.fonts) return null;\n\n const iconFontFaces = findIconFontFaces();\n if (iconFontFaces.length === 0) return null;\n\n const rootElement = document.documentElement;\n const isAlreadyLoaded = iconFontFaces.every((fontFace) => fontFace.status === 'loaded');\n if (isAlreadyLoaded) {\n rootElement.setAttribute(ICON_FONT_STATE_ATTRIBUTE, 'ready');\n return 'ready';\n }\n\n rootElement.setAttribute(ICON_FONT_STATE_ATTRIBUTE, 'loading');\n try {\n await Promise.all(iconFontFaces.map((fontFace) => fontFace.load()));\n rootElement.setAttribute(ICON_FONT_STATE_ATTRIBUTE, 'ready');\n return 'ready';\n } catch (error) {\n rootElement.setAttribute(ICON_FONT_STATE_ATTRIBUTE, 'unavailable');\n uiLogger.warn(`[iconFont] ${ICON_FONT_FAMILY} could not be loaded; icons are hidden`, error);\n return 'unavailable';\n }\n};\n"],"names":[],"mappings":";AAIO,MAAM,mBAAmB;AAEhC,MAAM,4BAA4B;AAElC,MAAM,sBAAsB,CAAC,WAA2B,OAAO,QAAQ,SAAS,EAAE,EAAE,KAAA;AAEpF,MAAM,oBAAoB,MAAuB;AAC/C,QAAM,gBAAiC,CAAA;AACvC,WAAS,MAAM,QAAQ,CAAC,aAAa;AACnC,QAAI,oBAAoB,SAAS,MAAM,MAAM,iBAAkB,eAAc,KAAK,QAAQ;AAAA,EAC5F,CAAC;AACD,SAAO;AACT;AAQO,MAAM,gBAAgB,YAA4C;AACvE,MAAI,OAAO,aAAa,eAAe,CAAC,SAAS,MAAO,QAAO;AAE/D,QAAM,gBAAgB,kBAAA;AACtB,MAAI,cAAc,WAAW,EAAG,QAAO;AAEvC,QAAM,cAAc,SAAS;AAC7B,QAAM,kBAAkB,cAAc,MAAM,CAAC,aAAa,SAAS,WAAW,QAAQ;AACtF,MAAI,iBAAiB;AACnB,gBAAY,aAAa,2BAA2B,OAAO;AAC3D,WAAO;AAAA,EACT;AAEA,cAAY,aAAa,2BAA2B,SAAS;AAC7D,MAAI;AACF,UAAM,QAAQ,IAAI,cAAc,IAAI,CAAC,aAAa,SAAS,KAAA,CAAM,CAAC;AAClE,gBAAY,aAAa,2BAA2B,OAAO;AAC3D,WAAO;AAAA,EACT,SAAS,OAAO;AACd,gBAAY,aAAa,2BAA2B,aAAa;AACjE,aAAS,KAAK,cAAc,gBAAgB,0CAA0C,KAAK;AAC3F,WAAO;AAAA,EACT;AACF;"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Best effort only: anything that is not a large raster image, or that fails to re-encode
3
+ * smaller, goes through untouched. Chat attachments must never be lost to the optimizer.
4
+ */
5
+ export declare const compressImageFile: (file: File) => Promise<File>;
@@ -0,0 +1,49 @@
1
+ const COMPRESSION_THRESHOLD_BYTES = 1e6;
2
+ const MAX_DIMENSION_PX = 1600;
3
+ const JPEG_QUALITY = 0.85;
4
+ const COMPRESSIBLE_TYPES = /* @__PURE__ */ new Set(["image/jpeg", "image/png", "image/webp"]);
5
+ const decodeImage = async (file) => {
6
+ if (typeof createImageBitmap === "function") {
7
+ return await createImageBitmap(file);
8
+ }
9
+ return await new Promise((resolve, reject) => {
10
+ const objectUrl = URL.createObjectURL(file);
11
+ const image = new Image();
12
+ image.onload = () => {
13
+ URL.revokeObjectURL(objectUrl);
14
+ resolve(image);
15
+ };
16
+ image.onerror = () => {
17
+ URL.revokeObjectURL(objectUrl);
18
+ reject(new Error("Image decode failed"));
19
+ };
20
+ image.src = objectUrl;
21
+ });
22
+ };
23
+ const compressImageFile = async (file) => {
24
+ if (!COMPRESSIBLE_TYPES.has(file.type) || file.size <= COMPRESSION_THRESHOLD_BYTES) return file;
25
+ try {
26
+ const source = await decodeImage(file);
27
+ const width = "width" in source ? source.width : 0;
28
+ const height = "height" in source ? source.height : 0;
29
+ if (!width || !height) return file;
30
+ const scale = Math.min(1, MAX_DIMENSION_PX / Math.max(width, height));
31
+ const canvas = document.createElement("canvas");
32
+ canvas.width = Math.max(1, Math.round(width * scale));
33
+ canvas.height = Math.max(1, Math.round(height * scale));
34
+ const context = canvas.getContext("2d");
35
+ if (!context) return file;
36
+ context.drawImage(source, 0, 0, canvas.width, canvas.height);
37
+ if ("close" in source) source.close();
38
+ const blob = await new Promise((resolve) => canvas.toBlob(resolve, "image/jpeg", JPEG_QUALITY));
39
+ if (!blob || blob.size >= file.size) return file;
40
+ const renamed = file.name.replace(/\.[^.]+$/, "") || file.name;
41
+ return new File([blob], `${renamed}.jpg`, { type: "image/jpeg" });
42
+ } catch {
43
+ return file;
44
+ }
45
+ };
46
+ export {
47
+ compressImageFile
48
+ };
49
+ //# sourceMappingURL=imageCompression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageCompression.js","sources":["../../src/helpers/imageCompression.ts"],"sourcesContent":["const COMPRESSION_THRESHOLD_BYTES = 1_000_000;\nconst MAX_DIMENSION_PX = 1600;\nconst JPEG_QUALITY = 0.85;\n\nconst COMPRESSIBLE_TYPES = new Set(['image/jpeg', 'image/png', 'image/webp']);\n\nconst decodeImage = async (file: File): Promise<ImageBitmap | HTMLImageElement> => {\n if (typeof createImageBitmap === 'function') {\n return await createImageBitmap(file);\n }\n\n return await new Promise<HTMLImageElement>((resolve, reject) => {\n const objectUrl = URL.createObjectURL(file);\n const image = new Image();\n image.onload = () => {\n URL.revokeObjectURL(objectUrl);\n resolve(image);\n };\n image.onerror = () => {\n URL.revokeObjectURL(objectUrl);\n reject(new Error('Image decode failed'));\n };\n image.src = objectUrl;\n });\n};\n\n/**\n * Best effort only: anything that is not a large raster image, or that fails to re-encode\n * smaller, goes through untouched. Chat attachments must never be lost to the optimizer.\n */\nexport const compressImageFile = async (file: File): Promise<File> => {\n if (!COMPRESSIBLE_TYPES.has(file.type) || file.size <= COMPRESSION_THRESHOLD_BYTES) return file;\n\n try {\n const source = await decodeImage(file);\n const width = 'width' in source ? source.width : 0;\n const height = 'height' in source ? source.height : 0;\n if (!width || !height) return file;\n\n const scale = Math.min(1, MAX_DIMENSION_PX / Math.max(width, height));\n const canvas = document.createElement('canvas');\n canvas.width = Math.max(1, Math.round(width * scale));\n canvas.height = Math.max(1, Math.round(height * scale));\n\n const context = canvas.getContext('2d');\n if (!context) return file;\n context.drawImage(source, 0, 0, canvas.width, canvas.height);\n if ('close' in source) source.close();\n\n const blob = await new Promise<Blob | null>((resolve) => canvas.toBlob(resolve, 'image/jpeg', JPEG_QUALITY));\n if (!blob || blob.size >= file.size) return file;\n\n const renamed = file.name.replace(/\\.[^.]+$/, '') || file.name;\n return new File([blob], `${renamed}.jpg`, { type: 'image/jpeg' });\n } catch {\n return file;\n }\n};\n"],"names":[],"mappings":"AAAA,MAAM,8BAA8B;AACpC,MAAM,mBAAmB;AACzB,MAAM,eAAe;AAErB,MAAM,qBAAqB,oBAAI,IAAI,CAAC,cAAc,aAAa,YAAY,CAAC;AAE5E,MAAM,cAAc,OAAO,SAAwD;AACjF,MAAI,OAAO,sBAAsB,YAAY;AAC3C,WAAO,MAAM,kBAAkB,IAAI;AAAA,EACrC;AAEA,SAAO,MAAM,IAAI,QAA0B,CAAC,SAAS,WAAW;AAC9D,UAAM,YAAY,IAAI,gBAAgB,IAAI;AAC1C,UAAM,QAAQ,IAAI,MAAA;AAClB,UAAM,SAAS,MAAM;AACnB,UAAI,gBAAgB,SAAS;AAC7B,cAAQ,KAAK;AAAA,IACf;AACA,UAAM,UAAU,MAAM;AACpB,UAAI,gBAAgB,SAAS;AAC7B,aAAO,IAAI,MAAM,qBAAqB,CAAC;AAAA,IACzC;AACA,UAAM,MAAM;AAAA,EACd,CAAC;AACH;AAMO,MAAM,oBAAoB,OAAO,SAA8B;AACpE,MAAI,CAAC,mBAAmB,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,4BAA6B,QAAO;AAE3F,MAAI;AACF,UAAM,SAAS,MAAM,YAAY,IAAI;AACrC,UAAM,QAAQ,WAAW,SAAS,OAAO,QAAQ;AACjD,UAAM,SAAS,YAAY,SAAS,OAAO,SAAS;AACpD,QAAI,CAAC,SAAS,CAAC,OAAQ,QAAO;AAE9B,UAAM,QAAQ,KAAK,IAAI,GAAG,mBAAmB,KAAK,IAAI,OAAO,MAAM,CAAC;AACpE,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,WAAO,QAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,KAAK,CAAC;AACpD,WAAO,SAAS,KAAK,IAAI,GAAG,KAAK,MAAM,SAAS,KAAK,CAAC;AAEtD,UAAM,UAAU,OAAO,WAAW,IAAI;AACtC,QAAI,CAAC,QAAS,QAAO;AACrB,YAAQ,UAAU,QAAQ,GAAG,GAAG,OAAO,OAAO,OAAO,MAAM;AAC3D,QAAI,WAAW,OAAQ,QAAO,MAAA;AAE9B,UAAM,OAAO,MAAM,IAAI,QAAqB,CAAC,YAAY,OAAO,OAAO,SAAS,cAAc,YAAY,CAAC;AAC3G,QAAI,CAAC,QAAQ,KAAK,QAAQ,KAAK,KAAM,QAAO;AAE5C,UAAM,UAAU,KAAK,KAAK,QAAQ,YAAY,EAAE,KAAK,KAAK;AAC1D,WAAO,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,OAAO,QAAQ,EAAE,MAAM,cAAc;AAAA,EAClE,QAAQ;AACN,WAAO;AAAA,EACT;AACF;"}
@@ -0,0 +1,32 @@
1
+ /** Most AI upload endpoints cap files at 8 MB; this leaves room for multipart overhead. */
2
+ export declare const AI_UPLOAD_SAFE_BYTES: number;
3
+ export type TImageOutputType = 'image/jpeg' | 'image/png' | 'image/webp';
4
+ export interface IResizeImageOptions {
5
+ maxDimension?: number;
6
+ quality?: number;
7
+ /** Defaults to JPEG. PNG and WebP keep transparency. */
8
+ outputType?: TImageOutputType;
9
+ }
10
+ /** File extension (without dot) for an image MIME type, `jpg` when unknown. */
11
+ export declare const imageExtensionForType: (type: string) => string;
12
+ export declare const resizeImageFile: (file: File, options?: IResizeImageOptions) => Promise<File>;
13
+ export interface IFitImageToUploadBudgetOptions {
14
+ maxBytes?: number;
15
+ }
16
+ /**
17
+ * Keeps the source image untouched whenever it already fits the upload budget, so an AI edit
18
+ * works on the original pixels. Only an oversized (or non PNG/JPEG/WebP) file is re-encoded,
19
+ * with high quality and the source format when possible, stepping down until it fits.
20
+ */
21
+ export declare const fitImageToUploadBudget: (file: File, { maxBytes }?: IFitImageToUploadBudgetOptions) => Promise<File>;
22
+ export declare const fileFromUrl: (url: string, fileName: string, signal?: AbortSignal) => Promise<File>;
23
+ /**
24
+ * Mede a imagem sem baixá-la de novo quando o navegador já a tem em cache.
25
+ *
26
+ * Devolve `null` em vez de lançar: medir é para AVISAR o usuário, então uma imagem que não carrega
27
+ * aqui não pode derrubar a tela nem virar um alerta falso.
28
+ */
29
+ export declare const measureImageDimensions: (src: string) => Promise<{
30
+ width: number;
31
+ height: number;
32
+ } | null>;