@apia/components 1.0.2 → 2.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 (402) hide show
  1. package/dist/components/IconsList/Icon.js +42 -0
  2. package/dist/components/IconsList/Icon.js.map +1 -0
  3. package/dist/components/IconsList/IconWrapper.js +24 -0
  4. package/dist/components/IconsList/IconWrapper.js.map +1 -0
  5. package/dist/components/IconsList/KeyHandler.js +147 -0
  6. package/dist/components/IconsList/KeyHandler.js.map +1 -0
  7. package/dist/components/IconsList/context.js +14 -0
  8. package/dist/components/IconsList/context.js.map +1 -0
  9. package/dist/components/IconsList/index.d.ts +12 -0
  10. package/dist/components/IconsList/index.d.ts.map +1 -0
  11. package/dist/components/IconsList/index.js +119 -0
  12. package/dist/components/IconsList/index.js.map +1 -0
  13. package/dist/components/IconsList/renderers/DefaultIconRenderer.d.ts +7 -0
  14. package/dist/components/IconsList/renderers/DefaultIconRenderer.d.ts.map +1 -0
  15. package/dist/components/IconsList/renderers/DefaultIconRenderer.js +30 -0
  16. package/dist/components/IconsList/renderers/DefaultIconRenderer.js.map +1 -0
  17. package/dist/components/IconsList/store/context.js +9 -0
  18. package/dist/components/IconsList/store/context.js.map +1 -0
  19. package/dist/components/IconsList/store/distinctors.js +42 -0
  20. package/dist/components/IconsList/store/distinctors.js.map +1 -0
  21. package/dist/components/IconsList/store/keysMaker.js +8 -0
  22. package/dist/components/IconsList/store/keysMaker.js.map +1 -0
  23. package/dist/components/IconsList/store/operations.js +138 -0
  24. package/dist/components/IconsList/store/operations.js.map +1 -0
  25. package/dist/components/IconsList/store/state.js +9 -0
  26. package/dist/components/IconsList/store/state.js.map +1 -0
  27. package/dist/components/IconsList/store/useStore.js +52 -0
  28. package/dist/components/IconsList/store/useStore.js.map +1 -0
  29. package/dist/components/IconsList/styles.js +48 -0
  30. package/dist/components/IconsList/styles.js.map +1 -0
  31. package/dist/components/IconsList/types.d.ts +98 -0
  32. package/dist/components/IconsList/types.d.ts.map +1 -0
  33. package/dist/components/IconsList/util.js +46 -0
  34. package/dist/components/IconsList/util.js.map +1 -0
  35. package/dist/components/ListBox/Combobox.js +52 -0
  36. package/dist/components/ListBox/Combobox.js.map +1 -0
  37. package/dist/components/ListBox/ListboxContext.d.ts +35 -0
  38. package/dist/components/ListBox/ListboxContext.d.ts.map +1 -0
  39. package/dist/components/ListBox/ListboxContext.js +6 -0
  40. package/dist/components/ListBox/ListboxContext.js.map +1 -0
  41. package/dist/components/ListBox/ListboxItem.d.ts +17 -0
  42. package/dist/components/ListBox/ListboxItem.d.ts.map +1 -0
  43. package/dist/components/ListBox/ListboxItem.js +67 -0
  44. package/dist/components/ListBox/ListboxItem.js.map +1 -0
  45. package/dist/components/ListBox/ListboxKeyhandler.js +154 -0
  46. package/dist/components/ListBox/ListboxKeyhandler.js.map +1 -0
  47. package/dist/components/ListBox/common.d.ts +46 -0
  48. package/dist/components/ListBox/common.d.ts.map +1 -0
  49. package/dist/components/ListBox/common.js +118 -0
  50. package/dist/components/ListBox/common.js.map +1 -0
  51. package/dist/components/ListBox/index.d.ts +21 -0
  52. package/dist/components/ListBox/index.d.ts.map +1 -0
  53. package/dist/components/ListBox/index.js +71 -0
  54. package/dist/components/ListBox/index.js.map +1 -0
  55. package/dist/components/ListBox/listbox.js +46 -0
  56. package/dist/components/ListBox/listbox.js.map +1 -0
  57. package/dist/components/ListBox/operations.js +330 -0
  58. package/dist/components/ListBox/operations.js.map +1 -0
  59. package/dist/components/ListBox/useIndexedChildren.js +25 -0
  60. package/dist/components/ListBox/useIndexedChildren.js.map +1 -0
  61. package/dist/components/ListBox/useListboxAutofocus.js +48 -0
  62. package/dist/components/ListBox/useListboxAutofocus.js.map +1 -0
  63. package/dist/components/ListBox/useListboxContextValue.js +8 -0
  64. package/dist/components/ListBox/useListboxContextValue.js.map +1 -0
  65. package/dist/components/ListBox/useShoutSelectionChange.js +26 -0
  66. package/dist/components/ListBox/useShoutSelectionChange.js.map +1 -0
  67. package/dist/components/ListBox/useStore.js +36 -0
  68. package/dist/components/ListBox/useStore.js.map +1 -0
  69. package/dist/components/ListBox/useUpdateRowCount.js +19 -0
  70. package/dist/components/ListBox/useUpdateRowCount.js.map +1 -0
  71. package/dist/components/SortableList/SortableListHandler.js +161 -0
  72. package/dist/components/SortableList/SortableListHandler.js.map +1 -0
  73. package/dist/components/SortableList/SortableListItem.d.ts +14 -0
  74. package/dist/components/SortableList/SortableListItem.d.ts.map +1 -0
  75. package/dist/components/SortableList/SortableListItem.js +24 -0
  76. package/dist/components/SortableList/SortableListItem.js.map +1 -0
  77. package/dist/components/SortableList/index.d.ts +21 -0
  78. package/dist/components/SortableList/index.d.ts.map +1 -0
  79. package/dist/components/SortableList/index.js +53 -0
  80. package/dist/components/SortableList/index.js.map +1 -0
  81. package/dist/components/Toolbar/ToolbarController.d.ts +24 -0
  82. package/dist/components/Toolbar/ToolbarController.d.ts.map +1 -0
  83. package/dist/components/Toolbar/ToolbarController.js +50 -0
  84. package/dist/components/Toolbar/ToolbarController.js.map +1 -0
  85. package/dist/components/Toolbar/ToolbarIconButton.d.ts +7 -0
  86. package/dist/components/Toolbar/ToolbarIconButton.d.ts.map +1 -0
  87. package/dist/components/Toolbar/ToolbarIconButton.js +110 -0
  88. package/dist/components/Toolbar/ToolbarIconButton.js.map +1 -0
  89. package/dist/components/Toolbar/ToolbarInput.d.ts +7 -0
  90. package/dist/components/Toolbar/ToolbarInput.d.ts.map +1 -0
  91. package/dist/components/Toolbar/ToolbarInput.js +13 -0
  92. package/dist/components/Toolbar/ToolbarInput.js.map +1 -0
  93. package/dist/components/Toolbar/ToolbarSelect.d.ts +7 -0
  94. package/dist/components/Toolbar/ToolbarSelect.d.ts.map +1 -0
  95. package/dist/components/Toolbar/ToolbarSelect.js +17 -0
  96. package/dist/components/Toolbar/ToolbarSelect.js.map +1 -0
  97. package/dist/components/Toolbar/ToolbarSeparator.d.ts +6 -0
  98. package/dist/components/Toolbar/ToolbarSeparator.d.ts.map +1 -0
  99. package/dist/components/Toolbar/ToolbarSeparator.js +9 -0
  100. package/dist/components/Toolbar/ToolbarSeparator.js.map +1 -0
  101. package/dist/components/Toolbar/ToolbarTextButton.d.ts +9 -0
  102. package/dist/components/Toolbar/ToolbarTextButton.d.ts.map +1 -0
  103. package/dist/components/Toolbar/ToolbarTextButton.js +18 -0
  104. package/dist/components/Toolbar/ToolbarTextButton.js.map +1 -0
  105. package/dist/components/Toolbar/index.d.ts +17 -0
  106. package/dist/components/Toolbar/index.d.ts.map +1 -0
  107. package/dist/components/Toolbar/index.js +26 -0
  108. package/dist/components/Toolbar/index.js.map +1 -0
  109. package/dist/components/Toolbar/styles.js +84 -0
  110. package/dist/components/Toolbar/styles.js.map +1 -0
  111. package/dist/components/Toolbar/types.d.ts +40 -0
  112. package/dist/components/Toolbar/types.d.ts.map +1 -0
  113. package/dist/components/accordion/Accordion.d.ts +20 -0
  114. package/dist/components/accordion/Accordion.d.ts.map +1 -0
  115. package/dist/components/accordion/Accordion.js +60 -0
  116. package/dist/components/accordion/Accordion.js.map +1 -0
  117. package/dist/components/accordion/AccordionItem.d.ts +19 -0
  118. package/dist/components/accordion/AccordionItem.d.ts.map +1 -0
  119. package/dist/components/accordion/AccordionItem.js +22 -0
  120. package/dist/components/accordion/AccordionItem.js.map +1 -0
  121. package/dist/components/accordion/AccordionItemButton.d.ts +10 -0
  122. package/dist/components/accordion/AccordionItemButton.d.ts.map +1 -0
  123. package/dist/components/accordion/AccordionItemButton.js +8 -0
  124. package/dist/components/accordion/AccordionItemButton.js.map +1 -0
  125. package/dist/components/accordion/AccordionItemContent.d.ts +7 -0
  126. package/dist/components/accordion/AccordionItemContent.d.ts.map +1 -0
  127. package/dist/components/accordion/AccordionItemContent.js +50 -0
  128. package/dist/components/accordion/AccordionItemContent.js.map +1 -0
  129. package/dist/components/accordion/KeyHandler.js +77 -0
  130. package/dist/components/accordion/KeyHandler.js.map +1 -0
  131. package/dist/components/accordion/context.d.ts +10 -0
  132. package/dist/components/accordion/context.d.ts.map +1 -0
  133. package/dist/components/accordion/context.js +13 -0
  134. package/dist/components/accordion/context.js.map +1 -0
  135. package/dist/components/accordion/defaultElements/Checkbox.js +22 -0
  136. package/dist/components/accordion/defaultElements/Checkbox.js.map +1 -0
  137. package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.d.ts +40 -0
  138. package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.d.ts.map +1 -0
  139. package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.js +79 -0
  140. package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.js.map +1 -0
  141. package/dist/components/accordion/defaultElements/useIsChecked.js +25 -0
  142. package/dist/components/accordion/defaultElements/useIsChecked.js.map +1 -0
  143. package/dist/components/accordion/handler.d.ts +40 -0
  144. package/dist/components/accordion/handler.d.ts.map +1 -0
  145. package/dist/components/accordion/handler.js +118 -0
  146. package/dist/components/accordion/handler.js.map +1 -0
  147. package/dist/components/accordion/index.d.ts +8 -0
  148. package/dist/components/accordion/index.d.ts.map +1 -0
  149. package/dist/components/accordion/types.d.ts +11 -0
  150. package/dist/components/accordion/types.d.ts.map +1 -0
  151. package/dist/components/apia/ApiaDateFilter.js +57 -0
  152. package/dist/components/apia/ApiaDateFilter.js.map +1 -0
  153. package/dist/components/apia/ApiaFilter.d.ts +13 -0
  154. package/dist/components/apia/ApiaFilter.d.ts.map +1 -0
  155. package/dist/components/apia/ApiaFilter.js +128 -0
  156. package/dist/components/apia/ApiaFilter.js.map +1 -0
  157. package/dist/components/buttons/useOtherTagButton.d.ts +28 -0
  158. package/dist/components/buttons/useOtherTagButton.d.ts.map +1 -0
  159. package/dist/components/buttons/useOtherTagButton.js +38 -0
  160. package/dist/components/buttons/useOtherTagButton.js.map +1 -0
  161. package/dist/components/collapsiblePanel/index.d.ts +7 -0
  162. package/dist/components/collapsiblePanel/index.d.ts.map +1 -0
  163. package/dist/components/collapsiblePanel/index.js +130 -0
  164. package/dist/components/collapsiblePanel/index.js.map +1 -0
  165. package/dist/components/collapsiblePanel/styles.js +4 -0
  166. package/dist/components/collapsiblePanel/styles.js.map +1 -0
  167. package/dist/components/collapsiblePanel/types.d.ts +23 -0
  168. package/dist/components/collapsiblePanel/types.d.ts.map +1 -0
  169. package/dist/components/dialogs/AlertModal.d.ts +11 -0
  170. package/dist/components/dialogs/AlertModal.d.ts.map +1 -0
  171. package/dist/components/dialogs/AlertModal.js +42 -0
  172. package/dist/components/dialogs/AlertModal.js.map +1 -0
  173. package/dist/components/dialogs/ConfirmModal.d.ts +25 -0
  174. package/dist/components/dialogs/ConfirmModal.d.ts.map +1 -0
  175. package/dist/components/dialogs/ConfirmModal.js +45 -0
  176. package/dist/components/dialogs/ConfirmModal.js.map +1 -0
  177. package/dist/components/forms/Captcha.d.ts +12 -0
  178. package/dist/components/forms/Captcha.d.ts.map +1 -0
  179. package/dist/components/forms/Captcha.js +66 -0
  180. package/dist/components/forms/Captcha.js.map +1 -0
  181. package/dist/components/forms/Checkbox.d.ts +21 -0
  182. package/dist/components/forms/Checkbox.d.ts.map +1 -0
  183. package/dist/components/forms/Checkbox.js +124 -0
  184. package/dist/components/forms/Checkbox.js.map +1 -0
  185. package/dist/components/forms/DateInput.d.ts +44 -0
  186. package/dist/components/forms/DateInput.d.ts.map +1 -0
  187. package/dist/components/forms/DateInput.js +246 -0
  188. package/dist/components/forms/DateInput.js.map +1 -0
  189. package/dist/components/forms/FieldErrorMessage.d.ts +10 -0
  190. package/dist/components/forms/FieldErrorMessage.d.ts.map +1 -0
  191. package/dist/components/forms/FieldErrorMessage.js +34 -0
  192. package/dist/components/forms/FieldErrorMessage.js.map +1 -0
  193. package/dist/components/forms/FieldLabel.d.ts +40 -0
  194. package/dist/components/forms/FieldLabel.d.ts.map +1 -0
  195. package/dist/components/forms/FieldLabel.js +66 -0
  196. package/dist/components/forms/FieldLabel.js.map +1 -0
  197. package/dist/components/forms/IconInput.d.ts +28 -0
  198. package/dist/components/forms/IconInput.d.ts.map +1 -0
  199. package/dist/components/forms/IconInput.js +80 -0
  200. package/dist/components/forms/IconInput.js.map +1 -0
  201. package/dist/components/forms/NumberInput.d.ts +37 -0
  202. package/dist/components/forms/NumberInput.d.ts.map +1 -0
  203. package/dist/components/forms/NumberInput.js +149 -0
  204. package/dist/components/forms/NumberInput.js.map +1 -0
  205. package/dist/components/forms/RequiredMark.d.ts +14 -0
  206. package/dist/components/forms/RequiredMark.d.ts.map +1 -0
  207. package/dist/components/forms/RequiredMark.js +13 -0
  208. package/dist/components/forms/RequiredMark.js.map +1 -0
  209. package/dist/components/forms/buttons/BaseButton.d.ts +24 -0
  210. package/dist/components/forms/buttons/BaseButton.d.ts.map +1 -0
  211. package/dist/components/forms/buttons/BaseButton.js +58 -0
  212. package/dist/components/forms/buttons/BaseButton.js.map +1 -0
  213. package/dist/components/forms/buttons/IconButton.d.ts +37 -0
  214. package/dist/components/forms/buttons/IconButton.d.ts.map +1 -0
  215. package/dist/components/forms/buttons/IconButton.js +79 -0
  216. package/dist/components/forms/buttons/IconButton.js.map +1 -0
  217. package/dist/components/forms/buttons/SimpleButton.d.ts +21 -0
  218. package/dist/components/forms/buttons/SimpleButton.d.ts.map +1 -0
  219. package/dist/components/forms/buttons/SimpleButton.js +94 -0
  220. package/dist/components/forms/buttons/SimpleButton.js.map +1 -0
  221. package/dist/components/forms/util/style.d.ts +7 -0
  222. package/dist/components/forms/util/style.d.ts.map +1 -0
  223. package/dist/components/forms/util/style.js +17 -0
  224. package/dist/components/forms/util/style.js.map +1 -0
  225. package/dist/components/importComponent.d.ts +11 -0
  226. package/dist/components/importComponent.d.ts.map +1 -0
  227. package/dist/components/importComponent.js +25 -0
  228. package/dist/components/importComponent.js.map +1 -0
  229. package/dist/components/loaders/LinearLoader.d.ts +6 -0
  230. package/dist/components/loaders/LinearLoader.d.ts.map +1 -0
  231. package/dist/components/loaders/LinearLoader.js +33 -0
  232. package/dist/components/loaders/LinearLoader.js.map +1 -0
  233. package/dist/components/loaders/LoaderSpinner.d.ts +10 -0
  234. package/dist/components/loaders/LoaderSpinner.d.ts.map +1 -0
  235. package/dist/components/loaders/LoaderSpinner.js +26 -0
  236. package/dist/components/loaders/LoaderSpinner.js.map +1 -0
  237. package/dist/components/loaders/ProgressBar.d.ts +11 -0
  238. package/dist/components/loaders/ProgressBar.d.ts.map +1 -0
  239. package/dist/components/loaders/ProgressBar.js +39 -0
  240. package/dist/components/loaders/ProgressBar.js.map +1 -0
  241. package/dist/components/modals/CalendarModal.d.ts +13 -0
  242. package/dist/components/modals/CalendarModal.d.ts.map +1 -0
  243. package/dist/components/modals/CalendarModal.js +43 -0
  244. package/dist/components/modals/CalendarModal.js.map +1 -0
  245. package/dist/components/modals/Modal.d.ts +160 -0
  246. package/dist/components/modals/Modal.d.ts.map +1 -0
  247. package/dist/components/modals/Modal.js +17 -0
  248. package/dist/components/modals/Modal.js.map +1 -0
  249. package/dist/components/modals/ModalContext.d.ts +9 -0
  250. package/dist/components/modals/ModalContext.d.ts.map +1 -0
  251. package/dist/components/modals/ModalContext.js +12 -0
  252. package/dist/components/modals/ModalContext.js.map +1 -0
  253. package/dist/components/modals/Overlay.d.ts +21 -0
  254. package/dist/components/modals/Overlay.d.ts.map +1 -0
  255. package/dist/components/modals/Overlay.js +75 -0
  256. package/dist/components/modals/Overlay.js.map +1 -0
  257. package/dist/components/modals/StaticModal.js +175 -0
  258. package/dist/components/modals/StaticModal.js.map +1 -0
  259. package/dist/components/modals/WindowModal.js +214 -0
  260. package/dist/components/modals/WindowModal.js.map +1 -0
  261. package/dist/components/modals/hooks/useEscapeKey.js +32 -0
  262. package/dist/components/modals/hooks/useEscapeKey.js.map +1 -0
  263. package/dist/components/modals/hooks/useInitialFocus.js +37 -0
  264. package/dist/components/modals/hooks/useInitialFocus.js.map +1 -0
  265. package/dist/components/modals/hooks/useModal.d.ts +97 -0
  266. package/dist/components/modals/hooks/useModal.d.ts.map +1 -0
  267. package/dist/components/modals/hooks/useModal.js +73 -0
  268. package/dist/components/modals/hooks/useModal.js.map +1 -0
  269. package/dist/components/modals/hooks/useStyleState.js +44 -0
  270. package/dist/components/modals/hooks/useStyleState.js.map +1 -0
  271. package/dist/components/modals/layout/Confirm.d.ts +7 -0
  272. package/dist/components/modals/layout/Confirm.d.ts.map +1 -0
  273. package/dist/components/modals/layout/Confirm.js +96 -0
  274. package/dist/components/modals/layout/Confirm.js.map +1 -0
  275. package/dist/components/modals/layout/DialogButtonBar.d.ts +10 -0
  276. package/dist/components/modals/layout/DialogButtonBar.d.ts.map +1 -0
  277. package/dist/components/modals/layout/DialogButtonBar.js +19 -0
  278. package/dist/components/modals/layout/DialogButtonBar.js.map +1 -0
  279. package/dist/components/modals/layout/DialogHeader.d.ts +18 -0
  280. package/dist/components/modals/layout/DialogHeader.d.ts.map +1 -0
  281. package/dist/components/modals/layout/DialogHeader.js +117 -0
  282. package/dist/components/modals/layout/DialogHeader.js.map +1 -0
  283. package/dist/components/responsive/AutoEllipsis.d.ts +21 -0
  284. package/dist/components/responsive/AutoEllipsis.d.ts.map +1 -0
  285. package/dist/components/responsive/AutoEllipsis.js +128 -0
  286. package/dist/components/responsive/AutoEllipsis.js.map +1 -0
  287. package/dist/components/responsive/makeResponsiveComponent.d.ts +38 -0
  288. package/dist/components/responsive/makeResponsiveComponent.d.ts.map +1 -0
  289. package/dist/components/responsive/makeResponsiveComponent.js +88 -0
  290. package/dist/components/responsive/makeResponsiveComponent.js.map +1 -0
  291. package/dist/components/types.d.ts +5 -0
  292. package/dist/components/types.d.ts.map +1 -0
  293. package/dist/components/waiAriaHelpers/typeAhead.d.ts +44 -0
  294. package/dist/components/waiAriaHelpers/typeAhead.d.ts.map +1 -0
  295. package/dist/components/waiAriaHelpers/typeAhead.js +75 -0
  296. package/dist/components/waiAriaHelpers/typeAhead.js.map +1 -0
  297. package/dist/globalFocus.js +95 -0
  298. package/dist/globalFocus.js.map +1 -0
  299. package/dist/hooks/useBodyScrollLock.js +106 -0
  300. package/dist/hooks/useBodyScrollLock.js.map +1 -0
  301. package/dist/index.d.ts +69 -1531
  302. package/dist/index.js +59 -7898
  303. package/dist/index.js.map +1 -1
  304. package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.d.ts +18 -0
  305. package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.d.ts.map +1 -0
  306. package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.js +116 -0
  307. package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.js.map +1 -0
  308. package/dist/objects/ApiaUtil/index.d.ts +27 -0
  309. package/dist/objects/ApiaUtil/index.d.ts.map +1 -0
  310. package/dist/objects/ApiaUtil/index.js +76 -0
  311. package/dist/objects/ApiaUtil/index.js.map +1 -0
  312. package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.d.ts +24 -0
  313. package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.d.ts.map +1 -0
  314. package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.js +110 -0
  315. package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.js.map +1 -0
  316. package/dist/objects/ApiaUtil/modals/ApiaUtilModals.d.ts +17 -0
  317. package/dist/objects/ApiaUtil/modals/ApiaUtilModals.d.ts.map +1 -0
  318. package/dist/objects/ApiaUtil/modals/ApiaUtilModals.js +111 -0
  319. package/dist/objects/ApiaUtil/modals/ApiaUtilModals.js.map +1 -0
  320. package/dist/objects/ApiaUtil/modals/OpenModal.d.ts +8 -0
  321. package/dist/objects/ApiaUtil/modals/OpenModal.d.ts.map +1 -0
  322. package/dist/objects/ApiaUtil/modals/OpenModal.js +19 -0
  323. package/dist/objects/ApiaUtil/modals/OpenModal.js.map +1 -0
  324. package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.d.ts +19 -0
  325. package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.d.ts.map +1 -0
  326. package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.js +26 -0
  327. package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.js.map +1 -0
  328. package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.d.ts +14 -0
  329. package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.d.ts.map +1 -0
  330. package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.js +33 -0
  331. package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.js.map +1 -0
  332. package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.d.ts +23 -0
  333. package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.d.ts.map +1 -0
  334. package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.js +79 -0
  335. package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.js.map +1 -0
  336. package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.d.ts +33 -0
  337. package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.d.ts.map +1 -0
  338. package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.js +50 -0
  339. package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.js.map +1 -0
  340. package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.d.ts +20 -0
  341. package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.d.ts.map +1 -0
  342. package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.js +37 -0
  343. package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.js.map +1 -0
  344. package/dist/objects/ApiaUtil/tabs/util.js +17 -0
  345. package/dist/objects/ApiaUtil/tabs/util.js.map +1 -0
  346. package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.d.ts +11 -0
  347. package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.d.ts.map +1 -0
  348. package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.js +17 -0
  349. package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.js.map +1 -0
  350. package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.d.ts +22 -0
  351. package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.d.ts.map +1 -0
  352. package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.js +104 -0
  353. package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.js.map +1 -0
  354. package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.d.ts +13 -0
  355. package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.d.ts.map +1 -0
  356. package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.js +79 -0
  357. package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.js.map +1 -0
  358. package/dist/objects/ApiaUtil/tooltips/tooltip/Tooltip.js +62 -0
  359. package/dist/objects/ApiaUtil/tooltips/tooltip/Tooltip.js.map +1 -0
  360. package/dist/objects/ApiaUtil/tooltips/tooltip/types.d.ts +117 -0
  361. package/dist/objects/ApiaUtil/tooltips/tooltip/types.d.ts.map +1 -0
  362. package/dist/objects/ApiaUtil/tooltips/tooltip/util.js +273 -0
  363. package/dist/objects/ApiaUtil/tooltips/tooltip/util.js.map +1 -0
  364. package/dist/objects/ScreenLocker/index.d.ts +37 -0
  365. package/dist/objects/ScreenLocker/index.d.ts.map +1 -0
  366. package/dist/objects/ScreenLocker/index.js +92 -0
  367. package/dist/objects/ScreenLocker/index.js.map +1 -0
  368. package/dist/tabs/Content.d.ts +7 -0
  369. package/dist/tabs/Content.d.ts.map +1 -0
  370. package/dist/tabs/Content.js +52 -0
  371. package/dist/tabs/Content.js.map +1 -0
  372. package/dist/tabs/ContextMenu.js +77 -0
  373. package/dist/tabs/ContextMenu.js.map +1 -0
  374. package/dist/tabs/Item.js +64 -0
  375. package/dist/tabs/Item.js.map +1 -0
  376. package/dist/tabs/Tabs.d.ts +8 -0
  377. package/dist/tabs/Tabs.d.ts.map +1 -0
  378. package/dist/tabs/Tabs.js +78 -0
  379. package/dist/tabs/Tabs.js.map +1 -0
  380. package/dist/tabs/TabsList.d.ts +8 -0
  381. package/dist/tabs/TabsList.d.ts.map +1 -0
  382. package/dist/tabs/TabsList.js +138 -0
  383. package/dist/tabs/TabsList.js.map +1 -0
  384. package/dist/tabs/renderers/DefaultTabsLabelRenderer.d.ts +6 -0
  385. package/dist/tabs/renderers/DefaultTabsLabelRenderer.d.ts.map +1 -0
  386. package/dist/tabs/renderers/DefaultTabsLabelRenderer.js +71 -0
  387. package/dist/tabs/renderers/DefaultTabsLabelRenderer.js.map +1 -0
  388. package/dist/tabs/tabsController.d.ts +41 -0
  389. package/dist/tabs/tabsController.d.ts.map +1 -0
  390. package/dist/tabs/tabsController.js +303 -0
  391. package/dist/tabs/tabsController.js.map +1 -0
  392. package/dist/tabs/types.d.ts +115 -0
  393. package/dist/tabs/types.d.ts.map +1 -0
  394. package/dist/tabs/useTabsList.js +20 -0
  395. package/dist/tabs/useTabsList.js.map +1 -0
  396. package/dist/tabs/util.js +11 -0
  397. package/dist/tabs/util.js.map +1 -0
  398. package/package.json +29 -39
  399. package/LICENSE.md +0 -21
  400. package/README.md +0 -3
  401. package/cleanDist.json +0 -3
  402. package/entries.json +0 -1
