@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
|
@@ -36,8 +36,27 @@
|
|
|
36
36
|
position: relative;
|
|
37
37
|
cursor: pointer;
|
|
38
38
|
contain: paint;
|
|
39
|
+
touch-action: manipulation;
|
|
40
|
+
-webkit-tap-highlight-color: transparent;
|
|
41
|
+
|
|
42
|
+
/* The control ladder. min-height, not height: a hard height clips a resized or wrapped label. */
|
|
43
|
+
min-height: var(--base-button-height);
|
|
39
44
|
gap: var(--base-button-gap);
|
|
40
|
-
|
|
45
|
+
|
|
46
|
+
/* Side padding is per side. Under a full radius a bare side pads wider (the corner curve swings
|
|
47
|
+
in at the text); a side that starts or ends with an icon keeps the plain padding. Outside the
|
|
48
|
+
full radius --radius-full is 0px, so the bare padding IS the plain padding. */
|
|
49
|
+
--base-button-px-bare: calc(
|
|
50
|
+
var(--base-button-px) + min(var(--radius-full), var(--base-button-px-pill) - var(--base-button-px))
|
|
51
|
+
);
|
|
52
|
+
padding-inline-start: var(--base-button-px-bare);
|
|
53
|
+
padding-inline-end: var(--base-button-px-bare);
|
|
54
|
+
|
|
55
|
+
/* Each level keeps v1's roundness; a full radius is half the control's height. */
|
|
56
|
+
border-radius: max(
|
|
57
|
+
var(--base-button-radius),
|
|
58
|
+
min(var(--radius-full), calc(var(--base-button-height) / 2))
|
|
59
|
+
);
|
|
41
60
|
|
|
42
61
|
/* Typography */
|
|
43
62
|
font-family: var(--default-font-family);
|
|
@@ -59,11 +78,16 @@
|
|
|
59
78
|
background-color: Canvas;
|
|
60
79
|
}
|
|
61
80
|
|
|
62
|
-
/*
|
|
63
|
-
&:where(
|
|
81
|
+
/* One focus ring for every variant */
|
|
82
|
+
&:where(:focus-visible) {
|
|
83
|
+
outline: var(--focus-ring-width) solid var(--focus-8);
|
|
84
|
+
outline-offset: var(--focus-ring-offset);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* Disabled is a colour remap (per variant, below). It still hit-tests and keeps the arrow. */
|
|
88
|
+
&:where([data-disabled], [aria-disabled='true']) {
|
|
64
89
|
--spinner-opacity: 1;
|
|
65
|
-
cursor:
|
|
66
|
-
pointer-events: none;
|
|
90
|
+
cursor: default;
|
|
67
91
|
@media (forced-colors: active) {
|
|
68
92
|
border-color: GrayText;
|
|
69
93
|
color: GrayText;
|
|
@@ -71,10 +95,18 @@
|
|
|
71
95
|
}
|
|
72
96
|
}
|
|
73
97
|
|
|
74
|
-
/* Loading
|
|
98
|
+
/* Loading: busy, not frozen */
|
|
75
99
|
&:where(.rt-loading) {
|
|
76
100
|
position: relative;
|
|
77
|
-
cursor:
|
|
101
|
+
cursor: progress;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Icons ride the icon ladder */
|
|
105
|
+
/* stylelint-disable-next-line selector-max-type */
|
|
106
|
+
& :where(svg) {
|
|
107
|
+
width: var(--base-button-icon-size);
|
|
108
|
+
height: var(--base-button-icon-size);
|
|
109
|
+
flex: none;
|
|
78
110
|
}
|
|
79
111
|
|
|
80
112
|
/* Stabilize SVGs during scale transforms (prevent wobble, especially Firefox) */
|
|
@@ -87,6 +119,22 @@
|
|
|
87
119
|
}
|
|
88
120
|
}
|
|
89
121
|
|
|
122
|
+
/* An edge holding an icon keeps the plain padding under a pill */
|
|
123
|
+
.rt-BaseButton:where([data-icon-start]) {
|
|
124
|
+
padding-inline-start: var(--base-button-px);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.rt-BaseButton:where([data-icon-end]) {
|
|
128
|
+
padding-inline-end: var(--base-button-px);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* An icon-only button is square: no inline padding, and aspect-ratio rather than a width ladder,
|
|
132
|
+
so a hosted icon button whose height comes from its container (Toolbar, Chatbar) stays square. */
|
|
133
|
+
.rt-BaseButton:where(.rt-IconButton) {
|
|
134
|
+
padding-inline: 0;
|
|
135
|
+
aspect-ratio: 1;
|
|
136
|
+
}
|
|
137
|
+
|
|
90
138
|
/* Full width mode */
|
|
91
139
|
.rt-BaseButton:where(.rt-full-width) {
|
|
92
140
|
display: flex;
|
|
@@ -97,28 +145,47 @@
|
|
|
97
145
|
* *
|
|
98
146
|
* SIZES *
|
|
99
147
|
* *
|
|
148
|
+
* The control ladder: height 28/32/40/48, side padding, pill padding, gap and icon size all come *
|
|
149
|
+
* from the role tokens. Only the corner keeps v1's own level. *
|
|
150
|
+
* *
|
|
100
151
|
***************************************************************************************************/
|
|
101
152
|
|
|
102
153
|
@breakpoints {
|
|
103
154
|
.rt-BaseButton {
|
|
104
155
|
&:where(.rt-r-size-1) {
|
|
105
156
|
--base-button-height: var(--control-height-1);
|
|
106
|
-
|
|
157
|
+
--base-button-px: var(--control-px-1);
|
|
158
|
+
--base-button-px-pill: var(--control-px-pill-1);
|
|
159
|
+
--base-button-gap: var(--control-gap-1);
|
|
160
|
+
--base-button-icon-size: var(--icon-size-1);
|
|
161
|
+
--base-button-radius: var(--radius-1);
|
|
107
162
|
}
|
|
108
163
|
|
|
109
164
|
&:where(.rt-r-size-2) {
|
|
110
165
|
--base-button-height: var(--control-height-2);
|
|
111
|
-
|
|
166
|
+
--base-button-px: var(--control-px-2);
|
|
167
|
+
--base-button-px-pill: var(--control-px-pill-2);
|
|
168
|
+
--base-button-gap: var(--control-gap-2);
|
|
169
|
+
--base-button-icon-size: var(--icon-size-2);
|
|
170
|
+
--base-button-radius: var(--radius-2);
|
|
112
171
|
}
|
|
113
172
|
|
|
114
173
|
&:where(.rt-r-size-3) {
|
|
115
174
|
--base-button-height: var(--control-height-3);
|
|
116
|
-
|
|
175
|
+
--base-button-px: var(--control-px-3);
|
|
176
|
+
--base-button-px-pill: var(--control-px-pill-3);
|
|
177
|
+
--base-button-gap: var(--control-gap-3);
|
|
178
|
+
--base-button-icon-size: var(--icon-size-3);
|
|
179
|
+
--base-button-radius: var(--radius-3);
|
|
117
180
|
}
|
|
118
181
|
|
|
119
182
|
&:where(.rt-r-size-4) {
|
|
120
183
|
--base-button-height: var(--control-height-4);
|
|
121
|
-
|
|
184
|
+
--base-button-px: var(--control-px-4);
|
|
185
|
+
--base-button-px-pill: var(--control-px-pill-4);
|
|
186
|
+
--base-button-gap: var(--control-gap-4);
|
|
187
|
+
--base-button-icon-size: var(--icon-size-4);
|
|
188
|
+
--base-button-radius: var(--radius-4);
|
|
122
189
|
}
|
|
123
190
|
}
|
|
124
191
|
}
|
|
@@ -128,7 +195,7 @@
|
|
|
128
195
|
* VARIANT PALETTES *
|
|
129
196
|
* *
|
|
130
197
|
* Each variant defines its color scale. Shared state logic uses these variables. *
|
|
131
|
-
* Variables: --v-color, --v-bg-*, --v-border-*, --v-shadow
|
|
198
|
+
* Variables: --v-color, --v-bg-*, --v-border-*, --v-shadow-* *
|
|
132
199
|
* *
|
|
133
200
|
***************************************************************************************************/
|
|
134
201
|
|
|
@@ -144,8 +211,6 @@
|
|
|
144
211
|
--v-bg-pressed: var(--accent-5);
|
|
145
212
|
--v-bg-pressed-a: var(--accent-a5);
|
|
146
213
|
--v-shadow-hover: var(--shadow-2);
|
|
147
|
-
--v-focus-color: var(--accent-8);
|
|
148
|
-
--v-focus-offset: -1px;
|
|
149
214
|
}
|
|
150
215
|
|
|
151
216
|
/* Ghost variant palette */
|
|
@@ -160,8 +225,6 @@
|
|
|
160
225
|
--v-bg-pressed: var(--accent-4);
|
|
161
226
|
--v-bg-pressed-a: var(--accent-a4);
|
|
162
227
|
--v-bg-disabled: transparent;
|
|
163
|
-
--v-focus-color: var(--focus-8);
|
|
164
|
-
--v-focus-offset: -1px;
|
|
165
228
|
}
|
|
166
229
|
|
|
167
230
|
/* Outline variant palette */
|
|
@@ -185,8 +248,6 @@
|
|
|
185
248
|
--v-border-active: var(--accent-8);
|
|
186
249
|
--v-border-active-a: var(--accent-a8);
|
|
187
250
|
--v-border-disabled: var(--gray-a7);
|
|
188
|
-
--v-focus-color: var(--focus-8);
|
|
189
|
-
--v-focus-offset: -1px;
|
|
190
251
|
}
|
|
191
252
|
|
|
192
253
|
/* Surface variant palette */
|
|
@@ -210,15 +271,14 @@
|
|
|
210
271
|
--v-border-active: var(--accent-8);
|
|
211
272
|
--v-border-active-a: var(--accent-a8);
|
|
212
273
|
--v-border-disabled: var(--gray-a6);
|
|
213
|
-
--v-focus-color: var(--focus-8);
|
|
214
|
-
--v-focus-offset: -1px;
|
|
215
274
|
}
|
|
216
275
|
|
|
217
276
|
/***************************************************************************************************
|
|
218
277
|
* *
|
|
219
278
|
* SHARED STATE LOGIC *
|
|
220
279
|
* *
|
|
221
|
-
*
|
|
280
|
+
* One rule for every variant: hover = +1 step and press = +2 steps on the variant's own ramp. *
|
|
281
|
+
* Hover only where hovering exists. Disabled is a colour remap: no opacity, no pointer-events. *
|
|
222
282
|
* Applies to: soft, ghost, outline, surface *
|
|
223
283
|
* *
|
|
224
284
|
***************************************************************************************************/
|
|
@@ -228,15 +288,9 @@
|
|
|
228
288
|
color: var(--v-color);
|
|
229
289
|
background-color: var(--v-bg);
|
|
230
290
|
|
|
231
|
-
/* Focus visible */
|
|
232
|
-
&:where(:focus-visible) {
|
|
233
|
-
outline: 2px solid var(--v-focus-color);
|
|
234
|
-
outline-offset: var(--v-focus-offset);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
291
|
/* Hover state */
|
|
238
292
|
@media (hover: hover) {
|
|
239
|
-
&:where(:hover:not([data-disabled])) {
|
|
293
|
+
&:where(:hover:not([data-disabled], [aria-disabled='true'])) {
|
|
240
294
|
background-color: var(--v-bg-hover);
|
|
241
295
|
box-shadow: var(--v-shadow-hover, none);
|
|
242
296
|
}
|
|
@@ -248,7 +302,7 @@
|
|
|
248
302
|
}
|
|
249
303
|
|
|
250
304
|
/* Active state */
|
|
251
|
-
&:where(:active:not([data-state='open'], [data-disabled])) {
|
|
305
|
+
&:where(:active:not([data-state='open'], [data-disabled], [aria-disabled='true'])) {
|
|
252
306
|
background-color: var(--v-bg-active);
|
|
253
307
|
box-shadow: var(--shadow-1);
|
|
254
308
|
}
|
|
@@ -259,11 +313,10 @@
|
|
|
259
313
|
}
|
|
260
314
|
|
|
261
315
|
/* Disabled state */
|
|
262
|
-
&:where([data-disabled]) {
|
|
316
|
+
&:where([data-disabled], [aria-disabled='true']) {
|
|
263
317
|
color: var(--gray-a8);
|
|
264
318
|
background-color: var(--v-bg-disabled, var(--gray-a3));
|
|
265
|
-
|
|
266
|
-
pointer-events: none;
|
|
319
|
+
box-shadow: none;
|
|
267
320
|
}
|
|
268
321
|
}
|
|
269
322
|
|
|
@@ -274,7 +327,7 @@
|
|
|
274
327
|
|
|
275
328
|
/* Hover state border */
|
|
276
329
|
@media (hover: hover) {
|
|
277
|
-
&:where(:hover:not([data-disabled])) {
|
|
330
|
+
&:where(:hover:not([data-disabled], [aria-disabled='true'])) {
|
|
278
331
|
box-shadow: inset 0 0 0 1px var(--v-border-hover);
|
|
279
332
|
}
|
|
280
333
|
}
|
|
@@ -285,26 +338,26 @@
|
|
|
285
338
|
}
|
|
286
339
|
|
|
287
340
|
/* Active and pressed state border */
|
|
288
|
-
&:where(:active:not([data-state='open'], [data-disabled])),
|
|
341
|
+
&:where(:active:not([data-state='open'], [data-disabled], [aria-disabled='true'])),
|
|
289
342
|
&:where([data-state='on']) {
|
|
290
343
|
box-shadow: inset 0 0 0 1px var(--v-border-active);
|
|
291
344
|
}
|
|
292
345
|
|
|
293
346
|
/* Disabled state border */
|
|
294
|
-
&:where([data-disabled]) {
|
|
347
|
+
&:where([data-disabled], [aria-disabled='true']) {
|
|
295
348
|
box-shadow: inset 0 0 0 1px var(--v-border-disabled);
|
|
296
349
|
}
|
|
297
350
|
}
|
|
298
351
|
|
|
299
|
-
/* Ghost flush mode */
|
|
352
|
+
/* Ghost flush mode: pull the button out by its own padding so its content sits on the text line */
|
|
300
353
|
.rt-BaseButton:where(.rt-variant-ghost[data-flush='true']) {
|
|
301
354
|
--margin-top: 0px;
|
|
302
355
|
--margin-right: 0px;
|
|
303
356
|
--margin-bottom: 0px;
|
|
304
357
|
--margin-left: 0px;
|
|
305
358
|
|
|
306
|
-
--button-padding-x:
|
|
307
|
-
--button-padding-y: calc(var(--base-button-height) /
|
|
359
|
+
--button-padding-x: var(--base-button-px);
|
|
360
|
+
--button-padding-y: calc((var(--base-button-height) - 1lh) / 2);
|
|
308
361
|
|
|
309
362
|
--margin-top-override: calc(var(--margin-top) - var(--button-padding-y));
|
|
310
363
|
--margin-right-override: calc(var(--margin-right) - var(--button-padding-x));
|
|
@@ -324,6 +377,12 @@
|
|
|
324
377
|
}
|
|
325
378
|
}
|
|
326
379
|
|
|
380
|
+
/* A flush ghost icon button pulls out by the space around its glyph */
|
|
381
|
+
.rt-BaseButton:where(.rt-IconButton.rt-variant-ghost[data-flush='true']) {
|
|
382
|
+
--button-padding-x: calc((var(--base-button-height) - var(--base-button-icon-size)) / 2);
|
|
383
|
+
--button-padding-y: var(--button-padding-x);
|
|
384
|
+
}
|
|
385
|
+
|
|
327
386
|
/***************************************************************************************************
|
|
328
387
|
* *
|
|
329
388
|
* SPECIAL VARIANTS *
|
|
@@ -332,62 +391,50 @@
|
|
|
332
391
|
* *
|
|
333
392
|
***************************************************************************************************/
|
|
334
393
|
|
|
335
|
-
/* Raised variant -
|
|
394
|
+
/* Raised variant - surface at rest, then gray 2 on hover and gray 3 on press */
|
|
336
395
|
.rt-BaseButton:where(.rt-variant-raised) {
|
|
337
396
|
position: relative;
|
|
338
397
|
color: var(--accent-ink);
|
|
339
398
|
background-color: var(--color-surface-solid);
|
|
340
399
|
box-shadow: var(--shadow-2);
|
|
341
400
|
|
|
342
|
-
&:where(:focus-visible) {
|
|
343
|
-
outline: 2px solid var(--focus-8);
|
|
344
|
-
outline-offset: 2px;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
401
|
@media (hover: hover) {
|
|
348
|
-
&:where(:hover) {
|
|
402
|
+
&:where(:hover:not([data-disabled], [aria-disabled='true'])) {
|
|
349
403
|
background-color: var(--gray-2);
|
|
350
404
|
box-shadow: var(--shadow-2);
|
|
351
405
|
}
|
|
352
406
|
}
|
|
353
407
|
|
|
354
408
|
&:where([data-state='open']),
|
|
355
|
-
&:where(:active:not([data-state='open'], [data-disabled])),
|
|
356
|
-
&:where([data-state='on']:not([data-disabled])) {
|
|
409
|
+
&:where(:active:not([data-state='open'], [data-disabled], [aria-disabled='true'])),
|
|
410
|
+
&:where([data-state='on']:not([data-disabled], [aria-disabled='true'])) {
|
|
357
411
|
background-color: var(--gray-3);
|
|
358
412
|
box-shadow: var(--shadow-1);
|
|
359
413
|
}
|
|
360
414
|
|
|
361
415
|
@media (pointer: coarse) {
|
|
362
|
-
&:where(:active:not([data-state='open'])) {
|
|
416
|
+
&:where(:active:not([data-state='open'], [data-disabled], [aria-disabled='true'])) {
|
|
363
417
|
outline: var(--raised-shadow-blur-large) solid var(--gray-a4);
|
|
364
418
|
outline-offset: 0;
|
|
365
419
|
}
|
|
366
420
|
}
|
|
367
421
|
|
|
368
|
-
&:where([data-disabled]) {
|
|
422
|
+
&:where([data-disabled], [aria-disabled='true']) {
|
|
369
423
|
color: var(--gray-a8);
|
|
370
424
|
background-color: var(--gray-a3);
|
|
371
425
|
box-shadow: none;
|
|
372
|
-
outline: none;
|
|
373
|
-
cursor: not-allowed;
|
|
374
|
-
pointer-events: none;
|
|
375
426
|
top: 0;
|
|
376
427
|
}
|
|
377
428
|
}
|
|
378
429
|
|
|
379
|
-
/* Solid variant -
|
|
430
|
+
/* Solid variant - accent solid at rest, solid-hover on hover, solid-active on press
|
|
431
|
+
(gray resolves the three to step 12 and the filters carry the change) */
|
|
380
432
|
.rt-BaseButton:where(.rt-variant-solid) {
|
|
381
433
|
background-color: var(--accent-solid);
|
|
382
434
|
color: var(--accent-solid-contrast);
|
|
383
435
|
|
|
384
|
-
&:where(:focus-visible) {
|
|
385
|
-
outline: 2px solid var(--focus-8);
|
|
386
|
-
outline-offset: 2px;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
436
|
@media (hover: hover) {
|
|
390
|
-
&:where(:hover) {
|
|
437
|
+
&:where(:hover:not([data-disabled], [aria-disabled='true'])) {
|
|
391
438
|
background-color: var(--accent-solid-hover);
|
|
392
439
|
filter: var(--accent-solid-hover-filter);
|
|
393
440
|
box-shadow: var(--shadow-2);
|
|
@@ -399,7 +446,8 @@
|
|
|
399
446
|
filter: var(--accent-solid-open-filter);
|
|
400
447
|
}
|
|
401
448
|
|
|
402
|
-
&:where(:active:not([data-state='open'])) {
|
|
449
|
+
&:where(:active:not([data-state='open'], [data-disabled], [aria-disabled='true'])) {
|
|
450
|
+
background-color: var(--accent-solid-active);
|
|
403
451
|
filter: var(--accent-solid-active-filter);
|
|
404
452
|
}
|
|
405
453
|
|
|
@@ -409,19 +457,18 @@
|
|
|
409
457
|
}
|
|
410
458
|
|
|
411
459
|
@media (pointer: coarse) {
|
|
412
|
-
&:where(:active:not([data-state='open'])) {
|
|
460
|
+
&:where(:active:not([data-state='open'], [data-disabled], [aria-disabled='true'])) {
|
|
413
461
|
outline: var(--raised-shadow-blur-large) solid var(--accent-a4);
|
|
414
462
|
outline-offset: 0;
|
|
415
463
|
}
|
|
416
464
|
}
|
|
417
465
|
|
|
418
|
-
&:where([data-disabled]) {
|
|
466
|
+
&:where([data-disabled], [aria-disabled='true']) {
|
|
419
467
|
color: var(--gray-a8);
|
|
420
468
|
background-color: var(--gray-a3);
|
|
421
|
-
|
|
469
|
+
box-shadow: none;
|
|
422
470
|
filter: none;
|
|
423
|
-
|
|
424
|
-
pointer-events: none;
|
|
471
|
+
opacity: 1;
|
|
425
472
|
}
|
|
426
473
|
}
|
|
427
474
|
|
|
@@ -431,24 +478,13 @@
|
|
|
431
478
|
* *
|
|
432
479
|
***************************************************************************************************/
|
|
433
480
|
|
|
434
|
-
.rt-BaseButton:where([disabled][aria-pressed]) {
|
|
481
|
+
.rt-BaseButton:where([data-disabled][aria-pressed], [aria-disabled='true'][aria-pressed]) {
|
|
435
482
|
transform: none;
|
|
436
483
|
color: var(--gray-a8);
|
|
437
484
|
background-color: var(--gray-a3);
|
|
438
|
-
background: var(--gray-a3);
|
|
439
485
|
box-shadow: none;
|
|
440
486
|
filter: none;
|
|
441
|
-
opacity:
|
|
442
|
-
cursor: not-allowed;
|
|
443
|
-
pointer-events: none;
|
|
444
|
-
|
|
445
|
-
&:where([data-state='on']) {
|
|
446
|
-
transform: none;
|
|
447
|
-
background: var(--gray-a3);
|
|
448
|
-
background-color: var(--gray-a3);
|
|
449
|
-
box-shadow: none;
|
|
450
|
-
filter: none;
|
|
451
|
-
}
|
|
487
|
+
opacity: 1;
|
|
452
488
|
|
|
453
489
|
/* Raised needs special handling for top position */
|
|
454
490
|
&:where(.rt-variant-raised) {
|
|
@@ -7,7 +7,7 @@ import { Flex } from '../flex.js';
|
|
|
7
7
|
import { Spinner } from '../spinner.js';
|
|
8
8
|
import { VisuallyHidden } from '../visually-hidden.js';
|
|
9
9
|
import { extractProps } from '../../helpers/extract-props.js';
|
|
10
|
-
import {
|
|
10
|
+
import { useThemeSizeProps } from '../../helpers/theme-size.js';
|
|
11
11
|
import { marginPropDefs } from '../../props/margin.props.js';
|
|
12
12
|
|
|
13
13
|
import type { MarginProps } from '../../props/margin.props.js';
|
|
@@ -59,8 +59,8 @@ interface BaseButtonProps extends PolymorphicBaseButtonProps {}
|
|
|
59
59
|
* <BaseButton as="a" href="/link">Link Button</BaseButton>
|
|
60
60
|
* ```
|
|
61
61
|
*/
|
|
62
|
-
const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((
|
|
63
|
-
const
|
|
62
|
+
const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((ownProps, forwardedRef) => {
|
|
63
|
+
const props = useThemeSizeProps(ownProps, baseButtonPropDefs.size);
|
|
64
64
|
|
|
65
65
|
// Extract button-specific props from the combined props object
|
|
66
66
|
const {
|
|
@@ -71,10 +71,45 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
|
|
|
71
71
|
color,
|
|
72
72
|
radius,
|
|
73
73
|
flush,
|
|
74
|
-
disabled
|
|
74
|
+
disabled: nativeDisabled,
|
|
75
75
|
...baseButtonProps
|
|
76
76
|
} = extractProps(props, baseButtonPropDefs, marginPropDefs);
|
|
77
77
|
|
|
78
|
+
// Loading blocks activation but keeps the native `disabled` off, so the button keeps focus
|
|
79
|
+
// and its place in the tab order (aria-disabled carries the state). An explicit `disabled`
|
|
80
|
+
// stays native.
|
|
81
|
+
const loading = Boolean(props.loading);
|
|
82
|
+
const disabled = Boolean(nativeDisabled) || loading;
|
|
83
|
+
const { onClick } = baseButtonProps as { onClick?: React.MouseEventHandler<HTMLElement> };
|
|
84
|
+
const handleClick = React.useCallback(
|
|
85
|
+
(event: React.MouseEvent<HTMLElement>) => {
|
|
86
|
+
if (loading) {
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
onClick?.(event);
|
|
91
|
+
},
|
|
92
|
+
[loading, onClick],
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
// Which edges start or end with an icon. A bare edge pads wider under a full radius; an edge
|
|
96
|
+
// holding an icon keeps the plain padding (the icon already stands between text and curve).
|
|
97
|
+
const { iconStart, iconEnd } = React.useMemo(() => {
|
|
98
|
+
const content =
|
|
99
|
+
asChild && React.isValidElement(children) ? (children.props as { children?: React.ReactNode }).children : children;
|
|
100
|
+
// Fragments are see-through: their own first and last children are the edges.
|
|
101
|
+
const flatten = (nodes: React.ReactNode): React.ReactNode[] =>
|
|
102
|
+
React.Children.toArray(nodes).flatMap((node) =>
|
|
103
|
+
React.isValidElement(node) && node.type === React.Fragment
|
|
104
|
+
? flatten((node.props as { children?: React.ReactNode }).children)
|
|
105
|
+
: [node],
|
|
106
|
+
);
|
|
107
|
+
const items = flatten(content);
|
|
108
|
+
const isIcon = (node: React.ReactNode) =>
|
|
109
|
+
React.isValidElement(node) && (node.type === 'svg' || typeof node.type !== 'string');
|
|
110
|
+
return { iconStart: isIcon(items[0]), iconEnd: isIcon(items[items.length - 1]) };
|
|
111
|
+
}, [asChild, children]);
|
|
112
|
+
|
|
78
113
|
|
|
79
114
|
// asChild takes precedence over as prop for Radix Slot integration
|
|
80
115
|
// When asChild is true, we use Slot.Root to merge props onto the child element
|
|
@@ -94,7 +129,7 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
|
|
|
94
129
|
|
|
95
130
|
// Generate unique ID for loading announcements
|
|
96
131
|
const loadingId = React.useId();
|
|
97
|
-
const describedById =
|
|
132
|
+
const describedById = loading ? `${loadingId}-loading` : undefined;
|
|
98
133
|
|
|
99
134
|
// Extract button text for accessibility announcements
|
|
100
135
|
const buttonText = React.useMemo(() => {
|
|
@@ -121,16 +156,20 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
|
|
|
121
156
|
|
|
122
157
|
return (
|
|
123
158
|
<Comp
|
|
124
|
-
// The `data-disabled` attribute enables correct styles when doing `<Button asChild disabled>`
|
|
125
|
-
data-disabled={disabled || undefined}
|
|
126
159
|
data-accent-color={color}
|
|
127
160
|
data-radius={radius}
|
|
128
161
|
data-flush={flush ? 'true' : undefined}
|
|
162
|
+
data-icon-start={iconStart || undefined}
|
|
163
|
+
data-icon-end={iconEnd || undefined}
|
|
129
164
|
{...baseButtonProps}
|
|
130
165
|
{...accessibilityProps}
|
|
166
|
+
// After the spread: `data-disabled` styles `<Button asChild disabled>`, and a wrapping
|
|
167
|
+
// Radix Toggle (asChild) passes `data-disabled={undefined}` that must not erase it.
|
|
168
|
+
data-disabled={disabled || undefined}
|
|
169
|
+
onClick={handleClick}
|
|
131
170
|
ref={forwardedRef}
|
|
132
171
|
className={classNames('rt-reset', 'rt-BaseButton', className)}
|
|
133
|
-
{...(shouldPassDisabled && { disabled })}
|
|
172
|
+
{...(shouldPassDisabled && { disabled: nativeDisabled })}
|
|
134
173
|
{...(isNativeButtonElement && !hasExplicitTypeAttribute ? { type: 'button' } : {})}
|
|
135
174
|
>
|
|
136
175
|
{props.loading ? (
|
|
@@ -155,7 +194,7 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
|
|
|
155
194
|
{/* Centered spinner overlay during loading state */}
|
|
156
195
|
<Flex asChild align="center" justify="center" position="absolute" inset="0">
|
|
157
196
|
<span>
|
|
158
|
-
<Spinner
|
|
197
|
+
<Spinner aria-hidden="true" />
|
|
159
198
|
</span>
|
|
160
199
|
</Flex>
|
|
161
200
|
</>
|
|
@@ -61,22 +61,32 @@
|
|
|
61
61
|
* *
|
|
62
62
|
***************************************************************************************************/
|
|
63
63
|
|
|
64
|
+
/*
|
|
65
|
+
* The box is v2's mark ladder (16/20/24/26): a mark occupies one line of the label beside it.
|
|
66
|
+
* The glyph keeps v1's proportion of the box. The corner keeps v1's ramp off --radius-1,
|
|
67
|
+
* clamped below a circle.
|
|
68
|
+
*/
|
|
64
69
|
@breakpoints {
|
|
65
70
|
.rt-BaseCheckboxRoot {
|
|
66
71
|
&:where(.rt-r-size-1) {
|
|
67
|
-
--checkbox-size:
|
|
68
|
-
--checkbox-indicator-size: var(--
|
|
69
|
-
--checkbox-border-radius: min(calc(var(--radius-1) * var(--spacing-multiplier-
|
|
72
|
+
--checkbox-size: var(--mark-1, calc(16px * var(--scale)));
|
|
73
|
+
--checkbox-indicator-size: calc(10px * var(--scale));
|
|
74
|
+
--checkbox-border-radius: min(calc(var(--radius-1) * var(--spacing-multiplier-medium)), var(--checkbox-radius-max));
|
|
70
75
|
}
|
|
71
76
|
&:where(.rt-r-size-2) {
|
|
72
|
-
--checkbox-size: var(--
|
|
73
|
-
--checkbox-indicator-size: var(--
|
|
77
|
+
--checkbox-size: var(--mark-2, calc(20px * var(--scale)));
|
|
78
|
+
--checkbox-indicator-size: calc(12px * var(--scale));
|
|
74
79
|
--checkbox-border-radius: min(calc(var(--radius-1) * var(--spacing-multiplier-medium)), var(--checkbox-radius-max));
|
|
75
80
|
}
|
|
76
81
|
&:where(.rt-r-size-3) {
|
|
77
|
-
--checkbox-size:
|
|
78
|
-
--checkbox-indicator-size: var(--
|
|
79
|
-
--checkbox-border-radius: min(
|
|
82
|
+
--checkbox-size: var(--mark-3, calc(24px * var(--scale)));
|
|
83
|
+
--checkbox-indicator-size: calc(14px * var(--scale));
|
|
84
|
+
--checkbox-border-radius: min(var(--radius-1), var(--checkbox-radius-max));
|
|
85
|
+
}
|
|
86
|
+
&:where(.rt-r-size-4) {
|
|
87
|
+
--checkbox-size: var(--mark-4, calc(26px * var(--scale)));
|
|
88
|
+
--checkbox-indicator-size: calc(16px * var(--scale));
|
|
89
|
+
--checkbox-border-radius: min(var(--radius-1), var(--checkbox-radius-max));
|
|
80
90
|
}
|
|
81
91
|
}
|
|
82
92
|
}
|
|
@@ -246,3 +256,76 @@
|
|
|
246
256
|
}
|
|
247
257
|
}
|
|
248
258
|
}
|
|
259
|
+
|
|
260
|
+
/***************************************************************************************************
|
|
261
|
+
* *
|
|
262
|
+
* INTERACTION *
|
|
263
|
+
* *
|
|
264
|
+
* Hover is one step up the variant's own ramp, press two. Disabled marks take neither. *
|
|
265
|
+
* *
|
|
266
|
+
***************************************************************************************************/
|
|
267
|
+
|
|
268
|
+
.rt-BaseCheckboxRoot {
|
|
269
|
+
--checkbox-unchecked-hover: var(--accent-a2);
|
|
270
|
+
--checkbox-unchecked-active: var(--accent-a3);
|
|
271
|
+
--checkbox-checked-hover: var(--accent-4);
|
|
272
|
+
--checkbox-checked-active: var(--accent-5);
|
|
273
|
+
|
|
274
|
+
&:where(.rt-variant-solid) {
|
|
275
|
+
--checkbox-checked-hover: var(--accent-solid-hover);
|
|
276
|
+
--checkbox-checked-active: var(--accent-solid-active);
|
|
277
|
+
}
|
|
278
|
+
&:where(.rt-variant-raised) {
|
|
279
|
+
--checkbox-unchecked-hover: var(--color-surface-solid);
|
|
280
|
+
--checkbox-unchecked-active: var(--accent-3);
|
|
281
|
+
}
|
|
282
|
+
&:where(.rt-variant-soft) {
|
|
283
|
+
--checkbox-unchecked-hover: var(--accent-4);
|
|
284
|
+
--checkbox-unchecked-active: var(--accent-5);
|
|
285
|
+
}
|
|
286
|
+
&:where(.rt-variant-outline) {
|
|
287
|
+
--checkbox-checked-hover: var(--accent-3);
|
|
288
|
+
--checkbox-checked-active: var(--accent-4);
|
|
289
|
+
}
|
|
290
|
+
&:where(.rt-variant-surface) {
|
|
291
|
+
--checkbox-unchecked-hover: var(--accent-3);
|
|
292
|
+
--checkbox-unchecked-active: var(--accent-4);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
@media (hover: hover) {
|
|
296
|
+
&:where(:hover:not(:disabled, [data-disabled]))::before {
|
|
297
|
+
background-color: var(--checkbox-unchecked-hover);
|
|
298
|
+
}
|
|
299
|
+
&:where(:hover:not(:disabled, [data-disabled])):where([data-state='checked'], [data-state='indeterminate'])::before {
|
|
300
|
+
background-color: var(--checkbox-checked-hover);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
&:where(:active:not(:disabled, [data-disabled]))::before {
|
|
304
|
+
background-color: var(--checkbox-unchecked-active);
|
|
305
|
+
}
|
|
306
|
+
&:where(:active:not(:disabled, [data-disabled])):where([data-state='checked'], [data-state='indeterminate'])::before {
|
|
307
|
+
background-color: var(--checkbox-checked-active);
|
|
308
|
+
}
|
|
309
|
+
&:where(.rt-variant-solid:active:not(:disabled, [data-disabled])):where([data-state='checked'], [data-state='indeterminate'])::before {
|
|
310
|
+
box-shadow: inset 0 0 0 1px var(--checkbox-checked-active);
|
|
311
|
+
}
|
|
312
|
+
@media (hover: hover) {
|
|
313
|
+
&:where(.rt-variant-solid:hover:not(:disabled, [data-disabled])):where([data-state='checked'], [data-state='indeterminate'])::before {
|
|
314
|
+
box-shadow: inset 0 0 0 1px var(--checkbox-checked-hover);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/***************************************************************************************************
|
|
320
|
+
* *
|
|
321
|
+
* FOCUS AND DISABLED *
|
|
322
|
+
* *
|
|
323
|
+
***************************************************************************************************/
|
|
324
|
+
|
|
325
|
+
/* The focus ring lives on Checkbox and CheckboxGroup: CheckboxCards rings its card instead. */
|
|
326
|
+
.rt-BaseCheckboxRoot {
|
|
327
|
+
/* Disabled is a colour remap (per variant above), never opacity; the cursor stays default. */
|
|
328
|
+
&:where(:disabled, [data-disabled]) {
|
|
329
|
+
cursor: default;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
@@ -2,7 +2,7 @@ import { colorPropDef } from '../../props/color.prop.js';
|
|
|
2
2
|
|
|
3
3
|
import type { PropDef } from '../../props/prop-def.js';
|
|
4
4
|
|
|
5
|
-
const sizes = ['1', '2', '3'] as const;
|
|
5
|
+
const sizes = ['1', '2', '3', '4'] as const;
|
|
6
6
|
const variants = ['raised', 'solid', 'soft', 'outline', 'surface'] as const;
|
|
7
7
|
|
|
8
8
|
const baseCheckboxPropDefs = {
|