@radui/ui 0.5.0 → 1.0.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.
Files changed (156) hide show
  1. package/README.md +2 -0
  2. package/dist/components/Accordion.d.ts +20 -34
  3. package/dist/components/Accordion.js +1 -1
  4. package/dist/components/AlertDialog.d.ts +46 -1
  5. package/dist/components/AlertDialog.js +1 -1
  6. package/dist/components/AspectRatio.d.ts +2 -2
  7. package/dist/components/AspectRatio.js +1 -1
  8. package/dist/components/Avatar.d.ts +4 -1
  9. package/dist/components/Avatar.js +1 -1
  10. package/dist/components/AvatarGroup.d.ts +9 -1
  11. package/dist/components/AvatarGroup.js +1 -1
  12. package/dist/components/AvatarPrimitiveFallback-C1siRii4.js +1 -0
  13. package/dist/components/Badge.d.ts +3 -3
  14. package/dist/components/Badge.js +1 -1
  15. package/dist/components/BlockQuote.js +1 -1
  16. package/dist/components/Breadcrumb.d.ts +70 -0
  17. package/dist/components/Breadcrumb.js +1 -0
  18. package/dist/components/Button.js +1 -1
  19. package/dist/components/Callout.d.ts +4 -1
  20. package/dist/components/Callout.js +1 -1
  21. package/dist/components/Card.d.ts +1 -1
  22. package/dist/components/Card.js +1 -1
  23. package/dist/components/Checkbox.d.ts +29 -3
  24. package/dist/components/Checkbox.js +8 -1
  25. package/dist/components/CheckboxCards.d.ts +31 -4
  26. package/dist/components/CheckboxCards.js +1 -1
  27. package/dist/components/CheckboxGroup.d.ts +29 -2
  28. package/dist/components/CheckboxGroup.js +1 -1
  29. package/dist/components/CheckboxGroupPrimitive-DfHQYkep.js +1 -0
  30. package/dist/components/Code.js +1 -1
  31. package/dist/components/Collapsible.d.ts +10 -1
  32. package/dist/components/Collapsible.js +1 -1
  33. package/dist/components/Combobox.d.ts +1 -1
  34. package/dist/components/Combobox.js +1 -1
  35. package/dist/components/ComboboxPrimitive-DQcJ8pzQ.js +1 -0
  36. package/dist/components/Command.d.ts +7 -1
  37. package/dist/components/Command.js +1 -1
  38. package/dist/components/ContextMenu.d.ts +23 -23
  39. package/dist/components/ContextMenu.js +1 -1
  40. package/dist/components/DataList.d.ts +10 -4
  41. package/dist/components/DataList.js +1 -1
  42. package/dist/components/Dialog.d.ts +7 -1
  43. package/dist/components/Dialog.js +1 -1
  44. package/dist/components/Disclosure.d.ts +17 -7
  45. package/dist/components/Disclosure.js +1 -1
  46. package/dist/components/Drawer.d.ts +95 -17
  47. package/dist/components/Drawer.js +1 -1
  48. package/dist/components/DropdownMenu.d.ts +23 -23
  49. package/dist/components/DropdownMenu.js +1 -1
  50. package/dist/components/Em.js +1 -1
  51. package/dist/components/Fieldset.d.ts +43 -0
  52. package/dist/components/Fieldset.js +1 -0
  53. package/dist/components/Heading.js +1 -1
  54. package/dist/components/HoverCard.d.ts +3 -1
  55. package/dist/components/HoverCard.js +1 -1
  56. package/dist/components/Kbd.js +1 -1
  57. package/dist/components/Link.js +1 -1
  58. package/dist/components/LiveRegion.d.ts +73 -0
  59. package/dist/components/LiveRegion.js +1 -0
  60. package/dist/components/MenuPrimitive-D9VMz2TZ.js +1 -0
  61. package/dist/components/Menubar.d.ts +119 -29
  62. package/dist/components/Menubar.js +1 -1
  63. package/dist/components/Minimap.d.ts +16 -12
  64. package/dist/components/Minimap.js +1 -1
  65. package/dist/components/NavigationMenu.d.ts +11 -3
  66. package/dist/components/NavigationMenu.js +1 -1
  67. package/dist/components/NumberField.d.ts +23 -2
  68. package/dist/components/NumberField.js +1 -1
  69. package/dist/components/Popover.d.ts +83 -0
  70. package/dist/components/Popover.js +1 -0
  71. package/dist/components/Progress.d.ts +5 -4
  72. package/dist/components/Progress.js +1 -1
  73. package/dist/components/Quote.js +1 -1
  74. package/dist/components/Radio.js +1 -1
  75. package/dist/components/RadioCards.d.ts +1 -1
  76. package/dist/components/RadioCards.js +1 -1
  77. package/dist/components/RadioGroup.d.ts +1 -1
  78. package/dist/components/RadioGroup.js +1 -1
  79. package/dist/components/RadioGroupPrimitive-D1PP4y2M.js +1 -0
  80. package/dist/components/ScrollArea.d.ts +8 -4
  81. package/dist/components/ScrollArea.js +1 -1
  82. package/dist/components/Select.d.ts +1 -1
  83. package/dist/components/Select.js +1 -1
  84. package/dist/components/Separator.js +1 -1
  85. package/dist/components/Skeleton.d.ts +12 -6
  86. package/dist/components/Skeleton.js +1 -1
  87. package/dist/components/Slider.d.ts +2 -2
  88. package/dist/components/Slider.js +1 -1
  89. package/dist/components/Spinner.js +1 -1
  90. package/dist/components/Splitter.d.ts +7 -1
  91. package/dist/components/Splitter.js +1 -1
  92. package/dist/components/Steps.d.ts +25 -10
  93. package/dist/components/Steps.js +1 -1
  94. package/dist/components/Strong.js +1 -1
  95. package/dist/components/Switch.d.ts +23 -1
  96. package/dist/components/Switch.js +1 -1
  97. package/dist/components/TabNav.d.ts +34 -9
  98. package/dist/components/TabNav.js +1 -1
  99. package/dist/components/Table.d.ts +66 -19
  100. package/dist/components/Table.js +1 -1
  101. package/dist/components/Tabs.d.ts +3 -1
  102. package/dist/components/Tabs.js +1 -1
  103. package/dist/components/Text.d.ts +2 -2
  104. package/dist/components/Text.js +1 -1
  105. package/dist/components/TextArea.d.ts +4 -4
  106. package/dist/components/TextArea.js +1 -1
  107. package/dist/components/TextField.d.ts +1 -1
  108. package/dist/components/TextField.js +1 -1
  109. package/dist/components/Toast.d.ts +325 -0
  110. package/dist/components/Toast.js +1 -0
  111. package/dist/components/Toggle.d.ts +1 -1
  112. package/dist/components/Toggle.js +1 -1
  113. package/dist/components/ToggleGroup.d.ts +1 -1
  114. package/dist/components/ToggleGroup.js +1 -1
  115. package/dist/components/Toolbar.d.ts +1 -1
  116. package/dist/components/Toolbar.js +1 -1
  117. package/dist/components/Tooltip.d.ts +12 -1
  118. package/dist/components/Tooltip.js +1 -1
  119. package/dist/components/Tree.d.ts +2 -1
  120. package/dist/components/Tree.js +1 -1
  121. package/dist/components/VisuallyHidden.js +1 -1
  122. package/dist/components/{check-DujVUWP-.js → check-ctUdF4Q3.js} +4 -4
  123. package/dist/components/documentOverlayOpen-coyGmcyL.js +1 -0
  124. package/dist/components/{floating-ui.react-Byzse64h.js → floating-ui.react-2kiGB4sW.js} +1 -1
  125. package/dist/components/index-C7dBo_Ry.js +1 -0
  126. package/dist/components/index-CBcSLg6O.js +1 -0
  127. package/dist/components/index-CbNq68zs.js +1 -0
  128. package/dist/components/index-D8I-rMwz.js +1 -0
  129. package/dist/components/index-DMX7gpdp.js +1 -0
  130. package/dist/components/index-FITGoHty.js +1 -0
  131. package/dist/components/index-XF8itt-H.js +1 -0
  132. package/dist/components/index-nYRBURkR.js +1 -0
  133. package/dist/components/index-xlB--dex.js +1 -0
  134. package/dist/components/keyboard-BKF7hXqL.js +1 -0
  135. package/dist/components/mergeProps-0RucjqeH.js +1 -0
  136. package/dist/components/useComponentClass-C0isGl1z.js +1 -0
  137. package/dist/themes/baremetal.css +1 -0
  138. package/dist/themes/default.css +1 -0
  139. package/dist/themes/tailwind-presets/default.css +396 -0
  140. package/package.json +65 -23
  141. package/dist/components/AvatarPrimitiveFallback-BOYawMc9.js +0 -1
  142. package/dist/components/CheckboxGroupPrimitive-Cd8ra39e.js +0 -1
  143. package/dist/components/ComboboxPrimitive-BhHSrtiY.js +0 -1
  144. package/dist/components/MenuPrimitive-wJbEC-gM.js +0 -1
  145. package/dist/components/RadioGroupPrimitive-CcvI-_wm.js +0 -1
  146. package/dist/components/clsx-BaVHROc5.js +0 -1
  147. package/dist/components/index-BbEsAodL.js +0 -1
  148. package/dist/components/index-DOVR6Rd5.js +0 -1
  149. package/dist/components/index-DU_6Msfu.js +0 -1
  150. package/dist/components/index-Db-tduwt.js +0 -1
  151. package/dist/components/index-Ir5FYyWW.js +0 -1
  152. package/dist/components/index-gM8bbyw1.js +0 -1
  153. package/dist/components/index-m6qHOeQ9.js +0 -1
  154. package/dist/components/mergeProps-B9ocQsG4.js +0 -1
  155. package/dist/components/useComponentClass-QwNivz0h.js +0 -1
  156. package/dist/themes/tailwind-presets/default.js +0 -1
@@ -1 +1 @@
1
- 'use client';import s from"react";import{c as e}from"./clsx-BaVHROc5.js";import{u as a}from"./useComponentClass-QwNivz0h.js";import"./ThemeContext-Sm-iNANd.js";const o=s.forwardRef((({children:o,as:t="h1",customRootClass:r="",className:m="",...c},h)=>{const l=a(r,t),n=["h1","h2","h3","h4","h5","h6"].includes(t)?t:"h1";return s.createElement(n,{className:e(l,m),ref:h,...c},o)}));o.displayName="Heading";export{o as default};
1
+ 'use client';import e from"react";import{u as s,c as a}from"./useComponentClass-C0isGl1z.js";import"./ThemeContext-Sm-iNANd.js";const t=["h1","h2","h3","h4","h5","h6"],o=e.forwardRef((({children:o,as:r="h1",customRootClass:m="",className:c="",...h},n)=>{const l=t.includes(r)?r:"h1",i=s(m,l);return e.createElement(l,{className:a(i,c),ref:n,...h},o)}));o.displayName="Heading";export{o as default};
@@ -5,6 +5,7 @@ import Floater from '~/core/primitives/Floater';
5
5
 
6
6
  type HoverCardRootProps = ComponentPropsWithoutRef<'div'> & {
7
7
  open?: boolean;
8
+ defaultOpen?: boolean;
8
9
  onOpenChange?: (open: boolean) => void;
9
10
  customRootClass?: string;
10
11
  openDelay?: number;
@@ -14,6 +15,7 @@ type HoverCardRootProps = ComponentPropsWithoutRef<'div'> & {
14
15
  };
15
16
  declare const HoverCardRoot: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
16
17
  open?: boolean;
18
+ defaultOpen?: boolean;
17
19
  onOpenChange?: (open: boolean) => void;
18
20
  customRootClass?: string;
19
21
  openDelay?: number;
@@ -53,5 +55,5 @@ type HoverCardComponent = React.ForwardRefExoticComponent<HoverCardProps & React
53
55
  };