@@ -0,0 +1,73 @@
1
+ import { useUpdateEffect } from '@apia/util';
2
+ import React__default from 'react';
3
+ import usePortal from 'react-cool-portal';
4
+
5
+ function useModal(configuration) {
6
+ const [isLoading, setIsLoading] = React__default.useState(false);
7
+ const [isOpen, setIsOpen] = React__default.useState(
8
+ configuration?.portalArgs?.defaultShow ?? configuration?.isDefaultOpen ?? false
9
+ );
10
+ const {
11
+ Portal,
12
+ hide: hidePortal,
13
+ show: showPortal
14
+ } = usePortal({
15
+ ...configuration?.portalArgs,
16
+ containerId: "AppModals",
17
+ autoRemoveContainer: false,
18
+ escToHide: false,
19
+ clickOutsideToHide: false,
20
+ defaultShow: false,
21
+ internalShowHide: false
22
+ });
23
+ const hide = React__default.useCallback(() => {
24
+ setIsOpen(false);
25
+ }, []);
26
+ const show = React__default.useCallback(() => {
27
+ if (configuration?.preFetcher) {
28
+ setIsLoading(true);
29
+ configuration.preFetcher().then(() => {
30
+ setIsOpen(true);
31
+ setIsLoading(false);
32
+ }).catch(console.error);
33
+ } else
34
+ setIsOpen(true);
35
+ }, [configuration]);
36
+ const onClose = React__default.useCallback(() => {
37
+ setIsOpen(false);
38
+ if (configuration?.onClose)
39
+ configuration.onClose();
40
+ }, [configuration]);
41
+ const onExited = React__default.useCallback(() => {
42
+ hidePortal();
43
+ if (configuration?.onExited)
44
+ configuration.onExited();
45
+ }, [configuration, hidePortal]);
46
+ const openModalContextValue = React__default.useMemo(() => {
47
+ return {
48
+ isLoading,
49
+ show
50
+ };
51
+ }, [isLoading, show]);
52
+ useUpdateEffect(() => {
53
+ if (isOpen) {
54
+ if (configuration?.onOpen)
55
+ configuration.onOpen();
56
+ showPortal();
57
+ } else
58
+ onClose?.();
59
+ }, [isOpen]);
60
+ return {
61
+ hide,
62
+ isLoading,
63
+ isOpen,
64
+ onClose,
65
+ onExited,
66
+ openModalContextValue,
67
+ Portal,
68
+ show
69
+ };
70
+ }
71
+
72
+ export { useModal };
73
+ //# sourceMappingURL=useModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useModal.js","sources":["../../../../src/components/modals/hooks/useModal.tsx"],"sourcesContent":["import { useUpdateEffect } from '@apia/util';\nimport React from 'react';\nimport usePortal, { Args } from 'react-cool-portal';\nimport { TModal } from '../Modal';\n\nexport type TUseModalConfiguration = Pick<TModal, 'onClose' | 'onExited'> & {\n debugPerformanceName?: string;\n isDefaultOpen?: boolean;\n onOpen?: () => unknown;\n portalArgs?: Omit<Args, 'containerId'>;\n preFetcher?: () => Promise<void>;\n};\n\n/**\n * Este hook provee una forma muy sencilla de utilizar nuestro modal. Provee\n * varias funcionalidades interesantes para poder manipular el modal en\n * distintas circunstancias:\n *\n * Objeto parámetro:\n *\n * - **defaultOpen**, Boolean, si es true el modal aparecerá abierto al montar\n * y sino aparecerá cerrado.\n * - **onOpen**: Event listener que será llamado en el momento exacto en que la\n * orden de apertura del modal fue dada.\n * - **onClose**: Event listener que será llamado en el momento exacto en que\n * el modal es cerrado, ya sea por un click en el overlay o porque la tecla\n * escape fue presionada.\n * - **onExited**, Event listener que será llamado luego de que la animación de\n * cierre del modal terminó.\n * - **preFetcher**, este método deberá devolver una promesa y en dicha promesa\n * deberá realizar cualquier operación que fuera necesaria antes de abrir el\n * modal, ejemplo: cargar la información que el modal debe mostrar. Si este\n * método es pasado, será llamado antes de abrir el modal y la vista se pondrá\n * en modo de carga (la propiedad isLoading devuelta y la propiedad isLoading\n * del OpenModalContextProvider estarán en true), hasta que la promesa sea\n * resuelta, momento en que se abrirá el modal e isLoading será puesto en false.\n * - **portalArgs**, objeto de configuración aceptado por el hook usePortal de\n * **react-cool-portal**.\n *\n * Objeto devuelto:\n *\n * - Para un modal en donde el botón de abrir el modal esté inserto dentro del\n * componente que lo utiliza, se devuelven los métodos **show** y **hide**.\n * - Para un modal en donde el botón de abrir el modal esté fuera del\n * componente, se devuelve **openModalContextValue**, que es el valor que debe\n * pasarse al contexto de tipo OpenModalContextProvider, un contexto que\n * puede ser utilizado para renderizar el botón encargado de abrir el modal,\n * fuera del alcance del componente que define el modal en sí. Se muestra un\n * ejemplo más abajo.\n * - Todos los demás elementos devueltos son para pasar directamente al modal,\n * entre ellos se encuentran las propiedades que el modal utiliza para saber si\n * debe estar abierto, los event listeners correspondientes y un portal, que el\n * modal usará para mostrarse dentro del área de modales, lo cual es sumamente\n * importante para que el focusController funcione correctamente.\n *\n * @see OpenModalContextProvider\n * @see usePortal\n *\n * @example\n *\n const { openModalContextValue, ...modalProps } = useModal(\n React.useMemo(() => ({\n onClose: () => console.log(\"Al presionar en cerrar.\"),\n onExited: () => console.log(\"Al terminar la animación de cierre.\"),\n onOpen: () => console.log(\"Al abrir.\"),\n }), [])\n );\n\n return (\n <OpenModalContext.Provider value={openModalContextValue}>\n <OpenModalContext.Consumer>\n {({ isLoading, show }) => (\n <Button isLoading={isLoading} onClick={show}>Open modal</Button>\n )}\n </OpenModalContext.Consumer>\n <Modal shouldCloseOnEsc shouldCloseOnOverlayClick {...modalProps}>\n Hello world\n </Modal>\n </OpenModalContext.Provider>\n );\n */\nexport function useModal(configuration?: TUseModalConfiguration) {\n const [isLoading, setIsLoading] = React.useState(false);\n const [isOpen, setIsOpen] = React.useState(\n configuration?.portalArgs?.defaultShow ??\n configuration?.isDefaultOpen ??\n false,\n );\n\n const {\n Portal,\n hide: hidePortal,\n show: showPortal,\n } = usePortal({\n ...configuration?.portalArgs,\n containerId: 'AppModals',\n autoRemoveContainer: false,\n escToHide: false,\n clickOutsideToHide: false,\n defaultShow: false,\n internalShowHide: false,\n });\n\n const hide = React.useCallback(() => {\n setIsOpen(false);\n }, []);\n const show = React.useCallback(() => {\n if (configuration?.preFetcher) {\n setIsLoading(true);\n configuration\n .preFetcher()\n .then(() => {\n setIsOpen(true);\n setIsLoading(false);\n })\n .catch(console.error);\n } else setIsOpen(true);\n }, [configuration]);\n const onClose = React.useCallback(() => {\n setIsOpen(false);\n if (configuration?.onClose) configuration.onClose();\n }, [configuration]);\n const onExited = React.useCallback(() => {\n hidePortal();\n if (configuration?.onExited) configuration.onExited();\n }, [configuration, hidePortal]);\n const openModalContextValue = React.useMemo(() => {\n return {\n isLoading,\n show,\n };\n }, [isLoading, show]);\n\n useUpdateEffect(() => {\n if (isOpen) {\n if (configuration?.onOpen) configuration.onOpen();\n showPortal();\n } else onClose?.();\n }, [isOpen]);\n\n return {\n hide,\n isLoading,\n isOpen,\n onClose,\n onExited,\n openModalContextValue,\n Portal,\n show,\n };\n}\n"],"names":["React"],"mappings":";;;;AAiFO,SAAS,SAAS,aAAwC,EAAA;AAC/D,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,CAAI,GAAAA,cAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AACtD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,cAAM,CAAA,QAAA;AAAA,IAChC,aAAe,EAAA,UAAA,EAAY,WACzB,IAAA,aAAA,EAAe,aACf,IAAA,KAAA;AAAA,GACJ,CAAA;AAEA,EAAM,MAAA;AAAA,IACJ,MAAA;AAAA,IACA,IAAM,EAAA,UAAA;AAAA,IACN,IAAM,EAAA,UAAA;AAAA,MACJ,SAAU,CAAA;AAAA,IACZ,GAAG,aAAe,EAAA,UAAA;AAAA,IAClB,WAAa,EAAA,WAAA;AAAA,IACb,mBAAqB,EAAA,KAAA;AAAA,IACrB,SAAW,EAAA,KAAA;AAAA,IACX,kBAAoB,EAAA,KAAA;AAAA,IACpB,WAAa,EAAA,KAAA;AAAA,IACb,gBAAkB,EAAA,KAAA;AAAA,GACnB,CAAA,CAAA;AAED,EAAM,MAAA,IAAA,GAAOA,cAAM,CAAA,WAAA,CAAY,MAAM;AACnC,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAAA,GACjB,EAAG,EAAE,CAAA,CAAA;AACL,EAAM,MAAA,IAAA,GAAOA,cAAM,CAAA,WAAA,CAAY,MAAM;AACnC,IAAA,IAAI,eAAe,UAAY,EAAA;AAC7B,MAAA,YAAA,CAAa,IAAI,CAAA,CAAA;AACjB,MACG,aAAA,CAAA,UAAA,EACA,CAAA,IAAA,CAAK,MAAM;AACV,QAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AACd,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,OACnB,CAAA,CACA,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAAA,KACxB;AAAO,MAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AAAA,GACvB,EAAG,CAAC,aAAa,CAAC,CAAA,CAAA;AAClB,EAAM,MAAA,OAAA,GAAUA,cAAM,CAAA,WAAA,CAAY,MAAM;AACtC,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACf,IAAA,IAAI,aAAe,EAAA,OAAA;AAAS,MAAA,aAAA,CAAc,OAAQ,EAAA,CAAA;AAAA,GACpD,EAAG,CAAC,aAAa,CAAC,CAAA,CAAA;AAClB,EAAM,MAAA,QAAA,GAAWA,cAAM,CAAA,WAAA,CAAY,MAAM;AACvC,IAAW,UAAA,EAAA,CAAA;AACX,IAAA,IAAI,aAAe,EAAA,QAAA;AAAU,MAAA,aAAA,CAAc,QAAS,EAAA,CAAA;AAAA,GACnD,EAAA,CAAC,aAAe,EAAA,UAAU,CAAC,CAAA,CAAA;AAC9B,EAAM,MAAA,qBAAA,GAAwBA,cAAM,CAAA,OAAA,CAAQ,MAAM;AAChD,IAAO,OAAA;AAAA,MACL,SAAA;AAAA,MACA,IAAA;AAAA,KACF,CAAA;AAAA,GACC,EAAA,CAAC,SAAW,EAAA,IAAI,CAAC,CAAA,CAAA;AAEpB,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,MAAQ,EAAA;AACV,MAAA,IAAI,aAAe,EAAA,MAAA;AAAQ,QAAA,aAAA,CAAc,MAAO,EAAA,CAAA;AAChD,MAAW,UAAA,EAAA,CAAA;AAAA,KACb;AAAO,MAAU,OAAA,IAAA,CAAA;AAAA,GACnB,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAO,OAAA;AAAA,IACL,IAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,qBAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -0,0 +1,44 @@
1
+ import { useRef, useCallback } from 'react';
2
+
3
+ function useStyleState(initialStyle) {
4
+ const element = useRef(null);
5
+ const state = useRef(
6
+ typeof initialStyle === "object" ? initialStyle : {}
7
+ );
8
+ const applyStyles = useCallback(() => {
9
+ if (element.current) {
10
+ Object.entries(state.current).forEach(([name, value]) => {
11
+ if (Object.getOwnPropertyDescriptor(element.current.style, name)?.writable) {
12
+ element.current.style[name] = value;
13
+ }
14
+ });
15
+ }
16
+ }, []);
17
+ const hasInitializedState = useRef(typeof initialStyle !== "function");
18
+ return {
19
+ ref: useCallback(
20
+ (el) => {
21
+ element.current = el;
22
+ if (el) {
23
+ if (!hasInitializedState.current) {
24
+ hasInitializedState.current = true;
25
+ state.current = initialStyle(el);
26
+ }
27
+ applyStyles();
28
+ }
29
+ },
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ [applyStyles]
32
+ ),
33
+ setState: useCallback(
34
+ (newState) => {
35
+ state.current = typeof newState === "function" ? newState(state.current) : newState;
36
+ applyStyles();
37
+ },
38
+ [applyStyles]
39
+ )
40
+ };
41
+ }
42
+
43
+ export { useStyleState };
44
+ //# sourceMappingURL=useStyleState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStyleState.js","sources":["../../../../src/components/modals/hooks/useStyleState.ts"],"sourcesContent":["import { SetStateAction, useCallback, useRef } from 'react';\r\n\r\ntype InitialStyleAssigner = (el: HTMLElement) => Partial<CSSStyleDeclaration>;\r\ntype CSSState = Partial<CSSStyleDeclaration>;\r\n\r\nexport function useStyleState(initialStyle?: CSSState | InitialStyleAssigner) {\r\n const element = useRef<null | HTMLElement>(null);\r\n const state = useRef<CSSState>(\r\n typeof initialStyle === 'object' ? initialStyle : ({} as CSSState),\r\n );\r\n\r\n const applyStyles = useCallback(() => {\r\n if (element.current) {\r\n Object.entries(state.current).forEach(([name, value]) => {\r\n if (\r\n Object.getOwnPropertyDescriptor(element.current!.style, name)\r\n ?.writable\r\n ) {\r\n element.current!.style[name as 'width'] = value as any;\r\n }\r\n });\r\n }\r\n }, []);\r\n\r\n const hasInitializedState = useRef(typeof initialStyle !== 'function');\r\n return {\r\n ref: useCallback(\r\n (el: HTMLElement | null) => {\r\n element.current = el;\r\n if (el) {\r\n if (!hasInitializedState.current) {\r\n hasInitializedState.current = true;\r\n state.current = (initialStyle as InitialStyleAssigner)(el);\r\n }\r\n applyStyles();\r\n }\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [applyStyles],\r\n ),\r\n setState: useCallback(\r\n (newState: SetStateAction<CSSState>) => {\r\n state.current =\r\n typeof newState === 'function' ? newState(state.current) : newState;\r\n applyStyles();\r\n },\r\n [applyStyles],\r\n ),\r\n };\r\n}\r\n"],"names":[],"mappings":";;AAKO,SAAS,cAAc,YAAgD,EAAA;AAC5E,EAAM,MAAA,OAAA,GAAU,OAA2B,IAAI,CAAA,CAAA;AAC/C,EAAA,MAAM,KAAQ,GAAA,MAAA;AAAA,IACZ,OAAO,YAAA,KAAiB,QAAW,GAAA,YAAA,GAAgB,EAAC;AAAA,GACtD,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,YAAY,MAAM;AACpC,IAAA,IAAI,QAAQ,OAAS,EAAA;AACnB,MAAO,MAAA,CAAA,OAAA,CAAQ,MAAM,OAAO,CAAA,CAAE,QAAQ,CAAC,CAAC,IAAM,EAAA,KAAK,CAAM,KAAA;AACvD,QAAA,IACE,OAAO,wBAAyB,CAAA,OAAA,CAAQ,QAAS,KAAO,EAAA,IAAI,GACxD,QACJ,EAAA;AACA,UAAQ,OAAA,CAAA,OAAA,CAAS,KAAM,CAAA,IAAe,CAAI,GAAA,KAAA,CAAA;AAAA,SAC5C;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,MAAM,mBAAsB,GAAA,MAAA,CAAO,OAAO,YAAA,KAAiB,UAAU,CAAA,CAAA;AACrE,EAAO,OAAA;AAAA,IACL,GAAK,EAAA,WAAA;AAAA,MACH,CAAC,EAA2B,KAAA;AAC1B,QAAA,OAAA,CAAQ,OAAU,GAAA,EAAA,CAAA;AAClB,QAAA,IAAI,EAAI,EAAA;AACN,UAAI,IAAA,CAAC,oBAAoB,OAAS,EAAA;AAChC,YAAA,mBAAA,CAAoB,OAAU,GAAA,IAAA,CAAA;AAC9B,YAAM,KAAA,CAAA,OAAA,GAAW,aAAsC,EAAE,CAAA,CAAA;AAAA,WAC3D;AACA,UAAY,WAAA,EAAA,CAAA;AAAA,SACd;AAAA,OACF;AAAA;AAAA,MAEA,CAAC,WAAW,CAAA;AAAA,KACd;AAAA,IACA,QAAU,EAAA,WAAA;AAAA,MACR,CAAC,QAAuC,KAAA;AACtC,QAAA,KAAA,CAAM,UACJ,OAAO,QAAA,KAAa,aAAa,QAAS,CAAA,KAAA,CAAM,OAAO,CAAI,GAAA,QAAA,CAAA;AAC7D,QAAY,WAAA,EAAA,CAAA;AAAA,OACd;AAAA,MACA,CAAC,WAAW,CAAA;AAAA,KACd;AAAA,GACF,CAAA;AACF;;;;"}
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { IConfirm } from '../../dialogs/ConfirmModal.js';
3
+
4
+ declare const Confirm: ({ children, additionalButtons, additionalButtonsOnRight, cancelButtonText: cancelText, className, confirmButtonText: confirmText, confirmButtonVariant, contentRef, disabled, hideCancelButton, hideConfirmButton, isLoading, onCancel, onConfirm, variant, }: Omit<IConfirm, 'title'>) => React.JSX.Element;
5
+
6
+ export { Confirm };
7
+ //# sourceMappingURL=Confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Confirm.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ import { jsxs, jsx } from '@apia/theme/jsx-runtime';
2
+ import { Box, getVariant } from '@apia/theme';
3
+ import { getLabel } from '@apia/util';
4
+ import { useCallback } from 'react';
5
+ import { DialogButtonBar } from './DialogButtonBar.js';
6
+ import { SimpleButton } from '../../forms/buttons/SimpleButton.js';
7
+ import { useModalContext } from '../ModalContext.js';
8
+
9
+ const Confirm = ({
10
+ children,
11
+ additionalButtons,
12
+ additionalButtonsOnRight,
13
+ cancelButtonText: cancelText = getLabel("btnCan").text,
14
+ className,
15
+ confirmButtonText: confirmText = getLabel("btnCon").text,
16
+ confirmButtonVariant = "primary",
17
+ contentRef,
18
+ disabled,
19
+ hideCancelButton,
20
+ hideConfirmButton,
21
+ isLoading,
22
+ onCancel,
23
+ onConfirm,
24
+ variant
25
+ }) => {
26
+ const { descriptionId } = useModalContext();
27
+ return /* @__PURE__ */ jsxs(
28
+ Box,
29
+ {
30
+ ...getVariant(variant ?? "layout.common.modals.confirm"),
31
+ className: `${className ?? ""} confirm`,
32
+ children: [
33
+ /* @__PURE__ */ jsx(Box, { ref: contentRef, className: "confirm__content", id: descriptionId, children }),
34
+ /* @__PURE__ */ jsxs(DialogButtonBar, { className: "confirm__buttonBar", children: [
35
+ /* @__PURE__ */ jsx(
36
+ Box,
37
+ {
38
+ className: "confirm__customButtons",
39
+ onClick: useCallback(
40
+ (ev) => {
41
+ if (ev.target.closest("button"))
42
+ onCancel?.();
43
+ },
44
+ [onCancel]
45
+ ),
46
+ children: additionalButtons
47
+ }
48
+ ),
49
+ /* @__PURE__ */ jsxs(Box, { className: "confirm__defaultButtons", children: [
50
+ /* @__PURE__ */ jsx(
51
+ Box,
52
+ {
53
+ className: "confirm__customButtonsOnRight",
54
+ onClick: useCallback(
55
+ (ev) => {
56
+ if (ev.target.closest("button"))
57
+ onCancel?.();
58
+ },
59
+ [onCancel]
60
+ ),
61
+ children: additionalButtonsOnRight
62
+ }
63
+ ),
64
+ !hideConfirmButton && /* @__PURE__ */ jsx(
65
+ SimpleButton,
66
+ {
67
+ onClick: onConfirm,
68
+ title: confirmText,
69
+ variant: confirmButtonVariant,
70
+ disabled: isLoading ?? disabled,
71
+ isLoading,
72
+ className: "confirm__confirmButton",
73
+ type: "submit",
74
+ children: confirmText
75
+ }
76
+ ),
77
+ onCancel && !hideCancelButton && /* @__PURE__ */ jsx(
78
+ SimpleButton,
79
+ {
80
+ onClick: onCancel,
81
+ title: cancelText,
82
+ ...getVariant("secondary"),
83
+ disabled: isLoading,
84
+ className: "confirm__cancelButton",
85
+ children: cancelText
86
+ }
87
+ )
88
+ ] })
89
+ ] })
90
+ ]
91
+ }
92
+ );
93
+ };
94
+
95
+ export { Confirm };
96
+ //# sourceMappingURL=Confirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Confirm.js","sources":["../../../../src/components/modals/layout/Confirm.tsx"],"sourcesContent":["import { Box, getVariant } from '@apia/theme';\nimport { IConfirm } from '../../dialogs';\nimport { getLabel } from '@apia/util';\nimport { MouseEvent, useCallback } from 'react';\nimport { DialogButtonBar } from './DialogButtonBar';\nimport { SimpleButton } from '../../forms/buttons/SimpleButton';\nimport { useModalContext } from '../ModalContext';\n\nexport const Confirm = ({\n children,\n additionalButtons,\n additionalButtonsOnRight,\n cancelButtonText: cancelText = getLabel('btnCan').text,\n className,\n confirmButtonText: confirmText = getLabel('btnCon').text,\n confirmButtonVariant = 'primary',\n contentRef,\n disabled,\n hideCancelButton,\n hideConfirmButton,\n isLoading,\n onCancel,\n onConfirm,\n variant,\n}: Omit<IConfirm, 'title'>) => {\n const { descriptionId } = useModalContext();\n\n return (\n <Box\n {...getVariant(variant ?? 'layout.common.modals.confirm')}\n className={`${className ?? ''} confirm`}\n >\n <Box ref={contentRef} className=\"confirm__content\" id={descriptionId}>\n {children}\n </Box>\n <DialogButtonBar className=\"confirm__buttonBar\">\n <Box\n className=\"confirm__customButtons\"\n onClick={useCallback(\n (ev: MouseEvent) => {\n if ((ev.target as HTMLElement).closest('button')) onCancel?.();\n },\n [onCancel],\n )}\n >\n {additionalButtons}\n </Box>\n\n <Box className=\"confirm__defaultButtons\">\n <Box\n className=\"confirm__customButtonsOnRight\"\n onClick={useCallback(\n (ev: MouseEvent) => {\n if ((ev.target as HTMLElement).closest('button')) onCancel?.();\n },\n [onCancel],\n )}\n >\n {additionalButtonsOnRight}\n </Box>\n {!hideConfirmButton && (\n <SimpleButton\n onClick={onConfirm}\n title={confirmText}\n variant={confirmButtonVariant}\n disabled={isLoading ?? disabled}\n isLoading={isLoading}\n className=\"confirm__confirmButton\"\n type=\"submit\"\n >\n {confirmText}\n </SimpleButton>\n )}\n {onCancel && !hideCancelButton && (\n <SimpleButton\n onClick={onCancel}\n title={cancelText}\n {...getVariant('secondary')}\n disabled={isLoading}\n className=\"confirm__cancelButton\"\n >\n {cancelText}\n </SimpleButton>\n )}\n </Box>\n </DialogButtonBar>\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+
3
+ interface IDialogButtonBar {
4
+ children: React.ReactNode;
5
+ className?: string;
6
+ }
7
+ declare const DialogButtonBar: React.FC<IDialogButtonBar>;
8
+
9
+ export { DialogButtonBar, type IDialogButtonBar };
10
+ //# sourceMappingURL=DialogButtonBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogButtonBar.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import { Box, getVariant } from '@apia/theme';
3
+
4
+ const DialogButtonBar = ({
5
+ children,
6
+ className
7
+ }) => {
8
+ return /* @__PURE__ */ jsx(
9
+ Box,
10
+ {
11
+ className: `${className ?? ""} buttonsBar`,
12
+ ...getVariant("layout.common.modals.buttonsBar"),
13
+ children
14
+ }
15
+ );
16
+ };
17
+
18
+ export { DialogButtonBar };
19
+ //# sourceMappingURL=DialogButtonBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogButtonBar.js","sources":["../../../../src/components/modals/layout/DialogButtonBar.tsx"],"sourcesContent":["import { getVariant } from '@apia/theme';\nimport * as React from 'react';\nimport { Box } from '@apia/theme';\n\nexport interface IDialogButtonBar {\n children: React.ReactNode;\n className?: string;\n}\n\nexport const DialogButtonBar: React.FC<IDialogButtonBar> = ({\n children,\n className,\n}) => {\n return (\n <Box\n className={`${className ?? ''} buttonsBar`}\n {...getVariant('layout.common.modals.buttonsBar')}\n >\n {children}\n </Box>\n );\n};\n"],"names":[],"mappings":";;;AASO,MAAM,kBAA8C,CAAC;AAAA,EAC1D,QAAA;AAAA,EACA,SAAA;AACF,CAAM,KAAA;AACJ,EACE,uBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAG,EAAA,SAAA,IAAa,EAAE,CAAA,WAAA,CAAA;AAAA,MAC5B,GAAG,WAAW,iCAAiC,CAAA;AAAA,MAE/C,QAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ;;;;"}
@@ -0,0 +1,18 @@
1
+ import React__default from 'react';
2
+
3
+ interface IDialogHeader {
4
+ className?: string;
5
+ close: () => void;
6
+ hideCloseButton?: boolean;
7
+ id?: string;
8
+ NavBar?: React__default.ReactNode;
9
+ title?: string;
10
+ }
11
+ declare global {
12
+ interface Window {
13
+ BTN_CLOSE: string;
14
+ }
15
+ }
16
+
17
+ export type { IDialogHeader };
18
+ //# sourceMappingURL=DialogHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogHeader.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,117 @@
1
+ import { jsx, jsxs } from '@apia/theme/jsx-runtime';
2
+ import { useBreakpointIndex, Close, Box, responsive, spacing, Heading } from '@apia/theme';
3
+ import React__default from 'react';
4
+
5
+ const DialogHeader = ({
6
+ className,
7
+ close,
8
+ hideCloseButton,
9
+ id,
10
+ NavBar,
11
+ title = ""
12
+ }) => {
13
+ const breakpointIndex = useBreakpointIndex();
14
+ const Title = /* @__PURE__ */ jsx(
15
+ Heading,
16
+ {
17
+ as: "h3",
18
+ sx: {
19
+ wordBreak: "break-word",
20
+ m: "0",
21
+ flex: "2 0",
22
+ color: "title"
23
+ },
24
+ className: "modal__title",
25
+ id: id ? `modal-${id}-title` : "",
26
+ children: title
27
+ }
28
+ );
29
+ const CloseButton = React__default.useMemo(
30
+ () => hideCloseButton ? null : /* @__PURE__ */ jsx(
31
+ Close,
32
+ {
33
+ role: "button",
34
+ type: "button",
35
+ "aria-label": window.BTN_CLOSE,
36
+ onClick: close,
37
+ title: window.BTN_CLOSE,
38
+ sx: {
39
+ mr: "unset"
40
+ },
41
+ className: "modal__closeButton"
42
+ }
43
+ ),
44
+ [close, hideCloseButton]
45
+ );
46
+ const NavBarElement = NavBar && /* @__PURE__ */ jsx(
47
+ Box,
48
+ {
49
+ sx: {
50
+ display: "flex",
51
+ gap: responsive({ 0: 2, 1: "3px", 2: 2 }),
52
+ justifyContent: "end",
53
+ flexDirection: responsive({ 0: "row", 1: "column", 3: "row" }),
54
+ width: responsive({ 0: "auto", 1: "100%", 2: "auto" }),
55
+ flexBasis: "max-content",
56
+ height: "100%"
57
+ },
58
+ className: "modal__headerBar",
59
+ children: NavBar
60
+ }
61
+ );
62
+ return breakpointIndex > 3 ? /* @__PURE__ */ jsxs(
63
+ Box,
64
+ {
65
+ className: `${className} modal__header`,
66
+ sx: {
67
+ display: "flex",
68
+ flexDirection: "row",
69
+ alignItems: "start",
70
+ mb: spacing(0),
71
+ justifyContent: "space-between",
72
+ width: "100%",
73
+ gap: spacing(2),
74
+ flexWrap: "nowrap"
75
+ },
76
+ children: [
77
+ Title,
78
+ NavBarElement,
79
+ CloseButton
80
+ ]
81
+ }
82
+ ) : /* @__PURE__ */ jsxs(
83
+ Box,
84
+ {
85
+ className: `${className} modal__header`,
86
+ sx: {
87
+ display: "flex",
88
+ flexDirection: "column",
89
+ alignItems: responsive({ 0: "center", 2: "end" }),
90
+ mb: spacing(0),
91
+ justifyContent: "space-between",
92
+ width: "100%",
93
+ gap: spacing(2)
94
+ },
95
+ children: [
96
+ /* @__PURE__ */ jsxs(
97
+ Box,
98
+ {
99
+ sx: {
100
+ display: "flex",
101
+ width: "100%"
102
+ },
103
+ children: [
104
+ Title,
105
+ CloseButton
106
+ ]
107
+ }
108
+ ),
109
+ NavBarElement
110
+ ]
111
+ }
112
+ );
113
+ };
114
+ var DialogHeader$1 = DialogHeader;
115
+
116
+ export { DialogHeader$1 as default };
117
+ //# sourceMappingURL=DialogHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogHeader.js","sources":["../../../../src/components/modals/layout/DialogHeader.tsx"],"sourcesContent":["import { Box, Close, Heading, useBreakpointIndex } from '@apia/theme';\nimport React, { FC } from 'react';\nimport { responsive, spacing } from '@apia/theme';\n\nexport interface IDialogHeader {\n className?: string;\n close: () => void;\n hideCloseButton?: boolean;\n id?: string;\n NavBar?: React.ReactNode;\n title?: string;\n}\n\ndeclare global {\n interface Window {\n BTN_CLOSE: string;\n }\n}\n\nconst DialogHeader: FC<IDialogHeader> = ({\n className,\n close,\n hideCloseButton,\n id,\n NavBar,\n title = '',\n}) => {\n const breakpointIndex = useBreakpointIndex();\n\n const Title = (\n <Heading\n as=\"h3\"\n sx={{\n wordBreak: 'break-word',\n m: '0',\n flex: '2 0',\n color: 'title',\n }}\n className=\"modal__title\"\n id={id ? `modal-${id}-title` : ''}\n >\n {title}\n </Heading>\n );\n\n const CloseButton = React.useMemo(\n () =>\n hideCloseButton ? null : (\n <Close\n role=\"button\"\n type=\"button\"\n aria-label={window.BTN_CLOSE}\n onClick={close}\n title={window.BTN_CLOSE}\n sx={{\n mr: 'unset',\n }}\n className=\"modal__closeButton\"\n />\n ),\n [close, hideCloseButton],\n );\n\n const NavBarElement = NavBar && (\n <Box\n sx={{\n display: 'flex',\n gap: responsive({ 0: 2, 1: '3px', 2: 2 }),\n justifyContent: 'end',\n flexDirection: responsive({ 0: 'row', 1: 'column', 3: 'row' }),\n width: responsive({ 0: 'auto', 1: '100%', 2: 'auto' }),\n flexBasis: 'max-content',\n height: '100%',\n }}\n className=\"modal__headerBar\"\n >\n {NavBar}\n </Box>\n );\n\n return breakpointIndex > 3 ? (\n <Box\n className={`${className} modal__header`}\n sx={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'start',\n mb: spacing(0),\n justifyContent: 'space-between',\n width: '100%',\n gap: spacing(2),\n flexWrap: 'nowrap',\n }}\n >\n {Title}\n {NavBarElement}\n {CloseButton}\n </Box>\n ) : (\n <Box\n className={`${className} modal__header`}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: responsive({ 0: 'center', 2: 'end' }),\n mb: spacing(0),\n justifyContent: 'space-between',\n width: '100%',\n gap: spacing(2),\n }}\n >\n <Box\n sx={{\n display: 'flex',\n width: '100%',\n }}\n >\n {Title}\n {CloseButton}\n </Box>\n {NavBarElement}\n </Box>\n );\n};\n\nexport default DialogHeader;\n"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ declare const AutoEllipsis: ({ children, findParent, overrideStyles, }: {
5
+ children: ReactNode;
6
+ /**
7
+ * Si se pasa el método findParent, será invocado con el nodo de AutoEllipsis
8
+ * para dar control sobre cuál es el elemento al que se le clonarán los
9
+ * estilos.
10
+ */
11
+ findParent?: ((currentElement: HTMLElement) => HTMLElement) | undefined;
12
+ /**
13
+ * Si se pasa overrideStyles, será invocado con el nodo actual de
14
+ * AutoEllipsis para tomar decisiones acerca de cuáles estilos serán
15
+ * aplicados.
16
+ */
17
+ overrideStyles?: ((currentElement: HTMLElement) => Partial<CSSStyleDeclaration>) | undefined;
18
+ }) => React.JSX.Element;
19
+
20
+ export { AutoEllipsis };
21
+ //# sourceMappingURL=AutoEllipsis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoEllipsis.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import { isChild } from '@apia/util';
3
+ import { useRef, useCallback, useEffect } from 'react';
4
+ import { Box } from '@apia/theme';
5
+
6
+ const AutoEllipsis = ({
7
+ children,
8
+ findParent,
9
+ overrideStyles
10
+ }) => {
11
+ const unsuscribe = useRef(() => {
12
+ });
13
+ const clone = useRef(null);
14
+ const timeout = useRef(0);
15
+ const ref = useCallback(
16
+ (el) => {
17
+ if (!el)
18
+ return;
19
+ unsuscribe.current();
20
+ function showBox() {
21
+ clone.current = el.cloneNode(true);
22
+ Object.entries(window.getComputedStyle(findParent?.(el) ?? el)).forEach(
23
+ ([name, value]) => {
24
+ if (name.match(/webkit/))
25
+ return;
26
+ try {
27
+ clone.current.style[name] = value;
28
+ } catch (e) {
29
+ }
30
+ }
31
+ );
32
+ const bound = el.getBoundingClientRect();
33
+ clone.current.style.position = "fixed";
34
+ clone.current.style.left = `${bound.left - 1}px`;
35
+ clone.current.style.top = `${bound.top - 1}px`;
36
+ clone.current.style.width = `${bound.width + 8}px`;
37
+ clone.current.style.whiteSpace = "break-spaces";
38
+ clone.current.style.overflow = "visible";
39
+ clone.current.style.textOverflow = "unset";
40
+ clone.current.style.background = "var(--theme-ui-colors-palette-background-paper)";
41
+ clone.current.style.color = "var(--theme-ui-colors-palette-text-primary)";
42
+ clone.current.style.border = "1px solid";
43
+ clone.current.style.borderColor = "var(--theme-ui-colors-palette-border-field)";
44
+ clone.current.style.zIndex = "1000000";
45
+ clone.current.style.height = "auto";
46
+ clone.current.style.fill = "var(--theme-ui-colors-palette-text-primary)";
47
+ clone.current.style.pointerEvents = "none";
48
+ const overridenStyles = overrideStyles?.(el);
49
+ if (overridenStyles) {
50
+ Object.entries(overridenStyles).forEach(([name, value]) => {
51
+ if (name.match(/webkit/))
52
+ return;
53
+ try {
54
+ clone.current.style[name] = value;
55
+ } catch (e) {
56
+ }
57
+ });
58
+ }
59
+ clone.current.addEventListener("mouseleave", (ev) => {
60
+ if (isChild(
61
+ ev.relatedTarget,
62
+ (current) => current === el
63
+ ))
64
+ return;
65
+ clone.current?.remove();
66
+ });
67
+ function close() {
68
+ clone.current?.remove();
69
+ document.removeEventListener("scroll", close);
70
+ }
71
+ document.addEventListener("scroll", close);
72
+ document.body.append(clone.current);
73
+ const cloneBounding = clone.current.getBoundingClientRect();
74
+ const difX = Math.abs(cloneBounding.width - bound.width);
75
+ const difY = Math.abs(cloneBounding.height - bound.height);
76
+ if (difX < 50 && difY < 10) {
77
+ clone.current.remove();
78
+ }
79
+ }
80
+ function hideBox(ev) {
81
+ if (isChild(
82
+ ev.relatedTarget,
83
+ (current) => current === clone.current
84
+ ))
85
+ return;
86
+ clone.current?.remove();
87
+ }
88
+ function handleMouseEnter() {
89
+ timeout.current = setTimeout(() => {
90
+ showBox();
91
+ }, 500);
92
+ }
93
+ function handleMouseLeave(ev) {
94
+ clearTimeout(timeout.current);
95
+ hideBox(ev);
96
+ }
97
+ el.addEventListener("mouseenter", handleMouseEnter);
98
+ el.addEventListener("mouseleave", handleMouseLeave);
99
+ unsuscribe.current = () => {
100
+ el.removeEventListener("mouseenter", handleMouseEnter);
101
+ el.removeEventListener("mouseleave", handleMouseLeave);
102
+ clearTimeout(timeout.current);
103
+ };
104
+ },
105
+ [findParent, overrideStyles]
106
+ );
107
+ useEffect(() => {
108
+ return () => {
109
+ clone.current?.remove();
110
+ };
111
+ }, []);
112
+ return /* @__PURE__ */ jsx(
113
+ Box,
114
+ {
115
+ ref,
116
+ sx: {
117
+ overflow: "hidden",
118
+ textOverflow: "ellipsis",
119
+ whiteSpace: "nowrap"
120
+ },
121
+ className: "autoellipsis__container",
122
+ children
123
+ }
124
+ );
125
+ };
126
+
127
+ export { AutoEllipsis };
128
+ //# sourceMappingURL=AutoEllipsis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoEllipsis.js","sources":["../../../src/components/responsive/AutoEllipsis.tsx"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport { isChild } from '@apia/util';\nimport { useEffect, ReactNode, useRef, useCallback } from 'react';\nimport { Box } from '@apia/theme';\n\nexport const AutoEllipsis = ({\n children,\n findParent,\n overrideStyles,\n}: {\n children: ReactNode;\n /**\n * Si se pasa el método findParent, será invocado con el nodo de AutoEllipsis\n * para dar control sobre cuál es el elemento al que se le clonarán los\n * estilos.\n */\n findParent?: (currentElement: HTMLElement) => HTMLElement;\n /**\n * Si se pasa overrideStyles, será invocado con el nodo actual de\n * AutoEllipsis para tomar decisiones acerca de cuáles estilos serán\n * aplicados.\n */\n overrideStyles?: (\n currentElement: HTMLElement,\n ) => Partial<CSSStyleDeclaration>;\n}) => {\n const unsuscribe = useRef(() => {});\n const clone = useRef<HTMLElement | null>(null);\n const timeout = useRef(0);\n const ref = useCallback(\n (el: HTMLElement) => {\n if (!el) return;\n\n unsuscribe.current();\n\n function showBox() {\n clone.current = el.cloneNode(true) as HTMLElement;\n Object.entries(window.getComputedStyle(findParent?.(el) ?? el)).forEach(\n ([name, value]) => {\n if (name.match(/webkit/)) return;\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (clone.current as HTMLElement).style[name as any] = value;\n } catch (e) {}\n },\n );\n\n const bound = el.getBoundingClientRect();\n clone.current.style.position = 'fixed';\n clone.current.style.left = `${bound.left - 1}px`;\n clone.current.style.top = `${bound.top - 1}px`;\n clone.current.style.width = `${bound.width + 8}px`;\n clone.current.style.whiteSpace = 'break-spaces';\n clone.current.style.overflow = 'visible';\n clone.current.style.textOverflow = 'unset';\n clone.current.style.background =\n 'var(--theme-ui-colors-palette-background-paper)';\n clone.current.style.color =\n 'var(--theme-ui-colors-palette-text-primary)';\n clone.current.style.border = '1px solid';\n clone.current.style.borderColor =\n 'var(--theme-ui-colors-palette-border-field)';\n clone.current.style.zIndex = '1000000';\n clone.current.style.height = 'auto';\n clone.current.style.fill =\n 'var(--theme-ui-colors-palette-text-primary)';\n clone.current.style.pointerEvents = 'none';\n\n const overridenStyles = overrideStyles?.(el);\n\n if (overridenStyles) {\n Object.entries(overridenStyles).forEach(([name, value]) => {\n if (name.match(/webkit/)) return;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (clone.current as HTMLElement).style[name as any] =\n value as string;\n } catch (e) {}\n });\n }\n\n clone.current.addEventListener('mouseleave', (ev) => {\n if (\n isChild(\n ev.relatedTarget as HTMLElement,\n (current) => current === el,\n )\n )\n return;\n\n clone.current?.remove();\n });\n\n function close() {\n clone.current?.remove();\n document.removeEventListener('scroll', close);\n }\n document.addEventListener('scroll', close);\n document.body.append(clone.current);\n\n const cloneBounding = clone.current.getBoundingClientRect();\n\n const difX = Math.abs(cloneBounding.width - bound.width);\n const difY = Math.abs(cloneBounding.height - bound.height);\n\n if (difX < 50 && difY < 10) {\n clone.current.remove();\n }\n }\n\n function hideBox(ev: MouseEvent) {\n if (\n isChild(\n ev.relatedTarget as HTMLElement,\n (current) => current === clone.current,\n )\n )\n return;\n\n clone.current?.remove();\n }\n\n function handleMouseEnter() {\n timeout.current = setTimeout(() => {\n showBox();\n }, 500) as unknown as number;\n }\n function handleMouseLeave(ev: MouseEvent) {\n clearTimeout(timeout.current);\n hideBox(ev);\n }\n\n el.addEventListener('mouseenter', handleMouseEnter);\n el.addEventListener('mouseleave', handleMouseLeave);\n\n unsuscribe.current = () => {\n el.removeEventListener('mouseenter', handleMouseEnter);\n el.removeEventListener('mouseleave', handleMouseLeave);\n clearTimeout(timeout.current);\n };\n },\n [findParent, overrideStyles],\n );\n\n useEffect(() => {\n return () => {\n clone.current?.remove();\n };\n }, []);\n\n return (\n <Box\n ref={ref}\n sx={{\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n className=\"autoellipsis__container\"\n >\n {children}\n </Box>\n );\n};\n"],"names":[],"mappings":";;;;;AAKO,MAAM,eAAe,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AACF,CAgBM,KAAA;AACJ,EAAM,MAAA,UAAA,GAAa,OAAO,MAAM;AAAA,GAAE,CAAA,CAAA;AAClC,EAAM,MAAA,KAAA,GAAQ,OAA2B,IAAI,CAAA,CAAA;AAC7C,EAAM,MAAA,OAAA,GAAU,OAAO,CAAC,CAAA,CAAA;AACxB,EAAA,MAAM,GAAM,GAAA,WAAA;AAAA,IACV,CAAC,EAAoB,KAAA;AACnB,MAAA,IAAI,CAAC,EAAA;AAAI,QAAA,OAAA;AAET,MAAA,UAAA,CAAW,OAAQ,EAAA,CAAA;AAEnB,MAAA,SAAS,OAAU,GAAA;AACjB,QAAM,KAAA,CAAA,OAAA,GAAU,EAAG,CAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AACjC,QAAO,MAAA,CAAA,OAAA,CAAQ,OAAO,gBAAiB,CAAA,UAAA,GAAa,EAAE,CAAK,IAAA,EAAE,CAAC,CAAE,CAAA,OAAA;AAAA,UAC9D,CAAC,CAAC,IAAM,EAAA,KAAK,CAAM,KAAA;AACjB,YAAI,IAAA,IAAA,CAAK,MAAM,QAAQ,CAAA;AAAG,cAAA,OAAA;AAC1B,YAAI,IAAA;AAEF,cAAC,KAAM,CAAA,OAAA,CAAwB,KAAM,CAAA,IAAW,CAAI,GAAA,KAAA,CAAA;AAAA,qBAC7C,CAAG,EAAA;AAAA,aAAC;AAAA,WACf;AAAA,SACF,CAAA;AAEA,QAAM,MAAA,KAAA,GAAQ,GAAG,qBAAsB,EAAA,CAAA;AACvC,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,QAAW,GAAA,OAAA,CAAA;AAC/B,QAAA,KAAA,CAAM,QAAQ,KAAM,CAAA,IAAA,GAAO,CAAG,EAAA,KAAA,CAAM,OAAO,CAAC,CAAA,EAAA,CAAA,CAAA;AAC5C,QAAA,KAAA,CAAM,QAAQ,KAAM,CAAA,GAAA,GAAM,CAAG,EAAA,KAAA,CAAM,MAAM,CAAC,CAAA,EAAA,CAAA,CAAA;AAC1C,QAAA,KAAA,CAAM,QAAQ,KAAM,CAAA,KAAA,GAAQ,CAAG,EAAA,KAAA,CAAM,QAAQ,CAAC,CAAA,EAAA,CAAA,CAAA;AAC9C,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,UAAa,GAAA,cAAA,CAAA;AACjC,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,QAAW,GAAA,SAAA,CAAA;AAC/B,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,YAAe,GAAA,OAAA,CAAA;AACnC,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,UAClB,GAAA,iDAAA,CAAA;AACF,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,KAClB,GAAA,6CAAA,CAAA;AACF,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,MAAS,GAAA,WAAA,CAAA;AAC7B,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,WAClB,GAAA,6CAAA,CAAA;AACF,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,MAAS,GAAA,SAAA,CAAA;AAC7B,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,MAAS,GAAA,MAAA,CAAA;AAC7B,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,IAClB,GAAA,6CAAA,CAAA;AACF,QAAM,KAAA,CAAA,OAAA,CAAQ,MAAM,aAAgB,GAAA,MAAA,CAAA;AAEpC,QAAM,MAAA,eAAA,GAAkB,iBAAiB,EAAE,CAAA,CAAA;AAE3C,QAAA,IAAI,eAAiB,EAAA;AACnB,UAAO,MAAA,CAAA,OAAA,CAAQ,eAAe,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,IAAA,EAAM,KAAK,CAAM,KAAA;AACzD,YAAI,IAAA,IAAA,CAAK,MAAM,QAAQ,CAAA;AAAG,cAAA,OAAA;AAE1B,YAAI,IAAA;AAEF,cAAC,KAAM,CAAA,OAAA,CAAwB,KAAM,CAAA,IAAW,CAC9C,GAAA,KAAA,CAAA;AAAA,qBACK,CAAG,EAAA;AAAA,aAAC;AAAA,WACd,CAAA,CAAA;AAAA,SACH;AAEA,QAAA,KAAA,CAAM,OAAQ,CAAA,gBAAA,CAAiB,YAAc,EAAA,CAAC,EAAO,KAAA;AACnD,UACE,IAAA,OAAA;AAAA,YACE,EAAG,CAAA,aAAA;AAAA,YACH,CAAC,YAAY,OAAY,KAAA,EAAA;AAAA,WAC3B;AAEA,YAAA,OAAA;AAEF,UAAA,KAAA,CAAM,SAAS,MAAO,EAAA,CAAA;AAAA,SACvB,CAAA,CAAA;AAED,QAAA,SAAS,KAAQ,GAAA;AACf,UAAA,KAAA,CAAM,SAAS,MAAO,EAAA,CAAA;AACtB,UAAS,QAAA,CAAA,mBAAA,CAAoB,UAAU,KAAK,CAAA,CAAA;AAAA,SAC9C;AACA,QAAS,QAAA,CAAA,gBAAA,CAAiB,UAAU,KAAK,CAAA,CAAA;AACzC,QAAS,QAAA,CAAA,IAAA,CAAK,MAAO,CAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAElC,QAAM,MAAA,aAAA,GAAgB,KAAM,CAAA,OAAA,CAAQ,qBAAsB,EAAA,CAAA;AAE1D,QAAA,MAAM,OAAO,IAAK,CAAA,GAAA,CAAI,aAAc,CAAA,KAAA,GAAQ,MAAM,KAAK,CAAA,CAAA;AACvD,QAAA,MAAM,OAAO,IAAK,CAAA,GAAA,CAAI,aAAc,CAAA,MAAA,GAAS,MAAM,MAAM,CAAA,CAAA;AAEzD,QAAI,IAAA,IAAA,GAAO,EAAM,IAAA,IAAA,GAAO,EAAI,EAAA;AAC1B,UAAA,KAAA,CAAM,QAAQ,MAAO,EAAA,CAAA;AAAA,SACvB;AAAA,OACF;AAEA,MAAA,SAAS,QAAQ,EAAgB,EAAA;AAC/B,QACE,IAAA,OAAA;AAAA,UACE,EAAG,CAAA,aAAA;AAAA,UACH,CAAC,OAAY,KAAA,OAAA,KAAY,KAAM,CAAA,OAAA;AAAA,SACjC;AAEA,UAAA,OAAA;AAEF,QAAA,KAAA,CAAM,SAAS,MAAO,EAAA,CAAA;AAAA,OACxB;AAEA,MAAA,SAAS,gBAAmB,GAAA;AAC1B,QAAQ,OAAA,CAAA,OAAA,GAAU,WAAW,MAAM;AACjC,UAAQ,OAAA,EAAA,CAAA;AAAA,WACP,GAAG,CAAA,CAAA;AAAA,OACR;AACA,MAAA,SAAS,iBAAiB,EAAgB,EAAA;AACxC,QAAA,YAAA,CAAa,QAAQ,OAAO,CAAA,CAAA;AAC5B,QAAA,OAAA,CAAQ,EAAE,CAAA,CAAA;AAAA,OACZ;AAEA,MAAG,EAAA,CAAA,gBAAA,CAAiB,cAAc,gBAAgB,CAAA,CAAA;AAClD,MAAG,EAAA,CAAA,gBAAA,CAAiB,cAAc,gBAAgB,CAAA,CAAA;AAElD,MAAA,UAAA,CAAW,UAAU,MAAM;AACzB,QAAG,EAAA,CAAA,mBAAA,CAAoB,cAAc,gBAAgB,CAAA,CAAA;AACrD,QAAG,EAAA,CAAA,mBAAA,CAAoB,cAAc,gBAAgB,CAAA,CAAA;AACrD,QAAA,YAAA,CAAa,QAAQ,OAAO,CAAA,CAAA;AAAA,OAC9B,CAAA;AAAA,KACF;AAAA,IACA,CAAC,YAAY,cAAc,CAAA;AAAA,GAC7B,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAO,MAAM;AACX,MAAA,KAAA,CAAM,SAAS,MAAO,EAAA,CAAA;AAAA,KACxB,CAAA;AAAA,GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EACE,uBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,QAAA;AAAA,QACV,YAAc,EAAA,UAAA;AAAA,QACd,UAAY,EAAA,QAAA;AAAA,OACd;AAAA,MACA,SAAU,EAAA,yBAAA;AAAA,MAET,QAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ;;;;"}