@archbase/components 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (573) hide show
  1. package/dist/admin/types.d.ts +65 -0
  2. package/dist/archbase-components-3.0.0.tgz +0 -0
  3. package/dist/buttons/ActionsDemo.d.ts +2 -0
  4. package/dist/buttons/ArchbaseActionButtons.d.ts +61 -0
  5. package/dist/buttons/index.d.ts +2 -0
  6. package/dist/charts/ArchbaseTimeline.d.ts +24 -0
  7. package/dist/charts/index.d.ts +3 -0
  8. package/dist/charts/vis-timeline/ArchbaseVisTimeline.d.ts +9 -0
  9. package/dist/charts/vis-timeline/ArchbaseVisTimeline.types.d.ts +284 -0
  10. package/dist/charts/vis-timeline/index.d.ts +9 -0
  11. package/dist/charts/vis-timeline/utils/timelineOptions.d.ts +68 -0
  12. package/dist/datagrid/components/index.d.ts +6 -0
  13. package/dist/datagrid/components/pagination/grid-pagination.d.ts +7 -0
  14. package/dist/datagrid/components/render/archbase-data-grid-item-renderer.d.ts +10 -0
  15. package/dist/datagrid/components/toolbar/global-search-input.d.ts +16 -0
  16. package/dist/datagrid/components/toolbar/grid-toolbar.d.ts +19 -0
  17. package/dist/datagrid/hooks/index.d.ts +3 -0
  18. package/dist/datagrid/hooks/use-grid-data-stable-rendering.d.ts +15 -0
  19. package/dist/datagrid/hooks/use-grid-data.d.ts +32 -0
  20. package/dist/datagrid/hooks/use-grid-details-panel.d.ts +51 -0
  21. package/dist/datagrid/index.d.ts +6 -0
  22. package/dist/datagrid/main/archbase-data-grid-column.d.ts +26 -0
  23. package/dist/datagrid/main/archbase-data-grid-formatters.d.ts +57 -0
  24. package/dist/datagrid/main/archbase-data-grid-pagination.d.ts +8 -0
  25. package/dist/datagrid/main/archbase-data-grid-toolbar.d.ts +7 -0
  26. package/dist/datagrid/main/archbase-data-grid-types.d.ts +252 -0
  27. package/dist/datagrid/main/archbase-data-grid-utils.d.ts +45 -0
  28. package/dist/datagrid/main/archbase-data-grid.d.ts +9 -0
  29. package/dist/datagrid/main/archbase-detail-panel-component.d.ts +52 -0
  30. package/dist/datagrid/main/archbase-expand-button.d.ts +22 -0
  31. package/dist/datagrid/main/archbase-grid-popover.d.ts +37 -0
  32. package/dist/datagrid/main/grid-row-actions.d.ts +15 -0
  33. package/dist/datagrid/main/index.d.ts +21 -0
  34. package/dist/datagrid/modals/export-data.d.ts +13 -0
  35. package/dist/datagrid/modals/export-modal.d.ts +9 -0
  36. package/dist/datagrid/modals/index.d.ts +6 -0
  37. package/dist/datagrid/modals/print-data.d.ts +16 -0
  38. package/dist/datagrid/modals/print-modal.d.ts +9 -0
  39. package/dist/datagrid/types/grid-props.d.ts +48 -0
  40. package/dist/datagrid/types/index.d.ts +1 -0
  41. package/dist/datagrid/utils/formatter.d.ts +39 -0
  42. package/dist/datagrid/utils/index.d.ts +1 -0
  43. package/dist/debug/index.d.ts +4 -0
  44. package/dist/debug/jsonpathpicker/ArchbaseJsonPathPicker.d.ts +37 -0
  45. package/dist/debug/jsonpathpicker/index.d.ts +1 -0
  46. package/dist/debug/jsonview/ArchbaseJsonViewDataRenderer.d.ts +34 -0
  47. package/dist/debug/jsonview/ArchbaseJsonViewDataTypeDetection.d.ts +8 -0
  48. package/dist/debug/jsonview/index.d.ts +11 -0
  49. package/dist/debug/objectinspector/ArchbaseDebugInspector.d.ts +23 -0
  50. package/dist/debug/objectinspector/ArchbaseFloatingWindow.d.ts +24 -0
  51. package/dist/debug/objectinspector/ArchbaseObjectInspector.d.ts +6 -0
  52. package/dist/debug/objectinspector/index.d.ts +3 -0
  53. package/dist/display/index.d.ts +4 -0
  54. package/dist/editors/ArchbaseAsyncMultiSelect.d.ts +112 -0
  55. package/dist/editors/ArchbaseAsyncSelect.context.d.ts +8 -0
  56. package/dist/editors/ArchbaseAsyncSelect.d.ts +102 -0
  57. package/dist/editors/ArchbaseAvatarEdit.d.ts +49 -0
  58. package/dist/editors/ArchbaseCheckbox.d.ts +45 -0
  59. package/dist/editors/ArchbaseChip.d.ts +43 -0
  60. package/dist/editors/ArchbaseChipGroup.d.ts +42 -0
  61. package/dist/editors/ArchbaseChipItem.d.ts +18 -0
  62. package/dist/editors/ArchbaseColorPicker.d.ts +3 -0
  63. package/dist/editors/ArchbaseCountdownProgress.d.ts +5 -0
  64. package/dist/editors/ArchbaseCronExpressionEdit.d.ts +16 -0
  65. package/dist/editors/ArchbaseCronExpressionEditor.d.ts +8 -0
  66. package/dist/editors/ArchbaseDatePicker.d.ts +2 -0
  67. package/dist/editors/ArchbaseDatePickerEdit.d.ts +85 -0
  68. package/dist/editors/ArchbaseDatePickerRange.d.ts +47 -0
  69. package/dist/editors/ArchbaseDateTimePickerEdit.d.ts +43 -0
  70. package/dist/editors/ArchbaseDateTimePickerRange.d.ts +58 -0
  71. package/dist/editors/ArchbaseEdit.d.ts +56 -0
  72. package/dist/editors/ArchbaseEdit.example.d.ts +8 -0
  73. package/dist/editors/ArchbaseFileAttachment.d.ts +17 -0
  74. package/dist/editors/ArchbaseImageEdit.d.ts +50 -0
  75. package/dist/editors/ArchbaseJsonEdit.d.ts +49 -0
  76. package/dist/editors/ArchbaseKeyValueEditor.d.ts +22 -0
  77. package/dist/editors/ArchbaseLookupEdit.d.ts +57 -0
  78. package/dist/editors/ArchbaseLookupNumber.d.ts +69 -0
  79. package/dist/editors/ArchbaseLookupSelect.d.ts +9 -0
  80. package/dist/editors/ArchbaseMarkdownEdit.d.ts +52 -0
  81. package/dist/editors/ArchbaseMaskEdit.d.ts +79 -0
  82. package/dist/editors/ArchbaseNumberEdit.d.ts +51 -0
  83. package/dist/editors/ArchbaseNumberInput.d.ts +2 -0
  84. package/dist/editors/ArchbaseOperationHoursEditor.d.ts +8 -0
  85. package/dist/editors/ArchbasePasswordEdit.d.ts +44 -0
  86. package/dist/editors/ArchbasePasswordInput.d.ts +2 -0
  87. package/dist/editors/ArchbaseRadio.d.ts +2 -0
  88. package/dist/editors/ArchbaseRadioGroup.d.ts +45 -0
  89. package/dist/editors/ArchbaseRadioItem.d.ts +12 -0
  90. package/dist/editors/ArchbaseRating.d.ts +52 -0
  91. package/dist/editors/ArchbaseRichTextEdit.d.ts +80 -0
  92. package/dist/editors/ArchbaseSelect.context.d.ts +8 -0
  93. package/dist/editors/ArchbaseSelect.d.ts +107 -0
  94. package/dist/editors/ArchbaseSelectItem.d.ts +15 -0
  95. package/dist/editors/ArchbaseSwitch.d.ts +53 -0
  96. package/dist/editors/ArchbaseTextArea.d.ts +47 -0
  97. package/dist/editors/ArchbaseTimeEdit.d.ts +52 -0
  98. package/dist/editors/ArchbaseTimeRangeSelector.d.ts +40 -0
  99. package/dist/editors/ArchbaseTreeSelect.d.ts +65 -0
  100. package/dist/editors/index.d.ts +81 -0
  101. package/dist/feedback/index.d.ts +4 -0
  102. package/dist/filters/ArchbaseCompositeFilters.d.ts +23 -0
  103. package/dist/filters/ArchbaseCompositeFilters.types.d.ts +303 -0
  104. package/dist/filters/ArchbaseCompositeFilters.utils.d.ts +69 -0
  105. package/dist/filters/components/FilterPill.d.ts +5 -0
  106. package/dist/filters/hooks/index.d.ts +4 -0
  107. package/dist/filters/hooks/useArchbaseFilterHistory.d.ts +24 -0
  108. package/dist/filters/hooks/useArchbaseFilterPresets.d.ts +23 -0
  109. package/dist/filters/hooks/useArchbaseFilters.d.ts +32 -0
  110. package/dist/filters/hooks/useArchbaseQuickFilters.d.ts +26 -0
  111. package/dist/filters/index.d.ts +8 -0
  112. package/dist/forms/index.d.ts +3 -0
  113. package/dist/hooks/index.d.ts +5 -0
  114. package/dist/hooks/useArchbaseContainerDimensions.d.ts +4 -0
  115. package/dist/hooks/useArchbaseElementSizeArea.d.ts +6 -0
  116. package/dist/hooks/useArchbaseListContext.d.ts +2 -0
  117. package/dist/hooks/useArchbaseNavigateParams.d.ts +3 -0
  118. package/dist/hooks/useArchbaseVisible.d.ts +2 -0
  119. package/dist/image/ArchbaseImage.d.ts +33 -0
  120. package/dist/image/ArchbaseMicrosoftAvatar.d.ts +7 -0
  121. package/dist/image/editor/components/BasicFilters/BasicFilter.d.ts +9 -0
  122. package/dist/image/editor/components/CropprWrapper/ArchbaseCropperWrapper.d.ts +12 -0
  123. package/dist/image/editor/components/EditImage/ArchbaseEditImage.d.ts +11 -0
  124. package/dist/image/editor/components/Input/Input.d.ts +9 -0
  125. package/dist/image/editor/components/Tab/Tab.d.ts +23 -0
  126. package/dist/image/editor/functions/croppr/box.d.ts +95 -0
  127. package/dist/image/editor/functions/croppr/core.d.ts +121 -0
  128. package/dist/image/editor/functions/croppr/croppr.d.ts +68 -0
  129. package/dist/image/editor/functions/croppr/handle.d.ts +23 -0
  130. package/dist/image/editor/functions/croppr/index.d.ts +2 -0
  131. package/dist/image/editor/functions/croppr/touch.d.ts +10 -0
  132. package/dist/image/editor/functions/image-processing.d.ts +11 -0
  133. package/dist/image/editor/index.d.ts +12 -0
  134. package/dist/image/editor/models/index.models.d.ts +45 -0
  135. package/dist/image/index.d.ts +7 -0
  136. package/dist/image/languages.d.ts +299 -0
  137. package/dist/index.css +1 -0
  138. package/dist/index.d.ts +27 -0
  139. package/dist/index.js +18368 -0
  140. package/dist/jsonschema/ArchbaseJsonSchemaEditor.types.d.ts +131 -0
  141. package/dist/jsonschema/JsonSchemaEditor/ArchbaseJsonSchemaEditor.context.d.ts +7 -0
  142. package/dist/jsonschema/JsonSchemaEditor/ArchbaseJsonSchemaEditor.d.ts +9 -0
  143. package/dist/jsonschema/JsonSchemaEditor/advanced-boolean/index.d.ts +2 -0
  144. package/dist/jsonschema/JsonSchemaEditor/advanced-number/index.d.ts +2 -0
  145. package/dist/jsonschema/JsonSchemaEditor/advanced-string/index.d.ts +2 -0
  146. package/dist/jsonschema/JsonSchemaEditor/drop-plus/index.d.ts +10 -0
  147. package/dist/jsonschema/JsonSchemaEditor/index.d.ts +2 -0
  148. package/dist/jsonschema/JsonSchemaEditor/schema-advanced/index.d.ts +6 -0
  149. package/dist/jsonschema/JsonSchemaEditor/schema-array/index.d.ts +8 -0
  150. package/dist/jsonschema/JsonSchemaEditor/schema-item/index.d.ts +11 -0
  151. package/dist/jsonschema/JsonSchemaEditor/schema-object/index.d.ts +7 -0
  152. package/dist/jsonschema/JsonSchemaEditor/schema-root/index.d.ts +8 -0
  153. package/dist/jsonschema/JsonSchemaEditor/utils.d.ts +25 -0
  154. package/dist/jsonschema/JsonSchemaEditor/whoops.d.ts +2 -0
  155. package/dist/jsonschema/index.d.ts +2 -0
  156. package/dist/list/ArchbaseList.context.d.ts +27 -0
  157. package/dist/list/ArchbaseList.d.ts +104 -0
  158. package/dist/list/ArchbaseListItem.d.ts +59 -0
  159. package/dist/list/index.d.ts +8 -0
  160. package/dist/list/treeview/ArchbaseTreeView.d.ts +44 -0
  161. package/dist/list/treeview/ArchbaseTreeView.types.d.ts +40 -0
  162. package/dist/list/treeview/ArchbaseTreeViewItem.d.ts +19 -0
  163. package/dist/list/treeview/index.d.ts +5 -0
  164. package/dist/list-view/ArchbaseListViewTable.d.ts +111 -0
  165. package/dist/list-view/index.d.ts +2 -0
  166. package/dist/markdown/ArchbaseMarkdown.d.ts +23 -0
  167. package/dist/markdown/ArchbaseMarkdown.types.d.ts +181 -0
  168. package/dist/markdown/components/CodeBlock.d.ts +23 -0
  169. package/dist/markdown/components/LinkRenderer.d.ts +16 -0
  170. package/dist/markdown/index.d.ts +11 -0
  171. package/dist/masonry/ArchbaseMasonry.context.d.ts +21 -0
  172. package/dist/masonry/ArchbaseMasonry.d.ts +35 -0
  173. package/dist/masonry/index.d.ts +5 -0
  174. package/dist/navigation/index.d.ts +3 -0
  175. package/dist/notification/ArchbaseAlert.d.ts +22 -0
  176. package/dist/notification/ArchbaseDialog.d.ts +16 -0
  177. package/dist/notification/ArchbaseNotifications.d.ts +5 -0
  178. package/dist/notification/index.d.ts +4 -0
  179. package/dist/onboarding/ArchbaseOnboardingTour.d.ts +99 -0
  180. package/dist/onboarding/index.d.ts +2 -0
  181. package/dist/printer/ArchbaseThermalPrinter.d.ts +27 -0
  182. package/dist/printer/ArchbaseThermalPrinter.types.d.ts +199 -0
  183. package/dist/printer/index.d.ts +9 -0
  184. package/dist/printer/utils/escpos.d.ts +127 -0
  185. package/dist/spreadsheet/ArchbaseSpreadsheetImport.d.ts +4 -0
  186. package/dist/spreadsheet/ArchbaseSpreadsheetImport.types.d.ts +65 -0
  187. package/dist/spreadsheet/index.d.ts +2 -0
  188. package/dist/theme-editor/ArchbaseThemeEditor.d.ts +17 -0
  189. package/dist/theme-editor/ArchbaseThemeEditor.types.d.ts +187 -0
  190. package/dist/theme-editor/index.d.ts +9 -0
  191. package/dist/theme-editor/utils/themeExport.d.ts +198 -0
  192. package/dist/themes/ArchbaseThemeEditor.d.ts +49 -0
  193. package/dist/types/index.d.ts +106 -0
  194. package/dist/video/ArchbaseVideoPlayer.d.ts +18 -0
  195. package/dist/video/ArchbaseVideoPlayer.types.d.ts +200 -0
  196. package/dist/video/hooks/useVideoPlayer.d.ts +58 -0
  197. package/dist/video/index.d.ts +10 -0
  198. package/dist/viewers/ArchbasePDFViewer.annotations.d.ts +20 -0
  199. package/dist/viewers/ArchbasePDFViewer.d.ts +2 -0
  200. package/dist/viewers/ArchbasePDFViewer.toolbar.d.ts +20 -0
  201. package/dist/viewers/ArchbasePDFViewer.types.d.ts +68 -0
  202. package/dist/viewers/file-preview/ArchbaseFilePreviewer.d.ts +19 -0
  203. package/dist/viewers/file-preview/ArchbaseFilePreviewer.types.d.ts +153 -0
  204. package/dist/viewers/file-preview/index.d.ts +13 -0
  205. package/dist/viewers/file-preview/utils/fileTypeDetector.d.ts +33 -0
  206. package/dist/viewers/index.d.ts +5 -0
  207. package/package.json +154 -0
  208. package/src/admin/types.ts +73 -0
  209. package/src/arco.css +6 -0
  210. package/src/buttons/ActionsDemo.tsx +107 -0
  211. package/src/buttons/ArchbaseActionButtons.d.ts.map +1 -0
  212. package/src/buttons/ArchbaseActionButtons.tsx +387 -0
  213. package/src/buttons/index.d.ts.map +1 -0
  214. package/src/buttons/index.ts +7 -0
  215. package/src/charts/ArchbaseTimeline.d.ts.map +1 -0
  216. package/src/charts/ArchbaseTimeline.tsx +332 -0
  217. package/src/charts/index.d.ts.map +1 -0
  218. package/src/charts/index.ts +5 -0
  219. package/src/charts/vis-timeline/ArchbaseVisTimeline.tsx +401 -0
  220. package/src/charts/vis-timeline/ArchbaseVisTimeline.types.ts +294 -0
  221. package/src/charts/vis-timeline/index.ts +36 -0
  222. package/src/charts/vis-timeline/utils/timelineOptions.ts +213 -0
  223. package/src/datagrid/components/index.d.ts.map +1 -0
  224. package/src/datagrid/components/index.tsx +14 -0
  225. package/src/datagrid/components/pagination/grid-pagination.d.ts.map +1 -0
  226. package/src/datagrid/components/pagination/grid-pagination.tsx +150 -0
  227. package/src/datagrid/components/render/archbase-data-grid-item-renderer.tsx +26 -0
  228. package/src/datagrid/components/toolbar/global-search-input.d.ts.map +1 -0
  229. package/src/datagrid/components/toolbar/global-search-input.tsx +118 -0
  230. package/src/datagrid/components/toolbar/grid-toolbar.d.ts.map +1 -0
  231. package/src/datagrid/components/toolbar/grid-toolbar.tsx +106 -0
  232. package/src/datagrid/hooks/index.d.ts.map +1 -0
  233. package/src/datagrid/hooks/index.tsx +18 -0
  234. package/src/datagrid/hooks/use-grid-data-stable-rendering.d.ts.map +1 -0
  235. package/src/datagrid/hooks/use-grid-data-stable-rendering.ts +168 -0
  236. package/src/datagrid/hooks/use-grid-data.d.ts.map +1 -0
  237. package/src/datagrid/hooks/use-grid-data.tsx +598 -0
  238. package/src/datagrid/hooks/use-grid-details-panel.d.ts.map +1 -0
  239. package/src/datagrid/hooks/use-grid-details-panel.ts +316 -0
  240. package/src/datagrid/index.d.ts.map +1 -0
  241. package/src/datagrid/index.tsx +12 -0
  242. package/src/datagrid/main/archbase-data-grid-column.d.ts.map +1 -0
  243. package/src/datagrid/main/archbase-data-grid-column.ts +46 -0
  244. package/src/datagrid/main/archbase-data-grid-formatters.d.ts.map +1 -0
  245. package/src/datagrid/main/archbase-data-grid-formatters.tsx +384 -0
  246. package/src/datagrid/main/archbase-data-grid-pagination.d.ts.map +1 -0
  247. package/src/datagrid/main/archbase-data-grid-pagination.tsx +63 -0
  248. package/src/datagrid/main/archbase-data-grid-toolbar.d.ts.map +1 -0
  249. package/src/datagrid/main/archbase-data-grid-toolbar.tsx +160 -0
  250. package/src/datagrid/main/archbase-data-grid-types.d.ts.map +1 -0
  251. package/src/datagrid/main/archbase-data-grid-types.tsx +327 -0
  252. package/src/datagrid/main/archbase-data-grid-utils.d.ts.map +1 -0
  253. package/src/datagrid/main/archbase-data-grid-utils.ts +494 -0
  254. package/src/datagrid/main/archbase-data-grid.d.ts.map +1 -0
  255. package/src/datagrid/main/archbase-data-grid.tsx +1462 -0
  256. package/src/datagrid/main/archbase-detail-panel-component.d.ts.map +1 -0
  257. package/src/datagrid/main/archbase-detail-panel-component.tsx +186 -0
  258. package/src/datagrid/main/archbase-expand-button.d.ts.map +1 -0
  259. package/src/datagrid/main/archbase-expand-button.tsx +83 -0
  260. package/src/datagrid/main/archbase-grid-popover.d.ts.map +1 -0
  261. package/src/datagrid/main/archbase-grid-popover.tsx +188 -0
  262. package/src/datagrid/main/grid-row-actions.d.ts.map +1 -0
  263. package/src/datagrid/main/grid-row-actions.tsx +97 -0
  264. package/src/datagrid/main/index.d.ts.map +1 -0
  265. package/src/datagrid/main/index.tsx +75 -0
  266. package/src/datagrid/modals/export-data.d.ts.map +1 -0
  267. package/src/datagrid/modals/export-data.tsx +183 -0
  268. package/src/datagrid/modals/export-modal.d.ts.map +1 -0
  269. package/src/datagrid/modals/export-modal.tsx +168 -0
  270. package/src/datagrid/modals/index.d.ts.map +1 -0
  271. package/src/datagrid/modals/index.tsx +6 -0
  272. package/src/datagrid/modals/print-data.d.ts.map +1 -0
  273. package/src/datagrid/modals/print-data.tsx +267 -0
  274. package/src/datagrid/modals/print-modal.d.ts.map +1 -0
  275. package/src/datagrid/modals/print-modal.tsx +200 -0
  276. package/src/datagrid/types/grid-props.d.ts.map +1 -0
  277. package/src/datagrid/types/grid-props.tsx +53 -0
  278. package/src/datagrid/types/index.d.ts.map +1 -0
  279. package/src/datagrid/types/index.tsx +1 -0
  280. package/src/datagrid/utils/formatter.d.ts.map +1 -0
  281. package/src/datagrid/utils/formatter.tsx +308 -0
  282. package/src/datagrid/utils/index.d.ts.map +1 -0
  283. package/src/datagrid/utils/index.tsx +1 -0
  284. package/src/debug/index.d.ts.map +1 -0
  285. package/src/debug/index.ts +4 -0
  286. package/src/debug/jsonpathpicker/ArchbaseJsonPathPicker.css +46 -0
  287. package/src/debug/jsonpathpicker/ArchbaseJsonPathPicker.d.ts.map +1 -0
  288. package/src/debug/jsonpathpicker/ArchbaseJsonPathPicker.tsx +341 -0
  289. package/src/debug/jsonpathpicker/index.d.ts.map +1 -0
  290. package/src/debug/jsonpathpicker/index.ts +1 -0
  291. package/src/debug/jsonview/.eslintrc +5 -0
  292. package/src/debug/jsonview/ArchbaseJsonViewDataRenderer.d.ts.map +1 -0
  293. package/src/debug/jsonview/ArchbaseJsonViewDataRenderer.tsx +206 -0
  294. package/src/debug/jsonview/ArchbaseJsonViewDataTypeDetection.d.ts.map +1 -0
  295. package/src/debug/jsonview/ArchbaseJsonViewDataTypeDetection.ts +31 -0
  296. package/src/debug/jsonview/index.d.ts.map +1 -0
  297. package/src/debug/jsonview/index.tsx +60 -0
  298. package/src/debug/jsonview/styles.module.css +118 -0
  299. package/src/debug/jsonview/styles.module.css.d.ts +4 -0
  300. package/src/debug/objectinspector/ArchbaseDebugInspector.d.ts.map +1 -0
  301. package/src/debug/objectinspector/ArchbaseDebugInspector.tsx +79 -0
  302. package/src/debug/objectinspector/ArchbaseFloatingWindow.css +70 -0
  303. package/src/debug/objectinspector/ArchbaseFloatingWindow.d.ts.map +1 -0
  304. package/src/debug/objectinspector/ArchbaseFloatingWindow.tsx +266 -0
  305. package/src/debug/objectinspector/ArchbaseObjectInspector.d.ts.map +1 -0
  306. package/src/debug/objectinspector/ArchbaseObjectInspector.tsx +21 -0
  307. package/src/debug/objectinspector/index.d.ts.map +1 -0
  308. package/src/debug/objectinspector/index.ts +3 -0
  309. package/src/display/index.d.ts.map +1 -0
  310. package/src/display/index.ts +5 -0
  311. package/src/editors/ArchbaseAsyncMultiSelect.d.ts.map +1 -0
  312. package/src/editors/ArchbaseAsyncMultiSelect.tsx +667 -0
  313. package/src/editors/ArchbaseAsyncSelect.context.d.ts.map +1 -0
  314. package/src/editors/ArchbaseAsyncSelect.context.ts +9 -0
  315. package/src/editors/ArchbaseAsyncSelect.d.ts.map +1 -0
  316. package/src/editors/ArchbaseAsyncSelect.tsx +581 -0
  317. package/src/editors/ArchbaseAvatarEdit.d.ts.map +1 -0
  318. package/src/editors/ArchbaseAvatarEdit.tsx +625 -0
  319. package/src/editors/ArchbaseCheckbox.d.ts.map +1 -0
  320. package/src/editors/ArchbaseCheckbox.tsx +250 -0
  321. package/src/editors/ArchbaseChip.d.ts.map +1 -0
  322. package/src/editors/ArchbaseChip.tsx +233 -0
  323. package/src/editors/ArchbaseChipGroup.d.ts.map +1 -0
  324. package/src/editors/ArchbaseChipGroup.tsx +282 -0
  325. package/src/editors/ArchbaseChipItem.d.ts.map +1 -0
  326. package/src/editors/ArchbaseChipItem.tsx +21 -0
  327. package/src/editors/ArchbaseColorPicker.d.ts.map +1 -0
  328. package/src/editors/ArchbaseColorPicker.tsx +7 -0
  329. package/src/editors/ArchbaseCountdownProgress.d.ts.map +1 -0
  330. package/src/editors/ArchbaseCountdownProgress.tsx +57 -0
  331. package/src/editors/ArchbaseCronExpressionEdit.d.ts.map +1 -0
  332. package/src/editors/ArchbaseCronExpressionEdit.tsx +86 -0
  333. package/src/editors/ArchbaseCronExpressionEditor.d.ts.map +1 -0
  334. package/src/editors/ArchbaseCronExpressionEditor.tsx +133 -0
  335. package/src/editors/ArchbaseDatePicker.tsx +3 -0
  336. package/src/editors/ArchbaseDatePickerEdit.d.ts.map +1 -0
  337. package/src/editors/ArchbaseDatePickerEdit.tsx +785 -0
  338. package/src/editors/ArchbaseDatePickerRange.d.ts.map +1 -0
  339. package/src/editors/ArchbaseDatePickerRange.tsx +142 -0
  340. package/src/editors/ArchbaseDateTimePickerEdit.d.ts.map +1 -0
  341. package/src/editors/ArchbaseDateTimePickerEdit.tsx +259 -0
  342. package/src/editors/ArchbaseDateTimePickerRange.d.ts.map +1 -0
  343. package/src/editors/ArchbaseDateTimePickerRange.tsx +220 -0
  344. package/src/editors/ArchbaseEdit.d.ts.map +1 -0
  345. package/src/editors/ArchbaseEdit.example.tsx +240 -0
  346. package/src/editors/ArchbaseEdit.tsx +325 -0
  347. package/src/editors/ArchbaseFileAttachment.d.ts.map +1 -0
  348. package/src/editors/ArchbaseFileAttachment.tsx +259 -0
  349. package/src/editors/ArchbaseImageEdit.d.ts.map +1 -0
  350. package/src/editors/ArchbaseImageEdit.tsx +255 -0
  351. package/src/editors/ArchbaseJsonEdit.d.ts.map +1 -0
  352. package/src/editors/ArchbaseJsonEdit.tsx +257 -0
  353. package/src/editors/ArchbaseKeyValueEditor.d.ts.map +1 -0
  354. package/src/editors/ArchbaseKeyValueEditor.tsx +180 -0
  355. package/src/editors/ArchbaseLookupEdit.d.ts.map +1 -0
  356. package/src/editors/ArchbaseLookupEdit.tsx +368 -0
  357. package/src/editors/ArchbaseLookupNumber.d.ts.map +1 -0
  358. package/src/editors/ArchbaseLookupNumber.tsx +390 -0
  359. package/src/editors/ArchbaseLookupSelect.d.ts.map +1 -0
  360. package/src/editors/ArchbaseLookupSelect.tsx +225 -0
  361. package/src/editors/ArchbaseMarkdownEdit.tsx +367 -0
  362. package/src/editors/ArchbaseMaskEdit.d.ts.map +1 -0
  363. package/src/editors/ArchbaseMaskEdit.tsx +346 -0
  364. package/src/editors/ArchbaseNumberEdit.d.ts.map +1 -0
  365. package/src/editors/ArchbaseNumberEdit.tsx +626 -0
  366. package/src/editors/ArchbaseNumberInput.tsx +3 -0
  367. package/src/editors/ArchbaseOperationHoursEditor.d.ts.map +1 -0
  368. package/src/editors/ArchbaseOperationHoursEditor.tsx +206 -0
  369. package/src/editors/ArchbasePasswordEdit.d.ts.map +1 -0
  370. package/src/editors/ArchbasePasswordEdit.tsx +265 -0
  371. package/src/editors/ArchbasePasswordInput.tsx +3 -0
  372. package/src/editors/ArchbaseRadio.tsx +3 -0
  373. package/src/editors/ArchbaseRadioGroup.d.ts.map +1 -0
  374. package/src/editors/ArchbaseRadioGroup.tsx +293 -0
  375. package/src/editors/ArchbaseRadioItem.d.ts.map +1 -0
  376. package/src/editors/ArchbaseRadioItem.tsx +14 -0
  377. package/src/editors/ArchbaseRating.d.ts.map +1 -0
  378. package/src/editors/ArchbaseRating.tsx +236 -0
  379. package/src/editors/ArchbaseRichTextEdit.d.ts.map +1 -0
  380. package/src/editors/ArchbaseRichTextEdit.tsx +435 -0
  381. package/src/editors/ArchbaseSelect.context.d.ts.map +1 -0
  382. package/src/editors/ArchbaseSelect.context.ts +9 -0
  383. package/src/editors/ArchbaseSelect.d.ts.map +1 -0
  384. package/src/editors/ArchbaseSelect.tsx +550 -0
  385. package/src/editors/ArchbaseSelectItem.d.ts.map +1 -0
  386. package/src/editors/ArchbaseSelectItem.tsx +18 -0
  387. package/src/editors/ArchbaseSwitch.d.ts.map +1 -0
  388. package/src/editors/ArchbaseSwitch.tsx +266 -0
  389. package/src/editors/ArchbaseTextArea.d.ts.map +1 -0
  390. package/src/editors/ArchbaseTextArea.tsx +263 -0
  391. package/src/editors/ArchbaseTimeEdit.d.ts.map +1 -0
  392. package/src/editors/ArchbaseTimeEdit.tsx +319 -0
  393. package/src/editors/ArchbaseTimeRangeSelector.d.ts.map +1 -0
  394. package/src/editors/ArchbaseTimeRangeSelector.tsx +397 -0
  395. package/src/editors/ArchbaseTreeSelect.d.ts.map +1 -0
  396. package/src/editors/ArchbaseTreeSelect.tsx +434 -0
  397. package/src/editors/index.d.ts.map +1 -0
  398. package/src/editors/index.tsx +121 -0
  399. package/src/editors/intro.mdx +4 -0
  400. package/src/feedback/index.d.ts.map +1 -0
  401. package/src/feedback/index.ts +5 -0
  402. package/src/filters/ArchbaseCompositeFilters.tsx +696 -0
  403. package/src/filters/ArchbaseCompositeFilters.types.ts +402 -0
  404. package/src/filters/ArchbaseCompositeFilters.utils.ts +378 -0
  405. package/src/filters/components/FilterPill.tsx +100 -0
  406. package/src/filters/hooks/index.ts +4 -0
  407. package/src/filters/hooks/useArchbaseFilterHistory.ts +111 -0
  408. package/src/filters/hooks/useArchbaseFilterPresets.ts +157 -0
  409. package/src/filters/hooks/useArchbaseFilters.ts +279 -0
  410. package/src/filters/hooks/useArchbaseQuickFilters.ts +80 -0
  411. package/src/filters/index.ts +55 -0
  412. package/src/forms/index.d.ts.map +1 -0
  413. package/src/forms/index.ts +4 -0
  414. package/src/hooks/index.d.ts.map +1 -0
  415. package/src/hooks/index.ts +5 -0
  416. package/src/hooks/useArchbaseContainerDimensions.d.ts.map +1 -0
  417. package/src/hooks/useArchbaseContainerDimensions.ts +28 -0
  418. package/src/hooks/useArchbaseElementSizeArea.d.ts.map +1 -0
  419. package/src/hooks/useArchbaseElementSizeArea.ts +39 -0
  420. package/src/hooks/useArchbaseListContext.d.ts.map +1 -0
  421. package/src/hooks/useArchbaseListContext.ts +10 -0
  422. package/src/hooks/useArchbaseNavigateParams.d.ts.map +1 -0
  423. package/src/hooks/useArchbaseNavigateParams.ts +17 -0
  424. package/src/hooks/useArchbaseVisible.d.ts.map +1 -0
  425. package/src/hooks/useArchbaseVisible.ts +35 -0
  426. package/src/image/.placeholder +0 -0
  427. package/src/image/ArchbaseImage.d.ts.map +1 -0
  428. package/src/image/ArchbaseImage.tsx +56 -0
  429. package/src/image/ArchbaseMicrosoftAvatar.d.ts.map +1 -0
  430. package/src/image/ArchbaseMicrosoftAvatar.tsx +50 -0
  431. package/src/image/editor/components/BasicFilters/BasicFilter.d.ts.map +1 -0
  432. package/src/image/editor/components/BasicFilters/BasicFilter.tsx +179 -0
  433. package/src/image/editor/components/CropprWrapper/ArchbaseCropper.scss +73 -0
  434. package/src/image/editor/components/CropprWrapper/ArchbaseCropperWrapper.d.ts.map +1 -0
  435. package/src/image/editor/components/CropprWrapper/ArchbaseCropperWrapper.tsx +50 -0
  436. package/src/image/editor/components/EditImage/ArchbaseEditImage.d.ts.map +1 -0
  437. package/src/image/editor/components/EditImage/ArchbaseEditImage.scss +221 -0
  438. package/src/image/editor/components/EditImage/ArchbaseEditImage.tsx +469 -0
  439. package/src/image/editor/components/Input/Input.d.ts.map +1 -0
  440. package/src/image/editor/components/Input/Input.tsx +70 -0
  441. package/src/image/editor/components/Tab/Tab.d.ts.map +1 -0
  442. package/src/image/editor/components/Tab/Tab.tsx +150 -0
  443. package/src/image/editor/components/Tab/TabsStyles.scss +72 -0
  444. package/src/image/editor/functions/croppr/box.d.ts.map +1 -0
  445. package/src/image/editor/functions/croppr/box.ts +272 -0
  446. package/src/image/editor/functions/croppr/core.d.ts.map +1 -0
  447. package/src/image/editor/functions/croppr/core.ts +820 -0
  448. package/src/image/editor/functions/croppr/croppr.d.ts.map +1 -0
  449. package/src/image/editor/functions/croppr/croppr.ts +136 -0
  450. package/src/image/editor/functions/croppr/handle.d.ts.map +1 -0
  451. package/src/image/editor/functions/croppr/handle.ts +75 -0
  452. package/src/image/editor/functions/croppr/index.d.ts.map +1 -0
  453. package/src/image/editor/functions/croppr/index.ts +4 -0
  454. package/src/image/editor/functions/croppr/touch.d.ts.map +1 -0
  455. package/src/image/editor/functions/croppr/touch.ts +41 -0
  456. package/src/image/editor/functions/image-processing.d.ts.map +1 -0
  457. package/src/image/editor/functions/image-processing.ts +202 -0
  458. package/src/image/editor/image_editor_styles.scss +284 -0
  459. package/src/image/editor/index.d.ts.map +1 -0
  460. package/src/image/editor/index.tsx +437 -0
  461. package/src/image/editor/models/index.models.d.ts.map +1 -0
  462. package/src/image/editor/models/index.models.ts +48 -0
  463. package/src/image/index.d.ts.map +1 -0
  464. package/src/image/index.ts +7 -0
  465. package/src/image/intro.mdx +4 -0
  466. package/src/image/languages.d.ts.map +1 -0
  467. package/src/image/languages.ts +302 -0
  468. package/src/index.d.ts.map +1 -0
  469. package/src/index.ts +50 -0
  470. package/src/jsonschema/ArchbaseJsonSchemaEditor.types.d.ts.map +1 -0
  471. package/src/jsonschema/ArchbaseJsonSchemaEditor.types.ts +171 -0
  472. package/src/jsonschema/JsonSchemaEditor/ArchbaseJsonSchemaEditor.context.d.ts.map +1 -0
  473. package/src/jsonschema/JsonSchemaEditor/ArchbaseJsonSchemaEditor.context.tsx +8 -0
  474. package/src/jsonschema/JsonSchemaEditor/ArchbaseJsonSchemaEditor.d.ts.map +1 -0
  475. package/src/jsonschema/JsonSchemaEditor/ArchbaseJsonSchemaEditor.tsx +99 -0
  476. package/src/jsonschema/JsonSchemaEditor/JsonSchemaEditor.scss +19 -0
  477. package/src/jsonschema/JsonSchemaEditor/advanced-boolean/index.d.ts.map +1 -0
  478. package/src/jsonschema/JsonSchemaEditor/advanced-boolean/index.tsx +33 -0
  479. package/src/jsonschema/JsonSchemaEditor/advanced-number/index.d.ts.map +1 -0
  480. package/src/jsonschema/JsonSchemaEditor/advanced-number/index.tsx +119 -0
  481. package/src/jsonschema/JsonSchemaEditor/advanced-string/index.d.ts.map +1 -0
  482. package/src/jsonschema/JsonSchemaEditor/advanced-string/index.tsx +146 -0
  483. package/src/jsonschema/JsonSchemaEditor/drop-plus/index.d.ts.map +1 -0
  484. package/src/jsonschema/JsonSchemaEditor/drop-plus/index.tsx +80 -0
  485. package/src/jsonschema/JsonSchemaEditor/index.ts +2 -0
  486. package/src/jsonschema/JsonSchemaEditor/schema-advanced/index.d.ts.map +1 -0
  487. package/src/jsonschema/JsonSchemaEditor/schema-advanced/index.tsx +32 -0
  488. package/src/jsonschema/JsonSchemaEditor/schema-array/index.d.ts.map +1 -0
  489. package/src/jsonschema/JsonSchemaEditor/schema-array/index.tsx +164 -0
  490. package/src/jsonschema/JsonSchemaEditor/schema-item/index.d.ts.map +1 -0
  491. package/src/jsonschema/JsonSchemaEditor/schema-item/index.tsx +213 -0
  492. package/src/jsonschema/JsonSchemaEditor/schema-object/index.d.ts.map +1 -0
  493. package/src/jsonschema/JsonSchemaEditor/schema-object/index.tsx +68 -0
  494. package/src/jsonschema/JsonSchemaEditor/schema-root/index.d.ts.map +1 -0
  495. package/src/jsonschema/JsonSchemaEditor/schema-root/index.tsx +103 -0
  496. package/src/jsonschema/JsonSchemaEditor/utils.d.ts.map +1 -0
  497. package/src/jsonschema/JsonSchemaEditor/utils.ts +195 -0
  498. package/src/jsonschema/JsonSchemaEditor/whoops.tsx +79 -0
  499. package/src/jsonschema/index.d.ts.map +1 -0
  500. package/src/jsonschema/index.ts +2 -0
  501. package/src/list/ArchbaseList.context.d.ts.map +1 -0
  502. package/src/list/ArchbaseList.context.ts +28 -0
  503. package/src/list/ArchbaseList.d.ts.map +1 -0
  504. package/src/list/ArchbaseList.tsx +533 -0
  505. package/src/list/ArchbaseListItem.d.ts.map +1 -0
  506. package/src/list/ArchbaseListItem.tsx +161 -0
  507. package/src/list/index.d.ts.map +1 -0
  508. package/src/list/index.ts +9 -0
  509. package/src/list/treeview/ArchbaseTreeView.d.ts.map +1 -0
  510. package/src/list/treeview/ArchbaseTreeView.module.css +66 -0
  511. package/src/list/treeview/ArchbaseTreeView.tsx +657 -0
  512. package/src/list/treeview/ArchbaseTreeView.types.d.ts.map +1 -0
  513. package/src/list/treeview/ArchbaseTreeView.types.tsx +42 -0
  514. package/src/list/treeview/ArchbaseTreeViewItem.d.ts.map +1 -0
  515. package/src/list/treeview/ArchbaseTreeViewItem.tsx +210 -0
  516. package/src/list/treeview/index.d.ts.map +1 -0
  517. package/src/list/treeview/index.ts +5 -0
  518. package/src/list-view/ArchbaseListViewTable.tsx +150 -0
  519. package/src/list-view/index.ts +2 -0
  520. package/src/markdown/ArchbaseMarkdown.tsx +463 -0
  521. package/src/markdown/ArchbaseMarkdown.types.ts +213 -0
  522. package/src/markdown/components/CodeBlock.tsx +197 -0
  523. package/src/markdown/components/LinkRenderer.tsx +98 -0
  524. package/src/markdown/index.ts +29 -0
  525. package/src/masonry/ArchbaseMasonry.context.d.ts.map +1 -0
  526. package/src/masonry/ArchbaseMasonry.context.ts +24 -0
  527. package/src/masonry/ArchbaseMasonry.d.ts.map +1 -0
  528. package/src/masonry/ArchbaseMasonry.tsx +156 -0
  529. package/src/masonry/index.d.ts.map +1 -0
  530. package/src/masonry/index.ts +5 -0
  531. package/src/navigation/index.d.ts.map +1 -0
  532. package/src/navigation/index.ts +4 -0
  533. package/src/notification/ArchbaseAlert.d.ts.map +1 -0
  534. package/src/notification/ArchbaseAlert.tsx +77 -0
  535. package/src/notification/ArchbaseDialog.d.ts.map +1 -0
  536. package/src/notification/ArchbaseDialog.tsx +212 -0
  537. package/src/notification/ArchbaseNotifications.d.ts.map +1 -0
  538. package/src/notification/ArchbaseNotifications.tsx +64 -0
  539. package/src/notification/index.d.ts.map +1 -0
  540. package/src/notification/index.ts +4 -0
  541. package/src/notification/intro.mdx +4 -0
  542. package/src/onboarding/ArchbaseOnboardingTour.tsx +147 -0
  543. package/src/onboarding/index.ts +2 -0
  544. package/src/printer/ArchbaseThermalPrinter.tsx +465 -0
  545. package/src/printer/ArchbaseThermalPrinter.types.ts +221 -0
  546. package/src/printer/index.ts +54 -0
  547. package/src/printer/utils/escpos.ts +531 -0
  548. package/src/spreadsheet/ArchbaseSpreadsheetImport.tsx +223 -0
  549. package/src/spreadsheet/ArchbaseSpreadsheetImport.types.ts +66 -0
  550. package/src/spreadsheet/index.ts +10 -0
  551. package/src/theme-editor/ArchbaseThemeEditor.tsx +728 -0
  552. package/src/theme-editor/ArchbaseThemeEditor.types.ts +207 -0
  553. package/src/theme-editor/index.ts +45 -0
  554. package/src/theme-editor/utils/themeExport.ts +351 -0
  555. package/src/themes/.placeholder +0 -0
  556. package/src/themes/ArchbaseThemeEditor.d.ts.map +1 -0
  557. package/src/themes/ArchbaseThemeEditor.tsx +110 -0
  558. package/src/treeviews.scss +80 -0
  559. package/src/types/index.d.ts.map +1 -0
  560. package/src/types/index.ts +115 -0
  561. package/src/video/ArchbaseVideoPlayer.tsx +706 -0
  562. package/src/video/ArchbaseVideoPlayer.types.ts +221 -0
  563. package/src/video/hooks/useVideoPlayer.ts +362 -0
  564. package/src/video/index.ts +28 -0
  565. package/src/viewers/ArchbasePDFViewer.annotations.tsx +423 -0
  566. package/src/viewers/ArchbasePDFViewer.toolbar.tsx +218 -0
  567. package/src/viewers/ArchbasePDFViewer.tsx +317 -0
  568. package/src/viewers/ArchbasePDFViewer.types.ts +85 -0
  569. package/src/viewers/file-preview/ArchbaseFilePreviewer.tsx +756 -0
  570. package/src/viewers/file-preview/ArchbaseFilePreviewer.types.ts +186 -0
  571. package/src/viewers/file-preview/index.ts +43 -0
  572. package/src/viewers/file-preview/utils/fileTypeDetector.ts +317 -0
  573. package/src/viewers/index.ts +17 -0