54
56
  declare const HoverCard: HoverCardComponent;
55
57
 
56
- export { HoverCard as default };
58
+ export { HoverCardArrow as Arrow, HoverCardContent as Content, HoverCardPortal as Portal, HoverCardRoot as Root, HoverCardTrigger as Trigger, HoverCard as default };
57
59
  export type { HoverCardArrowProps, HoverCardContentProps, HoverCardElement, HoverCardPortalProps, HoverCardProps, HoverCardRootProps, HoverCardTriggerProps };
@@ -1 +1 @@
1
- 'use client';import{createContext as e,forwardRef as r,useRef as o,useState as t,useEffect as n,useContext as s}from"react";import{jsx as a}from"react/jsx-runtime";import{F as l}from"./index-Db-tduwt.js";import{u as i}from"./useComponentClass-QwNivz0h.js";import{u as c}from"./index-wRElCyvx.js";import{c as u}from"./clsx-BaVHROc5.js";import{P as d}from"./index-m6qHOeQ9.js";import{T as m}from"./ThemeContext-Sm-iNANd.js";import{c as f}from"./index-eAZUMNef.js";import"./floating-ui.react-Byzse64h.js";import"react-dom";import"./mergeProps-B9ocQsG4.js";const g=e({}),p="HoverCard",y=r((({children:e,open:r,onOpenChange:s,customRootClass:d="",className:m="",openDelay:f=100,closeDelay:y=200,collisionBoundary:C=null,collisionPadding:h=4,...v},R)=>{const P=i(d,p),w=i(d,`${p}-trigger`),x=o(null),N=(Array.isArray(C)?C:[C]).filter((e=>null!=e)),T={padding:h,boundary:N,altBoundary:N.length>0},{refs:D,floatingStyles:j,context:H}=l.useFloating({placement:"bottom",strategy:"fixed",middleware:[l.arrow({element:x}),l.offset(10),l.flip({mainAxis:!0,...T}),l.shift({...T})],whileElementsMounted:l.autoUpdate}),[W,E]=c(r,!1,s),[A,F]=t(!1),M=o(null),S=o(null),L=e=>{E(e)},O=l.useRole(H),b=l.useDismiss(H),B=l.useHover(H,{delay:100}),{getReferenceProps:$,getFloatingProps:q}=l.useInteractions([B,O,b]);n((()=>()=>{M.current&&clearTimeout(M.current),S.current&&clearTimeout(S.current)}),[]);const z={isOpen:W,handleOpenChange:L,floatingRefs:D,floatingStyles:j,floatingContext:H,arrowRef:x,getReferenceProps:$,getFloatingProps:q,rootClass:P,rootTriggerClass:w,closeWithDelay:()=>{F(!0),S.current&&clearTimeout(S.current),S.current=setTimeout((()=>{F((e=>(e&&L(!1),e)))}),y)},closeWithoutDelay:()=>{L(!1)},openWithDelay:()=>{F(!1),M.current&&clearTimeout(M.current),M.current=setTimeout((()=>{L(!0)}),f)}};return a(g.Provider,{value:z,children:a("div",{ref:R,className:u(P&&`${P}-root`,m),...v,children:e})})}));y.displayName=p;const C=r((({children:e,className:r="",...o},t)=>{const{floatingRefs:n,closeWithDelay:i,openWithDelay:c,rootTriggerClass:m}=s(g),f=l.useMergeRefs([n.setReference,t]);return a(d.span,{className:u(m,r),onClick:()=>{},onMouseEnter:c,onMouseLeave:i,ref:f,...o,children:e})}));C.displayName="HoverCardTrigger";const h=r((({children:e,rootElement:r,...o},i)=>{const{rootTriggerClass:c}=s(g),u=s(m),[d,f]=t(null);return n((()=>{const e=(r&&"current"in r?r.current:r)||u?.portalRootRef.current||u?.containerRef.current||document.querySelector("[data-rad-ui-portal-root]")||document.querySelector("#rad-ui-theme-container")||document.getElementsByClassName(c)[0]||document.body;f(e)}),[r,c,u]),d?a(l.Portal,{root:d,...o,children:e}):null}));h.displayName="HoverCardPortal";const v=r((({children:e,className:r,size:o="",...t},i)=>{const{isOpen:c,floatingRefs:d,floatingStyles:m,getFloatingProps:p,rootClass:y,closeWithDelay:C,closeWithoutDelay:h,openWithDelay:v}=s(g);n((()=>{const e=()=>h();return window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}}),[h]);const R=l.useMergeRefs([d.setFloating,i]),P=f("hover-card",{size:o});return c?a("div",{onPointerEnter:v,onPointerLeave:C,className:u(y,r),ref:R,style:m,...P,...t,...p(),children:e}):null}));v.displayName="HoverCardContent";const R=r(((e,r)=>{const{floatingContext:o,arrowRef:t,rootClass:n}=s(g),i=l.useMergeRefs([t,r]);return a(l.Arrow,{className:u(n&&`${n}-arrow`),...e,context:o,ref:i})}));R.displayName="HoverCardArrow";const P=r(((e,r)=>(console.warn("Direct usage of HoverCard is not supported. Please use HoverCard.Root, HoverCard.Trigger, etc. instead."),null)));P.displayName="HoverCard",P.Root=y,P.Trigger=C,P.Portal=h,P.Content=v,P.Arrow=R;export{P as default};
1
+ 'use client';import{createContext as e,forwardRef as r,useRef as o,useEffect as t,useContext as n,useState as s}from"react";import{jsx as a}from"react/jsx-runtime";import{F as l}from"./index-D8I-rMwz.js";import{u as i,c}from"./useComponentClass-C0isGl1z.js";import{u}from"./index-wRElCyvx.js";import{P as d}from"./index-XF8itt-H.js";import{T as m}from"./ThemeContext-Sm-iNANd.js";import{c as g}from"./index-eAZUMNef.js";import"./floating-ui.react-2kiGB4sW.js";import"react-dom";import"./mergeProps-0RucjqeH.js";const f=e({}),p="HoverCard",h=r((({children:e,open:r,defaultOpen:n=!1,onOpenChange:s,customRootClass:d="",className:m="",openDelay:g=100,closeDelay:h=200,collisionBoundary:y=null,collisionPadding:C=4,...v},R)=>{const P=i(d,p),w=i(d,`${p}-trigger`),x=o(null),N=(Array.isArray(y)?y:[y]).filter((e=>null!=e)),D={padding:C,boundary:N,altBoundary:N.length>0},[T,j]=u(r,n,s),H=o(T);H.current=T;const F=e=>{H.current!==e&&(H.current=e,j(e))},{refs:W,floatingStyles:A,context:E}=l.useFloating({open:T,onOpenChange:F,placement:"bottom",strategy:"fixed",middleware:[l.arrow({element:x}),l.offset(10),l.flip({mainAxis:!0,...D}),l.shift({...D})],whileElementsMounted:l.autoUpdate}),M=o(!1),O=o(null),B=o(null),L=l.useRole(E,{role:"dialog"}),b=l.useDismiss(E),{getReferenceProps:S}=l.useInteractions([b]),{getFloatingProps:$}=l.useInteractions([L,b]),z=()=>{O.current&&(clearTimeout(O.current),O.current=null),B.current&&(clearTimeout(B.current),B.current=null)};t((()=>z),[]);const I={isOpen:T,handleOpenChange:F,floatingRefs:W,floatingStyles:A,floatingContext:E,arrowRef:x,getReferenceProps:S,getFloatingProps:$,rootClass:P,rootTriggerClass:w,closeWithDelay:()=>{M.current=!0,z(),h<=0?F(!1):B.current=setTimeout((()=>{B.current=null,M.current&&F(!1)}),h)},closeWithoutDelay:()=>{z(),F(!1)},openWithDelay:()=>{M.current=!1,z(),g<=0?F(!0):O.current=setTimeout((()=>{O.current=null,F(!0)}),g)}};return a(f.Provider,{value:I,children:a("div",{ref:R,className:c(P&&`${P}-root`,m),"data-slot":"hover-card-root",...v,children:e})})}));h.displayName=p;const y=r((({children:e,className:r="",...o},t)=>{const{floatingRefs:s,getReferenceProps:i,closeWithDelay:u,openWithDelay:m,rootTriggerClass:g}=n(f),p=l.useMergeRefs([s.setReference,t]);return a(d.span,{ref:p,className:c(g,r),...i({"data-slot":"hover-card-trigger",onMouseEnter:m,onMouseLeave:u,onFocus:m,onBlur:u,...o}),children:e})}));y.displayName="HoverCardTrigger";const C=r((({children:e,rootElement:r,...o},i)=>{const c=n(m),[u,d]=s(null);return t((()=>{const e=(r&&"current"in r?r.current:r)||c?.portalRootRef.current||c?.containerRef.current||document.body;d(e)}),[r,c]),u?a(l.Portal,{root:u,...o,children:e}):null}));C.displayName="HoverCardPortal";const v=r((({children:e,className:r,size:o="",...s},i)=>{const{isOpen:u,floatingRefs:d,floatingStyles:m,getFloatingProps:p,rootClass:h,closeWithDelay:y,openWithDelay:C,closeWithoutDelay:v}=n(f);t((()=>{if(!u)return;const e=()=>v();return window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}}),[v,u]);const R=l.useMergeRefs([d.setFloating,i]),P=g("hover-card",{size:o});return u?a("div",{className:c(h,r),ref:R,style:m,...P,...p({"data-slot":"hover-card-content",onPointerEnter:C,onPointerLeave:y,onFocus:C,onBlur:y,...s}),children:e}):null}));v.displayName="HoverCardContent";const R=r(((e,r)=>{const{floatingContext:o,arrowRef:t,rootClass:s}=n(f),i=l.useMergeRefs([t,r]);return a(l.Arrow,{className:c(s&&`${s}-arrow`),"data-slot":"hover-card-arrow",...e,context:o,ref:i})}));R.displayName="HoverCardArrow";const P=r(((e,r)=>(console.warn("Direct usage of HoverCard is not supported. Please use HoverCard.Root, HoverCard.Trigger, etc. instead."),null)));P.displayName="HoverCard",P.Root=h,P.Trigger=y,P.Portal=C,P.Content=v,P.Arrow=R;export{R as Arrow,v as Content,C as Portal,h as Root,y as Trigger,P as default};
@@ -1 +1 @@
1
- 'use client';import{jsx as s}from"react/jsx-runtime";import{forwardRef as e}from"react";import{u as o}from"./useComponentClass-QwNivz0h.js";import{c as r}from"./clsx-BaVHROc5.js";import{c as t}from"./index-eAZUMNef.js";import"./ThemeContext-Sm-iNANd.js";const m=e((({children:e,customRootClass:m,className:a,size:i="",...c},n)=>{const d=o(m,"Kbd"),l=t("kbd",{size:i});return s("kbd",{ref:n,className:r(d,a),...l,...c,children:e})}));m.displayName="Kbd";export{m as default};
1
+ 'use client';import{jsx as s}from"react/jsx-runtime";import{forwardRef as e}from"react";import{u as o,c as r}from"./useComponentClass-C0isGl1z.js";import{c as t}from"./index-eAZUMNef.js";import"./ThemeContext-Sm-iNANd.js";const a=e((({children:e,customRootClass:a,className:m,size:i="",...c},n)=>{const d=o(a,"Kbd"),l=t("kbd",{size:i});return s("kbd",{ref:n,className:r(d,m),...l,...c,children:e})}));a.displayName="Kbd";export{a as default};
@@ -1 +1 @@
1
- 'use client';import{jsx as s}from"react/jsx-runtime";import r from"react";import{c as o}from"./clsx-BaVHROc5.js";import{u as e}from"./useComponentClass-QwNivz0h.js";import{a,b as m,c as t}from"./index-eAZUMNef.js";import{P as i}from"./index-m6qHOeQ9.js";import"./ThemeContext-Sm-iNANd.js";import"./mergeProps-B9ocQsG4.js";const c="Link",f=r.forwardRef((({children:r,href:f="#",customRootClass:l,className:n,size:p="",color:d="",asChild:h=!1,...j},u)=>{const x=e(l,c),C=a(t("link",{size:p}),m(d)),N=i.a;return s(N,{ref:u,asChild:h,href:f,className:o(x,n),...C,...j,children:r})}));f.displayName=c;export{f as default};
1
+ 'use client';import{jsx as s}from"react/jsx-runtime";import r from"react";import{u as e,c as o}from"./useComponentClass-C0isGl1z.js";import{a,b as i,c as m}from"./index-eAZUMNef.js";import{P as t}from"./index-XF8itt-H.js";import"./ThemeContext-Sm-iNANd.js";import"./mergeProps-0RucjqeH.js";const n="Link",c=r.forwardRef((({children:r,href:c="#",customRootClass:l,className:f,size:p="",color:d="",asChild:h=!1,...j},u)=>{const C=e(l,n),x=a(m("link",{size:p}),i(d)),N=t.a;return s(N,{ref:u,asChild:h,href:c,className:o(C,f),...x,...j,children:r})}));c.displayName=n;export{c as default};
@@ -0,0 +1,73 @@
1
+ import React, { ElementRef, CSSProperties, ComponentPropsWithoutRef } from 'react';
2
+ import Primitive from '~/core/primitives/Primitive';
3
+
4
+ type LiveRegionPoliteness = 'polite' | 'assertive' | 'off';
5
+ type LiveRegionRole = 'status' | 'alert' | 'log';
6
+ type LiveRegionRelevant = 'additions' | 'removals' | 'text' | 'all' | 'additions text';
7
+ type LiveRegionElement = ElementRef<typeof Primitive.div>;
8
+ type LiveRegionProps = {
9
+ /**
10
+ * Controls how urgently assistive technology should announce updates.
11
+ */
12
+ politeness?: LiveRegionPoliteness;
13
+ /**
14
+ * Landmark role for the live region. `status` is appropriate for most
15
+ * non-blocking updates; use `alert` for urgent errors.
16
+ */
17
+ role?: LiveRegionRole;
18
+ /**
19
+ * Whether assistive technology should announce the full region on updates.
20
+ */
21
+ atomic?: boolean;
22
+ /**
23
+ * Describes which changes should be announced.
24
+ */
25
+ relevant?: LiveRegionRelevant;
26
+ /**
27
+ * Marks the region as temporarily busy while related updates are pending.
28
+ */
29
+ busy?: boolean;
30
+ /**
31
+ * Keeps the live region in the accessibility tree while visually hiding it.
32
+ */
33
+ visuallyHidden?: boolean;
34
+ customRootClass?: string;
35
+ style?: CSSProperties;
36
+ } & Omit<ComponentPropsWithoutRef<typeof Primitive.div>, 'role' | 'aria-live' | 'aria-atomic' | 'aria-relevant' | 'aria-busy'>;
37
+ declare const LiveRegion: React.ForwardRefExoticComponent<{
38
+ /**
39
+ * Controls how urgently assistive technology should announce updates.
40
+ */
41
+ politeness?: LiveRegionPoliteness;
42
+ /**
43
+ * Landmark role for the live region. `status` is appropriate for most
44
+ * non-blocking updates; use `alert` for urgent errors.
45
+ */
46
+ role?: LiveRegionRole;
47
+ /**
48
+ * Whether assistive technology should announce the full region on updates.
49
+ */
50
+ atomic?: boolean;
51
+ /**
52
+ * Describes which changes should be announced.
53
+ */
54
+ relevant?: LiveRegionRelevant;
55
+ /**
56
+ * Marks the region as temporarily busy while related updates are pending.
57
+ */
58
+ busy?: boolean;
59
+ /**
60
+ * Keeps the live region in the accessibility tree while visually hiding it.
61
+ */
62
+ visuallyHidden?: boolean;
63
+ customRootClass?: string;
64
+ style?: CSSProperties;
65
+ } & Omit<React.ComponentPropsWithoutRef<React.ForwardRefExoticComponent<((React.InputHTMLAttributes<HTMLInputElement> & {
66
+ asChild?: boolean;
67
+ }) | (React.HTMLAttributes<HTMLElement> & {
68
+ asChild?: boolean;
69
+ children?: React.ReactNode;
70
+ })) & React.RefAttributes<HTMLElement>>>, "role" | "aria-atomic" | "aria-busy" | "aria-live" | "aria-relevant"> & React.RefAttributes<HTMLElement>>;
71
+
72
+ export { LiveRegion as default };
73
+ export type { LiveRegionElement, LiveRegionProps };
@@ -0,0 +1 @@
1
+ 'use client';import{jsx as e}from"react/jsx-runtime";import{forwardRef as t}from"react";import{u as i,c as o}from"./useComponentClass-C0isGl1z.js";import{P as a}from"./index-XF8itt-H.js";import"./ThemeContext-Sm-iNANd.js";import"./mergeProps-0RucjqeH.js";const r="LiveRegion",s={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",whiteSpace:"nowrap",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",overflow:"hidden",pointerEvents:"none",userSelect:"none"},n=t((({children:t,customRootClass:n,className:l,politeness:p="polite",role:m=("assertive"===p?"alert":"status"),atomic:c=!0,relevant:d="additions text",busy:u,visuallyHidden:v=!0,style:h,...x},f)=>{const g=i(n,r),y=v?{...s,...h}:h;return e(a.div,{ref:f,role:m,"aria-live":p,"aria-atomic":c,"aria-relevant":d,"aria-busy":u,"data-slot":"live-region-root",className:o(g,l),style:y,...x,children:t})}));n.displayName=r;export{n as default};
@@ -0,0 +1 @@
1
+ 'use client';import{jsx as e,Fragment as t}from"react/jsx-runtime";import n,{forwardRef as i,useState as o,useRef as s,useContext as l,useEffect as r}from"react";import{F as a}from"./index-D8I-rMwz.js";import{u as d}from"./index-wRElCyvx.js";import{u as c}from"./index-CBcSLg6O.js";import{P as u}from"./index-XF8itt-H.js";import{B as f}from"./index-FITGoHty.js";import{flushSync as m}from"react-dom";import{g}from"./floating-ui.react-2kiGB4sW.js";import{T as p}from"./ThemeContext-Sm-iNANd.js";const h=n.createContext(null),v=i((({children:t,className:i,open:r,onOpenChange:u,defaultOpen:f=!1,crossAxisOffset:m,mainAxisOffset:g,collisionBoundary:p=null,collisionPadding:v=4,loop:x=!0,placement:y="bottom-start",avoidCollision:P=!0,rtl:b=!1,isSubmenu:R=!1,...N},C)=>{const[I,O]=d(r,f,u);c(I);const[M,F]=o(null),[T,A]=o(void 0),k=s([]),w=s([]),S=s([]),j=s(null),D=a.useFloatingNodeId(),H=a.useFloatingParentNodeId(),B=R,L=m??0,E=void 0!==g?g:B?14:4,K=(Array.isArray(p)?p:[p]).filter((e=>null!=e)),$=K.length>0?{boundary:K,altBoundary:!0}:{},q={mainAxis:P,crossAxis:P&&!B,padding:v,...$},z={padding:v,crossAxis:!B,...$},U={padding:v,...$},{refs:W,floatingStyles:X,context:Y}=a.useFloating({open:I,nodeId:D,onOpenChange:O,strategy:"fixed",transform:!1,placement:B?"right-start":y,middleware:[a.offset({mainAxis:E,crossAxis:L}),...P?[a.flip(q),a.shift(z)]:[],...B?[]:[a.size({...U,apply({availableHeight:e,elements:t}){A(e),t.floating.style.maxHeight=`${e}px`}})]],whileElementsMounted:a.autoUpdate}),G=a.useListNavigation(Y,{listRef:w,activeIndex:M,nested:B,rtl:b,loop:x,onNavigate:F}),J=a.useClick(Y,{}),Q=a.useHover(Y,{enabled:B,delay:{open:75},handleClose:a.safePolygon({blockPointerEvents:!0})}),V=a.useDismiss(Y,{bubbles:B}),Z=a.useTypeahead(Y,{listRef:S,onMatch:I?F:void 0,activeIndex:M}),_=a.useRole(Y,{role:"menu"}),{getReferenceProps:ee,getFloatingProps:te,getItemProps:ne}=a.useInteractions([V,J,G,Q,Z,_]),ie=l(h),oe=n.useCallback((()=>B&&ie?ie.getRootTrigger():W.domReference.current),[B,ie,W.domReference]),se={isOpen:I,setIsOpen:O,refs:W,floatingStyles:X,maxHeight:T,getReferenceProps:ee,getFloatingProps:te,getItemProps:ne,activeIndex:M,setActiveIndex:F,listRef:k,elementsRef:w,labelsRef:S,virtualItemRef:j,nodeId:D,isNested:B,floatingContext:Y,rtl:b,getRootTrigger:oe},le=a.useFloatingTree();return n.useEffect((()=>{if(le)return le.events.on("click",e),()=>{le.events.off("click",e)};function e(){O(!1)}}),[le,D,H]),e("div",{ref:C,className:i,"data-tree":"true",...N,children:e(h.Provider,{value:se,children:e(a.FloatingNode,{id:D,children:t})})})}));v.displayName="MenuComponentRoot";const x=i((({children:t,className:n,open:i,onOpenChange:o,defaultOpen:s=!1,crossAxisOffset:l,mainAxisOffset:r,collisionBoundary:d,collisionPadding:c,...u},f)=>{const m=a.useFloatingTree(),g=e(v,{ref:f,className:n,open:i,onOpenChange:o,defaultOpen:s,crossAxisOffset:l,mainAxisOffset:r,collisionBoundary:d,collisionPadding:c,...u,children:t});return m?g:e(a.FloatingTree,{children:g})}));x.displayName="MenuPrimitiveRoot";const y=i((({children:t,className:i,label:o,disabled:s,asChild:l=!1,onSelect:r,...d},c)=>{const f=n.useContext(h),m=s?null:o,{ref:g,index:p}=a.useListItem({label:m}),v=a.useFloatingTree(),x=n.useCallback((e=>{"function"==typeof g?g(e):g&&(g.current=e),"function"==typeof c?c(e):c&&(c.current=e)}),[g,c]);if(!f)return null;const{activeIndex:y,getItemProps:P}=f,b=y===p,{onClick:R,onKeyDown:N,...C}=d;return e(u.button,{ref:x,tabIndex:b?0:-1,className:i,role:"menuitem","aria-disabled":!!s||void 0,"data-disabled":s?"":void 0,"data-highlighted":b&&!s?"":void 0,...P({...C,disabled:s,onClick(e){s||(R?.(e),e.defaultPrevented||(r?.(e),e.defaultPrevented||v?.events.emit("click")))},onKeyDown(e){N?.(e)}}),asChild:l,children:t})}));y.displayName="MenuPrimitiveItem";const P=i((({children:t,className:n,asChild:i,...o},s)=>{const r=l(h),{ref:d,index:c}=a.useListItem(),u=a.useMergeRefs([r?.refs.setReference,d,s]);if(!r)return null;const{activeIndex:m,getReferenceProps:g,isNested:p,isOpen:v}=r;return e(f,{ref:u,...g({...o,className:n,"data-state":v?"open":"closed",role:o.role??(p?"menuitem":void 0),tabIndex:p?m===c?0:-1:o.tabIndex}),asChild:i,children:t})}));P.displayName="MenuPrimitiveTrigger";const b=i((({children:n,className:i,initialFocus:o,focusManagerDisabled:s=!1,...r},d)=>{const c=l(h),u=a.useFloatingTree(),f=a.useMergeRefs([c?.refs.setFloating,d]);if(!c||!c.isOpen)return null;const{floatingStyles:p,getFloatingProps:v,elementsRef:x,labelsRef:y,isNested:P,floatingContext:b,maxHeight:R,getRootTrigger:N}=c,C=r.style,I={...r};delete I.style;const O={overflowY:"auto",overflowX:"hidden",maxHeight:void 0!==R?`${R}px`:void 0,WebkitOverflowScrolling:"touch",overscrollBehavior:"contain"};return e(t,{children:e(a.FloatingList,{elementsRef:x,labelsRef:y,children:e(a.FocusManager,{context:b,disabled:s,modal:!1,initialFocus:o??(P?-1:0),returnFocus:!P,children:e("div",{ref:f,...v({...I,className:i,"data-state":"open",onKeyDown:e=>{I.onKeyDown?.(e),(e=>{if("Tab"!==e.key||e.defaultPrevented)return;const t=N();if(!(t instanceof HTMLElement))return;e.preventDefault(),m((()=>{u?.events.emit("click")}));const n=!e.shiftKey;queueMicrotask((()=>{if(t.focus(),!n)return;const e=g(t);e instanceof HTMLElement&&e!==t&&e.focus()}))})(e)},style:{...C,...p}}),children:e("div",{style:O,children:n})})})})})}));b.displayName="MenuPrimitiveContent";const R=i((({children:t,className:n,open:i,onOpenChange:o,defaultOpen:s=!1,...r},a)=>{const d=l(h);return e(v,{ref:a,className:n,open:i,onOpenChange:o,defaultOpen:s,rtl:d&&d.rtl||!1,...r,isSubmenu:!0,children:t})}));R.displayName="MenuPrimitiveSub";const N=i((({children:t,...n},i)=>{const s=l(h),d=l(p),[c,u]=o(null);if(r((()=>{u(d?.portalRootRef.current??d?.containerRef.current??document.body)}),[d]),!s)return null;const{isOpen:f}=s;return f&&c?e(a.Portal,{root:c,...n,children:e("div",{ref:i,children:t})}):null}));N.displayName="MenuPrimitivePortal";const C=()=>(console.warn("Direct usage of MenuPrimitive is not supported. Please use MenuPrimitive.Root, MenuPrimitive.Item instead."),null);C.Root=x,C.Item=y,C.Trigger=P,C.Content=b,C.Sub=R,C.Portal=N;export{C as M,h as a};
@@ -1,70 +1,139 @@
1
+ import * as _floating_ui_react from '@floating-ui/react';
1
2
  import * as React$1 from 'react';
