@wow-two-beta/ui 0.0.70 → 0.0.72
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/dist/{chunk-VYFPLQPV.js → chunk-2L7KB7ZG.js} +4 -4
- package/dist/chunk-2L7KB7ZG.js.map +1 -0
- package/dist/{chunk-RNHY33US.js → chunk-2YBWJHVV.js} +5 -5
- package/dist/chunk-2YBWJHVV.js.map +1 -0
- package/dist/{chunk-ORYO55KN.js → chunk-5CZUTB7Q.js} +15 -15
- package/dist/chunk-5CZUTB7Q.js.map +1 -0
- package/dist/{chunk-QTHKG7MQ.js → chunk-5DRWPYQ2.js} +8 -8
- package/dist/chunk-5DRWPYQ2.js.map +1 -0
- package/dist/{chunk-D7ZFCHX5.js → chunk-6WPRGGCJ.js} +4 -4
- package/dist/chunk-6WPRGGCJ.js.map +1 -0
- package/dist/{chunk-XOUAFZ2E.js → chunk-AXSWZXPJ.js} +11 -11
- package/dist/chunk-AXSWZXPJ.js.map +1 -0
- package/dist/{chunk-VTRPW2QQ.js → chunk-BFQX2J5L.js} +14 -14
- package/dist/chunk-BFQX2J5L.js.map +1 -0
- package/dist/chunk-DQGWGXDZ.js +35 -0
- package/dist/chunk-DQGWGXDZ.js.map +1 -0
- package/dist/{chunk-UFTKE5U7.js → chunk-DRUWR4VC.js} +15 -15
- package/dist/chunk-DRUWR4VC.js.map +1 -0
- package/dist/{chunk-KD6MJOL5.js → chunk-DVN7XGVN.js} +16 -16
- package/dist/chunk-DVN7XGVN.js.map +1 -0
- package/dist/{chunk-LS4EGKUK.js → chunk-EI7EKA2V.js} +12 -12
- package/dist/chunk-EI7EKA2V.js.map +1 -0
- package/dist/{chunk-XFUD3RZK.js → chunk-FSKL2DAK.js} +10 -10
- package/dist/chunk-FSKL2DAK.js.map +1 -0
- package/dist/{chunk-OZBLEOLZ.js → chunk-GCBZ6FF7.js} +4 -4
- package/dist/chunk-GCBZ6FF7.js.map +1 -0
- package/dist/{chunk-GPMNI5MG.js → chunk-JU5KT24H.js} +6 -6
- package/dist/chunk-JU5KT24H.js.map +1 -0
- package/dist/{chunk-B4X7XXSM.js → chunk-NY7OZGNY.js} +5 -5
- package/dist/chunk-NY7OZGNY.js.map +1 -0
- package/dist/{chunk-D4ZT36AZ.js → chunk-PCRID2JL.js} +2 -2
- package/dist/chunk-PCRID2JL.js.map +1 -0
- package/dist/{chunk-KZLEHWAJ.js → chunk-PNHIAN3U.js} +5 -5
- package/dist/chunk-PNHIAN3U.js.map +1 -0
- package/dist/{chunk-R5MOEUXM.js → chunk-Q3HSAOWW.js} +55 -32
- package/dist/chunk-Q3HSAOWW.js.map +1 -0
- package/dist/{chunk-X5JSX4PU.js → chunk-QVY7SIMR.js} +8 -8
- package/dist/chunk-QVY7SIMR.js.map +1 -0
- package/dist/{chunk-F4HGQMUI.js → chunk-SVSFK6TB.js} +2 -2
- package/dist/chunk-SVSFK6TB.js.map +1 -0
- package/dist/{chunk-XSW3NZDD.js → chunk-TOB23IBK.js} +18 -18
- package/dist/chunk-TOB23IBK.js.map +1 -0
- package/dist/{chunk-UMRRFZ4R.js → chunk-XU4ZOEMV.js} +4 -4
- package/dist/chunk-XU4ZOEMV.js.map +1 -0
- package/dist/{chunk-WKVWOAQV.js → chunk-Y423OHFD.js} +3 -3
- package/dist/chunk-Y423OHFD.js.map +1 -0
- package/dist/{chunk-SIAFOCT4.js → chunk-ZOK62HJB.js} +6 -6
- package/dist/chunk-ZOK62HJB.js.map +1 -0
- package/dist/domain/color/Gradient.d.ts +39 -0
- package/dist/domain/color/GradientType.d.ts +8 -0
- package/dist/domain/color/index.d.ts +3 -0
- package/dist/domain/color/index.js +4 -0
- package/dist/{hooks → foundation/hooks}/index.js +3 -3
- package/dist/{http → foundation/http}/index.js +2 -2
- package/dist/foundation/http/index.js.map +1 -0
- package/dist/foundation/icons/index.js +6 -0
- package/dist/{primitives → foundation/primitives}/index.js +4 -4
- package/dist/{themes → foundation/themes}/index.js +2 -2
- package/dist/{utils → foundation/utils}/index.js +3 -3
- package/dist/index.d.ts +13 -12
- package/dist/index.js +24 -23
- package/dist/{actions → presentation/actions}/button/Button.d.ts +2 -1
- package/dist/{actions → presentation/actions}/button/Button.variants.d.ts +8 -1
- package/dist/{actions → presentation/actions}/fab/FAB.variants.d.ts +1 -1
- package/dist/presentation/actions/index.js +11 -0
- package/dist/{actions → presentation/actions}/link/Link.variants.d.ts +1 -1
- package/dist/presentation/actions/segmentedControl/SegmentedControl.d.ts +9 -0
- package/dist/{actions → presentation/actions}/toggleButton/ToggleButton.d.ts +1 -1
- package/dist/{actions → presentation/actions}/toggleButton/ToggleButton.variants.d.ts +1 -1
- package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroup.d.ts +51 -0
- package/dist/{display → presentation/display}/avatar/Avatar.d.ts +1 -1
- package/dist/{display → presentation/display}/avatar/Avatar.variants.d.ts +1 -1
- package/dist/{display → presentation/display}/badge/Badge.variants.d.ts +1 -1
- package/dist/{display → presentation/display}/card/Card.d.ts +1 -1
- package/dist/{display → presentation/display}/code/Code.variants.d.ts +1 -1
- package/dist/{display → presentation/display}/heading/Heading.variants.d.ts +1 -1
- package/dist/{display → presentation/display}/index.js +11 -11
- package/dist/{display → presentation/display}/list/List.variants.d.ts +1 -1
- package/dist/{display → presentation/display}/tag/Tag.variants.d.ts +1 -1
- package/dist/{display → presentation/display}/text/Text.variants.d.ts +1 -1
- package/dist/{display → presentation/display}/tooltip/Tooltip.d.ts +1 -1
- package/dist/{feedback → presentation/feedback}/alertSimple/AlertSimple.variants.d.ts +1 -1
- package/dist/{feedback → presentation/feedback}/bannerSimple/BannerSimple.variants.d.ts +1 -1
- package/dist/{feedback → presentation/feedback}/index.js +10 -10
- package/dist/{feedback → presentation/feedback}/progressBar/ProgressBar.variants.d.ts +1 -1
- package/dist/{feedback → presentation/feedback}/skeleton/Skeleton.variants.d.ts +1 -1
- package/dist/{feedback → presentation/feedback}/spinner/Spinner.variants.d.ts +1 -1
- package/dist/{feedback → presentation/feedback}/toastSimple/ToastSimple.variants.d.ts +1 -1
- package/dist/{forms → presentation/forms}/InputStyles.d.ts +1 -1
- package/dist/{forms → presentation/forms}/checkbox/Checkbox.d.ts +1 -1
- package/dist/{forms → presentation/forms}/checkbox/Checkbox.variants.d.ts +1 -1
- package/dist/{forms → presentation/forms}/colorSwatch/ColorSwatch.variants.d.ts +1 -1
- package/dist/{forms → presentation/forms}/combobox/Combobox.d.ts +2 -2
- package/dist/{forms → presentation/forms}/index.js +15 -15
- package/dist/{forms → presentation/forms}/listbox/Listbox.d.ts +1 -1
- package/dist/{forms → presentation/forms}/listbox/Listbox.variants.d.ts +1 -1
- package/dist/{forms → presentation/forms}/multiSelect/MultiSelect.d.ts +1 -1
- package/dist/{forms → presentation/forms}/select/Select.d.ts +1 -1
- package/dist/{forms → presentation/forms}/select/Select.variants.d.ts +1 -1
- package/dist/{layout → presentation/layout}/container/Container.variants.d.ts +1 -1
- package/dist/{layout → presentation/layout}/divider/Divider.variants.d.ts +1 -1
- package/dist/{layout → presentation/layout}/grid/Grid.variants.d.ts +1 -1
- package/dist/presentation/layout/index.js +14 -0
- package/dist/{layout → presentation/layout}/navbar/Navbar.d.ts +1 -1
- package/dist/{layout → presentation/layout}/navbar/Navbar.variants.d.ts +1 -1
- package/dist/{layout → presentation/layout}/overlay/Overlay.d.ts +1 -1
- package/dist/{layout → presentation/layout}/overlay/Overlay.variants.d.ts +1 -1
- package/dist/{layout → presentation/layout}/section/Section.d.ts +1 -1
- package/dist/{layout → presentation/layout}/section/Section.variants.d.ts +1 -1
- package/dist/{layout → presentation/layout}/stack/Stack.variants.d.ts +1 -1
- package/dist/{layout → presentation/layout}/surface/Surface.d.ts +1 -1
- package/dist/{nav → presentation/nav}/index.js +12 -12
- package/dist/{nav → presentation/nav}/menu/Menu.d.ts +2 -2
- package/dist/{nav → presentation/nav}/menu/Menu.variants.d.ts +1 -1
- package/dist/{nav → presentation/nav}/menubar/Menubar.variants.d.ts +1 -1
- package/dist/{overlays → presentation/overlays}/bottomSheet/BottomSheet.d.ts +1 -1
- package/dist/{overlays → presentation/overlays}/drawer/Drawer.d.ts +1 -1
- package/dist/{overlays → presentation/overlays}/hoverCard/HoverCard.d.ts +1 -1
- package/dist/{overlays → presentation/overlays}/index.js +11 -11
- package/dist/presentation/overlays/index.js.map +1 -0
- package/dist/{overlays → presentation/overlays}/modal/Modal.d.ts +1 -1
- package/dist/{overlays → presentation/overlays}/popover/Popover.d.ts +2 -2
- package/package.json +58 -53
- package/dist/actions/index.js +0 -11
- package/dist/actions/segmentedControl/SegmentedControl.d.ts +0 -4
- package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts +0 -20
- package/dist/chunk-B4X7XXSM.js.map +0 -1
- package/dist/chunk-D4ZT36AZ.js.map +0 -1
- package/dist/chunk-D7ZFCHX5.js.map +0 -1
- package/dist/chunk-F4HGQMUI.js.map +0 -1
- package/dist/chunk-GPMNI5MG.js.map +0 -1
- package/dist/chunk-KD6MJOL5.js.map +0 -1
- package/dist/chunk-KZLEHWAJ.js.map +0 -1
- package/dist/chunk-LS4EGKUK.js.map +0 -1
- package/dist/chunk-ORYO55KN.js.map +0 -1
- package/dist/chunk-OZBLEOLZ.js.map +0 -1
- package/dist/chunk-QTHKG7MQ.js.map +0 -1
- package/dist/chunk-R5MOEUXM.js.map +0 -1
- package/dist/chunk-RNHY33US.js.map +0 -1
- package/dist/chunk-SIAFOCT4.js.map +0 -1
- package/dist/chunk-UFTKE5U7.js.map +0 -1
- package/dist/chunk-UMRRFZ4R.js.map +0 -1
- package/dist/chunk-VTRPW2QQ.js.map +0 -1
- package/dist/chunk-VYFPLQPV.js.map +0 -1
- package/dist/chunk-WKVWOAQV.js.map +0 -1
- package/dist/chunk-X5JSX4PU.js.map +0 -1
- package/dist/chunk-XFUD3RZK.js.map +0 -1
- package/dist/chunk-XOUAFZ2E.js.map +0 -1
- package/dist/chunk-XSW3NZDD.js.map +0 -1
- package/dist/http/index.js.map +0 -1
- package/dist/icons/index.js +0 -6
- package/dist/layout/index.js +0 -14
- /package/dist/{actions → domain/color}/index.js.map +0 -0
- /package/dist/{hooks → foundation/hooks}/index.d.ts +0 -0
- /package/dist/{display → foundation/hooks}/index.js.map +0 -0
- /package/dist/{hooks → foundation/hooks}/useClipboard/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useClipboard/useClipboard.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useControlled/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useControlled/useControlled.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useDebounceHandler/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useDebounceHandler/useDebounceHandler.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useDisclosure/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useDisclosure/useDisclosure.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useEscape/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useEscape/useEscape.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useEventListener/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useEventListener/useEventListener.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useFocusTrap/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useFocusTrap/useFocusTrap.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useId/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useId/useId.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useMediaQuery/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useMediaQuery/useMediaQuery.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useOutsideClick/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useOutsideClick/useOutsideClick.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useReducedMotion/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useReducedMotion/useReducedMotion.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useResizeObserver/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useResizeObserver/useResizeObserver.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useScrollLock/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useScrollLock/useScrollLock.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useTypeahead/index.d.ts +0 -0
- /package/dist/{hooks → foundation/hooks}/useTypeahead/useTypeahead.d.ts +0 -0
- /package/dist/{http → foundation/http}/ApiError.d.ts +0 -0
- /package/dist/{http → foundation/http}/ApiResponse.d.ts +0 -0
- /package/dist/{http → foundation/http}/DateBrands.d.ts +0 -0
- /package/dist/{http → foundation/http}/ProblemDetails.d.ts +0 -0
- /package/dist/{http → foundation/http}/index.d.ts +0 -0
- /package/dist/{http → foundation/http}/temporalReviver.d.ts +0 -0
- /package/dist/{icons → foundation/icons}/Icon.d.ts +0 -0
- /package/dist/{icons → foundation/icons}/Spinner.d.ts +0 -0
- /package/dist/{icons → foundation/icons}/index.d.ts +0 -0
- /package/dist/{feedback → foundation/icons}/index.js.map +0 -0
- /package/dist/{primitives → foundation/primitives}/accessibleIcon/AccessibleIcon.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/accessibleIcon/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/anchoredPositioner/AnchoredPositioner.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/anchoredPositioner/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/announce/Announce.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/announce/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/collection/Collection.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/collection/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/colorModeProvider/ColorModeProvider.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/colorModeProvider/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/directionProvider/DirectionProvider.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/directionProvider/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/dismissableLayer/DismissableLayer.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/dismissableLayer/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/focusScope/FocusScope.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/focusScope/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/formControlContext/FormControlContext.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/formControlContext/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/index.d.ts +0 -0
- /package/dist/{forms → foundation/primitives}/index.js.map +0 -0
- /package/dist/{primitives → foundation/primitives}/overlayArrow/OverlayArrow.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/overlayArrow/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/portal/Portal.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/portal/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/presence/Presence.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/presence/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/rovingFocusGroup/RovingFocusGroup.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/rovingFocusGroup/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/scrollLockProvider/ScrollLockProvider.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/scrollLockProvider/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/slot/Slot.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/slot/index.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/visuallyHidden/VisuallyHidden.d.ts +0 -0
- /package/dist/{primitives → foundation/primitives}/visuallyHidden/index.d.ts +0 -0
- /package/dist/{themes → foundation/themes}/Oklch.d.ts +0 -0
- /package/dist/{themes → foundation/themes}/Theme.d.ts +0 -0
- /package/dist/{themes → foundation/themes}/Tokens.d.ts +0 -0
- /package/dist/{themes → foundation/themes}/css.d.ts +0 -0
- /package/dist/{themes → foundation/themes}/generate.d.ts +0 -0
- /package/dist/{themes → foundation/themes}/index.d.ts +0 -0
- /package/dist/{hooks → foundation/themes}/index.js.map +0 -0
- /package/dist/{themes → foundation/themes}/pool.d.ts +0 -0
- /package/dist/{themes → foundation/themes}/registry.d.ts +0 -0
- /package/dist/{themes → foundation/themes}/validate.d.ts +0 -0
- /package/dist/{themes → foundation/themes}/validated.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/ColorExtensions/ColorExtensions.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/ColorExtensions/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/CssExtensions/CssExtensions.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/CssExtensions/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/Environment/Environment.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/Environment/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/Equality/Equality.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/Equality/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/HtmlExtensions/HtmlExtensions.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/HtmlExtensions/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/KeyboardExtensions/KeyboardExtensions.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/KeyboardExtensions/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/Layers/Layers.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/Layers/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/OptionalExtensions/OptionalExtensions.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/OptionalExtensions/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/PressExtensions/PressExtensions.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/PressExtensions/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/StyleTokens/StyleTokens.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/StyleTokens/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/SurfaceStyles/SurfaceStyles.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/SurfaceStyles/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/Tones/Tones.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/Tones/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/TransitionExtensions/TransitionExtensions.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/TransitionExtensions/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/cn/cn.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/cn/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/composeEventHandlers/composeEventHandlers.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/composeEventHandlers/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/composeRefs/composeRefs.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/composeRefs/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/dataAttr/dataAttr.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/dataAttr/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/index.d.ts +0 -0
- /package/dist/{icons → foundation/utils}/index.js.map +0 -0
- /package/dist/{utils → foundation/utils}/polymorphic/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/polymorphic/polymorphic.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/tv/index.d.ts +0 -0
- /package/dist/{utils → foundation/utils}/tv/tv.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/backToTopButton/BackToTopButton.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/backToTopButton/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/button/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/buttonGroup/ButtonGroup.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/buttonGroup/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/copyButton/CopyButton.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/copyButton/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/disclosureButton/DisclosureButton.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/disclosureButton/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/fab/FAB.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/fab/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/index.d.ts +0 -0
- /package/dist/{layout → presentation/actions}/index.js.map +0 -0
- /package/dist/{actions → presentation/actions}/link/Link.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/link/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/segmentedControl/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/speedDial/SpeedDial.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/speedDial/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/toggleButton/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/toggleButtonGroup/index.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/toolbar/Toolbar.d.ts +0 -0
- /package/dist/{actions → presentation/actions}/toolbar/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/accordion/Accordion.d.ts +0 -0
- /package/dist/{display → presentation/display}/accordion/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/activityFeed/ActivityFeed.d.ts +0 -0
- /package/dist/{display → presentation/display}/activityFeed/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/animatedNumber/AnimatedNumber.d.ts +0 -0
- /package/dist/{display → presentation/display}/animatedNumber/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/annotationMarker/AnnotationMarker.d.ts +0 -0
- /package/dist/{display → presentation/display}/annotationMarker/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/audioPlayer/AudioPlayer.d.ts +0 -0
- /package/dist/{display → presentation/display}/audioPlayer/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/audioWaveform/AudioWaveform.d.ts +0 -0
- /package/dist/{display → presentation/display}/audioWaveform/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/avatar/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/avatarGroup/AvatarGroup.d.ts +0 -0
- /package/dist/{display → presentation/display}/avatarGroup/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/badge/Badge.d.ts +0 -0
- /package/dist/{display → presentation/display}/badge/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/badgeOverlay/BadgeOverlay.d.ts +0 -0
- /package/dist/{display → presentation/display}/badgeOverlay/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/card/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/carousel/Carousel.d.ts +0 -0
- /package/dist/{display → presentation/display}/carousel/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/chatBubble/ChatBubble.d.ts +0 -0
- /package/dist/{display → presentation/display}/chatBubble/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/code/Code.d.ts +0 -0
- /package/dist/{display → presentation/display}/code/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/collapsible/Collapsible.d.ts +0 -0
- /package/dist/{display → presentation/display}/collapsible/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/commentThread/CommentThread.d.ts +0 -0
- /package/dist/{display → presentation/display}/commentThread/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/confetti/Confetti.d.ts +0 -0
- /package/dist/{display → presentation/display}/confetti/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/countBadge/CountBadge.d.ts +0 -0
- /package/dist/{display → presentation/display}/countBadge/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/countUp/CountUp.d.ts +0 -0
- /package/dist/{display → presentation/display}/countUp/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/dataGrid/DataGrid.d.ts +0 -0
- /package/dist/{display → presentation/display}/dataGrid/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/dataTable/DataTable.d.ts +0 -0
- /package/dist/{display → presentation/display}/dataTable/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/descriptionList/DescriptionList.d.ts +0 -0
- /package/dist/{display → presentation/display}/descriptionList/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/diffViewer/DiffViewer.d.ts +0 -0
- /package/dist/{display → presentation/display}/diffViewer/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/emptyState/EmptyState.d.ts +0 -0
- /package/dist/{display → presentation/display}/emptyState/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/eventCalendar/EventCalendar.d.ts +0 -0
- /package/dist/{display → presentation/display}/eventCalendar/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/eyebrow/Eyebrow.d.ts +0 -0
- /package/dist/{display → presentation/display}/eyebrow/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/featureCard/FeatureCard.d.ts +0 -0
- /package/dist/{display → presentation/display}/featureCard/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/gantt/Gantt.d.ts +0 -0
- /package/dist/{display → presentation/display}/gantt/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/gradientText/GradientText.d.ts +0 -0
- /package/dist/{display → presentation/display}/gradientText/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/heading/Heading.d.ts +0 -0
- /package/dist/{display → presentation/display}/heading/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/heatmapCalendar/HeatmapCalendar.d.ts +0 -0
- /package/dist/{display → presentation/display}/heatmapCalendar/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/highlight/Highlight.d.ts +0 -0
- /package/dist/{display → presentation/display}/highlight/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/image/Image.d.ts +0 -0
- /package/dist/{display → presentation/display}/image/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/index.d.ts +0 -0
- /package/dist/{nav → presentation/display}/index.js.map +0 -0
- /package/dist/{display → presentation/display}/infoRow/InfoRow.d.ts +0 -0
- /package/dist/{display → presentation/display}/infoRow/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/kbd/Kbd.d.ts +0 -0
- /package/dist/{display → presentation/display}/kbd/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/keyboardShortcut/KeyboardShortcut.d.ts +0 -0
- /package/dist/{display → presentation/display}/keyboardShortcut/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/list/List.d.ts +0 -0
- /package/dist/{display → presentation/display}/list/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/mark/Mark.d.ts +0 -0
- /package/dist/{display → presentation/display}/mark/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/marquee/Marquee.d.ts +0 -0
- /package/dist/{display → presentation/display}/marquee/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/messageList/MessageList.d.ts +0 -0
- /package/dist/{display → presentation/display}/messageList/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/metaInline/MetaInline.d.ts +0 -0
- /package/dist/{display → presentation/display}/metaInline/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/metricChip/MetricChip.d.ts +0 -0
- /package/dist/{display → presentation/display}/metricChip/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/nodeEditor/NodeEditor.d.ts +0 -0
- /package/dist/{display → presentation/display}/nodeEditor/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/notificationDot/NotificationDot.d.ts +0 -0
- /package/dist/{display → presentation/display}/notificationDot/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/pdfViewer/PDFViewer.d.ts +0 -0
- /package/dist/{display → presentation/display}/pdfViewer/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/pricingCard/PricingCard.d.ts +0 -0
- /package/dist/{display → presentation/display}/pricingCard/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/quote/Quote.d.ts +0 -0
- /package/dist/{display → presentation/display}/quote/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/reactionBar/ReactionBar.d.ts +0 -0
- /package/dist/{display → presentation/display}/reactionBar/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/scheduleView/ScheduleView.d.ts +0 -0
- /package/dist/{display → presentation/display}/scheduleView/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/scrollReveal/ScrollReveal.d.ts +0 -0
- /package/dist/{display → presentation/display}/scrollReveal/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/sectionHeader/SectionHeader.d.ts +0 -0
- /package/dist/{display → presentation/display}/sectionHeader/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/separator/Separator.d.ts +0 -0
- /package/dist/{display → presentation/display}/separator/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/snippet/Snippet.d.ts +0 -0
- /package/dist/{display → presentation/display}/snippet/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/sortable/Sortable.d.ts +0 -0
- /package/dist/{display → presentation/display}/sortable/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/sparkline/Sparkline.d.ts +0 -0
- /package/dist/{display → presentation/display}/sparkline/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/stat/Stat.d.ts +0 -0
- /package/dist/{display → presentation/display}/stat/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/status/Status.d.ts +0 -0
- /package/dist/{display → presentation/display}/status/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/stepCard/StepCard.d.ts +0 -0
- /package/dist/{display → presentation/display}/stepCard/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/swipeActions/SwipeActions.d.ts +0 -0
- /package/dist/{display → presentation/display}/swipeActions/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/table/Table.d.ts +0 -0
- /package/dist/{display → presentation/display}/table/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/tabs/Tabs.d.ts +0 -0
- /package/dist/{display → presentation/display}/tabs/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/tag/Tag.d.ts +0 -0
- /package/dist/{display → presentation/display}/tag/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/text/Text.d.ts +0 -0
- /package/dist/{display → presentation/display}/text/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/threadView/ThreadView.d.ts +0 -0
- /package/dist/{display → presentation/display}/threadView/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/tilt/Tilt.d.ts +0 -0
- /package/dist/{display → presentation/display}/tilt/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/timeline/Timeline.d.ts +0 -0
- /package/dist/{display → presentation/display}/timeline/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/tooltip/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/tree/Tree.d.ts +0 -0
- /package/dist/{display → presentation/display}/tree/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/typewriter/Typewriter.d.ts +0 -0
- /package/dist/{display → presentation/display}/typewriter/index.d.ts +0 -0
- /package/dist/{display → presentation/display}/videoPlayer/VideoPlayer.d.ts +0 -0
- /package/dist/{display → presentation/display}/videoPlayer/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/alert/Alert.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/alert/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/alertSimple/AlertSimple.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/alertSimple/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/banner/Banner.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/banner/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/bannerSimple/BannerSimple.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/bannerSimple/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/callout/Callout.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/callout/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/index.d.ts +0 -0
- /package/dist/{overlays → presentation/feedback}/index.js.map +0 -0
- /package/dist/{feedback → presentation/feedback}/inlineSpinner/InlineSpinner.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/inlineSpinner/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/liveCursor/LiveCursor.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/liveCursor/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/loadingOverlay/LoadingOverlay.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/loadingOverlay/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/loadingState/LoadingState.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/loadingState/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/meterBar/MeterBar.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/meterBar/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/notificationCenter/NotificationCenter.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/notificationCenter/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/onboardingChecklist/OnboardingChecklist.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/onboardingChecklist/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/presenceIndicator/PresenceIndicator.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/presenceIndicator/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/progressBar/ProgressBar.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/progressBar/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/progressCircle/ProgressCircle.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/progressCircle/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/progressSteps/ProgressSteps.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/progressSteps/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/skeleton/Skeleton.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/skeleton/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/spinner/Spinner.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/spinner/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/statusIndicator/StatusIndicator.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/statusIndicator/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/toast/Toast.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/toast/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/toastSimple/ToastSimple.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/toastSimple/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/toaster/Toaster.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/toaster/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/tour/Tour.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/tour/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/trendIndicator/TrendIndicator.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/trendIndicator/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/typingIndicator/TypingIndicator.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/typingIndicator/index.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/undoBar/UndoBar.d.ts +0 -0
- /package/dist/{feedback → presentation/feedback}/undoBar/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/ColorExtensions.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/DateExtensions.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/MonthGrid.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/addressForm/AddressForm.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/addressForm/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/calendar/Calendar.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/calendar/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/characterCount/CharacterCount.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/characterCount/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/chatComposer/ChatComposer.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/chatComposer/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/checkbox/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/checkboxField/CheckboxField.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/checkboxField/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/checkboxGroup/CheckboxGroup.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/checkboxGroup/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/choiceCard/ChoiceCard.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/choiceCard/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/codeEditor/CodeEditor.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/codeEditor/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorArea/ColorArea.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorArea/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorField/ColorField.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorField/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorPicker/ColorPicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorPicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorSlider/ColorSlider.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorSlider/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorSwatch/ColorSwatch.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorSwatch/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorSwatchPicker/ColorSwatchPicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorSwatchPicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorWheel/ColorWheel.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/colorWheel/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/combobox/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/cronInput/CronInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/cronInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/currencyInput/CurrencyInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/currencyInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/dateField/DateField.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/dateField/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/datePicker/DatePicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/datePicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/dateRangePicker/DateRangePicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/dateRangePicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/editable/Editable.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/editable/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/emailInput/EmailInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/emailInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/emojiPicker/EmojiPicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/emojiPicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/field/Field.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/field/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/fieldset/Fieldset.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/fieldset/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/filePicker/FilePicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/filePicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/fileUpload/FileUpload.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/fileUpload/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/fontPicker/FontPicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/fontPicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/formErrorMessage/FormErrorMessage.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/formErrorMessage/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/formHelperText/FormHelperText.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/formHelperText/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/gradientPicker/GradientPicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/gradientPicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/iconPicker/IconPicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/iconPicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/index.d.ts +0 -0
- /package/dist/{primitives → presentation/forms}/index.js.map +0 -0
- /package/dist/{forms → presentation/forms}/inputAddon/InputAddon.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/inputAddon/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/inputGroup/InputGroup.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/inputGroup/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/jsonEditor/JSONEditor.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/jsonEditor/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/keyboardShortcutPicker/KeyboardShortcutPicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/keyboardShortcutPicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/knob/Knob.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/knob/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/label/Label.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/label/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/labeledInput/LabeledInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/labeledInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/legend/Legend.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/legend/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/listbox/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/markdownEditor/MarkdownEditor.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/markdownEditor/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/maskedInput/MaskedInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/maskedInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/multiSelect/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/numberInput/NumberInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/numberInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/passwordInput/PasswordInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/passwordInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/passwordStrength/PasswordStrength.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/passwordStrength/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/percentInput/PercentInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/percentInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/phoneInput/PhoneInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/phoneInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/pinInput/PinInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/pinInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/radio/Radio.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/radio/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/radioField/RadioField.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/radioField/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/radioGroup/RadioGroup.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/radioGroup/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/rangeCalendar/RangeCalendar.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/rangeCalendar/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/reactionPicker/ReactionPicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/reactionPicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/recurrenceEditor/RecurrenceEditor.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/recurrenceEditor/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/searchInput/SearchInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/searchInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/select/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/slider/Slider.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/slider/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/stepper/Stepper.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/stepper/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/switch/Switch.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/switch/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/switchField/SwitchField.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/switchField/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/tagsInput/TagsInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/tagsInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/telInput/TelInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/telInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/textInput/TextInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/textInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/textareaInput/TextareaInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/textareaInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/timeField/TimeField.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/timeField/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/timePicker/TimePicker.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/timePicker/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/urlInput/UrlInput.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/urlInput/index.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/wizard/Wizard.d.ts +0 -0
- /package/dist/{forms → presentation/forms}/wizard/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/appShell/AppShell.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/appShell/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/aspectRatio/AspectRatio.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/aspectRatio/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/box/Box.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/box/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/center/Center.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/center/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/cluster/Cluster.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/cluster/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/container/Container.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/container/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/divider/Divider.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/divider/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/flex/Flex.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/flex/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/frame/Frame.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/frame/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/grid/Grid.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/grid/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/hStack/HStack.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/hStack/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/index.d.ts +0 -0
- /package/dist/{themes → presentation/layout}/index.js.map +0 -0
- /package/dist/{layout → presentation/layout}/inline/Inline.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/inline/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/navbar/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/overlay/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/pullToRefresh/PullToRefresh.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/pullToRefresh/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/resizablePanels/ResizablePanels.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/resizablePanels/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/scrollArea/ScrollArea.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/scrollArea/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/section/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/spacer/Spacer.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/spacer/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/stack/Stack.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/stack/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/surface/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/twoColumn/TwoColumn.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/twoColumn/index.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/vStack/VStack.d.ts +0 -0
- /package/dist/{layout → presentation/layout}/vStack/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/breadcrumb/Breadcrumb.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/breadcrumb/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/commandPalette/CommandPalette.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/commandPalette/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/contextMenu/ContextMenu.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/contextMenu/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/dropdownMenu/DropdownMenu.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/dropdownMenu/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/index.d.ts +0 -0
- /package/dist/{utils → presentation/nav}/index.js.map +0 -0
- /package/dist/{nav → presentation/nav}/menu/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/menubar/Menubar.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/menubar/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/navItem/NavItem.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/navItem/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/navigationMenu/NavigationMenu.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/navigationMenu/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/pagination/Pagination.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/pagination/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/scrollSpy/ScrollSpy.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/scrollSpy/index.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/tableOfContents/TableOfContents.d.ts +0 -0
- /package/dist/{nav → presentation/nav}/tableOfContents/index.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/OverlayChrome.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/actionSheet/ActionSheet.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/actionSheet/index.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/alertModal/AlertModal.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/alertModal/index.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/backdrop/Backdrop.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/backdrop/index.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/bottomSheet/index.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/drawer/index.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/hoverCard/index.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/index.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/modal/index.d.ts +0 -0
- /package/dist/{overlays → presentation/overlays}/popover/index.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/actions/button/Button.variants.ts","../src/actions/button/Button.tsx","../src/actions/link/Link.variants.ts","../src/actions/link/Link.tsx","../src/actions/buttonGroup/ButtonGroup.tsx","../src/actions/toggleButton/ToggleButton.variants.ts","../src/actions/toggleButton/ToggleButton.tsx","../src/actions/toggleButtonGroup/ToggleButtonGroup.tsx","../src/actions/segmentedControl/SegmentedControl.tsx","../src/actions/fab/FAB.variants.ts","../src/actions/fab/FAB.tsx","../src/actions/copyButton/CopyButton.tsx","../src/actions/disclosureButton/DisclosureButton.tsx","../src/actions/toolbar/Toolbar.tsx","../src/actions/speedDial/SpeedDial.tsx","../src/actions/backToTopButton/BackToTopButton.tsx"],"names":["forwardRef","jsx","COMPONENT_NAME","useRef","useEffect","jsxs","ToolbarButton","ToolbarLink","Toolbar","createContext","useContext","SpeedDialList","Children","isValidElement","SpeedDialTrigger","SpeedDialAction","BackToTopButton"],"mappings":"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","file":"chunk-R5MOEUXM.js","sourcesContent":["import { tv, Tones, type VariantProps } from '../../utils';\n\n/** Button visual surface — see Button.standard.md + Button.spec.md. */\nexport const buttonVariants = tv({\n base: [\n // layout\n 'inline-flex items-center justify-center gap-2',\n // typography\n 'font-medium align-middle',\n // borders (forced-colors fallback)\n 'border border-transparent',\n 'forced-colors:border-[ButtonBorder]',\n // transitions (color only)\n 'transition-colors duration-150 ease-out',\n 'motion-reduce:transition-none',\n // focus\n 'outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n // disabled (native attr handles click-blocking; pointer-events-none would\n // suppress the cursor visual, so we don't add it here)\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n // skeleton state — wins over everything\n 'data-[state=skeleton]:!bg-muted data-[state=skeleton]:!text-transparent data-[state=skeleton]:!border-transparent data-[state=skeleton]:!cursor-default data-[state=skeleton]:!pointer-events-none data-[state=skeleton]:animate-pulse',\n 'data-[state=skeleton]:[&>*]:!invisible',\n ],\n variants: {\n variant: {\n solid: '',\n soft: '',\n surface: '',\n outline: 'bg-transparent',\n ghost: 'bg-transparent',\n link: 'bg-transparent !h-auto !p-0 !rounded-none underline-offset-4 hover:underline focus-visible:ring-offset-0',\n // Base = neutral/default tone: dark image-overlay wash + blur. Non-neutral tones resolve\n // through the shared `Tones.glass` palette via compoundVariants below (so tone + color\n // overrides apply). `backdrop-blur-md` stays here for every tone.\n glass: 'backdrop-blur-md',\n 'glass-surface': 'backdrop-blur-md border-white/10',\n },\n tone: {\n primary: '',\n neutral: '',\n danger: '',\n success: '',\n warning: '',\n },\n size: {\n // min-h/min-w floor keeps the hit-target ≥ 24×24 (WCAG 2.2 SC 2.5.8) even when\n // --ui-density-scale < 1 would otherwise shrink it below the floor. Applies to\n // square/circle xs too (the min-h sets the box height; min-w the width).\n xs: 'h-[calc(1.5rem*var(--ui-density-scale,1))] min-h-6 min-w-6 px-[calc(0.5rem*var(--ui-density-scale,1))] text-xs rounded-sm gap-1',\n sm: 'h-[calc(2rem*var(--ui-density-scale,1))] px-[calc(0.75rem*var(--ui-density-scale,1))] text-sm rounded-md gap-1.5',\n md: 'h-[calc(2.5rem*var(--ui-density-scale,1))] px-[calc(1rem*var(--ui-density-scale,1))] text-sm rounded-md gap-2',\n lg: 'h-[calc(3rem*var(--ui-density-scale,1))] px-[calc(1.5rem*var(--ui-density-scale,1))] text-base rounded-lg gap-2',\n xl: 'h-[calc(3.5rem*var(--ui-density-scale,1))] px-[calc(2rem*var(--ui-density-scale,1))] text-base rounded-lg gap-2.5',\n },\n shape: {\n default: '',\n square: 'aspect-square !px-0',\n circle: 'aspect-square !px-0 !rounded-full',\n },\n fullWidth: {\n true: 'w-full',\n false: '',\n },\n wrap: {\n true: 'whitespace-normal text-left',\n false: 'whitespace-nowrap text-ellipsis overflow-hidden',\n },\n },\n compoundVariants: [\n // === SOLID × tone ===\n { variant: 'solid', tone: 'primary', class: 'bg-primary text-primary-foreground hover:bg-primary/90 active:bg-primary/95' },\n { variant: 'solid', tone: 'neutral', class: 'bg-muted text-foreground hover:bg-muted/80 active:bg-muted/85' },\n { variant: 'solid', tone: 'danger', class: 'bg-destructive text-destructive-foreground hover:bg-destructive/90 active:bg-destructive/95' },\n { variant: 'solid', tone: 'success', class: 'bg-success text-success-foreground hover:bg-success/90 active:bg-success/95' },\n { variant: 'solid', tone: 'warning', class: 'bg-warning text-warning-foreground hover:bg-warning/90 active:bg-warning/95' },\n\n // === SOFT × tone ===\n { variant: 'soft', tone: 'primary', class: 'bg-primary-soft text-primary-soft-foreground hover:bg-primary-soft/80 active:bg-primary-soft/85' },\n { variant: 'soft', tone: 'neutral', class: 'bg-muted/60 text-foreground hover:bg-muted/80 active:bg-muted/85' },\n { variant: 'soft', tone: 'danger', class: 'bg-destructive-soft text-destructive-soft-foreground hover:bg-destructive-soft/80 active:bg-destructive-soft/85' },\n { variant: 'soft', tone: 'success', class: 'bg-success-soft text-success-soft-foreground hover:bg-success-soft/80 active:bg-success-soft/85' },\n { variant: 'soft', tone: 'warning', class: 'bg-warning-soft text-warning-soft-foreground hover:bg-warning-soft/80 active:bg-warning-soft/85' },\n\n // === SURFACE × tone (subtle tinted bg + visible tone-colored border) ===\n { variant: 'surface', tone: 'primary', class: 'bg-primary/5 border-primary/40 text-primary hover:bg-primary/10 active:bg-primary/15' },\n { variant: 'surface', tone: 'neutral', class: 'bg-muted/30 border-border-strong text-foreground hover:bg-muted/50 active:bg-muted/70' },\n { variant: 'surface', tone: 'danger', class: 'bg-destructive/5 border-destructive/40 text-destructive hover:bg-destructive/10 active:bg-destructive/15' },\n { variant: 'surface', tone: 'success', class: 'bg-success/5 border-success/40 text-success hover:bg-success/10 active:bg-success/15' },\n { variant: 'surface', tone: 'warning', class: 'bg-warning/10 border-warning/40 text-warning hover:bg-warning/15 active:bg-warning/20' },\n\n // === OUTLINE × tone ===\n { variant: 'outline', tone: 'primary', class: 'border-primary/50 text-primary hover:bg-primary/10 active:bg-primary/15' },\n { variant: 'outline', tone: 'neutral', class: 'border-border-strong text-foreground hover:bg-muted/50 active:bg-muted/70' },\n { variant: 'outline', tone: 'danger', class: 'border-destructive/50 text-destructive hover:bg-destructive/10 active:bg-destructive/15' },\n { variant: 'outline', tone: 'success', class: 'border-success/50 text-success hover:bg-success/10 active:bg-success/15' },\n { variant: 'outline', tone: 'warning', class: 'border-warning/60 text-warning hover:bg-warning/10 active:bg-warning/15' },\n\n // === GHOST × tone ===\n { variant: 'ghost', tone: 'primary', class: 'text-primary hover:bg-primary/10 active:bg-primary/15' },\n { variant: 'ghost', tone: 'neutral', class: 'text-foreground hover:bg-foreground/10 active:bg-foreground/15' },\n { variant: 'ghost', tone: 'danger', class: 'text-destructive hover:bg-destructive/10 active:bg-destructive/15' },\n { variant: 'ghost', tone: 'success', class: 'text-success hover:bg-success/10 active:bg-success/15' },\n { variant: 'ghost', tone: 'warning', class: 'text-warning hover:bg-warning/10 active:bg-warning/15' },\n\n // === LINK × tone (h/padding/radius cleared by variant) ===\n { variant: 'link', tone: 'primary', class: 'text-primary' },\n { variant: 'link', tone: 'neutral', class: 'text-foreground' },\n { variant: 'link', tone: 'danger', class: 'text-destructive' },\n { variant: 'link', tone: 'success', class: 'text-success' },\n { variant: 'link', tone: 'warning', class: 'text-warning' },\n\n // === GLASS / GLASS-SURFACE × tone ===\n // neutral = the image-overlay default: fixed dark wash + light text (reads over any imagery).\n { variant: ['glass', 'glass-surface'], tone: 'neutral', class: 'bg-black/45 text-white/70 hover:bg-black/65 hover:text-white active:bg-black/75' },\n // Every other tone resolves through the shared `Tones.glass` palette (`bg-{tone}/30 text-{tone}-foreground`)\n // so `tone=\"success\"` etc. AND per-instance `color` overrides actually apply, plus a tone-matched hover/active wash.\n { variant: ['glass', 'glass-surface'], tone: 'primary', class: `${Tones.glass.primary} hover:bg-primary/45 active:bg-primary/55` },\n { variant: ['glass', 'glass-surface'], tone: 'danger', class: `${Tones.glass.danger} hover:bg-destructive/45 active:bg-destructive/55` },\n { variant: ['glass', 'glass-surface'], tone: 'success', class: `${Tones.glass.success} hover:bg-success/45 active:bg-success/55` },\n { variant: ['glass', 'glass-surface'], tone: 'warning', class: `${Tones.glass.warning} hover:bg-warning/45 active:bg-warning/55` },\n // glass-surface non-neutral tones swap the white hairline for a tone-accent border (50% alpha).\n { variant: 'glass-surface', tone: 'primary', class: 'border-primary/50' },\n { variant: 'glass-surface', tone: 'danger', class: 'border-destructive/50' },\n { variant: 'glass-surface', tone: 'success', class: 'border-success/50' },\n { variant: 'glass-surface', tone: 'warning', class: 'border-warning/50' },\n ],\n defaultVariants: {\n variant: 'solid',\n tone: 'primary',\n size: 'md',\n shape: 'default',\n fullWidth: false,\n wrap: false,\n },\n});\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n","import {\n forwardRef,\n useEffect,\n useRef,\n type ButtonHTMLAttributes,\n type CSSProperties,\n type KeyboardEvent,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n type PointerEvent,\n type PointerEventHandler,\n type ReactNode,\n} from 'react';\nimport {\n cn,\n ColorExtensions,\n composeEventHandlers,\n ButtonType,\n CssExtensions,\n HtmlElement,\n IS_DEV,\n Key,\n OptionalExtensions,\n PressExtensions,\n type BoxSizeOverrides,\n type ColorProp,\n type ColorTone,\n type PaddingProp,\n type PressEvent,\n type RadiusProp,\n type SizePreset,\n type SizeUnion,\n type SizeValue,\n} from '../../utils';\nimport { Slot } from '../../primitives';\nimport { useFormControl } from '../../primitives/formControlContext/FormControlContext';\nimport { Spinner } from '../../icons';\nimport { useDebounceHandler } from '../../hooks';\nimport { buttonVariants, type ButtonVariants } from './Button.variants';\n\nconst COMPONENT_NAME = 'Button';\n\n/* Named size presets — used for variant lookup. Any other string/number/object flows to box-overrides. Subset of the canonical `SizePreset` vocabulary. */\ntype ButtonSizePreset = Extract<SizePreset, 'xs' | 'sm' | 'md' | 'lg' | 'xl'>;\nconst BUTTON_SIZE_PRESETS: ReadonlySet<string> = new Set<ButtonSizePreset>(['xs', 'sm', 'md', 'lg', 'xl']);\n\n/* `size`: preset (variant class) | number/string (square inline dims) | `{width,height,minWidth,minHeight,boxSize}`.\n Raw/object forms set inline dims only — pair with `padding` if text-bearing. */\nexport type ButtonSize = SizeUnion<ButtonSizePreset>;\n\n/* Observable state surfaced via the `data-state` DOM attribute. */\nconst ButtonDataState = {\n Loading: 'loading',\n Skeleton: 'skeleton',\n Disabled: 'disabled',\n} as const;\ntype ButtonDataState = (typeof ButtonDataState)[keyof typeof ButtonDataState];\n\nexport interface ButtonProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'disabled' | 'color'>,\n Omit<ButtonVariants, 'size'> {\n /* Preset name OR raw value OR explicit dim object — see `ButtonSize` for details. */\n size?: ButtonSize;\n\n /* Per-instance color override for the active `tone`. String → all slots derived; object → per-slot (bg/text/soft/softText/ring). Sets local CSS vars that `bg-{tone}` etc. pick up. */\n color?: ColorProp;\n\n /* Slot before children (logical start). */\n leadingSlot?: ReactNode;\n\n /* Slot after children (logical end). */\n trailingSlot?: ReactNode;\n\n /* Custom indicator shown in place of the built-in `<Spinner/>` when `isLoading` is true. */\n loadingSlot?: ReactNode;\n\n /* Action-loading: replaces leading w/ spinner, sets aria-busy, blocks clicks. */\n isLoading?: boolean;\n\n /* Replaces children when loading. No default — consumer supplies (i18n). */\n loadingText?: string;\n\n /* Content-loading: hides content (preserves dimensions) + shimmer. Mutually exclusive with `isLoading`. */\n isSkeleton?: boolean;\n\n /* Removes from focus order, blocks clicks. Forwards to native `disabled`. Inherited from an enclosing `Field` when omitted. */\n isDisabled?: boolean;\n\n /* Stretches to fill container width. */\n isFullWidth?: boolean;\n\n /* Allows multi-line label wrap; default truncates to single line. */\n isMultiline?: boolean;\n\n /* Render as the single child element via Slot. */\n asChild?: boolean;\n\n /* Independent padding override (preset token or `{x, y}` object). */\n padding?: PaddingProp;\n\n /* Independent radius override (preset token or raw value). */\n radius?: RadiusProp;\n\n /* Explicit width override. Number = px; string = any CSS unit. */\n width?: SizeValue;\n\n /* Explicit height override. Number = px; string = any CSS unit. */\n height?: SizeValue;\n\n /* Reserve a min width so the button doesn't reflow when its label morphs. */\n minWidth?: SizeValue;\n\n /* Reserve a min height — symmetric with `minWidth`. */\n minHeight?: SizeValue;\n\n /* Square shorthand — applied as fallback for both `width` and `height`. Explicit `width`/`height` win when both are set. Pairs with `shape=\"square\"` / `shape=\"circle\"` for icon buttons. */\n boxSize?: SizeValue;\n\n /* Default `ButtonType.Button` — NOT browser-default `'submit'`. */\n type?: ButtonType;\n\n /* Fires on pointer-down OR Space/Enter keydown (first event in a gesture). */\n onPressStart?: (event: PressEvent<HTMLButtonElement>) => void;\n\n /* Fires on pointer-up/cancel OR Space/Enter keyup. */\n onPressEnd?: (event: PressEvent<HTMLButtonElement>) => void;\n\n /* Fires when the pointer is held for `longPressDelay` ms. Suppresses the next click. */\n onLongPress?: (event: PointerEvent<HTMLButtonElement>) => void;\n\n /* Long-press duration (ms). Default 500. Out-of-range values trigger a dev warning. */\n longPressDelay?: number;\n\n /* Throttle clicks within window — first wins; subsequent swallowed via `preventDefault()`. */\n debounceMs?: number;\n}\n\ninterface UseButtonInteractivityOptions {\n isInactive: boolean;\n isLoading: boolean;\n isSkeleton: boolean;\n longPressDelay: number;\n debounceMs?: number;\n onClick?: MouseEventHandler<HTMLButtonElement>;\n onPressStart?: (event: PressEvent<HTMLButtonElement>) => void;\n onPressEnd?: (event: PressEvent<HTMLButtonElement>) => void;\n onLongPress?: (event: PointerEvent<HTMLButtonElement>) => void;\n onPointerDown?: PointerEventHandler<HTMLButtonElement>;\n onPointerUp?: PointerEventHandler<HTMLButtonElement>;\n onPointerCancel?: PointerEventHandler<HTMLButtonElement>;\n onPointerLeave?: PointerEventHandler<HTMLButtonElement>;\n onKeyDown?: KeyboardEventHandler<HTMLButtonElement>;\n onKeyUp?: KeyboardEventHandler<HTMLButtonElement>;\n}\n\n/* Press / long-press / debounce wiring. Returns the 6 DOM event handlers for spread onto the element. */\nfunction useButtonInteractivity(opts: UseButtonInteractivityOptions) {\n const isPressingRef = useRef(false);\n const longPressTimerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const longPressFiredRef = useRef(false);\n\n useEffect(\n () => () => {\n if (longPressTimerRef.current !== undefined) {\n clearTimeout(longPressTimerRef.current);\n }\n },\n [],\n );\n\n const cancelLongPress = () => {\n if (longPressTimerRef.current !== undefined) {\n clearTimeout(longPressTimerRef.current);\n longPressTimerRef.current = undefined;\n }\n };\n\n const endPress = (e: PressEvent<HTMLButtonElement>) => {\n if (isPressingRef.current) {\n isPressingRef.current = false;\n opts.onPressEnd?.(e);\n }\n };\n\n const handlePointerDown = (e: PointerEvent<HTMLButtonElement>) => {\n if (opts.isInactive) return;\n // Cancel any pending timer, then arm only on the first pointer of a gesture — a second\n // pointer-down must not stack a second long-press timer.\n cancelLongPress();\n if (!isPressingRef.current) {\n isPressingRef.current = true;\n longPressFiredRef.current = false;\n opts.onPressStart?.(e);\n if (opts.onLongPress) {\n longPressTimerRef.current = setTimeout(() => {\n longPressFiredRef.current = true;\n opts.onLongPress?.(e);\n longPressTimerRef.current = undefined;\n }, opts.longPressDelay);\n }\n }\n };\n\n const handlePointerUp = (e: PointerEvent<HTMLButtonElement>) => {\n cancelLongPress();\n endPress(e);\n };\n\n const handlePointerCancel = (e: PointerEvent<HTMLButtonElement>) => {\n cancelLongPress();\n endPress(e);\n };\n\n const handlePointerLeave = () => {\n // Pointer leaving cancels a pending long-press but does NOT end the press itself —\n // pointer-up/cancel handlers do that. Matches React Aria.\n cancelLongPress();\n };\n\n const isActivationKey = (e: KeyboardEvent<HTMLButtonElement>) =>\n e.key === Key.Space || e.key === Key.Enter;\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (opts.isInactive) return;\n if (isActivationKey(e) && !e.repeat && !isPressingRef.current) {\n isPressingRef.current = true;\n longPressFiredRef.current = false;\n opts.onPressStart?.(e);\n }\n };\n\n const handleKeyUp = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (isActivationKey(e) && isPressingRef.current) {\n isPressingRef.current = false;\n opts.onPressEnd?.(e);\n }\n };\n\n // Long-press suppression happens BEFORE this — a suppressed click does NOT advance the throttle window.\n const debouncedOnClick = useDebounceHandler(opts.onClick, opts.debounceMs);\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (opts.isLoading || opts.isSkeleton) {\n // Block native activation too — e.g. `type=\"submit\"` must not submit while loading.\n e.preventDefault();\n return;\n }\n if (longPressFiredRef.current) {\n longPressFiredRef.current = false;\n e.preventDefault();\n return;\n }\n debouncedOnClick(e);\n };\n\n return {\n onClick: handleClick,\n onPointerDown: composeEventHandlers(opts.onPointerDown, handlePointerDown),\n onPointerUp: composeEventHandlers(opts.onPointerUp, handlePointerUp),\n onPointerCancel: composeEventHandlers(opts.onPointerCancel, handlePointerCancel),\n onPointerLeave: composeEventHandlers(opts.onPointerLeave, handlePointerLeave),\n onKeyDown: composeEventHandlers(opts.onKeyDown, handleKeyDown),\n onKeyUp: composeEventHandlers(opts.onKeyUp, handleKeyUp),\n };\n}\n\n/* Renders an action button — for text and/or icon content. */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n style,\n variant,\n tone,\n size,\n shape,\n isFullWidth,\n isMultiline,\n padding,\n radius,\n width,\n height,\n minWidth,\n minHeight,\n boxSize,\n leadingSlot,\n trailingSlot,\n loadingSlot,\n isLoading,\n loadingText,\n isSkeleton,\n isDisabled,\n asChild,\n color,\n type = ButtonType.Button,\n children,\n onClick,\n onPressStart,\n onPressEnd,\n onLongPress,\n longPressDelay = PressExtensions.longPressDelay.default,\n debounceMs,\n onPointerDown,\n onPointerUp,\n onPointerCancel,\n onPointerLeave,\n onKeyDown,\n onKeyUp,\n ...rest\n },\n ref,\n ) => {\n if (IS_DEV && isLoading && isSkeleton) {\n console.warn(\n `[${COMPONENT_NAME}] \\`isLoading\\` and \\`isSkeleton\\` are mutually exclusive — \\`isSkeleton\\` takes precedence.`,\n );\n }\n\n let safeLongPressDelay = longPressDelay;\n if (\n longPressDelay < PressExtensions.longPressDelay.min ||\n longPressDelay > PressExtensions.longPressDelay.max\n ) {\n if (IS_DEV) {\n console.warn(\n `[${COMPONENT_NAME}] longPressDelay=${longPressDelay}ms is outside reasonable range (${PressExtensions.longPressDelay.min}–${PressExtensions.longPressDelay.max}ms). Falling back to ${PressExtensions.longPressDelay.default}ms.`,\n );\n }\n safeLongPressDelay = PressExtensions.longPressDelay.default;\n }\n\n if (\n IS_DEV &&\n (children === undefined || children === null || children === false) &&\n rest['aria-label'] === undefined &&\n rest['aria-labelledby'] === undefined\n ) {\n console.warn(\n `[${COMPONENT_NAME}] icon-only button (no text children) is missing an accessible name — pass \\`aria-label\\` or \\`aria-labelledby\\` (Button.standard.md rule 12).`,\n );\n }\n\n /* Inherit disabled-state from an enclosing `Field` when the local prop is omitted; standalone when no context. */\n const formControl = useFormControl();\n const resolvedDisabled = isDisabled ?? formControl?.isDisabled ?? false;\n\n const skeletonActive = !!isSkeleton;\n const loadingActive = !skeletonActive && !!isLoading;\n const isInactive = loadingActive || skeletonActive || resolvedDisabled;\n\n const dataState: ButtonDataState | undefined = skeletonActive\n ? ButtonDataState.Skeleton\n : loadingActive\n ? ButtonDataState.Loading\n : resolvedDisabled\n ? ButtonDataState.Disabled\n : undefined;\n\n const Comp = asChild ? Slot : HtmlElement.Button;\n\n /* Parse the union-typed `size` prop into preset (for variant lookup) + box overrides (for inline dims). */\n const { preset: sizePreset, box: sizeBox } = CssExtensions.parseSizeUnion<ButtonSizePreset>(\n size,\n BUTTON_SIZE_PRESETS,\n );\n\n const overrideStyle: CSSProperties | undefined = (() => {\n const padStyle = CssExtensions.resolvePadding(padding);\n const radStyle = CssExtensions.resolveRadius(radius);\n /* Box overrides — `size` (object form or raw value) is the base; flat width/height/minWidth/minHeight/boxSize props win when both are set. */\n const composedBox: BoxSizeOverrides = {\n ...(sizeBox ?? {}),\n ...(width !== undefined ? { width } : {}),\n ...(height !== undefined ? { height } : {}),\n ...(minWidth !== undefined ? { minWidth } : {}),\n ...(minHeight !== undefined ? { minHeight } : {}),\n ...(boxSize !== undefined ? { boxSize } : {}),\n };\n const boxStyle = CssExtensions.resolveBoxSize(composedBox);\n /* Per-instance color override → sets CSS vars on element, scoped locally. */\n const colorStyle = ColorExtensions.toneColorOverride(color, tone as ColorTone | undefined);\n if (!padStyle && !radStyle && !boxStyle && !colorStyle && !style) return undefined;\n return { ...colorStyle, ...padStyle, ...radStyle, ...boxStyle, ...style };\n })();\n\n const eventHandlers = useButtonInteractivity({\n isInactive,\n isLoading: loadingActive,\n isSkeleton: skeletonActive,\n longPressDelay: safeLongPressDelay,\n debounceMs,\n onClick,\n onPressStart,\n onPressEnd,\n onLongPress,\n onPointerDown,\n onPointerUp,\n onPointerCancel,\n onPointerLeave,\n onKeyDown,\n onKeyUp,\n });\n\n const content = loadingActive ? (\n <>\n {loadingSlot ?? <Spinner />}\n {loadingText !== undefined ? (\n <span>{loadingText}</span>\n ) : (\n // No loadingText: keep children in sr-only so the accessible name survives (Spinner is aria-hidden).\n <span className=\"sr-only\">{children}</span>\n )}\n </>\n ) : (\n <>\n {leadingSlot}\n {children}\n {trailingSlot}\n </>\n );\n\n /* asChild → Slot merges onto the user's element; leadingSlot/trailingSlot/isLoading aren't rendered (consumer owns children). */\n const renderedContent = asChild ? children : content;\n\n return (\n <Comp\n ref={ref}\n type={asChild ? undefined : type}\n className={cn(\n buttonVariants({\n variant,\n tone,\n size: sizePreset,\n shape,\n fullWidth: isFullWidth,\n wrap: isMultiline,\n }),\n className,\n )}\n style={overrideStyle}\n disabled={OptionalExtensions.from(resolvedDisabled, true)}\n aria-busy={OptionalExtensions.from(loadingActive || skeletonActive, true)}\n aria-disabled={OptionalExtensions.from(loadingActive || skeletonActive, true)}\n tabIndex={OptionalExtensions.from(skeletonActive, -1)}\n data-state={dataState}\n {...eventHandlers}\n {...rest}\n >\n {renderedContent}\n </Comp>\n );\n },\n);\n\nButton.displayName = COMPONENT_NAME;\n","import { tv, type VariantProps } from '../../utils';\n\nexport const linkVariants = tv({\n base: 'inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm',\n variants: {\n variant: {\n default: 'text-primary hover:text-primary/85 hover:underline',\n subtle: 'text-foreground hover:underline',\n muted: 'text-muted-foreground hover:text-foreground hover:underline',\n inherit: 'text-current underline-offset-2 hover:underline',\n },\n size: {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n});\n\nexport type LinkVariants = VariantProps<typeof linkVariants>;\n","import { forwardRef, type AnchorHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { Slot } from '../../primitives/slot/Slot';\nimport { linkVariants, type LinkVariants } from './Link.variants';\n\nexport interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement>, LinkVariants {\n /** When true, render the child element as the link instead of an `<a>`.\n * Use for router `<Link>` components from Next.js / React Router. */\n asChild?: boolean;\n}\n\n/** Anchor with consistent focus/hover styling — `asChild` swaps in router links. */\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n return (\n <Comp\n ref={ref}\n className={cn(linkVariants({ variant, size }), className)}\n {...(props as AnchorHTMLAttributes<HTMLAnchorElement>)}\n />\n );\n },\n);\nLink.displayName = 'Link';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport interface ButtonGroupProps extends ComponentPropsWithoutRef<'div'> {\n /** Visual orientation. Default `horizontal`. */\n orientation?: 'horizontal' | 'vertical';\n /** Group children with collapsed inner radii (connected look). Default `true`. */\n isAttached?: boolean;\n}\n\n/** Visually groups action-children — collapses inner radii when `isAttached`. */\nexport const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ orientation = 'horizontal', isAttached = true, className, ...props }, ref) => (\n <div\n ref={ref}\n role=\"group\"\n data-orientation={orientation}\n className={cn(\n 'inline-flex',\n orientation === 'horizontal' ? 'flex-row' : 'flex-col',\n isAttached\n ? orientation === 'horizontal'\n ? '[&>*]:rounded-none [&>*:first-child]:rounded-l-md [&>*:last-child]:rounded-r-md [&>*:not(:first-child)]:-ml-px'\n : '[&>*]:rounded-none [&>*:first-child]:rounded-t-md [&>*:last-child]:rounded-b-md [&>*:not(:first-child)]:-mt-px'\n : 'gap-2',\n className,\n )}\n {...props}\n />\n ),\n);\nButtonGroup.displayName = 'ButtonGroup';\n","import { tv, type VariantProps } from '../../utils';\n\n/* Variant × tone matrix for ToggleButton's press-state appearance. Applied on top of Button (variant='ghost' tone='neutral' baseline). Press state is keyed off `data-pressed=\"true\"` — distinct from Button's `data-state` (loading/skeleton/disabled). */\nexport const toggleButtonVariants = tv({\n base: '',\n variants: {\n variant: {\n ghost: '',\n soft: '',\n outline: 'border',\n solid: 'border',\n glass: 'border border-transparent backdrop-blur-md',\n 'glass-surface': 'border backdrop-blur-md',\n },\n tone: {\n primary: '',\n neutral: '',\n danger: '',\n success: '',\n warning: '',\n },\n },\n compoundVariants: [\n // === GHOST × tone — text color only, transparent bg ===\n { variant: 'ghost', tone: 'primary', class: 'text-foreground/50 data-[pressed=true]:text-primary' },\n { variant: 'ghost', tone: 'neutral', class: 'text-foreground/50 data-[pressed=true]:text-foreground' },\n { variant: 'ghost', tone: 'danger', class: 'text-foreground/50 data-[pressed=true]:text-destructive' },\n { variant: 'ghost', tone: 'success', class: 'text-foreground/50 data-[pressed=true]:text-success' },\n { variant: 'ghost', tone: 'warning', class: 'text-foreground/50 data-[pressed=true]:text-warning' },\n\n // === SOFT × tone — pressed gets tone-soft bg ===\n { variant: 'soft', tone: 'primary', class: 'text-foreground/70 data-[pressed=true]:bg-primary-soft data-[pressed=true]:text-primary-soft-foreground' },\n { variant: 'soft', tone: 'neutral', class: 'text-foreground/70 data-[pressed=true]:bg-muted data-[pressed=true]:text-foreground' },\n { variant: 'soft', tone: 'danger', class: 'text-foreground/70 data-[pressed=true]:bg-destructive-soft data-[pressed=true]:text-destructive-soft-foreground' },\n { variant: 'soft', tone: 'success', class: 'text-foreground/70 data-[pressed=true]:bg-success-soft data-[pressed=true]:text-success-soft-foreground' },\n { variant: 'soft', tone: 'warning', class: 'text-foreground/70 data-[pressed=true]:bg-warning-soft data-[pressed=true]:text-warning-soft-foreground' },\n\n // === OUTLINE × tone — pressed swaps to tone border + tone text ===\n { variant: 'outline', tone: 'primary', class: 'border-input text-foreground/70 data-[pressed=true]:border-primary data-[pressed=true]:text-primary' },\n { variant: 'outline', tone: 'neutral', class: 'border-input text-foreground/70 data-[pressed=true]:border-foreground data-[pressed=true]:text-foreground' },\n { variant: 'outline', tone: 'danger', class: 'border-input text-foreground/70 data-[pressed=true]:border-destructive data-[pressed=true]:text-destructive' },\n { variant: 'outline', tone: 'success', class: 'border-input text-foreground/70 data-[pressed=true]:border-success data-[pressed=true]:text-success' },\n { variant: 'outline', tone: 'warning', class: 'border-input text-foreground/70 data-[pressed=true]:border-warning data-[pressed=true]:text-warning' },\n\n // === SOLID × tone — pressed fills with tone ===\n { variant: 'solid', tone: 'primary', class: 'border-input bg-background text-foreground/70 data-[pressed=true]:bg-primary data-[pressed=true]:border-primary data-[pressed=true]:text-primary-foreground' },\n { variant: 'solid', tone: 'neutral', class: 'border-input bg-background text-foreground/70 data-[pressed=true]:bg-foreground data-[pressed=true]:border-foreground data-[pressed=true]:text-background' },\n { variant: 'solid', tone: 'danger', class: 'border-input bg-background text-foreground/70 data-[pressed=true]:bg-destructive data-[pressed=true]:border-destructive data-[pressed=true]:text-destructive-foreground' },\n { variant: 'solid', tone: 'success', class: 'border-input bg-background text-foreground/70 data-[pressed=true]:bg-success data-[pressed=true]:border-success data-[pressed=true]:text-success-foreground' },\n { variant: 'solid', tone: 'warning', class: 'border-input bg-background text-foreground/70 data-[pressed=true]:bg-warning data-[pressed=true]:border-warning data-[pressed=true]:text-warning-foreground' },\n\n // === GLASS × tone — dark glass; pressed darkens slightly + tone-tinted text on tone variants ===\n { variant: 'glass', tone: 'primary', class: 'bg-black/45 text-white/60 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-white' },\n { variant: 'glass', tone: 'neutral', class: 'bg-black/45 text-white/60 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-white' },\n { variant: 'glass', tone: 'danger', class: 'bg-black/45 text-white/60 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-destructive' },\n { variant: 'glass', tone: 'success', class: 'bg-black/45 text-white/60 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-success' },\n { variant: 'glass', tone: 'warning', class: 'bg-black/45 text-white/60 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-warning' },\n\n // === GLASS-SURFACE × tone — same as glass + visible border emphasis on press ===\n { variant: 'glass-surface', tone: 'primary', class: 'bg-black/45 text-white/60 border-white/10 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-white data-[pressed=true]:border-white/40' },\n { variant: 'glass-surface', tone: 'neutral', class: 'bg-black/45 text-white/60 border-white/10 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-white data-[pressed=true]:border-white/40' },\n { variant: 'glass-surface', tone: 'danger', class: 'bg-black/45 text-white/60 border-white/10 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-destructive data-[pressed=true]:border-destructive/60' },\n { variant: 'glass-surface', tone: 'success', class: 'bg-black/45 text-white/60 border-white/10 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-success data-[pressed=true]:border-success/60' },\n { variant: 'glass-surface', tone: 'warning', class: 'bg-black/45 text-white/60 border-white/10 data-[pressed=true]:bg-black/65 data-[pressed=true]:text-warning data-[pressed=true]:border-warning/60' },\n ],\n defaultVariants: {\n variant: 'ghost',\n tone: 'primary',\n },\n});\n\nexport type ToggleButtonVariants = VariantProps<typeof toggleButtonVariants>;\n","import { forwardRef, type ReactNode } from 'react';\nimport { cn, type ColorProp } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { Button, type ButtonProps } from '../button/Button';\nimport { toggleButtonVariants, type ToggleButtonVariants } from './ToggleButton.variants';\nimport { Tooltip } from '../../display/tooltip';\n\nconst COMPONENT_NAME = 'ToggleButton';\n\n/* Render-prop signature for state-aware content/labels. */\ntype PressedFn<T> = (args: { pressed: boolean }) => T;\ntype StateAware<T> = T | PressedFn<T>;\n\n/* Children may be static OR a render-prop receiving `{ pressed }` — render-prop enables icon-swap patterns (e.g., Eye ↔ EyeOff) for both controlled and uncontrolled toggles. */\ntype ToggleButtonChildren = StateAware<ReactNode>;\n\nexport interface ToggleButtonProps\n extends Omit<ButtonProps, 'variant' | 'tone' | 'children' | 'title' | 'aria-label' | 'color'>,\n ToggleButtonVariants {\n /* Controlled pressed state. */\n isPressed?: boolean;\n\n /* Uncontrolled initial state. Ignored if `isPressed` is set. */\n defaultPressed?: boolean;\n\n /* Fires whenever pressed state changes. */\n onPressedChange?: (pressed: boolean) => void;\n\n /* Static content OR render-prop receiving `{ pressed }` for state-driven swap. */\n children?: ToggleButtonChildren;\n\n /* Tooltip text — string OR fn receiving `{ pressed }`. State-aware form keeps consumer-supplied strings (i18n discipline). */\n title?: StateAware<string>;\n\n /* Accessible label — string OR fn. Use when icon-only or when `aria-pressed` alone is insufficient context for screen readers. */\n 'aria-label'?: StateAware<string>;\n\n /* Per-instance color override — applies to the active `tone`'s theme tokens. See `ColorProp`. */\n color?: ColorProp;\n\n /* Optional rich tooltip (SDK `Tooltip`) shown on hover/focus — use for icon-only toggles. */\n tooltip?: ReactNode;\n\n /* Render element. `'div'` (role=button + Space/Enter keyboard) lets you nest INTERACTIVE children (a color picker, a link) inside a segment without invalid button-in-button markup. Default `'button'`. */\n as?: 'button' | 'div';\n}\n\n/* Two-state action button (on/off) — sets `aria-pressed` + `data-pressed=\"true|false\"`. Wraps Button to inherit size union, shape, asChild, loading, padding/radius. Press appearance lives in `toggleButtonVariants` (variant × tone matrix); ToggleButton's own appearance overrides Button's neutral-ghost baseline via class order. */\nexport const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(\n (\n {\n isPressed,\n defaultPressed,\n onPressedChange,\n onClick,\n variant = 'ghost',\n tone = 'primary',\n color,\n className,\n children,\n title,\n tooltip,\n 'aria-label': ariaLabel,\n as = 'button',\n ...buttonProps\n },\n ref,\n ) => {\n const [value, setValue] = useControlled({\n controlled: isPressed,\n default: defaultPressed ?? false,\n onChange: onPressedChange,\n });\n\n const renderedChildren =\n typeof children === 'function' ? children({ pressed: value }) : children;\n\n /* Resolve state-aware string props to plain strings for the underlying Button. */\n const resolvedTitle =\n typeof title === 'function' ? title({ pressed: value }) : title;\n const resolvedAriaLabel =\n typeof ariaLabel === 'function' ? ariaLabel({ pressed: value }) : ariaLabel;\n\n const isDiv = as === 'div';\n\n const button = (\n <Button\n ref={ref}\n /* Ghost baseline — ToggleButton's compound classes paint over Button's defaults via class order. tone is forwarded so per-instance `color` overrides hit the right `--color-{tone}` slot. */\n variant=\"ghost\"\n tone={tone ?? undefined}\n color={color}\n /* `as=\"div\"` → render through Slot onto a real <div> so consumers may nest interactive children (button-in-button is invalid markup). Keyboard parity added on the div below. */\n asChild={isDiv}\n aria-pressed={value}\n aria-label={resolvedAriaLabel}\n data-pressed={value ? 'true' : 'false'}\n title={resolvedTitle}\n onClick={(e) => {\n onClick?.(e);\n if (!e.defaultPrevented) setValue(!value);\n }}\n className={cn(toggleButtonVariants({ variant, tone }), className)}\n {...buttonProps}\n >\n {isDiv ? (\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n setValue(!value);\n }\n }}\n >\n {renderedChildren}\n </div>\n ) : (\n renderedChildren\n )}\n </Button>\n );\n\n return tooltip ? <Tooltip content={tooltip}>{button}</Tooltip> : button;\n },\n);\n\nToggleButton.displayName = COMPONENT_NAME;\n","import {\n Children,\n cloneElement,\n forwardRef,\n isValidElement,\n type ComponentPropsWithoutRef,\n type ReactElement,\n} from 'react';\nimport { cn } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport type { ToggleButtonProps } from '../toggleButton/ToggleButton';\n\ntype Mode = 'single' | 'multi';\n\ninterface SingleProps {\n type?: 'single';\n value?: string | null;\n defaultValue?: string | null;\n onValueChange?: (value: string | null) => void;\n}\n\ninterface MultiProps {\n type: 'multi';\n value?: string[];\n defaultValue?: string[];\n onValueChange?: (value: string[]) => void;\n}\n\ntype ToggleButtonGroupProps = Omit<ComponentPropsWithoutRef<'div'>, 'defaultValue' | 'onChange'> & {\n orientation?: 'horizontal' | 'vertical';\n isAttached?: boolean;\n} & (SingleProps | MultiProps);\n\ninterface ChildLike extends ToggleButtonProps {\n value?: string;\n}\n\n/** Coordinates a row/column of ToggleButton children — `type=\"single\" | \"multi\"`. */\nexport const ToggleButtonGroup = forwardRef<HTMLDivElement, ToggleButtonGroupProps>(\n (props, ref) => {\n const {\n orientation = 'horizontal',\n isAttached = true,\n className,\n children,\n type,\n value,\n defaultValue,\n onValueChange,\n ...rest\n } = props;\n const mode: Mode = type === 'multi' ? 'multi' : 'single';\n\n const [singleValue, setSingleValue] = useControlled<string | null>({\n controlled: mode === 'single' ? (value as string | null | undefined) : undefined,\n default: mode === 'single' ? (defaultValue as string | null | undefined) ?? null : null,\n onChange:\n mode === 'single' ? (onValueChange as ((value: string | null) => void) | undefined) : undefined,\n });\n const [multiValue, setMultiValue] = useControlled<string[]>({\n controlled: mode === 'multi' ? (value as string[] | undefined) : undefined,\n default: mode === 'multi' ? (defaultValue as string[] | undefined) ?? [] : [],\n onChange:\n mode === 'multi' ? (onValueChange as ((value: string[]) => void) | undefined) : undefined,\n });\n\n const isPressed = (childValue: string | undefined): boolean => {\n if (childValue === undefined) return false;\n return mode === 'single' ? singleValue === childValue : multiValue.includes(childValue);\n };\n const togglePressed = (childValue: string | undefined) => {\n if (childValue === undefined) return;\n if (mode === 'single') {\n setSingleValue(singleValue === childValue ? null : childValue);\n } else {\n setMultiValue(\n multiValue.includes(childValue)\n ? multiValue.filter((v) => v !== childValue)\n : [...multiValue, childValue],\n );\n }\n };\n\n return (\n <div\n ref={ref}\n role=\"group\"\n data-orientation={orientation}\n className={cn(\n 'inline-flex',\n orientation === 'horizontal' ? 'flex-row' : 'flex-col',\n isAttached\n ? orientation === 'horizontal'\n ? '[&>*]:rounded-none [&>*:first-child]:rounded-l-md [&>*:last-child]:rounded-r-md [&>*:not(:first-child)]:-ml-px'\n : '[&>*]:rounded-none [&>*:first-child]:rounded-t-md [&>*:last-child]:rounded-b-md [&>*:not(:first-child)]:-mt-px'\n : 'gap-2',\n className,\n )}\n {...rest}\n >\n {Children.map(children, (child) => {\n if (!isValidElement(child)) return child;\n const c = child as ReactElement<ChildLike>;\n const childValue = c.props.value;\n // Compose with the child's own props — explicit `isPressed` wins; child's `onPressedChange` fires before the group toggle.\n return cloneElement(c, {\n isPressed: c.props.isPressed ?? isPressed(childValue),\n onPressedChange: (pressed: boolean) => {\n c.props.onPressedChange?.(pressed);\n togglePressed(childValue);\n },\n } as Partial<ChildLike>);\n })}\n </div>\n );\n },\n);\nToggleButtonGroup.displayName = 'ToggleButtonGroup';\n\nexport type { ToggleButtonGroupProps };\n","import { forwardRef } from 'react';\nimport { cn } from '../../utils';\nimport { ToggleButtonGroup, type ToggleButtonGroupProps } from '../toggleButtonGroup/ToggleButtonGroup';\n\nexport type SegmentedControlProps = ToggleButtonGroupProps;\n\n/** Visual variant of ToggleButtonGroup — iOS-style connected pill row. */\nexport const SegmentedControl = forwardRef<HTMLDivElement, SegmentedControlProps>(\n ({ className, ...props }, ref) => (\n <ToggleButtonGroup\n ref={ref}\n isAttached\n className={cn(\n 'rounded-md bg-muted p-1',\n '[&>*]:!rounded-md [&>*]:!ml-0 [&>*]:!border-transparent [&>*]:!bg-transparent',\n '[&>*[data-pressed=true]]:!bg-background [&>*[data-pressed=true]]:!text-foreground [&>*[data-pressed=true]]:shadow-sm',\n className,\n )}\n {...(props as ToggleButtonGroupProps)}\n />\n ),\n);\nSegmentedControl.displayName = 'SegmentedControl';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const fabVariants = tv({\n base: 'fixed inline-flex items-center justify-center rounded-full shadow-lg transition-all hover:shadow-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n variants: {\n variant: {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-card text-card-foreground border border-border hover:bg-muted',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n },\n size: {\n sm: 'h-10 w-10',\n md: 'h-14 w-14',\n lg: 'h-16 w-16',\n },\n position: {\n 'bottom-right': 'bottom-6 right-6',\n 'bottom-left': 'bottom-6 left-6',\n 'bottom-center': 'bottom-6 left-1/2 -translate-x-1/2',\n 'top-right': 'top-6 right-6',\n 'top-left': 'top-6 left-6',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n position: 'bottom-right',\n },\n});\n\nexport type FABVariants = VariantProps<typeof fabVariants>;\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { fabVariants, type FABVariants } from './FAB.variants';\n\nexport interface FABProps extends ButtonHTMLAttributes<HTMLButtonElement>, FABVariants {\n /** Required accessible label — FAB content is typically icon-only. */\n 'aria-label': string;\n children: ReactNode;\n}\n\n/** Floating Action Button — fixed-position circular button with shadow. */\nexport const FAB = forwardRef<HTMLButtonElement, FABProps>(\n ({ className, variant, size, position, type = 'button', ...props }, ref) => (\n <button\n ref={ref}\n type={type}\n className={cn(fabVariants({ variant, size, position }), className)}\n {...props}\n />\n ),\n);\nFAB.displayName = 'FAB';\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n type ReactNode,\n} from 'react';\nimport { Check, Copy } from 'lucide-react';\nimport { Icon } from '../../icons';\nimport { useClipboard } from '../../hooks';\nimport { OptionalExtensions } from '../../utils';\nimport { Button, type ButtonProps } from '../button/Button';\n\nconst COMPONENT_NAME = 'CopyButton';\n\nexport interface CopyButtonProps\n extends Omit<ButtonProps, 'onClick' | 'children' | 'aria-label' | 'onError'> {\n /* Text to copy when the button is activated. */\n text: string;\n\n /* Reset window for the `copied` state in ms. Default 2000. Set 0 to keep `copied` true until the next mount / explicit reset. */\n resetAfter?: number;\n\n /* Static content OR render-prop receiving `{copied, error}` for state-driven swap. Falls back to icon-only Copy/Check when omitted. */\n children?:\n | ReactNode\n | ((args: { copied: boolean; error: Error | null }) => ReactNode);\n\n /* Required accessible label — clipboard buttons are commonly icon-only and need a programmatic name. */\n 'aria-label': string;\n\n /* Override aria-label while copied=true. Falls back to `aria-label` when omitted (i18n discipline — consumer supplies all user-facing strings). */\n copiedAriaLabel?: string;\n\n /* Called with the caught Error when `navigator.clipboard.writeText` rejects. Fires once per error transition. */\n onError?: (error: Error) => void;\n}\n\n/* Renders a clipboard-copy button — for code blocks, ID / URL fields, and inline copy affordances. */\nexport const CopyButton = forwardRef<HTMLButtonElement, CopyButtonProps>(\n (\n {\n text,\n resetAfter = 2000,\n children,\n variant = 'ghost',\n 'aria-label': ariaLabel,\n copiedAriaLabel,\n onError,\n ...props\n },\n ref,\n ) => {\n const { copied, error, copy } = useClipboard({ resetAfter });\n\n // Stable ref keeps the effect's deps minimal — onError can be re-passed\n // unstably without re-firing on every render where `error` is set.\n const onErrorRef = useRef(onError);\n useEffect(() => {\n onErrorRef.current = onError;\n });\n\n useEffect(() => {\n if (error) onErrorRef.current?.(error);\n }, [error]);\n\n const effectiveAriaLabel = copied\n ? (copiedAriaLabel ?? ariaLabel)\n : ariaLabel;\n\n const content =\n typeof children === 'function'\n ? children({ copied, error })\n : (children ?? <Icon icon={copied ? Check : Copy} size={16} />);\n\n const handleClick = useCallback(() => {\n void copy(text);\n }, [copy, text]);\n\n return (\n <Button\n ref={ref}\n variant={variant}\n aria-label={effectiveAriaLabel}\n data-copied={OptionalExtensions.from(copied, 'true')}\n onClick={handleClick}\n {...props}\n >\n {content}\n </Button>\n );\n },\n);\n\nCopyButton.displayName = COMPONENT_NAME;\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { ChevronDown } from 'lucide-react';\nimport { cn, dataAttr } from '../../utils';\nimport { Icon } from '../../icons';\nimport { useControlled } from '../../hooks';\n\nexport interface DisclosureButtonProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onChange'> {\n /** Visible label (left-aligned). */\n children?: ReactNode;\n /** Controlled open state. */\n isOpen?: boolean;\n /** Uncontrolled initial state. */\n defaultOpen?: boolean;\n /** Fires whenever open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** Side the chevron sits on. Default `right`. */\n chevronSide?: 'left' | 'right';\n}\n\n/** Button with a rotating chevron — sets `aria-expanded` + `data-state=\"open|closed\"`. */\nexport const DisclosureButton = forwardRef<HTMLButtonElement, DisclosureButtonProps>(\n (\n {\n children,\n isOpen,\n defaultOpen = false,\n onOpenChange,\n onClick,\n chevronSide = 'right',\n className,\n type = 'button',\n ...props\n },\n ref,\n ) => {\n const [value, setValue] = useControlled({\n controlled: isOpen,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const chevron = (\n <Icon\n icon={ChevronDown}\n size={16}\n className={cn('transition-transform', value && 'rotate-180')}\n />\n );\n return (\n <button\n ref={ref}\n type={type}\n aria-expanded={value}\n data-state={value ? 'open' : 'closed'}\n data-disabled={dataAttr(props.disabled)}\n onClick={(e) => {\n onClick?.(e);\n if (!e.defaultPrevented) setValue(!value);\n }}\n className={cn(\n 'inline-flex w-full items-center justify-between gap-2 rounded-md px-3 py-2 text-sm font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n >\n {chevronSide === 'left' && chevron}\n <span className=\"flex-1 text-left\">{children}</span>\n {chevronSide === 'right' && chevron}\n </button>\n );\n },\n);\nDisclosureButton.displayName = 'DisclosureButton';\n","import {\n createContext,\n forwardRef,\n useContext,\n type AnchorHTMLAttributes,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cn } from '../../utils';\nimport { RovingFocusGroup, Slot, useRovingFocusItem } from '../../primitives';\n\ninterface ToolbarContextValue {\n orientation: 'horizontal' | 'vertical';\n}\n\nconst ToolbarContext = createContext<ToolbarContextValue | null>(null);\n\nfunction useToolbarContext() {\n const ctx = useContext(ToolbarContext);\n if (!ctx) throw new Error('Toolbar.* must be used inside <Toolbar>');\n return ctx;\n}\n\nexport interface ToolbarProps extends HTMLAttributes<HTMLDivElement> {\n orientation?: 'horizontal' | 'vertical';\n}\n\nconst ToolbarRoot = forwardRef<HTMLDivElement, ToolbarProps>(function Toolbar(\n { orientation = 'horizontal', className, children, ...rest },\n ref,\n) {\n return (\n <ToolbarContext.Provider value={{ orientation }}>\n <RovingFocusGroup\n ref={ref as never}\n orientation={orientation}\n canLoop\n role=\"toolbar\"\n aria-orientation={orientation}\n data-orientation={orientation}\n className={cn(\n 'inline-flex items-center gap-1 rounded-md border border-border bg-background p-1',\n orientation === 'vertical' && 'flex-col items-stretch',\n className,\n )}\n {...rest}\n >\n {children}\n </RovingFocusGroup>\n </ToolbarContext.Provider>\n );\n});\n\nexport interface ToolbarButtonProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>(\n function ToolbarButton({ asChild, className, onKeyDown, onFocus, children, ...rest }, ref) {\n const roving = useRovingFocusItem();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={(node: HTMLButtonElement | null) => {\n roving.ref(node);\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n }}\n type={asChild ? undefined : 'button'}\n tabIndex={roving.tabIndex}\n onFocus={(e: React.FocusEvent<HTMLButtonElement>) => {\n onFocus?.(e);\n roving.onFocus();\n }}\n onKeyDown={(e: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n roving.onKeyDown(e);\n }}\n className={cn(\n asChild\n ? className\n : cn(\n 'inline-flex h-8 items-center justify-center rounded-sm px-2 text-sm transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n className,\n ),\n )}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\n\nexport interface ToolbarLinkProps\n extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> {\n children: ReactNode;\n}\n\nexport const ToolbarLink = forwardRef<HTMLAnchorElement, ToolbarLinkProps>(function ToolbarLink(\n { className, onKeyDown, onFocus, children, ...rest },\n ref,\n) {\n const roving = useRovingFocusItem();\n return (\n <a\n ref={(node) => {\n roving.ref(node);\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n }}\n tabIndex={roving.tabIndex}\n onFocus={(e) => {\n onFocus?.(e);\n roving.onFocus();\n }}\n onKeyDown={(e) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n roving.onKeyDown(e);\n }}\n className={cn(\n 'inline-flex h-8 items-center justify-center rounded-sm px-2 text-sm text-foreground underline-offset-2 transition-colors hover:bg-muted hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...rest}\n >\n {children}\n </a>\n );\n});\n\nexport function ToolbarSeparator(props: HTMLAttributes<HTMLDivElement>) {\n const ctx = useToolbarContext();\n return (\n <div\n role=\"separator\"\n aria-orientation={ctx.orientation === 'vertical' ? 'horizontal' : 'vertical'}\n className={cn(\n 'shrink-0 bg-border',\n ctx.orientation === 'vertical' ? 'mx-1 h-px' : 'my-1 w-px self-stretch',\n )}\n {...props}\n />\n );\n}\n\nexport const Toolbar = Object.assign(ToolbarRoot, {\n Button: ToolbarButton,\n Link: ToolbarLink,\n Separator: ToolbarSeparator,\n});\n\nexport default Toolbar;\n","import {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useContext,\n useMemo,\n useRef,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { Plus, X } from 'lucide-react';\nimport { cn, composeRefs } from '../../utils';\nimport { useControlled, useEscape, useOutsideClick } from '../../hooks';\nimport { Presence } from '../../primitives';\nimport { Icon } from '../../icons';\nimport { FAB } from '../fab';\nimport type { FABVariants } from '../fab/FAB.variants';\n\nexport type SpeedDialPosition = NonNullable<FABVariants['position']>;\nexport type SpeedDialDirection = 'up' | 'down' | 'left' | 'right';\n\ninterface SpeedDialContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLButtonElement | null>;\n rootRef: React.MutableRefObject<HTMLDivElement | null>;\n direction: SpeedDialDirection;\n position: SpeedDialPosition;\n}\n\nconst SpeedDialContext = createContext<SpeedDialContextValue | null>(null);\n\nfunction useSpeedDialContext() {\n const ctx = useContext(SpeedDialContext);\n if (!ctx) throw new Error('SpeedDial.* must be used inside <SpeedDial>');\n return ctx;\n}\n\n/**\n * `Presence`-clonable list: a single `forwardRef` element that spreads\n * `data-state` (injected by `Presence`) + `ref` onto its node. Marked `group`\n * so each action item animates off its `data-[state]`; carries its own fade so\n * `Presence` has an animation on *this* node to watch before unmount. `forwardRef`\n * + `{...props}` spread are required so the ref and `data-state` actually land here.\n */\nconst SpeedDialList = forwardRef<HTMLUListElement, HTMLAttributes<HTMLUListElement>>(\n function SpeedDialList({ className, children, ...props }, ref) {\n return (\n <ul\n ref={ref}\n role=\"menu\"\n className={cn(\n 'group absolute flex',\n /* list fade gated on data-state; motion-safe so reduced-motion users\n get no movement. */\n 'motion-safe:data-[state=open]:animate-(--animate-fade-in)',\n 'motion-safe:data-[state=closed]:animate-(--animate-fade-out)',\n 'motion-reduce:animate-none',\n /* Per-item enter stagger: ramp `animation-delay` on the first few items\n while opening only (closed → delay 0 so no item outlasts the list's\n own fade-out, which gates unmount). */\n 'motion-safe:group-data-[state=open]:[&>li:nth-child(2)]:[animation-delay:40ms]',\n 'motion-safe:group-data-[state=open]:[&>li:nth-child(3)]:[animation-delay:80ms]',\n 'motion-safe:group-data-[state=open]:[&>li:nth-child(4)]:[animation-delay:120ms]',\n 'motion-safe:group-data-[state=open]:[&>li:nth-child(n+5)]:[animation-delay:160ms]',\n className,\n )}\n {...props}\n >\n {children}\n </ul>\n );\n },\n);\n\nconst POSITION_TO_DIRECTION: Record<SpeedDialPosition, SpeedDialDirection> = {\n 'bottom-right': 'up',\n 'bottom-left': 'up',\n 'bottom-center': 'up',\n 'top-right': 'down',\n 'top-left': 'down',\n};\n\nconst POSITION_OFFSETS: Record<SpeedDialPosition, string> = {\n 'bottom-right': 'bottom-6 right-6',\n 'bottom-left': 'bottom-6 left-6',\n 'bottom-center': 'bottom-6 left-1/2 -translate-x-1/2',\n 'top-right': 'top-6 right-6',\n 'top-left': 'top-6 left-6',\n};\n\nconst DIRECTION_TO_STACK: Record<SpeedDialDirection, string> = {\n up: 'flex-col-reverse bottom-full mb-3',\n down: 'flex-col top-full mt-3',\n left: 'flex-row-reverse right-full mr-3',\n right: 'flex-row top-1/2 -translate-y-1/2 left-full ml-3',\n};\n\nconst DIRECTION_LABEL_SIDE: Record<SpeedDialDirection, 'left' | 'right'> = {\n up: 'right',\n down: 'right',\n left: 'right',\n right: 'left',\n};\n\nexport interface SpeedDialProps {\n position?: SpeedDialPosition;\n direction?: SpeedDialDirection;\n isOpen?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n gap?: number;\n className?: string;\n children: ReactNode;\n}\n\nfunction SpeedDialRoot({\n position = 'bottom-right',\n direction,\n isOpen: openProp,\n defaultOpen = false,\n onOpenChange,\n gap = 12,\n className,\n children,\n}: SpeedDialProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const resolvedDirection = direction ?? POSITION_TO_DIRECTION[position];\n\n useEscape(() => {\n if (!open) return;\n setOpen(false);\n requestAnimationFrame(() => triggerRef.current?.focus());\n }, open);\n\n useOutsideClick(\n rootRef,\n () => {\n if (open) setOpen(false);\n },\n open,\n );\n\n const ctx = useMemo<SpeedDialContextValue>(\n () => ({ open, setOpen, triggerRef, rootRef, direction: resolvedDirection, position }),\n [open, setOpen, resolvedDirection, position],\n );\n\n // The trigger renders always (a closed dial must still be openable); only the\n // action items are gated behind `open`.\n const childArray = Children.toArray(children);\n const triggerChildren = childArray.filter(\n (child) => isValidElement(child) && child.type === SpeedDialTrigger,\n );\n const actionChildren = childArray.filter(\n (child) => !(isValidElement(child) && child.type === SpeedDialTrigger),\n );\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (!open || (e.key !== 'ArrowDown' && e.key !== 'ArrowUp')) return;\n const root = rootRef.current;\n if (!root) return;\n const items = Array.from(root.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]'));\n if (items.length === 0) return;\n e.preventDefault();\n const currentIndex = items.indexOf(document.activeElement as HTMLButtonElement);\n const nextIndex =\n currentIndex === -1\n ? e.key === 'ArrowDown'\n ? 0\n : items.length - 1\n : (currentIndex + (e.key === 'ArrowDown' ? 1 : -1) + items.length) % items.length;\n items[nextIndex]?.focus();\n };\n\n return (\n <SpeedDialContext.Provider value={ctx}>\n <div\n ref={rootRef}\n data-state={open ? 'open' : 'closed'}\n onKeyDown={handleKeyDown}\n className={cn('fixed', POSITION_OFFSETS[position], className)}\n >\n {/* `Presence` clones `data-state` (\"open\" | \"closed\") + a `ref` onto the\n list and defers unmount until its fade-out ends — keeps the exit from\n being killed by the hard `!open` unmount. Items pop in/out off the\n list's `group` state (see `SpeedDialAction`), staggered on enter. */}\n <Presence isPresent={open}>\n <SpeedDialList\n data-direction={resolvedDirection}\n style={{ gap }}\n className={DIRECTION_TO_STACK[resolvedDirection]}\n >\n {actionChildren}\n </SpeedDialList>\n </Presence>\n {triggerChildren}\n </div>\n </SpeedDialContext.Provider>\n );\n}\nSpeedDialRoot.displayName = 'SpeedDial';\n\nexport interface SpeedDialTriggerProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n /** Required accessible label. Default `\"Toggle actions\"`. */\n 'aria-label'?: string;\n closedIcon?: ReactNode;\n openIcon?: ReactNode;\n variant?: FABVariants['variant'];\n size?: FABVariants['size'];\n}\n\nexport const SpeedDialTrigger = forwardRef<HTMLButtonElement, SpeedDialTriggerProps>(\n function SpeedDialTrigger(\n {\n 'aria-label': ariaLabel = 'Toggle actions',\n closedIcon,\n openIcon,\n variant,\n size,\n onClick,\n className,\n ...rest\n },\n forwardedRef,\n ) {\n const ctx = useSpeedDialContext();\n return (\n <FAB\n {...rest}\n ref={composeRefs(forwardedRef, ctx.triggerRef)}\n aria-label={ariaLabel}\n aria-haspopup=\"menu\"\n aria-expanded={ctx.open}\n variant={variant}\n size={size}\n position={ctx.position}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(!ctx.open);\n }}\n className={cn('static !bottom-auto !left-auto !right-auto !top-auto !translate-x-0', className)}\n >\n {ctx.open ? openIcon ?? <Icon icon={X} size={20} /> : closedIcon ?? <Icon icon={Plus} size={20} />}\n </FAB>\n );\n },\n);\n\nexport interface SpeedDialActionProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n 'aria-label': string;\n icon: ReactNode;\n onSelect?: () => void;\n tooltip?: ReactNode;\n}\n\nexport const SpeedDialAction = forwardRef<HTMLButtonElement, SpeedDialActionProps>(\n function SpeedDialAction(\n { 'aria-label': ariaLabel, icon, onSelect, tooltip, className, onClick, type = 'button', ...rest },\n forwardedRef,\n ) {\n const ctx = useSpeedDialContext();\n const labelSide = DIRECTION_LABEL_SIDE[ctx.direction];\n return (\n <li\n role=\"none\"\n data-side={labelSide}\n className={cn(\n 'flex items-center gap-2',\n /* fade+scale each action off the list's `group` state; motion-safe so\n reduced-motion users get no movement (delay ramp lives on the list). */\n 'motion-safe:group-data-[state=open]:animate-(--animate-pop-in)',\n 'motion-safe:group-data-[state=closed]:animate-(--animate-pop-out)',\n 'motion-reduce:animate-none',\n )}\n >\n {tooltip && labelSide === 'left' && (\n <span className=\"rounded-md bg-popover px-2 py-1 text-xs text-popover-foreground shadow\">\n {tooltip}\n </span>\n )}\n <button\n {...rest}\n ref={forwardedRef}\n type={type}\n role=\"menuitem\"\n aria-label={ariaLabel}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n onSelect?.();\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }}\n className={cn(\n 'inline-flex h-10 w-10 items-center justify-center rounded-full bg-card text-card-foreground shadow-md transition-all hover:shadow-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n >\n {icon}\n </button>\n {tooltip && labelSide === 'right' && (\n <span className=\"rounded-md bg-popover px-2 py-1 text-xs text-popover-foreground shadow\">\n {tooltip}\n </span>\n )}\n </li>\n );\n },\n);\n\nexport const SpeedDial = Object.assign(SpeedDialRoot, {\n Trigger: SpeedDialTrigger,\n Action: SpeedDialAction,\n});\n\nexport default SpeedDial;\n","import {\n forwardRef,\n useEffect,\n useState,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { ArrowUp } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\n\nexport type BackToTopPosition =\n | 'bottom-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'top-right'\n | 'top-left';\n\nexport interface BackToTopButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Scroll distance (px) before the button appears. Default 400. */\n threshold?: number;\n /** Scope to a specific scrollable element. Defaults to the window. */\n scrollContainer?: HTMLElement | null;\n position?: BackToTopPosition;\n /** Visible label. Omit for icon-only. */\n label?: ReactNode;\n 'aria-label'?: string;\n}\n\nconst POSITION: Record<BackToTopPosition, string> = {\n 'bottom-right': 'bottom-6 right-6',\n 'bottom-left': 'bottom-6 left-6',\n 'bottom-center': 'bottom-6 left-1/2 -translate-x-1/2',\n 'top-right': 'top-6 right-6',\n 'top-left': 'top-6 left-6',\n};\n\n/** Floating button revealed past `threshold` scroll — smooth-scrolls to top. */\nexport const BackToTopButton = forwardRef<HTMLButtonElement, BackToTopButtonProps>(\n function BackToTopButton(\n {\n threshold = 400,\n scrollContainer,\n position = 'bottom-right',\n label,\n 'aria-label': ariaLabel = 'Back to top',\n className,\n onClick,\n type = 'button',\n ...rest\n },\n ref,\n ) {\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const el: HTMLElement | Window = scrollContainer ?? window;\n const read = () => {\n const y =\n 'scrollY' in el ? (el as Window).scrollY : (el as HTMLElement).scrollTop;\n setVisible(y >= threshold);\n };\n read();\n const target = el as EventTarget;\n target.addEventListener('scroll', read, { passive: true });\n return () => target.removeEventListener('scroll', read);\n }, [threshold, scrollContainer]);\n\n if (!visible) return null;\n\n return (\n <button\n ref={ref}\n type={type}\n aria-label={ariaLabel}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n const reducedMotion =\n typeof window !== 'undefined' &&\n window.matchMedia?.('(prefers-reduced-motion: reduce)').matches;\n const target = scrollContainer ?? window;\n if ('scrollTo' in target) {\n (target as Window | HTMLElement).scrollTo({\n top: 0,\n behavior: reducedMotion ? 'auto' : 'smooth',\n });\n }\n }}\n className={cn(\n 'fixed z-banner inline-flex items-center justify-center gap-2 rounded-full bg-card text-card-foreground shadow-lg ring-1 ring-border transition-all hover:shadow-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n label ? 'h-11 px-4 text-sm font-medium' : 'h-11 w-11',\n POSITION[position],\n className,\n )}\n {...rest}\n >\n <Icon icon={ArrowUp} size={16} />\n {label}\n </button>\n );\n },\n);\nBackToTopButton.displayName = 'BackToTopButton';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/index.ts","../src/hooks/useControlled/useControlled.ts","../src/hooks/useDisclosure/useDisclosure.ts","../src/hooks/useEventListener/useEventListener.ts","../src/hooks/useOutsideClick/useOutsideClick.ts","../src/hooks/useEscape/useEscape.ts","../src/hooks/useFocusTrap/useFocusTrap.ts","../src/hooks/useResizeObserver/useResizeObserver.ts","../src/hooks/useMediaQuery/useMediaQuery.ts","../src/hooks/useReducedMotion/useReducedMotion.ts","../src/hooks/useClipboard/useClipboard.ts","../src/hooks/useDebounceHandler/useDebounceHandler.ts","../src/hooks/useTypeahead/useTypeahead.ts"],"names":["useState","useCallback","useRef","useLayoutEffect","useEffect"],"mappings":"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","file":"chunk-RNHY33US.js","sourcesContent":["export { useId } from './useId';\nexport { useControlled } from './useControlled';\nexport { useDisclosure, type DisclosureControls } from './useDisclosure';\nexport { useEventListener } from './useEventListener';\nexport { useOutsideClick } from './useOutsideClick';\nexport { useEscape } from './useEscape';\nexport { useFocusTrap } from './useFocusTrap';\nexport { useScrollLock } from './useScrollLock';\nexport { useResizeObserver } from './useResizeObserver';\nexport { useMediaQuery } from './useMediaQuery';\nexport { useReducedMotion } from './useReducedMotion';\nexport { useClipboard, type UseClipboardOptions, type ClipboardControls } from './useClipboard';\nexport { useDebounceHandler } from './useDebounceHandler';\nexport {\n useTypeahead,\n type UseTypeaheadOptions,\n type UseTypeaheadReturn,\n} from './useTypeahead';\n","import { useCallback, useLayoutEffect, useRef, useState } from 'react';\n\ninterface UseControlledOptions<T> {\n controlled: T | undefined;\n default: T;\n onChange?: (value: T) => void;\n}\n\n/**\n * Standard controlled/uncontrolled pattern.\n *\n * - If `controlled` is defined, the component is controlled — internal state is\n * ignored, `setValue` only fires `onChange`.\n * - Otherwise the component owns its state, `setValue` updates it, and `onChange`\n * still fires for consumers that want to observe changes.\n */\nexport function useControlled<T>({\n controlled,\n default: defaultValue,\n onChange,\n}: UseControlledOptions<T>): [T, (value: T) => void] {\n const [uncontrolled, setUncontrolled] = useState<T>(defaultValue);\n const onChangeRef = useRef(onChange);\n useLayoutEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n const isControlled = controlled !== undefined;\n const value = isControlled ? controlled : uncontrolled;\n\n const setValue = useCallback(\n (next: T) => {\n if (!isControlled) setUncontrolled(next);\n onChangeRef.current?.(next);\n },\n [isControlled],\n );\n\n return [value, setValue];\n}\n","import { useCallback, useState } from 'react';\n\nexport interface DisclosureControls {\n isOpen: boolean;\n open: () => void;\n close: () => void;\n toggle: () => void;\n setOpen: (next: boolean) => void;\n}\n\n/**\n * Minimal open/close state with stable callbacks. The standard backbone for\n * Modal, Drawer, Popover, Menu, Accordion, etc. Use `useControlled` underneath\n * when the consumer may also pass a controlled `open` prop.\n */\nexport function useDisclosure(initial = false): DisclosureControls {\n const [isOpen, setIsOpen] = useState(initial);\n const open = useCallback(() => setIsOpen(true), []);\n const close = useCallback(() => setIsOpen(false), []);\n const toggle = useCallback(() => setIsOpen((o) => !o), []);\n return { isOpen, open, close, toggle, setOpen: setIsOpen };\n}\n","import { useEffect, useLayoutEffect, useRef } from 'react';\n\ntype Target = Window | Document | HTMLElement | null;\n\n/**\n * Add an event listener and clean it up automatically. Handler is read from\n * a ref so consumers don't need to memoize it.\n */\nexport function useEventListener<K extends string>(\n event: K,\n handler: (event: Event) => void,\n target: Target = document,\n options?: boolean | AddEventListenerOptions,\n): void {\n const handlerRef = useRef(handler);\n const optionsRef = useRef(options);\n useLayoutEffect(() => {\n handlerRef.current = handler;\n optionsRef.current = options;\n }, [handler, options]);\n\n useEffect(() => {\n if (!target) return;\n // Capture options at attach time — remove must use the same capture flag.\n const listenerOptions = optionsRef.current;\n const listener = (e: Event) => handlerRef.current(e);\n target.addEventListener(event, listener, listenerOptions);\n return () => target.removeEventListener(event, listener, listenerOptions);\n }, [event, target]);\n}\n","import { useEffect, useLayoutEffect, useRef, type RefObject } from 'react';\n\n/**\n * Fire `handler` when the user clicks outside any of the provided refs.\n * Uses `pointerdown` so it fires before focus shifts (avoids losing focus\n * inside an overlay before a click on a trigger registers).\n */\nexport function useOutsideClick(\n refs: RefObject<HTMLElement | null> | RefObject<HTMLElement | null>[],\n handler: (event: PointerEvent) => void,\n enabled = true,\n): void {\n const handlerRef = useRef(handler);\n const refsRef = useRef(refs);\n useLayoutEffect(() => {\n handlerRef.current = handler;\n refsRef.current = refs;\n }, [handler, refs]);\n\n useEffect(() => {\n if (!enabled) return;\n\n const onPointerDown = (e: PointerEvent) => {\n const target = e.target as Node | null;\n if (!target) return;\n const refList = Array.isArray(refsRef.current) ? refsRef.current : [refsRef.current];\n for (const ref of refList) {\n if (ref.current && ref.current.contains(target)) return;\n }\n handlerRef.current(e);\n };\n\n document.addEventListener('pointerdown', onPointerDown, true);\n return () => document.removeEventListener('pointerdown', onPointerDown, true);\n }, [enabled]);\n}\n","import { useEffect, useLayoutEffect, useRef } from 'react';\n\n/**\n * Fire `handler` when the Escape key is pressed at the document level.\n * For nested overlays, the topmost should call `event.stopPropagation()` in\n * its handler — `DismissableLayer` handles this stack-style.\n */\nexport function useEscape(handler: (event: KeyboardEvent) => void, enabled = true): void {\n const handlerRef = useRef(handler);\n useLayoutEffect(() => {\n handlerRef.current = handler;\n }, [handler]);\n\n useEffect(() => {\n if (!enabled) return;\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') handlerRef.current(e);\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [enabled]);\n}\n","import { useEffect, type RefObject } from 'react';\n\nconst FOCUSABLE_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n '[contenteditable=\"true\"]',\n].join(',');\n\nfunction isVisible(el: HTMLElement): boolean {\n // checkVisibility covers display/visibility/content-visibility; the\n // getClientRects fallback (older engines) still includes position:fixed\n // elements, which `offsetParent !== null` would wrongly exclude.\n return el.checkVisibility?.() ?? el.getClientRects().length > 0;\n}\n\nfunction getFocusable(container: HTMLElement): HTMLElement[] {\n return Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR)).filter(\n (el) => el.getAttribute('aria-hidden') !== 'true' && isVisible(el),\n );\n}\n\n/**\n * Trap Tab / Shift+Tab focus inside the referenced element. On mount, focuses\n * the first focusable child (unless already focused inside). On unmount,\n * returns focus to the element that had it before mounting.\n *\n * For richer behavior (sentinels, nested traps), wrap `FocusScope` instead —\n * this hook is the lower primitive.\n */\nexport function useFocusTrap(ref: RefObject<HTMLElement | null>, enabled = true): void {\n useEffect(() => {\n if (!enabled || !ref.current) return;\n const container = ref.current;\n const previouslyFocused = document.activeElement as HTMLElement | null;\n\n const previousTabIndex = container.getAttribute('tabindex');\n let tabIndexMutated = false;\n\n const focusables = getFocusable(container);\n if (focusables.length > 0 && !container.contains(document.activeElement)) {\n focusables[0]?.focus();\n } else if (focusables.length === 0) {\n container.tabIndex = -1;\n tabIndexMutated = true;\n container.focus();\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab') return;\n const items = getFocusable(container);\n if (items.length === 0) {\n e.preventDefault();\n return;\n }\n const first = items[0];\n const last = items[items.length - 1];\n if (!first || !last) return;\n const active = document.activeElement;\n if (e.shiftKey && active === first) {\n e.preventDefault();\n last.focus();\n } else if (!e.shiftKey && active === last) {\n e.preventDefault();\n first.focus();\n }\n };\n\n container.addEventListener('keydown', onKeyDown);\n return () => {\n container.removeEventListener('keydown', onKeyDown);\n if (tabIndexMutated) {\n if (previousTabIndex === null) container.removeAttribute('tabindex');\n else container.setAttribute('tabindex', previousTabIndex);\n }\n previouslyFocused?.focus?.();\n };\n }, [ref, enabled]);\n}\n","import { useEffect, useLayoutEffect, useRef, type RefObject } from 'react';\n\n/**\n * Run `callback` whenever the referenced element's size changes. Returns\n * synchronously after layout, before paint. Cleans up automatically.\n */\nexport function useResizeObserver<T extends HTMLElement>(\n ref: RefObject<T | null>,\n callback: (entry: ResizeObserverEntry) => void,\n enabled = true,\n): void {\n const callbackRef = useRef(callback);\n useLayoutEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (!enabled || !ref.current || typeof ResizeObserver === 'undefined') return;\n const element = ref.current;\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) callbackRef.current(entry);\n });\n observer.observe(element);\n return () => observer.disconnect();\n }, [ref, enabled]);\n}\n","import { useCallback, useSyncExternalStore } from 'react';\n\n/**\n * Reactively follow a CSS media query. Pass a query string like\n * `'(min-width: 768px)'` or `'(prefers-reduced-motion: reduce)'`.\n * SSR-safe — renders `false` on the server, syncs to the real value on the client.\n */\nexport function useMediaQuery(query: string): boolean {\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n const mql = window.matchMedia(query);\n mql.addEventListener('change', onStoreChange);\n return () => mql.removeEventListener('change', onStoreChange);\n },\n [query],\n );\n\n return useSyncExternalStore(\n subscribe,\n () => window.matchMedia(query).matches,\n () => false,\n );\n}\n","import { useMediaQuery } from '../useMediaQuery';\n\n/**\n * Returns `true` when the user has requested reduced motion via OS settings.\n * Components should short-circuit looping/transitional animations to a\n * static final state when this is `true`.\n */\nexport function useReducedMotion(): boolean {\n return useMediaQuery('(prefers-reduced-motion: reduce)');\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nexport interface UseClipboardOptions {\n /** Reset `copied` back to false after this many ms. Default 2000. Set 0 to keep state until explicitly reset. */\n resetAfter?: number;\n}\n\nexport interface ClipboardControls {\n /** True for `resetAfter` ms after a successful copy. */\n copied: boolean;\n /** Last error from `navigator.clipboard.writeText`, if any. */\n error: Error | null;\n /** Write `text` to the system clipboard. Returns the promise. */\n copy: (text: string) => Promise<void>;\n /** Force-clear the `copied` flag. */\n reset: () => void;\n}\n\n/**\n * Wraps `navigator.clipboard.writeText` with a transient `copied` flag for\n * post-action UI (icon swap, \"Copied!\" tooltip). Pass `resetAfter: 0` to\n * keep `copied` true until you call `reset()`.\n */\nexport function useClipboard({ resetAfter = 2000 }: UseClipboardOptions = {}): ClipboardControls {\n const [copied, setCopied] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const reset = useCallback(() => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n setCopied(false);\n setError(null);\n }, []);\n\n const copy = useCallback(\n async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n setError(null);\n setCopied(true);\n if (resetAfter > 0) {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => setCopied(false), resetAfter);\n }\n } catch (err) {\n setCopied(false);\n setError(err instanceof Error ? err : new Error(String(err)));\n }\n },\n [resetAfter],\n );\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n };\n }, []);\n\n return { copied, error, copy, reset };\n}\n","import { useCallback, useRef } from 'react';\nimport type { SyntheticEvent } from 'react';\n\n/**\n * Throttle a React event handler. First call in a `ms` window fires; subsequent\n * within the window are swallowed via `event.preventDefault()`. When `ms` is\n * `undefined`, the handler passes through unchanged. Use to prevent rapid-fire\n * gestures (double-clicks, double-submits, repeated touches) without wiring\n * timer state in the consumer.\n *\n * Functionally a *throttle* (first wins). The `Debounce` naming is kept for\n * vocabulary consistency with the `debounceMs` props on consuming components.\n */\nexport function useDebounceHandler<E extends SyntheticEvent>(\n handler: ((event: E) => void) | undefined,\n ms: number | undefined,\n): (event: E) => void {\n const lastTimeRef = useRef(0);\n return useCallback(\n (event: E) => {\n if (ms !== undefined) {\n const now = Date.now();\n if (now - lastTimeRef.current < ms) {\n event.preventDefault();\n return;\n }\n lastTimeRef.current = now;\n }\n handler?.(event);\n },\n [handler, ms],\n );\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport type { KeyboardEvent } from 'react';\n\n/** Resolves the typeahead item pool — a static array or a getter read lazily on each keystroke. */\ntype ItemSource<T> = readonly T[] | (() => readonly T[]);\n\n/** Configures {@link useTypeahead}. `T` is the item type the caller stores per option. */\nexport interface UseTypeaheadOptions<T> {\n /** Supplies the items to match against; a function is re-read on every keystroke (live lists). */\n items: ItemSource<T>;\n /** Extracts the comparable label from an item. Matching is case-insensitive on this string. */\n getLabel: (item: T) => string;\n /** Reports whether an item is disabled; disabled items are skipped during matching. */\n isDisabled?: (item: T) => boolean;\n /** Fires with the matched item and its index in the (live) item array when a keystroke resolves. */\n onMatch: (item: T, index: number) => void;\n /** Returns the index of the currently-active item — same-letter cycling starts after it. */\n getActiveIndex?: () => number;\n /** Disables the matcher when `false`; every key falls through unhandled. Defaults to `true`. */\n enabled?: boolean;\n /** Idle time (ms) after which the typed buffer resets. Defaults to `500`. */\n timeout?: number;\n}\n\n/** The keyboard handler + manual reset returned by {@link useTypeahead}. */\nexport interface UseTypeaheadReturn {\n /** Feeds a keydown into the matcher. Returns `true` when consumed (caller should stop), else `false`. */\n onKeyDown: (event: KeyboardEvent) => boolean;\n /** Clears the typed buffer immediately (e.g. on blur / close). */\n reset: () => void;\n}\n\n/** Reports whether a key event carries a single printable character (and no command modifier). */\nfunction isPrintableKey(event: KeyboardEvent): boolean {\n if (event.ctrlKey || event.metaKey || event.altKey) return false;\n // Printable keys surface as a single char in `key`; named keys (Enter, ArrowDown…) are multi-char.\n return event.key.length === 1;\n}\n\n/** Reports whether every char in the buffer is the same letter — the \"cycle\" case (e.g. \"aaa\"). */\nfunction isAllSameChar(buffer: string): boolean {\n return buffer.length > 0 && [...buffer].every((c) => c === buffer[0]);\n}\n\n/**\n * APG-correct type-to-select matcher (WAI-ARIA listbox/combobox typeahead). Accumulates printable\n * chars into a buffer (resets after `timeout` ms idle): a repeated single char cycles to the next\n * label starting with it (after `getActiveIndex()`, wrap-around), else prefix-matches the whole\n * buffer case-insensitively; disabled items skipped. On a hit `onMatch(item, index)` fires; consumed\n * keys return `true`, others `false` to fall through. Space is typeable only while buffering (a\n * leading Space reaches the caller). SSR-safe; reset timer cleared on unmount.\n */\nexport function useTypeahead<T>(options: UseTypeaheadOptions<T>): UseTypeaheadReturn {\n const { enabled = true } = options;\n\n /* Consumer fns/values read through a ref so `onKeyDown` stays referentially stable\n (callers wire it into their own memoised keydown handlers). */\n const optsRef = useRef(options);\n optsRef.current = options;\n\n const bufferRef = useRef('');\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clearTimer = useCallback(() => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n }, []);\n\n const reset = useCallback(() => {\n bufferRef.current = '';\n clearTimer();\n }, [clearTimer]);\n\n /* Clears the pending reset timer on unmount (no stale fire after teardown). */\n useEffect(() => clearTimer, [clearTimer]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent): boolean => {\n const o = optsRef.current;\n if (o.enabled === false) return false;\n if (!isPrintableKey(event)) return false;\n\n const isSpace = event.key === ' ';\n const hasBuffer = bufferRef.current.length > 0;\n /* Reserve Space: with no active buffer, hand it back so the caller can select; while typing,\n a Space is a real character (matches labels with spaces) and is consumed. */\n if (isSpace && !hasBuffer) return false;\n\n const resolved = typeof o.items === 'function' ? o.items() : o.items;\n const list = resolved as readonly T[];\n if (list.length === 0) return false;\n\n const nextBuffer = bufferRef.current + event.key;\n bufferRef.current = nextBuffer;\n\n /* Restart the idle window on every accepted keystroke. */\n clearTimer();\n timerRef.current = setTimeout(() => {\n bufferRef.current = '';\n timerRef.current = null;\n }, o.timeout ?? 500);\n\n const labelOf = (item: T) => o.getLabel(item).toLowerCase();\n const disabledOf = (item: T) => (o.isDisabled ? o.isDisabled(item) : false);\n const startFrom = o.getActiveIndex ? o.getActiveIndex() : -1;\n\n let matchIndex = -1;\n if (isAllSameChar(nextBuffer)) {\n /* Same-letter repeat → cycle to the next label starting with that letter, after the active one. */\n const char = nextBuffer[0]!.toLowerCase();\n for (let step = 1; step <= list.length; step += 1) {\n const idx = (startFrom + step + list.length) % list.length;\n const item = list[idx]!;\n if (!disabledOf(item) && labelOf(item).startsWith(char)) {\n matchIndex = idx;\n break;\n }\n }\n } else {\n /* Multi-char buffer → prefix-match the whole buffer; scan from the current item forward so a\n refining sequence stays put when the active item still matches. */\n const prefix = nextBuffer.toLowerCase();\n const begin = startFrom < 0 ? 0 : startFrom;\n for (let step = 0; step < list.length; step += 1) {\n const idx = (begin + step) % list.length;\n const item = list[idx]!;\n if (!disabledOf(item) && labelOf(item).startsWith(prefix)) {\n matchIndex = idx;\n break;\n }\n }\n }\n\n if (matchIndex >= 0) {\n o.onMatch(list[matchIndex]!, matchIndex);\n return true;\n }\n /* No label matched, but the char was consumed into the buffer (and Space, once buffering,\n must not double as select) — report handled so the caller doesn't also act on it. */\n return true;\n },\n [clearTimer],\n );\n\n /* `enabled` toggling off mid-type should not leave a stale buffer/timer armed. */\n useEffect(() => {\n if (!enabled) reset();\n }, [enabled, reset]);\n\n return { onKeyDown, reset };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/display/kbd/Kbd.tsx","../src/display/tag/Tag.variants.ts","../src/display/tag/Tag.tsx","../src/forms/DateExtensions.ts"],"names":["forwardRef","jsx"],"mappings":"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","file":"chunk-SIAFOCT4.js","sourcesContent":["import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type KbdProps = ComponentPropsWithoutRef<'kbd'>;\n\n/**\n * Keyboard key affordance — `<kbd>` styled with subtle border and inset\n * shadow. Single key per `<Kbd>`; chain via `<Kbd>⌘</Kbd> + <Kbd>K</Kbd>`.\n */\nexport const Kbd = forwardRef<HTMLElement, KbdProps>(({ className, ...props }, ref) => (\n <kbd\n ref={ref}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-border',\n 'bg-muted px-1.5 font-mono text-xs text-muted-foreground shadow-[inset_0_-1px_0_0_rgb(0_0_0/0.05)]',\n className,\n )}\n {...props}\n />\n));\nKbd.displayName = 'Kbd';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const tagVariants = tv({\n base: 'inline-flex items-center gap-1 rounded-md border border-border bg-card px-2 py-0.5 text-xs font-medium text-card-foreground',\n variants: {\n variant: {\n neutral: '',\n brand: 'border-transparent bg-primary-soft text-primary-soft-foreground',\n success: 'border-transparent bg-success-soft text-success-soft-foreground',\n warning: 'border-transparent bg-warning-soft text-warning-soft-foreground',\n danger: 'border-transparent bg-destructive-soft text-destructive-soft-foreground',\n info: 'border-transparent bg-info-soft text-info-soft-foreground',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n },\n});\n\nexport type TagVariants = VariantProps<typeof tagVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { tagVariants, type TagVariants } from './Tag.variants';\n\nexport interface TagProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n TagVariants {\n children?: ReactNode;\n /** Show a close (×) button. Pass a handler to receive the click. */\n onClose?: () => void;\n /** Accessible label for the close button. Default `\"Remove\"`. */\n closeLabel?: string;\n}\n\n/**\n * Pill with an optional close button. The close button is a raw `<button>`\n * to keep the strict atom rule (Tag is L3, so importing Button would make\n * this an atom-on-atom composition).\n */\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(\n ({ children, onClose, closeLabel = 'Remove', variant, className, ...props }, ref) => (\n <span ref={ref} className={cn(tagVariants({ variant }), className)} {...props}>\n {children}\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n onClick={onClose}\n className=\"-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <Icon icon={X} size={12} />\n </button>\n )}\n </span>\n ),\n);\nTag.displayName = 'Tag';\n","// Shared date helpers for Calendar / DatePicker / DateField / RangeCalendar.\n// Co-located in `forms/` so imports stay within-domain.\n//\n// Temporal-based — the ecosystem standardizes on the Temporal API (dates =\n// `Temporal.*`). `Temporal.PlainDate` carries calendar math (no timezone), so\n// these helpers are inherently local/wall-clock, which is what calendar UIs want.\n// `Temporal.PlainTime` carries hour/minute for the time components.\n\nimport { Temporal } from '@js-temporal/polyfill';\n\nexport const WEEKDAYS_SHORT = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nexport const MONTHS_LONG = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\n/** Sunday-anchored column index (0 = Sun … 6 = Sat) for a PlainDate. */\nexport function sundayIndex(d: Temporal.PlainDate): number {\n // Temporal `dayOfWeek` is 1 (Mon) … 7 (Sun); map Sunday to 0 for our Su-first grid.\n return d.dayOfWeek % 7;\n}\n\n/** Today as a PlainDate in the local time zone. */\nexport function today(): Temporal.PlainDate {\n return Temporal.Now.plainDateISO();\n}\n\nexport function isSameDay(\n a: Temporal.PlainDate | null | undefined,\n b: Temporal.PlainDate | null | undefined,\n): boolean {\n if (!a || !b) return false;\n return a.equals(b);\n}\n\nexport function isToday(d: Temporal.PlainDate): boolean {\n return d.equals(today());\n}\n\n/** Add `n` months; Temporal clamps to the target month's last day (Jan 31 +1 → Feb 28). */\nexport function addMonths(d: Temporal.PlainDate, n: number): Temporal.PlainDate {\n return d.add({ months: n });\n}\n\nexport function addDays(d: Temporal.PlainDate, n: number): Temporal.PlainDate {\n return d.add({ days: n });\n}\n\n/** First day of `d`'s month. */\nexport function startOfMonth(d: Temporal.PlainDate): Temporal.PlainDate {\n return d.with({ day: 1 });\n}\n\n/** Number of days in the given year/month (1-indexed month). */\nexport function daysInMonth(year: number, month: number): number {\n return Temporal.PlainDate.from({ year, month, day: 1 }).daysInMonth;\n}\n\n/**\n * Build the 6-week (42-cell) grid that the calendar UI renders.\n * `year`/`month` are 1-indexed (Temporal convention). Cells outside the target\n * month carry `outOfMonth: true`.\n */\nexport function buildMonthGrid(\n year: number,\n month: number,\n): { date: Temporal.PlainDate; outOfMonth: boolean }[] {\n const first = Temporal.PlainDate.from({ year, month, day: 1 });\n const start = first.subtract({ days: sundayIndex(first) });\n const cells: { date: Temporal.PlainDate; outOfMonth: boolean }[] = [];\n for (let i = 0; i < 42; i++) {\n const date = start.add({ days: i });\n cells.push({ date, outOfMonth: date.month !== month });\n }\n return cells;\n}\n\n/** Format PlainDate → \"YYYY-MM-DD\" for a native `<input type=\"date\">` value. */\nexport function formatISODate(d: Temporal.PlainDate | null | undefined): string {\n if (!d) return '';\n return d.toString();\n}\n\n/** Parse \"YYYY-MM-DD\" → PlainDate. Returns null for invalid input. */\nexport function parseISODate(s: string | null | undefined): Temporal.PlainDate | null {\n if (!s) return null;\n if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(s)) return null;\n try {\n return Temporal.PlainDate.from(s, { overflow: 'reject' });\n } catch {\n return null;\n }\n}\n\n/** Format PlainTime → \"HH:MM\" for a native `<input type=\"time\">` value. */\nexport function formatISOTime(t: Temporal.PlainTime | null | undefined): string {\n if (!t) return '';\n return t.toString({ smallestUnit: 'minute' });\n}\n\n/** Parse \"HH:MM\" → PlainTime. Returns null for invalid input. */\nexport function parseISOTime(s: string | null | undefined): Temporal.PlainTime | null {\n if (!s) return null;\n if (!/^\\d{2}:\\d{2}$/.test(s)) return null;\n try {\n return Temporal.PlainTime.from(s, { overflow: 'reject' });\n } catch {\n return null;\n }\n}\n\nexport function clampDate(\n d: Temporal.PlainDate,\n min?: Temporal.PlainDate | null,\n max?: Temporal.PlainDate | null,\n): Temporal.PlainDate {\n if (min && Temporal.PlainDate.compare(d, min) < 0) return min;\n if (max && Temporal.PlainDate.compare(d, max) > 0) return max;\n return d;\n}\n\nexport function isDateDisabled(\n d: Temporal.PlainDate,\n options: {\n min?: Temporal.PlainDate | null;\n max?: Temporal.PlainDate | null;\n isDisabled?: (d: Temporal.PlainDate) => boolean;\n },\n): boolean {\n const { min, max, isDisabled } = options;\n if (min && Temporal.PlainDate.compare(d, min) < 0) return true;\n if (max && Temporal.PlainDate.compare(d, max) > 0) return true;\n if (isDisabled?.(d)) return true;\n return false;\n}\n\nexport function isInRange(\n d: Temporal.PlainDate,\n start: Temporal.PlainDate | null | undefined,\n end: Temporal.PlainDate | null | undefined,\n): boolean {\n if (!start || !end) return false;\n const lo = Temporal.PlainDate.compare(start, end) <= 0 ? start : end;\n const hi = Temporal.PlainDate.compare(start, end) <= 0 ? end : start;\n return Temporal.PlainDate.compare(d, lo) >= 0 && Temporal.PlainDate.compare(d, hi) <= 0;\n}\n\n/** Signed whole-day count from `a` to `b` (positive when `b` is later). */\nexport function daysBetween(a: Temporal.PlainDate, b: Temporal.PlainDate): number {\n return a.until(b, { largestUnit: 'day' }).days;\n}\n\n/** True when `d` falls on a Saturday or Sunday. */\nexport function isWeekend(d: Temporal.PlainDate): boolean {\n // Temporal `dayOfWeek`: 1 (Mon) … 7 (Sun); 6 = Sat, 7 = Sun.\n return d.dayOfWeek === 6 || d.dayOfWeek === 7;\n}\n\n// ── Datetime helpers (ZonedDateTime) ──────────────────────────────────────\n// EventCalendar / ScheduleView model absolute instants (a wall-clock time in a\n// specific zone) — the `Temporal.ZonedDateTime` peer of .NET `DateTimeOffset`.\n// The grid + navigation still project down to `Temporal.PlainDate` (via the\n// helpers above); these cover the intra-day time-slot math the grid needs.\n\n/** Now as a ZonedDateTime in the local (system) time zone. */\nexport function nowZoned(): Temporal.ZonedDateTime {\n return Temporal.Now.zonedDateTimeISO();\n}\n\n/** The calendar day a ZonedDateTime falls on (its wall-clock PlainDate). */\nexport function zonedToPlainDate(z: Temporal.ZonedDateTime): Temporal.PlainDate {\n return z.toPlainDate();\n}\n\n/** True when two ZonedDateTimes land on the same wall-clock day (same zone assumed). */\nexport function isSameZonedDay(a: Temporal.ZonedDateTime, b: Temporal.ZonedDateTime): boolean {\n return a.toPlainDate().equals(b.toPlainDate());\n}\n\n/** True when a ZonedDateTime falls on `day` (its wall-clock date equals `day`). */\nexport function isZonedOnDay(z: Temporal.ZonedDateTime, day: Temporal.PlainDate): boolean {\n return z.toPlainDate().equals(day);\n}\n\n/** Start-of-day (00:00, zone-correct) for `day` in `z`'s time zone. */\nexport function startOfZonedDay(day: Temporal.PlainDate, timeZone: Temporal.TimeZoneLike): Temporal.ZonedDateTime {\n return day.toZonedDateTime({ timeZone, plainTime: Temporal.PlainTime.from('00:00') });\n}\n\n/** `day` at hour `hour` (minutes/seconds zeroed), zone-correct, in `timeZone`. */\nexport function zonedAtHour(\n day: Temporal.PlainDate,\n hour: number,\n timeZone: Temporal.TimeZoneLike,\n): Temporal.ZonedDateTime {\n return day.toZonedDateTime({\n timeZone,\n plainTime: new Temporal.PlainTime(hour),\n });\n}\n\n/** Signed minutes from `a` to `b` (positive when `b` is later). */\nexport function minutesBetween(a: Temporal.ZonedDateTime, b: Temporal.ZonedDateTime): number {\n return a.until(b, { largestUnit: 'minute', smallestUnit: 'minute' }).minutes;\n}\n\n/** Later of two instants. */\nexport function maxZoned(a: Temporal.ZonedDateTime, b: Temporal.ZonedDateTime): Temporal.ZonedDateTime {\n return Temporal.ZonedDateTime.compare(a, b) >= 0 ? a : b;\n}\n\n/** Earlier of two instants. */\nexport function minZoned(a: Temporal.ZonedDateTime, b: Temporal.ZonedDateTime): Temporal.ZonedDateTime {\n return Temporal.ZonedDateTime.compare(a, b) <= 0 ? a : b;\n}\n\n/** True when `z`'s calendar day lies within [start, end] (inclusive, by day). */\nexport function isZonedDayInRange(\n z: Temporal.ZonedDateTime,\n start: Temporal.ZonedDateTime,\n end: Temporal.ZonedDateTime,\n): boolean {\n return isInRange(z.toPlainDate(), start.toPlainDate(), end.toPlainDate());\n}\n\n/** Format a ZonedDateTime's time-of-day as \"HH:MM\" (locale-aware). */\nexport function formatZonedTime(z: Temporal.ZonedDateTime): string {\n return z.toLocaleString(undefined, { hour: '2-digit', minute: '2-digit' });\n}\n"]}
|