@kushagradhawan/kookie-ui 0.1.124 → 0.1.126

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.
Files changed (64) hide show
  1. package/components.css +93 -0
  2. package/dist/cjs/components/_internal/base-menu.props.d.ts +52 -1
  3. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  4. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  5. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  6. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +60 -0
  7. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -0
  8. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +2 -0
  9. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +7 -0
  10. package/dist/cjs/components/combobox.d.ts.map +1 -1
  11. package/dist/cjs/components/combobox.js +1 -1
  12. package/dist/cjs/components/combobox.js.map +3 -3
  13. package/dist/cjs/components/dropdown-menu.d.ts +28 -7
  14. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  15. package/dist/cjs/components/dropdown-menu.js +1 -1
  16. package/dist/cjs/components/dropdown-menu.js.map +3 -3
  17. package/dist/cjs/components/dropdown-menu.props.d.ts +1 -1
  18. package/dist/cjs/components/dropdown-menu.props.d.ts.map +1 -1
  19. package/dist/cjs/components/dropdown-menu.props.js +1 -1
  20. package/dist/cjs/components/dropdown-menu.props.js.map +2 -2
  21. package/dist/cjs/components/icons.d.ts +2 -1
  22. package/dist/cjs/components/icons.d.ts.map +1 -1
  23. package/dist/cjs/components/icons.js +1 -1
  24. package/dist/cjs/components/icons.js.map +3 -3
  25. package/dist/cjs/components/schemas/shell.schema.d.ts +2 -2
  26. package/dist/esm/components/_internal/base-menu.props.d.ts +52 -1
  27. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  28. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  29. package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
  30. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +60 -0
  31. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -0
  32. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +2 -0
  33. package/dist/esm/components/_internal/dropdown-menu-drill-down.js.map +7 -0
  34. package/dist/esm/components/combobox.d.ts.map +1 -1
  35. package/dist/esm/components/combobox.js +1 -1
  36. package/dist/esm/components/combobox.js.map +3 -3
  37. package/dist/esm/components/dropdown-menu.d.ts +28 -7
  38. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  39. package/dist/esm/components/dropdown-menu.js +1 -1
  40. package/dist/esm/components/dropdown-menu.js.map +3 -3
  41. package/dist/esm/components/dropdown-menu.props.d.ts +1 -1
  42. package/dist/esm/components/dropdown-menu.props.d.ts.map +1 -1
  43. package/dist/esm/components/dropdown-menu.props.js +1 -1
  44. package/dist/esm/components/dropdown-menu.props.js.map +3 -3
  45. package/dist/esm/components/icons.d.ts +2 -1
  46. package/dist/esm/components/icons.d.ts.map +1 -1
  47. package/dist/esm/components/icons.js +1 -1
  48. package/dist/esm/components/icons.js.map +3 -3
  49. package/dist/esm/components/schemas/shell.schema.d.ts +2 -2
  50. package/package.json +1 -1
  51. package/schemas/base-button.json +1 -1
  52. package/schemas/button.json +1 -1
  53. package/schemas/icon-button.json +1 -1
  54. package/schemas/index.json +6 -6
  55. package/schemas/toggle-button.json +1 -1
  56. package/schemas/toggle-icon-button.json +1 -1
  57. package/src/components/_internal/base-menu.props.ts +31 -1
  58. package/src/components/_internal/dropdown-menu-drill-down.tsx +242 -0
  59. package/src/components/combobox.tsx +176 -80
  60. package/src/components/dropdown-menu.css +119 -0
  61. package/src/components/dropdown-menu.props.tsx +2 -0
  62. package/src/components/dropdown-menu.tsx +217 -27
  63. package/src/components/icons.tsx +14 -1
  64. package/styles.css +93 -0
@@ -6,8 +6,9 @@ declare const ThickDividerHorizontalIcon: React.ForwardRefExoticComponent<IconPr
6
6
  declare const ThickCheckIcon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
7
7
  declare const ChevronDownIcon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
8
8
  declare const ThickChevronRightIcon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
9
+ declare const ThickChevronLeftIcon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
9
10
  declare const ThickDotIcon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