2
3
  import React__default, { ComponentPropsWithoutRef } from 'react';
3
- import * as _floating_ui_react from '@floating-ui/react';
4
4
  import Floater from '~/core/primitives/Floater';
5
5
  import MenuPrimitive from '~/core/primitives/Menu/MenuPrimitive';
6
6
  import Primitive from '~/core/primitives/Primitive';
7
7
 
8
- type MenuPrimitiveItemProps = {
9
- children: React__default.ReactNode;
10
- className?: string;
11
- label?: string;
12
- disabled?: boolean;
13
- asChild?: boolean;
14
- onSelect?: (event: React__default.MouseEvent<HTMLButtonElement>) => void;
15
- };
16
-
17
- type MenuPrimitiveContentProps = {
18
- children: React__default.ReactNode;
19
- className?: string;
20
- };
21
-
22
- type MenuPrimitiveTriggerProps = {
23
- children: React__default.ReactNode;
24
- className?: string;
25
- asChild?: boolean;
26
- };
27
-
28
8
  type MenubarRootProps = {
29
9
  children: React__default.ReactNode;
30
10
  customRootClass?: string;
31
11
  className?: string;
32
12
  } & ComponentPropsWithoutRef<typeof Floater.Composite>;
33
-
34
- type MenubarMenuProps = {
13
+ declare const MenubarRoot: React__default.ForwardRefExoticComponent<{
35
14
  children: React__default.ReactNode;
15
+ customRootClass?: string;
36
16
  className?: string;
37
- } & ComponentPropsWithoutRef<typeof MenuPrimitive.Root>;
17
+ } & Omit<Omit<React__default.HTMLProps<HTMLElement> & _floating_ui_react.CompositeProps, "ref"> & React__default.RefAttributes<HTMLElement>, "ref"> & React__default.RefAttributes<HTMLElement>>;
38
18
 
