@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.
- package/README.md +764 -2
- package/dist/components/data/KapiPagination.d.ts +36 -0
- package/dist/components/data/KapiPagination.js +102 -0
- package/dist/components/data/KapiTable.d.ts +245 -0
- package/dist/components/data/KapiTable.js +748 -0
- package/dist/components/data/KapiTableFilter.d.ts +48 -0
- package/dist/components/data/KapiTableFilter.js +81 -0
- package/dist/components/data/index.d.ts +10 -0
- package/dist/components/data/tableLogic.d.ts +197 -0
- package/dist/components/data/tableLogic.js +145 -0
- package/dist/components/data/tableResizeLogic.d.ts +28 -0
- package/dist/components/data/tableResizeLogic.js +20 -0
- package/dist/components/display/KapiAnnotation.d.ts +32 -0
- package/dist/components/display/KapiAnnotation.js +130 -0
- package/dist/components/display/KapiAvatar.d.ts +27 -0
- package/dist/components/display/KapiAvatar.js +43 -0
- package/dist/components/display/KapiAvatarGroup.d.ts +19 -0
- package/dist/components/display/KapiAvatarGroup.js +38 -0
- package/dist/components/display/KapiBadge.d.ts +21 -0
- package/dist/components/display/KapiBadge.js +28 -0
- package/dist/components/display/KapiComment.d.ts +27 -0
- package/dist/components/display/KapiComment.js +66 -0
- package/dist/components/display/KapiCommentComposer.d.ts +49 -0
- package/dist/components/display/KapiCommentComposer.js +76 -0
- package/dist/components/display/KapiDescriptionList.d.ts +19 -0
- package/dist/components/display/KapiDescriptionList.js +35 -0
- package/dist/components/display/KapiFileItem.d.ts +39 -0
- package/dist/components/display/KapiFileItem.js +74 -0
- package/dist/components/display/KapiFileViewer.d.ts +51 -0
- package/dist/components/display/KapiFileViewer.js +107 -0
- package/dist/components/display/KapiIconTile.d.ts +16 -0
- package/dist/components/display/KapiIconTile.js +29 -0
- package/dist/components/display/KapiStat.d.ts +24 -0
- package/dist/components/display/KapiStat.js +41 -0
- package/dist/components/display/KapiTag.d.ts +27 -0
- package/dist/components/display/KapiTag.js +44 -0
- package/dist/components/display/KapiTimeline.d.ts +15 -0
- package/dist/components/display/KapiTimeline.js +30 -0
- package/dist/components/display/annotationLogic.d.ts +26 -0
- package/dist/components/display/annotationLogic.js +17 -0
- package/dist/components/display/avatarGroupLogic.d.ts +14 -0
- package/dist/components/display/avatarGroupLogic.js +13 -0
- package/dist/components/display/avatarLogic.d.ts +5 -0
- package/dist/components/display/avatarLogic.js +9 -0
- package/dist/components/display/commentLogic.d.ts +18 -0
- package/dist/components/display/commentLogic.js +7 -0
- package/dist/components/display/fileItemLogic.d.ts +9 -0
- package/dist/components/display/fileItemLogic.js +12 -0
- package/dist/components/display/iconTileLogic.d.ts +13 -0
- package/dist/components/display/iconTileLogic.js +13 -0
- package/dist/components/display/index.d.ts +40 -0
- package/dist/components/display/statLogic.d.ts +10 -0
- package/dist/components/display/statLogic.js +10 -0
- package/dist/components/display/tagLogic.d.ts +11 -0
- package/dist/components/display/tagLogic.js +10 -0
- package/dist/components/display/timelineLogic.d.ts +5 -0
- package/dist/components/display/timelineLogic.js +4 -0
- package/dist/components/feedback/KapiAlert.d.ts +28 -0
- package/dist/components/feedback/KapiAlert.js +53 -0
- package/dist/components/feedback/KapiBulkBar.d.ts +30 -0
- package/dist/components/feedback/KapiBulkBar.js +34 -0
- package/dist/components/feedback/KapiCountdown.d.ts +26 -0
- package/dist/components/feedback/KapiCountdown.js +43 -0
- package/dist/components/feedback/KapiEmpty.d.ts +14 -0
- package/dist/components/feedback/KapiEmpty.js +31 -0
- package/dist/components/feedback/KapiFab.d.ts +34 -0
- package/dist/components/feedback/KapiFab.js +116 -0
- package/dist/components/feedback/KapiOfflineBanner.d.ts +25 -0
- package/dist/components/feedback/KapiOfflineBanner.js +40 -0
- package/dist/components/feedback/KapiProgress.d.ts +24 -0
- package/dist/components/feedback/KapiProgress.js +94 -0
- package/dist/components/feedback/KapiSkeleton.d.ts +12 -0
- package/dist/components/feedback/KapiSkeleton.js +16 -0
- package/dist/components/feedback/KapiToastContainer.d.ts +16 -0
- package/dist/components/feedback/KapiToastContainer.js +81 -0
- package/dist/components/feedback/KapiTour.d.ts +40 -0
- package/dist/components/feedback/KapiTour.js +157 -0
- package/dist/components/feedback/KapiUnsavedBar.d.ts +35 -0
- package/dist/components/feedback/KapiUnsavedBar.js +47 -0
- package/dist/components/feedback/bulkBarLogic.d.ts +2 -0
- package/dist/components/feedback/bulkBarLogic.js +7 -0
- package/dist/components/feedback/countdownLogic.d.ts +74 -0
- package/dist/components/feedback/countdownLogic.js +70 -0
- package/dist/components/feedback/fabLogic.d.ts +17 -0
- package/dist/components/feedback/fabLogic.js +10 -0
- package/dist/components/feedback/index.d.ts +33 -0
- package/dist/components/feedback/offlineBannerLogic.d.ts +10 -0
- package/dist/components/feedback/offlineBannerLogic.js +8 -0
- package/dist/components/feedback/progressLogic.d.ts +17 -0
- package/dist/components/feedback/progressLogic.js +16 -0
- package/dist/components/feedback/toastStore.d.ts +62 -0
- package/dist/components/feedback/toastStore.js +38 -0
- package/dist/components/feedback/tourLogic.d.ts +64 -0
- package/dist/components/feedback/tourLogic.js +31 -0
- package/dist/components/feedback/unsavedBarLogic.d.ts +2 -0
- package/dist/components/feedback/unsavedBarLogic.js +8 -0
- package/dist/components/inputs/KapiAutocomplete.d.ts +81 -0
- package/dist/components/inputs/KapiAutocomplete.js +205 -0
- package/dist/components/inputs/KapiButton.d.ts +23 -0
- package/dist/components/inputs/KapiButton.js +25 -0
- package/dist/components/inputs/KapiCalendar.d.ts +35 -0
- package/dist/components/inputs/KapiCalendar.js +60 -0
- package/dist/components/inputs/KapiCalendarGrid.d.ts +29 -0
- package/dist/components/inputs/KapiCalendarGrid.js +65 -0
- package/dist/components/inputs/KapiCheckCard.d.ts +28 -0
- package/dist/components/inputs/KapiCheckCard.js +41 -0
- package/dist/components/inputs/KapiCheckbox.d.ts +7 -0
- package/dist/components/inputs/KapiCheckbox.js +5 -0
- package/dist/components/inputs/KapiDatePicker.d.ts +46 -0
- package/dist/components/inputs/KapiDatePicker.js +189 -0
- package/dist/components/inputs/KapiDateRangePicker.d.ts +49 -0
- package/dist/components/inputs/KapiDateRangePicker.js +179 -0
- package/dist/components/inputs/KapiFacetedSearch.d.ts +45 -0
- package/dist/components/inputs/KapiFacetedSearch.js +188 -0
- package/dist/components/inputs/KapiField.d.ts +33 -0
- package/dist/components/inputs/KapiField.js +60 -0
- package/dist/components/inputs/KapiFileUpload.d.ts +58 -0
- package/dist/components/inputs/KapiFileUpload.js +134 -0
- package/dist/components/inputs/KapiIconButton.d.ts +13 -0
- package/dist/components/inputs/KapiIconButton.js +16 -0
- package/dist/components/inputs/KapiInput.d.ts +92 -0
- package/dist/components/inputs/KapiInput.js +123 -0
- package/dist/components/inputs/KapiInputGroup.d.ts +37 -0
- package/dist/components/inputs/KapiInputGroup.js +29 -0
- package/dist/components/inputs/KapiMaskedInput.d.ts +52 -0
- package/dist/components/inputs/KapiMaskedInput.js +78 -0
- package/dist/components/inputs/KapiNumberStepper.d.ts +44 -0
- package/dist/components/inputs/KapiNumberStepper.js +100 -0
- package/dist/components/inputs/KapiRadio.d.ts +7 -0
- package/dist/components/inputs/KapiRadio.js +5 -0
- package/dist/components/inputs/KapiRating.d.ts +55 -0
- package/dist/components/inputs/KapiRating.js +99 -0
- package/dist/components/inputs/KapiSegmented.d.ts +41 -0
- package/dist/components/inputs/KapiSegmented.js +83 -0
- package/dist/components/inputs/KapiSelect.d.ts +109 -0
- package/dist/components/inputs/KapiSelect.js +443 -0
- package/dist/components/inputs/KapiSlider.d.ts +42 -0
- package/dist/components/inputs/KapiSlider.js +70 -0
- package/dist/components/inputs/KapiSwitch.d.ts +13 -0
- package/dist/components/inputs/KapiSwitch.js +28 -0
- package/dist/components/inputs/KapiTagInput.d.ts +79 -0
- package/dist/components/inputs/KapiTagInput.js +115 -0
- package/dist/components/inputs/KapiTextarea.d.ts +32 -0
- package/dist/components/inputs/KapiTextarea.js +67 -0
- package/dist/components/inputs/asyncSelectLogic.d.ts +42 -0
- package/dist/components/inputs/asyncSelectLogic.js +46 -0
- package/dist/components/inputs/autocompleteLogic.d.ts +73 -0
- package/dist/components/inputs/autocompleteLogic.js +67 -0
- package/dist/components/inputs/checkControl.d.ts +20 -0
- package/dist/components/inputs/checkControl.js +31 -0
- package/dist/components/inputs/datePickerLogic.d.ts +92 -0
- package/dist/components/inputs/datePickerLogic.js +174 -0
- package/dist/components/inputs/dateRangeLogic.d.ts +31 -0
- package/dist/components/inputs/dateRangeLogic.js +44 -0
- package/dist/components/inputs/facetedSearchLogic.d.ts +69 -0
- package/dist/components/inputs/facetedSearchLogic.js +39 -0
- package/dist/components/inputs/fieldLogic.d.ts +67 -0
- package/dist/components/inputs/fieldLogic.js +35 -0
- package/dist/components/inputs/fileUploadLogic.d.ts +13 -0
- package/dist/components/inputs/fileUploadLogic.js +9 -0
- package/dist/components/inputs/index.d.ts +55 -0
- package/dist/components/inputs/inputGroupLogic.d.ts +22 -0
- package/dist/components/inputs/inputGroupLogic.js +9 -0
- package/dist/components/inputs/inputLogic.d.ts +25 -0
- package/dist/components/inputs/inputLogic.js +10 -0
- package/dist/components/inputs/maskLogic.d.ts +34 -0
- package/dist/components/inputs/maskLogic.js +57 -0
- package/dist/components/inputs/numberStepLogic.d.ts +14 -0
- package/dist/components/inputs/numberStepLogic.js +21 -0
- package/dist/components/inputs/ratingLogic.d.ts +9 -0
- package/dist/components/inputs/ratingLogic.js +22 -0
- package/dist/components/inputs/segmentedLogic.d.ts +6 -0
- package/dist/components/inputs/segmentedLogic.js +14 -0
- package/dist/components/inputs/selectLogic.d.ts +89 -0
- package/dist/components/inputs/selectLogic.js +82 -0
- package/dist/components/inputs/sliderLogic.d.ts +9 -0
- package/dist/components/inputs/sliderLogic.js +17 -0
- package/dist/components/inputs/tagInputLogic.d.ts +40 -0
- package/dist/components/inputs/tagInputLogic.js +40 -0
- package/dist/components/inputs/textareaLogic.d.ts +17 -0
- package/dist/components/inputs/textareaLogic.js +13 -0
- package/dist/components/inputs/useCalendarFocus.d.ts +13 -0
- package/dist/components/inputs/useCalendarFocus.js +25 -0
- package/dist/components/inputs/useDatePopSide.d.ts +15 -0
- package/dist/components/inputs/useDatePopSide.js +20 -0
- package/dist/components/labelsLogic.d.ts +6 -0
- package/dist/components/labelsLogic.js +11 -0
- package/dist/components/layout/KapiAccessCard.d.ts +40 -0
- package/dist/components/layout/KapiAccessCard.js +66 -0
- package/dist/components/layout/KapiAccountMenu.d.ts +61 -0
- package/dist/components/layout/KapiAccountMenu.js +212 -0
- package/dist/components/layout/KapiCard.d.ts +43 -0
- package/dist/components/layout/KapiCard.js +53 -0
- package/dist/components/layout/KapiCluster.d.ts +15 -0
- package/dist/components/layout/KapiCluster.js +21 -0
- package/dist/components/layout/KapiContextSlot.d.ts +45 -0
- package/dist/components/layout/KapiContextSlot.js +92 -0
- package/dist/components/layout/KapiDivider.d.ts +16 -0
- package/dist/components/layout/KapiDivider.js +41 -0
- package/dist/components/layout/KapiGrid.d.ts +19 -0
- package/dist/components/layout/KapiGrid.js +25 -0
- package/dist/components/layout/KapiNotificationBell.d.ts +75 -0
- package/dist/components/layout/KapiNotificationBell.js +196 -0
- package/dist/components/layout/KapiPageHeader.d.ts +28 -0
- package/dist/components/layout/KapiPageHeader.js +47 -0
- package/dist/components/layout/KapiPanelParts.d.ts +35 -0
- package/dist/components/layout/KapiPanelParts.js +63 -0
- package/dist/components/layout/KapiRail.d.ts +40 -0
- package/dist/components/layout/KapiRail.js +102 -0
- package/dist/components/layout/KapiScrollArea.d.ts +40 -0
- package/dist/components/layout/KapiScrollArea.js +49 -0
- package/dist/components/layout/KapiShell.d.ts +40 -0
- package/dist/components/layout/KapiShell.js +48 -0
- package/dist/components/layout/KapiStack.d.ts +11 -0
- package/dist/components/layout/KapiStack.js +19 -0
- package/dist/components/layout/accessCardLogic.d.ts +18 -0
- package/dist/components/layout/accessCardLogic.js +11 -0
- package/dist/components/layout/cardLogic.d.ts +9 -0
- package/dist/components/layout/cardLogic.js +11 -0
- package/dist/components/layout/index.d.ts +33 -0
- package/dist/components/layout/layoutPrimitives.d.ts +51 -0
- package/dist/components/layout/layoutPrimitives.js +58 -0
- package/dist/components/layout/notificationBellLogic.d.ts +20 -0
- package/dist/components/layout/notificationBellLogic.js +14 -0
- package/dist/components/layout/railLogic.d.ts +52 -0
- package/dist/components/layout/railLogic.js +16 -0
- package/dist/components/locale/KapiLocaleProvider.d.ts +29 -0
- package/dist/components/locale/KapiLocaleProvider.js +27 -0
- package/dist/components/locale/index.d.ts +5 -0
- package/dist/components/locale/labelRegistry.d.ts +110 -0
- package/dist/components/locale/linkLabels.d.ts +6 -0
- package/dist/components/locale/linkLabels.js +4 -0
- package/dist/components/navigation/CtxSlidingList.d.ts +11 -0
- package/dist/components/navigation/CtxSlidingList.js +24 -0
- package/dist/components/navigation/KapiAccordion.d.ts +24 -0
- package/dist/components/navigation/KapiAccordion.js +68 -0
- package/dist/components/navigation/KapiBreadcrumb.d.ts +23 -0
- package/dist/components/navigation/KapiBreadcrumb.js +32 -0
- package/dist/components/navigation/KapiCollapsiblePanel.d.ts +63 -0
- package/dist/components/navigation/KapiCollapsiblePanel.js +83 -0
- package/dist/components/navigation/KapiContextPanel.d.ts +117 -0
- package/dist/components/navigation/KapiContextPanel.js +265 -0
- package/dist/components/navigation/KapiFilterChips.d.ts +30 -0
- package/dist/components/navigation/KapiFilterChips.js +40 -0
- package/dist/components/navigation/KapiNavBadge.d.ts +26 -0
- package/dist/components/navigation/KapiNavBadge.js +33 -0
- package/dist/components/navigation/KapiPanelGroup.d.ts +69 -0
- package/dist/components/navigation/KapiPanelGroup.js +149 -0
- package/dist/components/navigation/KapiSteps.d.ts +43 -0
- package/dist/components/navigation/KapiSteps.js +63 -0
- package/dist/components/navigation/KapiTabs.d.ts +56 -0
- package/dist/components/navigation/KapiTabs.js +81 -0
- package/dist/components/navigation/KapiTree.d.ts +56 -0
- package/dist/components/navigation/KapiTree.js +157 -0
- package/dist/components/navigation/KapiWizard.d.ts +49 -0
- package/dist/components/navigation/KapiWizard.js +104 -0
- package/dist/components/navigation/MiniNavItem.d.ts +35 -0
- package/dist/components/navigation/MiniNavItem.js +57 -0
- package/dist/components/navigation/accordionLogic.d.ts +4 -0
- package/dist/components/navigation/accordionLogic.js +4 -0
- package/dist/components/navigation/activeItemLogic.d.ts +7 -0
- package/dist/components/navigation/activeItemLogic.js +4 -0
- package/dist/components/navigation/breadcrumbLogic.d.ts +8 -0
- package/dist/components/navigation/breadcrumbLogic.js +4 -0
- package/dist/components/navigation/contextPanelLogic.d.ts +27 -0
- package/dist/components/navigation/contextPanelLogic.js +11 -0
- package/dist/components/navigation/filterChipsLogic.d.ts +23 -0
- package/dist/components/navigation/filterChipsLogic.js +20 -0
- package/dist/components/navigation/index.d.ts +39 -0
- package/dist/components/navigation/navBadgeLogic.d.ts +26 -0
- package/dist/components/navigation/navBadgeLogic.js +16 -0
- package/dist/components/navigation/panelGroupLogic.d.ts +15 -0
- package/dist/components/navigation/panelGroupLogic.js +13 -0
- package/dist/components/navigation/panelMini.d.ts +13 -0
- package/dist/components/navigation/panelMini.js +9 -0
- package/dist/components/navigation/panelMiniLogic.d.ts +19 -0
- package/dist/components/navigation/panelMiniLogic.js +6 -0
- package/dist/components/navigation/stepsLogic.d.ts +25 -0
- package/dist/components/navigation/stepsLogic.js +10 -0
- package/dist/components/navigation/tabsLogic.d.ts +12 -0
- package/dist/components/navigation/tabsLogic.js +14 -0
- package/dist/components/navigation/treeLogic.d.ts +80 -0
- package/dist/components/navigation/treeLogic.js +91 -0
- package/dist/components/navigation/wizardLogic.d.ts +11 -0
- package/dist/components/navigation/wizardLogic.js +7 -0
- package/dist/components/overlays/KapiCanvasForm.d.ts +42 -0
- package/dist/components/overlays/KapiCanvasForm.js +60 -0
- package/dist/components/overlays/KapiCommandPalette.d.ts +58 -0
- package/dist/components/overlays/KapiCommandPalette.js +152 -0
- package/dist/components/overlays/KapiConfirm.d.ts +48 -0
- package/dist/components/overlays/KapiConfirm.js +94 -0
- package/dist/components/overlays/KapiContextMenu.d.ts +51 -0
- package/dist/components/overlays/KapiContextMenu.js +90 -0
- package/dist/components/overlays/KapiDialogHost.d.ts +23 -0
- package/dist/components/overlays/KapiDialogHost.js +129 -0
- package/dist/components/overlays/KapiDropdown.d.ts +30 -0
- package/dist/components/overlays/KapiDropdown.js +84 -0
- package/dist/components/overlays/KapiLoading.d.ts +14 -0
- package/dist/components/overlays/KapiLoading.js +43 -0
- package/dist/components/overlays/KapiMenuButton.d.ts +25 -0
- package/dist/components/overlays/KapiMenuButton.js +109 -0
- package/dist/components/overlays/KapiModal.d.ts +61 -0
- package/dist/components/overlays/KapiModal.js +106 -0
- package/dist/components/overlays/KapiOffcanvas.d.ts +96 -0
- package/dist/components/overlays/KapiOffcanvas.js +209 -0
- package/dist/components/overlays/KapiOffcanvasStack.d.ts +58 -0
- package/dist/components/overlays/KapiOffcanvasStack.js +84 -0
- package/dist/components/overlays/KapiPhotoView.d.ts +60 -0
- package/dist/components/overlays/KapiPhotoView.js +122 -0
- package/dist/components/overlays/KapiPopover.d.ts +46 -0
- package/dist/components/overlays/KapiPopover.js +68 -0
- package/dist/components/overlays/KapiShapeSheet.d.ts +34 -0
- package/dist/components/overlays/KapiShapeSheet.js +82 -0
- package/dist/components/overlays/KapiSplitModal.d.ts +41 -0
- package/dist/components/overlays/KapiSplitModal.js +125 -0
- package/dist/components/overlays/KapiTooltip.d.ts +38 -0
- package/dist/components/overlays/KapiTooltip.js +105 -0
- package/dist/components/overlays/canvasFormLogic.d.ts +18 -0
- package/dist/components/overlays/canvasFormLogic.js +16 -0
- package/dist/components/overlays/commandPaletteLogic.d.ts +29 -0
- package/dist/components/overlays/commandPaletteLogic.js +19 -0
- package/dist/components/overlays/dialogStore.d.ts +114 -0
- package/dist/components/overlays/dialogStore.js +76 -0
- package/dist/components/overlays/dialogUtils.d.ts +72 -0
- package/dist/components/overlays/dialogUtils.js +62 -0
- package/dist/components/overlays/exitPresenceLogic.d.ts +14 -0
- package/dist/components/overlays/exitPresenceLogic.js +5 -0
- package/dist/components/overlays/index.d.ts +38 -0
- package/dist/components/overlays/menuButtonLogic.d.ts +58 -0
- package/dist/components/overlays/menuButtonLogic.js +9 -0
- package/dist/components/overlays/menuKeyboardLogic.d.ts +25 -0
- package/dist/components/overlays/menuKeyboardLogic.js +30 -0
- package/dist/components/overlays/offcanvasCompanion.d.ts +16 -0
- package/dist/components/overlays/offcanvasCompanion.js +6 -0
- package/dist/components/overlays/offcanvasResize.d.ts +22 -0
- package/dist/components/overlays/offcanvasResize.js +10 -0
- package/dist/components/overlays/offcanvasSide.d.ts +30 -0
- package/dist/components/overlays/offcanvasSide.js +29 -0
- package/dist/components/overlays/offcanvasStack.d.ts +76 -0
- package/dist/components/overlays/offcanvasStack.js +72 -0
- package/dist/components/overlays/overlayPortal.d.ts +9 -0
- package/dist/components/overlays/overlayPortal.js +6 -0
- package/dist/components/overlays/popoverLogic.d.ts +94 -0
- package/dist/components/overlays/popoverLogic.js +47 -0
- package/dist/components/overlays/splitModalLayout.d.ts +8 -0
- package/dist/components/overlays/splitModalLayout.js +5 -0
- package/dist/components/overlays/useExitPresence.d.ts +14 -0
- package/dist/components/overlays/useExitPresence.js +34 -0
- package/dist/components/overlays/useNativeDialog.d.ts +30 -0
- package/dist/components/overlays/useNativeDialog.js +56 -0
- package/dist/components/rootProps.d.ts +17 -0
- package/dist/components/rootProps.js +4 -0
- package/dist/hooks/breakpointOpenLogic.d.ts +7 -0
- package/dist/hooks/breakpointOpenLogic.js +4 -0
- package/dist/hooks/dateFormat.d.ts +12 -0
- package/dist/hooks/dateFormat.js +15 -0
- package/dist/hooks/downloadLogic.d.ts +31 -0
- package/dist/hooks/downloadLogic.js +85 -0
- package/dist/hooks/focusLogic.d.ts +18 -0
- package/dist/hooks/focusLogic.js +17 -0
- package/dist/hooks/growOriginLogic.d.ts +22 -0
- package/dist/hooks/growOriginLogic.js +10 -0
- package/dist/hooks/hotkeyLogic.d.ts +22 -0
- package/dist/hooks/hotkeyLogic.js +32 -0
- package/dist/hooks/index.d.ts +49 -0
- package/dist/hooks/kapiRoot.d.ts +16 -0
- package/dist/hooks/kapiRoot.js +9 -0
- package/dist/hooks/onlineStatusLogic.d.ts +31 -0
- package/dist/hooks/onlineStatusLogic.js +28 -0
- package/dist/hooks/persistentStateLogic.d.ts +12 -0
- package/dist/hooks/persistentStateLogic.js +17 -0
- package/dist/hooks/rafThrottle.d.ts +33 -0
- package/dist/hooks/rafThrottle.js +33 -0
- package/dist/hooks/recentLogic.d.ts +9 -0
- package/dist/hooks/recentLogic.js +10 -0
- package/dist/hooks/reducedMotion.d.ts +13 -0
- package/dist/hooks/reducedMotion.js +5 -0
- package/dist/hooks/rightClick.d.ts +37 -0
- package/dist/hooks/rightClick.js +30 -0
- package/dist/hooks/scrollCollapseLogic.d.ts +12 -0
- package/dist/hooks/scrollCollapseLogic.js +4 -0
- package/dist/hooks/scrollEdgesLogic.d.ts +49 -0
- package/dist/hooks/scrollEdgesLogic.js +19 -0
- package/dist/hooks/slidingIndicatorLogic.d.ts +25 -0
- package/dist/hooks/slidingIndicatorLogic.js +15 -0
- package/dist/hooks/storageLogic.d.ts +15 -0
- package/dist/hooks/storageLogic.js +24 -0
- package/dist/hooks/unsavedGuardLogic.d.ts +17 -0
- package/dist/hooks/unsavedGuardLogic.js +17 -0
- package/dist/hooks/useDragScroll.d.ts +12 -0
- package/dist/hooks/useDragScroll.js +32 -0
- package/dist/hooks/useGlobalRightClick.d.ts +14 -0
- package/dist/hooks/useGlobalRightClick.js +35 -0
- package/dist/hooks/useGrowOrigin.d.ts +13 -0
- package/dist/hooks/useGrowOrigin.js +16 -0
- package/dist/hooks/useHotkey.d.ts +15 -0
- package/dist/hooks/useHotkey.js +31 -0
- package/dist/hooks/useKapiTheme.d.ts +69 -0
- package/dist/hooks/useKapiTheme.js +88 -0
- package/dist/hooks/useMediaQuery.d.ts +6 -0
- package/dist/hooks/useMediaQuery.js +13 -0
- package/dist/hooks/useObjectUrl.d.ts +6 -0
- package/dist/hooks/useObjectUrl.js +19 -0
- package/dist/hooks/useOnlineStatus.d.ts +7 -0
- package/dist/hooks/useOnlineStatus.js +7 -0
- package/dist/hooks/usePersistentState.d.ts +19 -0
- package/dist/hooks/usePersistentState.js +37 -0
- package/dist/hooks/usePlacement.d.ts +36 -0
- package/dist/hooks/usePlacement.js +84 -0
- package/dist/hooks/useRecent.d.ts +17 -0
- package/dist/hooks/useRecent.js +16 -0
- package/dist/hooks/useScrollCollapse.d.ts +10 -0
- package/dist/hooks/useScrollCollapse.js +27 -0
- package/dist/hooks/useScrollEdges.d.ts +32 -0
- package/dist/hooks/useScrollEdges.js +91 -0
- package/dist/hooks/useSlidingIndicator.d.ts +23 -0
- package/dist/hooks/useSlidingIndicator.js +51 -0
- package/dist/hooks/useUnsavedGuard.d.ts +70 -0
- package/dist/hooks/useUnsavedGuard.js +47 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +162 -0
- package/dist/kapi.css +2 -0
- package/dist/kapi.layered.css +4 -0
- package/package.json +86 -4
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode, type Ref } from "react";
|
|
2
|
+
import "./KapiScrollArea.css";
|
|
3
|
+
import type { KapiScrollAxis } from "../../hooks/scrollEdgesLogic";
|
|
4
|
+
import type { KapiLabelsOverride } from "../labelsLogic";
|
|
5
|
+
/** Textos de los controles de paginado (nombre accesible de las zonas de borde). */
|
|
6
|
+
export type KapiScrollAreaLabels = {
|
|
7
|
+
/** Zona del borde inicial: scrollea un page hacia atrás. */
|
|
8
|
+
previous: string;
|
|
9
|
+
/** Zona del borde final: scrollea un page hacia adelante. */
|
|
10
|
+
next: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const DEFAULT_SCROLL_AREA_LABELS: KapiScrollAreaLabels;
|
|
13
|
+
/**
|
|
14
|
+
* Atributos nativos (`id`, `style`, `aria-label`, `data-*`…) van al contenedor; el contenido
|
|
15
|
+
* scrollea en una zona interior enfocable (`viewportRef`).
|
|
16
|
+
*/
|
|
17
|
+
export type KapiScrollAreaProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
18
|
+
/** Contenido que puede desbordar. */
|
|
19
|
+
children?: ReactNode;
|
|
20
|
+
/** Eje que scrollea; el otro eje no scrollea. */
|
|
21
|
+
axis?: KapiScrollAxis | undefined;
|
|
22
|
+
/** Desvanece (con `mask-image`) sólo el borde que tiene más contenido. */
|
|
23
|
+
fade?: boolean | undefined;
|
|
24
|
+
/** Click sobre la zona de un borde con más contenido para scrollear un page hacia ese lado. */
|
|
25
|
+
paging?: boolean | undefined;
|
|
26
|
+
/** Clase del contenedor. */
|
|
27
|
+
className?: string | undefined;
|
|
28
|
+
/** Ref de la zona interior que scrollea (para `scrollTo`, `scrollIntoView`…). */
|
|
29
|
+
viewportRef?: Ref<HTMLDivElement> | undefined;
|
|
30
|
+
/** Ref del contenedor. */
|
|
31
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
32
|
+
/** Textos de los controles de paginado. */
|
|
33
|
+
labels?: KapiLabelsOverride<KapiScrollAreaLabels> | undefined;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Contenedor que scrollea en un eje y desvanece sólo el borde con más contenido (`mask-image`, sin
|
|
37
|
+
* chevrons). Con `paging`, un click en la zona del borde avanza un page (instantáneo con movimiento
|
|
38
|
+
* reducido). La zona que scrollea es enfocable para scrollear con el teclado. Sólo LTR.
|
|
39
|
+
*/
|
|
40
|
+
export declare function KapiScrollArea({ children, axis, fade, paging, className, viewportRef, ref, labels, ...rest }: KapiScrollAreaProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useLabels as e } from "../locale/KapiLocaleProvider.js";
|
|
3
|
+
import { joinClasses as t } from "../rootProps.js";
|
|
4
|
+
import { useScrollEdges as n } from "../../hooks/useScrollEdges.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
7
|
+
import { useCallback as a } from "react";
|
|
8
|
+
//#region src/components/layout/KapiScrollArea.tsx
|
|
9
|
+
var o = {
|
|
10
|
+
previous: "Ver contenido anterior",
|
|
11
|
+
next: "Ver contenido siguiente"
|
|
12
|
+
};
|
|
13
|
+
function s({ children: s, axis: c = "x", fade: l = !0, paging: u = !0, className: d, viewportRef: f, ref: p, labels: m, ...h }) {
|
|
14
|
+
let g = e("scrollArea", o, m), { ref: _, edges: v, scrollByPage: y } = n({ axis: c }), b = a((e) => {
|
|
15
|
+
_.current = e, typeof f == "function" ? f(e) : f && (f.current = e);
|
|
16
|
+
}, [_, f]);
|
|
17
|
+
return /* @__PURE__ */ i("div", {
|
|
18
|
+
...h,
|
|
19
|
+
ref: p,
|
|
20
|
+
className: t("kapi-scroll-area", d),
|
|
21
|
+
"data-axis": c,
|
|
22
|
+
children: [
|
|
23
|
+
/* @__PURE__ */ r("div", {
|
|
24
|
+
ref: b,
|
|
25
|
+
className: t("kapi-scroll-area__viewport", l && `kapi-fade-${c}`),
|
|
26
|
+
"data-edge-start": v.start ? "" : void 0,
|
|
27
|
+
"data-edge-end": v.end ? "" : void 0,
|
|
28
|
+
tabIndex: 0,
|
|
29
|
+
children: s
|
|
30
|
+
}),
|
|
31
|
+
u && v.start && /* @__PURE__ */ r("button", {
|
|
32
|
+
type: "button",
|
|
33
|
+
tabIndex: -1,
|
|
34
|
+
"aria-label": g.previous,
|
|
35
|
+
className: "kapi-scroll-area__edge kapi-scroll-area__edge--start",
|
|
36
|
+
onClick: () => y(-1)
|
|
37
|
+
}),
|
|
38
|
+
u && v.end && /* @__PURE__ */ r("button", {
|
|
39
|
+
type: "button",
|
|
40
|
+
tabIndex: -1,
|
|
41
|
+
"aria-label": g.next,
|
|
42
|
+
className: "kapi-scroll-area__edge kapi-scroll-area__edge--end",
|
|
43
|
+
onClick: () => y(1)
|
|
44
|
+
})
|
|
45
|
+
]
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { o as DEFAULT_SCROLL_AREA_LABELS, s as KapiScrollArea };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
import { type KapiMenuItem } from "../overlays/KapiContextMenu";
|
|
3
|
+
/**
|
|
4
|
+
* Atributos nativos (`id`, `style`, `data-*`…) van a la raíz `.kapi`. `data-theme`/`data-motion`
|
|
5
|
+
* son propios y las variables del tema (`--kapi-font`, `--kapi-primary`) ganan sobre `style`.
|
|
6
|
+
*/
|
|
7
|
+
export type KapiShellProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
8
|
+
/** Navegación principal (típicamente `<KapiRail />`). OPCIONAL. */
|
|
9
|
+
rail?: ReactNode;
|
|
10
|
+
/** Panel contextual (típicamente `<KapiContextSlot />`). OPCIONAL. */
|
|
11
|
+
panel?: ReactNode;
|
|
12
|
+
/** Contenido de la página; va dentro de `<main class="kapi-content">` (el que scrollea). */
|
|
13
|
+
children?: ReactNode;
|
|
14
|
+
/** Ítems del menú del sistema (doble click derecho). Sin ítems no se abre menú. */
|
|
15
|
+
contextMenuItems?: KapiMenuItem[];
|
|
16
|
+
/** Mecánica global de click derecho (drag-scroll + supresión del menú nativo). */
|
|
17
|
+
rightClick?: boolean;
|
|
18
|
+
/** Monta acá toasts, tours, modales globales: viven DENTRO de `.kapi` (heredan tokens). */
|
|
19
|
+
overlays?: ReactNode;
|
|
20
|
+
/** Clase extra del `<main>` que envuelve el contenido. */
|
|
21
|
+
contentClassName?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Namespace de las preferencias guardadas (tema, acento, fuente, movimiento). Default `kapi`
|
|
24
|
+
* (`kapi:theme`…). Dos apps del design system en el mismo origen pasan uno distinto para no pisarse.
|
|
25
|
+
*/
|
|
26
|
+
storageNamespace?: string;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Marco de la app. Es la raíz `.kapi` (tokens, tema, fuente) y compone:
|
|
30
|
+
*
|
|
31
|
+
* [rail?] [panel?] <main.kapi-content>
|
|
32
|
+
*
|
|
33
|
+
* Rail y panel son opcionales e independientes: el contenido no depende de ninguno.
|
|
34
|
+
*
|
|
35
|
+
* // con rail + panel
|
|
36
|
+
* <KapiShell rail={<KapiRail items={…} />} panel={<KapiContextSlot title="Módulo">…</KapiContextSlot>}>…</KapiShell>
|
|
37
|
+
* // sin rail (otra navegación, p. ej. tabs arriba o router propio)
|
|
38
|
+
* <KapiShell><MiTopNav /><Pagina /></KapiShell>
|
|
39
|
+
*/
|
|
40
|
+
export declare const KapiShell: ({ rail, panel, children, contextMenuItems, rightClick, overlays, className, contentClassName, storageNamespace, style, ...rest }: KapiShellProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { joinClasses as e } from "../rootProps.js";
|
|
3
|
+
import { KapiContextMenu as t } from "../overlays/KapiContextMenu.js";
|
|
4
|
+
import { useGlobalRightClick as n } from "../../hooks/useGlobalRightClick.js";
|
|
5
|
+
import { KapiThemeContext as r, themeRootStyle as i, useKapiThemeState as a } from "../../hooks/useKapiTheme.js";
|
|
6
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
7
|
+
import { useState as c } from "react";
|
|
8
|
+
//#region src/components/layout/KapiShell.tsx
|
|
9
|
+
var l = ({ rail: l, panel: u, children: d, contextMenuItems: f, rightClick: p = !0, overlays: m, className: h, contentClassName: g = "", storageNamespace: _, style: v, ...y }) => {
|
|
10
|
+
let b = a({ namespace: _ }), [x, S] = c(null);
|
|
11
|
+
return n({
|
|
12
|
+
enabled: p,
|
|
13
|
+
onMenu: f?.length ? (e, t) => S({
|
|
14
|
+
x: e,
|
|
15
|
+
y: t
|
|
16
|
+
}) : void 0
|
|
17
|
+
}), /* @__PURE__ */ o(r.Provider, {
|
|
18
|
+
value: b,
|
|
19
|
+
children: /* @__PURE__ */ s("div", {
|
|
20
|
+
...y,
|
|
21
|
+
className: e("kapi", h),
|
|
22
|
+
"data-theme": b.theme,
|
|
23
|
+
"data-motion": b.motion === "reduced" ? "reduced" : void 0,
|
|
24
|
+
style: {
|
|
25
|
+
...v,
|
|
26
|
+
...i(b)
|
|
27
|
+
},
|
|
28
|
+
children: [
|
|
29
|
+
l,
|
|
30
|
+
u,
|
|
31
|
+
/* @__PURE__ */ o("main", {
|
|
32
|
+
className: `kapi-content${g ? ` ${g}` : ""}`,
|
|
33
|
+
children: d
|
|
34
|
+
}),
|
|
35
|
+
m,
|
|
36
|
+
x && f && /* @__PURE__ */ o(t, {
|
|
37
|
+
open: !0,
|
|
38
|
+
x: x.x,
|
|
39
|
+
y: x.y,
|
|
40
|
+
items: f,
|
|
41
|
+
onClose: () => S(null)
|
|
42
|
+
})
|
|
43
|
+
]
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
export { l as KapiShell };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
2
|
+
import { type KapiAlign, type KapiGap } from "./layoutPrimitives";
|
|
3
|
+
import "./layout-primitives.css";
|
|
4
|
+
export type KapiStackProps = HTMLAttributes<HTMLDivElement> & {
|
|
5
|
+
/** Espacio entre hijos: número = px, string = largo CSS. Default 12px. */
|
|
6
|
+
gap?: KapiGap;
|
|
7
|
+
/** Alineación en el eje horizontal (`align-items`). */
|
|
8
|
+
align?: KapiAlign;
|
|
9
|
+
};
|
|
10
|
+
/** Pila vertical (flex column). */
|
|
11
|
+
export declare function KapiStack({ gap, align, className, style, children, ...rest }: KapiStackProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { stackProps as e } from "./layoutPrimitives.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/layout/KapiStack.tsx
|
|
6
|
+
function n({ gap: n, align: r, className: i, style: a, children: o, ...s }) {
|
|
7
|
+
return /* @__PURE__ */ t("div", {
|
|
8
|
+
...s,
|
|
9
|
+
...e({
|
|
10
|
+
gap: n,
|
|
11
|
+
align: r,
|
|
12
|
+
className: i,
|
|
13
|
+
style: a
|
|
14
|
+
}),
|
|
15
|
+
children: o
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { n as KapiStack };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type KapiAccessCardTone = "primary" | "success" | "warning" | "danger" | "info";
|
|
2
|
+
export type KapiAccessCardAffordance = "external" | "chevron";
|
|
3
|
+
/** Which trailing icon to show: a cross-system/new-tab link gets the arrow, in-app navigation the chevron. */
|
|
4
|
+
export declare const accessCardAffordance: (external: boolean | undefined) => KapiAccessCardAffordance;
|
|
5
|
+
/** Props for the anchor of an `href` card. `newTab` opens `_blank`; external links always get `rel`. */
|
|
6
|
+
export declare const linkAttrs: (opts: {
|
|
7
|
+
external?: boolean | undefined;
|
|
8
|
+
newTab?: boolean | undefined;
|
|
9
|
+
}) => {
|
|
10
|
+
target?: "_blank";
|
|
11
|
+
rel?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const accessCardClasses: (opts?: {
|
|
14
|
+
tone?: KapiAccessCardTone | undefined;
|
|
15
|
+
className?: string | undefined;
|
|
16
|
+
}) => string;
|
|
17
|
+
/** Keys that activate a `role="button"` element. */
|
|
18
|
+
export declare const isActivationKey: (key: string) => boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/components/layout/accessCardLogic.ts
|
|
2
|
+
var e = (e) => e ? "external" : "chevron", t = (e) => {
|
|
3
|
+
let t = {};
|
|
4
|
+
return e.newTab && (t.target = "_blank"), (e.newTab || e.external) && (t.rel = "noopener noreferrer"), t;
|
|
5
|
+
}, n = (e = {}) => [
|
|
6
|
+
"kapi-accesscard",
|
|
7
|
+
`kapi-accesscard--${e.tone ?? "primary"}`,
|
|
8
|
+
e.className
|
|
9
|
+
].filter(Boolean).join(" "), r = (e) => e === "Enter" || e === " ";
|
|
10
|
+
//#endregion
|
|
11
|
+
export { e as accessCardAffordance, n as accessCardClasses, r as isActivationKey, t as linkAttrs };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Clases de KapiCard: base `.kapi-card` + padding del `.kapi-panelcard` salvo `flush`. */
|
|
2
|
+
export declare const cardClasses: ({ flush, responsive, interactive, className }?: {
|
|
3
|
+
flush?: boolean | undefined;
|
|
4
|
+
responsive?: boolean | undefined;
|
|
5
|
+
interactive?: boolean | undefined;
|
|
6
|
+
className?: string | undefined;
|
|
7
|
+
}) => string;
|
|
8
|
+
/** Un header se dibuja sólo si hay título o acciones. */
|
|
9
|
+
export declare const hasCardHeader: (title: unknown, actions: unknown) => boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/components/layout/cardLogic.ts
|
|
2
|
+
var e = ({ flush: e = !1, responsive: t = !1, interactive: n = !1, className: r = "" } = {}) => [
|
|
3
|
+
"kapi-card",
|
|
4
|
+
"kapi-panelcard",
|
|
5
|
+
e && "kapi-panelcard--flush",
|
|
6
|
+
t && "kapi-card--cq",
|
|
7
|
+
n && "kapi-card--interactive",
|
|
8
|
+
r
|
|
9
|
+
].filter(Boolean).join(" "), t = (e) => e != null && e !== !1 && e !== "", n = (e, n) => t(e) || t(n);
|
|
10
|
+
//#endregion
|
|
11
|
+
export { e as cardClasses, n as hasCardHeader };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export { KapiShell } from "./KapiShell";
|
|
2
|
+
export type { KapiShellProps } from "./KapiShell";
|
|
3
|
+
export { KapiRail, DEFAULT_RAIL_LABELS } from "./KapiRail";
|
|
4
|
+
export type { KapiRailItem, KapiRailLabels, KapiRailProps, KapiRailEntry, KapiRailPinned, KapiRailSeparator, KapiRailVariant, KapiRailZone } from "./KapiRail";
|
|
5
|
+
export { KapiContextSlot, DEFAULT_CONTEXT_SLOT_LABELS } from "./KapiContextSlot";
|
|
6
|
+
export type { KapiContextSlotProps, KapiContextSlotLabels } from "./KapiContextSlot";
|
|
7
|
+
export { KapiPanelDivider, KapiPanelHint, KapiPanelItem, KapiPanelLabel, KapiPanelList } from "./KapiPanelParts";
|
|
8
|
+
export type { KapiPanelItemProps } from "./KapiPanelParts";
|
|
9
|
+
export { KapiCard, KapiCardBody, KapiCardFooter, KapiCardHeader } from "./KapiCard";
|
|
10
|
+
export type { KapiCardHeaderProps, KapiCardProps } from "./KapiCard";
|
|
11
|
+
export { cardClasses, hasCardHeader } from "./cardLogic";
|
|
12
|
+
export { KapiDivider, dividerClasses } from "./KapiDivider";
|
|
13
|
+
export type { KapiDividerOrientation, KapiDividerProps } from "./KapiDivider";
|
|
14
|
+
export { KapiAccountMenu, DEFAULT_ACCOUNT_MENU_LABELS } from "./KapiAccountMenu";
|
|
15
|
+
export type { KapiAccountMenuProps, KapiAccountMenuUser, KapiAccountMenuLabels } from "./KapiAccountMenu";
|
|
16
|
+
export { KapiNotificationBell, DEFAULT_NOTIFICATION_BELL_LABELS } from "./KapiNotificationBell";
|
|
17
|
+
export type { KapiNotification, KapiNotificationBellLabels, KapiNotificationBellProps } from "./KapiNotificationBell";
|
|
18
|
+
export { NOTIFICATION_BELL_PLACEMENT, bellTriggerLabel } from "./notificationBellLogic";
|
|
19
|
+
export { KapiAccessCard } from "./KapiAccessCard";
|
|
20
|
+
export type { KapiAccessCardProps } from "./KapiAccessCard";
|
|
21
|
+
export { accessCardAffordance, accessCardClasses, isActivationKey } from "./accessCardLogic";
|
|
22
|
+
export type { KapiAccessCardTone, KapiAccessCardAffordance } from "./accessCardLogic";
|
|
23
|
+
export { KapiStack } from "./KapiStack";
|
|
24
|
+
export type { KapiStackProps } from "./KapiStack";
|
|
25
|
+
export { KapiCluster } from "./KapiCluster";
|
|
26
|
+
export type { KapiClusterProps } from "./KapiCluster";
|
|
27
|
+
export { KapiGrid } from "./KapiGrid";
|
|
28
|
+
export type { KapiGridProps } from "./KapiGrid";
|
|
29
|
+
export type { KapiGap, KapiAlign, KapiClusterAlign, KapiClusterJustify } from "./layoutPrimitives";
|
|
30
|
+
export { KapiPageHeader } from "./KapiPageHeader";
|
|
31
|
+
export type { KapiPageHeaderProps } from "./KapiPageHeader";
|
|
32
|
+
export { KapiScrollArea, DEFAULT_SCROLL_AREA_LABELS } from "./KapiScrollArea";
|
|
33
|
+
export type { KapiScrollAreaLabels, KapiScrollAreaProps } from "./KapiScrollArea";
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { CSSProperties } from "react";
|
|
2
|
+
/** Gap: número = px; string = largo CSS crudo (`"1rem"`, `"var(--x)"`). */
|
|
3
|
+
export type KapiGap = number | string;
|
|
4
|
+
export type KapiAlign = "start" | "center" | "end" | "stretch";
|
|
5
|
+
export type KapiClusterAlign = KapiAlign | "baseline";
|
|
6
|
+
export type KapiClusterJustify = "start" | "center" | "end" | "between";
|
|
7
|
+
/** Número -> `Npx`; string -> tal cual; `undefined` -> `undefined` (gana el default del CSS). */
|
|
8
|
+
export declare const gapValue: (gap: KapiGap | undefined) => string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Retorno de los helpers de primitivas: clase + estilo resuelto.
|
|
11
|
+
* Tipado explícito para que el emit de `.d.ts` no tenga que nombrar tipos internos de `csstype` (TS2883).
|
|
12
|
+
*/
|
|
13
|
+
type PrimitiveProps = {
|
|
14
|
+
className: string;
|
|
15
|
+
style: CSSProperties;
|
|
16
|
+
};
|
|
17
|
+
/** Clases + estilo de KapiStack. `style` del usuario pisa al resuelto. */
|
|
18
|
+
export declare const stackProps: ({ gap, align, className, style }?: {
|
|
19
|
+
gap?: KapiGap | undefined;
|
|
20
|
+
align?: KapiAlign | undefined;
|
|
21
|
+
className?: string | undefined;
|
|
22
|
+
style?: CSSProperties | undefined;
|
|
23
|
+
}) => PrimitiveProps;
|
|
24
|
+
/** Clases + estilo de KapiCluster. `wrap` default true. */
|
|
25
|
+
export declare const clusterProps: ({ gap, justify, align, wrap, className, style }?: {
|
|
26
|
+
gap?: KapiGap | undefined;
|
|
27
|
+
justify?: KapiClusterJustify | undefined;
|
|
28
|
+
align?: KapiClusterAlign | undefined;
|
|
29
|
+
wrap?: boolean | undefined;
|
|
30
|
+
className?: string | undefined;
|
|
31
|
+
style?: CSSProperties | undefined;
|
|
32
|
+
}) => PrimitiveProps;
|
|
33
|
+
/**
|
|
34
|
+
* `gridTemplateColumns` de KapiGrid. `cols` (entero >= 1) gana sobre `min`.
|
|
35
|
+
* `min` usa `auto-fit` con `minmax(min(100%, Npx), 1fr)` para no desbordar en contenedores angostos.
|
|
36
|
+
* Sin ninguno: `undefined` (el CSS aplica un `min` por defecto).
|
|
37
|
+
*/
|
|
38
|
+
export declare const gridColumns: (cols?: number, min?: number | string) => string | undefined;
|
|
39
|
+
export declare const gridProps: ({ gap, cols, min, responsive, className, style }?: {
|
|
40
|
+
gap?: KapiGap | undefined;
|
|
41
|
+
cols?: number | undefined;
|
|
42
|
+
min?: number | string | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Con `cols`: las columnas bajan con el ancho del contenedor (container queries): 2 bajo 768px,
|
|
45
|
+
* 1 bajo 480px. Pasa por `--kapi-grid-cols` / `--kapi-grid-cols-md` en vez de `gridTemplateColumns`.
|
|
46
|
+
*/
|
|
47
|
+
responsive?: boolean | undefined;
|
|
48
|
+
className?: string | undefined;
|
|
49
|
+
style?: CSSProperties | undefined;
|
|
50
|
+
}) => PrimitiveProps;
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
//#region src/components/layout/layoutPrimitives.ts
|
|
2
|
+
var e = {
|
|
3
|
+
start: "flex-start",
|
|
4
|
+
center: "center",
|
|
5
|
+
end: "flex-end",
|
|
6
|
+
stretch: "stretch",
|
|
7
|
+
baseline: "baseline"
|
|
8
|
+
}, t = {
|
|
9
|
+
start: "flex-start",
|
|
10
|
+
center: "center",
|
|
11
|
+
end: "flex-end",
|
|
12
|
+
between: "space-between"
|
|
13
|
+
}, n = (e) => e === void 0 ? void 0 : typeof e == "number" ? `${e}px` : e, r = (e) => Object.fromEntries(Object.entries(e).filter(([, e]) => e !== void 0)), i = (...e) => e.filter(Boolean).join(" "), a = ({ gap: t, align: a, className: o, style: s } = {}) => ({
|
|
14
|
+
className: i("kapi-stackx", o),
|
|
15
|
+
style: {
|
|
16
|
+
...r({
|
|
17
|
+
gap: n(t),
|
|
18
|
+
alignItems: a && e[a]
|
|
19
|
+
}),
|
|
20
|
+
...s
|
|
21
|
+
}
|
|
22
|
+
}), o = ({ gap: a, justify: o, align: s, wrap: c = !0, className: l, style: u } = {}) => ({
|
|
23
|
+
className: i("kapi-clusterx", l),
|
|
24
|
+
style: {
|
|
25
|
+
...r({
|
|
26
|
+
gap: n(a),
|
|
27
|
+
justifyContent: o && t[o],
|
|
28
|
+
alignItems: s && e[s],
|
|
29
|
+
flexWrap: c ? void 0 : "nowrap"
|
|
30
|
+
}),
|
|
31
|
+
...u
|
|
32
|
+
}
|
|
33
|
+
}), s = (e, t) => {
|
|
34
|
+
if (e !== void 0 && Number.isFinite(e) && e >= 1) return `repeat(${Math.floor(e)}, minmax(0, 1fr))`;
|
|
35
|
+
if (t !== void 0) return `repeat(auto-fit, minmax(min(100%, ${typeof t == "number" ? `${t}px` : t}), 1fr))`;
|
|
36
|
+
}, c = ({ gap: e, cols: t, min: a, responsive: o = !1, className: c, style: l } = {}) => {
|
|
37
|
+
let u = t !== void 0 && Number.isFinite(t) && t >= 1 ? Math.floor(t) : void 0;
|
|
38
|
+
return o && u !== void 0 ? {
|
|
39
|
+
className: i("kapi-gridx", "kapi-gridx--cols", c),
|
|
40
|
+
style: {
|
|
41
|
+
...r({ gap: n(e) }),
|
|
42
|
+
"--kapi-grid-cols": u,
|
|
43
|
+
"--kapi-grid-cols-md": Math.min(u, 2),
|
|
44
|
+
...l
|
|
45
|
+
}
|
|
46
|
+
} : {
|
|
47
|
+
className: i("kapi-gridx", c),
|
|
48
|
+
style: {
|
|
49
|
+
...r({
|
|
50
|
+
gap: n(e),
|
|
51
|
+
gridTemplateColumns: s(t, a)
|
|
52
|
+
}),
|
|
53
|
+
...l
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
//#endregion
|
|
58
|
+
export { o as clusterProps, n as gapValue, s as gridColumns, c as gridProps, a as stackProps };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Posición del panel: debajo de la campana, alineado a su borde final (la campana suele ir a la derecha). */
|
|
2
|
+
export declare const NOTIFICATION_BELL_PLACEMENT: {
|
|
3
|
+
readonly side: "bottom";
|
|
4
|
+
readonly align: "end";
|
|
5
|
+
readonly offset: 6;
|
|
6
|
+
readonly margin: 8;
|
|
7
|
+
};
|
|
8
|
+
/** Cantidad de notificaciones sin leer: todo ítem sin `read: true` cuenta como no leído. */
|
|
9
|
+
export declare const unreadCount: (items: ReadonlyArray<{
|
|
10
|
+
read?: boolean;
|
|
11
|
+
}>) => number;
|
|
12
|
+
/** Texto del badge: vacío con 0 (se oculta), el número hasta `max` y `max+` por encima. */
|
|
13
|
+
export declare const badgeText: (count: number, max?: number) => string;
|
|
14
|
+
/** Nombre accesible del disparador: "Notificaciones" o "Notificaciones, 3 sin leer" (conteo real). */
|
|
15
|
+
export declare const bellTriggerLabel: (title: string, count: number, unreadSuffix: string) => string;
|
|
16
|
+
/**
|
|
17
|
+
* Valor del atributo `dateTime` de `<time>` de una notificación (ver `isoDateTime`): ISO para un
|
|
18
|
+
* `Date`, el string tal cual y `null` si la fecha es inválida.
|
|
19
|
+
*/
|
|
20
|
+
export declare const notificationDateTime: (date: Date | string) => string | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { isoDateTime as e } from "../../hooks/dateFormat.js";
|
|
2
|
+
//#region src/components/layout/notificationBellLogic.ts
|
|
3
|
+
var t = {
|
|
4
|
+
side: "bottom",
|
|
5
|
+
align: "end",
|
|
6
|
+
offset: 6,
|
|
7
|
+
margin: 8
|
|
8
|
+
}, n = (e) => e.reduce((e, t) => t.read ? e : e + 1, 0), r = (e, t = 9) => {
|
|
9
|
+
if (!Number.isFinite(e)) return "";
|
|
10
|
+
let n = Math.floor(e);
|
|
11
|
+
return n <= 0 ? "" : n > t ? `${t}+` : String(n);
|
|
12
|
+
}, i = (e, t, n) => t > 0 ? `${e}, ${t} ${n}` : e, a = e;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { t as NOTIFICATION_BELL_PLACEMENT, r as badgeText, i as bellTriggerLabel, a as notificationDateTime, n as unreadCount };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { KapiBadgeVariant } from "../display/KapiBadge";
|
|
3
|
+
import type { KapiNavBadgeValue } from "../navigation/navBadgeLogic";
|
|
4
|
+
export type KapiRailVariant = "labeled" | "compact";
|
|
5
|
+
/** Zona fija de un ítem: `start` arriba (bajo la marca), `end` abajo (sobre el footer). */
|
|
6
|
+
export type KapiRailPinned = "start" | "end";
|
|
7
|
+
/** Zonas del rail: las dos fijas más la del medio, que scrollea. */
|
|
8
|
+
export type KapiRailZone = KapiRailPinned | "scroll";
|
|
9
|
+
/** Ítem del rail. `Id` acota los ids (p. ej. una unión de literales). */
|
|
10
|
+
export type KapiRailItem<Id extends string = string> = {
|
|
11
|
+
id: Id;
|
|
12
|
+
label: string;
|
|
13
|
+
/** Ícono (lucide-react), p. ej. `<Home size={21} strokeWidth={1.8} />`. */
|
|
14
|
+
icon: ReactNode;
|
|
15
|
+
/** Si se pasa, el ítem es un enlace real (`<a>`) en vez de un botón; `onSelect` no se dispara. */
|
|
16
|
+
href?: string;
|
|
17
|
+
/** Marca el destino como otro sistema: agrega el ícono ↗ (sólo con `href`). */
|
|
18
|
+
external?: boolean;
|
|
19
|
+
/** Abrir el enlace en una pestaña nueva (sólo con `href`). */
|
|
20
|
+
newTab?: boolean;
|
|
21
|
+
/** Fija el ítem arriba (`start`) o abajo (`end`): no se mueve con el scroll. Sin valor, va a la zona del medio. */
|
|
22
|
+
pinned?: KapiRailPinned | undefined;
|
|
23
|
+
/** Aviso sobre el ícono: contador (0 no dibuja nada; tope "99+") o `"dot"` sin número. */
|
|
24
|
+
badge?: KapiNavBadgeValue | undefined;
|
|
25
|
+
/** Color del aviso, como `KapiBadge` (`danger` para vencidos…). @default "primary" */
|
|
26
|
+
badgeTone?: KapiBadgeVariant | undefined;
|
|
27
|
+
/** Texto accesible del aviso (p. ej. "3 trámites vencidos"); sin él se lee el número. */
|
|
28
|
+
badgeLabel?: string | undefined;
|
|
29
|
+
};
|
|
30
|
+
/** Divisor entre grupos de ítems: `{ separator: true }` dentro de `items`. */
|
|
31
|
+
export type KapiRailSeparator = {
|
|
32
|
+
separator: true;
|
|
33
|
+
/** Opcional, sólo para estabilizar la `key` si el orden cambia. */
|
|
34
|
+
id?: string;
|
|
35
|
+
/** Zona del divisor, igual que en los ítems. */
|
|
36
|
+
pinned?: KapiRailPinned | undefined;
|
|
37
|
+
};
|
|
38
|
+
export type KapiRailEntry<Id extends string = string> = KapiRailItem<Id> | KapiRailSeparator;
|
|
39
|
+
export declare const isRailSeparator: <Id extends string>(entry: KapiRailEntry<Id>) => entry is KapiRailSeparator;
|
|
40
|
+
/** Reparte las entradas en zona fija de arriba, zona que scrollea y zona fija de abajo (cada una en su orden). */
|
|
41
|
+
export declare const splitRailEntries: <Id extends string>(entries: KapiRailEntry<Id>[]) => Record<KapiRailZone, KapiRailEntry<Id>[]>;
|
|
42
|
+
/** Clases del `<nav>`: `compact` agrega el modificador que angosta el rail. */
|
|
43
|
+
export declare const railClasses: ({ variant }?: {
|
|
44
|
+
variant?: KapiRailVariant;
|
|
45
|
+
}) => string;
|
|
46
|
+
/** Clases de un ítem (botón o enlace). */
|
|
47
|
+
export declare const railItemClasses: ({ active, link }?: {
|
|
48
|
+
active?: boolean;
|
|
49
|
+
link?: boolean;
|
|
50
|
+
}) => string;
|
|
51
|
+
/** a11y: sólo `compact` muestra tooltip; en `labeled` la etiqueta ya es visible (sería redundante). */
|
|
52
|
+
export declare const railShowsTooltip: (variant?: KapiRailVariant) => boolean;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/components/layout/railLogic.ts
|
|
2
|
+
var e = (e) => "separator" in e && e.separator === !0, t = (e) => {
|
|
3
|
+
let t = {
|
|
4
|
+
start: [],
|
|
5
|
+
scroll: [],
|
|
6
|
+
end: []
|
|
7
|
+
};
|
|
8
|
+
for (let n of e) t[n.pinned ?? "scroll"].push(n);
|
|
9
|
+
return t;
|
|
10
|
+
}, n = ({ variant: e = "labeled" } = {}) => ["kapi-rail", e === "compact" && "kapi-rail--compact"].filter(Boolean).join(" "), r = ({ active: e = !1, link: t = !1 } = {}) => [
|
|
11
|
+
"kapi-rail__item",
|
|
12
|
+
e && "kapi-rail__item--on",
|
|
13
|
+
t && "kapi-rail__item--link"
|
|
14
|
+
].filter(Boolean).join(" "), i = (e = "labeled") => e === "compact";
|
|
15
|
+
//#endregion
|
|
16
|
+
export { e as isRailSeparator, n as railClasses, r as railItemClasses, i as railShowsTooltip, t as splitRailEntries };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type KapiLabelsOverride } from "../labelsLogic";
|
|
3
|
+
import type { KapiLabelOverrides, KapiLabelRegistry } from "./labelRegistry";
|
|
4
|
+
export type KapiLocaleProviderProps = {
|
|
5
|
+
/** Locale BCP 47 (`"es-AR"`, `"en"`…) para comparaciones/formatos. Sin valor = el del runtime. */
|
|
6
|
+
locale?: string | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Textos por clave del registro, cada uno parcial: `{ table: { empty: "No data" } }`.
|
|
9
|
+
* Defínelo fuera del render (o memoízalo): un objeto nuevo por render re-renderiza a todos.
|
|
10
|
+
*/
|
|
11
|
+
labels?: KapiLabelOverrides | undefined;
|
|
12
|
+
/** Subárbol que usa estos textos. */
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Un solo lugar para localizar o pisar el copy del DS. Precedencia por clave:
|
|
17
|
+
* defaults del componente < provider < prop `labels` del componente.
|
|
18
|
+
* Se puede anidar: el provider interno reemplaza al externo (no se mezclan).
|
|
19
|
+
*/
|
|
20
|
+
export declare function KapiLocaleProvider({ locale, labels, children }: KapiLocaleProviderProps): import("react").JSX.Element;
|
|
21
|
+
/** Locale del `KapiLocaleProvider` más cercano, o `undefined` (= el del runtime) sin provider. */
|
|
22
|
+
export declare const useKapiLocale: () => string | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Textos resueltos de un componente: `defaults` < provider (por `key`) < `prop`.
|
|
25
|
+
* Una clave en `undefined` (en el provider o en la prop) no borra el valor anterior.
|
|
26
|
+
* Llamalo en el tope del componente (es un hook). El resultado es estable mientras no cambien
|
|
27
|
+
* `defaults`, el override del provider ni `prop`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function useLabels<K extends keyof KapiLabelRegistry, L extends Partial<KapiLabelRegistry[K]>>(key: K, defaults: L, prop?: KapiLabelsOverride<L>): L;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { withLabels as e } from "../labelsLogic.js";
|
|
3
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
4
|
+
import { createContext as n, useContext as r, useMemo as i } from "react";
|
|
5
|
+
//#region src/components/locale/KapiLocaleProvider.tsx
|
|
6
|
+
var a = n(null), o = {};
|
|
7
|
+
function s({ locale: e, labels: n = o, children: r }) {
|
|
8
|
+
let s = i(() => ({
|
|
9
|
+
locale: e,
|
|
10
|
+
labels: n
|
|
11
|
+
}), [e, n]);
|
|
12
|
+
return /* @__PURE__ */ t(a.Provider, {
|
|
13
|
+
value: s,
|
|
14
|
+
children: r
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
var c = () => r(a)?.locale;
|
|
18
|
+
function l(t, n, o) {
|
|
19
|
+
let s = r(a)?.labels[t];
|
|
20
|
+
return i(() => e(s ? e(n, s) : n, o), [
|
|
21
|
+
n,
|
|
22
|
+
s,
|
|
23
|
+
o
|
|
24
|
+
]);
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { s as KapiLocaleProvider, c as useKapiLocale, l as useLabels };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { KapiLocaleProvider, useKapiLocale, useLabels } from "./KapiLocaleProvider";
|
|
2
|
+
export type { KapiLocaleProviderProps } from "./KapiLocaleProvider";
|
|
3
|
+
export type { KapiLabelOverrides, KapiLabelRegistry } from "./labelRegistry";
|
|
4
|
+
export { DEFAULT_LINK_LABELS } from "./linkLabels";
|
|
5
|
+
export type { KapiLinkLabels } from "./linkLabels";
|