@womp/kookie-ui 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.css +1397 -2626
- package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +4 -4
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +2 -2
- package/dist/cjs/components/_internal/base-radio.props.d.ts +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js.map +2 -2
- package/dist/cjs/components/_internal/pane-chrome.js +1 -1
- package/dist/cjs/components/_internal/pane-chrome.js.map +3 -3
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
- package/dist/cjs/components/accordion.d.ts.map +1 -1
- package/dist/cjs/components/accordion.js +1 -1
- package/dist/cjs/components/accordion.js.map +4 -4
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +4 -4
- package/dist/cjs/components/badge.js +1 -1
- package/dist/cjs/components/badge.js.map +4 -4
- package/dist/cjs/components/badge.props.d.ts +1 -1
- package/dist/cjs/components/badge.props.js +1 -1
- package/dist/cjs/components/badge.props.js.map +1 -1
- package/dist/cjs/components/button.js +2 -2
- package/dist/cjs/components/button.js.map +4 -4
- package/dist/cjs/components/chatbar.d.ts.map +1 -1
- package/dist/cjs/components/chatbar.js +2 -2
- package/dist/cjs/components/chatbar.js.map +4 -4
- package/dist/cjs/components/checkbox-cards.js +1 -1
- package/dist/cjs/components/checkbox-cards.js.map +2 -2
- package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-group.js +1 -1
- package/dist/cjs/components/checkbox-group.js.map +4 -4
- package/dist/cjs/components/checkbox-group.props.d.ts +1 -1
- package/dist/cjs/components/checkbox-group.props.js +1 -1
- package/dist/cjs/components/checkbox-group.props.js.map +2 -2
- package/dist/cjs/components/checkbox.d.ts.map +1 -1
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/checkbox.js.map +4 -4
- package/dist/cjs/components/checkbox.props.js +1 -1
- package/dist/cjs/components/checkbox.props.js.map +2 -2
- package/dist/cjs/components/combobox.d.ts.map +1 -1
- package/dist/cjs/components/combobox.js +1 -1
- package/dist/cjs/components/combobox.js.map +4 -4
- package/dist/cjs/components/context-menu.d.ts.map +1 -1
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +4 -4
- package/dist/cjs/components/data-list.d.ts.map +1 -1
- package/dist/cjs/components/data-list.js +1 -1
- package/dist/cjs/components/data-list.js.map +4 -4
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +4 -4
- package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +4 -4
- package/dist/cjs/components/hover-card.d.ts.map +1 -1
- package/dist/cjs/components/hover-card.js +1 -1
- package/dist/cjs/components/hover-card.js.map +4 -4
- package/dist/cjs/components/icon-button.js +2 -2
- package/dist/cjs/components/icon-button.js.map +4 -4
- package/dist/cjs/components/index.js +5 -5
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/message-scroller.js +2 -2
- package/dist/cjs/components/message-scroller.js.map +4 -4
- package/dist/cjs/components/navbar.d.ts.map +1 -1
- package/dist/cjs/components/navbar.js +1 -1
- package/dist/cjs/components/navbar.js.map +4 -4
- package/dist/cjs/components/notice.d.ts +1 -1
- package/dist/cjs/components/notice.d.ts.map +1 -1
- package/dist/cjs/components/notice.js +2 -2
- package/dist/cjs/components/notice.js.map +4 -4
- package/dist/cjs/components/popover.d.ts.map +1 -1
- package/dist/cjs/components/popover.js +1 -1
- package/dist/cjs/components/popover.js.map +4 -4
- package/dist/cjs/components/progress.js +1 -1
- package/dist/cjs/components/progress.js.map +3 -3
- package/dist/cjs/components/progress.props.d.ts +0 -7
- package/dist/cjs/components/progress.props.d.ts.map +1 -1
- package/dist/cjs/components/progress.props.js +1 -1
- package/dist/cjs/components/progress.props.js.map +3 -3
- package/dist/cjs/components/radio-group.d.ts.map +1 -1
- package/dist/cjs/components/radio-group.js +1 -1
- package/dist/cjs/components/radio-group.js.map +4 -4
- package/dist/cjs/components/radio-group.props.d.ts +1 -1
- package/dist/cjs/components/radio-group.props.js +1 -1
- package/dist/cjs/components/radio-group.props.js.map +2 -2
- package/dist/cjs/components/radio.d.ts.map +1 -1
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +4 -4
- package/dist/cjs/components/radio.props.js +1 -1
- package/dist/cjs/components/radio.props.js.map +2 -2
- package/dist/cjs/components/scroll-area.d.ts.map +1 -1
- package/dist/cjs/components/scroll-area.js +1 -1
- package/dist/cjs/components/scroll-area.js.map +3 -3
- package/dist/cjs/components/scroll-area.props.d.ts +0 -7
- package/dist/cjs/components/scroll-area.props.d.ts.map +1 -1
- package/dist/cjs/components/scroll-area.props.js +1 -1
- package/dist/cjs/components/scroll-area.props.js.map +3 -3
- package/dist/cjs/components/segmented-control.d.ts.map +1 -1
- package/dist/cjs/components/segmented-control.js +1 -1
- package/dist/cjs/components/segmented-control.js.map +4 -4
- package/dist/cjs/components/select.d.ts.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +4 -4
- package/dist/cjs/components/separator.js +1 -1
- package/dist/cjs/components/separator.js.map +3 -3
- package/dist/cjs/components/separator.props.d.ts +0 -7
- package/dist/cjs/components/separator.props.d.ts.map +1 -1
- package/dist/cjs/components/separator.props.js +1 -1
- package/dist/cjs/components/separator.props.js.map +3 -3
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +4 -4
- package/dist/cjs/components/shell.d.ts +1 -1
- package/dist/cjs/components/shell.d.ts.map +1 -1
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +4 -4
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/slider.d.ts.map +1 -1
- package/dist/cjs/components/slider.js +1 -1
- package/dist/cjs/components/slider.js.map +4 -4
- package/dist/cjs/components/spinner.js +1 -1
- package/dist/cjs/components/spinner.js.map +3 -3
- package/dist/cjs/components/spinner.props.d.ts +0 -7
- package/dist/cjs/components/spinner.props.d.ts.map +1 -1
- package/dist/cjs/components/spinner.props.js +1 -1
- package/dist/cjs/components/spinner.props.js.map +3 -3
- package/dist/cjs/components/switch.d.ts.map +1 -1
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/switch.js.map +4 -4
- package/dist/cjs/components/tab-nav.d.ts.map +1 -1
- package/dist/cjs/components/tab-nav.js +1 -1
- package/dist/cjs/components/tab-nav.js.map +4 -4
- package/dist/cjs/components/table.d.ts.map +1 -1
- package/dist/cjs/components/table.js +1 -1
- package/dist/cjs/components/table.js.map +4 -4
- package/dist/cjs/components/table.props.d.ts +1 -1
- package/dist/cjs/components/table.props.js +1 -1
- package/dist/cjs/components/table.props.js.map +2 -2
- package/dist/cjs/components/tabs.d.ts.map +1 -1
- package/dist/cjs/components/tabs.js +1 -1
- package/dist/cjs/components/tabs.js.map +4 -4
- package/dist/cjs/components/text-area.d.ts.map +1 -1
- package/dist/cjs/components/text-area.js +1 -1
- package/dist/cjs/components/text-area.js.map +4 -4
- package/dist/cjs/components/text-field.d.ts.map +1 -1
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text-field.js.map +4 -4
- package/dist/cjs/components/theme-panel.js +3 -3
- package/dist/cjs/components/theme-panel.js.map +4 -4
- package/dist/cjs/components/theme.d.ts +3 -0
- package/dist/cjs/components/theme.d.ts.map +1 -1
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +4 -4
- package/dist/cjs/components/theme.props.d.ts +12 -0
- package/dist/cjs/components/theme.props.d.ts.map +1 -1
- package/dist/cjs/components/theme.props.js +1 -1
- package/dist/cjs/components/theme.props.js.map +3 -3
- package/dist/cjs/components/toggle-button.js +3 -3
- package/dist/cjs/components/toggle-button.js.map +4 -4
- package/dist/cjs/components/toggle-icon-button.js +3 -3
- package/dist/cjs/components/toggle-icon-button.js.map +4 -4
- package/dist/cjs/components/toolbar.d.ts.map +1 -1
- package/dist/cjs/components/toolbar.js +2 -2
- package/dist/cjs/components/toolbar.js.map +4 -4
- package/dist/cjs/components/tooltip.js +1 -1
- package/dist/cjs/components/tooltip.js.map +4 -4
- package/dist/cjs/helpers/index.d.ts +1 -0
- package/dist/cjs/helpers/index.d.ts.map +1 -1
- package/dist/cjs/helpers/index.js +3 -3
- package/dist/cjs/helpers/index.js.map +4 -4
- package/dist/cjs/helpers/map-prop-values.d.ts +1 -4
- package/dist/cjs/helpers/map-prop-values.d.ts.map +1 -1
- package/dist/cjs/helpers/map-prop-values.js +1 -1
- package/dist/cjs/helpers/map-prop-values.js.map +3 -3
- package/dist/cjs/helpers/theme-size.d.ts +41 -0
- package/dist/cjs/helpers/theme-size.d.ts.map +1 -0
- package/dist/cjs/helpers/theme-size.js +2 -0
- package/dist/cjs/helpers/theme-size.js.map +7 -0
- package/dist/cjs/index.js +7 -7
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +3 -3
- package/dist/esm/{chunk-XZ5XZS5O.js → chunk-35HNDWWM.js} +2 -2
- package/dist/esm/chunk-3YLYGKFB.js +2 -0
- package/dist/esm/chunk-3YLYGKFB.js.map +7 -0
- package/dist/esm/chunk-4DE3ONED.js +2 -0
- package/dist/esm/chunk-4DE3ONED.js.map +7 -0
- package/dist/esm/chunk-4M55YJMR.js +2 -0
- package/dist/esm/chunk-4M55YJMR.js.map +7 -0
- package/dist/esm/chunk-4YQXYWDQ.js +2 -0
- package/dist/esm/chunk-4YQXYWDQ.js.map +7 -0
- package/dist/esm/chunk-54KMG7NX.js +2 -0
- package/dist/esm/chunk-54KMG7NX.js.map +7 -0
- package/dist/esm/chunk-5R2WX2FU.js +2 -0
- package/dist/esm/chunk-5R2WX2FU.js.map +7 -0
- package/dist/esm/chunk-5VBJT2VY.js +2 -0
- package/dist/esm/chunk-5VBJT2VY.js.map +7 -0
- package/dist/esm/chunk-6AZV4VFW.js +2 -0
- package/dist/esm/chunk-6AZV4VFW.js.map +7 -0
- package/dist/esm/{chunk-YDRFILTX.js → chunk-6YWDEANN.js} +2 -2
- package/dist/esm/{chunk-MZQDDG5K.js → chunk-7FZPCM7W.js} +2 -2
- package/dist/esm/chunk-7J2QS2UT.js +5 -0
- package/dist/esm/chunk-7J2QS2UT.js.map +7 -0
- package/dist/esm/chunk-ABS275QZ.js +2 -0
- package/dist/esm/chunk-AKPAHQYE.js +2 -0
- package/dist/esm/chunk-AKPAHQYE.js.map +7 -0
- package/dist/esm/chunk-BN24ZBO7.js +2 -0
- package/dist/esm/chunk-BN24ZBO7.js.map +7 -0
- package/dist/esm/chunk-BZ6YBP2S.js +2 -0
- package/dist/esm/chunk-BZ6YBP2S.js.map +7 -0
- package/dist/esm/chunk-CHPZ3LNC.js +2 -0
- package/dist/esm/chunk-CHPZ3LNC.js.map +7 -0
- package/dist/esm/chunk-CRK34MWY.js +2 -0
- package/dist/esm/chunk-CRK34MWY.js.map +7 -0
- package/dist/esm/{chunk-YZABQ4LS.js → chunk-DFSW4QR4.js} +2 -2
- package/dist/esm/{chunk-SM27AC7E.js → chunk-DJFTDR6Y.js} +2 -2
- package/dist/esm/chunk-EA2XSEFH.js +2 -0
- package/dist/esm/chunk-EA2XSEFH.js.map +7 -0
- package/dist/esm/{chunk-CRYT55SY.js → chunk-EHUSLPWN.js} +2 -2
- package/dist/esm/chunk-ENSDQ3XQ.js +2 -0
- package/dist/esm/chunk-ENSDQ3XQ.js.map +7 -0
- package/dist/esm/chunk-F3XBIUXB.js +2 -0
- package/dist/esm/chunk-F3XBIUXB.js.map +7 -0
- package/dist/esm/chunk-GHD3TKCA.js +2 -0
- package/dist/esm/chunk-GHD3TKCA.js.map +7 -0
- package/dist/esm/chunk-GQBQHGEF.js +2 -0
- package/dist/esm/chunk-GQBQHGEF.js.map +7 -0
- package/dist/esm/{chunk-6XHM724Y.js → chunk-GTVFQXLJ.js} +2 -2
- package/dist/esm/chunk-HIEGLLY7.js +2 -0
- package/dist/esm/chunk-HIEGLLY7.js.map +7 -0
- package/dist/esm/chunk-HZYE46V2.js +2 -0
- package/dist/esm/chunk-HZYE46V2.js.map +7 -0
- package/dist/esm/chunk-IWT3Q2PD.js +2 -0
- package/dist/esm/chunk-IWT3Q2PD.js.map +7 -0
- package/dist/esm/chunk-JCRBBT4X.js +2 -0
- package/dist/esm/chunk-JCRBBT4X.js.map +7 -0
- package/dist/esm/chunk-KFQ4B5YC.js +2 -0
- package/dist/esm/chunk-KFQ4B5YC.js.map +7 -0
- package/dist/esm/{chunk-6HRBG5H2.js → chunk-KPPIW4OJ.js} +2 -2
- package/dist/esm/{chunk-6WFEMPCF.js → chunk-KRXCFIRK.js} +2 -2
- package/dist/esm/{chunk-5SQL4ZRC.js → chunk-KSZOVI57.js} +2 -2
- package/dist/esm/{chunk-5SQL4ZRC.js.map → chunk-KSZOVI57.js.map} +1 -1
- package/dist/esm/{chunk-COSHAOEK.js → chunk-MJEYJI5G.js} +2 -2
- package/dist/esm/chunk-MLXHD7YF.js +2 -0
- package/dist/esm/chunk-MLXHD7YF.js.map +7 -0
- package/dist/esm/{chunk-CG54MBMW.js → chunk-MPN33CKR.js} +2 -2
- package/dist/esm/chunk-MQDZBF4J.js +2 -0
- package/dist/esm/chunk-MQDZBF4J.js.map +7 -0
- package/dist/esm/{chunk-IGBEDJBC.js → chunk-NFVOEHZS.js} +2 -2
- package/dist/esm/{chunk-ORMCQAPS.js → chunk-PAQS6C2A.js} +2 -2
- package/dist/esm/chunk-PUVZFRTQ.js +2 -0
- package/dist/esm/chunk-PUVZFRTQ.js.map +7 -0
- package/dist/esm/chunk-QAUYOVVL.js +2 -0
- package/dist/esm/chunk-QAUYOVVL.js.map +7 -0
- package/dist/esm/chunk-RC7TBVLO.js +2 -0
- package/dist/esm/chunk-RC7TBVLO.js.map +7 -0
- package/dist/esm/chunk-STMTXK7U.js +2 -0
- package/dist/esm/chunk-STMTXK7U.js.map +7 -0
- package/dist/esm/chunk-U7PDXTRX.js +2 -0
- package/dist/esm/chunk-U7PDXTRX.js.map +7 -0
- package/dist/esm/chunk-UNRG6Z5I.js +2 -0
- package/dist/esm/chunk-UNRG6Z5I.js.map +7 -0
- package/dist/esm/chunk-UONSKZQT.js +2 -0
- package/dist/esm/chunk-UONSKZQT.js.map +7 -0
- package/dist/esm/{chunk-2IPVLV6B.js → chunk-UQZHW3EJ.js} +2 -2
- package/dist/esm/chunk-VIDXAECE.js +2 -0
- package/dist/esm/chunk-VIDXAECE.js.map +7 -0
- package/dist/esm/chunk-VLLJ7A6P.js +2 -0
- package/dist/esm/chunk-VLLJ7A6P.js.map +7 -0
- package/dist/esm/{chunk-DP3OWU5T.js → chunk-VT4AAF7Q.js} +2 -2
- package/dist/esm/chunk-XVKFQSLI.js +2 -0
- package/dist/esm/chunk-XVKFQSLI.js.map +7 -0
- package/dist/esm/{chunk-RFURPE7W.js → chunk-YF3MFME4.js} +2 -2
- package/dist/esm/{chunk-4STOJSJZ.js → chunk-YVMQWSHA.js} +2 -2
- package/dist/esm/{chunk-4STOJSJZ.js.map → chunk-YVMQWSHA.js.map} +2 -2
- package/dist/esm/chunk-ZCAI2PRH.js +2 -0
- package/dist/esm/chunk-ZCAI2PRH.js.map +7 -0
- package/dist/esm/{chunk-S53ZQNHK.js → chunk-ZFBLPW3X.js} +2 -2
- package/dist/esm/chunk-ZH2B7WEH.js +2 -0
- package/dist/esm/chunk-ZH2B7WEH.js.map +7 -0
- package/dist/esm/chunk-ZJZIV2JH.js +2 -0
- package/dist/esm/chunk-ZJZIV2JH.js.map +7 -0
- package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.d.ts +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
- package/dist/esm/components/_internal/base-radio.props.d.ts +1 -1
- package/dist/esm/components/_internal/base-radio.props.js +1 -1
- package/dist/esm/components/_internal/pane-chrome.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/accordion.d.ts.map +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.props.d.ts +1 -1
- package/dist/esm/components/badge.props.js +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/chatbar.d.ts.map +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/checkbox-cards.js +1 -1
- package/dist/esm/components/checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.props.d.ts +1 -1
- package/dist/esm/components/checkbox-group.props.js +1 -1
- package/dist/esm/components/checkbox.d.ts.map +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.props.js +1 -1
- package/dist/esm/components/combobox.d.ts.map +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/context-menu.d.ts.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/data-list.d.ts.map +1 -1
- package/dist/esm/components/data-list.js +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/hover-card.d.ts.map +1 -1
- package/dist/esm/components/hover-card.js +1 -1
- package/dist/esm/components/icon-button.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/navbar.d.ts.map +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/notice.d.ts +1 -1
- package/dist/esm/components/notice.d.ts.map +1 -1
- package/dist/esm/components/notice.js +1 -1
- package/dist/esm/components/popover.d.ts.map +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/progress.props.d.ts +0 -7
- package/dist/esm/components/progress.props.d.ts.map +1 -1
- package/dist/esm/components/progress.props.js +1 -1
- package/dist/esm/components/radio-group.d.ts.map +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.props.d.ts +1 -1
- package/dist/esm/components/radio-group.props.js +1 -1
- package/dist/esm/components/radio.d.ts.map +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.props.js +1 -1
- package/dist/esm/components/scroll-area.d.ts.map +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/scroll-area.props.d.ts +0 -7
- package/dist/esm/components/scroll-area.props.d.ts.map +1 -1
- package/dist/esm/components/scroll-area.props.js +1 -1
- package/dist/esm/components/segmented-control.d.ts.map +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/select.d.ts.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/separator.props.d.ts +0 -7
- package/dist/esm/components/separator.props.d.ts.map +1 -1
- package/dist/esm/components/separator.props.js +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.d.ts +1 -1
- package/dist/esm/components/shell.d.ts.map +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/slider.d.ts.map +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/spinner.props.d.ts +0 -7
- package/dist/esm/components/spinner.props.d.ts.map +1 -1
- package/dist/esm/components/spinner.props.js +1 -1
- package/dist/esm/components/switch.d.ts.map +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/tab-nav.d.ts.map +1 -1
- package/dist/esm/components/tab-nav.js +1 -1
- package/dist/esm/components/table.d.ts.map +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/table.props.d.ts +1 -1
- package/dist/esm/components/table.props.js +1 -1
- package/dist/esm/components/tabs.d.ts.map +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/text-area.d.ts.map +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-field.d.ts.map +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/theme-panel.js +1 -1
- package/dist/esm/components/theme.d.ts +3 -0
- package/dist/esm/components/theme.d.ts.map +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.props.d.ts +12 -0
- package/dist/esm/components/theme.props.d.ts.map +1 -1
- package/dist/esm/components/theme.props.js +1 -1
- package/dist/esm/components/toggle-button.js +1 -1
- package/dist/esm/components/toggle-icon-button.js +1 -1
- package/dist/esm/components/toolbar.d.ts.map +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.d.ts.map +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/map-prop-values.d.ts +1 -4
- package/dist/esm/helpers/map-prop-values.d.ts.map +1 -1
- package/dist/esm/helpers/map-prop-values.js +1 -1
- package/dist/esm/helpers/theme-size.d.ts +41 -0
- package/dist/esm/helpers/theme-size.d.ts.map +1 -0
- package/dist/esm/helpers/theme-size.js +2 -0
- package/dist/esm/helpers/theme-size.js.map +7 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/index.js +1 -1
- package/layout/tokens.css +14 -0
- package/layout.css +14 -0
- package/package.json +1 -1
- package/src/components/_internal/base-button.css +114 -78
- package/src/components/_internal/base-button.tsx +48 -9
- package/src/components/_internal/base-checkbox.css +91 -8
- package/src/components/_internal/base-checkbox.props.ts +1 -1
- package/src/components/_internal/base-radio.css +68 -6
- package/src/components/_internal/base-radio.props.ts +1 -1
- package/src/components/_internal/base-tab-list.css +33 -25
- package/src/components/accordion.tsx +3 -1
- package/src/components/avatar.css +21 -15
- package/src/components/badge.css +14 -23
- package/src/components/badge.props.tsx +1 -1
- package/src/components/button.css +5 -175
- package/src/components/chatbar.tsx +9 -4
- package/src/components/checkbox-group.css +6 -11
- package/src/components/checkbox-group.tsx +3 -1
- package/src/components/checkbox.css +6 -11
- package/src/components/checkbox.tsx +3 -1
- package/src/components/combobox.tsx +3 -1
- package/src/components/context-menu.tsx +3 -1
- package/src/components/data-list.tsx +3 -1
- package/src/components/dropdown-menu.tsx +3 -1
- package/src/components/hover-card.tsx +3 -1
- package/src/components/icon-button.css +4 -152
- package/src/components/message-scroller.tsx +1 -1
- package/src/components/navbar.tsx +3 -1
- package/src/components/notice.tsx +7 -3
- package/src/components/popover.tsx +3 -1
- package/src/components/progress.css +4 -37
- package/src/components/progress.props.tsx +0 -3
- package/src/components/radio-group.props.tsx +1 -1
- package/src/components/radio-group.tsx +3 -1
- package/src/components/radio.tsx +3 -1
- package/src/components/scroll-area.css +2 -23
- package/src/components/scroll-area.props.tsx +0 -3
- package/src/components/scroll-area.tsx +2 -18
- package/src/components/segmented-control.css +34 -27
- package/src/components/segmented-control.tsx +3 -1
- package/src/components/select.css +76 -74
- package/src/components/select.tsx +4 -2
- package/src/components/separator.css +2 -23
- package/src/components/separator.props.tsx +0 -3
- package/src/components/shell.tsx +8 -2
- package/src/components/slider.css +19 -11
- package/src/components/slider.tsx +3 -1
- package/src/components/spinner.css +2 -23
- package/src/components/spinner.props.tsx +0 -4
- package/src/components/switch.css +51 -17
- package/src/components/switch.tsx +3 -1
- package/src/components/tab-nav.tsx +3 -1
- package/src/components/table.props.tsx +1 -1
- package/src/components/table.tsx +3 -1
- package/src/components/tabs.css +2 -1
- package/src/components/tabs.tsx +3 -1
- package/src/components/text-area.css +55 -107
- package/src/components/text-area.tsx +8 -6
- package/src/components/text-field.css +129 -127
- package/src/components/text-field.tsx +8 -6
- package/src/components/theme.props.tsx +10 -0
- package/src/components/theme.tsx +86 -71
- package/src/components/toolbar.tsx +3 -1
- package/src/helpers/index.ts +1 -0
- package/src/helpers/map-prop-values.ts +1 -18
- package/src/helpers/theme-size.ts +73 -0
- package/src/styles/tokens/constants.css +4 -0
- package/src/styles/tokens/space.css +16 -0
- package/styles.css +1428 -2641
- package/tokens/base.css +14 -0
- package/tokens.css +16 -0
- package/dist/esm/chunk-2HUAVZZL.js +0 -2
- package/dist/esm/chunk-2HUAVZZL.js.map +0 -7
- package/dist/esm/chunk-2XSRO44Q.js +0 -2
- package/dist/esm/chunk-2XSRO44Q.js.map +0 -7
- package/dist/esm/chunk-3KB2XWBE.js +0 -2
- package/dist/esm/chunk-3KB2XWBE.js.map +0 -7
- package/dist/esm/chunk-4D7OU2UA.js +0 -2
- package/dist/esm/chunk-4D7OU2UA.js.map +0 -7
- package/dist/esm/chunk-5GYIQIPW.js +0 -2
- package/dist/esm/chunk-5GYIQIPW.js.map +0 -7
- package/dist/esm/chunk-655TAWHX.js +0 -2
- package/dist/esm/chunk-655TAWHX.js.map +0 -7
- package/dist/esm/chunk-6VPYP3VN.js +0 -2
- package/dist/esm/chunk-6VPYP3VN.js.map +0 -7
- package/dist/esm/chunk-7BE6N3KY.js +0 -2
- package/dist/esm/chunk-7BE6N3KY.js.map +0 -7
- package/dist/esm/chunk-AHOUZS3V.js +0 -2
- package/dist/esm/chunk-AHOUZS3V.js.map +0 -7
- package/dist/esm/chunk-BALS3AVM.js +0 -2
- package/dist/esm/chunk-BALS3AVM.js.map +0 -7
- package/dist/esm/chunk-BOLRYGFQ.js +0 -2
- package/dist/esm/chunk-BOLRYGFQ.js.map +0 -7
- package/dist/esm/chunk-BUEYZEAY.js +0 -2
- package/dist/esm/chunk-BUEYZEAY.js.map +0 -7
- package/dist/esm/chunk-DKALDTCN.js +0 -2
- package/dist/esm/chunk-DKALDTCN.js.map +0 -7
- package/dist/esm/chunk-EJOVE3JH.js +0 -2
- package/dist/esm/chunk-EJOVE3JH.js.map +0 -7
- package/dist/esm/chunk-FPDLBLO3.js +0 -2
- package/dist/esm/chunk-FPDLBLO3.js.map +0 -7
- package/dist/esm/chunk-GOYI2U6F.js +0 -2
- package/dist/esm/chunk-GOYI2U6F.js.map +0 -7
- package/dist/esm/chunk-HKRQ3E3I.js +0 -2
- package/dist/esm/chunk-HKRQ3E3I.js.map +0 -7
- package/dist/esm/chunk-HSFQO4QM.js +0 -2
- package/dist/esm/chunk-HSFQO4QM.js.map +0 -7
- package/dist/esm/chunk-HVQ3SLQC.js +0 -2
- package/dist/esm/chunk-HVQ3SLQC.js.map +0 -7
- package/dist/esm/chunk-JCOALADA.js +0 -5
- package/dist/esm/chunk-JCOALADA.js.map +0 -7
- package/dist/esm/chunk-K7J23OPW.js +0 -2
- package/dist/esm/chunk-K7J23OPW.js.map +0 -7
- package/dist/esm/chunk-M55KFXYV.js +0 -2
- package/dist/esm/chunk-M55KFXYV.js.map +0 -7
- package/dist/esm/chunk-MGSHX5N5.js +0 -2
- package/dist/esm/chunk-MGSHX5N5.js.map +0 -7
- package/dist/esm/chunk-MJC4NKYG.js +0 -2
- package/dist/esm/chunk-MJC4NKYG.js.map +0 -7
- package/dist/esm/chunk-MOYLXCMW.js +0 -2
- package/dist/esm/chunk-MOYLXCMW.js.map +0 -7
- package/dist/esm/chunk-MVW2SY4F.js +0 -2
- package/dist/esm/chunk-MVW2SY4F.js.map +0 -7
- package/dist/esm/chunk-NOSR2XWD.js +0 -2
- package/dist/esm/chunk-NOSR2XWD.js.map +0 -7
- package/dist/esm/chunk-OMUUPPJO.js +0 -2
- package/dist/esm/chunk-OMUUPPJO.js.map +0 -7
- package/dist/esm/chunk-PNIVUG5D.js +0 -2
- package/dist/esm/chunk-PNIVUG5D.js.map +0 -7
- package/dist/esm/chunk-PSS45RHX.js +0 -2
- package/dist/esm/chunk-PSS45RHX.js.map +0 -7
- package/dist/esm/chunk-PYYI64XK.js +0 -2
- package/dist/esm/chunk-PYYI64XK.js.map +0 -7
- package/dist/esm/chunk-QJFAGWBO.js +0 -2
- package/dist/esm/chunk-QJFAGWBO.js.map +0 -7
- package/dist/esm/chunk-QWFFYUFH.js +0 -2
- package/dist/esm/chunk-QWFFYUFH.js.map +0 -7
- package/dist/esm/chunk-RVHKSNMJ.js +0 -2
- package/dist/esm/chunk-RVHKSNMJ.js.map +0 -7
- package/dist/esm/chunk-RYURXQLJ.js +0 -2
- package/dist/esm/chunk-RYURXQLJ.js.map +0 -7
- package/dist/esm/chunk-UA6FP7HS.js +0 -2
- package/dist/esm/chunk-V7UP4SLZ.js +0 -2
- package/dist/esm/chunk-V7UP4SLZ.js.map +0 -7
- package/dist/esm/chunk-X5KCVLKG.js +0 -2
- package/dist/esm/chunk-X5KCVLKG.js.map +0 -7
- package/dist/esm/chunk-XPRPYCII.js +0 -2
- package/dist/esm/chunk-XPRPYCII.js.map +0 -7
- /package/dist/esm/{chunk-XZ5XZS5O.js.map → chunk-35HNDWWM.js.map} +0 -0
- /package/dist/esm/{chunk-YDRFILTX.js.map → chunk-6YWDEANN.js.map} +0 -0
- /package/dist/esm/{chunk-MZQDDG5K.js.map → chunk-7FZPCM7W.js.map} +0 -0
- /package/dist/esm/{chunk-UA6FP7HS.js.map → chunk-ABS275QZ.js.map} +0 -0
- /package/dist/esm/{chunk-YZABQ4LS.js.map → chunk-DFSW4QR4.js.map} +0 -0
- /package/dist/esm/{chunk-SM27AC7E.js.map → chunk-DJFTDR6Y.js.map} +0 -0
- /package/dist/esm/{chunk-CRYT55SY.js.map → chunk-EHUSLPWN.js.map} +0 -0
- /package/dist/esm/{chunk-6XHM724Y.js.map → chunk-GTVFQXLJ.js.map} +0 -0
- /package/dist/esm/{chunk-6HRBG5H2.js.map → chunk-KPPIW4OJ.js.map} +0 -0
- /package/dist/esm/{chunk-6WFEMPCF.js.map → chunk-KRXCFIRK.js.map} +0 -0
- /package/dist/esm/{chunk-COSHAOEK.js.map → chunk-MJEYJI5G.js.map} +0 -0
- /package/dist/esm/{chunk-CG54MBMW.js.map → chunk-MPN33CKR.js.map} +0 -0
- /package/dist/esm/{chunk-IGBEDJBC.js.map → chunk-NFVOEHZS.js.map} +0 -0
- /package/dist/esm/{chunk-ORMCQAPS.js.map → chunk-PAQS6C2A.js.map} +0 -0
- /package/dist/esm/{chunk-2IPVLV6B.js.map → chunk-UQZHW3EJ.js.map} +0 -0
- /package/dist/esm/{chunk-DP3OWU5T.js.map → chunk-VT4AAF7Q.js.map} +0 -0
- /package/dist/esm/{chunk-RFURPE7W.js.map → chunk-YF3MFME4.js.map} +0 -0
- /package/dist/esm/{chunk-S53ZQNHK.js.map → chunk-ZFBLPW3X.js.map} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/dropdown-menu.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport { VirtualMenu } from './virtual-menu.js';\nimport classNames from 'classnames';\nimport { DropdownMenu as DropdownMenuPrimitive, Slot } from 'radix-ui';\nimport { useCallbackRef } from 'radix-ui/internal';\n\nimport { ScrollArea } from './scroll-area.js';\nimport {\n dropdownMenuContentPropDefs,\n dropdownMenuSubContentPropDefs,\n dropdownMenuItemPropDefs,\n dropdownMenuCheckboxItemPropDefs,\n dropdownMenuRadioItemPropDefs,\n} from './dropdown-menu.props.js';\nimport { Theme, useThemeContext } from './theme.js';\nimport { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport {\n DrillDownLevelContext,\n DrillDownRoot,\n SubContext,\n useCreateDrillDownStore,\n useDrillDownDirection,\n useDrillDownStore,\n usePanelPosition,\n useStackEntry,\n useSubContext,\n} from './_internal/dropdown-menu-drill-down.js';\nimport { MenuProvider } from './_internal/menu-context.js';\nimport {\n MenuShortcut,\n getMenuAlignOffset,\n toAriaKeyShortcuts,\n useResolvedResponsiveValue,\n} from './_internal/base-menu.utils.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\n\nimport type { SubmenuBehavior } from './_internal/dropdown-menu-drill-down.js';\nimport type { IconProps } from './icons.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes, Responsive } from '../props/prop-def.js';\n\n/**\n * Open state of the menu, mirrored from Root so Content can reset drill-down\n * navigation when a force-mounted menu opens again.\n */\nconst DropdownMenuOpenContext = React.createContext(false);\n\ninterface DropdownMenuRootProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {}\nconst DropdownMenuRoot: React.FC<DropdownMenuRootProps> = (props) => {\n const { open: openProp, defaultOpen = false, onOpenChange } = props;\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const open = openProp ?? uncontrolledOpen;\n\n const handleOpenChangeProp = useCallbackRef(onOpenChange);\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n setUncontrolledOpen(next);\n handleOpenChangeProp(next);\n },\n [handleOpenChangeProp],\n );\n\n return (\n <DropdownMenuOpenContext.Provider value={open}>\n <DropdownMenuPrimitive.Root {...props} onOpenChange={handleOpenChange} />\n </DropdownMenuOpenContext.Provider>\n );\n};\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\ntype DropdownMenuTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.Trigger>;\ninterface DropdownMenuTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Trigger, RemovedProps> {}\nconst DropdownMenuTrigger = React.forwardRef<DropdownMenuTriggerElement, DropdownMenuTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DropdownMenuPrimitive.Trigger>\n ),\n);\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\n/** Visual props shared by Content and SubContent. */\ntype DropdownMenuSurfaceProps = GetPropDefTypes<typeof dropdownMenuSubContentPropDefs>;\n\ntype DropdownMenuContentContextValue = {\n size?: DropdownMenuSurfaceProps['size'];\n color?: DropdownMenuSurfaceProps['color'];\n};\nconst DropdownMenuContentContext = React.createContext<DropdownMenuContentContextValue>({});\n\n/** Keys that navigate back one drill-down level, by writing direction. */\nconst BACK_KEYS = { ltr: 'ArrowLeft', rtl: 'ArrowRight' } as const;\nconst FORWARD_KEYS = { ltr: 'ArrowRight', rtl: 'ArrowLeft' } as const;\n\nfunction isTextEntryTarget(target: EventTarget | null) {\n return (\n target instanceof HTMLElement &&\n (target.isContentEditable || target.tagName === 'INPUT' || target.tagName === 'TEXTAREA')\n );\n}\n\nfunction getDirection(element: HTMLElement | null): 'ltr' | 'rtl' {\n return element?.closest('[dir]')?.getAttribute('dir') === 'rtl' ? 'rtl' : 'ltr';\n}\n\ntype DropdownMenuContentElement = React.ElementRef<typeof DropdownMenuPrimitive.Content>;\ninterface DropdownMenuContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Content, RemovedProps>,\n DropdownMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior?: Responsive<SubmenuBehavior>;\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n * Use this when rendering virtualized lists inside the dropdown.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(\n (props, forwardedRef) => {\n const themeContext = useThemeContext();\n const {\n size = dropdownMenuContentPropDefs.size.default,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\n submenuBehavior,\n virtualized = false,\n onEscapeKeyDown,\n onKeyDown,\n ...contentProps\n } = extractProps(props, dropdownMenuContentPropDefs);\n\n const resolvedColor = color || themeContext.accentColor;\n const behavior = useResolvedResponsiveValue<SubmenuBehavior>(submenuBehavior, 'cascade');\n const isDrillDown = behavior === 'drill-down';\n const open = React.useContext(DropdownMenuOpenContext);\n const drillDownStore = useCreateDrillDownStore();\n\n // Escape goes back one drill-down level before it closes the menu.\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n onEscapeKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n event.preventDefault();\n drillDownStore.pop('keyboard');\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n if (isTextEntryTarget(event.target)) return;\n if (event.key === BACK_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.pop('keyboard');\n }\n };\n\n const contextValue = React.useMemo(\n () => ({ size, color: resolvedColor }),\n [size, resolvedColor],\n );\n\n const contentBody = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>\n <DrillDownRoot store={drillDownStore} behavior={behavior} open={open}>\n {children}\n </DrillDownRoot>\n </DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.Content\n data-accent-color={resolvedColor}\n align=\"start\"\n sideOffset={4}\n collisionPadding={10}\n {...contentProps}\n onEscapeKeyDown={handleEscapeKeyDown}\n onKeyDown={handleKeyDown}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-PopperContent',\n 'rt-BaseMenuContent',\n 'rt-variant-soft',\n 'rt-DropdownMenuContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport', 'rt-virtualized')}>\n {contentBody}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>\n {contentBody}\n </div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.Content>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nDropdownMenuContent.displayName = 'DropdownMenu.Content';\n\ntype DropdownMenuLabelElement = React.ElementRef<typeof DropdownMenuPrimitive.Label>;\ninterface DropdownMenuLabelProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Label, RemovedProps> {}\nconst DropdownMenuLabel = React.forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(\n ({ className, ...props }, forwardedRef) => {\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuLabel', 'rt-DropdownMenuLabel', className)}\n />\n );\n },\n);\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\ntype DropdownMenuItemElement = React.ElementRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemOwnProps = GetPropDefTypes<typeof dropdownMenuItemPropDefs>;\ninterface DropdownMenuItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Item, RemovedProps>,\n DropdownMenuItemOwnProps {}\nconst DropdownMenuItem = React.forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(\n (props, forwardedRef) => {\n const {\n className,\n children,\n color = dropdownMenuItemPropDefs.color.default,\n shortcut,\n ...itemProps\n } = props;\n // In drill-down mode, items of levels that are not on screen do not mount.\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Item\n data-accent-color={color}\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-DropdownMenuItem', className)}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"rt-DropdownMenuShortcut\" />}\n </DropdownMenuPrimitive.Item>\n );\n },\n);\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\ntype DropdownMenuGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.Group>;\ninterface DropdownMenuGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Group, RemovedProps> {}\nconst DropdownMenuGroup = React.forwardRef<DropdownMenuGroupElement, DropdownMenuGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuGroup', 'rt-DropdownMenuGroup', className)}\n />\n ),\n);\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\ntype DropdownMenuRadioGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>;\ninterface DropdownMenuRadioGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioGroup, RemovedProps> {}\nconst DropdownMenuRadioGroup = React.forwardRef<\n DropdownMenuRadioGroupElement,\n DropdownMenuRadioGroupProps\n>(({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.RadioGroup\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuRadioGroup', 'rt-DropdownMenuRadioGroup', className)}\n />\n));\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\ntype DropdownMenuRadioItemElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>;\ntype DropdownMenuRadioItemOwnProps = GetPropDefTypes<typeof dropdownMenuRadioItemPropDefs>;\ninterface DropdownMenuRadioItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioItem, RemovedProps>,\n DropdownMenuRadioItemOwnProps {}\nconst DropdownMenuRadioItem = React.forwardRef<\n DropdownMenuRadioItemElement,\n DropdownMenuRadioItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n color = dropdownMenuRadioItemPropDefs.color.default,\n ...itemProps\n } = props;\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.RadioItem\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'rt-BaseMenuItem',\n 'rt-BaseMenuRadioItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuRadioItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator\">\n <ThickDotIcon className=\"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </DropdownMenuPrimitive.RadioItem>\n );\n});\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\ntype DropdownMenuCheckboxItemElement = React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>;\ntype DropdownMenuCheckboxItemOwnProps = GetPropDefTypes<typeof dropdownMenuCheckboxItemPropDefs>;\ninterface DropdownMenuCheckboxItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.CheckboxItem, RemovedProps>,\n DropdownMenuCheckboxItemOwnProps {}\nconst DropdownMenuCheckboxItem = React.forwardRef<\n DropdownMenuCheckboxItemElement,\n DropdownMenuCheckboxItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n shortcut,\n color = dropdownMenuCheckboxItemPropDefs.color.default,\n ...itemProps\n } = props;\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.CheckboxItem\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'rt-BaseMenuItem',\n 'rt-BaseMenuCheckboxItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuCheckboxItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator\">\n <ThickCheckIcon className=\"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"rt-DropdownMenuShortcut\" />}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n});\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\ninterface DropdownMenuSubProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Sub> {\n /**\n * Label displayed in the back button when using drill-down mode.\n * If not provided, defaults to \"Back\".\n */\n label?: React.ReactNode;\n}\nconst DropdownMenuSub: React.FC<DropdownMenuSubProps> = ({\n label = 'Back',\n open,\n defaultOpen,\n onOpenChange,\n children,\n}) => {\n const drillDownStore = useDrillDownStore();\n const id = React.useId();\n const subContextValue = React.useMemo(() => ({ id, label }), [id, label]);\n const isOpenInDrillDown = usePanelPosition(drillDownStore, id) !== 'closed';\n\n // Drill-down: `open` and `defaultOpen` drive the stack; the stack drives\n // `onOpenChange`. A controlled `open` is applied when it changes.\n React.useLayoutEffect(() => {\n if (!drillDownStore || open === undefined) return;\n if (open && !drillDownStore.isOpen(id)) drillDownStore.push(id, null);\n else if (!open && drillDownStore.isOpen(id)) drillDownStore.close(id);\n }, [drillDownStore, open, id]);\n\n const defaultOpenRef = React.useRef(defaultOpen);\n React.useLayoutEffect(() => {\n if (drillDownStore && defaultOpenRef.current && open === undefined) drillDownStore.push(id, null);\n // Only on mount, like an uncontrolled default.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleOpenChange = useCallbackRef(onOpenChange);\n const wasOpenRef = React.useRef(isOpenInDrillDown);\n React.useEffect(() => {\n if (!drillDownStore || wasOpenRef.current === isOpenInDrillDown) return;\n wasOpenRef.current = isOpenInDrillDown;\n handleOpenChange(isOpenInDrillDown);\n }, [drillDownStore, isOpenInDrillDown, handleOpenChange]);\n\n // Radix Sub stays mounted in both behaviors so switching behavior does not\n // remount the subtree. It only renders context; in drill-down its trigger\n // and content are never rendered, so it reports no open changes of its own.\n return (\n <SubContext.Provider value={subContextValue}>\n <DropdownMenuPrimitive.Sub\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={drillDownStore ? undefined : onOpenChange}\n >\n {children}\n </DropdownMenuPrimitive.Sub>\n </SubContext.Provider>\n );\n};\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\ntype DropdownMenuSubTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>;\ninterface DropdownMenuSubTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubTrigger, RemovedProps> {}\nconst DropdownMenuSubTrigger = React.forwardRef<\n DropdownMenuSubTriggerElement,\n DropdownMenuSubTriggerProps\n>((props, forwardedRef) => {\n const { className, children, onKeyDown, ...subTriggerProps } = props;\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n\n if (drillDownStore && subContext) {\n if (!isLevelVisible) return null;\n\n const handleSelect = (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore.push(subContext.id);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || subTriggerProps.disabled) return;\n if (event.key === FORWARD_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.push(subContext.id, 'keyboard');\n }\n };\n\n return (\n <DropdownMenuPrimitive.Item\n aria-haspopup=\"menu\"\n {...subTriggerProps}\n data-drill-down-trigger={subContext.id}\n data-drill-down-name={subTriggerProps.textValue}\n onSelect={handleSelect}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-BaseMenuSubTrigger',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuSubTrigger',\n 'rt-DropdownMenuDrillDownSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.Item>\n );\n }\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n {...subTriggerProps}\n onKeyDown={onKeyDown}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-BaseMenuItem',\n 'rt-BaseMenuSubTrigger',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.SubTrigger>\n );\n});\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\ntype DropdownMenuSeparatorElement = React.ElementRef<typeof DropdownMenuPrimitive.Separator>;\ninterface DropdownMenuSeparatorProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Separator, RemovedProps> {}\nconst DropdownMenuSeparator = React.forwardRef<\n DropdownMenuSeparatorElement,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, forwardedRef) => {\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuSeparator', 'rt-DropdownMenuSeparator', className)}\n />\n );\n});\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/** The row at the top of a drill-down panel that returns to the parent level. */\nfunction DrillDownBackItem({ label, name }: { label: React.ReactNode; name: string }) {\n const drillDownStore = useDrillDownStore();\n\n const handleSelect = React.useCallback(\n (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore?.pop();\n },\n [drillDownStore],\n );\n\n // The visible label is often the submenu title, so the accessible name says\n // what the row does while still containing the visible text.\n const labelText = typeof label === 'string' ? label : name;\n const ariaLabel = labelText && labelText !== 'Back' ? `Back from ${labelText}` : undefined;\n\n return (\n <DropdownMenuPrimitive.Item\n aria-label={ariaLabel}\n textValue={labelText || 'Back'}\n onSelect={handleSelect}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuDrillDownBackItem',\n )}\n >\n <ThickChevronLeftIcon className=\"rt-BaseMenuSubTriggerIcon rt-DropdownMenuDrillDownBackIcon\" />\n <span className=\"rt-DropdownMenuDrillDownBackLabel\">{label}</span>\n </DropdownMenuPrimitive.Item>\n );\n}\n\n/** Radix positioning and layer props that have no meaning for an inline drill-down panel. */\ntype PopperOnlyProps =\n | 'loop'\n | 'onEscapeKeyDown'\n | 'onPointerDownOutside'\n | 'onFocusOutside'\n | 'onInteractOutside'\n | 'sideOffset'\n | 'alignOffset'\n | 'avoidCollisions'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'arrowPadding'\n | 'sticky'\n | 'hideWhenDetached'\n | 'updatePositionStrategy';\n\nfunction omitPopperProps<T extends Record<string, unknown>>(props: T): Omit<T, PopperOnlyProps> {\n const {\n loop: _loop,\n onEscapeKeyDown: _onEscapeKeyDown,\n onPointerDownOutside: _onPointerDownOutside,\n onFocusOutside: _onFocusOutside,\n onInteractOutside: _onInteractOutside,\n sideOffset: _sideOffset,\n alignOffset: _alignOffset,\n avoidCollisions: _avoidCollisions,\n collisionBoundary: _collisionBoundary,\n collisionPadding: _collisionPadding,\n arrowPadding: _arrowPadding,\n sticky: _sticky,\n hideWhenDetached: _hideWhenDetached,\n updatePositionStrategy: _updatePositionStrategy,\n ...rest\n } = props;\n return rest;\n}\n\ntype DropdownMenuSubContentElement = React.ElementRef<typeof DropdownMenuPrimitive.SubContent>;\ninterface DropdownMenuSubContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubContent, RemovedProps>,\n DropdownMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * When true, skips the ScrollArea wrapper so a VirtualMenu can handle its own\n * scrolling. Applies to cascade submenus; a drill-down panel scrolls with the\n * root content.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuSubContent = React.forwardRef<\n DropdownMenuSubContentElement,\n DropdownMenuSubContentProps\n>((props, forwardedRef) => {\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n\n if (drillDownStore && subContext) {\n return (\n <DrillDownPanel {...props} ref={forwardedRef} store={drillDownStore} sub={subContext} />\n );\n }\n return <CascadeSubContent {...props} ref={forwardedRef} />;\n});\nDropdownMenuSubContent.displayName = 'DropdownMenu.SubContent';\n\nconst CascadeSubContent = React.forwardRef<DropdownMenuSubContentElement, DropdownMenuSubContentProps>(\n (props, forwardedRef) => {\n const parent = React.useContext(DropdownMenuContentContext);\n\n // A submenu inherits the parent surface, and its own props win.\n const size = props.size ?? parent.size;\n const color = props.color ?? parent.color;\n\n const {\n className,\n children,\n container,\n forceMount,\n color: _color,\n virtualized = false,\n ...subContentProps\n } = extractProps({ ...props, size }, dropdownMenuSubContentPropDefs);\n\n const scalarSize = useResolvedResponsiveValue(size, dropdownMenuSubContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, color }),\n [size, color],\n );\n\n const body = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>{children}</DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.SubContent\n data-accent-color={color}\n alignOffset={getMenuAlignOffset(scalarSize)}\n // Side offset accounts for the outer solid box-shadow\n sideOffset={1}\n collisionPadding={10}\n {...subContentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-PopperContent',\n 'rt-BaseMenuContent',\n 'rt-variant-soft',\n 'rt-BaseMenuSubContent',\n 'rt-DropdownMenuContent',\n 'rt-DropdownMenuSubContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport', 'rt-virtualized')}>\n {body}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>{body}</div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.SubContent>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nCascadeSubContent.displayName = 'DropdownMenu.CascadeSubContent';\n\ninterface DrillDownPanelProps extends DropdownMenuSubContentProps {\n store: NonNullable<ReturnType<typeof useDrillDownStore>>;\n sub: NonNullable<ReturnType<typeof useSubContext>>;\n}\n\n/**\n * A submenu rendered inline in drill-down mode. It mounts its children only\n * while it is on the navigation stack, and shows its own items only while it\n * is the top level; deeper panels inside it stay mounted.\n */\nconst DrillDownPanel = React.forwardRef<DropdownMenuSubContentElement, DrillDownPanelProps>(\n ({ store, sub, ...props }, forwardedRef) => {\n const position = usePanelPosition(store, sub.id);\n const entry = useStackEntry(store, sub.id);\n const direction = useDrillDownDirection(position === 'top' ? store : null);\n\n if (position === 'closed') return null;\n\n const {\n className,\n children,\n container: _container,\n forceMount: _forceMount,\n virtualized: _virtualized,\n size: _size,\n color: _color,\n ...panelProps\n } = omitPopperProps(props);\n\n const isTop = position === 'top';\n const name = entry?.name || (typeof sub.label === 'string' ? sub.label : '');\n\n return (\n <div\n role=\"group\"\n aria-label={name || undefined}\n {...panelProps}\n ref={forwardedRef}\n data-drill-down-panel={sub.id}\n data-drill-down-active={isTop ? true : undefined}\n data-animation-direction={isTop ? (direction ?? undefined) : undefined}\n className={classNames('rt-DropdownMenuDrillDownPanel', className)}\n >\n {isTop && (\n <>\n <DrillDownBackItem label={sub.label} name={name} />\n <DropdownMenuPrimitive.Separator className=\"rt-BaseMenuSeparator rt-DropdownMenuSeparator\" />\n </>\n )}\n <DrillDownLevelContext.Provider value={isTop}>{children}</DrillDownLevelContext.Provider>\n </div>\n );\n },\n);\nDrillDownPanel.displayName = 'DropdownMenu.DrillDownPanel';\n\ntype DropdownMenuTriggerIconElement = React.ElementRef<'svg'>;\ninterface DropdownMenuTriggerIconProps extends IconProps {}\nconst DropdownMenuTriggerIcon = React.forwardRef<\n DropdownMenuTriggerIconElement,\n DropdownMenuTriggerIconProps\n>(({ className, ...props }, forwardedRef) => (\n <ChevronDownIcon\n {...props}\n ref={forwardedRef}\n className={classNames('rt-DropdownMenuTriggerIcon', className)}\n />\n));\nDropdownMenuTriggerIcon.displayName = 'DropdownMenu.TriggerIcon';\n\nexport {\n DropdownMenuRoot as Root,\n DropdownMenuTrigger as Trigger,\n DropdownMenuTriggerIcon as TriggerIcon,\n DropdownMenuContent as Content,\n DropdownMenuLabel as Label,\n DropdownMenuItem as Item,\n DropdownMenuGroup as Group,\n DropdownMenuRadioGroup as RadioGroup,\n DropdownMenuRadioItem as RadioItem,\n DropdownMenuCheckboxItem as CheckboxItem,\n DropdownMenuSub as Sub,\n DropdownMenuSubTrigger as SubTrigger,\n DropdownMenuSubContent as SubContent,\n DropdownMenuSeparator as Separator,\n VirtualMenu as Virtual,\n};\n\nexport type {\n DropdownMenuRootProps as RootProps,\n DropdownMenuTriggerProps as TriggerProps,\n DropdownMenuTriggerIconProps as TriggerIconProps,\n DropdownMenuContentProps as ContentProps,\n DropdownMenuLabelProps as LabelProps,\n DropdownMenuItemProps as ItemProps,\n DropdownMenuGroupProps as GroupProps,\n DropdownMenuRadioGroupProps as RadioGroupProps,\n DropdownMenuRadioItemProps as RadioItemProps,\n DropdownMenuCheckboxItemProps as CheckboxItemProps,\n DropdownMenuSubProps as SubProps,\n DropdownMenuSubTriggerProps as SubTriggerProps,\n DropdownMenuSubContentProps as SubContentProps,\n DropdownMenuSeparatorProps as SeparatorProps,\n SubmenuBehavior,\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["dropdown_menu_exports", "__export", "DropdownMenuCheckboxItem", "DropdownMenuContent", "DropdownMenuGroup", "DropdownMenuItem", "DropdownMenuLabel", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "DropdownMenuRoot", "DropdownMenuSeparator", "DropdownMenuSub", "DropdownMenuSubContent", "DropdownMenuSubTrigger", "DropdownMenuTrigger", "DropdownMenuTriggerIcon", "VirtualMenu", "React", "classNames", "DropdownMenuPrimitive", "Slot", "useCallbackRef", "DropdownMenuOpenContext", "DropdownMenuRoot", "props", "openProp", "defaultOpen", "onOpenChange", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChangeProp", "useCallbackRef", "handleOpenChange", "next", "DropdownMenuPrimitive", "DropdownMenuTrigger", "children", "forwardedRef", "requireReactElement", "DropdownMenuContentContext", "BACK_KEYS", "FORWARD_KEYS", "isTextEntryTarget", "target", "getDirection", "element", "DropdownMenuContent", "themeContext", "useThemeContext", "size", "baseMenuContentPropDefs", "className", "color", "container", "forceMount", "submenuBehavior", "virtualized", "onEscapeKeyDown", "onKeyDown", "contentProps", "extractProps", "resolvedColor", "behavior", "useResolvedResponsiveValue", "isDrillDown", "drillDownStore", "useCreateDrillDownStore", "handleEscapeKeyDown", "event", "handleKeyDown", "contextValue", "contentBody", "MenuProvider", "DrillDownRoot", "Theme", "classNames", "ScrollArea", "DropdownMenuLabel", "DrillDownLevelContext", "DropdownMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "toAriaKeyShortcuts", "Slot", "MenuShortcut", "DropdownMenuGroup", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "DropdownMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "DropdownMenuSub", "label", "useDrillDownStore", "id", "subContextValue", "isOpenInDrillDown", "usePanelPosition", "defaultOpenRef", "wasOpenRef", "SubContext", "DropdownMenuSubTrigger", "subTriggerProps", "subContext", "useSubContext", "isLevelVisible", "handleSelect", "ThickChevronRightIcon", "DropdownMenuSeparator", "DrillDownBackItem", "name", "labelText", "ariaLabel", "ThickChevronLeftIcon", "omitPopperProps", "_loop", "_onEscapeKeyDown", "_onPointerDownOutside", "_onFocusOutside", "_onInteractOutside", "_sideOffset", "_alignOffset", "_avoidCollisions", "_collisionBoundary", "_collisionPadding", "_arrowPadding", "_sticky", "_hideWhenDetached", "_updatePositionStrategy", "rest", "DropdownMenuSubContent", "DrillDownPanel", "CascadeSubContent", "parent", "_color", "subContentProps", "baseMenuSubContentPropDefs", "scalarSize", "body", "getMenuAlignOffset", "store", "sub", "position", "entry", "useStackEntry", "direction", "useDrillDownDirection", "_container", "_forceMount", "_virtualized", "_size", "panelProps", "isTop", "DropdownMenuTriggerIcon", "ChevronDownIcon"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as b}from"./chunk-K7VO7TND.js";import{a as S}from"./chunk-6HRBG5H2.js";import{a as v}from"./chunk-MZQDDG5K.js";import{a as x}from"./chunk-O6K6RZXY.js";import{f as B}from"./chunk-SM27AC7E.js";import{a as R}from"./chunk-UBSLEGQZ.js";import{a as y}from"./chunk-GSTOGDAJ.js";import*as o from"react";import T from"classnames";import{Toolbar as P}from"radix-ui";var C=o.createContext(null),G=o.createContext(null);function u(t){let r=o.useContext(C);if(!r)throw new Error(`${t} must be rendered inside a Toolbar.`);return r}var m=o.forwardRef((t,r)=>{let e=B(),a=t.size??e??b.size.default,s=t.orientation??b.orientation.default,{className:n,orientation:l,backdrop:i=!1,children:c,...d}=R({...t,size:a},b,y),p=o.useMemo(()=>({size:a,orientation:s,backdrop:i}),[a,s,i]);return o.createElement(P.Root,{...d,ref:r,orientation:s,"data-backdrop":i||void 0,className:T("rt-Toolbar",n)},o.createElement(C.Provider,{value:p},c))});m.displayName="Toolbar";var N=o.forwardRef(({className:t,disabled:r=!1,children:e,...a},s)=>{let{orientation:n}=u("ToolbarGroup"),l=o.useMemo(()=>({disabled:r}),[r]);return o.createElement("div",{role:"group","data-orientation":n,"data-disabled":r||void 0,...a,ref:s,className:T("rt-ToolbarGroup",t)},o.createElement(G.Provider,{value:l},e))});N.displayName="Toolbar.Group";function w(t){return t===!0||t==="true"}var z=o.forwardRef((t,r)=>{let e=u("ToolbarButton"),a=o.useContext(G),{iconOnly:s,size:n,variant:l,emphasis:i,color:c,disabled:d,...p}=t,O=w(t["aria-pressed"]),D="data-state"in t||t["aria-pressed"]===void 0?{}:{"data-state":O?"on":"off"},f={size:n??e.size,...i!==void 0?{emphasis:i}:{variant:l??(a?"ghost":e.backdrop?"raised":"soft")},color:c??(l||i?void 0:"gray"),...D};return o.createElement(P.Button,{asChild:!0,ref:r,disabled:d||a?.disabled||void 0},s?o.createElement(S,{...p,...f}):o.createElement(v,{...p,...f}))});z.displayName="Toolbar.Button";var g=o.forwardRef(({className:t,...r},e)=>(u("ToolbarSeparator"),o.createElement(P.Separator,{...r,ref:e,className:T("rt-ToolbarSeparator",t)})));g.displayName="Toolbar.Separator";var M={1:"2",2:"3",3:"4",4:"5"},h=o.forwardRef(({className:t,children:r,style:e,id:a},s)=>{let{size:n}=u("ToolbarTitle");return r==null||r===!1?null:o.createElement(x,{ref:s,as:"span",size:M[n],weight:"medium",truncate:!0,id:a,style:e,className:T("rt-ToolbarTitle",t)},r)});h.displayName="Toolbar.Title";var _=Object.assign(m,{Root:m,Group:N,Button:z,Separator:g,Title:h});export{m as a,N as b,z as c,g as d,h as e,_ as f};
|
|
2
|
-
//# sourceMappingURL=chunk-FPDLBLO3.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/toolbar.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Toolbar as ToolbarPrimitive } from 'radix-ui';\n\nimport { toolbarRootPropDefs } from './toolbar.props.js';\nimport { Button } from './button.js';\nimport { IconButton } from './icon-button.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { usePaneBandSize } from './_internal/pane-chrome.js';\n\nimport type { ButtonProps } from './button.js';\nimport type { TextProps } from './text.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ButtonRankProps } from './button.js';\n\n/*\n * Toolbar takes Kookie UI v2's contract (v2: components/toolbar), built on Radix instead of\n * Base UI. A toolbar is a row of controls with ONE tab stop: `role=\"toolbar\"`, and the arrow\n * keys move focus between its controls. That keyboard is the reason it is a component.\n *\n * Its `size` reaches every control inside it that does not state its own. The row itself paints\n * nothing; a `ToolbarGroup` draws a quiet well around controls that belong together, and a\n * `ToolbarSeparator` draws a gray hairline between clusters. Use a `Flex` to cluster controls\n * without a well: the row spaces the clusters with `space-between`.\n */\n\ntype ToolbarSize = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['size']>;\ntype ToolbarOrientation = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['orientation']>;\n\ninterface ToolbarContextValue {\n size: ToolbarSize;\n orientation: ToolbarOrientation;\n backdrop: boolean;\n}\n\nconst ToolbarContext = React.createContext<ToolbarContextValue | null>(null);\n\n/** Set by a `ToolbarGroup`: its children rest quiet, and `disabled` turns them all off. */\nconst ToolbarGroupContext = React.createContext<{ disabled: boolean } | null>(null);\n\nfunction useToolbarContext(consumer: string): ToolbarContextValue {\n const context = React.useContext(ToolbarContext);\n if (!context) {\n throw new Error(`${consumer} must be rendered inside a Toolbar.`);\n }\n return context;\n}\n\n// ============================================================================\n// Toolbar (root)\n// ============================================================================\n\ntype ToolbarOwnProps = GetPropDefTypes<typeof toolbarRootPropDefs>;\n\ninterface ToolbarProps\n extends ComponentPropsWithout<typeof ToolbarPrimitive.Root, RemovedProps | 'orientation'>,\n ToolbarOwnProps,\n MarginProps {\n /**\n * Gives every control a surface of its own, for a row that content passes behind, such as\n * `Shell.PaneHeader float`. Buttons rest `raised` instead of `soft`, and a group's well is\n * solid and raised.\n */\n backdrop?: boolean;\n}\n\n/**\n * A row of controls with one keyboard tab stop. The arrow keys move focus between the controls.\n *\n * Give it an `aria-label` (or `aria-labelledby`) that says what the controls act on.\n *\n * @example\n * ```tsx\n * <Toolbar aria-label=\"Formatting\">\n * <ToolbarGroup>\n * <ToolbarButton iconOnly aria-label=\"Bold\" aria-pressed={bold} onClick={toggleBold}>\n * <HugeiconsIcon icon={TextBoldIcon} strokeWidth={1.75} />\n * </ToolbarButton>\n * </ToolbarGroup>\n * <ToolbarSeparator />\n * <ToolbarButton>Share</ToolbarButton>\n * </Toolbar>\n * ```\n */\nconst ToolbarRoot = React.forwardRef<HTMLDivElement, ToolbarProps>((props, forwardedRef) => {\n // In a Shell pane's header or footer, a toolbar with no size rests one step above the Shell's.\n const band = usePaneBandSize();\n const size: ToolbarSize = props.size ?? band ?? toolbarRootPropDefs.size.default;\n const orientation: ToolbarOrientation = props.orientation ?? toolbarRootPropDefs.orientation.default;\n const { className, orientation: _orientation, backdrop = false, children, ...rootProps } = extractProps(\n { ...props, size },\n toolbarRootPropDefs,\n marginPropDefs,\n );\n\n const context = React.useMemo(() => ({ size, orientation, backdrop }), [size, orientation, backdrop]);\n\n return (\n <ToolbarPrimitive.Root\n {...rootProps}\n ref={forwardedRef}\n orientation={orientation}\n data-backdrop={backdrop || undefined}\n className={classNames('rt-Toolbar', className)}\n >\n <ToolbarContext.Provider value={context}>{children}</ToolbarContext.Provider>\n </ToolbarPrimitive.Root>\n );\n});\nToolbarRoot.displayName = 'Toolbar';\n\n// ============================================================================\n// ToolbarGroup\n// ============================================================================\n\ninterface ToolbarGroupProps extends ComponentPropsWithout<'div', RemovedProps> {\n /** Turns every control in the group off at once. */\n disabled?: boolean;\n}\n\n/**\n * Controls that belong together, drawn as one quiet well that stands level with a button\n * beside it. Buttons inside it rest as `ghost` unless they state a `variant`.\n * To cluster controls without a well, use a `Flex`.\n */\nconst ToolbarGroup = React.forwardRef<HTMLDivElement, ToolbarGroupProps>(\n ({ className, disabled = false, children, ...props }, forwardedRef) => {\n const { orientation } = useToolbarContext('ToolbarGroup');\n const group = React.useMemo(() => ({ disabled }), [disabled]);\n return (\n <div\n role=\"group\"\n data-orientation={orientation}\n data-disabled={disabled || undefined}\n {...props}\n ref={forwardedRef}\n className={classNames('rt-ToolbarGroup', className)}\n >\n <ToolbarGroupContext.Provider value={group}>{children}</ToolbarGroupContext.Provider>\n </div>\n );\n },\n);\nToolbarGroup.displayName = 'Toolbar.Group';\n\n// ============================================================================\n// ToolbarButton\n// ============================================================================\n\ntype ToolbarButtonBaseProps = Omit<ButtonProps, 'as' | 'asChild' | 'variant' | 'emphasis'>;\n\n/** A labelled button: takes every `Button` prop. */\ntype ToolbarTextButtonProps = ToolbarButtonBaseProps &\n ButtonRankProps & {\n iconOnly?: false;\n};\n\n/** An icon-only button: renders an `IconButton`, and the type requires an `aria-label`. */\ntype ToolbarIconButtonProps = Omit<ToolbarButtonBaseProps, 'aria-label' | 'aria-labelledby' | 'fullWidth'> &\n ButtonRankProps & {\n iconOnly: true;\n /** The control's accessible name. An icon has no words of its own, so this is required. */\n 'aria-label': string;\n};\n\ntype ToolbarButtonProps = ToolbarTextButtonProps | ToolbarIconButtonProps;\n\nfunction isPressed(value: React.AriaAttributes['aria-pressed']) {\n return value === true || value === 'true';\n}\n\n/**\n * A `Button` that joins the toolbar's keyboard navigation, so a row of them is one tab stop.\n *\n * Set `iconOnly` (with an `aria-label`) for a symbol-only control. Set `aria-pressed` for a\n * control that toggles; a pressed button wears Button's pressed look.\n *\n * It takes the toolbar's `size`, and rests as a gray `soft` button (`raised` in a toolbar with\n * `backdrop`, gray `ghost` inside a `ToolbarGroup`). A stated `size`, `variant` or `color` wins; a stated `variant` without a\n * `color` takes Button's own default colour. It throws outside a `Toolbar`.\n */\nconst ToolbarButton = React.forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {\n const toolbar = useToolbarContext('ToolbarButton');\n const group = React.useContext(ToolbarGroupContext);\n const { iconOnly, size, variant, emphasis, color, disabled, ...rest } = props;\n\n const pressed = isPressed(props['aria-pressed']);\n const stateProps =\n 'data-state' in props || props['aria-pressed'] === undefined ? {} : { 'data-state': pressed ? 'on' : 'off' };\n\n const shared = {\n size: size ?? toolbar.size,\n // A caller states the look by `variant` or the rank by `emphasis`, never both.\n ...(emphasis !== undefined ? { emphasis } : { variant: variant ?? (group ? 'ghost' : toolbar.backdrop ? 'raised' : 'soft') }),\n // The gray rest is a pair with the default variant: a caller who states a variant or an\n // emphasis gets Button's own colour for it unless they state a colour too.\n color: color ?? (variant || emphasis ? undefined : 'gray'),\n ...stateProps,\n } as const;\n\n return (\n <ToolbarPrimitive.Button asChild ref={forwardedRef} disabled={disabled || group?.disabled || undefined}>\n {iconOnly ? (\n <IconButton {...(rest as Omit<ToolbarIconButtonProps, 'iconOnly' | 'variant' | 'emphasis'>)} {...shared} />\n ) : (\n <Button {...(rest as Omit<ToolbarTextButtonProps, 'iconOnly' | 'variant' | 'emphasis'>)} {...shared} />\n )}\n </ToolbarPrimitive.Button>\n );\n});\nToolbarButton.displayName = 'Toolbar.Button';\n\n// ============================================================================\n// ToolbarSeparator\n// ============================================================================\n\ntype ToolbarSeparatorProps = ComponentPropsWithout<typeof ToolbarPrimitive.Separator, RemovedProps | 'orientation'>;\n\n/**\n * A gray hairline between two clusters, announced as a separator. Its direction is always\n * opposite to the toolbar's.\n */\nconst ToolbarSeparator = React.forwardRef<HTMLDivElement, ToolbarSeparatorProps>(\n ({ className, ...props }, forwardedRef) => {\n useToolbarContext('ToolbarSeparator');\n return (\n <ToolbarPrimitive.Separator\n {...props}\n ref={forwardedRef}\n className={classNames('rt-ToolbarSeparator', className)}\n />\n );\n },\n);\nToolbarSeparator.displayName = 'Toolbar.Separator';\n\n// ============================================================================\n// ToolbarTitle\n// ============================================================================\n\n/** The title's text step: one step above the label of a button at the same size. */\nconst TITLE_SIZE = { '1': '2', '2': '3', '3': '4', '4': '5' } as const satisfies Record<ToolbarSize, TextProps['size']>;\n\ninterface ToolbarTitleProps {\n /** The title text. With none, the title renders nothing. */\n children?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n /** The id of the title, so that the toolbar's `aria-labelledby` can point at it. */\n id?: string;\n}\n\n/**\n * What the row is about, at its leading edge. One line: it truncates rather than wrapping.\n * Its text step follows the toolbar's `size`, and it takes more air from the controls beside it\n * than they take from each other.\n */\nconst ToolbarTitle = React.forwardRef<HTMLSpanElement, ToolbarTitleProps>(\n ({ className, children, style, id }, forwardedRef) => {\n const { size } = useToolbarContext('ToolbarTitle');\n if (children === undefined || children === null || children === false) return null;\n return (\n <Text\n ref={forwardedRef}\n as=\"span\"\n size={TITLE_SIZE[size]}\n weight=\"medium\"\n truncate\n id={id}\n style={style}\n className={classNames('rt-ToolbarTitle', className)}\n >\n {children}\n </Text>\n );\n },\n);\nToolbarTitle.displayName = 'Toolbar.Title';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst Toolbar = Object.assign(ToolbarRoot, {\n Root: ToolbarRoot,\n Group: ToolbarGroup,\n Button: ToolbarButton,\n Separator: ToolbarSeparator,\n Title: ToolbarTitle,\n});\n\nexport {\n Toolbar,\n ToolbarGroup,\n ToolbarButton,\n ToolbarSeparator,\n ToolbarTitle,\n ToolbarRoot as Root,\n ToolbarGroup as Group,\n ToolbarButton as Button,\n ToolbarSeparator as Separator,\n ToolbarTitle as Title,\n};\nexport type {\n ToolbarProps,\n ToolbarGroupProps,\n ToolbarButtonProps,\n ToolbarSeparatorProps,\n ToolbarTitleProps,\n ToolbarProps as RootProps,\n ToolbarGroupProps as GroupProps,\n ToolbarButtonProps as ButtonProps,\n ToolbarSeparatorProps as SeparatorProps,\n ToolbarTitleProps as TitleProps,\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "classNames", "ToolbarPrimitive", "ToolbarContext", "ToolbarGroupContext", "useToolbarContext", "consumer", "context", "ToolbarRoot", "props", "forwardedRef", "band", "usePaneBandSize", "size", "toolbarRootPropDefs", "orientation", "className", "_orientation", "backdrop", "children", "rootProps", "extractProps", "marginPropDefs", "ToolbarPrimitive", "classNames", "ToolbarGroup", "disabled", "group", "isPressed", "value", "ToolbarButton", "toolbar", "iconOnly", "variant", "emphasis", "color", "rest", "pressed", "stateProps", "shared", "IconButton", "Button", "ToolbarSeparator", "TITLE_SIZE", "ToolbarTitle", "style", "id", "Text", "Toolbar"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as S,b as N,c as b}from"./chunk-KU3LLWFU.js";import{b as I,c as T}from"./chunk-IX5HIHVI.js";import{b as y,c as h}from"./chunk-2HUAVZZL.js";import{a as v}from"./chunk-DDFONGSM.js";import{a as u}from"./chunk-UBSLEGQZ.js";import{a as g}from"./chunk-GSTOGDAJ.js";import{a as A}from"./chunk-OS3FCYZY.js";var W={};A(W,{Content:()=>E,Group:()=>G,Item:()=>L,Label:()=>D,Root:()=>x,Separator:()=>V,Trigger:()=>w});import*as e from"react";import s from"classnames";import{Select as a,ScrollArea as P}from"radix-ui";var R=e.createContext({}),x=r=>{let{children:o,size:t=S.size.default,...l}=r;return e.createElement(a.Root,{...l},e.createElement(R.Provider,{value:e.useMemo(()=>({size:t}),[t])},o))};x.displayName="Select.Root";var w=e.forwardRef((r,o)=>{let t=e.useContext(R),{children:l,className:i,color:n,radius:f,placeholder:d,error:p,loading:c,disabled:m,readOnly:C,...z}=u({size:t?.size,...r},{size:S.size},N,g),M=e.useMemo(()=>({"aria-invalid":p||void 0,"aria-busy":c||void 0,"aria-disabled":m||void 0,"aria-readonly":C||void 0}),[p,c,m,C]);return e.createElement(a.Trigger,{asChild:!0},e.createElement("button",{"data-accent-color":n,"data-radius":f,"data-error":p,"data-loading":c,...z,...M,ref:o,className:s("rt-reset","rt-SelectTrigger",i)},e.createElement("span",{className:"rt-SelectTriggerInner"},e.createElement(a.Value,{placeholder:d},l)),e.createElement(a.Icon,{asChild:!0},c?e.createElement("div",{className:"rt-SelectIcon rt-SelectLoadingIcon","aria-hidden":"true"},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},e.createElement("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"32",strokeDashoffset:"32",className:"rt-SelectLoadingIconCircle"}))):e.createElement(T,{className:"rt-SelectIcon"}))))});w.displayName="Select.Trigger";var E=e.forwardRef((r,o)=>{let t=e.useContext(R),{className:l,children:i,color:n,container:f,...d}=u({size:t?.size,...r},{size:S.size},b),p=y(),c=n||p.accentColor,m=v();return e.createElement(a.Portal,{container:f},e.createElement(h,{asChild:!0},e.createElement(a.Content,{"data-accent-color":c,sideOffset:4,...d,asChild:!1,ref:o,className:s("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-SelectContent",l)},e.createElement(P.Root,{type:"auto",className:"rt-ScrollAreaRoot"},e.createElement(a.Viewport,{asChild:!0,className:s("rt-BaseMenuViewport","rt-SelectViewport")},e.createElement(P.Viewport,{ref:m,className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),e.createElement(P.Scrollbar,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},e.createElement(P.Thumb,{className:"rt-ScrollAreaThumb"}))))))});E.displayName="Select.Content";var L=e.forwardRef((r,o)=>{let{className:t,children:l,...i}=r,n=typeof l!="string";return e.createElement(a.Item,{...i,asChild:!1,ref:o,className:s("rt-reset","rt-BaseMenuItem","rt-SelectItem",{"rt-SelectItemRich":n},t)},e.createElement(a.ItemIndicator,{className:"rt-SelectItemIndicator"},e.createElement(I,{className:"rt-SelectItemIndicatorIcon"})),e.createElement(a.ItemText,null,l))});L.displayName="Select.Item";var G=e.forwardRef(({className:r,...o},t)=>e.createElement(a.Group,{...o,asChild:!1,ref:t,className:s("rt-SelectGroup",r)}));G.displayName="Select.Group";var D=e.forwardRef(({className:r,...o},t)=>e.createElement(a.Label,{...o,asChild:!1,ref:t,className:s("rt-BaseMenuLabel","rt-SelectLabel",r)}));D.displayName="Select.Label";var V=e.forwardRef(({className:r,...o},t)=>e.createElement(a.Separator,{...o,asChild:!1,ref:t,className:s("rt-BaseMenuSeparator","rt-SelectSeparator",r)}));V.displayName="Select.Separator";export{x as a,w as b,E as c,L as d,G as e,D as f,V as g,W as h};
|
|
2
|
-
//# sourceMappingURL=chunk-GOYI2U6F.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/select.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Select as SelectPrimitive, ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { ChevronDownIcon, ThickCheckIcon } from './icons.js';\nimport {\n selectRootPropDefs,\n selectTriggerPropDefs,\n selectContentPropDefs,\n} from './select.props.js';\nimport { useThemeContext, Theme } from './theme.js';\nimport { useThumbSync } from '../hooks/use-thumb-sync.js';\n\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype SelectRootOwnProps = GetPropDefTypes<typeof selectRootPropDefs>;\n\ntype SelectContextValue = SelectRootOwnProps;\nconst SelectContext = React.createContext<SelectContextValue>({});\n\ninterface SelectRootProps extends SelectPrimitive.SelectProps, SelectContextValue {}\nconst SelectRoot: React.FC<SelectRootProps> = (props) => {\n const { children, size = selectRootPropDefs.size.default, ...rootProps } = props;\n return (\n <SelectPrimitive.Root {...rootProps}>\n <SelectContext.Provider value={React.useMemo(() => ({ size }), [size])}>\n {children}\n </SelectContext.Provider>\n </SelectPrimitive.Root>\n );\n};\nSelectRoot.displayName = 'Select.Root';\n\ntype SelectTriggerElement = React.ElementRef<typeof SelectPrimitive.Trigger>;\ntype SelectTriggerOwnProps = GetPropDefTypes<typeof selectTriggerPropDefs>;\ninterface SelectTriggerProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Trigger, RemovedProps>,\n MarginProps,\n SelectTriggerOwnProps {}\nconst SelectTrigger = React.forwardRef<SelectTriggerElement, SelectTriggerProps>(\n (props, forwardedRef) => {\n const context = React.useContext(SelectContext);\n const {\n children,\n className,\n color,\n radius,\n placeholder,\n error,\n loading,\n disabled,\n readOnly,\n ...triggerProps\n } = extractProps(\n // Pass size value from the context to generate styles\n { size: context?.size, ...props },\n // Pass size prop def to allow it to be extracted\n { size: selectRootPropDefs.size },\n selectTriggerPropDefs,\n marginPropDefs,\n );\n\n\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': error || undefined,\n 'aria-busy': loading || undefined,\n 'aria-disabled': disabled || undefined,\n 'aria-readonly': readOnly || undefined,\n }),\n [error, loading, disabled, readOnly],\n );\n\n return (\n <SelectPrimitive.Trigger asChild>\n <button\n data-accent-color={color}\n data-radius={radius}\n data-error={error}\n data-loading={loading}\n {...triggerProps}\n {...ariaProps}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-SelectTrigger', className)}\n >\n <span className=\"rt-SelectTriggerInner\">\n <SelectPrimitive.Value placeholder={placeholder}>{children}</SelectPrimitive.Value>\n </span>\n <SelectPrimitive.Icon asChild>\n {loading ? (\n <div className=\"rt-SelectIcon rt-SelectLoadingIcon\" aria-hidden=\"true\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"7\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"32\"\n strokeDashoffset=\"32\"\n className=\"rt-SelectLoadingIconCircle\"\n />\n </svg>\n </div>\n ) : (\n <ChevronDownIcon className=\"rt-SelectIcon\" />\n )}\n </SelectPrimitive.Icon>\n </button>\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'Select.Trigger';\n\ntype SelectContentElement = React.ElementRef<typeof SelectPrimitive.Content>;\ntype SelectContentOwnProps = GetPropDefTypes<typeof selectContentPropDefs>;\ninterface SelectContentProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Content, RemovedProps>,\n SelectContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Portal>['container'];\n}\nconst SelectContent = React.forwardRef<SelectContentElement, SelectContentProps>(\n (props, forwardedRef) => {\n const context = React.useContext(SelectContext);\n const { className, children, color, container, ...contentProps } = extractProps(\n // Pass size value from the context to generate styles\n { size: context?.size, ...props },\n // Pass size prop def to allow it to be extracted\n { size: selectRootPropDefs.size },\n selectContentPropDefs,\n );\n const themeContext = useThemeContext();\n const resolvedColor = color || themeContext.accentColor;\n const setThumbViewport = useThumbSync<HTMLDivElement>();\n return (\n <SelectPrimitive.Portal container={container}>\n <Theme asChild>\n <SelectPrimitive.Content\n data-accent-color={resolvedColor}\n sideOffset={4}\n {...contentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-PopperContent',\n 'rt-BaseMenuContent',\n 'rt-variant-soft',\n 'rt-SelectContent',\n className,\n )}\n >\n <ScrollAreaPrimitive.Root type=\"auto\" className=\"rt-ScrollAreaRoot\">\n <SelectPrimitive.Viewport\n asChild\n className={classNames('rt-BaseMenuViewport', 'rt-SelectViewport')}\n >\n <ScrollAreaPrimitive.Viewport\n ref={setThumbViewport}\n className=\"rt-ScrollAreaViewport\"\n style={{ overflowY: undefined }}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n </SelectPrimitive.Viewport>\n <ScrollAreaPrimitive.Scrollbar\n className=\"rt-ScrollAreaScrollbar rt-r-size-1\"\n orientation=\"vertical\"\n >\n <ScrollAreaPrimitive.Thumb className=\"rt-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n </ScrollAreaPrimitive.Root>\n </SelectPrimitive.Content>\n </Theme>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'Select.Content';\n\ntype SelectItemElement = React.ElementRef<typeof SelectPrimitive.Item>;\ninterface SelectItemProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Item, RemovedProps> {}\nconst SelectItem = React.forwardRef<SelectItemElement, SelectItemProps>((props, forwardedRef) => {\n const { className, children, ...itemProps } = props;\n\n // Detect if this is rich content (not just a string)\n const isRichContent = typeof children !== 'string';\n\n return (\n <SelectPrimitive.Item\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-SelectItem',\n { 'rt-SelectItemRich': isRichContent },\n className,\n )}\n >\n <SelectPrimitive.ItemIndicator className=\"rt-SelectItemIndicator\">\n <ThickCheckIcon className=\"rt-SelectItemIndicatorIcon\" />\n </SelectPrimitive.ItemIndicator>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n});\nSelectItem.displayName = 'Select.Item';\n\ntype SelectGroupElement = React.ElementRef<typeof SelectPrimitive.Group>;\ninterface SelectGroupProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Group, RemovedProps> {}\nconst SelectGroup = React.forwardRef<SelectGroupElement, SelectGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-SelectGroup', className)}\n />\n ),\n);\nSelectGroup.displayName = 'Select.Group';\n\ntype SelectLabelElement = React.ElementRef<typeof SelectPrimitive.Label>;\ninterface SelectLabelProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Label, RemovedProps> {}\nconst SelectLabel = React.forwardRef<SelectLabelElement, SelectLabelProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuLabel', 'rt-SelectLabel', className)}\n />\n ),\n);\nSelectLabel.displayName = 'Select.Label';\n\ntype SelectSeparatorElement = React.ElementRef<typeof SelectPrimitive.Separator>;\ninterface SelectSeparatorProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Separator, RemovedProps> {}\nconst SelectSeparator = React.forwardRef<SelectSeparatorElement, SelectSeparatorProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuSeparator', 'rt-SelectSeparator', className)}\n />\n ),\n);\nSelectSeparator.displayName = 'Select.Separator';\n\nexport {\n SelectRoot as Root,\n SelectTrigger as Trigger,\n SelectContent as Content,\n SelectItem as Item,\n SelectGroup as Group,\n SelectLabel as Label,\n SelectSeparator as Separator,\n};\n\nexport type {\n SelectRootProps as RootProps,\n SelectTriggerProps as TriggerProps,\n SelectContentProps as ContentProps,\n SelectItemProps as ItemProps,\n SelectGroupProps as GroupProps,\n SelectLabelProps as LabelProps,\n SelectSeparatorProps as SeparatorProps,\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["select_exports", "__export", "SelectContent", "SelectGroup", "SelectItem", "SelectLabel", "SelectRoot", "SelectSeparator", "SelectTrigger", "React", "classNames", "SelectPrimitive", "ScrollAreaPrimitive", "SelectContext", "SelectRoot", "props", "children", "size", "selectRootPropDefs", "rootProps", "SelectPrimitive", "SelectTrigger", "forwardedRef", "context", "className", "color", "radius", "placeholder", "error", "loading", "disabled", "readOnly", "triggerProps", "extractProps", "selectTriggerPropDefs", "marginPropDefs", "ariaProps", "classNames", "ChevronDownIcon", "SelectContent", "container", "contentProps", "selectContentPropDefs", "themeContext", "useThemeContext", "resolvedColor", "setThumbViewport", "useThumbSync", "Theme", "ScrollAreaPrimitive", "SelectItem", "itemProps", "isRichContent", "ThickCheckIcon", "SelectGroup", "SelectLabel", "SelectSeparator"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as u}from"./chunk-AO32NT75.js";import{a as d}from"./chunk-5GXFBLBJ.js";import{a as S}from"./chunk-DDFONGSM.js";import{a as e}from"./chunk-XPRPYCII.js";import{a as f}from"./chunk-5BWLY27A.js";import{a as P}from"./chunk-PS6NEG5A.js";import{a as n}from"./chunk-E23RKOQJ.js";import{b as t}from"./chunk-PBFSBHBS.js";import*as r from"react";import a from"classnames";import{ScrollArea as o}from"radix-ui";import{useComposedRefs as M}from"radix-ui/internal";var x=r.forwardRef((A,v)=>{let{rest:y,...R}=d(A),[b,g]=u(R),{asChild:s,children:h,className:N,style:w,type:i,scrollHideDelay:C=i!=="scroll"?0:void 0,dir:H,size:p=e.size.default,radius:m=e.radius.default,scrollbars:l=e.scrollbars.default,fade:c=e.fade.default,...T}=y,V=f(c),z=S(),D=M(v,V,z);return r.createElement(o.Root,{type:i,scrollHideDelay:C,className:a("rt-ScrollAreaRoot",b,N),"data-fade":c?"":void 0,style:n(g,w),asChild:s},P({asChild:s,children:h},E=>r.createElement(r.Fragment,null,r.createElement(o.Viewport,{...T,ref:D,className:"rt-ScrollAreaViewport"},E),r.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),l!=="vertical"?r.createElement(o.Scrollbar,{"data-radius":m,orientation:"horizontal",className:a("rt-ScrollAreaScrollbar",t({className:"rt-r-size",value:p,propValues:e.size.values}))},r.createElement(o.Thumb,{className:"rt-ScrollAreaThumb"})):null,l!=="horizontal"?r.createElement(o.Scrollbar,{"data-radius":m,orientation:"vertical",className:a("rt-ScrollAreaScrollbar",t({className:"rt-r-size",value:p,propValues:e.size.values}))},r.createElement(o.Thumb,{className:"rt-ScrollAreaThumb"})):null,l==="both"?r.createElement(o.Corner,{className:"rt-ScrollAreaCorner"}):null)))});x.displayName="ScrollArea";export{x as a};
|
|
2
|
-
//# sourceMappingURL=chunk-HKRQ3E3I.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/scroll-area.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport { useComposedRefs } from 'radix-ui/internal';\n\nimport { scrollAreaPropDefs } from './scroll-area.props.js';\nimport { useScrollEdges } from '../hooks/use-scroll-edges.js';\nimport { useThumbSync } from '../hooks/use-thumb-sync.js';\nimport { extractMarginProps } from '../helpers/extract-margin-props.js';\nimport { getMarginStyles } from '../helpers/get-margin-styles.js';\nimport { getResponsiveClassNames } from '../helpers/get-responsive-styles.js';\nimport { getSubtree } from '../helpers/get-subtree.js';\nimport { mergeStyles } from '../helpers/merge-styles.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype ScrollAreaElement = React.ElementRef<typeof ScrollAreaPrimitive.Viewport>;\ntype ScrollAreaOwnProps = GetPropDefTypes<typeof scrollAreaPropDefs>;\ninterface ScrollAreaProps\n extends ComponentPropsWithout<typeof ScrollAreaPrimitive.Root, RemovedProps>,\n ComponentPropsWithout<typeof ScrollAreaPrimitive.Viewport, RemovedProps | 'dir'>,\n MarginProps,\n ScrollAreaOwnProps {}\nconst ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>((props, forwardedRef) => {\n const { rest: marginRest, ...marginProps } = extractMarginProps(props);\n const [marginClassNames, marginCustomProperties] = getMarginStyles(marginProps);\n\n const {\n asChild,\n children,\n className,\n style,\n type,\n scrollHideDelay = type !== 'scroll' ? 0 : undefined,\n dir,\n size = scrollAreaPropDefs.size.default,\n radius = scrollAreaPropDefs.radius.default,\n scrollbars = scrollAreaPropDefs.scrollbars.default,\n fade = scrollAreaPropDefs.fade.default,\n ...viewportProps\n } = marginRest;\n const setEdgesElement = useScrollEdges<HTMLDivElement>(fade);\n const setThumbViewport = useThumbSync<HTMLDivElement>();\n const viewportRef = useComposedRefs(forwardedRef, setEdgesElement, setThumbViewport);\n\n return (\n <ScrollAreaPrimitive.Root\n type={type}\n scrollHideDelay={scrollHideDelay}\n className={classNames('rt-ScrollAreaRoot', marginClassNames, className)}\n data-fade={fade ? '' : undefined}\n style={mergeStyles(marginCustomProperties, style)}\n asChild={asChild}\n >\n {getSubtree({ asChild, children }, (children) => (\n <>\n <ScrollAreaPrimitive.Viewport\n {...viewportProps}\n ref={viewportRef}\n className=\"rt-ScrollAreaViewport\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n\n <div className=\"rt-ScrollAreaViewportFocusRing\" />\n\n {scrollbars !== 'vertical' ? (\n <ScrollAreaPrimitive.Scrollbar\n data-radius={radius}\n orientation=\"horizontal\"\n className={classNames(\n 'rt-ScrollAreaScrollbar',\n getResponsiveClassNames({\n className: 'rt-r-size',\n value: size,\n propValues: scrollAreaPropDefs.size.values,\n }),\n )}\n >\n <ScrollAreaPrimitive.Thumb className=\"rt-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n\n {scrollbars !== 'horizontal' ? (\n <ScrollAreaPrimitive.Scrollbar\n data-radius={radius}\n orientation=\"vertical\"\n className={classNames(\n 'rt-ScrollAreaScrollbar',\n getResponsiveClassNames({\n className: 'rt-r-size',\n value: size,\n propValues: scrollAreaPropDefs.size.values,\n }),\n )}\n >\n <ScrollAreaPrimitive.Thumb className=\"rt-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n\n {scrollbars === 'both' ? (\n <ScrollAreaPrimitive.Corner className=\"rt-ScrollAreaCorner\" />\n ) : null}\n </>\n ))}\n </ScrollAreaPrimitive.Root>\n );\n});\nScrollArea.displayName = 'ScrollArea';\n\nexport { ScrollArea };\nexport type { ScrollAreaProps };\n"],
|
|
5
|
-
"mappings": "gUAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,cAAcC,MAA2B,WAClD,OAAS,mBAAAC,MAAuB,oBAsBhC,IAAMC,EAAmB,aAA+C,CAACC,EAAOC,IAAiB,CAC/F,GAAM,CAAE,KAAMC,EAAY,GAAGC,CAAY,EAAIC,EAAmBJ,CAAK,EAC/D,CAACK,EAAkBC,CAAsB,EAAIC,EAAgBJ,CAAW,EAExE,CACJ,QAAAK,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,KAAAC,EACA,gBAAAC,EAAkBD,IAAS,SAAW,EAAI,OAC1C,IAAAE,EACA,KAAAC,EAAOC,EAAmB,KAAK,QAC/B,OAAAC,EAASD,EAAmB,OAAO,QACnC,WAAAE,EAAaF,EAAmB,WAAW,QAC3C,KAAAG,EAAOH,EAAmB,KAAK,QAC/B,GAAGI,CACL,EAAIlB,EACEmB,EAAkBC,EAA+BH,CAAI,EACrDI,EAAmBC,EAA6B,EAChDC,EAAcC,EAAgBzB,EAAcoB,EAAiBE,CAAgB,EAEnF,OACE,gBAACI,EAAoB,KAApB,CACC,KAAMf,EACN,gBAAiBC,EACjB,UAAWe,EAAW,oBAAqBvB,EAAkBK,CAAS,EACtE,YAAWS,EAAO,GAAK,OACvB,MAAOU,EAAYvB,EAAwBK,CAAK,EAChD,QAASH,GAERsB,EAAW,CAAE,QAAAtB,EAAS,SAAAC,CAAS,EAAIA,GAClC,gCACE,gBAACkB,EAAoB,SAApB,CACE,GAAGP,EACJ,IAAKK,EACL,UAAU,yBAEThB,CACH,EAEA,gBAAC,OAAI,UAAU,iCAAiC,EAE/CS,IAAe,WACd,gBAACS,EAAoB,UAApB,CACC,cAAaV,EACb,YAAY,aACZ,UAAWW,EACT,yBACAG,EAAwB,CACtB,UAAW,YACX,MAAOhB,EACP,WAAYC,EAAmB,KAAK,MACtC,CAAC,CACH,GAEA,gBAACW,EAAoB,MAApB,CAA0B,UAAU,qBAAqB,CAC5D,EACE,KAEHT,IAAe,aACd,gBAACS,EAAoB,UAApB,CACC,cAAaV,EACb,YAAY,WACZ,UAAWW,EACT,yBACAG,EAAwB,CACtB,UAAW,YACX,MAAOhB,EACP,WAAYC,EAAmB,KAAK,MACtC,CAAC,CACH,GAEA,gBAACW,EAAoB,MAApB,CAA0B,UAAU,qBAAqB,CAC5D,EACE,KAEHT,IAAe,OACd,gBAACS,EAAoB,OAApB,CAA2B,UAAU,sBAAsB,EAC1D,IACN,CACD,CACH,CAEJ,CAAC,EACD5B,EAAW,YAAc",
|
|
6
|
-
"names": ["React", "classNames", "ScrollAreaPrimitive", "useComposedRefs", "ScrollArea", "props", "forwardedRef", "marginRest", "marginProps", "extractMarginProps", "marginClassNames", "marginCustomProperties", "getMarginStyles", "asChild", "children", "className", "style", "type", "scrollHideDelay", "dir", "size", "scrollAreaPropDefs", "radius", "scrollbars", "fade", "viewportProps", "setEdgesElement", "useScrollEdges", "setThumbViewport", "useThumbSync", "viewportRef", "useComposedRefs", "ScrollAreaPrimitive", "classNames", "mergeStyles", "getSubtree", "getResponsiveClassNames"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as f}from"./chunk-PS6NEG5A.js";import{a as m}from"./chunk-UBSLEGQZ.js";import{a as N}from"./chunk-GSTOGDAJ.js";import{a as v}from"./chunk-5LGWS5QS.js";import{a as P}from"./chunk-OS3FCYZY.js";var R={};P(R,{Link:()=>c,Root:()=>T});import*as a from"react";import b from"classnames";import{NavigationMenu as t}from"radix-ui";var T=a.forwardRef((r,n)=>{let{children:e,className:s,color:p,...o}=m(r,v,N);return a.createElement(t.Root,{className:"rt-TabNavRoot","data-accent-color":p,...o,asChild:!1,ref:n},a.createElement(t.List,{className:b("rt-reset","rt-BaseTabList","rt-TabNavList",s)},e))});T.displayName="TabNav.Root";var c=a.forwardRef((r,n)=>{let{asChild:e,children:s,className:p,active:o,...l}=r;return a.createElement(t.Item,{className:"rt-TabNavItem"},a.createElement(t.Link,{...l,ref:n,className:b("rt-reset","rt-BaseTabListTrigger","rt-TabNavLink",p),onSelect:void 0,asChild:e,"aria-current":o?"page":void 0,"data-active":o||void 0},f({asChild:e,children:s},i=>a.createElement(a.Fragment,null,a.createElement("span",{className:"rt-BaseTabListTriggerInner rt-TabNavLinkInner"},i),a.createElement("span",{className:"rt-BaseTabListTriggerInnerHidden rt-TabNavLinkInnerHidden"},i)))))});c.displayName="TabNav.Link";export{T as a,c as b,R as c};
|
|
2
|
-
//# sourceMappingURL=chunk-HSFQO4QM.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/tab-nav.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { NavigationMenu } from 'radix-ui';\n\nimport { tabNavRootPropDefs } from './tab-nav.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { getSubtree } from '../helpers/get-subtree.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { tabNavLinkPropDefs } from './tab-nav.props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype TabNavRootElement = React.ElementRef<typeof NavigationMenu.Root>;\ntype TabNavRootElementProps = ComponentPropsWithout<'nav', RemovedProps>;\ntype TabNavOwnProps = GetPropDefTypes<typeof tabNavRootPropDefs>;\ninterface TabNavRootProps\n extends Omit<TabNavRootElementProps, 'defaultValue' | 'dir' | 'color'>,\n MarginProps,\n TabNavOwnProps {}\nconst TabNavRoot = React.forwardRef<TabNavRootElement, TabNavRootProps>((props, forwardedRef) => {\n const { children, className, color, ...rootProps } = extractProps(\n props,\n tabNavRootPropDefs,\n marginPropDefs,\n );\n return (\n <NavigationMenu.Root\n className=\"rt-TabNavRoot\"\n data-accent-color={color}\n {...rootProps}\n asChild={false}\n ref={forwardedRef}\n >\n <NavigationMenu.List\n className={classNames('rt-reset', 'rt-BaseTabList', 'rt-TabNavList', className)}\n >\n {children}\n </NavigationMenu.List>\n </NavigationMenu.Root>\n );\n});\nTabNavRoot.displayName = 'TabNav.Root';\n\ntype TabNavLinkElement = React.ElementRef<typeof NavigationMenu.Link>;\ntype TabNavLinkOwnProps = GetPropDefTypes<typeof tabNavLinkPropDefs>;\ninterface TabNavLinkProps\n extends ComponentPropsWithout<typeof NavigationMenu.Link, RemovedProps | 'onSelect'>,\n TabNavLinkOwnProps {}\nconst TabNavLink = React.forwardRef<TabNavLinkElement, TabNavLinkProps>((props, forwardedRef) => {\n const { asChild, children, className, active, ...linkProps } = props;\n\n return (\n <NavigationMenu.Item className=\"rt-TabNavItem\">\n <NavigationMenu.Link\n {...linkProps}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-BaseTabListTrigger', 'rt-TabNavLink', className)}\n onSelect={undefined}\n asChild={asChild}\n aria-current={active ? 'page' : undefined}\n data-active={active || undefined}\n >\n {getSubtree({ asChild, children }, (children) => (\n <>\n <span className=\"rt-BaseTabListTriggerInner rt-TabNavLinkInner\">{children}</span>\n <span className=\"rt-BaseTabListTriggerInnerHidden rt-TabNavLinkInnerHidden\">\n {children}\n </span>\n </>\n ))}\n </NavigationMenu.Link>\n </NavigationMenu.Item>\n );\n});\nTabNavLink.displayName = 'TabNav.Link';\n\nexport { TabNavRoot as Root, TabNavLink as Link };\nexport type { TabNavRootProps as RootProps, TabNavLinkProps as LinkProps };\n"],
|
|
5
|
-
"mappings": "wMAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,kBAAAC,MAAsB,WAmB/B,IAAMC,EAAmB,aAA+C,CAACC,EAAOC,IAAiB,CAC/F,GAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,MAAAC,EAAO,GAAGC,CAAU,EAAIC,EACnDN,EACAO,EACAC,CACF,EACA,OACE,gBAACC,EAAe,KAAf,CACC,UAAU,gBACV,oBAAmBL,EAClB,GAAGC,EACJ,QAAS,GACT,IAAKJ,GAEL,gBAACQ,EAAe,KAAf,CACC,UAAWC,EAAW,WAAY,iBAAkB,gBAAiBP,CAAS,GAE7ED,CACH,CACF,CAEJ,CAAC,EACDH,EAAW,YAAc,cAOzB,IAAMY,EAAmB,aAA+C,CAACX,EAAOC,IAAiB,CAC/F,GAAM,CAAE,QAAAW,EAAS,SAAAV,EAAU,UAAAC,EAAW,OAAAU,EAAQ,GAAGC,CAAU,EAAId,EAE/D,OACE,gBAACS,EAAe,KAAf,CAAoB,UAAU,iBAC7B,gBAACA,EAAe,KAAf,CACE,GAAGK,EACJ,IAAKb,EACL,UAAWS,EAAW,WAAY,wBAAyB,gBAAiBP,CAAS,EACrF,SAAU,OACV,QAASS,EACT,eAAcC,EAAS,OAAS,OAChC,cAAaA,GAAU,QAEtBE,EAAW,CAAE,QAAAH,EAAS,SAAAV,CAAS,EAAIA,GAClC,gCACE,gBAAC,QAAK,UAAU,iDAAiDA,CAAS,EAC1E,gBAAC,QAAK,UAAU,6DACbA,CACH,CACF,CACD,CACH,CACF,CAEJ,CAAC,EACDS,EAAW,YAAc",
|
|
6
|
-
"names": ["tab_nav_exports", "__export", "TabNavLink", "TabNavRoot", "React", "classNames", "NavigationMenu", "TabNavRoot", "props", "forwardedRef", "children", "className", "color", "rootProps", "extractProps", "baseTabListPropDefs", "marginPropDefs", "NavigationMenu", "classNames", "TabNavLink", "asChild", "active", "linkProps", "getSubtree"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as R}from"./chunk-QWFFYUFH.js";import{a as f}from"./chunk-O6K6RZXY.js";import{a as u}from"./chunk-UBSLEGQZ.js";import{a as n}from"./chunk-GSTOGDAJ.js";import{a as N}from"./chunk-OS3FCYZY.js";var _={};N(_,{Item:()=>x,Root:()=>y});import*as o from"react";import G from"classnames";import{Context as v}from"radix-ui/internal";import{RadioGroup as d}from"radix-ui";var P="RadioGroup",[S]=v.createContextScope(P,[d.createRadioGroupScope]),l=d.createRadioGroupScope(),[E,I]=S(P),y=o.forwardRef(({color:a=R.color.default,size:e=R.size.default,variant:r=R.variant.default,...t},i)=>{let{__scopeRadioGroup:p,className:s,...m}=u(t,n),C=l(p);return o.createElement(E,{scope:p,color:a,size:e,variant:r},o.createElement(d.Root,{...C,...m,ref:i,className:G("rt-RadioGroupRoot",s)}))});y.displayName="RadioGroup.Root";var x=o.forwardRef((a,e)=>{let{__scopeRadioGroup:r,children:t,className:i,style:p,...s}=a,{size:m}=I("RadioGroupItem",r);return t?o.createElement(f,{as:"label",size:m,className:G("rt-RadioGroupItem",i),style:p},o.createElement(c,{__scopeRadioGroup:r,...s,ref:e}),t&&o.createElement("span",{className:"rt-RadioGroupItemInner"},t)):o.createElement(c,{__scopeRadioGroup:r,...s,ref:e,className:i,style:p})});x.displayName="RadioGroup.Item";var c=o.forwardRef(({__scopeRadioGroup:a,...e},r)=>{let t=I("RadioGroupItemRadio",a),i=l(a),{color:p,className:s}=u({...e,...t},R,n);return o.createElement(d.Item,{...i,"data-accent-color":p,...e,asChild:!1,ref:r,className:G("rt-reset","rt-BaseRadioRoot",s)})});c.displayName="RadioGroup.ItemRadio";export{y as a,x as b,_ as c};
|
|
2
|
-
//# sourceMappingURL=chunk-HVQ3SLQC.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/radio-group.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Context } from 'radix-ui/internal';\nimport { RadioGroup as RadioGroupPrimitive } from 'radix-ui';\n\nimport { radioGroupRootPropDefs } from './radio-group.props.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\nconst RADIO_GROUP_NAME = 'RadioGroup';\n\ntype ScopedProps<P> = P & { __scopeRadioGroup?: Context.Scope };\nconst [createRadioGroupContext] = Context.createContextScope(RADIO_GROUP_NAME, [\n RadioGroupPrimitive.createRadioGroupScope,\n]);\nconst useRadioGroupScope = RadioGroupPrimitive.createRadioGroupScope();\n\ntype RadioGroupRootOwnProps = GetPropDefTypes<typeof radioGroupRootPropDefs>;\ntype RadioGroupContextValue = RadioGroupRootOwnProps;\n\nconst [RadioGroupProvider, useRadioGroupContext] =\n createRadioGroupContext<RadioGroupContextValue>(RADIO_GROUP_NAME);\n\ntype RadioGroupRootElement = React.ElementRef<typeof RadioGroupPrimitive.Root>;\ninterface RadioGroupRootProps\n extends ComponentPropsWithout<\n typeof RadioGroupPrimitive.Root,\n 'asChild' | 'color' | 'defaultChecked'\n >,\n MarginProps,\n RadioGroupRootOwnProps {}\nconst RadioGroupRoot = React.forwardRef<RadioGroupRootElement, RadioGroupRootProps>(\n (\n {\n color = radioGroupRootPropDefs.color.default,\n size = radioGroupRootPropDefs.size.default,\n variant = radioGroupRootPropDefs.variant.default,\n ...props\n }: ScopedProps<RadioGroupRootProps>,\n forwardedRef\n ) => {\n const { __scopeRadioGroup, className, ...rootProps } = extractProps(props, marginPropDefs);\n const radioGroupScope = useRadioGroupScope(__scopeRadioGroup);\n return (\n <RadioGroupProvider\n scope={__scopeRadioGroup}\n color={color}\n size={size}\n variant={variant}\n >\n <RadioGroupPrimitive.Root\n {...radioGroupScope}\n {...rootProps}\n ref={forwardedRef}\n className={classNames('rt-RadioGroupRoot', className)}\n />\n </RadioGroupProvider>\n );\n }\n);\nRadioGroupRoot.displayName = 'RadioGroup.Root';\n\ntype RadioGroupItemElement = React.ElementRef<typeof RadioGroupItemRadio>;\ninterface RadioGroupItemProps\n extends ComponentPropsWithout<typeof RadioGroupItemRadio, RemovedProps>,\n MarginProps {}\nconst RadioGroupItem = React.forwardRef<RadioGroupItemElement, RadioGroupItemProps>(\n (_props: ScopedProps<RadioGroupItemProps>, forwardedRef) => {\n const { __scopeRadioGroup, children, className, style, ...props } = _props;\n const { size } = useRadioGroupContext('RadioGroupItem', __scopeRadioGroup);\n\n // Render `<Text as=\"label\">` if children\u00A0are provided, otherwise render\n // the solo radio button to allow building out your custom layouts with it.\n if (children) {\n return (\n <Text\n as=\"label\"\n size={size}\n className={classNames('rt-RadioGroupItem', className)}\n style={style}\n >\n <RadioGroupItemRadio\n __scopeRadioGroup={__scopeRadioGroup}\n {...props}\n ref={forwardedRef}\n />\n {children && <span className=\"rt-RadioGroupItemInner\">{children}</span>}\n </Text>\n );\n }\n\n return (\n <RadioGroupItemRadio\n __scopeRadioGroup={__scopeRadioGroup}\n {...props}\n ref={forwardedRef}\n className={className}\n style={style}\n />\n );\n }\n);\nRadioGroupItem.displayName = 'RadioGroup.Item';\n\ntype RadioGroupItemRadioElement = React.ElementRef<typeof RadioGroupPrimitive.Item>;\ninterface RadioGroupItemRadioProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {}\nconst RadioGroupItemRadio = React.forwardRef<\n RadioGroupItemRadioElement,\n ScopedProps<RadioGroupItemRadioProps>\n>(({ __scopeRadioGroup, ...props }, forwardedRef) => {\n const context = useRadioGroupContext('RadioGroupItemRadio', __scopeRadioGroup);\n const radioGroupScope = useRadioGroupScope(__scopeRadioGroup);\n const { color, className } = extractProps(\n { ...props, ...context },\n radioGroupRootPropDefs,\n marginPropDefs\n );\n return (\n <RadioGroupPrimitive.Item\n {...radioGroupScope}\n data-accent-color={color}\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-BaseRadioRoot', className)}\n />\n );\n});\nRadioGroupItemRadio.displayName = 'RadioGroup.ItemRadio';\n\nexport { RadioGroupRoot as Root, RadioGroupItem as Item };\nexport type { RadioGroupRootProps as RootProps, RadioGroupItemProps as ItemProps };\n"],
|
|
5
|
-
"mappings": "wMAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAEA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,WAAAC,MAAe,oBACxB,OAAS,cAAcC,MAA2B,WAWlD,IAAMC,EAAmB,aAGnB,CAACC,CAAuB,EAAIC,EAAQ,mBAAmBF,EAAkB,CAC7EG,EAAoB,qBACtB,CAAC,EACKC,EAAqBD,EAAoB,sBAAsB,EAK/D,CAACE,EAAoBC,CAAoB,EAC7CL,EAAgDD,CAAgB,EAU5DO,EAAuB,aAC3B,CACE,CACE,MAAAC,EAAQC,EAAuB,MAAM,QACrC,KAAAC,EAAOD,EAAuB,KAAK,QACnC,QAAAE,EAAUF,EAAuB,QAAQ,QACzC,GAAGG,CACL,EACAC,IACG,CACH,GAAM,CAAE,kBAAAC,EAAmB,UAAAC,EAAW,GAAGC,CAAU,EAAIC,EAAaL,EAAOM,CAAc,EACnFC,EAAkBf,EAAmBU,CAAiB,EAC5D,OACE,gBAACT,EAAA,CACC,MAAOS,EACP,MAAON,EACP,KAAME,EACN,QAASC,GAET,gBAACR,EAAoB,KAApB,CACE,GAAGgB,EACH,GAAGH,EACJ,IAAKH,EACL,UAAWO,EAAW,oBAAqBL,CAAS,EACtD,CACF,CAEJ,CACF,EACAR,EAAe,YAAc,kBAM7B,IAAMc,EAAuB,aAC3B,CAACC,EAA0CT,IAAiB,CAC1D,GAAM,CAAE,kBAAAC,EAAmB,SAAAS,EAAU,UAAAR,EAAW,MAAAS,EAAO,GAAGZ,CAAM,EAAIU,EAC9D,CAAE,KAAAZ,CAAK,EAAIJ,EAAqB,iBAAkBQ,CAAiB,EAIzE,OAAIS,EAEA,gBAACE,EAAA,CACC,GAAG,QACH,KAAMf,EACN,UAAWU,EAAW,oBAAqBL,CAAS,EACpD,MAAOS,GAEP,gBAACE,EAAA,CACC,kBAAmBZ,EAClB,GAAGF,EACJ,IAAKC,EACP,EACCU,GAAY,gBAAC,QAAK,UAAU,0BAA0BA,CAAS,CAClE,EAKF,gBAACG,EAAA,CACC,kBAAmBZ,EAClB,GAAGF,EACJ,IAAKC,EACL,UAAWE,EACX,MAAOS,EACT,CAEJ,CACF,EACAH,EAAe,YAAc,kBAK7B,IAAMK,EAA4B,aAGhC,CAAC,CAAE,kBAAAZ,EAAmB,GAAGF,CAAM,EAAGC,IAAiB,CACnD,IAAMc,EAAUrB,EAAqB,sBAAuBQ,CAAiB,EACvEK,EAAkBf,EAAmBU,CAAiB,EACtD,CAAE,MAAAN,EAAO,UAAAO,CAAU,EAAIE,EAC3B,CAAE,GAAGL,EAAO,GAAGe,CAAQ,EACvBlB,EACAS,CACF,EACA,OACE,gBAACf,EAAoB,KAApB,CACE,GAAGgB,EACJ,oBAAmBX,EAClB,GAAGI,EACJ,QAAS,GACT,IAAKC,EACL,UAAWO,EAAW,WAAY,mBAAoBL,CAAS,EACjE,CAEJ,CAAC,EACDW,EAAoB,YAAc",
|
|
6
|
-
"names": ["radio_group_exports", "__export", "RadioGroupItem", "RadioGroupRoot", "React", "classNames", "Context", "RadioGroupPrimitive", "RADIO_GROUP_NAME", "createRadioGroupContext", "Context", "RadioGroupPrimitive", "useRadioGroupScope", "RadioGroupProvider", "useRadioGroupContext", "RadioGroupRoot", "color", "radioGroupRootPropDefs", "size", "variant", "props", "forwardedRef", "__scopeRadioGroup", "className", "rootProps", "extractProps", "marginPropDefs", "radioGroupScope", "classNames", "RadioGroupItem", "_props", "children", "style", "Text", "RadioGroupItemRadio", "context"]
|
|
7
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{a as G,b as U}from"./chunk-B6RH4CTY.js";import{a as K}from"./chunk-UBSLEGQZ.js";import{a as q}from"./chunk-GSTOGDAJ.js";import{a as se}from"./chunk-OS3FCYZY.js";var ie={};se(ie,{Root:()=>Z,Slot:()=>J});import*as e from"react";import*as z from"react-dom";import B from"classnames";import{composeRefs as _}from"radix-ui/internal";var Z=e.forwardRef((b,x)=>{let n=e.useRef(null),{children:R,className:v,color:M,radius:T,style:F,...a}=K(b,G,q),P=e.useId(),h=a.error,{"aria-describedby":y,"aria-labelledby":E}=a,w=e.useMemo(()=>{let r=[];return a.errorMessage&&r.push(P),y&&r.push(y),r.length>0?r.join(" "):void 0},[a.errorMessage,y,P]),A=e.useMemo(()=>({"aria-invalid":h,"aria-describedby":w,"aria-labelledby":E}),[h,w,E]),{error:H,errorMessage:g,required:i,"aria-describedby":L,"aria-labelledby":O,...C}=a,p=e.useCallback(r=>{let s=r.target;if(s.closest("input, button, a"))return;let c=n.current;if(!c)return;let f=s.closest(`
|
|
2
|
-
.rt-TextFieldSlot[data-side='right'],
|
|
3
|
-
.rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left'])
|
|
4
|
-
`)?c.value.length:0;requestAnimationFrame(()=>{try{c.setSelectionRange(f,f)}catch{}c.focus()})},[]);return e.createElement("div",{"data-accent-color":M,"data-radius":T,style:F,className:B("rt-TextFieldRoot",v,{"rt-error":h}),onPointerDown:p},e.createElement("input",{spellCheck:"false",...C,...A,ref:_(n,x),className:"rt-reset rt-TextFieldInput"}),R,a.errorMessage&&e.createElement("div",{id:P,className:"rt-TextFieldErrorMessage",role:"alert"},a.errorMessage))});Z.displayName="TextField.Root";var m=(()=>{if(typeof navigator>"u")return!1;let b=navigator.userAgent,x=/^((?!chrome|android).)*safari/i.test(b),n=/firefox/i.test(b);return x||n})(),J=e.forwardRef((b,x)=>{let{scrub:n,scrubValue:R,scrubStep:v=1,scrubSensitivity:M=1,scrubMin:T,scrubMax:F,scrubShiftMultiplier:a=10,scrubAltMultiplier:P=.1,onScrub:h,...y}=b,{className:E,color:w,side:A,...H}=K(y,U),g=e.useRef(null),[i,L]=e.useState(!1),[O,C]=e.useState({x:0,y:0}),p=e.useRef(0),r=e.useRef(0),s=e.useRef(0),c=e.useRef(null),k=e.useRef(0),f=e.useRef({scrubValue:R,scrubStep:v,scrubSensitivity:M,scrubMin:T,scrubMax:F,scrubShiftMultiplier:a,scrubAltMultiplier:P,onScrub:h});f.current={scrubValue:R,scrubStep:v,scrubSensitivity:M,scrubMin:T,scrubMax:F,scrubShiftMultiplier:a,scrubAltMultiplier:P,onScrub:h};let Q=e.useCallback(t=>{if(!n||t.target.closest("input, button, a"))return;t.preventDefault(),p.current=0,r.current=R??0,s.current=t.clientX,C({x:t.clientX,y:t.clientY});let l=g.current;l&&(m?(c.current=t.pointerId,k.current=t.clientX,l.setPointerCapture(t.pointerId),L(!0)):l.requestPointerLock())},[n,R]);e.useEffect(()=>{if(m)return;let t=()=>{let o=document.pointerLockElement===g.current;L(o),o||(f.current.onScrub?.(0,!1),p.current=0,r.current=0)};return document.addEventListener("pointerlockchange",t),()=>{document.removeEventListener("pointerlockchange",t)}},[]);let D=e.useCallback((t,o,l,oe)=>{let u=f.current,N=window.innerWidth,X=window.innerHeight;s.current+=t,s.current>N?s.current=s.current%N:s.current<0&&(s.current=N+s.current%N),C(S=>{let d=S.y+o;return d>X?d=d%X:d<0&&(d=X+d%X),{x:s.current,y:d}}),p.current+=t;let V=p.current/u.scrubSensitivity;if(Math.abs(V)>=1){let S=1;l?S=u.scrubShiftMultiplier:oe&&(S=u.scrubAltMultiplier);let d=Math.trunc(V),j=d*u.scrubStep*S,W=j;if(u.scrubMin!==void 0||u.scrubMax!==void 0){let ne=r.current+j,Y=Math.max(u.scrubMin??-1/0,Math.min(u.scrubMax??1/0,ne));W=Y-r.current,r.current=Y}else r.current+=j;W!==0&&u.onScrub?.(W,!0),p.current=(V-d)*u.scrubSensitivity}},[]),I=e.useCallback(()=>{f.current.onScrub?.(0,!1),p.current=0,r.current=0,c.current=null,L(!1)},[]),$=e.useCallback(t=>{if(!i||!m)return;let o=t.clientX-k.current;k.current=t.clientX,D(o,t.movementY,t.shiftKey,t.altKey)},[i,D]),ee=e.useCallback(t=>{if(!m||c.current!==t.pointerId)return;let o=g.current;o&&c.current!==null&&o.releasePointerCapture(c.current),I()},[I]),te=e.useCallback(()=>{m&&i&&I()},[i,I]);e.useEffect(()=>{if(!i||m)return;let t=l=>{D(l.movementX,l.movementY,l.shiftKey,l.altKey)},o=()=>{document.exitPointerLock()};return document.addEventListener("mousemove",t),document.addEventListener("mouseup",o),document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",o),document.body.style.userSelect=""}},[i,D]),e.useEffect(()=>{if(!i||!m)return;let t=document.createElement("style");return t.textContent="* { cursor: none !important; user-select: none !important; }",document.head.appendChild(t),()=>{document.head.removeChild(t)}},[i]);let re=i?z.createPortal(e.createElement("img",{className:"rt-TextFieldSlotScrubCursor",src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='black' stroke='white' stroke-width='1' d='M0 12 L5 7 L5 10 L19 10 L19 7 L24 12 L19 17 L19 14 L5 14 L5 17 Z'/%3E%3C/svg%3E",alt:"",style:{position:"fixed",left:O.x,top:O.y,transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:99999,width:24,height:24},"aria-hidden":"true"}),document.body):null;return e.createElement("div",{"data-accent-color":w,"data-side":A,"data-scrub":n||void 0,"data-scrubbing":i||void 0,...H,ref:_(g,x),className:B("rt-TextFieldSlot",E),onPointerDown:n?Q:void 0,onPointerMove:n?$:void 0,onPointerUp:n?ee:void 0,onLostPointerCapture:n?te:void 0},H.children,re)});J.displayName="TextField.Slot";export{Z as a,J as b,ie as c};
|
|
5
|
-
//# sourceMappingURL=chunk-JCOALADA.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/text-field.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { composeRefs } from 'radix-ui/internal';\n\nimport { textFieldRootPropDefs, textFieldSlotPropDefs, type TextFieldSlotScrubProps } from './text-field.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { NotInputTextualAttributes } from '../helpers/input-attributes.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype TextFieldRootElement = React.ElementRef<'input'>;\ntype TextFieldRootOwnProps = GetPropDefTypes<typeof textFieldRootPropDefs> & {\n defaultValue?: string | number;\n value?: string | number;\n type?: 'date' | 'datetime-local' | 'email' | 'hidden' | 'month' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'time' | 'url' | 'week';\n};\ntype TextFieldInputProps = ComponentPropsWithout<'input', NotInputTextualAttributes | 'color' | 'defaultValue' | 'size' | 'type' | 'value'>;\ninterface TextFieldRootProps extends TextFieldInputProps, MarginProps, TextFieldRootOwnProps {}\nconst TextFieldRoot = React.forwardRef<TextFieldRootElement, TextFieldRootProps>((props, forwardedRef) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { children, className, color, radius, style, ...inputProps } = extractProps(props, textFieldRootPropDefs, marginPropDefs);\n\n // Generate unique IDs for accessibility\n const errorId = React.useId();\n\n // Determine invalid state\n const isInvalid = inputProps.error;\n\n const { 'aria-describedby': ariaDescribedby, 'aria-labelledby': ariaLabelledby } = inputProps;\n\n // Build aria-describedby string\n const describedBy = React.useMemo(() => {\n const parts = [];\n if (inputProps.errorMessage) parts.push(errorId);\n if (ariaDescribedby) parts.push(ariaDescribedby);\n return parts.length > 0 ? parts.join(' ') : undefined;\n }, [inputProps.errorMessage, ariaDescribedby, errorId]);\n\n // Build aria attributes\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': isInvalid,\n 'aria-describedby': describedBy,\n 'aria-labelledby': ariaLabelledby,\n }),\n [isInvalid, describedBy, ariaLabelledby],\n );\n\n // Filter out our custom props to avoid DOM warnings\n const { error, errorMessage, required, 'aria-describedby': _ariaDescribedby, 'aria-labelledby': _ariaLabelledby, ...nativeInputProps } = inputProps;\n\n // Memoized pointer event handler\n const handlePointerDown = React.useCallback((event: React.PointerEvent) => {\n const target = event.target as HTMLElement;\n if (target.closest('input, button, a')) return;\n\n const input = inputRef.current;\n if (!input) return;\n\n // Same selector as in the CSS to find the right slot\n const isRightSlot = target.closest(`\n .rt-TextFieldSlot[data-side='right'],\n .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left'])\n `);\n\n const cursorPosition = isRightSlot ? input.value.length : 0;\n\n requestAnimationFrame(() => {\n // Only some input types support this, browsers will throw an error if not supported\n // See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange#:~:text=Note%20that%20according,not%20support%20selection%22.\n try {\n input.setSelectionRange(cursorPosition, cursorPosition);\n } catch {}\n input.focus();\n });\n }, []);\n\n return (\n <div\n data-accent-color={color}\n data-radius={radius}\n style={style}\n className={classNames('rt-TextFieldRoot', className, {\n 'rt-error': isInvalid,\n })}\n onPointerDown={handlePointerDown}\n >\n <input spellCheck=\"false\" {...nativeInputProps} {...ariaProps} ref={composeRefs(inputRef, forwardedRef)} className=\"rt-reset rt-TextFieldInput\" />\n {children}\n {inputProps.errorMessage && (\n <div id={errorId} className=\"rt-TextFieldErrorMessage\" role=\"alert\">\n {inputProps.errorMessage}\n </div>\n )}\n </div>\n );\n});\nTextFieldRoot.displayName = 'TextField.Root';\n\ntype TextFieldSlotElement = React.ElementRef<'div'>;\ntype TextFieldSlotOwnProps = GetPropDefTypes<typeof textFieldSlotPropDefs> & TextFieldSlotScrubProps;\ninterface TextFieldSlotProps extends ComponentPropsWithout<'div', RemovedProps>, TextFieldSlotOwnProps {}\n\n// Detect if we should use pointer capture instead of pointer lock\n// Safari and Firefox show intrusive browser warnings with pointer lock\nconst usePointerCapture = (() => {\n if (typeof navigator === 'undefined') return false;\n const ua = navigator.userAgent;\n const isSafari = /^((?!chrome|android).)*safari/i.test(ua);\n const isFirefox = /firefox/i.test(ua);\n return isSafari || isFirefox;\n})();\n\nconst TextFieldSlot = React.forwardRef<TextFieldSlotElement, TextFieldSlotProps>((props, forwardedRef) => {\n // Extract scrub props first (not part of PropDef system)\n const { scrub, scrubValue, scrubStep = 1, scrubSensitivity = 1, scrubMin, scrubMax, scrubShiftMultiplier = 10, scrubAltMultiplier = 0.1, onScrub, ...restProps } = props;\n\n // Then extract styling props\n const { className, color, side, ...slotProps } = extractProps(restProps, textFieldSlotPropDefs);\n\n const slotRef = React.useRef<HTMLDivElement>(null);\n const [isScrubbing, setIsScrubbing] = React.useState(false);\n // Virtual cursor position - X wraps around viewport, Y follows mouse\n const [cursorPosition, setCursorPosition] = React.useState({ x: 0, y: 0 });\n\n // Track accumulated sub-step movement for precision\n const accumulatedMovement = React.useRef(0);\n // Track current value for clamping (initialized to scrubValue when scrubbing starts)\n const currentValue = React.useRef(0);\n // Track virtual X position for wrap-around (separate from rendered position)\n const virtualX = React.useRef(0);\n // Track pointer ID for capture mode\n const pointerIdRef = React.useRef<number | null>(null);\n // Track last X position for capture mode (movementX calculation)\n const lastXRef = React.useRef(0);\n\n // Store scrub config in refs so document handlers can access latest values\n const scrubConfigRef = React.useRef({\n scrubValue,\n scrubStep,\n scrubSensitivity,\n scrubMin,\n scrubMax,\n scrubShiftMultiplier,\n scrubAltMultiplier,\n onScrub,\n });\n scrubConfigRef.current = {\n scrubValue,\n scrubStep,\n scrubSensitivity,\n scrubMin,\n scrubMax,\n scrubShiftMultiplier,\n scrubAltMultiplier,\n onScrub,\n };\n\n const handlePointerDown = React.useCallback(\n (event: React.PointerEvent) => {\n if (!scrub) return;\n\n // Don't start scrubbing if clicking on interactive elements\n const target = event.target as HTMLElement;\n if (target.closest('input, button, a')) return;\n\n event.preventDefault();\n accumulatedMovement.current = 0;\n // Initialize to current value so min/max clamping works correctly\n currentValue.current = scrubValue ?? 0;\n\n // Initialize virtual cursor at actual mouse position\n virtualX.current = event.clientX;\n setCursorPosition({ x: event.clientX, y: event.clientY });\n\n const slot = slotRef.current;\n if (!slot) return;\n\n if (usePointerCapture) {\n // Safari/Firefox: Use pointer capture (no browser warning)\n pointerIdRef.current = event.pointerId;\n lastXRef.current = event.clientX;\n slot.setPointerCapture(event.pointerId);\n setIsScrubbing(true);\n } else {\n // Chrome: Use pointer lock for infinite movement\n slot.requestPointerLock();\n }\n },\n [scrub, scrubValue],\n );\n\n // Handle pointer lock state changes (Chrome only)\n React.useEffect(() => {\n if (usePointerCapture) return;\n\n const handlePointerLockChange = () => {\n const isLocked = document.pointerLockElement === slotRef.current;\n setIsScrubbing(isLocked);\n if (!isLocked) {\n // Fire callback with isChanging = false when scrubbing ends\n scrubConfigRef.current.onScrub?.(0, false);\n accumulatedMovement.current = 0;\n currentValue.current = 0;\n }\n };\n\n document.addEventListener('pointerlockchange', handlePointerLockChange);\n return () => {\n document.removeEventListener('pointerlockchange', handlePointerLockChange);\n };\n }, []);\n\n // Shared scrub calculation logic\n const processScrubMovement = React.useCallback((movementX: number, movementY: number, shiftKey: boolean, altKey: boolean) => {\n const config = scrubConfigRef.current;\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Update virtual position with wrap-around at viewport edges\n virtualX.current += movementX;\n if (virtualX.current > viewportWidth) {\n virtualX.current = virtualX.current % viewportWidth;\n } else if (virtualX.current < 0) {\n virtualX.current = viewportWidth + (virtualX.current % viewportWidth);\n }\n\n // Also track Y with wrap-around\n setCursorPosition((prev) => {\n let newY = prev.y + movementY;\n if (newY > viewportHeight) {\n newY = newY % viewportHeight;\n } else if (newY < 0) {\n newY = viewportHeight + (newY % viewportHeight);\n }\n return { x: virtualX.current, y: newY };\n });\n\n // Accumulate movement for sensitivity calculation\n accumulatedMovement.current += movementX;\n\n // Calculate how many steps we've moved\n const stepsFromMovement = accumulatedMovement.current / config.scrubSensitivity;\n\n if (Math.abs(stepsFromMovement) >= 1) {\n // Determine modifier multiplier\n let multiplier = 1;\n if (shiftKey) {\n multiplier = config.scrubShiftMultiplier;\n } else if (altKey) {\n multiplier = config.scrubAltMultiplier;\n }\n\n // Calculate delta\n const wholeSteps = Math.trunc(stepsFromMovement);\n const delta = wholeSteps * config.scrubStep * multiplier;\n\n // Apply min/max clamping if bounds are set\n let clampedDelta = delta;\n if (config.scrubMin !== undefined || config.scrubMax !== undefined) {\n const newValue = currentValue.current + delta;\n const clampedValue = Math.max(config.scrubMin ?? -Infinity, Math.min(config.scrubMax ?? Infinity, newValue));\n clampedDelta = clampedValue - currentValue.current;\n currentValue.current = clampedValue;\n } else {\n currentValue.current += delta;\n }\n\n // Fire callback with clamped delta (isChanging = true during drag)\n if (clampedDelta !== 0) {\n config.onScrub?.(clampedDelta, true);\n }\n\n // Keep the fractional remainder for smooth sub-pixel accumulation\n accumulatedMovement.current = (stepsFromMovement - wholeSteps) * config.scrubSensitivity;\n }\n }, []);\n\n // End scrubbing helper\n const endScrubbing = React.useCallback(() => {\n scrubConfigRef.current.onScrub?.(0, false);\n accumulatedMovement.current = 0;\n currentValue.current = 0;\n pointerIdRef.current = null;\n setIsScrubbing(false);\n }, []);\n\n // Handle pointer capture mode events (Safari/Firefox)\n const handlePointerMove = React.useCallback(\n (event: React.PointerEvent) => {\n if (!isScrubbing || !usePointerCapture) return;\n\n const movementX = event.clientX - lastXRef.current;\n lastXRef.current = event.clientX;\n\n processScrubMovement(movementX, event.movementY, event.shiftKey, event.altKey);\n },\n [isScrubbing, processScrubMovement],\n );\n\n const handlePointerUp = React.useCallback(\n (event: React.PointerEvent) => {\n if (!usePointerCapture || pointerIdRef.current !== event.pointerId) return;\n\n const slot = slotRef.current;\n if (slot && pointerIdRef.current !== null) {\n slot.releasePointerCapture(pointerIdRef.current);\n }\n endScrubbing();\n },\n [endScrubbing],\n );\n\n const handleLostPointerCapture = React.useCallback(() => {\n if (usePointerCapture && isScrubbing) {\n endScrubbing();\n }\n }, [isScrubbing, endScrubbing]);\n\n // Attach document-level listeners for pointer lock mode (Chrome)\n React.useEffect(() => {\n if (!isScrubbing || usePointerCapture) return;\n\n const handleMouseMove = (event: MouseEvent) => {\n processScrubMovement(event.movementX, event.movementY, event.shiftKey, event.altKey);\n };\n\n const handleMouseUp = () => {\n // Exit pointer lock to end scrubbing\n document.exitPointerLock();\n };\n\n // Use mousemove for pointer lock (pointermove doesn't work well with pointer lock)\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n\n // Disable text selection during scrubbing\n document.body.style.userSelect = 'none';\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n document.body.style.userSelect = '';\n };\n }, [isScrubbing, processScrubMovement]);\n\n // Hide native cursor and disable text selection during pointer capture scrubbing\n React.useEffect(() => {\n if (!isScrubbing || !usePointerCapture) return;\n\n // Create a style element to hide cursor globally during scrub\n const style = document.createElement('style');\n style.textContent = '* { cursor: none !important; user-select: none !important; }';\n document.head.appendChild(style);\n\n return () => {\n document.head.removeChild(style);\n };\n }, [isScrubbing]);\n\n // Render virtual cursor via portal to body so it's not clipped\n // Using a data URI of ew-resize cursor for a native look\n const virtualCursor = isScrubbing\n ? ReactDOM.createPortal(\n <img\n className=\"rt-TextFieldSlotScrubCursor\"\n src=\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='black' stroke='white' stroke-width='1' d='M0 12 L5 7 L5 10 L19 10 L19 7 L24 12 L19 17 L19 14 L5 14 L5 17 Z'/%3E%3C/svg%3E\"\n alt=\"\"\n style={{\n position: 'fixed',\n left: cursorPosition.x,\n top: cursorPosition.y,\n transform: 'translate(-50%, -50%)',\n pointerEvents: 'none',\n zIndex: 99999,\n width: 24,\n height: 24,\n }}\n aria-hidden=\"true\"\n />,\n document.body,\n )\n : null;\n\n return (\n <div\n data-accent-color={color}\n data-side={side}\n data-scrub={scrub || undefined}\n data-scrubbing={isScrubbing || undefined}\n {...slotProps}\n ref={composeRefs(slotRef, forwardedRef)}\n className={classNames('rt-TextFieldSlot', className)}\n onPointerDown={scrub ? handlePointerDown : undefined}\n onPointerMove={scrub ? handlePointerMove : undefined}\n onPointerUp={scrub ? handlePointerUp : undefined}\n onLostPointerCapture={scrub ? handleLostPointerCapture : undefined}\n >\n {slotProps.children}\n {virtualCursor}\n </div>\n );\n});\nTextFieldSlot.displayName = 'TextField.Slot';\n\nexport { TextFieldRoot as Root, TextFieldSlot as Slot };\nexport type { TextFieldRootProps as RootProps, TextFieldSlotProps as SlotProps };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["text_field_exports", "__export", "TextFieldRoot", "TextFieldSlot", "React", "ReactDOM", "classNames", "composeRefs", "TextFieldRoot", "props", "forwardedRef", "inputRef", "children", "className", "color", "radius", "style", "inputProps", "extractProps", "textFieldRootPropDefs", "marginPropDefs", "errorId", "isInvalid", "ariaDescribedby", "ariaLabelledby", "describedBy", "parts", "ariaProps", "error", "errorMessage", "required", "_ariaDescribedby", "_ariaLabelledby", "nativeInputProps", "handlePointerDown", "event", "target", "input", "cursorPosition", "classNames", "composeRefs", "usePointerCapture", "ua", "isSafari", "isFirefox", "TextFieldSlot", "scrub", "scrubValue", "scrubStep", "scrubSensitivity", "scrubMin", "scrubMax", "scrubShiftMultiplier", "scrubAltMultiplier", "onScrub", "restProps", "side", "slotProps", "textFieldSlotPropDefs", "slotRef", "isScrubbing", "setIsScrubbing", "setCursorPosition", "accumulatedMovement", "currentValue", "virtualX", "pointerIdRef", "lastXRef", "scrubConfigRef", "slot", "handlePointerLockChange", "isLocked", "processScrubMovement", "movementX", "movementY", "shiftKey", "altKey", "config", "viewportWidth", "viewportHeight", "prev", "newY", "stepsFromMovement", "multiplier", "wholeSteps", "delta", "clampedDelta", "newValue", "clampedValue", "endScrubbing", "handlePointerMove", "handlePointerUp", "handleLostPointerCapture", "handleMouseMove", "handleMouseUp", "virtualCursor"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./chunk-34KVYDF6.js";var o=["horizontal","vertical"],t=["1","2","3","4"],a={orientation:{type:"enum",className:"rt-r-orientation",values:o,default:"horizontal",responsive:!0},size:{type:"enum",className:"rt-r-size",values:t,default:"1",responsive:!0},color:{...e.color,default:"gray"},decorative:{type:"boolean",default:!0},light:{type:"boolean",className:"rt-light",default:!1}};export{a};
|
|
2
|
-
//# sourceMappingURL=chunk-K7J23OPW.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/separator.props.tsx"],
|
|
4
|
-
"sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst orientationValues = ['horizontal', 'vertical'] as const;\nconst sizes = ['1', '2', '3', '4'] as const;\n\nconst separatorPropDefs = {\n orientation: {\n type: 'enum',\n className: 'rt-r-orientation',\n values: orientationValues,\n default: 'horizontal',\n responsive: true,\n },\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '1', responsive: true },\n color: { ...colorPropDef.color, default: 'gray' },\n decorative: { type: 'boolean', default: true },\n light: { type: 'boolean', className: 'rt-light', default: false },\n} satisfies {\n orientation: PropDef<(typeof orientationValues)[number]>;\n size: PropDef<(typeof sizes)[number]>;\n color: typeof colorPropDef.color;\n decorative: PropDef<boolean>;\n light: PropDef<boolean>;\n};\n\nexport { separatorPropDefs };\n"],
|
|
5
|
-
"mappings": "wCAIA,IAAMA,EAAoB,CAAC,aAAc,UAAU,EAC7CC,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAE3BC,EAAoB,CACxB,YAAa,CACX,KAAM,OACN,UAAW,mBACX,OAAQF,EACR,QAAS,aACT,WAAY,EACd,EACA,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQC,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,MAAO,CAAE,GAAGE,EAAa,MAAO,QAAS,MAAO,EAChD,WAAY,CAAE,KAAM,UAAW,QAAS,EAAK,EAC7C,MAAO,CAAE,KAAM,UAAW,UAAW,WAAY,QAAS,EAAM,CAClE",
|
|
6
|
-
"names": ["orientationValues", "sizes", "separatorPropDefs", "colorPropDef"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as et}from"./chunk-BOLRYGFQ.js";import{a as De}from"./chunk-6HRBG5H2.js";import{g as Qe,j as Ze}from"./chunk-IX5HIHVI.js";import{a as Pe}from"./chunk-O6K6RZXY.js";import{a as Je}from"./chunk-HKRQ3E3I.js";import{a as Fe}from"./chunk-XZ5XZS5O.js";import{a as Ie}from"./chunk-7CBZFHSQ.js";import{a as ze}from"./chunk-AGAQC4HH.js";import{b as G}from"./chunk-FWB47YCH.js";import{a as Nt}from"./chunk-OS3FCYZY.js";var Dt={};Nt(Dt,{AttachTrigger:()=>ht,Attachment:()=>We,AttachmentsRow:()=>dt,InlineEnd:()=>lt,InlineStart:()=>it,Item:()=>pt,Root:()=>st,Row:()=>ft,RowEnd:()=>Rt,RowStart:()=>bt,Send:()=>Ct,Textarea:()=>ct});import*as e from"react";import T from"classnames";import{useComposedRefs as nt}from"radix-ui/internal";import{useDropzone as Mt}from"react-dropzone";var Be=typeof window<"u"?e.useLayoutEffect:e.useEffect;function tt(t,o){let{placeholder:a}=t;if(!a){o();return}t.placeholder="";try{o()}finally{t.placeholder=a}}var rt=e.createContext(null),Ve=e.createContext(""),I=()=>{let t=e.useContext(rt);if(!t)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return t},de=t=>Array.isArray(t)?t:typeof t=="string"?t.split(",").map(o=>o.trim()).filter(Boolean):[],Ot=(t,o)=>{if(o.length===0)return!0;let a=t.type.toLowerCase(),c=t.name.toLowerCase();for(let i of o){let l=i.toLowerCase();if(l.includes("/")){let[d,u]=l.split("/"),[f,b]=a.split("/");if(d==="*"||d===f&&(u==="*"||u===b))return!0}else if(l.startsWith(".")&&c.endsWith(l))return!0}return!1},Ht=/\.(png|jpe?g|gif|webp|bmp|svg|avif)$/i,ot=(t,o)=>(o||"").toLowerCase().startsWith("image/")||Ht.test(t),je=t=>t.trim().length>0,at=(t,o)=>`${t} ${o}${t===1?"":"s"}`,It=0,Ft=()=>`chatbar-attachment-${Date.now()}-${++It}`,st=e.forwardRef((t,o)=>{let{className:a,style:c,children:i,value:l,defaultValue:d="",onValueChange:u,open:f,defaultOpen:b=!1,onOpenChange:g,expandOn:y="both",minLines:C=3,maxLines:S=6,sendMode:F="whenDirty",disabled:R,readOnly:E,onSubmit:D,size:A="2",variant:z,color:O,radius:H,width:Q,maxWidth:h,attachments:_,defaultAttachments:B,onAttachmentsChange:oe,accept:P,multiple:k=!0,maxAttachments:Z,maxFileSize:q,paste:j=!0,pasteAccept:X,clearOnSubmit:V=!0,onAttachmentReject:N,dropzone:M=!0,apiRef:Ae,onBlurCapture:ue,notices:me,context:pe,...we}=t,he=l!=null,[Se,r]=e.useState(d),v=he?l:Se,w=f!=null,[se,Y]=e.useState(b),W=w?f:se,ce="attachments"in t,[ee,fe]=e.useState(()=>B??[]),$=e.useMemo(()=>ce?_??[]:ee,[ce,_,ee]),[$e,gt]=e.useState({text:"",id:0}),ie=e.useCallback(n=>gt(s=>({text:n,id:s.id+1})),[]),Ke=e.useRef(null),vt=nt(o,Ke),Ee=e.useRef(null),Te=e.useRef(null),le=e.useRef(!1),be=e.useRef(!1),Re=e.useRef(void 0),Le=e.useRef(null),Ue=de(P).join(","),ke=de(X).join(","),Ne=e.useMemo(()=>de(Ue),[Ue]),yt=e.useMemo(()=>ke?de(ke):Ne,[ke,Ne]),Ge={value:v,attachments:$,accepts:Ne,pasteAccepts:yt,multiple:k,maxAttachments:Z,maxFileSize:q,disabled:R,readOnly:E,expandOn:y,isValueControlled:he,isOpenControlled:w,isAttachmentsControlled:ce,onValueChange:u,onOpenChange:g,onAttachmentsChange:oe,onAttachmentReject:N,onSubmit:D},x=e.useRef(Ge);x.current=Ge;let Me=e.useRef(null),K=e.useCallback(()=>Me.current??x.current.attachments,[]),te=e.useCallback(n=>{x.current.isOpenControlled||Y(n),x.current.onOpenChange?.(n)},[]),Ce=e.useCallback(n=>{x.current.isValueControlled||r(n),x.current.onValueChange?.(n)},[]),ae=e.useCallback(n=>{Me.current=n,queueMicrotask(()=>{Me.current=null}),x.current.isAttachmentsControlled||fe(n),x.current.onAttachmentsChange?.(n)},[]),ge=e.useRef(new Set),ne=e.useCallback((n,s,m=x.current.multiple)=>{let p=x.current;if(p.disabled||p.readOnly||n.length===0)return 0;let U=K(),J=[],re=[],Lt=typeof p.maxAttachments=="number"?Math.max(p.maxAttachments-U.length,0):1/0,kt=m?1/0:1;for(let L of n){if(J.length>=Lt||J.length>=kt){re.push({file:L,reason:"count"});continue}if(typeof p.maxFileSize=="number"&&L.size>p.maxFileSize){re.push({file:L,reason:"size"});continue}if(!Ot(L,s)){re.push({file:L,reason:"type"});continue}let He=ot(L.name,L.type)?URL.createObjectURL(L):void 0;He&&ge.current.add(He),J.push({id:Ft(),name:L.name,size:L.size,type:L.type,file:L,url:He,status:"idle"})}let xe=[];return J.length>0&&(ae(U.concat(J)),p.expandOn!=="none"&&te(!0),xe.push(`${at(J.length,"file")} attached.`)),re.length>0&&(p.onAttachmentReject?.(re),xe.push(`${at(re.length,"file")} could not be attached.`)),xe.length>0&&ie(xe.join(" ")),J.length},[K,ae,te,ie]),ve=e.useCallback(n=>ne(n,x.current.accepts),[ne]),_e=e.useCallback(n=>ne(n,x.current.pasteAccepts),[ne]),qe=e.useCallback(n=>{let s=K(),m=s.find(p=>p.id===n);m&&(ae(s.filter(p=>p.id!==n)),ie(`Removed ${m.name}.`))},[K,ae,ie]),Xe=e.useCallback(n=>{let s=x.current;if(s.disabled||s.readOnly)return!1;let m=K();if(!je(s.value)&&m.length===0)return!1;let p={value:s.value,attachments:m};if(n&&s.onSubmit)for(let U of m)U.url&&ge.current.delete(U.url);return s.onSubmit?.(p),n&&(Ce(""),ae([])),!0},[K,Ce,ae]);e.useEffect(()=>{let n=ge.current;if(n.size===0)return;let s=new Set($.map(m=>m.url));for(let m of Array.from(n))s.has(m)||(URL.revokeObjectURL(m),n.delete(m))},[$]),e.useEffect(()=>{let n=ge.current;return()=>{if(!x.current.isAttachmentsControlled){for(let s of Array.from(n))URL.revokeObjectURL(s);n.clear()}}},[]);let ye=e.useCallback(n=>{let s=x.current,m=Te.current;if(clearTimeout(Re.current),be.current=!1,!m||s.disabled||s.readOnly)return;let p=n?.accept!=null?de(n.accept):s.accepts,U=n?.multiple??s.multiple;Le.current={patterns:p,multiple:U},m.accept=p.join(","),m.multiple=U,le.current=!0,m.click(),setTimeout(()=>{document.hasFocus()&&(le.current=!1)},1e3)},[]),Ye=e.useCallback(()=>{be.current=!0,clearTimeout(Re.current),Re.current=setTimeout(()=>{be.current=!1},800)},[]);e.useEffect(()=>()=>clearTimeout(Re.current),[]),e.useEffect(()=>{let n=Te.current,s=()=>{le.current=!1};return window.addEventListener("focus",s),n?.addEventListener("cancel",s),()=>{window.removeEventListener("focus",s),n?.removeEventListener("cancel",s)}},[]);let xt=e.useCallback(n=>{let s=n.currentTarget,m=Array.from(s.files??[]),p=Le.current;ne(m,p?.patterns??x.current.accepts,p?.multiple),le.current=!1,Le.current=null,s.value=""},[ne]),Pt=e.useCallback(n=>{ue?.(n);let s=x.current,m=Ke.current;if(!m||s.expandOn==="none")return;let p=n.relatedTarget;p&&m.contains(p)||le.current||be.current||!je(s.value)&&K().length===0&&te(!1)},[ue,te,K]),At=e.useCallback(n=>{ve(n)},[ve]),{getRootProps:wt,isDragActive:St}=Mt({onDrop:At,onDragEnter:()=>ie(""),noClick:!0,noKeyboard:!0,noPaste:!0,disabled:!M||R||E}),Oe=M&&St;e.useImperativeHandle(Ae,()=>({focusTextarea:()=>Ee.current?.focus({preventScroll:!0}),openFilePicker:()=>ye()}),[ye]);let Et=e.useCallback(n=>{if(R||n.pointerType==="mouse"&&n.button!==0)return;let s=n.target;s instanceof Element&&s.closest('button, [role="button"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex="-1"])')||(n.preventDefault(),Ee.current?.focus({preventScroll:!0}))},[R]),Tt=e.useMemo(()=>({open:W,setOpen:te,setValue:Ce,size:A,expandOn:y,minLines:C,maxLines:S,sendMode:F,disabled:R,readOnly:E,paste:j,clearOnSubmit:V,multiple:k,textareaRef:Ee,attachments:$,removeAttachment:qe,submit:Xe,appendFiles:ve,appendFilesFromPaste:_e,openFilePicker:ye,beginFilePickerPress:Ye}),[W,te,Ce,A,y,C,S,F,R,E,j,V,k,$,qe,Xe,ve,_e,ye,Ye]);return e.createElement(rt.Provider,{value:Tt},e.createElement(Ve.Provider,{value:v},e.createElement(e.Fragment,null,e.createElement("div",{...we,ref:vt,className:T("rt-ChatbarRoot",`rt-r-size-${A}`,a),style:{position:"relative",width:Q,maxWidth:h,...c},"data-state":W?"open":"closed","data-disabled":R?"":void 0,"data-readonly":E?"":void 0,"data-drop-active":Oe?"":void 0,"data-accent-color":O,"data-radius":H,onBlurCapture:Pt},e.createElement("input",{ref:Te,type:"file",tabIndex:-1,"aria-hidden":!0,style:{display:"none"},onChange:xt}),me?e.createElement("div",{className:"rt-ChatbarNotices"},e.createElement(et.Provider,{value:A},me)):null,e.createElement("div",{...M?wt():{},style:{width:"100%",flex:"1 1 auto",minHeight:0},onPointerDown:Et},e.createElement("div",{className:T("rt-ChatbarBox",`rt-variant-${z??"raised"}`),style:{position:"relative"},"data-accent-color":O,"data-radius":H},e.createElement("div",{className:"rt-ChatbarGrid"},i),Oe&&e.createElement("div",{className:"rt-ChatbarDropOverlay","aria-hidden":!0},e.createElement("div",{className:"rt-ChatbarDropContent"},e.createElement(Pe,{emphasis:"medium",size:A,weight:"medium"},"Drop files here to attach"))))),pe?e.createElement(Pe,{as:"div",size:A==="3"?"2":"1",emphasis:"medium",className:"rt-ChatbarContext"},pe):null,e.createElement(ze,{role:"status","aria-live":"polite"},Oe?"Drop files here to attach.":e.createElement("span",{key:$e.id},$e.text))))))});st.displayName="Chatbar.Root";var ct=e.forwardRef((t,o)=>{let{className:a,style:c,asChild:i,onFocus:l,onChange:d,onPaste:u,onKeyDown:f,onCompositionStart:b,onCompositionEnd:g,submitOnEnter:y=!1,...C}=t,S=I(),F=e.useContext(Ve),{open:R,minLines:E,maxLines:D,expandOn:A,disabled:z,readOnly:O,setOpen:H,setValue:Q,textareaRef:h,paste:_,appendFilesFromPaste:B,size:oe,submit:P,clearOnSubmit:k}=S,Z=nt(o,h),q=e.useRef(0),j=e.useRef(0),X=e.useRef(!1),V=e.useRef({open:R,minLines:E,maxLines:D});Be(()=>{V.current={open:R,minLines:E,maxLines:D}},[R,E,D]);let N=e.useCallback(()=>{let r=h.current;if(!r)return;let v=window.getComputedStyle(r);q.current=parseFloat(v.lineHeight)||20,j.current=(parseFloat(v.paddingTop)||0)+(parseFloat(v.paddingBottom)||0)},[h]),M=e.useCallback((r,v)=>{let{minLines:w,maxLines:se}=V.current,Y=q.current,W=j.current,ce=Math.ceil((v?w:1)*Y)+W,ee=Math.ceil((v?se:1)*Y)+W,fe=Math.max(r.scrollHeight,ce);r.style.height=`${Math.min(fe,ee)}px`;let $=fe>ee;r.style.overflowY=$?"auto":"hidden",r.style.maxHeight=$?`${ee}px`:"none"},[]);Be(()=>{N()},[N,oe]),Be(()=>{let r=h.current;r&&(q.current===0&&N(),tt(r,()=>{r.style.height="auto";let v=R;if(!R&&(A==="overflow"||A==="both")){let w=Math.ceil(q.current)+j.current;r.scrollHeight>w+1&&(v=!0,H(!0))}M(r,v)}))},[F,R,A,E,D,oe,H,h,N,M]),e.useEffect(()=>{let r=h.current;if(!r||typeof ResizeObserver>"u")return;let v=-1,w=new ResizeObserver(se=>{let Y=se[0]?.contentRect.width??0;if(Y===v)return;let W=v===-1;v=Y,!W&&(N(),tt(r,()=>{r.style.height="auto",M(r,V.current.open)}))});return w.observe(r),()=>w.disconnect()},[h,N,M]),e.useEffect(()=>{},[]);let Ae=e.useCallback(r=>{l?.(r),!(z||O)&&(A==="focus"||A==="both")&&!R&&H(!0)},[z,O,A,R,H,l]),ue=e.useCallback(r=>{Q(r.currentTarget.value),d?.(r)},[Q,d]),me=e.useCallback(r=>{if(u?.(r),r.defaultPrevented||!_||z||O)return;let v=Array.from(r.clipboardData?.items??[]).filter(w=>w.kind==="file").map(w=>w.getAsFile()).filter(w=>!!w);v.length!==0&&B(v)>0&&r.preventDefault()},[_,z,O,u,B]),pe=e.useCallback(r=>{X.current=!0,b?.(r)},[b]),we=e.useCallback(r=>{X.current=!1,g?.(r)},[g]),he=e.useCallback(r=>{f?.(r),!(r.defaultPrevented||!y)&&(r.key!=="Enter"||r.shiftKey||r.altKey||r.ctrlKey||r.metaKey||X.current||r.nativeEvent.isComposing||r.nativeEvent.keyCode===229||(r.preventDefault(),P(k)))},[y,f,P,k]),Se=i?G:"textarea";return e.createElement("div",{className:T("rt-ChatbarField","rt-ChatbarTextarea",a)},e.createElement(Se,{...C,ref:Z,className:"rt-ChatbarInput",value:F,onChange:ue,onFocus:Ae,onPaste:me,onKeyDown:he,onCompositionStart:pe,onCompositionEnd:we,disabled:z,readOnly:O,rows:R?E:1,spellCheck:C.spellCheck??!0,autoCorrect:C.autoCorrect??"on",style:c}))});ct.displayName="Chatbar.Textarea";var it=e.forwardRef((t,o)=>{let{children:a,asChild:c,className:i,...l}=t;return I().open?null:e.createElement(c?G:"div",{...l,ref:o,className:T("rt-ChatbarInlineStart",i)},a)});it.displayName="Chatbar.InlineStart";var lt=e.forwardRef((t,o)=>{let{children:a,asChild:c,className:i,...l}=t;return I().open?null:e.createElement(c?G:"div",{...l,ref:o,className:T("rt-ChatbarInlineEnd",i)},a)});lt.displayName="Chatbar.InlineEnd";var dt=e.forwardRef((t,o)=>{let{asChild:a,forceMount:c,renderAttachment:i,className:l,children:d,...u}=t,f=I(),b=e.Children.toArray(d).length>0;return f.attachments.length===0&&!b&&!c?null:e.createElement("div",null,e.createElement(a?G:"div",{...u,ref:o,className:T("rt-ChatbarAttachmentsRow",l),role:"list","aria-label":u["aria-label"]??"Attachments"},e.createElement(Je,{className:"rt-ChatbarScrollArea",scrollbars:"horizontal",size:"1"},e.createElement(Ie,{align:"center",gap:"3",minWidth:"fit-content"},f.attachments.map(y=>e.createElement(We,{key:y.id,attachment:y,asChild:!!i},i?.(y))),d))))});dt.displayName="Chatbar.AttachmentsRow";function ut(t,o){let a=t.closest('[role="listitem"]'),c=a?.parentElement?Array.from(a.parentElement.children):[],i=a?c.indexOf(a):-1,d=(c[i+1]??c[i-1])?.querySelector(".rt-ChatbarItemRemove");d?d.focus():o.current?.focus({preventScroll:!0})}var mt=({lead:t,leadKind:o,label:a,detail:c,removeLabel:i,onRemove:l})=>{let d=I();return e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-ChatbarItemLead","data-kind":o,"aria-hidden":!0},t),e.createElement(Pe,{className:"rt-ChatbarItemLabel",size:d.size,truncate:!0},a,c?e.createElement(ze,null,", ",c):null),l&&e.createElement(De,{className:"rt-ChatbarItemRemove","aria-label":i,size:"1",variant:"ghost",color:"gray",onClick:l},e.createElement(Qe,null)))},zt={uploading:"uploading",error:"failed to upload"},We=e.forwardRef((t,o)=>{let{attachment:a,asChild:c,className:i,children:l,...d}=t,u=I(),f=c?G:"div",b=!!a.url&&ot(a.name,a.type),g=`${Math.ceil(a.size/1024)} KB`,y=a.status?zt[a.status]:void 0,C=u.disabled||u.readOnly,S=R=>{ut(R.currentTarget,u.textareaRef),u.removeAttachment(a.id)},F=a.status==="uploading"?e.createElement(Fe,{size:"1"}):b?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:a.url,alt:""}):e.createElement(Ze,null);return e.createElement(f,{...d,ref:o,className:T(l?"rt-ChatbarAttachment":"rt-ChatbarAttachment rt-ChatbarItem",i),role:"listitem","data-kind":b?"image":"file","data-status":a.status,title:a.name},l??e.createElement(mt,{lead:F,leadKind:b&&a.status!=="uploading"?"image":"icon",label:a.name,detail:y?`${g}, ${y}`:g,removeLabel:`Remove ${a.name}`,onRemove:C?void 0:S}))});We.displayName="Chatbar.Attachment";var pt=e.forwardRef((t,o)=>{let{children:a,icon:c,image:i,color:l,onRemove:d,removeLabel:u,className:f,...b}=t,g=I(),y=g.disabled||g.readOnly,C=d?S=>{ut(S.currentTarget,g.textareaRef),d()}:void 0;return e.createElement("div",{...b,ref:o,className:T("rt-ChatbarItem",f),role:"listitem","data-accent-color":i?void 0:l??"gray",title:a},e.createElement(mt,{lead:i?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:i,alt:""}):c,leadKind:i?"image":"icon",label:a,removeLabel:u??`Remove ${a}`,onRemove:y?void 0:C}))});pt.displayName="Chatbar.Item";var ht=e.forwardRef((t,o)=>{let{asChild:a,accept:c,multiple:i,disabled:l,onPointerDown:d,onClick:u,...f}=t,b=I(),g=l||b.disabled||b.readOnly;return e.createElement(a?G:"button",{...f,ref:o,className:T("rt-ChatbarAttachTrigger",f.className),type:f.type??"button","aria-label":f["aria-label"]??"Add attachments",disabled:g,onPointerDown:C=>{d?.(C),!g&&!C.defaultPrevented&&b.beginFilePickerPress()},onClick:C=>{u?.(C),!(g||C.defaultPrevented)&&b.openFilePicker({accept:c,multiple:i})}})});ht.displayName="Chatbar.AttachTrigger";var ft=e.forwardRef((t,o)=>{let{asChild:a,children:c,className:i,...l}=t;return I().open?e.createElement("div",null,e.createElement(a?G:"div",{...l,ref:o,className:T("rt-ChatbarRow",i)},e.createElement(Ie,{align:"center",justify:"between",width:"100%"},c))):null});ft.displayName="Chatbar.Row";var bt=e.forwardRef((t,o)=>{let{className:a,...c}=t;return e.createElement("div",{...c,ref:o,className:T("rt-ChatbarRowStart",a)})});bt.displayName="Chatbar.RowStart";var Rt=e.forwardRef((t,o)=>{let{className:a,...c}=t;return e.createElement("div",{...c,ref:o,className:T("rt-ChatbarRowEnd",a)})});Rt.displayName="Chatbar.RowEnd";var Ct=e.forwardRef((t,o)=>{let{asChild:a,clearOnSend:c,disabled:i,children:l,style:d,className:u,size:f,variant:b,emphasis:g,tabIndex:y,onClick:C,status:S="ready",onStop:F,onRetry:R,stopLabel:E="Stop",retryLabel:D="Retry",stopIcon:A,retryIcon:z,"aria-label":O,"aria-labelledby":H,...Q}=t,h=I(),_=e.useContext(Ve),B=je(_)||h.attachments.length>0,P=B?"send":S==="submitted"||S==="streaming"?"stop":S==="error"?"retry":"send";if(h.sendMode==="never"&&P==="send")return null;let k=P!=="send"||h.sendMode==="always"||B,Z=P==="send"?i||h.disabled||h.readOnly||!B:i||h.disabled,j=P==="stop"?{"aria-label":E}:P==="retry"?{"aria-label":D}:H?{"aria-labelledby":H}:{"aria-label":O??"Send"},X=N=>{if(C?.(N),N.defaultPrevented||Z)return;if(P==="stop"){F?.();return}if(P==="retry"){R?.();return}let M=c??h.clearOnSubmit;h.submit(M)&&M&&h.textareaRef.current?.focus({preventScroll:!0})},V=P==="stop"?A??(S==="submitted"?e.createElement(Fe,{size:h.size}):e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0},e.createElement("rect",{x:"7",y:"7",width:"10",height:"10",rx:"2"}))):P==="retry"?z??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},e.createElement("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),e.createElement("path",{d:"M3 3v5h5"})):l??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},e.createElement("path",{d:"M5 12h14"}),e.createElement("path",{d:"m12 5 7 7-7 7"}));return e.createElement(De,{...Q,ref:o,size:f??h.size,...g?{emphasis:g}:{variant:b??(h.open||P!=="send"?"solid":"ghost")},disabled:Z,className:T("rt-ChatbarSend",u),style:{opacity:k?1:0,pointerEvents:k?void 0:"none",...d},"aria-hidden":k?void 0:!0,tabIndex:k?y:-1,asChild:a,onClick:X,"data-status":S,"data-mode":P,...j},V)});Ct.displayName="Chatbar.Send";export{st as a,ct as b,it as c,lt as d,dt as e,We as f,pt as g,ht as h,ft as i,bt as j,Rt as k,Ct as l,Dt as m};
|
|
2
|
-
//# sourceMappingURL=chunk-M55KFXYV.js.map
|