39
19
  type MenubarTriggerProps = {
40
20
  children: React__default.ReactNode;
41
21
  className?: string;
42
22
  } & ComponentPropsWithoutRef<typeof MenuPrimitive.Trigger>;
23
+ declare const MenubarTrigger: React__default.ForwardRefExoticComponent<{
24
+ children: React__default.ReactNode;
25
+ className?: string;
26
+ } & Omit<{
27
+ children: React__default.ReactNode;
28
+ className?: string;
29
+ asChild?: boolean;
30
+ } & Omit<Omit<React__default.DetailedHTMLProps<React__default.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React__default.RefAttributes<HTMLButtonElement>, "ref"> & React__default.RefAttributes<HTMLButtonElement>>;
43
31
 
44
32
  type MenubarContentProps = {
45
33
  children: React__default.ReactNode;
46
34
  className?: string;
47
35
  } & ComponentPropsWithoutRef<typeof MenuPrimitive.Content>;
36
+ declare const MenubarContent: React__default.ForwardRefExoticComponent<{
37
+ children: React__default.ReactNode;
38
+ className?: string;
39
+ } & Omit<{
40
+ children: React__default.ReactNode;
41
+ className?: string;
42
+ initialFocus?: number;
43
+ focusManagerDisabled?: boolean;
44
+ } & React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
48
45
 
49
46
  type MenubarPortalProps = {
50
47
  children: React__default.ReactNode;
51
48
  } & ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;
49
+ declare const MenubarPortal: React__default.ForwardRefExoticComponent<{
50
+ children: React__default.ReactNode;
51
+ } & Omit<{
52
+ children: React__default.ReactNode;
53
+ } & _floating_ui_react.FloatingPortalProps & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
52
54
 
53
55
  type MenubarItemProps = {
54
56
  children: React__default.ReactNode;
55
57
  className?: string;
56
58
  label?: string;
57
59
  } & ComponentPropsWithoutRef<typeof MenuPrimitive.Item>;
60
+ declare const MenubarItem: React__default.ForwardRefExoticComponent<{
61
+ children: React__default.ReactNode;
62
+ className?: string;
63
+ label?: string;
64
+ } & Omit<{
65
+ children: React__default.ReactNode;
66
+ className?: string;
67
+ label?: string;
68
+ disabled?: boolean;
69
+ asChild?: boolean;
70
+ onSelect?: (event: React__default.MouseEvent<HTMLButtonElement>) => void;
71
+ } & Omit<Omit<React__default.DetailedHTMLProps<React__default.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children" | "onSelect" | "disabled"> & React__default.RefAttributes<HTMLButtonElement>, "ref"> & React__default.RefAttributes<HTMLButtonElement>>;
58
72
 
59
73
  type MenubarSubProps = {
60
74
  children: React__default.ReactNode;
61
75
  className?: string;
62
76
  } & ComponentPropsWithoutRef<typeof MenuPrimitive.Sub>;
77
+ declare const MenubarSub: React__default.ForwardRefExoticComponent<{
78
+ children: React__default.ReactNode;
79
+ className?: string;
80
+ } & Omit<{
81
+ children: React__default.ReactNode;
82
+ className?: string;
83
+ open?: boolean;
84
+ onOpenChange?: (open: boolean) => void;
85
+ defaultOpen?: boolean;
86
+ } & {
87
+ children: React__default.ReactNode;
88
+ className?: string;
89
+ open?: boolean;
90
+ onOpenChange?: (open: boolean) => void;
91
+ defaultOpen?: boolean;
92
+ crossAxisOffset?: number;
93
+ mainAxisOffset?: number;
94
+ collisionBoundary?: Element | null | Array<Element | null>;
95
+ collisionPadding?: number;
96
+ loop?: boolean;
97
+ placement?: "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end";
98
+ avoidCollision?: boolean;
99
+ rtl?: boolean;
100
+ } & Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
63
101
 
64
102
  type MenubarSubTriggerProps = {
65
103
  children: React__default.ReactNode;
66
104
  className?: string;
67
105
  } & ComponentPropsWithoutRef<typeof MenuPrimitive.Trigger>;
106
+ declare const MenubarSubTrigger: React__default.ForwardRefExoticComponent<{
107
+ children: React__default.ReactNode;
108
+ className?: string;
109
+ } & Omit<{
110
+ children: React__default.ReactNode;
111
+ className?: string;
112
+ asChild?: boolean;
113
+ } & Omit<Omit<React__default.DetailedHTMLProps<React__default.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React__default.RefAttributes<HTMLButtonElement>, "ref"> & React__default.RefAttributes<HTMLButtonElement>>;
114
+
115
+ type MenubarMenuProps = {
116
+ children: React__default.ReactNode;
117
+ className?: string;
118
+ } & ComponentPropsWithoutRef<typeof MenuPrimitive.Root>;
119
+ declare const MenubarMenu: React__default.ForwardRefExoticComponent<{
120
+ children: React__default.ReactNode;
121
+ className?: string;
122
+ } & Omit<{
123
+ children: React__default.ReactNode;
124
+ className?: string;
125
+ open?: boolean;
126
+ onOpenChange?: (open: boolean) => void;
127
+ defaultOpen?: boolean;
128
+ crossAxisOffset?: number;
129
+ mainAxisOffset?: number;
130
+ collisionBoundary?: Element | null | Array<Element | null>;
131
+ collisionPadding?: number;
132
+ loop?: boolean;
133
+ placement?: "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end";
134
+ avoidCollision?: boolean;
135
+ rtl?: boolean;
136
+ } & Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
68
137
 
69
138
  type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;
