@tribepad/themis 1.3.2 → 1.3.4
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/dist/elements/PageTitle/PageTitle.d.ts +1 -1
- package/dist/elements/PageTitle/index.js +1 -1
- package/dist/elements/PageTitle/index.js.map +1 -1
- package/dist/elements/PageTitle/index.mjs +1 -1
- package/dist/elements/PageTitle/index.mjs.map +1 -1
- package/dist/elements/Sidebar/Sidebar.types.d.ts +26 -0
- package/dist/elements/Sidebar/Sidebar.types.d.ts.map +1 -1
- package/dist/elements/Sidebar/SidebarPanel.d.ts +1 -1
- package/dist/elements/Sidebar/SidebarPanel.d.ts.map +1 -1
- package/dist/elements/Sidebar/SidebarRail.d.ts.map +1 -1
- 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/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/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/package.json +1 -1
- package/src/elements/Sidebar/Sidebar.stories.tsx +95 -0
|
@@ -23,7 +23,7 @@ import type { PageTitleProps } from './PageTitle.types';
|
|
|
23
23
|
* </PageTitle>
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
export declare const PageTitle: import("react").ForwardRefExoticComponent<PageTitleProps & import("react").RefAttributes<
|
|
26
|
+
export declare const PageTitle: import("react").ForwardRefExoticComponent<PageTitleProps & import("react").RefAttributes<HTMLDivElement>> & {
|
|
27
27
|
Breadcrumbs: import("react").ForwardRefExoticComponent<import("./PageTitle.types").PageTitleBreadcrumbsProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
28
28
|
Heading: import("react").ForwardRefExoticComponent<import("./PageTitle.types").PageTitleHeadingProps & import("react").RefAttributes<HTMLHeadingElement>>;
|
|
29
29
|
Description: import("react").ForwardRefExoticComponent<import("./PageTitle.types").PageTitleDescriptionProps & import("react").RefAttributes<HTMLParagraphElement>>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
'use strict';var react=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),zod=require('zod'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),reactAriaComponents=require('react-aria-components'),jsxRuntime=require('react/jsx-runtime');function l(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var j=react.createContext(null);function v(){let e=react.useContext(j);if(!e)throw new Error("PageTitle compound components must be used within <PageTitle>");return e}var h=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 Z=zod.z.object({id:zod.z.union([zod.z.string(),zod.z.number()]),label:zod.z.string(),href:zod.z.string().optional(),icon:zod.z.custom().optional(),isDisabled:zod.z.boolean().optional().default(false)}),rt=zod.z.union([zod.z.literal("chevron"),zod.z.literal("slash"),zod.z.custom()]);h.extend({items:zod.z.array(Z),separator:rt.optional().default("chevron"),maxItems:zod.z.number().int().positive().optional().default(4),itemsBeforeCollapse:zod.z.number().int().nonnegative().optional().default(1),itemsAfterCollapse:zod.z.number().int().positive().optional().default(2),linkComponent:zod.z.custom().optional(),isDisabled:zod.z.boolean().optional().default(false)});var J=classVarianceAuthority.cva("z-50 min-w-[8rem] overflow-hidden rounded-md border border-[var(--menu-border)] bg-[var(--menu-background)] text-[var(--menu-foreground)] shadow-md p-1",{variants:{variant:{default:""}},defaultVariants:{variant:"default"}}),k=classVarianceAuthority.cva("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 min-h-[44px] data-[focused]:bg-[var(--menu-accent)] data-[focused]:text-[var(--menu-accent-foreground)] data-[pressed]:bg-[var(--menu-accent)] [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:""}},defaultVariants:{variant:"default"}});function Q(e){if(typeof e=="function"||typeof e=="object")return e?.displayName}var Ie=react.forwardRef(({defaultOpen:e=false,isOpen:t,onOpenChange:a,children:r},o)=>{if(process.env.NODE_ENV!=="production"){let n=react.Children.toArray(r),s=n.some(p=>react.isValidElement(p)&&(p.type===H||Q(p.type)==="DropdownTrigger")),u=n.some(p=>react.isValidElement(p)&&(p.type===C||Q(p.type)==="DropdownMenu"));if(!s||!u)throw new Error("Dropdown requires exactly one Dropdown.Trigger and one Dropdown.Menu as children")}return jsxRuntime.jsx(reactAriaComponents.MenuTrigger,{defaultOpen:e,isOpen:t,onOpenChange:a,children:r})});Ie.displayName="Dropdown";var H=react.forwardRef(({children:e,...t},a)=>react.isValidElement(e)?react.cloneElement(e,{...t,slot:"trigger"}):jsxRuntime.jsx(reactAriaComponents.Button,{ref:a,...t,children:e}));H.displayName="DropdownTrigger";var C=react.forwardRef(({align:e="start",side:t="bottom",className:a,children:r,...o},n)=>{let s=`${t} ${e}`;return jsxRuntime.jsx(reactAriaComponents.Popover,{placement:s,className:"data-[entering]:motion-safe:animate-in data-[entering]:motion-safe:fade-in-0 data-[entering]:motion-safe:slide-in-from-top-2 data-[entering]:[animation-duration:250ms] data-[entering]:[animation-timing-function:cubic-bezier(0.16,1,0.3,1)] data-[exiting]:motion-safe:animate-out data-[exiting]:motion-safe:fade-out-0 data-[exiting]:motion-safe:slide-out-to-top-2 data-[exiting]:[animation-duration:150ms]",children:jsxRuntime.jsx(reactAriaComponents.Menu,{className:l(J({variant:"default"}),a),...o,children:r})})});C.displayName="DropdownMenu";var X=react.forwardRef(({children:e,onAction:t,isDisabled:a=false,shortcut:r,icon:o,iconRight:n,className:s,"aria-label":u,...p},m)=>{let f=react.Children.toArray(e),c=x=>react.isValidElement(x)&&(x.type===C||Q(x.type)==="DropdownMenu"),g=f.some(c),P=f.filter(x=>!c(x)),w=f.find(c);return g&&w?jsxRuntime.jsxs(reactAriaComponents.SubmenuTrigger,{children:[jsxRuntime.jsxs(reactAriaComponents.MenuItem,{"aria-label":u,className:l(k({variant:"default"}),s),...p,children:[o&&jsxRuntime.jsx("span",{className:"mr-2",children:o}),jsxRuntime.jsx("span",{className:"flex-1",children:P}),jsxRuntime.jsx(lucideReact.ChevronRight,{className:"ml-auto h-4 w-4","aria-hidden":"true"})]}),w]}):jsxRuntime.jsxs(reactAriaComponents.MenuItem,{onAction:t,isDisabled:a,"aria-label":u,className:l(k({variant:"default"}),s),...p,children:[o&&jsxRuntime.jsx("span",{className:"mr-2",children:o}),jsxRuntime.jsx("span",{className:"flex-1",children:e}),n&&jsxRuntime.jsx("span",{className:"ml-auto",children:n}),r&&jsxRuntime.jsx("kbd",{className:"ml-auto pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border border-[var(--border)] bg-[var(--accent-background)] px-1.5 font-mono text-[10px] font-medium text-[var(--menu-muted)] opacity-100",children:r})]})});X.displayName="DropdownItem";var ee=react.memo(react.forwardRef(({className:e,...t},a)=>jsxRuntime.jsx(reactAriaComponents.Separator,{className:l("-mx-1 my-1 h-px bg-[var(--accent-background)]",e),...t})));ee.displayName="DropdownSeparator";var te=react.memo(react.forwardRef(({children:e,className:t,...a},r)=>jsxRuntime.jsx(reactAriaComponents.Header,{className:l("px-2 py-1.5 text-sm font-semibold text-[var(--menu-muted)]",t),...a,children:e})));te.displayName="DropdownLabel";var S=Object.assign(Ie,{Trigger:H,Menu:C,Item:X,Separator:ee,Label:te});var ae=classVarianceAuthority.cva("inline-flex justify-center min-h-[44px] min-w-[44px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",{variants:{fullWidth:{true:"w-full",false:""},inVerticalGroup:{true:"items-stretch",false:"items-center"}},defaultVariants:{fullWidth:false,inVerticalGroup:false}}),re=classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background motion-safe:transition-transform motion-safe:duration-200 motion-safe:[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)] motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 relative cursor-pointer",{variants:{variant:{default:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)] shadow-md hover:bg-[var(--primary-action-hover)] hover:-translate-y-1",destructive:"bg-[var(--destructive-background)] text-[var(--destructive-foreground)] shadow-md hover:bg-[var(--destructive-background-hover,var(--destructive-background))] motion-safe:hover:btn-warn-shake",outline:"border border-[var(--input-border)] bg-[var(--page-background)] hover:bg-[var(--input-border)]",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] shadow-md hover:bg-[var(--secondary-hover,var(--secondary))]",ghost:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]",link:"text-[var(--text-link)] underline underline-offset-4 hover:bg-[var(--accent)] hover:text-[var(--text-link-hover)]"},fullWidth:{true:"w-full",false:""},visualSize:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3 text-xs",lg:"h-11 rounded-md px-8",icon:"h-10 w-10",dot:"h-5 w-5 rounded-full p-0 min-h-0 min-w-0"},paywall:{true:"!bg-[var(--paywall)] !text-[var(--paywall-foreground)] !shadow-md hover:!bg-[var(--paywall)]/90 !cursor-not-allowed !border-transparent",false:""}},defaultVariants:{variant:"default",visualSize:"default",paywall:false}});var oe="data-[pressed]:scale-[0.97]";var ne="data-[hovered]:shadow-md";var L="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",_="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var Le=react.createContext(null);Le.displayName="ButtonGroupContext";function _e(){return react.useContext(Le)}var Me=react.createContext(null);Me.displayName="ButtonGroupItemContext";function Ge(){return react.useContext(Me)}classVarianceAuthority.cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var ze=classVarianceAuthority.cva("",{variants:{orientation:{horizontal:"min-w-[44px]",vertical:"flex min-h-[44px]"},position:{first:"",middle:"",last:"",only:""}},compoundVariants:[{orientation:"horizontal",position:"first",className:"rounded-r-none border-r-0"},{orientation:"horizontal",position:"middle",className:"rounded-none border-r-0"},{orientation:"horizontal",position:"last",className:"rounded-l-none"},{orientation:"vertical",position:"first",className:"rounded-b-none border-b-0"},{orientation:"vertical",position:"middle",className:"rounded-none border-b-0"},{orientation:"vertical",position:"last",className:"rounded-t-none"}],defaultVariants:{orientation:"horizontal",position:"only"}});classVarianceAuthority.cva("bg-[var(--border)]",{variants:{orientation:{horizontal:"w-px h-6 mx-1",vertical:"h-px w-full my-1"}},defaultVariants:{orientation:"horizontal"}});var M=react.memo(react.forwardRef(({className:e,buttonVisualClassName:t,variant:a,size:r,visualSize:o,fullWidth:n,loading:s=false,loadingText:u="Loading...",shortcut:p,children:m,isDisabled:f,paywall:c=false,paywallRedirect:g,paywallDescription:P,onPress:w,...x},je)=>{let De=react.useId(),E=_e(),Ne=Ge(),Ze=a??E?.variant??"default",Je=r??E?.size,Ke=f??E?.isDisabled??false,we=E?.orientation==="vertical",Ve=n||we,Qe=Ne?ze({orientation:E?.orientation??"horizontal",position:Ne.position}):"",q=o??Je??"default";return process.env.NODE_ENV!=="production"&&(q==="dot"||q==="icon")&&!x["aria-label"]&&!m&&console.warn('[Button] visualSize="dot" or "icon" requires aria-label when no visible text is provided (WCAG 1.1.1)'),jsxRuntime.jsx(reactAriaComponents.Button,{ref:je,isDisabled:Ke||s||void 0,"aria-disabled":c?true:void 0,"aria-describedby":c?De:void 0,onPress:R=>{if(c){g&&window.open(g,"_blank","noopener,noreferrer");return}w?.(R);},className:l(ae({fullWidth:Ve,inVerticalGroup:we}),e),...x,children:R=>jsxRuntime.jsxs("span",{className:l(re({variant:Ze,visualSize:q,paywall:c,fullWidth:Ve}),Qe,t,oe,ne,L,_),"data-pressed":R.isPressed||void 0,children:[s&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Loader2,{className:"motion-safe:animate-spin","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"sr-only","aria-live":"polite",children:u})]}),!s&&m,c&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),c&&jsxRuntime.jsxs("span",{id:De,className:"sr-only",children:["Premium feature: ",P||"Upgrade required to access this feature"]}),R.isFocusVisible&&p&&jsxRuntime.jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:p})]})})}));M.displayName="Button";var Oe=classVarianceAuthority.cva("flex items-center flex-wrap",{variants:{},defaultVariants:{}}),$e=classVarianceAuthority.cva("flex flex-wrap items-center gap-1 break-words text-sm text-[var(--menu-muted)]",{variants:{},defaultVariants:{}}),G=classVarianceAuthority.cva("inline-flex items-center gap-1",{variants:{},defaultVariants:{}}),de=classVarianceAuthority.cva("inline-flex items-center gap-2 min-h-[44px] pr-2 rounded-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2",{variants:{state:{default:["text-[var(--menu-muted)]","hover:text-[var(--content-foreground)]","hover:underline underline-offset-4"].join(" "),current:"text-[var(--content-foreground)] font-medium pointer-events-none",disabled:"text-[var(--menu-muted)] opacity-50 cursor-not-allowed pointer-events-none"}},defaultVariants:{state:"default"}}),me=classVarianceAuthority.cva("text-[var(--menu-muted)]",{variants:{type:{chevron:"[&>svg]:h-4 [&>svg]:w-4",slash:"mx-2",custom:""}},defaultVariants:{type:"chevron"}}),Nt=classVarianceAuthority.cva("inline-flex items-center justify-center min-h-[44px] min-w-[44px] rounded-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 hover:bg-[var(--accent)]",{variants:{},defaultVariants:{}});function Ye(e,t){return e===t-1}function wt(e,t,a,r){if(e.length<=t||a+r>=e.length)return null;let o=e.slice(0,a),n=e.slice(-r),s=e.slice(a,e.length-r);return {before:o,collapsed:s,after:n}}function z({separator:e}){return e==="chevron"?jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:me({type:"chevron"}),children:jsxRuntime.jsx(lucideReact.ChevronRight,{})}):e==="slash"?jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:me({type:"slash"}),children:"/"}):jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:me({type:"custom"}),children:e})}function ce({item:e,isCurrent:t,linkComponent:a="a",isGroupDisabled:r}){let o=r||e.isDisabled,n=t?"current":o?"disabled":"default";return t?jsxRuntime.jsxs("span",{className:de({state:"current"}),"aria-current":"page",children:[e.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:e.icon}),e.label]}):e.href?jsxRuntime.jsxs(a,{href:e.href,className:de({state:n}),"aria-disabled":o||void 0,children:[e.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:e.icon}),e.label]}):jsxRuntime.jsxs("span",{className:de({state:o?"disabled":"default"}),"aria-disabled":o||void 0,children:[e.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:e.icon}),e.label]})}function Vt({items:e,linkComponent:t="a",isGroupDisabled:a}){return jsxRuntime.jsxs(S,{defaultOpen:false,children:[jsxRuntime.jsx(S.Trigger,{children:jsxRuntime.jsx(M,{variant:"ghost",size:"icon",className:Nt(),"aria-label":"More breadcrumbs",children:jsxRuntime.jsx(lucideReact.MoreHorizontal,{className:"h-4 w-4"})})}),jsxRuntime.jsx(S.Menu,{align:"start",side:"bottom",children:e.map(r=>jsxRuntime.jsx(S.Item,{isDisabled:a||r.isDisabled,children:jsxRuntime.jsxs(t,{href:r.href,className:"flex flex-1 items-center gap-2",children:[r.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:r.icon}),r.label]})},r.id))})]})}var O=react.forwardRef(({items:e,separator:t="chevron",maxItems:a=4,itemsBeforeCollapse:r=1,itemsAfterCollapse:o=2,linkComponent:n,isDisabled:s,className:u,"aria-label":p="Breadcrumb",...m},f)=>{if(!e||e.length===0)return null;let c=wt(e,a,r,o);return c?jsxRuntime.jsx("nav",{ref:f,"aria-label":p,className:l(Oe(),u),...m,children:jsxRuntime.jsxs("ol",{className:$e(),children:[c.before.map(g=>jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(ce,{item:g,isCurrent:false,linkComponent:n,isGroupDisabled:s})}),jsxRuntime.jsx(z,{separator:t})]},g.id)),jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(Vt,{items:c.collapsed,linkComponent:n,isGroupDisabled:s})}),jsxRuntime.jsx(z,{separator:t}),c.after.map((g,P)=>{let w=P===c.after.length-1,x=e.length-c.after.length+P;return jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(ce,{item:g,isCurrent:Ye(x,e.length),linkComponent:n,isGroupDisabled:s})}),!w&&jsxRuntime.jsx(z,{separator:t})]},g.id)})]})}):jsxRuntime.jsx("nav",{ref:f,"aria-label":p,className:l(Oe(),u),...m,children:jsxRuntime.jsx("ol",{className:$e(),children:e.map((g,P)=>jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(ce,{item:g,isCurrent:Ye(P,e.length),linkComponent:n,isGroupDisabled:s})}),P<e.length-1&&jsxRuntime.jsx(z,{separator:t})]},g.id))})})});O.displayName="Breadcrumbs";var ue=classVarianceAuthority.cva("flex flex-col gap-4 border-b border-[var(--border)] p-4",{variants:{variant:{default:"bg-[var(--content-background)]",feature:["bg-[linear-gradient(to_right,var(--primary),color-mix(in_oklch,var(--primary),black_60%))]","rtl:bg-[linear-gradient(to_left,var(--primary),color-mix(in_oklch,var(--primary),black_60%))]"].join(" ")}},defaultVariants:{variant:"default"}}),fe=classVarianceAuthority.cva("flex w-full flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"),ge=classVarianceAuthority.cva("flex min-w-0 flex-1 flex-col gap-2"),be=classVarianceAuthority.cva("text-2xl font-semibold leading-none tracking-tight",{variants:{variant:{default:"text-[var(--content-foreground)]",feature:"text-[var(--primary-foreground)]"}},defaultVariants:{variant:"default"}}),ve=classVarianceAuthority.cva("text-base leading-normal",{variants:{variant:{default:"text-[var(--menu-muted)]",feature:"text-[var(--primary-foreground)]"}},defaultVariants:{variant:"default"}}),xe=classVarianceAuthority.cva("flex w-full",{variants:{variant:{default:"",feature:["[&_a]:text-[var(--primary-foreground)]","[&_a:hover]:text-[var(--primary-foreground)]","[&_[aria-current=page]]:text-[var(--primary-foreground)]","[&_[role=presentation]]:text-[var(--primary-foreground)]","[&_:focus-visible]:ring-[var(--primary-foreground)]"].join(" ")}},defaultVariants:{variant:"default"}}),Te=classVarianceAuthority.cva("flex shrink-0 flex-wrap items-center gap-2"),Pe=classVarianceAuthority.cva("flex w-full");var $=react.forwardRef(function({items:t,linkComponent:a,className:r,"data-testid":o,"aria-label":n},s){let{variant:u}=v();return jsxRuntime.jsx("div",{ref:s,className:l(xe({variant:u}),r),"data-testid":o??"page-title-breadcrumbs",children:jsxRuntime.jsx(O,{items:t,linkComponent:a,"aria-label":n})})});$.displayName="PageTitle.Breadcrumbs";var Y=react.forwardRef(function({as:t="h1",children:a,className:r,id:o,"data-testid":n},s){let{variant:u}=v();react.useEffect(()=>{if(process.env.NODE_ENV!=="production"&&t==="h1"){let f=document.querySelectorAll("h1").length;f>1&&console.warn(`[PageTitle] Multiple <h1> elements detected on the page (${f}). Each page should have exactly one <h1>. Pass \`as="h2"\` when PageTitle is not the primary page heading.`);}},[t]);let p=l(be({variant:u}),r),m={ref:s,id:o,className:p,"data-testid":n??"page-title-heading"};return t==="h2"?jsxRuntime.jsx("h2",{...m,children:a}):t==="h3"?jsxRuntime.jsx("h3",{...m,children:a}):jsxRuntime.jsx("h1",{...m,children:a})});Y.displayName="PageTitle.Heading";var F=react.forwardRef(function({children:t,className:a,id:r,"data-testid":o},n){let{variant:s}=v();return jsxRuntime.jsx("p",{ref:n,id:r,className:l(ve({variant:s}),a),"data-testid":o??"page-title-description",children:t})});F.displayName="PageTitle.Description";var W=react.forwardRef(function({children:t,className:a,"data-testid":r},o){return v(),jsxRuntime.jsx("div",{ref:o,className:l(Te(),a),"data-testid":r??"page-title-actions",children:t})});W.displayName="PageTitle.Actions";var U=react.forwardRef(function({children:t,className:a,"data-testid":r},o){return v(),jsxRuntime.jsx("div",{ref:o,className:l(Pe(),a),"data-testid":r??"page-title-tabs",children:t})});U.displayName="PageTitle.Tabs";var zt={"PageTitle.Breadcrumbs":"breadcrumbs","PageTitle.Heading":"heading","PageTitle.Description":"description","PageTitle.Actions":"actions","PageTitle.Tabs":"tabs"};function Ot(e){let t={breadcrumbs:null,heading:null,description:null,actions:null,tabs:null,other:[]};return react.Children.forEach(e,a=>{if(!react.isValidElement(a)){a!=null&&a!==false&&t.other.push(a);return}let r=a.type,o=typeof r=="string"?void 0:r?.displayName,n=o?zt[o]:void 0;n?t[n]=a:t.other.push(a);}),t}var We=react.forwardRef(function({children:t,variant:a="default",className:r,id:o,"aria-label":n,"aria-labelledby":s,"data-testid":u="page-title"},p){let m=Ot(t),f=react.useMemo(()=>({variant:a}),[a]);return jsxRuntime.jsx(j.Provider,{value:f,children:jsxRuntime.jsxs("header",{ref:p,id:o,className:l(ue({variant:a}),r),"aria-label":n,"aria-labelledby":s,"data-testid":u,"data-page-title-variant":a,children:[m.breadcrumbs,jsxRuntime.jsxs("div",{className:fe(),children:[jsxRuntime.jsxs("div",{className:ge(),children:[m.heading,m.description,m.other]}),m.actions]}),m.tabs]})})});We.displayName="PageTitle";var $t=Object.assign(We,{Breadcrumbs:$,Heading:Y,Description:F,Actions:W,Tabs:U});var Ue=zod.z.enum(["default","feature"]),qe=zod.z.enum(["h1","h2","h3"]),Ft=h.extend({children:zod.z.custom(),variant:Ue.optional()}),Wt=h.extend({children:zod.z.custom(),as:qe.optional()}),Ut=h.extend({children:zod.z.custom()}),qt=h.extend({items:zod.z.array(Z),linkComponent:zod.z.custom().optional()}),jt=h.extend({children:zod.z.custom()}),Zt=h.extend({children:zod.z.custom()});exports.PageTitle=$t;exports.PageTitleActions=W;exports.PageTitleActionsPropsSchema=jt;exports.PageTitleBreadcrumbs=$;exports.PageTitleBreadcrumbsPropsSchema=qt;exports.PageTitleDescription=F;exports.PageTitleDescriptionPropsSchema=Ut;exports.PageTitleHeading=Y;exports.PageTitleHeadingLevelSchema=qe;exports.PageTitleHeadingPropsSchema=Wt;exports.PageTitlePropsSchema=Ft;exports.PageTitleTabs=U;exports.PageTitleTabsPropsSchema=Zt;exports.PageTitleVariantSchema=Ue;exports.pageTitleActionsVariants=Te;exports.pageTitleBodyVariants=ge;exports.pageTitleBreadcrumbsVariants=xe;exports.pageTitleDescriptionVariants=ve;exports.pageTitleHeadingVariants=be;exports.pageTitleRootVariants=ue;exports.pageTitleRowVariants=fe;exports.pageTitleTabsVariants=Pe;exports.usePageTitleContext=v;//# sourceMappingURL=index.js.map
|
|
2
|
+
'use strict';var react=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),zod=require('zod'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),reactAriaComponents=require('react-aria-components'),jsxRuntime=require('react/jsx-runtime');function l(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var j=react.createContext(null);function v(){let e=react.useContext(j);if(!e)throw new Error("PageTitle compound components must be used within <PageTitle>");return e}var h=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 Z=zod.z.object({id:zod.z.union([zod.z.string(),zod.z.number()]),label:zod.z.string(),href:zod.z.string().optional(),icon:zod.z.custom().optional(),isDisabled:zod.z.boolean().optional().default(false)}),rt=zod.z.union([zod.z.literal("chevron"),zod.z.literal("slash"),zod.z.custom()]);h.extend({items:zod.z.array(Z),separator:rt.optional().default("chevron"),maxItems:zod.z.number().int().positive().optional().default(4),itemsBeforeCollapse:zod.z.number().int().nonnegative().optional().default(1),itemsAfterCollapse:zod.z.number().int().positive().optional().default(2),linkComponent:zod.z.custom().optional(),isDisabled:zod.z.boolean().optional().default(false)});var J=classVarianceAuthority.cva("z-50 min-w-[8rem] overflow-hidden rounded-md border border-[var(--menu-border)] bg-[var(--menu-background)] text-[var(--menu-foreground)] shadow-md p-1",{variants:{variant:{default:""}},defaultVariants:{variant:"default"}}),k=classVarianceAuthority.cva("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 min-h-[44px] data-[focused]:bg-[var(--menu-accent)] data-[focused]:text-[var(--menu-accent-foreground)] data-[pressed]:bg-[var(--menu-accent)] [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:""}},defaultVariants:{variant:"default"}});function Q(e){if(typeof e=="function"||typeof e=="object")return e?.displayName}var Ie=react.forwardRef(({defaultOpen:e=false,isOpen:t,onOpenChange:a,children:r},o)=>{if(process.env.NODE_ENV!=="production"){let n=react.Children.toArray(r),s=n.some(p=>react.isValidElement(p)&&(p.type===H||Q(p.type)==="DropdownTrigger")),u=n.some(p=>react.isValidElement(p)&&(p.type===C||Q(p.type)==="DropdownMenu"));if(!s||!u)throw new Error("Dropdown requires exactly one Dropdown.Trigger and one Dropdown.Menu as children")}return jsxRuntime.jsx(reactAriaComponents.MenuTrigger,{defaultOpen:e,isOpen:t,onOpenChange:a,children:r})});Ie.displayName="Dropdown";var H=react.forwardRef(({children:e,...t},a)=>react.isValidElement(e)?react.cloneElement(e,{...t,slot:"trigger"}):jsxRuntime.jsx(reactAriaComponents.Button,{ref:a,...t,children:e}));H.displayName="DropdownTrigger";var C=react.forwardRef(({align:e="start",side:t="bottom",className:a,children:r,...o},n)=>{let s=`${t} ${e}`;return jsxRuntime.jsx(reactAriaComponents.Popover,{placement:s,className:"data-[entering]:motion-safe:animate-in data-[entering]:motion-safe:fade-in-0 data-[entering]:motion-safe:slide-in-from-top-2 data-[entering]:[animation-duration:250ms] data-[entering]:[animation-timing-function:cubic-bezier(0.16,1,0.3,1)] data-[exiting]:motion-safe:animate-out data-[exiting]:motion-safe:fade-out-0 data-[exiting]:motion-safe:slide-out-to-top-2 data-[exiting]:[animation-duration:150ms]",children:jsxRuntime.jsx(reactAriaComponents.Menu,{className:l(J({variant:"default"}),a),...o,children:r})})});C.displayName="DropdownMenu";var X=react.forwardRef(({children:e,onAction:t,isDisabled:a=false,shortcut:r,icon:o,iconRight:n,className:s,"aria-label":u,...p},m)=>{let f=react.Children.toArray(e),c=x=>react.isValidElement(x)&&(x.type===C||Q(x.type)==="DropdownMenu"),g=f.some(c),P=f.filter(x=>!c(x)),w=f.find(c);return g&&w?jsxRuntime.jsxs(reactAriaComponents.SubmenuTrigger,{children:[jsxRuntime.jsxs(reactAriaComponents.MenuItem,{"aria-label":u,className:l(k({variant:"default"}),s),...p,children:[o&&jsxRuntime.jsx("span",{className:"mr-2",children:o}),jsxRuntime.jsx("span",{className:"flex-1",children:P}),jsxRuntime.jsx(lucideReact.ChevronRight,{className:"ml-auto h-4 w-4","aria-hidden":"true"})]}),w]}):jsxRuntime.jsxs(reactAriaComponents.MenuItem,{onAction:t,isDisabled:a,"aria-label":u,className:l(k({variant:"default"}),s),...p,children:[o&&jsxRuntime.jsx("span",{className:"mr-2",children:o}),jsxRuntime.jsx("span",{className:"flex-1",children:e}),n&&jsxRuntime.jsx("span",{className:"ml-auto",children:n}),r&&jsxRuntime.jsx("kbd",{className:"ml-auto pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border border-[var(--border)] bg-[var(--accent-background)] px-1.5 font-mono text-[10px] font-medium text-[var(--menu-muted)] opacity-100",children:r})]})});X.displayName="DropdownItem";var ee=react.memo(react.forwardRef(({className:e,...t},a)=>jsxRuntime.jsx(reactAriaComponents.Separator,{className:l("-mx-1 my-1 h-px bg-[var(--accent-background)]",e),...t})));ee.displayName="DropdownSeparator";var te=react.memo(react.forwardRef(({children:e,className:t,...a},r)=>jsxRuntime.jsx(reactAriaComponents.Header,{className:l("px-2 py-1.5 text-sm font-semibold text-[var(--menu-muted)]",t),...a,children:e})));te.displayName="DropdownLabel";var S=Object.assign(Ie,{Trigger:H,Menu:C,Item:X,Separator:ee,Label:te});var ae=classVarianceAuthority.cva("inline-flex justify-center min-h-[44px] min-w-[44px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",{variants:{fullWidth:{true:"w-full",false:""},inVerticalGroup:{true:"items-stretch",false:"items-center"}},defaultVariants:{fullWidth:false,inVerticalGroup:false}}),re=classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background motion-safe:transition-transform motion-safe:duration-200 motion-safe:[transition-timing-function:cubic-bezier(0.34,1.56,0.64,1)] motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 relative cursor-pointer",{variants:{variant:{default:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)] shadow-md hover:bg-[var(--primary-action-hover)] hover:-translate-y-1",destructive:"bg-[var(--destructive-background)] text-[var(--destructive-foreground)] shadow-md hover:bg-[var(--destructive-background-hover,var(--destructive-background))] motion-safe:hover:btn-warn-shake",outline:"border border-[var(--input-border)] bg-[var(--page-background)] hover:bg-[var(--input-border)]",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] shadow-md hover:bg-[var(--secondary-hover,var(--secondary))]",ghost:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]",link:"text-[var(--text-link)] underline underline-offset-4 hover:bg-[var(--accent)] hover:text-[var(--text-link-hover)]"},fullWidth:{true:"w-full",false:""},visualSize:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3 text-xs",lg:"h-11 rounded-md px-8",icon:"h-10 w-10",dot:"h-5 w-5 rounded-full p-0 min-h-0 min-w-0"},paywall:{true:"!bg-[var(--paywall)] !text-[var(--paywall-foreground)] !shadow-md hover:!bg-[var(--paywall)]/90 !cursor-not-allowed !border-transparent",false:""}},defaultVariants:{variant:"default",visualSize:"default",paywall:false}});var oe="data-[pressed]:scale-[0.97]";var ne="data-[hovered]:shadow-md";var L="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",_="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var Le=react.createContext(null);Le.displayName="ButtonGroupContext";function _e(){return react.useContext(Le)}var Me=react.createContext(null);Me.displayName="ButtonGroupItemContext";function Ge(){return react.useContext(Me)}classVarianceAuthority.cva("inline-flex items-center gap-0",{variants:{orientation:{horizontal:"flex-row",vertical:"flex-col w-full"}},defaultVariants:{orientation:"horizontal"}});var ze=classVarianceAuthority.cva("",{variants:{orientation:{horizontal:"min-w-[44px]",vertical:"flex min-h-[44px]"},position:{first:"",middle:"",last:"",only:""}},compoundVariants:[{orientation:"horizontal",position:"first",className:"rounded-r-none border-r-0"},{orientation:"horizontal",position:"middle",className:"rounded-none border-r-0"},{orientation:"horizontal",position:"last",className:"rounded-l-none"},{orientation:"vertical",position:"first",className:"rounded-b-none border-b-0"},{orientation:"vertical",position:"middle",className:"rounded-none border-b-0"},{orientation:"vertical",position:"last",className:"rounded-t-none"}],defaultVariants:{orientation:"horizontal",position:"only"}});classVarianceAuthority.cva("bg-[var(--border)]",{variants:{orientation:{horizontal:"w-px h-6 mx-1",vertical:"h-px w-full my-1"}},defaultVariants:{orientation:"horizontal"}});var M=react.memo(react.forwardRef(({className:e,buttonVisualClassName:t,variant:a,size:r,visualSize:o,fullWidth:n,loading:s=false,loadingText:u="Loading...",shortcut:p,children:m,isDisabled:f,paywall:c=false,paywallRedirect:g,paywallDescription:P,onPress:w,...x},je)=>{let De=react.useId(),E=_e(),Ne=Ge(),Ze=a??E?.variant??"default",Je=r??E?.size,Ke=f??E?.isDisabled??false,we=E?.orientation==="vertical",Ve=n||we,Qe=Ne?ze({orientation:E?.orientation??"horizontal",position:Ne.position}):"",q=o??Je??"default";return process.env.NODE_ENV!=="production"&&(q==="dot"||q==="icon")&&!x["aria-label"]&&!m&&console.warn('[Button] visualSize="dot" or "icon" requires aria-label when no visible text is provided (WCAG 1.1.1)'),jsxRuntime.jsx(reactAriaComponents.Button,{ref:je,isDisabled:Ke||s||void 0,"aria-disabled":c?true:void 0,"aria-describedby":c?De:void 0,onPress:R=>{if(c){g&&window.open(g,"_blank","noopener,noreferrer");return}w?.(R);},className:l(ae({fullWidth:Ve,inVerticalGroup:we}),e),...x,children:R=>jsxRuntime.jsxs("span",{className:l(re({variant:Ze,visualSize:q,paywall:c,fullWidth:Ve}),Qe,t,oe,ne,L,_),"data-pressed":R.isPressed||void 0,children:[s&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Loader2,{className:"motion-safe:animate-spin","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"sr-only","aria-live":"polite",children:u})]}),!s&&m,c&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),c&&jsxRuntime.jsxs("span",{id:De,className:"sr-only",children:["Premium feature: ",P||"Upgrade required to access this feature"]}),R.isFocusVisible&&p&&jsxRuntime.jsx("kbd",{className:"ml-auto hidden text-xs opacity-60 lg:inline",children:p})]})})}));M.displayName="Button";var Oe=classVarianceAuthority.cva("flex items-center flex-wrap",{variants:{},defaultVariants:{}}),$e=classVarianceAuthority.cva("flex flex-wrap items-center gap-1 break-words text-sm text-[var(--menu-muted)]",{variants:{},defaultVariants:{}}),G=classVarianceAuthority.cva("inline-flex items-center gap-1",{variants:{},defaultVariants:{}}),de=classVarianceAuthority.cva("inline-flex items-center gap-2 min-h-[44px] pr-2 rounded-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2",{variants:{state:{default:["text-[var(--menu-muted)]","hover:text-[var(--content-foreground)]","hover:underline underline-offset-4"].join(" "),current:"text-[var(--content-foreground)] font-medium pointer-events-none",disabled:"text-[var(--menu-muted)] opacity-50 cursor-not-allowed pointer-events-none"}},defaultVariants:{state:"default"}}),me=classVarianceAuthority.cva("text-[var(--menu-muted)]",{variants:{type:{chevron:"[&>svg]:h-4 [&>svg]:w-4",slash:"mx-2",custom:""}},defaultVariants:{type:"chevron"}}),Nt=classVarianceAuthority.cva("inline-flex items-center justify-center min-h-[44px] min-w-[44px] rounded-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 hover:bg-[var(--accent)]",{variants:{},defaultVariants:{}});function Ye(e,t){return e===t-1}function wt(e,t,a,r){if(e.length<=t||a+r>=e.length)return null;let o=e.slice(0,a),n=e.slice(-r),s=e.slice(a,e.length-r);return {before:o,collapsed:s,after:n}}function z({separator:e}){return e==="chevron"?jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:me({type:"chevron"}),children:jsxRuntime.jsx(lucideReact.ChevronRight,{})}):e==="slash"?jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:me({type:"slash"}),children:"/"}):jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:me({type:"custom"}),children:e})}function ce({item:e,isCurrent:t,linkComponent:a="a",isGroupDisabled:r}){let o=r||e.isDisabled,n=t?"current":o?"disabled":"default";return t?jsxRuntime.jsxs("span",{className:de({state:"current"}),"aria-current":"page",children:[e.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:e.icon}),e.label]}):e.href?jsxRuntime.jsxs(a,{href:e.href,className:de({state:n}),"aria-disabled":o||void 0,children:[e.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:e.icon}),e.label]}):jsxRuntime.jsxs("span",{className:de({state:o?"disabled":"default"}),"aria-disabled":o||void 0,children:[e.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:e.icon}),e.label]})}function Vt({items:e,linkComponent:t="a",isGroupDisabled:a}){return jsxRuntime.jsxs(S,{defaultOpen:false,children:[jsxRuntime.jsx(S.Trigger,{children:jsxRuntime.jsx(M,{variant:"ghost",size:"icon",className:Nt(),"aria-label":"More breadcrumbs",children:jsxRuntime.jsx(lucideReact.MoreHorizontal,{className:"h-4 w-4"})})}),jsxRuntime.jsx(S.Menu,{align:"start",side:"bottom",children:e.map(r=>jsxRuntime.jsx(S.Item,{isDisabled:a||r.isDisabled,children:jsxRuntime.jsxs(t,{href:r.href,className:"flex flex-1 items-center gap-2",children:[r.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:r.icon}),r.label]})},r.id))})]})}var O=react.forwardRef(({items:e,separator:t="chevron",maxItems:a=4,itemsBeforeCollapse:r=1,itemsAfterCollapse:o=2,linkComponent:n,isDisabled:s,className:u,"aria-label":p="Breadcrumb",...m},f)=>{if(!e||e.length===0)return null;let c=wt(e,a,r,o);return c?jsxRuntime.jsx("nav",{ref:f,"aria-label":p,className:l(Oe(),u),...m,children:jsxRuntime.jsxs("ol",{className:$e(),children:[c.before.map(g=>jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(ce,{item:g,isCurrent:false,linkComponent:n,isGroupDisabled:s})}),jsxRuntime.jsx(z,{separator:t})]},g.id)),jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(Vt,{items:c.collapsed,linkComponent:n,isGroupDisabled:s})}),jsxRuntime.jsx(z,{separator:t}),c.after.map((g,P)=>{let w=P===c.after.length-1,x=e.length-c.after.length+P;return jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(ce,{item:g,isCurrent:Ye(x,e.length),linkComponent:n,isGroupDisabled:s})}),!w&&jsxRuntime.jsx(z,{separator:t})]},g.id)})]})}):jsxRuntime.jsx("nav",{ref:f,"aria-label":p,className:l(Oe(),u),...m,children:jsxRuntime.jsx("ol",{className:$e(),children:e.map((g,P)=>jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(ce,{item:g,isCurrent:Ye(P,e.length),linkComponent:n,isGroupDisabled:s})}),P<e.length-1&&jsxRuntime.jsx(z,{separator:t})]},g.id))})})});O.displayName="Breadcrumbs";var ue=classVarianceAuthority.cva("flex flex-col gap-4 border-b border-[var(--border)] p-4",{variants:{variant:{default:"bg-[var(--content-background)]",feature:["bg-[linear-gradient(to_right,var(--primary),color-mix(in_oklch,var(--primary),black_60%))]","rtl:bg-[linear-gradient(to_left,var(--primary),color-mix(in_oklch,var(--primary),black_60%))]"].join(" ")}},defaultVariants:{variant:"default"}}),fe=classVarianceAuthority.cva("flex w-full flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"),ge=classVarianceAuthority.cva("flex min-w-0 flex-1 flex-col gap-2"),be=classVarianceAuthority.cva("text-2xl font-semibold leading-none tracking-tight",{variants:{variant:{default:"text-[var(--content-foreground)]",feature:"text-[var(--primary-foreground)]"}},defaultVariants:{variant:"default"}}),ve=classVarianceAuthority.cva("text-base leading-normal",{variants:{variant:{default:"text-[var(--menu-muted)]",feature:"text-[var(--primary-foreground)]"}},defaultVariants:{variant:"default"}}),xe=classVarianceAuthority.cva("flex w-full",{variants:{variant:{default:"",feature:["[&_a]:text-[var(--primary-foreground)]","[&_a:hover]:text-[var(--primary-foreground)]","[&_[aria-current=page]]:text-[var(--primary-foreground)]","[&_[role=presentation]]:text-[var(--primary-foreground)]","[&_:focus-visible]:ring-[var(--primary-foreground)]"].join(" ")}},defaultVariants:{variant:"default"}}),Te=classVarianceAuthority.cva("flex shrink-0 flex-wrap items-center gap-2"),Pe=classVarianceAuthority.cva("flex w-full");var $=react.forwardRef(function({items:t,linkComponent:a,className:r,"data-testid":o,"aria-label":n},s){let{variant:u}=v();return jsxRuntime.jsx("div",{ref:s,className:l(xe({variant:u}),r),"data-testid":o??"page-title-breadcrumbs",children:jsxRuntime.jsx(O,{items:t,linkComponent:a,"aria-label":n})})});$.displayName="PageTitle.Breadcrumbs";var Y=react.forwardRef(function({as:t="h1",children:a,className:r,id:o,"data-testid":n},s){let{variant:u}=v();react.useEffect(()=>{if(process.env.NODE_ENV!=="production"&&t==="h1"){let f=document.querySelectorAll("h1").length;f>1&&console.warn(`[PageTitle] Multiple <h1> elements detected on the page (${f}). Each page should have exactly one <h1>. Pass \`as="h2"\` when PageTitle is not the primary page heading.`);}},[t]);let p=l(be({variant:u}),r),m={ref:s,id:o,className:p,"data-testid":n??"page-title-heading"};return t==="h2"?jsxRuntime.jsx("h2",{...m,children:a}):t==="h3"?jsxRuntime.jsx("h3",{...m,children:a}):jsxRuntime.jsx("h1",{...m,children:a})});Y.displayName="PageTitle.Heading";var F=react.forwardRef(function({children:t,className:a,id:r,"data-testid":o},n){let{variant:s}=v();return jsxRuntime.jsx("p",{ref:n,id:r,className:l(ve({variant:s}),a),"data-testid":o??"page-title-description",children:t})});F.displayName="PageTitle.Description";var W=react.forwardRef(function({children:t,className:a,"data-testid":r},o){return v(),jsxRuntime.jsx("div",{ref:o,className:l(Te(),a),"data-testid":r??"page-title-actions",children:t})});W.displayName="PageTitle.Actions";var U=react.forwardRef(function({children:t,className:a,"data-testid":r},o){return v(),jsxRuntime.jsx("div",{ref:o,className:l(Pe(),a),"data-testid":r??"page-title-tabs",children:t})});U.displayName="PageTitle.Tabs";var zt={"PageTitle.Breadcrumbs":"breadcrumbs","PageTitle.Heading":"heading","PageTitle.Description":"description","PageTitle.Actions":"actions","PageTitle.Tabs":"tabs"};function Ot(e){let t={breadcrumbs:null,heading:null,description:null,actions:null,tabs:null,other:[]};return react.Children.forEach(e,a=>{if(!react.isValidElement(a)){a!=null&&a!==false&&t.other.push(a);return}let r=a.type,o=typeof r=="string"?void 0:r?.displayName,n=o?zt[o]:void 0;n?t[n]=a:t.other.push(a);}),t}var We=react.forwardRef(function({children:t,variant:a="default",className:r,id:o,"aria-label":n,"aria-labelledby":s,"data-testid":u="page-title"},p){let m=Ot(t),f=react.useMemo(()=>({variant:a}),[a]);return jsxRuntime.jsx(j.Provider,{value:f,children:jsxRuntime.jsxs("div",{ref:p,id:o,className:l(ue({variant:a}),r),"aria-label":n,"aria-labelledby":s,"data-testid":u,"data-page-title-variant":a,children:[m.breadcrumbs,jsxRuntime.jsxs("div",{className:fe(),children:[jsxRuntime.jsxs("div",{className:ge(),children:[m.heading,m.description,m.other]}),m.actions]}),m.tabs]})})});We.displayName="PageTitle";var $t=Object.assign(We,{Breadcrumbs:$,Heading:Y,Description:F,Actions:W,Tabs:U});var Ue=zod.z.enum(["default","feature"]),qe=zod.z.enum(["h1","h2","h3"]),Ft=h.extend({children:zod.z.custom(),variant:Ue.optional()}),Wt=h.extend({children:zod.z.custom(),as:qe.optional()}),Ut=h.extend({children:zod.z.custom()}),qt=h.extend({items:zod.z.array(Z),linkComponent:zod.z.custom().optional()}),jt=h.extend({children:zod.z.custom()}),Zt=h.extend({children:zod.z.custom()});exports.PageTitle=$t;exports.PageTitleActions=W;exports.PageTitleActionsPropsSchema=jt;exports.PageTitleBreadcrumbs=$;exports.PageTitleBreadcrumbsPropsSchema=qt;exports.PageTitleDescription=F;exports.PageTitleDescriptionPropsSchema=Ut;exports.PageTitleHeading=Y;exports.PageTitleHeadingLevelSchema=qe;exports.PageTitleHeadingPropsSchema=Wt;exports.PageTitlePropsSchema=Ft;exports.PageTitleTabs=U;exports.PageTitleTabsPropsSchema=Zt;exports.PageTitleVariantSchema=Ue;exports.pageTitleActionsVariants=Te;exports.pageTitleBodyVariants=ge;exports.pageTitleBreadcrumbsVariants=xe;exports.pageTitleDescriptionVariants=ve;exports.pageTitleHeadingVariants=be;exports.pageTitleRootVariants=ue;exports.pageTitleRowVariants=fe;exports.pageTitleTabsVariants=Pe;exports.usePageTitleContext=v;//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|