@womp/kookie-ui 0.19.0 → 0.20.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/codemods/type-0.20.py +73 -0
- package/components.css +1003 -2360
- package/dist/cjs/components/_internal/base-menu.props.d.ts +2 -2
- package/dist/cjs/components/_internal/base-menu.props.js +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js.map +2 -2
- package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
- package/dist/cjs/components/_internal/base-menu.utils.js.map +2 -2
- package/dist/cjs/components/_internal/menu-context.d.ts +5 -2
- 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 +2 -2
- 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/blockquote.js.map +2 -2
- package/dist/cjs/components/blockquote.props.d.ts +2 -2
- package/dist/cjs/components/blockquote.props.js +1 -1
- package/dist/cjs/components/blockquote.props.js.map +2 -2
- package/dist/cjs/components/button.js +1 -1
- package/dist/cjs/components/button.js.map +2 -2
- package/dist/cjs/components/chatbar.js +1 -1
- package/dist/cjs/components/chatbar.js.map +2 -2
- package/dist/cjs/components/checkbox-group.js +1 -1
- package/dist/cjs/components/checkbox-group.js.map +2 -2
- package/dist/cjs/components/code.js +1 -1
- package/dist/cjs/components/code.js.map +2 -2
- package/dist/cjs/components/code.props.d.ts +2 -2
- package/dist/cjs/components/code.props.js +1 -1
- package/dist/cjs/components/code.props.js.map +2 -2
- package/dist/cjs/components/combobox.js +1 -1
- package/dist/cjs/components/combobox.js.map +2 -2
- package/dist/cjs/components/combobox.props.d.ts +1 -1
- package/dist/cjs/components/combobox.props.js +1 -1
- package/dist/cjs/components/combobox.props.js.map +2 -2
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +2 -2
- package/dist/cjs/components/context-menu.props.js +1 -1
- package/dist/cjs/components/context-menu.props.js.map +2 -2
- package/dist/cjs/components/data-list.js +1 -1
- package/dist/cjs/components/data-list.js.map +2 -2
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +2 -2
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +2 -2
- package/dist/cjs/components/dropdown-menu.props.js +1 -1
- package/dist/cjs/components/dropdown-menu.props.js.map +2 -2
- package/dist/cjs/components/heading.js +1 -1
- package/dist/cjs/components/heading.js.map +2 -2
- package/dist/cjs/components/heading.props.d.ts +2 -2
- package/dist/cjs/components/heading.props.js +1 -1
- package/dist/cjs/components/heading.props.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 +3 -3
- package/dist/cjs/components/index.js.map +3 -3
- package/dist/cjs/components/kbd.js +1 -1
- package/dist/cjs/components/kbd.js.map +2 -2
- package/dist/cjs/components/kbd.props.d.ts +1 -1
- package/dist/cjs/components/kbd.props.js +1 -1
- package/dist/cjs/components/kbd.props.js.map +2 -2
- package/dist/cjs/components/link.js +1 -1
- package/dist/cjs/components/link.js.map +2 -2
- package/dist/cjs/components/link.props.d.ts +2 -2
- package/dist/cjs/components/link.props.js +1 -1
- package/dist/cjs/components/link.props.js.map +2 -2
- package/dist/cjs/components/message-scroller.js +1 -1
- package/dist/cjs/components/message-scroller.js.map +2 -2
- package/dist/cjs/components/notice.js +1 -1
- package/dist/cjs/components/notice.js.map +2 -2
- package/dist/cjs/components/radio-group.js +1 -1
- package/dist/cjs/components/radio-group.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/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +3 -3
- package/dist/cjs/components/text.js +1 -1
- package/dist/cjs/components/text.js.map +2 -2
- package/dist/cjs/components/text.props.d.ts +2 -2
- package/dist/cjs/components/text.props.js +1 -1
- package/dist/cjs/components/text.props.js.map +2 -2
- package/dist/cjs/components/theme-panel.js +2 -2
- package/dist/cjs/components/theme-panel.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/toolbar.js +1 -1
- package/dist/cjs/components/toolbar.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/virtual-menu.d.ts +2 -1
- 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 +2 -2
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +2 -2
- package/dist/cjs/props/weight.prop.d.ts +1 -1
- package/dist/cjs/props/weight.prop.d.ts.map +1 -1
- package/dist/cjs/props/weight.prop.js +1 -1
- package/dist/cjs/props/weight.prop.js.map +2 -2
- package/dist/esm/chunk-2WSD2H23.js +2 -0
- package/dist/esm/chunk-2WSD2H23.js.map +7 -0
- package/dist/esm/{chunk-JZSXHYUU.js → chunk-33IRPFDK.js} +2 -2
- package/dist/esm/{chunk-32ATKZAP.js → chunk-3E6ADI2F.js} +2 -2
- package/dist/esm/{chunk-JBC6DT2X.js → chunk-74SNS4VY.js} +2 -2
- package/dist/esm/chunk-CD324U6G.js +2 -0
- package/dist/esm/chunk-CD324U6G.js.map +7 -0
- package/dist/esm/{chunk-DIR22XIX.js → chunk-CNMFVJNC.js} +2 -2
- package/dist/esm/{chunk-UUHTK35B.js → chunk-EUHAZKWY.js} +2 -2
- package/dist/esm/chunk-F7HK2QLM.js +2 -0
- package/dist/esm/{chunk-5AHQJB6H.js.map → chunk-F7HK2QLM.js.map} +2 -2
- package/dist/esm/{chunk-MZR6YBE7.js → chunk-GDACOD53.js} +2 -2
- package/dist/esm/chunk-GTXRD4FZ.js +2 -0
- package/dist/esm/{chunk-UUV5UNYL.js.map → chunk-GTXRD4FZ.js.map} +3 -3
- package/dist/esm/{chunk-BUBV3C6C.js → chunk-HJ6ACBXW.js} +2 -2
- package/dist/esm/{chunk-XTE22CXV.js → chunk-HJZNHNLX.js} +2 -2
- package/dist/esm/chunk-HK7RJPQ2.js +2 -0
- package/dist/esm/chunk-HK7RJPQ2.js.map +7 -0
- package/dist/esm/{chunk-IXNJFV4O.js → chunk-HVXXJZC2.js} +2 -2
- package/dist/esm/{chunk-GYB7PAGB.js → chunk-IND2NZIN.js} +2 -2
- package/dist/esm/{chunk-UZQO4APP.js → chunk-JDMJC76O.js} +2 -2
- package/dist/esm/{chunk-PUQXBW2K.js → chunk-JH55M4I2.js} +2 -2
- package/dist/esm/{chunk-N77QJUTO.js → chunk-JOB6FH3D.js} +2 -2
- package/dist/esm/chunk-JOB6FH3D.js.map +7 -0
- package/dist/esm/{chunk-GIIMBBVM.js → chunk-MLXFZDFU.js} +2 -2
- package/dist/esm/{chunk-GYNRAVCL.js → chunk-NEK7F746.js} +2 -2
- package/dist/esm/chunk-NTGRWJEG.js +2 -0
- package/dist/esm/{chunk-EVTNB4TB.js.map → chunk-NTGRWJEG.js.map} +2 -2
- package/dist/esm/{chunk-KDKL3HXD.js → chunk-O7IPBLC7.js} +2 -2
- package/dist/esm/{chunk-K6Y2SM5N.js → chunk-OLSTITVY.js} +2 -2
- package/dist/esm/{chunk-X3D3JR64.js → chunk-Q6GUADLO.js} +2 -2
- package/dist/esm/{chunk-YVHRWMSZ.js → chunk-QETAAJJV.js} +2 -2
- package/dist/esm/chunk-QEYOXQK5.js +2 -0
- package/dist/esm/{chunk-PDBVZAUJ.js.map → chunk-QEYOXQK5.js.map} +2 -2
- package/dist/esm/chunk-R372ULQC.js +2 -0
- package/dist/esm/chunk-R372ULQC.js.map +7 -0
- package/dist/esm/chunk-RDS3AJWW.js +2 -0
- package/dist/esm/chunk-RDS3AJWW.js.map +7 -0
- package/dist/esm/{chunk-6XNQ5XD3.js → chunk-SKOF4A27.js} +2 -2
- package/dist/esm/{chunk-BINUV3ME.js → chunk-TBWKDBUF.js} +2 -2
- package/dist/esm/{chunk-MAI7FEU7.js → chunk-TLZMLJTI.js} +2 -2
- package/dist/esm/{chunk-MAI7FEU7.js.map → chunk-TLZMLJTI.js.map} +2 -2
- package/dist/esm/{chunk-CR2BSCFM.js → chunk-UNH3FGU4.js} +2 -2
- package/dist/esm/{chunk-L2IIIELE.js → chunk-WBGKTN35.js} +2 -2
- package/dist/esm/chunk-WSKA5MZZ.js +2 -0
- package/dist/esm/chunk-WSKA5MZZ.js.map +7 -0
- package/dist/esm/chunk-XDAQXNBQ.js +2 -0
- package/dist/esm/chunk-XDAQXNBQ.js.map +7 -0
- package/dist/esm/{chunk-63ASTOS2.js → chunk-XDV2SDJ3.js} +2 -2
- package/dist/esm/{chunk-G6PO4QKW.js → chunk-XPT5ELKO.js} +2 -2
- package/dist/esm/{chunk-2XQECQF2.js → chunk-XXHIMGBY.js} +2 -2
- package/dist/esm/{chunk-JRIBL4WJ.js → chunk-ZRHXFYAE.js} +2 -2
- package/dist/esm/components/_internal/base-menu.props.d.ts +2 -2
- package/dist/esm/components/_internal/base-menu.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-menu.utils.js +1 -1
- package/dist/esm/components/_internal/menu-context.d.ts +5 -2
- 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/alert-dialog.js +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/blockquote.props.d.ts +2 -2
- package/dist/esm/components/blockquote.props.js +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.props.d.ts +2 -2
- package/dist/esm/components/code.props.js +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/combobox.props.d.ts +1 -1
- package/dist/esm/components/combobox.props.js +1 -1
- package/dist/esm/components/context-menu.js +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/dialog.js +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/heading.js +1 -1
- package/dist/esm/components/heading.props.d.ts +2 -2
- package/dist/esm/components/heading.props.js +1 -1
- package/dist/esm/components/icon-button.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/kbd.props.d.ts +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.d.ts +2 -2
- package/dist/esm/components/link.props.js +1 -1
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/notice.js +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/text.js +1 -1
- package/dist/esm/components/text.props.d.ts +2 -2
- package/dist/esm/components/text.props.js +1 -1
- package/dist/esm/components/theme-panel.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/virtual-menu.d.ts +2 -1
- package/dist/esm/components/virtual-menu.d.ts.map +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/index.js +1 -1
- package/dist/esm/props/weight.prop.d.ts +1 -1
- package/dist/esm/props/weight.prop.d.ts.map +1 -1
- package/dist/esm/props/weight.prop.js +1 -1
- package/package.json +1 -1
- package/src/components/_internal/base-menu.css +120 -114
- package/src/components/_internal/base-menu.props.ts +1 -1
- package/src/components/_internal/base-menu.utils.tsx +2 -1
- package/src/components/_internal/base-sidebar-menu.css +8 -38
- package/src/components/_internal/menu-context.tsx +9 -4
- package/src/components/avatar.css +3 -3
- package/src/components/badge.css +3 -3
- package/src/components/blockquote.props.tsx +1 -1
- package/src/components/code.css +10 -32
- package/src/components/code.props.tsx +1 -1
- package/src/components/combobox.css +0 -9
- package/src/components/combobox.props.tsx +1 -1
- package/src/components/heading.css +9 -29
- package/src/components/heading.props.tsx +1 -1
- package/src/components/kbd.css +1 -29
- package/src/components/kbd.props.tsx +1 -1
- package/src/components/link.props.tsx +1 -1
- package/src/components/notice.css +10 -13
- package/src/components/select.css +19 -134
- package/src/components/sidebar.css +82 -123
- package/src/components/sidebar.tsx +1 -3
- package/src/components/slider.css +2 -2
- package/src/components/table.css +24 -11
- package/src/components/text.css +0 -20
- package/src/components/text.props.tsx +1 -1
- package/src/components/virtual-menu.tsx +3 -1
- package/src/props/weight.prop.ts +2 -1
- package/src/styles/tokens/radius.css +12 -0
- package/src/styles/tokens/typography.css +21 -49
- package/src/styles/utilities/font-weight.css +0 -20
- package/styles.css +1034 -2503
- package/tokens/base.css +23 -45
- package/tokens.css +23 -45
- package/utilities.css +0 -90
- package/dist/esm/chunk-5AHQJB6H.js +0 -2
- package/dist/esm/chunk-ABQHBDM4.js +0 -2
- package/dist/esm/chunk-ABQHBDM4.js.map +0 -7
- package/dist/esm/chunk-B72RMGWZ.js +0 -2
- package/dist/esm/chunk-B72RMGWZ.js.map +0 -7
- package/dist/esm/chunk-EUSKAXHP.js +0 -2
- package/dist/esm/chunk-EUSKAXHP.js.map +0 -7
- package/dist/esm/chunk-EVTNB4TB.js +0 -2
- package/dist/esm/chunk-FD2TR343.js +0 -2
- package/dist/esm/chunk-FD2TR343.js.map +0 -7
- package/dist/esm/chunk-FTGD2SZ6.js +0 -2
- package/dist/esm/chunk-FTGD2SZ6.js.map +0 -7
- package/dist/esm/chunk-G3U6OHVA.js +0 -2
- package/dist/esm/chunk-G3U6OHVA.js.map +0 -7
- package/dist/esm/chunk-N77QJUTO.js.map +0 -7
- package/dist/esm/chunk-PDBVZAUJ.js +0 -2
- package/dist/esm/chunk-UUV5UNYL.js +0 -2
- package/dist/esm/chunk-ZMFZYXLB.js +0 -2
- package/dist/esm/chunk-ZMFZYXLB.js.map +0 -7
- /package/dist/esm/{chunk-JZSXHYUU.js.map → chunk-33IRPFDK.js.map} +0 -0
- /package/dist/esm/{chunk-32ATKZAP.js.map → chunk-3E6ADI2F.js.map} +0 -0
- /package/dist/esm/{chunk-JBC6DT2X.js.map → chunk-74SNS4VY.js.map} +0 -0
- /package/dist/esm/{chunk-DIR22XIX.js.map → chunk-CNMFVJNC.js.map} +0 -0
- /package/dist/esm/{chunk-UUHTK35B.js.map → chunk-EUHAZKWY.js.map} +0 -0
- /package/dist/esm/{chunk-MZR6YBE7.js.map → chunk-GDACOD53.js.map} +0 -0
- /package/dist/esm/{chunk-BUBV3C6C.js.map → chunk-HJ6ACBXW.js.map} +0 -0
- /package/dist/esm/{chunk-XTE22CXV.js.map → chunk-HJZNHNLX.js.map} +0 -0
- /package/dist/esm/{chunk-IXNJFV4O.js.map → chunk-HVXXJZC2.js.map} +0 -0
- /package/dist/esm/{chunk-GYB7PAGB.js.map → chunk-IND2NZIN.js.map} +0 -0
- /package/dist/esm/{chunk-UZQO4APP.js.map → chunk-JDMJC76O.js.map} +0 -0
- /package/dist/esm/{chunk-PUQXBW2K.js.map → chunk-JH55M4I2.js.map} +0 -0
- /package/dist/esm/{chunk-GIIMBBVM.js.map → chunk-MLXFZDFU.js.map} +0 -0
- /package/dist/esm/{chunk-GYNRAVCL.js.map → chunk-NEK7F746.js.map} +0 -0
- /package/dist/esm/{chunk-KDKL3HXD.js.map → chunk-O7IPBLC7.js.map} +0 -0
- /package/dist/esm/{chunk-K6Y2SM5N.js.map → chunk-OLSTITVY.js.map} +0 -0
- /package/dist/esm/{chunk-X3D3JR64.js.map → chunk-Q6GUADLO.js.map} +0 -0
- /package/dist/esm/{chunk-YVHRWMSZ.js.map → chunk-QETAAJJV.js.map} +0 -0
- /package/dist/esm/{chunk-6XNQ5XD3.js.map → chunk-SKOF4A27.js.map} +0 -0
- /package/dist/esm/{chunk-BINUV3ME.js.map → chunk-TBWKDBUF.js.map} +0 -0
- /package/dist/esm/{chunk-CR2BSCFM.js.map → chunk-UNH3FGU4.js.map} +0 -0
- /package/dist/esm/{chunk-L2IIIELE.js.map → chunk-WBGKTN35.js.map} +0 -0
- /package/dist/esm/{chunk-63ASTOS2.js.map → chunk-XDV2SDJ3.js.map} +0 -0
- /package/dist/esm/{chunk-G6PO4QKW.js.map → chunk-XPT5ELKO.js.map} +0 -0
- /package/dist/esm/{chunk-2XQECQF2.js.map → chunk-XXHIMGBY.js.map} +0 -0
- /package/dist/esm/{chunk-JRIBL4WJ.js.map → chunk-ZRHXFYAE.js.map} +0 -0
|
@@ -2,7 +2,7 @@ declare const weightPropDef: {
|
|
|
2
2
|
weight: {
|
|
3
3
|
type: "enum";
|
|
4
4
|
className: string;
|
|
5
|
-
values: readonly ["
|
|
5
|
+
values: readonly ["regular", "medium", "semibold"];
|
|
6
6
|
responsive: true;
|
|
7
7
|
};
|
|
8
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weight.prop.d.ts","sourceRoot":"","sources":["../../../src/props/weight.prop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"weight.prop.d.ts","sourceRoot":"","sources":["../../../src/props/weight.prop.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,aAAa;;;;;;;CASlB,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var g=(t,e)=>{for(var r in e)o(t,r,{get:e[r],enumerable:!0})},a=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of m(e))!f.call(t,s)&&s!==r&&o(t,s,{get:()=>e[s],enumerable:!(i=p(e,s))||i.enumerable});return t};var h=t=>a(o({},"__esModule",{value:!0}),t);var w={};g(w,{weightPropDef:()=>u});module.exports=h(w);var n=["regular","medium","semibold"],u={weight:{type:"enum",className:"rt-r-weight",values:n,responsive:!0}};
|
|
2
2
|
//# sourceMappingURL=weight.prop.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/props/weight.prop.ts"],
|
|
4
|
-
"sourcesContent": ["import type { PropDef } from './prop-def.js';\n\nconst weights = ['
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,
|
|
4
|
+
"sourcesContent": ["import type { PropDef } from './prop-def.js';\n\n/** v2's three weights (\u00A715). No bold: a larger size or stronger emphasis says importance. */\nconst weights = ['regular', 'medium', 'semibold'] as const;\n\nconst weightPropDef = {\n weight: {\n type: 'enum',\n className: 'rt-r-weight',\n values: weights,\n responsive: true,\n },\n} satisfies {\n weight: PropDef<(typeof weights)[number]>;\n};\n\nexport { weightPropDef };\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAGA,IAAMI,EAAU,CAAC,UAAW,SAAU,UAAU,EAE1CF,EAAgB,CACpB,OAAQ,CACN,KAAM,OACN,UAAW,cACX,OAAQE,EACR,WAAY,EACd,CACF",
|
|
6
6
|
"names": ["weight_prop_exports", "__export", "weightPropDef", "__toCommonJS", "weights"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/props/weight.prop.ts"],
|
|
4
|
+
"sourcesContent": ["import type { PropDef } from './prop-def.js';\n\n/** v2's three weights (\u00A715). No bold: a larger size or stronger emphasis says importance. */\nconst weights = ['regular', 'medium', 'semibold'] as const;\n\nconst weightPropDef = {\n weight: {\n type: 'enum',\n className: 'rt-r-weight',\n values: weights,\n responsive: true,\n },\n} satisfies {\n weight: PropDef<(typeof weights)[number]>;\n};\n\nexport { weightPropDef };\n"],
|
|
5
|
+
"mappings": "AAGA,IAAMA,EAAU,CAAC,UAAW,SAAU,UAAU,EAE1CC,EAAgB,CACpB,OAAQ,CACN,KAAM,OACN,UAAW,cACX,OAAQD,EACR,WAAY,EACd,CACF",
|
|
6
|
+
"names": ["weights", "weightPropDef"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-HJ6ACBXW.js";import*as o from"react";import n from"classnames";import{Slot as u}from"radix-ui";var a=o.forwardRef((t,p)=>{let{asChild:r,children:s,className:m,...c}=t,l=r?u.Root:"blockquote";return o.createElement(e,{asChild:!0,...c,ref:p,className:n("rt-Blockquote",m)},o.createElement(l,null,s))});a.displayName="Blockquote";export{a};
|
|
2
|
+
//# sourceMappingURL=chunk-33IRPFDK.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as u}from"./chunk-HJZNHNLX.js";import{a as m}from"./chunk-5BWLY27A.js";import{a as y}from"./chunk-OS3FCYZY.js";var I={};y(I,{Button:()=>P,Content:()=>f,Item:()=>g,Root:()=>d,Viewport:()=>S,useMessageScroller:()=>B,useMessageScrollerScrollable:()=>w,useMessageScrollerVisibility:()=>h});import*as e from"react";import c from"classnames";import{MessageScroller as a,useMessageScroller as B,useMessageScrollerScrollable as w,useMessageScrollerVisibility as h}from"@shadcn/react/message-scroller";import{useComposedRefs as C}from"radix-ui/internal";var d=e.forwardRef(({autoScroll:o=!0,defaultScrollPosition:t="end",scrollEdgeThreshold:r,scrollMargin:s,className:n,children:i,...l},p)=>e.createElement(a.Provider,{autoScroll:o,defaultScrollPosition:t,...r!=null?{scrollEdgeThreshold:r}:{},...s!=null?{scrollMargin:s}:{}},e.createElement(a.Root,{...l,ref:p,className:c("rt-MessageScrollerRoot",n)},i)));d.displayName="MessageScroller.Root";var S=e.forwardRef(({className:o,"aria-label":t,fade:r=!0,...s},n)=>{let i=m(r),l=C(n,i);return e.createElement(a.Viewport,{"aria-label":t??"",...s,ref:l,"data-fade":r?"":void 0,className:c("rt-MessageScrollerViewport",o)})});S.displayName="MessageScroller.Viewport";var f=e.forwardRef(({className:o,...t},r)=>e.createElement(a.Content,{...t,ref:r,className:c("rt-MessageScrollerContent",o)}));f.displayName="MessageScroller.Content";var g=e.forwardRef(({className:o,...t},r)=>e.createElement(a.Item,{...t,ref:r,className:c("rt-MessageScrollerItem",o)}));g.displayName="MessageScroller.Item";var P=e.forwardRef(({direction:o="end",behavior:t,className:r,children:s,size:n,variant:i="surface",emphasis:l,color:p="gray",radius:M="full","aria-label":R,...b},v)=>e.createElement(a.Button,{direction:o,...t?{behavior:t}:{},render:e.createElement(u,{...b,ref:v,size:n,...l?{emphasis:l}:{variant:i},color:p,radius:M,"aria-label":R??(o==="end"?"Jump to the latest":"Jump to the first"),className:c("rt-MessageScrollerButton",r),"data-direction":o},s??e.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none","aria-hidden":!0,style:o==="start"?{transform:"rotate(180deg)"}:void 0},e.createElement("path",{d:"M7.5 2.5v10M3.5 8.5l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})))}));P.displayName="MessageScroller.Button";export{B as a,w as b,h as c,d,S as e,f,g,P as h,I as i};
|
|
2
|
+
//# sourceMappingURL=chunk-3E6ADI2F.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as R}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as R}from"./chunk-HJZNHNLX.js";import{a as m}from"./chunk-NEK7F746.js";import{a as u}from"./chunk-HJ6ACBXW.js";import{d as p}from"./chunk-3YLYGKFB.js";import*as e from"react";import v from"classnames";var C=e.createContext(void 0),g={values:["1","2","3","4"]},f=e.forwardRef(({kind:a,size:t="2",color:o="gray",className:c,children:n,trailing:s,leading:i,...l},r)=>e.createElement("div",{role:"status","aria-live":"polite",...l,ref:r,className:v("rt-NoticeRoot",`rt-r-size-${t}`,c),"data-kind":a,"data-accent-color":o},i?e.createElement("span",{className:"rt-NoticeIcon","aria-hidden":!0},i):null,e.createElement(u,{as:"div",size:t,className:"rt-NoticeText"},n),s));f.displayName="Strip";var z=e.forwardRef(({icon:a,action:t,onDismiss:o,dismissLabel:c="Dismiss",size:n,...s},i)=>{let l=e.useContext(C),r=p(n??l,g);return e.createElement(f,{...s,size:r,ref:i,kind:"notice",leading:a,trailing:t||o?e.createElement("span",{className:"rt-NoticeActions"},t,o?e.createElement(R,{size:r,variant:"ghost",color:"gray","aria-label":c,className:"rt-NoticeDismiss",onClick:o},e.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none","aria-hidden":!0},e.createElement("path",{d:"M4 4l7 7M11 4l-7 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}))):null):null})});z.displayName="Notice";var x=e.forwardRef(({confirmLabel:a,cancelLabel:t="Not now",onConfirm:o,onCancel:c,busy:n=!1,size:s,color:i="gray",...l},r)=>{let N=e.useContext(C),d=p(s??N,g);return e.createElement(f,{...l,size:d,color:i,ref:r,kind:"confirmation",trailing:e.createElement("span",{className:"rt-NoticeActions"},e.createElement(m,{size:d,variant:"ghost",color:"gray",disabled:n,onClick:c},t),e.createElement(m,{size:d,variant:"solid",color:i,loading:n,onClick:o},a))})});x.displayName="Confirmation";export{C as a,z as b,x as c};
|
|
2
|
+
//# sourceMappingURL=chunk-74SNS4VY.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as i}from"./chunk-HK7RJPQ2.js";import*as e from"react";var u=e.createContext({isInsideMenu:!1}),c={1:24,2:30,3:34,4:38};function d(t){return c[t]}function M({children:t,size:r}){let n=i(r,void 0),o=n?d(n):void 0,s=e.useMemo(()=>({isInsideMenu:!0,size:n,itemHeight:o}),[n,o]);return e.createElement(u.Provider,{value:s},t)}function a(){return e.useContext(u)}export{c as a,d as b,M as c,a as d};
|
|
2
|
+
//# sourceMappingURL=chunk-CD324U6G.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/menu-context.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\n\nimport { useResolvedResponsiveValue } from './base-menu.utils.js';\n\nimport type { Responsive } from '../../props/prop-def.js';\n\n/**\n * Context to detect if a component is rendered inside a menu (DropdownMenu, ContextMenu, etc.)\n * Used by VirtualMenu to adjust its behavior:\n * - Skip role=\"menu\" when inside a parent menu (parent owns the role)\n * - Delegate certain keyboard handling to parent\n * - Use the correct item height based on menu size\n */\n\nexport type MenuSize = '1' | '2' | '3' | '4';\n\ninterface MenuContextValue {\n /** Whether we're inside a menu that owns the menu role */\n isInsideMenu: boolean;\n /** Menu size for the current breakpoint */\n size?: MenuSize;\n /** Item height in px for the current size and theme scaling */\n itemHeight?: number;\n}\n\nconst MenuContext = React.createContext<MenuContextValue>({ isInsideMenu: false });\n\ninterface MenuProviderProps {\n children: React.ReactNode;\n /** Menu size passed from parent (DropdownMenu.Content, ContextMenu.Content, etc.) */\n size?: Responsive<MenuSize>;\n}\n\n/**\n * Menu row height in pixels per size: the line height plus --row-inset-N above and below\n * (base-menu.css), never under the 24px target floor.\n */\nexport const menuSizeToItemHeight: Record<MenuSize, number> = {\n '1': 24,\n '2': 30,\n '3': 34,\n '4': 38,\n};\n\nexport function getMenuItemHeight(size: MenuSize): number {\n return menuSizeToItemHeight[size];\n}\n\nexport function MenuProvider({ children, size }: MenuProviderProps) {\n const resolvedSize = useResolvedResponsiveValue<MenuSize | undefined>(size, undefined);\n const itemHeight = resolvedSize ? getMenuItemHeight(resolvedSize) : undefined;\n const value = React.useMemo(\n () => ({ isInsideMenu: true, size: resolvedSize, itemHeight }),\n [resolvedSize, itemHeight],\n );\n return <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n"],
|
|
5
|
+
"mappings": "wCAEA,UAAYA,MAAW,QAyBvB,IAAMC,EAAoB,gBAAgC,CAAE,aAAc,EAAM,CAAC,EAYpEC,EAAiD,CAC5D,EAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,EACP,EAEO,SAASC,EAAkBC,EAAwB,CACxD,OAAOF,EAAqBE,CAAI,CAClC,CAEO,SAASC,EAAa,CAAE,SAAAC,EAAU,KAAAF,CAAK,EAAsB,CAClE,IAAMG,EAAeC,EAAiDJ,EAAM,MAAS,EAC/EK,EAAaF,EAAeJ,EAAkBI,CAAY,EAAI,OAC9DG,EAAc,UAClB,KAAO,CAAE,aAAc,GAAM,KAAMH,EAAc,WAAAE,CAAW,GAC5D,CAACF,EAAcE,CAAU,CAC3B,EACA,OAAO,gBAACR,EAAY,SAAZ,CAAqB,MAAOS,GAAQJ,CAAS,CACvD,CAEO,SAASK,GAAiB,CAC/B,OAAa,aAAWV,CAAW,CACrC",
|
|
6
|
+
"names": ["React", "MenuContext", "menuSizeToItemHeight", "getMenuItemHeight", "size", "MenuProvider", "children", "resolvedSize", "useResolvedResponsiveValue", "itemHeight", "value", "useMenuContext"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-RDS3AJWW.js";import{a as r}from"./chunk-6FLLFCBU.js";import{a as p}from"./chunk-2FPJ6Q2N.js";import*as o from"react";import a from"classnames";import{Slot as i}from"radix-ui";var P=o.forwardRef((t,s)=>{let{asChild:m,className:d,...f}=r(t,e,p),n=m?i.Root:"kbd";return o.createElement(n,{...f,ref:s,className:a("rt-reset","rt-Kbd",d)})});P.displayName="Kbd";export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CNMFVJNC.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as re,b as ne}from"./chunk-UFJJTUOU.js";import{a as B,b as te,c as M}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as re,b as ne}from"./chunk-UFJJTUOU.js";import{a as B,b as te,c as M}from"./chunk-TLZMLJTI.js";import{b as ee,c as oe}from"./chunk-IX5HIHVI.js";import{a as Z}from"./chunk-MJJ7XDIP.js";import{b as X,c as Y}from"./chunk-6AZV4VFW.js";import{a as Q}from"./chunk-AGAQC4HH.js";import{c as J}from"./chunk-FWB47YCH.js";import{d as U}from"./chunk-3YLYGKFB.js";import{a as O}from"./chunk-6FLLFCBU.js";import{a as _}from"./chunk-2FPJ6Q2N.js";import{a as Ne}from"./chunk-OS3FCYZY.js";var ze={};Ne(ze,{Content:()=>xe,Empty:()=>Re,Group:()=>he,Input:()=>ge,Item:()=>Se,Label:()=>ve,List:()=>Pe,Root:()=>de,Separator:()=>ye,Trigger:()=>Ce,Value:()=>fe});import*as e from"react";import u from"classnames";import{Popover as ae}from"radix-ui";import{useCallbackRef as A,useComposedRefs as ie,useControllableState as G,useLayoutEffect as W}from"radix-ui/internal";import{Command as N,useCommandState as se}from"cmdk";var Le={size:B.size},we={size:M.size},le=new Set;function De(o){le.has(o)||(le.add(o),console.warn(o))}function Oe(o){let r=o,t=new Set;return{get:()=>r,set:n=>{Object.is(n,r)||(r=n,t.forEach(a=>a()))},subscribe:n=>(t.add(n),()=>{t.delete(n)})}}var me=e.createContext(null),k=o=>{let r=e.useContext(me);if(!r)throw new Error(`Combobox.${o} must be used within Combobox.Root`);return r},ce=e.createContext(null),be=e.createContext(null),pe=e.createContext(null),ue=()=>e.useContext(pe);function Me(o){let r=o.getAttribute("aria-label")?.trim();if(r)return r;let t=o.getAttribute("aria-labelledby");if(t){let a=t.split(/\s+/).map(s=>o.ownerDocument.getElementById(s)?.textContent?.trim()).filter(Boolean).join(" ");if(a)return a}let n=o.labels;if(n&&n.length>0){let a=Array.from(n).map(s=>s.textContent?.trim()).filter(Boolean).join(" ");if(a)return a}}var de=o=>{let{children:r,size:t,value:n,defaultValue:a=null,onValueChange:s,open:l,defaultOpen:d=!1,onOpenChange:i,placeholder:m="Select an option",searchPlaceholder:C="Search...",searchValue:f,defaultSearchValue:V="",onSearchValueChange:P,filter:R,shouldFilter:p=!0,loop:c=!0,disabled:x,resetSearchOnSelect:v=!0,resetSearchOnClose:g=!0,color:E,displayValue:h,...T}=o,S=U(t,B.size),[y,b]=G({prop:l,defaultProp:d,onChange:i}),[I,Ve]=G({prop:n,defaultProp:a,onChange:s}),[j,L]=G({prop:f,defaultProp:V,onChange:P}),K=typeof h=="function"?h(I):h,[w]=e.useState(()=>Oe(I));W(()=>{w.set(I)},[w,I]);let z=A(D=>{b(D),!D&&g&&L("")}),q=A(D=>{Ve(D),b(!1),v&&L("")}),F=e.useRef(null),$=e.useCallback(()=>F.current?Me(F.current):void 0,[]),Ee=e.useMemo(()=>({value:I,displayValue:K,setOpen:z,size:S,placeholder:m,searchPlaceholder:C,disabled:x,color:E,loop:c,shouldFilter:p,filter:R,triggerRef:F,getTriggerLabel:$}),[I,K,z,S,m,C,x,E,c,p,R,$]),Te=e.useMemo(()=>({value:j,setValue:L}),[j,L]),Ie=e.useMemo(()=>({store:w,onSelect:q,disabled:x}),[w,q,x]);return e.createElement(me.Provider,{value:Ee},e.createElement(ce.Provider,{value:Te},e.createElement(be.Provider,{value:Ie},e.createElement(re,{open:y,onOpenChange:z,...T},r))))};de.displayName="Combobox.Root";var Ce=e.forwardRef((o,r)=>{let t=k("Trigger"),{children:n,className:a,placeholder:s,disabled:l,readOnly:d,error:i,loading:m,color:C,radius:f,onClick:V,onKeyDown:P,type:R,...p}=O({size:t.size,...o},Le,te,_),c=l??t.disabled,x=C??t.color,v=!!(d||m),g=t.value==null&&t.displayValue==null,E=ie(r,t.triggerRef),{getTriggerLabel:h}=t;e.useEffect(()=>{},[h]);let T=b=>{V?.(b),v&&b.preventDefault()},S=b=>{P?.(b),!(b.defaultPrevented||v||c)&&b.key==="ArrowDown"&&(b.preventDefault(),t.setOpen(!0))},y=e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-SelectTriggerInner"},e.createElement("span",{className:"rt-ComboboxValue"},t.displayValue??t.value??s??t.placeholder)),m?e.createElement("div",{className:"rt-SelectIcon rt-SelectLoadingIcon","aria-hidden":"true"},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},e.createElement("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"32",strokeDashoffset:"32",className:"rt-SelectLoadingIconCircle"}))):e.createElement(oe,{className:"rt-SelectIcon"}));return e.createElement(ne,{disabled:c},e.createElement("button",{"data-accent-color":x,"data-radius":f,"data-error":i,"data-loading":m,"data-disabled":c||void 0,"data-read-only":d||void 0,"data-placeholder":g?"":void 0,...p,role:"combobox","aria-disabled":c||void 0,"aria-readonly":d||void 0,"aria-invalid":i||void 0,"aria-busy":m||void 0,type:R??"button",disabled:c,onClick:T,onKeyDown:S,ref:E,className:u("rt-reset","rt-SelectTrigger","rt-ComboboxTrigger",a)},n?Z(n):y))});Ce.displayName="Combobox.Trigger";var fe=e.forwardRef(({placeholder:o,children:r,className:t,...n},a)=>{let s=k("Value"),l=s.displayValue??s.value??void 0;return e.createElement("span",{...n,ref:a,className:u("rt-ComboboxValue",t)},l??r??o??s.placeholder)});fe.displayName="Combobox.Value";function ke(){let o=se(a=>a.filtered.count),r=se(a=>a.search),[t,n]=e.useState("");return e.useEffect(()=>{let a=r?o===0?"No results":`${o} result${o===1?"":"s"}`:"",s=window.setTimeout(()=>n(a),r?400:0);return()=>window.clearTimeout(s)},[o,r]),e.createElement(Q,{role:"status","aria-live":"polite","aria-atomic":"true"},t)}var xe=e.forwardRef((o,r)=>{let t=k("Content"),n=X(),a=t.size==="4"?"3":t.size,s=o.size??a??M.size.default,{className:l,children:d,color:i,forceMount:m,container:C,onOpenAutoFocus:f,"aria-label":V,"aria-labelledby":P,...R}=O({...o,size:s},M),p=i||t.color||n.accentColor,{getTriggerLabel:c}=t,[x,v]=e.useState(c);W(()=>{if(x!==void 0)return;let y=c();y!==void 0&&v(y)},[c,x]);let g=o["aria-label"]??x,E=e.useMemo(()=>({sizeClassName:O({size:s},we).className||void 0,color:p,label:g}),[s,p,g]),h=e.useRef(null),T=y=>{if(f?.(y),y.defaultPrevented)return;let b=h.current;if(!b||b.querySelector("[cmdk-input]"))return;y.preventDefault(),(b.querySelector("[cmdk-list]")??b).focus({preventScroll:!0})},S=t.value?.trim()||void 0;return e.createElement(ae.Portal,{container:C,forceMount:m?!0:void 0},e.createElement(Y,{asChild:!0},e.createElement(ae.Content,{"data-accent-color":p,align:"start",sideOffset:4,collisionPadding:10,"aria-label":P?void 0:g,"aria-labelledby":P,...R,forceMount:m?!0:void 0,onOpenAutoFocus:T,ref:r,className:u("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-ComboboxContent",l)},e.createElement(pe.Provider,{value:E},e.createElement(N,{ref:h,loop:t.loop,shouldFilter:t.shouldFilter,filter:t.filter,label:g,defaultValue:S,className:"rt-ComboboxCommand"},d,e.createElement(ke,null))))))});xe.displayName="Combobox.Content";var ge=e.forwardRef(({className:o,startAdornment:r,endAdornment:t,placeholder:n,variant:a,value:s,onValueChange:l,...d},i)=>{let m=k("Input"),C=e.useContext(ce),f=ue(),V=a??"soft",P=s??C?.value??"",R=l??C?.setValue,p=e.createElement("div",{className:u("rt-TextFieldRoot","rt-ComboboxInputRoot",f?.sizeClassName,`rt-variant-${V}`),"data-accent-color":f?.color},r?e.createElement("div",{className:"rt-TextFieldSlot"},r):null,e.createElement(N.Input,{...d,ref:i,value:P,onValueChange:R,placeholder:n??m.searchPlaceholder,className:u("rt-reset","rt-TextFieldInput",o)}),t?e.createElement("div",{className:"rt-TextFieldSlot","data-side":"right"},t):null);return f?e.createElement("div",{className:"rt-ComboboxSearch"},p):p});ge.displayName="Combobox.Input";var Pe=e.forwardRef(({className:o,children:r,label:t,...n},a)=>{let s=ue();return e.createElement("div",{className:"rt-ComboboxScrollArea"},e.createElement("div",{className:u("rt-BaseMenuViewport","rt-ComboboxViewport")},e.createElement(N.List,{...n,label:t??s?.label,ref:a,className:u("rt-ComboboxList",o)},r)))});Pe.displayName="Combobox.List";var Re=e.forwardRef(({className:o,...r},t)=>e.createElement(N.Empty,{...r,ref:t,className:u("rt-ComboboxEmpty",o)}));Re.displayName="Combobox.Empty";var he=e.forwardRef(({className:o,...r},t)=>e.createElement(N.Group,{...r,ref:t,className:u("rt-BaseMenuGroup","rt-ComboboxGroup",o)}));he.displayName="Combobox.Group";var ve=e.forwardRef(({className:o,id:r,...t},n)=>{let a=e.useId(),s=r??a,l=e.useRef(null),d=ie(n,l);return W(()=>{let i=l.current?.closest("[cmdk-group-items]");if(!(!i||i.hasAttribute("aria-labelledby")))return i.setAttribute("aria-labelledby",s),()=>{i.getAttribute("aria-labelledby")===s&&i.removeAttribute("aria-labelledby")}},[s]),e.createElement("div",{...t,id:s,ref:d,className:u("rt-BaseMenuLabel","rt-ComboboxLabel",o)})});ve.displayName="Combobox.Label";var ye=e.forwardRef(({className:o,...r},t)=>e.createElement(N.Separator,{...r,ref:t,className:u("rt-BaseMenuSeparator","rt-ComboboxSeparator",o)}));ye.displayName="Combobox.Separator";function H(o){return o==null||typeof o=="boolean"?"":typeof o=="string"||typeof o=="number"?String(o):Array.isArray(o)?o.map(H).join(""):e.isValidElement(o)?H(o.props.children):""}var Se=e.forwardRef(({className:o,children:r,label:t,value:n,disabled:a,onSelect:s,keywords:l,...d},i)=>{let m=e.useContext(be);if(!m)throw new Error("Combobox.Item must be used within Combobox.Root");let{store:C,onSelect:f,disabled:V}=m,P=n??(typeof r=="string"?r.trim():void 0),R=()=>P!==void 0&&C.get()===P,p=e.useSyncExternalStore(C.subscribe,R,R),c=A(s),x=e.useCallback(T=>{let S=n??T;f(S),c(S)},[n,f,c]),v=(t??H(r)).replace(/\s+/g," ").trim(),g=v?l?[v,...l]:[v]:l,E=g?g.join("\0"):"",h=a??V??!1;return e.createElement(N.Item,{key:E,...d,value:n,keywords:g,"aria-checked":p,disabled:h||void 0,ref:i,onSelect:x,className:u("rt-reset","rt-BaseMenuItem","rt-ComboboxItem",o)},p?e.createElement("span",{className:u("rt-BaseMenuItemIndicator","rt-ComboboxItemIndicator")},e.createElement(ee,{className:u("rt-BaseMenuItemIndicatorIcon","rt-ComboboxItemIndicatorIcon")})):null,e.createElement(J,null,r))});Se.displayName="Combobox.Item";export{de as a,Ce as b,fe as c,xe as d,ge as e,Pe as f,Re as g,he as h,ve as i,ye as j,Se as k,ze as l};
|
|
2
|
+
//# sourceMappingURL=chunk-EUHAZKWY.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as t}from"./chunk-2WSD2H23.js";import{a as p}from"./chunk-WYADYDPN.js";import{a as s}from"./chunk-ZE2KAVXW.js";import{b as e}from"./chunk-ZWZGUBL4.js";import{a as o}from"./chunk-NZJGC6ZW.js";import{c as r}from"./chunk-34KVYDF6.js";var f=["1","2","3","4","5","6","7","8","9"],n={...o,size:{type:"enum",className:"rt-r-size",values:f,responsive:!0},...t,...r,...e,...s,...p};export{n as a};
|
|
2
|
+
//# sourceMappingURL=chunk-F7HK2QLM.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/blockquote.props.tsx"],
|
|
4
|
-
"sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { emphasisPropDef } from '../props/emphasis.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['
|
|
5
|
-
"mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,
|
|
4
|
+
"sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { emphasisPropDef } from '../props/emphasis.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] as const;\n\nconst blockquotePropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n responsive: true,\n },\n ...weightPropDef,\n ...colorPropDef,\n ...emphasisPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n};\n\nexport { blockquotePropDefs };\n"],
|
|
5
|
+
"mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAEpDC,EAAqB,CACzB,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQF,EACR,WAAY,EACd,EACA,GAAGG,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,CACL",
|
|
6
6
|
"names": ["sizes", "blockquotePropDefs", "asChildPropDef", "weightPropDef", "colorPropDef", "emphasisPropDef", "truncatePropDef", "textWrapPropDef"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as b}from"./chunk-K7VO7TND.js";import{a as C}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as b}from"./chunk-K7VO7TND.js";import{a as C}from"./chunk-HJZNHNLX.js";import{a as S}from"./chunk-NEK7F746.js";import{a as v}from"./chunk-HJ6ACBXW.js";import{f as x}from"./chunk-6RZVKCNG.js";import{d as B}from"./chunk-3YLYGKFB.js";import{a as R}from"./chunk-6FLLFCBU.js";import{a as y}from"./chunk-2FPJ6Q2N.js";import*as o from"react";import T from"classnames";import{Toolbar as P}from"radix-ui";var z=o.createContext(null),G=o.createContext(null);function u(t){let r=o.useContext(z);if(!r)throw new Error(`${t} must be rendered inside a Toolbar.`);return r}var d=o.forwardRef((t,r)=>{let e=x(),a=B(t.size??e??void 0,b.size),s=t.orientation??b.orientation.default,{className:n,orientation:p,backdrop:i=!1,children:m,...c}=R({...t,size:a},b,y),l=o.useMemo(()=>({size:a,orientation:s,backdrop:i}),[a,s,i]);return o.createElement(P.Root,{...c,ref:r,orientation:s,"data-backdrop":i||void 0,className:T("rt-Toolbar",n)},o.createElement(z.Provider,{value:l},m))});d.displayName="Toolbar";var N=o.forwardRef(({className:t,disabled:r=!1,children:e,...a},s)=>{let{orientation:n}=u("ToolbarGroup"),p=o.useMemo(()=>({disabled:r}),[r]);return o.createElement("div",{role:"group","data-orientation":n,"data-disabled":r||void 0,...a,ref:s,className:T("rt-ToolbarGroup",t)},o.createElement(G.Provider,{value:p},e))});N.displayName="Toolbar.Group";function M(t){return t===!0||t==="true"}var h=o.forwardRef((t,r)=>{let e=u("ToolbarButton"),a=o.useContext(G),{iconOnly:s,size:n,variant:p,emphasis:i,color:m,disabled:c,...l}=t,D=M(t["aria-pressed"]),w="data-state"in t||t["aria-pressed"]===void 0?{}:{"data-state":D?"on":"off"},f={size:n??e.size,...i!==void 0?{emphasis:i}:{variant:p??(a?"ghost":e.backdrop?"raised":"soft")},color:m??(p||i?void 0:"gray"),...w};return o.createElement(P.Button,{asChild:!0,ref:r,disabled:c||a?.disabled||void 0},s?o.createElement(C,{...l,...f}):o.createElement(S,{...l,...f}))});h.displayName="Toolbar.Button";var g=o.forwardRef(({className:t,...r},e)=>(u("ToolbarSeparator"),o.createElement(P.Separator,{...r,ref:e,className:T("rt-ToolbarSeparator",t)})));g.displayName="Toolbar.Separator";var k={1:"2",2:"3",3:"4",4:"5"},O=o.forwardRef(({className:t,children:r,style:e,id:a},s)=>{let{size:n}=u("ToolbarTitle");return r==null||r===!1?null:o.createElement(v,{ref:s,as:"span",size:k[n],weight:"medium",truncate:!0,id:a,style:e,className:T("rt-ToolbarTitle",t)},r)});O.displayName="Toolbar.Title";var $=Object.assign(d,{Root:d,Group:N,Button:h,Separator:g,Title:O});export{d as a,N as b,h as c,g as d,O as e,$ as f};
|
|
2
|
+
//# sourceMappingURL=chunk-GDACOD53.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as U}from"./chunk-OMYAVTX6.js";import{a as K,b as F,c as j,e as E,f as O}from"./chunk-IND2NZIN.js";import{a as H,b as z,c as W}from"./chunk-UFJJTUOU.js";import{d as G}from"./chunk-IX5HIHVI.js";import{a as P}from"./chunk-XXHIMGBY.js";import{b as N}from"./chunk-6RZVKCNG.js";import{b as x}from"./chunk-FWB47YCH.js";import{a as D}from"./chunk-CNMFVJNC.js";import{a as ae}from"./chunk-OS3FCYZY.js";var oe={};ae(oe,{Group:()=>_,GroupContent:()=>re,GroupLabel:()=>ee,Menu:()=>$,MenuButton:()=>J,MenuItem:()=>X,MenuSub:()=>Q,MenuSubContent:()=>Z,MenuSubTrigger:()=>Y,Search:()=>te,Separator:()=>V});import*as e from"react";import d from"classnames";import*as f from"@radix-ui/react-accordion";var V=e.forwardRef(({className:r,...t},n)=>e.createElement(U,{...t,ref:n,className:d("rt-SidebarSeparator",r)}));V.displayName="Sidebar.Separator";var $=e.forwardRef(({className:r,...t},n)=>e.createElement("ul",{...t,ref:n,className:d("rt-SidebarMenu",r)}));$.displayName="Sidebar.Menu";var X=e.forwardRef(({className:r,...t},n)=>e.createElement("li",{...t,ref:n,className:d("rt-SidebarMenuItem",r)}));X.displayName="Sidebar.MenuItem";function ne(r){let t=[],n=[];return e.Children.forEach(r,a=>{if(typeof a=="string"||typeof a=="number")n.push(e.createElement("span",{key:n.length,className:"rt-SidebarMenuLabel"},a));else if(e.isValidElement(a)){let s=a;s.type==="svg"||s.props&&s.props.icon||typeof s.type=="function"&&(s.type.displayName?.includes("Icon")||s.type.name?.includes("Icon"))?t.push(a):n.push(a)}else a&&n.push(a)}),{icons:t,labels:n}}function k(r){if(typeof r=="string"||typeof r=="number")return e.createElement("span",{className:"rt-SidebarMenuLabel"},r);if(Array.isArray(r))return r.map((t,n)=>e.createElement(e.Fragment,{key:n},k(t)));if(e.isValidElement(r)){let t=r,n=t.props&&t.props.className||"";if(typeof t.type=="string"&&n.split(" ").includes("rt-SidebarMenuLabel"))return t;let s=k(t.props?.children);return e.cloneElement(t,{...t.props},s)}return r}var J=e.forwardRef(({asChild:r=!1,isActive:t=!1,shortcut:n,badge:a,className:s,children:l,onKeyDown:m,...M},i)=>{let c=N(),u=c?.size??"2",v=c?.presentation==="thin",w=r?x:"button",I=e.useCallback(o=>{if(o.key==="ArrowDown"||o.key==="ArrowUp"){let b=o.currentTarget.closest(".rt-SidebarContent, .rt-SidebarSearchPopover"),y=b?Array.from(b.querySelectorAll(".rt-SidebarMenuButton")).filter(h=>h.offsetParent!==null):[],p=y.indexOf(o.currentTarget),C=y[p+(o.key==="ArrowDown"?1:-1)];p!==-1&&C&&(o.preventDefault(),C.focus())}m?.(o)},[m]),S=e.useMemo(()=>k(l),[l]),{icons:R,labels:B}=e.useMemo(()=>v?ne(l):{icons:[],labels:[]},[v,l]),L=e.useMemo(()=>{if(!r)return null;try{let o=e.Children.only(S),b=o.props?.children,y=e.createElement(e.Fragment,null,b,a&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof a=="string"?e.createElement(P,{size:u,variant:"soft"},a):e.createElement(P,{size:a.size||u,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(D,{size:u},n)));return e.cloneElement(o,{...o.props},y)}catch{return S}},[r,S,a,n,u]);return e.createElement(w,{...M,ref:i,"aria-current":t?"page":void 0,className:d("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton",s),"data-active":t||void 0,onKeyDown:I},r?L:v&&R.length>0?e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},R),B.map((o,b)=>e.createElement(e.Fragment,{key:b},typeof o=="string"||typeof o=="number"?e.createElement("span",{className:"rt-SidebarMenuLabel"},o):o))):e.createElement(e.Fragment,null,S,a&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof a=="string"?e.createElement(P,{size:u,variant:"soft"},a):e.createElement(P,{size:a.size||u,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(D,{size:u},n))))});J.displayName="Sidebar.MenuButton";var T=e.createContext("accordion"),Q=e.forwardRef(({defaultOpen:r=!1,children:t,...n},a)=>(N()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...n,ref:a},e.createElement(K,null,e.createElement(T.Provider,{value:"dropdown"},t))):e.createElement("div",{...n,ref:a},e.createElement(T.Provider,{value:"accordion"},e.createElement(f.Root,{type:"single",collapsible:!0,defaultValue:r?"item":void 0},e.createElement(f.Item,{value:"item"},t)))));Q.displayName="Sidebar.MenuSub";var Y=e.forwardRef(({asChild:r=!1,className:t,children:n,...a},s)=>e.useContext(T)==="dropdown"?e.createElement(F,null,e.createElement("button",{...a,ref:s,type:"button","aria-haspopup":"menu",className:d("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",t)},n)):e.createElement(f.Header,{asChild:!0},e.createElement("div",null,e.createElement(f.Trigger,{...a,ref:s,asChild:r,className:d("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",t)},r?n:e.createElement(e.Fragment,null,n,e.createElement(G,{className:d("rt-BaseMenuSubTriggerIcon","rt-SidebarMenuSubTriggerIcon")}))))));Y.displayName="Sidebar.MenuSubTrigger";var Z=e.forwardRef(({className:r,children:t,...n},a)=>{let s=N();if(e.useContext(T)==="dropdown"){let m=i=>{if(Array.isArray(i))return i.map((c,u)=>e.createElement(e.Fragment,{key:u},m(c)));if(e.isValidElement(i)){if(i.type?.displayName==="Sidebar.MenuButton")return i.props?.children;let u=i.props?.children;if(u!==void 0)return e.cloneElement(i,{...i.props,children:m(u)})}return i},M=e.Children.map(t,(i,c)=>{if(e.isValidElement(i)&&i.type?.displayName==="Sidebar.MenuItem"){let u=i.props?.children,v=m(u);return e.createElement(E,{key:c,asChild:!0},v)}return e.createElement(E,{key:c,asChild:!0},m(i))});return e.createElement(j,{size:s?.size,className:d(r)},e.createElement(O,null,M))}return e.createElement(f.Content,{...n,ref:a,className:d("rt-SidebarMenuSubContent",r)},e.createElement("div",{className:"rt-SidebarMenuSubList"},t))});Z.displayName="Sidebar.MenuSubContent";var _=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:d("rt-BaseMenuGroup","rt-SidebarGroup",r)}));_.displayName="Sidebar.Group";var ee=e.forwardRef(({asChild:r=!1,className:t,...n},a)=>e.createElement(r?x:"div",{...n,ref:a,className:d("rt-BaseMenuLabel","rt-SidebarGroupLabel",t)}));ee.displayName="Sidebar.GroupLabel";var re=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:d("rt-SidebarGroupContent",r)}));re.displayName="Sidebar.GroupContent";var A=({className:r})=>e.createElement("svg",{className:r,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),q=({className:r})=>e.createElement("svg",{className:r,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),te=e.forwardRef(({value:r,onValueChange:t,placeholder:n="Search...",children:a,className:s,...l},m)=>{let M=N(),i=M?.presentation==="thin",c=e.useRef(null),u=e.useRef(null),w=`${e.useId()}-results`,I=e.useRef(r);I.current=r;let S=e.useRef(t);S.current=t;let R=n.replace(/\.+$/,""),B=e.useCallback(o=>{o.key==="Escape"&&I.current&&(o.preventDefault(),o.stopPropagation(),S.current(""),c.current?.focus())},[]),L=e.useCallback(o=>{let b=u.current;if(!b)return;let y=b.querySelector('[role="group"]');if(!y)return;let p=Array.from(y.querySelectorAll("a, button"));if(p.length===0)return;let C=document.activeElement,h=C===c.current,g=p.indexOf(C);if(o.key.length===1&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&!h&&g!==-1){c.current?.focus();return}switch(o.key){case"ArrowDown":{o.preventDefault(),h||g===-1?p[0]?.focus():g<p.length-1&&p[g+1]?.focus();break}case"ArrowUp":{o.preventDefault(),g<=0?c.current?.focus():p[g-1]?.focus();break}case"Home":{h||(o.preventDefault(),p[0]?.focus());break}case"End":{h||(o.preventDefault(),p[p.length-1]?.focus());break}}},[]);return i?e.createElement("div",{...l,ref:m,className:d("rt-SidebarSearch","rt-SidebarSearch--thin",s)},e.createElement(H,null,e.createElement(z,null,e.createElement("button",{type:"button",className:d("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarSearchTrigger"),"aria-label":R},e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},e.createElement(A,null)),e.createElement("span",{className:"rt-SidebarMenuLabel"},"Search"))),e.createElement(W,{side:"right",align:"start",size:"2",width:"280px","aria-label":R},e.createElement("div",{ref:u,className:"rt-SidebarSearchPopover",role:"search",onKeyDown:L},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(A,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:c,type:"search",className:"rt-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:B,placeholder:n,"aria-label":R,"aria-controls":a?w:void 0,autoFocus:!0}),r&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{t(""),c.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))),a&&e.createElement("div",{id:w,role:"group","aria-label":"Search results"},a))))):e.createElement("div",{...l,ref:m,className:d("rt-SidebarSearch","rt-SidebarSearch--expanded","rt-ShellPaneChrome",`rt-r-size-${M?.size??"2"}`,s),role:"search"},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(A,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:c,type:"search",className:"rt-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:B,placeholder:n,"aria-label":R}),r&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{t(""),c.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))))});te.displayName="Sidebar.Search";export{V as a,$ as b,X as c,J as d,Q as e,Y as f,Z as g,_ as h,ee as i,re as j,te as k,oe as l};
|
|
2
|
+
//# sourceMappingURL=chunk-GTXRD4FZ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/sidebar.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from './slot.js';\nimport * as Accordion from '@radix-ui/react-accordion';\nimport * as DropdownMenu from './dropdown-menu.js';\nimport * as Popover from './popover.js';\n\nimport { Separator } from './separator.js';\nimport { ThickChevronRightIcon } from './icons.js';\nimport { Kbd } from './kbd.js';\nimport { Badge } from './badge.js';\nimport { useSidebarVisual } from './_internal/pane-chrome.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { BadgeProps } from './badge.js';\n\n// Badge configuration type for sidebar menu buttons\ntype BadgeConfig = {\n content: React.ReactNode;\n variant?: BadgeProps['variant'];\n size?: BadgeProps['size'];\n color?: BadgeProps['color'];\n radius?: BadgeProps['radius'];\n};\n\n// Sidebar separator\ninterface SidebarSeparatorProps extends ComponentPropsWithout<typeof Separator, RemovedProps> {}\n\nconst SidebarSeparator = React.forwardRef<React.ComponentRef<typeof Separator>, SidebarSeparatorProps>(({ className, ...props }, forwardedRef) => (\n <Separator {...props} ref={forwardedRef} className={classNames('rt-SidebarSeparator', className)} />\n));\nSidebarSeparator.displayName = 'Sidebar.Separator';\n\n// Menu components - styled like dropdown menus, but semantically a navigation list.\n// No menu/menuitem roles: those promise an application menu, which a list of links is not.\ninterface SidebarMenuProps extends React.ComponentPropsWithoutRef<'ul'> {}\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(({ className, ...props }, forwardedRef) => (\n <ul {...props} ref={forwardedRef} className={classNames('rt-SidebarMenu', className)} />\n));\nSidebarMenu.displayName = 'Sidebar.Menu';\n\ninterface SidebarMenuItemProps extends React.ComponentPropsWithoutRef<'li'> {}\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, SidebarMenuItemProps>(({ className, ...props }, forwardedRef) => (\n <li {...props} ref={forwardedRef} className={classNames('rt-SidebarMenuItem', className)} />\n));\nSidebarMenuItem.displayName = 'Sidebar.MenuItem';\n\ninterface SidebarMenuButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n asChild?: boolean;\n isActive?: boolean;\n shortcut?: React.ReactNode;\n badge?: string | BadgeConfig;\n}\n\n// Extracted to module scope to avoid re-creation on every render\nfunction separateIconsAndLabels(node: React.ReactNode): { icons: React.ReactNode[]; labels: React.ReactNode[] } {\n const icons: React.ReactNode[] = [];\n const labels: React.ReactNode[] = [];\n\n React.Children.forEach(node, (child) => {\n if (typeof child === 'string' || typeof child === 'number') {\n labels.push(<span key={labels.length} className=\"rt-SidebarMenuLabel\">{child}</span>);\n } else if (React.isValidElement(child)) {\n const el = child as React.ReactElement<any>;\n if (el.type === 'svg' || (el.props && el.props.icon) || (typeof el.type === 'function' && ((el.type as any).displayName?.includes('Icon') || (el.type as any).name?.includes('Icon')))) {\n icons.push(child);\n } else {\n labels.push(child);\n }\n } else if (child) {\n labels.push(child);\n }\n });\n\n return { icons, labels };\n}\n\nfunction wrapTextNodes(node: React.ReactNode): React.ReactNode {\n if (typeof node === 'string' || typeof node === 'number') {\n return <span className=\"rt-SidebarMenuLabel\">{node}</span>;\n }\n if (Array.isArray(node)) {\n return node.map((child, index) => <React.Fragment key={index}>{wrapTextNodes(child)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const el = node as React.ReactElement<any>;\n const className: string = (el.props && (el.props as any).className) || '';\n const isAlreadyLabel = typeof el.type === 'string' && className.split(' ').includes('rt-SidebarMenuLabel');\n if (isAlreadyLabel) return el;\n const newChildren = wrapTextNodes((el.props as any)?.children);\n return React.cloneElement(el, { ...(el.props as any) }, newChildren);\n }\n return node;\n}\n\nconst SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n ({ asChild = false, isActive = false, shortcut, badge, className, children, onKeyDown, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const sidebarSize = visual?.size ?? '2';\n const isThinMode = visual?.presentation === 'thin';\n\n const Comp = asChild ? Slot : 'button';\n\n // Enter and Space are left to the native button or link. Arrow keys move between\n // the visible buttons of the same sidebar, as a convenience on top of Tab.\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n const scope = event.currentTarget.closest('.rt-SidebarContent, .rt-SidebarSearchPopover');\n const buttons = scope\n ? Array.from(scope.querySelectorAll<HTMLElement>('.rt-SidebarMenuButton')).filter((el) => el.offsetParent !== null)\n : [];\n const index = buttons.indexOf(event.currentTarget);\n const next = buttons[index + (event.key === 'ArrowDown' ? 1 : -1)];\n if (index !== -1 && next) {\n event.preventDefault();\n next.focus();\n }\n }\n onKeyDown?.(event);\n },\n [onKeyDown],\n );\n\n // Memoize child processing to avoid re-traversal on every render\n const processedChildren = React.useMemo(() => wrapTextNodes(children), [children]);\n\n // For thin mode, separate icons into a wrapper for targeted background styling\n const { icons, labels } = React.useMemo(\n () => isThinMode ? separateIconsAndLabels(children) : { icons: [] as React.ReactNode[], labels: [] as React.ReactNode[] },\n [isThinMode, children],\n );\n\n // When rendering asChild, Slot expects a single child element. We still want to\n // append optional badge/shortcut inside that element so they render with Link.\n const slottedChildren = React.useMemo(() => {\n if (!asChild) return null;\n try {\n const onlyChild = React.Children.only(processedChildren as React.ReactElement<any>) as React.ReactElement<any>;\n const originalInnerChildren = (onlyChild.props as any)?.children;\n const enhancedInnerChildren = (\n <>\n {originalInnerChildren}\n {badge && (\n <div className=\"rt-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Badge size={sidebarSize} variant=\"soft\">\n {badge}\n </Badge>\n ) : (\n <Badge size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Badge>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n );\n return React.cloneElement(onlyChild, { ...(onlyChild.props as any) }, enhancedInnerChildren);\n } catch {\n // Fallback: if multiple children were passed incorrectly, just return processedChildren\n return processedChildren as React.ReactNode;\n }\n }, [asChild, processedChildren, badge, shortcut, sidebarSize]);\n\n return (\n <Comp\n {...props}\n ref={forwardedRef}\n aria-current={isActive ? 'page' : undefined}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', className)}\n data-active={isActive || undefined}\n onKeyDown={handleKeyDown}\n >\n {asChild ? (\n slottedChildren\n ) : isThinMode && icons.length > 0 ? (\n <>\n <span className=\"rt-SidebarMenuIconWrapper\">{icons}</span>\n {labels.map((label, index) => (\n <React.Fragment key={index}>\n {typeof label === 'string' || typeof label === 'number' ? (\n <span className=\"rt-SidebarMenuLabel\">{label}</span>\n ) : (\n label\n )}\n </React.Fragment>\n ))}\n </>\n ) : (\n <>\n {processedChildren}\n {badge && (\n <div className=\"rt-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Badge size={sidebarSize} variant=\"soft\">\n {badge}\n </Badge>\n ) : (\n <Badge size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Badge>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n )}\n </Comp>\n );\n },\n);\nSidebarMenuButton.displayName = 'Sidebar.MenuButton';\n\n// Sub-menu components: Accordion in expanded, Dropdown in thin\nconst SidebarSubMenuModeContext = React.createContext<'accordion' | 'dropdown'>('accordion');\ninterface SidebarMenuSubProps extends React.ComponentPropsWithoutRef<'div'> {\n defaultOpen?: boolean;\n}\n\nconst SidebarMenuSub = React.forwardRef<HTMLDivElement, SidebarMenuSubProps>(({ defaultOpen = false, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode: 'accordion' | 'dropdown' = visual?.presentation === 'thin' ? 'dropdown' : 'accordion';\n\n if (mode === 'dropdown') {\n return (\n <div {...props} ref={forwardedRef}>\n <DropdownMenu.Root>\n <SidebarSubMenuModeContext.Provider value=\"dropdown\">{children}</SidebarSubMenuModeContext.Provider>\n </DropdownMenu.Root>\n </div>\n );\n }\n\n return (\n <div {...props} ref={forwardedRef}>\n <SidebarSubMenuModeContext.Provider value=\"accordion\">\n <Accordion.Root type=\"single\" collapsible defaultValue={defaultOpen ? 'item' : undefined}>\n <Accordion.Item value=\"item\">{children}</Accordion.Item>\n </Accordion.Root>\n </SidebarSubMenuModeContext.Provider>\n </div>\n );\n});\nSidebarMenuSub.displayName = 'Sidebar.MenuSub';\n\ninterface SidebarMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof Accordion.Trigger> {\n asChild?: boolean;\n}\n\nconst SidebarMenuSubTrigger = React.forwardRef<React.ElementRef<typeof Accordion.Trigger>, SidebarMenuSubTriggerProps>(\n ({ asChild = false, className, children, ...props }, forwardedRef) => {\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n return (\n <DropdownMenu.Trigger>\n <button\n {...(props as any)}\n ref={forwardedRef as any}\n type=\"button\"\n aria-haspopup=\"menu\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarMenuSubTrigger', className)}\n >\n {children}\n </button>\n </DropdownMenu.Trigger>\n );\n }\n\n return (\n <Accordion.Header asChild>\n <div>\n <Accordion.Trigger\n {...props}\n ref={forwardedRef}\n asChild={asChild}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarMenuSubTrigger', className)}\n >\n {asChild ? (\n children\n ) : (\n <>\n {children}\n <ThickChevronRightIcon className={classNames('rt-BaseMenuSubTriggerIcon', 'rt-SidebarMenuSubTriggerIcon')} />\n </>\n )}\n </Accordion.Trigger>\n </div>\n </Accordion.Header>\n );\n },\n);\nSidebarMenuSubTrigger.displayName = 'Sidebar.MenuSubTrigger';\n\ninterface SidebarMenuSubContentProps extends React.ComponentPropsWithoutRef<typeof Accordion.Content> {}\n\nconst SidebarMenuSubContent = React.forwardRef<React.ElementRef<typeof Accordion.Content>, SidebarMenuSubContentProps>(({ className, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n const unwrapMenuButton = (node: React.ReactNode): React.ReactNode => {\n if (Array.isArray(node)) {\n return node.map((n, i) => <React.Fragment key={i}>{unwrapMenuButton(n)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const typeDisplay = (node.type as any)?.displayName;\n if (typeDisplay === 'Sidebar.MenuButton') {\n return (node.props as any)?.children;\n }\n const child = (node.props as any)?.children;\n if (child !== undefined) {\n return React.cloneElement(node as any, { ...(node.props as any), children: unwrapMenuButton(child) });\n }\n }\n return node;\n };\n\n const normalized = React.Children.map(children as React.ReactNode, (child, index) => {\n if (React.isValidElement(child) && (child.type as any)?.displayName === 'Sidebar.MenuItem') {\n const itemChildren = (child.props as any)?.children;\n const content = unwrapMenuButton(itemChildren);\n return (\n <DropdownMenu.Item key={index} asChild>\n {content as any}\n </DropdownMenu.Item>\n );\n }\n // Fallback: wrap raw nodes too for consistent menu styling\n return (\n <DropdownMenu.Item key={index} asChild>\n {unwrapMenuButton(child) as any}\n </DropdownMenu.Item>\n );\n });\n\n // DropdownMenu only supports sizes 1 and 2, so map size 3 to 2\n const dropdownSize = visual?.size === '3' ? '2' : visual?.size;\n return (\n <DropdownMenu.Content size={dropdownSize} className={classNames(className)}>\n <DropdownMenu.Group>{normalized}</DropdownMenu.Group>\n </DropdownMenu.Content>\n );\n }\n\n return (\n <Accordion.Content {...props} ref={forwardedRef} className={classNames('rt-SidebarMenuSubContent', className)}>\n <div className=\"rt-SidebarMenuSubList\">{children}</div>\n </Accordion.Content>\n );\n});\nSidebarMenuSubContent.displayName = 'Sidebar.MenuSubContent';\n\n// Group components. The label is plain text: no role, so it isn't announced as an empty group.\ninterface SidebarGroupProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, SidebarGroupProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('rt-BaseMenuGroup', 'rt-SidebarGroup', className)} />\n));\nSidebarGroup.displayName = 'Sidebar.Group';\n\ninterface SidebarGroupLabelProps extends React.ComponentPropsWithoutRef<'div'> {\n asChild?: boolean;\n}\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, SidebarGroupLabelProps>(({ asChild = false, className, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'div';\n\n return <Comp {...props} ref={forwardedRef} className={classNames('rt-BaseMenuLabel', 'rt-SidebarGroupLabel', className)} />;\n});\nSidebarGroupLabel.displayName = 'Sidebar.GroupLabel';\n\ninterface SidebarGroupContentProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, SidebarGroupContentProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarGroupContent', className)} />\n));\nSidebarGroupContent.displayName = 'Sidebar.GroupContent';\n\n// Search component: inline input in expanded, popover trigger in thin\ninterface SidebarSearchProps extends React.ComponentPropsWithoutRef<'div'> {\n value: string;\n onValueChange: (value: string) => void;\n placeholder?: string;\n children?: React.ReactNode;\n}\n\nconst SearchIcon = ({ className }: { className?: string }) => (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst ClearIcon = ({ className }: { className?: string }) => (\n <svg className={className} width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\nconst SidebarSearch = React.forwardRef<HTMLDivElement, SidebarSearchProps>(\n ({ value, onValueChange, placeholder = 'Search...', children, className, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const isThin = visual?.presentation === 'thin';\n const inputRef = React.useRef<HTMLInputElement>(null);\n const popoverRef = React.useRef<HTMLDivElement>(null);\n const searchId = React.useId();\n const resultsId = `${searchId}-results`;\n\n // Stable refs for values used in callbacks \u2014 avoids recreating handlers on every keystroke\n const valueRef = React.useRef(value);\n valueRef.current = value;\n const onValueChangeRef = React.useRef(onValueChange);\n onValueChangeRef.current = onValueChange;\n\n // Derive a clean aria-label from placeholder (strip trailing dots/ellipsis)\n const searchLabel = placeholder.replace(/\\.+$/, '');\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Escape' && valueRef.current) {\n e.preventDefault();\n e.stopPropagation();\n onValueChangeRef.current('');\n inputRef.current?.focus();\n }\n },\n [],\n );\n\n // Arrow key navigation within the popover (input \u2194 results)\n const handlePopoverKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const container = popoverRef.current;\n if (!container) return;\n\n const resultsGroup = container.querySelector('[role=\"group\"]');\n if (!resultsGroup) return;\n\n const items = Array.from(\n resultsGroup.querySelectorAll<HTMLElement>('a, button'),\n );\n if (items.length === 0) return;\n\n const active = document.activeElement as HTMLElement;\n const isOnInput = active === inputRef.current;\n const currentIndex = items.indexOf(active);\n\n // Typing while a result is focused \u2192 redirect focus to input\n if (\n e.key.length === 1 &&\n !e.ctrlKey &&\n !e.metaKey &&\n !e.altKey &&\n !isOnInput &&\n currentIndex !== -1\n ) {\n inputRef.current?.focus();\n return;\n }\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n if (isOnInput || currentIndex === -1) {\n items[0]?.focus();\n } else if (currentIndex < items.length - 1) {\n items[currentIndex + 1]?.focus();\n }\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n if (currentIndex <= 0) {\n inputRef.current?.focus();\n } else {\n items[currentIndex - 1]?.focus();\n }\n break;\n }\n case 'Home': {\n // Only intercept when focused on a result, not the input (where Home moves cursor)\n if (!isOnInput) {\n e.preventDefault();\n items[0]?.focus();\n }\n break;\n }\n case 'End': {\n if (!isOnInput) {\n e.preventDefault();\n items[items.length - 1]?.focus();\n }\n break;\n }\n }\n },\n [],\n );\n\n if (isThin) {\n return (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarSearch', 'rt-SidebarSearch--thin', className)}>\n <Popover.Root>\n <Popover.Trigger>\n <button\n type=\"button\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarSearchTrigger')}\n aria-label={searchLabel}\n >\n <span className=\"rt-SidebarMenuIconWrapper\">\n <SearchIcon />\n </span>\n <span className=\"rt-SidebarMenuLabel\">Search</span>\n </button>\n </Popover.Trigger>\n <Popover.Content side=\"right\" align=\"start\" size=\"2\" width=\"280px\" aria-label={searchLabel}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- keyDown manages arrow-key navigation between input and results, which is accessibility-enhancing */}\n <div\n ref={popoverRef}\n className=\"rt-SidebarSearchPopover\"\n role=\"search\"\n onKeyDown={handlePopoverKeyDown}\n >\n <div className=\"rt-SidebarSearchInputWrapper\">\n <SearchIcon className=\"rt-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"rt-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n aria-controls={children ? resultsId : undefined}\n // eslint-disable-next-line jsx-a11y/no-autofocus -- intentional: popover opens on user action, focusing the input is expected UX\n autoFocus\n />\n {value && (\n <button\n type=\"button\"\n className=\"rt-reset rt-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n {children && (\n <div id={resultsId} role=\"group\" aria-label=\"Search results\">\n {children}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Root>\n </div>\n );\n }\n\n // Expanded mode: inline input\n return (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarSearch', 'rt-SidebarSearch--expanded', 'rt-ShellPaneChrome', `rt-r-size-${visual?.size ?? '2'}`, className)} role=\"search\">\n <div className=\"rt-SidebarSearchInputWrapper\">\n <SearchIcon className=\"rt-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"rt-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n />\n {value && (\n <button\n type=\"button\"\n className=\"rt-reset rt-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n </div>\n );\n },\n);\nSidebarSearch.displayName = 'Sidebar.Search';\n\n// Export all components following shadcn's pattern\nexport {\n SidebarSeparator as Separator,\n SidebarMenu as Menu,\n SidebarMenuItem as MenuItem,\n SidebarMenuButton as MenuButton,\n SidebarMenuSub as MenuSub,\n SidebarMenuSubTrigger as MenuSubTrigger,\n SidebarMenuSubContent as MenuSubContent,\n SidebarGroup as Group,\n SidebarGroupLabel as GroupLabel,\n SidebarGroupContent as GroupContent,\n SidebarSearch as Search,\n};\n\nexport type { BadgeConfig };\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["sidebar_exports", "__export", "SidebarGroup", "SidebarGroupContent", "SidebarGroupLabel", "SidebarMenu", "SidebarMenuButton", "SidebarMenuItem", "SidebarMenuSub", "SidebarMenuSubContent", "SidebarMenuSubTrigger", "SidebarSearch", "SidebarSeparator", "React", "classNames", "Accordion", "SidebarSeparator", "className", "props", "forwardedRef", "Separator", "classNames", "SidebarMenu", "SidebarMenuItem", "separateIconsAndLabels", "node", "icons", "labels", "child", "el", "wrapTextNodes", "index", "newChildren", "SidebarMenuButton", "asChild", "isActive", "shortcut", "badge", "children", "onKeyDown", "visual", "useSidebarVisual", "sidebarSize", "isThinMode", "Comp", "Slot", "handleKeyDown", "event", "scope", "buttons", "next", "processedChildren", "slottedChildren", "onlyChild", "originalInnerChildren", "enhancedInnerChildren", "Badge", "Kbd", "label", "SidebarSubMenuModeContext", "SidebarMenuSub", "defaultOpen", "DropdownMenuRoot", "SidebarMenuSubTrigger", "DropdownMenuTrigger", "ThickChevronRightIcon", "SidebarMenuSubContent", "unwrapMenuButton", "n", "i", "normalized", "itemChildren", "content", "DropdownMenuItem", "
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from './slot.js';\nimport * as Accordion from '@radix-ui/react-accordion';\nimport * as DropdownMenu from './dropdown-menu.js';\nimport * as Popover from './popover.js';\n\nimport { Separator } from './separator.js';\nimport { ThickChevronRightIcon } from './icons.js';\nimport { Kbd } from './kbd.js';\nimport { Badge } from './badge.js';\nimport { useSidebarVisual } from './_internal/pane-chrome.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { BadgeProps } from './badge.js';\n\n// Badge configuration type for sidebar menu buttons\ntype BadgeConfig = {\n content: React.ReactNode;\n variant?: BadgeProps['variant'];\n size?: BadgeProps['size'];\n color?: BadgeProps['color'];\n radius?: BadgeProps['radius'];\n};\n\n// Sidebar separator\ninterface SidebarSeparatorProps extends ComponentPropsWithout<typeof Separator, RemovedProps> {}\n\nconst SidebarSeparator = React.forwardRef<React.ComponentRef<typeof Separator>, SidebarSeparatorProps>(({ className, ...props }, forwardedRef) => (\n <Separator {...props} ref={forwardedRef} className={classNames('rt-SidebarSeparator', className)} />\n));\nSidebarSeparator.displayName = 'Sidebar.Separator';\n\n// Menu components - styled like dropdown menus, but semantically a navigation list.\n// No menu/menuitem roles: those promise an application menu, which a list of links is not.\ninterface SidebarMenuProps extends React.ComponentPropsWithoutRef<'ul'> {}\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(({ className, ...props }, forwardedRef) => (\n <ul {...props} ref={forwardedRef} className={classNames('rt-SidebarMenu', className)} />\n));\nSidebarMenu.displayName = 'Sidebar.Menu';\n\ninterface SidebarMenuItemProps extends React.ComponentPropsWithoutRef<'li'> {}\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, SidebarMenuItemProps>(({ className, ...props }, forwardedRef) => (\n <li {...props} ref={forwardedRef} className={classNames('rt-SidebarMenuItem', className)} />\n));\nSidebarMenuItem.displayName = 'Sidebar.MenuItem';\n\ninterface SidebarMenuButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n asChild?: boolean;\n isActive?: boolean;\n shortcut?: React.ReactNode;\n badge?: string | BadgeConfig;\n}\n\n// Extracted to module scope to avoid re-creation on every render\nfunction separateIconsAndLabels(node: React.ReactNode): { icons: React.ReactNode[]; labels: React.ReactNode[] } {\n const icons: React.ReactNode[] = [];\n const labels: React.ReactNode[] = [];\n\n React.Children.forEach(node, (child) => {\n if (typeof child === 'string' || typeof child === 'number') {\n labels.push(<span key={labels.length} className=\"rt-SidebarMenuLabel\">{child}</span>);\n } else if (React.isValidElement(child)) {\n const el = child as React.ReactElement<any>;\n if (el.type === 'svg' || (el.props && el.props.icon) || (typeof el.type === 'function' && ((el.type as any).displayName?.includes('Icon') || (el.type as any).name?.includes('Icon')))) {\n icons.push(child);\n } else {\n labels.push(child);\n }\n } else if (child) {\n labels.push(child);\n }\n });\n\n return { icons, labels };\n}\n\nfunction wrapTextNodes(node: React.ReactNode): React.ReactNode {\n if (typeof node === 'string' || typeof node === 'number') {\n return <span className=\"rt-SidebarMenuLabel\">{node}</span>;\n }\n if (Array.isArray(node)) {\n return node.map((child, index) => <React.Fragment key={index}>{wrapTextNodes(child)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const el = node as React.ReactElement<any>;\n const className: string = (el.props && (el.props as any).className) || '';\n const isAlreadyLabel = typeof el.type === 'string' && className.split(' ').includes('rt-SidebarMenuLabel');\n if (isAlreadyLabel) return el;\n const newChildren = wrapTextNodes((el.props as any)?.children);\n return React.cloneElement(el, { ...(el.props as any) }, newChildren);\n }\n return node;\n}\n\nconst SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n ({ asChild = false, isActive = false, shortcut, badge, className, children, onKeyDown, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const sidebarSize = visual?.size ?? '2';\n const isThinMode = visual?.presentation === 'thin';\n\n const Comp = asChild ? Slot : 'button';\n\n // Enter and Space are left to the native button or link. Arrow keys move between\n // the visible buttons of the same sidebar, as a convenience on top of Tab.\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n const scope = event.currentTarget.closest('.rt-SidebarContent, .rt-SidebarSearchPopover');\n const buttons = scope\n ? Array.from(scope.querySelectorAll<HTMLElement>('.rt-SidebarMenuButton')).filter((el) => el.offsetParent !== null)\n : [];\n const index = buttons.indexOf(event.currentTarget);\n const next = buttons[index + (event.key === 'ArrowDown' ? 1 : -1)];\n if (index !== -1 && next) {\n event.preventDefault();\n next.focus();\n }\n }\n onKeyDown?.(event);\n },\n [onKeyDown],\n );\n\n // Memoize child processing to avoid re-traversal on every render\n const processedChildren = React.useMemo(() => wrapTextNodes(children), [children]);\n\n // For thin mode, separate icons into a wrapper for targeted background styling\n const { icons, labels } = React.useMemo(\n () => isThinMode ? separateIconsAndLabels(children) : { icons: [] as React.ReactNode[], labels: [] as React.ReactNode[] },\n [isThinMode, children],\n );\n\n // When rendering asChild, Slot expects a single child element. We still want to\n // append optional badge/shortcut inside that element so they render with Link.\n const slottedChildren = React.useMemo(() => {\n if (!asChild) return null;\n try {\n const onlyChild = React.Children.only(processedChildren as React.ReactElement<any>) as React.ReactElement<any>;\n const originalInnerChildren = (onlyChild.props as any)?.children;\n const enhancedInnerChildren = (\n <>\n {originalInnerChildren}\n {badge && (\n <div className=\"rt-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Badge size={sidebarSize} variant=\"soft\">\n {badge}\n </Badge>\n ) : (\n <Badge size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Badge>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n );\n return React.cloneElement(onlyChild, { ...(onlyChild.props as any) }, enhancedInnerChildren);\n } catch {\n // Fallback: if multiple children were passed incorrectly, just return processedChildren\n return processedChildren as React.ReactNode;\n }\n }, [asChild, processedChildren, badge, shortcut, sidebarSize]);\n\n return (\n <Comp\n {...props}\n ref={forwardedRef}\n aria-current={isActive ? 'page' : undefined}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', className)}\n data-active={isActive || undefined}\n onKeyDown={handleKeyDown}\n >\n {asChild ? (\n slottedChildren\n ) : isThinMode && icons.length > 0 ? (\n <>\n <span className=\"rt-SidebarMenuIconWrapper\">{icons}</span>\n {labels.map((label, index) => (\n <React.Fragment key={index}>\n {typeof label === 'string' || typeof label === 'number' ? (\n <span className=\"rt-SidebarMenuLabel\">{label}</span>\n ) : (\n label\n )}\n </React.Fragment>\n ))}\n </>\n ) : (\n <>\n {processedChildren}\n {badge && (\n <div className=\"rt-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Badge size={sidebarSize} variant=\"soft\">\n {badge}\n </Badge>\n ) : (\n <Badge size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Badge>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n )}\n </Comp>\n );\n },\n);\nSidebarMenuButton.displayName = 'Sidebar.MenuButton';\n\n// Sub-menu components: Accordion in expanded, Dropdown in thin\nconst SidebarSubMenuModeContext = React.createContext<'accordion' | 'dropdown'>('accordion');\ninterface SidebarMenuSubProps extends React.ComponentPropsWithoutRef<'div'> {\n defaultOpen?: boolean;\n}\n\nconst SidebarMenuSub = React.forwardRef<HTMLDivElement, SidebarMenuSubProps>(({ defaultOpen = false, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode: 'accordion' | 'dropdown' = visual?.presentation === 'thin' ? 'dropdown' : 'accordion';\n\n if (mode === 'dropdown') {\n return (\n <div {...props} ref={forwardedRef}>\n <DropdownMenu.Root>\n <SidebarSubMenuModeContext.Provider value=\"dropdown\">{children}</SidebarSubMenuModeContext.Provider>\n </DropdownMenu.Root>\n </div>\n );\n }\n\n return (\n <div {...props} ref={forwardedRef}>\n <SidebarSubMenuModeContext.Provider value=\"accordion\">\n <Accordion.Root type=\"single\" collapsible defaultValue={defaultOpen ? 'item' : undefined}>\n <Accordion.Item value=\"item\">{children}</Accordion.Item>\n </Accordion.Root>\n </SidebarSubMenuModeContext.Provider>\n </div>\n );\n});\nSidebarMenuSub.displayName = 'Sidebar.MenuSub';\n\ninterface SidebarMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof Accordion.Trigger> {\n asChild?: boolean;\n}\n\nconst SidebarMenuSubTrigger = React.forwardRef<React.ElementRef<typeof Accordion.Trigger>, SidebarMenuSubTriggerProps>(\n ({ asChild = false, className, children, ...props }, forwardedRef) => {\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n return (\n <DropdownMenu.Trigger>\n <button\n {...(props as any)}\n ref={forwardedRef as any}\n type=\"button\"\n aria-haspopup=\"menu\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarMenuSubTrigger', className)}\n >\n {children}\n </button>\n </DropdownMenu.Trigger>\n );\n }\n\n return (\n <Accordion.Header asChild>\n <div>\n <Accordion.Trigger\n {...props}\n ref={forwardedRef}\n asChild={asChild}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarMenuSubTrigger', className)}\n >\n {asChild ? (\n children\n ) : (\n <>\n {children}\n <ThickChevronRightIcon className={classNames('rt-BaseMenuSubTriggerIcon', 'rt-SidebarMenuSubTriggerIcon')} />\n </>\n )}\n </Accordion.Trigger>\n </div>\n </Accordion.Header>\n );\n },\n);\nSidebarMenuSubTrigger.displayName = 'Sidebar.MenuSubTrigger';\n\ninterface SidebarMenuSubContentProps extends React.ComponentPropsWithoutRef<typeof Accordion.Content> {}\n\nconst SidebarMenuSubContent = React.forwardRef<React.ElementRef<typeof Accordion.Content>, SidebarMenuSubContentProps>(({ className, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n const unwrapMenuButton = (node: React.ReactNode): React.ReactNode => {\n if (Array.isArray(node)) {\n return node.map((n, i) => <React.Fragment key={i}>{unwrapMenuButton(n)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const typeDisplay = (node.type as any)?.displayName;\n if (typeDisplay === 'Sidebar.MenuButton') {\n return (node.props as any)?.children;\n }\n const child = (node.props as any)?.children;\n if (child !== undefined) {\n return React.cloneElement(node as any, { ...(node.props as any), children: unwrapMenuButton(child) });\n }\n }\n return node;\n };\n\n const normalized = React.Children.map(children as React.ReactNode, (child, index) => {\n if (React.isValidElement(child) && (child.type as any)?.displayName === 'Sidebar.MenuItem') {\n const itemChildren = (child.props as any)?.children;\n const content = unwrapMenuButton(itemChildren);\n return (\n <DropdownMenu.Item key={index} asChild>\n {content as any}\n </DropdownMenu.Item>\n );\n }\n // Fallback: wrap raw nodes too for consistent menu styling\n return (\n <DropdownMenu.Item key={index} asChild>\n {unwrapMenuButton(child) as any}\n </DropdownMenu.Item>\n );\n });\n\n return (\n <DropdownMenu.Content size={visual?.size} className={classNames(className)}>\n <DropdownMenu.Group>{normalized}</DropdownMenu.Group>\n </DropdownMenu.Content>\n );\n }\n\n return (\n <Accordion.Content {...props} ref={forwardedRef} className={classNames('rt-SidebarMenuSubContent', className)}>\n <div className=\"rt-SidebarMenuSubList\">{children}</div>\n </Accordion.Content>\n );\n});\nSidebarMenuSubContent.displayName = 'Sidebar.MenuSubContent';\n\n// Group components. The label is plain text: no role, so it isn't announced as an empty group.\ninterface SidebarGroupProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, SidebarGroupProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('rt-BaseMenuGroup', 'rt-SidebarGroup', className)} />\n));\nSidebarGroup.displayName = 'Sidebar.Group';\n\ninterface SidebarGroupLabelProps extends React.ComponentPropsWithoutRef<'div'> {\n asChild?: boolean;\n}\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, SidebarGroupLabelProps>(({ asChild = false, className, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'div';\n\n return <Comp {...props} ref={forwardedRef} className={classNames('rt-BaseMenuLabel', 'rt-SidebarGroupLabel', className)} />;\n});\nSidebarGroupLabel.displayName = 'Sidebar.GroupLabel';\n\ninterface SidebarGroupContentProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, SidebarGroupContentProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarGroupContent', className)} />\n));\nSidebarGroupContent.displayName = 'Sidebar.GroupContent';\n\n// Search component: inline input in expanded, popover trigger in thin\ninterface SidebarSearchProps extends React.ComponentPropsWithoutRef<'div'> {\n value: string;\n onValueChange: (value: string) => void;\n placeholder?: string;\n children?: React.ReactNode;\n}\n\nconst SearchIcon = ({ className }: { className?: string }) => (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst ClearIcon = ({ className }: { className?: string }) => (\n <svg className={className} width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\nconst SidebarSearch = React.forwardRef<HTMLDivElement, SidebarSearchProps>(\n ({ value, onValueChange, placeholder = 'Search...', children, className, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const isThin = visual?.presentation === 'thin';\n const inputRef = React.useRef<HTMLInputElement>(null);\n const popoverRef = React.useRef<HTMLDivElement>(null);\n const searchId = React.useId();\n const resultsId = `${searchId}-results`;\n\n // Stable refs for values used in callbacks \u2014 avoids recreating handlers on every keystroke\n const valueRef = React.useRef(value);\n valueRef.current = value;\n const onValueChangeRef = React.useRef(onValueChange);\n onValueChangeRef.current = onValueChange;\n\n // Derive a clean aria-label from placeholder (strip trailing dots/ellipsis)\n const searchLabel = placeholder.replace(/\\.+$/, '');\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Escape' && valueRef.current) {\n e.preventDefault();\n e.stopPropagation();\n onValueChangeRef.current('');\n inputRef.current?.focus();\n }\n },\n [],\n );\n\n // Arrow key navigation within the popover (input \u2194 results)\n const handlePopoverKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const container = popoverRef.current;\n if (!container) return;\n\n const resultsGroup = container.querySelector('[role=\"group\"]');\n if (!resultsGroup) return;\n\n const items = Array.from(\n resultsGroup.querySelectorAll<HTMLElement>('a, button'),\n );\n if (items.length === 0) return;\n\n const active = document.activeElement as HTMLElement;\n const isOnInput = active === inputRef.current;\n const currentIndex = items.indexOf(active);\n\n // Typing while a result is focused \u2192 redirect focus to input\n if (\n e.key.length === 1 &&\n !e.ctrlKey &&\n !e.metaKey &&\n !e.altKey &&\n !isOnInput &&\n currentIndex !== -1\n ) {\n inputRef.current?.focus();\n return;\n }\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n if (isOnInput || currentIndex === -1) {\n items[0]?.focus();\n } else if (currentIndex < items.length - 1) {\n items[currentIndex + 1]?.focus();\n }\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n if (currentIndex <= 0) {\n inputRef.current?.focus();\n } else {\n items[currentIndex - 1]?.focus();\n }\n break;\n }\n case 'Home': {\n // Only intercept when focused on a result, not the input (where Home moves cursor)\n if (!isOnInput) {\n e.preventDefault();\n items[0]?.focus();\n }\n break;\n }\n case 'End': {\n if (!isOnInput) {\n e.preventDefault();\n items[items.length - 1]?.focus();\n }\n break;\n }\n }\n },\n [],\n );\n\n if (isThin) {\n return (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarSearch', 'rt-SidebarSearch--thin', className)}>\n <Popover.Root>\n <Popover.Trigger>\n <button\n type=\"button\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarSearchTrigger')}\n aria-label={searchLabel}\n >\n <span className=\"rt-SidebarMenuIconWrapper\">\n <SearchIcon />\n </span>\n <span className=\"rt-SidebarMenuLabel\">Search</span>\n </button>\n </Popover.Trigger>\n <Popover.Content side=\"right\" align=\"start\" size=\"2\" width=\"280px\" aria-label={searchLabel}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- keyDown manages arrow-key navigation between input and results, which is accessibility-enhancing */}\n <div\n ref={popoverRef}\n className=\"rt-SidebarSearchPopover\"\n role=\"search\"\n onKeyDown={handlePopoverKeyDown}\n >\n <div className=\"rt-SidebarSearchInputWrapper\">\n <SearchIcon className=\"rt-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"rt-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n aria-controls={children ? resultsId : undefined}\n // eslint-disable-next-line jsx-a11y/no-autofocus -- intentional: popover opens on user action, focusing the input is expected UX\n autoFocus\n />\n {value && (\n <button\n type=\"button\"\n className=\"rt-reset rt-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n {children && (\n <div id={resultsId} role=\"group\" aria-label=\"Search results\">\n {children}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Root>\n </div>\n );\n }\n\n // Expanded mode: inline input\n return (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarSearch', 'rt-SidebarSearch--expanded', 'rt-ShellPaneChrome', `rt-r-size-${visual?.size ?? '2'}`, className)} role=\"search\">\n <div className=\"rt-SidebarSearchInputWrapper\">\n <SearchIcon className=\"rt-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"rt-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n />\n {value && (\n <button\n type=\"button\"\n className=\"rt-reset rt-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n </div>\n );\n },\n);\nSidebarSearch.displayName = 'Sidebar.Search';\n\n// Export all components following shadcn's pattern\nexport {\n SidebarSeparator as Separator,\n SidebarMenu as Menu,\n SidebarMenuItem as MenuItem,\n SidebarMenuButton as MenuButton,\n SidebarMenuSub as MenuSub,\n SidebarMenuSubTrigger as MenuSubTrigger,\n SidebarMenuSubContent as MenuSubContent,\n SidebarGroup as Group,\n SidebarGroupLabel as GroupLabel,\n SidebarGroupContent as GroupContent,\n SidebarSearch as Search,\n};\n\nexport type { BadgeConfig };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["sidebar_exports", "__export", "SidebarGroup", "SidebarGroupContent", "SidebarGroupLabel", "SidebarMenu", "SidebarMenuButton", "SidebarMenuItem", "SidebarMenuSub", "SidebarMenuSubContent", "SidebarMenuSubTrigger", "SidebarSearch", "SidebarSeparator", "React", "classNames", "Accordion", "SidebarSeparator", "className", "props", "forwardedRef", "Separator", "classNames", "SidebarMenu", "SidebarMenuItem", "separateIconsAndLabels", "node", "icons", "labels", "child", "el", "wrapTextNodes", "index", "newChildren", "SidebarMenuButton", "asChild", "isActive", "shortcut", "badge", "children", "onKeyDown", "visual", "useSidebarVisual", "sidebarSize", "isThinMode", "Comp", "Slot", "handleKeyDown", "event", "scope", "buttons", "next", "processedChildren", "slottedChildren", "onlyChild", "originalInnerChildren", "enhancedInnerChildren", "Badge", "Kbd", "label", "SidebarSubMenuModeContext", "SidebarMenuSub", "defaultOpen", "DropdownMenuRoot", "SidebarMenuSubTrigger", "DropdownMenuTrigger", "ThickChevronRightIcon", "SidebarMenuSubContent", "unwrapMenuButton", "n", "i", "normalized", "itemChildren", "content", "DropdownMenuItem", "DropdownMenuContent", "DropdownMenuGroup", "SidebarGroup", "SidebarGroupLabel", "SidebarGroupContent", "SearchIcon", "ClearIcon", "SidebarSearch", "value", "onValueChange", "placeholder", "isThin", "inputRef", "popoverRef", "resultsId", "valueRef", "onValueChangeRef", "searchLabel", "e", "handlePopoverKeyDown", "container", "resultsGroup", "items", "active", "isOnInput", "currentIndex", "PopoverRoot", "PopoverTrigger", "PopoverContent"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as P}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as P}from"./chunk-QEYOXQK5.js";import{a as m}from"./chunk-6FLLFCBU.js";import{a as n}from"./chunk-2FPJ6Q2N.js";import*as e from"react";import{Slot as c}from"radix-ui";var l={...P,...n},f=e.memo(e.forwardRef((i,o)=>{let{children:t,className:p,asChild:x,as:T="span",color:r,...s}=m(i,l),a=p?`rt-Text ${p}`:"rt-Text";return x?e.createElement(c.Root,{"data-accent-color":r,...s,ref:o,className:a},t):e.createElement(T,{"data-accent-color":r,...s,ref:o,className:a},t)}));f.displayName="Text";export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-HJ6ACBXW.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as o}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as o}from"./chunk-NEK7F746.js";import*as t from"react";var a=t.forwardRef((e,n)=>t.createElement(o,{...e,iconOnly:!0,ref:n}));a.displayName="IconButton";export{a};
|
|
2
|
+
//# sourceMappingURL=chunk-HJZNHNLX.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as c}from"./chunk-CNMFVJNC.js";import{b as p}from"./chunk-TBZO22XK.js";import*as a from"react";import l from"classnames";var i=["xl","lg","md","sm","xs","initial"];function m(e,t,o){if(e==null)return o;if(typeof e!="object")return e;let s=e;for(let r=i.indexOf(t);r<i.length;r++){let n=s[i[r]];if(n!==void 0)return n}return o}function A(e,t){let o=typeof e=="object"&&e!==null,{breakpoint:s}=p(o);return m(e,s,t)}var d={1:8,2:12,3:16,4:24};function B(e){return-(d[e]??d[2])}var f={"\u2318":"Meta",cmd:"Meta",command:"Meta",meta:"Meta","\u2325":"Alt",option:"Alt",opt:"Alt",alt:"Alt","\u21E7":"Shift",shift:"Shift","\u2303":"Control",ctrl:"Control",control:"Control","\u232B":"Backspace","\u2326":"Delete","\u23CE":"Enter","\u21B5":"Enter","\u238B":"Escape",esc:"Escape","\u21E5":"Tab","\u2191":"ArrowUp","\u2193":"ArrowDown","\u2190":"ArrowLeft","\u2192":"ArrowRight"},u=new Map;function S(e){let t=u.get(e);if(t!==void 0)return t||void 0;let r=(e.match(/[⌘⌥⇧⌃]|[^\s+⌘⌥⇧⌃]+/gu)??[]).map(n=>f[n]??f[n.toLowerCase()]??(n.length===1?n.toUpperCase():n)).join("+");return u.set(e,r),r||void 0}function k({shortcut:e,className:t}){return a.createElement("div",{"aria-hidden":!0,className:l("rt-BaseMenuShortcut",t)},a.createElement(c,{size:"1"},e))}export{m as a,A as b,B as c,S as d,k as e};
|
|
2
|
+
//# sourceMappingURL=chunk-HK7RJPQ2.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/base-menu.utils.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nimport { Kbd } from '../kbd.js';\nimport { useBreakpoint } from '../../hooks/use-breakpoint.js';\n\nimport type { Breakpoint, Responsive } from '../../props/prop-def.js';\n\nconst BREAKPOINTS_DESCENDING: Breakpoint[] = ['xl', 'lg', 'md', 'sm', 'xs', 'initial'];\n\n/**\n * Resolves a responsive value for the given breakpoint, falling back through\n * the smaller breakpoints when the current one is not set.\n */\nfunction resolveResponsiveValue<T>(\n value: T | Partial<Record<Breakpoint, T>> | undefined,\n currentBreakpoint: Breakpoint,\n defaultValue: T,\n): T {\n if (value === undefined || value === null) return defaultValue;\n if (typeof value !== 'object') return value;\n\n const map = value as Partial<Record<Breakpoint, T>>;\n for (let i = BREAKPOINTS_DESCENDING.indexOf(currentBreakpoint); i < BREAKPOINTS_DESCENDING.length; i++) {\n const resolved = map[BREAKPOINTS_DESCENDING[i]];\n if (resolved !== undefined) return resolved;\n }\n return defaultValue;\n}\n\n/**\n * Resolves a possibly responsive value against the current viewport. Only a\n * responsive object subscribes to breakpoint changes; a plain value costs\n * nothing.\n */\nfunction useResolvedResponsiveValue<T>(value: Responsive<T> | undefined, defaultValue: T): T {\n const isResponsive = typeof value === 'object' && value !== null;\n const { breakpoint } = useBreakpoint(isResponsive);\n return resolveResponsiveValue(value as T | Partial<Record<Breakpoint, T>> | undefined, breakpoint, defaultValue);\n}\n\n/** Content padding per menu size, in px (see base-menu.css). */\n// The panel padding ladder (--panel-p-N).\nconst CONTENT_PADDING: Record<string, number> = { '1': 8, '2': 12, '3': 16, '4': 24 };\n\n/**\n * Offset that lines the first item of a menu up with its anchor: the pointer\n * for a context menu, or the sub trigger for a submenu. It cancels the content\n * padding.\n */\nfunction getMenuAlignOffset(size: string): number {\n return -(CONTENT_PADDING[size] ?? CONTENT_PADDING['2']);\n}\n\nconst KEY_SYMBOLS: Record<string, string> = {\n '\u2318': 'Meta',\n cmd: 'Meta',\n command: 'Meta',\n meta: 'Meta',\n '\u2325': 'Alt',\n option: 'Alt',\n opt: 'Alt',\n alt: 'Alt',\n '\u21E7': 'Shift',\n shift: 'Shift',\n '\u2303': 'Control',\n ctrl: 'Control',\n control: 'Control',\n '\u232B': 'Backspace',\n '\u2326': 'Delete',\n '\u23CE': 'Enter',\n '\u21B5': 'Enter',\n '\u238B': 'Escape',\n esc: 'Escape',\n '\u21E5': 'Tab',\n '\u2191': 'ArrowUp',\n '\u2193': 'ArrowDown',\n '\u2190': 'ArrowLeft',\n '\u2192': 'ArrowRight',\n};\n\nconst ariaKeyShortcutsCache = new Map<string, string>();\n\n/**\n * Converts a display shortcut such as \"\u2318 \u21E7 P\" or \"Ctrl+S\" into the\n * `aria-keyshortcuts` format (\"Meta+Shift+P\", \"Control+S\").\n */\nfunction toAriaKeyShortcuts(shortcut: string): string | undefined {\n const cached = ariaKeyShortcutsCache.get(shortcut);\n if (cached !== undefined) return cached || undefined;\n\n // Modifier symbols are tokens of their own (\"\u2318\u21E7P\"); otherwise split on \"+\" and spaces.\n const tokens = shortcut.match(/[\u2318\u2325\u21E7\u2303]|[^\\s+\u2318\u2325\u21E7\u2303]+/gu) ?? [];\n const keys = tokens.map((token) => {\n const mapped = KEY_SYMBOLS[token] ?? KEY_SYMBOLS[token.toLowerCase()];\n return mapped ?? (token.length === 1 ? token.toUpperCase() : token);\n });\n const result = keys.join('+');\n ariaKeyShortcutsCache.set(shortcut, result);\n return result || undefined;\n}\n\n/**\n * The keyboard shortcut hint at the end of a menu item. It is hidden from\n * assistive technology because the item exposes it through\n * `aria-keyshortcuts` instead of reading it as part of the item name.\n */\nfunction MenuShortcut({ shortcut, className }: { shortcut: string; className?: string }) {\n return (\n <div aria-hidden className={classNames('rt-BaseMenuShortcut', className)}>\n <Kbd size=\"1\">{shortcut}</Kbd>\n </div>\n );\n}\n\nexport {\n resolveResponsiveValue,\n useResolvedResponsiveValue,\n getMenuAlignOffset,\n toAriaKeyShortcuts,\n MenuShortcut,\n};\n"],
|
|
5
|
+
"mappings": "gFAEA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aAOvB,IAAMC,EAAuC,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,SAAS,EAMrF,SAASC,EACPC,EACAC,EACAC,EACG,CACH,GAA2BF,GAAU,KAAM,OAAOE,EAClD,GAAI,OAAOF,GAAU,SAAU,OAAOA,EAEtC,IAAMG,EAAMH,EACZ,QAASI,EAAIN,EAAuB,QAAQG,CAAiB,EAAGG,EAAIN,EAAuB,OAAQM,IAAK,CACtG,IAAMC,EAAWF,EAAIL,EAAuBM,CAAC,CAAC,EAC9C,GAAIC,IAAa,OAAW,OAAOA,CACrC,CACA,OAAOH,CACT,CAOA,SAASI,EAA8BN,EAAkCE,EAAoB,CAC3F,IAAMK,EAAe,OAAOP,GAAU,UAAYA,IAAU,KACtD,CAAE,WAAAQ,CAAW,EAAIC,EAAcF,CAAY,EACjD,OAAOR,EAAuBC,EAAyDQ,EAAYN,CAAY,CACjH,CAIA,IAAMQ,EAA0C,CAAE,EAAK,EAAG,EAAK,GAAI,EAAK,GAAI,EAAK,EAAG,EAOpF,SAASC,EAAmBC,EAAsB,CAChD,MAAO,EAAEF,EAAgBE,CAAI,GAAKF,EAAgB,CAAG,EACvD,CAEA,IAAMG,EAAsC,CAC1C,SAAK,OACL,IAAK,OACL,QAAS,OACT,KAAM,OACN,SAAK,MACL,OAAQ,MACR,IAAK,MACL,IAAK,MACL,SAAK,QACL,MAAO,QACP,SAAK,UACL,KAAM,UACN,QAAS,UACT,SAAK,YACL,SAAK,SACL,SAAK,QACL,SAAK,QACL,SAAK,SACL,IAAK,SACL,SAAK,MACL,SAAK,UACL,SAAK,YACL,SAAK,YACL,SAAK,YACP,EAEMC,EAAwB,IAAI,IAMlC,SAASC,EAAmBC,EAAsC,CAChE,IAAMC,EAASH,EAAsB,IAAIE,CAAQ,EACjD,GAAIC,IAAW,OAAW,OAAOA,GAAU,OAQ3C,IAAMC,GALSF,EAAS,MAAM,sBAAsB,GAAK,CAAC,GACtC,IAAKG,GACRN,EAAYM,CAAK,GAAKN,EAAYM,EAAM,YAAY,CAAC,IAClDA,EAAM,SAAW,EAAIA,EAAM,YAAY,EAAIA,EAC9D,EACmB,KAAK,GAAG,EAC5B,OAAAL,EAAsB,IAAIE,EAAUE,CAAM,EACnCA,GAAU,MACnB,CAOA,SAASE,EAAa,CAAE,SAAAJ,EAAU,UAAAK,CAAU,EAA6C,CACvF,OACE,gBAAC,OAAI,cAAW,GAAC,UAAWC,EAAW,sBAAuBD,CAAS,GACrE,gBAACE,EAAA,CAAI,KAAK,KAAKP,CAAS,CAC1B,CAEJ",
|
|
6
|
+
"names": ["React", "classNames", "BREAKPOINTS_DESCENDING", "resolveResponsiveValue", "value", "currentBreakpoint", "defaultValue", "map", "i", "resolved", "useResolvedResponsiveValue", "isResponsive", "breakpoint", "useBreakpoint", "CONTENT_PADDING", "getMenuAlignOffset", "size", "KEY_SYMBOLS", "ariaKeyShortcutsCache", "toAriaKeyShortcuts", "shortcut", "cached", "result", "token", "MenuShortcut", "className", "classNames", "Kbd"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-NTGRWJEG.js";import{a as n}from"./chunk-6FLLFCBU.js";import{a as i}from"./chunk-2FPJ6Q2N.js";import*as o from"react";import{Slot as g}from"radix-ui";var h={...m,...i},c=o.memo(o.forwardRef((d,e)=>{let{children:p,className:r,asChild:P,as:H="h1",color:t,...s}=n(d,h),a=r?`rt-Heading ${r}`:"rt-Heading";return P?o.createElement(g.Root,{"data-accent-color":t,...s,ref:e,className:a},p):o.createElement(H,{"data-accent-color":t,...s,ref:e,className:a},p)}));c.displayName="Heading";export{c as a};
|
|
2
|
+
//# sourceMappingURL=chunk-HVXXJZC2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as oe}from"./chunk-N77QJUTO.js";import{b as J,c as Q,d as G,e as Z,f as ee}from"./chunk-IX5HIHVI.js";import{a as $}from"./chunk-MJJ7XDIP.js";import{b as X,c as O}from"./chunk-6AZV4VFW.js";import{c as B}from"./chunk-G3U6OHVA.js";import{a as k}from"./chunk-42LDZ7L5.js";import{e as K}from"./chunk-3YLYGKFB.js";import{b as v,c as y,d as W,e as V,f as A}from"./chunk-EUSKAXHP.js";import{b as S,c as F,d as T,e as x}from"./chunk-FTGD2SZ6.js";import{a as h}from"./chunk-6FLLFCBU.js";import{a as f,b as I,c as j,d as H,e as E,f as U,g as Y,h as q,i as N}from"./chunk-JSW6J6RS.js";import{a as he}from"./chunk-OS3FCYZY.js";var Be={};he(Be,{CheckboxItem:()=>me,Content:()=>pe,Group:()=>de,Item:()=>ue,Label:()=>se,RadioGroup:()=>le,RadioItem:()=>ce,Root:()=>te,Separator:()=>Me,Sub:()=>we,SubContent:()=>fe,SubTrigger:()=>De,Trigger:()=>ae,TriggerIcon:()=>Ce,Virtual:()=>oe});import*as e from"react";import u from"classnames";import{DropdownMenu as s,Slot as ye}from"radix-ui";import{useCallbackRef as ne}from"radix-ui/internal";var re=e.createContext(!1),te=o=>{let{open:n,defaultOpen:r=!1,onOpenChange:i}=o,[a,t]=e.useState(r),p=n??a,d=ne(i),l=e.useCallback(m=>{t(m),d(m)},[d]);return e.createElement(re.Provider,{value:p},e.createElement(s.Root,{...o,onOpenChange:l}))};te.displayName="DropdownMenu.Root";var ae=e.forwardRef(({children:o,...n},r)=>e.createElement(s.Trigger,{...n,ref:r,asChild:!0},$(o)));ae.displayName="DropdownMenu.Trigger";var L=e.createContext({}),Se={ltr:"ArrowLeft",rtl:"ArrowRight"},Te={ltr:"ArrowRight",rtl:"ArrowLeft"};function xe(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function ie(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var pe=e.forwardRef((o,n)=>{let r=K(o,v.size),i=X(),{size:a=v.size.default}=r,{className:t,children:p,color:d,container:l,forceMount:m,submenuBehavior:w,virtualized:c=!1,onEscapeKeyDown:R,onKeyDown:C,...P}=h(r,v),D=d||i.accentColor,g=S(w,"cascade"),z=g==="drill-down",ge=e.useContext(re),b=j(),be=M=>{R?.(M),!(M.defaultPrevented||!z||b.getDepth()===0)&&(M.preventDefault(),b.pop("keyboard"))},Ie=M=>{C?.(M),!(M.defaultPrevented||!z||b.getDepth()===0)&&(xe(M.target)||M.key===Se[ie(M.currentTarget)]&&(M.preventDefault(),b.pop("keyboard")))},ve=e.useMemo(()=>({size:a,color:D}),[a,D]),_=e.createElement(B,{size:a},e.createElement(L.Provider,{value:ve},e.createElement(H,{store:b,behavior:g,open:ge},p)));return e.createElement(s.Portal,{container:l,forceMount:m},e.createElement(O,{asChild:!0},e.createElement(s.Content,{"data-accent-color":D,align:"start",sideOffset:4,collisionPadding:10,...P,onEscapeKeyDown:be,onKeyDown:Ie,asChild:!1,ref:n,className:u("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-DropdownMenuContent",t)},c?e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},_):e.createElement(k,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport")},_)))))});pe.displayName="DropdownMenu.Content";var se=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(s.Label,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuLabel","rt-DropdownMenuLabel",o)}):null);se.displayName="DropdownMenu.Label";var ue=e.forwardRef((o,n)=>{let{className:r,children:i,color:a=W.color.default,shortcut:t,...p}=o;return e.useContext(f)?e.createElement(s.Item,{"data-accent-color":a,"aria-keyshortcuts":t?T(t):void 0,...p,ref:n,className:u("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",r)},e.createElement(ye.Slottable,null,i),t&&e.createElement(x,{shortcut:t,className:"rt-DropdownMenuShortcut"})):null});ue.displayName="DropdownMenu.Item";var de=e.forwardRef(({className:o,...n},r)=>e.createElement(s.Group,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuGroup","rt-DropdownMenuGroup",o)}));de.displayName="DropdownMenu.Group";var le=e.forwardRef(({className:o,...n},r)=>e.createElement(s.RadioGroup,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",o)}));le.displayName="DropdownMenu.RadioGroup";var ce=e.forwardRef((o,n)=>{let{children:r,className:i,color:a=A.color.default,...t}=o;return e.useContext(f)?e.createElement(s.RadioItem,{...t,asChild:!1,ref:n,"data-accent-color":a,className:u("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",i)},r,e.createElement(s.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(ee,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"}))):null});ce.displayName="DropdownMenu.RadioItem";var me=e.forwardRef((o,n)=>{let{children:r,className:i,shortcut:a,color:t=V.color.default,...p}=o;return e.useContext(f)?e.createElement(s.CheckboxItem,{"aria-keyshortcuts":a?T(a):void 0,...p,asChild:!1,ref:n,"data-accent-color":t,className:u("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",i)},r,e.createElement(s.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(J,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})),a&&e.createElement(x,{shortcut:a,className:"rt-DropdownMenuShortcut"})):null});me.displayName="DropdownMenu.CheckboxItem";var we=({label:o="Back",open:n,defaultOpen:r,onOpenChange:i,children:a})=>{let t=I(),p=e.useId(),d=e.useMemo(()=>({id:p,label:o}),[p,o]),l=E(t,p)!=="closed";e.useLayoutEffect(()=>{!t||n===void 0||(n&&!t.isOpen(p)?t.push(p,null):!n&&t.isOpen(p)&&t.close(p))},[t,n,p]);let m=e.useRef(r);e.useLayoutEffect(()=>{t&&m.current&&n===void 0&&t.push(p,null)},[]);let w=ne(i),c=e.useRef(l);return e.useEffect(()=>{!t||c.current===l||(c.current=l,w(l))},[t,l,w]),e.createElement(q.Provider,{value:d},e.createElement(s.Sub,{open:n,defaultOpen:r,onOpenChange:t?void 0:i},a))};we.displayName="DropdownMenu.Sub";var De=e.forwardRef((o,n)=>{let{className:r,children:i,onKeyDown:a,...t}=o,p=I(),d=N(),l=e.useContext(f);if(p&&d){if(!l)return null;let m=c=>{c.preventDefault(),p.push(d.id)},w=c=>{a?.(c),!(c.defaultPrevented||t.disabled)&&c.key===Te[ie(c.currentTarget)]&&(c.preventDefault(),p.push(d.id,"keyboard"))};return e.createElement(s.Item,{"aria-haspopup":"menu",...t,"data-drill-down-trigger":d.id,"data-drill-down-name":t.textValue,onSelect:m,onKeyDown:w,ref:n,className:u("rt-reset","rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger","rt-DropdownMenuDrillDownSubTrigger",r)},i,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(G,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon"})))}return e.createElement(s.SubTrigger,{...t,onKeyDown:a,asChild:!1,ref:n,className:u("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",r)},i,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(G,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon"})))});De.displayName="DropdownMenu.SubTrigger";var Me=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(s.Separator,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",o)}):null);Me.displayName="DropdownMenu.Separator";function Ee({label:o,name:n}){let r=I(),i=e.useCallback(p=>{p.preventDefault(),r?.pop()},[r]),a=typeof o=="string"?o:n,t=a&&a!=="Back"?`Back from ${a}`:void 0;return e.createElement(s.Item,{"aria-label":t,textValue:a||"Back",onSelect:i,className:u("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem","rt-DropdownMenuDrillDownBackItem")},e.createElement(Z,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"rt-DropdownMenuDrillDownBackLabel"},o))}function Ne(o){let{loop:n,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:t,sideOffset:p,alignOffset:d,avoidCollisions:l,collisionBoundary:m,collisionPadding:w,arrowPadding:c,sticky:R,hideWhenDetached:C,updatePositionStrategy:P,...D}=o;return D}var fe=e.forwardRef((o,n)=>{let r=I(),i=N();return r&&i?e.createElement(Re,{...o,ref:n,store:r,sub:i}):e.createElement(Pe,{...o,ref:n})});fe.displayName="DropdownMenu.SubContent";var Pe=e.forwardRef((o,n)=>{let r=e.useContext(L),i=o.size??r.size,a=o.color??r.color,{className:t,children:p,container:d,forceMount:l,color:m,virtualized:w=!1,...c}=h({...o,size:i},y),R=S(i,y.size.default),C=e.useMemo(()=>({size:i,color:a}),[i,a]),P=e.createElement(B,{size:i},e.createElement(L.Provider,{value:C},p));return e.createElement(s.Portal,{container:d,forceMount:l},e.createElement(O,{asChild:!0},e.createElement(s.SubContent,{"data-accent-color":a,alignOffset:F(R),sideOffset:1,collisionPadding:10,...c,asChild:!1,ref:n,className:u("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",t)},w?e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},P):e.createElement(k,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport")},P)))))});Pe.displayName="DropdownMenu.CascadeSubContent";var Re=e.forwardRef(({store:o,sub:n,...r},i)=>{let a=E(o,n.id),t=U(o,n.id),p=Y(a==="top"?o:null);if(a==="closed")return null;let{className:d,children:l,container:m,forceMount:w,virtualized:c,size:R,color:C,...P}=Ne(r),D=a==="top",g=t?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":g||void 0,...P,ref:i,"data-drill-down-panel":n.id,"data-drill-down-active":D?!0:void 0,"data-animation-direction":D?p??void 0:void 0,className:u("rt-DropdownMenuDrillDownPanel",d)},D&&e.createElement(e.Fragment,null,e.createElement(Ee,{label:n.label,name:g}),e.createElement(s.Separator,{className:"rt-BaseMenuSeparator rt-DropdownMenuSeparator"})),e.createElement(f.Provider,{value:D},l))});Re.displayName="DropdownMenu.DrillDownPanel";var Ce=e.forwardRef(({className:o,...n},r)=>e.createElement(Q,{...n,ref:r,className:u("rt-DropdownMenuTriggerIcon",o)}));Ce.displayName="DropdownMenu.TriggerIcon";export{te as a,ae as b,pe as c,se as d,ue as e,de as f,le as g,ce as h,me as i,we as j,De as k,Me as l,fe as m,Ce as n,Be as o};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as oe}from"./chunk-JOB6FH3D.js";import{b as J,c as Q,d as G,e as Z,f as ee}from"./chunk-IX5HIHVI.js";import{a as $}from"./chunk-MJJ7XDIP.js";import{b as X,c as O}from"./chunk-6AZV4VFW.js";import{c as B}from"./chunk-CD324U6G.js";import{a as k}from"./chunk-42LDZ7L5.js";import{e as K}from"./chunk-3YLYGKFB.js";import{b as v,c as y,d as W,e as V,f as A}from"./chunk-R372ULQC.js";import{b as S,c as F,d as T,e as x}from"./chunk-HK7RJPQ2.js";import{a as h}from"./chunk-6FLLFCBU.js";import{a as f,b as I,c as j,d as H,e as E,f as U,g as Y,h as q,i as N}from"./chunk-JSW6J6RS.js";import{a as he}from"./chunk-OS3FCYZY.js";var Be={};he(Be,{CheckboxItem:()=>me,Content:()=>pe,Group:()=>de,Item:()=>ue,Label:()=>se,RadioGroup:()=>le,RadioItem:()=>ce,Root:()=>te,Separator:()=>Me,Sub:()=>we,SubContent:()=>fe,SubTrigger:()=>De,Trigger:()=>ae,TriggerIcon:()=>Ce,Virtual:()=>oe});import*as e from"react";import u from"classnames";import{DropdownMenu as s,Slot as ye}from"radix-ui";import{useCallbackRef as ne}from"radix-ui/internal";var re=e.createContext(!1),te=o=>{let{open:n,defaultOpen:r=!1,onOpenChange:i}=o,[a,t]=e.useState(r),p=n??a,d=ne(i),l=e.useCallback(m=>{t(m),d(m)},[d]);return e.createElement(re.Provider,{value:p},e.createElement(s.Root,{...o,onOpenChange:l}))};te.displayName="DropdownMenu.Root";var ae=e.forwardRef(({children:o,...n},r)=>e.createElement(s.Trigger,{...n,ref:r,asChild:!0},$(o)));ae.displayName="DropdownMenu.Trigger";var L=e.createContext({}),Se={ltr:"ArrowLeft",rtl:"ArrowRight"},Te={ltr:"ArrowRight",rtl:"ArrowLeft"};function xe(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function ie(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var pe=e.forwardRef((o,n)=>{let r=K(o,v.size),i=X(),{size:a=v.size.default}=r,{className:t,children:p,color:d,container:l,forceMount:m,submenuBehavior:w,virtualized:c=!1,onEscapeKeyDown:R,onKeyDown:C,...P}=h(r,v),D=d||i.accentColor,g=S(w,"cascade"),z=g==="drill-down",ge=e.useContext(re),b=j(),be=M=>{R?.(M),!(M.defaultPrevented||!z||b.getDepth()===0)&&(M.preventDefault(),b.pop("keyboard"))},Ie=M=>{C?.(M),!(M.defaultPrevented||!z||b.getDepth()===0)&&(xe(M.target)||M.key===Se[ie(M.currentTarget)]&&(M.preventDefault(),b.pop("keyboard")))},ve=e.useMemo(()=>({size:a,color:D}),[a,D]),_=e.createElement(B,{size:a},e.createElement(L.Provider,{value:ve},e.createElement(H,{store:b,behavior:g,open:ge},p)));return e.createElement(s.Portal,{container:l,forceMount:m},e.createElement(O,{asChild:!0},e.createElement(s.Content,{"data-accent-color":D,align:"start",sideOffset:4,collisionPadding:10,...P,onEscapeKeyDown:be,onKeyDown:Ie,asChild:!1,ref:n,className:u("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-DropdownMenuContent",t)},c?e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},_):e.createElement(k,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport")},_)))))});pe.displayName="DropdownMenu.Content";var se=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(s.Label,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuLabel","rt-DropdownMenuLabel",o)}):null);se.displayName="DropdownMenu.Label";var ue=e.forwardRef((o,n)=>{let{className:r,children:i,color:a=W.color.default,shortcut:t,...p}=o;return e.useContext(f)?e.createElement(s.Item,{"data-accent-color":a,"aria-keyshortcuts":t?T(t):void 0,...p,ref:n,className:u("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",r)},e.createElement(ye.Slottable,null,i),t&&e.createElement(x,{shortcut:t,className:"rt-DropdownMenuShortcut"})):null});ue.displayName="DropdownMenu.Item";var de=e.forwardRef(({className:o,...n},r)=>e.createElement(s.Group,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuGroup","rt-DropdownMenuGroup",o)}));de.displayName="DropdownMenu.Group";var le=e.forwardRef(({className:o,...n},r)=>e.createElement(s.RadioGroup,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",o)}));le.displayName="DropdownMenu.RadioGroup";var ce=e.forwardRef((o,n)=>{let{children:r,className:i,color:a=A.color.default,...t}=o;return e.useContext(f)?e.createElement(s.RadioItem,{...t,asChild:!1,ref:n,"data-accent-color":a,className:u("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",i)},r,e.createElement(s.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(ee,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"}))):null});ce.displayName="DropdownMenu.RadioItem";var me=e.forwardRef((o,n)=>{let{children:r,className:i,shortcut:a,color:t=V.color.default,...p}=o;return e.useContext(f)?e.createElement(s.CheckboxItem,{"aria-keyshortcuts":a?T(a):void 0,...p,asChild:!1,ref:n,"data-accent-color":t,className:u("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",i)},r,e.createElement(s.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(J,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})),a&&e.createElement(x,{shortcut:a,className:"rt-DropdownMenuShortcut"})):null});me.displayName="DropdownMenu.CheckboxItem";var we=({label:o="Back",open:n,defaultOpen:r,onOpenChange:i,children:a})=>{let t=I(),p=e.useId(),d=e.useMemo(()=>({id:p,label:o}),[p,o]),l=E(t,p)!=="closed";e.useLayoutEffect(()=>{!t||n===void 0||(n&&!t.isOpen(p)?t.push(p,null):!n&&t.isOpen(p)&&t.close(p))},[t,n,p]);let m=e.useRef(r);e.useLayoutEffect(()=>{t&&m.current&&n===void 0&&t.push(p,null)},[]);let w=ne(i),c=e.useRef(l);return e.useEffect(()=>{!t||c.current===l||(c.current=l,w(l))},[t,l,w]),e.createElement(q.Provider,{value:d},e.createElement(s.Sub,{open:n,defaultOpen:r,onOpenChange:t?void 0:i},a))};we.displayName="DropdownMenu.Sub";var De=e.forwardRef((o,n)=>{let{className:r,children:i,onKeyDown:a,...t}=o,p=I(),d=N(),l=e.useContext(f);if(p&&d){if(!l)return null;let m=c=>{c.preventDefault(),p.push(d.id)},w=c=>{a?.(c),!(c.defaultPrevented||t.disabled)&&c.key===Te[ie(c.currentTarget)]&&(c.preventDefault(),p.push(d.id,"keyboard"))};return e.createElement(s.Item,{"aria-haspopup":"menu",...t,"data-drill-down-trigger":d.id,"data-drill-down-name":t.textValue,onSelect:m,onKeyDown:w,ref:n,className:u("rt-reset","rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger","rt-DropdownMenuDrillDownSubTrigger",r)},i,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(G,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon"})))}return e.createElement(s.SubTrigger,{...t,onKeyDown:a,asChild:!1,ref:n,className:u("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",r)},i,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(G,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon"})))});De.displayName="DropdownMenu.SubTrigger";var Me=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(s.Separator,{...n,asChild:!1,ref:r,className:u("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",o)}):null);Me.displayName="DropdownMenu.Separator";function Ee({label:o,name:n}){let r=I(),i=e.useCallback(p=>{p.preventDefault(),r?.pop()},[r]),a=typeof o=="string"?o:n,t=a&&a!=="Back"?`Back from ${a}`:void 0;return e.createElement(s.Item,{"aria-label":t,textValue:a||"Back",onSelect:i,className:u("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem","rt-DropdownMenuDrillDownBackItem")},e.createElement(Z,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"rt-DropdownMenuDrillDownBackLabel"},o))}function Ne(o){let{loop:n,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:t,sideOffset:p,alignOffset:d,avoidCollisions:l,collisionBoundary:m,collisionPadding:w,arrowPadding:c,sticky:R,hideWhenDetached:C,updatePositionStrategy:P,...D}=o;return D}var fe=e.forwardRef((o,n)=>{let r=I(),i=N();return r&&i?e.createElement(Re,{...o,ref:n,store:r,sub:i}):e.createElement(Pe,{...o,ref:n})});fe.displayName="DropdownMenu.SubContent";var Pe=e.forwardRef((o,n)=>{let r=e.useContext(L),i=o.size??r.size,a=o.color??r.color,{className:t,children:p,container:d,forceMount:l,color:m,virtualized:w=!1,...c}=h({...o,size:i},y),R=S(i,y.size.default),C=e.useMemo(()=>({size:i,color:a}),[i,a]),P=e.createElement(B,{size:i},e.createElement(L.Provider,{value:C},p));return e.createElement(s.Portal,{container:d,forceMount:l},e.createElement(O,{asChild:!0},e.createElement(s.SubContent,{"data-accent-color":a,alignOffset:F(R),sideOffset:1,collisionPadding:10,...c,asChild:!1,ref:n,className:u("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",t)},w?e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},P):e.createElement(k,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:u("rt-BaseMenuViewport","rt-DropdownMenuViewport")},P)))))});Pe.displayName="DropdownMenu.CascadeSubContent";var Re=e.forwardRef(({store:o,sub:n,...r},i)=>{let a=E(o,n.id),t=U(o,n.id),p=Y(a==="top"?o:null);if(a==="closed")return null;let{className:d,children:l,container:m,forceMount:w,virtualized:c,size:R,color:C,...P}=Ne(r),D=a==="top",g=t?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":g||void 0,...P,ref:i,"data-drill-down-panel":n.id,"data-drill-down-active":D?!0:void 0,"data-animation-direction":D?p??void 0:void 0,className:u("rt-DropdownMenuDrillDownPanel",d)},D&&e.createElement(e.Fragment,null,e.createElement(Ee,{label:n.label,name:g}),e.createElement(s.Separator,{className:"rt-BaseMenuSeparator rt-DropdownMenuSeparator"})),e.createElement(f.Provider,{value:D},l))});Re.displayName="DropdownMenu.DrillDownPanel";var Ce=e.forwardRef(({className:o,...n},r)=>e.createElement(Q,{...n,ref:r,className:u("rt-DropdownMenuTriggerIcon",o)}));Ce.displayName="DropdownMenu.TriggerIcon";export{te as a,ae as b,pe as c,se as d,ue as e,de as f,le as g,ce as h,me as i,we as j,De as k,Me as l,fe as m,Ce as n,Be as o};
|
|
2
|
+
//# sourceMappingURL=chunk-IND2NZIN.js.map
|