70
139
  type SeparatorProps = {
@@ -78,6 +147,7 @@ declare const Separator: React__default.ForwardRefExoticComponent<SeparatorProps
78
147
  type MenubarSeparatorProps = {
79
148
  className?: string;
80
149
  } & ComponentPropsWithoutRef<typeof Separator>;
150
+ declare const MenubarSeparator: React__default.ForwardRefExoticComponent<MenubarSeparatorProps & React__default.RefAttributes<HTMLElement>>;
81
151
 
82
152
  declare const Menubar: {
83
153
  (): null;
@@ -107,11 +177,20 @@ declare const Menubar: {
107
177
  Trigger: React$1.ForwardRefExoticComponent<{
108
178
  children: React.ReactNode;
109
179
  className?: string;
110
- } & Omit<MenuPrimitiveTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
180
+ } & Omit<{
181
+ children: React.ReactNode;
182
+ className?: string;
183
+ asChild?: boolean;
184
+ } & Omit<Omit<React$1.DetailedHTMLProps<React$1.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
111
185
  Content: React$1.ForwardRefExoticComponent<{
112
186
  children: React.ReactNode;
113
187
  className?: string;
114
- } & Omit<MenuPrimitiveContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
188
+ } & Omit<{
189
+ children: React.ReactNode;
190
+ className?: string;
191
+ initialFocus?: number;
192
+ focusManagerDisabled?: boolean;
193
+ } & React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
115
194
  Portal: React$1.ForwardRefExoticComponent<{
116
195
  children: React.ReactNode;
117
196
  } & Omit<{
@@ -121,7 +200,14 @@ declare const Menubar: {
121
200
  children: React.ReactNode;
122
201
  className?: string;
123
202
  label?: string;
124
- } & Omit<MenuPrimitiveItemProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
203
+ } & Omit<{
204
+ children: React.ReactNode;
205
+ className?: string;
206
+ label?: string;
207
+ disabled?: boolean;
208
+ asChild?: boolean;
209
+ onSelect?: (event: React.MouseEvent<HTMLButtonElement>) => void;
210
+ } & Omit<Omit<React$1.DetailedHTMLProps<React$1.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children" | "onSelect" | "disabled"> & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
125
211
  Sub: React$1.ForwardRefExoticComponent<{
126
212
  children: React.ReactNode;
127
213
  className?: string;
@@ -149,9 +235,13 @@ declare const Menubar: {
149
235
  SubTrigger: React$1.ForwardRefExoticComponent<{
150
236
  children: React.ReactNode;
151
237
  className?: string;
152
- } & Omit<MenuPrimitiveTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
238
+ } & Omit<{
239
+ children: React.ReactNode;
240
+ className?: string;
241
+ asChild?: boolean;
242
+ } & Omit<Omit<React$1.DetailedHTMLProps<React$1.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
153
243
  Separator: React$1.ForwardRefExoticComponent<MenubarSeparatorProps & React$1.RefAttributes<HTMLElement>>;
154
244
  };
155
245
 
156
- export { Menubar as default };
246
+ export { MenubarContent as Content, MenubarItem as Item, MenubarMenu as Menu, MenubarPortal as Portal, MenubarRoot as Root, MenubarSeparator as Separator, MenubarSub as Sub, MenubarSubTrigger as SubTrigger, MenubarTrigger as Trigger, Menubar as default };
157
247
  export type { MenubarContentProps, MenubarItemProps, MenubarMenuProps, MenubarPortalProps, MenubarRootProps, MenubarSeparatorProps, MenubarSubProps, MenubarSubTriggerProps, MenubarTriggerProps };
@@ -1 +1 @@
1
- 'use client';import{jsx as e}from"react/jsx-runtime";import t,{forwardRef as r}from"react";import{u as n}from"./useComponentClass-QwNivz0h.js";import{c as o}from"./clsx-BaVHROc5.js";import{F as s}from"./index-Db-tduwt.js";import{M as a}from"./MenuPrimitive-wJbEC-gM.js";import u from"./Separator.js";import"./ThemeContext-Sm-iNANd.js";import"./floating-ui.react-Byzse64h.js";import"react-dom";import"./index-wRElCyvx.js";import"./index-m6qHOeQ9.js";import"./mergeProps-B9ocQsG4.js";import"./index-gM8bbyw1.js";const l=t.createContext(null),i=r((({children:r,customRootClass:a,className:u,dir:i,loop:c,...d},m)=>{const b=n(a,"Menubar"),[p,h]=t.useState([]),[M,f]=t.useState(0),C=(e,t)=>{h((r=>r.map((r=>r.id===e?{...r,state:t}:r))))};return e(l.Provider,{value:{rootClass:b,registerItem:(e,t="closed")=>{h((r=>r.find((t=>t.id===e))?r.map((r=>r.id===e?{...r,state:t}:r)):[...r,{id:e,state:t}]))},items:p,updateItemState:C},children:e(s.Composite,{ref:m,className:o(b&&`${b}-root`,u),dir:i,loop:c,...d,activeIndex:M,onNavigate:e=>{const t=p[M],r=p[e];if(t&&C(t.id,"closed"),r){const e="open"===t?.state;C(r.id,e?"open":"closed")}f(e)},children:r})})}));i.displayName="MenubarRoot";const c=t.createContext(null),d=r((({children:r,className:n,...u},i)=>{const d=t.useContext(l),m=t.useContext(c);if(!d)return console.warn("MenubarTrigger should be used in the MenubarRoot"),null;const{rootClass:b}=d;if(!m)return console.warn("MenubarTrigger should be used in the MenubarMenu"),null;const{isOpen:p}=m;return e(s.CompositeItem,{render:()=>e(a.Trigger,{ref:i,className:o(b&&`${b}-trigger`,n),"data-active":p,...u,children:r})})}));d.displayName="MenubarTrigger";const m=r((({children:r,className:n,...s},u)=>{const i=t.useContext(l);if(!i)return console.warn("MenubarContent should be used in the MenubarRoot"),null;const{rootClass:c}=i;return e(a.Content,{ref:u,className:o(c&&`${c}-content`,n),...s,children:r})}));m.displayName="MenubarContent";const b=r((({children:r,...n},o)=>t.useContext(l)?e(a.Portal,{ref:o,...n,children:r}):(console.warn("MenubarPortal should be used in the MenubarRoot"),null)));b.displayName="MenubarPortal";const p=r((({children:r,className:n,label:s,...u},i)=>{const c=t.useContext(l);if(!c)return console.warn("MenubarItem should be used in the MenubarRoot"),null;const{rootClass:d}=c;return e(a.Item,{ref:i,className:o(d&&`${d}-item`,n),label:s,...u,children:r})}));p.displayName="MenubarItem";const h=r((({children:r,className:n,...s},u)=>{const i=t.useContext(l);if(!i)return console.warn("MenubarSub should be used in the MenubarRoot"),null;const{rootClass:c}=i;return e(a.Sub,{ref:u,className:o(c&&`${c}-sub`,n),...s,children:r})}));h.displayName="MenubarSub";const M=r((({children:r,className:n,...s},u)=>{const i=t.useContext(l);if(!i)return console.warn("MenubarSubTrigger should be used in the MenubarRoot"),null;const{rootClass:c}=i;return e(a.Trigger,{ref:u,className:o(c&&`${c}-sub-trigger`,n),...s,children:r})}));M.displayName="MenubarSubTrigger";const f=r((({children:r,className:n,...u},i)=>{const d=t.useContext(l),m=s.useId();if(!d)return console.warn("MenubarMenu should be used in the MenubarRoot"),null;const{rootClass:b,registerItem:p,items:h,updateItemState:M}=d;t.useEffect((()=>{m&&p(m)}),[m]);const f="open"===h.find((e=>e.id===m))?.state;return e(a.Root,{ref:i,className:o(b&&`${b}-menu`,n),"data-id":m,"data-active":f,open:f,onOpenChange:e=>m&&M(m,e?"open":"closed"),...u,children:e(c.Provider,{value:{isOpen:f},children:r})})}));f.displayName="MenubarMenu";const C=r((({className:r,...n},o)=>{const s=t.useContext(l);if(!s)return console.warn("MenubarSeparator should be used within MenubarRoot"),null;const{rootClass:a}=s;return e(u,{ref:o,customRootClass:a,className:r,...n})}));C.displayName="MenubarSeparator";const g=()=>(console.warn("Direct usage of Menubar is not supported. Please use Menubar.Root, Menubar.Item instead."),null);g.Root=i,g.Menu=f,g.Trigger=d,g.Content=m,g.Portal=b,g.Item=p,g.Sub=h,g.SubTrigger=M,g.Separator=C;export{g as default};
1
+ 'use client';import{jsx as e}from"react/jsx-runtime";import t,{forwardRef as n}from"react";import{u as r,c as o}from"./useComponentClass-C0isGl1z.js";import{F as a}from"./index-D8I-rMwz.js";import{M as s}from"./MenuPrimitive-D9VMz2TZ.js";import u from"./Separator.js";import"./ThemeContext-Sm-iNANd.js";import"./floating-ui.react-2kiGB4sW.js";import"react-dom";import"./index-wRElCyvx.js";import"./index-CBcSLg6O.js";import"./index-CbNq68zs.js";import"./documentOverlayOpen-coyGmcyL.js";import"./index-XF8itt-H.js";import"./mergeProps-0RucjqeH.js";import"./index-FITGoHty.js";const i=t.createContext(null),l=n((({children:n,customRootClass:s,className:u,dir:l,loop:c,rtl:d,onKeyDown:m,...p},b)=>{const f=r(s,"Menubar"),[g,h]=t.useState([]),[C,M]=t.useState(0),[I,N]=t.useState(),v=t.useRef({}),x=t.useCallback((e=>[...e].sort(((e,t)=>{const n=v.current[e.id],r=v.current[t.id];if(!n||!r)return 0;const o=n.compareDocumentPosition(r);return o&Node.DOCUMENT_POSITION_FOLLOWING?-1:o&Node.DOCUMENT_POSITION_PRECEDING?1:0}))),[]),w=t.useCallback(((e,t="closed")=>{h((n=>{const r=n.find((t=>t.id===e));return r?r.state===t?n:n.map((n=>n.id===e?{...n,state:t}:n)):x([...n,{id:e,state:t}])}))}),[x]),y=t.useCallback((e=>{h((t=>t.some((t=>t.id===e))?t.filter((t=>t.id!==e)):t))}),[]),S=t.useCallback(((e,t)=>{"open"===t&&N(void 0),h((n=>n.map((n=>n.id===e?{...n,state:t}:n))))}),[]),P=t.useCallback(((e,t)=>{t?v.current[e]=t:delete v.current[e]}),[]),k=t.useCallback((e=>{if(e===C)return;const t=g[C],n=g[e];if(t&&S(t.id,"closed"),n){const e="open"===t?.state;S(n.id,e?"open":"closed"),e&&N(-1)}M(e)}),[C,g,S]),R=t.useCallback((e=>{const t=g[e];t&&(N(-1),h((t=>t.map(((t,n)=>({...t,state:n===e?"open":"closed"}))))),M(e),v.current[t.id]?.focus())}),[g]),T=t.useCallback((e=>{if(0===g.length)return;const t=C>=0?C:g.findIndex((e=>"open"===e.state));-1!==t&&R((t+e+g.length)%g.length)}),[C,g,R]),O=t.useCallback((e=>{const t=g.findIndex((t=>t.id===e));if(-1===t)return;g.some((t=>t.id!==e&&"open"===t.state))&&"open"!==g[t].state&&R(t)}),[g,R]),j=t.useCallback((e=>{const t=g.findIndex((t=>t.id===e));-1!==t&&M(t)}),[g]),D=t.useCallback((e=>{if(m?.(e),e.defaultPrevented)return;if("Home"!==e.key&&"End"!==e.key)return;if(!Object.values(v.current).includes(e.target))return;const t="Home"===e.key?0:g.length-1,n=g[t];n&&(e.preventDefault(),k(t),v.current[n.id]?.focus())}),[k,g,m]),A=t.useMemo((()=>({rootClass:f,registerItem:w,unregisterItem:y,items:g,updateItemState:S,updateItemTrigger:P,navigateMenu:T,openMenuOnHover:O,activeIndex:C,setActiveItem:j,contentInitialFocus:I})),[f,w,y,g,S,P,T,O,C,j,I]);return e(i.Provider,{value:A,children:e(a.Composite,{ref:b,role:"menubar",className:o(f&&`${f}-root`,u),dir:l,loop:c,rtl:d??"rtl"===l,orientation:"horizontal",...p,activeIndex:C,onNavigate:k,onKeyDown:D,children:n})})}));l.displayName="MenubarRoot";const c=t.createContext(null),d=n((({children:n,className:r,onFocus:u,onPointerEnter:l,...d},m)=>{const p=t.useContext(i),b=t.useContext(c);if(!p)return console.warn("MenubarTrigger should be used in the MenubarRoot"),null;const{rootClass:f,updateItemTrigger:g,items:h,activeIndex:C,setActiveItem:M,openMenuOnHover:I}=p;if(!b)return console.warn("MenubarTrigger should be used in the MenubarMenu"),null;const{id:N,isOpen:v}=b,x=t.useCallback((e=>{g(N,e),"function"==typeof m?m(e):m&&(m.current=e)}),[N,m,g]),w=h.findIndex((e=>e.id===N)),y=w===C||0===w&&(C<0||C>=h.length),S=e=>{u?.(e),M(N)},P=e=>{l?.(e),e.defaultPrevented||"touch"===e.pointerType||I(N)};return e(a.CompositeItem,{render:()=>e(s.Trigger,{ref:x,className:o(f&&`${f}-trigger`,r),role:"menuitem","aria-haspopup":"menu","aria-expanded":v,tabIndex:y?0:-1,"data-state":v?"open":"closed","data-active":v,onFocus:S,onPointerEnter:P,...d,children:n})})}));d.displayName="MenubarTrigger";const m=new Set(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"]),p=n((({children:n,className:r,...a},u)=>{const l=t.useContext(i);if(!l)return console.warn("MenubarContent should be used in the MenubarRoot"),null;const{rootClass:c,navigateMenu:d,contentInitialFocus:p}=l,{onKeyDown:b,...f}=a,g=t.useCallback((e=>{"function"==typeof u?u(e):u&&(u.current=e)}),[u]);return e(s.Content,{ref:g,role:"menu","aria-orientation":"vertical",className:o(c&&`${c}-content`,r),initialFocus:p,onKeyDown:e=>{if(b?.(e),m.has(e.key)&&e.stopPropagation(),!e.defaultPrevented)return"ArrowLeft"===e.key?(e.preventDefault(),void d(-1)):void("ArrowRight"===e.key&&(e.preventDefault(),d(1)))},...f,children:n})}));p.displayName="MenubarContent";const b=n((({children:n,...r},o)=>t.useContext(i)?e(s.Portal,{ref:o,...r,children:n}):(console.warn("MenubarPortal should be used in the MenubarRoot"),null)));b.displayName="MenubarPortal";const f=n((({children:n,className:r,label:a,...u},l)=>{const c=t.useContext(i);if(!c)return console.warn("MenubarItem should be used in the MenubarRoot"),null;const{rootClass:d}=c;return e(s.Item,{ref:l,role:"menuitem",className:o(d&&`${d}-item`,r),label:a,...u,children:n})}));f.displayName="MenubarItem";const g=n((({children:n,className:r,...a},u)=>{const l=t.useContext(i);if(!l)return console.warn("MenubarSub should be used in the MenubarRoot"),null;const{rootClass:c}=l;return e(s.Sub,{ref:u,role:"none",className:o(c&&`${c}-sub`,r),...a,children:n})}));g.displayName="MenubarSub";const h=n((({children:n,className:r,...a},u)=>{const l=t.useContext(i);if(!l)return console.warn("MenubarSubTrigger should be used in the MenubarRoot"),null;const{rootClass:c}=l;return e(s.Trigger,{ref:u,role:"menuitem","aria-haspopup":"menu",className:o(c&&`${c}-sub-trigger`,r),...a,children:n})}));h.displayName="MenubarSubTrigger";const C=n((({children:n,className:r,onOpenChange:u,...l},d)=>{const m=t.useContext(i),p=a.useId(),b=t.useId(),f=p??b;if(!m)return console.warn("MenubarMenu should be used in the MenubarRoot"),null;const{rootClass:g,registerItem:h,unregisterItem:C,items:M,updateItemState:I}=m;t.useEffect((()=>{if(f)return h(f),()=>C(f)}),[f]);const N="open"===M.find((e=>e.id===f))?.state;return e(s.Root,{ref:d,role:"none",className:o(g&&`${g}-menu`,r),"data-id":f,"data-active":N,open:N,onOpenChange:e=>{f&&I(f,e?"open":"closed"),u?.(e)},...l,children:e(c.Provider,{value:{id:f,isOpen:N},children:n})})}));C.displayName="MenubarMenu";const M=n((({className:n,...r},o)=>{const a=t.useContext(i);if(!a)return console.warn("MenubarSeparator should be used within MenubarRoot"),null;const{rootClass:s}=a;return e(u,{ref:o,customRootClass:s,className:n,...r})}));M.displayName="MenubarSeparator";const I=()=>(console.warn("Direct usage of Menubar is not supported. Please use Menubar.Root, Menubar.Item instead."),null);I.Root=l,I.Menu=C,I.Trigger=d,I.Content=p,I.Portal=b,I.Item=f,I.Sub=g,I.SubTrigger=h,I.Separator=M;export{p as Content,f as Item,C as Menu,b as Portal,l as Root,M as Separator,g as Sub,h as SubTrigger,d as Trigger,I as default};
@@ -1,27 +1,31 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import React from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
 
4
4
  type MinimapRootProps = React.HTMLAttributes<HTMLDivElement> & {
5
5
  customRootClass?: string;
6
6
  };
7
- declare const MinimapRoot: ({ children, className, customRootClass, ...props }: MinimapRootProps) => react_jsx_runtime.JSX.Element;
7
+ declare const MinimapRoot: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
8
+ customRootClass?: string;
9
+ } & React.RefAttributes<HTMLDivElement>>;
8
10
 
9
11
  type MinimapItemProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
10
12
  value: string;
11
13
  };
