@tribepad/themis 1.5.9 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/elements/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/elements/Checkbox/index.js +1 -1
- package/dist/elements/Checkbox/index.js.map +1 -1
- package/dist/elements/Checkbox/index.mjs +1 -1
- package/dist/elements/Checkbox/index.mjs.map +1 -1
- package/dist/elements/Filters/AppliedFilters.d.ts +4 -0
- package/dist/elements/Filters/AppliedFilters.d.ts.map +1 -0
- package/dist/elements/Filters/FilterPopover.d.ts +33 -0
- package/dist/elements/Filters/FilterPopover.d.ts.map +1 -0
- package/dist/elements/Filters/Filters.d.ts +25 -0
- package/dist/elements/Filters/Filters.d.ts.map +1 -0
- package/dist/elements/Filters/Filters.styles.d.ts +24 -0
- package/dist/elements/Filters/Filters.styles.d.ts.map +1 -0
- package/dist/elements/Filters/Filters.types.d.ts +123 -0
- package/dist/elements/Filters/Filters.types.d.ts.map +1 -0
- package/dist/elements/Filters/FiltersContext.d.ts +36 -0
- package/dist/elements/Filters/FiltersContext.d.ts.map +1 -0
- package/dist/elements/Filters/index.css +2 -0
- package/dist/elements/Filters/index.css.map +1 -0
- package/dist/elements/Filters/index.d.ts +26 -0
- package/dist/elements/Filters/index.d.ts.map +1 -0
- package/dist/elements/Filters/index.js +3 -0
- package/dist/elements/Filters/index.js.map +1 -0
- package/dist/elements/Filters/index.mjs +3 -0
- package/dist/elements/Filters/index.mjs.map +1 -0
- package/dist/elements/PasswordField/PasswordField.types.d.ts +34 -34
- package/dist/elements/Sidebar/index.js +1 -1
- package/dist/elements/Sidebar/index.js.map +1 -1
- package/dist/elements/Sidebar/index.mjs +1 -1
- package/dist/elements/Sidebar/index.mjs.map +1 -1
- package/dist/elements/Table/BulkActionBar.d.ts +5 -0
- package/dist/elements/Table/BulkActionBar.d.ts.map +1 -0
- package/dist/elements/Table/BulkActionBar.styles.d.ts +17 -0
- package/dist/elements/Table/BulkActionBar.styles.d.ts.map +1 -0
- package/dist/elements/Table/BulkActionBar.types.d.ts +136 -0
- package/dist/elements/Table/BulkActionBar.types.d.ts.map +1 -0
- package/dist/elements/Table/Table.d.ts +4 -5
- package/dist/elements/Table/Table.d.ts.map +1 -1
- package/dist/elements/Table/Table.styles.d.ts +2 -3
- package/dist/elements/Table/Table.styles.d.ts.map +1 -1
- package/dist/elements/Table/Table.types.d.ts +14 -30
- package/dist/elements/Table/Table.types.d.ts.map +1 -1
- package/dist/elements/Table/TableCardList.d.ts +25 -0
- package/dist/elements/Table/TableCardList.d.ts.map +1 -0
- package/dist/elements/Table/TableCardList.styles.d.ts +15 -0
- package/dist/elements/Table/TableCardList.styles.d.ts.map +1 -0
- package/dist/elements/Table/TableCardList.types.d.ts +48 -0
- package/dist/elements/Table/TableCardList.types.d.ts.map +1 -0
- package/dist/elements/Table/index.d.ts +12 -3
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +1 -1
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/Table/index.mjs +1 -1
- package/dist/elements/Table/index.mjs.map +1 -1
- package/dist/elements/Table/resolveSelectedCount.d.ts +20 -0
- package/dist/elements/Table/resolveSelectedCount.d.ts.map +1 -0
- package/dist/elements/Table/useBulkActionShortcut.d.ts +29 -0
- package/dist/elements/Table/useBulkActionShortcut.d.ts.map +1 -0
- package/dist/elements/TextField/TextField.types.d.ts +68 -68
- package/dist/elements/index.d.ts +4 -1
- package/dist/elements/index.d.ts.map +1 -1
- package/dist/elements/index.js +1 -1
- package/dist/elements/index.js.map +1 -1
- package/dist/elements/index.mjs +1 -1
- package/dist/elements/index.mjs.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +1 -1
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/hooks/useContainerNarrow.d.ts +15 -0
- package/dist/hooks/useContainerNarrow.d.ts.map +1 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/styles/defaults.css +15 -0
- package/package.json +6 -1
- package/src/elements/Filters/Filters.stories.tsx +148 -0
- package/src/elements/Sidebar/Sidebar.stories.tsx +1 -1
- package/src/elements/Table/Table.stories.tsx +467 -10
|
@@ -45,52 +45,52 @@ export declare const PasswordFieldPropsSchema: z.ZodObject<{
|
|
|
45
45
|
tel: "tel";
|
|
46
46
|
url: "url";
|
|
47
47
|
email: "email";
|
|
48
|
+
"honorific-prefix": "honorific-prefix";
|
|
49
|
+
"given-name": "given-name";
|
|
48
50
|
"additional-name": "additional-name";
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
"family-name": "family-name";
|
|
52
|
+
"honorific-suffix": "honorific-suffix";
|
|
53
|
+
nickname: "nickname";
|
|
54
|
+
username: "username";
|
|
55
|
+
"new-password": "new-password";
|
|
56
|
+
"current-password": "current-password";
|
|
57
|
+
"one-time-code": "one-time-code";
|
|
58
|
+
"organization-title": "organization-title";
|
|
59
|
+
organization: "organization";
|
|
60
|
+
"street-address": "street-address";
|
|
53
61
|
"address-line1": "address-line1";
|
|
54
62
|
"address-line2": "address-line2";
|
|
55
63
|
"address-line3": "address-line3";
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
64
|
+
"address-level4": "address-level4";
|
|
65
|
+
"address-level3": "address-level3";
|
|
66
|
+
"address-level2": "address-level2";
|
|
67
|
+
"address-level1": "address-level1";
|
|
68
|
+
country: "country";
|
|
69
|
+
"country-name": "country-name";
|
|
70
|
+
"postal-code": "postal-code";
|
|
71
|
+
"cc-name": "cc-name";
|
|
72
|
+
"cc-given-name": "cc-given-name";
|
|
73
|
+
"cc-additional-name": "cc-additional-name";
|
|
74
|
+
"cc-family-name": "cc-family-name";
|
|
75
|
+
"cc-number": "cc-number";
|
|
60
76
|
"cc-exp": "cc-exp";
|
|
61
77
|
"cc-exp-month": "cc-exp-month";
|
|
62
78
|
"cc-exp-year": "cc-exp-year";
|
|
63
|
-
"cc-
|
|
64
|
-
"cc-given-name": "cc-given-name";
|
|
65
|
-
"cc-name": "cc-name";
|
|
66
|
-
"cc-number": "cc-number";
|
|
79
|
+
"cc-csc": "cc-csc";
|
|
67
80
|
"cc-type": "cc-type";
|
|
68
|
-
country: "country";
|
|
69
|
-
"country-name": "country-name";
|
|
70
|
-
"current-password": "current-password";
|
|
71
|
-
"family-name": "family-name";
|
|
72
|
-
"given-name": "given-name";
|
|
73
|
-
"honorific-prefix": "honorific-prefix";
|
|
74
|
-
"honorific-suffix": "honorific-suffix";
|
|
75
|
-
"new-password": "new-password";
|
|
76
|
-
"one-time-code": "one-time-code";
|
|
77
|
-
organization: "organization";
|
|
78
|
-
"postal-code": "postal-code";
|
|
79
|
-
"street-address": "street-address";
|
|
80
|
-
"transaction-amount": "transaction-amount";
|
|
81
81
|
"transaction-currency": "transaction-currency";
|
|
82
|
-
|
|
83
|
-
"tel-area-code": "tel-area-code";
|
|
84
|
-
"tel-country-code": "tel-country-code";
|
|
85
|
-
"tel-extension": "tel-extension";
|
|
86
|
-
"tel-local": "tel-local";
|
|
87
|
-
"tel-national": "tel-national";
|
|
88
|
-
nickname: "nickname";
|
|
89
|
-
"organization-title": "organization-title";
|
|
90
|
-
"cc-additional-name": "cc-additional-name";
|
|
82
|
+
"transaction-amount": "transaction-amount";
|
|
91
83
|
language: "language";
|
|
92
84
|
bday: "bday";
|
|
85
|
+
"bday-day": "bday-day";
|
|
86
|
+
"bday-month": "bday-month";
|
|
87
|
+
"bday-year": "bday-year";
|
|
93
88
|
sex: "sex";
|
|
89
|
+
"tel-country-code": "tel-country-code";
|
|
90
|
+
"tel-national": "tel-national";
|
|
91
|
+
"tel-area-code": "tel-area-code";
|
|
92
|
+
"tel-local": "tel-local";
|
|
93
|
+
"tel-extension": "tel-extension";
|
|
94
94
|
impp: "impp";
|
|
95
95
|
photo: "photo";
|
|
96
96
|
}>>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
'use strict';var react=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),reactAriaComponents=require('react-aria-components'),lucideReact=require('lucide-react'),zod=require('zod');var vt=Object.defineProperty;var O=(e,t)=>()=>(e&&(t=e(e=0)),t);var gt=(e,t)=>{for(var a in t)vt(e,a,{get:t[a],enumerable:true});};function He(e){let t=react.useCallback(o=>{let n=window.matchMedia(e);return n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[e]),a=react.useCallback(()=>window.matchMedia(e).matches,[e]),r=react.useCallback(()=>false,[]);return react.useSyncExternalStore(t,a,r)}var De=O(()=>{"use client";});function g(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var _=O(()=>{});function W(...e){return e.flatMap(t=>Array.isArray(t)?[...t]:[t])}var J,se,ie,F,$,Be,ke=O(()=>{J=["focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2"],se=["min-h-[44px]","min-w-[44px]"],ie={sm:"h-9",default:"h-10",lg:"h-11"},{sm:`${ie.sm} px-2 text-xs`,default:`${ie.default} px-3 text-sm`,lg:`${ie.lg} px-4 text-base`},F=["motion-reduce:transition-none","motion-reduce:animate-none"],$=["transition-colors","duration-150"],Be=["hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]"];});exports.sidebarRootVariants=void 0;exports.sidebarRailVariants=void 0;exports.sidebarRailToolbarVariants=void 0;exports.sidebarRailItemVariants=void 0;exports.sidebarRailItemIconVariants=void 0;exports.sidebarRailItemLabelVariants=void 0;var ze;exports.sidebarRailItemBadgeVariants=void 0;exports.sidebarPopoverVariants=void 0;exports.sidebarPanelVariants=void 0;exports.sidebarPanelHeaderVariants=void 0;exports.sidebarPanelHeaderTitleVariants=void 0;exports.sidebarCollapseButtonVariants=void 0;exports.sidebarMobileOverlayVariants=void 0;exports.sidebarMobileDrawerVariants=void 0;exports.sidebarMobileDrawerHeaderVariants=void 0;exports.sidebarMobileRailVariants=void 0;exports.sidebarMobileRailItemVariants=void 0;var Ge,Ue,w=O(()=>{ke();exports.sidebarRootVariants=classVarianceAuthority.cva(["flex","h-full","group/sidebar"]),exports.sidebarRailVariants=classVarianceAuthority.cva(["flex","flex-col","w-[68px]","shrink-0","pl-1","relative","z-10"],{variants:{variant:{default:"bg-[var(--menu-background)] border-r border-[var(--border)]",primary:"bg-[var(--primary-action)]"}},defaultVariants:{variant:"default"}}),exports.sidebarRailToolbarVariants=classVarianceAuthority.cva(["flex","flex-col"]),exports.sidebarRailItemVariants=classVarianceAuthority.cva(W(J,F,$,["group/railitem","flex","flex-col","items-center","justify-center","w-full","min-h-[44px]","gap-1","py-1","rounded-[var(--radius-md)]","cursor-pointer","relative","select-none"]),{variants:{railVariant:{default:[],primary:[]},isActive:{true:[],false:[]},isDisabled:{true:["pointer-events-none","opacity-50","cursor-not-allowed"],false:[]}},defaultVariants:{railVariant:"default",isActive:false,isDisabled:false}}),exports.sidebarRailItemIconVariants=classVarianceAuthority.cva(W($,["relative","flex","items-center","justify-center","shrink-0","size-[30px]","rounded-[9px]","[&_svg]:size-4","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),{variants:{railVariant:{default:[],primary:[]},isActive:{true:[],false:[]}},compoundVariants:[{railVariant:"default",isActive:false,className:"text-[var(--content-foreground)] group-data-[hovered]/railitem:bg-[var(--primary-action)]/10"},{railVariant:"default",isActive:true,className:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)]"},{railVariant:"primary",isActive:false,className:"text-[var(--primary-action-foreground)] group-data-[hovered]/railitem:bg-white/10"},{railVariant:"primary",isActive:true,className:"bg-[var(--primary-action-foreground)] text-[var(--primary-action)]"}],defaultVariants:{railVariant:"default",isActive:false}}),exports.sidebarRailItemLabelVariants=classVarianceAuthority.cva(["text-[11px]","font-normal","leading-tight","tracking-[0.165px]","text-center","max-w-full","truncate"],{variants:{railVariant:{default:[],primary:"text-[var(--primary-action-foreground)]"},isActive:{true:[],false:[]}},compoundVariants:[{railVariant:"default",isActive:false,className:"text-[var(--content-foreground)]"},{railVariant:"default",isActive:true,className:"text-[var(--primary-action)]"}],defaultVariants:{railVariant:"default",isActive:false}}),ze=classVarianceAuthority.cva(["absolute","right-0","top-1/2","z-10","size-[14px]","-translate-y-1/2","translate-x-1/2","rotate-45","bg-[var(--content-background)]","border-b","border-l","border-[var(--border)]","hidden","group-has-[[data-sidebar-panel]]/sidebar:block"]),exports.sidebarRailItemBadgeVariants=classVarianceAuthority.cva(["absolute","-top-1.5","-right-1.5","min-w-[18px]","h-[18px]","rounded-full","px-1","flex","items-center","justify-center","bg-[var(--destructive-background)]","text-[var(--destructive-foreground)]","text-[10px]","font-bold","leading-none"]),exports.sidebarPopoverVariants=classVarianceAuthority.cva(["h-full","w-full","overflow-y-auto","bg-[var(--content-background)]","text-[var(--content-foreground)]","text-sm","motion-safe:animate-in","motion-safe:fade-in-0","motion-safe:slide-in-from-bottom-1","motion-safe:duration-200","motion-safe:fill-mode-both","[animation-delay:120ms]"]),exports.sidebarPanelVariants=classVarianceAuthority.cva(["flex","flex-col","h-full","overflow-hidden","bg-[var(--content-background)]","text-[var(--content-foreground)]","motion-safe:transition-[max-width,opacity]","motion-safe:duration-[var(--transition-slow)]",...F],{variants:{width:{sm:"max-w-[220px] w-[220px]",md:"max-w-[280px] w-[280px]",lg:"max-w-[340px] w-[340px]",xl:"max-w-[420px] w-[420px]"},isCollapsed:{true:"max-w-0 opacity-0 overflow-hidden",false:"opacity-100"}},defaultVariants:{width:"md",isCollapsed:false}}),exports.sidebarPanelHeaderVariants=classVarianceAuthority.cva(["flex","items-center","justify-between","px-3","py-2","shrink-0"]),exports.sidebarPanelHeaderTitleVariants=classVarianceAuthority.cva(["text-base","font-semibold","text-[var(--content-foreground)]","truncate"]),exports.sidebarCollapseButtonVariants=classVarianceAuthority.cva(W(se,J,F,$,["inline-flex","items-center","justify-center","rounded-[var(--radius-md)]","[&_svg]:size-4","[&_svg]:shrink-0","cursor-pointer","mb-1"]),{variants:{railVariant:{default:["text-[var(--menu-foreground)]",...Be],primary:["text-[var(--primary-action-foreground)]","hover:bg-white/10"]}},defaultVariants:{railVariant:"default"}}),exports.sidebarMobileOverlayVariants=classVarianceAuthority.cva(["fixed","inset-0","z-50","bg-black/50"]),exports.sidebarMobileDrawerVariants=classVarianceAuthority.cva(["fixed","inset-y-0","left-0","z-50","flex","flex-col","w-[85vw]","max-w-[380px]","bg-[var(--content-background)]"]),exports.sidebarMobileDrawerHeaderVariants=classVarianceAuthority.cva(["flex","items-center","justify-between","px-3","py-2","border-b","border-[var(--border)]","shrink-0"]),exports.sidebarMobileRailVariants=classVarianceAuthority.cva(["flex","items-center","gap-1","px-2","py-2","overflow-x-auto","overflow-y-hidden","shrink-0","border-b","border-[var(--border)]","bg-[var(--menu-background)]"]),exports.sidebarMobileRailItemVariants=classVarianceAuthority.cva(W(se,J,F,$,["flex","flex-col","items-center","justify-center","gap-0.5","px-2","py-1.5","rounded-[var(--radius-md)]","text-[var(--icon)]","shrink-0","cursor-pointer"]),{variants:{isActive:{true:["bg-[var(--primary-action)]","text-[var(--primary-action-foreground)]"],false:["data-[hovered]:bg-[var(--primary-action)]/10"]}},defaultVariants:{isActive:false}}),Ge=classVarianceAuthority.cva(["relative","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),Ue=classVarianceAuthority.cva(["text-[10px]","leading-tight","text-center","max-w-full","truncate"],{variants:{isActive:{true:"font-semibold",false:"font-medium"}},defaultVariants:{isActive:false}});});function M(){let e=react.useContext(Re);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function S(){let e=react.useContext(Pe);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function ye({children:e,isCollapsed:t,defaultCollapsed:a=false,onCollapsedChange:r,isMobileOpen:o,onMobileOpenChange:n,mobileBreakpoint:i=768,className:c,"data-testid":l="sidebar"}){let[f,v]=react.useState(a),s=t!==void 0,m=s?t:f,p=react.useCallback(E=>{s||v(E),r?.(E);},[s,r]),R=react.useCallback(()=>p(!m),[p,m]),N=o??false,L=react.useCallback(E=>n?.(E),[n]),[x,y]=react.useState(null),b=react.useRef(null),T=react.useCallback(()=>{b.current&&(clearTimeout(b.current),b.current=null);},[]),D=react.useCallback((E=300)=>{b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null,y(null);},E);},[]);react.useEffect(()=>()=>{b.current&&clearTimeout(b.current);},[]);let A=He(`(max-width: ${i-1}px)`),B=react.useId(),k=`sidebar-rail-${B}`,z=`sidebar-panel-${B}`,G=react.useMemo(()=>({isMobile:A,railId:k,panelId:z}),[A,k,z]),U=react.useMemo(()=>({isCollapsed:m,setCollapsed:p,toggleCollapsed:R,isMobileOpen:N,setMobileOpen:L,activePopoverId:x,setActivePopoverId:y,cancelPopoverClose:T,schedulePopoverClose:D}),[m,p,R,N,L,x,T,D]);return A?jsxRuntime.jsx(Re.Provider,{value:G,children:jsxRuntime.jsx(Pe.Provider,{value:U,children:e})}):jsxRuntime.jsx(Re.Provider,{value:G,children:jsxRuntime.jsx(Pe.Provider,{value:U,children:jsxRuntime.jsx("div",{className:g(exports.sidebarRootVariants(),c),"data-testid":l,children:e})})})}var Re,Pe,H=O(()=>{"use client";De();_();w();Re=react.createContext(null),Pe=react.createContext(null);ye.displayName="Sidebar";});var dt={};gt(dt,{SidebarMobileDrawer:()=>ta});function Kt(e){return e>99?"99+":String(e)}function Jt(e){let t=null;return react.Children.forEach(e.props.children,a=>{react.isValidElement(a)&&a.type.displayName==="SidebarPopover"&&(t=a);}),t}function ea(e){let t=[],a=null,r="Navigation";return react.Children.forEach(e,o=>{if(!react.isValidElement(o))return;let n=o.type.displayName;n==="SidebarRail"?(r=o.props["aria-label"]??r,react.Children.forEach(o.props.children,i=>{if(!react.isValidElement(i))return;if(i.type.displayName==="SidebarRailItem"){let l=i;t.push({props:l.props,popover:Jt(l)});}})):n==="SidebarPanel"&&(a=o.props.children);}),{railItems:t,panelContent:a,railAriaLabel:r}}function ta({children:e}){let{isMobileOpen:t,setMobileOpen:a,activePopoverId:r,setActivePopoverId:o}=S(),{railItems:n,panelContent:i,railAriaLabel:c}=ea(e),f=n.find(s=>s.props.id===r)?.popover??i,v=()=>{o(null),a(false);};return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{isDismissable:true,isOpen:t,onOpenChange:s=>{s||v();},className:exports.sidebarMobileOverlayVariants(),children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:exports.sidebarMobileDrawerVariants(),children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{"aria-label":"Navigation menu",className:"flex flex-col h-full outline-none",children:[jsxRuntime.jsxs("header",{className:exports.sidebarMobileDrawerHeaderVariants(),children:[jsxRuntime.jsx("span",{className:"text-base font-semibold text-[var(--content-foreground)]",children:"Menu"}),jsxRuntime.jsx(reactAriaComponents.Button,{"aria-label":"Close navigation",className:g(exports.sidebarCollapseButtonVariants()),onPress:v,children:jsxRuntime.jsx(lucideReact.X,{})})]}),n.length>0&&jsxRuntime.jsx("div",{role:"toolbar","aria-orientation":"horizontal","aria-label":c,tabIndex:0,className:exports.sidebarMobileRailVariants(),children:n.map(({props:s,popover:m})=>{let p=m!=null,R=r===s.id;return jsxRuntime.jsxs(reactAriaComponents.Button,{"aria-current":s.isActive?s.currentType??"page":void 0,"aria-haspopup":p?"dialog":void 0,"aria-expanded":p?R:void 0,isDisabled:s.isDisabled,className:exports.sidebarMobileRailItemVariants({isActive:(s.isActive??false)||R}),onPress:()=>{if(s.onPress?.(),p){o(R?null:s.id);return}if(s.href){window.location.href=s.href,v();return}},"data-testid":`sidebar-mobile-rail-item-${s.id}`,children:[jsxRuntime.jsxs("span",{className:Ge(),"aria-hidden":"true",children:[s.icon,s.badgeCount!=null&&s.badgeCount>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:Kt(s.badgeCount)})]}),jsxRuntime.jsx("span",{className:Ue({isActive:(s.isActive??false)||R}),children:s.label}),s.badgeCount!=null&&s.badgeCount>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[s.badgeCount," notifications"]})]},s.id)})}),f&&jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto bg-[var(--content-background)] text-[var(--content-foreground)]","data-testid":"sidebar-mobile-panel-content",children:f})]})})})}var ct=O(()=>{"use client";_();H();w();});H();_();H();_();H();w();var Nt=200,It=300;function Qe(e,t){let{activePopoverId:a,setActivePopoverId:r,cancelPopoverClose:o,schedulePopoverClose:n}=S(),i=react.useRef("IDLE"),c=react.useRef(null),l=react.useCallback(()=>{c.current&&(clearTimeout(c.current),c.current=null);},[]),f=a===e;react.useEffect(()=>{!f&&i.current!=="IDLE"?(l(),i.current="IDLE"):f&&(i.current="OPEN");},[f,l]),react.useEffect(()=>l,[l]);let v=react.useCallback(m=>{t&&m.pointerType==="mouse"&&(l(),o(),i.current!=="OPEN"&&(i.current="HOVERING_TRIGGER",c.current=setTimeout(()=>{i.current="OPEN",r(e);},Nt)));},[e,t,r,l,o]),s=react.useCallback(()=>{if(t){if(l(),i.current==="HOVERING_TRIGGER"){i.current="IDLE",r(null);return}i.current==="OPEN"&&n(It);}},[t,r,l,n]);return {onTriggerPointerEnter:v,onTriggerPointerLeave:s}}function Ne({children:e,className:t,"data-testid":a="sidebar-popover"}){return jsxRuntime.jsx("div",{className:g(exports.sidebarPopoverVariants(),t),"data-testid":a,children:e})}Ne.displayName="SidebarPopover";_();H();w();function Tt(){let{activePopoverId:e,setActivePopoverId:t}=S(),{isMobile:a}=M(),r=react.useRef(null);return react.useEffect(()=>{if(!e)return;let o=n=>{n.key==="Escape"&&(n.preventDefault(),t(null));};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[e,t]),react.useEffect(()=>{if(!e)return;let o=i=>{let c=r.current,l=i.relatedTarget;if(!l||!c)return;let f=document.querySelector('[data-testid="sidebar-rail"]');!c.contains(l)&&!f?.contains(l)&&t(null);},n=r.current;return n?.addEventListener("focusout",o),()=>n?.removeEventListener("focusout",o)},[e,t]),a||!e?null:jsxRuntime.jsx(Ke,{ref:r})}var Ye=react.createContext(null);function Ee(){let e=react.useContext(Ye);if(!e)throw new Error("usePopoverRegistry must be used within SidebarPanel");return e}function qe({children:e}){let t=react.useRef(new Map),a=react.useCallback((i,c,l)=>{t.current.set(i,{content:c,label:l});},[]),r=react.useCallback(i=>{t.current.delete(i);},[]),o=react.useCallback(i=>t.current.get(i)??null,[]),n=react.useMemo(()=>({register:a,unregister:r,getContent:o}),[a,r,o]);return jsxRuntime.jsx(Ye.Provider,{value:n,children:e})}var Ke=react.forwardRef((e,t)=>{let{activePopoverId:a,cancelPopoverClose:r,schedulePopoverClose:o}=S(),n=Ee();if(!a)return null;let i=n.getContent(a);return i?jsxRuntime.jsx("div",{ref:t,role:"dialog","aria-label":`${i.label} details`,className:exports.sidebarPopoverVariants(),"data-testid":"sidebar-popover",onPointerEnter:r,onPointerLeave:()=>o(300),children:i.content}):null});Ke.displayName="PopoverContent";var Ot=300,_t={sm:220,md:280,lg:340,xl:420},Ve=react.forwardRef(({children:e,width:t="md","aria-label":a,skeleton:r,className:o,"data-testid":n="sidebar-panel"},i)=>{let{isMobile:c}=M(),{isCollapsed:l,activePopoverId:f}=S(),v=react.useRef(null),s=f!==null,[m,p]=react.useState(!l);react.useEffect(()=>{if(l){p(false);return}let x=window.setTimeout(()=>p(true),Ot);return ()=>window.clearTimeout(x)},[l]);let N=r!==void 0&&!(!l&&m)?r:e;react.useEffect(()=>{if(!l)return;let x=v.current;if(x&&x.contains(document.activeElement)){let y=document.querySelector('[data-testid="sidebar-collapse-button"]');y&&window.requestAnimationFrame(()=>y.focus());}},[l]);let L=x=>{v.current=x,typeof i=="function"?i(x):i&&(i.current=x);};return c?null:jsxRuntime.jsxs("div",{className:g("relative shrink-0",!l&&"border-r border-[var(--border)]"),"data-sidebar-panel":"",children:[jsxRuntime.jsx("aside",{ref:L,"aria-label":a,"aria-hidden":l,inert:l||void 0,className:g(exports.sidebarPanelVariants({width:t,isCollapsed:l}),o),"data-testid":n,children:N}),s&&jsxRuntime.jsx("div",{className:g("absolute top-0 left-0 z-10 h-full",l&&"border-r border-[var(--border)]"),style:{width:`${_t[t]}px`},children:jsxRuntime.jsx(Tt,{})})]})});Ve.displayName="SidebarPanel";function Te({title:e,icon:t,children:a,as:r="h2",className:o,"data-testid":n="sidebar-panel-header"}){return jsxRuntime.jsx("header",{className:g(exports.sidebarPanelHeaderVariants(),o),"data-testid":n,children:a??jsxRuntime.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t?jsxRuntime.jsx("span",{"aria-hidden":"true",className:"inline-flex shrink-0 items-center justify-center text-[var(--icon)]","data-testid":`${n}-icon`,children:t}):null,jsxRuntime.jsx(r,{className:exports.sidebarPanelHeaderTitleVariants(),children:e})]})})}Te.displayName="SidebarPanelHeader";w();var nt=react.createContext({variant:"default",showActiveIndicator:true});function it(){return react.useContext(nt)}var we=react.forwardRef(({children:e,"aria-label":t,variant:a="default",showActiveIndicator:r=true,className:o,"data-testid":n="sidebar-rail"},i)=>{let{isMobile:c}=M(),l=react.useMemo(()=>({variant:a,showActiveIndicator:r}),[a,r]);if(c)return null;let f=[],v=[],s=[];react.Children.forEach(e,p=>{if(react.isValidElement(p)&&p.type.displayName==="SidebarCollapseButton"){f.push(p);return}(react.isValidElement(p)?p.props.placement??"top":"top")==="bottom"?s.push(p):v.push(p);});let m=f.length>0;return jsxRuntime.jsx(nt.Provider,{value:l,children:jsxRuntime.jsxs("nav",{ref:i,"aria-label":t,className:g(exports.sidebarRailVariants({variant:a}),"pb-2",!m&&"pt-2",o),"data-testid":n,children:[f,jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Navigation items",className:exports.sidebarRailToolbarVariants(),children:v}),s.length>0&&jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Secondary navigation items",className:g(exports.sidebarRailToolbarVariants(),"mt-auto"),"data-testid":"sidebar-rail-bottom",children:s})]})})});we.displayName="SidebarRail";function Wt(e){let t=null,a=[];return react.Children.forEach(e,r=>{react.isValidElement(r)&&r.type.displayName==="SidebarPopover"?t=r:a.push(r);}),{popover:t,rest:a.length>0?a:null}}function jt(e){return e>99?"99+":String(e)}var st=react.forwardRef(({id:e,label:t,icon:a,href:r,badgeCount:o,isActive:n=false,currentType:i="page",isDisabled:c=false,onPress:l,children:f,className:v,"data-testid":s},m)=>{let{activePopoverId:p,setActivePopoverId:R}=S(),{variant:N,showActiveIndicator:L}=it(),x=react.useRef(null),{popover:y}=Wt(f),b=y!==null,T=p===e,D=Qe(e,b),A=Ee();react.useEffect(()=>{if(b&&y)return A.register(e,y,t),()=>A.unregister(e)},[e,b,y,t,A]);let B=react.useCallback(()=>{b&&R(T?null:e),l?.();},[b,T,e,l,R]),k=react.useCallback(oe=>{x.current=oe,typeof m=="function"?m(oe):m&&(m.current=oe);},[m]),z=s??`sidebar-rail-item-${e}`,G=v?g(exports.sidebarRailItemVariants({railVariant:N,isActive:n,isDisabled:c}),v):exports.sidebarRailItemVariants({railVariant:N,isActive:n,isDisabled:c}),U=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("span",{className:"relative flex w-full items-center justify-center",children:[jsxRuntime.jsxs("span",{className:exports.sidebarRailItemIconVariants({railVariant:N,isActive:n}),"aria-hidden":"true",children:[a,o!=null&&o>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:jt(o)})]}),L&&n&&jsxRuntime.jsx("span",{className:ze(),"aria-hidden":"true"})]}),jsxRuntime.jsx("span",{className:exports.sidebarRailItemLabelVariants({railVariant:N,isActive:n}),children:t}),o!=null&&o>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[o," notifications"]})]}),E=r&&!c?jsxRuntime.jsx(reactAriaComponents.Link,{ref:k,href:r,"aria-current":n?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?T:void 0,className:G,"data-testid":z,onPress:B,children:U}):jsxRuntime.jsx(reactAriaComponents.Button,{ref:k,isDisabled:c,"aria-current":n?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?T:void 0,className:G,"data-testid":z,onPress:B,children:U});return jsxRuntime.jsx("div",{onPointerEnter:D.onTriggerPointerEnter,onPointerLeave:D.onTriggerPointerLeave,children:E})});st.displayName="SidebarRailItem";var Me=react.memo(st,(e,t)=>e.id===t.id&&e.isActive===t.isActive&&e.badgeCount===t.badgeCount&&e.isDisabled===t.isDisabled&&e.label===t.label&&e.className===t.className&&e.href===t.href);Me.displayName="SidebarRailItem";function Le({className:e,"data-testid":t="sidebar-collapse-button"}){let{isCollapsed:a,toggleCollapsed:r}=S(),{variant:o}=it();return jsxRuntime.jsx(reactAriaComponents.Button,{"aria-expanded":!a,"aria-label":a?"Expand sidebar":"Collapse sidebar",className:g(exports.sidebarCollapseButtonVariants({railVariant:o}),e),"data-testid":t,onPress:r,children:a?jsxRuntime.jsx(lucideReact.ChevronsRight,{}):jsxRuntime.jsx(lucideReact.ChevronsLeft,{})})}Le.displayName="SidebarCollapseButton";var oa=react.lazy(()=>Promise.resolve().then(()=>(ct(),dt)).then(e=>({default:e.SidebarMobileDrawer})));function na({children:e}){let{isMobile:t}=M(),{isMobileOpen:a}=S();return !t||!a?null:jsxRuntime.jsx(react.Suspense,{fallback:null,children:jsxRuntime.jsx(oa,{children:e})})}function pt(e){return jsxRuntime.jsx(ye,{...e,children:jsxRuntime.jsxs(qe,{children:[e.children,jsxRuntime.jsx(na,{children:e.children})]})})}pt.displayName="Sidebar";var ia=Object.assign(pt,{Rail:we,RailItem:Me,Popover:Ne,Panel:Ve,PanelHeader:Te,CollapseButton:Le});w();var V=zod.z.object({className:zod.z.string().optional(),children:zod.z.any().optional(),id:zod.z.string().optional(),"aria-label":zod.z.string().optional(),"aria-labelledby":zod.z.string().optional(),"aria-describedby":zod.z.string().optional(),"aria-live":zod.z.enum(["off","polite","assertive"]).optional(),"aria-hidden":zod.z.boolean().optional(),"data-testid":zod.z.string().optional()});var ut=zod.z.enum(["default","primary"]),mt=zod.z.enum(["sm","md","lg","xl"]),bt=zod.z.enum(["page","true","location"]),ft=zod.z.enum(["h1","h2","h3","h4"]),la=zod.z.enum(["top","bottom"]),da=V.extend({children:zod.z.custom(),isCollapsed:zod.z.boolean().optional(),defaultCollapsed:zod.z.boolean().optional().default(false),onCollapsedChange:zod.z.custom().optional(),isMobileOpen:zod.z.boolean().optional(),onMobileOpenChange:zod.z.custom().optional(),mobileBreakpoint:zod.z.number().optional().default(768)}),ca=V.extend({children:zod.z.custom(),"aria-label":zod.z.string(),variant:ut.optional().default("default"),showActiveIndicator:zod.z.boolean().optional().default(true)}),pa=V.extend({id:zod.z.string(),label:zod.z.string(),icon:zod.z.custom(),href:zod.z.string().optional(),badgeCount:zod.z.number().optional(),isActive:zod.z.boolean().optional(),currentType:bt.optional().default("page"),isDisabled:zod.z.boolean().optional(),onPress:zod.z.custom().optional(),children:zod.z.custom().optional(),placement:la.optional().default("top")}),ua=V.extend({children:zod.z.custom()}),ma=V.extend({children:zod.z.custom(),width:mt.optional().default("md"),"aria-label":zod.z.string(),skeleton:zod.z.custom().optional()}),ba=V.extend({title:zod.z.string().optional(),icon:zod.z.custom().optional(),children:zod.z.custom().optional(),as:ft.optional().default("h2")}),fa=V.extend({});exports.Sidebar=ia;exports.SidebarCollapseButtonPropsSchema=fa;exports.SidebarCurrentTypeSchema=bt;exports.SidebarPanelHeaderLevelSchema=ft;exports.SidebarPanelHeaderPropsSchema=ba;exports.SidebarPanelPropsSchema=ma;exports.SidebarPanelWidthSchema=mt;exports.SidebarPopoverPropsSchema=ua;exports.SidebarPropsSchema=da;exports.SidebarRailItemPropsSchema=pa;exports.SidebarRailPropsSchema=ca;exports.SidebarRailVariantSchema=ut;//# sourceMappingURL=index.js.map
|
|
2
|
+
'use strict';var react=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),reactAriaComponents=require('react-aria-components'),lucideReact=require('lucide-react'),zod=require('zod');var vt=Object.defineProperty;var O=(e,t)=>()=>(e&&(t=e(e=0)),t);var gt=(e,t)=>{for(var a in t)vt(e,a,{get:t[a],enumerable:true});};function He(e){let t=react.useCallback(o=>{let n=window.matchMedia(e);return n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[e]),a=react.useCallback(()=>window.matchMedia(e).matches,[e]),r=react.useCallback(()=>false,[]);return react.useSyncExternalStore(t,a,r)}var De=O(()=>{"use client";});function g(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var _=O(()=>{});function W(...e){return e.flatMap(t=>Array.isArray(t)?[...t]:[t])}var J,se,ie,F,$,Be,ke=O(()=>{J=["focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2"],se=["min-h-[44px]","min-w-[44px]"],ie={sm:"h-9",default:"h-10",lg:"h-11"},{sm:`${ie.sm} px-2 text-xs`,default:`${ie.default} px-3 text-sm`,lg:`${ie.lg} px-4 text-base`},F=["motion-reduce:transition-none","motion-reduce:animate-none"],$=["transition-colors","duration-150"],Be=["hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]"];});exports.sidebarRootVariants=void 0;exports.sidebarRailVariants=void 0;exports.sidebarRailToolbarVariants=void 0;exports.sidebarRailItemVariants=void 0;exports.sidebarRailItemIconVariants=void 0;exports.sidebarRailItemLabelVariants=void 0;var ze;exports.sidebarRailItemBadgeVariants=void 0;exports.sidebarPopoverVariants=void 0;exports.sidebarPanelVariants=void 0;exports.sidebarPanelHeaderVariants=void 0;exports.sidebarPanelHeaderTitleVariants=void 0;exports.sidebarCollapseButtonVariants=void 0;exports.sidebarMobileOverlayVariants=void 0;exports.sidebarMobileDrawerVariants=void 0;exports.sidebarMobileDrawerHeaderVariants=void 0;exports.sidebarMobileRailVariants=void 0;exports.sidebarMobileRailItemVariants=void 0;var Ge,Ue,w=O(()=>{ke();exports.sidebarRootVariants=classVarianceAuthority.cva(["flex","h-full","group/sidebar"]),exports.sidebarRailVariants=classVarianceAuthority.cva(["flex","flex-col","w-[80px]","shrink-0","pl-1","relative","z-10"],{variants:{variant:{default:"bg-[var(--menu-background)] border-r border-[var(--border)]",primary:"bg-[var(--primary-action)]"}},defaultVariants:{variant:"default"}}),exports.sidebarRailToolbarVariants=classVarianceAuthority.cva(["flex","flex-col"]),exports.sidebarRailItemVariants=classVarianceAuthority.cva(W(J,F,$,["group/railitem","flex","flex-col","items-center","justify-center","w-full","min-h-[44px]","gap-1","py-1","rounded-[var(--radius-md)]","cursor-pointer","relative","select-none"]),{variants:{railVariant:{default:[],primary:[]},isActive:{true:[],false:[]},isDisabled:{true:["pointer-events-none","opacity-50","cursor-not-allowed"],false:[]}},defaultVariants:{railVariant:"default",isActive:false,isDisabled:false}}),exports.sidebarRailItemIconVariants=classVarianceAuthority.cva(W($,["relative","flex","items-center","justify-center","shrink-0","size-[30px]","rounded-[9px]","[&_svg]:size-4","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),{variants:{railVariant:{default:[],primary:[]},isActive:{true:[],false:[]}},compoundVariants:[{railVariant:"default",isActive:false,className:"text-[var(--content-foreground)] group-data-[hovered]/railitem:bg-[var(--primary-action)]/10"},{railVariant:"default",isActive:true,className:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)]"},{railVariant:"primary",isActive:false,className:"text-[var(--primary-action-foreground)] group-data-[hovered]/railitem:bg-white/10"},{railVariant:"primary",isActive:true,className:"bg-[var(--primary-action-foreground)] text-[var(--primary-action)]"}],defaultVariants:{railVariant:"default",isActive:false}}),exports.sidebarRailItemLabelVariants=classVarianceAuthority.cva(["text-[11px]","font-normal","leading-tight","tracking-[0.165px]","text-center","max-w-full","truncate"],{variants:{railVariant:{default:[],primary:"text-[var(--primary-action-foreground)]"},isActive:{true:[],false:[]}},compoundVariants:[{railVariant:"default",isActive:false,className:"text-[var(--content-foreground)]"},{railVariant:"default",isActive:true,className:"text-[var(--primary-action)]"}],defaultVariants:{railVariant:"default",isActive:false}}),ze=classVarianceAuthority.cva(["absolute","right-0","top-1/2","z-10","size-[14px]","-translate-y-1/2","translate-x-1/2","rotate-45","bg-[var(--content-background)]","border-b","border-l","border-[var(--border)]","hidden","group-has-[[data-sidebar-panel]]/sidebar:block"]),exports.sidebarRailItemBadgeVariants=classVarianceAuthority.cva(["absolute","-top-1.5","-right-1.5","min-w-[18px]","h-[18px]","rounded-full","px-1","flex","items-center","justify-center","bg-[var(--destructive-background)]","text-[var(--destructive-foreground)]","text-[10px]","font-bold","leading-none"]),exports.sidebarPopoverVariants=classVarianceAuthority.cva(["h-full","w-full","overflow-y-auto","bg-[var(--content-background)]","text-[var(--content-foreground)]","text-sm","motion-safe:animate-in","motion-safe:fade-in-0","motion-safe:slide-in-from-bottom-1","motion-safe:duration-200","motion-safe:fill-mode-both","[animation-delay:120ms]"]),exports.sidebarPanelVariants=classVarianceAuthority.cva(["flex","flex-col","h-full","overflow-hidden","bg-[var(--content-background)]","text-[var(--content-foreground)]","motion-safe:transition-[max-width,opacity]","motion-safe:duration-[var(--transition-slow)]",...F],{variants:{width:{sm:"max-w-[220px] w-[220px]",md:"max-w-[260px] w-[260px]",lg:"max-w-[340px] w-[340px]",xl:"max-w-[420px] w-[420px]"},isCollapsed:{true:"max-w-0 opacity-0 overflow-hidden",false:"opacity-100"}},defaultVariants:{width:"md",isCollapsed:false}}),exports.sidebarPanelHeaderVariants=classVarianceAuthority.cva(["flex","items-center","justify-between","px-3","py-2","shrink-0"]),exports.sidebarPanelHeaderTitleVariants=classVarianceAuthority.cva(["text-base","font-semibold","text-[var(--content-foreground)]","truncate"]),exports.sidebarCollapseButtonVariants=classVarianceAuthority.cva(W(se,J,F,$,["inline-flex","items-center","justify-center","rounded-[var(--radius-md)]","[&_svg]:size-4","[&_svg]:shrink-0","cursor-pointer","mb-1"]),{variants:{railVariant:{default:["text-[var(--menu-foreground)]",...Be],primary:["text-[var(--primary-action-foreground)]","hover:bg-white/10"]}},defaultVariants:{railVariant:"default"}}),exports.sidebarMobileOverlayVariants=classVarianceAuthority.cva(["fixed","inset-0","z-50","bg-black/50"]),exports.sidebarMobileDrawerVariants=classVarianceAuthority.cva(["fixed","inset-y-0","left-0","z-50","flex","flex-col","w-[85vw]","max-w-[380px]","bg-[var(--content-background)]"]),exports.sidebarMobileDrawerHeaderVariants=classVarianceAuthority.cva(["flex","items-center","justify-between","px-3","py-2","border-b","border-[var(--border)]","shrink-0"]),exports.sidebarMobileRailVariants=classVarianceAuthority.cva(["flex","items-center","gap-1","px-2","py-2","overflow-x-auto","overflow-y-hidden","shrink-0","border-b","border-[var(--border)]","bg-[var(--menu-background)]"]),exports.sidebarMobileRailItemVariants=classVarianceAuthority.cva(W(se,J,F,$,["flex","flex-col","items-center","justify-center","gap-0.5","px-2","py-1.5","rounded-[var(--radius-md)]","text-[var(--icon)]","shrink-0","cursor-pointer"]),{variants:{isActive:{true:["bg-[var(--primary-action)]","text-[var(--primary-action-foreground)]"],false:["data-[hovered]:bg-[var(--primary-action)]/10"]}},defaultVariants:{isActive:false}}),Ge=classVarianceAuthority.cva(["relative","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),Ue=classVarianceAuthority.cva(["text-[10px]","leading-tight","text-center","max-w-full","truncate"],{variants:{isActive:{true:"font-semibold",false:"font-medium"}},defaultVariants:{isActive:false}});});function M(){let e=react.useContext(Re);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function S(){let e=react.useContext(Pe);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function ye({children:e,isCollapsed:t,defaultCollapsed:a=false,onCollapsedChange:r,isMobileOpen:o,onMobileOpenChange:n,mobileBreakpoint:i=768,className:c,"data-testid":l="sidebar"}){let[f,v]=react.useState(a),s=t!==void 0,m=s?t:f,p=react.useCallback(E=>{s||v(E),r?.(E);},[s,r]),R=react.useCallback(()=>p(!m),[p,m]),N=o??false,L=react.useCallback(E=>n?.(E),[n]),[x,y]=react.useState(null),b=react.useRef(null),T=react.useCallback(()=>{b.current&&(clearTimeout(b.current),b.current=null);},[]),D=react.useCallback((E=300)=>{b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null,y(null);},E);},[]);react.useEffect(()=>()=>{b.current&&clearTimeout(b.current);},[]);let A=He(`(max-width: ${i-1}px)`),B=react.useId(),k=`sidebar-rail-${B}`,z=`sidebar-panel-${B}`,G=react.useMemo(()=>({isMobile:A,railId:k,panelId:z}),[A,k,z]),U=react.useMemo(()=>({isCollapsed:m,setCollapsed:p,toggleCollapsed:R,isMobileOpen:N,setMobileOpen:L,activePopoverId:x,setActivePopoverId:y,cancelPopoverClose:T,schedulePopoverClose:D}),[m,p,R,N,L,x,T,D]);return A?jsxRuntime.jsx(Re.Provider,{value:G,children:jsxRuntime.jsx(Pe.Provider,{value:U,children:e})}):jsxRuntime.jsx(Re.Provider,{value:G,children:jsxRuntime.jsx(Pe.Provider,{value:U,children:jsxRuntime.jsx("div",{className:g(exports.sidebarRootVariants(),c),"data-testid":l,children:e})})})}var Re,Pe,H=O(()=>{"use client";De();_();w();Re=react.createContext(null),Pe=react.createContext(null);ye.displayName="Sidebar";});var dt={};gt(dt,{SidebarMobileDrawer:()=>ta});function Kt(e){return e>99?"99+":String(e)}function Jt(e){let t=null;return react.Children.forEach(e.props.children,a=>{react.isValidElement(a)&&a.type.displayName==="SidebarPopover"&&(t=a);}),t}function ea(e){let t=[],a=null,r="Navigation";return react.Children.forEach(e,o=>{if(!react.isValidElement(o))return;let n=o.type.displayName;n==="SidebarRail"?(r=o.props["aria-label"]??r,react.Children.forEach(o.props.children,i=>{if(!react.isValidElement(i))return;if(i.type.displayName==="SidebarRailItem"){let l=i;t.push({props:l.props,popover:Jt(l)});}})):n==="SidebarPanel"&&(a=o.props.children);}),{railItems:t,panelContent:a,railAriaLabel:r}}function ta({children:e}){let{isMobileOpen:t,setMobileOpen:a,activePopoverId:r,setActivePopoverId:o}=S(),{railItems:n,panelContent:i,railAriaLabel:c}=ea(e),f=n.find(s=>s.props.id===r)?.popover??i,v=()=>{o(null),a(false);};return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{isDismissable:true,isOpen:t,onOpenChange:s=>{s||v();},className:exports.sidebarMobileOverlayVariants(),children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:exports.sidebarMobileDrawerVariants(),children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{"aria-label":"Navigation menu",className:"flex flex-col h-full outline-none",children:[jsxRuntime.jsxs("header",{className:exports.sidebarMobileDrawerHeaderVariants(),children:[jsxRuntime.jsx("span",{className:"text-base font-semibold text-[var(--content-foreground)]",children:"Menu"}),jsxRuntime.jsx(reactAriaComponents.Button,{"aria-label":"Close navigation",className:g(exports.sidebarCollapseButtonVariants()),onPress:v,children:jsxRuntime.jsx(lucideReact.X,{})})]}),n.length>0&&jsxRuntime.jsx("div",{role:"toolbar","aria-orientation":"horizontal","aria-label":c,tabIndex:0,className:exports.sidebarMobileRailVariants(),children:n.map(({props:s,popover:m})=>{let p=m!=null,R=r===s.id;return jsxRuntime.jsxs(reactAriaComponents.Button,{"aria-current":s.isActive?s.currentType??"page":void 0,"aria-haspopup":p?"dialog":void 0,"aria-expanded":p?R:void 0,isDisabled:s.isDisabled,className:exports.sidebarMobileRailItemVariants({isActive:(s.isActive??false)||R}),onPress:()=>{if(s.onPress?.(),p){o(R?null:s.id);return}if(s.href){window.location.href=s.href,v();return}},"data-testid":`sidebar-mobile-rail-item-${s.id}`,children:[jsxRuntime.jsxs("span",{className:Ge(),"aria-hidden":"true",children:[s.icon,s.badgeCount!=null&&s.badgeCount>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:Kt(s.badgeCount)})]}),jsxRuntime.jsx("span",{className:Ue({isActive:(s.isActive??false)||R}),children:s.label}),s.badgeCount!=null&&s.badgeCount>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[s.badgeCount," notifications"]})]},s.id)})}),f&&jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto bg-[var(--content-background)] text-[var(--content-foreground)]","data-testid":"sidebar-mobile-panel-content",children:f})]})})})}var ct=O(()=>{"use client";_();H();w();});H();_();H();_();H();w();var Nt=200,It=300;function Qe(e,t){let{activePopoverId:a,setActivePopoverId:r,cancelPopoverClose:o,schedulePopoverClose:n}=S(),i=react.useRef("IDLE"),c=react.useRef(null),l=react.useCallback(()=>{c.current&&(clearTimeout(c.current),c.current=null);},[]),f=a===e;react.useEffect(()=>{!f&&i.current!=="IDLE"?(l(),i.current="IDLE"):f&&(i.current="OPEN");},[f,l]),react.useEffect(()=>l,[l]);let v=react.useCallback(m=>{t&&m.pointerType==="mouse"&&(l(),o(),i.current!=="OPEN"&&(i.current="HOVERING_TRIGGER",c.current=setTimeout(()=>{i.current="OPEN",r(e);},Nt)));},[e,t,r,l,o]),s=react.useCallback(()=>{if(t){if(l(),i.current==="HOVERING_TRIGGER"){i.current="IDLE",r(null);return}i.current==="OPEN"&&n(It);}},[t,r,l,n]);return {onTriggerPointerEnter:v,onTriggerPointerLeave:s}}function Ne({children:e,className:t,"data-testid":a="sidebar-popover"}){return jsxRuntime.jsx("div",{className:g(exports.sidebarPopoverVariants(),t),"data-testid":a,children:e})}Ne.displayName="SidebarPopover";_();H();w();function Tt(){let{activePopoverId:e,setActivePopoverId:t}=S(),{isMobile:a}=M(),r=react.useRef(null);return react.useEffect(()=>{if(!e)return;let o=n=>{n.key==="Escape"&&(n.preventDefault(),t(null));};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[e,t]),react.useEffect(()=>{if(!e)return;let o=i=>{let c=r.current,l=i.relatedTarget;if(!l||!c)return;let f=document.querySelector('[data-testid="sidebar-rail"]');!c.contains(l)&&!f?.contains(l)&&t(null);},n=r.current;return n?.addEventListener("focusout",o),()=>n?.removeEventListener("focusout",o)},[e,t]),a||!e?null:jsxRuntime.jsx(Ke,{ref:r})}var Ye=react.createContext(null);function Ee(){let e=react.useContext(Ye);if(!e)throw new Error("usePopoverRegistry must be used within SidebarPanel");return e}function qe({children:e}){let t=react.useRef(new Map),a=react.useCallback((i,c,l)=>{t.current.set(i,{content:c,label:l});},[]),r=react.useCallback(i=>{t.current.delete(i);},[]),o=react.useCallback(i=>t.current.get(i)??null,[]),n=react.useMemo(()=>({register:a,unregister:r,getContent:o}),[a,r,o]);return jsxRuntime.jsx(Ye.Provider,{value:n,children:e})}var Ke=react.forwardRef((e,t)=>{let{activePopoverId:a,cancelPopoverClose:r,schedulePopoverClose:o}=S(),n=Ee();if(!a)return null;let i=n.getContent(a);return i?jsxRuntime.jsx("div",{ref:t,role:"dialog","aria-label":`${i.label} details`,className:exports.sidebarPopoverVariants(),"data-testid":"sidebar-popover",onPointerEnter:r,onPointerLeave:()=>o(300),children:i.content}):null});Ke.displayName="PopoverContent";var Ot=300,_t={sm:220,md:260,lg:340,xl:420},Ve=react.forwardRef(({children:e,width:t="md","aria-label":a,skeleton:r,className:o,"data-testid":n="sidebar-panel"},i)=>{let{isMobile:c}=M(),{isCollapsed:l,activePopoverId:f}=S(),v=react.useRef(null),s=f!==null,[m,p]=react.useState(!l);react.useEffect(()=>{if(l){p(false);return}let x=window.setTimeout(()=>p(true),Ot);return ()=>window.clearTimeout(x)},[l]);let N=r!==void 0&&!(!l&&m)?r:e;react.useEffect(()=>{if(!l)return;let x=v.current;if(x&&x.contains(document.activeElement)){let y=document.querySelector('[data-testid="sidebar-collapse-button"]');y&&window.requestAnimationFrame(()=>y.focus());}},[l]);let L=x=>{v.current=x,typeof i=="function"?i(x):i&&(i.current=x);};return c?null:jsxRuntime.jsxs("div",{className:g("relative shrink-0",!l&&"border-r border-[var(--border)]"),"data-sidebar-panel":"",children:[jsxRuntime.jsx("aside",{ref:L,"aria-label":a,"aria-hidden":l,inert:l||void 0,className:g(exports.sidebarPanelVariants({width:t,isCollapsed:l}),o),"data-testid":n,children:N}),s&&jsxRuntime.jsx("div",{className:g("absolute top-0 left-0 z-10 h-full",l&&"border-r border-[var(--border)]"),style:{width:`${_t[t]}px`},children:jsxRuntime.jsx(Tt,{})})]})});Ve.displayName="SidebarPanel";function Te({title:e,icon:t,children:a,as:r="h2",className:o,"data-testid":n="sidebar-panel-header"}){return jsxRuntime.jsx("header",{className:g(exports.sidebarPanelHeaderVariants(),o),"data-testid":n,children:a??jsxRuntime.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t?jsxRuntime.jsx("span",{"aria-hidden":"true",className:"inline-flex shrink-0 items-center justify-center text-[var(--icon)]","data-testid":`${n}-icon`,children:t}):null,jsxRuntime.jsx(r,{className:exports.sidebarPanelHeaderTitleVariants(),children:e})]})})}Te.displayName="SidebarPanelHeader";w();var nt=react.createContext({variant:"default",showActiveIndicator:true});function it(){return react.useContext(nt)}var we=react.forwardRef(({children:e,"aria-label":t,variant:a="default",showActiveIndicator:r=true,className:o,"data-testid":n="sidebar-rail"},i)=>{let{isMobile:c}=M(),l=react.useMemo(()=>({variant:a,showActiveIndicator:r}),[a,r]);if(c)return null;let f=[],v=[],s=[];react.Children.forEach(e,p=>{if(react.isValidElement(p)&&p.type.displayName==="SidebarCollapseButton"){f.push(p);return}(react.isValidElement(p)?p.props.placement??"top":"top")==="bottom"?s.push(p):v.push(p);});let m=f.length>0;return jsxRuntime.jsx(nt.Provider,{value:l,children:jsxRuntime.jsxs("nav",{ref:i,"aria-label":t,className:g(exports.sidebarRailVariants({variant:a}),"pb-2",!m&&"pt-2",o),"data-testid":n,children:[f,jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Navigation items",className:exports.sidebarRailToolbarVariants(),children:v}),s.length>0&&jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Secondary navigation items",className:g(exports.sidebarRailToolbarVariants(),"mt-auto"),"data-testid":"sidebar-rail-bottom",children:s})]})})});we.displayName="SidebarRail";function Wt(e){let t=null,a=[];return react.Children.forEach(e,r=>{react.isValidElement(r)&&r.type.displayName==="SidebarPopover"?t=r:a.push(r);}),{popover:t,rest:a.length>0?a:null}}function jt(e){return e>99?"99+":String(e)}var st=react.forwardRef(({id:e,label:t,icon:a,href:r,badgeCount:o,isActive:n=false,currentType:i="page",isDisabled:c=false,onPress:l,children:f,className:v,"data-testid":s},m)=>{let{activePopoverId:p,setActivePopoverId:R}=S(),{variant:N,showActiveIndicator:L}=it(),x=react.useRef(null),{popover:y}=Wt(f),b=y!==null,T=p===e,D=Qe(e,b),A=Ee();react.useEffect(()=>{if(b&&y)return A.register(e,y,t),()=>A.unregister(e)},[e,b,y,t,A]);let B=react.useCallback(()=>{b&&R(T?null:e),l?.();},[b,T,e,l,R]),k=react.useCallback(oe=>{x.current=oe,typeof m=="function"?m(oe):m&&(m.current=oe);},[m]),z=s??`sidebar-rail-item-${e}`,G=v?g(exports.sidebarRailItemVariants({railVariant:N,isActive:n,isDisabled:c}),v):exports.sidebarRailItemVariants({railVariant:N,isActive:n,isDisabled:c}),U=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("span",{className:"relative flex w-full items-center justify-center",children:[jsxRuntime.jsxs("span",{className:exports.sidebarRailItemIconVariants({railVariant:N,isActive:n}),"aria-hidden":"true",children:[a,o!=null&&o>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:jt(o)})]}),L&&n&&jsxRuntime.jsx("span",{className:ze(),"aria-hidden":"true"})]}),jsxRuntime.jsx("span",{className:exports.sidebarRailItemLabelVariants({railVariant:N,isActive:n}),children:t}),o!=null&&o>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[o," notifications"]})]}),E=r&&!c?jsxRuntime.jsx(reactAriaComponents.Link,{ref:k,href:r,"aria-current":n?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?T:void 0,className:G,"data-testid":z,onPress:B,children:U}):jsxRuntime.jsx(reactAriaComponents.Button,{ref:k,isDisabled:c,"aria-current":n?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?T:void 0,className:G,"data-testid":z,onPress:B,children:U});return jsxRuntime.jsx("div",{onPointerEnter:D.onTriggerPointerEnter,onPointerLeave:D.onTriggerPointerLeave,children:E})});st.displayName="SidebarRailItem";var Me=react.memo(st,(e,t)=>e.id===t.id&&e.isActive===t.isActive&&e.badgeCount===t.badgeCount&&e.isDisabled===t.isDisabled&&e.label===t.label&&e.className===t.className&&e.href===t.href);Me.displayName="SidebarRailItem";function Le({className:e,"data-testid":t="sidebar-collapse-button"}){let{isCollapsed:a,toggleCollapsed:r}=S(),{variant:o}=it();return jsxRuntime.jsx(reactAriaComponents.Button,{"aria-expanded":!a,"aria-label":a?"Expand sidebar":"Collapse sidebar",className:g(exports.sidebarCollapseButtonVariants({railVariant:o}),e),"data-testid":t,onPress:r,children:a?jsxRuntime.jsx(lucideReact.ChevronsRight,{}):jsxRuntime.jsx(lucideReact.ChevronsLeft,{})})}Le.displayName="SidebarCollapseButton";var oa=react.lazy(()=>Promise.resolve().then(()=>(ct(),dt)).then(e=>({default:e.SidebarMobileDrawer})));function na({children:e}){let{isMobile:t}=M(),{isMobileOpen:a}=S();return !t||!a?null:jsxRuntime.jsx(react.Suspense,{fallback:null,children:jsxRuntime.jsx(oa,{children:e})})}function pt(e){return jsxRuntime.jsx(ye,{...e,children:jsxRuntime.jsxs(qe,{children:[e.children,jsxRuntime.jsx(na,{children:e.children})]})})}pt.displayName="Sidebar";var ia=Object.assign(pt,{Rail:we,RailItem:Me,Popover:Ne,Panel:Ve,PanelHeader:Te,CollapseButton:Le});w();var V=zod.z.object({className:zod.z.string().optional(),children:zod.z.any().optional(),id:zod.z.string().optional(),"aria-label":zod.z.string().optional(),"aria-labelledby":zod.z.string().optional(),"aria-describedby":zod.z.string().optional(),"aria-live":zod.z.enum(["off","polite","assertive"]).optional(),"aria-hidden":zod.z.boolean().optional(),"data-testid":zod.z.string().optional()});var ut=zod.z.enum(["default","primary"]),mt=zod.z.enum(["sm","md","lg","xl"]),bt=zod.z.enum(["page","true","location"]),ft=zod.z.enum(["h1","h2","h3","h4"]),la=zod.z.enum(["top","bottom"]),da=V.extend({children:zod.z.custom(),isCollapsed:zod.z.boolean().optional(),defaultCollapsed:zod.z.boolean().optional().default(false),onCollapsedChange:zod.z.custom().optional(),isMobileOpen:zod.z.boolean().optional(),onMobileOpenChange:zod.z.custom().optional(),mobileBreakpoint:zod.z.number().optional().default(768)}),ca=V.extend({children:zod.z.custom(),"aria-label":zod.z.string(),variant:ut.optional().default("default"),showActiveIndicator:zod.z.boolean().optional().default(true)}),pa=V.extend({id:zod.z.string(),label:zod.z.string(),icon:zod.z.custom(),href:zod.z.string().optional(),badgeCount:zod.z.number().optional(),isActive:zod.z.boolean().optional(),currentType:bt.optional().default("page"),isDisabled:zod.z.boolean().optional(),onPress:zod.z.custom().optional(),children:zod.z.custom().optional(),placement:la.optional().default("top")}),ua=V.extend({children:zod.z.custom()}),ma=V.extend({children:zod.z.custom(),width:mt.optional().default("md"),"aria-label":zod.z.string(),skeleton:zod.z.custom().optional()}),ba=V.extend({title:zod.z.string().optional(),icon:zod.z.custom().optional(),children:zod.z.custom().optional(),as:ft.optional().default("h2")}),fa=V.extend({});exports.Sidebar=ia;exports.SidebarCollapseButtonPropsSchema=fa;exports.SidebarCurrentTypeSchema=bt;exports.SidebarPanelHeaderLevelSchema=ft;exports.SidebarPanelHeaderPropsSchema=ba;exports.SidebarPanelPropsSchema=ma;exports.SidebarPanelWidthSchema=mt;exports.SidebarPopoverPropsSchema=ua;exports.SidebarPropsSchema=da;exports.SidebarRailItemPropsSchema=pa;exports.SidebarRailPropsSchema=ca;exports.SidebarRailVariantSchema=ut;//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|