@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,110 @@
|
|
|
1
|
+
import type { KapiLabelsOverride } from "../labelsLogic";
|
|
2
|
+
import type { KapiTableLabels } from "../data/KapiTable";
|
|
3
|
+
import type { KapiTableFilterLabels } from "../data/KapiTableFilter";
|
|
4
|
+
import type { KapiPaginationLabels } from "../data/KapiPagination";
|
|
5
|
+
import type { KapiBulkBarLabels } from "../feedback/KapiBulkBar";
|
|
6
|
+
import type { KapiUnsavedBarLabels } from "../feedback/KapiUnsavedBar";
|
|
7
|
+
import type { KapiOfflineBannerLabels } from "../feedback/KapiOfflineBanner";
|
|
8
|
+
import type { KapiTourLabels } from "../feedback/KapiTour";
|
|
9
|
+
import type { KapiCountdownLabels } from "../feedback/countdownLogic";
|
|
10
|
+
import type { KapiDateRangePickerLabels } from "../inputs/KapiDateRangePicker";
|
|
11
|
+
import type { KapiFacetedSearchLabels } from "../inputs/KapiFacetedSearch";
|
|
12
|
+
import type { KapiSelectLabels } from "../inputs/KapiSelect";
|
|
13
|
+
import type { KapiNumberStepperLabels } from "../inputs/KapiNumberStepper";
|
|
14
|
+
import type { KapiFileUploadLabels } from "../inputs/KapiFileUpload";
|
|
15
|
+
import type { KapiInputLabels } from "../inputs/KapiInput";
|
|
16
|
+
import type { KapiTagInputLabels } from "../inputs/KapiTagInput";
|
|
17
|
+
import type { KapiContextSlotLabels } from "../layout/KapiContextSlot";
|
|
18
|
+
import type { KapiAccountMenuLabels } from "../layout/KapiAccountMenu";
|
|
19
|
+
import type { KapiNotificationBellLabels } from "../layout/KapiNotificationBell";
|
|
20
|
+
import type { KapiOffcanvasLabels } from "../overlays/KapiOffcanvas";
|
|
21
|
+
import type { KapiPhotoViewLabels } from "../overlays/KapiPhotoView";
|
|
22
|
+
import type { KapiShapeSheetLabels } from "../overlays/KapiShapeSheet";
|
|
23
|
+
import type { KapiSplitModalLabels } from "../overlays/KapiSplitModal";
|
|
24
|
+
import type { KapiContextPanelLabels } from "../navigation/KapiContextPanel";
|
|
25
|
+
import type { KapiWizardLabels } from "../navigation/KapiWizard";
|
|
26
|
+
import type { KapiStepsLabels } from "../navigation/KapiSteps";
|
|
27
|
+
import type { KapiBreadcrumbLabels } from "../navigation/KapiBreadcrumb";
|
|
28
|
+
import type { KapiRailLabels } from "../layout/KapiRail";
|
|
29
|
+
import type { KapiScrollAreaLabels } from "../layout/KapiScrollArea";
|
|
30
|
+
import type { KapiFabLabels } from "../feedback/KapiFab";
|
|
31
|
+
import type { KapiRatingLabels } from "../inputs/KapiRating";
|
|
32
|
+
import type { KapiCuitInputLabels } from "../inputs/KapiMaskedInput";
|
|
33
|
+
import type { KapiLinkLabels } from "./linkLabels";
|
|
34
|
+
import type { KapiTagLabels } from "../display/KapiTag";
|
|
35
|
+
import type { KapiFileViewerLabels } from "../display/KapiFileViewer";
|
|
36
|
+
import type { KapiCommentComposerLabels } from "../display/KapiCommentComposer";
|
|
37
|
+
import type { KapiToastLabels } from "../feedback/KapiToastContainer";
|
|
38
|
+
import type { KapiAutocompleteLabels } from "../inputs/KapiAutocomplete";
|
|
39
|
+
import type { KapiCollapsiblePanelLabels } from "../navigation/KapiCollapsiblePanel";
|
|
40
|
+
import type { KapiFilterChipsLabels } from "../navigation/KapiFilterChips";
|
|
41
|
+
import type { KapiTreeLabels } from "../navigation/KapiTree";
|
|
42
|
+
import type { KapiCanvasFormLabels } from "../overlays/KapiCanvasForm";
|
|
43
|
+
import type { KapiCommandPaletteLabels } from "../overlays/KapiCommandPalette";
|
|
44
|
+
import type { KapiConfirmLabels } from "../overlays/KapiConfirm";
|
|
45
|
+
import type { KapiContextMenuLabels } from "../overlays/KapiContextMenu";
|
|
46
|
+
import type { KapiDialogLabels } from "../overlays/KapiDialogHost";
|
|
47
|
+
import type { KapiModalLabels } from "../overlays/KapiModal";
|
|
48
|
+
import type { UnsavedGuardLabels } from "../../hooks/useUnsavedGuard";
|
|
49
|
+
/**
|
|
50
|
+
* Clave → tipo de los textos de cada componente. Es una `interface` a propósito: una app puede
|
|
51
|
+
* sumar sus propias claves por module augmentation (`declare module "@kapiuara/ui" { interface
|
|
52
|
+
* KapiLabelRegistry { … } }`) y usar `useLabels` en sus componentes.
|
|
53
|
+
* `calendar` lo comparten `KapiDatePicker` y `KapiDateRangePicker` (este suma `pickStart`/`pickEnd`).
|
|
54
|
+
* `link` lo comparten los enlaces con `newTab` (`KapiPanelGroup`, `KapiContextPanel`, `KapiRail`,
|
|
55
|
+
* `KapiAccessCard`).
|
|
56
|
+
* `canvasForm` y `unsavedGuard` solo se configuran desde el provider (sin prop `labels` propia).
|
|
57
|
+
*/
|
|
58
|
+
export interface KapiLabelRegistry {
|
|
59
|
+
accountMenu: KapiAccountMenuLabels;
|
|
60
|
+
autocomplete: KapiAutocompleteLabels;
|
|
61
|
+
breadcrumb: KapiBreadcrumbLabels;
|
|
62
|
+
bulkBar: KapiBulkBarLabels;
|
|
63
|
+
calendar: KapiDateRangePickerLabels;
|
|
64
|
+
canvasForm: KapiCanvasFormLabels;
|
|
65
|
+
collapsiblePanel: KapiCollapsiblePanelLabels;
|
|
66
|
+
commandPalette: KapiCommandPaletteLabels;
|
|
67
|
+
commentComposer: KapiCommentComposerLabels;
|
|
68
|
+
confirm: KapiConfirmLabels;
|
|
69
|
+
contextMenu: KapiContextMenuLabels;
|
|
70
|
+
contextPanel: KapiContextPanelLabels;
|
|
71
|
+
contextSlot: KapiContextSlotLabels;
|
|
72
|
+
countdown: KapiCountdownLabels;
|
|
73
|
+
cuitInput: KapiCuitInputLabels;
|
|
74
|
+
dialog: KapiDialogLabels;
|
|
75
|
+
fab: KapiFabLabels;
|
|
76
|
+
facetedSearch: KapiFacetedSearchLabels;
|
|
77
|
+
fileUpload: KapiFileUploadLabels;
|
|
78
|
+
fileViewer: KapiFileViewerLabels;
|
|
79
|
+
filterChips: KapiFilterChipsLabels;
|
|
80
|
+
input: KapiInputLabels;
|
|
81
|
+
link: KapiLinkLabels;
|
|
82
|
+
modal: KapiModalLabels;
|
|
83
|
+
notificationBell: KapiNotificationBellLabels;
|
|
84
|
+
numberStepper: KapiNumberStepperLabels;
|
|
85
|
+
offcanvas: KapiOffcanvasLabels;
|
|
86
|
+
offlineBanner: KapiOfflineBannerLabels;
|
|
87
|
+
pagination: KapiPaginationLabels;
|
|
88
|
+
photoView: KapiPhotoViewLabels;
|
|
89
|
+
rail: KapiRailLabels;
|
|
90
|
+
rating: KapiRatingLabels;
|
|
91
|
+
scrollArea: KapiScrollAreaLabels;
|
|
92
|
+
select: KapiSelectLabels;
|
|
93
|
+
shapeSheet: KapiShapeSheetLabels;
|
|
94
|
+
splitModal: KapiSplitModalLabels;
|
|
95
|
+
steps: KapiStepsLabels;
|
|
96
|
+
table: KapiTableLabels;
|
|
97
|
+
tableFilter: KapiTableFilterLabels;
|
|
98
|
+
tag: KapiTagLabels;
|
|
99
|
+
tagInput: KapiTagInputLabels;
|
|
100
|
+
toast: KapiToastLabels;
|
|
101
|
+
tour: KapiTourLabels;
|
|
102
|
+
tree: KapiTreeLabels;
|
|
103
|
+
unsavedBar: KapiUnsavedBarLabels;
|
|
104
|
+
unsavedGuard: UnsavedGuardLabels;
|
|
105
|
+
wizard: KapiWizardLabels;
|
|
106
|
+
}
|
|
107
|
+
/** Overrides por clave que recibe el provider: cada uno parcial (una clave en `undefined` no pisa). */
|
|
108
|
+
export type KapiLabelOverrides = {
|
|
109
|
+
[K in keyof KapiLabelRegistry]?: KapiLabelsOverride<KapiLabelRegistry[K]>;
|
|
110
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
export type CtxSlidingListProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
3
|
+
/** Clave del ítem activo; `null` oculta el indicador. */
|
|
4
|
+
active?: string | number | null;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Lista del panel contextual con indicador deslizante (misma mecánica que KapiRail).
|
|
9
|
+
* Interno: el ítem activo se detecta por `aria-current="page"`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const CtxSlidingList: ({ active, children, className, ...rest }: CtxSlidingListProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { joinClasses as e } from "../rootProps.js";
|
|
3
|
+
import { useSlidingIndicator as t } from "../../hooks/useSlidingIndicator.js";
|
|
4
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/navigation/CtxSlidingList.tsx
|
|
6
|
+
var i = ({ active: i = null, children: a, className: o, ...s }) => {
|
|
7
|
+
let { containerRef: c, indicatorRef: l } = t({
|
|
8
|
+
active: i,
|
|
9
|
+
deps: [i, a],
|
|
10
|
+
findActive: (e) => e.querySelector("[aria-current=\"page\"]")
|
|
11
|
+
});
|
|
12
|
+
return /* @__PURE__ */ r("div", {
|
|
13
|
+
...s,
|
|
14
|
+
ref: c,
|
|
15
|
+
className: e("kapi-ctxlist", o),
|
|
16
|
+
children: [/* @__PURE__ */ n("span", {
|
|
17
|
+
ref: l,
|
|
18
|
+
className: "kapi-ctxlist__indicator",
|
|
19
|
+
"aria-hidden": "true"
|
|
20
|
+
}), a]
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
export { i as CtxSlidingList };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
import "./navigation.css";
|
|
3
|
+
/** Sección de `KapiAccordion`. `Id` acota los ids (p. ej. una unión de literales). */
|
|
4
|
+
export type KapiAccordionItem<Id extends string = string> = {
|
|
5
|
+
id: Id;
|
|
6
|
+
title: ReactNode;
|
|
7
|
+
content: ReactNode;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
};
|
|
10
|
+
/** Atributos nativos (`id`, `style`, `data-*`…) van al contenedor. `Id` se infiere de `items`. */
|
|
11
|
+
export type KapiAccordionProps<Id extends string = string> = Omit<HTMLAttributes<HTMLDivElement>, "children" | "onChange"> & {
|
|
12
|
+
/** Secciones, en orden; cada una con `id`, título, contenido y `disabled` opcional. */
|
|
13
|
+
items: KapiAccordionItem<Id>[];
|
|
14
|
+
/** `true` (default): un solo ítem abierto a la vez. `false`: abren varios. */
|
|
15
|
+
single?: boolean;
|
|
16
|
+
/** Controlado: ids abiertos. Con `onOpenIdsChange` el padre decide el estado. */
|
|
17
|
+
openIds?: Id[];
|
|
18
|
+
/** Inicial cuando no es controlado. */
|
|
19
|
+
defaultOpenIds?: Id[];
|
|
20
|
+
/** Se llama con los ids abiertos después de cada apertura o cierre (controlado o no). */
|
|
21
|
+
onOpenIdsChange?: (openIds: Id[]) => void;
|
|
22
|
+
};
|
|
23
|
+
/** Acordeón: cada ítem es un botón (`aria-expanded`) que controla su región; flechas y Home/End recorren las cabeceras. */
|
|
24
|
+
export declare function KapiAccordion<Id extends string = string>({ items, single, openIds, defaultOpenIds, onOpenIdsChange, className, ...rest }: KapiAccordionProps<Id>): import("react").JSX.Element;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { joinClasses as e } from "../rootProps.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
import { normalizeOpenIds as t, toggleOpenId as n } from "./accordionLogic.js";
|
|
5
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
6
|
+
import { useId as a, useState as o } from "react";
|
|
7
|
+
import { ChevronDown as s } from "lucide-react";
|
|
8
|
+
//#region src/components/navigation/KapiAccordion.tsx
|
|
9
|
+
var c = ":scope > .kapi-accordion__item > .kapi-accordion__heading > .kapi-accordion__trigger:not(:disabled)", l = (e) => {
|
|
10
|
+
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) return;
|
|
11
|
+
let t = e.currentTarget.closest(".kapi-accordion");
|
|
12
|
+
if (!t) return;
|
|
13
|
+
let n = Array.from(t.querySelectorAll(c)), r = n.indexOf(e.currentTarget), i = n.length - 1, a = e.key === "ArrowDown" ? (r + 1) % n.length : e.key === "ArrowUp" ? (r - 1 + n.length) % n.length : e.key === "Home" ? 0 : e.key === "End" ? i : null;
|
|
14
|
+
a === null || r < 0 || (e.preventDefault(), n[a]?.focus());
|
|
15
|
+
};
|
|
16
|
+
function u({ items: c, single: u = !0, openIds: d, defaultOpenIds: f = [], onOpenIdsChange: p, className: m, ...h }) {
|
|
17
|
+
let g = a(), [_, v] = o(() => t(f, u)), y = t(d ?? _, u), b = (e) => {
|
|
18
|
+
let t = n(y, e, u);
|
|
19
|
+
d === void 0 && v(t), p?.(t);
|
|
20
|
+
};
|
|
21
|
+
return /* @__PURE__ */ r("div", {
|
|
22
|
+
...h,
|
|
23
|
+
className: e("kapi-accordion", m),
|
|
24
|
+
children: c.map((e) => {
|
|
25
|
+
let t = y.includes(e.id), n = `${g}-b-${e.id}`, a = `${g}-p-${e.id}`;
|
|
26
|
+
return /* @__PURE__ */ i("div", {
|
|
27
|
+
className: t ? "kapi-accordion__item kapi-accordion__item--open" : "kapi-accordion__item",
|
|
28
|
+
children: [/* @__PURE__ */ r("h3", {
|
|
29
|
+
className: "kapi-accordion__heading",
|
|
30
|
+
children: /* @__PURE__ */ i("button", {
|
|
31
|
+
type: "button",
|
|
32
|
+
id: n,
|
|
33
|
+
className: "kapi-accordion__trigger",
|
|
34
|
+
"aria-expanded": t,
|
|
35
|
+
"aria-controls": a,
|
|
36
|
+
disabled: e.disabled,
|
|
37
|
+
onClick: () => b(e.id),
|
|
38
|
+
onKeyDown: l,
|
|
39
|
+
children: [/* @__PURE__ */ r("span", {
|
|
40
|
+
className: "kapi-accordion__title",
|
|
41
|
+
children: e.title
|
|
42
|
+
}), /* @__PURE__ */ r(s, {
|
|
43
|
+
className: "kapi-accordion__chevron",
|
|
44
|
+
size: 18,
|
|
45
|
+
strokeWidth: 2,
|
|
46
|
+
"aria-hidden": !0
|
|
47
|
+
})]
|
|
48
|
+
})
|
|
49
|
+
}), /* @__PURE__ */ r("div", {
|
|
50
|
+
id: a,
|
|
51
|
+
role: "region",
|
|
52
|
+
"aria-labelledby": n,
|
|
53
|
+
className: "kapi-accordion__region",
|
|
54
|
+
inert: !t,
|
|
55
|
+
children: /* @__PURE__ */ r("div", {
|
|
56
|
+
className: "kapi-accordion__clip",
|
|
57
|
+
children: /* @__PURE__ */ r("div", {
|
|
58
|
+
className: "kapi-accordion__content",
|
|
59
|
+
children: e.content
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
})]
|
|
63
|
+
}, e.id);
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
68
|
+
export { u as KapiAccordion };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import "./navigation.css";
|
|
2
|
+
import { type HTMLAttributes, type ReactNode, type Ref } from "react";
|
|
3
|
+
import type { KapiLabelsOverride } from "../labelsLogic";
|
|
4
|
+
export type KapiBreadcrumbItem = {
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
onClick?: () => void;
|
|
7
|
+
};
|
|
8
|
+
export type KapiBreadcrumbLabels = {
|
|
9
|
+
/** Nombre accesible del `<nav>` (sin `aria-label`). */
|
|
10
|
+
navigation: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const DEFAULT_BREADCRUMB_LABELS: KapiBreadcrumbLabels;
|
|
13
|
+
/** Atributos nativos (`id`, `style`, `data-*`, `aria-*`…) van al `<nav>`. */
|
|
14
|
+
export type KapiBreadcrumbProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
15
|
+
/** Niveles de la ruta, del más general al actual (el último es la página actual). */
|
|
16
|
+
items: KapiBreadcrumbItem[];
|
|
17
|
+
/** Textos fijos (clave `breadcrumb`). `aria-label` gana sobre `navigation`. */
|
|
18
|
+
labels?: KapiLabelsOverride<KapiBreadcrumbLabels> | undefined;
|
|
19
|
+
/** Ref al `<nav>`. */
|
|
20
|
+
ref?: Ref<HTMLElement>;
|
|
21
|
+
};
|
|
22
|
+
/** Migas de pan: `Inicio · Personas · Ana Pérez`. El último ítem es la ubicación actual. */
|
|
23
|
+
export declare function KapiBreadcrumb({ items, "aria-label": ariaLabelAttr, labels, className, ref, ...rest }: KapiBreadcrumbProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useLabels as e } from "../locale/KapiLocaleProvider.js";
|
|
3
|
+
import { joinClasses as t } from "../rootProps.js";
|
|
4
|
+
/* empty css */
|
|
5
|
+
import { breadcrumbKinds as n } from "./breadcrumbLogic.js";
|
|
6
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
7
|
+
import { Fragment as a } from "react";
|
|
8
|
+
//#region src/components/navigation/KapiBreadcrumb.tsx
|
|
9
|
+
var o = { navigation: "Ubicación" };
|
|
10
|
+
function s({ items: s, "aria-label": c, labels: l, className: u, ref: d, ...f }) {
|
|
11
|
+
let p = e("breadcrumb", o, l), m = n(s);
|
|
12
|
+
return /* @__PURE__ */ r("nav", {
|
|
13
|
+
...f,
|
|
14
|
+
ref: d,
|
|
15
|
+
className: t("kapi-breadcrumb", u),
|
|
16
|
+
"aria-label": c ?? p.navigation,
|
|
17
|
+
children: s.map((e, t) => /* @__PURE__ */ i(a, { children: [t > 0 && /* @__PURE__ */ r("span", {
|
|
18
|
+
"aria-hidden": !0,
|
|
19
|
+
children: " · "
|
|
20
|
+
}), m[t] === "link" ? /* @__PURE__ */ r("button", {
|
|
21
|
+
type: "button",
|
|
22
|
+
className: "kapi-link",
|
|
23
|
+
onClick: e.onClick,
|
|
24
|
+
children: e.label
|
|
25
|
+
}) : m[t] === "current" ? /* @__PURE__ */ r("b", {
|
|
26
|
+
"aria-current": "page",
|
|
27
|
+
children: e.label
|
|
28
|
+
}) : /* @__PURE__ */ r("span", { children: e.label })] }, t))
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { o as DEFAULT_BREADCRUMB_LABELS, s as KapiBreadcrumb };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
import { type KapiTooltipSide } from "../overlays/KapiTooltip";
|
|
3
|
+
import "./navigation.css";
|
|
4
|
+
import type { KapiLabelsOverride } from "../labelsLogic";
|
|
5
|
+
export type KapiCollapsiblePanelLabels = {
|
|
6
|
+
/** Botón de plegar (sin `collapseLabel`). */
|
|
7
|
+
collapse: string;
|
|
8
|
+
/** Botón de desplegar (sin `expandLabel`). */
|
|
9
|
+
expand: string;
|
|
10
|
+
/** Nombre del `<aside>` (sin `aria-label`). */
|
|
11
|
+
region: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const DEFAULT_COLLAPSIBLE_PANEL_LABELS: KapiCollapsiblePanelLabels;
|
|
14
|
+
export type KapiCollapsiblePanelSide = "left" | "right";
|
|
15
|
+
/**
|
|
16
|
+
* Atributos nativos (`id`, `style`, `data-*`…) van al `<aside>`; `style` convive con el ancho propio. El
|
|
17
|
+
* `onToggle` nativo se omite a propósito: así un `onToggle` viejo (hoy `onCollapsedChange`) no compila.
|
|
18
|
+
*/
|
|
19
|
+
export type KapiCollapsiblePanelProps = Omit<HTMLAttributes<HTMLElement>, "children" | "onToggle"> & {
|
|
20
|
+
/** Contenido del panel expandido (cuerpo scrolleable). */
|
|
21
|
+
children?: ReactNode;
|
|
22
|
+
/** Contenido de la tira cuando está plegado (usa `KapiCollapsiblePanelStripItem`). */
|
|
23
|
+
strip?: ReactNode;
|
|
24
|
+
/** Cabecera del panel expandido, a la izquierda del botón de plegar. */
|
|
25
|
+
header?: ReactNode;
|
|
26
|
+
/** Estado controlado. Si se omite, el panel maneja el suyo. */
|
|
27
|
+
collapsed?: boolean;
|
|
28
|
+
/** Estado inicial plegado (no controlado). */
|
|
29
|
+
defaultCollapsed?: boolean;
|
|
30
|
+
/** Se llama al plegar (`true`) o desplegar (`false`) con el estado pedido. */
|
|
31
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
32
|
+
/** Borde del layout donde vive: define el sentido de las flechas y el lado del tooltip. */
|
|
33
|
+
side?: KapiCollapsiblePanelSide;
|
|
34
|
+
/** Ancho expandido (CSS), por defecto 320px. */
|
|
35
|
+
expandedWidth?: number | string;
|
|
36
|
+
/** Ancho de la tira (CSS), por defecto 58px. */
|
|
37
|
+
collapsedWidth?: number | string;
|
|
38
|
+
/** Gana sobre `labels.collapse`. */
|
|
39
|
+
collapseLabel?: string;
|
|
40
|
+
/** Gana sobre `labels.expand`. */
|
|
41
|
+
expandLabel?: string;
|
|
42
|
+
/** Textos fijos (clave `collapsiblePanel`); `aria-label` gana sobre `region`. */
|
|
43
|
+
labels?: KapiLabelsOverride<KapiCollapsiblePanelLabels> | undefined;
|
|
44
|
+
};
|
|
45
|
+
/** Lado del tooltip: siempre hacia el interior del layout. */
|
|
46
|
+
export declare const tooltipSideFor: (side: KapiCollapsiblePanelSide) => KapiTooltipSide;
|
|
47
|
+
/** Panel lateral plegable con tira (expandido ~320 / tira ~58). Genérico: el contenido es tuyo. */
|
|
48
|
+
export declare const KapiCollapsiblePanel: ({ children, strip, header, collapsed, defaultCollapsed, onCollapsedChange, side, expandedWidth, collapsedWidth, collapseLabel: collapseLabelProp, expandLabel: expandLabelProp, "aria-label": ariaLabelProp, labels, className, style: styleProp, ...rest }: KapiCollapsiblePanelProps) => import("react").JSX.Element;
|
|
49
|
+
/** Atributos nativos (`id`, `style`, `data-*`…) van al `<button>` (no al envoltorio del tooltip). */
|
|
50
|
+
export type KapiCollapsiblePanelStripItemProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "onClick" | "type"> & {
|
|
51
|
+
/** Ícono (lucide-react). */
|
|
52
|
+
icon: ReactNode;
|
|
53
|
+
/** Texto del tooltip y `aria-label`. */
|
|
54
|
+
label: string;
|
|
55
|
+
/** Marca el ícono como activo (resaltado y `aria-pressed`). */
|
|
56
|
+
active?: boolean;
|
|
57
|
+
/** Click en el ícono. */
|
|
58
|
+
onClick?: () => void;
|
|
59
|
+
/** Borde donde vive el panel (el mismo `side` del `KapiCollapsiblePanel`): el tooltip abre hacia el interior. */
|
|
60
|
+
side?: KapiCollapsiblePanelSide;
|
|
61
|
+
};
|
|
62
|
+
/** Ícono de la tira con tooltip. */
|
|
63
|
+
export declare const KapiCollapsiblePanelStripItem: ({ icon, label, active, onClick, side, className, ...rest }: KapiCollapsiblePanelStripItemProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useLabels as e } from "../locale/KapiLocaleProvider.js";
|
|
3
|
+
import { joinClasses as t } from "../rootProps.js";
|
|
4
|
+
import { KapiTooltip as n } from "../overlays/KapiTooltip.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
7
|
+
import { useLayoutEffect as o, useRef as s, useState as c } from "react";
|
|
8
|
+
import { ChevronsLeft as l, ChevronsRight as u } from "lucide-react";
|
|
9
|
+
//#region src/components/navigation/KapiCollapsiblePanel.tsx
|
|
10
|
+
var d = {
|
|
11
|
+
collapse: "Plegar panel",
|
|
12
|
+
expand: "Desplegar panel",
|
|
13
|
+
region: "Panel lateral"
|
|
14
|
+
}, f = (e) => typeof e == "number" ? `${e}px` : e, p = (e) => e === "right" ? "left" : "right", m = ({ children: m, strip: h, header: g, collapsed: _, defaultCollapsed: v = !1, onCollapsedChange: y, side: b = "right", expandedWidth: x = 320, collapsedWidth: S = 58, collapseLabel: C, expandLabel: w, "aria-label": T, labels: E, className: D, style: O, ...k }) => {
|
|
15
|
+
let A = e("collapsiblePanel", d, E), j = C ?? A.collapse, M = w ?? A.expand, N = T ?? A.region, [P, F] = c(v), I = _ ?? P, L = s(null), [R, z] = c(null);
|
|
16
|
+
o(() => {
|
|
17
|
+
R && (I === R.next && L.current?.focus(), z(null));
|
|
18
|
+
}, [R, I]);
|
|
19
|
+
let B = () => {
|
|
20
|
+
let e = !I;
|
|
21
|
+
z({ next: e }), _ === void 0 && F(e), y?.(e);
|
|
22
|
+
}, V = b === "right" ? u : l, H = b === "right" ? l : u, U = {
|
|
23
|
+
...O,
|
|
24
|
+
"--cpanel-w": f(I ? S : x)
|
|
25
|
+
};
|
|
26
|
+
return /* @__PURE__ */ i("aside", {
|
|
27
|
+
...k,
|
|
28
|
+
className: t(`kapi-cpanel kapi-cpanel--${b}`, I && "is-collapsed", D),
|
|
29
|
+
style: U,
|
|
30
|
+
"aria-label": N,
|
|
31
|
+
children: I ? /* @__PURE__ */ a("div", {
|
|
32
|
+
className: "kapi-cpanel__strip",
|
|
33
|
+
children: [/* @__PURE__ */ i(n, {
|
|
34
|
+
label: M,
|
|
35
|
+
prefer: p(b),
|
|
36
|
+
children: /* @__PURE__ */ i("button", {
|
|
37
|
+
ref: L,
|
|
38
|
+
type: "button",
|
|
39
|
+
className: "kapi-cpanel__fold",
|
|
40
|
+
onClick: B,
|
|
41
|
+
"aria-label": M,
|
|
42
|
+
children: /* @__PURE__ */ i(H, {
|
|
43
|
+
size: 15,
|
|
44
|
+
strokeWidth: 2
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
}), h]
|
|
48
|
+
}) : /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ a("div", {
|
|
49
|
+
className: "kapi-cpanel__head",
|
|
50
|
+
children: [/* @__PURE__ */ i("div", {
|
|
51
|
+
className: "kapi-cpanel__header",
|
|
52
|
+
children: g
|
|
53
|
+
}), /* @__PURE__ */ i("button", {
|
|
54
|
+
ref: L,
|
|
55
|
+
type: "button",
|
|
56
|
+
className: "kapi-cpanel__fold",
|
|
57
|
+
onClick: B,
|
|
58
|
+
"aria-label": j,
|
|
59
|
+
children: /* @__PURE__ */ i(V, {
|
|
60
|
+
size: 15,
|
|
61
|
+
strokeWidth: 2
|
|
62
|
+
})
|
|
63
|
+
})]
|
|
64
|
+
}), /* @__PURE__ */ i("div", {
|
|
65
|
+
className: "kapi-cpanel__body",
|
|
66
|
+
children: m
|
|
67
|
+
})] })
|
|
68
|
+
});
|
|
69
|
+
}, h = ({ icon: e, label: r, active: a = !1, onClick: o, side: s = "right", className: c, ...l }) => /* @__PURE__ */ i(n, {
|
|
70
|
+
label: r,
|
|
71
|
+
prefer: p(s),
|
|
72
|
+
children: /* @__PURE__ */ i("button", {
|
|
73
|
+
...l,
|
|
74
|
+
type: "button",
|
|
75
|
+
className: t("kapi-cpanel__stripbtn", a && "is-on", c),
|
|
76
|
+
"aria-label": r,
|
|
77
|
+
"aria-pressed": a,
|
|
78
|
+
onClick: o,
|
|
79
|
+
children: e
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
//#endregion
|
|
83
|
+
export { d as DEFAULT_COLLAPSIBLE_PANEL_LABELS, m as KapiCollapsiblePanel, h as KapiCollapsiblePanelStripItem, p as tooltipSideFor };
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import "./navigation.css";
|
|
3
|
+
import { type KapiLinkLabels } from "../locale/linkLabels";
|
|
4
|
+
import type { KapiPanelCollapsedMode } from "./panelMiniLogic";
|
|
5
|
+
import { type KapiNavBadgeValue } from "./navBadgeLogic";
|
|
6
|
+
import type { KapiBadgeVariant } from "../display/KapiBadge";
|
|
7
|
+
import { type KapiRootProps } from "../rootProps";
|
|
8
|
+
import type { KapiLabelsOverride } from "../labelsLogic";
|
|
9
|
+
/** Ítem de una sección del panel. `Id` acota los ids (p. ej. una unión de literales). */
|
|
10
|
+
export type KapiContextPanelItem<Id extends string = string> = {
|
|
11
|
+
id: Id;
|
|
12
|
+
label: ReactNode;
|
|
13
|
+
/** Segunda línea (si hay `detail` o `initials`, el ítem se dibuja como "reciente"). */
|
|
14
|
+
detail?: ReactNode;
|
|
15
|
+
/** Iniciales de un avatar a la izquierda. */
|
|
16
|
+
initials?: string;
|
|
17
|
+
/** Ícono (lucide-react) a la izquierda de la etiqueta. */
|
|
18
|
+
icon?: ReactNode;
|
|
19
|
+
/** Contenido a la derecha (badge, contador…). */
|
|
20
|
+
trailing?: ReactNode;
|
|
21
|
+
/** Aviso de atención al final: contador (0 no dibuja nada; tope "999+") o `"dot"` sin número. */
|
|
22
|
+
badge?: KapiNavBadgeValue | undefined;
|
|
23
|
+
/** Color del aviso, como `KapiBadge` (`danger` para vencidos…). @default "primary" */
|
|
24
|
+
badgeTone?: KapiBadgeVariant | undefined;
|
|
25
|
+
/** Texto accesible del aviso (p. ej. "3 trámites vencidos"); sin él se lee el número. */
|
|
26
|
+
badgeLabel?: string | undefined;
|
|
27
|
+
/** No se puede elegir (botón deshabilitado o enlace `aria-disabled`). */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Si se pasa (y el ítem no es "reciente"), se dibuja un enlace real `<a>` en vez de un botón. */
|
|
30
|
+
href?: string;
|
|
31
|
+
/** Destino en otro sistema: agrega el ícono ↗ a la derecha (sólo con `href`). */
|
|
32
|
+
external?: boolean;
|
|
33
|
+
/** Abrir el enlace en una pestaña nueva (sólo con `href`). */
|
|
34
|
+
newTab?: boolean;
|
|
35
|
+
};
|
|
36
|
+
export type KapiContextPanelSection<Id extends string = string> = {
|
|
37
|
+
id: string;
|
|
38
|
+
/** Etiqueta de sección (mayúsculas chicas). */
|
|
39
|
+
label?: ReactNode;
|
|
40
|
+
/** Ítems de la sección, en orden. */
|
|
41
|
+
items: KapiContextPanelItem<Id>[];
|
|
42
|
+
};
|
|
43
|
+
export type KapiContextPanelSearch = {
|
|
44
|
+
placeholder?: string;
|
|
45
|
+
value?: string;
|
|
46
|
+
onChange?: (value: string) => void;
|
|
47
|
+
"aria-label"?: string;
|
|
48
|
+
};
|
|
49
|
+
/** `Id` (el de los ítems) se infiere de `sections`. */
|
|
50
|
+
export type KapiContextSectionsProps<Id extends string = string> = {
|
|
51
|
+
/** Secciones con sus ítems, en orden; cada una con etiqueta opcional. */
|
|
52
|
+
sections: KapiContextPanelSection<Id>[];
|
|
53
|
+
/**
|
|
54
|
+
* Id del ítem activo (`aria-current="page"`); lo decide la app, normalmente desde el router. Es uno solo
|
|
55
|
+
* para todo el panel: marca la página actual, no una selección por sección.
|
|
56
|
+
*/
|
|
57
|
+
activeId?: Id;
|
|
58
|
+
/** Se llama con el `id` del ítem clickeado (no aplica a los enlaces con `href`). */
|
|
59
|
+
onSelect?: (id: Id) => void;
|
|
60
|
+
/** Buscador opcional sobre las secciones. */
|
|
61
|
+
search?: KapiContextPanelSearch;
|
|
62
|
+
/** Texto de ayuda al pie. */
|
|
63
|
+
hint?: ReactNode;
|
|
64
|
+
/** Textos fijos (aviso de pestaña nueva; clave compartida `link`). */
|
|
65
|
+
labels?: KapiLabelsOverride<KapiLinkLabels> | undefined;
|
|
66
|
+
};
|
|
67
|
+
/** `className`/`style`/`id` van al `<aside>` (plegado o no); el ancho redimensionado gana sobre `style`. */
|
|
68
|
+
export type KapiContextPanelProps<Id extends string = string> = KapiContextSectionsProps<Id> & KapiRootProps & {
|
|
69
|
+
/** Título de la cabecera del panel. */
|
|
70
|
+
title: ReactNode;
|
|
71
|
+
/** Acciones extra en la cabecera, a la izquierda del botón de plegar. */
|
|
72
|
+
actions?: ReactNode;
|
|
73
|
+
/** Estado controlado. Si se omite, el panel maneja el suyo. */
|
|
74
|
+
collapsed?: boolean;
|
|
75
|
+
/** Estado inicial plegado (no controlado). Por defecto `false`. */
|
|
76
|
+
defaultCollapsed?: boolean;
|
|
77
|
+
/** Se llama al plegar (`true`) o desplegar (`false`) con el estado pedido. */
|
|
78
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
79
|
+
/** `aria-label` del botón de plegar; gana sobre `labels.collapse`. */
|
|
80
|
+
collapseLabel?: string;
|
|
81
|
+
/** `aria-label` del botón de reabrir cuando está plegado. */
|
|
82
|
+
expandLabel?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Textos fijos (redimensionar, plegar/desplegar, nombre del panel; `newTab` sale de la clave
|
|
85
|
+
* compartida `link`). `collapseLabel`, `expandLabel` y `aria-label` ganan sobre ellos.
|
|
86
|
+
*/
|
|
87
|
+
labels?: KapiLabelsOverride<KapiContextPanelLabels & KapiLinkLabels> | undefined;
|
|
88
|
+
/** Lado del contenido donde se ubica el panel. Por defecto "left". */
|
|
89
|
+
side?: "left" | "right";
|
|
90
|
+
/** Permite cambiar el ancho arrastrando el borde interno (sólo desplegado). Por defecto `false`. */
|
|
91
|
+
resizable?: boolean;
|
|
92
|
+
/** Ancho mínimo en px al redimensionar. Por defecto 200. */
|
|
93
|
+
minWidth?: number;
|
|
94
|
+
/** Ancho máximo en px al redimensionar. Por defecto 420. */
|
|
95
|
+
maxWidth?: number;
|
|
96
|
+
/**
|
|
97
|
+
* Cómo queda plegado: `hidden` (default) deja sólo el botón de desplegar; `mini` suma debajo los ítems como
|
|
98
|
+
* íconos con tooltip y avisos.
|
|
99
|
+
*/
|
|
100
|
+
collapsedMode?: KapiPanelCollapsedMode | undefined;
|
|
101
|
+
/** Nombre accesible del `<aside>`; gana sobre el nombre de `labels`. */
|
|
102
|
+
"aria-label"?: string;
|
|
103
|
+
};
|
|
104
|
+
/** Cuerpo del panel (buscador + secciones + hint). Usalo dentro de `KapiContextSlot` o de `KapiContextPanel`. */
|
|
105
|
+
export declare const KapiContextSections: <Id extends string = string>({ sections, activeId, onSelect, search, hint, labels }: KapiContextSectionsProps<Id>) => import("react").JSX.Element;
|
|
106
|
+
export type KapiContextPanelLabels = {
|
|
107
|
+
resize: string;
|
|
108
|
+
/** Botón de plegar (sin `collapseLabel`). */
|
|
109
|
+
collapse: string;
|
|
110
|
+
/** Botón de reabrir (sin `expandLabel`). */
|
|
111
|
+
expand: string;
|
|
112
|
+
/** Nombre del `<aside>` (sin `aria-label`). */
|
|
113
|
+
region: string;
|
|
114
|
+
};
|
|
115
|
+
export declare const DEFAULT_CONTEXT_PANEL_LABELS: KapiContextPanelLabels;
|
|
116
|
+
/** Panel de contexto genérico: todo el contenido llega por props (nada atado a un módulo). */
|
|
117
|
+
export declare const KapiContextPanel: <Id extends string = string>({ title, actions, collapsed, defaultCollapsed, onCollapsedChange, collapseLabel: collapseLabelProp, expandLabel: expandLabelProp, side, collapsedMode, resizable, minWidth, maxWidth, "aria-label": ariaLabelProp, labels, className, style, id, ...body }: KapiContextPanelProps<Id>) => import("react").JSX.Element;
|