tembro 2.1.10 → 2.1.11

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.
@@ -1 +1 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("./date-utils.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");function s(e,t,n){if(e instanceof Date)return r.startOfMonth(e);let i=r.parseDateKey(e);if(i)return r.startOfMonth(i);let a=r.parseDateKey(t);if(a)return r.startOfMonth(a);let o=r.parseDateKey(n?.from??n?.to);return o?r.startOfMonth(o):r.startOfMonth(new Date)}function c(e,t){let n=new Date(e);return n.setDate(e.getDate()+t),n}function l(e,t){let n=new Date(t.getFullYear(),t.getMonth()+1,0).getDate();return new Date(t.getFullYear(),t.getMonth(),Math.min(e.getDate(),n))}function u(e,t){let n=r.parseDateKey(e),i=r.parseDateKey(t);if(!n||!i||t<e)return[];let a=[],o=new Date(n);for(;r.toDateKey(o)<=t;)a.push(r.toDateKey(o)),o.setDate(o.getDate()+1);return a}function d(e,t){let n=r.parseDateKey(e);return!n||!e?null:new Intl.DateTimeFormat(t,{dateStyle:`medium`}).format(n)}function f({className:e,value:f,range:p,onValueChange:m,onRangeChange:h,mode:g=`single`,month:ee,defaultMonth:te,onMonthChange:ne,min:_,max:v,disabledDates:y,locale:b=`en-US`,weekStartsOn:x=1,months:re,numberOfMonths:ie=1,showMonthHeaders:ae,showOutsideDays:S=!0,pagedNavigation:oe=!1,showTodayShortcut:C=!1,showClearShortcut:w=!1,showSelectionSummary:T=!1,labels:E,renderSelectionSummary:D,...se}){let O=f!==void 0,k=p!==void 0,[ce,A]=i.useState(f??null),[le,j]=i.useState(p??{}),[ue,de]=i.useState(()=>s(te,f,p)),M=O?f:ce,N=k?p:le,P=ee??ue,F=Math.max(re??ie,1),fe=ae??F>1,I=oe?F:1,L=r.toDateKey(new Date),R=i.useMemo(()=>new Set(y??[]),[y]),pe=i.useMemo(()=>r.getWeekdayLabels(b,x),[b,x]),z=i.useRef(new Map),[B,V]=i.useState(()=>f??p?.from??L),[H,U]=i.useState(null),W=i.useMemo(()=>Array.from({length:F},(e,t)=>r.addMonths(P,t)),[P,F]),G=i.useMemo(()=>W.map(e=>({month:e,days:r.getMonthDays(e,x)})),[W,x]),K=i.useMemo(()=>G.flatMap(e=>e.days),[G]),q=i.useCallback(e=>{if(R.has(e))return`disabled`;if(r.isBeforeDate(e,_))return`min`;if(r.isAfterDate(e,v))return`max`},[R,v,_]),J=i.useCallback(e=>!!q(e),[q]),Y=i.useMemo(()=>K.map(r.toDateKey).filter(e=>!J(e)),[K,J]),me=i.useMemo(()=>{let e=f??p?.from??L,t=N?.from??void 0,n=M??void 0;return Y.includes(B)?B:Y.includes(n??t??e)?n??t??e:Y[0]},[N?.from,M,B,p?.from,L,f,Y]);i.useEffect(()=>{O&&A(f??null)},[O,f]),i.useEffect(()=>{k&&p&&j(p)},[k,p]),i.useEffect(()=>{B&&z.current.get(B)?.focus()},[B]),i.useEffect(()=>{g!==`range`&&U(null)},[g]);let X=e=>{let t=r.startOfMonth(e);de(t),ne?.(t)},Z=(e,t=1)=>{let n=e,i=r.toDateKey(n),a=0;for(;J(i)&&a<370;)n=c(n,t),i=r.toDateKey(n),a+=1;V(i),W.some(e=>r.isSameMonth(n,e))||X(r.startOfMonth(n))},Q=e=>{if(J(e))return;if(g===`single`){O||A(e),m?.(e);return}let t=N?.from??null,n=N?.to??null;if(!t||t&&n||e<t){let t={from:e,to:null};k||j(t),h?.(t);return}if(u(t,e).some(e=>J(e))){let t={from:e,to:null};k||j(t),h?.(t);return}let r={from:t,to:e};k||j(r),h?.(r)},$=g===`range`&&N?.from&&!N.to&&H&&H>=N.from&&!u(N.from,H).some(e=>J(e))?{from:N.from,to:H}:null,he=i.useMemo(()=>{if(!T&&!D)return null;if(D)return D({mode:g,value:M,range:N,locale:b});if(g===`range`){let e=d(N?.from,b),t=d(N?.to,b);return e&&t?`${e} -> ${t}`:e?`${e} -> ...`:`No range selected`}return d(M,b)??`No date selected`},[N,M,b,g,D,T]),ge=()=>{if(g===`single`){O||A(null),m?.(``);return}let e={from:null,to:null};k||j(e),h?.(e)},_e=()=>{let e=new Date,t=r.toDateKey(e);X(e),V(t),J(t)||Q(t)},ve=(e,t)=>{let n=((G.find(e=>r.isSameMonth(t,e.month))?.days.findIndex(e=>r.toDateKey(e)===r.toDateKey(t))??0)+7)%7;switch(e.key){case`ArrowRight`:e.preventDefault(),Z(c(t,1),1);break;case`ArrowLeft`:e.preventDefault(),Z(c(t,-1),-1);break;case`ArrowDown`:e.preventDefault(),Z(c(t,7),7);break;case`ArrowUp`:e.preventDefault(),Z(c(t,-7),-7);break;case`Home`:e.preventDefault(),Z(c(t,-n),-1);break;case`End`:e.preventDefault(),Z(c(t,6-n),1);break;case`PageUp`:e.preventDefault(),Z(l(t,r.addMonths(t,-1)),-1);break;case`PageDown`:e.preventDefault(),Z(l(t,r.addMonths(t,1)),1);break}};return(0,o.jsxs)(`div`,{"data-slot":`calendar`,"data-months":F,className:t.cn(`w-fit rounded-[var(--aui-card-radius,var(--radius-lg))] border border-[color:var(--aui-card-border,var(--border))] bg-popover p-3 text-popover-foreground shadow-[var(--aui-control-panel-shadow,0_18px_40px_rgba(15,23,42,0.14))]`,e),...se,children:[(0,o.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,o.jsx)(n.Button,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-[var(--radius-md)] border-border/70 bg-background text-foreground shadow-none hover:border-border hover:bg-accent hover:text-accent-foreground`,"aria-label":E?.previousMonth??`Previous month`,onClick:()=>X(r.addMonths(P,-I)),children:(0,o.jsx)(a.ChevronLeftIcon,{})}),(0,o.jsxs)(`div`,{className:`flex flex-1 flex-col items-center text-center`,children:[(0,o.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-[0.24em] text-muted-foreground/90`,children:`Calendar`}),(0,o.jsx)(`div`,{className:`text-base font-semibold capitalize tracking-tight text-foreground`,children:r.getMonthLabel(P,b)})]}),(0,o.jsx)(n.Button,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-[var(--radius-md)] border-border/70 bg-background text-foreground shadow-none hover:border-border hover:bg-accent hover:text-accent-foreground`,"aria-label":E?.nextMonth??`Next month`,onClick:()=>X(r.addMonths(P,I)),children:(0,o.jsx)(a.ChevronRightIcon,{})})]}),(0,o.jsx)(`div`,{className:t.cn(`grid gap-3`,F>1&&`sm:grid-cols-2`),style:F>2?{gridTemplateColumns:`repeat(${F}, minmax(0, 1fr))`}:void 0,children:G.map(({month:e,days:n})=>(0,o.jsxs)(`div`,{className:`min-w-[16.5rem] rounded-[var(--radius-md)] bg-transparent p-1`,children:[fe&&(0,o.jsx)(`div`,{className:`mb-2 text-center text-sm font-semibold capitalize tracking-tight text-foreground`,children:r.getMonthLabel(e,b)}),(0,o.jsx)(`div`,{className:`grid grid-cols-7 gap-1 text-center text-[0.68rem] font-semibold uppercase tracking-[0.18em] text-muted-foreground/90`,children:pe.map(t=>(0,o.jsx)(`div`,{className:`py-1`,children:t},`${r.toDateKey(e)}-${t}`))}),(0,o.jsx)(`div`,{className:`mt-1.5 grid grid-cols-7 gap-1`,children:n.map(n=>{let i=r.toDateKey(n),a=!r.isSameMonth(n,e),s=g===`single`?M===i:i===N?.from||i===N?.to,c=g===`range`&&r.isWithinRange(i,N?.from,N?.to),l=!c&&g===`range`&&r.isWithinRange(i,$?.from,$?.to),u=g===`range`&&i===N?.from,d=g===`range`&&i===N?.to,f=c&&!u&&!d,p=q(i),m=!!p,h=p?E?.disabledDate?.(i,p):void 0;return(0,o.jsx)(`button`,{ref:e=>{e?z.current.set(i,e):z.current.delete(i)},type:`button`,disabled:m,"aria-label":h??E?.selectDate?.(i)??i,"aria-current":i===L?`date`:void 0,"aria-selected":s||c||l||void 0,tabIndex:i===me?0:-1,title:h,"data-selected":s||void 0,"data-range-start":u||void 0,"data-range-end":d||void 0,"data-range-middle":f||void 0,"data-today":i===L||void 0,"data-outside":a||void 0,"data-in-range":c||void 0,"data-in-preview-range":l||void 0,"data-disabled-reason":p,className:t.cn(`flex h-9 items-center justify-center rounded-[var(--radius-sm)] border border-transparent text-sm font-medium outline-none transition-[background-color,color,border-color,box-shadow,transform] hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-30`,a&&S?`text-muted-foreground/34`:`text-foreground`,a&&!S&&`pointer-events-none opacity-0`,i===L&&`border-border/70 bg-muted/60 text-foreground`,c&&`bg-primary/10 text-foreground`,l&&`bg-primary/6 text-foreground`,s&&`border-primary bg-primary text-primary-foreground shadow-[0_10px_22px_color-mix(in_oklch,var(--primary),transparent_78%)] hover:bg-primary hover:text-primary-foreground`),onFocus:()=>V(i),onMouseEnter:()=>U(i),onMouseLeave:()=>U(null),onKeyDown:e=>ve(e,n),onClick:()=>Q(i),children:n.getDate()},i)})})]},r.toDateKey(e)))}),C||w||T||D?(0,o.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center justify-between gap-2 border-t border-[color:var(--aui-card-border,var(--border))] pt-3`,children:[(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:he}),(0,o.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[w?(0,o.jsx)(n.Button,{type:`button`,size:`sm`,variant:`ghost`,onClick:ge,children:E?.clear??`Clear`}):null,C?(0,o.jsx)(n.Button,{type:`button`,size:`sm`,variant:`outline`,onClick:_e,children:E?.today??`Today`}):null]})]}):null]})}exports.Calendar=f;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("./date-utils.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");function s(e,t,n){if(e instanceof Date)return r.startOfMonth(e);let i=r.parseDateKey(e);if(i)return r.startOfMonth(i);let a=r.parseDateKey(t);if(a)return r.startOfMonth(a);let o=r.parseDateKey(n?.from??n?.to);return o?r.startOfMonth(o):r.startOfMonth(new Date)}function c(e,t){let n=new Date(e);return n.setDate(e.getDate()+t),n}function l(e,t){let n=new Date(t.getFullYear(),t.getMonth()+1,0).getDate();return new Date(t.getFullYear(),t.getMonth(),Math.min(e.getDate(),n))}function u(e,t){let n=r.parseDateKey(e),i=r.parseDateKey(t);if(!n||!i||t<e)return[];let a=[],o=new Date(n);for(;r.toDateKey(o)<=t;)a.push(r.toDateKey(o)),o.setDate(o.getDate()+1);return a}function d(e,t){let n=r.parseDateKey(e);return!n||!e?null:new Intl.DateTimeFormat(t,{dateStyle:`medium`}).format(n)}function f({className:e,value:f,range:p,onValueChange:m,onRangeChange:h,mode:g=`single`,month:ee,defaultMonth:te,onMonthChange:ne,min:_,max:v,disabledDates:y,locale:b=`en-US`,weekStartsOn:x=1,months:re,numberOfMonths:ie=1,showMonthHeaders:ae,showOutsideDays:S=!0,pagedNavigation:oe=!1,showTodayShortcut:C=!1,showClearShortcut:w=!1,showSelectionSummary:T=!1,labels:E,renderSelectionSummary:D,...se}){let O=f!==void 0,k=p!==void 0,[ce,A]=i.useState(f??null),[le,j]=i.useState(p??{}),[ue,de]=i.useState(()=>s(te,f,p)),M=O?f:ce,N=k?p:le,P=ee??ue,F=Math.max(re??ie,1),fe=ae??F>1,I=oe?F:1,L=r.toDateKey(new Date),R=i.useMemo(()=>new Set(y??[]),[y]),pe=i.useMemo(()=>r.getWeekdayLabels(b,x),[b,x]),z=i.useRef(new Map),[B,V]=i.useState(()=>f??p?.from??L),[H,U]=i.useState(null),W=i.useMemo(()=>Array.from({length:F},(e,t)=>r.addMonths(P,t)),[P,F]),G=i.useMemo(()=>W.map(e=>({month:e,days:r.getMonthDays(e,x)})),[W,x]),K=i.useMemo(()=>G.flatMap(e=>e.days),[G]),q=i.useCallback(e=>{if(R.has(e))return`disabled`;if(r.isBeforeDate(e,_))return`min`;if(r.isAfterDate(e,v))return`max`},[R,v,_]),J=i.useCallback(e=>!!q(e),[q]),Y=i.useMemo(()=>K.map(r.toDateKey).filter(e=>!J(e)),[K,J]),me=i.useMemo(()=>{let e=f??p?.from??L,t=N?.from??void 0,n=M??void 0;return Y.includes(B)?B:Y.includes(n??t??e)?n??t??e:Y[0]},[N?.from,M,B,p?.from,L,f,Y]);i.useEffect(()=>{O&&A(f??null)},[O,f]),i.useEffect(()=>{k&&p&&j(p)},[k,p]),i.useEffect(()=>{B&&z.current.get(B)?.focus()},[B]),i.useEffect(()=>{g!==`range`&&U(null)},[g]);let X=e=>{let t=r.startOfMonth(e);de(t),ne?.(t)},Z=(e,t=1)=>{let n=e,i=r.toDateKey(n),a=0;for(;J(i)&&a<370;)n=c(n,t),i=r.toDateKey(n),a+=1;V(i),W.some(e=>r.isSameMonth(n,e))||X(r.startOfMonth(n))},Q=e=>{if(J(e))return;if(g===`single`){O||A(e),m?.(e);return}let t=N?.from??null,n=N?.to??null;if(!t||t&&n||e<t){let t={from:e,to:null};k||j(t),h?.(t);return}if(u(t,e).some(e=>J(e))){let t={from:e,to:null};k||j(t),h?.(t);return}let r={from:t,to:e};k||j(r),h?.(r)},$=g===`range`&&N?.from&&!N.to&&H&&H>=N.from&&!u(N.from,H).some(e=>J(e))?{from:N.from,to:H}:null,he=i.useMemo(()=>{if(!T&&!D)return null;if(D)return D({mode:g,value:M,range:N,locale:b});if(g===`range`){let e=d(N?.from,b),t=d(N?.to,b);return e&&t?`${e} -> ${t}`:e?`${e} -> ...`:`No range selected`}return d(M,b)??`No date selected`},[N,M,b,g,D,T]),ge=()=>{if(g===`single`){O||A(null),m?.(``);return}let e={from:null,to:null};k||j(e),h?.(e)},_e=()=>{let e=new Date,t=r.toDateKey(e);X(e),V(t),J(t)||Q(t)},ve=(e,t)=>{let n=((G.find(e=>r.isSameMonth(t,e.month))?.days.findIndex(e=>r.toDateKey(e)===r.toDateKey(t))??0)+7)%7;switch(e.key){case`ArrowRight`:e.preventDefault(),Z(c(t,1),1);break;case`ArrowLeft`:e.preventDefault(),Z(c(t,-1),-1);break;case`ArrowDown`:e.preventDefault(),Z(c(t,7),7);break;case`ArrowUp`:e.preventDefault(),Z(c(t,-7),-7);break;case`Home`:e.preventDefault(),Z(c(t,-n),-1);break;case`End`:e.preventDefault(),Z(c(t,6-n),1);break;case`PageUp`:e.preventDefault(),Z(l(t,r.addMonths(t,-1)),-1);break;case`PageDown`:e.preventDefault(),Z(l(t,r.addMonths(t,1)),1);break}};return(0,o.jsxs)(`div`,{"data-slot":`calendar`,"data-months":F,className:t.cn(`w-fit rounded-[var(--aui-card-radius,var(--radius-lg))] border border-[color:var(--aui-card-border,var(--border))] bg-popover p-3 text-popover-foreground shadow-[var(--aui-control-panel-shadow,0_18px_40px_rgba(15,23,42,0.14))]`,e),...se,children:[(0,o.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,o.jsx)(n.Button,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-[var(--radius-md)] border-border/70 bg-background text-foreground shadow-none hover:border-border hover:bg-accent hover:text-accent-foreground`,"aria-label":E?.previousMonth??`Previous month`,onClick:()=>X(r.addMonths(P,-I)),children:(0,o.jsx)(a.ChevronLeftIcon,{})}),(0,o.jsxs)(`div`,{className:`flex flex-1 flex-col items-center text-center`,children:[(0,o.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-[0.24em] text-muted-foreground/90`,children:`Calendar`}),(0,o.jsx)(`div`,{className:`text-base font-semibold capitalize tracking-tight text-foreground`,children:r.getMonthLabel(P,b)})]}),(0,o.jsx)(n.Button,{type:`button`,variant:`outline`,size:`icon-sm`,className:`rounded-[var(--radius-md)] border-border/70 bg-background text-foreground shadow-none hover:border-border hover:bg-accent hover:text-accent-foreground`,"aria-label":E?.nextMonth??`Next month`,onClick:()=>X(r.addMonths(P,I)),children:(0,o.jsx)(a.ChevronRightIcon,{})})]}),(0,o.jsx)(`div`,{className:t.cn(`grid gap-3`,F>1&&`sm:grid-cols-2`),style:F>2?{gridTemplateColumns:`repeat(${F}, minmax(0, 1fr))`}:void 0,children:G.map(({month:e,days:n})=>(0,o.jsxs)(`div`,{className:`min-w-[16.5rem] rounded-[var(--radius-md)] bg-transparent p-1`,children:[fe&&(0,o.jsx)(`div`,{className:`mb-2 text-center text-sm font-semibold capitalize tracking-tight text-foreground`,children:r.getMonthLabel(e,b)}),(0,o.jsx)(`div`,{className:`grid grid-cols-7 gap-1 text-center text-[0.68rem] font-semibold uppercase tracking-[0.18em] text-muted-foreground/90`,children:pe.map(t=>(0,o.jsx)(`div`,{className:`py-1`,children:t},`${r.toDateKey(e)}-${t}`))}),(0,o.jsx)(`div`,{className:`mt-1.5 grid grid-cols-7 gap-1`,children:n.map(n=>{let i=r.toDateKey(n),a=!r.isSameMonth(n,e),s=g===`single`?M===i:i===N?.from||i===N?.to,c=g===`range`&&r.isWithinRange(i,N?.from,N?.to),l=!c&&g===`range`&&r.isWithinRange(i,$?.from,$?.to),u=g===`range`&&i===N?.from,d=g===`range`&&i===N?.to,f=c&&!u&&!d,p=q(i),m=!!p,h=p?E?.disabledDate?.(i,p):void 0;return(0,o.jsx)(`button`,{ref:e=>{e?z.current.set(i,e):z.current.delete(i)},type:`button`,disabled:m,"aria-label":h??E?.selectDate?.(i)??i,"aria-current":i===L?`date`:void 0,tabIndex:i===me?0:-1,title:h,"data-selected":s||void 0,"data-range-start":u||void 0,"data-range-end":d||void 0,"data-range-middle":f||void 0,"data-today":i===L||void 0,"data-outside":a||void 0,"data-in-range":c||void 0,"data-in-preview-range":l||void 0,"data-disabled-reason":p,className:t.cn(`flex h-9 items-center justify-center rounded-[var(--radius-sm)] border border-transparent text-sm font-medium outline-none transition-[background-color,color,border-color,box-shadow,transform] hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-30`,a&&S?`text-muted-foreground/34`:`text-foreground`,a&&!S&&`pointer-events-none opacity-0`,i===L&&`border-border/70 bg-muted/60 text-foreground`,c&&`bg-primary/10 text-foreground`,l&&`bg-primary/6 text-foreground`,s&&`border-primary bg-primary text-primary-foreground shadow-[0_10px_22px_color-mix(in_oklch,var(--primary),transparent_78%)] hover:bg-primary hover:text-primary-foreground`),onFocus:()=>V(i),onMouseEnter:()=>U(i),onMouseLeave:()=>U(null),onKeyDown:e=>ve(e,n),onClick:()=>Q(i),children:n.getDate()},i)})})]},r.toDateKey(e)))}),C||w||T||D?(0,o.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center justify-between gap-2 border-t border-[color:var(--aui-card-border,var(--border))] pt-3`,children:[(0,o.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:he}),(0,o.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[w?(0,o.jsx)(n.Button,{type:`button`,size:`sm`,variant:`ghost`,onClick:ge,children:E?.clear??`Clear`}):null,C?(0,o.jsx)(n.Button,{type:`button`,size:`sm`,variant:`outline`,onClick:_e,children:E?.today??`Today`}):null]})]}):null]})}exports.Calendar=f;
@@ -1,278 +1,277 @@
1
1
  "use client";
2
2
  import { cn as e } from "../../lib/utils.js";
3
3
  import { Button as t } from "../ui/button/index.js";
4
- import { addMonths as n, getMonthDays as r, getMonthLabel as i, getWeekdayLabels as a, isAfterDate as o, isBeforeDate as s, isSameMonth as c, isWithinRange as ee, parseDateKey as l, startOfMonth as u, toDateKey as d } from "./date-utils.js";
5
- import * as f from "react";
6
- import { ChevronLeftIcon as p, ChevronRightIcon as te } from "lucide-react";
7
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
4
+ import { addMonths as n, getMonthDays as r, getMonthLabel as i, getWeekdayLabels as a, isAfterDate as o, isBeforeDate as s, isSameMonth as c, isWithinRange as l, parseDateKey as u, startOfMonth as d, toDateKey as f } from "./date-utils.js";
5
+ import * as p from "react";
6
+ import { ChevronLeftIcon as m, ChevronRightIcon as h } from "lucide-react";
7
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
8
8
  //#region src/components/calendar/calendar.tsx
9
- function ne(e, t, n) {
10
- return e instanceof Date ? u(e) : u(l(e) || l(t) || l(n?.from ?? n?.to) || /* @__PURE__ */ new Date());
9
+ function ee(e, t, n) {
10
+ return e instanceof Date ? d(e) : d(u(e) || u(t) || u(n?.from ?? n?.to) || /* @__PURE__ */ new Date());
11
11
  }
12
- function g(e, t) {
12
+ function v(e, t) {
13
13
  let n = new Date(e);
14
14
  return n.setDate(e.getDate() + t), n;
15
15
  }
16
- function _(e, t) {
16
+ function y(e, t) {
17
17
  let n = new Date(t.getFullYear(), t.getMonth() + 1, 0).getDate();
18
18
  return new Date(t.getFullYear(), t.getMonth(), Math.min(e.getDate(), n));
19
19
  }
20
- function re(e, t) {
21
- let n = l(e), r = l(t);
20
+ function b(e, t) {
21
+ let n = u(e), r = u(t);
22
22
  if (!n || !r || t < e) return [];
23
23
  let i = [], a = new Date(n);
24
- for (; d(a) <= t;) i.push(d(a)), a.setDate(a.getDate() + 1);
24
+ for (; f(a) <= t;) i.push(f(a)), a.setDate(a.getDate() + 1);
25
25
  return i;
26
26
  }
27
- function v(e, t) {
28
- let n = l(e);
27
+ function x(e, t) {
28
+ let n = u(e);
29
29
  return !n || !e ? null : new Intl.DateTimeFormat(t, { dateStyle: "medium" }).format(n);
30
30
  }
31
- function y({ className: l, value: y, range: b, onValueChange: ie, onRangeChange: x, mode: S = "single", month: ae, defaultMonth: oe, onMonthChange: se, min: C, max: w, disabledDates: T, locale: E = "en-US", weekStartsOn: D = 1, months: ce, numberOfMonths: le = 1, showMonthHeaders: ue, showOutsideDays: de = !0, pagedNavigation: fe = !1, showTodayShortcut: O = !1, showClearShortcut: k = !1, showSelectionSummary: A = !1, labels: j, renderSelectionSummary: M, ...pe }) {
32
- let N = y !== void 0, P = b !== void 0, [me, F] = f.useState(y ?? null), [he, I] = f.useState(b ?? {}), [ge, _e] = f.useState(() => ne(oe, y, b)), L = N ? y : me, R = P ? b : he, z = ae ?? ge, B = Math.max(ce ?? le, 1), ve = ue ?? B > 1, ye = fe ? B : 1, V = d(/* @__PURE__ */ new Date()), be = f.useMemo(() => new Set(T ?? []), [T]), xe = f.useMemo(() => a(E, D), [E, D]), H = f.useRef(/* @__PURE__ */ new Map()), [U, W] = f.useState(() => y ?? b?.from ?? V), [G, K] = f.useState(null), q = f.useMemo(() => Array.from({ length: B }, (e, t) => n(z, t)), [z, B]), J = f.useMemo(() => q.map((e) => ({
31
+ function S({ className: u, value: S, range: C, onValueChange: te, onRangeChange: w, mode: T = "single", month: ne, defaultMonth: re, onMonthChange: ie, min: ae, max: oe, disabledDates: se, locale: E = "en-US", weekStartsOn: D = 1, months: ce, numberOfMonths: le = 1, showMonthHeaders: ue, showOutsideDays: de = !0, pagedNavigation: fe = !1, showTodayShortcut: pe = !1, showClearShortcut: me = !1, showSelectionSummary: O = !1, labels: k, renderSelectionSummary: A, ...he }) {
32
+ let j = S !== void 0, M = C !== void 0, [ge, N] = p.useState(S ?? null), [_e, P] = p.useState(C ?? {}), [ve, ye] = p.useState(() => ee(re, S, C)), F = j ? S : ge, I = M ? C : _e, L = ne ?? ve, R = Math.max(ce ?? le, 1), be = ue ?? R > 1, z = fe ? R : 1, B = f(/* @__PURE__ */ new Date()), xe = p.useMemo(() => new Set(se ?? []), [se]), Se = p.useMemo(() => a(E, D), [E, D]), V = p.useRef(/* @__PURE__ */ new Map()), [H, U] = p.useState(() => S ?? C?.from ?? B), [W, G] = p.useState(null), K = p.useMemo(() => Array.from({ length: R }, (e, t) => n(L, t)), [L, R]), q = p.useMemo(() => K.map((e) => ({
33
33
  month: e,
34
34
  days: r(e, D)
35
- })), [q, D]), Se = f.useMemo(() => J.flatMap((e) => e.days), [J]), Y = f.useCallback((e) => {
36
- if (be.has(e)) return "disabled";
37
- if (s(e, C)) return "min";
38
- if (o(e, w)) return "max";
35
+ })), [K, D]), Ce = p.useMemo(() => q.flatMap((e) => e.days), [q]), J = p.useCallback((e) => {
36
+ if (xe.has(e)) return "disabled";
37
+ if (s(e, ae)) return "min";
38
+ if (o(e, oe)) return "max";
39
39
  }, [
40
- be,
41
- w,
42
- C
43
- ]), X = f.useCallback((e) => !!Y(e), [Y]), Z = f.useMemo(() => Se.map(d).filter((e) => !X(e)), [Se, X]), Ce = f.useMemo(() => {
44
- let e = y ?? b?.from ?? V, t = R?.from ?? void 0, n = L ?? void 0;
45
- return Z.includes(U) ? U : Z.includes(n ?? t ?? e) ? n ?? t ?? e : Z[0];
40
+ xe,
41
+ oe,
42
+ ae
43
+ ]), Y = p.useCallback((e) => !!J(e), [J]), X = p.useMemo(() => Ce.map(f).filter((e) => !Y(e)), [Ce, Y]), we = p.useMemo(() => {
44
+ let e = S ?? C?.from ?? B, t = I?.from ?? void 0, n = F ?? void 0;
45
+ return X.includes(H) ? H : X.includes(n ?? t ?? e) ? n ?? t ?? e : X[0];
46
46
  }, [
47
- R?.from,
48
- L,
49
- U,
50
- b?.from,
51
- V,
52
- y,
53
- Z
47
+ I?.from,
48
+ F,
49
+ H,
50
+ C?.from,
51
+ B,
52
+ S,
53
+ X
54
54
  ]);
55
- f.useEffect(() => {
56
- N && F(y ?? null);
57
- }, [N, y]), f.useEffect(() => {
58
- P && b && I(b);
59
- }, [P, b]), f.useEffect(() => {
60
- U && H.current.get(U)?.focus();
61
- }, [U]), f.useEffect(() => {
62
- S !== "range" && K(null);
63
- }, [S]);
64
- let Q = (e) => {
65
- let t = u(e);
66
- _e(t), se?.(t);
67
- }, $ = (e, t = 1) => {
68
- let n = e, r = d(n), i = 0;
69
- for (; X(r) && i < 370;) n = g(n, t), r = d(n), i += 1;
70
- W(r), q.some((e) => c(n, e)) || Q(u(n));
71
- }, we = (e) => {
72
- if (X(e)) return;
73
- if (S === "single") {
74
- N || F(e), ie?.(e);
55
+ p.useEffect(() => {
56
+ j && N(S ?? null);
57
+ }, [j, S]), p.useEffect(() => {
58
+ M && C && P(C);
59
+ }, [M, C]), p.useEffect(() => {
60
+ H && V.current.get(H)?.focus();
61
+ }, [H]), p.useEffect(() => {
62
+ T !== "range" && G(null);
63
+ }, [T]);
64
+ let Z = (e) => {
65
+ let t = d(e);
66
+ ye(t), ie?.(t);
67
+ }, Q = (e, t = 1) => {
68
+ let n = e, r = f(n), i = 0;
69
+ for (; Y(r) && i < 370;) n = v(n, t), r = f(n), i += 1;
70
+ U(r), K.some((e) => c(n, e)) || Z(d(n));
71
+ }, Te = (e) => {
72
+ if (Y(e)) return;
73
+ if (T === "single") {
74
+ j || N(e), te?.(e);
75
75
  return;
76
76
  }
77
- let t = R?.from ?? null, n = R?.to ?? null;
77
+ let t = I?.from ?? null, n = I?.to ?? null;
78
78
  if (!t || t && n || e < t) {
79
79
  let t = {
80
80
  from: e,
81
81
  to: null
82
82
  };
83
- P || I(t), x?.(t);
83
+ M || P(t), w?.(t);
84
84
  return;
85
85
  }
86
- if (re(t, e).some((e) => X(e))) {
86
+ if (b(t, e).some((e) => Y(e))) {
87
87
  let t = {
88
88
  from: e,
89
89
  to: null
90
90
  };
91
- P || I(t), x?.(t);
91
+ M || P(t), w?.(t);
92
92
  return;
93
93
  }
94
94
  let r = {
95
95
  from: t,
96
96
  to: e
97
97
  };
98
- P || I(r), x?.(r);
99
- }, Te = S === "range" && R?.from && !R.to && G && G >= R.from && !re(R.from, G).some((e) => X(e)) ? {
100
- from: R.from,
101
- to: G
102
- } : null, Ee = f.useMemo(() => {
103
- if (!A && !M) return null;
104
- if (M) return M({
105
- mode: S,
106
- value: L,
107
- range: R,
98
+ M || P(r), w?.(r);
99
+ }, $ = T === "range" && I?.from && !I.to && W && W >= I.from && !b(I.from, W).some((e) => Y(e)) ? {
100
+ from: I.from,
101
+ to: W
102
+ } : null, Ee = p.useMemo(() => {
103
+ if (!O && !A) return null;
104
+ if (A) return A({
105
+ mode: T,
106
+ value: F,
107
+ range: I,
108
108
  locale: E
109
109
  });
110
- if (S === "range") {
111
- let e = v(R?.from, E), t = v(R?.to, E);
110
+ if (T === "range") {
111
+ let e = x(I?.from, E), t = x(I?.to, E);
112
112
  return e && t ? `${e} -> ${t}` : e ? `${e} -> ...` : "No range selected";
113
113
  }
114
- return v(L, E) ?? "No date selected";
114
+ return x(F, E) ?? "No date selected";
115
115
  }, [
116
- R,
117
- L,
116
+ I,
117
+ F,
118
118
  E,
119
- S,
120
- M,
121
- A
119
+ T,
120
+ A,
121
+ O
122
122
  ]), De = () => {
123
- if (S === "single") {
124
- N || F(null), ie?.("");
123
+ if (T === "single") {
124
+ j || N(null), te?.("");
125
125
  return;
126
126
  }
127
127
  let e = {
128
128
  from: null,
129
129
  to: null
130
130
  };
131
- P || I(e), x?.(e);
131
+ M || P(e), w?.(e);
132
132
  }, Oe = () => {
133
- let e = /* @__PURE__ */ new Date(), t = d(e);
134
- Q(e), W(t), X(t) || we(t);
133
+ let e = /* @__PURE__ */ new Date(), t = f(e);
134
+ Z(e), U(t), Y(t) || Te(t);
135
135
  }, ke = (e, t) => {
136
- let r = ((J.find((e) => c(t, e.month))?.days.findIndex((e) => d(e) === d(t)) ?? 0) + 7) % 7;
136
+ let r = ((q.find((e) => c(t, e.month))?.days.findIndex((e) => f(e) === f(t)) ?? 0) + 7) % 7;
137
137
  switch (e.key) {
138
138
  case "ArrowRight":
139
- e.preventDefault(), $(g(t, 1), 1);
139
+ e.preventDefault(), Q(v(t, 1), 1);
140
140
  break;
141
141
  case "ArrowLeft":
142
- e.preventDefault(), $(g(t, -1), -1);
142
+ e.preventDefault(), Q(v(t, -1), -1);
143
143
  break;
144
144
  case "ArrowDown":
145
- e.preventDefault(), $(g(t, 7), 7);
145
+ e.preventDefault(), Q(v(t, 7), 7);
146
146
  break;
147
147
  case "ArrowUp":
148
- e.preventDefault(), $(g(t, -7), -7);
148
+ e.preventDefault(), Q(v(t, -7), -7);
149
149
  break;
150
150
  case "Home":
151
- e.preventDefault(), $(g(t, -r), -1);
151
+ e.preventDefault(), Q(v(t, -r), -1);
152
152
  break;
153
153
  case "End":
154
- e.preventDefault(), $(g(t, 6 - r), 1);
154
+ e.preventDefault(), Q(v(t, 6 - r), 1);
155
155
  break;
156
156
  case "PageUp":
157
- e.preventDefault(), $(_(t, n(t, -1)), -1);
157
+ e.preventDefault(), Q(y(t, n(t, -1)), -1);
158
158
  break;
159
159
  case "PageDown":
160
- e.preventDefault(), $(_(t, n(t, 1)), 1);
160
+ e.preventDefault(), Q(y(t, n(t, 1)), 1);
161
161
  break;
162
162
  }
163
163
  };
164
- return /* @__PURE__ */ h("div", {
164
+ return /* @__PURE__ */ _("div", {
165
165
  "data-slot": "calendar",
166
- "data-months": B,
167
- className: e("w-fit rounded-[var(--aui-card-radius,var(--radius-lg))] border border-[color:var(--aui-card-border,var(--border))] bg-popover p-3 text-popover-foreground shadow-[var(--aui-control-panel-shadow,0_18px_40px_rgba(15,23,42,0.14))]", l),
168
- ...pe,
166
+ "data-months": R,
167
+ className: e("w-fit rounded-[var(--aui-card-radius,var(--radius-lg))] border border-[color:var(--aui-card-border,var(--border))] bg-popover p-3 text-popover-foreground shadow-[var(--aui-control-panel-shadow,0_18px_40px_rgba(15,23,42,0.14))]", u),
168
+ ...he,
169
169
  children: [
170
- /* @__PURE__ */ h("div", {
170
+ /* @__PURE__ */ _("div", {
171
171
  className: "mb-3 flex items-center justify-between gap-3",
172
172
  children: [
173
- /* @__PURE__ */ m(t, {
173
+ /* @__PURE__ */ g(t, {
174
174
  type: "button",
175
175
  variant: "outline",
176
176
  size: "icon-sm",
177
177
  className: "rounded-[var(--radius-md)] border-border/70 bg-background text-foreground shadow-none hover:border-border hover:bg-accent hover:text-accent-foreground",
178
- "aria-label": j?.previousMonth ?? "Previous month",
179
- onClick: () => Q(n(z, -ye)),
180
- children: /* @__PURE__ */ m(p, {})
178
+ "aria-label": k?.previousMonth ?? "Previous month",
179
+ onClick: () => Z(n(L, -z)),
180
+ children: /* @__PURE__ */ g(m, {})
181
181
  }),
182
- /* @__PURE__ */ h("div", {
182
+ /* @__PURE__ */ _("div", {
183
183
  className: "flex flex-1 flex-col items-center text-center",
184
- children: [/* @__PURE__ */ m("span", {
184
+ children: [/* @__PURE__ */ g("span", {
185
185
  className: "text-[10px] font-semibold uppercase tracking-[0.24em] text-muted-foreground/90",
186
186
  children: "Calendar"
187
- }), /* @__PURE__ */ m("div", {
187
+ }), /* @__PURE__ */ g("div", {
188
188
  className: "text-base font-semibold capitalize tracking-tight text-foreground",
189
- children: i(z, E)
189
+ children: i(L, E)
190
190
  })]
191
191
  }),
192
- /* @__PURE__ */ m(t, {
192
+ /* @__PURE__ */ g(t, {
193
193
  type: "button",
194
194
  variant: "outline",
195
195
  size: "icon-sm",
196
196
  className: "rounded-[var(--radius-md)] border-border/70 bg-background text-foreground shadow-none hover:border-border hover:bg-accent hover:text-accent-foreground",
197
- "aria-label": j?.nextMonth ?? "Next month",
198
- onClick: () => Q(n(z, ye)),
199
- children: /* @__PURE__ */ m(te, {})
197
+ "aria-label": k?.nextMonth ?? "Next month",
198
+ onClick: () => Z(n(L, z)),
199
+ children: /* @__PURE__ */ g(h, {})
200
200
  })
201
201
  ]
202
202
  }),
203
- /* @__PURE__ */ m("div", {
204
- className: e("grid gap-3", B > 1 && "sm:grid-cols-2"),
205
- style: B > 2 ? { gridTemplateColumns: `repeat(${B}, minmax(0, 1fr))` } : void 0,
206
- children: J.map(({ month: t, days: n }) => /* @__PURE__ */ h("div", {
203
+ /* @__PURE__ */ g("div", {
204
+ className: e("grid gap-3", R > 1 && "sm:grid-cols-2"),
205
+ style: R > 2 ? { gridTemplateColumns: `repeat(${R}, minmax(0, 1fr))` } : void 0,
206
+ children: q.map(({ month: t, days: n }) => /* @__PURE__ */ _("div", {
207
207
  className: "min-w-[16.5rem] rounded-[var(--radius-md)] bg-transparent p-1",
208
208
  children: [
209
- ve && /* @__PURE__ */ m("div", {
209
+ be && /* @__PURE__ */ g("div", {
210
210
  className: "mb-2 text-center text-sm font-semibold capitalize tracking-tight text-foreground",
211
211
  children: i(t, E)
212
212
  }),
213
- /* @__PURE__ */ m("div", {
213
+ /* @__PURE__ */ g("div", {
214
214
  className: "grid grid-cols-7 gap-1 text-center text-[0.68rem] font-semibold uppercase tracking-[0.18em] text-muted-foreground/90",
215
- children: xe.map((e) => /* @__PURE__ */ m("div", {
215
+ children: Se.map((e) => /* @__PURE__ */ g("div", {
216
216
  className: "py-1",
217
217
  children: e
218
- }, `${d(t)}-${e}`))
218
+ }, `${f(t)}-${e}`))
219
219
  }),
220
- /* @__PURE__ */ m("div", {
220
+ /* @__PURE__ */ g("div", {
221
221
  className: "mt-1.5 grid grid-cols-7 gap-1",
222
222
  children: n.map((n) => {
223
- let r = d(n), i = !c(n, t), a = S === "single" ? L === r : r === R?.from || r === R?.to, o = S === "range" && ee(r, R?.from, R?.to), s = !o && S === "range" && ee(r, Te?.from, Te?.to), l = S === "range" && r === R?.from, u = S === "range" && r === R?.to, f = o && !l && !u, p = Y(r), te = !!p, h = p ? j?.disabledDate?.(r, p) : void 0;
224
- return /* @__PURE__ */ m("button", {
223
+ let r = f(n), i = !c(n, t), a = T === "single" ? F === r : r === I?.from || r === I?.to, o = T === "range" && l(r, I?.from, I?.to), s = !o && T === "range" && l(r, $?.from, $?.to), u = T === "range" && r === I?.from, d = T === "range" && r === I?.to, p = o && !u && !d, m = J(r), h = !!m, _ = m ? k?.disabledDate?.(r, m) : void 0;
224
+ return /* @__PURE__ */ g("button", {
225
225
  ref: (e) => {
226
- e ? H.current.set(r, e) : H.current.delete(r);
226
+ e ? V.current.set(r, e) : V.current.delete(r);
227
227
  },
228
228
  type: "button",
229
- disabled: te,
230
- "aria-label": h ?? j?.selectDate?.(r) ?? r,
231
- "aria-current": r === V ? "date" : void 0,
232
- "aria-selected": a || o || s || void 0,
233
- tabIndex: r === Ce ? 0 : -1,
234
- title: h,
229
+ disabled: h,
230
+ "aria-label": _ ?? k?.selectDate?.(r) ?? r,
231
+ "aria-current": r === B ? "date" : void 0,
232
+ tabIndex: r === we ? 0 : -1,
233
+ title: _,
235
234
  "data-selected": a || void 0,
236
- "data-range-start": l || void 0,
237
- "data-range-end": u || void 0,
238
- "data-range-middle": f || void 0,
239
- "data-today": r === V || void 0,
235
+ "data-range-start": u || void 0,
236
+ "data-range-end": d || void 0,
237
+ "data-range-middle": p || void 0,
238
+ "data-today": r === B || void 0,
240
239
  "data-outside": i || void 0,
241
240
  "data-in-range": o || void 0,
242
241
  "data-in-preview-range": s || void 0,
243
- "data-disabled-reason": p,
244
- className: e("flex h-9 items-center justify-center rounded-[var(--radius-sm)] border border-transparent text-sm font-medium outline-none transition-[background-color,color,border-color,box-shadow,transform] hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-30", i && de ? "text-muted-foreground/34" : "text-foreground", i && !de && "pointer-events-none opacity-0", r === V && "border-border/70 bg-muted/60 text-foreground", o && "bg-primary/10 text-foreground", s && "bg-primary/6 text-foreground", a && "border-primary bg-primary text-primary-foreground shadow-[0_10px_22px_color-mix(in_oklch,var(--primary),transparent_78%)] hover:bg-primary hover:text-primary-foreground"),
245
- onFocus: () => W(r),
246
- onMouseEnter: () => K(r),
247
- onMouseLeave: () => K(null),
242
+ "data-disabled-reason": m,
243
+ className: e("flex h-9 items-center justify-center rounded-[var(--radius-sm)] border border-transparent text-sm font-medium outline-none transition-[background-color,color,border-color,box-shadow,transform] hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-30", i && de ? "text-muted-foreground/34" : "text-foreground", i && !de && "pointer-events-none opacity-0", r === B && "border-border/70 bg-muted/60 text-foreground", o && "bg-primary/10 text-foreground", s && "bg-primary/6 text-foreground", a && "border-primary bg-primary text-primary-foreground shadow-[0_10px_22px_color-mix(in_oklch,var(--primary),transparent_78%)] hover:bg-primary hover:text-primary-foreground"),
244
+ onFocus: () => U(r),
245
+ onMouseEnter: () => G(r),
246
+ onMouseLeave: () => G(null),
248
247
  onKeyDown: (e) => ke(e, n),
249
- onClick: () => we(r),
248
+ onClick: () => Te(r),
250
249
  children: n.getDate()
251
250
  }, r);
252
251
  })
253
252
  })
254
253
  ]
255
- }, d(t)))
254
+ }, f(t)))
256
255
  }),
257
- O || k || A || M ? /* @__PURE__ */ h("div", {
256
+ pe || me || O || A ? /* @__PURE__ */ _("div", {
258
257
  className: "mt-3 flex flex-wrap items-center justify-between gap-2 border-t border-[color:var(--aui-card-border,var(--border))] pt-3",
259
- children: [/* @__PURE__ */ m("div", {
258
+ children: [/* @__PURE__ */ g("div", {
260
259
  className: "text-xs text-muted-foreground",
261
260
  children: Ee
262
- }), /* @__PURE__ */ h("div", {
261
+ }), /* @__PURE__ */ _("div", {
263
262
  className: "flex flex-wrap gap-2",
264
- children: [k ? /* @__PURE__ */ m(t, {
263
+ children: [me ? /* @__PURE__ */ g(t, {
265
264
  type: "button",
266
265
  size: "sm",
267
266
  variant: "ghost",
268
267
  onClick: De,
269
- children: j?.clear ?? "Clear"
270
- }) : null, O ? /* @__PURE__ */ m(t, {
268
+ children: k?.clear ?? "Clear"
269
+ }) : null, pe ? /* @__PURE__ */ g(t, {
271
270
  type: "button",
272
271
  size: "sm",
273
272
  variant: "outline",
274
273
  onClick: Oe,
275
- children: j?.today ?? "Today"
274
+ children: k?.today ?? "Today"
276
275
  }) : null]
277
276
  })]
278
277
  }) : null
@@ -280,4 +279,4 @@ function y({ className: l, value: y, range: b, onValueChange: ie, onRangeChange:
280
279
  });
281
280
  }
282
281
  //#endregion
283
- export { y as Calendar };
282
+ export { S as Calendar };
@@ -1 +1 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");var i={sm:`size-3.5`,default:`size-4`,lg:`size-5`};function a({name:e,value:a,defaultValue:o,onValueChange:s,options:c,orientation:l=`vertical`,size:u=`default`,invalid:d=!1,disabled:f=!1,className:p,itemClassName:m,itemLabelClassName:h,itemDescriptionClassName:g,..._}){let v=n.useId(),y=e??v,[b,x]=n.useState(o??``),S=a!==void 0,C=S?a:b,w=n.useRef([]),T=c.filter(e=>!e.disabled&&!f),E=e=>{S||x(e),s?.(e)},D=e=>{let t=T[e];if(!t)return;let n=c.findIndex(e=>e.value===t.value);w.current[n]?.focus(),E(t.value)};return(0,r.jsx)(`div`,{role:`radiogroup`,"aria-invalid":d||void 0,"aria-disabled":f||void 0,"data-slot":`radio-group`,"data-orientation":l,"data-invalid":d||void 0,className:t.cn(`grid gap-2`,l===`horizontal`&&`sm:flex sm:flex-wrap sm:items-center`,p),onKeyDown:e=>{if(![`ArrowDown`,`ArrowRight`,`ArrowUp`,`ArrowLeft`,`Home`,`End`].includes(e.key)||T.length===0)return;e.preventDefault();let t=Math.max(0,T.findIndex(e=>e.value===C));if(e.key===`Home`){D(0);return}if(e.key===`End`){D(T.length-1);return}D((t+(e.key===`ArrowDown`||e.key===`ArrowRight`?1:-1)+T.length)%T.length)},..._,children:c.map((e,n)=>{let a=e.value===C,o=f||e.disabled;return(0,r.jsxs)(`label`,{"data-slot":`radio-group-item`,"data-checked":a||void 0,"data-disabled":o||void 0,"data-invalid":d||void 0,className:t.cn(`group flex cursor-pointer items-start gap-3 rounded-[min(var(--radius-xl),16px)] border border-border/80 bg-background/88 px-3 py-2.5 text-sm transition hover:border-ring/35 hover:bg-accent/60 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/30 data-[checked=true]:border-primary/35 data-[checked=true]:bg-primary/8 data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-55 data-[invalid=true]:border-destructive/70 data-[invalid=true]:ring-3 data-[invalid=true]:ring-destructive/15`,m),children:[(0,r.jsx)(`input`,{ref:e=>{w.current[n]=e},type:`radio`,name:y,value:e.value,checked:a,disabled:o,"aria-invalid":d||void 0,className:`sr-only`,onChange:()=>E(e.value)}),(0,r.jsx)(`span`,{"aria-hidden":`true`,className:t.cn(`mt-0.5 inline-flex shrink-0 items-center justify-center rounded-full border border-input bg-background shadow-sm transition group-data-[checked=true]:border-primary group-data-[checked=true]:bg-primary`,i[u]),children:(0,r.jsx)(`span`,{className:`size-1.5 rounded-full bg-primary-foreground opacity-0 transition group-data-[checked=true]:opacity-100`})}),(0,r.jsxs)(`span`,{className:`min-w-0`,children:[(0,r.jsx)(`span`,{className:t.cn(`block font-medium text-foreground`,h),children:e.label}),e.description?(0,r.jsx)(`span`,{className:t.cn(`mt-1 block text-sm leading-6 text-muted-foreground`,g),children:e.description}):null]})]},e.value)})})}exports.RadioGroup=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");var i={sm:`size-3.5`,default:`size-4`,lg:`size-5`};function a({name:e,value:a,defaultValue:o,onValueChange:s,options:c,orientation:l=`vertical`,size:u=`default`,invalid:d=!1,disabled:f=!1,className:p,itemClassName:m,itemLabelClassName:h,itemDescriptionClassName:g,..._}){let v=n.useId(),y=e??v,[b,x]=n.useState(o??``),S=a!==void 0,C=S?a:b,w=n.useRef([]),T=c.filter(e=>!e.disabled&&!f),E=e=>{S||x(e),s?.(e)},D=e=>{let t=T[e];if(!t)return;let n=c.findIndex(e=>e.value===t.value);w.current[n]?.focus(),E(t.value)};return(0,r.jsx)(`div`,{role:`radiogroup`,"aria-invalid":d||void 0,"aria-disabled":f||void 0,"data-slot":`radio-group`,"data-orientation":l,"data-invalid":d||void 0,className:t.cn(`grid gap-2`,l===`horizontal`&&`sm:flex sm:flex-wrap sm:items-center`,p),onKeyDown:e=>{if(![`ArrowDown`,`ArrowRight`,`ArrowUp`,`ArrowLeft`,`Home`,`End`].includes(e.key)||T.length===0)return;e.preventDefault();let t=Math.max(0,T.findIndex(e=>e.value===C));if(e.key===`Home`){D(0);return}if(e.key===`End`){D(T.length-1);return}D((t+(e.key===`ArrowDown`||e.key===`ArrowRight`?1:-1)+T.length)%T.length)},..._,children:c.map((e,n)=>{let a=e.value===C,o=f||e.disabled;return(0,r.jsxs)(`label`,{"data-slot":`radio-group-item`,"data-checked":a||void 0,"data-disabled":o||void 0,"data-invalid":d||void 0,className:t.cn(`group flex cursor-pointer items-start gap-3 rounded-[min(var(--radius-xl),16px)] border border-border/80 bg-background/88 px-3 py-2.5 text-sm transition hover:border-ring/35 hover:bg-accent/60 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/30 data-[checked=true]:border-primary/35 data-[checked=true]:bg-primary/8 data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-55 data-[invalid=true]:border-destructive/70 data-[invalid=true]:ring-3 data-[invalid=true]:ring-destructive/15`,m),children:[(0,r.jsx)(`input`,{ref:e=>{w.current[n]=e},type:`radio`,name:y,value:e.value,checked:a,disabled:o,className:`sr-only`,onChange:()=>E(e.value)}),(0,r.jsx)(`span`,{"aria-hidden":`true`,className:t.cn(`mt-0.5 inline-flex shrink-0 items-center justify-center rounded-full border border-input bg-background shadow-sm transition group-data-[checked=true]:border-primary group-data-[checked=true]:bg-primary`,i[u]),children:(0,r.jsx)(`span`,{className:`size-1.5 rounded-full bg-primary-foreground opacity-0 transition group-data-[checked=true]:opacity-100`})}),(0,r.jsxs)(`span`,{className:`min-w-0`,children:[(0,r.jsx)(`span`,{className:t.cn(`block font-medium text-foreground`,h),children:e.label}),e.description?(0,r.jsx)(`span`,{className:t.cn(`mt-1 block text-sm leading-6 text-muted-foreground`,g),children:e.description}):null]})]},e.value)})})}exports.RadioGroup=a;
@@ -65,7 +65,6 @@ function a({ name: a, value: o, defaultValue: s, onValueChange: c, options: l, o
65
65
  value: t.value,
66
66
  checked: o,
67
67
  disabled: s,
68
- "aria-invalid": f || void 0,
69
68
  className: "sr-only",
70
69
  onChange: () => D(t.value)
71
70
  }),
@@ -1 +1 @@
1
- var e={$schema:`https://tembro.dev/registry.schema.json`,name:`tembro`,version:`2.1.10`,description:`Reusable React + TypeScript UI kit registry`,groups:{ui:[`badge`,`button`,`card`,`checkbox`,`accordion`,`collapse`,`dialog`,`divider`,`dropdown-menu`,`input`,`kbd`,`popover`,`radio-group`,`right-click-menu`,`scroll-box`,`select`,`segmented-control`,`skeleton`,`spinner`,`switch`,`table`,`tabs`,`textarea`,`tooltip`],overlay:[`alert-dialog`,`confirm-dialog`,`drawer`,`modal-shell`,`sheet-shell`],navigation:[`nav-tabs`,`page-tabs`,`pagination`,`stepper-tabs`,`command-bar`],inputs:[`async-select`,`otp-input`,`rating`,`slider`,`tag-input`,`inline-editable`],form:[],feedback:[`alert`,`loading-state`,`page-state`,`data-state`],display:[`activity-feed`,`avatar`,`code-block`,`data-list`,`data-state`,`info-card`,`kanban`,`list`,`metric-grid`,`progress`,`progress-circle`,`property-grid`,`result`,`statistic`,`status-dot`,`status-legend`,`timeline`,`tree-view`,`user-card`,`trend-card`],actions:[`action-menu`,`button-group`,`copy-button`,`quick-action-grid`],layout:[`sidebar`,`breadcrumbs`,`section`],filters:[`filter-bar`,`saved-filter-select`],"data-table":[`data-table`],calendar:[`calendar`,`date-picker`,`date-range-picker`],upload:[`file-upload`,`image-upload`],wizard:[`stepper`,`wizard`],notifications:[`toast`,`notification-center`],command:[],patterns:[`resource-page`,`resource-detail-page`],modern:[`calendar-scheduler`,`dual-list-picker`,`menubar`,`navigation-menu`,`resizable-panel`,`rich-text-editor`,`tour`,`qr-code`,`tag`,`carousel`,`typography`,`json-input`,`time-picker`],hooks:[`use-session-storage-state`,`use-before-unload-when-dirty`,`use-is-mobile`,`use-disclosure`,`use-debounce`,`use-data-table-view-state`],kits:[`dashboard`,`calendar-kit`,`wizard-kit`,`all`]},recommended:`button.input.textarea.checkbox.switch.radio-group.dialog.popover.select.table.badge.card.tabs.collapse.accordion.segmented-control.spinner.tooltip.kbd.sidebar.breadcrumbs.data-state.loading-state.progress.progress-circle.metric-grid.activity-feed.data-list.user-card.action-menu.filter-bar.trend-card.notification-center.command-bar`.split(`.`),recommendedByMode:{foundation:[`button`,`input`,`textarea`,`checkbox`,`switch`,`radio-group`,`dialog`,`popover`,`select`,`table`,`badge`,`card`,`tabs`,`kbd`,`scroll-box`],sourceCopy:[`sidebar`,`breadcrumbs`,`data-state`,`loading-state`,`progress-circle`,`metric-grid`,`activity-feed`,`user-card`,`action-menu`,`filter-bar`,`date-picker`,`date-range-picker`,`file-upload`,`use-data-table-view-state`,`data-table`,`trend-card`,`notification-center`,`command-bar`],system:[`data-table`,`sidebar`]},publicSurface:{documented:[`button`,`input`,`select`,`card`,`badge`,`checkbox`,`dialog`,`data-table`,`calendar`,`date-picker`,`date-range-picker`,`alert`,`charts`,`sidebar`,`file-upload`,`progress`],standalone:`accordion.divider.segmented-control.skeleton.spinner.command-bar.inline-editable.avatar.code-block.data-state.kanban.list.property-grid.statistic.tree-view.copy-button.section.calendar-scheduler.dual-list-picker.menubar.navigation-menu.resizable-panel.rich-text-editor.tour.qr-code.tag.carousel.typography.json-input.time-picker`.split(`.`)},migrationAliases:{"clearable-input":`input`,"search-input":`input`,"password-input":`input`,"number-input":`input`,"money-input":`input`,"phone-input":`input`,"masked-input":`input`,"quantity-input":`input`,"date-input":`input`,"date-range-input":`input`,"simple-select":`select`,combobox:`select`,"async-multi-select":`async-select`,"form-async-select":`select`,"app-sidebar":`sidebar`,"smart-card":`info-card`,"app-header":`sidebar`,"app-shell":`sidebar`,"copy-field":`copy-button`,"file-dropzone":`file-upload`,"form-field-shell":`input`,"form-input":`input`,"form-select":`select`,"form-switch":`switch`,"form-textarea":`textarea`,"hover-card":`tooltip`,"page-container":`sidebar`,"page-header":`breadcrumbs`,"section-header":`section`,"sidebar-nav":`sidebar`,"stat-card":`metric-grid`,"sticky-footer-bar":`sidebar`,"input-decorator":`input`,"input-value":`input`,inputs:`input`,form:`input`,"data-table-actions-column":`data-table`,"data-table-bulk-actions":`data-table`,"data-table-column-visibility-menu":`data-table`,"data-table-pagination":`data-table`,"data-table-row-actions":`data-table`,"data-table-saved-filters":`data-table`,"data-table-select-column":`data-table`,"data-table-sortable-header":`data-table`,"data-table-toolbar":`data-table`,"data-table-view-presets":`data-table`,"table-export-menu":`data-table`,"table-import-button":`data-table`}};exports.default=e;
1
+ var e={$schema:`https://tembro.dev/registry.schema.json`,name:`tembro`,version:`2.1.11`,description:`Reusable React + TypeScript UI kit registry`,groups:{ui:[`badge`,`button`,`card`,`checkbox`,`accordion`,`collapse`,`dialog`,`divider`,`dropdown-menu`,`input`,`kbd`,`popover`,`radio-group`,`right-click-menu`,`scroll-box`,`select`,`segmented-control`,`skeleton`,`spinner`,`switch`,`table`,`tabs`,`textarea`,`tooltip`],overlay:[`alert-dialog`,`confirm-dialog`,`drawer`,`modal-shell`,`sheet-shell`],navigation:[`nav-tabs`,`page-tabs`,`pagination`,`stepper-tabs`,`command-bar`],inputs:[`async-select`,`otp-input`,`rating`,`slider`,`tag-input`,`inline-editable`],form:[],feedback:[`alert`,`loading-state`,`page-state`,`data-state`],display:[`activity-feed`,`avatar`,`code-block`,`data-list`,`data-state`,`info-card`,`kanban`,`list`,`metric-grid`,`progress`,`progress-circle`,`property-grid`,`result`,`statistic`,`status-dot`,`status-legend`,`timeline`,`tree-view`,`user-card`,`trend-card`],actions:[`action-menu`,`button-group`,`copy-button`,`quick-action-grid`],layout:[`sidebar`,`breadcrumbs`,`section`],filters:[`filter-bar`,`saved-filter-select`],"data-table":[`data-table`],calendar:[`calendar`,`date-picker`,`date-range-picker`],upload:[`file-upload`,`image-upload`],wizard:[`stepper`,`wizard`],notifications:[`toast`,`notification-center`],command:[],patterns:[`resource-page`,`resource-detail-page`],modern:[`calendar-scheduler`,`dual-list-picker`,`menubar`,`navigation-menu`,`resizable-panel`,`rich-text-editor`,`tour`,`qr-code`,`tag`,`carousel`,`typography`,`json-input`,`time-picker`],hooks:[`use-session-storage-state`,`use-before-unload-when-dirty`,`use-is-mobile`,`use-disclosure`,`use-debounce`,`use-data-table-view-state`],kits:[`dashboard`,`calendar-kit`,`wizard-kit`,`all`]},recommended:`button.input.textarea.checkbox.switch.radio-group.dialog.popover.select.table.badge.card.tabs.collapse.accordion.segmented-control.spinner.tooltip.kbd.sidebar.breadcrumbs.data-state.loading-state.progress.progress-circle.metric-grid.activity-feed.data-list.user-card.action-menu.filter-bar.trend-card.notification-center.command-bar`.split(`.`),recommendedByMode:{foundation:[`button`,`input`,`textarea`,`checkbox`,`switch`,`radio-group`,`dialog`,`popover`,`select`,`table`,`badge`,`card`,`tabs`,`kbd`,`scroll-box`],sourceCopy:[`sidebar`,`breadcrumbs`,`data-state`,`loading-state`,`progress-circle`,`metric-grid`,`activity-feed`,`user-card`,`action-menu`,`filter-bar`,`date-picker`,`date-range-picker`,`file-upload`,`use-data-table-view-state`,`data-table`,`trend-card`,`notification-center`,`command-bar`],system:[`data-table`,`sidebar`]},publicSurface:{documented:[`button`,`input`,`select`,`card`,`badge`,`checkbox`,`dialog`,`data-table`,`calendar`,`date-picker`,`date-range-picker`,`alert`,`charts`,`sidebar`,`file-upload`,`progress`],standalone:`accordion.divider.segmented-control.skeleton.spinner.command-bar.inline-editable.avatar.code-block.data-state.kanban.list.property-grid.statistic.tree-view.copy-button.section.calendar-scheduler.dual-list-picker.menubar.navigation-menu.resizable-panel.rich-text-editor.tour.qr-code.tag.carousel.typography.json-input.time-picker`.split(`.`)},migrationAliases:{"clearable-input":`input`,"search-input":`input`,"password-input":`input`,"number-input":`input`,"money-input":`input`,"phone-input":`input`,"masked-input":`input`,"quantity-input":`input`,"date-input":`input`,"date-range-input":`input`,"simple-select":`select`,combobox:`select`,"async-multi-select":`async-select`,"form-async-select":`select`,"app-sidebar":`sidebar`,"smart-card":`info-card`,"app-header":`sidebar`,"app-shell":`sidebar`,"copy-field":`copy-button`,"file-dropzone":`file-upload`,"form-field-shell":`input`,"form-input":`input`,"form-select":`select`,"form-switch":`switch`,"form-textarea":`textarea`,"hover-card":`tooltip`,"page-container":`sidebar`,"page-header":`breadcrumbs`,"section-header":`section`,"sidebar-nav":`sidebar`,"stat-card":`metric-grid`,"sticky-footer-bar":`sidebar`,"input-decorator":`input`,"input-value":`input`,inputs:`input`,form:`input`,"data-table-actions-column":`data-table`,"data-table-bulk-actions":`data-table`,"data-table-column-visibility-menu":`data-table`,"data-table-pagination":`data-table`,"data-table-row-actions":`data-table`,"data-table-saved-filters":`data-table`,"data-table-select-column":`data-table`,"data-table-sortable-header":`data-table`,"data-table-toolbar":`data-table`,"data-table-view-presets":`data-table`,"table-export-menu":`data-table`,"table-import-button":`data-table`}};exports.default=e;
@@ -1,7 +1,7 @@
1
1
  var e = {
2
2
  $schema: "https://tembro.dev/registry.schema.json",
3
3
  name: "tembro",
4
- version: "2.1.10",
4
+ version: "2.1.11",
5
5
  description: "Reusable React + TypeScript UI kit registry",
6
6
  groups: {
7
7
  ui: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tembro",
3
- "version": "2.1.10",
3
+ "version": "2.1.11",
4
4
  "description": "Reusable React UI kit with dashboard-ready components, CLI registry helpers, and TypeScript support.",
5
5
  "keywords": [
6
6
  "react",
@@ -1180,4 +1180,4 @@ ${t}`),e.forEach(r=>{let i=X[r],n=La(r),o=qa(r,i.category),s=i.registryDependenc
1180
1180
  ${n}`),o.sort().forEach(s=>{let a=X[s],c=La(s),u=qa(s,a.category),l=a.registryDependencies?.length?` -> ${a.registryDependencies.join(", ")}`:"";console.log(` ${s} [${c}/${u}]${l}`);});console.log(`
1181
1181
  Status:`),console.log(" stable = safe public API"),console.log(" preview = usable but API may change"),console.log(" experimental = not ready for stable app contracts"),console.log(" internal = helper metadata"),console.log(`
1182
1182
  Distribution:`),console.log(" foundation = small runtime-safe primitives, hooks, and helpers"),console.log(" source-copy = copy into app source with init/add and edit locally"),console.log(" system = larger product surfaces, kits, and patterns; prefer source-copy only"),console.log(`
1183
- Usage:`),console.log(` ${$e("add button input data-table")}`),console.log(` ${$e("add form --overwrite")}`);}var Ua=Me(rt());async function Ly(t){let e=process.cwd(),r=R__default.default.join(e,"tembro.json"),i=Ua.default.existsSync(r)?await Ua.default.readJson(r):{},n=t??i.cssPath??i.globalCssPath??"src/index.css",o=await An({cwd:e,cssPath:n});O.success(`Tembro theme CSS yangilandi: ${o}`);}var Je=Me(rt());var qy={minimal:[{source:"src/lib/utils.ts",target:"{utils}"},{source:"src/components/ui/button",target:"{ui}/button"},{source:"src/components/ui/input",target:"{ui}/input"},{source:"src/components/ui/card",target:"{ui}/card"},{source:"src/components/ui/badge",target:"{ui}/badge"}],dashboard:[{source:"src/lib/utils.ts",target:"{utils}"},{source:"src/components/ui/button",target:"{ui}/button"},{source:"src/components/ui/input",target:"{ui}/input"},{source:"src/components/ui/card",target:"{ui}/card"},{source:"src/components/ui/badge",target:"{ui}/badge"},{source:"src/components/ui/dropdown-menu.tsx",target:"{ui}/dropdown-menu.tsx"},{source:"src/components/ui/skeleton.tsx",target:"{ui}/skeleton.tsx"},{source:"src/components/ui/tabs.tsx",target:"{ui}/tabs.tsx"},{source:"src/components/feedback/page-state.tsx",target:"{components}/feedback/page-state.tsx"},{source:"src/components/filters/filter-bar.tsx",target:"{components}/filters/filter-bar.tsx"},{source:"src/components/display/property-grid.tsx",target:"{components}/display/property-grid.tsx"},{source:"src/components/display/smart-card.tsx",target:"{components}/display/smart-card.tsx"},{source:"src/components/data-table/data-table.tsx",target:"{components}/data-table/data-table.tsx"}]};function dD(t,e="@"){return e==="@"?t:t.replaceAll("@/",`${e}/`)}function hD(t,e){let r=e.paths?.components??"src/components",i=e.paths?.ui??"src/components/ui",n=e.utilsPath??"src/lib/utils.ts";return t.replaceAll("{components}",r).replaceAll("{ui}",i).replaceAll("{utils}",n)}async function By(t,e,r,i){if((await Je.default.stat(t)).isDirectory()){let o=await Je.default.readdir(t,{withFileTypes:true});for(let s of o)await By(R__default.default.join(t,s.name),R__default.default.join(e,s.name),r,i);return}if(i.dryRun){O.info(`[dry-run] ${t} -> ${e}`);return}if(Je.default.existsSync(e)&&!i.overwrite){O.warn(`${e} allaqachon mavjud.`);return}await Je.default.ensureDir(R__default.default.dirname(e)),await Je.default.writeFile(e,dD(await Je.default.readFile(t,"utf8"),r)),O.success(`${e} qo\u2018shildi.`);}async function Uy(t,e={}){let r=qy[t];r||(O.error(`Preset topilmadi: ${t}`),process.exit(1));let i=process.cwd(),n=R__default.default.join(i,"tembro.json");Je.default.existsSync(n)||(O.error("tembro.json topilmadi. Avval init qiling."),process.exit(1));let o=await Je.default.readJson(n),s=In((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));for(let a of r){let c=R__default.default.join(s,a.source),u=R__default.default.join(i,hD(a.target,o));await By(c,u,o.alias,e);}}var Ot=new Tt;Ot.name("tembro").description("Tembro source-copy CLI").version("2.1.10");Ot.command("init").description("Initialize local Tembro source files in your project").option("--template <template>","Project defaults: vite or next","vite").option("--skip-install","Do not install base dependencies").option("-y, --defaults","Use template defaults without interactive prompts").action(Py);Ot.command("preset").description("Add a source-copy preset to your project").argument("<name>","preset name: minimal or dashboard").option("-o, --overwrite","overwrite existing files").option("--dry-run","show files without writing").option("--skip-install","do not install package dependencies").action(Uy);Ot.command("list").description("List available registry components").action(jy);Ot.command("add").description("Copy component source files into your project").argument("[components...]","components to add").option("-o, --overwrite","overwrite existing files").option("--dry-run","show files without writing").option("--skip-install","do not install package dependencies").action($y);Ot.command("theme").description("Write or update Tembro theme CSS in your global CSS file").argument("[cssPath]","global CSS path, default from tembro.json or src/index.css").action(Ly);Ot.parse();
1183
+ Usage:`),console.log(` ${$e("add button input data-table")}`),console.log(` ${$e("add form --overwrite")}`);}var Ua=Me(rt());async function Ly(t){let e=process.cwd(),r=R__default.default.join(e,"tembro.json"),i=Ua.default.existsSync(r)?await Ua.default.readJson(r):{},n=t??i.cssPath??i.globalCssPath??"src/index.css",o=await An({cwd:e,cssPath:n});O.success(`Tembro theme CSS yangilandi: ${o}`);}var Je=Me(rt());var qy={minimal:[{source:"src/lib/utils.ts",target:"{utils}"},{source:"src/components/ui/button",target:"{ui}/button"},{source:"src/components/ui/input",target:"{ui}/input"},{source:"src/components/ui/card",target:"{ui}/card"},{source:"src/components/ui/badge",target:"{ui}/badge"}],dashboard:[{source:"src/lib/utils.ts",target:"{utils}"},{source:"src/components/ui/button",target:"{ui}/button"},{source:"src/components/ui/input",target:"{ui}/input"},{source:"src/components/ui/card",target:"{ui}/card"},{source:"src/components/ui/badge",target:"{ui}/badge"},{source:"src/components/ui/dropdown-menu.tsx",target:"{ui}/dropdown-menu.tsx"},{source:"src/components/ui/skeleton.tsx",target:"{ui}/skeleton.tsx"},{source:"src/components/ui/tabs.tsx",target:"{ui}/tabs.tsx"},{source:"src/components/feedback/page-state.tsx",target:"{components}/feedback/page-state.tsx"},{source:"src/components/filters/filter-bar.tsx",target:"{components}/filters/filter-bar.tsx"},{source:"src/components/display/property-grid.tsx",target:"{components}/display/property-grid.tsx"},{source:"src/components/display/smart-card.tsx",target:"{components}/display/smart-card.tsx"},{source:"src/components/data-table/data-table.tsx",target:"{components}/data-table/data-table.tsx"}]};function dD(t,e="@"){return e==="@"?t:t.replaceAll("@/",`${e}/`)}function hD(t,e){let r=e.paths?.components??"src/components",i=e.paths?.ui??"src/components/ui",n=e.utilsPath??"src/lib/utils.ts";return t.replaceAll("{components}",r).replaceAll("{ui}",i).replaceAll("{utils}",n)}async function By(t,e,r,i){if((await Je.default.stat(t)).isDirectory()){let o=await Je.default.readdir(t,{withFileTypes:true});for(let s of o)await By(R__default.default.join(t,s.name),R__default.default.join(e,s.name),r,i);return}if(i.dryRun){O.info(`[dry-run] ${t} -> ${e}`);return}if(Je.default.existsSync(e)&&!i.overwrite){O.warn(`${e} allaqachon mavjud.`);return}await Je.default.ensureDir(R__default.default.dirname(e)),await Je.default.writeFile(e,dD(await Je.default.readFile(t,"utf8"),r)),O.success(`${e} qo\u2018shildi.`);}async function Uy(t,e={}){let r=qy[t];r||(O.error(`Preset topilmadi: ${t}`),process.exit(1));let i=process.cwd(),n=R__default.default.join(i,"tembro.json");Je.default.existsSync(n)||(O.error("tembro.json topilmadi. Avval init qiling."),process.exit(1));let o=await Je.default.readJson(n),s=In((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));for(let a of r){let c=R__default.default.join(s,a.source),u=R__default.default.join(i,hD(a.target,o));await By(c,u,o.alias,e);}}var Ot=new Tt;Ot.name("tembro").description("Tembro source-copy CLI").version("2.1.11");Ot.command("init").description("Initialize local Tembro source files in your project").option("--template <template>","Project defaults: vite or next","vite").option("--skip-install","Do not install base dependencies").option("-y, --defaults","Use template defaults without interactive prompts").action(Py);Ot.command("preset").description("Add a source-copy preset to your project").argument("<name>","preset name: minimal or dashboard").option("-o, --overwrite","overwrite existing files").option("--dry-run","show files without writing").option("--skip-install","do not install package dependencies").action(Uy);Ot.command("list").description("List available registry components").action(jy);Ot.command("add").description("Copy component source files into your project").argument("[components...]","components to add").option("-o, --overwrite","overwrite existing files").option("--dry-run","show files without writing").option("--skip-install","do not install package dependencies").action($y);Ot.command("theme").description("Write or update Tembro theme CSS in your global CSS file").argument("[cssPath]","global CSS path, default from tembro.json or src/index.css").action(Ly);Ot.parse();
@@ -466,7 +466,6 @@ function Calendar({
466
466
  disabled={disabled}
467
467
  aria-label={disabledLabel ?? labels?.selectDate?.(dateKey) ?? dateKey}
468
468
  aria-current={dateKey === todayKey ? "date" : undefined}
469
- aria-selected={selected || inRange || inPreviewRange || undefined}
470
469
  tabIndex={dateKey === tabbableDateKey ? 0 : -1}
471
470
  title={disabledLabel}
472
471
  data-selected={selected || undefined}
@@ -126,7 +126,6 @@ function RadioGroup({
126
126
  value={option.value}
127
127
  checked={checked}
128
128
  disabled={optionDisabled}
129
- aria-invalid={invalid || undefined}
130
129
  className="sr-only"
131
130
  onChange={() => setValue(option.value)}
132
131
  />
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://tembro.dev/registry.schema.json",
3
3
  "name": "tembro",
4
- "version": "2.1.10",
4
+ "version": "2.1.11",
5
5
  "description": "Reusable React + TypeScript UI kit registry",
6
6
  "groups": {
7
7
  "ui": [
package/registry.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://tembro.dev/registry.schema.json",
3
3
  "name": "tembro",
4
- "version": "2.1.10",
4
+ "version": "2.1.11",
5
5
  "description": "Reusable React + TypeScript UI kit registry",
6
6
  "groups": {
7
7
  "ui": [