@kapiuara/ui 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/README.md +764 -2
  2. package/dist/components/data/KapiPagination.d.ts +36 -0
  3. package/dist/components/data/KapiPagination.js +102 -0
  4. package/dist/components/data/KapiTable.d.ts +245 -0
  5. package/dist/components/data/KapiTable.js +748 -0
  6. package/dist/components/data/KapiTableFilter.d.ts +48 -0
  7. package/dist/components/data/KapiTableFilter.js +81 -0
  8. package/dist/components/data/index.d.ts +10 -0
  9. package/dist/components/data/tableLogic.d.ts +197 -0
  10. package/dist/components/data/tableLogic.js +145 -0
  11. package/dist/components/data/tableResizeLogic.d.ts +28 -0
  12. package/dist/components/data/tableResizeLogic.js +20 -0
  13. package/dist/components/display/KapiAnnotation.d.ts +32 -0
  14. package/dist/components/display/KapiAnnotation.js +130 -0
  15. package/dist/components/display/KapiAvatar.d.ts +27 -0
  16. package/dist/components/display/KapiAvatar.js +43 -0
  17. package/dist/components/display/KapiAvatarGroup.d.ts +19 -0
  18. package/dist/components/display/KapiAvatarGroup.js +38 -0
  19. package/dist/components/display/KapiBadge.d.ts +21 -0
  20. package/dist/components/display/KapiBadge.js +28 -0
  21. package/dist/components/display/KapiComment.d.ts +27 -0
  22. package/dist/components/display/KapiComment.js +66 -0
  23. package/dist/components/display/KapiCommentComposer.d.ts +49 -0
  24. package/dist/components/display/KapiCommentComposer.js +76 -0
  25. package/dist/components/display/KapiDescriptionList.d.ts +19 -0
  26. package/dist/components/display/KapiDescriptionList.js +35 -0
  27. package/dist/components/display/KapiFileItem.d.ts +39 -0
  28. package/dist/components/display/KapiFileItem.js +74 -0
  29. package/dist/components/display/KapiFileViewer.d.ts +51 -0
  30. package/dist/components/display/KapiFileViewer.js +107 -0
  31. package/dist/components/display/KapiIconTile.d.ts +16 -0
  32. package/dist/components/display/KapiIconTile.js +29 -0
  33. package/dist/components/display/KapiStat.d.ts +24 -0
  34. package/dist/components/display/KapiStat.js +41 -0
  35. package/dist/components/display/KapiTag.d.ts +27 -0
  36. package/dist/components/display/KapiTag.js +44 -0
  37. package/dist/components/display/KapiTimeline.d.ts +15 -0
  38. package/dist/components/display/KapiTimeline.js +30 -0
  39. package/dist/components/display/annotationLogic.d.ts +26 -0
  40. package/dist/components/display/annotationLogic.js +17 -0
  41. package/dist/components/display/avatarGroupLogic.d.ts +14 -0
  42. package/dist/components/display/avatarGroupLogic.js +13 -0
  43. package/dist/components/display/avatarLogic.d.ts +5 -0
  44. package/dist/components/display/avatarLogic.js +9 -0
  45. package/dist/components/display/commentLogic.d.ts +18 -0
  46. package/dist/components/display/commentLogic.js +7 -0
  47. package/dist/components/display/fileItemLogic.d.ts +9 -0
  48. package/dist/components/display/fileItemLogic.js +12 -0
  49. package/dist/components/display/iconTileLogic.d.ts +13 -0
  50. package/dist/components/display/iconTileLogic.js +13 -0
  51. package/dist/components/display/index.d.ts +40 -0
  52. package/dist/components/display/statLogic.d.ts +10 -0
  53. package/dist/components/display/statLogic.js +10 -0
  54. package/dist/components/display/tagLogic.d.ts +11 -0
  55. package/dist/components/display/tagLogic.js +10 -0
  56. package/dist/components/display/timelineLogic.d.ts +5 -0
  57. package/dist/components/display/timelineLogic.js +4 -0
  58. package/dist/components/feedback/KapiAlert.d.ts +28 -0
  59. package/dist/components/feedback/KapiAlert.js +53 -0
  60. package/dist/components/feedback/KapiBulkBar.d.ts +30 -0
  61. package/dist/components/feedback/KapiBulkBar.js +34 -0
  62. package/dist/components/feedback/KapiCountdown.d.ts +26 -0
  63. package/dist/components/feedback/KapiCountdown.js +43 -0
  64. package/dist/components/feedback/KapiEmpty.d.ts +14 -0
  65. package/dist/components/feedback/KapiEmpty.js +31 -0
  66. package/dist/components/feedback/KapiFab.d.ts +34 -0
  67. package/dist/components/feedback/KapiFab.js +116 -0
  68. package/dist/components/feedback/KapiOfflineBanner.d.ts +25 -0
  69. package/dist/components/feedback/KapiOfflineBanner.js +40 -0
  70. package/dist/components/feedback/KapiProgress.d.ts +24 -0
  71. package/dist/components/feedback/KapiProgress.js +94 -0
  72. package/dist/components/feedback/KapiSkeleton.d.ts +12 -0
  73. package/dist/components/feedback/KapiSkeleton.js +16 -0
  74. package/dist/components/feedback/KapiToastContainer.d.ts +16 -0
  75. package/dist/components/feedback/KapiToastContainer.js +81 -0
  76. package/dist/components/feedback/KapiTour.d.ts +40 -0
  77. package/dist/components/feedback/KapiTour.js +157 -0
  78. package/dist/components/feedback/KapiUnsavedBar.d.ts +35 -0
  79. package/dist/components/feedback/KapiUnsavedBar.js +47 -0
  80. package/dist/components/feedback/bulkBarLogic.d.ts +2 -0
  81. package/dist/components/feedback/bulkBarLogic.js +7 -0
  82. package/dist/components/feedback/countdownLogic.d.ts +74 -0
  83. package/dist/components/feedback/countdownLogic.js +70 -0
  84. package/dist/components/feedback/fabLogic.d.ts +17 -0
  85. package/dist/components/feedback/fabLogic.js +10 -0
  86. package/dist/components/feedback/index.d.ts +33 -0
  87. package/dist/components/feedback/offlineBannerLogic.d.ts +10 -0
  88. package/dist/components/feedback/offlineBannerLogic.js +8 -0
  89. package/dist/components/feedback/progressLogic.d.ts +17 -0
  90. package/dist/components/feedback/progressLogic.js +16 -0
  91. package/dist/components/feedback/toastStore.d.ts +62 -0
  92. package/dist/components/feedback/toastStore.js +38 -0
  93. package/dist/components/feedback/tourLogic.d.ts +64 -0
  94. package/dist/components/feedback/tourLogic.js +31 -0
  95. package/dist/components/feedback/unsavedBarLogic.d.ts +2 -0
  96. package/dist/components/feedback/unsavedBarLogic.js +8 -0
  97. package/dist/components/inputs/KapiAutocomplete.d.ts +81 -0
  98. package/dist/components/inputs/KapiAutocomplete.js +205 -0
  99. package/dist/components/inputs/KapiButton.d.ts +23 -0
  100. package/dist/components/inputs/KapiButton.js +25 -0
  101. package/dist/components/inputs/KapiCalendar.d.ts +35 -0
  102. package/dist/components/inputs/KapiCalendar.js +60 -0
  103. package/dist/components/inputs/KapiCalendarGrid.d.ts +29 -0
  104. package/dist/components/inputs/KapiCalendarGrid.js +65 -0
  105. package/dist/components/inputs/KapiCheckCard.d.ts +28 -0
  106. package/dist/components/inputs/KapiCheckCard.js +41 -0
  107. package/dist/components/inputs/KapiCheckbox.d.ts +7 -0
  108. package/dist/components/inputs/KapiCheckbox.js +5 -0
  109. package/dist/components/inputs/KapiDatePicker.d.ts +46 -0
  110. package/dist/components/inputs/KapiDatePicker.js +189 -0
  111. package/dist/components/inputs/KapiDateRangePicker.d.ts +49 -0
  112. package/dist/components/inputs/KapiDateRangePicker.js +179 -0
  113. package/dist/components/inputs/KapiFacetedSearch.d.ts +45 -0
  114. package/dist/components/inputs/KapiFacetedSearch.js +188 -0
  115. package/dist/components/inputs/KapiField.d.ts +33 -0
  116. package/dist/components/inputs/KapiField.js +60 -0
  117. package/dist/components/inputs/KapiFileUpload.d.ts +58 -0
  118. package/dist/components/inputs/KapiFileUpload.js +134 -0
  119. package/dist/components/inputs/KapiIconButton.d.ts +13 -0
  120. package/dist/components/inputs/KapiIconButton.js +16 -0
  121. package/dist/components/inputs/KapiInput.d.ts +92 -0
  122. package/dist/components/inputs/KapiInput.js +123 -0
  123. package/dist/components/inputs/KapiInputGroup.d.ts +37 -0
  124. package/dist/components/inputs/KapiInputGroup.js +29 -0
  125. package/dist/components/inputs/KapiMaskedInput.d.ts +52 -0
  126. package/dist/components/inputs/KapiMaskedInput.js +78 -0
  127. package/dist/components/inputs/KapiNumberStepper.d.ts +44 -0
  128. package/dist/components/inputs/KapiNumberStepper.js +100 -0
  129. package/dist/components/inputs/KapiRadio.d.ts +7 -0
  130. package/dist/components/inputs/KapiRadio.js +5 -0
  131. package/dist/components/inputs/KapiRating.d.ts +55 -0
  132. package/dist/components/inputs/KapiRating.js +99 -0
  133. package/dist/components/inputs/KapiSegmented.d.ts +41 -0
  134. package/dist/components/inputs/KapiSegmented.js +83 -0
  135. package/dist/components/inputs/KapiSelect.d.ts +109 -0
  136. package/dist/components/inputs/KapiSelect.js +443 -0
  137. package/dist/components/inputs/KapiSlider.d.ts +42 -0
  138. package/dist/components/inputs/KapiSlider.js +70 -0
  139. package/dist/components/inputs/KapiSwitch.d.ts +13 -0
  140. package/dist/components/inputs/KapiSwitch.js +28 -0
  141. package/dist/components/inputs/KapiTagInput.d.ts +79 -0
  142. package/dist/components/inputs/KapiTagInput.js +115 -0
  143. package/dist/components/inputs/KapiTextarea.d.ts +32 -0
  144. package/dist/components/inputs/KapiTextarea.js +67 -0
  145. package/dist/components/inputs/asyncSelectLogic.d.ts +42 -0
  146. package/dist/components/inputs/asyncSelectLogic.js +46 -0
  147. package/dist/components/inputs/autocompleteLogic.d.ts +73 -0
  148. package/dist/components/inputs/autocompleteLogic.js +67 -0
  149. package/dist/components/inputs/checkControl.d.ts +20 -0
  150. package/dist/components/inputs/checkControl.js +31 -0
  151. package/dist/components/inputs/datePickerLogic.d.ts +92 -0
  152. package/dist/components/inputs/datePickerLogic.js +174 -0
  153. package/dist/components/inputs/dateRangeLogic.d.ts +31 -0
  154. package/dist/components/inputs/dateRangeLogic.js +44 -0
  155. package/dist/components/inputs/facetedSearchLogic.d.ts +69 -0
  156. package/dist/components/inputs/facetedSearchLogic.js +39 -0
  157. package/dist/components/inputs/fieldLogic.d.ts +67 -0
  158. package/dist/components/inputs/fieldLogic.js +35 -0
  159. package/dist/components/inputs/fileUploadLogic.d.ts +13 -0
  160. package/dist/components/inputs/fileUploadLogic.js +9 -0
  161. package/dist/components/inputs/index.d.ts +55 -0
  162. package/dist/components/inputs/inputGroupLogic.d.ts +22 -0
  163. package/dist/components/inputs/inputGroupLogic.js +9 -0
  164. package/dist/components/inputs/inputLogic.d.ts +25 -0
  165. package/dist/components/inputs/inputLogic.js +10 -0
  166. package/dist/components/inputs/maskLogic.d.ts +34 -0
  167. package/dist/components/inputs/maskLogic.js +57 -0
  168. package/dist/components/inputs/numberStepLogic.d.ts +14 -0
  169. package/dist/components/inputs/numberStepLogic.js +21 -0
  170. package/dist/components/inputs/ratingLogic.d.ts +9 -0
  171. package/dist/components/inputs/ratingLogic.js +22 -0
  172. package/dist/components/inputs/segmentedLogic.d.ts +6 -0
  173. package/dist/components/inputs/segmentedLogic.js +14 -0
  174. package/dist/components/inputs/selectLogic.d.ts +89 -0
  175. package/dist/components/inputs/selectLogic.js +82 -0
  176. package/dist/components/inputs/sliderLogic.d.ts +9 -0
  177. package/dist/components/inputs/sliderLogic.js +17 -0
  178. package/dist/components/inputs/tagInputLogic.d.ts +40 -0
  179. package/dist/components/inputs/tagInputLogic.js +40 -0
  180. package/dist/components/inputs/textareaLogic.d.ts +17 -0
  181. package/dist/components/inputs/textareaLogic.js +13 -0
  182. package/dist/components/inputs/useCalendarFocus.d.ts +13 -0
  183. package/dist/components/inputs/useCalendarFocus.js +25 -0
  184. package/dist/components/inputs/useDatePopSide.d.ts +15 -0
  185. package/dist/components/inputs/useDatePopSide.js +20 -0
  186. package/dist/components/labelsLogic.d.ts +6 -0
  187. package/dist/components/labelsLogic.js +11 -0
  188. package/dist/components/layout/KapiAccessCard.d.ts +40 -0
  189. package/dist/components/layout/KapiAccessCard.js +66 -0
  190. package/dist/components/layout/KapiAccountMenu.d.ts +61 -0
  191. package/dist/components/layout/KapiAccountMenu.js +212 -0
  192. package/dist/components/layout/KapiCard.d.ts +43 -0
  193. package/dist/components/layout/KapiCard.js +53 -0
  194. package/dist/components/layout/KapiCluster.d.ts +15 -0
  195. package/dist/components/layout/KapiCluster.js +21 -0
  196. package/dist/components/layout/KapiContextSlot.d.ts +45 -0
  197. package/dist/components/layout/KapiContextSlot.js +92 -0
  198. package/dist/components/layout/KapiDivider.d.ts +16 -0
  199. package/dist/components/layout/KapiDivider.js +41 -0
  200. package/dist/components/layout/KapiGrid.d.ts +19 -0
  201. package/dist/components/layout/KapiGrid.js +25 -0
  202. package/dist/components/layout/KapiNotificationBell.d.ts +75 -0
  203. package/dist/components/layout/KapiNotificationBell.js +196 -0
  204. package/dist/components/layout/KapiPageHeader.d.ts +28 -0
  205. package/dist/components/layout/KapiPageHeader.js +47 -0
  206. package/dist/components/layout/KapiPanelParts.d.ts +35 -0
  207. package/dist/components/layout/KapiPanelParts.js +63 -0
  208. package/dist/components/layout/KapiRail.d.ts +40 -0
  209. package/dist/components/layout/KapiRail.js +102 -0
  210. package/dist/components/layout/KapiScrollArea.d.ts +40 -0
  211. package/dist/components/layout/KapiScrollArea.js +49 -0
  212. package/dist/components/layout/KapiShell.d.ts +40 -0
  213. package/dist/components/layout/KapiShell.js +48 -0
  214. package/dist/components/layout/KapiStack.d.ts +11 -0
  215. package/dist/components/layout/KapiStack.js +19 -0
  216. package/dist/components/layout/accessCardLogic.d.ts +18 -0
  217. package/dist/components/layout/accessCardLogic.js +11 -0
  218. package/dist/components/layout/cardLogic.d.ts +9 -0
  219. package/dist/components/layout/cardLogic.js +11 -0
  220. package/dist/components/layout/index.d.ts +33 -0
  221. package/dist/components/layout/layoutPrimitives.d.ts +51 -0
  222. package/dist/components/layout/layoutPrimitives.js +58 -0
  223. package/dist/components/layout/notificationBellLogic.d.ts +20 -0
  224. package/dist/components/layout/notificationBellLogic.js +14 -0
  225. package/dist/components/layout/railLogic.d.ts +52 -0
  226. package/dist/components/layout/railLogic.js +16 -0
  227. package/dist/components/locale/KapiLocaleProvider.d.ts +29 -0
  228. package/dist/components/locale/KapiLocaleProvider.js +27 -0
  229. package/dist/components/locale/index.d.ts +5 -0
  230. package/dist/components/locale/labelRegistry.d.ts +110 -0
  231. package/dist/components/locale/linkLabels.d.ts +6 -0
  232. package/dist/components/locale/linkLabels.js +4 -0
  233. package/dist/components/navigation/CtxSlidingList.d.ts +11 -0
  234. package/dist/components/navigation/CtxSlidingList.js +24 -0
  235. package/dist/components/navigation/KapiAccordion.d.ts +24 -0
  236. package/dist/components/navigation/KapiAccordion.js +68 -0
  237. package/dist/components/navigation/KapiBreadcrumb.d.ts +23 -0
  238. package/dist/components/navigation/KapiBreadcrumb.js +32 -0
  239. package/dist/components/navigation/KapiCollapsiblePanel.d.ts +63 -0
  240. package/dist/components/navigation/KapiCollapsiblePanel.js +83 -0
  241. package/dist/components/navigation/KapiContextPanel.d.ts +117 -0
  242. package/dist/components/navigation/KapiContextPanel.js +265 -0
  243. package/dist/components/navigation/KapiFilterChips.d.ts +30 -0
  244. package/dist/components/navigation/KapiFilterChips.js +40 -0
  245. package/dist/components/navigation/KapiNavBadge.d.ts +26 -0
  246. package/dist/components/navigation/KapiNavBadge.js +33 -0
  247. package/dist/components/navigation/KapiPanelGroup.d.ts +69 -0
  248. package/dist/components/navigation/KapiPanelGroup.js +149 -0
  249. package/dist/components/navigation/KapiSteps.d.ts +43 -0
  250. package/dist/components/navigation/KapiSteps.js +63 -0
  251. package/dist/components/navigation/KapiTabs.d.ts +56 -0
  252. package/dist/components/navigation/KapiTabs.js +81 -0
  253. package/dist/components/navigation/KapiTree.d.ts +56 -0
  254. package/dist/components/navigation/KapiTree.js +157 -0
  255. package/dist/components/navigation/KapiWizard.d.ts +49 -0
  256. package/dist/components/navigation/KapiWizard.js +104 -0
  257. package/dist/components/navigation/MiniNavItem.d.ts +35 -0
  258. package/dist/components/navigation/MiniNavItem.js +57 -0
  259. package/dist/components/navigation/accordionLogic.d.ts +4 -0
  260. package/dist/components/navigation/accordionLogic.js +4 -0
  261. package/dist/components/navigation/activeItemLogic.d.ts +7 -0
  262. package/dist/components/navigation/activeItemLogic.js +4 -0
  263. package/dist/components/navigation/breadcrumbLogic.d.ts +8 -0
  264. package/dist/components/navigation/breadcrumbLogic.js +4 -0
  265. package/dist/components/navigation/contextPanelLogic.d.ts +27 -0
  266. package/dist/components/navigation/contextPanelLogic.js +11 -0
  267. package/dist/components/navigation/filterChipsLogic.d.ts +23 -0
  268. package/dist/components/navigation/filterChipsLogic.js +20 -0
  269. package/dist/components/navigation/index.d.ts +39 -0
  270. package/dist/components/navigation/navBadgeLogic.d.ts +26 -0
  271. package/dist/components/navigation/navBadgeLogic.js +16 -0
  272. package/dist/components/navigation/panelGroupLogic.d.ts +15 -0
  273. package/dist/components/navigation/panelGroupLogic.js +13 -0
  274. package/dist/components/navigation/panelMini.d.ts +13 -0
  275. package/dist/components/navigation/panelMini.js +9 -0
  276. package/dist/components/navigation/panelMiniLogic.d.ts +19 -0
  277. package/dist/components/navigation/panelMiniLogic.js +6 -0
  278. package/dist/components/navigation/stepsLogic.d.ts +25 -0
  279. package/dist/components/navigation/stepsLogic.js +10 -0
  280. package/dist/components/navigation/tabsLogic.d.ts +12 -0
  281. package/dist/components/navigation/tabsLogic.js +14 -0
  282. package/dist/components/navigation/treeLogic.d.ts +80 -0
  283. package/dist/components/navigation/treeLogic.js +91 -0
  284. package/dist/components/navigation/wizardLogic.d.ts +11 -0
  285. package/dist/components/navigation/wizardLogic.js +7 -0
  286. package/dist/components/overlays/KapiCanvasForm.d.ts +42 -0
  287. package/dist/components/overlays/KapiCanvasForm.js +60 -0
  288. package/dist/components/overlays/KapiCommandPalette.d.ts +58 -0
  289. package/dist/components/overlays/KapiCommandPalette.js +152 -0
  290. package/dist/components/overlays/KapiConfirm.d.ts +48 -0
  291. package/dist/components/overlays/KapiConfirm.js +94 -0
  292. package/dist/components/overlays/KapiContextMenu.d.ts +51 -0
  293. package/dist/components/overlays/KapiContextMenu.js +90 -0
  294. package/dist/components/overlays/KapiDialogHost.d.ts +23 -0
  295. package/dist/components/overlays/KapiDialogHost.js +129 -0
  296. package/dist/components/overlays/KapiDropdown.d.ts +30 -0
  297. package/dist/components/overlays/KapiDropdown.js +84 -0
  298. package/dist/components/overlays/KapiLoading.d.ts +14 -0
  299. package/dist/components/overlays/KapiLoading.js +43 -0
  300. package/dist/components/overlays/KapiMenuButton.d.ts +25 -0
  301. package/dist/components/overlays/KapiMenuButton.js +109 -0
  302. package/dist/components/overlays/KapiModal.d.ts +61 -0
  303. package/dist/components/overlays/KapiModal.js +106 -0
  304. package/dist/components/overlays/KapiOffcanvas.d.ts +96 -0
  305. package/dist/components/overlays/KapiOffcanvas.js +209 -0
  306. package/dist/components/overlays/KapiOffcanvasStack.d.ts +58 -0
  307. package/dist/components/overlays/KapiOffcanvasStack.js +84 -0
  308. package/dist/components/overlays/KapiPhotoView.d.ts +60 -0
  309. package/dist/components/overlays/KapiPhotoView.js +122 -0
  310. package/dist/components/overlays/KapiPopover.d.ts +46 -0
  311. package/dist/components/overlays/KapiPopover.js +68 -0
  312. package/dist/components/overlays/KapiShapeSheet.d.ts +34 -0
  313. package/dist/components/overlays/KapiShapeSheet.js +82 -0
  314. package/dist/components/overlays/KapiSplitModal.d.ts +41 -0
  315. package/dist/components/overlays/KapiSplitModal.js +125 -0
  316. package/dist/components/overlays/KapiTooltip.d.ts +38 -0
  317. package/dist/components/overlays/KapiTooltip.js +105 -0
  318. package/dist/components/overlays/canvasFormLogic.d.ts +18 -0
  319. package/dist/components/overlays/canvasFormLogic.js +16 -0
  320. package/dist/components/overlays/commandPaletteLogic.d.ts +29 -0
  321. package/dist/components/overlays/commandPaletteLogic.js +19 -0
  322. package/dist/components/overlays/dialogStore.d.ts +114 -0
  323. package/dist/components/overlays/dialogStore.js +76 -0
  324. package/dist/components/overlays/dialogUtils.d.ts +72 -0
  325. package/dist/components/overlays/dialogUtils.js +62 -0
  326. package/dist/components/overlays/exitPresenceLogic.d.ts +14 -0
  327. package/dist/components/overlays/exitPresenceLogic.js +5 -0
  328. package/dist/components/overlays/index.d.ts +38 -0
  329. package/dist/components/overlays/menuButtonLogic.d.ts +58 -0
  330. package/dist/components/overlays/menuButtonLogic.js +9 -0
  331. package/dist/components/overlays/menuKeyboardLogic.d.ts +25 -0
  332. package/dist/components/overlays/menuKeyboardLogic.js +30 -0
  333. package/dist/components/overlays/offcanvasCompanion.d.ts +16 -0
  334. package/dist/components/overlays/offcanvasCompanion.js +6 -0
  335. package/dist/components/overlays/offcanvasResize.d.ts +22 -0
  336. package/dist/components/overlays/offcanvasResize.js +10 -0
  337. package/dist/components/overlays/offcanvasSide.d.ts +30 -0
  338. package/dist/components/overlays/offcanvasSide.js +29 -0
  339. package/dist/components/overlays/offcanvasStack.d.ts +76 -0
  340. package/dist/components/overlays/offcanvasStack.js +72 -0
  341. package/dist/components/overlays/overlayPortal.d.ts +9 -0
  342. package/dist/components/overlays/overlayPortal.js +6 -0
  343. package/dist/components/overlays/popoverLogic.d.ts +94 -0
  344. package/dist/components/overlays/popoverLogic.js +47 -0
  345. package/dist/components/overlays/splitModalLayout.d.ts +8 -0
  346. package/dist/components/overlays/splitModalLayout.js +5 -0
  347. package/dist/components/overlays/useExitPresence.d.ts +14 -0
  348. package/dist/components/overlays/useExitPresence.js +34 -0
  349. package/dist/components/overlays/useNativeDialog.d.ts +30 -0
  350. package/dist/components/overlays/useNativeDialog.js +56 -0
  351. package/dist/components/rootProps.d.ts +17 -0
  352. package/dist/components/rootProps.js +4 -0
  353. package/dist/hooks/breakpointOpenLogic.d.ts +7 -0
  354. package/dist/hooks/breakpointOpenLogic.js +4 -0
  355. package/dist/hooks/dateFormat.d.ts +12 -0
  356. package/dist/hooks/dateFormat.js +15 -0
  357. package/dist/hooks/downloadLogic.d.ts +31 -0
  358. package/dist/hooks/downloadLogic.js +85 -0
  359. package/dist/hooks/focusLogic.d.ts +18 -0
  360. package/dist/hooks/focusLogic.js +17 -0
  361. package/dist/hooks/growOriginLogic.d.ts +22 -0
  362. package/dist/hooks/growOriginLogic.js +10 -0
  363. package/dist/hooks/hotkeyLogic.d.ts +22 -0
  364. package/dist/hooks/hotkeyLogic.js +32 -0
  365. package/dist/hooks/index.d.ts +49 -0
  366. package/dist/hooks/kapiRoot.d.ts +16 -0
  367. package/dist/hooks/kapiRoot.js +9 -0
  368. package/dist/hooks/onlineStatusLogic.d.ts +31 -0
  369. package/dist/hooks/onlineStatusLogic.js +28 -0
  370. package/dist/hooks/persistentStateLogic.d.ts +12 -0
  371. package/dist/hooks/persistentStateLogic.js +17 -0
  372. package/dist/hooks/rafThrottle.d.ts +33 -0
  373. package/dist/hooks/rafThrottle.js +33 -0
  374. package/dist/hooks/recentLogic.d.ts +9 -0
  375. package/dist/hooks/recentLogic.js +10 -0
  376. package/dist/hooks/reducedMotion.d.ts +13 -0
  377. package/dist/hooks/reducedMotion.js +5 -0
  378. package/dist/hooks/rightClick.d.ts +37 -0
  379. package/dist/hooks/rightClick.js +30 -0
  380. package/dist/hooks/scrollCollapseLogic.d.ts +12 -0
  381. package/dist/hooks/scrollCollapseLogic.js +4 -0
  382. package/dist/hooks/scrollEdgesLogic.d.ts +49 -0
  383. package/dist/hooks/scrollEdgesLogic.js +19 -0
  384. package/dist/hooks/slidingIndicatorLogic.d.ts +25 -0
  385. package/dist/hooks/slidingIndicatorLogic.js +15 -0
  386. package/dist/hooks/storageLogic.d.ts +15 -0
  387. package/dist/hooks/storageLogic.js +24 -0
  388. package/dist/hooks/unsavedGuardLogic.d.ts +17 -0
  389. package/dist/hooks/unsavedGuardLogic.js +17 -0
  390. package/dist/hooks/useDragScroll.d.ts +12 -0
  391. package/dist/hooks/useDragScroll.js +32 -0
  392. package/dist/hooks/useGlobalRightClick.d.ts +14 -0
  393. package/dist/hooks/useGlobalRightClick.js +35 -0
  394. package/dist/hooks/useGrowOrigin.d.ts +13 -0
  395. package/dist/hooks/useGrowOrigin.js +16 -0
  396. package/dist/hooks/useHotkey.d.ts +15 -0
  397. package/dist/hooks/useHotkey.js +31 -0
  398. package/dist/hooks/useKapiTheme.d.ts +69 -0
  399. package/dist/hooks/useKapiTheme.js +88 -0
  400. package/dist/hooks/useMediaQuery.d.ts +6 -0
  401. package/dist/hooks/useMediaQuery.js +13 -0
  402. package/dist/hooks/useObjectUrl.d.ts +6 -0
  403. package/dist/hooks/useObjectUrl.js +19 -0
  404. package/dist/hooks/useOnlineStatus.d.ts +7 -0
  405. package/dist/hooks/useOnlineStatus.js +7 -0
  406. package/dist/hooks/usePersistentState.d.ts +19 -0
  407. package/dist/hooks/usePersistentState.js +37 -0
  408. package/dist/hooks/usePlacement.d.ts +36 -0
  409. package/dist/hooks/usePlacement.js +84 -0
  410. package/dist/hooks/useRecent.d.ts +17 -0
  411. package/dist/hooks/useRecent.js +16 -0
  412. package/dist/hooks/useScrollCollapse.d.ts +10 -0
  413. package/dist/hooks/useScrollCollapse.js +27 -0
  414. package/dist/hooks/useScrollEdges.d.ts +32 -0
  415. package/dist/hooks/useScrollEdges.js +91 -0
  416. package/dist/hooks/useSlidingIndicator.d.ts +23 -0
  417. package/dist/hooks/useSlidingIndicator.js +51 -0
  418. package/dist/hooks/useUnsavedGuard.d.ts +70 -0
  419. package/dist/hooks/useUnsavedGuard.js +47 -0
  420. package/dist/index.d.ts +12 -0
  421. package/dist/index.js +162 -0
  422. package/dist/kapi.css +2 -0
  423. package/dist/kapi.layered.css +4 -0
  424. package/package.json +86 -4
