@apia/components 2.0.9 → 2.0.11

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 (398) 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 +108 -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 +19 -0
  106. package/dist/components/Toolbar/index.d.ts.map +1 -0
  107. package/dist/components/Toolbar/index.js +23 -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 +39 -0
  112. package/dist/components/Toolbar/types.d.ts.map +1 -0
  113. package/dist/components/accordion/Accordion.d.ts +21 -0
  114. package/dist/components/accordion/Accordion.d.ts.map +1 -0
  115. package/dist/components/accordion/Accordion.js +66 -0
  116. package/dist/components/accordion/Accordion.js.map +1 -0
  117. package/dist/components/accordion/AccordionItem.d.ts +20 -0
  118. package/dist/components/accordion/AccordionItem.d.ts.map +1 -0
  119. package/dist/components/accordion/AccordionItem.js +26 -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 +82 -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 +77 -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 +126 -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 +178 -0
  246. package/dist/components/modals/Modal.d.ts.map +1 -0
  247. package/dist/components/modals/Modal.js +19 -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 +70 -0
  256. package/dist/components/modals/Overlay.js.map +1 -0
  257. package/dist/components/modals/StaticModal.js +203 -0
  258. package/dist/components/modals/StaticModal.js.map +1 -0
  259. package/dist/components/modals/WindowModal.js +229 -0
  260. package/dist/components/modals/WindowModal.js.map +1 -0
  261. package/dist/components/modals/hooks/useEscapeKey.js +36 -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 -1658
  302. package/dist/index.js +58 -7198
  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 +89 -0
  311. package/dist/objects/ApiaUtil/index.js.map +1 -0
  312. package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.d.ts +23 -0
  313. package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.d.ts.map +1 -0
  314. package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.js +108 -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 +38 -0
  321. package/dist/objects/ApiaUtil/modals/OpenModal.d.ts.map +1 -0
  322. package/dist/objects/ApiaUtil/modals/OpenModal.js +37 -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 +8 -8
