tembro 2.1.10 → 2.1.12

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.
Files changed (147) hide show
  1. package/dist/components/calendar/calendar.cjs +1 -1
  2. package/dist/components/calendar/calendar.js +141 -142
  3. package/dist/components/ui/radio-group/index.cjs +1 -1
  4. package/dist/components/ui/radio-group/index.js +0 -1
  5. package/dist/showcase/package-meta.cjs +1 -1
  6. package/dist/showcase/package-meta.d.ts +3 -3
  7. package/dist/showcase/package-meta.js +1 -1
  8. package/dist/showcase/premium/accordion/mock.cjs +1 -1
  9. package/dist/showcase/premium/accordion/mock.js +1 -1
  10. package/dist/showcase/premium/avatar/mock.cjs +1 -1
  11. package/dist/showcase/premium/avatar/mock.js +1 -1
  12. package/dist/showcase/premium/button/mock.cjs +1 -1
  13. package/dist/showcase/premium/button/mock.js +1 -1
  14. package/dist/showcase/premium/calendar-scheduler/mock.cjs +1 -1
  15. package/dist/showcase/premium/calendar-scheduler/mock.js +1 -1
  16. package/dist/showcase/premium/carousel/mock.cjs +1 -1
  17. package/dist/showcase/premium/carousel/mock.js +1 -1
  18. package/dist/showcase/premium/code-block/mock.cjs +1 -1
  19. package/dist/showcase/premium/code-block/mock.js +1 -1
  20. package/dist/showcase/premium/command-bar/mock.cjs +1 -1
  21. package/dist/showcase/premium/command-bar/mock.js +1 -1
  22. package/dist/showcase/premium/confirm-dialog/mock.cjs +1 -1
  23. package/dist/showcase/premium/confirm-dialog/mock.js +1 -1
  24. package/dist/showcase/premium/copy-button/mock.cjs +1 -1
  25. package/dist/showcase/premium/copy-button/mock.js +1 -1
  26. package/dist/showcase/premium/copy-field/mock.cjs +1 -1
  27. package/dist/showcase/premium/copy-field/mock.js +1 -1
  28. package/dist/showcase/premium/data-state/mock.cjs +1 -1
  29. package/dist/showcase/premium/data-state/mock.js +1 -1
  30. package/dist/showcase/premium/date-picker/mock.cjs +1 -1
  31. package/dist/showcase/premium/date-picker/mock.js +1 -1
  32. package/dist/showcase/premium/date-range-picker/mock.cjs +1 -1
  33. package/dist/showcase/premium/date-range-picker/mock.js +1 -1
  34. package/dist/showcase/premium/descriptions/mock.cjs +1 -1
  35. package/dist/showcase/premium/descriptions/mock.js +1 -1
  36. package/dist/showcase/premium/dialog/mock.cjs +1 -1
  37. package/dist/showcase/premium/dialog/mock.js +1 -1
  38. package/dist/showcase/premium/divider/mock.cjs +1 -1
  39. package/dist/showcase/premium/divider/mock.js +1 -1
  40. package/dist/showcase/premium/dual-list-picker/mock.cjs +1 -1
  41. package/dist/showcase/premium/dual-list-picker/mock.js +1 -1
  42. package/dist/showcase/premium/file-upload/mock.cjs +1 -1
  43. package/dist/showcase/premium/file-upload/mock.js +1 -1
  44. package/dist/showcase/premium/image-upload/mock.cjs +1 -1
  45. package/dist/showcase/premium/image-upload/mock.js +1 -1
  46. package/dist/showcase/premium/json-input/mock.cjs +1 -1
  47. package/dist/showcase/premium/json-input/mock.js +1 -1
  48. package/dist/showcase/premium/kanban-board/mock.cjs +1 -1
  49. package/dist/showcase/premium/kanban-board/mock.js +1 -1
  50. package/dist/showcase/premium/list/mock.cjs +1 -1
  51. package/dist/showcase/premium/list/mock.js +1 -1
  52. package/dist/showcase/premium/menubar/mock.cjs +1 -1
  53. package/dist/showcase/premium/menubar/mock.js +1 -1
  54. package/dist/showcase/premium/modal-shell/mock.cjs +1 -1
  55. package/dist/showcase/premium/modal-shell/mock.js +1 -1
  56. package/dist/showcase/premium/navigation-menu/mock.cjs +1 -1
  57. package/dist/showcase/premium/navigation-menu/mock.js +1 -1
  58. package/dist/showcase/premium/property-grid/mock.cjs +1 -1
  59. package/dist/showcase/premium/property-grid/mock.js +1 -1
  60. package/dist/showcase/premium/qr-code/mock.cjs +1 -1
  61. package/dist/showcase/premium/qr-code/mock.js +1 -1
  62. package/dist/showcase/premium/radio-group/mock.cjs +1 -1
  63. package/dist/showcase/premium/radio-group/mock.js +1 -1
  64. package/dist/showcase/premium/resizable-panel/mock.cjs +1 -1
  65. package/dist/showcase/premium/resizable-panel/mock.js +1 -1
  66. package/dist/showcase/premium/rich-text-editor/mock.cjs +1 -1
  67. package/dist/showcase/premium/rich-text-editor/mock.js +1 -1
  68. package/dist/showcase/premium/saved-filter-select/mock.cjs +1 -1
  69. package/dist/showcase/premium/saved-filter-select/mock.js +1 -1
  70. package/dist/showcase/premium/section/mock.cjs +1 -1
  71. package/dist/showcase/premium/section/mock.js +1 -1
  72. package/dist/showcase/premium/segmented-control/mock.cjs +1 -1
  73. package/dist/showcase/premium/segmented-control/mock.js +1 -1
  74. package/dist/showcase/premium/sheet-shell/mock.cjs +1 -1
  75. package/dist/showcase/premium/sheet-shell/mock.js +1 -1
  76. package/dist/showcase/premium/skeleton/mock.cjs +1 -1
  77. package/dist/showcase/premium/skeleton/mock.js +1 -1
  78. package/dist/showcase/premium/spinner/mock.cjs +1 -1
  79. package/dist/showcase/premium/spinner/mock.js +1 -1
  80. package/dist/showcase/premium/statistic/mock.cjs +1 -1
  81. package/dist/showcase/premium/statistic/mock.js +1 -1
  82. package/dist/showcase/premium/sticky-footer-bar/mock.cjs +1 -1
  83. package/dist/showcase/premium/sticky-footer-bar/mock.js +1 -1
  84. package/dist/showcase/premium/tag/mock.cjs +1 -1
  85. package/dist/showcase/premium/tag/mock.js +1 -1
  86. package/dist/showcase/premium/time-picker/mock.cjs +1 -1
  87. package/dist/showcase/premium/time-picker/mock.js +1 -1
  88. package/dist/showcase/premium/tour/mock.cjs +1 -1
  89. package/dist/showcase/premium/tour/mock.js +1 -1
  90. package/dist/showcase/premium/tree-view/mock.cjs +1 -1
  91. package/dist/showcase/premium/tree-view/mock.js +1 -1
  92. package/dist/showcase/premium/typography/mock.cjs +1 -1
  93. package/dist/showcase/premium/typography/mock.js +1 -1
  94. package/dist/showcase/site-data.cjs +1 -1
  95. package/dist/showcase/site-data.js +1 -1
  96. package/dist/showcase/tembro-registry.json.cjs +1 -1
  97. package/dist/showcase/tembro-registry.json.js +1 -1
  98. package/package.json +6 -1
  99. package/packages/cli/dist/index.cjs +1 -1
  100. package/packages/cli/vendor/src/components/calendar/calendar.tsx +0 -1
  101. package/packages/cli/vendor/src/components/ui/radio-group/index.tsx +0 -1
  102. package/packages/cli/vendor/src/showcase/package-meta.ts +2 -2
  103. package/packages/cli/vendor/src/showcase/premium/accordion/mock.ts +1 -1
  104. package/packages/cli/vendor/src/showcase/premium/avatar/mock.ts +1 -1
  105. package/packages/cli/vendor/src/showcase/premium/button/mock.ts +1 -1
  106. package/packages/cli/vendor/src/showcase/premium/calendar-scheduler/mock.ts +1 -1
  107. package/packages/cli/vendor/src/showcase/premium/carousel/mock.ts +1 -1
  108. package/packages/cli/vendor/src/showcase/premium/code-block/mock.ts +1 -1
  109. package/packages/cli/vendor/src/showcase/premium/command-bar/mock.ts +1 -1
  110. package/packages/cli/vendor/src/showcase/premium/confirm-dialog/mock.ts +1 -1
  111. package/packages/cli/vendor/src/showcase/premium/copy-button/mock.ts +1 -1
  112. package/packages/cli/vendor/src/showcase/premium/copy-field/mock.ts +1 -1
  113. package/packages/cli/vendor/src/showcase/premium/data-state/mock.ts +1 -1
  114. package/packages/cli/vendor/src/showcase/premium/date-picker/mock.ts +1 -1
  115. package/packages/cli/vendor/src/showcase/premium/date-range-picker/mock.ts +1 -1
  116. package/packages/cli/vendor/src/showcase/premium/descriptions/mock.ts +1 -1
  117. package/packages/cli/vendor/src/showcase/premium/dialog/mock.ts +1 -1
  118. package/packages/cli/vendor/src/showcase/premium/divider/mock.ts +1 -1
  119. package/packages/cli/vendor/src/showcase/premium/dual-list-picker/mock.ts +1 -1
  120. package/packages/cli/vendor/src/showcase/premium/file-upload/mock.ts +1 -1
  121. package/packages/cli/vendor/src/showcase/premium/image-upload/mock.ts +1 -1
  122. package/packages/cli/vendor/src/showcase/premium/json-input/mock.ts +1 -1
  123. package/packages/cli/vendor/src/showcase/premium/kanban-board/mock.ts +1 -1
  124. package/packages/cli/vendor/src/showcase/premium/list/mock.ts +1 -1
  125. package/packages/cli/vendor/src/showcase/premium/menubar/mock.ts +1 -1
  126. package/packages/cli/vendor/src/showcase/premium/modal-shell/mock.ts +1 -1
  127. package/packages/cli/vendor/src/showcase/premium/navigation-menu/mock.ts +1 -1
  128. package/packages/cli/vendor/src/showcase/premium/property-grid/mock.ts +1 -1
  129. package/packages/cli/vendor/src/showcase/premium/qr-code/mock.ts +1 -1
  130. package/packages/cli/vendor/src/showcase/premium/radio-group/mock.ts +1 -1
  131. package/packages/cli/vendor/src/showcase/premium/resizable-panel/mock.ts +1 -1
  132. package/packages/cli/vendor/src/showcase/premium/rich-text-editor/mock.ts +1 -1
  133. package/packages/cli/vendor/src/showcase/premium/saved-filter-select/mock.ts +1 -1
  134. package/packages/cli/vendor/src/showcase/premium/section/mock.ts +1 -1
  135. package/packages/cli/vendor/src/showcase/premium/segmented-control/mock.ts +1 -1
  136. package/packages/cli/vendor/src/showcase/premium/sheet-shell/mock.ts +1 -1
  137. package/packages/cli/vendor/src/showcase/premium/skeleton/mock.ts +1 -1
  138. package/packages/cli/vendor/src/showcase/premium/spinner/mock.ts +1 -1
  139. package/packages/cli/vendor/src/showcase/premium/statistic/mock.ts +1 -1
  140. package/packages/cli/vendor/src/showcase/premium/sticky-footer-bar/mock.ts +1 -1
  141. package/packages/cli/vendor/src/showcase/premium/tag/mock.ts +1 -1
  142. package/packages/cli/vendor/src/showcase/premium/time-picker/mock.ts +1 -1
  143. package/packages/cli/vendor/src/showcase/premium/tour/mock.ts +1 -1
  144. package/packages/cli/vendor/src/showcase/premium/tree-view/mock.ts +1 -1
  145. package/packages/cli/vendor/src/showcase/premium/typography/mock.ts +1 -1
  146. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  147. 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,"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
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=`2.0.3`,t=`July 8, 2026`,n=`^${e}`;exports.PACKAGE_DEPENDENCY_RANGE=n,exports.PACKAGE_LATEST_RELEASE_DATE=t,exports.PACKAGE_LATEST_VERSION=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=`2.1.12`,t=`July 9, 2026`,n=`^${e}`;exports.PACKAGE_DEPENDENCY_RANGE=n,exports.PACKAGE_LATEST_RELEASE_DATE=t,exports.PACKAGE_LATEST_VERSION=e;
@@ -1,3 +1,3 @@
1
- export declare const PACKAGE_LATEST_VERSION = "2.0.3";
2
- export declare const PACKAGE_LATEST_RELEASE_DATE = "July 8, 2026";
3
- export declare const PACKAGE_DEPENDENCY_RANGE = "^2.0.3";
1
+ export declare const PACKAGE_LATEST_VERSION = "2.1.12";
2
+ export declare const PACKAGE_LATEST_RELEASE_DATE = "July 9, 2026";
3
+ export declare const PACKAGE_DEPENDENCY_RANGE = "^2.1.12";
@@ -1,4 +1,4 @@
1
1
  //#region src/showcase/package-meta.ts
