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.
- package/dist/components/calendar/calendar.cjs +1 -1
- package/dist/components/calendar/calendar.js +141 -142
- package/dist/components/ui/radio-group/index.cjs +1 -1
- package/dist/components/ui/radio-group/index.js +0 -1
- package/dist/showcase/tembro-registry.json.cjs +1 -1
- package/dist/showcase/tembro-registry.json.js +1 -1
- package/package.json +1 -1
- package/packages/cli/dist/index.cjs +1 -1
- package/packages/cli/vendor/src/components/calendar/calendar.tsx +0 -1
- package/packages/cli/vendor/src/components/ui/radio-group/index.tsx +0 -1
- package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
- package/registry.json +1 -1
|
@@ -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,
|
|
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
|
|
5
|
-
import * as
|
|
6
|
-
import { ChevronLeftIcon as
|
|
7
|
-
import { jsx as
|
|
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
|
|
10
|
-
return e instanceof 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
|
|
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
|
|
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
|
|
21
|
-
let n =
|
|
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 (;
|
|
24
|
+
for (; f(a) <= t;) i.push(f(a)), a.setDate(a.getDate() + 1);
|
|
25
25
|
return i;
|
|
26
26
|
}
|
|
27
|
-
function
|
|
28
|
-
let n =
|
|
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
|
|
32
|
-
let
|
|
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
|
-
})), [
|
|
36
|
-
if (
|
|
37
|
-
if (s(e,
|
|
38
|
-
if (o(e,
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
]),
|
|
44
|
-
let e =
|
|
45
|
-
return
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
I?.from,
|
|
48
|
+
F,
|
|
49
|
+
H,
|
|
50
|
+
C?.from,
|
|
51
|
+
B,
|
|
52
|
+
S,
|
|
53
|
+
X
|
|
54
54
|
]);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}, [
|
|
58
|
-
|
|
59
|
-
}, [
|
|
60
|
-
|
|
61
|
-
}, [
|
|
62
|
-
|
|
63
|
-
}, [
|
|
64
|
-
let
|
|
65
|
-
let t =
|
|
66
|
-
|
|
67
|
-
},
|
|
68
|
-
let n = e, r =
|
|
69
|
-
for (;
|
|
70
|
-
|
|
71
|
-
},
|
|
72
|
-
if (
|
|
73
|
-
if (
|
|
74
|
-
|
|
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 =
|
|
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
|
-
|
|
83
|
+
M || P(t), w?.(t);
|
|
84
84
|
return;
|
|
85
85
|
}
|
|
86
|
-
if (
|
|
86
|
+
if (b(t, e).some((e) => Y(e))) {
|
|
87
87
|
let t = {
|
|
88
88
|
from: e,
|
|
89
89
|
to: null
|
|
90
90
|
};
|
|
91
|
-
|
|
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
|
-
|
|
99
|
-
},
|
|
100
|
-
from:
|
|
101
|
-
to:
|
|
102
|
-
} : null, Ee =
|
|
103
|
-
if (!
|
|
104
|
-
if (
|
|
105
|
-
mode:
|
|
106
|
-
value:
|
|
107
|
-
range:
|
|
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 (
|
|
111
|
-
let 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
|
|
114
|
+
return x(F, E) ?? "No date selected";
|
|
115
115
|
}, [
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
I,
|
|
117
|
+
F,
|
|
118
118
|
E,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
T,
|
|
120
|
+
A,
|
|
121
|
+
O
|
|
122
122
|
]), De = () => {
|
|
123
|
-
if (
|
|
124
|
-
|
|
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
|
-
|
|
131
|
+
M || P(e), w?.(e);
|
|
132
132
|
}, Oe = () => {
|
|
133
|
-
let e = /* @__PURE__ */ new Date(), t =
|
|
134
|
-
|
|
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 = ((
|
|
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(),
|
|
139
|
+
e.preventDefault(), Q(v(t, 1), 1);
|
|
140
140
|
break;
|
|
141
141
|
case "ArrowLeft":
|
|
142
|
-
e.preventDefault(),
|
|
142
|
+
e.preventDefault(), Q(v(t, -1), -1);
|
|
143
143
|
break;
|
|
144
144
|
case "ArrowDown":
|
|
145
|
-
e.preventDefault(),
|
|
145
|
+
e.preventDefault(), Q(v(t, 7), 7);
|
|
146
146
|
break;
|
|
147
147
|
case "ArrowUp":
|
|
148
|
-
e.preventDefault(),
|
|
148
|
+
e.preventDefault(), Q(v(t, -7), -7);
|
|
149
149
|
break;
|
|
150
150
|
case "Home":
|
|
151
|
-
e.preventDefault(),
|
|
151
|
+
e.preventDefault(), Q(v(t, -r), -1);
|
|
152
152
|
break;
|
|
153
153
|
case "End":
|
|
154
|
-
e.preventDefault(),
|
|
154
|
+
e.preventDefault(), Q(v(t, 6 - r), 1);
|
|
155
155
|
break;
|
|
156
156
|
case "PageUp":
|
|
157
|
-
e.preventDefault(),
|
|
157
|
+
e.preventDefault(), Q(y(t, n(t, -1)), -1);
|
|
158
158
|
break;
|
|
159
159
|
case "PageDown":
|
|
160
|
-
e.preventDefault(),
|
|
160
|
+
e.preventDefault(), Q(y(t, n(t, 1)), 1);
|
|
161
161
|
break;
|
|
162
162
|
}
|
|
163
163
|
};
|
|
164
|
-
return /* @__PURE__ */
|
|
164
|
+
return /* @__PURE__ */ _("div", {
|
|
165
165
|
"data-slot": "calendar",
|
|
166
|
-
"data-months":
|
|
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))]",
|
|
168
|
-
...
|
|
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__ */
|
|
170
|
+
/* @__PURE__ */ _("div", {
|
|
171
171
|
className: "mb-3 flex items-center justify-between gap-3",
|
|
172
172
|
children: [
|
|
173
|
-
/* @__PURE__ */
|
|
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":
|
|
179
|
-
onClick: () =>
|
|
180
|
-
children: /* @__PURE__ */ m
|
|
178
|
+
"aria-label": k?.previousMonth ?? "Previous month",
|
|
179
|
+
onClick: () => Z(n(L, -z)),
|
|
180
|
+
children: /* @__PURE__ */ g(m, {})
|
|
181
181
|
}),
|
|
182
|
-
/* @__PURE__ */
|
|
182
|
+
/* @__PURE__ */ _("div", {
|
|
183
183
|
className: "flex flex-1 flex-col items-center text-center",
|
|
184
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
187
|
+
}), /* @__PURE__ */ g("div", {
|
|
188
188
|
className: "text-base font-semibold capitalize tracking-tight text-foreground",
|
|
189
|
-
children: i(
|
|
189
|
+
children: i(L, E)
|
|
190
190
|
})]
|
|
191
191
|
}),
|
|
192
|
-
/* @__PURE__ */
|
|
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":
|
|
198
|
-
onClick: () =>
|
|
199
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
204
|
-
className: e("grid gap-3",
|
|
205
|
-
style:
|
|
206
|
-
children:
|
|
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
|
-
|
|
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__ */
|
|
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:
|
|
215
|
+
children: Se.map((e) => /* @__PURE__ */ g("div", {
|
|
216
216
|
className: "py-1",
|
|
217
217
|
children: e
|
|
218
|
-
}, `${
|
|
218
|
+
}, `${f(t)}-${e}`))
|
|
219
219
|
}),
|
|
220
|
-
/* @__PURE__ */
|
|
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 =
|
|
224
|
-
return /* @__PURE__ */
|
|
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 ?
|
|
226
|
+
e ? V.current.set(r, e) : V.current.delete(r);
|
|
227
227
|
},
|
|
228
228
|
type: "button",
|
|
229
|
-
disabled:
|
|
230
|
-
"aria-label":
|
|
231
|
-
"aria-current": r ===
|
|
232
|
-
|
|
233
|
-
|
|
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":
|
|
237
|
-
"data-range-end":
|
|
238
|
-
"data-range-middle":
|
|
239
|
-
"data-today": r ===
|
|
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":
|
|
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 ===
|
|
245
|
-
onFocus: () =>
|
|
246
|
-
onMouseEnter: () =>
|
|
247
|
-
onMouseLeave: () =>
|
|
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: () =>
|
|
248
|
+
onClick: () => Te(r),
|
|
250
249
|
children: n.getDate()
|
|
251
250
|
}, r);
|
|
252
251
|
})
|
|
253
252
|
})
|
|
254
253
|
]
|
|
255
|
-
},
|
|
254
|
+
}, f(t)))
|
|
256
255
|
}),
|
|
257
|
-
|
|
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__ */
|
|
258
|
+
children: [/* @__PURE__ */ g("div", {
|
|
260
259
|
className: "text-xs text-muted-foreground",
|
|
261
260
|
children: Ee
|
|
262
|
-
}), /* @__PURE__ */
|
|
261
|
+
}), /* @__PURE__ */ _("div", {
|
|
263
262
|
className: "flex flex-wrap gap-2",
|
|
264
|
-
children: [
|
|
263
|
+
children: [me ? /* @__PURE__ */ g(t, {
|
|
265
264
|
type: "button",
|
|
266
265
|
size: "sm",
|
|
267
266
|
variant: "ghost",
|
|
268
267
|
onClick: De,
|
|
269
|
-
children:
|
|
270
|
-
}) : null,
|
|
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:
|
|
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 {
|
|
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,
|
|
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;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={$schema:`https://tembro.dev/registry.schema.json`,name:`tembro`,version:`2.1.
|
|
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;
|
package/package.json
CHANGED
|
@@ -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.
|
|
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}
|