12
- declare const MinimapItem: ({ children, className, value, ...props }: MinimapItemProps) => react_jsx_runtime.JSX.Element;
14
+ declare const MinimapItem: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & {
15
+ value: string;
16
+ } & React.RefAttributes<HTMLButtonElement>>;
13
17
 
14
- type MinimapTrackProps = React.HTMLAttributes<HTMLDivElement>;
15
- declare const MinimapTrack: ({ children, className, ...props }: MinimapTrackProps) => react_jsx_runtime.JSX.Element;
18
+ type MinimapTrackProps = React.HTMLAttributes<HTMLElement>;
19
+ declare const MinimapTrack: React.ForwardRefExoticComponent<MinimapTrackProps & React.RefAttributes<HTMLElement>>;
16
20
 
17
- type MinimapLineProps = React.HTMLAttributes<HTMLDivElement>;
18
- declare const MinimapLine: ({ children, className, ...props }: MinimapLineProps) => react_jsx_runtime.JSX.Element;
21
+ type MinimapLineProps = React.HTMLAttributes<HTMLElement>;
22
+ declare const MinimapLine: React.ForwardRefExoticComponent<MinimapLineProps & React.RefAttributes<HTMLElement>>;
19
23
 
20
- type MinimapContentProps = React.HTMLAttributes<HTMLDivElement>;
21
- declare const MinimapContent: ({ children, className, ...props }: MinimapContentProps) => react_jsx_runtime.JSX.Element;
24
+ type MinimapContentProps = React.HTMLAttributes<HTMLElement>;
25
+ declare const MinimapContent: React.ForwardRefExoticComponent<MinimapContentProps & React.RefAttributes<HTMLElement>>;
22
26
 
23
- type MinimapBubbleProps = React.HTMLAttributes<HTMLDivElement>;
24
- declare const MinimapBubble: ({ children, className, ...props }: MinimapBubbleProps) => react_jsx_runtime.JSX.Element;
27
+ type MinimapBubbleProps = React.HTMLAttributes<HTMLElement>;
28
+ declare const MinimapBubble: React.ForwardRefExoticComponent<MinimapBubbleProps & React.RefAttributes<HTMLElement>>;
25
29
 
