@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,60 @@
1
+ "use client";
2
+ import { KapiButton as e } from "../inputs/KapiButton.js";
3
+ import { useLabels as t } from "../locale/KapiLocaleProvider.js";
4
+ import { KapiOffcanvas as n } from "./KapiOffcanvas.js";
5
+ import { runSubmit as r } from "./canvasFormLogic.js";
6
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
7
+ import { useCallback as s, useEffect as c, useId as l, useRef as u, useState as d } from "react";
8
+ //#region src/components/overlays/KapiCanvasForm.tsx
9
+ var f = {
10
+ submit: "Guardar",
11
+ cancel: "Cancelar"
12
+ }, p = ({ onClose: p, children: m, onSubmit: h, onError: g, submitLabel: _, cancelLabel: v, submitDisabled: y = !1, formId: b, closeOnBackdrop: x, closeOnEscape: S, ...C }) => {
13
+ let w = t("canvasForm", f), T = l(), E = b ?? `canvas-form-${T}`, [D, O] = d(!1), k = u(!1), A = u(!0);
14
+ c(() => (A.current = !0, () => {
15
+ A.current = !1;
16
+ }), []);
17
+ let j = s((e) => {
18
+ e.preventDefault(), !k.current && r(() => h(e), {
19
+ onStart: () => {
20
+ k.current = !0, O(!0);
21
+ },
22
+ onEnd: () => {
23
+ k.current = !1, A.current && O(!1);
24
+ },
25
+ onError: g
26
+ });
27
+ }, [h, g]), M = () => {
28
+ k.current || p();
29
+ }, N = /* @__PURE__ */ o(i, { children: [/* @__PURE__ */ a(e, {
30
+ onClick: M,
31
+ disabled: D,
32
+ children: v ?? w.cancel
33
+ }), /* @__PURE__ */ a(e, {
34
+ variant: "primary",
35
+ type: "submit",
36
+ form: E,
37
+ disabled: D || y,
38
+ "aria-busy": D,
39
+ icon: D ? /* @__PURE__ */ a("span", {
40
+ className: "kapi-spinner kapi-spinner--sm",
41
+ "aria-hidden": "true"
42
+ }) : void 0,
43
+ children: _ ?? w.submit
44
+ })] });
45
+ return /* @__PURE__ */ a(n, {
46
+ ...C,
47
+ onClose: M,
48
+ closeOnBackdrop: !D && x,
49
+ closeOnEscape: !D && S,
50
+ footer: N,
51
+ children: /* @__PURE__ */ a("form", {
52
+ id: E,
53
+ className: "kapi-stack",
54
+ onSubmit: j,
55
+ children: m
56
+ })
57
+ });
58
+ };
59
+ //#endregion
60
+ export { f as DEFAULT_CANVAS_FORM_LABELS, p as KapiCanvasForm };
@@ -0,0 +1,58 @@
1
+ import { type ReactNode } from "react";
2
+ import "./KapiCommandPalette.css";
3
+ import { type KapiRootProps } from "../rootProps";
4
+ import type { KapiLabelsOverride } from "../labelsLogic";
5
+ export type KapiCommand = {
6
+ id: string;
7
+ /** Texto visible. También se usa para filtrar (si es un elemento, se extrae su texto; suma `keywords` si hace falta). */
8
+ label: ReactNode;
9
+ icon?: ReactNode;
10
+ /** Contenido a la derecha (atajo, contador, badge…). */
11
+ trailing?: ReactNode;
12
+ /** Términos extra que también matchean la búsqueda. */
13
+ keywords?: string[];
14
+ disabled?: boolean;
15
+ /** Se ejecuta al elegir el comando; después la paleta llama a `onClose`. */
16
+ onSelect: () => void;
17
+ };
18
+ export type KapiCommandGroup = {
19
+ id: string;
20
+ /** Título de la sección ("IR A", "Módulos"…). Se muestra sólo si el grupo tiene resultados. */
21
+ label?: ReactNode;
22
+ commands: KapiCommand[];
23
+ };
24
+ /** `className`/`style`/`id` (`KapiRootProps`) van al `<dialog>` `.kapi-cmdk` (la tarjeta de la paleta). */
25
+ export type KapiCommandPaletteProps = KapiRootProps & {
26
+ /** Controlado. */
27
+ open: boolean;
28
+ /** Pedido de cierre (Esc, click afuera, o después de elegir un comando). */
29
+ onClose: () => void;
30
+ /** Secciones de comandos, en orden; la búsqueda filtra dentro de cada una. */
31
+ groups: KapiCommandGroup[];
32
+ /** Gana sobre `labels.placeholder` ("Buscar o ir a…"). */
33
+ placeholder?: string;
34
+ /** Gana sobre `labels.empty` ("Sin resultados"). */
35
+ emptyLabel?: string;
36
+ /** Pie con la ayuda de teclado. Default `labels.footerHint`; `null` lo oculta. */
37
+ footerHint?: ReactNode;
38
+ /** Textos fijos (clave `commandPalette`). */
39
+ labels?: KapiLabelsOverride<KapiCommandPaletteLabels> | undefined;
40
+ };
41
+ export declare const DEFAULT_FOOTER_HINT = "\u2191\u2193 para moverte \u00B7 Enter para ir \u00B7 Esc para cerrar";
42
+ export type KapiCommandPaletteLabels = {
43
+ placeholder: string;
44
+ empty: string;
45
+ footerHint: string;
46
+ };
47
+ export declare const DEFAULT_COMMAND_PALETTE_LABELS: KapiCommandPaletteLabels;
48
+ /**
49
+ * Paleta de comandos ("Buscar o ir a…", típicamente con Ctrl/Cmd+K — ver `useHotkey`).
50
+ * Panel flotante centrado sobre `<dialog>` nativo (`showModal()`): top-layer, focus trap, Escape y
51
+ * restauración de foco los da el navegador. Búsqueda por subcadena sobre el texto del `label` y los
52
+ * `keywords`; resultados agrupados; ↑/↓ recorren los comandos de todos los grupos, Enter elige.
53
+ *
54
+ * PERMISOS: es puramente presentacional. La app debe pasar SÓLO los comandos que el usuario puede ver
55
+ * (filtrados upstream con su propio motor de permisos); la paleta no valida ni oculta nada por sí misma.
56
+ * `disabled` sólo deshabilita visualmente un comando; no es un control de acceso.
57
+ */
58
+ export declare const KapiCommandPalette: ({ open, ...props }: KapiCommandPaletteProps) => import("react").JSX.Element | null;
@@ -0,0 +1,152 @@
1
+ "use client";
2
+ import { useLabels as e } from "../locale/KapiLocaleProvider.js";
3
+ import { joinClasses as t } from "../rootProps.js";
4
+ import { getPortalRoot as n, useBackdropClose as r, useNativeDialog as i } from "./useNativeDialog.js";
5
+ import { clampActiveIndex as a, filterGroups as o, flattenNavigable as s, moveActiveIndex as c, nodeText as l } from "./commandPaletteLogic.js";
6
+ /* empty css */
7
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
8
+ import { useEffect as f, useId as p, useMemo as m, useRef as h, useState as g } from "react";
9
+ import { Search as _ } from "lucide-react";
10
+ import { createPortal as v } from "react-dom";
11
+ //#region src/components/overlays/KapiCommandPalette.tsx
12
+ var y = "↑↓ para moverte · Enter para ir · Esc para cerrar", b = {
13
+ placeholder: "Buscar o ir a…",
14
+ empty: "Sin resultados",
15
+ footerHint: y
16
+ }, x = ({ onClose: y, groups: x, placeholder: S, emptyLabel: C, footerHint: w, labels: T, className: E, style: D, id: O }) => {
17
+ let k = e("commandPalette", b, T), A = S ?? k.placeholder, j = C ?? k.empty, M = w === void 0 ? k.footerHint : w, N = p(), P = `${N}-listbox`, F = (e) => `${N}-opt-${e}`, I = h(null), [L, R] = g(""), [z, B] = g(0), { ref: V, dialogProps: H } = i({ onRequestClose: y }), U = r(y), W = m(() => {
18
+ let e = x.map((e) => ({
19
+ ...e,
20
+ commands: e.commands.map((e) => ({
21
+ ...e,
22
+ text: l(e.label)
23
+ }))
24
+ }));
25
+ return o(e, L);
26
+ }, [x, L]), G = m(() => s(W), [W]), K = a(z, G.length), q = K >= 0 ? G[K] : void 0;
27
+ f(() => {
28
+ if (!q) return;
29
+ let e = I.current?.querySelector(`[data-cmd-id="${CSS.escape(q.id)}"]`);
30
+ e && typeof e.scrollIntoView == "function" && e.scrollIntoView({ block: "nearest" });
31
+ }, [q]);
32
+ let J = (e) => {
33
+ e.disabled || (e.onSelect(), y());
34
+ }, Y = (e) => {
35
+ switch (e.key) {
36
+ case "ArrowDown":
37
+ case "ArrowUp":
38
+ e.preventDefault(), B(c(K, G.length, e.key === "ArrowDown" ? 1 : -1));
39
+ break;
40
+ case "Home":
41
+ case "End":
42
+ G.length > 0 && (e.preventDefault(), B(e.key === "Home" ? 0 : G.length - 1));
43
+ break;
44
+ case "Enter": q && !e.nativeEvent.isComposing && (e.preventDefault(), J(q));
45
+ }
46
+ }, X = n();
47
+ return X ? v(/* @__PURE__ */ d("dialog", {
48
+ ref: V,
49
+ id: O,
50
+ style: D,
51
+ className: t("kapi-cmdk", E),
52
+ "aria-modal": "true",
53
+ "aria-label": A,
54
+ ...H,
55
+ ...U,
56
+ children: [
57
+ /* @__PURE__ */ d("div", {
58
+ className: "kapi-cmdk__search",
59
+ children: [/* @__PURE__ */ u(_, {
60
+ size: 17,
61
+ strokeWidth: 2.2,
62
+ "aria-hidden": "true",
63
+ className: "kapi-cmdk__search-icon"
64
+ }), /* @__PURE__ */ u("input", {
65
+ "data-autofocus": !0,
66
+ type: "text",
67
+ className: "kapi-cmdk__input",
68
+ role: "combobox",
69
+ "aria-expanded": "true",
70
+ "aria-controls": P,
71
+ "aria-autocomplete": "list",
72
+ "aria-activedescendant": q ? F(q.id) : void 0,
73
+ autoComplete: "off",
74
+ spellCheck: !1,
75
+ placeholder: A,
76
+ "aria-label": A,
77
+ value: L,
78
+ onChange: (e) => {
79
+ R(e.target.value), B(0);
80
+ },
81
+ onKeyDown: Y
82
+ })]
83
+ }),
84
+ /* @__PURE__ */ d("div", {
85
+ ref: I,
86
+ id: P,
87
+ role: "listbox",
88
+ "aria-label": A,
89
+ className: "kapi-cmdk__list",
90
+ children: [W.map((e) => {
91
+ let t = `${N}-grp-${e.id}`;
92
+ return /* @__PURE__ */ d("div", {
93
+ role: "group",
94
+ className: "kapi-cmdk__group",
95
+ "aria-labelledby": e.label == null ? void 0 : t,
96
+ children: [e.label != null && /* @__PURE__ */ u("div", {
97
+ id: t,
98
+ className: "kapi-cmdk__group-label",
99
+ role: "presentation",
100
+ children: e.label
101
+ }), e.commands.map((e) => {
102
+ let t = q?.id === e.id;
103
+ return /* @__PURE__ */ d("div", {
104
+ id: F(e.id),
105
+ "data-cmd-id": e.id,
106
+ role: "option",
107
+ "aria-selected": t,
108
+ "aria-disabled": e.disabled || void 0,
109
+ className: [
110
+ "kapi-cmdk__item",
111
+ t && "kapi-cmdk__item--active",
112
+ e.disabled && "kapi-cmdk__item--disabled"
113
+ ].filter(Boolean).join(" "),
114
+ onMouseDown: (e) => e.preventDefault(),
115
+ onMouseMove: () => {
116
+ let t = G.findIndex((t) => t.id === e.id);
117
+ t >= 0 && t !== K && B(t);
118
+ },
119
+ onClick: () => J(e),
120
+ children: [
121
+ e.icon && /* @__PURE__ */ u("span", {
122
+ className: "kapi-cmdk__icon",
123
+ "aria-hidden": "true",
124
+ children: e.icon
125
+ }),
126
+ /* @__PURE__ */ u("span", {
127
+ className: "kapi-cmdk__label",
128
+ children: e.label
129
+ }),
130
+ e.trailing && /* @__PURE__ */ u("span", {
131
+ className: "kapi-cmdk__trailing",
132
+ children: e.trailing
133
+ })
134
+ ]
135
+ }, e.id);
136
+ })]
137
+ }, e.id);
138
+ }), W.length === 0 && /* @__PURE__ */ u("div", {
139
+ className: "kapi-cmdk__empty",
140
+ role: "status",
141
+ children: j
142
+ })]
143
+ }),
144
+ M && /* @__PURE__ */ u("div", {
145
+ className: "kapi-cmdk__foot",
146
+ children: M
147
+ })
148
+ ]
149
+ }), X) : null;
150
+ }, S = ({ open: e, ...t }) => e ? /* @__PURE__ */ u(x, { ...t }) : null;
151
+ //#endregion
152
+ export { b as DEFAULT_COMMAND_PALETTE_LABELS, y as DEFAULT_FOOTER_HINT, S as KapiCommandPalette };
@@ -0,0 +1,48 @@
1
+ import { type ReactNode } from "react";
2
+ import "./KapiConfirm.css";
3
+ import type { KapiRootProps } from "../rootProps";
4
+ import type { KapiLabelsOverride } from "../labelsLogic";
5
+ export type KapiConfirmVariant = "danger" | "warning" | "success" | "info" | "question";
6
+ /**
7
+ * Textos fijos: cancelar, el confirmar por defecto de cada `variant` y el error genérico que
8
+ * muestra `KapiDialogHost` cuando un `onConfirm` asíncrono falla sin mensaje.
9
+ */
10
+ export type KapiConfirmLabels = {
11
+ cancel: string;
12
+ error: string;
13
+ } & Record<KapiConfirmVariant, string>;
14
+ export declare const DEFAULT_CONFIRM_LABELS: KapiConfirmLabels;
15
+ /** `className`/`style`/`id` van a la tarjeta del modal. */
16
+ export type KapiConfirmProps = KapiRootProps & {
17
+ /** Muestra u oculta el diálogo (controlado); al cerrar anima la salida. */
18
+ open: boolean;
19
+ /** danger (default) · warning · success · info · question: define ícono, color y label por defecto. */
20
+ variant?: KapiConfirmVariant | undefined;
21
+ /** Pregunta principal (nombra al diálogo). */
22
+ title: string;
23
+ /** Detalle bajo el título (qué se va a hacer, consecuencias). */
24
+ message?: ReactNode | undefined;
25
+ /** Default según `variant` (`labels.<variant>`: Eliminar / Continuar / Aceptar / Aceptar / Sí). */
26
+ confirmLabel?: string | undefined;
27
+ /** Gana sobre `labels.cancel` ("Cancelar"). */
28
+ cancelLabel?: string | undefined;
29
+ /** Textos fijos (clave `confirm`). */
30
+ labels?: KapiLabelsOverride<KapiConfirmLabels> | undefined;
31
+ /**
32
+ * Acción en curso: spinner en el botón de confirmar, los dos botones deshabilitados y ningún
33
+ * cierre (Escape, fondo, X). Default false.
34
+ */
35
+ loading?: boolean | undefined;
36
+ /** Error a mostrar dentro del diálogo (`role="alert"`), p. ej. el de una acción que falló. */
37
+ error?: ReactNode | undefined;
38
+ /** Click en el botón de confirmar. */
39
+ onConfirm: () => void;
40
+ /** Pedido de cierre: Cancelar, X, Escape o click en el fondo. El padre pone `open={false}`. */
41
+ onClose: () => void;
42
+ };
43
+ /**
44
+ * Confirmación (envuelve a KapiModal `sm` sin header). Controlada:
45
+ * `open` + `onConfirm` + `onClose`. El foco inicial cae en "Cancelar". `loading` y `error`
46
+ * representan una acción asíncrona en curso o fallida (los usa `KapiDialogHost`).
47
+ */
48
+ export declare const KapiConfirm: ({ open, variant, title, message, confirmLabel, cancelLabel, labels, loading, error, onConfirm, onClose, className, style, id }: KapiConfirmProps) => import("react").JSX.Element;
@@ -0,0 +1,94 @@
1
+ "use client";
2
+ import { KapiButton as e } from "../inputs/KapiButton.js";
3
+ import { useLabels as t } from "../locale/KapiLocaleProvider.js";
4
+ import { KapiModal as n } from "./KapiModal.js";
5
+ /* empty css */
6
+ import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
7
+ import { useId as o } from "react";
8
+ import { AlertTriangle as s, CheckCircle2 as c, CircleHelp as l, Info as u, Trash2 as d } from "lucide-react";
9
+ //#region src/components/overlays/KapiConfirm.tsx
10
+ var f = {
11
+ danger: {
12
+ Icon: d,
13
+ button: "danger"
14
+ },
15
+ warning: {
16
+ Icon: s,
17
+ button: "primary"
18
+ },
19
+ success: {
20
+ Icon: c,
21
+ button: "primary"
22
+ },
23
+ info: {
24
+ Icon: u,
25
+ button: "primary"
26
+ },
27
+ question: {
28
+ Icon: l,
29
+ button: "primary"
30
+ }
31
+ }, p = {
32
+ cancel: "Cancelar",
33
+ danger: "Eliminar",
34
+ warning: "Continuar",
35
+ success: "Aceptar",
36
+ info: "Aceptar",
37
+ question: "Sí",
38
+ error: "No se pudo completar la acción"
39
+ }, m = ({ open: s, variant: c = "danger", title: l, message: u, confirmLabel: d, cancelLabel: m, labels: h, loading: g = !1, error: _, onConfirm: v, onClose: y, className: b, style: x, id: S }) => {
40
+ let C = o(), w = t("confirm", p, h), T = c in f ? c : "danger", { Icon: E, button: D } = f[T];
41
+ return /* @__PURE__ */ a(n, {
42
+ className: b,
43
+ style: x,
44
+ id: S,
45
+ size: "sm",
46
+ hideHeader: !0,
47
+ "aria-labelledby": C,
48
+ open: s,
49
+ onClose: g ? () => {} : y,
50
+ closeOnEscape: !g,
51
+ closeOnBackdrop: !g,
52
+ footer: /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i(e, {
53
+ "data-autofocus": !0,
54
+ disabled: g,
55
+ onClick: y,
56
+ children: m ?? w.cancel
57
+ }), /* @__PURE__ */ i(e, {
58
+ variant: D,
59
+ disabled: g,
60
+ "aria-busy": g || void 0,
61
+ icon: g ? /* @__PURE__ */ i("span", {
62
+ className: "kapi-spinner kapi-confirm__spinner",
63
+ "aria-hidden": "true"
64
+ }) : void 0,
65
+ onClick: v,
66
+ children: d ?? w[T]
67
+ })] }),
68
+ children: [
69
+ /* @__PURE__ */ i("div", {
70
+ className: `kapi-confirm__icon kapi-confirm__icon--${T}`,
71
+ children: /* @__PURE__ */ i(E, {
72
+ size: 28,
73
+ strokeWidth: 2
74
+ })
75
+ }),
76
+ /* @__PURE__ */ i("div", {
77
+ id: C,
78
+ className: "kapi-confirm__title",
79
+ children: l
80
+ }),
81
+ u && /* @__PURE__ */ i("div", {
82
+ className: "kapi-confirm__msg",
83
+ children: u
84
+ }),
85
+ _ != null && _ !== !1 && /* @__PURE__ */ i("div", {
86
+ className: "kapi-confirm__error",
87
+ role: "alert",
88
+ children: _
89
+ })
90
+ ]
91
+ });
92
+ };
93
+ //#endregion
94
+ export { p as DEFAULT_CONFIRM_LABELS, m as KapiConfirm };
@@ -0,0 +1,51 @@
1
+ import { type ReactNode } from "react";
2
+ import type { KapiLabelsOverride } from "../labelsLogic";
3
+ import { type KapiRootProps } from "../rootProps";
4
+ import "./overlays.css";
5
+ /** Ítem de un menú de acciones (KapiContextMenu, KapiMenuButton, menús de KapiTable y KapiShell). */
6
+ export type KapiMenuItem = {
7
+ sep: true;
8
+ } | {
9
+ sep?: false;
10
+ header: string;
11
+ } | {
12
+ sep?: false | undefined;
13
+ label: string;
14
+ icon?: ReactNode | undefined;
15
+ onClick?: (() => void) | undefined;
16
+ danger?: boolean | undefined;
17
+ /** Atenuado y no ejecutable: anuncia `aria-disabled`, ignora click/Enter y las flechas lo saltean. */
18
+ disabled?: boolean | undefined;
19
+ };
20
+ /** `className`/`style`/`id` van al menú (`role="menu"`); la posición calculada gana sobre `style`. */
21
+ export type KapiContextMenuProps = KapiRootProps & {
22
+ /** Muestra u oculta el menú (controlado). Con `false` no se monta nada. */
23
+ open: boolean;
24
+ /** Posición (clientX/clientY) donde se abrió; se clampea al viewport. */
25
+ x: number;
26
+ /** Coordenada vertical (clientY) donde se abrió; se clampea al viewport. */
27
+ y: number;
28
+ /** Ítems del menú, en orden (acciones y separadores). */
29
+ items: KapiMenuItem[];
30
+ /** Pedido de cierre (Escape, click afuera o tras elegir un ítem). El padre pone `open={false}`. */
31
+ onClose: () => void;
32
+ /** Nombre accesible del menú (`aria-label`). Sin la prop usa `labels.menu`. */
33
+ "aria-label"?: string | undefined;
34
+ /** Textos fijos (clave `contextMenu`). */
35
+ labels?: KapiLabelsOverride<KapiContextMenuLabels> | undefined;
36
+ };
37
+ export type KapiContextMenuLabels = {
38
+ menu: string;
39
+ };
40
+ export declare const DEFAULT_CONTEXT_MENU_LABELS: KapiContextMenuLabels;
41
+ /** Clases de un ítem accionable (compartidas por KapiContextMenu y KapiMenuButton). */
42
+ export declare const menuItemClass: (item: {
43
+ danger?: boolean | undefined;
44
+ disabled?: boolean | undefined;
45
+ }) => string;
46
+ /**
47
+ * Menú contextual custom. Se abre con doble click derecho (ver
48
+ * `useGlobalRightClick` / `useDragScroll({ onMenu })`). Controlado con `open` + `onClose`: cada
49
+ * apertura monta el menú de cero (el foco va al primer ítem y vuelve al cerrar).
50
+ */
51
+ export declare const KapiContextMenu: ({ open, ...props }: KapiContextMenuProps) => import("react").JSX.Element | null;
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ import { useLabels as e } from "../locale/KapiLocaleProvider.js";
3
+ import { usePlacement as t } from "../../hooks/usePlacement.js";
4
+ import { joinClasses as n } from "../rootProps.js";
5
+ /* empty css */
6
+ import { POINT_MENU_PLACEMENT as r } from "../../hooks/rightClick.js";
7
+ import { focusedMenuIndex as i, initialMenuFocus as a, menuKeyIntent as o, nextEnabledIndex as s } from "./menuKeyboardLogic.js";
8
+ import { actionableIndexes as c, estimateMenuHeight as l } from "./menuButtonLogic.js";
9
+ import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
10
+ import { useEffect as p, useLayoutEffect as m, useRef as h } from "react";
11
+ //#region src/components/overlays/KapiContextMenu.tsx
12
+ var g = { menu: "Menú contextual" }, _ = (e) => n("kapi-ctxmenu__item", e.danger && "is-danger", e.disabled && "is-disabled"), v = 210, y = ({ open: e, ...t }) => e ? /* @__PURE__ */ d(b, { ...t }) : null, b = ({ x: y, y: b, items: x, onClose: S, className: C, style: w, id: T, labels: E, "aria-label": D }) => {
13
+ let O = e("contextMenu", g, E), k = h(null), A = c(x), j = (e) => {
14
+ k.current?.querySelector(`[data-menu-index="${e}"]`)?.focus();
15
+ };
16
+ p(() => {
17
+ let e = document.activeElement instanceof HTMLElement ? document.activeElement : null, t = k.current;
18
+ return j(a(A)), () => {
19
+ let n = document.activeElement;
20
+ (!n || n === document.body || (t?.contains(n) ?? !1)) && e?.isConnected && e.focus();
21
+ };
22
+ }, []);
23
+ let M = (e) => {
24
+ let t = o(e.key);
25
+ t.kind === "move" ? (e.preventDefault(), j(s(i(document.activeElement), t.dir, A))) : t.kind === "close" && (t.returnFocus && (e.preventDefault(), e.stopPropagation()), S());
26
+ }, { placement: N, update: P } = t({
27
+ open: !0,
28
+ anchor: () => ({
29
+ x: y,
30
+ y: b
31
+ }),
32
+ floatingRef: k,
33
+ estimate: {
34
+ width: v,
35
+ height: l(x)
36
+ },
37
+ ...r,
38
+ hideUntilPlaced: !1
39
+ });
40
+ m(() => {
41
+ P();
42
+ }, [
43
+ y,
44
+ b,
45
+ x.length,
46
+ P
47
+ ]);
48
+ let F = N?.left ?? y, I = N?.top ?? b;
49
+ return /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("div", {
50
+ className: "kapi-ctxmenu__backdrop",
51
+ onMouseDown: S,
52
+ onContextMenu: (e) => {
53
+ e.preventDefault(), S();
54
+ }
55
+ }), /* @__PURE__ */ d("div", {
56
+ id: T,
57
+ className: n("kapi-ctxmenu", C),
58
+ style: {
59
+ ...w,
60
+ left: F,
61
+ top: I,
62
+ width: v
63
+ },
64
+ role: "menu",
65
+ "aria-label": D ?? O.menu,
66
+ ref: k,
67
+ onKeyDown: M,
68
+ children: x.map((e, t) => e.sep ? /* @__PURE__ */ d("div", {
69
+ role: "separator",
70
+ className: "kapi-ctxmenu__sep"
71
+ }, `s${t}`) : "header" in e ? /* @__PURE__ */ d("div", {
72
+ role: "presentation",
73
+ className: "kapi-ctxmenu__header",
74
+ children: e.header
75
+ }, `h${t}`) : /* @__PURE__ */ f("button", {
76
+ type: "button",
77
+ role: "menuitem",
78
+ tabIndex: -1,
79
+ "data-menu-index": t,
80
+ "aria-disabled": e.disabled ? "true" : void 0,
81
+ className: _(e),
82
+ onClick: () => {
83
+ e.disabled || (e.onClick?.(), S());
84
+ },
85
+ children: [e.icon, e.label]
86
+ }, `m${t}`))
87
+ })] });
88
+ };
89
+ //#endregion
90
+ export { g as DEFAULT_CONTEXT_MENU_LABELS, y as KapiContextMenu, _ as menuItemClass };
@@ -0,0 +1,23 @@
1
+ import "./KapiConfirm.css";
2
+ import "./KapiModal.css";
3
+ import { type KapiDialogStore } from "./dialogStore";
4
+ import type { KapiLabelsOverride } from "../labelsLogic";
5
+ /** Textos fijos del host: botón de los avisos y mensaje de carga por defecto. */
6
+ export type KapiDialogLabels = {
7
+ accept: string;
8
+ loading: string;
9
+ };
10
+ export declare const DEFAULT_DIALOG_LABELS: KapiDialogLabels;
11
+ export type KapiDialogHostProps = {
12
+ /** Textos fijos (clave `dialog`). Las confirmaciones usan la clave `confirm`. */
13
+ labels?: KapiLabelsOverride<KapiDialogLabels> | undefined;
14
+ /** Store que atiende (default: el global de `kapiConfirm`/`kapiAlert`/`kapiLoading`). */
15
+ store?: KapiDialogStore;
16
+ };
17
+ /**
18
+ * Montalo una vez en la app: muestra los diálogos imperativos (`kapiConfirm`, `kapiAlert`) de a
19
+ * uno, en orden de llegada, y la capa de carga de `kapiLoading` mientras quede alguna abierta.
20
+ * Abrir un diálogo cierra las cargas de `kapiLoading()`; las de `kapiLoading.run` se ocultan hasta
21
+ * que se vacía la cola. Los pedidos hechos antes de montarlo esperan en la cola.
22
+ */
23
+ export declare const KapiDialogHost: ({ labels, store }: KapiDialogHostProps) => import("react").JSX.Element;