@@ -0,0 +1,785 @@
1
+ /* eslint-disable no-underscore-dangle */
2
+
3
+ /* eslint-disable no-unneeded-ternary */
4
+
5
+ /* eslint-disable @typescript-eslint/naming-convention */
6
+
7
+ /* eslint-disable react-hooks/exhaustive-deps */
8
+
9
+ /* eslint-disable @typescript-eslint/no-unused-expressions */
10
+
11
+ /* eslint-disable no-nested-ternary */
12
+ import {
13
+ __InputProps,
14
+ CloseButton,
15
+ CloseButtonProps,
16
+ Input,
17
+ InputStylesNames,
18
+ InputVariant,
19
+ InputWrapperStylesNames,
20
+ MantineSize,
21
+ PolymorphicFactory,
22
+ Popover,
23
+ PopoverProps,
24
+ StylesApiProps,
25
+ useInputProps,
26
+ } from '@mantine/core';
27
+ import {
28
+ Calendar,
29
+ CalendarBaseProps,
30
+ CalendarLevel,
31
+ CalendarStylesNames,
32
+ DateStringValue,
33
+ DecadeLevelSettings,
34
+ HiddenDatesInput,
35
+ MonthLevelSettings,
36
+ pickCalendarProps,
37
+ useDatesContext,
38
+ YearLevelSettings,
39
+ } from '@mantine/dates';
40
+
41
+ // Compatibility type for old DateValue (keeping internal usage as Date)
42
+ type DateValue = Date | null;
43
+ import { useDidUpdate, useForceUpdate, useUncontrolled } from '@mantine/hooks';
44
+ import dayjs from 'dayjs';
45
+ import React, { CSSProperties, useCallback, useEffect, useRef, useState } from 'react';
46
+ import { IMaskInput } from 'react-imask';
47
+ import { convertDateToISOString, convertISOStringToDate } from '@archbase/core';
48
+ import { type ArchbaseDataSource, DataSourceEvent, DataSourceEventNames, type IArchbaseDataSourceBase } from '@archbase/data';
49
+ import { useArchbaseDidUpdate } from '@archbase/data';
50
+ import { useArchbaseV1V2Compatibility } from '@archbase/data';
51
+ import { useValidationErrors } from '@archbase/core';
52
+
53
+ const dateFormats = {
54
+ 'DD/MM/YYYY': {
55
+ mask: '00/00/0000',
56
+ format: (date) => {
57
+ if (!date) return '';
58
+ const day = String(date.getDate()).padStart(2, '0');
59
+ const month = String(date.getMonth() + 1).padStart(2, '0');
60
+ const year = date.getFullYear();
61
+ return [day, month, year].join('/');
62
+ },
63
+ parse: (str) => {
64
+ const [day, month, year] = str.split('/');
65
+ return new Date(year, month - 1, day);
66
+ },
67
+ },
68
+ 'DD-MM-YYYY': {
69
+ mask: '00-00-0000',
70
+ format: (date) => {
71
+ if (!date) return '';
72
+ const day = String(date.getDate()).padStart(2, '0');
73
+ const month = String(date.getMonth() + 1).padStart(2, '0');
74
+ const year = date.getFullYear();
75
+ return [day, month, year].join('-');
76
+ },
77
+ parse: (str) => {
78
+ const [day, month, year] = str.split('-');
79
+ return new Date(year, month - 1, day);
80
+ },
81
+ },
82
+ 'YYYY/MM/DD': {
83
+ mask: '`0000/00/00',
84
+ format: (date) => {
85
+ if (!date) return '';
86
+ const day = String(date.getDate()).padStart(2, '0');
87
+ const month = String(date.getMonth() + 1).padStart(2, '0');
88
+ const year = date.getFullYear();
89
+ return [year, month, day].join('/');
90
+ },
91
+ parse: (str) => {
92
+ const [year, month, day] = str.split('/');
93
+ return new Date(year, month - 1, day);
94
+ },
95
+ },
96
+ 'YYYY-MM-DD': {
97
+ mask: '`0000-00-00',
98
+ format: (date) => {
99
+ if (!date) return '';
100
+ const day = String(date.getDate()).padStart(2, '0');
101
+ const month = String(date.getMonth() + 1).padStart(2, '0');
102
+ const year = date.getFullYear();
103
+ return [year, month, day].join('-');
104
+ },
105
+ parse: (str) => {
106
+ const [year, month, day] = str.split('-');
107
+ return new Date(year, month - 1, day);
108
+ },
109
+ },
110
+ };
111
+
112
+ function dateStringParser(dateString: string) {
113
+ const date = new Date(dateString);
114
+
115
+ if (Number.isNaN(date.getTime()) || !dateString) {
116
+ return null;
117
+ }
118
+
119
+ return date;
120
+ }
121
+
122
+ export function assignTime(originalDate: DateValue, resultDate: DateValue) {
123
+ if (!originalDate || !resultDate) {
124
+ return resultDate;
125
+ }
126
+
127
+ // Ensure we have Date objects
128
+ const origDate = originalDate instanceof Date ? originalDate : new Date(originalDate);
129
+ const resDate = resultDate instanceof Date ? resultDate : new Date(resultDate);
130
+
131
+ const hours = origDate.getHours();
132
+ const minutes = origDate.getMinutes();
133
+ const seconds = origDate.getSeconds();
134
+ const ms = origDate.getMilliseconds();
135
+
136
+ const result = new Date(resDate);
137
+ result.setHours(hours);
138
+ result.setMinutes(minutes);
139
+ result.setSeconds(seconds);
140
+ result.setMilliseconds(ms);
141
+
142
+ return result;
143
+ }
144
+
145
+ interface IsDateValid {
146
+ date: DateValue;
147
+ maxDate?: DateValue;
148
+ minDate?: DateValue;
149
+ }
150
+
151
+ function isDateValid({ date, maxDate, minDate }: IsDateValid) {
152
+ if (date == null) {
153
+ return false;
154
+ }
155
+
156
+ // Convert to Date object if it's a string
157
+ const dateObj = date instanceof Date ? date : new Date(date);
158
+ if (Number.isNaN(dateObj.getTime())) {
159
+ return false;
160
+ }
161
+
162
+ if (maxDate) {
163
+ const maxDateObj = maxDate instanceof Date ? maxDate : new Date(maxDate);
164
+ if (dayjs(dateObj).isAfter(maxDateObj, 'date')) {
165
+ return false;
166
+ }
167
+ }
168
+
169
+ if (minDate) {
170
+ const minDateObj = minDate instanceof Date ? minDate : new Date(minDate);
171
+ if (dayjs(dateObj).isBefore(minDateObj, 'date')) {
172
+ return false;
173
+ }
174
+ }
175
+
176
+ return true;
177
+ }
178
+
179
+ export type ArchbaseDatePickerEditStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;
180
+
181
+ export interface ArchbaseDatePickerEditProps<T, ID>
182
+ extends StylesApiProps<ArchbaseDatePickerEditFactory>,
183
+ __InputProps,
184
+ CalendarBaseProps,
185
+ DecadeLevelSettings,
186
+ YearLevelSettings,
187
+ MonthLevelSettings,
188
+ Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {
189
+ /** Analisa a entrada do usuário para convertê-la em um objeto Date */
190
+ dateParser?: (value: string) => DateValue;
191
+ /** Valor do componente controlado */
192
+ value?: DateValue | string;
193
+ /** Valor padrão para componente não controlado */
194
+ defaultValue?: DateValue | string;
195
+ /** Chamado quando o valor muda */
196
+ onChange?(value: DateValue): void;
197
+ /** Evento quando o valor é alterado */
198
+ onChangeValue?: (value: any, event: any) => void;
199
+ /** Adereços adicionados ao componente Popover */
200
+ popoverProps?: Partial<Omit<PopoverProps, 'children'>>;
201
+ /** Determina se o valor de entrada pode ser limpo, adiciona o botão limpar à seção direita, falso por padrão */
202
+ clearable?: boolean;
203
+ /** Adereços adicionados ao botão limpar */
204
+ clearButtonProps?: CloseButtonProps;
205
+ /** Determina se o valor de entrada deve ser revertido para o último valor válido conhecido no desfoque, verdadeiro por padrão */
206
+ fixOnBlur?: boolean;
207
+ /** Determina se o valor pode ser desmarcado quando o usuário clica na data selecionada no calendário ou apaga o conteúdo da entrada, verdadeiro se prop limpável estiver definido, falso por padrão */
208
+ allowDeselect?: boolean;
209
+ /** Determina se o tempo (horas, minutos, segundos e milissegundos) deve ser preservado quando uma nova data é escolhida, verdadeiro por padrão */
210
+ preserveTime?: boolean;
211
+ /** Nível máximo que o usuário pode atingir (década, ano, mês), o padrão é década */
212
+ maxLevel?: CalendarLevel;
213
+ /** Nível inicial exibido ao usuário (década, ano, mês), usado para componente não controlado */
214
+ defaultLevel?: CalendarLevel;
215
+ /** Nível atual exibido ao usuário (década, ano, mês), usado para componente controlado */
216
+ level?: CalendarLevel;
217
+ /** Chamado quando o nível muda */
218
+ onLevelChange?(level: CalendarLevel): void;
219
+ /** Fonte de dados onde será atribuido o valor do datePicker (V1 ou V2) */
220
+ dataSource?: IArchbaseDataSourceBase<T>;
221
+ /** Campo onde deverá ser atribuido o valor do datePicker na fonte de dados */
222
+ dataField?: string;
223
+ /** Indicador se o date picker está desabilitado */
224
+ disabled?: boolean;
225
+ /** Indicador se o date picker é somente leitura. Obs: usado em conjunto com o status da fonte de dados */
226
+ readOnly?: boolean;
227
+ /** Estilo do date picker */
228
+ style?: CSSProperties;
229
+ /** Tamanho do date picker */
230
+ size?: MantineSize;
231
+ /** Largura do date picker */
232
+ width?: string | number | undefined;
233
+ /** Possíveis formatos para a data */
234
+ dateFormat?: 'DD/MM/YYYY' | 'DD-MM-YYYY' | 'YYYY/MM/DD' | 'YYYY-MM-DD';
235
+ /** Caracter a ser mostrado quando não houver um valor*/
236
+ placeholderChar?: string;
237
+ /** Indicador se o caracter deve ser mostrado quando não houver um valor */
238
+ showPlaceholderFormat?: boolean;
239
+ /** Evento quando o foco sai do date picker */
240
+ onFocusExit?: (event: React.FocusEvent<HTMLInputElement>) => void;
241
+ /** Evento quando o date picker recebe o foco */
242
+ onFocusEnter?: (event: React.FocusEvent<HTMLInputElement>) => void;
243
+ /** Indica se o date picker tem o preenchimento obrigatório */
244
+ required?: boolean;
245
+ /** Referência para o componente interno */
246
+ innerRef?: React.RefObject<HTMLInputElement> | undefined;
247
+ /** Último erro ocorrido no datepicker */
248
+ error?: string;
249
+ /** Título do edit */
250
+ title?: string;
251
+ /** Título do edit */
252
+ label?: string;
253
+ }
254
+
255
+ export type ArchbaseDatePickerEditFactory = PolymorphicFactory<{
256
+ props: ArchbaseDatePickerEditProps<any, any>;
257
+ defaultRef: HTMLInputElement;
258
+ defaultComponent: 'input';
259
+ stylesNames: ArchbaseDatePickerEditStylesNames;
260
+ variant: InputVariant;
261
+ }>;
262
+
263
+ const defaultProps: Partial<ArchbaseDatePickerEditProps<any, any>> = {
264
+ fixOnBlur: true,
265
+ preserveTime: true,
266
+ size: 'sm',
267
+ readOnly: false,
268
+ disabled: false,
269
+ clearable: true,
270
+ required: false,
271
+ placeholderChar: '_',
272
+ showPlaceholderFormat: true,
273
+ dateFormat: 'DD/MM/YYYY'
274
+ };
275
+
276
+ export function ArchbaseDatePickerEdit<T, ID>(props: ArchbaseDatePickerEditProps<T, ID>) {
277
+ const {
278
+ inputProps,
279
+ wrapperProps,
280
+ value,
281
+ defaultValue,
282
+ onChange,
283
+ onChangeValue,
284
+ clearable,
285
+ clearButtonProps,
286
+ popoverProps,
287
+ getDayProps,
288
+ locale,
289
+ dateParser,
290
+ minDate,
291
+ maxDate,
292
+ fixOnBlur,
293
+ onFocus,
294
+ onFocusEnter,
295
+ onFocusExit,
296
+ onBlur,
297
+ onClick,
298
+ readOnly,
299
+ name,
300
+ form,
301
+ rightSection,
302
+ unstyled,
303
+ classNames,
304
+ styles,
305
+ allowDeselect,
306
+ preserveTime,
307
+ date,
308
+ defaultDate,
309
+ onDateChange,
310
+ showPlaceholderFormat,
311
+ placeholderChar,
312
+ dateFormat,
313
+ dataSource,
314
+ dataField,
315
+ width,
316
+ innerRef,
317
+ title,
318
+ ...rest
319
+ } = useInputProps('ArchbaseDatePickerEdit', defaultProps, props);
320
+
321
+ const { calendarProps, others } = pickCalendarProps(rest);
322
+ const innerComponentRef = innerRef || useRef<any>(null);
323
+ const ctx = useDatesContext();
324
+ // 🔄 MIGRAÇÃO V1/V2: Hook de compatibilidade
325
+ const v1v2Compatibility = useArchbaseV1V2Compatibility<Date | null>(
326
+ 'ArchbaseDatePickerEdit',
327
+ dataSource,
328
+ dataField,
329
+ null
330
+ );
331
+
332
+ // 🔄 DEBUG: Log da versão detectada (apenas desenvolvimento)
333
+ if (process.env.NODE_ENV === 'development' && dataSource) {
334
+ }
335
+
336
+ // Contexto de validação (opcional - pode não existir)
337
+ const validationContext = useValidationErrors();
338
+
339
+ // Chave única para o field
340
+ const fieldKey = `${dataField}`;
341
+
342
+ // Recuperar erro do contexto se existir
343
+ const contextError = validationContext?.getError(fieldKey);
344
+
345
+ // 🔄 MIGRAÇÃO V1/V2: Converter valores string para Date se necessário
346
+ const processValue = (val: DateValue | string | null) => {
347
+ if (!val) return null;
348
+ if (typeof val === 'string') {
349
+ try {
350
+ // Tentar parsear como data formatada primeiro
351
+ return dateFormats[dateFormat!].parse(val);
352
+ } catch {
353
+ // Se falhar, tentar como ISO string
354
+ try {
355
+ return convertISOStringToDate(val);
356
+ } catch {
357
+ return null;
358
+ }
359
+ }
360
+ }
361
+ return val as DateValue;
362
+ };
363
+
364
+ const [_value, setValue, controlled] = useUncontrolled({
365
+ value: processValue(value),
366
+ defaultValue: processValue(defaultValue),
367
+ finalValue: null,
368
+ onChange,
369
+ });
370
+ const [internalError, setInternalError] = useState<string | undefined>(props.error);
371
+ const forceUpdate = useForceUpdate();
372
+
373
+ const [_date, setDate] = useUncontrolled({
374
+ value: date ? (typeof date === 'string' ? date : date.toISOString().split('T')[0]) : null,
375
+ defaultValue: _value ? _value.toISOString().split('T')[0] : defaultDate ? (typeof defaultDate === 'string' ? defaultDate : defaultDate.toISOString().split('T')[0]) : null,
376
+ finalValue: null,
377
+ onChange: onDateChange,
378
+ });
379
+ const formatValue = (val: DateValue) => (val ? dateFormats[dateFormat!].format(val) : '');
380
+ const [inputValue, setInputValue] = useUncontrolled({
381
+ value: formatValue(_value),
382
+ });
383
+
384
+ const defaultDateParser = (val: string) => {
385
+ const parsedDate = dateFormats[dateFormat!].parse(val);
386
+ return Number.isNaN(parsedDate.getTime()) ? dateStringParser(val) : parsedDate;
387
+ };
388
+
389
+ const isReadOnly = () => {
390
+ let _readOnly = readOnly;
391
+ if (dataSource && !readOnly) {
392
+ // 🔄 MIGRAÇÃO V1/V2: Usar compatibilidade para determinar readonly
393
+ _readOnly = readOnly || v1v2Compatibility.isReadOnly;
394
+ }
395
+ return _readOnly;
396
+ };
397
+
398
+ const _dateParser = dateParser || defaultDateParser;
399
+ const _allowDeselect = clearable || allowDeselect;
400
+
401
+ const fieldChangedListener = useCallback(() => {
402
+ loadDataSourceFieldValue();
403
+ }, []);
404
+
405
+ // 🔄 MIGRAÇÃO V1/V2: Event listener compatível
406
+ const dataSourceEvent = useCallback((event: DataSourceEvent<any>) => {
407
+ if (dataSource && dataField) {
408
+ if (
409
+ event.type === DataSourceEventNames.dataChanged ||
410
+ event.type === DataSourceEventNames.recordChanged ||
411
+ event.type === DataSourceEventNames.afterScroll ||
412
+ event.type === DataSourceEventNames.afterCancel ||
413
+ event.type === DataSourceEventNames.afterEdit
414
+ ) {
415
+ loadDataSourceFieldValue();
416
+
417
+ // 🔄 MIGRAÇÃO V1/V2: forceUpdate apenas para V1
418
+ if (!v1v2Compatibility.isDataSourceV2) {
419
+ forceUpdate();
420
+ }
421
+ // V2 atualiza automaticamente via estado otimizado
422
+ }
423
+
424
+ if (event.type === DataSourceEventNames.onFieldError && event.fieldName === dataField) {
425
+ setInternalError(event.error);
426
+ // Salvar no contexto (se disponível)
427
+ validationContext?.setError(fieldKey, event.error);
428
+ }
429
+ }
430
+ }, [v1v2Compatibility.isDataSourceV2, validationContext, fieldKey]);
431
+
432
+ const loadDataSourceFieldValue = useCallback(() => {
433
+ if (dataSource && dataField) {
434
+ const value = dataSource.getFieldValue(dataField);
435
+ if (value) {
436
+ // 🔄 MIGRAÇÃO V1/V2: Tratar tanto strings formatadas quanto ISO strings
437
+ let resultDate: Date;
438
+ let result: string;
439
+
440
+ if (typeof value === 'string') {
441
+ // Tentar parsear como data formatada primeiro
442
+ try {
443
+ resultDate = dateFormats[dateFormat!].parse(value);
444
+ if (isNaN(resultDate.getTime())) {
445
+ throw new Error('Invalid date');
446
+ }
447
+ result = value; // Já está no formato correto
448
+ } catch {
449
+ // Se falhar, tentar como ISO string
450
+ resultDate = convertISOStringToDate(value);
451
+ result = dateFormats[dateFormat!].format(resultDate);
452
+ }
453
+ } else {
454
+ // Assumir que é Date
455
+ resultDate = value instanceof Date ? value : new Date(value);
456
+ result = dateFormats[dateFormat!].format(resultDate);
457
+ }
458
+
459
+ if (result !== inputValue) {
460
+ setInputValue(result);
461
+ setDate(resultDate.toISOString().split('T')[0]);
462
+ setValue(resultDate);
463
+ }
464
+ } else {
465
+ setInputValue("");
466
+ setDate(null);
467
+ setValue(null);
468
+ }
469
+ }
470
+ }, [dataField, dataSource, dateFormat, inputValue]);
471
+
472
+ const setDataSourceFieldValue = useCallback((value: Date | undefined | null | string) => {
473
+ if (dataSource && dataField) {
474
+ // 🔄 MIGRAÇÃO V1/V2: Para compatibilidade V1, usar strings formatadas ao invés de ISO
475
+ let processedValue: any = value;
476
+
477
+ if (value && typeof value !== 'string') {
478
+ // Se for Date, converter para string formatada (formato do input)
479
+ processedValue = formatValue(value);
480
+ }
481
+
482
+ v1v2Compatibility.handleValueChange(processedValue);
483
+ }
484
+ }, [v1v2Compatibility.handleValueChange, dateFormat]);
485
+
486
+ // Ref para manter callback sempre atualizado (corrige problema de closure desatualizada)
487
+ const dataSourceEventRef = useRef(dataSourceEvent);
488
+ useEffect(() => {
489
+ dataSourceEventRef.current = dataSourceEvent;
490
+ }, [dataSourceEvent]);
491
+
492
+ // Wrapper estável que delega para ref - nunca muda, então o listener permanece consistente
493
+ const stableDataSourceEvent = useCallback((event: DataSourceEvent<any>) => {
494
+ dataSourceEventRef.current(event);
495
+ }, []);
496
+
497
+ // Registrar listeners com cleanup apropriado
498
+ useEffect(() => {
499
+ loadDataSourceFieldValue();
500
+ if (dataSource && dataField) {
501
+ const hasFieldListener = typeof (dataSource as any).addFieldChangeListener === 'function';
502
+ dataSource.addListener(stableDataSourceEvent);
503
+ if (hasFieldListener) {
504
+ (dataSource as any).addFieldChangeListener(dataField, fieldChangedListener);
505
+ }
506
+
507
+ return () => {
508
+ dataSource.removeListener(stableDataSourceEvent);
509
+ if (hasFieldListener) {
510
+ (dataSource as any).removeFieldChangeListener(dataField, fieldChangedListener);
511
+ }
512
+ };
513
+ }
514
+ }, [dataSource, dataField, stableDataSourceEvent, fieldChangedListener]);
515
+
516
+ useArchbaseDidUpdate(() => {
517
+ loadDataSourceFieldValue();
518
+ }, []);
519
+
520
+ // ❌ REMOVIDO: Não limpar erro automaticamente quando valor muda
521
+ // O erro deve ser limpo apenas quando o usuário EDITA o campo (nos handlers)
522
+ // useEffect(() => {
523
+ // setInternalError(undefined);
524
+ // }, [_value, _date, inputValue]);
525
+
526
+ // ✅ CORRIGIDO: Apenas atualizar se o prop error vier definido
527
+ // Não limpar o internalError se o prop error for undefined
528
+ useEffect(() => {
529
+ if (props.error !== undefined && props.error !== internalError) {
530
+ setInternalError(props.error);
531
+ }
532
+ }, [props.error]);
533
+
534
+ useEffect(() => {
535
+ if (controlled && _value) {
536
+ setDate(_value.toISOString().split('T')[0]);
537
+ }
538
+ }, [controlled, _value]);
539
+
540
+ useEffect(() => {
541
+ setInputValue(formatValue(_value));
542
+ }, [ctx.locale]);
543
+
544
+ const [dropdownOpened, setDropdownOpened] = useState(false);
545
+
546
+ const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {
547
+ if (!isReadOnly()) {
548
+ const val = event.currentTarget.value;
549
+ setInputValue(val);
550
+
551
+ // ✅ Limpa erro quando usuário edita o campo (tanto do estado local quanto do contexto)
552
+ const hasError = internalError || contextError;
553
+ if (hasError) {
554
+ setInternalError(undefined);
555
+ validationContext?.clearError(fieldKey);
556
+ }
557
+
558
+ if (val.trim() === '' && _allowDeselect) {
559
+ setValue(null);
560
+ setDataSourceFieldValue('');
561
+ onChangeValue?.(null, event);
562
+ } else {
563
+ const dateValue = _dateParser(val);
564
+ // Convert minDate and maxDate to DateValue for validation
565
+ const minDateValue = minDate ? (typeof minDate === 'string' ? new Date(minDate) : minDate) : undefined;
566
+ const maxDateValue = maxDate ? (typeof maxDate === 'string' ? new Date(maxDate) : maxDate) : undefined;
567
+ if (isDateValid({ date: dateValue, minDate: minDateValue, maxDate: maxDateValue })) {
568
+ setValue(dateValue);
569
+ setDate(dateValue ? (typeof dateValue === 'string' ? dateValue : dateValue.toISOString().split('T')[0]) : null);
570
+ setDataSourceFieldValue(val);
571
+ onChangeValue?.(val, event);
572
+ }
573
+ }
574
+ }
575
+ };
576
+
577
+ const handleComplete = (maskValue) => {
578
+ if (!isReadOnly()) {
579
+ // ✅ Limpa erro quando usuário edita o campo (tanto do estado local quanto do contexto)
580
+ const hasError = internalError || contextError;
581
+ if (hasError) {
582
+ setInternalError(undefined);
583
+ validationContext?.clearError(fieldKey);
584
+ }
585
+
586
+ if (maskValue.trim() === '' && _allowDeselect) {
587
+ setValue(null);
588
+ setDataSourceFieldValue('');
589
+ onChangeValue?.(null, { target: { value: maskValue } });
590
+ } else if (maskValue && maskValue.length === 10) {
591
+ const dateValue = dateFormats[dateFormat!].parse(maskValue);
592
+ // Convert minDate and maxDate to DateValue for validation
593
+ const minDateValue = minDate ? (typeof minDate === 'string' ? new Date(minDate) : minDate) : undefined;
594
+ const maxDateValue = maxDate ? (typeof maxDate === 'string' ? new Date(maxDate) : maxDate) : undefined;
595
+ if (isDateValid({ date: dateValue, minDate: minDateValue, maxDate: maxDateValue })) {
596
+ setValue(dateValue);
597
+ setDate(dateValue ? (typeof dateValue === 'string' ? dateValue : dateValue.toISOString().split('T')[0]) : null);
598
+ setInputValue(formatValue(dateValue));
599
+ setDataSourceFieldValue(maskValue);
600
+ onChangeValue?.(maskValue, { target: { value: maskValue } });
601
+ }
602
+ }
603
+ }
604
+ };
605
+
606
+ const handleAccept = (_maskValue: string, maskRef) => {
607
+ if (!isReadOnly()) {
608
+ if (maskRef.masked.rawInputValue === '' && _allowDeselect) {
609
+ // ✅ Limpa erro quando usuário limpa o campo
610
+ const hasError = internalError || contextError;
611
+ if (hasError) {
612
+ setInternalError(undefined);
613
+ validationContext?.clearError(fieldKey);
614
+ }
615
+
616
+ setValue(null);
617
+ setDate(null);
618
+ setDataSourceFieldValue('');
619
+ setInputValue('');
620
+ onChangeValue?.('', { target: { value: '' } });
621
+ }
622
+ }
623
+ };
624
+
625
+ const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {
626
+ onBlur?.(event);
627
+ onFocusExit?.(event);
628
+ setDropdownOpened(false);
629
+ if (!isReadOnly()) {
630
+ fixOnBlur && setInputValue(formatValue(_value));
631
+ }
632
+ };
633
+
634
+ const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {
635
+ if (!isReadOnly()) {
636
+ onFocus?.(event);
637
+ onFocusEnter?.(event);
638
+ setDropdownOpened(true);
639
+ }
640
+ };
641
+
642
+ const handleInputClick = (event: React.MouseEvent<HTMLInputElement>) => {
643
+ if (!isReadOnly()) {
644
+ onClick?.(event);
645
+ setDropdownOpened(true);
646
+ }
647
+ };
648
+
649
+ const _getDayProps = (dayString: DateStringValue) => {
650
+ const day = new Date(dayString);
651
+ return {
652
+ ...getDayProps?.(dayString),
653
+ selected: dayjs(_value).isSame(day, 'day'),
654
+ onClick: () => {
655
+ if (!isReadOnly()) {
656
+ // ✅ Limpa erro quando usuário seleciona uma data no calendário
657
+ const hasError = internalError || contextError;
658
+ if (hasError) {
659
+ setInternalError(undefined);
660
+ validationContext?.clearError(fieldKey);
661
+ }
662
+
663
+ const valueWithTime = preserveTime ? assignTime(_value, day) : day;
664
+ const val = _allowDeselect ? (dayjs(_value).isSame(day, 'day') ? null : valueWithTime) : valueWithTime;
665
+ setValue(val);
666
+ const formattedValue = formatValue(val);
667
+ setInputValue(formattedValue);
668
+ setDropdownOpened(false);
669
+ setDataSourceFieldValue(formattedValue);
670
+ onChangeValue?.(formattedValue, { target: { value: formattedValue } });
671
+ }
672
+ },
673
+ };
674
+ };
675
+
676
+ const _rightSection =
677
+ rightSection ||
678
+ (clearable && _value && !isReadOnly() ? (
679
+ <CloseButton
680
+ variant="transparent"
681
+ onMouseDown={(event) => event.preventDefault()}
682
+ tabIndex={-1}
683
+ onClick={() => {
684
+ // ✅ Limpa erro quando usuário usa o botão clear
685
+ const hasError = internalError || contextError;
686
+ if (hasError) {
687
+ setInternalError(undefined);
688
+ validationContext?.clearError(fieldKey);
689
+ }
690
+
691
+ setValue(null);
692
+ setInputValue('');
693
+ setDataSourceFieldValue('');
694
+ onChangeValue?.('', { target: { value: '' } });
695
+ }}
696
+ unstyled={unstyled}
697
+ {...clearButtonProps}
698
+ />
699
+ ) : null);
700
+
701
+ useDidUpdate(() => {
702
+ value !== undefined && !dropdownOpened && setInputValue(formatValue(_value));
703
+ }, [_value]);
704
+
705
+ // Erro a ser exibido: local ou do contexto
706
+ const displayError = internalError || contextError;
707
+
708
+ return (
709
+ <>
710
+ <Input.Wrapper {...wrapperProps} error={displayError} label={title||props.label}>
711
+ <Popover
712
+ opened={dropdownOpened}
713
+ trapFocus={false}
714
+ position="bottom-start"
715
+ disabled={isReadOnly()}
716
+ withinPortal={true}
717
+ withRoles={false}
718
+ {...popoverProps}
719
+ >
720
+ <Popover.Target>
721
+ <Input.Wrapper required={props.required} __staticSelector="ArchbaseDatePickerEdit">
722
+ <Input<any>
723
+ data-dates-input
724
+ data-read-only={readOnly || undefined}
725
+ autoComplete="off"
726
+ ref={innerComponentRef}
727
+ component={IMaskInput}
728
+ rightSection={_rightSection}
729
+ lazy={!showPlaceholderFormat}
730
+ placeholderChar={placeholderChar}
731
+ mask={dateFormats[dateFormat!].mask}
732
+ onBlur={handleInputBlur}
733
+ onFocus={handleInputFocus}
734
+ onClick={handleInputClick}
735
+ onComplete={handleComplete}
736
+ onChange={handleInputChange}
737
+ onAccept={handleAccept}
738
+ readOnly={isReadOnly()}
739
+ value={inputValue}
740
+ style={{
741
+ width,
742
+ ...props.style,
743
+ }}
744
+ {...inputProps}
745
+ {...others}
746
+ format={(date) => {
747
+ if (!date) return '';
748
+ const day = String(date.getDate()).padStart(2, '0');
749
+ const month = String(date.getMonth() + 1).padStart(2, '0');
750
+ const year = date.getFullYear();
751
+
752
+ return [day, month, year].join('/');
753
+ }}
754
+ parse={(str) => {
755
+ const [day, month, year] = str.split('/');
756
+ return new Date(year, month - 1, day);
757
+ }}
758
+ />
759
+ </Input.Wrapper>
760
+ </Popover.Target>
761
+ <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} data-dates-dropdown>
762
+ <Calendar
763
+ __staticSelector="ArchbaseDatePickerEdit"
764
+ {...calendarProps}
765
+ classNames={classNames}
766
+ styles={styles}
767
+ unstyled={unstyled}
768
+ __preventFocus
769
+ minDate={minDate}
770
+ maxDate={maxDate}
771
+ locale={ctx.locale}
772
+ getDayProps={_getDayProps}
773
+ size={inputProps.size as MantineSize}
774
+ date={_date ? _date : undefined}
775
+ onDateChange={setDate}
776
+ />
777
+ </Popover.Dropdown>
778
+ </Popover>
779
+ <HiddenDatesInput name={name ? name : ''} form={form ? form : ''} value={_value} type="default" />
780
+ </Input.Wrapper>
781
+ </>
782
+ );
783
+ }
784
+
785
+ ArchbaseDatePickerEdit.displayName = 'ArchbaseDatePickerEdit';