26
30
  type MinimapProviderProps = React.HTMLAttributes<HTMLDivElement> & {
27
31
  children: React.ReactNode;
@@ -47,5 +51,5 @@ type MinimapComponentType = typeof MinimapComponent & {
47
51
  };
48
52
  declare const Minimap: MinimapComponentType;
49
53
 
50
- export { Minimap as default };
54
+ export { MinimapBubble as Bubble, MinimapContent as Content, MinimapItem as Item, MinimapLine as Line, MinimapProvider as Provider, MinimapRoot as Root, MinimapTrack as Track, MinimapWaypoint as Waypoint, Minimap as default };
51
55
  export type { MinimapBubbleProps, MinimapContentProps, MinimapItemProps, MinimapLineProps, MinimapProviderProps, MinimapRootProps, MinimapTrackProps, MinimapWaypointProps };
@@ -1 +1 @@
1
- 'use client';import{jsx as e}from"react/jsx-runtime";import t,{createContext as r,useRef as n,useEffect as o}from"react";import{c as s}from"./clsx-BaVHROc5.js";import{u as l}from"./useComponentClass-QwNivz0h.js";import{P as i}from"./index-m6qHOeQ9.js";import{R as a}from"./index-DOVR6Rd5.js";import"./ThemeContext-Sm-iNANd.js";import"./mergeProps-B9ocQsG4.js";import"./index-gM8bbyw1.js";import"./mergeRefs-B8eZ_q-T.js";const c=r({rootClass:"",rootRef:null}),u=r({value:"",isVisible:!1}),d=r({visibleItems:[],handleInView:()=>{},handleOutView:()=>{},scrollToItem:()=>{},registerRef:()=>{}});function m(e){if(!e)return null;const t=window.getComputedStyle(e).overflowY;return"auto"===t||"scroll"===t?e:m(e.parentElement)}function h({onEnter:e,onLeave:t,threshold:r=0,rootMargin:s="0px",root:l}){const i=n(null);return o((()=>{if("undefined"==typeof window||!("IntersectionObserver"in window))return;if(!i.current)return;const n=l??m(i.current),o=new IntersectionObserver((r=>{r.forEach((r=>{r.isIntersecting?e?.():t?.()}))}),{threshold:r,rootMargin:s,root:n});return o.observe(i.current),()=>{i.current&&o.unobserve(i.current),o.disconnect()}}),[e,t,r,s,l]),i}const f=Object.assign((()=>(console.warn("Direct usage of Minimap is not supported. Please use Minimap.Root, Minimap.Item instead."),null)),{Root:({children:r,className:n,customRootClass:o="",...u})=>{const d=l(o,"Minimap"),m=t.useRef(null);return e(c.Provider,{value:{rootClass:d,rootRef:m},children:e(a.Root,{loop:!0,orientation:"both",children:e(a.Group,{children:e(i.div,{ref:m,className:s(d,n),...u,children:r})})})})},Item:({children:r,className:n="",value:o,...l})=>{const{rootClass:m}=t.useContext(c)||{rootClass:""},{visibleItems:h,scrollToItem:f}=t.useContext(d),v=h.includes(o),C=t.useMemo((()=>({value:o,isVisible:v})),[o,v]),p=t.useCallback((()=>{f(o)}),[o,f]);return e(u.Provider,{value:C,children:e(a.Item,{value:o,children:e(i.button,{onClick:p,className:s(m&&`${m}-item`,n),"data-in-view":v?"true":"false",...l,children:r})})})},Track:({children:r,className:n="",...o})=>{const{rootClass:l}=t.useContext(c);return e("div",{className:s(l&&`${l}-track`,n),...o,children:r})},Line:({children:r,className:n="",...o})=>{const{rootClass:l}=t.useContext(c)||{rootClass:""},{value:i}=t.useContext(u)||{value:""},{visibleItems:a}=t.useContext(d),m=a.indexOf(i),h=-1!==m,f=-1!==m&&m<a.length-1,v=h&&f;return e("div",{className:s(l&&`${l}-line`,n),"data-in-view":v?"true":"false",...o,children:r})},Content:({children:r,className:n="",...o})=>{const{rootClass:l}=t.useContext(c);return e("div",{className:s(l&&`${l}-content`,n),...o,children:r})},Bubble:({children:r,className:n="",...o})=>{const{rootClass:l}=t.useContext(c)||{rootClass:""},{isVisible:i}=t.useContext(u)||{isVisible:!1};return e("div",{className:s(l&&`${l}-bubble`,n),"data-in-view":i?"true":"false",...o,children:r})},Provider:({children:r,className:n="",scrollable:o,...s})=>{const[l,i]=t.useState([]),a=t.useRef(new Map),c=t.useRef(null),u=t.useCallback(((e,t)=>{t?a.current.set(e,t):a.current.delete(e)}),[]),m=t.useCallback((e=>{i((t=>{if(null===e||t.includes(e))return t;return[...t,e].sort(((e,t)=>{const r=a.current.get(e),n=a.current.get(t);if(!r||!n)return 0;return r.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}))}))}),[]),h=t.useCallback((e=>{i((t=>null!==e&&t.includes(e)?t.filter((t=>t!==e)):t))}),[]),f=t.useCallback((e=>{const t=a.current.get(e);if(!t)return;let r=null;if(o&&c.current)r=c.current;else{const e=t=>{if(!t||t===document.body)return null;const r=window.getComputedStyle(t);return("auto"===r.overflow||"scroll"===r.overflow||"auto"===r.overflowY||"scroll"===r.overflowY)&&t.scrollHeight>t.clientHeight?t:e(t.parentElement)};r=e(t.parentElement)}if(r){const e=t.getBoundingClientRect(),n=r.getBoundingClientRect(),o=e.top-n.top+r.scrollTop,s=r.scrollHeight-r.clientHeight,l=Math.max(0,Math.min(o,s));Math.abs(l-r.scrollTop)>1&&r.scrollTo({top:l,behavior:"smooth"})}}),[]),v=t.useMemo((()=>({visibleItems:l,handleInView:m,handleOutView:h,scrollToItem:f,registerRef:u})),[l,m,h,f,u]);return e(d.Provider,{value:v,children:e("div",{ref:c,className:`${n}`,...s,children:r})})},Waypoint:({children:r,className:n="",value:o="",...l})=>{const{handleInView:i,handleOutView:a,registerRef:c}=t.useContext(d),u=h({onEnter:t.useCallback((()=>{console.log("waypoint",o,"in view"),i(o)}),[o,i]),onLeave:t.useCallback((()=>{console.log("waypoint",o,"out of view"),a(o)}),[o,a]),threshold:.1}),m=t.useCallback((e=>{u&&"current"in u&&(u.current=e),o&&c(o,e)}),[u,o,c]);return e("div",{ref:m,className:s(n),...l,children:r})}});export{f as default};
1
+ 'use client';import{jsx as e}from"react/jsx-runtime";import t,{createContext as r,useRef as n,useEffect as o}from"react";import{u as s,c as l}from"./useComponentClass-C0isGl1z.js";import{P as a}from"./index-XF8itt-H.js";import{R as i}from"./index-C7dBo_Ry.js";import{c}from"./mergeProps-0RucjqeH.js";import"./ThemeContext-Sm-iNANd.js";import"./index-FITGoHty.js";import"./keyboard-BKF7hXqL.js";import"./mergeRefs-B8eZ_q-T.js";const u=r({rootClass:"",rootRef:null}),m=t.forwardRef((({children:r,className:n,customRootClass:o="",...m},d)=>{const f=s(o,"Minimap"),p=t.useRef(null),h=t.useMemo((()=>c(p,d)),[d]),C=t.useMemo((()=>({rootClass:f,rootRef:p})),[f]);return e(u.Provider,{value:C,children:e(i.Root,{loop:!0,orientation:"both",children:e(i.Group,{children:e(a.div,{ref:h,className:l(f,n),...m,children:r})})})})}));m.displayName="Minimap.Root";const d=r({value:"",isVisible:!1}),f=r({visibleItems:[],handleInView:()=>{},handleOutView:()=>{},scrollToItem:()=>{},registerRef:()=>{}}),p=t.forwardRef((({children:r,className:n="",value:o,...s},c)=>{const{rootClass:m}=t.useContext(u)||{rootClass:""},{visibleItems:p,scrollToItem:h}=t.useContext(f),C=p.includes(o),b=t.useMemo((()=>({value:o,isVisible:C})),[o,C]),v=t.useCallback((()=>{h(o)}),[o,h]);return e(d.Provider,{value:b,children:e(i.Item,{children:e(a.button,{ref:c,onClick:v,className:l(m&&`${m}-item`,n),"data-in-view":C?"true":"false",...s,children:r})})})}));p.displayName="Minimap.Item";const h=t.forwardRef((({children:r,className:n="",...o},s)=>{const{rootClass:a}=t.useContext(u);return e("span",{ref:s,className:l(a&&`${a}-track`,n),...o,children:r})}));h.displayName="Minimap.Track";const C=t.forwardRef((({children:r,className:n="",...o},s)=>{const{rootClass:a}=t.useContext(u)||{rootClass:""},{value:i}=t.useContext(d)||{value:""},{visibleItems:c}=t.useContext(f),m=c.indexOf(i),p=-1!==m,h=-1!==m&&m<c.length-1,C=p&&h;return e("span",{ref:s,className:l(a&&`${a}-line`,n),"data-in-view":C?"true":"false",...o,children:r})}));C.displayName="Minimap.Line";const b=t.forwardRef((({children:r,className:n="",...o},s)=>{const{rootClass:a}=t.useContext(u);return e("span",{ref:s,className:l(a&&`${a}-content`,n),...o,children:r})}));b.displayName="Minimap.Content";const v=t.forwardRef((({children:r,className:n="",...o},s)=>{const{rootClass:a}=t.useContext(u)||{rootClass:""},{isVisible:i}=t.useContext(d)||{isVisible:!1};return e("span",{ref:s,className:l(a&&`${a}-bubble`,n),"data-in-view":i?"true":"false",...o,children:r})}));v.displayName="Minimap.Bubble";const w=({children:r,className:n="",scrollable:o,...s})=>{const[l,a]=t.useState([]),i=t.useRef(new Map),c=t.useRef(null),u=t.useCallback(((e,t)=>{t?i.current.set(e,t):i.current.delete(e)}),[]),m=t.useCallback((e=>{a((t=>{if(null===e||t.includes(e))return t;return[...t,e].sort(((e,t)=>{const r=i.current.get(e),n=i.current.get(t);if(!r||!n)return 0;return r.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}))}))}),[]),d=t.useCallback((e=>{a((t=>null!==e&&t.includes(e)?t.filter((t=>t!==e)):t))}),[]),p=t.useCallback((e=>{const t=i.current.get(e);if(!t)return;let r=null;if(o&&c.current)r=c.current;else{const e=t=>{if(!t||t===document.body)return null;const r=window.getComputedStyle(t);return("auto"===r.overflow||"scroll"===r.overflow||"auto"===r.overflowY||"scroll"===r.overflowY)&&t.scrollHeight>t.clientHeight?t:e(t.parentElement)};r=e(t.parentElement)}if(r){const e=t.getBoundingClientRect(),n=r.getBoundingClientRect(),o=e.top-n.top+r.scrollTop,s=r.scrollHeight-r.clientHeight,l=Math.max(0,Math.min(o,s));Math.abs(l-r.scrollTop)>1&&r.scrollTo({top:l,behavior:"smooth"})}else"function"==typeof t.scrollIntoView&&t.scrollIntoView({behavior:"smooth",block:"start"})}),[o]),h=t.useMemo((()=>({visibleItems:l,handleInView:m,handleOutView:d,scrollToItem:p,registerRef:u})),[l,m,d,p,u]);return e(f.Provider,{value:h,children:e("div",{ref:c,className:`${n}`,...s,children:r})})};function N(e){if(!e)return null;const t=window.getComputedStyle(e).overflowY;return"auto"===t||"scroll"===t?e:N(e.parentElement)}function g({onEnter:e,onLeave:t,threshold:r=0,rootMargin:s="0px",root:l}){const a=n(null);return o((()=>{if("undefined"==typeof window||!("IntersectionObserver"in window))return;if(!a.current)return;const n=l??N(a.current),o=new IntersectionObserver((r=>{r.forEach((r=>{r.isIntersecting?e?.():t?.()}))}),{threshold:r,rootMargin:s,root:n});return o.observe(a.current),()=>{a.current&&o.unobserve(a.current),o.disconnect()}}),[e,t,r,s,l]),a}const R=({children:r,className:n="",value:o="",...s})=>{const{handleInView:a,handleOutView:i,registerRef:c}=t.useContext(f),u=g({onEnter:t.useCallback((()=>{o&&a(o)}),[o,a]),onLeave:t.useCallback((()=>{o&&i(o)}),[o,i]),threshold:.1}),m=t.useCallback((e=>{u&&"current"in u&&(u.current=e),o&&c(o,e)}),[u,o,c]);return e("div",{ref:m,className:l(n),...s,children:r})},I=Object.assign((()=>(console.warn("Direct usage of Minimap is not supported. Please use Minimap.Root, Minimap.Item instead."),null)),{Root:m,Item:p,Track:h,Line:C,Content:b,Bubble:v,Provider:w,Waypoint:R});export{v as Bubble,b as Content,p as Item,C as Line,w as Provider,m as Root,h as Track,R as Waypoint,I as default};
@@ -1,36 +1,44 @@
1
1
  import * as React from 'react';
2
2
  import React__default from 'react';
3
3
 
4
- interface NavigationMenuRootProps extends React__default.ComponentPropsWithoutRef<'div'> {
4
+ interface NavigationMenuRootProps extends React__default.ComponentPropsWithoutRef<'nav'> {
5
5
  children: React__default.ReactNode;
6
6
  value?: string;
7
7
  defaultValue?: string;
8
8
  onValueChange?: (value: string) => void;
9
9
  customRootClass?: string;
10
+ loop?: boolean;
11
+ contentLoop?: boolean;
10
12
  }
13
+ declare const NavigationMenuRoot: React__default.ForwardRefExoticComponent<NavigationMenuRootProps & React__default.RefAttributes<HTMLElement>>;
11
14
 
12
15
  interface NavigationMenuItemProps extends React__default.ComponentPropsWithoutRef<'div'> {
13
16
  value: string;
14
17
  }
18
+ declare const NavigationMenuItem: React__default.ForwardRefExoticComponent<NavigationMenuItemProps & React__default.RefAttributes<HTMLDivElement>>;
15
19
 
16
20
  interface NavigationMenuTriggerProps extends React__default.ComponentPropsWithoutRef<'button'> {
17
21
  }
22
+ declare const NavigationMenuTrigger: React__default.ForwardRefExoticComponent<NavigationMenuTriggerProps & React__default.RefAttributes<HTMLButtonElement>>;
18
23
 
19
24
  interface NavigationMenuContentProps extends React__default.ComponentPropsWithoutRef<'div'> {
20
25
  children: React__default.ReactNode;
26
+ loop?: boolean;
21
27
  }
28
+ declare const NavigationMenuContent: React__default.ForwardRefExoticComponent<NavigationMenuContentProps & React__default.RefAttributes<HTMLDivElement>>;
22
29
 
23
30
  interface NavigationMenuLinkProps extends React__default.ComponentPropsWithoutRef<'a'> {
24
31
  href: string;
25
32
  }
33
+ declare const NavigationMenuLink: React__default.ForwardRefExoticComponent<NavigationMenuLinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
26
34
 
27
35
  declare const NavigationMenu: {
28
- Root: React.ForwardRefExoticComponent<NavigationMenuRootProps & React.RefAttributes<HTMLDivElement>>;
36
+ Root: React.ForwardRefExoticComponent<NavigationMenuRootProps & React.RefAttributes<HTMLElement>>;
29
37
  Item: React.ForwardRefExoticComponent<NavigationMenuItemProps & React.RefAttributes<HTMLDivElement>>;
30
38
  Trigger: React.ForwardRefExoticComponent<NavigationMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
31
39
  Content: React.ForwardRefExoticComponent<NavigationMenuContentProps & React.RefAttributes<HTMLDivElement>>;
32
40
  Link: React.ForwardRefExoticComponent<NavigationMenuLinkProps & React.RefAttributes<HTMLAnchorElement>>;
33
41
  };
34
42
 
35
- export { NavigationMenu as default };
43
+ export { NavigationMenuContent as Content, NavigationMenuItem as Item, NavigationMenuLink as Link, NavigationMenuRoot as Root, NavigationMenuTrigger as Trigger, NavigationMenu as default };
36
44
  export type { NavigationMenuContentProps, NavigationMenuItemProps, NavigationMenuLinkProps, NavigationMenuRootProps, NavigationMenuTriggerProps };
@@ -1 +1 @@
1
- 'use client';import{jsx as e}from"react/jsx-runtime";import n from"react";import{R as r}from"./index-DOVR6Rd5.js";import{u as o}from"./index-wRElCyvx.js";import{u as t}from"./useComponentClass-QwNivz0h.js";import{c as s}from"./clsx-BaVHROc5.js";import{c as a}from"./index-CXzybYmm.js";import"./index-m6qHOeQ9.js";import"./mergeProps-B9ocQsG4.js";import"./index-gM8bbyw1.js";import"./mergeRefs-B8eZ_q-T.js";import"./ThemeContext-Sm-iNANd.js";const i=n.createContext({isOpen:"",setIsOpen:()=>{},rootClass:""}),l="NavigationMenu",c=n.forwardRef((({children:n,value:a,defaultValue:c="",onValueChange:d,customRootClass:m,className:u,...p},f)=>{const h=t(m,l),[C,g]=o(a,c,d);return e("div",{ref:f,...p,children:e(i.Provider,{value:{isOpen:C,setIsOpen:g,rootClass:h},children:e(r.Root,{children:e(r.Group,{className:s(h&&`${h}-root`,u),children:n})})})})}));c.displayName=l;const d=n.createContext({itemOpen:!1,handleTrigger:()=>{}}),m=n.forwardRef((({value:r,children:o,className:t,onMouseEnter:l,onMouseLeave:c,onKeyDown:m,...u},p)=>{const{isOpen:f,setIsOpen:h,rootClass:C}=n.useContext(i),g=f===r,N=()=>{h(g?"":r)};return e(d.Provider,{value:{itemOpen:g,handleTrigger:N},children:e("div",{ref:p,onMouseEnter:a(l,N),onMouseLeave:a(c,N),className:s(C&&`${C}-item`,t),onKeyDown:a(m,(e=>{"Escape"===e.key&&h("")})),...u,children:o})})}));m.displayName="NavigationMenuItem";const u=n.forwardRef((({children:o,className:t,onClick:l,...c},m)=>{const{handleTrigger:u,itemOpen:p}=n.useContext(d),{rootClass:f}=n.useContext(i);return e(r.Item,{children:e("button",{ref:m,onClick:a(l,u),className:s(f&&`${f}-trigger`,t),"aria-expanded":p,"data-state":p?"open":"closed",...c,children:o})})}));u.displayName="NavigationMenuTrigger";const p=n.forwardRef((({children:o,className:t,...a},l)=>{const{itemOpen:c}=n.useContext(d),{rootClass:m}=n.useContext(i),u=n.useRef(null);return n.useImperativeHandle(l,(()=>u.current)),c?e("div",{ref:u,className:s(m&&`${m}-content`,t),"data-state":c?"open":"closed",...a,children:e(r.Root,{children:e(r.Group,{children:o})})}):null}));p.displayName="NavigationMenuContent";const f=n.forwardRef((({children:o,href:t,className:a,...l},c)=>{const{rootClass:d}=n.useContext(i);return e(r.Item,{children:e("a",{ref:c,href:t,className:s(d&&`${d}-link`,a),...l,children:o})})}));f.displayName="NavigationMenuLink";const h={Root:c,Item:m,Trigger:u,Content:p,Link:f};export{h as default};
1
+ 'use client';import{jsx as e}from"react/jsx-runtime";import n from"react";import{R as t}from"./index-C7dBo_Ry.js";import{u as r}from"./index-wRElCyvx.js";import{u as o,c as s}from"./useComponentClass-C0isGl1z.js";import{c as a}from"./index-CXzybYmm.js";import{K as i}from"./keyboard-BKF7hXqL.js";import{m as c}from"./mergeRefs-B8eZ_q-T.js";import"./index-XF8itt-H.js";import"./mergeProps-0RucjqeH.js";import"./index-FITGoHty.js";import"./ThemeContext-Sm-iNANd.js";const u=n.createContext({isOpen:"",setIsOpen:()=>{},rootClass:"",contentLoop:!0}),l="NavigationMenu",d=n.forwardRef((({children:n,value:a,defaultValue:i="",onValueChange:c,customRootClass:d,loop:f=!0,contentLoop:m=!0,className:p,...g},C)=>{const h=o(d,l),[v,N]=r(a,i,c);return e("nav",{ref:C,...g,children:e(u.Provider,{value:{isOpen:v,setIsOpen:N,rootClass:h,contentLoop:m},children:e(t.Root,{loop:f,children:e(t.Group,{className:s(h&&`${h}-root`,p),children:n})})})})}));d.displayName=l;const f=n.createContext({itemOpen:!1,handleTrigger:()=>{},triggerRef:{current:null}}),m=n.forwardRef((({value:t,children:r,className:o,onMouseEnter:l,onMouseLeave:d,onBlur:m,...p},g)=>{const{isOpen:C,setIsOpen:h,rootClass:v}=n.useContext(u),N=n.useRef(null),R=n.useRef(null),k=n.useId(),L=C===t,x=n.useRef(!1),O=n.useRef(null),I=()=>{null!==O.current&&(clearTimeout(O.current),O.current=null)};n.useEffect((()=>{L||(x.current=!1,I())}),[L]),n.useEffect((()=>I),[]);const E=n.useRef(new Set),y=n.useRef(!1),w=n.useCallback((e=>(E.current.add(e),()=>{E.current.delete(e)})),[]),T=()=>{const e=Array.from(E.current).filter((e=>e.isConnected));return 0!==e.length&&(e.sort(((e,n)=>e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1)),e[0].focus(),!0)};n.useEffect((()=>{L||(y.current=!1)}),[L]),n.useEffect((()=>{if(!L)return;const e=N.current,n=e?.ownerDocument??("undefined"!=typeof document?document:null);if(!n)return;const t=t=>{if(t.key!==i.ESCAPE||t.defaultPrevented)return;const r=n.activeElement,o=!!e&&!!r&&e.contains(r),s=!r||r===n.body;h(""),(o||s)&&R.current?.focus()},r=n=>{const t=n.target;e&&t&&e.contains(t)||h("")};return n.addEventListener("keydown",t),n.addEventListener("pointerdown",r),()=>{n.removeEventListener("keydown",t),n.removeEventListener("pointerdown",r)}}),[L,h]);return e(f.Provider,{value:{itemOpen:L,handleTrigger:e=>{const n=!!e&&e.detail>0;L&&x.current&&n?x.current=!1:(x.current=!1,h(L?"":t))},triggerRef:R,contentId:k,registerLink:w,openAndFocusFirstLink:()=>{I(),x.current=!1,L?T():(y.current=!0,h(t))},flushPendingFocus:()=>{y.current&&(y.current=!1,T())}},children:e("div",{ref:c(N,g),onMouseEnter:a(l,(()=>{I(),L||(x.current=!0,h(t))})),onMouseLeave:a(d,(()=>{I(),L&&(O.current=setTimeout((()=>{O.current=null,x.current=!1,h((e=>e===t?"":e))}),150))})),onBlur:a(m,(e=>{if(!L)return;const n=e.relatedTarget;n&&!e.currentTarget.contains(n)&&h((e=>e===t?"":e))})),className:s(v&&`${v}-item`,o),...p,children:r})})}));m.displayName="NavigationMenuItem";const p=n.forwardRef((({children:r,className:o,onClick:l,onKeyDown:d,...m},p)=>{const{handleTrigger:g,itemOpen:C,triggerRef:h,contentId:v,openAndFocusFirstLink:N}=n.useContext(f),{rootClass:R}=n.useContext(u);return e(t.Item,{children:e("button",{ref:c(h,p),onClick:a(l,g),onKeyDown:a(d,(e=>{e.key===i.ARROW_DOWN&&N&&(e.preventDefault(),N())})),className:s(R&&`${R}-trigger`,o),"aria-expanded":C,"aria-controls":C?v:void 0,"data-state":C?"open":"closed",...m,children:r})})}));p.displayName="NavigationMenuTrigger";const g=n.forwardRef((({children:r,className:o,loop:a,...i},c)=>{const{itemOpen:l,contentId:d,flushPendingFocus:m}=n.useContext(f),{rootClass:p,contentLoop:g}=n.useContext(u),C=n.useRef(null),h=a??g;return n.useImperativeHandle(c,(()=>C.current)),n.useEffect((()=>{l&&m?.()}),[l]),l?e("div",{ref:C,id:d,className:s(p&&`${p}-content`,o),"data-state":l?"open":"closed",...i,children:e(t.Root,{loop:h,orientation:"both",children:e(t.Group,{asChild:!1,children:r})})}):null}));g.displayName="NavigationMenuContent";const C=n.forwardRef((({children:r,href:o,className:i,onClick:l,...d},m)=>{const{rootClass:p,setIsOpen:g}=n.useContext(u),{registerLink:C}=n.useContext(f),h=n.useRef(null);n.useEffect((()=>{const e=h.current;if(e&&C)return C(e)}),[C]);return e(t.Item,{children:e("a",{ref:c(h,m),href:o,className:s(p&&`${p}-link`,i),...d,onClick:a(l,(()=>g("")),{checkForDefaultPrevented:!1}),children:r})})}));C.displayName="NavigationMenuLink";const h={Root:d,Item:m,Trigger:p,Content:g,Link:C};export{g as Content,m as Item,C as Link,d as Root,p as Trigger,h as default};