2
- var e = "2.0.3", t = "July 8, 2026", n = `^${e}`;
2
+ var e = "2.1.12", t = "July 9, 2026", n = `^${e}`;
3
3
  //#endregion
4
4
  export { n as PACKAGE_DEPENDENCY_RANGE, t as PACKAGE_LATEST_RELEASE_DATE, e as PACKAGE_LATEST_VERSION };
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Accordion } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Accordion } from "tembro"
2
2
 
3
3
  const items = [
4
4
  {
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/accordion/mock.ts
2
2
  var e = {
3
- code: "import { Accordion } from \"@/index\"\n\nconst items = [\n {\n key: \"tokens\",\n title: \"Theme tokens\",\n description: \"Control border, background, radius, and spacing from one place.\",\n content: \"Keep product decisions inside tokens instead of hardcoded one-off wrappers.\",\n },\n {\n key: \"composition\",\n title: \"Component composition\",\n description: \"Teach one component first.\",\n content: \"Advanced behavior should be exposed through props, hooks, and helpers instead of separate public groups.\",\n },\n]\n\nexport function Example() {\n return <Accordion type=\"single\" defaultValue=\"tokens\" items={items} />\n}",
3
+ code: "import { Accordion } from \"tembro\"\n\nconst items = [\n {\n key: \"tokens\",\n title: \"Theme tokens\",\n description: \"Control border, background, radius, and spacing from one place.\",\n content: \"Keep product decisions inside tokens instead of hardcoded one-off wrappers.\",\n },\n {\n key: \"composition\",\n title: \"Component composition\",\n description: \"Teach one component first.\",\n content: \"Advanced behavior should be exposed through props, hooks, and helpers instead of separate public groups.\",\n },\n]\n\nexport function Example() {\n return <Accordion type=\"single\" defaultValue=\"tokens\" items={items} />\n}",
4
4
  htmlCode: "<details data-slot=\"accordion\">\n <summary data-slot=\"accordion-trigger\">Theme tokens</summary>\n <div data-slot=\"accordion-content\">Keep product decisions inside tokens.</div>\n</details>",
5
5
  cliCommand: "npx tembro add accordion",
6
6
  highlights: [
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Avatar, AvatarGroup } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Avatar, AvatarGroup } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/avatar/mock.ts
2
2
  var e = {
3
- code: "import { Avatar, AvatarGroup } from \"@/index\"\n\nexport function Example() {\n return (\n <div className=\"space-y-4\">\n <Avatar name=\"Azamat Jurayev\" status=\"online\" />\n <AvatarGroup\n items={[\n { key: \"az\", name: \"Azamat Jurayev\", status: \"online\" },\n { key: \"su\", name: \"Suhrob Karimov\", status: \"busy\" },\n { key: \"na\", name: \"Nargiza Saidova\", status: \"away\" },\n ]}\n />\n </div>\n )\n}",
3
+ code: "import { Avatar, AvatarGroup } from \"tembro\"\n\nexport function Example() {\n return (\n <div className=\"space-y-4\">\n <Avatar name=\"Azamat Jurayev\" status=\"online\" />\n <AvatarGroup\n items={[\n { key: \"az\", name: \"Azamat Jurayev\", status: \"online\" },\n { key: \"su\", name: \"Suhrob Karimov\", status: \"busy\" },\n { key: \"na\", name: \"Nargiza Saidova\", status: \"away\" },\n ]}\n />\n </div>\n )\n}",
4
4
  cliCommand: "npx tembro add avatar",
5
5
  highlights: [
6
6
  "Single avatar plus stacked group export",
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import * as React from "react"
2
2
  import { ArrowRightIcon, DownloadIcon } from "lucide-react"
3
- import { Button, buttonVariants } from "@/index"
3
+ import { Button, buttonVariants } from "tembro"
4
4
 
5
5
  export function BasicExamples() {
6
6
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/button/mock.ts
2
2
  var e = {
3
- code: "import * as React from \"react\"\nimport { ArrowRightIcon, DownloadIcon } from \"lucide-react\"\nimport { Button, buttonVariants } from \"@/index\"\n\nexport function BasicExamples() {\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-wrap gap-3\">\n <Button variant=\"default\">Primary</Button>\n <Button variant=\"secondary\">Secondary</Button>\n <Button variant=\"outline\">Outline</Button>\n <Button variant=\"destructive\">Destructive</Button>\n </div>\n\n <div className=\"flex flex-wrap gap-3\">\n <Button size=\"sm\">Small</Button>\n <Button iconOnly aria-label=\"Download\">\n <DownloadIcon className=\"size-4\" />\n </Button>\n <Button>\n Continue\n <ArrowRightIcon className=\"ml-2 size-4\" />\n </Button>\n </div>\n\n <div className=\"flex flex-wrap gap-3\">\n <Button variant=\"outline\" size=\"sm\" disabled>\n Disabled\n </Button>\n <Button variant=\"default\" loading>\n Loading\n </Button>\n </div>\n\n <div className=\"flex flex-wrap gap-3\">\n <a className={buttonVariants({ variant: \"outline\", size: \"sm\" })} href=\"/components\">\n Link styled as button\n </a>\n </div>\n </div>\n )\n}\n\nexport function ControlledButton() {\n const [loading, setLoading] = React.useState(false)\n\n return (\n <Button\n variant=\"default\"\n onClick={() => {\n setLoading(true)\n window.setTimeout(() => setLoading(false), 1800)\n }}\n loading={loading}\n >\n Submit\n </Button>\n )\n}\n\n// Don't overuse buttonVariants for every button instance.\n// Use Button's own variant/size props by default, and keep buttonVariants\n// only for styling non-button elements (a, Link) with shared look.",
3
+ code: "import * as React from \"react\"\nimport { ArrowRightIcon, DownloadIcon } from \"lucide-react\"\nimport { Button, buttonVariants } from \"tembro\"\n\nexport function BasicExamples() {\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-wrap gap-3\">\n <Button variant=\"default\">Primary</Button>\n <Button variant=\"secondary\">Secondary</Button>\n <Button variant=\"outline\">Outline</Button>\n <Button variant=\"destructive\">Destructive</Button>\n </div>\n\n <div className=\"flex flex-wrap gap-3\">\n <Button size=\"sm\">Small</Button>\n <Button iconOnly aria-label=\"Download\">\n <DownloadIcon className=\"size-4\" />\n </Button>\n <Button>\n Continue\n <ArrowRightIcon className=\"ml-2 size-4\" />\n </Button>\n </div>\n\n <div className=\"flex flex-wrap gap-3\">\n <Button variant=\"outline\" size=\"sm\" disabled>\n Disabled\n </Button>\n <Button variant=\"default\" loading>\n Loading\n </Button>\n </div>\n\n <div className=\"flex flex-wrap gap-3\">\n <a className={buttonVariants({ variant: \"outline\", size: \"sm\" })} href=\"/components\">\n Link styled as button\n </a>\n </div>\n </div>\n )\n}\n\nexport function ControlledButton() {\n const [loading, setLoading] = React.useState(false)\n\n return (\n <Button\n variant=\"default\"\n onClick={() => {\n setLoading(true)\n window.setTimeout(() => setLoading(false), 1800)\n }}\n loading={loading}\n >\n Submit\n </Button>\n )\n}\n\n// Don't overuse buttonVariants for every button instance.\n// Use Button's own variant/size props by default, and keep buttonVariants\n// only for styling non-button elements (a, Link) with shared look.",
4
4
  htmlCode: "<button data-slot=\"button\" data-variant=\"primary\">\n Continue\n</button>",
5
5
  cliCommand: "npx tembro add button",
6
6
  highlights: [
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CalendarScheduler } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { CalendarScheduler } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/calendar-scheduler/mock.ts
2
2
  var e = {
3
- code: "import { CalendarScheduler } from \"@/index\"\n\nexport function Example() {\n return (\n <CalendarScheduler\n days={[\"Mon, Jul 6\", \"Tue, Jul 7\"]}\n events={[\n { id: \"1\", title: \"Design review\", date: \"Mon, Jul 6\", time: \"10:00\", tone: \"warning\" },\n { id: \"2\", title: \"Release freeze\", date: \"Tue, Jul 7\", time: \"14:00\", tone: \"danger\" },\n ]}\n />\n )\n}",
3
+ code: "import { CalendarScheduler } from \"tembro\"\n\nexport function Example() {\n return (\n <CalendarScheduler\n days={[\"Mon, Jul 6\", \"Tue, Jul 7\"]}\n events={[\n { id: \"1\", title: \"Design review\", date: \"Mon, Jul 6\", time: \"10:00\", tone: \"warning\" },\n { id: \"2\", title: \"Release freeze\", date: \"Tue, Jul 7\", time: \"14:00\", tone: \"danger\" },\n ]}\n />\n )\n}",
4
4
  cliCommand: "npx tembro add calendar-scheduler",
5
5
  highlights: [
6
6
  "Compact scheduler timeline by day",
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Carousel, CarouselItem } from "@/index"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Carousel, CarouselItem } from "tembro"
2
2
 
3
3
  export function Example() {
4
4
  return (