@tribepad/themis 1.9.4 → 1.9.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 +7 -0
- package/dist/elements/AlertDialog/index.js +1 -1
- package/dist/elements/AlertDialog/index.js.map +1 -1
- package/dist/elements/AlertDialog/index.mjs +1 -1
- package/dist/elements/AlertDialog/index.mjs.map +1 -1
- package/dist/elements/Breadcrumbs/index.js +1 -1
- package/dist/elements/Breadcrumbs/index.js.map +1 -1
- package/dist/elements/Breadcrumbs/index.mjs +1 -1
- package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
- package/dist/elements/Button/index.js +1 -1
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/index.mjs +1 -1
- package/dist/elements/Button/index.mjs.map +1 -1
- package/dist/elements/Card/index.js +1 -1
- package/dist/elements/Card/index.js.map +1 -1
- package/dist/elements/Card/index.mjs +1 -1
- package/dist/elements/Card/index.mjs.map +1 -1
- package/dist/elements/Carousel/Carousel.d.ts +8 -1
- package/dist/elements/Carousel/Carousel.d.ts.map +1 -1
- package/dist/elements/Carousel/LazyCarousel.d.ts +1 -1
- package/dist/elements/Carousel/LazyCarousel.d.ts.map +1 -1
- package/dist/elements/Carousel/index.js +1 -1
- package/dist/elements/Carousel/index.js.map +1 -1
- package/dist/elements/Carousel/index.mjs +1 -1
- package/dist/elements/Carousel/index.mjs.map +1 -1
- package/dist/elements/ChatInterface/ChatLiveRegions.d.ts +2 -2
- package/dist/elements/ChatInterface/ChatLiveRegions.d.ts.map +1 -1
- package/dist/elements/ChatInterface/ChatMessageBubble.d.ts +1 -1
- package/dist/elements/ChatInterface/ChatMessageBubble.d.ts.map +1 -1
- package/dist/elements/ChatInterface/ChatThinkingDisplay.d.ts +2 -2
- package/dist/elements/ChatInterface/ChatThinkingDisplay.d.ts.map +1 -1
- package/dist/elements/ChatInterface/ChatTypingIndicator.d.ts +2 -2
- package/dist/elements/ChatInterface/ChatTypingIndicator.d.ts.map +1 -1
- package/dist/elements/ChatInterface/index.js +1 -1
- package/dist/elements/ChatInterface/index.js.map +1 -1
- package/dist/elements/ChatInterface/index.mjs +1 -1
- package/dist/elements/ChatInterface/index.mjs.map +1 -1
- package/dist/elements/FeatureIcon/FeatureIcon.d.ts +3 -0
- package/dist/elements/FeatureIcon/FeatureIcon.d.ts.map +1 -0
- package/dist/elements/FeatureIcon/FeatureIcon.styles.d.ts +17 -0
- package/dist/elements/FeatureIcon/FeatureIcon.styles.d.ts.map +1 -0
- package/dist/elements/FeatureIcon/FeatureIcon.types.d.ts +137 -0
- package/dist/elements/FeatureIcon/FeatureIcon.types.d.ts.map +1 -0
- package/dist/elements/FeatureIcon/index.d.ts +25 -0
- package/dist/elements/FeatureIcon/index.d.ts.map +1 -0
- package/dist/elements/FeatureIcon/index.js +3 -0
- package/dist/elements/FeatureIcon/index.js.map +1 -0
- package/dist/elements/FeatureIcon/index.mjs +3 -0
- package/dist/elements/FeatureIcon/index.mjs.map +1 -0
- package/dist/elements/FileField/index.js +1 -1
- package/dist/elements/FileField/index.js.map +1 -1
- package/dist/elements/FileField/index.mjs +1 -1
- package/dist/elements/FileField/index.mjs.map +1 -1
- package/dist/elements/Filters/index.js +1 -1
- package/dist/elements/Filters/index.js.map +1 -1
- package/dist/elements/Filters/index.mjs +1 -1
- package/dist/elements/Filters/index.mjs.map +1 -1
- package/dist/elements/Modal/Modal.styles.d.ts +2 -2
- package/dist/elements/Modal/Modal.types.d.ts +2 -2
- package/dist/elements/NumberField/index.js +1 -1
- package/dist/elements/NumberField/index.js.map +1 -1
- package/dist/elements/NumberField/index.mjs +1 -1
- package/dist/elements/NumberField/index.mjs.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/Pagination/index.js +1 -1
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/Pagination/index.mjs +1 -1
- package/dist/elements/Pagination/index.mjs.map +1 -1
- package/dist/elements/Panel/Panel.d.ts +1 -1
- package/dist/elements/Panel/Panel.types.d.ts +2 -2
- package/dist/elements/PasswordField/index.js +1 -1
- package/dist/elements/PasswordField/index.js.map +1 -1
- package/dist/elements/PasswordField/index.mjs +1 -1
- package/dist/elements/PasswordField/index.mjs.map +1 -1
- package/dist/elements/Resizable/index.js +1 -1
- package/dist/elements/Resizable/index.js.map +1 -1
- package/dist/elements/Resizable/index.mjs +1 -1
- package/dist/elements/Resizable/index.mjs.map +1 -1
- package/dist/elements/SearchField/index.js +1 -1
- package/dist/elements/SearchField/index.js.map +1 -1
- package/dist/elements/SearchField/index.mjs +1 -1
- package/dist/elements/SearchField/index.mjs.map +1 -1
- package/dist/elements/Select/Select.d.ts +3 -3
- package/dist/elements/Select/Select.d.ts.map +1 -1
- package/dist/elements/Sidebar/Sidebar.styles.d.ts +1 -1
- package/dist/elements/Sidebar/Sidebar.styles.d.ts.map +1 -1
- package/dist/elements/Sidebar/Sidebar.types.d.ts +2 -2
- 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/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/TextField/index.js +1 -1
- package/dist/elements/TextField/index.js.map +1 -1
- package/dist/elements/TextField/index.mjs +1 -1
- package/dist/elements/TextField/index.mjs.map +1 -1
- package/dist/elements/Timeline/index.js +1 -1
- package/dist/elements/Timeline/index.js.map +1 -1
- package/dist/elements/Timeline/index.mjs +1 -1
- package/dist/elements/Timeline/index.mjs.map +1 -1
- package/dist/elements/Toast/index.js +1 -1
- package/dist/elements/Toast/index.js.map +1 -1
- package/dist/elements/Toast/index.mjs +1 -1
- package/dist/elements/Toast/index.mjs.map +1 -1
- package/dist/elements/Wizard/index.js +1 -1
- package/dist/elements/Wizard/index.js.map +1 -1
- package/dist/elements/Wizard/index.mjs +1 -1
- package/dist/elements/Wizard/index.mjs.map +1 -1
- package/dist/elements/index.d.ts +2 -0
- 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/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/animations.css +15 -0
- package/package.json +16 -14
- package/src/elements/FeatureIcon/FeatureIcon.stories.tsx +164 -0
|
@@ -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 q=react.createContext(null);function x(){let e=react.useContext(q);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 X=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(X),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)});function ot(e){if(!(e instanceof Element))return false;let t=e;for(let o=0;t&&o<100;o++){let n=t.tagName?.toLowerCase()??"";if(n.startsWith("grammarly-")||n.startsWith("lt-")||t.hasAttribute("data-grammarly-shadow-root"))return true;if(t.parentElement)t=t.parentElement;else {let i=t.getRootNode();t=i instanceof ShadowRoot?i.host:null;}}let a=e;for(;a&&!a.tagName.includes("-");)a=a.parentElement;if(!a)return false;let r=a.parentElement;return r===document.body||r===document.documentElement}function Ve(e){return t=>!ot(t)&&(e?.(t)??true)}var Z=classVarianceAuthority.cva("z-50 min-w-[8rem] overflow-hidden rounded-md border border-[var(--menu-border)] bg-[var(--menu-background)] text-[var(--menu-foreground)] p-1",{variants:{variant:{default:""}},defaultVariants:{variant:"default"}}),A=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 K(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),i=n.some(p=>react.isValidElement(p)&&(p.type===k||K(p.type)==="DropdownTrigger")),c=n.some(p=>react.isValidElement(p)&&(p.type===C||K(p.type)==="DropdownMenu"));if(!i||!c)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 k=react.forwardRef(({children:e,...t},a)=>react.isValidElement(e)?react.cloneElement(e,t):jsxRuntime.jsx(reactAriaComponents.Button,{ref:a,...t,children:e}));k.displayName="DropdownTrigger";var C=react.forwardRef(({align:e="start",side:t="bottom",className:a,children:r,...o},n)=>{let i=`${t} ${e}`;return jsxRuntime.jsx(reactAriaComponents.Popover,{placement:i,shouldCloseOnInteractOutside:Ve(),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(Z({variant:"default"}),a),...o,children:r})})});C.displayName="DropdownMenu";var Q=react.forwardRef(({children:e,onAction:t,isDisabled:a=false,shortcut:r,icon:o,iconRight:n,className:i,"aria-label":c,...p},d)=>{let f=react.Children.toArray(e),u=v=>react.isValidElement(v)&&(v.type===C||K(v.type)==="DropdownMenu"),g=f.some(u),P=f.filter(v=>!u(v)),w=f.find(u);return g&&w?jsxRuntime.jsxs(reactAriaComponents.SubmenuTrigger,{children:[jsxRuntime.jsxs(reactAriaComponents.MenuItem,{"aria-label":c,className:l(A({variant:"default"}),i),...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":c,className:l(A({variant:"default"}),i),...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})]})});Q.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:k,Menu:C,Item:Q,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-normal 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)] 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)] 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-6 text-base",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)] 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 H="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",L="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var He=react.createContext(null);He.displayName="ButtonGroupContext";function Le(){return react.useContext(He)}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 Oe=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:i=false,loadingText:c="Loading...",shortcut:p,children:d,isDisabled:f,paywall:u=false,paywallRedirect:g,paywallDescription:P,onPress:w,...v},qe)=>{let ye=react.useId(),E=Le(),De=Ge(),Xe=a??E?.variant??"default",Ze=r??E?.size,Je=f??E?.isDisabled??false,Ne=E?.orientation==="vertical",we=n||Ne,Ke=De?Oe({orientation:E?.orientation??"horizontal",position:De.position}):"",j=o??Ze??"default";return process.env.NODE_ENV!=="production"&&(j==="dot"||j==="icon")&&!v["aria-label"]&&!d&&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:qe,isDisabled:Je||i||void 0,"aria-disabled":u?true:void 0,"aria-describedby":u?ye:void 0,onPress:R=>{if(u){g&&window.open(g,"_blank","noopener,noreferrer");return}w?.(R);},className:l(ae({fullWidth:we,inVerticalGroup:Ne}),e),...v,children:R=>jsxRuntime.jsxs("span",{className:l(re({variant:Xe,visualSize:j,paywall:u,fullWidth:we}),Ke,t,oe,"",H,L),"data-pressed":R.isPressed||void 0,children:[i&&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:c})]}),!i&&d,u&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),u&&jsxRuntime.jsxs("span",{id:ye,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 ze=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:{}}),pe=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"}}),de=classVarianceAuthority.cva("text-[var(--menu-muted)]",{variants:{type:{chevron:"[&>svg]:h-4 [&>svg]:w-4",slash:"mx-2",custom:""}},defaultVariants:{type:"chevron"}}),Vt=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 St(e,t,a,r){if(e.length<=t||a+r>=e.length)return null;let o=e.slice(0,a),n=e.slice(-r),i=e.slice(a,e.length-r);return {before:o,collapsed:i,after:n}}function O({separator:e}){return e==="chevron"?jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:de({type:"chevron"}),children:jsxRuntime.jsx(lucideReact.ChevronRight,{})}):e==="slash"?jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:de({type:"slash"}),children:"/"}):jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:de({type:"custom"}),children:e})}function me({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:pe({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:pe({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:pe({state:o?"disabled":"default"}),"aria-disabled":o||void 0,children:[e.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:e.icon}),e.label]})}function Bt({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:Vt(),"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 z=react.forwardRef(({items:e,separator:t="chevron",maxItems:a=4,itemsBeforeCollapse:r=1,itemsAfterCollapse:o=2,linkComponent:n,isDisabled:i,className:c,"aria-label":p="Breadcrumb",...d},f)=>{if(!e||e.length===0)return null;let u=St(e,a,r,o);return u?jsxRuntime.jsx("nav",{ref:f,"aria-label":p,className:l(ze(),c),...d,children:jsxRuntime.jsxs("ol",{className:$e(),children:[u.before.map(g=>jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(me,{item:g,isCurrent:false,linkComponent:n,isGroupDisabled:i})}),jsxRuntime.jsx(O,{separator:t})]},g.id)),jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(Bt,{items:u.collapsed,linkComponent:n,isGroupDisabled:i})}),jsxRuntime.jsx(O,{separator:t}),u.after.map((g,P)=>{let w=P===u.after.length-1,v=e.length-u.after.length+P;return jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(me,{item:g,isCurrent:Ye(v,e.length),linkComponent:n,isGroupDisabled:i})}),!w&&jsxRuntime.jsx(O,{separator:t})]},g.id)})]})}):jsxRuntime.jsx("nav",{ref:f,"aria-label":p,className:l(ze(),c),...d,children:jsxRuntime.jsx("ol",{className:$e(),children:e.map((g,P)=>jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(me,{item:g,isCurrent:Ye(P,e.length),linkComponent:n,isGroupDisabled:i})}),P<e.length-1&&jsxRuntime.jsx(O,{separator:t})]},g.id))})})});z.displayName="Breadcrumbs";var ue=classVarianceAuthority.cva("@container/page-title flex flex-col gap-2 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"}}),ce=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"),fe=classVarianceAuthority.cva("flex min-w-0 flex-1 flex-col gap-3 @xl/page-title:basis-[18rem]"),ge=classVarianceAuthority.cva("text-[28px] font-semibold leading-none tracking-[-0.28px]",{variants:{variant:{default:"text-[var(--content-foreground)]",feature:"text-[var(--primary-foreground)]"}},defaultVariants:{variant:"default"}}),be=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"}}),ve=classVarianceAuthority.cva("flex shrink-0 flex-wrap items-center gap-2"),Te=classVarianceAuthority.cva("-mx-4 -mb-4 mt-2 [&_[role=tablist]]:flex [&_[role=tablist]]:w-full");var $=react.forwardRef(function({items:t,linkComponent:a,className:r,"data-testid":o,"aria-label":n},i){let{variant:c}=x();return jsxRuntime.jsx("div",{ref:i,className:l(xe({variant:c}),r),"data-testid":o??"page-title-breadcrumbs",children:jsxRuntime.jsx(z,{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},i){let{variant:c}=x();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(ge({variant:c}),r),d={ref:i,id:o,className:p,"data-testid":n??"page-title-heading"};return t==="h2"?jsxRuntime.jsx("h2",{...d,children:a}):t==="h3"?jsxRuntime.jsx("h3",{...d,children:a}):jsxRuntime.jsx("h1",{...d,children:a})});Y.displayName="PageTitle.Heading";var F=react.forwardRef(function({children:t,className:a,id:r,"data-testid":o},n){let{variant:i}=x();return jsxRuntime.jsx("p",{ref:n,id:r,className:l(be({variant:i}),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 x(),jsxRuntime.jsx("div",{ref:o,className:l(ve(),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 x(),jsxRuntime.jsx("div",{ref:o,className:l(Te(),a),"data-testid":r??"page-title-tabs",children:t})});U.displayName="PageTitle.Tabs";var $t={"PageTitle.Breadcrumbs":"breadcrumbs","PageTitle.Heading":"heading","PageTitle.Description":"description","PageTitle.Actions":"actions","PageTitle.Tabs":"tabs"};function Yt(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?$t[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":i,"data-testid":c="page-title"},p){let d=Yt(t),f=react.useMemo(()=>({variant:a}),[a]);return jsxRuntime.jsx(q.Provider,{value:f,children:jsxRuntime.jsxs("div",{ref:p,id:o,className:l(ue({variant:a}),d.tabs!=null&&"border-b-0",r),"aria-label":n,"aria-labelledby":i,"data-testid":c,"data-page-title-variant":a,children:[d.breadcrumbs,jsxRuntime.jsxs("div",{className:ce(),children:[jsxRuntime.jsxs("div",{className:fe(),children:[d.heading,d.description,d.other]}),d.actions]}),d.tabs]})})});We.displayName="PageTitle";var Ft=Object.assign(We,{Breadcrumbs:$,Heading:Y,Description:F,Actions:W,Tabs:U});var Ue=zod.z.enum(["default","feature"]),je=zod.z.enum(["h1","h2","h3"]),Ut=h.extend({children:zod.z.custom(),variant:Ue.optional()}),jt=h.extend({children:zod.z.custom(),as:je.optional()}),qt=h.extend({children:zod.z.custom()}),Xt=h.extend({items:zod.z.array(X),linkComponent:zod.z.custom().optional()}),Zt=h.extend({children:zod.z.custom()}),Jt=h.extend({children:zod.z.custom()});exports.PageTitle=Ft;exports.PageTitleActions=W;exports.PageTitleActionsPropsSchema=Zt;exports.PageTitleBreadcrumbs=$;exports.PageTitleBreadcrumbsPropsSchema=Xt;exports.PageTitleDescription=F;exports.PageTitleDescriptionPropsSchema=qt;exports.PageTitleHeading=Y;exports.PageTitleHeadingLevelSchema=je;exports.PageTitleHeadingPropsSchema=jt;exports.PageTitlePropsSchema=Ut;exports.PageTitleTabs=U;exports.PageTitleTabsPropsSchema=Jt;exports.PageTitleVariantSchema=Ue;exports.pageTitleActionsVariants=ve;exports.pageTitleBodyVariants=fe;exports.pageTitleBreadcrumbsVariants=xe;exports.pageTitleDescriptionVariants=be;exports.pageTitleHeadingVariants=ge;exports.pageTitleRootVariants=ue;exports.pageTitleRowVariants=ce;exports.pageTitleTabsVariants=Te;exports.usePageTitleContext=x;//# 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 q=react.createContext(null);function x(){let e=react.useContext(q);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 X=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(X),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)});function ot(e){if(!(e instanceof Element))return false;let t=e;for(let o=0;t&&o<100;o++){let n=t.tagName?.toLowerCase()??"";if(n.startsWith("grammarly-")||n.startsWith("lt-")||t.hasAttribute("data-grammarly-shadow-root"))return true;if(t.parentElement)t=t.parentElement;else {let i=t.getRootNode();t=i instanceof ShadowRoot?i.host:null;}}let a=e;for(;a&&!a.tagName.includes("-");)a=a.parentElement;if(!a)return false;let r=a.parentElement;return r===document.body||r===document.documentElement}function Ve(e){return t=>!ot(t)&&(e?.(t)??true)}var Z=classVarianceAuthority.cva("z-50 min-w-[8rem] overflow-hidden rounded-md border border-[var(--menu-border)] bg-[var(--menu-background)] text-[var(--menu-foreground)] p-1",{variants:{variant:{default:""}},defaultVariants:{variant:"default"}}),A=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 K(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),i=n.some(p=>react.isValidElement(p)&&(p.type===_||K(p.type)==="DropdownTrigger")),u=n.some(p=>react.isValidElement(p)&&(p.type===C||K(p.type)==="DropdownMenu"));if(!i||!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 _=react.forwardRef(({children:e,...t},a)=>react.isValidElement(e)?react.cloneElement(e,t):jsxRuntime.jsx(reactAriaComponents.Button,{ref:a,...t,children:e}));_.displayName="DropdownTrigger";var C=react.forwardRef(({align:e="start",side:t="bottom",className:a,children:r,...o},n)=>{let i=`${t} ${e}`;return jsxRuntime.jsx(reactAriaComponents.Popover,{placement:i,shouldCloseOnInteractOutside:Ve(),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(Z({variant:"default"}),a),...o,children:r})})});C.displayName="DropdownMenu";var Q=react.forwardRef(({children:e,onAction:t,isDisabled:a=false,shortcut:r,icon:o,iconRight:n,className:i,"aria-label":u,...p},d)=>{let f=react.Children.toArray(e),c=v=>react.isValidElement(v)&&(v.type===C||K(v.type)==="DropdownMenu"),g=f.some(c),P=f.filter(v=>!c(v)),w=f.find(c);return g&&w?jsxRuntime.jsxs(reactAriaComponents.SubmenuTrigger,{children:[jsxRuntime.jsxs(reactAriaComponents.MenuItem,{"aria-label":u,className:l(A({variant:"default"}),i),...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(A({variant:"default"}),i),...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})]})});Q.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:_,Menu:C,Item:Q,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-normal 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)] hover:bg-[var(--destructive-background-hover,var(--destructive-background))] motion-safe:hover:btn-warn-shake",outline:"border border-[var(--input-border)] bg-[var(--content-background)] hover:bg-[var(--accent-background)]/50",secondary:"bg-[var(--secondary)] text-[var(--secondary-foreground)] 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-6 text-base",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)] 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 H="hc:data-[hovered]:outline hc:data-[hovered]:outline-2 hc:data-[hovered]:outline-foreground",L="hc:data-[pressed]:outline hc:data-[pressed]:outline-2 hc:data-[pressed]:outline-offset-1 hc:data-[pressed]:outline-foreground";var He=react.createContext(null);He.displayName="ButtonGroupContext";function Le(){return react.useContext(He)}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 Oe=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:i=false,loadingText:u="Loading...",shortcut:p,children:d,isDisabled:f,paywall:c=false,paywallRedirect:g,paywallDescription:P,onPress:w,...v},qe)=>{let ye=react.useId(),E=Le(),De=Ge(),Xe=a??E?.variant??"default",Ze=r??E?.size,Je=f??E?.isDisabled??false,Ne=E?.orientation==="vertical",we=n||Ne,Ke=De?Oe({orientation:E?.orientation??"horizontal",position:De.position}):"",j=o??Ze??"default";return process.env.NODE_ENV!=="production"&&(j==="dot"||j==="icon")&&!v["aria-label"]&&!d&&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:qe,isDisabled:Je||i||void 0,"aria-disabled":c?true:void 0,"aria-describedby":c?ye:void 0,onPress:R=>{if(c){g&&window.open(g,"_blank","noopener,noreferrer");return}w?.(R);},className:l(ae({fullWidth:we,inVerticalGroup:Ne}),e),...v,children:R=>jsxRuntime.jsxs("span",{className:l(re({variant:Xe,visualSize:j,paywall:c,fullWidth:we}),Ke,t,oe,"",H,L),"data-pressed":R.isPressed||void 0,children:[i&&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})]}),!i&&d,c&&jsxRuntime.jsx(lucideReact.Zap,{"data-testid":"zap-icon","aria-hidden":"true",className:"ml-1"}),c&&jsxRuntime.jsxs("span",{id:ye,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 ze=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:{}}),pe=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"}}),de=classVarianceAuthority.cva("text-[var(--menu-muted)]",{variants:{type:{chevron:"[&>svg]:h-4 [&>svg]:w-4",slash:"mx-2",custom:""}},defaultVariants:{type:"chevron"}}),Vt=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 St(e,t,a,r){if(e.length<=t||a+r>=e.length)return null;let o=e.slice(0,a),n=e.slice(-r),i=e.slice(a,e.length-r);return {before:o,collapsed:i,after:n}}function O({separator:e}){return e==="chevron"?jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:de({type:"chevron"}),children:jsxRuntime.jsx(lucideReact.ChevronRight,{})}):e==="slash"?jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:de({type:"slash"}),children:"/"}):jsxRuntime.jsx("li",{role:"presentation","aria-hidden":"true",className:de({type:"custom"}),children:e})}function me({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:pe({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:pe({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:pe({state:o?"disabled":"default"}),"aria-disabled":o||void 0,children:[e.icon&&jsxRuntime.jsx("span",{"aria-hidden":"true",children:e.icon}),e.label]})}function Bt({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:Vt(),"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 z=react.forwardRef(({items:e,separator:t="chevron",maxItems:a=4,itemsBeforeCollapse:r=1,itemsAfterCollapse:o=2,linkComponent:n,isDisabled:i,className:u,"aria-label":p="Breadcrumb",...d},f)=>{if(!e||e.length===0)return null;let c=St(e,a,r,o);return c?jsxRuntime.jsx("nav",{ref:f,"aria-label":p,className:l(ze(),u),...d,children:jsxRuntime.jsxs("ol",{className:$e(),children:[c.before.map(g=>jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(me,{item:g,isCurrent:false,linkComponent:n,isGroupDisabled:i})}),jsxRuntime.jsx(O,{separator:t})]},g.id)),jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(Bt,{items:c.collapsed,linkComponent:n,isGroupDisabled:i})}),jsxRuntime.jsx(O,{separator:t}),c.after.map((g,P)=>{let w=P===c.after.length-1,v=e.length-c.after.length+P;return jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(me,{item:g,isCurrent:Ye(v,e.length),linkComponent:n,isGroupDisabled:i})}),!w&&jsxRuntime.jsx(O,{separator:t})]},g.id)})]})}):jsxRuntime.jsx("nav",{ref:f,"aria-label":p,className:l(ze(),u),...d,children:jsxRuntime.jsx("ol",{className:$e(),children:e.map((g,P)=>jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx("li",{className:G(),children:jsxRuntime.jsx(me,{item:g,isCurrent:Ye(P,e.length),linkComponent:n,isGroupDisabled:i})}),P<e.length-1&&jsxRuntime.jsx(O,{separator:t})]},g.id))})})});z.displayName="Breadcrumbs";var ce=classVarianceAuthority.cva("@container/page-title flex flex-col gap-2 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"}}),ue=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"),fe=classVarianceAuthority.cva("flex min-w-0 flex-1 flex-col gap-3 @xl/page-title:basis-[18rem]"),ge=classVarianceAuthority.cva("text-[28px] font-semibold leading-none tracking-[-0.28px]",{variants:{variant:{default:"text-[var(--content-foreground)]",feature:"text-[var(--primary-foreground)]"}},defaultVariants:{variant:"default"}}),be=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"}}),ve=classVarianceAuthority.cva("flex shrink-0 flex-wrap items-center gap-2"),Te=classVarianceAuthority.cva("-mx-4 -mb-4 mt-2 [&_[role=tablist]]:flex [&_[role=tablist]]:w-full");var $=react.forwardRef(function({items:t,linkComponent:a,className:r,"data-testid":o,"aria-label":n},i){let{variant:u}=x();return jsxRuntime.jsx("div",{ref:i,className:l(xe({variant:u}),r),"data-testid":o??"page-title-breadcrumbs",children:jsxRuntime.jsx(z,{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},i){let{variant:u}=x();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(ge({variant:u}),r),d={ref:i,id:o,className:p,"data-testid":n??"page-title-heading"};return t==="h2"?jsxRuntime.jsx("h2",{...d,children:a}):t==="h3"?jsxRuntime.jsx("h3",{...d,children:a}):jsxRuntime.jsx("h1",{...d,children:a})});Y.displayName="PageTitle.Heading";var F=react.forwardRef(function({children:t,className:a,id:r,"data-testid":o},n){let{variant:i}=x();return jsxRuntime.jsx("p",{ref:n,id:r,className:l(be({variant:i}),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 x(),jsxRuntime.jsx("div",{ref:o,className:l(ve(),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 x(),jsxRuntime.jsx("div",{ref:o,className:l(Te(),a),"data-testid":r??"page-title-tabs",children:t})});U.displayName="PageTitle.Tabs";var $t={"PageTitle.Breadcrumbs":"breadcrumbs","PageTitle.Heading":"heading","PageTitle.Description":"description","PageTitle.Actions":"actions","PageTitle.Tabs":"tabs"};function Yt(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?$t[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":i,"data-testid":u="page-title"},p){let d=Yt(t),f=react.useMemo(()=>({variant:a}),[a]);return jsxRuntime.jsx(q.Provider,{value:f,children:jsxRuntime.jsxs("div",{ref:p,id:o,className:l(ce({variant:a}),d.tabs!=null&&"border-b-0",r),"aria-label":n,"aria-labelledby":i,"data-testid":u,"data-page-title-variant":a,children:[d.breadcrumbs,jsxRuntime.jsxs("div",{className:ue(),children:[jsxRuntime.jsxs("div",{className:fe(),children:[d.heading,d.description,d.other]}),d.actions]}),d.tabs]})})});We.displayName="PageTitle";var Ft=Object.assign(We,{Breadcrumbs:$,Heading:Y,Description:F,Actions:W,Tabs:U});var Ue=zod.z.enum(["default","feature"]),je=zod.z.enum(["h1","h2","h3"]),Ut=h.extend({children:zod.z.custom(),variant:Ue.optional()}),jt=h.extend({children:zod.z.custom(),as:je.optional()}),qt=h.extend({children:zod.z.custom()}),Xt=h.extend({items:zod.z.array(X),linkComponent:zod.z.custom().optional()}),Zt=h.extend({children:zod.z.custom()}),Jt=h.extend({children:zod.z.custom()});exports.PageTitle=Ft;exports.PageTitleActions=W;exports.PageTitleActionsPropsSchema=Zt;exports.PageTitleBreadcrumbs=$;exports.PageTitleBreadcrumbsPropsSchema=Xt;exports.PageTitleDescription=F;exports.PageTitleDescriptionPropsSchema=qt;exports.PageTitleHeading=Y;exports.PageTitleHeadingLevelSchema=je;exports.PageTitleHeadingPropsSchema=jt;exports.PageTitlePropsSchema=Ut;exports.PageTitleTabs=U;exports.PageTitleTabsPropsSchema=Jt;exports.PageTitleVariantSchema=Ue;exports.pageTitleActionsVariants=ve;exports.pageTitleBodyVariants=fe;exports.pageTitleBreadcrumbsVariants=xe;exports.pageTitleDescriptionVariants=be;exports.pageTitleHeadingVariants=ge;exports.pageTitleRootVariants=ce;exports.pageTitleRowVariants=ue;exports.pageTitleTabsVariants=Te;exports.usePageTitleContext=x;//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|