10
- export { ChevronDownIcon, ThickCheckIcon, ThickChevronRightIcon, ThickDividerHorizontalIcon, ThickDotIcon };
11
+ export { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDividerHorizontalIcon, ThickDotIcon };
11
12
  export type { IconProps };
12
13
  declare const CloseIcon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
13
14
  declare const PaperclipIcon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGzF,UAAU,SAAU,SAAQ,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC;CAAG;AAEtF,QAAA,MAAM,0BAA0B,iFAU9B,CAAC;AAIH,QAAA,MAAM,cAAc,iFAUlB,CAAC;AAGH,QAAA,MAAM,eAAe,iFAMnB,CAAC;AAGH,QAAA,MAAM,qBAAqB,iFAUzB,CAAC;AAGH,QAAA,MAAM,YAAY,iFAMhB,CAAC;AAGH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,YAAY,EAAE,CAAC;AAC5G,YAAY,EAAE,SAAS,EAAE,CAAC;AAG1B,QAAA,MAAM,SAAS,iFAmBb,CAAC;AAGH,QAAA,MAAM,aAAa,iFAkBjB,CAAC;AAGH,QAAA,MAAM,QAAQ,iFAOZ,CAAC;AAGH,QAAA,MAAM,YAAY,iFAUhB,CAAC;AAGH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGzF,UAAU,SAAU,SAAQ,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC;CAAG;AAEtF,QAAA,MAAM,0BAA0B,iFAU9B,CAAC;AAIH,QAAA,MAAM,cAAc,iFAUlB,CAAC;AAGH,QAAA,MAAM,eAAe,iFAMnB,CAAC;AAGH,QAAA,MAAM,qBAAqB,iFAUzB,CAAC;AAGH,QAAA,MAAM,oBAAoB,iFAUxB,CAAC;AAGH,QAAA,MAAM,YAAY,iFAMhB,CAAC;AAGH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,YAAY,EAAE,CAAC;AAClI,YAAY,EAAE,SAAS,EAAE,CAAC;AAG1B,QAAA,MAAM,SAAS,iFAmBb,CAAC;AAGH,QAAA,MAAM,aAAa,iFAkBjB,CAAC;AAGH,QAAA,MAAM,QAAQ,iFAOZ,CAAC;AAGH,QAAA,MAAM,YAAY,iFAUhB,CAAC;AAGH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
