@kapiuara/ui 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +764 -2
  3. package/dist/components/data/KapiPagination.d.ts +36 -0
  4. package/dist/components/data/KapiPagination.js +102 -0
  5. package/dist/components/data/KapiTable.d.ts +245 -0
  6. package/dist/components/data/KapiTable.js +748 -0
  7. package/dist/components/data/KapiTableFilter.d.ts +48 -0
  8. package/dist/components/data/KapiTableFilter.js +81 -0
  9. package/dist/components/data/index.d.ts +10 -0
  10. package/dist/components/data/tableLogic.d.ts +197 -0
  11. package/dist/components/data/tableLogic.js +145 -0
  12. package/dist/components/data/tableResizeLogic.d.ts +28 -0
  13. package/dist/components/data/tableResizeLogic.js +20 -0
  14. package/dist/components/display/KapiAnnotation.d.ts +32 -0
  15. package/dist/components/display/KapiAnnotation.js +130 -0
  16. package/dist/components/display/KapiAvatar.d.ts +27 -0
  17. package/dist/components/display/KapiAvatar.js +43 -0
  18. package/dist/components/display/KapiAvatarGroup.d.ts +19 -0
  19. package/dist/components/display/KapiAvatarGroup.js +38 -0
  20. package/dist/components/display/KapiBadge.d.ts +21 -0
  21. package/dist/components/display/KapiBadge.js +28 -0
  22. package/dist/components/display/KapiComment.d.ts +27 -0
  23. package/dist/components/display/KapiComment.js +66 -0
  24. package/dist/components/display/KapiCommentComposer.d.ts +49 -0
  25. package/dist/components/display/KapiCommentComposer.js +76 -0
  26. package/dist/components/display/KapiDescriptionList.d.ts +19 -0
  27. package/dist/components/display/KapiDescriptionList.js +35 -0
  28. package/dist/components/display/KapiFileItem.d.ts +39 -0
  29. package/dist/components/display/KapiFileItem.js +74 -0
  30. package/dist/components/display/KapiFileViewer.d.ts +51 -0
  31. package/dist/components/display/KapiFileViewer.js +107 -0
  32. package/dist/components/display/KapiIconTile.d.ts +16 -0
  33. package/dist/components/display/KapiIconTile.js +29 -0
  34. package/dist/components/display/KapiStat.d.ts +24 -0
  35. package/dist/components/display/KapiStat.js +41 -0
  36. package/dist/components/display/KapiTag.d.ts +27 -0
  37. package/dist/components/display/KapiTag.js +44 -0
  38. package/dist/components/display/KapiTimeline.d.ts +15 -0
  39. package/dist/components/display/KapiTimeline.js +30 -0
  40. package/dist/components/display/annotationLogic.d.ts +26 -0
  41. package/dist/components/display/annotationLogic.js +17 -0
  42. package/dist/components/display/avatarGroupLogic.d.ts +14 -0
  43. package/dist/components/display/avatarGroupLogic.js +13 -0
  44. package/dist/components/display/avatarLogic.d.ts +5 -0
  45. package/dist/components/display/avatarLogic.js +9 -0
  46. package/dist/components/display/commentLogic.d.ts +18 -0
  47. package/dist/components/display/commentLogic.js +7 -0
  48. package/dist/components/display/fileItemLogic.d.ts +9 -0
  49. package/dist/components/display/fileItemLogic.js +12 -0
  50. package/dist/components/display/iconTileLogic.d.ts +13 -0
  51. package/dist/components/display/iconTileLogic.js +13 -0
  52. package/dist/components/display/index.d.ts +40 -0
  53. package/dist/components/display/statLogic.d.ts +10 -0
  54. package/dist/components/display/statLogic.js +10 -0
  55. package/dist/components/display/tagLogic.d.ts +11 -0
  56. package/dist/components/display/tagLogic.js +10 -0
  57. package/dist/components/display/timelineLogic.d.ts +5 -0
  58. package/dist/components/display/timelineLogic.js +4 -0
  59. package/dist/components/feedback/KapiAlert.d.ts +28 -0
  60. package/dist/components/feedback/KapiAlert.js +53 -0
  61. package/dist/components/feedback/KapiBulkBar.d.ts +30 -0
  62. package/dist/components/feedback/KapiBulkBar.js +34 -0
  63. package/dist/components/feedback/KapiCountdown.d.ts +26 -0
  64. package/dist/components/feedback/KapiCountdown.js +43 -0
  65. package/dist/components/feedback/KapiEmpty.d.ts +14 -0
  66. package/dist/components/feedback/KapiEmpty.js +31 -0
  67. package/dist/components/feedback/KapiFab.d.ts +34 -0
  68. package/dist/components/feedback/KapiFab.js +116 -0
  69. package/dist/components/feedback/KapiOfflineBanner.d.ts +25 -0
  70. package/dist/components/feedback/KapiOfflineBanner.js +40 -0
  71. package/dist/components/feedback/KapiProgress.d.ts +24 -0
  72. package/dist/components/feedback/KapiProgress.js +94 -0
  73. package/dist/components/feedback/KapiSkeleton.d.ts +12 -0
  74. package/dist/components/feedback/KapiSkeleton.js +16 -0
  75. package/dist/components/feedback/KapiToastContainer.d.ts +16 -0
  76. package/dist/components/feedback/KapiToastContainer.js +81 -0
  77. package/dist/components/feedback/KapiTour.d.ts +40 -0
  78. package/dist/components/feedback/KapiTour.js +157 -0
  79. package/dist/components/feedback/KapiUnsavedBar.d.ts +35 -0
  80. package/dist/components/feedback/KapiUnsavedBar.js +47 -0
  81. package/dist/components/feedback/bulkBarLogic.d.ts +2 -0
  82. package/dist/components/feedback/bulkBarLogic.js +7 -0
  83. package/dist/components/feedback/countdownLogic.d.ts +74 -0
  84. package/dist/components/feedback/countdownLogic.js +70 -0
  85. package/dist/components/feedback/fabLogic.d.ts +17 -0
  86. package/dist/components/feedback/fabLogic.js +10 -0
  87. package/dist/components/feedback/index.d.ts +33 -0
  88. package/dist/components/feedback/offlineBannerLogic.d.ts +10 -0
  89. package/dist/components/feedback/offlineBannerLogic.js +8 -0
  90. package/dist/components/feedback/progressLogic.d.ts +17 -0
  91. package/dist/components/feedback/progressLogic.js +16 -0
  92. package/dist/components/feedback/toastStore.d.ts +62 -0
  93. package/dist/components/feedback/toastStore.js +38 -0
  94. package/dist/components/feedback/tourLogic.d.ts +64 -0
  95. package/dist/components/feedback/tourLogic.js +31 -0
  96. package/dist/components/feedback/unsavedBarLogic.d.ts +2 -0
  97. package/dist/components/feedback/unsavedBarLogic.js +8 -0
  98. package/dist/components/inputs/KapiAutocomplete.d.ts +81 -0
  99. package/dist/components/inputs/KapiAutocomplete.js +205 -0
  100. package/dist/components/inputs/KapiButton.d.ts +23 -0
  101. package/dist/components/inputs/KapiButton.js +25 -0
  102. package/dist/components/inputs/KapiCalendar.d.ts +35 -0
  103. package/dist/components/inputs/KapiCalendar.js +60 -0
  104. package/dist/components/inputs/KapiCalendarGrid.d.ts +29 -0
  105. package/dist/components/inputs/KapiCalendarGrid.js +65 -0
  106. package/dist/components/inputs/KapiCheckCard.d.ts +28 -0
  107. package/dist/components/inputs/KapiCheckCard.js +41 -0
  108. package/dist/components/inputs/KapiCheckbox.d.ts +7 -0
  109. package/dist/components/inputs/KapiCheckbox.js +5 -0
  110. package/dist/components/inputs/KapiDatePicker.d.ts +46 -0
  111. package/dist/components/inputs/KapiDatePicker.js +189 -0
  112. package/dist/components/inputs/KapiDateRangePicker.d.ts +49 -0
  113. package/dist/components/inputs/KapiDateRangePicker.js +179 -0
  114. package/dist/components/inputs/KapiFacetedSearch.d.ts +45 -0
  115. package/dist/components/inputs/KapiFacetedSearch.js +188 -0
  116. package/dist/components/inputs/KapiField.d.ts +33 -0
  117. package/dist/components/inputs/KapiField.js +60 -0
  118. package/dist/components/inputs/KapiFileUpload.d.ts +58 -0
  119. package/dist/components/inputs/KapiFileUpload.js +134 -0
  120. package/dist/components/inputs/KapiIconButton.d.ts +13 -0
  121. package/dist/components/inputs/KapiIconButton.js +16 -0
  122. package/dist/components/inputs/KapiInput.d.ts +92 -0
  123. package/dist/components/inputs/KapiInput.js +123 -0
  124. package/dist/components/inputs/KapiInputGroup.d.ts +37 -0
  125. package/dist/components/inputs/KapiInputGroup.js +29 -0
  126. package/dist/components/inputs/KapiMaskedInput.d.ts +52 -0
  127. package/dist/components/inputs/KapiMaskedInput.js +78 -0
  128. package/dist/components/inputs/KapiNumberStepper.d.ts +44 -0
  129. package/dist/components/inputs/KapiNumberStepper.js +100 -0
  130. package/dist/components/inputs/KapiRadio.d.ts +7 -0
  131. package/dist/components/inputs/KapiRadio.js +5 -0
  132. package/dist/components/inputs/KapiRating.d.ts +55 -0
  133. package/dist/components/inputs/KapiRating.js +99 -0
  134. package/dist/components/inputs/KapiSegmented.d.ts +41 -0
  135. package/dist/components/inputs/KapiSegmented.js +83 -0
  136. package/dist/components/inputs/KapiSelect.d.ts +109 -0
  137. package/dist/components/inputs/KapiSelect.js +443 -0
  138. package/dist/components/inputs/KapiSlider.d.ts +42 -0
  139. package/dist/components/inputs/KapiSlider.js +70 -0
  140. package/dist/components/inputs/KapiSwitch.d.ts +13 -0
  141. package/dist/components/inputs/KapiSwitch.js +28 -0
  142. package/dist/components/inputs/KapiTagInput.d.ts +79 -0
  143. package/dist/components/inputs/KapiTagInput.js +115 -0
  144. package/dist/components/inputs/KapiTextarea.d.ts +32 -0
  145. package/dist/components/inputs/KapiTextarea.js +67 -0
  146. package/dist/components/inputs/asyncSelectLogic.d.ts +42 -0
  147. package/dist/components/inputs/asyncSelectLogic.js +46 -0
  148. package/dist/components/inputs/autocompleteLogic.d.ts +73 -0
  149. package/dist/components/inputs/autocompleteLogic.js +67 -0
  150. package/dist/components/inputs/checkControl.d.ts +20 -0
  151. package/dist/components/inputs/checkControl.js +31 -0
  152. package/dist/components/inputs/datePickerLogic.d.ts +92 -0
  153. package/dist/components/inputs/datePickerLogic.js +174 -0
  154. package/dist/components/inputs/dateRangeLogic.d.ts +31 -0
  155. package/dist/components/inputs/dateRangeLogic.js +44 -0
  156. package/dist/components/inputs/facetedSearchLogic.d.ts +69 -0
  157. package/dist/components/inputs/facetedSearchLogic.js +39 -0
  158. package/dist/components/inputs/fieldLogic.d.ts +67 -0
  159. package/dist/components/inputs/fieldLogic.js +35 -0
  160. package/dist/components/inputs/fileUploadLogic.d.ts +13 -0
  161. package/dist/components/inputs/fileUploadLogic.js +9 -0
  162. package/dist/components/inputs/index.d.ts +55 -0
  163. package/dist/components/inputs/inputGroupLogic.d.ts +22 -0
  164. package/dist/components/inputs/inputGroupLogic.js +9 -0
  165. package/dist/components/inputs/inputLogic.d.ts +25 -0
  166. package/dist/components/inputs/inputLogic.js +10 -0
  167. package/dist/components/inputs/maskLogic.d.ts +34 -0
  168. package/dist/components/inputs/maskLogic.js +57 -0
  169. package/dist/components/inputs/numberStepLogic.d.ts +14 -0
  170. package/dist/components/inputs/numberStepLogic.js +21 -0
  171. package/dist/components/inputs/ratingLogic.d.ts +9 -0
  172. package/dist/components/inputs/ratingLogic.js +22 -0
  173. package/dist/components/inputs/segmentedLogic.d.ts +6 -0
  174. package/dist/components/inputs/segmentedLogic.js +14 -0
  175. package/dist/components/inputs/selectLogic.d.ts +89 -0
  176. package/dist/components/inputs/selectLogic.js +82 -0
  177. package/dist/components/inputs/sliderLogic.d.ts +9 -0
  178. package/dist/components/inputs/sliderLogic.js +17 -0
  179. package/dist/components/inputs/tagInputLogic.d.ts +40 -0
  180. package/dist/components/inputs/tagInputLogic.js +40 -0
  181. package/dist/components/inputs/textareaLogic.d.ts +17 -0
  182. package/dist/components/inputs/textareaLogic.js +13 -0
  183. package/dist/components/inputs/useCalendarFocus.d.ts +13 -0
  184. package/dist/components/inputs/useCalendarFocus.js +25 -0
  185. package/dist/components/inputs/useDatePopSide.d.ts +15 -0
  186. package/dist/components/inputs/useDatePopSide.js +20 -0
  187. package/dist/components/labelsLogic.d.ts +6 -0
  188. package/dist/components/labelsLogic.js +11 -0
  189. package/dist/components/layout/KapiAccessCard.d.ts +40 -0
  190. package/dist/components/layout/KapiAccessCard.js +66 -0
  191. package/dist/components/layout/KapiAccountMenu.d.ts +61 -0
  192. package/dist/components/layout/KapiAccountMenu.js +212 -0
  193. package/dist/components/layout/KapiCard.d.ts +43 -0
  194. package/dist/components/layout/KapiCard.js +53 -0
  195. package/dist/components/layout/KapiCluster.d.ts +15 -0
  196. package/dist/components/layout/KapiCluster.js +21 -0
  197. package/dist/components/layout/KapiContextSlot.d.ts +45 -0
  198. package/dist/components/layout/KapiContextSlot.js +92 -0
  199. package/dist/components/layout/KapiDivider.d.ts +16 -0
  200. package/dist/components/layout/KapiDivider.js +41 -0
  201. package/dist/components/layout/KapiGrid.d.ts +19 -0
  202. package/dist/components/layout/KapiGrid.js +25 -0
  203. package/dist/components/layout/KapiNotificationBell.d.ts +75 -0
  204. package/dist/components/layout/KapiNotificationBell.js +196 -0
  205. package/dist/components/layout/KapiPageHeader.d.ts +28 -0
  206. package/dist/components/layout/KapiPageHeader.js +47 -0
  207. package/dist/components/layout/KapiPanelParts.d.ts +35 -0
  208. package/dist/components/layout/KapiPanelParts.js +63 -0
  209. package/dist/components/layout/KapiRail.d.ts +40 -0
  210. package/dist/components/layout/KapiRail.js +102 -0
  211. package/dist/components/layout/KapiScrollArea.d.ts +40 -0
  212. package/dist/components/layout/KapiScrollArea.js +49 -0
  213. package/dist/components/layout/KapiShell.d.ts +40 -0
  214. package/dist/components/layout/KapiShell.js +48 -0
  215. package/dist/components/layout/KapiStack.d.ts +11 -0
  216. package/dist/components/layout/KapiStack.js +19 -0
  217. package/dist/components/layout/accessCardLogic.d.ts +18 -0
  218. package/dist/components/layout/accessCardLogic.js +11 -0
  219. package/dist/components/layout/cardLogic.d.ts +9 -0
  220. package/dist/components/layout/cardLogic.js +11 -0
  221. package/dist/components/layout/index.d.ts +33 -0
  222. package/dist/components/layout/layoutPrimitives.d.ts +51 -0
  223. package/dist/components/layout/layoutPrimitives.js +58 -0
  224. package/dist/components/layout/notificationBellLogic.d.ts +20 -0
  225. package/dist/components/layout/notificationBellLogic.js +14 -0
  226. package/dist/components/layout/railLogic.d.ts +52 -0
  227. package/dist/components/layout/railLogic.js +16 -0
  228. package/dist/components/locale/KapiLocaleProvider.d.ts +29 -0
  229. package/dist/components/locale/KapiLocaleProvider.js +27 -0
  230. package/dist/components/locale/index.d.ts +5 -0
  231. package/dist/components/locale/labelRegistry.d.ts +110 -0
  232. package/dist/components/locale/linkLabels.d.ts +6 -0
  233. package/dist/components/locale/linkLabels.js +4 -0
  234. package/dist/components/navigation/CtxSlidingList.d.ts +11 -0
  235. package/dist/components/navigation/CtxSlidingList.js +24 -0
  236. package/dist/components/navigation/KapiAccordion.d.ts +24 -0
  237. package/dist/components/navigation/KapiAccordion.js +68 -0
  238. package/dist/components/navigation/KapiBreadcrumb.d.ts +23 -0
  239. package/dist/components/navigation/KapiBreadcrumb.js +32 -0
  240. package/dist/components/navigation/KapiCollapsiblePanel.d.ts +63 -0
  241. package/dist/components/navigation/KapiCollapsiblePanel.js +83 -0
  242. package/dist/components/navigation/KapiContextPanel.d.ts +117 -0
  243. package/dist/components/navigation/KapiContextPanel.js +265 -0
  244. package/dist/components/navigation/KapiFilterChips.d.ts +30 -0
  245. package/dist/components/navigation/KapiFilterChips.js +40 -0
  246. package/dist/components/navigation/KapiNavBadge.d.ts +26 -0
  247. package/dist/components/navigation/KapiNavBadge.js +33 -0
  248. package/dist/components/navigation/KapiPanelGroup.d.ts +69 -0
  249. package/dist/components/navigation/KapiPanelGroup.js +149 -0
  250. package/dist/components/navigation/KapiSteps.d.ts +43 -0
  251. package/dist/components/navigation/KapiSteps.js +63 -0
  252. package/dist/components/navigation/KapiTabs.d.ts +56 -0
  253. package/dist/components/navigation/KapiTabs.js +81 -0
  254. package/dist/components/navigation/KapiTree.d.ts +56 -0
  255. package/dist/components/navigation/KapiTree.js +157 -0
  256. package/dist/components/navigation/KapiWizard.d.ts +49 -0
  257. package/dist/components/navigation/KapiWizard.js +104 -0
  258. package/dist/components/navigation/MiniNavItem.d.ts +35 -0
  259. package/dist/components/navigation/MiniNavItem.js +57 -0
  260. package/dist/components/navigation/accordionLogic.d.ts +4 -0
  261. package/dist/components/navigation/accordionLogic.js +4 -0
  262. package/dist/components/navigation/activeItemLogic.d.ts +7 -0
  263. package/dist/components/navigation/activeItemLogic.js +4 -0
  264. package/dist/components/navigation/breadcrumbLogic.d.ts +8 -0
  265. package/dist/components/navigation/breadcrumbLogic.js +4 -0
  266. package/dist/components/navigation/contextPanelLogic.d.ts +27 -0
  267. package/dist/components/navigation/contextPanelLogic.js +11 -0
  268. package/dist/components/navigation/filterChipsLogic.d.ts +23 -0
  269. package/dist/components/navigation/filterChipsLogic.js +20 -0
  270. package/dist/components/navigation/index.d.ts +39 -0
  271. package/dist/components/navigation/navBadgeLogic.d.ts +26 -0
  272. package/dist/components/navigation/navBadgeLogic.js +16 -0
  273. package/dist/components/navigation/panelGroupLogic.d.ts +15 -0
  274. package/dist/components/navigation/panelGroupLogic.js +13 -0
  275. package/dist/components/navigation/panelMini.d.ts +13 -0
  276. package/dist/components/navigation/panelMini.js +9 -0
  277. package/dist/components/navigation/panelMiniLogic.d.ts +19 -0
  278. package/dist/components/navigation/panelMiniLogic.js +6 -0
  279. package/dist/components/navigation/stepsLogic.d.ts +25 -0
  280. package/dist/components/navigation/stepsLogic.js +10 -0
  281. package/dist/components/navigation/tabsLogic.d.ts +12 -0
  282. package/dist/components/navigation/tabsLogic.js +14 -0
  283. package/dist/components/navigation/treeLogic.d.ts +80 -0
  284. package/dist/components/navigation/treeLogic.js +91 -0
  285. package/dist/components/navigation/wizardLogic.d.ts +11 -0
  286. package/dist/components/navigation/wizardLogic.js +7 -0
  287. package/dist/components/overlays/KapiCanvasForm.d.ts +42 -0
  288. package/dist/components/overlays/KapiCanvasForm.js +60 -0
  289. package/dist/components/overlays/KapiCommandPalette.d.ts +58 -0
  290. package/dist/components/overlays/KapiCommandPalette.js +152 -0
  291. package/dist/components/overlays/KapiConfirm.d.ts +48 -0
  292. package/dist/components/overlays/KapiConfirm.js +94 -0
  293. package/dist/components/overlays/KapiContextMenu.d.ts +51 -0
  294. package/dist/components/overlays/KapiContextMenu.js +90 -0
  295. package/dist/components/overlays/KapiDialogHost.d.ts +23 -0
  296. package/dist/components/overlays/KapiDialogHost.js +129 -0
  297. package/dist/components/overlays/KapiDropdown.d.ts +30 -0
  298. package/dist/components/overlays/KapiDropdown.js +84 -0
  299. package/dist/components/overlays/KapiLoading.d.ts +14 -0
  300. package/dist/components/overlays/KapiLoading.js +43 -0
  301. package/dist/components/overlays/KapiMenuButton.d.ts +25 -0
  302. package/dist/components/overlays/KapiMenuButton.js +109 -0
  303. package/dist/components/overlays/KapiModal.d.ts +61 -0
  304. package/dist/components/overlays/KapiModal.js +106 -0
  305. package/dist/components/overlays/KapiOffcanvas.d.ts +96 -0
  306. package/dist/components/overlays/KapiOffcanvas.js +209 -0
  307. package/dist/components/overlays/KapiOffcanvasStack.d.ts +58 -0
  308. package/dist/components/overlays/KapiOffcanvasStack.js +84 -0
  309. package/dist/components/overlays/KapiPhotoView.d.ts +60 -0
  310. package/dist/components/overlays/KapiPhotoView.js +122 -0
  311. package/dist/components/overlays/KapiPopover.d.ts +46 -0
  312. package/dist/components/overlays/KapiPopover.js +68 -0
  313. package/dist/components/overlays/KapiShapeSheet.d.ts +34 -0
  314. package/dist/components/overlays/KapiShapeSheet.js +82 -0
  315. package/dist/components/overlays/KapiSplitModal.d.ts +41 -0
  316. package/dist/components/overlays/KapiSplitModal.js +125 -0
  317. package/dist/components/overlays/KapiTooltip.d.ts +38 -0
  318. package/dist/components/overlays/KapiTooltip.js +105 -0
  319. package/dist/components/overlays/canvasFormLogic.d.ts +18 -0
  320. package/dist/components/overlays/canvasFormLogic.js +16 -0
  321. package/dist/components/overlays/commandPaletteLogic.d.ts +29 -0
  322. package/dist/components/overlays/commandPaletteLogic.js +19 -0
  323. package/dist/components/overlays/dialogStore.d.ts +114 -0
  324. package/dist/components/overlays/dialogStore.js +76 -0
  325. package/dist/components/overlays/dialogUtils.d.ts +72 -0
  326. package/dist/components/overlays/dialogUtils.js +62 -0
  327. package/dist/components/overlays/exitPresenceLogic.d.ts +14 -0
  328. package/dist/components/overlays/exitPresenceLogic.js +5 -0
  329. package/dist/components/overlays/index.d.ts +38 -0
  330. package/dist/components/overlays/menuButtonLogic.d.ts +58 -0
  331. package/dist/components/overlays/menuButtonLogic.js +9 -0
  332. package/dist/components/overlays/menuKeyboardLogic.d.ts +25 -0
  333. package/dist/components/overlays/menuKeyboardLogic.js +30 -0
  334. package/dist/components/overlays/offcanvasCompanion.d.ts +16 -0
  335. package/dist/components/overlays/offcanvasCompanion.js +6 -0
  336. package/dist/components/overlays/offcanvasResize.d.ts +22 -0
  337. package/dist/components/overlays/offcanvasResize.js +10 -0
  338. package/dist/components/overlays/offcanvasSide.d.ts +30 -0
  339. package/dist/components/overlays/offcanvasSide.js +29 -0
  340. package/dist/components/overlays/offcanvasStack.d.ts +76 -0
  341. package/dist/components/overlays/offcanvasStack.js +72 -0
  342. package/dist/components/overlays/overlayPortal.d.ts +9 -0
  343. package/dist/components/overlays/overlayPortal.js +6 -0
  344. package/dist/components/overlays/popoverLogic.d.ts +94 -0
  345. package/dist/components/overlays/popoverLogic.js +47 -0
  346. package/dist/components/overlays/splitModalLayout.d.ts +8 -0
  347. package/dist/components/overlays/splitModalLayout.js +5 -0
  348. package/dist/components/overlays/useExitPresence.d.ts +14 -0
  349. package/dist/components/overlays/useExitPresence.js +34 -0
  350. package/dist/components/overlays/useNativeDialog.d.ts +30 -0
  351. package/dist/components/overlays/useNativeDialog.js +56 -0
  352. package/dist/components/rootProps.d.ts +17 -0
  353. package/dist/components/rootProps.js +4 -0
  354. package/dist/hooks/breakpointOpenLogic.d.ts +7 -0
  355. package/dist/hooks/breakpointOpenLogic.js +4 -0
  356. package/dist/hooks/dateFormat.d.ts +12 -0
  357. package/dist/hooks/dateFormat.js +15 -0
  358. package/dist/hooks/downloadLogic.d.ts +31 -0
  359. package/dist/hooks/downloadLogic.js +85 -0
  360. package/dist/hooks/focusLogic.d.ts +18 -0
  361. package/dist/hooks/focusLogic.js +17 -0
  362. package/dist/hooks/growOriginLogic.d.ts +22 -0
  363. package/dist/hooks/growOriginLogic.js +10 -0
  364. package/dist/hooks/hotkeyLogic.d.ts +22 -0
  365. package/dist/hooks/hotkeyLogic.js +32 -0
  366. package/dist/hooks/index.d.ts +49 -0
  367. package/dist/hooks/kapiRoot.d.ts +16 -0
  368. package/dist/hooks/kapiRoot.js +9 -0
  369. package/dist/hooks/onlineStatusLogic.d.ts +31 -0
  370. package/dist/hooks/onlineStatusLogic.js +28 -0
  371. package/dist/hooks/persistentStateLogic.d.ts +12 -0
  372. package/dist/hooks/persistentStateLogic.js +17 -0
  373. package/dist/hooks/rafThrottle.d.ts +33 -0
  374. package/dist/hooks/rafThrottle.js +33 -0
  375. package/dist/hooks/recentLogic.d.ts +9 -0
  376. package/dist/hooks/recentLogic.js +10 -0
  377. package/dist/hooks/reducedMotion.d.ts +13 -0
  378. package/dist/hooks/reducedMotion.js +5 -0
  379. package/dist/hooks/rightClick.d.ts +37 -0
  380. package/dist/hooks/rightClick.js +30 -0
  381. package/dist/hooks/scrollCollapseLogic.d.ts +12 -0
  382. package/dist/hooks/scrollCollapseLogic.js +4 -0
  383. package/dist/hooks/scrollEdgesLogic.d.ts +49 -0
  384. package/dist/hooks/scrollEdgesLogic.js +19 -0
  385. package/dist/hooks/slidingIndicatorLogic.d.ts +25 -0
  386. package/dist/hooks/slidingIndicatorLogic.js +15 -0
  387. package/dist/hooks/storageLogic.d.ts +15 -0
  388. package/dist/hooks/storageLogic.js +24 -0
  389. package/dist/hooks/unsavedGuardLogic.d.ts +17 -0
  390. package/dist/hooks/unsavedGuardLogic.js +17 -0
  391. package/dist/hooks/useDragScroll.d.ts +12 -0
  392. package/dist/hooks/useDragScroll.js +32 -0
  393. package/dist/hooks/useGlobalRightClick.d.ts +14 -0
  394. package/dist/hooks/useGlobalRightClick.js +35 -0
  395. package/dist/hooks/useGrowOrigin.d.ts +13 -0
  396. package/dist/hooks/useGrowOrigin.js +16 -0
  397. package/dist/hooks/useHotkey.d.ts +15 -0
  398. package/dist/hooks/useHotkey.js +31 -0
  399. package/dist/hooks/useKapiTheme.d.ts +69 -0
  400. package/dist/hooks/useKapiTheme.js +88 -0
  401. package/dist/hooks/useMediaQuery.d.ts +6 -0
  402. package/dist/hooks/useMediaQuery.js +13 -0
  403. package/dist/hooks/useObjectUrl.d.ts +6 -0
  404. package/dist/hooks/useObjectUrl.js +19 -0
  405. package/dist/hooks/useOnlineStatus.d.ts +7 -0
  406. package/dist/hooks/useOnlineStatus.js +7 -0
  407. package/dist/hooks/usePersistentState.d.ts +19 -0
  408. package/dist/hooks/usePersistentState.js +37 -0
  409. package/dist/hooks/usePlacement.d.ts +36 -0
  410. package/dist/hooks/usePlacement.js +84 -0
  411. package/dist/hooks/useRecent.d.ts +17 -0
  412. package/dist/hooks/useRecent.js +16 -0
  413. package/dist/hooks/useScrollCollapse.d.ts +10 -0
  414. package/dist/hooks/useScrollCollapse.js +27 -0
  415. package/dist/hooks/useScrollEdges.d.ts +32 -0
  416. package/dist/hooks/useScrollEdges.js +91 -0
  417. package/dist/hooks/useSlidingIndicator.d.ts +23 -0
  418. package/dist/hooks/useSlidingIndicator.js +51 -0
  419. package/dist/hooks/useUnsavedGuard.d.ts +70 -0
  420. package/dist/hooks/useUnsavedGuard.js +47 -0
  421. package/dist/index.d.ts +12 -0
  422. package/dist/index.js +162 -0
  423. package/dist/kapi.css +2 -0
  424. package/dist/kapi.layered.css +4 -0
  425. package/package.json +87 -4
