@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,179 @@
1
+ "use client";
2
+ import { assignRef as e, fieldControlProps as t, focusLeaves as n } from "./fieldLogic.js";
3
+ import { useKapiField as ee } from "./KapiField.js";
4
+ import { useKapiLocale as r, useLabels as te } from "../locale/KapiLocaleProvider.js";
5
+ import { DEFAULT_CALENDAR_LABELS as i, calendarNames as a, formDateValue as o, monthTitle as s } from "./datePickerLogic.js";
6
+ import { KapiCalendarGrid as ne } from "./KapiCalendarGrid.js";
7
+ import { useCalendarFocus as re } from "./useCalendarFocus.js";
8
+ import { useDatePopSide as ie } from "./useDatePopSide.js";
9
+ /* empty css */
10
+ import { EMPTY_RANGE as c, formatRange as l, isCompleteRange as ae, maskRangeInput as oe, parseRangeText as u, pickRangeDay as d, rangeDayState as f, sameRange as p } from "./dateRangeLogic.js";
11
+ import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
12
+ import { useEffect as _, useMemo as se, useRef as v, useState as y } from "react";
13
+ import { Calendar as ce, ChevronLeft as le, ChevronRight as ue } from "lucide-react";
14
+ //#region src/components/inputs/KapiDateRangePicker.tsx
15
+ var b = {
16
+ ...i,
17
+ pickStart: "Elige la fecha de inicio",
18
+ pickEnd: "Elige la fecha de fin"
19
+ }, de = (e) => `${e.from?.getTime() ?? ""}-${e.to?.getTime() ?? ""}`, x = ({ value: i = c, onChange: x, placeholder: fe = "dd/mm/aaaa – dd/mm/aaaa", disabled: S = !1, id: pe, name: C, className: me, style: he, "aria-label": w, labels: ge, ref: T, onBlur: E }) => {
20
+ let D = r(), O = se(() => D ? {
21
+ ...b,
22
+ ...a(D)
23
+ } : b, [D]), k = te("calendar", O, ge), A = ee(), [j, M] = y(!1), [N, P] = y(i), [F, I] = y(i), [L, R] = y(null), [z, B] = y(() => l(i)), [V, H] = y(() => i.from ?? /* @__PURE__ */ new Date()), U = v(null), W = v(null), G = v(null), { inputRef: _e, focusRequest: ve, openFromKeyboard: K, openFromFocus: ye, returnFocus: q } = re(M), J = de(i), [be, xe] = y(J);
24
+ be !== J && (xe(J), P(i), I(i), B(l(i)), i.from && H(i.from));
25
+ let Y = () => {
26
+ M(!1), I(N), R(null);
27
+ }, X = v(Y);
28
+ X.current = Y, _(() => {
29
+ let e = (e) => {
30
+ let t = U.current;
31
+ if (!t || t.contains(e.target)) return;
32
+ let n = document.activeElement;
33
+ n instanceof HTMLElement && G.current?.contains(n) && n.blur(), X.current();
34
+ };
35
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
36
+ }, []);
37
+ let Z = (e) => {
38
+ P(e), I(e), B(l(e)), x?.(e);
39
+ }, Se = () => {
40
+ let e = u(z);
41
+ e === null ? (N.from || N.to) && Z(c) : e === void 0 ? B(l(N)) : (p(e, N) ? B(l(e)) : Z(e), e.from && H(e.from));
42
+ }, Ce = (e) => {
43
+ let t = d(F, e);
44
+ R(null), ae(t) ? (Z(t), q()) : I(t);
45
+ }, Q = (e) => H(new Date(V.getFullYear(), V.getMonth() + e, 1)), $ = !!F.from && !F.to, we = ie(j && !S, W, G);
46
+ return /* @__PURE__ */ g("div", {
47
+ className: [
48
+ "kapi-dp",
49
+ "kapi-dp--range",
50
+ me
51
+ ].filter(Boolean).join(" "),
52
+ style: he,
53
+ ref: U,
54
+ onBlur: (e) => {
55
+ n(e.relatedTarget, e.currentTarget) && E?.(e);
56
+ },
57
+ children: [
58
+ /* @__PURE__ */ g("div", {
59
+ className: "kapi-dp__field",
60
+ ref: W,
61
+ children: [/* @__PURE__ */ h("input", {
62
+ ref: (t) => {
63
+ _e.current = t, e(T, t);
64
+ },
65
+ ...t(A, { id: pe }),
66
+ className: "kapi-input kapi-dp__input",
67
+ value: z,
68
+ placeholder: fe,
69
+ disabled: S,
70
+ "aria-label": w,
71
+ autoComplete: "off",
72
+ inputMode: "numeric",
73
+ onChange: (e) => B(oe(e.target.value)),
74
+ onFocus: ye,
75
+ onBlur: Se,
76
+ onKeyDown: (e) => {
77
+ e.key === "Escape" && Y(), e.key === "ArrowDown" && (e.preventDefault(), K());
78
+ }
79
+ }), /* @__PURE__ */ h("button", {
80
+ type: "button",
81
+ className: "kapi-dp__toggle",
82
+ disabled: S,
83
+ "aria-label": k.openPicker,
84
+ "aria-expanded": j,
85
+ onClick: () => j ? Y() : K(),
86
+ children: /* @__PURE__ */ h(ce, {
87
+ size: 16,
88
+ strokeWidth: 1.9
89
+ })
90
+ })]
91
+ }),
92
+ C && /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h("input", {
93
+ type: "hidden",
94
+ name: `${C}.from`,
95
+ value: o(N.from, "date"),
96
+ disabled: S
97
+ }), /* @__PURE__ */ h("input", {
98
+ type: "hidden",
99
+ name: `${C}.to`,
100
+ value: o(N.to, "date"),
101
+ disabled: S
102
+ })] }),
103
+ j && !S && /* @__PURE__ */ h("div", {
104
+ ref: G,
105
+ className: `kapi-dp__pop${we === "top" ? " kapi-dp__pop--up" : ""}`,
106
+ onKeyDown: (e) => {
107
+ e.key === "Escape" && (e.preventDefault(), Y(), q());
108
+ },
109
+ children: /* @__PURE__ */ g("div", {
110
+ className: "kapi-dp__cal",
111
+ children: [
112
+ /* @__PURE__ */ g("div", {
113
+ className: "kapi-dp__head",
114
+ children: [
115
+ /* @__PURE__ */ h("button", {
116
+ type: "button",
117
+ className: "kapi-dp__nav",
118
+ "aria-label": k.prevMonth,
119
+ onClick: () => Q(-1),
120
+ children: /* @__PURE__ */ h(le, {
121
+ size: 15,
122
+ strokeWidth: 2.2
123
+ })
124
+ }),
125
+ /* @__PURE__ */ h("span", {
126
+ className: "kapi-dp__title",
127
+ children: s(V, k.months)
128
+ }),
129
+ /* @__PURE__ */ h("button", {
130
+ type: "button",
131
+ className: "kapi-dp__nav",
132
+ "aria-label": k.nextMonth,
133
+ onClick: () => Q(1),
134
+ children: /* @__PURE__ */ h(ue, {
135
+ size: 15,
136
+ strokeWidth: 2.2
137
+ })
138
+ })
139
+ ]
140
+ }),
141
+ /* @__PURE__ */ h(ne, {
142
+ view: V,
143
+ onViewChange: H,
144
+ labels: k,
145
+ focusTarget: F.from,
146
+ focusRequest: ve,
147
+ isSelected: (e) => f(e, F, null) !== null,
148
+ dayClassName: (e) => {
149
+ let t = f(e, F, $ ? L : null);
150
+ return [(t === "start" || t === "end" || t === "single") && "kapi-dp__day--sel", t && `kapi-dp__day--${t}`].filter(Boolean).join(" ");
151
+ },
152
+ onPick: Ce,
153
+ onDayHover: (e) => {
154
+ e === null ? R(null) : $ && R(e);
155
+ }
156
+ }),
157
+ /* @__PURE__ */ g("div", {
158
+ className: "kapi-dp__foot",
159
+ children: [/* @__PURE__ */ h("button", {
160
+ type: "button",
161
+ className: "kapi-dp__link",
162
+ onClick: () => {
163
+ Z(c), M(!1);
164
+ },
165
+ children: k.clear
166
+ }), /* @__PURE__ */ h("span", {
167
+ className: "kapi-dp__hint",
168
+ "aria-live": "polite",
169
+ children: $ ? k.pickEnd : k.pickStart
170
+ })]
171
+ })
172
+ ]
173
+ })
174
+ })
175
+ ]
176
+ });
177
+ };
178
+ //#endregion
179
+ export { b as DEFAULT_DATE_RANGE_LABELS, x as KapiDateRangePicker };
@@ -0,0 +1,45 @@
1
+ import { type HTMLAttributes } from "react";
2
+ import { type KapiFacet, type KapiFacetChip } from "./facetedSearchLogic";
3
+ import "./KapiFacetedSearch.css";
4
+ import type { KapiLabelsOverride } from "../labelsLogic";
5
+ export type KapiFacetedSearchLabels = {
6
+ /** Nombre accesible del campo. */
7
+ input: string;
8
+ placeholder: string;
9
+ /** "Buscar “texto”" en el desplegable. */
10
+ searchFor: string;
11
+ /** Pista al lado de las facetas que piden valor. */
12
+ pickValue: string;
13
+ empty: string;
14
+ /** Prefijo del botón × de cada chip ("Quitar Estado: Pendiente"). */
15
+ remove: string;
16
+ /** Prefijo del nombre accesible del campo de fecha ("Valor de Fecha desde"). */
17
+ valueOf: string;
18
+ /** Botón que quita todos los filtros (con `onClearAll`). */
19
+ clearAll: string;
20
+ };
21
+ export declare const DEFAULT_FACETED_SEARCH_LABELS: KapiFacetedSearchLabels;
22
+ /** Atributos nativos (`id`, `style`, `data-*`…) van a la región `role="search"` (el rol es propio). */
23
+ export type KapiFacetedSearchProps = Omit<HTMLAttributes<HTMLDivElement>, "children" | "role"> & {
24
+ /** Facetas que se pueden elegir (lista, fecha o flag), cada una con su `apply`. */
25
+ facets: ReadonlyArray<KapiFacet>;
26
+ /** Filtros activos, como chips removibles (el estado lo tiene la pantalla). */
27
+ chips: ReadonlyArray<KapiFacetChip>;
28
+ /** Texto libre confirmado con Enter. */
29
+ onText: (text: string) => void;
30
+ /**
31
+ * Con esta prop, la barra muestra "Limpiar todo" mientras haya algún chip; al tocarlo se llama una
32
+ * sola vez (la pantalla vacía sus filtros de una, sin quitar chip por chip).
33
+ */
34
+ onClearAll?: (() => void) | undefined;
35
+ /** Textos fijos (clave `facetedSearch`). */
36
+ labels?: KapiLabelsOverride<KapiFacetedSearchLabels> | undefined;
37
+ };
38
+ /**
39
+ * Búsqueda facetada (patrón Gmail/Jira): un solo campo donde se tipea texto libre (Enter) o se elige
40
+ * una faceta y su valor; cada filtro activo queda como chip removible. Tonta a propósito: recibe las
41
+ * facetas y los chips, y avisa con `onText` y el `apply` de cada faceta; no sabe de tablas ni backends.
42
+ * Teclado: flechas y Enter en el desplegable, Backspace con el campo vacío suelta la faceta pendiente
43
+ * y después el último chip, Escape cancela la faceta pendiente.
44
+ */
45
+ export declare function KapiFacetedSearch({ facets, chips, onText, onClearAll, labels, className, onMouseDown, ...rest }: KapiFacetedSearchProps): import("react").JSX.Element;
@@ -0,0 +1,188 @@
1
+ "use client";
2
+ import { useLabels as e } from "../locale/KapiLocaleProvider.js";
3
+ import { joinClasses as t } from "../rootProps.js";
4
+ import { KapiDatePicker as n } from "./KapiDatePicker.js";
5
+ import { KapiDateRangePicker as r } from "./KapiDateRangePicker.js";
6
+ import { KapiTag as i } from "../display/KapiTag.js";
7
+ import { KapiPopover as a } from "../overlays/KapiPopover.js";
8
+ import { facetKeyAction as o, facetMenuItems as s, facetOptionName as c, isDateFacet as l, moveActive as u, toDateRangeValue as d, toDateValue as f } from "./facetedSearchLogic.js";
9
+ /* empty css */
10
+ import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
11
+ import { useId as g, useRef as _, useState as v } from "react";
12
+ import { Search as y } from "lucide-react";
13
+ //#region src/components/inputs/KapiFacetedSearch.tsx
14
+ var b = {
15
+ input: "Buscar o filtrar",
16
+ placeholder: "Buscar o filtrar…",
17
+ searchFor: "Buscar",
18
+ pickValue: "elegir valor…",
19
+ empty: "Sin opciones",
20
+ remove: "Quitar",
21
+ valueOf: "Valor de",
22
+ clearAll: "Limpiar todo"
23
+ };
24
+ function x({ facets: x, chips: S, onText: C, onClearAll: w, labels: T, className: E, onMouseDown: D, ...O }) {
25
+ let k = e("facetedSearch", b, T), A = g(), j = `${A}-list`, M = _(null), N = _(null), P = _(null), [F, I] = v(""), [L, R] = v(null), [z, B] = v(!1), [V, H] = v(-1), U = s(x, L, F), W = l(L), G = z && !W, K = () => requestAnimationFrame(() => N.current?.focus()), q = () => {
26
+ I(""), R(null), H(-1);
27
+ }, J = () => {
28
+ q(), B(!1), K();
29
+ }, Y = (e) => {
30
+ e.type === "text" ? (C(e.text), J()) : e.type === "option" ? (L?.apply(e.option.value), J()) : e.facet.kind === "flag" ? (e.facet.apply("true"), J()) : (R(e.facet), I(""), H(-1), B(!0), l(e.facet) ? requestAnimationFrame(() => P.current?.focus()) : K());
31
+ }, X = (e) => {
32
+ let t = o(e.key, {
33
+ input: F,
34
+ pending: !!L,
35
+ active: V,
36
+ open: G,
37
+ chips: S.length
38
+ });
39
+ if (t) switch (e.preventDefault(), t) {
40
+ case "next":
41
+ case "prev":
42
+ B(!0), H((e) => u(G ? e : -1, U.length, t === "next" ? 1 : -1));
43
+ break;
44
+ case "select": {
45
+ let e = U[V];
46
+ e && Y(e);
47
+ break;
48
+ }
49
+ case "text":
50
+ C(F.trim()), J();
51
+ break;
52
+ case "cancel":
53
+ q();
54
+ break;
55
+ case "close":
56
+ B(!1), H(-1);
57
+ break;
58
+ case "dropPending":
59
+ R(null), H(-1);
60
+ break;
61
+ case "removeLast": S[S.length - 1]?.onRemove();
62
+ }
63
+ }, Z = (e) => {
64
+ let t = e.target.value === "";
65
+ (e.key === "Escape" || e.key === "Backspace" && t) && (e.preventDefault(), q(), K());
66
+ }, Q = (e) => `${A}-opt-${e}`;
67
+ return /* @__PURE__ */ h("div", {
68
+ ...O,
69
+ ref: M,
70
+ className: t("kapi-facets", E),
71
+ role: "search",
72
+ onMouseDown: (e) => {
73
+ D?.(e), !e.defaultPrevented && e.target === e.currentTarget && (e.preventDefault(), N.current?.focus(), B(!0));
74
+ },
75
+ children: [
76
+ /* @__PURE__ */ m(y, {
77
+ className: "kapi-facets__icon",
78
+ size: 15,
79
+ "aria-hidden": !0
80
+ }),
81
+ S.map((e) => /* @__PURE__ */ m(i, {
82
+ size: "sm",
83
+ onRemove: () => {
84
+ e.onRemove(), K();
85
+ },
86
+ removeLabel: `${k.remove} ${e.label}`,
87
+ children: e.label
88
+ }, e.key)),
89
+ L && /* @__PURE__ */ h(i, {
90
+ size: "sm",
91
+ tone: "primary",
92
+ className: "kapi-facets__pending",
93
+ children: [L.label, ":"]
94
+ }),
95
+ W && L ? /* @__PURE__ */ m("span", {
96
+ className: "kapi-facets__date",
97
+ onKeyDown: Z,
98
+ children: L.kind === "dateRange" ? /* @__PURE__ */ m(r, {
99
+ ref: P,
100
+ "aria-label": `${k.valueOf} ${L.label}`,
101
+ onChange: ({ from: e, to: t }) => {
102
+ e && t && (L.apply(d(e, t)), J());
103
+ }
104
+ }) : /* @__PURE__ */ m(n, {
105
+ ref: P,
106
+ "aria-label": `${k.valueOf} ${L.label}`,
107
+ onChange: (e) => {
108
+ e && (L.apply(f(e)), J());
109
+ }
110
+ })
111
+ }) : /* @__PURE__ */ m("input", {
112
+ ref: N,
113
+ className: "kapi-facets__input",
114
+ type: "text",
115
+ role: "combobox",
116
+ autoComplete: "off",
117
+ "aria-label": k.input,
118
+ "aria-expanded": G,
119
+ "aria-controls": j,
120
+ "aria-autocomplete": "list",
121
+ "aria-activedescendant": G && V >= 0 ? Q(V) : void 0,
122
+ placeholder: S.length === 0 && !L ? k.placeholder : void 0,
123
+ value: F,
124
+ onFocus: () => B(!0),
125
+ onClick: () => B(!0),
126
+ onBlur: (e) => {
127
+ let t = e.relatedTarget;
128
+ (!t || !M.current?.contains(t)) && B(!1);
129
+ },
130
+ onChange: (e) => {
131
+ I(e.target.value), B(!0), H(-1);
132
+ },
133
+ onKeyDown: X
134
+ }),
135
+ w && S.length > 0 && /* @__PURE__ */ m("button", {
136
+ type: "button",
137
+ className: "kapi-facets__clear",
138
+ onClick: () => {
139
+ w(), q(), K();
140
+ },
141
+ children: k.clearAll
142
+ }),
143
+ /* @__PURE__ */ h(a, {
144
+ open: G,
145
+ anchorRef: M,
146
+ onClose: () => B(!1),
147
+ matchAnchorWidth: !0,
148
+ role: "listbox",
149
+ id: j,
150
+ "aria-label": L ? L.label : k.input,
151
+ closeOnEscape: !1,
152
+ restoreFocus: !1,
153
+ className: "kapi-facets__menu",
154
+ children: [U.length === 0 && /* @__PURE__ */ m("div", {
155
+ className: "kapi-facets__empty",
156
+ children: k.empty
157
+ }), U.map((e, t) => /* @__PURE__ */ m("div", {
158
+ id: Q(t),
159
+ role: "option",
160
+ "aria-selected": t === V,
161
+ "aria-label": e.type === "option" ? c(e.option) : void 0,
162
+ className: `kapi-facets__opt${t === V ? " kapi-facets__opt--active" : ""}`,
163
+ onMouseDown: (e) => e.preventDefault(),
164
+ onMouseEnter: () => H(t),
165
+ onClick: () => Y(e),
166
+ children: e.type === "text" ? /* @__PURE__ */ h("span", { children: [
167
+ k.searchFor,
168
+ " “",
169
+ e.text,
170
+ "”"
171
+ ] }) : e.type === "option" ? /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m("span", { children: e.option.label }), e.option.count !== void 0 && /* @__PURE__ */ m("span", {
172
+ className: "kapi-facets__count",
173
+ "aria-hidden": "true",
174
+ children: e.option.count
175
+ })] }) : /* @__PURE__ */ h("span", { children: [/* @__PURE__ */ m("span", {
176
+ className: "kapi-facets__facet",
177
+ children: e.facet.label
178
+ }), e.facet.kind !== "flag" && /* @__PURE__ */ h("span", {
179
+ className: "kapi-facets__hint",
180
+ children: [" · ", k.pickValue]
181
+ })] })
182
+ }, e.type === "facet" ? `f-${e.facet.key}` : e.type === "option" ? `o-${e.option.value}` : "t"))]
183
+ })
184
+ ]
185
+ });
186
+ }
187
+ //#endregion
188
+ export { b as DEFAULT_FACETED_SEARCH_LABELS, x as KapiFacetedSearch };
@@ -0,0 +1,33 @@
1
+ import { type HTMLAttributes, type ReactNode } from "react";
2
+ import { type KapiFieldContextValue } from "./fieldLogic";
3
+ export type KapiFieldStatus = "ok" | "err";
4
+ export type { KapiFieldContextValue };
5
+ /** Atributos nativos (`id`, `style`, `data-*`…) van al contenedor; el `id` del control es `htmlFor`. */
6
+ export type KapiFieldProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
7
+ /** Texto de la etiqueta. */
8
+ label?: ReactNode | undefined;
9
+ /** `id` del control que etiqueta. Opcional: sin él se genera uno y el control lo toma del contexto. */
10
+ htmlFor?: string | undefined;
11
+ /** Agrega el asterisco de obligatorio a la etiqueta y `aria-required` al control. */
12
+ required?: boolean | undefined;
13
+ /** Texto de ayuda / error bajo el control. */
14
+ help?: ReactNode | undefined;
15
+ /** `id` del texto de ayuda. Opcional: sin él se deriva del id del control. */
16
+ helpId?: string | undefined;
17
+ /** Estado de validación: pinta la ayuda y le pone ícono; con `err` el control queda `aria-invalid`. */
18
+ status?: KapiFieldStatus | undefined;
19
+ /** El control del campo (input, select…); recibe `id`, `aria-describedby` y estado del contexto. */
20
+ children: ReactNode;
21
+ };
22
+ /** Lo que el `KapiField` que envuelve al control le pasa (ids, required, invalid); `null` fuera de un campo. */
23
+ export declare const useKapiField: () => KapiFieldContextValue | null;
24
+ /** Clases del contenedor. Pura y exportada para testear. */
25
+ export declare const fieldClasses: (className?: string) => string;
26
+ /** Clases del texto de ayuda según el estado. */
27
+ export declare const helpClasses: (status?: KapiFieldStatus) => string;
28
+ /**
29
+ * Wrapper de formulario: label + control + ayuda (con ícono si hay estado).
30
+ * Los controles del design system que van adentro toman del contexto su id, la ayuda (`aria-describedby`),
31
+ * `aria-invalid` y `aria-required`; no hace falta cablear ids a mano.
32
+ */
33
+ export declare const KapiField: ({ label, htmlFor, required, help, helpId: helpIdProp, status, className, children, ...rest }: KapiFieldProps) => import("react").JSX.Element;
@@ -0,0 +1,60 @@
1
+ "use client";
2
+ import { fieldIds as e } from "./fieldLogic.js";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ import { createContext as r, useContext as i, useId as a, useMemo as o } from "react";
5
+ import { AlertTriangle as s, CheckCircle2 as c } from "lucide-react";
6
+ //#region src/components/inputs/KapiField.tsx
7
+ var l = r(null), u = () => i(l), d = (e = "") => ["kapi-field", e].filter(Boolean).join(" "), f = (e) => ["kapi-help", e && `kapi-help--${e}`].filter(Boolean).join(" "), p = ({ label: r, htmlFor: i, required: u = !1, help: p, helpId: m, status: h, className: g, children: _, ...v }) => {
8
+ let y = a(), b = !!p, { controlId: x, labelId: S, helpId: C } = e({
9
+ htmlFor: i,
10
+ autoId: y,
11
+ helpId: m,
12
+ hasHelp: b
13
+ }), w = o(() => ({
14
+ controlId: x,
15
+ labelId: r == null ? void 0 : S,
16
+ helpId: C,
17
+ required: u,
18
+ invalid: h === "err"
19
+ }), [
20
+ x,
21
+ S,
22
+ r,
23
+ C,
24
+ u,
25
+ h
26
+ ]);
27
+ return /* @__PURE__ */ t(l.Provider, {
28
+ value: w,
29
+ children: /* @__PURE__ */ n("div", {
30
+ ...v,
31
+ className: d(g),
32
+ children: [
33
+ r != null && /* @__PURE__ */ n("label", {
34
+ id: S,
35
+ htmlFor: x,
36
+ children: [r, u && " *"]
37
+ }),
38
+ _,
39
+ b ? /* @__PURE__ */ n("span", {
40
+ id: C,
41
+ className: f(h),
42
+ role: h === "err" ? "alert" : void 0,
43
+ children: [
44
+ h === "ok" && /* @__PURE__ */ t(c, {
45
+ size: 13,
46
+ strokeWidth: 2.2
47
+ }),
48
+ h === "err" && /* @__PURE__ */ t(s, {
49
+ size: 13,
50
+ strokeWidth: 2.2
51
+ }),
52
+ p
53
+ ]
54
+ }) : null
55
+ ]
56
+ })
57
+ });
58
+ };
59
+ //#endregion
60
+ export { p as KapiField, d as fieldClasses, f as helpClasses, u as useKapiField };
@@ -0,0 +1,58 @@
1
+ import { type CSSProperties, type FocusEvent, type Ref } from "react";
2
+ import "./KapiFileUpload.css";
3
+ import type { KapiLabelsOverride } from "../labelsLogic";
4
+ export type KapiFileUploadProps = {
5
+ /** Permite varios archivos (agrega) o uno solo (reemplaza). */
6
+ multiple?: boolean;
7
+ /** Como el atributo nativo `accept` (p. ej. `.pdf,image/*`). */
8
+ accept?: string;
9
+ /** Texto de ayuda bajo el título. Gana sobre `labels.hint`. */
10
+ hint?: string;
11
+ /** Emite la lista completa de archivos cada vez que cambia (agregar o quitar). */
12
+ onChange?: (files: File[]) => void;
13
+ /** Deshabilita la zona de carga (no abre el selector ni acepta archivos soltados). */
14
+ disabled?: boolean;
15
+ /** Clase del envoltorio (zona + lista). */
16
+ className?: string;
17
+ /** Estilo del envoltorio (zona + lista). */
18
+ style?: CSSProperties;
19
+ /** Textos fijos de la zona y del botón quitar. */
20
+ labels?: KapiLabelsOverride<KapiFileUploadLabels> | undefined;
21
+ /**
22
+ * Nombre para formularios nativos: va al `<input type="file">`, que se sincroniza con la lista
23
+ * (también lo arrastrado) vía `DataTransfer`. Sin `DataTransfer` (navegadores viejos, jsdom) el input
24
+ * sólo lleva la última elección: en ese caso el host arma el `FormData` con lo que emite `onChange`.
25
+ */
26
+ name?: string;
27
+ /**
28
+ * `id` de la zona (el control). Sin él, lo toma del `KapiField` que la envuelve. Por eso el
29
+ * passthrough de la raíz no incluye `id`: `className`/`style` van al envoltorio.
30
+ */
31
+ id?: string;
32
+ /** Se dispara cuando el foco sale de la zona. */
33
+ onBlur?: (event: FocusEvent<HTMLDivElement>) => void;
34
+ /** Marca la zona como inválida (`aria-invalid`). Sin la prop, lo toma del `KapiField` (`status="err"`). */
35
+ invalid?: boolean;
36
+ /** `id`s extra para `aria-describedby` (se suman a la ayuda del campo y al hint). */
37
+ "aria-describedby"?: string;
38
+ /** Ref a la zona (el elemento enfocable, `role="button"`). */
39
+ ref?: Ref<HTMLDivElement>;
40
+ };
41
+ export type KapiFileUploadLabels = {
42
+ /** Texto de la zona, antes del enlace. */
43
+ drop: string;
44
+ /** Enlace para elegir archivos. */
45
+ choose: string;
46
+ /** Prefijo del botón quitar ("Quitar archivo.pdf"). */
47
+ remove: string;
48
+ /** Ayuda bajo el título (sin `hint`). */
49
+ hint: string;
50
+ };
51
+ export declare const DEFAULT_FILE_UPLOAD_LABELS: KapiFileUploadLabels;
52
+ /**
53
+ * Dropzone de archivos: click, teclado (Enter / Espacio) o arrastrar; lista con tamaño y quitar.
54
+ * La lista vive adentro; `onChange` emite el estado resultante.
55
+ * Dentro de un `KapiField` la zona toma id, nombre (label del campo + texto de la zona), ayuda y `aria-invalid`.
56
+ * No lleva `aria-required` (no es válido en `role="button"`): el obligatorio se ve en el asterisco del label.
57
+ */
58
+ export declare const KapiFileUpload: ({ multiple, accept, hint: hintProp, onChange, disabled, className, style, labels, name, id, onBlur, invalid, "aria-describedby": describedBy, ref }: KapiFileUploadProps) => import("react").JSX.Element;