@@ -0,0 +1,22 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import { Box } from '@apia/theme';
3
+ import { Icon } from '@apia/icons';
4
+
5
+ const Checkbox = (props) => {
6
+ return /* @__PURE__ */ jsx(
7
+ Box,
8
+ {
9
+ className: "accordion__item__button__check",
10
+ onClick: (ev) => {
11
+ ev.stopPropagation();
12
+ ev.preventDefault();
13
+ if (!props.disabled)
14
+ props.onChange?.(!props.checked);
15
+ },
16
+ children: props.checked && /* @__PURE__ */ jsx(Icon, { title: "", name: "Check" })
17
+ }
18
+ );
19
+ };
20
+
21
+ export { Checkbox };
22
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../../src/components/accordion/defaultElements/Checkbox.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\r\nimport { Icon } from '@apia/icons';\r\n\r\nexport interface ICheckbox {\r\n checked: boolean;\r\n disabled?: boolean;\r\n onChange: (checked: boolean) => unknown;\r\n}\r\n\r\nexport const Checkbox = (props: ICheckbox) => {\r\n return (\r\n <Box\r\n className=\"accordion__item__button__check\"\r\n onClick={(ev) => {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n if (!props.disabled) props.onChange?.(!props.checked);\r\n }}\r\n >\r\n {props.checked && <Icon title=\"\" name=\"Check\" />}\r\n </Box>\r\n );\r\n};\r\n"],"names":[],"mappings":";;;;AASa,MAAA,QAAA,GAAW,CAAC,KAAqB,KAAA;AAC5C,EACE,uBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAU,EAAA,gCAAA;AAAA,MACV,OAAA,EAAS,CAAC,EAAO,KAAA;AACf,QAAA,EAAA,CAAG,eAAgB,EAAA,CAAA;AACnB,QAAA,EAAA,CAAG,cAAe,EAAA,CAAA;AAClB,QAAA,IAAI,CAAC,KAAM,CAAA,QAAA;AAAU,UAAM,KAAA,CAAA,QAAA,GAAW,CAAC,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,OACtD;AAAA,MAEC,gBAAM,OAAW,oBAAA,GAAA,CAAC,QAAK,KAAM,EAAA,EAAA,EAAG,MAAK,OAAQ,EAAA,CAAA;AAAA,KAAA;AAAA,GAChD,CAAA;AAEJ;;;;"}
@@ -0,0 +1,40 @@
1
+ import * as React from 'react';
2
+ import { MouseEvent, KeyboardEvent, ReactNode } from 'react';
3
+ import { TIconName } from '@apia/icons';
4
+ import { ISimpleButton } from '../../forms/buttons/SimpleButton.js';
5
+ import '../../forms/DateInput.js';
6
+ import '../../forms/NumberInput.js';
7
+
8
+ interface IAccordionItemButton {
9
+ ariaLabel: string;
10
+ /**
11
+ * Si checked !== undefined => se mostrará un checkbox.
12
+ */
13
+ checked?: boolean;
14
+ /**
15
+ * Solamente se utiliza en conjunto con el checkbox y permite evitar que el
16
+ * usuario pueda marcar o desmarcar el checkbox.
17
+ */
18
+ className?: string;
19
+ disableSelection?: boolean;
20
+ domButtonProps?: ISimpleButton;
21
+ label: string;
22
+ /**
23
+ * Evento que se dispara cuando el usuario hace click en el checkbox o
24
+ * presiona espacio sobre el botón del acordeón.
25
+ */
26
+ onChange?: (checked: boolean) => unknown;
27
+ onClick?: (ev: MouseEvent) => unknown;
28
+ onUserPressEnter?: (ev: KeyboardEvent) => unknown;
29
+ rightButtons?: ReactNode;
30
+ rightIcons?: TIconName[] | TIconName;
31
+ tabIndex?: number;
32
+ /**
33
+ * Si no se pasa title se usará ariaLabel.
34
+ */
35
+ title?: string;
36
+ }
37
+ declare const DefaultAccordionItemButton: (props: IAccordionItemButton) => React.JSX.Element;
38
+
39
+ export { DefaultAccordionItemButton, type IAccordionItemButton };
40
+ //# sourceMappingURL=DefaultAccordionItemButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultAccordionItemButton.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import { jsxs, jsx } from '@apia/theme/jsx-runtime';
2
+ import { Box } from '@apia/theme';
3
+ import { Icon } from '@apia/icons';
4
+ import { useAccordionContext } from '../context.js';
5
+ import { Checkbox } from './Checkbox.js';
6
+ import { useIsChecked } from './useIsChecked.js';
7
+ import { useCallback } from 'react';
8
+ import { AutoEllipsis } from '../../responsive/AutoEllipsis.js';
9
+ import { SimpleButton } from '../../forms/buttons/SimpleButton.js';
10
+
11
+ const DefaultAccordionItemButton = (props) => {
12
+ const handler = useAccordionContext();
13
+ const { isExpanded } = handler.hooks.useItemStateSelector((props2) => props2);
14
+ const id = handler.hooks.useItemId();
15
+ const [isChecked, setIsChecked] = useIsChecked(props);
16
+ const handleClick = useCallback(
17
+ (ev) => {
18
+ props.onClick?.(ev);
19
+ if (!ev.isDefaultPrevented())
20
+ handler.toggleItem(id);
21
+ },
22
+ [handler, id, props]
23
+ );
24
+ const handleKeyDown = useCallback(
25
+ (ev) => {
26
+ if (ev.code === "Enter") {
27
+ props.onUserPressEnter?.(ev);
28
+ if (!ev.isDefaultPrevented() && props.rightButtons)
29
+ handler.udpateItem(id, (current) => ({
30
+ isExpanded: !current.isExpanded
31
+ }));
32
+ }
33
+ },
34
+ [handler, id, props]
35
+ );
36
+ return /* @__PURE__ */ jsxs(
37
+ SimpleButton,
38
+ {
39
+ ...props.domButtonProps,
40
+ className: `accordion__item__button ${props.className ?? ""} ${props.domButtonProps?.className ?? ""}`,
41
+ onClick: handleClick,
42
+ onKeyDown: handleKeyDown,
43
+ "aria-expanded": isExpanded,
44
+ "aria-controls": `accordion__${handler.id}__${id}`,
45
+ title: props.title,
46
+ "aria-label": props.ariaLabel,
47
+ tabIndex: props.tabIndex,
48
+ children: [
49
+ /* @__PURE__ */ jsxs(Box, { className: "accordion__item__button__leftGroup", children: [
50
+ props.checked !== void 0 && /* @__PURE__ */ jsx(
51
+ Checkbox,
52
+ {
53
+ checked: isChecked,
54
+ disabled: props.disableSelection,
55
+ onChange: setIsChecked
56
+ }
57
+ ),
58
+ /* @__PURE__ */ jsx(Box, { as: "h3", className: "accordion__item__button__label", children: /* @__PURE__ */ jsx(AutoEllipsis, { overrideStyles: () => ({ textAlign: "left" }), children: props.label ?? props.title ?? props.ariaLabel }) })
59
+ ] }),
60
+ /* @__PURE__ */ jsxs(Box, { className: "accordion__item__button__rightGroup", children: [
61
+ props.rightButtons,
62
+ /* @__PURE__ */ jsx(
63
+ Icon,
64
+ {
65
+ name: isExpanded ? "ArrowUpThin" : "ArrowDownThin",
66
+ title: props.title ?? props.ariaLabel,
67
+ size: 23
68
+ }
69
+ )
70
+ ] })
71
+ ]
72
+ }
73
+ );
74
+ };
75
+
76
+ export { DefaultAccordionItemButton };
77
+ //# sourceMappingURL=DefaultAccordionItemButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultAccordionItemButton.js","sources":["../../../../src/components/accordion/defaultElements/DefaultAccordionItemButton.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\r\nimport { Icon, type TIconName } from '@apia/icons';\r\nimport { useAccordionContext } from '../context';\r\nimport { ISimpleButton, SimpleButton } from '../../forms';\r\nimport { Checkbox } from './Checkbox';\r\nimport { useIsChecked } from './useIsChecked';\r\nimport { KeyboardEvent, MouseEvent, ReactNode, useCallback } from 'react';\r\nimport { AutoEllipsis } from '../../responsive';\r\n\r\nexport interface IAccordionItemButton {\r\n ariaLabel: string;\r\n /**\r\n * Si checked !== undefined => se mostrará un checkbox.\r\n */\r\n checked?: boolean;\r\n /**\r\n * Solamente se utiliza en conjunto con el checkbox y permite evitar que el\r\n * usuario pueda marcar o desmarcar el checkbox.\r\n */\r\n className?: string;\r\n disableSelection?: boolean;\r\n domButtonProps?: ISimpleButton;\r\n label: string;\r\n /**\r\n * Evento que se dispara cuando el usuario hace click en el checkbox o\r\n * presiona espacio sobre el botón del acordeón.\r\n */\r\n onChange?: (checked: boolean) => unknown;\r\n onClick?: (ev: MouseEvent) => unknown;\r\n onUserPressEnter?: (ev: KeyboardEvent) => unknown;\r\n rightButtons?: ReactNode;\r\n rightIcons?: TIconName[] | TIconName;\r\n tabIndex?: number;\r\n /**\r\n * Si no se pasa title se usará ariaLabel.\r\n */\r\n title?: string;\r\n}\r\n\r\nexport const DefaultAccordionItemButton = (props: IAccordionItemButton) => {\r\n const handler = useAccordionContext();\r\n const { isExpanded } = handler.hooks.useItemStateSelector((props) => props);\r\n const id = handler.hooks.useItemId();\r\n const [isChecked, setIsChecked] = useIsChecked(props);\r\n const handleClick = useCallback(\r\n (ev: MouseEvent) => {\r\n props.onClick?.(ev);\r\n if (!ev.isDefaultPrevented()) handler.toggleItem(id);\r\n },\r\n [handler, id, props],\r\n );\r\n const handleKeyDown = useCallback(\r\n (ev: KeyboardEvent) => {\r\n if (ev.code === 'Enter') {\r\n props.onUserPressEnter?.(ev);\r\n if (!ev.isDefaultPrevented() && props.rightButtons)\r\n handler.udpateItem(id, (current) => ({\r\n isExpanded: !current.isExpanded,\r\n }));\r\n }\r\n },\r\n [handler, id, props],\r\n );\r\n\r\n return (\r\n <SimpleButton\r\n {...props.domButtonProps}\r\n className={`accordion__item__button ${props.className ?? ''} ${\r\n props.domButtonProps?.className ?? ''\r\n }`}\r\n onClick={handleClick}\r\n onKeyDown={handleKeyDown}\r\n aria-expanded={isExpanded}\r\n aria-controls={`accordion__${handler.id}__${id}`}\r\n title={props.title}\r\n aria-label={props.ariaLabel}\r\n tabIndex={props.tabIndex}\r\n >\r\n <Box className=\"accordion__item__button__leftGroup\">\r\n {props.checked !== undefined && (\r\n <Checkbox\r\n checked={isChecked}\r\n disabled={props.disableSelection}\r\n onChange={setIsChecked}\r\n />\r\n )}\r\n <Box as=\"h3\" className=\"accordion__item__button__label\">\r\n <AutoEllipsis overrideStyles={() => ({ textAlign: 'left' })}>\r\n {props.label ?? props.title ?? props.ariaLabel}\r\n </AutoEllipsis>\r\n </Box>\r\n </Box>\r\n <Box className=\"accordion__item__button__rightGroup\">\r\n {props.rightButtons}\r\n <Icon\r\n name={isExpanded ? 'ArrowUpThin' : 'ArrowDownThin'}\r\n title={props.title ?? props.ariaLabel}\r\n size={23}\r\n />\r\n </Box>\r\n </SimpleButton>\r\n );\r\n};\r\n"],"names":["props"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { useRef } from 'react';
2
+ import { useAccordionContext } from '../context.js';
3
+
4
+ function useIsChecked(props) {
5
+ const handler = useAccordionContext();
6
+ const isChecked = handler.hooks.useItemStateSelector(
7
+ (current) => current.isChecked
8
+ );
9
+ const id = handler.hooks.useItemId();
10
+ const previousPropsChecked = useRef(props.checked);
11
+ if (previousPropsChecked.current !== props.checked && props.checked !== void 0) {
12
+ previousPropsChecked.current = props.checked;
13
+ handler.udpateItem(id, { isChecked: props.checked });
14
+ }
15
+ return [
16
+ isChecked,
17
+ (isChecked2) => {
18
+ handler.udpateItem(id, { isChecked: isChecked2 });
19
+ props.onChange?.(isChecked2);
20
+ }
21
+ ];
22
+ }
23
+
24
+ export { useIsChecked };
25
+ //# sourceMappingURL=useIsChecked.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsChecked.js","sources":["../../../../src/components/accordion/defaultElements/useIsChecked.ts"],"sourcesContent":["import { useRef } from 'react';\r\nimport { useAccordionContext } from '../context';\r\nimport { IAccordionItemButton } from './DefaultAccordionItemButton';\r\n\r\nexport function useIsChecked(\r\n props: IAccordionItemButton,\r\n): [boolean, (isChecked: boolean) => void] {\r\n const handler = useAccordionContext();\r\n const isChecked = handler.hooks.useItemStateSelector(\r\n (current) => current.isChecked,\r\n );\r\n const id = handler.hooks.useItemId();\r\n\r\n const previousPropsChecked = useRef(props.checked);\r\n if (\r\n previousPropsChecked.current !== props.checked &&\r\n props.checked !== undefined\r\n ) {\r\n previousPropsChecked.current = props.checked;\r\n handler.udpateItem(id, { isChecked: props.checked });\r\n }\r\n\r\n return [\r\n isChecked,\r\n (isChecked) => {\r\n handler.udpateItem(id, { isChecked });\r\n props.onChange?.(isChecked);\r\n },\r\n ];\r\n}\r\n"],"names":["isChecked"],"mappings":";;;AAIO,SAAS,aACd,KACyC,EAAA;AACzC,EAAA,MAAM,UAAU,mBAAoB,EAAA,CAAA;AACpC,EAAM,MAAA,SAAA,GAAY,QAAQ,KAAM,CAAA,oBAAA;AAAA,IAC9B,CAAC,YAAY,OAAQ,CAAA,SAAA;AAAA,GACvB,CAAA;AACA,EAAM,MAAA,EAAA,GAAK,OAAQ,CAAA,KAAA,CAAM,SAAU,EAAA,CAAA;AAEnC,EAAM,MAAA,oBAAA,GAAuB,MAAO,CAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AACjD,EAAA,IACE,qBAAqB,OAAY,KAAA,KAAA,CAAM,OACvC,IAAA,KAAA,CAAM,YAAY,KAClB,CAAA,EAAA;AACA,IAAA,oBAAA,CAAqB,UAAU,KAAM,CAAA,OAAA,CAAA;AACrC,IAAA,OAAA,CAAQ,WAAW,EAAI,EAAA,EAAE,SAAW,EAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAAA,GACrD;AAEA,EAAO,OAAA;AAAA,IACL,SAAA;AAAA,IACA,CAACA,UAAc,KAAA;AACb,MAAA,OAAA,CAAQ,UAAW,CAAA,EAAA,EAAI,EAAE,SAAA,EAAAA,YAAW,CAAA,CAAA;AACpC,MAAA,KAAA,CAAM,WAAWA,UAAS,CAAA,CAAA;AAAA,KAC5B;AAAA,GACF,CAAA;AACF;;;;"}
@@ -0,0 +1,40 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { TId } from '@apia/util';
4
+ import { TItemState, TItemStateListener, TPropsListener } from './types.js';
5
+ import { IAccordionProps } from './Accordion.js';
6
+
7
+ type TSelectionComparator<T> = (prev: T, next: T) => boolean;
8
+ type TItemUpdater = Partial<TItemState> | ((currentProps: TItemState) => Partial<TItemState>);
9
+ declare class AccordionHandler {
10
+ id: string;
11
+ props: IAccordionProps;
12
+ itemsState: Record<TId, TItemState>;
13
+ itemsStateListeners: Record<TId, TItemStateListener[]>;
14
+ propsListeners: TPropsListener[];
15
+ constructor(id: string, props: IAccordionProps);
16
+ registerItem(itemId: TId, initialState: TItemState): void;
17
+ toggleItem(itemId: TId, expanded?: boolean): void;
18
+ unregisterItem(itemId: TId): void;
19
+ /**
20
+ * Permite actualizar parcialmente el estado de un item
21
+ */
22
+ udpateItem(itemId: TId, updater: TItemUpdater): void;
23
+ updateProps(props: IAccordionProps): void;
24
+ hooks: {
25
+ useAccordionContextProvider: () => ({ children }: {
26
+ children: ReactNode;
27
+ }) => React.JSX.Element;
28
+ useItemContextProvider: (itemId: TId) => ({ children }: {
29
+ children: ReactNode;
30
+ }) => React.JSX.Element;
31
+ useItemId: () => TId;
32
+ useItemStateSelector: <T>(selector: (props: TItemState) => T, comparator?: TSelectionComparator<T>) => T;
33
+ useItemStateUpdate: (cb: TItemStateListener) => void;
34
+ usePropsSelector: <T_1>(selector: (props: IAccordionProps) => T_1, comparator?: TSelectionComparator<T_1>) => T_1;
35
+ usePropsUpdate: (cb: TPropsListener) => void;
36
+ };
37
+ }
38
+
39
+ export { AccordionHandler };
40
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,126 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import { useMemo, useContext, useEffect, useState } from 'react';
3
+ import { AccordionContext, AccordionItemContext } from './context.js';
4
+ import { shallowEqual } from '@apia/store';
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
12
+ function makeItemStateSelectorHook(handler) {
13
+ return function useItemStateSelector(selector, comparator = shallowEqual) {
14
+ const id = handler.hooks.useItemId();
15
+ const [state, setState] = useState(selector(handler.itemsState[id]));
16
+ handler.hooks.useItemStateUpdate((props) => {
17
+ const newState = selector(props);
18
+ if (!comparator(state, newState)) {
19
+ setState(newState);
20
+ }
21
+ });
22
+ return state;
23
+ };
24
+ }
25
+ function makePropsSelectorHook(handler) {
26
+ return function usePropsSelector(selector, comparator = shallowEqual) {
27
+ const [state, setState] = useState(selector(handler.props));
28
+ handler.hooks.usePropsUpdate((props) => {
29
+ const newState = selector(props);
30
+ if (!comparator(state, newState)) {
31
+ setState(newState);
32
+ }
33
+ });
34
+ return state;
35
+ };
36
+ }
37
+ class AccordionHandler {
38
+ constructor(id, props) {
39
+ this.id = id;
40
+ this.props = props;
41
+ __publicField(this, "itemsState", {});
42
+ __publicField(this, "itemsStateListeners", {});
43
+ __publicField(this, "propsListeners", []);
44
+ __publicField(this, "hooks", {
45
+ useAccordionContextProvider: () => {
46
+ const Provider = useMemo(
47
+ () => ({ children }) => /* @__PURE__ */ jsx(AccordionContext.Provider, { value: this, children }),
48
+ []
49
+ );
50
+ return Provider;
51
+ },
52
+ useItemContextProvider: (itemId) => {
53
+ const Provider = useMemo(
54
+ () => ({ children }) => /* @__PURE__ */ jsx(AccordionItemContext.Provider, { value: itemId, children }),
55
+ [itemId]
56
+ );
57
+ return Provider;
58
+ },
59
+ useItemId: () => {
60
+ const id = useContext(AccordionItemContext);
61
+ if (id === null)
62
+ throw new Error("There is no AccordionItemContext");
63
+ return id;
64
+ },
65
+ useItemStateSelector: makeItemStateSelectorHook(this),
66
+ useItemStateUpdate: (cb) => {
67
+ const itemId = this.hooks.useItemId();
68
+ useEffect(() => {
69
+ if (!this.itemsStateListeners[itemId])
70
+ this.itemsStateListeners[itemId] = [];
71
+ this.itemsStateListeners[itemId].push(cb);
72
+ return () => {
73
+ this.itemsStateListeners[itemId] = this.itemsStateListeners[itemId].filter((current) => current != cb);
74
+ };
75
+ }, [cb, itemId]);
76
+ },
77
+ usePropsSelector: makePropsSelectorHook(this),
78
+ usePropsUpdate: (cb) => {
79
+ useEffect(() => {
80
+ this.propsListeners.push(cb);
81
+ return () => {
82
+ this.propsListeners = this.propsListeners.filter(
83
+ (current) => current !== cb
84
+ );
85
+ };
86
+ }, [cb]);
87
+ }
88
+ });
89
+ }
90
+ registerItem(itemId, initialState) {
91
+ if (!this.itemsState[itemId])
92
+ this.itemsState[itemId] = initialState;
93
+ }
94
+ toggleItem(itemId, expanded) {
95
+ const isExpanded = expanded ?? !this.itemsState[itemId].isExpanded;
96
+ if (this.props.singleExpand && isExpanded) {
97
+ Object.keys(this.itemsState).forEach((current) => {
98
+ if (current !== itemId) {
99
+ this.udpateItem(current, { isExpanded: false });
100
+ }
101
+ });
102
+ }
103
+ this.udpateItem(itemId, { isExpanded });
104
+ }
105
+ unregisterItem(itemId) {
106
+ delete this.itemsState[itemId];
107
+ delete this.itemsStateListeners[itemId];
108
+ }
109
+ /**
110
+ * Permite actualizar parcialmente el estado de un item
111
+ */
112
+ udpateItem(itemId, updater) {
113
+ const newProps = updater instanceof Function ? updater(this.itemsState[itemId]) : updater;
114
+ Object.assign(this.itemsState[itemId], newProps);
115
+ this.itemsStateListeners[itemId].forEach(
116
+ (current) => current(this.itemsState[itemId])
117
+ );
118
+ }
119
+ updateProps(props) {
120
+ this.props = { ...this.props, ...props };
121
+ this.propsListeners.forEach((current) => current(props));
122
+ }
123
+ }
124
+
125
+ export { AccordionHandler };
126
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sources":["../../../src/components/accordion/handler.tsx"],"sourcesContent":["import { TId } from '@apia/util';\r\nimport { ReactNode, useContext, useEffect, useMemo, useState } from 'react';\r\nimport { AccordionContext, AccordionItemContext } from './context';\r\nimport { TItemState, TItemStateListener, TPropsListener } from './types';\r\nimport { shallowEqual } from '@apia/store';\r\nimport { IAccordionProps } from './Accordion';\r\n\r\ntype TSelectionComparator<T> = (prev: T, next: T) => boolean;\r\n\r\ntype TItemUpdater =\r\n | Partial<TItemState>\r\n | ((currentProps: TItemState) => Partial<TItemState>);\r\n\r\nfunction makeItemStateSelectorHook(handler: AccordionHandler) {\r\n return function useItemStateSelector<T>(\r\n selector: (props: TItemState) => T,\r\n comparator: TSelectionComparator<T> = shallowEqual,\r\n ) {\r\n const id = handler.hooks.useItemId();\r\n const [state, setState] = useState<T>(selector(handler.itemsState[id]));\r\n\r\n handler.hooks.useItemStateUpdate((props) => {\r\n const newState = selector(props);\r\n if (!comparator(state, newState)) {\r\n setState(newState);\r\n }\r\n });\r\n\r\n return state;\r\n };\r\n}\r\n\r\nfunction makePropsSelectorHook(handler: AccordionHandler) {\r\n return function usePropsSelector<T>(\r\n selector: (props: IAccordionProps) => T,\r\n comparator: TSelectionComparator<T> = shallowEqual,\r\n ) {\r\n const [state, setState] = useState<T>(selector(handler.props));\r\n\r\n handler.hooks.usePropsUpdate((props) => {\r\n const newState = selector(props);\r\n if (!comparator(state, newState)) {\r\n setState(newState);\r\n }\r\n });\r\n\r\n return state;\r\n };\r\n}\r\n\r\nexport class AccordionHandler {\r\n itemsState: Record<TId, TItemState> = {};\r\n itemsStateListeners: Record<TId, TItemStateListener[]> = {};\r\n\r\n propsListeners: TPropsListener[] = [];\r\n\r\n constructor(\r\n public id: string,\r\n public props: IAccordionProps,\r\n ) {}\r\n\r\n registerItem(itemId: TId, initialState: TItemState) {\r\n if (!this.itemsState[itemId]) this.itemsState[itemId] = initialState;\r\n }\r\n\r\n toggleItem(itemId: TId, expanded?: boolean) {\r\n const isExpanded = expanded ?? !this.itemsState[itemId].isExpanded;\r\n if (this.props.singleExpand && isExpanded) {\r\n Object.keys(this.itemsState).forEach((current) => {\r\n if (current !== itemId) {\r\n this.udpateItem(current, { isExpanded: false });\r\n }\r\n });\r\n }\r\n this.udpateItem(itemId, { isExpanded });\r\n }\r\n\r\n unregisterItem(itemId: TId) {\r\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\r\n delete this.itemsState[itemId];\r\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\r\n delete this.itemsStateListeners[itemId];\r\n }\r\n\r\n /**\r\n * Permite actualizar parcialmente el estado de un item\r\n */\r\n udpateItem(itemId: TId, updater: TItemUpdater) {\r\n const newProps =\r\n updater instanceof Function ? updater(this.itemsState[itemId]) : updater;\r\n\r\n Object.assign(this.itemsState[itemId], newProps);\r\n this.itemsStateListeners[itemId].forEach((current) =>\r\n current(this.itemsState[itemId]),\r\n );\r\n }\r\n\r\n updateProps(props: IAccordionProps) {\r\n this.props = { ...this.props, ...props };\r\n this.propsListeners.forEach((current) => current(props));\r\n }\r\n\r\n hooks = {\r\n useAccordionContextProvider: () => {\r\n const Provider = useMemo(\r\n () =>\r\n ({ children }: { children: ReactNode }) => (\r\n <AccordionContext.Provider value={this}>\r\n {children}\r\n </AccordionContext.Provider>\r\n ),\r\n [],\r\n );\r\n return Provider;\r\n },\r\n useItemContextProvider: (itemId: TId) => {\r\n const Provider = useMemo(\r\n () =>\r\n ({ children }: { children: ReactNode }) => (\r\n <AccordionItemContext.Provider value={itemId}>\r\n {children}\r\n </AccordionItemContext.Provider>\r\n ),\r\n [itemId],\r\n );\r\n return Provider;\r\n },\r\n useItemId: () => {\r\n const id = useContext(AccordionItemContext);\r\n if (id === null) throw new Error('There is no AccordionItemContext');\r\n return id;\r\n },\r\n useItemStateSelector: makeItemStateSelectorHook(this),\r\n useItemStateUpdate: (cb: TItemStateListener) => {\r\n const itemId = this.hooks.useItemId();\r\n useEffect(() => {\r\n if (!this.itemsStateListeners[itemId])\r\n this.itemsStateListeners[itemId] = [];\r\n this.itemsStateListeners[itemId].push(cb);\r\n\r\n return () => {\r\n this.itemsStateListeners[itemId] = this.itemsStateListeners[\r\n itemId\r\n ].filter((current) => current != cb);\r\n };\r\n }, [cb, itemId]);\r\n },\r\n usePropsSelector: makePropsSelectorHook(this),\r\n usePropsUpdate: (cb: TPropsListener) => {\r\n useEffect(() => {\r\n this.propsListeners.push(cb);\r\n return () => {\r\n this.propsListeners = this.propsListeners.filter(\r\n (current) => current !== cb,\r\n );\r\n };\r\n }, [cb]);\r\n },\r\n };\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import '../forms/DateInput.js';
2
+ import '../forms/NumberInput.js';
3
+ import { AccordionHandler } from './handler.js';
4
+
5
+ type TAccordionHandler = AccordionHandler;
6
+
7
+ export type { TAccordionHandler };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { IAccordionProps } from './Accordion.js';
2
+
3
+ type TItemState = {
4
+ isChecked: boolean;
5
+ isExpanded: boolean;
6
+ };
7
+ type TItemStateListener = (state: TItemState) => unknown;
8
+ type TPropsListener = (props: IAccordionProps) => unknown;
9
+
10
+ export type { TItemState, TItemStateListener, TPropsListener };
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import { useUpdateEffect } from 'ahooks';
3
+ import * as React from 'react';
4
+ import { DateInput } from '../forms/DateInput.js';
5
+ import { getFieldErrorStyles } from '../forms/util/style.js';
6
+
7
+ const NoMemoApiaDateFilter = ({ filter, onChange, onBlur, onPressEnter }, ref) => {
8
+ const [value, setValue] = React.useState(String(filter.currentValue));
9
+ const [lastDispatchedValue, setLastDispatchedValue] = React.useState(
10
+ String(filter.currentValue)
11
+ );
12
+ const handleClick = React.useCallback((ev) => {
13
+ ev.stopPropagation();
14
+ }, []);
15
+ useUpdateEffect(() => {
16
+ setValue(filter.currentValue);
17
+ }, [filter.currentValue]);
18
+ return /* @__PURE__ */ jsx(
19
+ DateInput,
20
+ {
21
+ value,
22
+ sx: getFieldErrorStyles(!filter.error),
23
+ "aria-label": filter.toolTip,
24
+ ref,
25
+ placeholder: filter.placeholder,
26
+ onChange: (ev) => {
27
+ if (onChange) {
28
+ const result = onChange(String(ev));
29
+ if (result === true) {
30
+ setValue(ev);
31
+ return true;
32
+ }
33
+ return result;
34
+ }
35
+ return false;
36
+ },
37
+ onClick: handleClick,
38
+ onBlur: () => {
39
+ if (value !== lastDispatchedValue && onBlur) {
40
+ setLastDispatchedValue(value);
41
+ setValue(value);
42
+ onBlur(value);
43
+ }
44
+ },
45
+ onKeyDown: (ev) => {
46
+ if (ev.key.toLowerCase() === "enter" && onPressEnter) {
47
+ setLastDispatchedValue(value);
48
+ onPressEnter(value);
49
+ }
50
+ }
51
+ }
52
+ );
53
+ };
54
+ const ApiaDateFilter = React.forwardRef(NoMemoApiaDateFilter);
55
+
56
+ export { ApiaDateFilter };
57
+ //# sourceMappingURL=ApiaDateFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiaDateFilter.js","sources":["../../../src/components/apia/ApiaDateFilter.tsx"],"sourcesContent":["import { useUpdateEffect } from 'ahooks';\r\nimport * as React from 'react';\r\nimport { IApiaFilter } from './ApiaFilter';\r\nimport { DateInput, getFieldErrorStyles } from '../forms';\r\n\r\nconst NoMemoApiaDateFilter = (\r\n { filter, onChange, onBlur, onPressEnter }: IApiaFilter,\r\n ref: React.Ref<HTMLInputElement | HTMLSelectElement>,\r\n) => {\r\n const [value, setValue] = React.useState<string>(String(filter.currentValue));\r\n const [lastDispatchedValue, setLastDispatchedValue] = React.useState<string>(\r\n String(filter.currentValue),\r\n );\r\n\r\n const handleClick = React.useCallback((ev: React.MouseEvent) => {\r\n ev.stopPropagation();\r\n }, []);\r\n\r\n useUpdateEffect(() => {\r\n setValue(filter.currentValue as string);\r\n }, [filter.currentValue]);\r\n\r\n return (\r\n <DateInput\r\n value={value}\r\n sx={getFieldErrorStyles(!filter.error)}\r\n aria-label={filter.toolTip}\r\n ref={ref as React.Ref<HTMLInputElement>}\r\n placeholder={filter.placeholder}\r\n onChange={(ev) => {\r\n if (onChange) {\r\n const result = onChange(String(ev));\r\n if (result === true) {\r\n setValue(ev);\r\n return true;\r\n }\r\n return result as string | false | void;\r\n }\r\n return false;\r\n }}\r\n onClick={handleClick}\r\n onBlur={() => {\r\n if (value !== lastDispatchedValue && onBlur) {\r\n setLastDispatchedValue(value);\r\n setValue(value);\r\n onBlur(value);\r\n }\r\n }}\r\n onKeyDown={(ev) => {\r\n if (ev.key.toLowerCase() === 'enter' && onPressEnter) {\r\n setLastDispatchedValue(value);\r\n onPressEnter(value);\r\n }\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport const ApiaDateFilter = React.forwardRef(NoMemoApiaDateFilter);\r\n"],"names":[],"mappings":";;;;;;AAKA,MAAM,oBAAA,GAAuB,CAC3B,EAAE,MAAA,EAAQ,UAAU,MAAQ,EAAA,YAAA,IAC5B,GACG,KAAA;AACH,EAAM,MAAA,CAAC,OAAO,QAAQ,CAAA,GAAI,MAAM,QAAiB,CAAA,MAAA,CAAO,MAAO,CAAA,YAAY,CAAC,CAAA,CAAA;AAC5E,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAI,KAAM,CAAA,QAAA;AAAA,IAC1D,MAAA,CAAO,OAAO,YAAY,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAA,MAAM,WAAc,GAAA,KAAA,CAAM,WAAY,CAAA,CAAC,EAAyB,KAAA;AAC9D,IAAA,EAAA,CAAG,eAAgB,EAAA,CAAA;AAAA,GACrB,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,QAAA,CAAS,OAAO,YAAsB,CAAA,CAAA;AAAA,GACrC,EAAA,CAAC,MAAO,CAAA,YAAY,CAAC,CAAA,CAAA;AAExB,EACE,uBAAA,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,EAAI,EAAA,mBAAA,CAAoB,CAAC,MAAA,CAAO,KAAK,CAAA;AAAA,MACrC,cAAY,MAAO,CAAA,OAAA;AAAA,MACnB,GAAA;AAAA,MACA,aAAa,MAAO,CAAA,WAAA;AAAA,MACpB,QAAA,EAAU,CAAC,EAAO,KAAA;AAChB,QAAA,IAAI,QAAU,EAAA;AACZ,UAAA,MAAM,MAAS,GAAA,QAAA,CAAS,MAAO,CAAA,EAAE,CAAC,CAAA,CAAA;AAClC,UAAA,IAAI,WAAW,IAAM,EAAA;AACnB,YAAA,QAAA,CAAS,EAAE,CAAA,CAAA;AACX,YAAO,OAAA,IAAA,CAAA;AAAA,WACT;AACA,UAAO,OAAA,MAAA,CAAA;AAAA,SACT;AACA,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AAAA,MACA,OAAS,EAAA,WAAA;AAAA,MACT,QAAQ,MAAM;AACZ,QAAI,IAAA,KAAA,KAAU,uBAAuB,MAAQ,EAAA;AAC3C,UAAA,sBAAA,CAAuB,KAAK,CAAA,CAAA;AAC5B,UAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AACd,UAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,SACd;AAAA,OACF;AAAA,MACA,SAAA,EAAW,CAAC,EAAO,KAAA;AACjB,QAAA,IAAI,EAAG,CAAA,GAAA,CAAI,WAAY,EAAA,KAAM,WAAW,YAAc,EAAA;AACpD,UAAA,sBAAA,CAAuB,KAAK,CAAA,CAAA;AAC5B,UAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,SACpB;AAAA,OACF;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,cAAA,GAAiB,KAAM,CAAA,UAAA,CAAW,oBAAoB;;;;"}
@@ -0,0 +1,13 @@
1
+ import { TApiaFilter, TApiaFilterValue } from '@apia/util';
2
+ import * as React from 'react';
3
+
4
+ interface IApiaFilter {
5
+ filter: TApiaFilter;
6
+ onBlur?: (ev: TApiaFilterValue) => void;
7
+ onChange?: (ev: TApiaFilterValue) => void | boolean | string | Promise<boolean | string>;
8
+ onPressEnter?: (ev: TApiaFilterValue) => void;
9
+ }
10
+ declare const ApiaFilter: React.MemoExoticComponent<React.ForwardRefExoticComponent<IApiaFilter & React.RefAttributes<HTMLInputElement | HTMLSelectElement>>>;
11
+
12
+ export { ApiaFilter, type IApiaFilter };
13
+ //# sourceMappingURL=ApiaFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiaFilter.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
1
+ import { jsx } from '@apia/theme/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { getVariant, Select, Input } from '@apia/theme';
4
+ import { ApiaDateFilter } from './ApiaDateFilter.js';
5
+ import { NumberInput } from '../forms/NumberInput.js';
6
+ import { getFieldErrorStyles } from '../forms/util/style.js';
7
+
8
+ const NoMemoApiaFilter = ({ filter, onChange, onBlur, onPressEnter }, ref) => {
9
+ const [value, setValue] = React.useState(
10
+ filter.currentValue ?? ""
11
+ );
12
+ const handleClick = React.useCallback((ev) => {
13
+ ev.stopPropagation();
14
+ }, []);
15
+ const [lastEmittedValue, setLastEmittedValue] = React.useState(filter.currentValue);
16
+ const filterCurrentValue = filter?.currentValue;
17
+ React.useEffect(() => {
18
+ if (filterCurrentValue === "") {
19
+ setValue(String(filterCurrentValue));
20
+ setLastEmittedValue(String(filterCurrentValue));
21
+ }
22
+ }, [filter?.deleteFiltersTimestamp]);
23
+ if (filter) {
24
+ const handleChange = (ev) => {
25
+ if (onChange && onChange(String(ev.target.value)) !== false || !onChange)
26
+ setValue(String(ev.target.value));
27
+ };
28
+ const handleNumberChange = (ev) => {
29
+ if (onChange && onChange(String(ev.value)) !== false || !onChange)
30
+ setValue(String(ev.value));
31
+ };
32
+ const handleBlur = (ev) => {
33
+ if (onBlur && lastEmittedValue !== value) {
34
+ setLastEmittedValue(value);
35
+ onBlur(ev.target.value);
36
+ }
37
+ };
38
+ const sortedOptions = filter.sortCombo ? [...filter.options ?? []].sort((a, b) => a.label > b.label ? 1 : -1) : filter.options;
39
+ const options = sortedOptions?.map((option) => {
40
+ return /* @__PURE__ */ jsx("option", { value: option.value, children: option.label }, option.value ?? option.label ?? " ");
41
+ });
42
+ if (filter.type === "date" || filter.type === "D")
43
+ return /* @__PURE__ */ jsx(
44
+ ApiaDateFilter,
45
+ {
46
+ filter,
47
+ onChange,
48
+ onBlur,
49
+ onPressEnter,
50
+ ref
51
+ }
52
+ );
53
+ if (filter.type === "apiaNumber") {
54
+ return /* @__PURE__ */ jsx(
55
+ NumberInput,
56
+ {
57
+ "aria-readonly": filter.readonly,
58
+ readOnly: filter.readonly,
59
+ value,
60
+ placeholder: filter.placeholder,
61
+ onChange: handleNumberChange,
62
+ onKeyDown: (ev) => {
63
+ if (ev.key.toLowerCase() === "enter") {
64
+ handleBlur(ev);
65
+ if (onPressEnter)
66
+ onPressEnter(ev.target.value);
67
+ }
68
+ },
69
+ onClick: handleClick,
70
+ ...getVariant("input"),
71
+ className: `filter ${filter.error ? "requiredFilter__Border" : ""}`,
72
+ title: filter.title ?? filter.toolTip ?? String(filter.id),
73
+ ref,
74
+ "aria-label": filter.title ?? filter.toolTip ?? String(filter.id),
75
+ name: filter.id
76
+ }
77
+ );
78
+ }
79
+ return filter.options ? /* @__PURE__ */ jsx(
80
+ Select,
81
+ {
82
+ "aria-readonly": filter.readonly,
83
+ disabled: filter.readonly,
84
+ onChange: handleChange,
85
+ onBlur: handleBlur,
86
+ value,
87
+ className: `"filter" ${filter.error ? "requiredFilter__Border" : ""}`,
88
+ title: filter.title ?? filter.toolTip ?? String(filter.id),
89
+ ref,
90
+ "aria-label": filter.title ?? filter.toolTip ?? String(filter.id),
91
+ onClick: handleClick,
92
+ sx: getFieldErrorStyles(!filter.error),
93
+ name: filter.id,
94
+ children: options
95
+ }
96
+ ) : /* @__PURE__ */ jsx(
97
+ Input,
98
+ {
99
+ "aria-readonly": filter.readonly,
100
+ readOnly: filter.readonly,
101
+ value,
102
+ type: (filter.type === "N" ? "number" : filter.type) ?? "text",
103
+ placeholder: filter.placeholder,
104
+ onChange: handleChange,
105
+ onBlur: handleBlur,
106
+ onKeyDown: (ev) => {
107
+ if (ev.key.toLowerCase() === "enter") {
108
+ handleBlur(ev);
109
+ if (onPressEnter)
110
+ onPressEnter(ev.target.value);
111
+ }
112
+ },
113
+ onClick: handleClick,
114
+ ...getVariant("input"),
115
+ className: `filter ${filter.error ? "requiredFilter__Border" : ""}`,
116
+ title: filter.title ?? filter.toolTip ?? String(filter.id),
117
+ ref,
118
+ "aria-label": filter.title ?? filter.toolTip ?? String(filter.id),
119
+ name: filter.id
120
+ }
121
+ );
122
+ }
123
+ return null;
124
+ };
125
+ const ApiaFilter = React.memo(React.forwardRef(NoMemoApiaFilter));
126
+
127
+ export { ApiaFilter };
128
+ //# sourceMappingURL=ApiaFilter.js.map