@@ -0,0 +1,130 @@
1
+ "use client";
2
+ import { joinIds as e } from "../inputs/fieldLogic.js";
3
+ import { resolveKapiRoot as t } from "../../hooks/kapiRoot.js";
4
+ import { usePlacement as n } from "../../hooks/usePlacement.js";
5
+ import { KapiTooltip as r } from "../overlays/KapiTooltip.js";
6
+ import { annotationClasses as i, annotationRole as a } from "./annotationLogic.js";
7
+ /* empty css */
8
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
9
+ import { useEffect as c, useId as l, useRef as u, useState as d } from "react";
10
+ import { createPortal as f } from "react-dom";
11
+ //#region src/components/display/KapiAnnotation.tsx
12
+ var p = 8, m = 8, h = 150;
13
+ function g({ children: g, info: _, underline: v = "dotted", tone: y = "primary", onClick: b, popover: x, interactive: S = !1, className: C, "aria-label": w, ...T }) {
14
+ let E = l(), D = u(null), [O, k] = d(!1), [A, j] = d(!1), M = u(null), N = u(void 0), { element: P, tabIndex: F, mode: I } = a(b, x, _), L = i({
15
+ underline: v,
16
+ tone: y,
17
+ clickable: !!b,
18
+ className: C
19
+ }), R = (e) => {
20
+ e.key === "Escape" && (k(!1), j(!0));
21
+ }, z = () => clearTimeout(N.current), B = () => {
22
+ z(), j(!1), k(!0);
23
+ }, V = () => {
24
+ z(), k(!1), j(!1);
25
+ }, H = u(V);
26
+ H.current = V;
27
+ let U = () => {
28
+ if (!S) return V();
29
+ z(), N.current = setTimeout(V, h);
30
+ }, W = (e) => {
31
+ let t = e.relatedTarget;
32
+ S && t && M.current?.contains(t) || V();
33
+ }, { placement: G } = n({
34
+ open: O,
35
+ anchor: D,
36
+ floatingRef: M,
37
+ side: "bottom",
38
+ align: "center",
39
+ offset: p,
40
+ margin: m
41
+ }), K = G ? {
42
+ top: G.top,
43
+ left: G.centerX,
44
+ side: G.side === "top" ? "top" : "bottom"
45
+ } : null;
46
+ c(() => {
47
+ if (!O || !S) return;
48
+ let e = (e) => {
49
+ let t = e.target;
50
+ !D.current?.contains(t) && !M.current?.contains(t) && H.current();
51
+ }, t = (e) => {
52
+ e.key === "Escape" && (k(!1), j(!0));
53
+ };
54
+ return document.addEventListener("mousedown", e), document.addEventListener("keydown", t), () => {
55
+ document.removeEventListener("mousedown", e), document.removeEventListener("keydown", t);
56
+ };
57
+ }, [O, S]), c(() => () => clearTimeout(N.current), []);
58
+ let q = {
59
+ ...T,
60
+ className: L,
61
+ onKeyDown: R,
62
+ onClick: b,
63
+ ...w !== void 0 && { "aria-label": w },
64
+ "data-dismissed": A ? "" : void 0
65
+ };
66
+ if (I === "tooltip") {
67
+ let e = String(_), t = P === "button" ? /* @__PURE__ */ o("button", {
68
+ ...q,
69
+ type: "button",
70
+ onBlur: V,
71
+ children: g
72
+ }) : /* @__PURE__ */ o("span", {
73
+ ...q,
74
+ tabIndex: F,
75
+ onBlur: V,
76
+ children: g
77
+ });
78
+ return /* @__PURE__ */ o(r, {
79
+ label: e,
80
+ prefer: "top",
81
+ children: t
82
+ });
83
+ }
84
+ let J = x ?? { body: _ }, Y = {
85
+ ...q,
86
+ ref: D,
87
+ "aria-describedby": e(T["aria-describedby"], O && E),
88
+ onFocus: B,
89
+ onBlur: W
90
+ }, X = O ? t(D.current) : null;
91
+ return /* @__PURE__ */ s("span", {
92
+ className: "kapi-annotation-wrap",
93
+ onMouseEnter: B,
94
+ onMouseLeave: U,
95
+ children: [P === "button" ? /* @__PURE__ */ o("button", {
96
+ ...Y,
97
+ type: "button",
98
+ children: g
99
+ }) : /* @__PURE__ */ o("span", {
100
+ ...Y,
101
+ tabIndex: F,
102
+ children: g
103
+ }), X && f(/* @__PURE__ */ s("span", {
104
+ ref: M,
105
+ id: E,
106
+ role: "tooltip",
107
+ className: "kapi-annotation__pop",
108
+ "data-side": K?.side ?? "bottom",
109
+ "data-interactive": S ? "" : void 0,
110
+ style: {
111
+ top: K?.top ?? 0,
112
+ left: K?.left ?? 0,
113
+ visibility: K ? void 0 : "hidden"
114
+ },
115
+ tabIndex: S ? -1 : void 0,
116
+ onMouseEnter: S ? z : void 0,
117
+ onMouseLeave: S ? U : void 0,
118
+ onBlur: S ? W : void 0,
119
+ children: [J.title && /* @__PURE__ */ o("span", {
120
+ className: "kapi-annotation__title",
121
+ children: J.title
122
+ }), /* @__PURE__ */ o("span", {
123
+ className: "kapi-annotation__body",
124
+ children: J.body
125
+ })]
126
+ }), X)]
127
+ });
128
+ }
129
+ //#endregion
130
+ export { g as KapiAnnotation };
@@ -0,0 +1,27 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import type { KapiBadgeVariant } from "./KapiBadge";
3
+ import "./display.css";
4
+ export type KapiAvatarSize = "sm" | "md" | "lg" | number;
5
+ export type KapiAvatarColor = "auto" | KapiBadgeVariant;
6
+ export type KapiAvatarProps = Omit<HTMLAttributes<HTMLSpanElement>, "children"> & {
7
+ /** Nombre completo: de acá salen las iniciales y el color automático. */
8
+ name?: string;
9
+ /** Pisa las iniciales calculadas. */
10
+ initials?: string;
11
+ /** URL de imagen; si está, reemplaza a las iniciales. */
12
+ src?: string;
13
+ /** `sm` 28 · `md` 36 · `lg` 48, o un número con el tamaño exacto en px. */
14
+ size?: KapiAvatarSize;
15
+ /** `auto` elige un rol de forma determinística según `name`. */
16
+ color?: KapiAvatarColor;
17
+ };
18
+ /** Orden fijo de los roles para el color automático (cambiarlo cambia los colores de todos). */
19
+ export declare const AVATAR_ROLES: ReadonlyArray<KapiBadgeVariant>;
20
+ /** Clases de un avatar. Pura y exportada. */
21
+ export declare const avatarClasses: ({ size, role, className }: {
22
+ size?: KapiAvatarSize | undefined;
23
+ role: KapiBadgeVariant;
24
+ className?: string | undefined;
25
+ }) => string;
26
+ /** Avatar circular: imagen o iniciales sobre el color subtle del rol. */
27
+ export declare function KapiAvatar({ name, initials, src, size, color, className, style, ...rest }: KapiAvatarProps): import("react").JSX.Element;
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ /* empty css */
3
+ import { colorIndexFrom as e, initialsFrom as t } from "./avatarLogic.js";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ //#region src/components/display/KapiAvatar.tsx
6
+ var r = [
7
+ "primary",
8
+ "success",
9
+ "info",
10
+ "warning",
11
+ "danger",
12
+ "neutral"
13
+ ], i = ({ size: e = "md", role: t, className: n = "" }) => [
14
+ "kapi-avatar",
15
+ `kapi-avatar--${t}`,
16
+ typeof e == "string" && e !== "md" && `kapi-avatar--${e}`,
17
+ n
18
+ ].filter(Boolean).join(" ");
19
+ function a({ name: a = "", initials: o, src: s, size: c = "md", color: l = "auto", className: u, style: d, ...f }) {
20
+ let p = l === "auto" ? r[e(a, r.length)] ?? "neutral" : l, m = typeof c == "number" ? c : void 0, h = m === void 0 ? d : {
21
+ width: m,
22
+ height: m,
23
+ fontSize: Math.round(m * .38),
24
+ ...d
25
+ };
26
+ return /* @__PURE__ */ n("span", {
27
+ className: i({
28
+ size: c,
29
+ role: p,
30
+ className: u
31
+ }),
32
+ style: h,
33
+ role: s ? void 0 : "img",
34
+ "aria-label": s ? void 0 : a || void 0,
35
+ ...f,
36
+ children: s ? /* @__PURE__ */ n("img", {
37
+ src: s,
38
+ alt: a
39
+ }) : o ?? t(a)
40
+ });
41
+ }
42
+ //#endregion
43
+ export { r as AVATAR_ROLES, a as KapiAvatar, i as avatarClasses };
@@ -0,0 +1,19 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import { type KapiAvatarColor, type KapiAvatarSize } from "./KapiAvatar";
3
+ import "./display.css";
4
+ export type KapiAvatarGroupItem = {
5
+ name?: string;
6
+ initials?: string;
7
+ src?: string;
8
+ color?: KapiAvatarColor;
9
+ };
10
+ export type KapiAvatarGroupProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
11
+ /** Personas a mostrar, en orden; las que pasan de `max` se resumen en "+N". */
12
+ items: readonly KapiAvatarGroupItem[];
13
+ /** Max avatars before the trailing "+N" tile. Default 4. */
14
+ max?: number;
15
+ /** Same scale as KapiAvatar: `sm` 28 · `md` 36 · `lg` 48, or px. */
16
+ size?: KapiAvatarSize;
17
+ };
18
+ /** Overlapping avatars capped at `max`, with a trailing "+N" tile. Each avatar keeps its name as tooltip. */
19
+ export declare function KapiAvatarGroup({ items, max, size, className, style, ...rest }: KapiAvatarGroupProps): import("react").JSX.Element;
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ /* empty css */
3
+ import { KapiAvatar as e } from "./KapiAvatar.js";
4
+ import { avatarOverlapPx as t, overflowLabel as n, splitAvatarGroup as r } from "./avatarGroupLogic.js";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ //#region src/components/display/KapiAvatarGroup.tsx
7
+ var o = {
8
+ sm: 28,
9
+ md: 36,
10
+ lg: 48
11
+ };
12
+ function s({ items: s, max: c = 4, size: l = "md", className: u, style: d, ...f }) {
13
+ let { visible: p, overflow: m } = r(s, c), h = typeof l == "number" ? l : o[l], g = {
14
+ "--kapi-avatargroup-overlap": `${t(h)}px`,
15
+ ...d
16
+ }, _ = s.slice(p.length).map((e) => e.name).filter(Boolean).join(", ");
17
+ return /* @__PURE__ */ a("div", {
18
+ className: ["kapi-avatargroup", u].filter(Boolean).join(" "),
19
+ style: g,
20
+ role: "group",
21
+ ...f,
22
+ children: [p.map((t, n) => /* @__PURE__ */ i(e, {
23
+ className: "kapi-avatargroup__item",
24
+ title: t.name,
25
+ size: l,
26
+ ...t
27
+ }, `${t.name ?? t.initials ?? ""}-${n}`)), m > 0 && /* @__PURE__ */ i(e, {
28
+ className: "kapi-avatargroup__item kapi-avatargroup__more",
29
+ color: "neutral",
30
+ size: l,
31
+ initials: n(m),
32
+ title: _ || void 0,
33
+ "aria-label": `${m} más`
34
+ })]
35
+ });
36
+ }
37
+ //#endregion
38
+ export { s as KapiAvatarGroup };
@@ -0,0 +1,21 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import "./display.css";
3
+ export type KapiBadgeVariant = "neutral" | "primary" | "success" | "info" | "warning" | "danger";
4
+ export type KapiBadgeTone = "subtle" | "solid";
5
+ export type KapiBadgeSize = "sm" | "md";
6
+ export type KapiBadgeProps = Omit<HTMLAttributes<HTMLSpanElement>, "children"> & {
7
+ /** Rol semántico (color). `neutral` es el gris calmo por defecto. */
8
+ variant?: KapiBadgeVariant;
9
+ /** `subtle` = fondo suave + borde; `solid` = color pleno con texto `-fg`. */
10
+ tone?: KapiBadgeTone;
11
+ /** Tamaño: `sm` · `md`. */
12
+ size?: KapiBadgeSize;
13
+ /** Punto de color a la izquierda. */
14
+ dot?: boolean;
15
+ /** Contenido del badge (texto corto o número). */
16
+ children?: ReactNode;
17
+ };
18
+ /** Clases de un badge. Pura y exportada: es lo que se testea (no el markup). */
19
+ export declare const badgeClasses: ({ variant, tone, size, className }?: Pick<KapiBadgeProps, "variant" | "tone" | "size" | "className">) => string;
20
+ /** Pastilla de estado/etiqueta, con los tokens semánticos por rol. */
21
+ export declare function KapiBadge({ variant, tone, size, dot, className, children, ...rest }: KapiBadgeProps): import("react").JSX.Element;
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ /* empty css */
3
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
4
+ //#region src/components/display/KapiBadge.tsx
5
+ var n = ({ variant: e = "neutral", tone: t = "subtle", size: n = "md", className: r = "" } = {}) => [
6
+ "kapi-badge",
7
+ `kapi-badge--${e}`,
8
+ t === "solid" && "kapi-badge--solid",
9
+ n !== "md" && `kapi-badge--${n}`,
10
+ r
11
+ ].filter(Boolean).join(" ");
12
+ function r({ variant: r = "neutral", tone: i = "subtle", size: a = "md", dot: o = !1, className: s, children: c, ...l }) {
13
+ return /* @__PURE__ */ t("span", {
14
+ className: n({
15
+ variant: r,
16
+ tone: i,
17
+ size: a,
18
+ className: s
19
+ }),
20
+ ...l,
21
+ children: [o && /* @__PURE__ */ e("span", {
22
+ className: "kapi-badge__dot",
23
+ "aria-hidden": !0
24
+ }), c]
25
+ });
26
+ }
27
+ //#endregion
28
+ export { r as KapiBadge, n as badgeClasses };
@@ -0,0 +1,27 @@
1
+ import type { HTMLAttributes, ReactNode, Ref } from "react";
2
+ import "./KapiComment.css";
3
+ /** Atributos nativos (`className`, `style`, `id`, `data-*`…) van al `<article>`. */
4
+ export type KapiCommentProps = Omit<HTMLAttributes<HTMLElement>, "children" | "title"> & {
5
+ /** Nombre del autor (también da las iniciales y el color del avatar). */
6
+ author: string;
7
+ /** Foto del autor; sin ella el avatar muestra iniciales. */
8
+ avatarSrc?: string | undefined;
9
+ /** Pisa el avatar (p. ej. un ícono para comentarios del sistema). */
10
+ avatar?: ReactNode;
11
+ /** Fecha del comentario; se muestra relativa ("hace 5 minutos") con la absoluta en el `title`. */
12
+ date?: Date | string | undefined;
13
+ /** Hora de referencia de la fecha relativa (tests y capturas deterministas). Sin valor, el reloj real. */
14
+ now?: Date | undefined;
15
+ /** Texto del comentario. */
16
+ body: ReactNode;
17
+ /** Dato chico junto a la fecha ("editado", "interno"…). */
18
+ meta?: ReactNode;
19
+ /** Acciones bajo el cuerpo (responder, editar, borrar…). */
20
+ actions?: ReactNode;
21
+ /** Respuestas (otros `KapiComment`): se muestran con sangría; la sangría no crece más allá de un nivel. */
22
+ children?: ReactNode;
23
+ /** Ref al `<article>`. */
24
+ ref?: Ref<HTMLElement>;
25
+ };
26
+ /** Un comentario de un hilo: avatar, autor, fecha relativa, cuerpo, acciones y respuestas anidadas. */
27
+ export declare const KapiComment: ({ author, avatarSrc, avatar, date, now, body, meta, actions, children, ref, className, ...rest }: KapiCommentProps) => import("react").JSX.Element;
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { useKapiLocale as e } from "../locale/KapiLocaleProvider.js";
3
+ import { joinClasses as t } from "../rootProps.js";
4
+ import { KapiAvatar as n } from "./KapiAvatar.js";
5
+ import { formatDate as r, formatRelativeTime as i, isoDateTime as a } from "../../hooks/dateFormat.js";
6
+ /* empty css */
7
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
+ //#region src/components/display/KapiComment.tsx
9
+ var c = {
10
+ dateStyle: "medium",
11
+ timeStyle: "short"
12
+ }, l = ({ author: l, avatarSrc: u, avatar: d, date: f, now: p, body: m, meta: h, actions: g, children: _, ref: v, className: y, ...b }) => {
13
+ let x = e() ?? "es", S = f === void 0 ? null : a(f), C = _ != null && _ !== !1;
14
+ return /* @__PURE__ */ s("article", {
15
+ ...b,
16
+ ref: v,
17
+ className: t("kapi-comment", y),
18
+ children: [/* @__PURE__ */ s("div", {
19
+ className: "kapi-comment__row",
20
+ children: [/* @__PURE__ */ o("span", {
21
+ className: "kapi-comment__avatar",
22
+ children: d ?? /* @__PURE__ */ o(n, {
23
+ name: l,
24
+ size: "sm",
25
+ ...u ? { src: u } : {}
26
+ })
27
+ }), /* @__PURE__ */ s("div", {
28
+ className: "kapi-comment__main",
29
+ children: [
30
+ /* @__PURE__ */ s("div", {
31
+ className: "kapi-comment__head",
32
+ children: [
33
+ /* @__PURE__ */ o("span", {
34
+ className: "kapi-comment__author",
35
+ children: l
36
+ }),
37
+ S !== null && f !== void 0 && /* @__PURE__ */ o("time", {
38
+ className: "kapi-comment__date",
39
+ dateTime: S,
40
+ title: r(f, x, c),
41
+ children: i(f, p ?? /* @__PURE__ */ new Date(), x)
42
+ }),
43
+ h != null && h !== !1 && /* @__PURE__ */ o("span", {
44
+ className: "kapi-comment__meta",
45
+ children: h
46
+ })
47
+ ]
48
+ }),
49
+ /* @__PURE__ */ o("div", {
50
+ className: "kapi-comment__body",
51
+ children: m
52
+ }),
53
+ g != null && g !== !1 && /* @__PURE__ */ o("div", {
54
+ className: "kapi-comment__actions",
55
+ children: g
56
+ })
57
+ ]
58
+ })]
59
+ }), C && /* @__PURE__ */ o("div", {
60
+ className: "kapi-comment__replies",
61
+ children: _
62
+ })]
63
+ });
64
+ };
65
+ //#endregion
66
+ export { l as KapiComment };
@@ -0,0 +1,49 @@
1
+ import { type CSSProperties, type Ref, type TextareaHTMLAttributes } from "react";
2
+ import type { KapiLabelsOverride } from "../labelsLogic";
3
+ import "./KapiComment.css";
4
+ export type KapiCommentComposerLabels = {
5
+ /** Nombre accesible del textarea si no hay `KapiField`, `aria-label` ni `aria-labelledby`. */
6
+ label: string;
7
+ /** Placeholder del textarea (lo pisa la prop `placeholder`). */
8
+ placeholder: string;
9
+ /** Texto del botón de envío. */
10
+ submit: string;
11
+ /** Ayuda del atajo de teclado (descripción accesible y texto bajo el control). */
12
+ shortcut: string;
13
+ };
14
+ export declare const DEFAULT_COMMENT_COMPOSER_LABELS: KapiCommentComposerLabels;
15
+ type OwnKeys = "value" | "defaultValue" | "onChange" | "onSubmit" | "children" | "className" | "style";
16
+ /**
17
+ * Los atributos nativos (`name`, `id`, `rows`, `maxLength`, `onBlur`, `aria-*`…) van al `<textarea>`;
18
+ * `className` y `style` van al contenedor.
19
+ */
20
+ export type KapiCommentComposerProps = Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, OwnKeys> & {
21
+ /** Texto (controlado). */
22
+ value?: string | undefined;
23
+ /** Texto inicial (no controlado). */
24
+ defaultValue?: string | undefined;
25
+ /** Cambio del texto, ya como string. */
26
+ onChange?: ((text: string) => void) | undefined;
27
+ /**
28
+ * Envío (botón o Ctrl/Cmd+Enter) con el texto recortado. No controlado, el compositor se vacía después;
29
+ * si devuelve una promesa, queda ocupado mientras corre y se vacía solo si resuelve (si rechaza, el
30
+ * borrador se conserva para reintentar).
31
+ */
32
+ onSubmit: (text: string) => void | PromiseLike<unknown>;
33
+ /** Enviando: bloquea el envío y marca el botón `aria-busy`. */
34
+ loading?: boolean | undefined;
35
+ /** Marca el textarea `aria-invalid` (o lo toma del `KapiField`). */
36
+ invalid?: boolean | undefined;
37
+ /** Marca el textarea obligatorio (o lo toma del `KapiField`). */
38
+ required?: boolean | undefined;
39
+ /** Clase extra del contenedor. */
40
+ className?: string | undefined;
41
+ /** Estilos en línea del contenedor. */
42
+ style?: CSSProperties | undefined;
43
+ /** Textos fijos (clave `commentComposer`). */
44
+ labels?: KapiLabelsOverride<KapiCommentComposerLabels> | undefined;
45
+ /** Ref al `<textarea>`. */
46
+ ref?: Ref<HTMLTextAreaElement>;
47
+ };
48
+ export declare const KapiCommentComposer: ({ value: valueProp, defaultValue, onChange, onSubmit, loading, invalid, required, disabled, className, style, labels, ref, placeholder, onKeyDown, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, ...rest }: KapiCommentComposerProps) => import("react").JSX.Element;
49
+ export {};
@@ -0,0 +1,76 @@
1
+ "use client";
2
+ import { KapiButton as e } from "../inputs/KapiButton.js";
3
+ import { assignRef as t, joinIds as n } from "../inputs/fieldLogic.js";
4
+ import { useKapiField as r } from "../inputs/KapiField.js";
5
+ import { useLabels as i } from "../locale/KapiLocaleProvider.js";
6
+ import { joinClasses as a } from "../rootProps.js";
7
+ import { KapiTextarea as o } from "../inputs/KapiTextarea.js";
8
+ /* empty css */
9
+ import { canSubmitComment as s, draftAfterSubmit as c, isSubmitShortcut as l } from "./commentLogic.js";
10
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
11
+ import { useId as f, useRef as p, useState as m } from "react";
12
+ //#region src/components/display/KapiCommentComposer.tsx
13
+ var h = {
14
+ label: "Comentario",
15
+ placeholder: "Escribe un comentario…",
16
+ submit: "Comentar",
17
+ shortcut: "Ctrl o ⌘ + Enter para enviar"
18
+ }, g = (e) => typeof e?.then == "function", _ = ({ value: _, defaultValue: v = "", onChange: y, onSubmit: b, loading: x = !1, invalid: S, required: C, disabled: w, className: T, style: E, labels: D, ref: O, placeholder: k, onKeyDown: A, "aria-label": j, "aria-labelledby": M, "aria-describedby": N, ...P }) => {
19
+ let F = i("commentComposer", h, D), I = r(), [L, R] = m(v), z = _ ?? L, B = f(), V = p(null), [H, U] = m(!1), W = x || H, G = s(z, {
20
+ disabled: w,
21
+ loading: W
22
+ }), K = (e) => {
23
+ _ === void 0 && R(e), y?.(e);
24
+ }, q = () => {
25
+ if (!G) return;
26
+ let e = z.trim(), t = b(e);
27
+ V.current?.focus(), g(t) ? (U(!0), Promise.resolve(t).then(() => {
28
+ _ === void 0 && R((t) => c(t, e));
29
+ }, (e) => console.error(e)).finally(() => U(!1))) : _ === void 0 && R("");
30
+ }, J = (e) => {
31
+ A?.(e), !e.defaultPrevented && l({
32
+ ...e,
33
+ isComposing: e.nativeEvent.isComposing
34
+ }) && (e.preventDefault(), q());
35
+ }, Y = j !== void 0 || M !== void 0 || I !== null;
36
+ return /* @__PURE__ */ d("div", {
37
+ className: a("kapi-composer", T),
38
+ style: E,
39
+ children: [/* @__PURE__ */ u(o, {
40
+ ...P,
41
+ ref: (e) => {
42
+ V.current = e, t(O, e);
43
+ },
44
+ className: "kapi-composer__input",
45
+ autosize: !0,
46
+ maxRows: 8,
47
+ rows: 2,
48
+ value: z,
49
+ disabled: w,
50
+ placeholder: k ?? F.placeholder,
51
+ "aria-label": Y ? j : F.label,
52
+ "aria-labelledby": M,
53
+ "aria-describedby": n(N, B),
54
+ ...C === void 0 ? {} : { required: C },
55
+ ...S ? { status: "err" } : {},
56
+ onChange: (e) => K(e.target.value),
57
+ onKeyDown: J
58
+ }), /* @__PURE__ */ d("div", {
59
+ className: "kapi-composer__foot",
60
+ children: [/* @__PURE__ */ u("span", {
61
+ id: B,
62
+ className: "kapi-composer__hint",
63
+ children: F.shortcut
64
+ }), /* @__PURE__ */ u(e, {
65
+ variant: "primary",
66
+ size: "sm",
67
+ disabled: !G,
68
+ "aria-busy": W || void 0,
69
+ onClick: q,
70
+ children: F.submit
71
+ })]
72
+ })]
73
+ });
74
+ };
75
+ //#endregion
76
+ export { h as DEFAULT_COMMENT_COMPOSER_LABELS, _ as KapiCommentComposer };
@@ -0,0 +1,19 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import "./display.css";
3
+ export type KapiDescriptionItem = {
4
+ label: ReactNode;
5
+ value: ReactNode;
6
+ };
7
+ /** Atributos nativos (`id`, `style`, `data-*`, `aria-*`…) van al `<dl>`. */
8
+ export type KapiDescriptionListProps = Omit<HTMLAttributes<HTMLDListElement>, "children"> & {
9
+ /** Pares etiqueta/valor; cada uno es un `<dt>`/`<dd>`. */
10
+ items: KapiDescriptionItem[];
11
+ /** Cantidad de columnas (default 1). */
12
+ columns?: number;
13
+ /** `true`: etiqueta a la izquierda y valor a la derecha, en la misma línea. */
14
+ inline?: boolean;
15
+ };
16
+ /** Clases de la lista. Pura y exportada. */
17
+ export declare const descriptionListClasses: ({ inline, className }?: Pick<KapiDescriptionListProps, "inline" | "className">) => string;
18
+ /** Lista de pares etiqueta/valor (`<dl>`), en una o varias columnas. */
19
+ export declare function KapiDescriptionList({ items, columns, inline, className, style, ...rest }: KapiDescriptionListProps): import("react").JSX.Element;
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ /* empty css */
3
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
4
+ //#region src/components/display/KapiDescriptionList.tsx
5
+ var n = ({ inline: e = !1, className: t = "" } = {}) => [
6
+ "kapi-dl",
7
+ e && "kapi-dl--inline",
8
+ t
9
+ ].filter(Boolean).join(" ");
10
+ function r({ items: r, columns: i = 1, inline: a = !1, className: o, style: s, ...c }) {
11
+ let l = Math.max(1, Math.floor(i));
12
+ return /* @__PURE__ */ e("dl", {
13
+ ...c,
14
+ className: n({
15
+ inline: a,
16
+ className: o
17
+ }),
18
+ style: {
19
+ ...s,
20
+ "--kapi-dl-cols": l
21
+ },
22
+ children: r.map((n, r) => /* @__PURE__ */ t("div", {
23
+ className: "kapi-dl__item",
24
+ children: [/* @__PURE__ */ e("dt", {
25
+ className: "kapi-dl__label",
26
+ children: n.label
27
+ }), /* @__PURE__ */ e("dd", {
28
+ className: "kapi-dl__value",
29
+ children: n.value
30
+ })]
31
+ }, r))
32
+ });
33
+ }
34
+ //#endregion
35
+ export { r as KapiDescriptionList, n as descriptionListClasses };
@@ -0,0 +1,39 @@
1
+ import type { HTMLAttributes, LiHTMLAttributes, MouseEvent as ReactMouseEvent, ReactNode, Ref } from "react";
2
+ import "./KapiFileItem.css";
3
+ /** Atributos nativos (`className`, `style`, `id`, `data-*`…) van al `<li>`. */
4
+ export type KapiFileItemProps = Omit<LiHTMLAttributes<HTMLLIElement>, "children" | "type" | "value"> & {
5
+ /** Nombre del archivo (se recorta con "…" y queda completo en el `title`). */
6
+ name: string;
7
+ /** MIME del archivo; elige el ícono. Sin él (o genérico) se deduce de la extensión de `name`. */
8
+ mimeType?: string | undefined;
9
+ /** Tamaño en bytes; se muestra legible ("1,5 KB") en la línea de metadatos. */
10
+ size?: number | undefined;
11
+ /** Fecha del archivo (subida, modificación); se muestra absoluta ("12 mar 2026") en un `<time>`. */
12
+ date?: Date | string | undefined;
13
+ /** Otros datos de la línea de metadatos, antes del tamaño y la fecha ("Constancia", "Ana Pérez"). */
14
+ details?: ReadonlyArray<ReactNode> | undefined;
15
+ /** Pisa el ícono del tipo de archivo (p. ej. un escudo para un archivo bloqueado). Siempre decorativo. */
16
+ icon?: ReactNode;
17
+ /** Estado a la derecha del nombre (un `KapiBadge`: "Verificado", "En revisión"…). */
18
+ status?: ReactNode;
19
+ /** Acciones al final de la fila (botones de ver, descargar, quitar…). */
20
+ actions?: ReactNode;
21
+ /** Con `onOpen` el nombre es un botón (abrir la vista previa); sin él, texto. */
22
+ onOpen?: ((event: ReactMouseEvent<HTMLButtonElement>) => void) | undefined;
23
+ /** Ref al `<li>`. */
24
+ ref?: Ref<HTMLLIElement>;
25
+ };
26
+ /**
27
+ * Una fila de adjunto: ícono según el tipo, nombre, metadatos (detalles · tamaño · fecha), estado y
28
+ * acciones. Es un `<li>`: va dentro de `KapiFileList`. Contenido por props, sin lógica de negocio.
29
+ */
30
+ export declare const KapiFileItem: ({ name, mimeType, size, date, details, icon, status, actions, onOpen, ref, className, ...rest }: KapiFileItemProps) => import("react").JSX.Element;
31
+ /** Atributos nativos (`className`, `style`, `id`, `aria-label`…) van al `<ul>`. */
32
+ export type KapiFileListProps = HTMLAttributes<HTMLUListElement> & {
33
+ /** Filas de la lista (`KapiFileItem`). */
34
+ children?: ReactNode;
35
+ /** Ref al `<ul>`. */
36
+ ref?: Ref<HTMLUListElement>;
37
+ };
38
+ /** Lista de adjuntos (`<ul>` sin viñetas, filas separadas por una línea). */
39
+ export declare const KapiFileList: ({ className, ref, ...rest }: KapiFileListProps) => import("react").JSX.Element;