@womp/kookie-ui 0.5.0 → 0.6.2
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 +306 -508
- package/dist/cjs/components/_internal/base-menu.utils.d.ts +48 -0
- package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -0
- package/dist/cjs/components/_internal/base-menu.utils.js +2 -0
- package/dist/cjs/components/_internal/base-menu.utils.js.map +7 -0
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +1 -1
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +4 -4
- package/dist/cjs/components/_internal/menu-context.d.ts +7 -3
- package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
- package/dist/cjs/components/_internal/menu-context.js +1 -1
- package/dist/cjs/components/_internal/menu-context.js.map +4 -4
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +2 -2
- package/dist/cjs/components/_internal/shell-inspector.js +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js.map +2 -2
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +2 -2
- package/dist/cjs/components/accordion.js +1 -1
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +2 -2
- package/dist/cjs/components/badge.js +1 -1
- package/dist/cjs/components/badge.js.map +2 -2
- package/dist/cjs/components/blockquote.js +1 -1
- package/dist/cjs/components/button.js +1 -1
- package/dist/cjs/components/button.js.map +2 -2
- package/dist/cjs/components/callout.js +1 -1
- package/dist/cjs/components/callout.js.map +2 -2
- package/dist/cjs/components/card.js +1 -1
- package/dist/cjs/components/card.js.map +2 -2
- package/dist/cjs/components/chatbar.d.ts +46 -44
- 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 +3 -3
- 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.js +1 -1
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/combobox.d.ts +28 -15
- 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/combobox.props.d.ts +48 -0
- package/dist/cjs/components/combobox.props.d.ts.map +1 -1
- package/dist/cjs/components/combobox.props.js +1 -1
- package/dist/cjs/components/combobox.props.js.map +4 -4
- package/dist/cjs/components/context-menu.d.ts +18 -5
- 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/context-menu.props.d.ts +1 -1
- package/dist/cjs/components/context-menu.props.d.ts.map +1 -1
- package/dist/cjs/components/context-menu.props.js +1 -1
- package/dist/cjs/components/context-menu.props.js.map +3 -3
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +2 -2
- package/dist/cjs/components/dropdown-menu.d.ts +11 -18
- 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/heading.js +1 -1
- package/dist/cjs/components/hover-card.js +1 -1
- package/dist/cjs/components/hover-card.js.map +2 -2
- package/dist/cjs/components/icon-button.js +1 -1
- package/dist/cjs/components/icon-button.js.map +2 -2
- package/dist/cjs/components/index.js +5 -5
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/link.js +1 -1
- package/dist/cjs/components/popover.js +1 -1
- package/dist/cjs/components/popover.js.map +2 -2
- package/dist/cjs/components/radio-cards.js +1 -1
- package/dist/cjs/components/radio-cards.js.map +2 -2
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +2 -2
- package/dist/cjs/components/schemas/base-button.schema.d.ts +111 -256
- package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/button.schema.d.ts +136 -557
- package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/icon-button.schema.d.ts +123 -240
- package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/index.js +1 -1
- package/dist/cjs/components/schemas/index.js.map +2 -2
- package/dist/cjs/components/schemas/shell.schema.d.ts +592 -851
- package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/shell.schema.js +1 -1
- package/dist/cjs/components/schemas/shell.schema.js.map +2 -2
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts +138 -1026
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +124 -465
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/scroll-area.js +1 -1
- package/dist/cjs/components/segmented-control.js +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +2 -2
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +2 -2
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +3 -3
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/slider.js +1 -1
- package/dist/cjs/components/slot.d.ts +6 -2
- package/dist/cjs/components/slot.d.ts.map +1 -1
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/tab-nav.js +1 -1
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text.js +1 -1
- package/dist/cjs/components/theme-panel.js +3 -3
- package/dist/cjs/components/theme-panel.js.map +2 -2
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +2 -2
- package/dist/cjs/components/theme.props.d.ts +1 -1
- package/dist/cjs/components/theme.props.js +1 -1
- package/dist/cjs/components/theme.props.js.map +2 -2
- package/dist/cjs/components/toggle-button.js +1 -1
- package/dist/cjs/components/toggle-button.js.map +2 -2
- package/dist/cjs/components/toggle-icon-button.js +1 -1
- package/dist/cjs/components/toggle-icon-button.js.map +2 -2
- package/dist/cjs/components/tooltip.js +1 -1
- package/dist/cjs/components/tooltip.js.map +2 -2
- package/dist/cjs/components/user-card.js +1 -1
- package/dist/cjs/components/user-card.js.map +2 -2
- package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
- package/dist/cjs/components/virtual-menu.js +1 -1
- package/dist/cjs/components/virtual-menu.js.map +4 -4
- package/dist/cjs/helpers/extract-props.js +1 -1
- package/dist/cjs/helpers/extract-props.js.map +2 -2
- package/dist/cjs/helpers/get-margin-styles.js +1 -1
- package/dist/cjs/helpers/get-margin-styles.js.map +2 -2
- package/dist/cjs/hooks/use-breakpoint.d.ts +4 -1
- package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -1
- package/dist/cjs/hooks/use-breakpoint.js +1 -1
- package/dist/cjs/hooks/use-breakpoint.js.map +3 -3
- package/dist/cjs/index.js +5 -5
- 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-P7HYVJSU.js → chunk-2TIADHPD.js} +2 -2
- package/dist/esm/chunk-37OGSEQR.js +2 -0
- package/dist/esm/chunk-37OGSEQR.js.map +7 -0
- package/dist/esm/{chunk-RMKXWYOV.js → chunk-3OBXZUFJ.js} +2 -2
- package/dist/esm/{chunk-S2HA3W3V.js → chunk-3R7XMRV5.js} +2 -2
- package/dist/esm/chunk-4SMJ7D4S.js +2 -0
- package/dist/esm/chunk-4SMJ7D4S.js.map +7 -0
- package/dist/esm/{chunk-S56YSRHP.js → chunk-56TS6OKQ.js} +2 -2
- package/dist/esm/{chunk-2FYJTSOP.js → chunk-5BYHEYO6.js} +2 -2
- package/dist/esm/{chunk-B24BDVG2.js → chunk-5MNBQROW.js} +2 -2
- package/dist/esm/{chunk-W7N7V5YD.js → chunk-7ESHXHHO.js} +2 -2
- package/dist/esm/{chunk-CRWYCLTE.js → chunk-ABSKRHVM.js} +2 -2
- package/dist/esm/chunk-ADBLURLJ.js +2 -0
- package/dist/esm/chunk-ADBLURLJ.js.map +7 -0
- package/dist/esm/{chunk-3MWWP4MW.js → chunk-BBJUB52V.js} +2 -2
- package/dist/esm/{chunk-PTLFMWCN.js → chunk-CQNPBTM5.js} +2 -2
- package/dist/esm/{chunk-GJSGKE7B.js → chunk-CTA5ODAO.js} +2 -2
- package/dist/esm/{chunk-GWXVETMF.js → chunk-DCAZPMOB.js} +2 -2
- package/dist/esm/{chunk-PLWXTEVE.js → chunk-DMJJM5IS.js} +2 -2
- package/dist/esm/{chunk-A2RZGGMY.js → chunk-DQAUX5ZL.js} +2 -2
- package/dist/esm/{chunk-6XGZPIUT.js → chunk-DX5JJYMZ.js} +2 -2
- package/dist/esm/{chunk-6XGZPIUT.js.map → chunk-DX5JJYMZ.js.map} +2 -2
- package/dist/esm/{chunk-YUP6EICB.js → chunk-DXL6V2A5.js} +2 -2
- package/dist/esm/{chunk-XMRIRFM7.js → chunk-FG7XM7KJ.js} +2 -2
- package/dist/esm/{chunk-IKSN4RNB.js → chunk-FIB3XATL.js} +3 -3
- package/dist/esm/chunk-FMBECDL4.js +2 -0
- package/dist/esm/{chunk-4XJY6FIK.js.map → chunk-FMBECDL4.js.map} +3 -3
- package/dist/esm/{chunk-374ZYJUP.js → chunk-HBR42MIX.js} +2 -2
- package/dist/esm/{chunk-2UPAYDKR.js → chunk-HIKVMKYQ.js} +2 -2
- package/dist/esm/{chunk-VX6ARMWP.js → chunk-HSAG7C53.js} +2 -2
- package/dist/esm/{chunk-OSRJRBKP.js → chunk-HW324FK3.js} +2 -2
- package/dist/esm/{chunk-DNHUQLXO.js → chunk-JBO5YOUM.js} +2 -2
- package/dist/esm/{chunk-HF5WY5YE.js → chunk-JGLAE5G7.js} +2 -2
- package/dist/esm/{chunk-4YFJWXL2.js → chunk-JJKQ7CGI.js} +2 -2
- package/dist/esm/chunk-JSW6J6RS.js +2 -0
- package/dist/esm/chunk-JSW6J6RS.js.map +7 -0
- package/dist/esm/chunk-KRDP5SQ7.js +2 -0
- package/dist/esm/chunk-KRDP5SQ7.js.map +7 -0
- package/dist/esm/{chunk-CWRNW44F.js → chunk-L6PVH3RM.js} +2 -2
- package/dist/esm/{chunk-MK2R6DAU.js → chunk-LAOMR7SE.js} +2 -2
- package/dist/esm/{chunk-FHOCUZDR.js → chunk-NIQT45PJ.js} +2 -2
- package/dist/esm/chunk-NKEJTTIL.js +2 -0
- package/dist/esm/chunk-NKEJTTIL.js.map +7 -0
- package/dist/esm/chunk-NVDXXGVW.js +2 -0
- package/dist/esm/chunk-NVDXXGVW.js.map +7 -0
- package/dist/esm/chunk-OS3FCYZY.js +2 -0
- package/dist/esm/{chunk-7QDTSBJF.js → chunk-OYF6YXH7.js} +2 -2
- package/dist/esm/{chunk-WFMYNZXZ.js → chunk-P5OSU4NX.js} +2 -2
- package/dist/esm/{chunk-QEOAXJLN.js → chunk-PTS6QYQW.js} +2 -2
- package/dist/esm/{chunk-CVWCKOHO.js → chunk-RLPKKCBL.js} +2 -2
- package/dist/esm/{chunk-LKAK5GXF.js → chunk-SPIU5JYC.js} +2 -2
- package/dist/esm/chunk-SZTZ2XLI.js +2 -0
- package/dist/esm/chunk-SZTZ2XLI.js.map +7 -0
- package/dist/esm/chunk-T2FZN7G3.js +2 -0
- package/dist/esm/chunk-T2FZN7G3.js.map +7 -0
- package/dist/esm/{chunk-4AQTUBVP.js → chunk-T4UHUQFJ.js} +2 -2
- package/dist/esm/{chunk-K6QZMNCD.js → chunk-TS623UPD.js} +2 -2
- package/dist/esm/{chunk-YV2KYHGR.js → chunk-UBOOUDS4.js} +2 -2
- package/dist/esm/{chunk-D6B7IMZU.js → chunk-UFI53QUC.js} +2 -2
- package/dist/esm/{chunk-AU3D6F42.js → chunk-UIRSGVJG.js} +2 -2
- package/dist/esm/{chunk-FXUUI6Z2.js → chunk-UUUZXUIP.js} +2 -2
- package/dist/esm/{chunk-25WZA7ZU.js → chunk-VA4CTVQL.js} +2 -2
- package/dist/esm/{chunk-TOLLPRMM.js → chunk-VNPNEJI6.js} +2 -2
- package/dist/esm/{chunk-6IGTK4JE.js → chunk-YMUGKYGW.js} +2 -2
- package/dist/esm/chunk-ZWYYPFZW.js +2 -0
- package/dist/esm/chunk-ZWYYPFZW.js.map +7 -0
- package/dist/esm/{chunk-M24UXMOQ.js → chunk-ZXZOH63L.js} +2 -2
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-button.props.js +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.utils.d.ts +48 -0
- package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -0
- package/dist/esm/components/_internal/base-menu.utils.js +2 -0
- package/dist/esm/components/_internal/base-menu.utils.js.map +7 -0
- package/dist/esm/components/_internal/base-radio.props.js +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
- package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
- package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
- package/dist/esm/components/_internal/dropdown-menu-drill-down.js +1 -1
- package/dist/esm/components/_internal/menu-context.d.ts +7 -3
- package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
- package/dist/esm/components/_internal/menu-context.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-handles.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-prop-helpers.js +1 -1
- package/dist/esm/components/_internal/shell-resize.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/accessible-icon.js +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/accordion.props.js +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.props.js +1 -1
- package/dist/esm/components/aspect-ratio.js +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.props.js +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.props.js +1 -1
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/blockquote.props.js +1 -1
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/box.props.js +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.props.js +1 -1
- package/dist/esm/components/callout.js +1 -1
- package/dist/esm/components/callout.props.js +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.props.js +1 -1
- package/dist/esm/components/chatbar.d.ts +46 -44
- 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-cards.props.js +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.primitive.js +1 -1
- package/dist/esm/components/checkbox-group.props.js +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.props.js +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.props.js +1 -1
- package/dist/esm/components/combobox.d.ts +28 -15
- package/dist/esm/components/combobox.d.ts.map +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/combobox.props.d.ts +48 -0
- package/dist/esm/components/combobox.props.d.ts.map +1 -1
- package/dist/esm/components/combobox.props.js +1 -1
- package/dist/esm/components/container.js +1 -1
- package/dist/esm/components/container.props.js +1 -1
- package/dist/esm/components/context-menu.d.ts +18 -5
- package/dist/esm/components/context-menu.d.ts.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.props.d.ts +1 -1
- package/dist/esm/components/context-menu.props.d.ts.map +1 -1
- package/dist/esm/components/context-menu.props.js +1 -1
- package/dist/esm/components/data-list.js +1 -1
- package/dist/esm/components/data-list.props.js +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.props.js +1 -1
- package/dist/esm/components/dropdown-menu.d.ts +11 -18
- package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.props.js +1 -1
- package/dist/esm/components/em.js +1 -1
- package/dist/esm/components/em.props.js +1 -1
- package/dist/esm/components/flex.js +1 -1
- package/dist/esm/components/flex.props.js +1 -1
- package/dist/esm/components/grid.js +1 -1
- package/dist/esm/components/grid.props.js +1 -1
- package/dist/esm/components/heading.js +1 -1
- package/dist/esm/components/heading.props.js +1 -1
- package/dist/esm/components/hover-card.js +1 -1
- package/dist/esm/components/hover-card.props.js +1 -1
- package/dist/esm/components/icon-button.js +1 -1
- package/dist/esm/components/icon-button.props.js +1 -1
- package/dist/esm/components/icons.js +1 -1
- package/dist/esm/components/image.js +1 -1
- package/dist/esm/components/image.props.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/inset.js +1 -1
- package/dist/esm/components/inset.props.js +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/kbd.props.js +1 -1
- package/dist/esm/components/link.js +1 -1
- package/dist/esm/components/link.props.js +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/navbar.props.js +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/popover.props.js +1 -1
- package/dist/esm/components/portal.js +1 -1
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/progress.props.js +1 -1
- package/dist/esm/components/quote.js +1 -1
- package/dist/esm/components/quote.props.js +1 -1
- package/dist/esm/components/radio-cards.js +1 -1
- package/dist/esm/components/radio-cards.props.js +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.props.js +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.props.js +1 -1
- package/dist/esm/components/reset.js +1 -1
- package/dist/esm/components/schemas/base-button.schema.d.ts +111 -256
- package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/base-button.schema.js +1 -1
- package/dist/esm/components/schemas/button.schema.d.ts +136 -557
- package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/button.schema.js +1 -1
- package/dist/esm/components/schemas/icon-button.schema.d.ts +123 -240
- package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/icon-button.schema.js +1 -1
- package/dist/esm/components/schemas/index.js +1 -1
- package/dist/esm/components/schemas/shell.schema.d.ts +592 -851
- package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/shell.schema.js +1 -1
- package/dist/esm/components/schemas/toggle-button.schema.d.ts +138 -1026
- package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +124 -465
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/scroll-area.props.js +1 -1
- package/dist/esm/components/section.js +1 -1
- package/dist/esm/components/section.props.js +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/segmented-control.props.js +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.props.js +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/separator.props.js +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.context.js +1 -1
- package/dist/esm/components/shell.hooks.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/shell.types.js +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/sidebar.props.js +1 -1
- package/dist/esm/components/skeleton.js +1 -1
- package/dist/esm/components/skeleton.props.js +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.props.js +1 -1
- package/dist/esm/components/slot.d.ts +6 -2
- package/dist/esm/components/slot.d.ts.map +1 -1
- package/dist/esm/components/slot.js +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/spinner.props.js +1 -1
- package/dist/esm/components/strong.js +1 -1
- package/dist/esm/components/strong.props.js +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.props.js +1 -1
- package/dist/esm/components/tab-nav.js +1 -1
- package/dist/esm/components/tab-nav.props.js +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/table.props.js +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.props.js +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-area.props.js +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/text-field.props.js +1 -1
- package/dist/esm/components/text.js +1 -1
- package/dist/esm/components/text.props.js +1 -1
- package/dist/esm/components/theme-panel.js +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.props.d.ts +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.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/tooltip.props.js +1 -1
- package/dist/esm/components/user-card.js +1 -1
- package/dist/esm/components/user-card.props.js +1 -1
- package/dist/esm/components/virtual-menu.d.ts.map +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/components/visually-hidden.js +1 -1
- package/dist/esm/helpers/compile-prop-defs.js +1 -1
- package/dist/esm/helpers/extract-margin-props.js +1 -1
- package/dist/esm/helpers/extract-props.js +1 -1
- package/dist/esm/helpers/font-config.js +1 -1
- package/dist/esm/helpers/get-margin-styles.js +1 -1
- package/dist/esm/helpers/get-matching-gray-color.js +1 -1
- package/dist/esm/helpers/get-responsive-styles.js +1 -1
- package/dist/esm/helpers/get-subtree.js +1 -1
- package/dist/esm/helpers/has-own-property.js +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/inert.js +1 -1
- package/dist/esm/helpers/is-responsive-object.js +1 -1
- package/dist/esm/helpers/map-prop-values.js +1 -1
- package/dist/esm/helpers/merge-styles.js +1 -1
- package/dist/esm/helpers/normalize-to-px.js +1 -1
- package/dist/esm/helpers/require-react-element.js +1 -1
- package/dist/esm/helpers/use-deprecation-warning.js +1 -1
- package/dist/esm/hooks/index.js +1 -1
- package/dist/esm/hooks/use-body-pointer-events-cleanup.js +1 -1
- package/dist/esm/hooks/use-breakpoint.d.ts +4 -1
- package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -1
- package/dist/esm/hooks/use-breakpoint.js +1 -1
- package/dist/esm/hooks/use-live-announcer.js +1 -1
- package/dist/esm/hooks/use-prop-synced-state.js +1 -1
- package/dist/esm/hooks/use-toggle-state.js +1 -1
- package/dist/esm/hooks/use-tooltip-wrapper.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/as-child.prop.js +1 -1
- package/dist/esm/props/color.prop.js +1 -1
- package/dist/esm/props/font-family.prop.js +1 -1
- package/dist/esm/props/gap.props.js +1 -1
- package/dist/esm/props/height.props.js +1 -1
- package/dist/esm/props/high-contrast.prop.js +1 -1
- package/dist/esm/props/index.js +1 -1
- package/dist/esm/props/layout.props.js +1 -1
- package/dist/esm/props/leading-trim.prop.js +1 -1
- package/dist/esm/props/margin.props.js +1 -1
- package/dist/esm/props/padding.props.js +1 -1
- package/dist/esm/props/prop-def.js +1 -1
- package/dist/esm/props/radius.prop.js +1 -1
- package/dist/esm/props/shadow.props.js +1 -1
- package/dist/esm/props/text-align.prop.js +1 -1
- package/dist/esm/props/text-wrap.prop.js +1 -1
- package/dist/esm/props/truncate.prop.js +1 -1
- package/dist/esm/props/weight.prop.js +1 -1
- package/dist/esm/props/width.props.js +1 -1
- package/fonts.css +2 -0
- package/package.json +36 -36
- package/schemas/base-button.json +66 -60
- package/schemas/button.json +80 -74
- package/schemas/icon-button.json +78 -72
- package/schemas/index.json +390 -360
- package/schemas/toggle-button.json +84 -78
- package/schemas/toggle-icon-button.json +82 -76
- package/src/components/_internal/base-menu.css +65 -140
- package/src/components/_internal/base-menu.utils.tsx +144 -0
- package/src/components/_internal/dropdown-menu-drill-down.tsx +281 -183
- package/src/components/_internal/menu-context.tsx +24 -15
- package/src/components/chatbar.css +94 -26
- package/src/components/chatbar.tsx +739 -735
- package/src/components/combobox.css +62 -115
- package/src/components/combobox.props.tsx +14 -0
- package/src/components/combobox.tsx +440 -212
- package/src/components/context-menu.props.tsx +4 -1
- package/src/components/context-menu.tsx +108 -62
- package/src/components/dropdown-menu.css +41 -121
- package/src/components/dropdown-menu.tsx +430 -275
- package/src/components/schemas/shell.schema.ts +11 -18
- package/src/components/scroll-area.css +2 -3
- package/src/components/theme.props.tsx +1 -1
- package/src/components/virtual-menu.tsx +12 -8
- package/src/hooks/use-breakpoint.ts +19 -3
- package/src/styles/fonts.css +6 -1
- package/src/styles/tokens/font-family.css +13 -5
- package/styles.css +307 -509
- package/tokens/base.css +1 -1
- package/tokens.css +1 -1
- package/dist/esm/chunk-3XT5P2HO.js +0 -2
- package/dist/esm/chunk-4XJY6FIK.js +0 -2
- package/dist/esm/chunk-4Z33XHOK.js +0 -2
- package/dist/esm/chunk-4Z33XHOK.js.map +0 -7
- package/dist/esm/chunk-E2Z5IA2P.js +0 -2
- package/dist/esm/chunk-E2Z5IA2P.js.map +0 -7
- package/dist/esm/chunk-HVWEPVBH.js +0 -2
- package/dist/esm/chunk-HVWEPVBH.js.map +0 -7
- package/dist/esm/chunk-KKBP2CRH.js +0 -2
- package/dist/esm/chunk-KKBP2CRH.js.map +0 -7
- package/dist/esm/chunk-MOR3NSXQ.js +0 -2
- package/dist/esm/chunk-MOR3NSXQ.js.map +0 -7
- package/dist/esm/chunk-QCNUTT4R.js +0 -2
- package/dist/esm/chunk-QCNUTT4R.js.map +0 -7
- package/dist/esm/chunk-UGD7Z3L4.js +0 -2
- package/dist/esm/chunk-UGD7Z3L4.js.map +0 -7
- package/dist/esm/chunk-YEB3H7QN.js +0 -2
- package/dist/esm/chunk-YEB3H7QN.js.map +0 -7
- package/dist/esm/chunk-ZY6SQWHT.js +0 -2
- package/dist/esm/chunk-ZY6SQWHT.js.map +0 -7
- /package/dist/esm/{chunk-P7HYVJSU.js.map → chunk-2TIADHPD.js.map} +0 -0
- /package/dist/esm/{chunk-RMKXWYOV.js.map → chunk-3OBXZUFJ.js.map} +0 -0
- /package/dist/esm/{chunk-S2HA3W3V.js.map → chunk-3R7XMRV5.js.map} +0 -0
- /package/dist/esm/{chunk-S56YSRHP.js.map → chunk-56TS6OKQ.js.map} +0 -0
- /package/dist/esm/{chunk-2FYJTSOP.js.map → chunk-5BYHEYO6.js.map} +0 -0
- /package/dist/esm/{chunk-B24BDVG2.js.map → chunk-5MNBQROW.js.map} +0 -0
- /package/dist/esm/{chunk-W7N7V5YD.js.map → chunk-7ESHXHHO.js.map} +0 -0
- /package/dist/esm/{chunk-CRWYCLTE.js.map → chunk-ABSKRHVM.js.map} +0 -0
- /package/dist/esm/{chunk-3MWWP4MW.js.map → chunk-BBJUB52V.js.map} +0 -0
- /package/dist/esm/{chunk-PTLFMWCN.js.map → chunk-CQNPBTM5.js.map} +0 -0
- /package/dist/esm/{chunk-GJSGKE7B.js.map → chunk-CTA5ODAO.js.map} +0 -0
- /package/dist/esm/{chunk-GWXVETMF.js.map → chunk-DCAZPMOB.js.map} +0 -0
- /package/dist/esm/{chunk-PLWXTEVE.js.map → chunk-DMJJM5IS.js.map} +0 -0
- /package/dist/esm/{chunk-A2RZGGMY.js.map → chunk-DQAUX5ZL.js.map} +0 -0
- /package/dist/esm/{chunk-YUP6EICB.js.map → chunk-DXL6V2A5.js.map} +0 -0
- /package/dist/esm/{chunk-XMRIRFM7.js.map → chunk-FG7XM7KJ.js.map} +0 -0
- /package/dist/esm/{chunk-IKSN4RNB.js.map → chunk-FIB3XATL.js.map} +0 -0
- /package/dist/esm/{chunk-374ZYJUP.js.map → chunk-HBR42MIX.js.map} +0 -0
- /package/dist/esm/{chunk-2UPAYDKR.js.map → chunk-HIKVMKYQ.js.map} +0 -0
- /package/dist/esm/{chunk-VX6ARMWP.js.map → chunk-HSAG7C53.js.map} +0 -0
- /package/dist/esm/{chunk-OSRJRBKP.js.map → chunk-HW324FK3.js.map} +0 -0
- /package/dist/esm/{chunk-DNHUQLXO.js.map → chunk-JBO5YOUM.js.map} +0 -0
- /package/dist/esm/{chunk-HF5WY5YE.js.map → chunk-JGLAE5G7.js.map} +0 -0
- /package/dist/esm/{chunk-4YFJWXL2.js.map → chunk-JJKQ7CGI.js.map} +0 -0
- /package/dist/esm/{chunk-CWRNW44F.js.map → chunk-L6PVH3RM.js.map} +0 -0
- /package/dist/esm/{chunk-MK2R6DAU.js.map → chunk-LAOMR7SE.js.map} +0 -0
- /package/dist/esm/{chunk-FHOCUZDR.js.map → chunk-NIQT45PJ.js.map} +0 -0
- /package/dist/esm/{chunk-3XT5P2HO.js.map → chunk-OS3FCYZY.js.map} +0 -0
- /package/dist/esm/{chunk-7QDTSBJF.js.map → chunk-OYF6YXH7.js.map} +0 -0
- /package/dist/esm/{chunk-WFMYNZXZ.js.map → chunk-P5OSU4NX.js.map} +0 -0
- /package/dist/esm/{chunk-QEOAXJLN.js.map → chunk-PTS6QYQW.js.map} +0 -0
- /package/dist/esm/{chunk-CVWCKOHO.js.map → chunk-RLPKKCBL.js.map} +0 -0
- /package/dist/esm/{chunk-LKAK5GXF.js.map → chunk-SPIU5JYC.js.map} +0 -0
- /package/dist/esm/{chunk-4AQTUBVP.js.map → chunk-T4UHUQFJ.js.map} +0 -0
- /package/dist/esm/{chunk-K6QZMNCD.js.map → chunk-TS623UPD.js.map} +0 -0
- /package/dist/esm/{chunk-YV2KYHGR.js.map → chunk-UBOOUDS4.js.map} +0 -0
- /package/dist/esm/{chunk-D6B7IMZU.js.map → chunk-UFI53QUC.js.map} +0 -0
- /package/dist/esm/{chunk-AU3D6F42.js.map → chunk-UIRSGVJG.js.map} +0 -0
- /package/dist/esm/{chunk-FXUUI6Z2.js.map → chunk-UUUZXUIP.js.map} +0 -0
- /package/dist/esm/{chunk-25WZA7ZU.js.map → chunk-VA4CTVQL.js.map} +0 -0
- /package/dist/esm/{chunk-TOLLPRMM.js.map → chunk-VNPNEJI6.js.map} +0 -0
- /package/dist/esm/{chunk-6IGTK4JE.js.map → chunk-YMUGKYGW.js.map} +0 -0
- /package/dist/esm/{chunk-M24UXMOQ.js.map → chunk-ZXZOH63L.js.map} +0 -0
|
@@ -26,16 +26,9 @@
|
|
|
26
26
|
contain: paint;
|
|
27
27
|
isolation: isolate;
|
|
28
28
|
|
|
29
|
-
/* Optimize backdrop-filter performance during animations */
|
|
30
|
-
&:where([data-state='open']) {
|
|
31
|
-
will-change: transform, opacity;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
29
|
/* Enhanced reduced motion support */
|
|
35
30
|
@media (prefers-reduced-motion: reduce) {
|
|
36
31
|
transition: none;
|
|
37
|
-
will-change: auto;
|
|
38
|
-
backdrop-filter: none; /* Remove blur for motion-sensitive users */
|
|
39
32
|
}
|
|
40
33
|
|
|
41
34
|
/* Component-level overrides (higher specificity) */
|
|
@@ -58,10 +51,6 @@
|
|
|
58
51
|
padding: var(--base-menu-content-padding);
|
|
59
52
|
box-sizing: border-box;
|
|
60
53
|
|
|
61
|
-
:where(.rt-BaseMenuContent:has(.rt-ScrollAreaScrollbar[data-orientation='vertical'])) & {
|
|
62
|
-
padding-inline-end: var(--space-3);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
54
|
/* Remove right padding when virtualized so scrollbar sits at the edge */
|
|
66
55
|
&:where(.rt-virtualized) {
|
|
67
56
|
padding-inline-end: 0;
|
|
@@ -95,7 +84,6 @@
|
|
|
95
84
|
/* Enhanced reduced motion support */
|
|
96
85
|
@media (prefers-reduced-motion: reduce) {
|
|
97
86
|
transition: none;
|
|
98
|
-
backdrop-filter: none; /* Remove any backdrop effects for motion-sensitive users */
|
|
99
87
|
}
|
|
100
88
|
}
|
|
101
89
|
|
|
@@ -138,7 +126,7 @@
|
|
|
138
126
|
padding-inline-start: var(--base-menu-item-padding-left);
|
|
139
127
|
padding-inline-end: var(--base-menu-item-padding-right);
|
|
140
128
|
box-sizing: border-box;
|
|
141
|
-
color: var(--gray-
|
|
129
|
+
color: var(--gray-a11);
|
|
142
130
|
user-select: none;
|
|
143
131
|
cursor: default;
|
|
144
132
|
|
|
@@ -147,16 +135,21 @@
|
|
|
147
135
|
}
|
|
148
136
|
}
|
|
149
137
|
|
|
150
|
-
|
|
151
|
-
|
|
138
|
+
/* Chevrons point the other way in right-to-left menus */
|
|
139
|
+
.rt-BaseMenuContent:where([dir='rtl']) :where(.rt-BaseMenuSubTriggerIcon) {
|
|
140
|
+
transform: scaleX(-1);
|
|
141
|
+
}
|
|
152
142
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
143
|
+
/*
|
|
144
|
+
* Items leave room for the check/radio indicator only when the menu has one.
|
|
145
|
+
* The size blocks below set both paddings; this picks one. Browsers without
|
|
146
|
+
* :has() keep the indicator padding, which never overlaps.
|
|
147
|
+
*/
|
|
148
|
+
.rt-BaseMenuContent {
|
|
149
|
+
--base-menu-item-padding-left: var(--base-menu-item-padding-left-indicator);
|
|
157
150
|
|
|
158
|
-
|
|
159
|
-
|
|
151
|
+
&:where(:not(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem))) {
|
|
152
|
+
--base-menu-item-padding-left: var(--base-menu-item-padding-left-plain);
|
|
160
153
|
}
|
|
161
154
|
}
|
|
162
155
|
|
|
@@ -170,7 +163,8 @@
|
|
|
170
163
|
.rt-BaseMenuContent {
|
|
171
164
|
&:where(.rt-r-size-1) {
|
|
172
165
|
--base-menu-content-padding: var(--space-2);
|
|
173
|
-
--base-menu-item-padding-left:
|
|
166
|
+
--base-menu-item-padding-left-plain: var(--space-2);
|
|
167
|
+
--base-menu-item-padding-left-indicator: calc(var(--space-5) / 1.2);
|
|
174
168
|
--base-menu-item-padding-right: var(--space-2);
|
|
175
169
|
--base-menu-item-padding-y: var(--space-1);
|
|
176
170
|
--base-menu-item-height: var(--space-5);
|
|
@@ -195,7 +189,7 @@
|
|
|
195
189
|
font-size: var(--font-size-1);
|
|
196
190
|
line-height: var(--line-height-1);
|
|
197
191
|
letter-spacing: var(--letter-spacing-1);
|
|
198
|
-
padding-inline-start:
|
|
192
|
+
padding-inline-start: var(--base-menu-item-padding-left);
|
|
199
193
|
}
|
|
200
194
|
|
|
201
195
|
& :where(.rt-BaseMenuItemIndicatorIcon, .rt-BaseMenuSubTriggerIcon) {
|
|
@@ -203,18 +197,12 @@
|
|
|
203
197
|
height: var(--indicator-icon-size-1);
|
|
204
198
|
}
|
|
205
199
|
|
|
206
|
-
/* reset with :not:has so we still support browsers without :has */
|
|
207
|
-
&:where(:not(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem))) {
|
|
208
|
-
--base-menu-item-padding-left: var(--space-2);
|
|
209
|
-
}
|
|
210
|
-
&:where(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem)) {
|
|
211
|
-
--base-menu-item-padding-left: calc(var(--space-5) / 1.2);
|
|
212
|
-
}
|
|
213
200
|
}
|
|
214
201
|
|
|
215
202
|
&:where(.rt-r-size-2) {
|
|
216
203
|
--base-menu-content-padding: var(--space-3);
|
|
217
|
-
--base-menu-item-padding-left: var(--space-3);
|
|
204
|
+
--base-menu-item-padding-left-plain: var(--space-3);
|
|
205
|
+
--base-menu-item-padding-left-indicator: var(--space-5);
|
|
218
206
|
--base-menu-item-padding-right: var(--space-3);
|
|
219
207
|
--base-menu-item-padding-y: var(--space-1);
|
|
220
208
|
--base-menu-item-height: var(--space-6);
|
|
@@ -239,7 +227,7 @@
|
|
|
239
227
|
font-size: var(--font-size-2);
|
|
240
228
|
line-height: var(--line-height-2);
|
|
241
229
|
letter-spacing: var(--letter-spacing-2);
|
|
242
|
-
padding-
|
|
230
|
+
padding-inline-start: var(--base-menu-item-padding-left);
|
|
243
231
|
}
|
|
244
232
|
|
|
245
233
|
& :where(.rt-BaseMenuItemIndicatorIcon, .rt-BaseMenuSubTriggerIcon) {
|
|
@@ -247,18 +235,12 @@
|
|
|
247
235
|
height: var(--indicator-icon-size-2);
|
|
248
236
|
}
|
|
249
237
|
|
|
250
|
-
/* reset with :not:has so we still support browsers without :has */
|
|
251
|
-
&:where(:not(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem))) {
|
|
252
|
-
--base-menu-item-padding-left: var(--space-3);
|
|
253
|
-
}
|
|
254
|
-
&:where(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem)) {
|
|
255
|
-
--base-menu-item-padding-left: var(--space-5);
|
|
256
|
-
}
|
|
257
238
|
}
|
|
258
239
|
|
|
259
240
|
&:where(.rt-r-size-3) {
|
|
260
241
|
--base-menu-content-padding: var(--space-3);
|
|
261
|
-
--base-menu-item-padding-left: var(--space-3);
|
|
242
|
+
--base-menu-item-padding-left-plain: var(--space-3);
|
|
243
|
+
--base-menu-item-padding-left-indicator: var(--space-5);
|
|
262
244
|
--base-menu-item-padding-right: var(--space-3);
|
|
263
245
|
--base-menu-item-padding-y: var(--space-2);
|
|
264
246
|
--base-menu-item-height: var(--space-7);
|
|
@@ -267,37 +249,30 @@
|
|
|
267
249
|
& :where(.rt-BaseMenuItem) {
|
|
268
250
|
gap: var(--component-gap-4);
|
|
269
251
|
font-size: var(--font-size-3);
|
|
270
|
-
line-height: var(--line-height-
|
|
252
|
+
line-height: var(--line-height-3);
|
|
271
253
|
letter-spacing: var(--letter-spacing-3);
|
|
272
254
|
border-radius: var(--radius-2);
|
|
273
255
|
|
|
274
256
|
/* stylelint-disable-next-line selector-max-type */
|
|
275
257
|
& :where(svg) {
|
|
276
|
-
width: var(--content-icon-size-
|
|
277
|
-
height: var(--content-icon-size-
|
|
258
|
+
width: var(--content-icon-size-3);
|
|
259
|
+
height: var(--content-icon-size-3);
|
|
278
260
|
flex-shrink: 0;
|
|
279
261
|
}
|
|
280
262
|
}
|
|
281
263
|
|
|
282
264
|
& :where(.rt-BaseMenuLabel) {
|
|
283
|
-
font-size: var(--font-size-
|
|
284
|
-
line-height: var(--line-height-
|
|
285
|
-
letter-spacing: var(--letter-spacing-
|
|
286
|
-
padding-
|
|
265
|
+
font-size: var(--font-size-3);
|
|
266
|
+
line-height: var(--line-height-3);
|
|
267
|
+
letter-spacing: var(--letter-spacing-3);
|
|
268
|
+
padding-inline-start: var(--base-menu-item-padding-left);
|
|
287
269
|
}
|
|
288
270
|
|
|
289
271
|
& :where(.rt-BaseMenuItemIndicatorIcon, .rt-BaseMenuSubTriggerIcon) {
|
|
290
|
-
width: var(--indicator-icon-size-
|
|
291
|
-
height: var(--indicator-icon-size-
|
|
272
|
+
width: var(--indicator-icon-size-3);
|
|
273
|
+
height: var(--indicator-icon-size-3);
|
|
292
274
|
}
|
|
293
275
|
|
|
294
|
-
/* reset with :not:has so we still support browsers without :has */
|
|
295
|
-
&:where(:not(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem))) {
|
|
296
|
-
--base-menu-item-padding-left: var(--space-3);
|
|
297
|
-
}
|
|
298
|
-
&:where(:has(.rt-BaseMenuCheckboxItem, .rt-BaseMenuRadioItem)) {
|
|
299
|
-
--base-menu-item-padding-left: var(--space-5);
|
|
300
|
-
}
|
|
301
276
|
}
|
|
302
277
|
}
|
|
303
278
|
}
|
|
@@ -319,7 +294,12 @@
|
|
|
319
294
|
|
|
320
295
|
/* Ensure gray text appears muted in non-highlighted state */
|
|
321
296
|
.rt-BaseMenuItem :where(.rt-Text[data-accent-color='gray'], [data-accent-color='gray']:not(.rt-Badge)) {
|
|
322
|
-
color: var(--gray-
|
|
297
|
+
color: var(--gray-a11);
|
|
298
|
+
}
|
|
299
|
+
/* Kbd sets its own color and loads later, so a disabled item's shortcut needs the extra class to dim */
|
|
300
|
+
/* stylelint-disable-next-line selector-max-specificity */
|
|
301
|
+
.rt-BaseMenuItem:where([data-disabled]) .rt-Kbd {
|
|
302
|
+
color: var(--gray-a8);
|
|
323
303
|
}
|
|
324
304
|
.rt-BaseMenuItem:where([data-disabled], [data-highlighted]),
|
|
325
305
|
.rt-BaseMenuSubTrigger:where([data-state='open']) {
|
|
@@ -331,59 +311,14 @@
|
|
|
331
311
|
background-color: var(--gray-a6);
|
|
332
312
|
}
|
|
333
313
|
|
|
334
|
-
/* solid and soft variants - consolidated to reduce duplication */
|
|
335
|
-
|
|
336
|
-
.rt-BaseMenuContent:where(.rt-variant-solid, .rt-variant-soft) {
|
|
337
|
-
& :where(.rt-BaseMenuSubTrigger) {
|
|
338
|
-
transition: var(--transition-menu);
|
|
339
|
-
|
|
340
|
-
/* Enhanced reduced motion support */
|
|
341
|
-
@media (prefers-reduced-motion: reduce) {
|
|
342
|
-
transition: none;
|
|
343
|
-
backdrop-filter: none; /* Remove backdrop effects for motion-sensitive users */
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/* Remove backdrop-filter transitions in translucent mode to prevent flickering */
|
|
347
|
-
:where([data-panel-background='translucent']) & {
|
|
348
|
-
transition:
|
|
349
|
-
background var(--motion-duration-micro) var(--motion-ease-standard),
|
|
350
|
-
color var(--motion-duration-small) var(--motion-ease-standard);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
& :where(.rt-BaseMenuItem) {
|
|
355
|
-
/* Remove backdrop-filter transitions in translucent mode to prevent flickering */
|
|
356
|
-
:where([data-panel-background='translucent']) & {
|
|
357
|
-
transition:
|
|
358
|
-
background var(--motion-duration-micro) var(--motion-ease-standard),
|
|
359
|
-
color var(--motion-duration-small) var(--motion-ease-standard);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
|
|
364
314
|
/* solid variant specific styles */
|
|
365
315
|
.rt-BaseMenuContent:where(.rt-variant-solid) {
|
|
366
316
|
& :where(.rt-BaseMenuSubTrigger[data-state='open']) {
|
|
367
|
-
/* Base state: solid gray for solid panels */
|
|
368
317
|
background-color: var(--gray-3);
|
|
318
|
+
}
|
|
369
319
|
|
|
370
|
-
|
|
371
|
-
:
|
|
372
|
-
background-color: var(--gray-a3);
|
|
373
|
-
/* Remove individual backdrop-filter to prevent layering with container backdrop-filter */
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
/* Component-level overrides (higher specificity) */
|
|
377
|
-
&:where([data-panel-background='solid']) {
|
|
378
|
-
background-color: var(--gray-3);
|
|
379
|
-
backdrop-filter: none;
|
|
380
|
-
--backdrop-filter-components: none;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
&:where([data-panel-background='translucent']) {
|
|
384
|
-
background-color: var(--gray-a3);
|
|
385
|
-
/* No backdrop-filter here to prevent double-blur with container */
|
|
386
|
-
}
|
|
320
|
+
&:where([data-panel-background='translucent']) :where(.rt-BaseMenuSubTrigger[data-state='open']) {
|
|
321
|
+
background-color: var(--gray-a3);
|
|
387
322
|
}
|
|
388
323
|
|
|
389
324
|
& :where(.rt-BaseMenuItem[data-highlighted]) {
|
|
@@ -443,53 +378,43 @@
|
|
|
443
378
|
/* soft variant specific styles */
|
|
444
379
|
.rt-BaseMenuContent:where(.rt-variant-soft) {
|
|
445
380
|
& :where(.rt-BaseMenuSubTrigger[data-state='open']) {
|
|
446
|
-
/* Base state: solid accent for solid panels */
|
|
447
381
|
background-color: var(--accent-3);
|
|
382
|
+
}
|
|
448
383
|
|
|
449
|
-
|
|
450
|
-
:
|
|
451
|
-
background-color: var(--accent-a3);
|
|
452
|
-
/* Remove individual backdrop-filter to prevent layering with container backdrop-filter */
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
/* Component-level overrides (higher specificity) */
|
|
456
|
-
&:where([data-panel-background='solid']) {
|
|
457
|
-
background-color: var(--accent-3);
|
|
458
|
-
backdrop-filter: none;
|
|
459
|
-
--backdrop-filter-components: none;
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
&:where([data-panel-background='translucent']) {
|
|
463
|
-
background-color: var(--accent-a3);
|
|
464
|
-
/* No backdrop-filter here to prevent double-blur with container */
|
|
465
|
-
}
|
|
384
|
+
&:where([data-panel-background='translucent']) :where(.rt-BaseMenuSubTrigger[data-state='open']) {
|
|
385
|
+
background-color: var(--accent-a3);
|
|
466
386
|
}
|
|
467
387
|
|
|
468
388
|
& :where(.rt-BaseMenuItem[data-highlighted]) {
|
|
469
|
-
/* Base state: solid accent for solid panels */
|
|
470
389
|
background-color: var(--accent-4);
|
|
471
390
|
|
|
472
|
-
/*
|
|
473
|
-
:where([data-
|
|
474
|
-
|
|
475
|
-
/* Remove individual backdrop-filter to prevent layering with container backdrop-filter */
|
|
391
|
+
/* In soft variant, improve contrast for gray text while maintaining hierarchy */
|
|
392
|
+
& :where(.rt-Text[data-accent-color='gray'], [data-accent-color='gray']:not(.rt-Badge)) {
|
|
393
|
+
color: var(--gray-11) !important;
|
|
476
394
|
}
|
|
395
|
+
}
|
|
477
396
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
397
|
+
&:where([data-panel-background='translucent']) :where(.rt-BaseMenuItem[data-highlighted]) {
|
|
398
|
+
background-color: var(--accent-a4);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/* The soft fill is faint on its own; keyboard focus also gets a ring */
|
|
402
|
+
& :where(.rt-BaseMenuItem[data-highlighted]:focus-visible) {
|
|
403
|
+
box-shadow: inset 0 0 0 1px var(--accent-a8);
|
|
404
|
+
}
|
|
484
405
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
406
|
+
&:where(.rt-high-contrast) {
|
|
407
|
+
& :where(.rt-BaseMenuItem[data-highlighted]) {
|
|
408
|
+
background-color: var(--accent-5);
|
|
409
|
+
color: var(--accent-12);
|
|
410
|
+
|
|
411
|
+
& :where(.rt-BaseMenuSubTriggerIcon) {
|
|
412
|
+
color: var(--accent-12);
|
|
413
|
+
}
|
|
488
414
|
}
|
|
489
415
|
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
color: var(--gray-11) !important;
|
|
416
|
+
&:where([data-panel-background='translucent']) :where(.rt-BaseMenuItem[data-highlighted]) {
|
|
417
|
+
background-color: var(--accent-a5);
|
|
493
418
|
}
|
|
494
419
|
}
|
|
495
420
|
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
|
|
6
|
+
import { Kbd } from '../kbd.js';
|
|
7
|
+
import { useBreakpoint } from '../../hooks/use-breakpoint.js';
|
|
8
|
+
|
|
9
|
+
import type { Breakpoint, Responsive } from '../../props/prop-def.js';
|
|
10
|
+
|
|
11
|
+
const BREAKPOINTS_DESCENDING: Breakpoint[] = ['xl', 'lg', 'md', 'sm', 'xs', 'initial'];
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Resolves a responsive value for the given breakpoint, falling back through
|
|
15
|
+
* the smaller breakpoints when the current one is not set.
|
|
16
|
+
*/
|
|
17
|
+
function resolveResponsiveValue<T>(
|
|
18
|
+
value: T | Partial<Record<Breakpoint, T>> | undefined,
|
|
19
|
+
currentBreakpoint: Breakpoint,
|
|
20
|
+
defaultValue: T,
|
|
21
|
+
): T {
|
|
22
|
+
if (value === undefined || value === null) return defaultValue;
|
|
23
|
+
if (typeof value !== 'object') return value;
|
|
24
|
+
|
|
25
|
+
const map = value as Partial<Record<Breakpoint, T>>;
|
|
26
|
+
for (let i = BREAKPOINTS_DESCENDING.indexOf(currentBreakpoint); i < BREAKPOINTS_DESCENDING.length; i++) {
|
|
27
|
+
const resolved = map[BREAKPOINTS_DESCENDING[i]];
|
|
28
|
+
if (resolved !== undefined) return resolved;
|
|
29
|
+
}
|
|
30
|
+
return defaultValue;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Resolves a possibly responsive value against the current viewport. Only a
|
|
35
|
+
* responsive object subscribes to breakpoint changes; a plain value costs
|
|
36
|
+
* nothing.
|
|
37
|
+
*/
|
|
38
|
+
function useResolvedResponsiveValue<T>(value: Responsive<T> | undefined, defaultValue: T): T {
|
|
39
|
+
const isResponsive = typeof value === 'object' && value !== null;
|
|
40
|
+
const { breakpoint } = useBreakpoint(isResponsive);
|
|
41
|
+
return resolveResponsiveValue(value as T | Partial<Record<Breakpoint, T>> | undefined, breakpoint, defaultValue);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
type MenuMaterial = 'solid' | 'translucent';
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The menu surface material. The component props win, then the nearest
|
|
48
|
+
* Theme's `material`. Theme keeps `panelBackground` in sync with `material` at
|
|
49
|
+
* the root, but a nested `<Theme material="solid">` only updates `material`,
|
|
50
|
+
* so reading the deprecated `panelBackground` from the theme gave the wrong
|
|
51
|
+
* surface there.
|
|
52
|
+
*/
|
|
53
|
+
function resolveMenuMaterial(
|
|
54
|
+
material: MenuMaterial | undefined,
|
|
55
|
+
panelBackground: MenuMaterial | undefined,
|
|
56
|
+
theme: { material: MenuMaterial; panelBackground: MenuMaterial },
|
|
57
|
+
): MenuMaterial {
|
|
58
|
+
return material ?? panelBackground ?? theme.material ?? theme.panelBackground;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Content padding per menu size, in px at 100% scaling (see base-menu.css). */
|
|
62
|
+
const CONTENT_PADDING: Record<string, number> = { '1': 8, '2': 12, '3': 12 };
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Offset that lines the first item of a menu up with its anchor: the pointer
|
|
66
|
+
* for a context menu, or the sub trigger for a submenu. It cancels the content
|
|
67
|
+
* padding, which scales with the theme.
|
|
68
|
+
*/
|
|
69
|
+
function getMenuAlignOffset(size: string, scaling: string | undefined): number {
|
|
70
|
+
const scale = scaling ? parseFloat(scaling) / 100 : 1;
|
|
71
|
+
const padding = CONTENT_PADDING[size] ?? CONTENT_PADDING['2'];
|
|
72
|
+
return -Math.round(padding * (Number.isFinite(scale) ? scale : 1));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const KEY_SYMBOLS: Record<string, string> = {
|
|
76
|
+
'⌘': 'Meta',
|
|
77
|
+
cmd: 'Meta',
|
|
78
|
+
command: 'Meta',
|
|
79
|
+
meta: 'Meta',
|
|
80
|
+
'⌥': 'Alt',
|
|
81
|
+
option: 'Alt',
|
|
82
|
+
opt: 'Alt',
|
|
83
|
+
alt: 'Alt',
|
|
84
|
+
'⇧': 'Shift',
|
|
85
|
+
shift: 'Shift',
|
|
86
|
+
'⌃': 'Control',
|
|
87
|
+
ctrl: 'Control',
|
|
88
|
+
control: 'Control',
|
|
89
|
+
'⌫': 'Backspace',
|
|
90
|
+
'⌦': 'Delete',
|
|
91
|
+
'⏎': 'Enter',
|
|
92
|
+
'↵': 'Enter',
|
|
93
|
+
'⎋': 'Escape',
|
|
94
|
+
esc: 'Escape',
|
|
95
|
+
'⇥': 'Tab',
|
|
96
|
+
'↑': 'ArrowUp',
|
|
97
|
+
'↓': 'ArrowDown',
|
|
98
|
+
'←': 'ArrowLeft',
|
|
99
|
+
'→': 'ArrowRight',
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
const ariaKeyShortcutsCache = new Map<string, string>();
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Converts a display shortcut such as "⌘ ⇧ P" or "Ctrl+S" into the
|
|
106
|
+
* `aria-keyshortcuts` format ("Meta+Shift+P", "Control+S").
|
|
107
|
+
*/
|
|
108
|
+
function toAriaKeyShortcuts(shortcut: string): string | undefined {
|
|
109
|
+
const cached = ariaKeyShortcutsCache.get(shortcut);
|
|
110
|
+
if (cached !== undefined) return cached || undefined;
|
|
111
|
+
|
|
112
|
+
// Modifier symbols are tokens of their own ("⌘⇧P"); otherwise split on "+" and spaces.
|
|
113
|
+
const tokens = shortcut.match(/[⌘⌥⇧⌃]|[^\s+⌘⌥⇧⌃]+/gu) ?? [];
|
|
114
|
+
const keys = tokens.map((token) => {
|
|
115
|
+
const mapped = KEY_SYMBOLS[token] ?? KEY_SYMBOLS[token.toLowerCase()];
|
|
116
|
+
return mapped ?? (token.length === 1 ? token.toUpperCase() : token);
|
|
117
|
+
});
|
|
118
|
+
const result = keys.join('+');
|
|
119
|
+
ariaKeyShortcutsCache.set(shortcut, result);
|
|
120
|
+
return result || undefined;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* The keyboard shortcut hint at the end of a menu item. It is hidden from
|
|
125
|
+
* assistive technology because the item exposes it through
|
|
126
|
+
* `aria-keyshortcuts` instead of reading it as part of the item name.
|
|
127
|
+
*/
|
|
128
|
+
function MenuShortcut({ shortcut, className }: { shortcut: string; className?: string }) {
|
|
129
|
+
return (
|
|
130
|
+
<div aria-hidden className={classNames('rt-BaseMenuShortcut', className)}>
|
|
131
|
+
<Kbd size="1">{shortcut}</Kbd>
|
|
132
|
+
</div>
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export {
|
|
137
|
+
resolveResponsiveValue,
|
|
138
|
+
useResolvedResponsiveValue,
|
|
139
|
+
resolveMenuMaterial,
|
|
140
|
+
getMenuAlignOffset,
|
|
141
|
+
toAriaKeyShortcuts,
|
|
142
|
+
MenuShortcut,
|
|
143
|
+
};
|
|
144
|
+
export type { MenuMaterial };
|