@tribepad/themis 1.5.4 → 1.5.5
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 +5 -0
- package/dist/elements/PageTitle/PageTitle.styles.d.ts.map +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/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 +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.5.5] - 2026-05-18
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- **PageTitle** — layout now responds to the *page-title's own width* via Tailwind v4 container queries instead of the viewport. The root declares `@container/page-title`; the title row switches from column-stack to `flex-row` at ≥36rem container width and gets `flex-wrap` so actions wraps below the body when the row can't fit both. The body gains a `basis-[18rem]` floor in the row layout so the description never gets squeezed into a single-word column when actions are wide. Fixes the case where a sidebar consumes most of the viewport and the page-title row collapses even though the viewport is well above `sm`.
|
|
12
|
+
|
|
8
13
|
## [1.5.4] - 2026-05-11
|
|
9
14
|
|
|
10
15
|
### Changed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTitle.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/PageTitle/PageTitle.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAMH,eAAO,MAAM,qBAAqB;;8EAgBjC,CAAC;
|
|
1
|
+
{"version":3,"file":"PageTitle.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/PageTitle/PageTitle.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAMH,eAAO,MAAM,qBAAqB;;8EAgBjC,CAAC;AAQF,eAAO,MAAM,oBAAoB,oFAEhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oFAEjC,CAAC;AAMF,eAAO,MAAM,wBAAwB;;8EAapC,CAAC;AAMF,eAAO,MAAM,4BAA4B;;8EAaxC,CAAC;AAMF,eAAO,MAAM,4BAA4B;;8EAmBvC,CAAC;AAMH,eAAO,MAAM,wBAAwB,oFAEpC,CAAC;AAMF,eAAO,MAAM,qBAAqB,oFAEjC,CAAC"}
|
|
@@ -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)]","underline underline-offset-4","hover:text-[var(--content-foreground)]"].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
|
|
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)]","underline underline-offset-4","hover:text-[var(--content-foreground)]"].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("@container/page-title 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 @xl/page-title:flex-row @xl/page-title:flex-wrap @xl/page-title:items-center @xl/page-title:justify-between"),ge=classVarianceAuthority.cva("flex min-w-0 flex-1 flex-col gap-2 @xl/page-title:basis-[18rem]"),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
|