@kapiuara/ui 0.0.0-stage → 0.1.1

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 (425) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +764 -2
  3. package/dist/components/data/KapiPagination.d.ts +36 -0
  4. package/dist/components/data/KapiPagination.js +102 -0
  5. package/dist/components/data/KapiTable.d.ts +245 -0
  6. package/dist/components/data/KapiTable.js +748 -0
  7. package/dist/components/data/KapiTableFilter.d.ts +48 -0
  8. package/dist/components/data/KapiTableFilter.js +81 -0
  9. package/dist/components/data/index.d.ts +10 -0
  10. package/dist/components/data/tableLogic.d.ts +197 -0
  11. package/dist/components/data/tableLogic.js +145 -0
  12. package/dist/components/data/tableResizeLogic.d.ts +28 -0
  13. package/dist/components/data/tableResizeLogic.js +20 -0
  14. package/dist/components/display/KapiAnnotation.d.ts +32 -0
  15. package/dist/components/display/KapiAnnotation.js +130 -0
  16. package/dist/components/display/KapiAvatar.d.ts +27 -0
  17. package/dist/components/display/KapiAvatar.js +43 -0
  18. package/dist/components/display/KapiAvatarGroup.d.ts +19 -0
  19. package/dist/components/display/KapiAvatarGroup.js +38 -0
  20. package/dist/components/display/KapiBadge.d.ts +21 -0
  21. package/dist/components/display/KapiBadge.js +28 -0
  22. package/dist/components/display/KapiComment.d.ts +27 -0
  23. package/dist/components/display/KapiComment.js +66 -0
  24. package/dist/components/display/KapiCommentComposer.d.ts +49 -0
  25. package/dist/components/display/KapiCommentComposer.js +76 -0
  26. package/dist/components/display/KapiDescriptionList.d.ts +19 -0
  27. package/dist/components/display/KapiDescriptionList.js +35 -0
  28. package/dist/components/display/KapiFileItem.d.ts +39 -0
  29. package/dist/components/display/KapiFileItem.js +74 -0
  30. package/dist/components/display/KapiFileViewer.d.ts +51 -0
  31. package/dist/components/display/KapiFileViewer.js +107 -0
  32. package/dist/components/display/KapiIconTile.d.ts +16 -0
  33. package/dist/components/display/KapiIconTile.js +29 -0
  34. package/dist/components/display/KapiStat.d.ts +24 -0
  35. package/dist/components/display/KapiStat.js +41 -0
  36. package/dist/components/display/KapiTag.d.ts +27 -0
  37. package/dist/components/display/KapiTag.js +44 -0
  38. package/dist/components/display/KapiTimeline.d.ts +15 -0
  39. package/dist/components/display/KapiTimeline.js +30 -0
  40. package/dist/components/display/annotationLogic.d.ts +26 -0
  41. package/dist/components/display/annotationLogic.js +17 -0
  42. package/dist/components/display/avatarGroupLogic.d.ts +14 -0
  43. package/dist/components/display/avatarGroupLogic.js +13 -0
  44. package/dist/components/display/avatarLogic.d.ts +5 -0
  45. package/dist/components/display/avatarLogic.js +9 -0
  46. package/dist/components/display/commentLogic.d.ts +18 -0
  47. package/dist/components/display/commentLogic.js +7 -0
  48. package/dist/components/display/fileItemLogic.d.ts +9 -0
  49. package/dist/components/display/fileItemLogic.js +12 -0
  50. package/dist/components/display/iconTileLogic.d.ts +13 -0
  51. package/dist/components/display/iconTileLogic.js +13 -0
  52. package/dist/components/display/index.d.ts +40 -0
  53. package/dist/components/display/statLogic.d.ts +10 -0
  54. package/dist/components/display/statLogic.js +10 -0
  55. package/dist/components/display/tagLogic.d.ts +11 -0
  56. package/dist/components/display/tagLogic.js +10 -0
  57. package/dist/components/display/timelineLogic.d.ts +5 -0
  58. package/dist/components/display/timelineLogic.js +4 -0
  59. package/dist/components/feedback/KapiAlert.d.ts +28 -0
  60. package/dist/components/feedback/KapiAlert.js +53 -0
  61. package/dist/components/feedback/KapiBulkBar.d.ts +30 -0
  62. package/dist/components/feedback/KapiBulkBar.js +34 -0
  63. package/dist/components/feedback/KapiCountdown.d.ts +26 -0
  64. package/dist/components/feedback/KapiCountdown.js +43 -0
  65. package/dist/components/feedback/KapiEmpty.d.ts +14 -0
  66. package/dist/components/feedback/KapiEmpty.js +31 -0
  67. package/dist/components/feedback/KapiFab.d.ts +34 -0
  68. package/dist/components/feedback/KapiFab.js +116 -0
  69. package/dist/components/feedback/KapiOfflineBanner.d.ts +25 -0
  70. package/dist/components/feedback/KapiOfflineBanner.js +40 -0
  71. package/dist/components/feedback/KapiProgress.d.ts +24 -0
  72. package/dist/components/feedback/KapiProgress.js +94 -0
  73. package/dist/components/feedback/KapiSkeleton.d.ts +12 -0
  74. package/dist/components/feedback/KapiSkeleton.js +16 -0
  75. package/dist/components/feedback/KapiToastContainer.d.ts +16 -0
  76. package/dist/components/feedback/KapiToastContainer.js +81 -0
  77. package/dist/components/feedback/KapiTour.d.ts +40 -0
  78. package/dist/components/feedback/KapiTour.js +157 -0
  79. package/dist/components/feedback/KapiUnsavedBar.d.ts +35 -0
  80. package/dist/components/feedback/KapiUnsavedBar.js +47 -0
  81. package/dist/components/feedback/bulkBarLogic.d.ts +2 -0
  82. package/dist/components/feedback/bulkBarLogic.js +7 -0
  83. package/dist/components/feedback/countdownLogic.d.ts +74 -0
  84. package/dist/components/feedback/countdownLogic.js +70 -0
  85. package/dist/components/feedback/fabLogic.d.ts +17 -0
  86. package/dist/components/feedback/fabLogic.js +10 -0
  87. package/dist/components/feedback/index.d.ts +33 -0
  88. package/dist/components/feedback/offlineBannerLogic.d.ts +10 -0
  89. package/dist/components/feedback/offlineBannerLogic.js +8 -0
  90. package/dist/components/feedback/progressLogic.d.ts +17 -0
  91. package/dist/components/feedback/progressLogic.js +16 -0
  92. package/dist/components/feedback/toastStore.d.ts +62 -0
  93. package/dist/components/feedback/toastStore.js +38 -0
  94. package/dist/components/feedback/tourLogic.d.ts +64 -0
  95. package/dist/components/feedback/tourLogic.js +31 -0
  96. package/dist/components/feedback/unsavedBarLogic.d.ts +2 -0
  97. package/dist/components/feedback/unsavedBarLogic.js +8 -0
  98. package/dist/components/inputs/KapiAutocomplete.d.ts +81 -0
  99. package/dist/components/inputs/KapiAutocomplete.js +205 -0
  100. package/dist/components/inputs/KapiButton.d.ts +23 -0
  101. package/dist/components/inputs/KapiButton.js +25 -0
  102. package/dist/components/inputs/KapiCalendar.d.ts +35 -0
  103. package/dist/components/inputs/KapiCalendar.js +60 -0
  104. package/dist/components/inputs/KapiCalendarGrid.d.ts +29 -0
  105. package/dist/components/inputs/KapiCalendarGrid.js +65 -0
  106. package/dist/components/inputs/KapiCheckCard.d.ts +28 -0
  107. package/dist/components/inputs/KapiCheckCard.js +41 -0
  108. package/dist/components/inputs/KapiCheckbox.d.ts +7 -0
  109. package/dist/components/inputs/KapiCheckbox.js +5 -0
  110. package/dist/components/inputs/KapiDatePicker.d.ts +46 -0
  111. package/dist/components/inputs/KapiDatePicker.js +189 -0
  112. package/dist/components/inputs/KapiDateRangePicker.d.ts +49 -0
  113. package/dist/components/inputs/KapiDateRangePicker.js +179 -0
  114. package/dist/components/inputs/KapiFacetedSearch.d.ts +45 -0
  115. package/dist/components/inputs/KapiFacetedSearch.js +188 -0
  116. package/dist/components/inputs/KapiField.d.ts +33 -0
  117. package/dist/components/inputs/KapiField.js +60 -0
  118. package/dist/components/inputs/KapiFileUpload.d.ts +58 -0
  119. package/dist/components/inputs/KapiFileUpload.js +134 -0
  120. package/dist/components/inputs/KapiIconButton.d.ts +13 -0
  121. package/dist/components/inputs/KapiIconButton.js +16 -0
  122. package/dist/components/inputs/KapiInput.d.ts +92 -0
  123. package/dist/components/inputs/KapiInput.js +123 -0
  124. package/dist/components/inputs/KapiInputGroup.d.ts +37 -0
  125. package/dist/components/inputs/KapiInputGroup.js +29 -0
  126. package/dist/components/inputs/KapiMaskedInput.d.ts +52 -0
  127. package/dist/components/inputs/KapiMaskedInput.js +78 -0
  128. package/dist/components/inputs/KapiNumberStepper.d.ts +44 -0
  129. package/dist/components/inputs/KapiNumberStepper.js +100 -0
  130. package/dist/components/inputs/KapiRadio.d.ts +7 -0
  131. package/dist/components/inputs/KapiRadio.js +5 -0
  132. package/dist/components/inputs/KapiRating.d.ts +55 -0
  133. package/dist/components/inputs/KapiRating.js +99 -0
  134. package/dist/components/inputs/KapiSegmented.d.ts +41 -0
  135. package/dist/components/inputs/KapiSegmented.js +83 -0
  136. package/dist/components/inputs/KapiSelect.d.ts +109 -0
  137. package/dist/components/inputs/KapiSelect.js +443 -0
  138. package/dist/components/inputs/KapiSlider.d.ts +42 -0
  139. package/dist/components/inputs/KapiSlider.js +70 -0
  140. package/dist/components/inputs/KapiSwitch.d.ts +13 -0
  141. package/dist/components/inputs/KapiSwitch.js +28 -0
  142. package/dist/components/inputs/KapiTagInput.d.ts +79 -0
  143. package/dist/components/inputs/KapiTagInput.js +115 -0
  144. package/dist/components/inputs/KapiTextarea.d.ts +32 -0
  145. package/dist/components/inputs/KapiTextarea.js +67 -0
  146. package/dist/components/inputs/asyncSelectLogic.d.ts +42 -0
  147. package/dist/components/inputs/asyncSelectLogic.js +46 -0
  148. package/dist/components/inputs/autocompleteLogic.d.ts +73 -0
  149. package/dist/components/inputs/autocompleteLogic.js +67 -0
  150. package/dist/components/inputs/checkControl.d.ts +20 -0
  151. package/dist/components/inputs/checkControl.js +31 -0
  152. package/dist/components/inputs/datePickerLogic.d.ts +92 -0
  153. package/dist/components/inputs/datePickerLogic.js +174 -0
  154. package/dist/components/inputs/dateRangeLogic.d.ts +31 -0
  155. package/dist/components/inputs/dateRangeLogic.js +44 -0
  156. package/dist/components/inputs/facetedSearchLogic.d.ts +69 -0
  157. package/dist/components/inputs/facetedSearchLogic.js +39 -0
  158. package/dist/components/inputs/fieldLogic.d.ts +67 -0
  159. package/dist/components/inputs/fieldLogic.js +35 -0
  160. package/dist/components/inputs/fileUploadLogic.d.ts +13 -0
  161. package/dist/components/inputs/fileUploadLogic.js +9 -0
  162. package/dist/components/inputs/index.d.ts +55 -0
  163. package/dist/components/inputs/inputGroupLogic.d.ts +22 -0
  164. package/dist/components/inputs/inputGroupLogic.js +9 -0
  165. package/dist/components/inputs/inputLogic.d.ts +25 -0
  166. package/dist/components/inputs/inputLogic.js +10 -0
  167. package/dist/components/inputs/maskLogic.d.ts +34 -0
  168. package/dist/components/inputs/maskLogic.js +57 -0
  169. package/dist/components/inputs/numberStepLogic.d.ts +14 -0
  170. package/dist/components/inputs/numberStepLogic.js +21 -0
  171. package/dist/components/inputs/ratingLogic.d.ts +9 -0
  172. package/dist/components/inputs/ratingLogic.js +22 -0
  173. package/dist/components/inputs/segmentedLogic.d.ts +6 -0
  174. package/dist/components/inputs/segmentedLogic.js +14 -0
  175. package/dist/components/inputs/selectLogic.d.ts +89 -0
  176. package/dist/components/inputs/selectLogic.js +82 -0
  177. package/dist/components/inputs/sliderLogic.d.ts +9 -0
  178. package/dist/components/inputs/sliderLogic.js +17 -0
  179. package/dist/components/inputs/tagInputLogic.d.ts +40 -0
  180. package/dist/components/inputs/tagInputLogic.js +40 -0
  181. package/dist/components/inputs/textareaLogic.d.ts +17 -0
  182. package/dist/components/inputs/textareaLogic.js +13 -0
  183. package/dist/components/inputs/useCalendarFocus.d.ts +13 -0
  184. package/dist/components/inputs/useCalendarFocus.js +25 -0
  185. package/dist/components/inputs/useDatePopSide.d.ts +15 -0
  186. package/dist/components/inputs/useDatePopSide.js +20 -0
  187. package/dist/components/labelsLogic.d.ts +6 -0
  188. package/dist/components/labelsLogic.js +11 -0
  189. package/dist/components/layout/KapiAccessCard.d.ts +40 -0
  190. package/dist/components/layout/KapiAccessCard.js +66 -0
  191. package/dist/components/layout/KapiAccountMenu.d.ts +61 -0
  192. package/dist/components/layout/KapiAccountMenu.js +212 -0
  193. package/dist/components/layout/KapiCard.d.ts +43 -0
  194. package/dist/components/layout/KapiCard.js +53 -0
  195. package/dist/components/layout/KapiCluster.d.ts +15 -0
  196. package/dist/components/layout/KapiCluster.js +21 -0
  197. package/dist/components/layout/KapiContextSlot.d.ts +45 -0
  198. package/dist/components/layout/KapiContextSlot.js +92 -0
  199. package/dist/components/layout/KapiDivider.d.ts +16 -0
  200. package/dist/components/layout/KapiDivider.js +41 -0
  201. package/dist/components/layout/KapiGrid.d.ts +19 -0
  202. package/dist/components/layout/KapiGrid.js +25 -0
  203. package/dist/components/layout/KapiNotificationBell.d.ts +75 -0
  204. package/dist/components/layout/KapiNotificationBell.js +196 -0
  205. package/dist/components/layout/KapiPageHeader.d.ts +28 -0
  206. package/dist/components/layout/KapiPageHeader.js +47 -0
  207. package/dist/components/layout/KapiPanelParts.d.ts +35 -0
  208. package/dist/components/layout/KapiPanelParts.js +63 -0
  209. package/dist/components/layout/KapiRail.d.ts +40 -0
  210. package/dist/components/layout/KapiRail.js +102 -0
  211. package/dist/components/layout/KapiScrollArea.d.ts +40 -0
  212. package/dist/components/layout/KapiScrollArea.js +49 -0
  213. package/dist/components/layout/KapiShell.d.ts +40 -0
  214. package/dist/components/layout/KapiShell.js +48 -0
  215. package/dist/components/layout/KapiStack.d.ts +11 -0
  216. package/dist/components/layout/KapiStack.js +19 -0
  217. package/dist/components/layout/accessCardLogic.d.ts +18 -0
  218. package/dist/components/layout/accessCardLogic.js +11 -0
  219. package/dist/components/layout/cardLogic.d.ts +9 -0
  220. package/dist/components/layout/cardLogic.js +11 -0
  221. package/dist/components/layout/index.d.ts +33 -0
  222. package/dist/components/layout/layoutPrimitives.d.ts +51 -0
  223. package/dist/components/layout/layoutPrimitives.js +58 -0
  224. package/dist/components/layout/notificationBellLogic.d.ts +20 -0
  225. package/dist/components/layout/notificationBellLogic.js +14 -0
  226. package/dist/components/layout/railLogic.d.ts +52 -0
  227. package/dist/components/layout/railLogic.js +16 -0
  228. package/dist/components/locale/KapiLocaleProvider.d.ts +29 -0
  229. package/dist/components/locale/KapiLocaleProvider.js +27 -0
  230. package/dist/components/locale/index.d.ts +5 -0
  231. package/dist/components/locale/labelRegistry.d.ts +110 -0
  232. package/dist/components/locale/linkLabels.d.ts +6 -0
  233. package/dist/components/locale/linkLabels.js +4 -0
  234. package/dist/components/navigation/CtxSlidingList.d.ts +11 -0
  235. package/dist/components/navigation/CtxSlidingList.js +24 -0
  236. package/dist/components/navigation/KapiAccordion.d.ts +24 -0
  237. package/dist/components/navigation/KapiAccordion.js +68 -0
  238. package/dist/components/navigation/KapiBreadcrumb.d.ts +23 -0
  239. package/dist/components/navigation/KapiBreadcrumb.js +32 -0
  240. package/dist/components/navigation/KapiCollapsiblePanel.d.ts +63 -0
  241. package/dist/components/navigation/KapiCollapsiblePanel.js +83 -0
  242. package/dist/components/navigation/KapiContextPanel.d.ts +117 -0
  243. package/dist/components/navigation/KapiContextPanel.js +265 -0
  244. package/dist/components/navigation/KapiFilterChips.d.ts +30 -0
  245. package/dist/components/navigation/KapiFilterChips.js +40 -0
  246. package/dist/components/navigation/KapiNavBadge.d.ts +26 -0
  247. package/dist/components/navigation/KapiNavBadge.js +33 -0
  248. package/dist/components/navigation/KapiPanelGroup.d.ts +69 -0
  249. package/dist/components/navigation/KapiPanelGroup.js +149 -0
  250. package/dist/components/navigation/KapiSteps.d.ts +43 -0
  251. package/dist/components/navigation/KapiSteps.js +63 -0
  252. package/dist/components/navigation/KapiTabs.d.ts +56 -0
  253. package/dist/components/navigation/KapiTabs.js +81 -0
  254. package/dist/components/navigation/KapiTree.d.ts +56 -0
  255. package/dist/components/navigation/KapiTree.js +157 -0
  256. package/dist/components/navigation/KapiWizard.d.ts +49 -0
  257. package/dist/components/navigation/KapiWizard.js +104 -0
  258. package/dist/components/navigation/MiniNavItem.d.ts +35 -0
  259. package/dist/components/navigation/MiniNavItem.js +57 -0
  260. package/dist/components/navigation/accordionLogic.d.ts +4 -0
  261. package/dist/components/navigation/accordionLogic.js +4 -0
  262. package/dist/components/navigation/activeItemLogic.d.ts +7 -0
  263. package/dist/components/navigation/activeItemLogic.js +4 -0
  264. package/dist/components/navigation/breadcrumbLogic.d.ts +8 -0
  265. package/dist/components/navigation/breadcrumbLogic.js +4 -0
  266. package/dist/components/navigation/contextPanelLogic.d.ts +27 -0
  267. package/dist/components/navigation/contextPanelLogic.js +11 -0
  268. package/dist/components/navigation/filterChipsLogic.d.ts +23 -0
  269. package/dist/components/navigation/filterChipsLogic.js +20 -0
  270. package/dist/components/navigation/index.d.ts +39 -0
  271. package/dist/components/navigation/navBadgeLogic.d.ts +26 -0
  272. package/dist/components/navigation/navBadgeLogic.js +16 -0
  273. package/dist/components/navigation/panelGroupLogic.d.ts +15 -0
  274. package/dist/components/navigation/panelGroupLogic.js +13 -0
  275. package/dist/components/navigation/panelMini.d.ts +13 -0
  276. package/dist/components/navigation/panelMini.js +9 -0
  277. package/dist/components/navigation/panelMiniLogic.d.ts +19 -0
  278. package/dist/components/navigation/panelMiniLogic.js +6 -0
  279. package/dist/components/navigation/stepsLogic.d.ts +25 -0
  280. package/dist/components/navigation/stepsLogic.js +10 -0
  281. package/dist/components/navigation/tabsLogic.d.ts +12 -0
  282. package/dist/components/navigation/tabsLogic.js +14 -0
  283. package/dist/components/navigation/treeLogic.d.ts +80 -0
  284. package/dist/components/navigation/treeLogic.js +91 -0
  285. package/dist/components/navigation/wizardLogic.d.ts +11 -0
  286. package/dist/components/navigation/wizardLogic.js +7 -0
  287. package/dist/components/overlays/KapiCanvasForm.d.ts +42 -0
  288. package/dist/components/overlays/KapiCanvasForm.js +60 -0
  289. package/dist/components/overlays/KapiCommandPalette.d.ts +58 -0
  290. package/dist/components/overlays/KapiCommandPalette.js +152 -0
  291. package/dist/components/overlays/KapiConfirm.d.ts +48 -0
  292. package/dist/components/overlays/KapiConfirm.js +94 -0
  293. package/dist/components/overlays/KapiContextMenu.d.ts +51 -0
  294. package/dist/components/overlays/KapiContextMenu.js +90 -0
  295. package/dist/components/overlays/KapiDialogHost.d.ts +23 -0
  296. package/dist/components/overlays/KapiDialogHost.js +129 -0
  297. package/dist/components/overlays/KapiDropdown.d.ts +30 -0
  298. package/dist/components/overlays/KapiDropdown.js +84 -0
  299. package/dist/components/overlays/KapiLoading.d.ts +14 -0
  300. package/dist/components/overlays/KapiLoading.js +43 -0
  301. package/dist/components/overlays/KapiMenuButton.d.ts +25 -0
  302. package/dist/components/overlays/KapiMenuButton.js +109 -0
  303. package/dist/components/overlays/KapiModal.d.ts +61 -0
  304. package/dist/components/overlays/KapiModal.js +106 -0
  305. package/dist/components/overlays/KapiOffcanvas.d.ts +96 -0
  306. package/dist/components/overlays/KapiOffcanvas.js +209 -0
  307. package/dist/components/overlays/KapiOffcanvasStack.d.ts +58 -0
  308. package/dist/components/overlays/KapiOffcanvasStack.js +84 -0
  309. package/dist/components/overlays/KapiPhotoView.d.ts +60 -0
  310. package/dist/components/overlays/KapiPhotoView.js +122 -0
  311. package/dist/components/overlays/KapiPopover.d.ts +46 -0
  312. package/dist/components/overlays/KapiPopover.js +68 -0
  313. package/dist/components/overlays/KapiShapeSheet.d.ts +34 -0
  314. package/dist/components/overlays/KapiShapeSheet.js +82 -0
  315. package/dist/components/overlays/KapiSplitModal.d.ts +41 -0
  316. package/dist/components/overlays/KapiSplitModal.js +125 -0
  317. package/dist/components/overlays/KapiTooltip.d.ts +38 -0
  318. package/dist/components/overlays/KapiTooltip.js +105 -0
  319. package/dist/components/overlays/canvasFormLogic.d.ts +18 -0
  320. package/dist/components/overlays/canvasFormLogic.js +16 -0
  321. package/dist/components/overlays/commandPaletteLogic.d.ts +29 -0
  322. package/dist/components/overlays/commandPaletteLogic.js +19 -0
  323. package/dist/components/overlays/dialogStore.d.ts +114 -0
  324. package/dist/components/overlays/dialogStore.js +76 -0
  325. package/dist/components/overlays/dialogUtils.d.ts +72 -0
  326. package/dist/components/overlays/dialogUtils.js +62 -0
  327. package/dist/components/overlays/exitPresenceLogic.d.ts +14 -0
  328. package/dist/components/overlays/exitPresenceLogic.js +5 -0
  329. package/dist/components/overlays/index.d.ts +38 -0
  330. package/dist/components/overlays/menuButtonLogic.d.ts +58 -0
  331. package/dist/components/overlays/menuButtonLogic.js +9 -0
  332. package/dist/components/overlays/menuKeyboardLogic.d.ts +25 -0
  333. package/dist/components/overlays/menuKeyboardLogic.js +30 -0
  334. package/dist/components/overlays/offcanvasCompanion.d.ts +16 -0
  335. package/dist/components/overlays/offcanvasCompanion.js +6 -0
  336. package/dist/components/overlays/offcanvasResize.d.ts +22 -0
  337. package/dist/components/overlays/offcanvasResize.js +10 -0
  338. package/dist/components/overlays/offcanvasSide.d.ts +30 -0
  339. package/dist/components/overlays/offcanvasSide.js +29 -0
  340. package/dist/components/overlays/offcanvasStack.d.ts +76 -0
  341. package/dist/components/overlays/offcanvasStack.js +72 -0
  342. package/dist/components/overlays/overlayPortal.d.ts +9 -0
  343. package/dist/components/overlays/overlayPortal.js +6 -0
  344. package/dist/components/overlays/popoverLogic.d.ts +94 -0
  345. package/dist/components/overlays/popoverLogic.js +47 -0
  346. package/dist/components/overlays/splitModalLayout.d.ts +8 -0
  347. package/dist/components/overlays/splitModalLayout.js +5 -0
  348. package/dist/components/overlays/useExitPresence.d.ts +14 -0
  349. package/dist/components/overlays/useExitPresence.js +34 -0
  350. package/dist/components/overlays/useNativeDialog.d.ts +30 -0
  351. package/dist/components/overlays/useNativeDialog.js +56 -0
  352. package/dist/components/rootProps.d.ts +17 -0
  353. package/dist/components/rootProps.js +4 -0
  354. package/dist/hooks/breakpointOpenLogic.d.ts +7 -0
  355. package/dist/hooks/breakpointOpenLogic.js +4 -0
  356. package/dist/hooks/dateFormat.d.ts +12 -0
  357. package/dist/hooks/dateFormat.js +15 -0
  358. package/dist/hooks/downloadLogic.d.ts +31 -0
  359. package/dist/hooks/downloadLogic.js +85 -0
  360. package/dist/hooks/focusLogic.d.ts +18 -0
  361. package/dist/hooks/focusLogic.js +17 -0
  362. package/dist/hooks/growOriginLogic.d.ts +22 -0
  363. package/dist/hooks/growOriginLogic.js +10 -0
  364. package/dist/hooks/hotkeyLogic.d.ts +22 -0
  365. package/dist/hooks/hotkeyLogic.js +32 -0
  366. package/dist/hooks/index.d.ts +49 -0
  367. package/dist/hooks/kapiRoot.d.ts +16 -0
  368. package/dist/hooks/kapiRoot.js +9 -0
  369. package/dist/hooks/onlineStatusLogic.d.ts +31 -0
  370. package/dist/hooks/onlineStatusLogic.js +28 -0
  371. package/dist/hooks/persistentStateLogic.d.ts +12 -0
  372. package/dist/hooks/persistentStateLogic.js +17 -0
  373. package/dist/hooks/rafThrottle.d.ts +33 -0
  374. package/dist/hooks/rafThrottle.js +33 -0
  375. package/dist/hooks/recentLogic.d.ts +9 -0
  376. package/dist/hooks/recentLogic.js +10 -0
  377. package/dist/hooks/reducedMotion.d.ts +13 -0
  378. package/dist/hooks/reducedMotion.js +5 -0
  379. package/dist/hooks/rightClick.d.ts +37 -0
  380. package/dist/hooks/rightClick.js +30 -0
  381. package/dist/hooks/scrollCollapseLogic.d.ts +12 -0
  382. package/dist/hooks/scrollCollapseLogic.js +4 -0
  383. package/dist/hooks/scrollEdgesLogic.d.ts +49 -0
  384. package/dist/hooks/scrollEdgesLogic.js +19 -0
  385. package/dist/hooks/slidingIndicatorLogic.d.ts +25 -0
  386. package/dist/hooks/slidingIndicatorLogic.js +15 -0
  387. package/dist/hooks/storageLogic.d.ts +15 -0
  388. package/dist/hooks/storageLogic.js +24 -0
  389. package/dist/hooks/unsavedGuardLogic.d.ts +17 -0
  390. package/dist/hooks/unsavedGuardLogic.js +17 -0
  391. package/dist/hooks/useDragScroll.d.ts +12 -0
  392. package/dist/hooks/useDragScroll.js +32 -0
  393. package/dist/hooks/useGlobalRightClick.d.ts +14 -0
  394. package/dist/hooks/useGlobalRightClick.js +35 -0
  395. package/dist/hooks/useGrowOrigin.d.ts +13 -0
  396. package/dist/hooks/useGrowOrigin.js +16 -0
  397. package/dist/hooks/useHotkey.d.ts +15 -0
  398. package/dist/hooks/useHotkey.js +31 -0
  399. package/dist/hooks/useKapiTheme.d.ts +69 -0
  400. package/dist/hooks/useKapiTheme.js +88 -0
  401. package/dist/hooks/useMediaQuery.d.ts +6 -0
  402. package/dist/hooks/useMediaQuery.js +13 -0
  403. package/dist/hooks/useObjectUrl.d.ts +6 -0
  404. package/dist/hooks/useObjectUrl.js +19 -0
  405. package/dist/hooks/useOnlineStatus.d.ts +7 -0
  406. package/dist/hooks/useOnlineStatus.js +7 -0
  407. package/dist/hooks/usePersistentState.d.ts +19 -0
  408. package/dist/hooks/usePersistentState.js +37 -0
  409. package/dist/hooks/usePlacement.d.ts +36 -0
  410. package/dist/hooks/usePlacement.js +84 -0
  411. package/dist/hooks/useRecent.d.ts +17 -0
  412. package/dist/hooks/useRecent.js +16 -0
  413. package/dist/hooks/useScrollCollapse.d.ts +10 -0
  414. package/dist/hooks/useScrollCollapse.js +27 -0
  415. package/dist/hooks/useScrollEdges.d.ts +32 -0
  416. package/dist/hooks/useScrollEdges.js +91 -0
  417. package/dist/hooks/useSlidingIndicator.d.ts +23 -0
  418. package/dist/hooks/useSlidingIndicator.js +51 -0
  419. package/dist/hooks/useUnsavedGuard.d.ts +70 -0
  420. package/dist/hooks/useUnsavedGuard.js +47 -0
  421. package/dist/index.d.ts +12 -0
  422. package/dist/index.js +162 -0
  423. package/dist/kapi.css +2 -0
  424. package/dist/kapi.layered.css +4 -0
  425. package/package.json +87 -4
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ import { jsxs as e } from "react/jsx-runtime";
3
+ //#region src/components/inputs/KapiButton.tsx
4
+ var t = ({ variant: e = "default", size: t = "md", iconOnly: n = !1, bordered: r = !1, className: i = "" } = {}) => [
5
+ "kapi-btn",
6
+ e !== "default" && `kapi-btn--${e}`,
7
+ t !== "md" && `kapi-btn--${t}`,
8
+ n && "kapi-btn--iconbtn",
9
+ r && "kapi-btn--bordered",
10
+ i
11
+ ].filter(Boolean).join(" "), n = ({ variant: n = "default", size: r = "md", iconOnly: i = !1, bordered: a = !1, icon: o, className: s, type: c = "button", children: l, ref: u, ...d }) => /* @__PURE__ */ e("button", {
12
+ ref: u,
13
+ type: c,
14
+ className: t({
15
+ variant: n,
16
+ size: r,
17
+ iconOnly: i,
18
+ bordered: a,
19
+ className: s
20
+ }),
21
+ ...d,
22
+ children: [o, l]
23
+ });
24
+ //#endregion
25
+ export { n as KapiButton, t as buttonClasses };
@@ -0,0 +1,35 @@
1
+ import { type HTMLAttributes, type Ref } from "react";
2
+ import { type KapiCalendarLabels } from "./datePickerLogic";
3
+ import type { KapiLabelsOverride } from "../labelsLogic";
4
+ type OwnProps = {
5
+ /** Día elegido (controlado). `null` = sin elegir. */
6
+ value?: Date | null;
7
+ /** Día elegido inicial, sin controlar. @default null */
8
+ defaultValue?: Date | null;
9
+ /** Avisa el día elegido. */
10
+ onChange?: ((date: Date) => void) | undefined;
11
+ /** Mes visible, cualquier día del mes (controlado). */
12
+ month?: Date;
13
+ /** Mes visible inicial, sin controlar. @default el mes del valor, o el actual */
14
+ defaultMonth?: Date;
15
+ /** Avisa el cambio de mes visible (flechas de la cabecera o teclado fuera del mes). */
16
+ onMonthChange?: ((month: Date) => void) | undefined;
17
+ /** Textos propios; pisan los del `KapiLocaleProvider` y los defaults. */
18
+ labels?: KapiLabelsOverride<KapiCalendarLabels> | undefined;
19
+ /** Ref al contenedor del calendario. */
20
+ ref?: Ref<HTMLDivElement>;
21
+ };
22
+ export type KapiCalendarProps = Omit<HTMLAttributes<HTMLDivElement>, keyof OwnProps> & OwnProps;
23
+ /**
24
+ * Calendario de un mes, siempre visible. Es el mismo motor que usa `KapiDatePicker` en su popup
25
+ * (`KapiCalendarGrid`: `role="grid"`, roving tabindex, flechas, Home/End, PageUp/PageDown), pero
26
+ * suelto: sirve para una agenda o una vista de mes, donde no hay campo que abrir.
27
+ *
28
+ * Si lo que necesitás es elegir una fecha dentro de un formulario, usá `KapiDatePicker`.
29
+ *
30
+ * Las clases del chrome son `kapi-dp__*` porque son las del calendario compartido: la grilla ya
31
+ * emite las de los días, así que renombrarlas es un trabajo aparte sobre los tres componentes.
32
+ * Para estilar desde afuera está `.kapi-cal` en la raíz.
33
+ */
34
+ export declare const KapiCalendar: ({ value, defaultValue, onChange, month, defaultMonth, onMonthChange, labels, className, ref, ...rest }: KapiCalendarProps) => import("react").JSX.Element;
35
+ export {};
@@ -0,0 +1,60 @@
1
+ "use client";
2
+ import { useKapiLocale as e, useLabels as t } from "../locale/KapiLocaleProvider.js";
3
+ import { localizedCalendarLabels as n, monthTitle as r, sameDay as i } from "./datePickerLogic.js";
4
+ import { KapiCalendarGrid as a } from "./KapiCalendarGrid.js";
5
+ import { joinClasses as o } from "../rootProps.js";
6
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
+ import { useState as l } from "react";
8
+ import { ChevronLeft as u, ChevronRight as d } from "lucide-react";
9
+ //#region src/components/inputs/KapiCalendar.tsx
10
+ var f = ({ value: f, defaultValue: p = null, onChange: m, month: h, defaultMonth: g, onMonthChange: _, labels: v, className: y, ref: b, ...x }) => {
11
+ let S = e(), C = t("calendar", n(S), v), [w, T] = l(p), E = f === void 0 ? w : f, [D, O] = l(() => g ?? E ?? /* @__PURE__ */ new Date()), k = h ?? D, A = (e) => {
12
+ h === void 0 && O(e), _?.(e);
13
+ }, j = (e) => A(new Date(k.getFullYear(), k.getMonth() + e, 1)), M = (e) => {
14
+ f === void 0 && T(e), m?.(e);
15
+ };
16
+ return /* @__PURE__ */ c("div", {
17
+ ...x,
18
+ ref: b,
19
+ className: o("kapi-cal", "kapi-dp__cal", y),
20
+ children: [/* @__PURE__ */ c("div", {
21
+ className: "kapi-dp__head",
22
+ children: [
23
+ /* @__PURE__ */ s("button", {
24
+ type: "button",
25
+ className: "kapi-dp__nav",
26
+ "aria-label": C.prevMonth,
27
+ onClick: () => j(-1),
28
+ children: /* @__PURE__ */ s(u, {
29
+ size: 15,
30
+ strokeWidth: 2.2
31
+ })
32
+ }),
33
+ /* @__PURE__ */ s("span", {
34
+ className: "kapi-dp__title",
35
+ children: r(k, C.months)
36
+ }),
37
+ /* @__PURE__ */ s("button", {
38
+ type: "button",
39
+ className: "kapi-dp__nav",
40
+ "aria-label": C.nextMonth,
41
+ onClick: () => j(1),
42
+ children: /* @__PURE__ */ s(d, {
43
+ size: 15,
44
+ strokeWidth: 2.2
45
+ })
46
+ })
47
+ ]
48
+ }), /* @__PURE__ */ s(a, {
49
+ view: k,
50
+ onViewChange: A,
51
+ labels: C,
52
+ focusTarget: E,
53
+ isSelected: (e) => i(e, E),
54
+ dayClassName: (e) => i(e, E) && "kapi-dp__day--sel",
55
+ onPick: M
56
+ })]
57
+ });
58
+ };
59
+ //#endregion
60
+ export { f as KapiCalendar };
@@ -0,0 +1,29 @@
1
+ import { type KapiCalendarLabels } from "./datePickerLogic";
2
+ export type KapiCalendarGridProps = {
3
+ /** Mes visible (cualquier día del mes). */
4
+ view: Date;
5
+ /** Pide cambiar el mes visible (al navegar con teclado fuera de sus bordes). */
6
+ onViewChange: (view: Date) => void;
7
+ labels: KapiCalendarLabels;
8
+ /** Día que recibe el foco al entrar (el elegido); si no hay o no está en el mes, hoy o el 1°. */
9
+ focusTarget?: Date | null;
10
+ /**
11
+ * Pedido de foco a la grilla: cada valor nuevo > 0 enfoca el día activo (apertura con el botón o
12
+ * con Flecha abajo desde el campo). 0 = no enfocar (apertura por foco en el campo).
13
+ */
14
+ focusRequest?: number;
15
+ /** `aria-selected` de cada día. */
16
+ isSelected: (date: Date) => boolean;
17
+ /** Clases extra de cada día (selección, tramo del rango…). */
18
+ dayClassName?: (date: Date) => string | false | null | undefined;
19
+ onPick: (date: Date) => void;
20
+ /** Hover/foco sobre un día (`null` al salir de la grilla): previsualización del rango. */
21
+ onDayHover?: (date: Date | null) => void;
22
+ };
23
+ /**
24
+ * Grilla de días compartida por `KapiDatePicker` y `KapiDateRangePicker` (patrón WAI-ARIA date picker
25
+ * dialog): `role="grid"` nombrada por el mes, filas por semana, encabezados con el nombre completo del
26
+ * día y cada día como `gridcell` con la fecha completa, `aria-selected` y `aria-current="date"` en hoy.
27
+ * Roving tabindex + flechas, Home/End, PageUp/PageDown (Shift: año); Enter/Espacio eligen (botón nativo).
28
+ */
29
+ export declare const KapiCalendarGrid: ({ view, onViewChange, labels, focusTarget, focusRequest, isSelected, dayClassName, onPick, onDayHover }: KapiCalendarGridProps) => import("react").JSX.Element;
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import { useKapiLocale as e } from "../locale/KapiLocaleProvider.js";
3
+ import { buildDays as t, calendarDayLabel as n, calendarRows as r, monthTitle as i, moveCalendarFocus as a, sameDay as o, sameMonth as s } from "./datePickerLogic.js";
4
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
5
+ import { useEffect as u, useRef as d, useState as f } from "react";
6
+ //#region src/components/inputs/KapiCalendarGrid.tsx
7
+ var p = ({ view: p, onViewChange: m, labels: h, focusTarget: g, focusRequest: _ = 0, isSelected: v, dayClassName: y, onPick: b, onDayHover: x }) => {
8
+ let S = e(), C = /* @__PURE__ */ new Date(), w = d(null), [T, E] = f(null), D = d(!1), O = [
9
+ T,
10
+ g,
11
+ C
12
+ ].find((e) => !!e && s(e, p)) ?? new Date(p.getFullYear(), p.getMonth(), 1);
13
+ u(() => {
14
+ _ > 0 && (D.current = !0);
15
+ }, [_]), u(() => {
16
+ D.current && (D.current = !1, w.current?.querySelector("[role=\"gridcell\"][tabindex=\"0\"]")?.focus());
17
+ });
18
+ let k = (e) => {
19
+ let t = a(O, e);
20
+ t && (e.preventDefault(), E(t), s(t, p) || m(new Date(t.getFullYear(), t.getMonth(), 1)), D.current = !0);
21
+ }, A = r(t(p.getFullYear(), p.getMonth()));
22
+ return /* @__PURE__ */ l("div", {
23
+ ref: w,
24
+ className: "kapi-dp__grid",
25
+ role: "grid",
26
+ "aria-label": i(p, h.months),
27
+ onKeyDown: k,
28
+ onMouseLeave: x ? () => x(null) : void 0,
29
+ children: [/* @__PURE__ */ c("div", {
30
+ role: "row",
31
+ className: "kapi-dp__row",
32
+ children: h.weekdays.map((e, t) => /* @__PURE__ */ c("div", {
33
+ role: "columnheader",
34
+ className: "kapi-dp__wd",
35
+ "aria-label": h.weekdayNames[t],
36
+ children: e
37
+ }, t))
38
+ }), A.map((e) => /* @__PURE__ */ c("div", {
39
+ role: "row",
40
+ className: "kapi-dp__row",
41
+ children: e.map((e) => /* @__PURE__ */ c("button", {
42
+ type: "button",
43
+ role: "gridcell",
44
+ tabIndex: o(e.date, O) ? 0 : -1,
45
+ "aria-label": n(e.date, h, S),
46
+ "aria-selected": v(e.date),
47
+ "aria-current": o(e.date, C) ? "date" : void 0,
48
+ className: [
49
+ "kapi-dp__day",
50
+ e.out && "kapi-dp__day--out",
51
+ o(e.date, C) && "kapi-dp__day--today",
52
+ y?.(e.date)
53
+ ].filter(Boolean).join(" "),
54
+ onMouseEnter: x ? () => x(e.date) : void 0,
55
+ onFocus: () => {
56
+ E(e.date), x?.(e.date);
57
+ },
58
+ onClick: () => b(e.date),
59
+ children: e.day
60
+ }, e.date.getTime()))
61
+ }, e[0].date.getTime()))]
62
+ });
63
+ };
64
+ //#endregion
65
+ export { p as KapiCalendarGrid };
@@ -0,0 +1,28 @@
1
+ import type { InputHTMLAttributes, ReactNode, Ref } from "react";
2
+ import "./inputsExtra.css";
3
+ export type KapiCheckCardType = "checkbox" | "radio";
4
+ export type KapiCheckCardProps = Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "size" | "children" | "title"> & {
5
+ /** Título de la tarjeta. */
6
+ label: ReactNode;
7
+ /** Subtítulo / detalle. */
8
+ description?: ReactNode;
9
+ /** Estado marcado. Controla también el resaltado de la tarjeta, por eso es obligatorio. */
10
+ checked: boolean;
11
+ /**
12
+ * `checkbox` (por defecto) alterna; `radio` elige una de varias: las tarjetas con el mismo `name`
13
+ * forman un grupo nativo (flechas, un solo tab stop) y cada una lleva su `value`.
14
+ */
15
+ type?: KapiCheckCardType | undefined;
16
+ /** Marca el control como inválido (`aria-invalid`). Sin la prop, lo toma del `KapiField` (`status="err"`). */
17
+ invalid?: boolean | undefined;
18
+ /** Ref al `<input>`. */
19
+ ref?: Ref<HTMLInputElement>;
20
+ };
21
+ /** Clases de la tarjeta. Pura y exportada para testear. */
22
+ export declare const checkCardClasses: (checked: boolean, className?: string, type?: KapiCheckCardType) => string;
23
+ /**
24
+ * Selección tipo caja (`.kapi-checkcard`): checkbox o radio dentro de una tarjeta clickeable. Controlado.
25
+ * Dentro de un `KapiField` toma ayuda (`aria-describedby`), `aria-invalid` y `aria-required`, pero no el id:
26
+ * cada tarjeta se nombra con su propio título y detalle (un grupo comparte el campo).
27
+ */
28
+ export declare const KapiCheckCard: ({ label, description, checked, type, invalid, className, ref, id, required, "aria-describedby": describedBy, "aria-invalid": ariaInvalid, "aria-required": ariaRequired, ...rest }: KapiCheckCardProps) => import("react").JSX.Element;
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ import { nativeFieldProps as e } from "./fieldLogic.js";
3
+ import { useKapiField as t } from "./KapiField.js";
4
+ /* empty css */
5
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
6
+ //#region src/components/inputs/KapiCheckCard.tsx
7
+ var i = (e, t = "", n = "checkbox") => [
8
+ "kapi-checkcard",
9
+ n === "radio" && "kapi-checkcard--radio",
10
+ e && "kapi-checkcard--on",
11
+ t
12
+ ].filter(Boolean).join(" "), a = ({ label: a, description: o, checked: s, type: c = "checkbox", invalid: l, className: u, ref: d, id: f, required: p, "aria-describedby": m, "aria-invalid": h, "aria-required": g, ..._ }) => {
13
+ let v = e(t(), {
14
+ id: f,
15
+ describedBy: m,
16
+ invalid: l,
17
+ required: p,
18
+ ariaInvalid: h,
19
+ ariaRequired: g,
20
+ takeId: !1
21
+ });
22
+ return /* @__PURE__ */ r("label", {
23
+ className: i(s, u, c),
24
+ children: [/* @__PURE__ */ n("input", {
25
+ ref: d,
26
+ type: c,
27
+ checked: s,
28
+ ..._,
29
+ ...v,
30
+ required: p
31
+ }), /* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("div", {
32
+ className: "kapi-checkcard__t",
33
+ children: a
34
+ }), o != null && /* @__PURE__ */ n("div", {
35
+ className: "kapi-checkcard__s",
36
+ children: o
37
+ })] })]
38
+ });
39
+ };
40
+ //#endregion
41
+ export { a as KapiCheckCard, i as checkCardClasses };
@@ -0,0 +1,7 @@
1
+ import { type KapiCheckControlProps } from "./checkControl";
2
+ export type KapiCheckboxProps = KapiCheckControlProps;
3
+ /** Checkbox (`.kapi-check`). Todas las props nativas van al `<input>`; `className` a la etiqueta. */
4
+ export declare const KapiCheckbox: {
5
+ ({ label, className, ref, invalid, id, required, "aria-describedby": describedBy, "aria-invalid": ariaInvalid, "aria-required": ariaRequired, ...rest }: KapiCheckControlProps): import("react").JSX.Element;
6
+ displayName: string;
7
+ };
@@ -0,0 +1,5 @@
1
+ import { createCheckControl as e } from "./checkControl.js";
2
+ //#region src/components/inputs/KapiCheckbox.tsx
3
+ var t = e("checkbox", "KapiCheckbox");
4
+ //#endregion
5
+ export { t as KapiCheckbox };
@@ -0,0 +1,46 @@
1
+ import { type CSSProperties, type FocusEvent, type Ref } from "react";
2
+ import { type KapiDatePickerMode, type KapiCalendarLabels } from "./datePickerLogic";
3
+ import "./KapiDatePicker.css";
4
+ import type { KapiLabelsOverride } from "../labelsLogic";
5
+ export type { KapiDatePickerMode };
6
+ export type KapiDatePickerProps = {
7
+ /** Qué se elige: sólo fecha, sólo hora, o ambas. */
8
+ mode?: KapiDatePickerMode;
9
+ /** Valor actual. Se re-sincroniza cada vez que cambia (componente controlado). */
10
+ value?: Date | null;
11
+ /** Se llama al elegir, tipear (al salir del campo) o borrar. `null` = vacío. */
12
+ onChange?: (value: Date | null) => void;
13
+ /** Texto de ejemplo del campo; por defecto depende de `mode` (`dd/mm/aaaa`, `hh:mm`…). */
14
+ placeholder?: string;
15
+ /** Deshabilita el campo y el botón del calendario. */
16
+ disabled?: boolean;
17
+ /** `id` del campo de texto (para asociarlo a un `<label>`). */
18
+ id?: string;
19
+ /**
20
+ * Nombre para formularios nativos: un `<input type="hidden">` con el valor como lo serializa el input
21
+ * nativo (`yyyy-mm-dd`, `hh:mm` o `yyyy-mm-ddThh:mm` según `mode`; vacío sin fecha). El campo de texto no lleva `name`.
22
+ */
23
+ name?: string;
24
+ /** Clase del envoltorio (campo + calendario). */
25
+ className?: string;
26
+ /** Estilo del envoltorio; `id` es el del campo de texto. */
27
+ style?: CSSProperties;
28
+ /** Nombre accesible del campo de texto cuando no hay `<label>` visible. */
29
+ "aria-label"?: string;
30
+ /** Textos del calendario (meses, días, botones). */
31
+ labels?: KapiLabelsOverride<KapiCalendarLabels> | undefined;
32
+ /** Paso de la columna de minutos (`15` → 00, 15, 30, 45). Tipear sigue aceptando cualquier minuto. @default 1 */
33
+ minuteStep?: number;
34
+ /** Ref al `<input>` de texto. */
35
+ ref?: Ref<HTMLInputElement>;
36
+ /** Se dispara cuando el foco sale del control (pasar al calendario o al botón no cuenta). */
37
+ onBlur?: (event: FocusEvent<HTMLDivElement>) => void;
38
+ };
39
+ /**
40
+ * Date picker propio (sin librería): calendario + hora, dark-aware.
41
+ * Se puede ELEGIR con el picker o TIPEAR (máscara dd/mm/aaaa, hh:mm; se parsea al salir del campo).
42
+ * Controlado: si `value` cambia desde afuera, el texto, la selección y el mes visible se sincronizan.
43
+ * Teclado: abrir con el botón (o Flecha abajo en el campo) enfoca el día elegido (u hoy) en la grilla;
44
+ * Escape cierra y devuelve el foco al campo.
45
+ */
46
+ export declare const KapiDatePicker: ({ mode, value, onChange, placeholder, disabled, id, name, className, style, "aria-label": ariaLabel, labels, minuteStep, ref, onBlur: onBlurProp }: KapiDatePickerProps) => import("react").JSX.Element;
@@ -0,0 +1,189 @@
1
+ "use client";
2
+ import { assignRef as e, fieldControlProps as t, focusLeaves as n } from "./fieldLogic.js";
3
+ import { useKapiField as r } from "./KapiField.js";
4
+ import { useKapiLocale as i, useLabels as a } from "../locale/KapiLocaleProvider.js";
5
+ import { formDateValue as o, formatValue as s, hasCalendar as ee, hasTime as te, localizedCalendarLabels as ne, maskInput as re, minuteOptions as ie, monthTitle as c, pad as l, parseText as u, sameDay as d } from "./datePickerLogic.js";
6
+ import { KapiCalendarGrid as f } from "./KapiCalendarGrid.js";
7
+ import { useCalendarFocus as p } from "./useCalendarFocus.js";
8
+ import { useDatePopSide as m } from "./useDatePopSide.js";
9
+ /* empty css */
10
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
11
+ import { useEffect as ae, useRef as _, useState as v } from "react";
12
+ import { Calendar as oe, ChevronLeft as se, ChevronRight as ce, Clock as le } from "lucide-react";
13
+ //#region src/components/inputs/KapiDatePicker.tsx
14
+ var ue = {
15
+ date: "dd/mm/aaaa",
16
+ time: "hh:mm",
17
+ datetime: "dd/mm/aaaa hh:mm"
18
+ }, de = Array.from({ length: 24 }, (e, t) => t), y = ({ mode: y = "date", value: b = null, onChange: fe, placeholder: pe, disabled: x = !1, id: me, name: S, className: C, style: w, "aria-label": T, labels: E, minuteStep: D = 1, ref: O, onBlur: k }) => {
19
+ let A = i(), j = a("calendar", ne(A), E), M = r(), N = ee(y), P = te(y), [F, I] = v(!1), [L, R] = v(b), [z, B] = v(() => s(b, y)), [V, H] = v(() => b ?? /* @__PURE__ */ new Date()), U = _(null), W = _(null), G = _(null), { inputRef: he, focusRequest: ge, openFromKeyboard: K, openFromFocus: _e, returnFocus: q } = p(I), J = b ? b.getTime() : null, [ve, ye] = v(J), [be, Y] = v(y);
20
+ (ve !== J || be !== y) && (ye(J), Y(y), R(b), B(s(b, y)), b && H(b)), ae(() => {
21
+ let e = (e) => {
22
+ let t = U.current;
23
+ if (!t || t.contains(e.target)) return;
24
+ let n = document.activeElement;
25
+ n instanceof HTMLElement && G.current?.contains(n) && n.blur(), I(!1);
26
+ };
27
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
28
+ }, []);
29
+ let X = (e) => {
30
+ R(e), B(s(e, y)), fe?.(e);
31
+ }, xe = () => {
32
+ if (!z.trim()) {
33
+ L && X(null);
34
+ return;
35
+ }
36
+ let e = u(z, y, L);
37
+ e === void 0 ? B(s(L, y)) : (e && L && e.getTime() === L.getTime() ? B(s(e, y)) : X(e), e && H(e));
38
+ }, Z = (e) => {
39
+ let t = L ?? /* @__PURE__ */ new Date(), n = new Date(e);
40
+ P && n.setHours(t.getHours(), t.getMinutes()), X(n), P || q();
41
+ }, Q = (e, t) => {
42
+ let n = new Date(L ?? /* @__PURE__ */ new Date());
43
+ e != null && n.setHours(e), t != null && n.setMinutes(t), X(n);
44
+ }, $ = (e) => H(new Date(V.getFullYear(), V.getMonth() + e, 1)), Se = m(F && !x, W, G);
45
+ return /* @__PURE__ */ g("div", {
46
+ className: ["kapi-dp", C].filter(Boolean).join(" "),
47
+ style: w,
48
+ ref: U,
49
+ onBlur: (e) => {
50
+ n(e.relatedTarget, e.currentTarget) && k?.(e);
51
+ },
52
+ children: [
53
+ /* @__PURE__ */ g("div", {
54
+ className: "kapi-dp__field",
55
+ ref: W,
56
+ children: [/* @__PURE__ */ h("input", {
57
+ ref: (t) => {
58
+ he.current = t, e(O, t);
59
+ },
60
+ ...t(M, { id: me }),
61
+ className: "kapi-input kapi-dp__input",
62
+ value: z,
63
+ placeholder: pe ?? ue[y],
64
+ disabled: x,
65
+ "aria-label": T,
66
+ autoComplete: "off",
67
+ inputMode: "numeric",
68
+ onChange: (e) => B(re(e.target.value, y)),
69
+ onFocus: _e,
70
+ onBlur: xe,
71
+ onKeyDown: (e) => {
72
+ e.key === "Escape" && I(!1), e.key === "ArrowDown" && N && (e.preventDefault(), K());
73
+ }
74
+ }), /* @__PURE__ */ h("button", {
75
+ type: "button",
76
+ className: "kapi-dp__toggle",
77
+ disabled: x,
78
+ "aria-label": j.openPicker,
79
+ "aria-expanded": F,
80
+ onClick: () => F ? I(!1) : K(),
81
+ children: h(N ? oe : le, {
82
+ size: 16,
83
+ strokeWidth: 1.9
84
+ })
85
+ })]
86
+ }),
87
+ S && /* @__PURE__ */ h("input", {
88
+ type: "hidden",
89
+ name: S,
90
+ value: o(L, y),
91
+ disabled: x
92
+ }),
93
+ F && !x && /* @__PURE__ */ g("div", {
94
+ ref: G,
95
+ className: `kapi-dp__pop${Se === "top" ? " kapi-dp__pop--up" : ""}`,
96
+ onKeyDown: (e) => {
97
+ e.key === "Escape" && (e.preventDefault(), q());
98
+ },
99
+ children: [N && /* @__PURE__ */ g("div", {
100
+ className: "kapi-dp__cal",
101
+ children: [
102
+ /* @__PURE__ */ g("div", {
103
+ className: "kapi-dp__head",
104
+ children: [
105
+ /* @__PURE__ */ h("button", {
106
+ type: "button",
107
+ className: "kapi-dp__nav",
108
+ "aria-label": j.prevMonth,
109
+ onClick: () => $(-1),
110
+ children: /* @__PURE__ */ h(se, {
111
+ size: 15,
112
+ strokeWidth: 2.2
113
+ })
114
+ }),
115
+ /* @__PURE__ */ h("span", {
116
+ className: "kapi-dp__title",
117
+ children: c(V, j.months)
118
+ }),
119
+ /* @__PURE__ */ h("button", {
120
+ type: "button",
121
+ className: "kapi-dp__nav",
122
+ "aria-label": j.nextMonth,
123
+ onClick: () => $(1),
124
+ children: /* @__PURE__ */ h(ce, {
125
+ size: 15,
126
+ strokeWidth: 2.2
127
+ })
128
+ })
129
+ ]
130
+ }),
131
+ /* @__PURE__ */ h(f, {
132
+ view: V,
133
+ onViewChange: H,
134
+ labels: j,
135
+ focusTarget: L,
136
+ focusRequest: ge,
137
+ isSelected: (e) => d(e, L),
138
+ dayClassName: (e) => d(e, L) && "kapi-dp__day--sel",
139
+ onPick: Z
140
+ }),
141
+ /* @__PURE__ */ g("div", {
142
+ className: "kapi-dp__foot",
143
+ children: [/* @__PURE__ */ h("button", {
144
+ type: "button",
145
+ className: "kapi-dp__link",
146
+ onClick: () => {
147
+ X(null), I(!1);
148
+ },
149
+ children: j.clear
150
+ }), /* @__PURE__ */ h("button", {
151
+ type: "button",
152
+ className: "kapi-dp__link",
153
+ onClick: () => {
154
+ let e = /* @__PURE__ */ new Date();
155
+ H(e), Z(e);
156
+ },
157
+ children: j.today
158
+ })]
159
+ })
160
+ ]
161
+ }), P && /* @__PURE__ */ h("div", {
162
+ className: "kapi-dp__time",
163
+ children: /* @__PURE__ */ g("div", {
164
+ className: "kapi-dp__time-cols",
165
+ children: [/* @__PURE__ */ h("div", {
166
+ className: "kapi-dp__time-col",
167
+ children: de.map((e) => /* @__PURE__ */ h("button", {
168
+ type: "button",
169
+ className: `kapi-dp__time-opt${L?.getHours() === e ? " kapi-dp__time-opt--sel" : ""}`,
170
+ onClick: () => Q(e, null),
171
+ children: l(e)
172
+ }, e))
173
+ }), /* @__PURE__ */ h("div", {
174
+ className: "kapi-dp__time-col",
175
+ children: ie(D, L?.getMinutes()).map((e) => /* @__PURE__ */ h("button", {
176
+ type: "button",
177
+ className: `kapi-dp__time-opt${L?.getMinutes() === e ? " kapi-dp__time-opt--sel" : ""}`,
178
+ onClick: () => Q(null, e),
179
+ children: l(e)
180
+ }, e))
181
+ })]
182
+ })
183
+ })]
184
+ })
185
+ ]
186
+ });
187
+ };
188
+ //#endregion
189
+ export { y as KapiDatePicker };
@@ -0,0 +1,49 @@
1
+ import { type CSSProperties, type FocusEvent, type Ref } from "react";
2
+ import { type KapiCalendarLabels } from "./datePickerLogic";
3
+ import { type KapiDateRange } from "./dateRangeLogic";
4
+ import "./KapiDatePicker.css";
5
+ import type { KapiLabelsOverride } from "../labelsLogic";
6
+ export type { KapiDateRange };
7
+ /** Textos del rango: los del calendario más la pista de qué punta se está eligiendo. */
8
+ export type KapiDateRangePickerLabels = KapiCalendarLabels & {
9
+ pickStart: string;
10
+ pickEnd: string;
11
+ };
12
+ export declare const DEFAULT_DATE_RANGE_LABELS: KapiDateRangePickerLabels;
13
+ export type KapiDateRangePickerProps = {
14
+ /** Rango actual (`from`/`to`). Se re-sincroniza cada vez que cambia (componente controlado). */
15
+ value?: KapiDateRange | undefined;
16
+ /** Se llama con el rango completo (al elegir la segunda fecha o al tipear) o vacío al borrar. */
17
+ onChange?: ((value: KapiDateRange) => void) | undefined;
18
+ /** Texto de ejemplo del campo. */
19
+ placeholder?: string | undefined;
20
+ /** Deshabilita el campo y el botón del calendario. */
21
+ disabled?: boolean | undefined;
22
+ /** `id` del campo de texto (para asociarlo a un `<label>`). */
23
+ id?: string | undefined;
24
+ /**
25
+ * Nombre para formularios nativos: dos `<input type="hidden">`, `name.from` y `name.to`, con cada punta en
26
+ * `yyyy-mm-dd` (vacías sin rango). El campo de texto no lleva `name`.
27
+ */
28
+ name?: string | undefined;
29
+ /** Clase del envoltorio (campo + calendario). */
30
+ className?: string | undefined;
31
+ /** Estilo del envoltorio; `id` es el del campo de texto. */
32
+ style?: CSSProperties | undefined;
33
+ /** Nombre accesible del campo de texto cuando no hay `<label>` visible. */
34
+ "aria-label"?: string | undefined;
35
+ /** Textos del calendario y de la pista. */
36
+ labels?: KapiLabelsOverride<KapiDateRangePickerLabels> | undefined;
37
+ /** Ref al `<input>` de texto. */
38
+ ref?: Ref<HTMLInputElement> | undefined;
39
+ /** Se dispara cuando el foco sale del control (pasar al calendario o al botón no cuenta). */
40
+ onBlur?: ((event: FocusEvent<HTMLDivElement>) => void) | undefined;
41
+ };
42
+ /**
43
+ * Rango de fechas propio (sin librería), con el mismo look que `KapiDatePicker`. En el calendario, el
44
+ * primer click marca el inicio y el segundo el fin (en cualquier orden; el hover previsualiza). También
45
+ * se puede tipear `dd/mm/aaaa – dd/mm/aaaa` (se parsea al salir del campo). Sólo emite rangos completos
46
+ * o vacío: si se cierra con sólo el inicio elegido, vuelve al último rango. Teclado igual que
47
+ * `KapiDatePicker` (grilla compartida `KapiCalendarGrid`): Enter/Espacio marcan cada punta.
48
+ */
49
+ export declare const KapiDateRangePicker: ({ value, onChange, placeholder, disabled, id, name, className, style, "aria-label": ariaLabel, labels, ref, onBlur: onBlurProp }: KapiDateRangePickerProps) => import("react").JSX.Element;