- import o from"react";const n=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"})));n.displayName="ThickDividerHorizontalIcon";const t=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"})));t.displayName="ThickCheckIcon";const i=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("path",{d:"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z"})));i.displayName="ChevronDownIcon";const s=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"})));s.displayName="ThickChevronRightIcon";const l=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("circle",{cx:"4.5",cy:"4.5",r:"2"})));l.displayName="ThickDotIcon";const h=o.forwardRef((e,r)=>o.createElement("svg",{...e,ref:r,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("path",{d:"M18 6 6 18"}),o.createElement("path",{d:"m6 6 12 12"})));h.displayName="CloseIcon";const p=o.forwardRef((e,r)=>o.createElement("svg",{...e,ref:r,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551"})));p.displayName="PaperclipIcon";const d=o.forwardRef((e,r)=>o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),o.createElement("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"})));d.displayName="FileIcon";const w=o.forwardRef((e,r)=>o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),o.createElement("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"}),o.createElement("path",{d:"M10 9H8"}),o.createElement("path",{d:"M16 13H8"}),o.createElement("path",{d:"M16 17H8"})));w.displayName="FileTextIcon";export{i as ChevronDownIcon,h as CloseIcon,d as FileIcon,w as FileTextIcon,p as PaperclipIcon,t as ThickCheckIcon,s as ThickChevronRightIcon,n as ThickDividerHorizontalIcon,l as ThickDotIcon};
1
+ import o from"react";const n=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"})));n.displayName="ThickDividerHorizontalIcon";const t=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"})));t.displayName="ThickCheckIcon";const i=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("path",{d:"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z"})));i.displayName="ChevronDownIcon";const s=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"})));s.displayName="ThickChevronRightIcon";const l=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.76174 0.201711C5.45892 -0.0809141 4.98433 -0.0645489 4.70171 0.238264L1.20171 3.98826C0.932757 4.27642 0.932757 4.72359 1.20171 5.01174L4.70171 8.76174C4.98433 9.06455 5.45892 9.08092 5.76174 8.79829C6.06455 8.51567 6.08091 8.04108 5.79829 7.73826L2.77591 4.5L5.79829 1.26174C6.08091 0.958928 6.06455 0.484337 5.76174 0.201711Z"})));l.displayName="ThickChevronLeftIcon";const h=o.forwardRef((e,r)=>o.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:r},o.createElement("circle",{cx:"4.5",cy:"4.5",r:"2"})));h.displayName="ThickDotIcon";const d=o.forwardRef((e,r)=>o.createElement("svg",{...e,ref:r,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("path",{d:"M18 6 6 18"}),o.createElement("path",{d:"m6 6 12 12"})));d.displayName="CloseIcon";const p=o.forwardRef((e,r)=>o.createElement("svg",{...e,ref:r,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551"})));p.displayName="PaperclipIcon";const c=o.forwardRef((e,r)=>o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),o.createElement("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"})));c.displayName="FileIcon";const w=o.forwardRef((e,r)=>o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),o.createElement("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"}),o.createElement("path",{d:"M10 9H8"}),o.createElement("path",{d:"M16 13H8"}),o.createElement("path",{d:"M16 17H8"})));w.displayName="FileTextIcon";export{i as ChevronDownIcon,d as CloseIcon,c as FileIcon,w as FileTextIcon,p as PaperclipIcon,t as ThickCheckIcon,l as ThickChevronLeftIcon,s as ThickChevronRightIcon,n as ThickDividerHorizontalIcon,h as ThickDotIcon};
2
2
  //# sourceMappingURL=icons.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/icons.tsx"],
4
- "sourcesContent": ["import React from 'react';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype IconElement = React.ElementRef<'svg'>;\ninterface IconProps extends ComponentPropsWithout<'svg', RemovedProps | 'children'> {}\n\nconst ThickDividerHorizontalIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z\"\n />\n </svg>\n );\n});\n\nThickDividerHorizontalIcon.displayName = 'ThickDividerHorizontalIcon';\n\nconst ThickCheckIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z\"\n />\n </svg>\n );\n});\nThickCheckIcon.displayName = 'ThickCheckIcon';\n\nconst ChevronDownIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path d=\"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z\" />\n </svg>\n );\n});\nChevronDownIcon.displayName = 'ChevronDownIcon';\n\nconst ThickChevronRightIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z\"\n />\n </svg>\n );\n});\nThickChevronRightIcon.displayName = 'ThickChevronRightIcon';\n\nconst ThickDotIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <circle cx=\"4.5\" cy=\"4.5\" r=\"2\" />\n </svg>\n );\n});\nThickDotIcon.displayName = 'ThickDotIcon';\n\nexport { ChevronDownIcon, ThickCheckIcon, ThickChevronRightIcon, ThickDividerHorizontalIcon, ThickDotIcon };\nexport type { IconProps };\n\n// Additional minimal icons\nconst CloseIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg\n {..._props}\n ref={_forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n});\nCloseIcon.displayName = 'CloseIcon';\n\nconst PaperclipIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg\n {...props}\n ref={forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551\" />\n </svg>\n );\n});\nPaperclipIcon.displayName = 'PaperclipIcon';\n\nconst FileIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n </svg>\n );\n});\nFileIcon.displayName = 'FileIcon';\n\nconst FileTextIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n <path d=\"M10 9H8\" />\n <path d=\"M16 13H8\" />\n <path d=\"M16 17H8\" />\n </svg>\n );\n});\nFileTextIcon.displayName = 'FileTextIcon';\n\nexport { CloseIcon, PaperclipIcon, FileIcon, FileTextIcon };\n"],
5
- "mappings": "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",
6
- "names": ["React", "ThickDividerHorizontalIcon", "props", "forwardedRef", "ThickCheckIcon", "ChevronDownIcon", "ThickChevronRightIcon", "ThickDotIcon", "CloseIcon", "_props", "_forwardedRef", "PaperclipIcon", "FileIcon", "FileTextIcon"]
4
+ "sourcesContent": ["import React from 'react';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype IconElement = React.ElementRef<'svg'>;\ninterface IconProps extends ComponentPropsWithout<'svg', RemovedProps | 'children'> {}\n\nconst ThickDividerHorizontalIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z\"\n />\n </svg>\n );\n});\n\nThickDividerHorizontalIcon.displayName = 'ThickDividerHorizontalIcon';\n\nconst ThickCheckIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z\"\n />\n </svg>\n );\n});\nThickCheckIcon.displayName = 'ThickCheckIcon';\n\nconst ChevronDownIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path d=\"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z\" />\n </svg>\n );\n});\nChevronDownIcon.displayName = 'ChevronDownIcon';\n\nconst ThickChevronRightIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z\"\n />\n </svg>\n );\n});\nThickChevronRightIcon.displayName = 'ThickChevronRightIcon';\n\nconst ThickChevronLeftIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.76174 0.201711C5.45892 -0.0809141 4.98433 -0.0645489 4.70171 0.238264L1.20171 3.98826C0.932757 4.27642 0.932757 4.72359 1.20171 5.01174L4.70171 8.76174C4.98433 9.06455 5.45892 9.08092 5.76174 8.79829C6.06455 8.51567 6.08091 8.04108 5.79829 7.73826L2.77591 4.5L5.79829 1.26174C6.08091 0.958928 6.06455 0.484337 5.76174 0.201711Z\"\n />\n </svg>\n );\n});\nThickChevronLeftIcon.displayName = 'ThickChevronLeftIcon';\n\nconst ThickDotIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <circle cx=\"4.5\" cy=\"4.5\" r=\"2\" />\n </svg>\n );\n});\nThickDotIcon.displayName = 'ThickDotIcon';\n\nexport { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDividerHorizontalIcon, ThickDotIcon };\nexport type { IconProps };\n\n// Additional minimal icons\nconst CloseIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg\n {..._props}\n ref={_forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n});\nCloseIcon.displayName = 'CloseIcon';\n\nconst PaperclipIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg\n {...props}\n ref={forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551\" />\n </svg>\n );\n});\nPaperclipIcon.displayName = 'PaperclipIcon';\n\nconst FileIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n </svg>\n );\n});\nFileIcon.displayName = 'FileIcon';\n\nconst FileTextIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n <path d=\"M10 9H8\" />\n <path d=\"M16 13H8\" />\n <path d=\"M16 17H8\" />\n </svg>\n );\n});\nFileTextIcon.displayName = 'FileTextIcon';\n\nexport { CloseIcon, PaperclipIcon, FileIcon, FileTextIcon };\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "ThickDividerHorizontalIcon", "props", "forwardedRef", "ThickCheckIcon", "ChevronDownIcon", "ThickChevronRightIcon", "ThickChevronLeftIcon", "ThickDotIcon", "CloseIcon", "_props", "_forwardedRef", "PaperclipIcon", "FileIcon", "FileTextIcon"]
7
7
  }
@@ -935,7 +935,7 @@ export declare const ShellTriggerSchema: z.ZodObject<{
935
935
  'aria-labelledby': z.ZodOptional<z.ZodString>;
936
936
  'aria-describedby': z.ZodOptional<z.ZodString>;
937
937
  }, "strict", z.ZodTypeAny, {
938
- target: "left" | "bottom" | "sidebar" | "rail" | "panel" | "inspector";
938
+ target: "left" | "bottom" | "rail" | "panel" | "sidebar" | "inspector";
939
939
  action: "collapse" | "toggle" | "expand";
940
940
  peekOnHover: boolean;
941
941
  className?: string | undefined;
@@ -948,7 +948,7 @@ export declare const ShellTriggerSchema: z.ZodObject<{
948
948
  onMouseEnter?: ((...args: unknown[]) => unknown) | undefined;
949
949
  onMouseLeave?: ((...args: unknown[]) => unknown) | undefined;
950
950
  }, {
951
- target: "left" | "bottom" | "sidebar" | "rail" | "panel" | "inspector";
951
+ target: "left" | "bottom" | "rail" | "panel" | "sidebar" | "inspector";
952
952
  className?: string | undefined;
953
953
  style?: Record<string, string | number> | undefined;
954
954
  'aria-describedby'?: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kushagradhawan/kookie-ui",
3
- "version": "0.1.124",
3
+ "version": "0.1.126",
4
4
  "description": "A modern React component library with beautiful design tokens, flexible theming, and comprehensive documentation",
5
5
  "keywords": [
6
6
  "react",
@@ -279,6 +279,6 @@
279
279
  "title": "Base-button Component Props",
280
280
  "description": "Props schema for the base-button component in Kookie UI",
281
281
  "version": "1.0.0",
282
- "generatedAt": "2026-01-11T18:27:18.400Z",
282
+ "generatedAt": "2026-01-12T18:02:52.732Z",
283
283
  "source": "Zod schema"
284
284
  }
@@ -530,6 +530,6 @@
530
530
  "title": "Button Component Props",
531
531
  "description": "Props schema for the button component in Kookie UI",
532
532
  "version": "1.0.0",
533
- "generatedAt": "2026-01-11T18:27:18.407Z",
533
+ "generatedAt": "2026-01-12T18:02:52.739Z",
534
534
  "source": "Zod schema"
535
535
  }
@@ -313,6 +313,6 @@
313
313
  "title": "Icon-button Component Props",
314
314
  "description": "Props schema for the icon-button component in Kookie UI",
315
315
  "version": "1.0.0",
316
- "generatedAt": "2026-01-11T18:27:18.408Z",
316
+ "generatedAt": "2026-01-12T18:02:52.740Z",
317
317
  "source": "Zod schema"
318
318
  }
@@ -3,7 +3,7 @@
3
3
  "title": "Kookie UI Button Components",
4
4
  "description": "Complete JSON Schema collection for all button components in Kookie UI",
5
5
  "version": "1.0.0",
6
- "generatedAt": "2026-01-11T18:27:18.411Z",
6
+ "generatedAt": "2026-01-12T18:02:52.743Z",
7
7
  "source": "Zod schemas",
8
8
  "components": {
9
9
  "base-button": {
@@ -287,7 +287,7 @@
287
287
  "title": "Base-button Component Props",
288
288
  "description": "Props schema for the base-button component in Kookie UI",
289
289
  "version": "1.0.0",
290
- "generatedAt": "2026-01-11T18:27:18.400Z",
290
+ "generatedAt": "2026-01-12T18:02:52.732Z",
291
291
  "source": "Zod schema"
292
292
  },
293
293
  "button": {
@@ -822,7 +822,7 @@
822
822
  "title": "Button Component Props",
823
823
  "description": "Props schema for the button component in Kookie UI",
824
824
  "version": "1.0.0",
825
- "generatedAt": "2026-01-11T18:27:18.407Z",
825
+ "generatedAt": "2026-01-12T18:02:52.739Z",
826
826
  "source": "Zod schema"
827
827
  },
828
828
  "icon-button": {
@@ -1140,7 +1140,7 @@
1140
1140
  "title": "Icon-button Component Props",
1141
1141
  "description": "Props schema for the icon-button component in Kookie UI",
1142
1142
  "version": "1.0.0",
1143
- "generatedAt": "2026-01-11T18:27:18.408Z",
1143
+ "generatedAt": "2026-01-12T18:02:52.740Z",
1144
1144
  "source": "Zod schema"
1145
1145
  },
1146
1146
  "toggle-button": {
@@ -1683,7 +1683,7 @@
1683
1683
  "title": "Toggle-button Component Props",
1684
1684
  "description": "Props schema for the toggle-button component in Kookie UI",
1685
1685
  "version": "1.0.0",
1686
- "generatedAt": "2026-01-11T18:27:18.410Z",
1686
+ "generatedAt": "2026-01-12T18:02:52.742Z",
1687
1687
  "source": "Zod schema"
1688
1688
  },
1689
1689
  "toggle-icon-button": {
@@ -2009,7 +2009,7 @@
2009
2009
  "title": "Toggle-icon-button Component Props",
2010
2010
  "description": "Props schema for the toggle-icon-button component in Kookie UI",
2011
2011
  "version": "1.0.0",
2012
- "generatedAt": "2026-01-11T18:27:18.411Z",
2012
+ "generatedAt": "2026-01-12T18:02:52.743Z",
2013
2013
  "source": "Zod schema"
2014
2014
  }
2015
2015
  }
@@ -538,6 +538,6 @@
538
538
  "title": "Toggle-button Component Props",
539
539
  "description": "Props schema for the toggle-button component in Kookie UI",
540
540
  "version": "1.0.0",
541
- "generatedAt": "2026-01-11T18:27:18.410Z",
541
+ "generatedAt": "2026-01-12T18:02:52.742Z",
542
542
  "source": "Zod schema"
543
543
  }
@@ -321,6 +321,6 @@
321
321
  "title": "Toggle-icon-button Component Props",
322
322
  "description": "Props schema for the toggle-icon-button component in Kookie UI",
323
323
  "version": "1.0.0",
324
- "generatedAt": "2026-01-11T18:27:18.411Z",
324
+ "generatedAt": "2026-01-12T18:02:52.743Z",
325
325
  "source": "Zod schema"
326
326
  }
@@ -8,8 +8,10 @@ const contentSizes = ['1', '2'] as const;
8
8
  const contentVariants = ['solid', 'soft'] as const;
9
9
  const panelBackgrounds = ['solid', 'translucent'] as const;
10
10
  const materials = ['solid', 'translucent'] as const;
11
+ const submenuBehaviors = ['cascade', 'drill-down'] as const;
11
12
 
12
- const baseMenuContentPropDefs = {
13
+ // Base props shared between Content and SubContent
14
+ const baseMenuSharedPropDefs = {
13
15
  size: {
14
16
  type: 'enum',
15
17
  className: 'rt-r-size',
@@ -45,6 +47,32 @@ const baseMenuContentPropDefs = {
45
47
  panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;
46
48
  };
47
49
 
50
+ // Content-specific props (includes submenuBehavior)
51
+ const baseMenuContentPropDefs = {
52
+ ...baseMenuSharedPropDefs,
53
+ /**
54
+ * Controls how submenus behave.
55
+ * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)
56
+ * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline
57
+ * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`
58
+ */
59
+ submenuBehavior: {
60
+ type: 'enum',
61
+ values: submenuBehaviors,
62
+ default: 'cascade',
63
+ responsive: true,
64
+ },
65
+ } satisfies {
66
+ size: PropDef<(typeof contentSizes)[number]>;
67
+ variant: PropDef<(typeof contentVariants)[number]>;
68
+ material: PropDef<(typeof materials)[number] | undefined>;
69
+ panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;
70
+ submenuBehavior: PropDef<(typeof submenuBehaviors)[number]>;
71
+ };
72
+
73
+ // SubContent props (no submenuBehavior)
74
+ const baseMenuSubContentPropDefs = baseMenuSharedPropDefs;
75
+
48
76
  const baseMenuItemPropDefs = {
49
77
  ...asChildPropDef,
50
78
  ...colorPropDef,
@@ -66,7 +94,9 @@ const baseMenuRadioItemPropDefs = {
66
94
 
67
95
  export {
68
96
  baseMenuContentPropDefs,
97
+ baseMenuSubContentPropDefs,
69
98
  baseMenuItemPropDefs,
70
99
  baseMenuCheckboxItemPropDefs,
71
100
  baseMenuRadioItemPropDefs,
101
+ submenuBehaviors,
72
102
  };
@@ -0,0 +1,242 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import type { Breakpoint, Responsive } from '../../props/prop-def.js';
5
+ import type { submenuBehaviors } from './base-menu.props.js';
6
+ import { _BREAKPOINTS } from '../shell.types.js';
7
+
8
+ type SubmenuBehavior = (typeof submenuBehaviors)[number];
9
+
10
+ /**
11
+ * Hook to get the current breakpoint based on window width.
12
+ * Returns 'initial' on the server and during initial hydration.
13
+ * Uses shared breakpoint values from shell.types.js.
14
+ */
15
+ function useBreakpoint(): { breakpoint: Breakpoint; ready: boolean } {
16
+ const [currentBp, setCurrentBp] = React.useState<Breakpoint>('initial');
17
+ const [ready, setReady] = React.useState(false);
18
+
19
+ React.useEffect(() => {
20
+ if (typeof window === 'undefined') return;
21
+
22
+ // Use shared breakpoint media queries from shell.types
23
+ const queries = Object.entries(_BREAKPOINTS) as [keyof typeof _BREAKPOINTS, string][];
24
+ const mqls = queries.map(([k, q]) => [k, window.matchMedia(q)] as const);
25
+
26
+ const compute = () => {
27
+ // Highest matched breakpoint wins
28
+ const matched = mqls.filter(([, m]) => m.matches).map(([k]) => k);
29
+ const next = (matched[matched.length - 1] as Breakpoint | undefined) ?? 'initial';
30
+ setCurrentBp(next);
31
+ setReady(true);
32
+ };
33
+
34
+ compute();
35
+
36
+ const cleanups: Array<() => void> = [];
37
+ mqls.forEach(([, m]) => {
38
+ const mm = m as MediaQueryList & {
39
+ addEventListener?: (type: 'change', listener: () => void) => void;
40
+ removeEventListener?: (type: 'change', listener: () => void) => void;
41
+ addListener?: (listener: () => void) => void;
42
+ removeListener?: (listener: () => void) => void;
43
+ };
44
+ if (typeof mm.addEventListener === 'function') {
45
+ mm.addEventListener('change', compute);
46
+ cleanups.push(() => mm.removeEventListener?.('change', compute));
47
+ } else if (typeof mm.addListener === 'function') {
48
+ mm.addListener(compute);
49
+ cleanups.push(() => mm.removeListener?.(compute));
50
+ }
51
+ });
52
+
53
+ return () => {
54
+ cleanups.forEach((fn) => {
55
+ try {
56
+ fn();
57
+ } catch (e) {
58
+ // MediaQueryList cleanup can fail in edge cases (e.g., already removed)
59
+ // Log in development to aid debugging
60
+ if (process.env.NODE_ENV !== 'production') {
61
+ console.warn('[DropdownMenu] MediaQueryList cleanup warning:', e);
62
+ }
63
+ }
64
+ });
65
+ };
66
+ }, []);
67
+
68
+ return { breakpoint: currentBp, ready };
69
+ }
70
+
71
+ /**
72
+ * Resolves a responsive value to its current value based on the breakpoint.
73
+ * Falls back through smaller breakpoints if the current one isn't defined.
74
+ */
75
+ function resolveResponsiveValue<T>(
76
+ value: T | Partial<Record<Breakpoint, T>> | undefined,
77
+ currentBreakpoint: Breakpoint,
78
+ defaultValue: T
79
+ ): T {
80
+ if (value === undefined || value === null) {
81
+ return defaultValue;
82
+ }
83
+
84
+ // Non-object values are returned directly
85
+ if (typeof value !== 'object') {
86
+ return value;
87
+ }
88
+
89
+ const map = value as Partial<Record<Breakpoint, T>>;
90
+
91
+ // Check if current breakpoint has a value
92
+ if (map[currentBreakpoint] !== undefined) {
93
+ return map[currentBreakpoint] as T;
94
+ }
95
+
96
+ // Fall back through smaller breakpoints
97
+ const bpOrder: Breakpoint[] = ['xl', 'lg', 'md', 'sm', 'xs', 'initial'];
98
+ const startIdx = bpOrder.indexOf(currentBreakpoint);
99
+
100
+ for (let i = startIdx + 1; i < bpOrder.length; i++) {
101
+ const bp = bpOrder[i];
102
+ if (map[bp] !== undefined) {
103
+ return map[bp] as T;
104
+ }
105
+ }
106
+
107
+ return defaultValue;
108
+ }
109
+
110
+ // ============================================================================
111
+ // DrillDown Context
112
+ // ============================================================================
113
+
114
+ interface DrillDownContextValue {
115
+ /** Current submenu behavior mode */
116
+ behavior: SubmenuBehavior;
117
+ /** Whether the breakpoint has been resolved (client-side only) */
118
+ ready: boolean;
119
+ /** Stack of active submenu IDs. Empty means root menu is shown. */
120
+ stack: string[];
121
+ /** Navigate into a submenu */
122
+ push: (id: string) => void;
123
+ /** Navigate back to parent menu */
124
+ pop: () => void;
125
+ /** Reset to root menu */
126
+ reset: () => void;
127
+ /** Check if a specific submenu is the currently active one */
128
+ isActive: (id: string) => boolean;
129
+ /** Check if we're at root level (no submenus open) */
130
+ isRoot: boolean;
131
+ /** The currently active submenu ID (or null if at root) */
132
+ currentId: string | null;
133
+ }
134
+
135
+ const DrillDownContext = React.createContext<DrillDownContextValue | null>(null);
136
+
137
+ interface DrillDownProviderProps {
138
+ children: React.ReactNode;
139
+ submenuBehavior: Responsive<SubmenuBehavior> | undefined;
140
+ }
141
+
142
+ function DrillDownProvider({ children, submenuBehavior }: DrillDownProviderProps) {
143
+ const { breakpoint, ready } = useBreakpoint();
144
+ const [stack, setStack] = React.useState<string[]>([]);
145
+
146
+ // Resolve the current behavior based on breakpoint
147
+ const behavior = React.useMemo(
148
+ () => resolveResponsiveValue(submenuBehavior, breakpoint, 'cascade'),
149
+ [submenuBehavior, breakpoint]
150
+ );
151
+
152
+ // Reset stack when behavior changes from drill-down to cascade
153
+ const prevBehaviorRef = React.useRef(behavior);
154
+ React.useEffect(() => {
155
+ if (prevBehaviorRef.current === 'drill-down' && behavior === 'cascade') {
156
+ setStack([]);
157
+ }
158
+ prevBehaviorRef.current = behavior;
159
+ }, [behavior]);
160
+
161
+ const push = React.useCallback((id: string) => {
162
+ setStack((prev) => [...prev, id]);
163
+ }, []);
164
+
165
+ const pop = React.useCallback(() => {
166
+ setStack((prev) => prev.slice(0, -1));
167
+ }, []);
168
+
169
+ const reset = React.useCallback(() => {
170
+ setStack([]);
171
+ }, []);
172
+
173
+ const isActive = React.useCallback(
174
+ (id: string) => {
175
+ if (stack.length === 0) return false;
176
+ return stack[stack.length - 1] === id;
177
+ },
178
+ [stack]
179
+ );
180
+
181
+ const value = React.useMemo(
182
+ (): DrillDownContextValue => ({
183
+ behavior,
184
+ ready,
185
+ stack,
186
+ push,
187
+ pop,
188
+ reset,
189
+ isActive,
190
+ isRoot: stack.length === 0,
191
+ currentId: stack.length > 0 ? stack[stack.length - 1] : null,
192
+ }),
193
+ [behavior, ready, stack, push, pop, reset, isActive]
194
+ );
195
+
196
+ return <DrillDownContext.Provider value={value}>{children}</DrillDownContext.Provider>;
197
+ }
198
+
199
+ function useDrillDown() {
200
+ const ctx = React.useContext(DrillDownContext);
201
+ if (!ctx) {
202
+ throw new Error('useDrillDown must be used within a DropdownMenu.Content');
203
+ }
204
+ return ctx;
205
+ }
206
+
207
+ /**
208
+ * Hook to check if drill-down context is available (i.e., we're inside Content)
209
+ */
210
+ function useDrillDownOptional() {
211
+ return React.useContext(DrillDownContext);
212
+ }
213
+
214
+ // ============================================================================
215
+ // Sub Context (for individual submenu instances)
216
+ // ============================================================================
217
+
218
+ interface SubContextValue {
219
+ /** Unique ID for this submenu */
220
+ id: string;
221
+ /** Label for the back button */
222
+ label: React.ReactNode;
223
+ }
224
+
225
+ const SubContext = React.createContext<SubContextValue | null>(null);
226
+
227
+ function useSubContext() {
228
+ return React.useContext(SubContext);
229
+ }
230
+
231
+ export {
232
+ DrillDownProvider,
233
+ DrillDownContext,
234
+ SubContext,
235
+ useDrillDown,
236
+ useDrillDownOptional,
237
+ useSubContext,
238
+ useBreakpoint,
239
+ resolveResponsiveValue,
240
+ };
241
+
242
+ export type { SubmenuBehavior, DrillDownContextValue, SubContextValue };