@@ -0,0 +1,174 @@
1
+ //#region src/components/inputs/datePickerLogic.ts
2
+ var e = [
3
+ "enero",
4
+ "febrero",
5
+ "marzo",
6
+ "abril",
7
+ "mayo",
8
+ "junio",
9
+ "julio",
10
+ "agosto",
11
+ "septiembre",
12
+ "octubre",
13
+ "noviembre",
14
+ "diciembre"
15
+ ], t = [
16
+ "L",
17
+ "M",
18
+ "X",
19
+ "J",
20
+ "V",
21
+ "S",
22
+ "D"
23
+ ], n = [
24
+ "lunes",
25
+ "martes",
26
+ "miércoles",
27
+ "jueves",
28
+ "viernes",
29
+ "sábado",
30
+ "domingo"
31
+ ], r = {
32
+ openPicker: "Abrir selector",
33
+ prevMonth: "Mes anterior",
34
+ nextMonth: "Mes siguiente",
35
+ clear: "Borrar",
36
+ today: "Hoy",
37
+ months: e,
38
+ weekdays: t,
39
+ weekdayNames: n
40
+ }, i = {
41
+ months: e,
42
+ weekdays: t,
43
+ weekdayNames: n
44
+ }, a = {
45
+ calendar: "gregory",
46
+ numberingSystem: "latn"
47
+ }, o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = (e) => {
48
+ let t = (t) => new Intl.DateTimeFormat(e, {
49
+ ...t,
50
+ ...a,
51
+ timeZone: "UTC"
52
+ }), n = t({ month: "long" }), r = t({ weekday: "narrow" }), i = t({ weekday: "long" }), o = new Intl.Locale(e).language === "es", s = Array.from({ length: 12 }, (t, r) => {
53
+ let i = n.format(Date.UTC(2024, r, 1));
54
+ return o ? i.toLocaleLowerCase(e) : i;
55
+ }), c = Array.from({ length: 7 }, (e, t) => Date.UTC(2024, 0, 1 + t));
56
+ return {
57
+ months: s,
58
+ weekdays: c.map((e) => r.format(e)),
59
+ weekdayNames: c.map((e) => i.format(e))
60
+ };
61
+ }, l = (e) => {
62
+ if (!e) return i;
63
+ let t = o.get(e);
64
+ if (!t) {
65
+ try {
66
+ t = c(e);
67
+ } catch {
68
+ t = i;
69
+ }
70
+ o.set(e, t);
71
+ }
72
+ return t;
73
+ }, u = (e) => {
74
+ if (!e) return r;
75
+ let t = s.get(e);
76
+ return t || (t = {
77
+ ...r,
78
+ ...l(e)
79
+ }, s.set(e, t)), t;
80
+ }, d = (t, n = e) => `${n[t.getMonth()] ?? ""} ${t.getFullYear()}`, f = (e) => String(e).padStart(2, "0"), p = (e = 1, t) => {
81
+ let n = Number.isInteger(e) && e >= 1 && e <= 59 ? e : 1, r = Array.from({ length: Math.ceil(60 / n) }, (e, t) => t * n);
82
+ return t != null && !r.includes(t) && r.push(t), r.sort((e, t) => e - t);
83
+ }, m = (e) => e === "date" || e === "datetime", h = (e) => e === "time" || e === "datetime", g = (e, t) => !!e && !!t && e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate(), _ = (e, t) => e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth(), v = (e) => (e.getDay() + 6) % 7, y = /* @__PURE__ */ new Map(), b = (e) => {
84
+ if (y.has(e)) return y.get(e) ?? null;
85
+ let t = null;
86
+ try {
87
+ new Intl.Locale(e).language !== "es" && (t = new Intl.DateTimeFormat(e, {
88
+ ...a,
89
+ weekday: "long",
90
+ day: "numeric",
91
+ month: "long",
92
+ year: "numeric"
93
+ }));
94
+ } catch {
95
+ t = null;
96
+ }
97
+ return y.set(e, t), t;
98
+ }, x = (e, t = r, n) => {
99
+ let i = n ? b(n) : null;
100
+ return i ? i.format(e) : `${t.weekdayNames[v(e)] ?? ""} ${e.getDate()} de ${t.months[e.getMonth()] ?? ""} de ${e.getFullYear()}`;
101
+ }, S = (e) => {
102
+ let t = [];
103
+ for (let n = 0; n < e.length; n += 7) t.push(e.slice(n, n + 7));
104
+ return t;
105
+ }, C = (e, t) => {
106
+ let n = new Date(e.getFullYear(), e.getMonth() + t, 1), r = new Date(n.getFullYear(), n.getMonth() + 1, 0).getDate();
107
+ return new Date(n.getFullYear(), n.getMonth(), Math.min(e.getDate(), r));
108
+ }, w = (e, t) => new Date(e.getFullYear(), e.getMonth(), e.getDate() + t), T = (e, t) => {
109
+ switch (t.key) {
110
+ case "ArrowRight": return w(e, 1);
111
+ case "ArrowLeft": return w(e, -1);
112
+ case "ArrowDown": return w(e, 7);
113
+ case "ArrowUp": return w(e, -7);
114
+ case "Home": return w(e, -v(e));
115
+ case "End": return w(e, 6 - v(e));
116
+ case "PageUp": return C(e, t.shiftKey ? -12 : -1);
117
+ case "PageDown": return C(e, t.shiftKey ? 12 : 1);
118
+ default: return;
119
+ }
120
+ }, E = (e, t) => {
121
+ let n = (new Date(e, t, 1).getDay() + 6) % 7, r = new Date(e, t + 1, 0).getDate(), i = new Date(e, t, 0).getDate(), a = [];
122
+ for (let r = n - 1; r >= 0; --r) a.push({
123
+ day: i - r,
124
+ out: !0,
125
+ date: new Date(e, t - 1, i - r)
126
+ });
127
+ for (let n = 1; n <= r; n += 1) a.push({
128
+ day: n,
129
+ out: !1,
130
+ date: new Date(e, t, n)
131
+ });
132
+ for (let n = 1; a.length < 42; n += 1) a.push({
133
+ day: n,
134
+ out: !0,
135
+ date: new Date(e, t + 1, n)
136
+ });
137
+ return a;
138
+ }, D = (e, t) => e ? [m(t) ? `${f(e.getDate())}/${f(e.getMonth() + 1)}/${e.getFullYear()}` : "", h(t) ? `${f(e.getHours())}:${f(e.getMinutes())}` : ""].filter(Boolean).join(" ") : "", O = (e, t) => {
139
+ if (!e) return "";
140
+ let n = `${String(e.getFullYear()).padStart(4, "0")}-${f(e.getMonth() + 1)}-${f(e.getDate())}`, r = `${f(e.getHours())}:${f(e.getMinutes())}`;
141
+ return t === "time" ? r : t === "datetime" ? `${n}T${r}` : n;
142
+ }, k = (e, t) => {
143
+ let n = (e || "").replace(/\D/g, ""), r;
144
+ if (m(t)) {
145
+ let e = n.slice(0, 8);
146
+ if (r = e.slice(0, 2), e.length > 2 && (r += `/${e.slice(2, 4)}`), e.length > 4 && (r += `/${e.slice(4, 8)}`), h(t)) {
147
+ let e = n.slice(8, 12);
148
+ e.length && (r += ` ${e.slice(0, 2)}`), e.length > 2 && (r += `:${e.slice(2, 4)}`);
149
+ }
150
+ } else {
151
+ let e = n.slice(0, 4);
152
+ r = e.slice(0, 2), e.length > 2 && (r += `:${e.slice(2, 4)}`);
153
+ }
154
+ return r;
155
+ }, A = (e, t, n = null, r = /* @__PURE__ */ new Date()) => {
156
+ let i = (e || "").trim();
157
+ if (!i) return null;
158
+ let a = m(t), o = h(t), s = i.match(/(\d{1,2})\/(\d{1,2})\/(\d{2,4})/), c = i.match(/(\d{1,2}):(\d{2})/), l;
159
+ if (a) {
160
+ if (!s) return;
161
+ let e = Number(s[3].length === 2 ? `20${s[3]}` : s[3]), t = Number(s[2]) - 1, n = Number(s[1]);
162
+ if (l = new Date(e, t, n), Number.isNaN(l.getTime()) || l.getMonth() !== t || l.getDate() !== n) return;
163
+ } else l = new Date(n ?? r);
164
+ if (o) {
165
+ if (c) {
166
+ let e = Number(c[1]), t = Number(c[2]);
167
+ if (e > 23 || t > 59) return;
168
+ l.setHours(e, t);
169
+ } else if (!a) return;
170
+ }
171
+ return l;
172
+ };
173
+ //#endregion
174
+ export { r as DEFAULT_CALENDAR_LABELS, e as MESES, t as WEEKDAYS, n as WEEKDAY_NAMES, E as buildDays, x as calendarDayLabel, l as calendarNames, S as calendarRows, O as formDateValue, D as formatValue, m as hasCalendar, h as hasTime, u as localizedCalendarLabels, k as maskInput, p as minuteOptions, d as monthTitle, T as moveCalendarFocus, f as pad, A as parseText, g as sameDay, _ as sameMonth };
@@ -0,0 +1,31 @@
1
+ export type KapiDateRange = {
2
+ from: Date | null;
3
+ to: Date | null;
4
+ };
5
+ export declare const EMPTY_RANGE: KapiDateRange;
6
+ /** Separador visible entre las dos fechas. */
7
+ export declare const RANGE_SEPARATOR = " \u2013 ";
8
+ /** Rango con las dos puntas. */
9
+ export declare const isCompleteRange: (range: KapiDateRange) => boolean;
10
+ /** Mismo rango, comparando por día. */
11
+ export declare const sameRange: (a: KapiDateRange, b: KapiDateRange) => boolean;
12
+ /**
13
+ * Click en un día del calendario: el primero arranca el rango, el segundo lo cierra (ordenando las
14
+ * puntas). Con un rango ya completo, el click empieza uno nuevo.
15
+ */
16
+ export declare const pickRangeDay: (range: KapiDateRange, day: Date) => KapiDateRange;
17
+ export type RangeDayState = "start" | "end" | "in" | "single" | null;
18
+ /**
19
+ * Cómo se pinta un día: extremo inicial/final, intermedio, rango de un día o nada. Con sólo el inicio
20
+ * elegido, `hover` previsualiza el rango hacia el día bajo el puntero (en cualquier dirección).
21
+ */
22
+ export declare const rangeDayState: (day: Date, range: KapiDateRange, hover?: Date | null) => RangeDayState;
23
+ /** `dd/mm/aaaa – dd/mm/aaaa`; con sólo el inicio, la primera fecha; vacío sin nada. */
24
+ export declare const formatRange: (range: KapiDateRange) => string;
25
+ /** Máscara de teclado: 16 dígitos repartidos en `dd/mm/aaaa – dd/mm/aaaa`. */
26
+ export declare const maskRangeInput: (raw: string) => string;
27
+ /**
28
+ * Parsea el texto tipeado. `null`: vacío (borrar). `undefined`: incompleto o inválido (el caller
29
+ * restaura el último rango válido). Si las fechas vienen invertidas, las ordena.
30
+ */
31
+ export declare const parseRangeText: (text: string) => KapiDateRange | null | undefined;
@@ -0,0 +1,44 @@
1
+ import { formatValue as e, maskInput as t, parseText as n, sameDay as r } from "./datePickerLogic.js";
2
+ //#region src/components/inputs/dateRangeLogic.ts
3
+ var i = {
4
+ from: null,
5
+ to: null
6
+ }, a = " – ", o = (e) => new Date(e.getFullYear(), e.getMonth(), e.getDate()), s = (e, t) => o(e) <= o(t) ? [e, t] : [t, e], c = (e) => !!e.from && !!e.to, l = (e, t) => (e.from ? r(e.from, t.from) : !t.from) && (e.to ? r(e.to, t.to) : !t.to), u = (e, t) => {
7
+ let n = o(t);
8
+ if (!e.from || e.to) return {
9
+ from: n,
10
+ to: null
11
+ };
12
+ let [r, i] = s(e.from, n);
13
+ return {
14
+ from: o(r),
15
+ to: o(i)
16
+ };
17
+ }, d = (e, t, n) => {
18
+ if (!t.from) return null;
19
+ let i = t.to ?? n ?? null;
20
+ if (!i) return r(e, t.from) ? "single" : null;
21
+ let [a, c] = s(t.from, i);
22
+ if (r(a, c)) return r(e, a) ? "single" : null;
23
+ if (r(e, a)) return "start";
24
+ if (r(e, c)) return "end";
25
+ let l = o(e).getTime();
26
+ return l > o(a).getTime() && l < o(c).getTime() ? "in" : null;
27
+ }, f = (t) => [e(t.from, "date"), e(t.to, "date")].filter(Boolean).join(a), p = (e) => {
28
+ let n = (e || "").replace(/\D/g, "").slice(0, 16), r = t(n.slice(0, 8), "date"), i = t(n.slice(8), "date");
29
+ return i ? `${r}${a}${i}` : r;
30
+ }, m = (e) => {
31
+ let t = (e || "").trim();
32
+ if (!t) return null;
33
+ let r = t.split(/\s*[–-]\s*/);
34
+ if (r.length !== 2) return;
35
+ let i = n(r[0], "date"), a = n(r[1], "date");
36
+ if (!i || !a) return;
37
+ let [o, c] = s(i, a);
38
+ return {
39
+ from: o,
40
+ to: c
41
+ };
42
+ };
43
+ //#endregion
44
+ export { i as EMPTY_RANGE, a as RANGE_SEPARATOR, f as formatRange, c as isCompleteRange, p as maskRangeInput, m as parseRangeText, u as pickRangeDay, d as rangeDayState, l as sameRange };
@@ -0,0 +1,69 @@
1
+ /**
2
+ * `list` abre sus opciones; `date` pide una fecha; `dateRange` pide un rango (desde/hasta) en un solo
3
+ * calendario; `flag` se aplica directo.
4
+ */
5
+ export type KapiFacetKind = "list" | "date" | "dateRange" | "flag";
6
+ export type KapiFacetOption = {
7
+ value: string;
8
+ label: string;
9
+ /** Cuántos resultados tiene la opción; se muestra a la derecha y se lee ("Pendiente, 4"). */
10
+ count?: number | undefined;
11
+ };
12
+ export type KapiFacet = {
13
+ key: string;
14
+ label: string;
15
+ kind: KapiFacetKind;
16
+ /** Opciones de una faceta `list`. */
17
+ options?: ReadonlyArray<KapiFacetOption> | undefined;
18
+ /**
19
+ * Recibe el valor elegido: el `value` de la opción, la fecha como `yyyy-mm-dd`, el rango como
20
+ * `yyyy-mm-dd/yyyy-mm-dd` (ver `parseDateRangeValue`) o `"true"` (flag).
21
+ */
22
+ apply: (value: string) => void;
23
+ };
24
+ /** Filtro activo que la barra muestra como chip removible. */
25
+ export type KapiFacetChip = {
26
+ key: string;
27
+ label: string;
28
+ onRemove: () => void;
29
+ };
30
+ export type KapiFacetMenuItem = {
31
+ type: "text";
32
+ text: string;
33
+ } | {
34
+ type: "facet";
35
+ facet: KapiFacet;
36
+ } | {
37
+ type: "option";
38
+ option: KapiFacetOption;
39
+ };
40
+ /**
41
+ * Ítems del desplegable. Sin faceta pendiente: "buscar el texto" (si hay) y las facetas que coinciden.
42
+ * Con una faceta `list` pendiente: sus opciones que coinciden. Con una `date` o `dateRange`: nada (decide
43
+ * el calendario).
44
+ */
45
+ export declare function facetMenuItems(facets: ReadonlyArray<KapiFacet>, pending: KapiFacet | null, input: string): KapiFacetMenuItem[];
46
+ /** Mueve el ítem activo con vuelta; desde `-1` entra por el extremo según la dirección. */
47
+ export declare const moveActive: (index: number, count: number, delta: 1 | -1) => number;
48
+ export type KapiFacetKeyAction = "next" | "prev" | "select" | "text" | "cancel" | "close" | "dropPending" | "removeLast";
49
+ /** Qué hace una tecla en el input de la barra. `null` = dejar que el input la maneje. */
50
+ export declare function facetKeyAction(key: string, s: {
51
+ input: string;
52
+ pending: boolean;
53
+ active: number;
54
+ open: boolean;
55
+ chips: number;
56
+ }): KapiFacetKeyAction | null;
57
+ /** Fecha local como `yyyy-mm-dd` (el valor que recibe el `apply` de una faceta `date`). */
58
+ export declare const toDateValue: (d: Date) => string;
59
+ /** Rango local como `yyyy-mm-dd/yyyy-mm-dd` (intervalo ISO 8601: el valor que recibe una faceta `dateRange`). */
60
+ export declare const toDateRangeValue: (from: Date, to: Date) => string;
61
+ /** Separa el valor de una faceta `dateRange` en `{ from, to }` (`yyyy-mm-dd`); `null` si no tiene esa forma. */
62
+ export declare const parseDateRangeValue: (value: string) => {
63
+ from: string;
64
+ to: string;
65
+ } | null;
66
+ /** Nombre accesible de una opción: con `count`, "Pendiente, 4". */
67
+ export declare const facetOptionName: (option: KapiFacetOption) => string;
68
+ /** ¿El valor de la faceta se elige en un calendario (fecha o rango) en vez del desplegable? */
69
+ export declare const isDateFacet: (facet: KapiFacet | null) => boolean;
@@ -0,0 +1,39 @@
1
+ import { normalizeFilterText as e } from "../data/tableLogic.js";
2
+ //#region src/components/inputs/facetedSearchLogic.ts
3
+ var t = (t, n) => !n || e(t).includes(n);
4
+ function n(n, r, i) {
5
+ let a = e(i);
6
+ if (r) return r.kind === "list" ? (r.options ?? []).filter((e) => t(e.label, a)).map((e) => ({
7
+ type: "option",
8
+ option: e
9
+ })) : [];
10
+ let o = i.trim(), s = o ? [{
11
+ type: "text",
12
+ text: o
13
+ }] : [];
14
+ for (let e of n) t(e.label, a) && s.push({
15
+ type: "facet",
16
+ facet: e
17
+ });
18
+ return s;
19
+ }
20
+ var r = (e, t, n) => t === 0 ? -1 : e < 0 ? n > 0 ? 0 : t - 1 : (e + n + t) % t;
21
+ function i(e, t) {
22
+ switch (e) {
23
+ case "ArrowDown": return "next";
24
+ case "ArrowUp": return "prev";
25
+ case "Enter": return t.open && t.active >= 0 ? "select" : !t.pending && t.input.trim() ? "text" : null;
26
+ case "Escape": return t.pending ? "cancel" : t.open ? "close" : null;
27
+ case "Backspace": return t.input === "" ? t.pending ? "dropPending" : t.chips > 0 ? "removeLast" : null : null;
28
+ default: return null;
29
+ }
30
+ }
31
+ var a = (e) => `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`, o = (e, t) => `${a(e)}/${a(t)}`, s = (e) => {
32
+ let t = /^(\d{4}-\d{2}-\d{2})\/(\d{4}-\d{2}-\d{2})$/.exec(e);
33
+ return t ? {
34
+ from: t[1],
35
+ to: t[2]
36
+ } : null;
37
+ }, c = (e) => e.count === void 0 ? e.label : `${e.label}, ${e.count}`, l = (e) => e?.kind === "date" || e?.kind === "dateRange";
38
+ //#endregion
39
+ export { i as facetKeyAction, n as facetMenuItems, c as facetOptionName, l as isDateFacet, r as moveActive, s as parseDateRangeValue, o as toDateRangeValue, a as toDateValue };
@@ -0,0 +1,67 @@
1
+ import type { AriaAttributes, Ref } from "react";
2
+ /** Lo que un `KapiField` le pasa al control que tiene adentro. */
3
+ export type KapiFieldContextValue = {
4
+ controlId: string;
5
+ labelId?: string | undefined;
6
+ helpId?: string | undefined;
7
+ required: boolean;
8
+ invalid: boolean;
9
+ };
10
+ /** Suma ids para `aria-describedby`/`aria-labelledby`: sin vacíos ni repetidos; `undefined` si no queda ninguno. */
11
+ export declare const joinIds: (...ids: (string | undefined | null | false)[]) => string | undefined;
12
+ /** Ids del campo: el del control (`htmlFor` o automático), el del label y el de la ayuda. */
13
+ export declare const fieldIds: ({ htmlFor, autoId, helpId, hasHelp }: {
14
+ htmlFor?: string | undefined;
15
+ autoId: string;
16
+ helpId?: string | undefined;
17
+ hasHelp: boolean;
18
+ }) => {
19
+ controlId: string;
20
+ labelId: string;
21
+ helpId?: string;
22
+ };
23
+ /**
24
+ * Atributos de accesibilidad del control: lo propio gana; la descripción del campo se suma a la propia.
25
+ * Un control que no es un elemento etiquetable (`labelable: false`, p. ej. un `div` combobox) se nombra
26
+ * con `aria-labelledby`, porque el `for` del label no le llega; salvo que ya tenga `aria-label`.
27
+ */
28
+ export declare const fieldControlProps: (ctx: KapiFieldContextValue | null, own: {
29
+ id?: string | undefined;
30
+ describedBy?: string | undefined;
31
+ invalid?: boolean | undefined;
32
+ required?: boolean | undefined;
33
+ labelable?: boolean | undefined;
34
+ ariaLabel?: string | undefined;
35
+ }) => {
36
+ id: string | undefined;
37
+ "aria-describedby": string | undefined;
38
+ "aria-invalid": true | undefined;
39
+ "aria-required": true | undefined;
40
+ "aria-labelledby": string | undefined;
41
+ };
42
+ /**
43
+ * Atributos de campo de un control nativo (checkbox, switch, radio, range): los `aria-*` propios ganan,
44
+ * después `invalid`/`required` y por último el `KapiField`. Con `takeId: false` no toma el id del campo:
45
+ * los radios de un grupo comparten el campo y no pueden repetir id (se nombran con su propio texto).
46
+ */
47
+ export declare const nativeFieldProps: (ctx: KapiFieldContextValue | null, own: {
48
+ id?: string | undefined;
49
+ describedBy?: string | undefined;
50
+ invalid?: boolean | undefined;
51
+ required?: boolean | undefined;
52
+ ariaInvalid?: AriaAttributes["aria-invalid"] | undefined;
53
+ ariaRequired?: AriaAttributes["aria-required"] | undefined;
54
+ takeId?: boolean | undefined;
55
+ }) => {
56
+ id: string | undefined;
57
+ "aria-describedby": string | undefined;
58
+ "aria-invalid": boolean | "true" | "false" | "grammar" | "spelling" | undefined;
59
+ "aria-required": (boolean | "true" | "false") | undefined;
60
+ };
61
+ /**
62
+ * ¿El foco sale del control? `next` es el `relatedTarget` del blur; `containers` son las partes del
63
+ * control (raíz, menú portaleado…). Sin destino (foco al `body`) cuenta como salida.
64
+ */
65
+ export declare const focusLeaves: (next: EventTarget | null, ...containers: (Node | null | undefined)[]) => boolean;
66
+ /** Asigna un nodo a una ref (función u objeto); sirve para combinar la ref propia con la del usuario. */
67
+ export declare const assignRef: <T>(ref: Ref<T> | undefined, node: T | null) => void;
@@ -0,0 +1,35 @@
1
+ //#region src/components/inputs/fieldLogic.ts
2
+ var e = (...e) => {
3
+ let t = [...new Set(e.flatMap((e) => e ? e.split(/\s+/).filter(Boolean) : []))];
4
+ return t.length ? t.join(" ") : void 0;
5
+ }, t = ({ htmlFor: e, autoId: t, helpId: n, hasHelp: r }) => {
6
+ let i = e ?? t;
7
+ return {
8
+ controlId: i,
9
+ labelId: `${i}-label`,
10
+ ...r ? { helpId: n ?? `${i}-help` } : {}
11
+ };
12
+ }, n = (t, n) => ({
13
+ id: n.id ?? t?.controlId,
14
+ "aria-describedby": e(t?.helpId, n.describedBy),
15
+ "aria-invalid": n.invalid ?? t?.invalid ? !0 : void 0,
16
+ "aria-required": n.required ?? t?.required ? !0 : void 0,
17
+ "aria-labelledby": n.labelable === !1 && !n.ariaLabel ? t?.labelId : void 0
18
+ }), r = (e, t) => {
19
+ let r = n(e, {
20
+ id: t.id,
21
+ describedBy: t.describedBy,
22
+ invalid: t.invalid,
23
+ required: t.required
24
+ });
25
+ return {
26
+ id: t.takeId === !1 ? t.id : r.id,
27
+ "aria-describedby": r["aria-describedby"],
28
+ "aria-invalid": t.ariaInvalid ?? r["aria-invalid"],
29
+ "aria-required": t.ariaRequired ?? r["aria-required"]
30
+ };
31
+ }, i = (e, ...t) => !(e instanceof Node && t.some((t) => t?.contains(e))), a = (e, t) => {
32
+ typeof e == "function" ? e(t) : e && (e.current = t);
33
+ };
34
+ //#endregion
35
+ export { a as assignRef, n as fieldControlProps, t as fieldIds, i as focusLeaves, e as joinIds, r as nativeFieldProps };
@@ -0,0 +1,13 @@
1
+ /** Tamaño legible en KB (como el original: sin decimales). */
2
+ export declare const formatFileSize: (bytes: number) => string;
3
+ /** ¿El archivo cumple el atributo `accept` (`.pdf,image/*,text/plain`)? Sin `accept` todo pasa. */
4
+ export declare const matchesAccept: (file: {
5
+ name: string;
6
+ type: string;
7
+ }, accept?: string) => boolean;
8
+ /** Arma la nueva lista: en `multiple` agrega al final; si no, queda sólo el primero. */
9
+ export declare const mergeFiles: (current: File[], incoming: File[], multiple: boolean) => File[];
10
+ /** Quita el archivo en la posición `index` (sin mutar). */
11
+ export declare const removeFileAt: (files: File[], index: number) => File[];
12
+ /** Teclas que activan la dropzone (rol button): Enter y Espacio. */
13
+ export declare const isActivationKey: (key: string) => boolean;
@@ -0,0 +1,9 @@
1
+ //#region src/components/inputs/fileUploadLogic.ts
2
+ var e = (e) => `${e > 0 ? Math.max(1, Math.round(e / 1024)) : 0} KB`, t = (e, t) => {
3
+ let n = (t ?? "").split(",").map((e) => e.trim().toLowerCase()).filter(Boolean);
4
+ if (n.length === 0) return !0;
5
+ let r = e.name.toLowerCase(), i = e.type.toLowerCase();
6
+ return n.some((e) => e.startsWith(".") ? r.endsWith(e) : e.endsWith("/*") ? i.startsWith(e.slice(0, -1)) : i === e);
7
+ }, n = (e, t, n) => n ? [...e, ...t] : t.slice(0, 1), r = (e, t) => e.filter((e, n) => n !== t), i = (e) => e === "Enter" || e === " " || e === "Spacebar";
8
+ //#endregion
9
+ export { e as formatFileSize, i as isActivationKey, t as matchesAccept, n as mergeFiles, r as removeFileAt };
@@ -0,0 +1,55 @@
1
+ export { KapiButton, buttonClasses } from "./KapiButton";
2
+ export type { KapiButtonProps, KapiButtonSize, KapiButtonVariant } from "./KapiButton";
3
+ export { KapiIconButton, iconButtonClasses } from "./KapiIconButton";
4
+ export type { KapiIconButtonProps } from "./KapiIconButton";
5
+ export { KapiInput, inputClasses, DEFAULT_INPUT_LABELS } from "./KapiInput";
6
+ export type { KapiInputLabels, KapiInputProps, KapiInputSize, KapiTextareaProps } from "./KapiInput";
7
+ export { hasAdornments, inputBoxClasses } from "./inputLogic";
8
+ export { KapiInputGroup, useKapiInputGroup } from "./KapiInputGroup";
9
+ export type { KapiInputGroupProps, KapiInputGroupAddonProps, KapiInputGroupSize } from "./KapiInputGroup";
10
+ export { inputGroupClasses, inputGroupAddonClasses } from "./inputGroupLogic";
11
+ export { KapiField, fieldClasses, helpClasses, useKapiField } from "./KapiField";
12
+ export type { KapiFieldContextValue, KapiFieldProps, KapiFieldStatus } from "./KapiField";
13
+ export { fieldControlProps } from "./fieldLogic";
14
+ export { KapiCheckbox } from "./KapiCheckbox";
15
+ export type { KapiCheckboxProps } from "./KapiCheckbox";
16
+ export { KapiRadio } from "./KapiRadio";
17
+ export type { KapiRadioProps } from "./KapiRadio";
18
+ export { KapiSwitch } from "./KapiSwitch";
19
+ export type { KapiSwitchProps } from "./KapiSwitch";
20
+ export { KapiCheckCard, checkCardClasses } from "./KapiCheckCard";
21
+ export type { KapiCheckCardProps } from "./KapiCheckCard";
22
+ export { KapiSelect, selectClasses, DEFAULT_SELECT_LABELS } from "./KapiSelect";
23
+ export type { KapiSelectLabels } from "./KapiSelect";
24
+ export type { KapiSelectProps, KapiSelectBaseProps, KapiSelectSingleProps, KapiSelectMultiProps, KapiSelectSize, KapiSelectOption, KapiSelectGroup, KapiSelectEntry } from "./KapiSelect";
25
+ export { KapiCalendar } from "./KapiCalendar";
26
+ export { KapiDatePicker } from "./KapiDatePicker";
27
+ export { DEFAULT_CALENDAR_LABELS, calendarNames, localizedCalendarLabels, monthTitle } from "./datePickerLogic";
28
+ export type { KapiCalendarLabels, KapiCalendarNames } from "./datePickerLogic";
29
+ export type { KapiCalendarProps } from "./KapiCalendar";
30
+ export type { KapiDatePickerProps, KapiDatePickerMode } from "./KapiDatePicker";
31
+ export { KapiDateRangePicker, DEFAULT_DATE_RANGE_LABELS } from "./KapiDateRangePicker";
32
+ export type { KapiDateRange, KapiDateRangePickerProps, KapiDateRangePickerLabels } from "./KapiDateRangePicker";
33
+ export { KapiDniInput, KapiCuitInput, KapiCurrencyInput, DEFAULT_CUIT_INPUT_LABELS } from "./KapiMaskedInput";
34
+ export type { KapiDniInputProps, KapiCuitInputLabels, KapiCuitInputProps, KapiCurrencyInputProps } from "./KapiMaskedInput";
35
+ export { cuitCheckDigit, formatCuit, formatCurrency, formatDni, isValidCuit, parseCurrency } from "./maskLogic";
36
+ export { KapiFileUpload, DEFAULT_FILE_UPLOAD_LABELS } from "./KapiFileUpload";
37
+ export type { KapiFileUploadProps, KapiFileUploadLabels } from "./KapiFileUpload";
38
+ export { KapiSegmented } from "./KapiSegmented";
39
+ export type { KapiSegmentedColor, KapiSegmentedItem, KapiSegmentedProps, KapiSegmentedVariant } from "./KapiSegmented";
40
+ export { KapiTextarea, textareaClasses } from "./KapiTextarea";
41
+ export type { KapiTextareaFieldProps } from "./KapiTextarea";
42
+ export { KapiSlider, sliderClasses } from "./KapiSlider";
43
+ export type { KapiSliderProps, KapiSliderTone } from "./KapiSlider";
44
+ export { KapiNumberStepper, stepperClasses, DEFAULT_NUMBER_STEPPER_LABELS } from "./KapiNumberStepper";
45
+ export type { KapiNumberStepperProps, KapiNumberStepperLabels } from "./KapiNumberStepper";
46
+ export { KapiTagInput, tagInputClasses, DEFAULT_TAG_INPUT_LABELS } from "./KapiTagInput";
47
+ export type { KapiTagInputProps, KapiTagInputLabels, KapiTagInputSize } from "./KapiTagInput";
48
+ export { KapiRating, DEFAULT_RATING_LABELS, ratingClasses } from "./KapiRating";
49
+ export type { KapiRatingLabels, KapiRatingProps, KapiRatingSize } from "./KapiRating";
50
+ export { KapiAutocomplete, DEFAULT_AUTOCOMPLETE_LABELS } from "./KapiAutocomplete";
51
+ export type { KapiAutocompleteLabels, KapiAutocompleteProps, KapiAutocompleteRenderContext } from "./KapiAutocomplete";
52
+ export { KapiFacetedSearch, DEFAULT_FACETED_SEARCH_LABELS } from "./KapiFacetedSearch";
53
+ export type { KapiFacetedSearchLabels, KapiFacetedSearchProps } from "./KapiFacetedSearch";
54
+ export { facetKeyAction, facetMenuItems, parseDateRangeValue, toDateRangeValue, toDateValue } from "./facetedSearchLogic";
55
+ export type { KapiFacet, KapiFacetChip, KapiFacetKind, KapiFacetOption, KapiFacetKeyAction, KapiFacetMenuItem } from "./facetedSearchLogic";
@@ -0,0 +1,22 @@
1
+ import type { KapiFieldStatus } from "./KapiField";
2
+ export type KapiInputGroupSize = "sm" | "md" | "lg";
3
+ /** Clases del grupo: el borde, el radio y el anillo de foco son suyos; los segmentos van sin borde. */
4
+ export declare const inputGroupClasses: ({ size, status, className }?: {
5
+ size?: KapiInputGroupSize | undefined;
6
+ status?: KapiFieldStatus | undefined;
7
+ className?: string | undefined;
8
+ }) => string;
9
+ /** Clases del segmento estático (texto o ícono: "https://", "$", una lupa). */
10
+ export declare const inputGroupAddonClasses: (className?: string) => string;
11
+ /** Tamaño de un control dentro de un grupo: el propio gana; si no, el del grupo; fuera de un grupo, nada. */
12
+ export declare const resolveGroupSize: <S extends string>(own: S | undefined, group: S | undefined) => S | undefined;
13
+ /**
14
+ * Id del `KapiSelect`. Dentro de un grupo envuelto en un `KapiField` la etiqueta apunta al input
15
+ * de texto, así que el select no reclama el id del field (evita ids duplicados) y usa el suyo.
16
+ */
17
+ export declare const selectControlId: ({ id, fieldControlId, autoId, inGroup }: {
18
+ id?: string | undefined;
19
+ fieldControlId?: string | undefined;
20
+ autoId: string;
21
+ inGroup: boolean;
22
+ }) => string;
@@ -0,0 +1,9 @@
1
+ //#region src/components/inputs/inputGroupLogic.ts
2
+ var e = ({ size: e = "md", status: t, className: n = "" } = {}) => [
3
+ "kapi-inputgroup",
4
+ e !== "md" && `kapi-inputgroup--${e}`,
5
+ t && `kapi-inputgroup--${t}`,
6
+ n
7
+ ].filter(Boolean).join(" "), t = (e = "") => ["kapi-inputgroup__addon", e].filter(Boolean).join(" "), n = (e, t) => e ?? t, r = ({ id: e, fieldControlId: t, autoId: n, inGroup: r }) => e ?? (r ? void 0 : t) ?? n;
8
+ //#endregion
9
+ export { t as inputGroupAddonClasses, e as inputGroupClasses, n as resolveGroupSize, r as selectControlId };
@@ -0,0 +1,25 @@
1
+ import type { ReactNode } from "react";
2
+ import type { KapiFieldStatus } from "./KapiField";
3
+ export type KapiInputBoxSize = "sm" | "md" | "lg";
4
+ /** Adornos que obligan a envolver el input en una caja (`.kapi-inputbox`). */
5
+ export type KapiInputAdornments = {
6
+ startIcon?: ReactNode | undefined;
7
+ endIcon?: ReactNode | undefined;
8
+ prefix?: ReactNode | undefined;
9
+ suffix?: ReactNode | undefined;
10
+ clearable?: boolean | undefined;
11
+ shortcut?: string | undefined;
12
+ };
13
+ /** ¿El adorno se dibuja? `null`, `undefined`, booleanos y `""` no (React no los pinta). */
14
+ export declare const present: (node: ReactNode) => boolean;
15
+ /** ¿Hay algún adorno? Sin adornos el input se renderiza igual que siempre (sin envoltorio). */
16
+ export declare const hasAdornments: ({ startIcon, endIcon, prefix, suffix, clearable, shortcut }: KapiInputAdornments) => boolean;
17
+ /** ¿El valor tiene algo? Decide si se muestra el botón de limpiar. */
18
+ export declare const hasValue: (value: unknown) => boolean;
19
+ /** Clases de la caja que envuelve input + adornos: es la que lleva borde, fondo y anillo de foco. */
20
+ export declare const inputBoxClasses: ({ size, status, disabled, className }?: {
21
+ size?: KapiInputBoxSize | undefined;
22
+ status?: KapiFieldStatus | undefined;
23
+ disabled?: boolean | undefined;
24
+ className?: string | undefined;
25
+ }) => string;
@@ -0,0 +1,10 @@
1
+ //#region src/components/inputs/inputLogic.ts
2
+ var e = (e) => e != null && typeof e != "boolean" && e !== "", t = ({ startIcon: t, endIcon: n, prefix: r, suffix: i, clearable: a, shortcut: o }) => e(t) || e(n) || e(r) || e(i) || !!a || !!o, n = (e) => e == null ? !1 : Array.isArray(e) ? e.length > 0 : String(e) !== "", r = ({ size: e = "md", status: t, disabled: n = !1, className: r = "" } = {}) => [
3
+ "kapi-inputbox",
4
+ e !== "md" && `kapi-inputbox--${e}`,
5
+ t && `kapi-inputbox--${t}`,
6
+ n && "is-disabled",
7
+ r
8
+ ].filter(Boolean).join(" ");
9
+ //#endregion
10
+ export { t as hasAdornments, n as hasValue, r as inputBoxClasses, e as present };
@@ -0,0 +1,34 @@
1
+ export declare const DNI_MAX_DIGITS = 8;
2
+ export declare const CUIT_DIGITS = 11;
3
+ /** Tope de dígitos enteros en moneda (dentro de `Number.MAX_SAFE_INTEGER` con centavos). */
4
+ export declare const CURRENCY_MAX_INT_DIGITS = 13;
5
+ export declare const CURRENCY_PREFIX = "$ ";
6
+ /** Sólo los dígitos, cortados en `max`. */
7
+ export declare const onlyDigits: (raw: string, max?: number) => string;
8
+ /** DNI: `12.345.678` (7 dígitos: `1.234.567`). Agrupa mientras se tipea. */
9
+ export declare const formatDni: (raw: string) => string;
10
+ /** CUIT/CUIL: `20-12345678-9`. Agrega los guiones mientras se tipea. */
11
+ export declare const formatCuit: (raw: string) => string;
12
+ /**
13
+ * Dígito verificador de CUIT/CUIL (módulo 11) para los 10 primeros dígitos.
14
+ * `null` si no hay 10 dígitos o si el resto da 10 (no existe dígito válido).
15
+ */
16
+ export declare const cuitCheckDigit: (first10: string) => number | null;
17
+ /** CUIT/CUIL completo (11 dígitos, con o sin guiones) y con el dígito verificador correcto. */
18
+ export declare const isValidCuit: (raw: string) => boolean;
19
+ /**
20
+ * Máscara de moneda mientras se tipea: `$ 1.234,5`. Coma decimal (como mucho 2 decimales), puntos de
21
+ * miles automáticos, sin ceros a la izquierda. Sin dígitos ni coma → vacío.
22
+ */
23
+ export declare const maskCurrencyInput: (raw: string) => string;
24
+ /** Lee un importe es-AR (`$ 1.234,56`). Sin dígitos → `null`. */
25
+ export declare const parseCurrency: (text: string) => number | null;
26
+ /** Importe es-AR con dos decimales: `$ 1.234,56`. Redondea a centavos. Sin valor → vacío. */
27
+ export declare const formatCurrency: (value: number | null | undefined) => string;
28
+ /** Cuántos caracteres significativos (dígitos y coma) hay antes del cursor. */
29
+ export declare const countSignificant: (text: string, caret: number) => number;
30
+ /**
31
+ * Posición del cursor en el texto formateado: justo después del n-ésimo significativo. Con `n = 0`,
32
+ * antes del primero (después del prefijo); si no alcanzan, al final.
33
+ */
34
+ export declare const caretForSignificant: (formatted: string, n: number) => number;