tembro 2.0.6 → 2.1.0

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 (341) hide show
  1. package/dist/components/calendar/calendar.cjs +1 -1
  2. package/dist/components/calendar/calendar.d.ts +2 -1
  3. package/dist/components/calendar/calendar.js +126 -122
  4. package/dist/components/calendar/date-range-picker.cjs +1 -1
  5. package/dist/components/calendar/date-range-picker.d.ts +2 -1
  6. package/dist/components/calendar/date-range-picker.js +39 -39
  7. package/dist/components/charts/charts.cjs +1 -1
  8. package/dist/components/charts/charts.d.ts +13 -4
  9. package/dist/components/charts/charts.js +76 -46
  10. package/dist/components/charts/progress-ring.cjs +1 -1
  11. package/dist/components/charts/progress-ring.d.ts +3 -1
  12. package/dist/components/charts/progress-ring.js +11 -10
  13. package/dist/components/data-table/data-table-column-visibility-menu.cjs +1 -1
  14. package/dist/components/data-table/data-table-column-visibility-menu.d.ts +4 -1
  15. package/dist/components/data-table/data-table-column-visibility-menu.js +36 -8
  16. package/dist/components/data-table/data-table-toolbar.cjs +1 -1
  17. package/dist/components/data-table/data-table-toolbar.js +12 -13
  18. package/dist/components/display/carousel.cjs +1 -1
  19. package/dist/components/display/carousel.d.ts +9 -1
  20. package/dist/components/display/carousel.js +123 -81
  21. package/dist/components/display/code-block.cjs +2 -2
  22. package/dist/components/display/code-block.d.ts +2 -1
  23. package/dist/components/display/code-block.js +17 -12
  24. package/dist/components/display/delta-badge.cjs +1 -1
  25. package/dist/components/display/delta-badge.d.ts +2 -1
  26. package/dist/components/display/delta-badge.js +11 -7
  27. package/dist/components/display/kanban.cjs +1 -1
  28. package/dist/components/display/kanban.d.ts +4 -1
  29. package/dist/components/display/kanban.js +60 -33
  30. package/dist/components/display/metric-grid.cjs +1 -1
  31. package/dist/components/display/metric-grid.d.ts +1 -0
  32. package/dist/components/display/metric-grid.js +1 -1
  33. package/dist/components/display/qr-code.cjs +1 -1
  34. package/dist/components/display/qr-code.d.ts +2 -1
  35. package/dist/components/display/qr-code.js +19 -16
  36. package/dist/components/display/tag.cjs +1 -1
  37. package/dist/components/display/tag.d.ts +2 -1
  38. package/dist/components/display/tag.js +28 -22
  39. package/dist/components/display/tree-view.cjs +1 -1
  40. package/dist/components/display/tree-view.d.ts +9 -1
  41. package/dist/components/display/tree-view.js +104 -40
  42. package/dist/components/display/trend-card.cjs +1 -1
  43. package/dist/components/display/trend-card.js +27 -41
  44. package/dist/components/feedback/alert.cjs +1 -1
  45. package/dist/components/feedback/alert.d.ts +2 -1
  46. package/dist/components/feedback/alert.js +6 -6
  47. package/dist/components/feedback/loading-state.cjs +1 -1
  48. package/dist/components/feedback/loading-state.d.ts +3 -1
  49. package/dist/components/feedback/loading-state.js +23 -10
  50. package/dist/components/feedback/page-state.cjs +1 -1
  51. package/dist/components/feedback/page-state.d.ts +2 -1
  52. package/dist/components/feedback/page-state.js +7 -4
  53. package/dist/components/form/form-field-shell.cjs +1 -1
  54. package/dist/components/form/form-field-shell.d.ts +4 -2
  55. package/dist/components/form/form-field-shell.js +57 -41
  56. package/dist/components/form/form-input.cjs +1 -1
  57. package/dist/components/form/form-input.js +2 -0
  58. package/dist/components/form/form-select.cjs +1 -1
  59. package/dist/components/form/form-select.js +2 -0
  60. package/dist/components/form/form-switch.cjs +1 -1
  61. package/dist/components/form/form-switch.d.ts +1 -1
  62. package/dist/components/form/form-switch.js +58 -54
  63. package/dist/components/form/form-textarea.cjs +1 -1
  64. package/dist/components/form/form-textarea.d.ts +1 -1
  65. package/dist/components/form/form-textarea.js +29 -27
  66. package/dist/components/layout/app-sidebar.cjs +1 -1
  67. package/dist/components/layout/app-sidebar.d.ts +1 -0
  68. package/dist/components/layout/app-sidebar.js +36 -36
  69. package/dist/components/layout/breadcrumbs.cjs +1 -1
  70. package/dist/components/layout/breadcrumbs.d.ts +2 -1
  71. package/dist/components/layout/breadcrumbs.js +7 -7
  72. package/dist/components/modern/calendar-scheduler.cjs +1 -1
  73. package/dist/components/modern/calendar-scheduler.d.ts +5 -1
  74. package/dist/components/modern/calendar-scheduler.js +47 -28
  75. package/dist/components/modern/dual-list-picker.cjs +1 -1
  76. package/dist/components/modern/dual-list-picker.d.ts +5 -1
  77. package/dist/components/modern/dual-list-picker.js +81 -23
  78. package/dist/components/modern/rich-text-editor.cjs +1 -1
  79. package/dist/components/modern/rich-text-editor.d.ts +3 -1
  80. package/dist/components/modern/rich-text-editor.js +12 -9
  81. package/dist/components/modern/tour.cjs +1 -1
  82. package/dist/components/modern/tour.d.ts +5 -1
  83. package/dist/components/modern/tour.js +57 -35
  84. package/dist/components/navigation/command-bar.cjs +1 -1
  85. package/dist/components/navigation/command-bar.d.ts +3 -1
  86. package/dist/components/navigation/command-bar.js +10 -7
  87. package/dist/components/navigation/demo.cjs +1 -1
  88. package/dist/components/navigation/demo.js +0 -1
  89. package/dist/components/navigation/nav-tabs.cjs +1 -1
  90. package/dist/components/navigation/nav-tabs.js +39 -27
  91. package/dist/components/navigation/page-tabs.cjs +1 -1
  92. package/dist/components/navigation/page-tabs.js +41 -30
  93. package/dist/components/navigation/pagination.cjs +1 -1
  94. package/dist/components/navigation/pagination.d.ts +7 -1
  95. package/dist/components/navigation/pagination.js +48 -25
  96. package/dist/components/notifications/notification-center.cjs +1 -1
  97. package/dist/components/notifications/notification-center.d.ts +3 -1
  98. package/dist/components/notifications/notification-center.js +56 -38
  99. package/dist/components/notifications/toast.cjs +1 -1
  100. package/dist/components/notifications/toast.d.ts +1 -0
  101. package/dist/components/notifications/toast.js +4 -0
  102. package/dist/components/overlay/alert-dialog.cjs +1 -1
  103. package/dist/components/overlay/alert-dialog.js +1 -1
  104. package/dist/components/overlay/confirm-dialog.cjs +1 -1
  105. package/dist/components/overlay/confirm-dialog.d.ts +4 -2
  106. package/dist/components/overlay/confirm-dialog.js +31 -22
  107. package/dist/components/overlay/drawer.cjs +1 -1
  108. package/dist/components/overlay/drawer.d.ts +3 -1
  109. package/dist/components/overlay/drawer.js +24 -16
  110. package/dist/components/ui/accordion/index.d.ts +4 -0
  111. package/dist/components/ui/badge/index.cjs +1 -1
  112. package/dist/components/ui/badge/index.d.ts +1 -1
  113. package/dist/components/ui/badge/index.js +2 -1
  114. package/dist/components/ui/button/index.cjs +1 -1
  115. package/dist/components/ui/button/index.d.ts +2 -1
  116. package/dist/components/ui/button/index.js +13 -10
  117. package/dist/components/ui/dialog/index.cjs +1 -1
  118. package/dist/components/ui/dialog/index.js +2 -1
  119. package/dist/components/ui/hover-card.cjs +1 -1
  120. package/dist/components/ui/hover-card.d.ts +11 -3
  121. package/dist/components/ui/hover-card.js +29 -24
  122. package/dist/components/ui/input/index.d.ts +1 -1
  123. package/dist/components/ui/popover/index.cjs +1 -1
  124. package/dist/components/ui/popover/index.d.ts +2 -2
  125. package/dist/components/ui/popover/index.js +6 -5
  126. package/dist/components/ui/radio-group/index.cjs +1 -1
  127. package/dist/components/ui/radio-group/index.d.ts +5 -1
  128. package/dist/components/ui/radio-group/index.js +50 -16
  129. package/dist/components/ui/right-click-menu/index.cjs +1 -1
  130. package/dist/components/ui/right-click-menu/index.d.ts +5 -1
  131. package/dist/components/ui/right-click-menu/index.js +77 -23
  132. package/dist/components/ui/segmented-control/index.cjs +1 -1
  133. package/dist/components/ui/segmented-control/index.d.ts +2 -1
  134. package/dist/components/ui/segmented-control/index.js +23 -11
  135. package/dist/components/ui/select/index.cjs +1 -1
  136. package/dist/components/ui/select/index.d.ts +8 -1
  137. package/dist/components/ui/select/index.js +40 -35
  138. package/dist/components/ui/switch/index.cjs +1 -1
  139. package/dist/components/ui/switch/index.d.ts +18 -0
  140. package/dist/components/ui/switch/index.js +47 -17
  141. package/dist/components/ui/tabs/index.cjs +1 -1
  142. package/dist/components/ui/tabs/index.d.ts +14 -4
  143. package/dist/components/ui/tabs/index.js +11 -8
  144. package/dist/components/ui/textarea/index.cjs +1 -1
  145. package/dist/components/ui/textarea/index.d.ts +10 -2
  146. package/dist/components/ui/textarea/index.js +37 -8
  147. package/dist/components/ui/textarea.cjs +1 -0
  148. package/dist/components/ui/textarea.d.ts +1 -0
  149. package/dist/components/ui/textarea.js +2 -0
  150. package/dist/components/ui/tooltip/index.cjs +1 -1
  151. package/dist/components/ui/tooltip/index.d.ts +11 -3
  152. package/dist/components/ui/tooltip/index.js +41 -20
  153. package/dist/components/upload/file-upload.cjs +1 -1
  154. package/dist/components/upload/file-upload.d.ts +8 -1
  155. package/dist/components/upload/file-upload.js +132 -100
  156. package/dist/components/upload/image-upload.cjs +1 -1
  157. package/dist/components/upload/image-upload.d.ts +5 -1
  158. package/dist/components/upload/image-upload.js +34 -9
  159. package/dist/index.cjs +1 -1
  160. package/dist/index.js +31 -31
  161. package/dist/public-component-surface.cjs +1 -1
  162. package/dist/public-component-surface.js +15 -0
  163. package/dist/showcase/component-api-schema.cjs +1 -1
  164. package/dist/showcase/component-api-schema.js +187 -10
  165. package/dist/showcase/fallback.cjs +3 -3
  166. package/dist/showcase/fallback.js +221 -243
  167. package/dist/showcase/premium/alert/showcase.cjs +1 -1
  168. package/dist/showcase/premium/alert/showcase.js +1 -0
  169. package/dist/showcase/premium/app-sidebar/showcase.cjs +1 -1
  170. package/dist/showcase/premium/app-sidebar/showcase.js +1 -0
  171. package/dist/showcase/premium/badge/showcase.cjs +1 -1
  172. package/dist/showcase/premium/badge/showcase.js +7 -0
  173. package/dist/showcase/premium/badge/types.d.ts +1 -1
  174. package/dist/showcase/premium/breadcrumbs/showcase.cjs +1 -1
  175. package/dist/showcase/premium/breadcrumbs/showcase.js +12 -1
  176. package/dist/showcase/premium/button/mock.cjs +1 -4
  177. package/dist/showcase/premium/button/mock.js +1 -1
  178. package/dist/showcase/premium/button/showcase.cjs +1 -1
  179. package/dist/showcase/premium/button/showcase.js +2 -2
  180. package/dist/showcase/premium/card/showcase.cjs +1 -1
  181. package/dist/showcase/premium/card/showcase.js +96 -47
  182. package/dist/showcase/premium/carousel/showcase.cjs +1 -1
  183. package/dist/showcase/premium/carousel/showcase.js +76 -49
  184. package/dist/showcase/premium/command-bar/showcase.cjs +1 -1
  185. package/dist/showcase/premium/command-bar/showcase.js +2 -0
  186. package/dist/showcase/premium/data-table/mock.cjs +12 -11
  187. package/dist/showcase/premium/data-table/mock.js +1 -1
  188. package/dist/showcase/premium/file-upload/showcase.cjs +1 -1
  189. package/dist/showcase/premium/file-upload/showcase.js +25 -4
  190. package/dist/showcase/premium/image-upload/showcase.cjs +1 -1
  191. package/dist/showcase/premium/image-upload/showcase.js +4 -1
  192. package/dist/showcase/premium/index.cjs +1 -1
  193. package/dist/showcase/premium/index.js +396 -402
  194. package/dist/showcase/premium/loading-state/showcase.cjs +1 -1
  195. package/dist/showcase/premium/loading-state/showcase.js +3 -1
  196. package/dist/showcase/premium/metric-grid/showcase.cjs +1 -1
  197. package/dist/showcase/premium/metric-grid/showcase.js +96 -28
  198. package/dist/showcase/premium/notification-center/showcase.cjs +1 -1
  199. package/dist/showcase/premium/notification-center/showcase.js +7 -3
  200. package/dist/showcase/premium/page-state/showcase.cjs +1 -1
  201. package/dist/showcase/premium/page-state/showcase.js +5 -1
  202. package/dist/showcase/premium/pagination/showcase.cjs +1 -1
  203. package/dist/showcase/premium/pagination/showcase.js +15 -2
  204. package/dist/showcase/premium/popover/showcase.cjs +1 -1
  205. package/dist/showcase/premium/popover/showcase.js +85 -50
  206. package/dist/showcase/premium/radio-group/showcase.cjs +1 -1
  207. package/dist/showcase/premium/radio-group/showcase.js +27 -4
  208. package/dist/showcase/premium/right-click-menu/showcase.cjs +1 -1
  209. package/dist/showcase/premium/right-click-menu/showcase.js +56 -43
  210. package/dist/showcase/premium/segmented-control/showcase.cjs +1 -1
  211. package/dist/showcase/premium/segmented-control/showcase.js +1 -0
  212. package/dist/showcase/premium/select/data.cjs +1 -1
  213. package/dist/showcase/premium/select/data.js +69 -34
  214. package/dist/showcase/premium/select/mock.cjs +19 -6
  215. package/dist/showcase/premium/select/mock.js +3 -2
  216. package/dist/showcase/premium/select/showcase.cjs +1 -1
  217. package/dist/showcase/premium/select/showcase.js +43 -18
  218. package/dist/showcase/premium/select/types.d.ts +3 -0
  219. package/dist/showcase/premium/statistic/showcase.cjs +1 -1
  220. package/dist/showcase/premium/statistic/showcase.js +57 -25
  221. package/dist/showcase/premium/switch/showcase.cjs +1 -1
  222. package/dist/showcase/premium/switch/showcase.js +25 -14
  223. package/dist/showcase/premium/tabs/showcase.cjs +1 -1
  224. package/dist/showcase/premium/tabs/showcase.js +171 -48
  225. package/dist/showcase/premium/textarea/mock.cjs +12 -4
  226. package/dist/showcase/premium/textarea/mock.js +1 -1
  227. package/dist/showcase/premium/textarea/showcase.cjs +1 -1
  228. package/dist/showcase/premium/textarea/showcase.js +8 -3
  229. package/dist/showcase/premium/toast/showcase.cjs +1 -1
  230. package/dist/showcase/premium/toast/showcase.js +32 -6
  231. package/dist/showcase/premium/types.d.ts +1 -1
  232. package/dist/showcase/registry-quality.cjs +1 -1
  233. package/dist/showcase/registry-quality.js +1 -0
  234. package/dist/showcase/render-registry-preview.cjs +1 -1
  235. package/dist/showcase/render-registry-preview.js +57 -79
  236. package/dist/showcase/site-data.cjs +1 -1
  237. package/dist/showcase/site-data.js +60 -21
  238. package/dist/showcase/tembro-registry.json.cjs +1 -1
  239. package/dist/showcase/tembro-registry.json.js +34 -20
  240. package/dist/showcase/types.d.ts +1 -1
  241. package/package.json +1 -1
  242. package/packages/cli/dist/index.cjs +31 -31
  243. package/packages/cli/vendor/src/components/calendar/calendar.tsx +59 -50
  244. package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +7 -4
  245. package/packages/cli/vendor/src/components/charts/charts.tsx +109 -66
  246. package/packages/cli/vendor/src/components/charts/progress-ring.tsx +37 -26
  247. package/packages/cli/vendor/src/components/data-table/data-table-column-visibility-menu.tsx +41 -22
  248. package/packages/cli/vendor/src/components/data-table/data-table-toolbar.tsx +8 -6
  249. package/packages/cli/vendor/src/components/display/carousel.tsx +84 -3
  250. package/packages/cli/vendor/src/components/display/code-block.tsx +22 -2
  251. package/packages/cli/vendor/src/components/display/delta-badge.tsx +11 -11
  252. package/packages/cli/vendor/src/components/display/kanban.tsx +103 -57
  253. package/packages/cli/vendor/src/components/display/metric-grid.tsx +16 -13
  254. package/packages/cli/vendor/src/components/display/qr-code.tsx +17 -15
  255. package/packages/cli/vendor/src/components/display/tag.tsx +39 -21
  256. package/packages/cli/vendor/src/components/display/tree-view.tsx +221 -84
  257. package/packages/cli/vendor/src/components/display/trend-card.tsx +6 -40
  258. package/packages/cli/vendor/src/components/feedback/alert.tsx +3 -1
  259. package/packages/cli/vendor/src/components/feedback/loading-state.tsx +33 -17
  260. package/packages/cli/vendor/src/components/feedback/page-state.tsx +8 -7
  261. package/packages/cli/vendor/src/components/form/form-field-shell.tsx +37 -8
  262. package/packages/cli/vendor/src/components/form/form-input.tsx +2 -0
  263. package/packages/cli/vendor/src/components/form/form-select.tsx +2 -0
  264. package/packages/cli/vendor/src/components/form/form-switch.tsx +9 -3
  265. package/packages/cli/vendor/src/components/form/form-textarea.tsx +6 -2
  266. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +3 -1
  267. package/packages/cli/vendor/src/components/layout/breadcrumbs.tsx +3 -1
  268. package/packages/cli/vendor/src/components/modern/calendar-scheduler.tsx +28 -13
  269. package/packages/cli/vendor/src/components/modern/dual-list-picker.tsx +103 -35
  270. package/packages/cli/vendor/src/components/modern/rich-text-editor.tsx +25 -22
  271. package/packages/cli/vendor/src/components/modern/tour.tsx +47 -29
  272. package/packages/cli/vendor/src/components/navigation/command-bar.tsx +6 -0
  273. package/packages/cli/vendor/src/components/navigation/demo.tsx +0 -1
  274. package/packages/cli/vendor/src/components/navigation/nav-tabs.tsx +38 -29
  275. package/packages/cli/vendor/src/components/navigation/page-tabs.tsx +35 -23
  276. package/packages/cli/vendor/src/components/navigation/pagination.tsx +65 -31
  277. package/packages/cli/vendor/src/components/notifications/notification-center.tsx +64 -39
  278. package/packages/cli/vendor/src/components/notifications/toast.tsx +23 -21
  279. package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +1 -1
  280. package/packages/cli/vendor/src/components/overlay/confirm-dialog.tsx +45 -22
  281. package/packages/cli/vendor/src/components/overlay/drawer.tsx +18 -5
  282. package/packages/cli/vendor/src/components/ui/accordion/index.tsx +4 -0
  283. package/packages/cli/vendor/src/components/ui/badge/index.tsx +2 -1
  284. package/packages/cli/vendor/src/components/ui/button/index.tsx +11 -5
  285. package/packages/cli/vendor/src/components/ui/dialog/index.tsx +2 -1
  286. package/packages/cli/vendor/src/components/ui/hover-card.tsx +54 -28
  287. package/packages/cli/vendor/src/components/ui/popover/index.tsx +10 -8
  288. package/packages/cli/vendor/src/components/ui/radio-group/index.tsx +55 -6
  289. package/packages/cli/vendor/src/components/ui/right-click-menu/index.tsx +120 -9
  290. package/packages/cli/vendor/src/components/ui/segmented-control/index.tsx +29 -3
  291. package/packages/cli/vendor/src/components/ui/select/index.tsx +64 -31
  292. package/packages/cli/vendor/src/components/ui/switch/index.tsx +71 -6
  293. package/packages/cli/vendor/src/components/ui/tabs/index.tsx +22 -6
  294. package/packages/cli/vendor/src/components/ui/textarea/index.tsx +105 -15
  295. package/packages/cli/vendor/src/components/ui/textarea.tsx +2 -0
  296. package/packages/cli/vendor/src/components/ui/tooltip/index.tsx +67 -22
  297. package/packages/cli/vendor/src/components/upload/file-upload.tsx +120 -57
  298. package/packages/cli/vendor/src/components/upload/image-upload.tsx +71 -24
  299. package/packages/cli/vendor/src/public-component-surface.ts +3 -0
  300. package/packages/cli/vendor/src/showcase/component-api-schema.ts +79 -41
  301. package/packages/cli/vendor/src/showcase/fallback.tsx +4 -19
  302. package/packages/cli/vendor/src/showcase/premium/alert/showcase.tsx +1 -0
  303. package/packages/cli/vendor/src/showcase/premium/app-sidebar/showcase.tsx +1 -0
  304. package/packages/cli/vendor/src/showcase/premium/badge/showcase.tsx +4 -2
  305. package/packages/cli/vendor/src/showcase/premium/badge/types.ts +1 -1
  306. package/packages/cli/vendor/src/showcase/premium/breadcrumbs/showcase.tsx +3 -1
  307. package/packages/cli/vendor/src/showcase/premium/button/mock.ts +2 -5
  308. package/packages/cli/vendor/src/showcase/premium/button/showcase.tsx +2 -2
  309. package/packages/cli/vendor/src/showcase/premium/card/showcase.tsx +26 -1
  310. package/packages/cli/vendor/src/showcase/premium/carousel/showcase.tsx +19 -3
  311. package/packages/cli/vendor/src/showcase/premium/command-bar/showcase.tsx +1 -1
  312. package/packages/cli/vendor/src/showcase/premium/data-table/mock.ts +26 -25
  313. package/packages/cli/vendor/src/showcase/premium/file-upload/showcase.tsx +21 -1
  314. package/packages/cli/vendor/src/showcase/premium/image-upload/showcase.tsx +4 -1
  315. package/packages/cli/vendor/src/showcase/premium/index.ts +0 -2
  316. package/packages/cli/vendor/src/showcase/premium/loading-state/showcase.tsx +1 -1
  317. package/packages/cli/vendor/src/showcase/premium/metric-grid/showcase.tsx +36 -4
  318. package/packages/cli/vendor/src/showcase/premium/notification-center/showcase.tsx +4 -3
  319. package/packages/cli/vendor/src/showcase/premium/page-state/showcase.tsx +1 -0
  320. package/packages/cli/vendor/src/showcase/premium/pagination/showcase.tsx +13 -1
  321. package/packages/cli/vendor/src/showcase/premium/popover/showcase.tsx +27 -11
  322. package/packages/cli/vendor/src/showcase/premium/radio-group/showcase.tsx +13 -1
  323. package/packages/cli/vendor/src/showcase/premium/right-click-menu/showcase.tsx +8 -5
  324. package/packages/cli/vendor/src/showcase/premium/segmented-control/showcase.tsx +1 -0
  325. package/packages/cli/vendor/src/showcase/premium/select/data.ts +12 -3
  326. package/packages/cli/vendor/src/showcase/premium/select/mock.ts +4 -4
  327. package/packages/cli/vendor/src/showcase/premium/select/showcase.tsx +22 -1
  328. package/packages/cli/vendor/src/showcase/premium/select/types.ts +3 -0
  329. package/packages/cli/vendor/src/showcase/premium/statistic/showcase.tsx +10 -1
  330. package/packages/cli/vendor/src/showcase/premium/switch/showcase.tsx +15 -6
  331. package/packages/cli/vendor/src/showcase/premium/tabs/showcase.tsx +48 -1
  332. package/packages/cli/vendor/src/showcase/premium/textarea/mock.ts +12 -4
  333. package/packages/cli/vendor/src/showcase/premium/textarea/showcase.tsx +5 -0
  334. package/packages/cli/vendor/src/showcase/premium/toast/showcase.tsx +17 -1
  335. package/packages/cli/vendor/src/showcase/premium/types.ts +1 -1
  336. package/packages/cli/vendor/src/showcase/registry-quality.ts +3 -2
  337. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +0 -15
  338. package/packages/cli/vendor/src/showcase/site-data.tsx +21 -15
  339. package/packages/cli/vendor/src/showcase/tembro-registry.json +42 -20
  340. package/packages/cli/vendor/src/showcase/types.ts +1 -1
  341. package/registry.json +18 -6
@@ -1 +1 @@
1
- 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,numberOfMonths:re=1,showMonthHeaders:ie,showOutsideDays:S=!0,pagedNavigation:ae=!1,showTodayShortcut:C=!1,showClearShortcut:w=!1,showSelectionSummary:T=!1,labels:E,renderSelectionSummary:D,...oe}){let O=f!==void 0,k=p!==void 0,[se,A]=i.useState(f??null),[ce,j]=i.useState(p??{}),[le,ue]=i.useState(()=>s(te,f,p)),M=O?f:se,N=k?p:ce,P=ee??le,F=Math.max(re,1),de=ie??F>1,I=ae?F:1,L=r.toDateKey(new Date),R=i.useMemo(()=>new Set(y??[]),[y]),fe=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]),pe=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);ue(t),ne?.(t)},Z=e=>{let t=e,n=r.toDateKey(t),i=0;for(;J(n)&&i<370;)t=c(t,t<e?-1:1),n=r.toDateKey(t),i+=1;V(n),W.some(e=>r.isSameMonth(t,e))||X(r.startOfMonth(t))},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,me=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]),he=()=>{if(g===`single`){O||A(null),m?.(``);return}let e={from:null,to:null};k||j(e),h?.(e)},ge=()=>{let e=new Date,t=r.toDateKey(e);X(e),V(t),J(t)||Q(t)},_e=(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));break;case`ArrowLeft`:e.preventDefault(),Z(c(t,-1));break;case`ArrowDown`:e.preventDefault(),Z(c(t,7));break;case`ArrowUp`:e.preventDefault(),Z(c(t,-7));break;case`Home`:e.preventDefault(),Z(c(t,-n));break;case`End`:e.preventDefault(),Z(c(t,6-n));break;case`PageUp`:e.preventDefault(),Z(l(t,r.addMonths(t,-1)));break;case`PageDown`:e.preventDefault(),Z(l(t,r.addMonths(t,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),...oe,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:[de&&(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:fe.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=q(i),d=!!u,f=u?E?.disabledDate?.(i,u):void 0;return(0,o.jsx)(`button`,{ref:e=>{e?z.current.set(i,e):z.current.delete(i)},type:`button`,disabled:d,"aria-label":f??E?.selectDate?.(i)??i,"aria-current":i===L?`date`:void 0,tabIndex:i===pe?0:-1,title:f,"data-selected":s||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":u,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=>_e(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:me}),(0,o.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[w?(0,o.jsx)(n.Button,{type:`button`,size:`sm`,variant:`ghost`,onClick:he,children:E?.clear??`Clear`}):null,C?(0,o.jsx)(n.Button,{type:`button`,size:`sm`,variant:`outline`,onClick:ge,children:E?.today??`Today`}):null]})]}):null]})}exports.Calendar=f;
1
+ 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;
@@ -32,6 +32,7 @@ export type CalendarProps = React.ComponentProps<"div"> & {
32
32
  disabledDates?: string[];
33
33
  locale?: string;
34
34
  weekStartsOn?: 0 | 1;
35
+ months?: number;
35
36
  numberOfMonths?: number;
36
37
  showMonthHeaders?: boolean;
37
38
  showOutsideDays?: boolean;
@@ -42,5 +43,5 @@ export type CalendarProps = React.ComponentProps<"div"> & {
42
43
  labels?: CalendarLabels;
43
44
  renderSelectionSummary?: (state: CalendarSummaryState) => React.ReactNode;
44
45
  };
45
- declare function Calendar({ className, value, range, onValueChange, onRangeChange, mode, month, defaultMonth, onMonthChange, min, max, disabledDates, locale, weekStartsOn, numberOfMonths, showMonthHeaders, showOutsideDays, pagedNavigation, showTodayShortcut, showClearShortcut, showSelectionSummary, labels, renderSelectionSummary, ...props }: CalendarProps): React.JSX.Element;
46
+ declare function Calendar({ className, value, range, onValueChange, onRangeChange, mode, month, defaultMonth, onMonthChange, min, max, disabledDates, locale, weekStartsOn, months, numberOfMonths, showMonthHeaders, showOutsideDays, pagedNavigation, showTodayShortcut, showClearShortcut, showSelectionSummary, labels, renderSelectionSummary, ...props }: CalendarProps): React.JSX.Element;
46
47
  export { Calendar };
@@ -2,21 +2,21 @@ import { cn as e } from "../../lib/utils.js";
2
2
  import { Button as t } from "../ui/button/index.js";
3
3
  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";
4
4
  import * as f from "react";
5
- import { ChevronLeftIcon as te, ChevronRightIcon as ne } from "lucide-react";
6
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
5
+ import { ChevronLeftIcon as p, ChevronRightIcon as te } from "lucide-react";
6
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
7
7
  //#region src/components/calendar/calendar.tsx
8
- function re(e, t, n) {
8
+ function ne(e, t, n) {
9
9
  return e instanceof Date ? u(e) : u(l(e) || l(t) || l(n?.from ?? n?.to) || /* @__PURE__ */ new Date());
10
10
  }
11
- function h(e, t) {
11
+ function g(e, t) {
12
12
  let n = new Date(e);
13
13
  return n.setDate(e.getDate() + t), n;
14
14
  }
15
- function g(e, t) {
15
+ function _(e, t) {
16
16
  let n = new Date(t.getFullYear(), t.getMonth() + 1, 0).getDate();
17
17
  return new Date(t.getFullYear(), t.getMonth(), Math.min(e.getDate(), n));
18
18
  }
19
- function _(e, t) {
19
+ function re(e, t) {
20
20
  let n = l(e), r = l(t);
21
21
  if (!n || !r || t < e) return [];
22
22
  let i = [], a = new Date(n);
@@ -27,220 +27,224 @@ function v(e, t) {
27
27
  let n = l(e);
28
28
  return !n || !e ? null : new Intl.DateTimeFormat(t, { dateStyle: "medium" }).format(n);
29
29
  }
30
- function y({ className: l, value: y, range: b, onValueChange: ie, onRangeChange: x, mode: S = "single", month: ae, defaultMonth: oe, onMonthChange: se, min: C, max: ce, disabledDates: le, locale: w = "en-US", weekStartsOn: T = 1, numberOfMonths: ue = 1, showMonthHeaders: de, showOutsideDays: E = !0, pagedNavigation: fe = !1, showTodayShortcut: pe = !1, showClearShortcut: me = !1, showSelectionSummary: D = !1, labels: O, renderSelectionSummary: k, ...he }) {
31
- let A = y !== void 0, j = b !== void 0, [ge, M] = f.useState(y ?? null), [_e, N] = f.useState(b ?? {}), [ve, ye] = f.useState(() => re(oe, y, b)), P = A ? y : ge, F = j ? b : _e, I = ae ?? ve, L = Math.max(ue, 1), be = de ?? L > 1, R = fe ? L : 1, z = d(/* @__PURE__ */ new Date()), B = f.useMemo(() => new Set(le ?? []), [le]), xe = f.useMemo(() => a(w, T), [w, T]), V = f.useRef(/* @__PURE__ */ new Map()), [H, U] = f.useState(() => y ?? b?.from ?? z), [W, G] = f.useState(null), K = f.useMemo(() => Array.from({ length: L }, (e, t) => n(I, t)), [I, L]), q = f.useMemo(() => K.map((e) => ({
30
+ 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 }) {
31
+ 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) => ({
32
32
  month: e,
33
- days: r(e, T)
34
- })), [K, T]), Se = f.useMemo(() => q.flatMap((e) => e.days), [q]), J = f.useCallback((e) => {
35
- if (B.has(e)) return "disabled";
33
+ days: r(e, D)
34
+ })), [q, D]), Se = f.useMemo(() => J.flatMap((e) => e.days), [J]), Y = f.useCallback((e) => {
35
+ if (be.has(e)) return "disabled";
36
36
  if (s(e, C)) return "min";
37
- if (o(e, ce)) return "max";
37
+ if (o(e, w)) return "max";
38
38
  }, [
39
- B,
40
- ce,
39
+ be,
40
+ w,
41
41
  C
42
- ]), Y = f.useCallback((e) => !!J(e), [J]), X = f.useMemo(() => Se.map(d).filter((e) => !Y(e)), [Se, Y]), Ce = f.useMemo(() => {
43
- let e = y ?? b?.from ?? z, t = F?.from ?? void 0, n = P ?? void 0;
44
- return X.includes(H) ? H : X.includes(n ?? t ?? e) ? n ?? t ?? e : X[0];
42
+ ]), X = f.useCallback((e) => !!Y(e), [Y]), Z = f.useMemo(() => Se.map(d).filter((e) => !X(e)), [Se, X]), Ce = f.useMemo(() => {
43
+ let e = y ?? b?.from ?? V, t = R?.from ?? void 0, n = L ?? void 0;
44
+ return Z.includes(U) ? U : Z.includes(n ?? t ?? e) ? n ?? t ?? e : Z[0];
45
45
  }, [
46
- F?.from,
47
- P,
48
- H,
46
+ R?.from,
47
+ L,
48
+ U,
49
49
  b?.from,
50
- z,
50
+ V,
51
51
  y,
52
- X
52
+ Z
53
53
  ]);
54
54
  f.useEffect(() => {
55
- A && M(y ?? null);
56
- }, [A, y]), f.useEffect(() => {
57
- j && b && N(b);
58
- }, [j, b]), f.useEffect(() => {
59
- H && V.current.get(H)?.focus();
60
- }, [H]), f.useEffect(() => {
61
- S !== "range" && G(null);
55
+ N && F(y ?? null);
56
+ }, [N, y]), f.useEffect(() => {
57
+ P && b && I(b);
58
+ }, [P, b]), f.useEffect(() => {
59
+ U && H.current.get(U)?.focus();
60
+ }, [U]), f.useEffect(() => {
61
+ S !== "range" && K(null);
62
62
  }, [S]);
63
- let Z = (e) => {
63
+ let Q = (e) => {
64
64
  let t = u(e);
65
- ye(t), se?.(t);
66
- }, Q = (e) => {
67
- let t = e, n = d(t), r = 0;
68
- for (; Y(n) && r < 370;) t = h(t, t < e ? -1 : 1), n = d(t), r += 1;
69
- U(n), K.some((e) => c(t, e)) || Z(u(t));
65
+ _e(t), se?.(t);
66
+ }, $ = (e, t = 1) => {
67
+ let n = e, r = d(n), i = 0;
68
+ for (; X(r) && i < 370;) n = g(n, t), r = d(n), i += 1;
69
+ W(r), q.some((e) => c(n, e)) || Q(u(n));
70
70
  }, we = (e) => {
71
- if (Y(e)) return;
71
+ if (X(e)) return;
72
72
  if (S === "single") {
73
- A || M(e), ie?.(e);
73
+ N || F(e), ie?.(e);
74
74
  return;
75
75
  }
76
- let t = F?.from ?? null, n = F?.to ?? null;
76
+ let t = R?.from ?? null, n = R?.to ?? null;
77
77
  if (!t || t && n || e < t) {
78
78
  let t = {
79
79
  from: e,
80
80
  to: null
81
81
  };
82
- j || N(t), x?.(t);
82
+ P || I(t), x?.(t);
83
83
  return;
84
84
  }
85
- if (_(t, e).some((e) => Y(e))) {
85
+ if (re(t, e).some((e) => X(e))) {
86
86
  let t = {
87
87
  from: e,
88
88
  to: null
89
89
  };
90
- j || N(t), x?.(t);
90
+ P || I(t), x?.(t);
91
91
  return;
92
92
  }
93
93
  let r = {
94
94
  from: t,
95
95
  to: e
96
96
  };
97
- j || N(r), x?.(r);
98
- }, $ = S === "range" && F?.from && !F.to && W && W >= F.from && !_(F.from, W).some((e) => Y(e)) ? {
99
- from: F.from,
100
- to: W
101
- } : null, Te = f.useMemo(() => {
102
- if (!D && !k) return null;
103
- if (k) return k({
97
+ P || I(r), x?.(r);
98
+ }, Te = S === "range" && R?.from && !R.to && G && G >= R.from && !re(R.from, G).some((e) => X(e)) ? {
99
+ from: R.from,
100
+ to: G
101
+ } : null, Ee = f.useMemo(() => {
102
+ if (!A && !M) return null;
103
+ if (M) return M({
104
104
  mode: S,
105
- value: P,
106
- range: F,
107
- locale: w
105
+ value: L,
106
+ range: R,
107
+ locale: E
108
108
  });
109
109
  if (S === "range") {
110
- let e = v(F?.from, w), t = v(F?.to, w);
110
+ let e = v(R?.from, E), t = v(R?.to, E);
111
111
  return e && t ? `${e} -> ${t}` : e ? `${e} -> ...` : "No range selected";
112
112
  }
113
- return v(P, w) ?? "No date selected";
113
+ return v(L, E) ?? "No date selected";
114
114
  }, [
115
- F,
116
- P,
117
- w,
115
+ R,
116
+ L,
117
+ E,
118
118
  S,
119
- k,
120
- D
121
- ]), Ee = () => {
119
+ M,
120
+ A
121
+ ]), De = () => {
122
122
  if (S === "single") {
123
- A || M(null), ie?.("");
123
+ N || F(null), ie?.("");
124
124
  return;
125
125
  }
126
126
  let e = {
127
127
  from: null,
128
128
  to: null
129
129
  };
130
- j || N(e), x?.(e);
131
- }, De = () => {
130
+ P || I(e), x?.(e);
131
+ }, Oe = () => {
132
132
  let e = /* @__PURE__ */ new Date(), t = d(e);
133
- Z(e), U(t), Y(t) || we(t);
134
- }, Oe = (e, t) => {
135
- let r = ((q.find((e) => c(t, e.month))?.days.findIndex((e) => d(e) === d(t)) ?? 0) + 7) % 7;
133
+ Q(e), W(t), X(t) || we(t);
134
+ }, ke = (e, t) => {
135
+ let r = ((J.find((e) => c(t, e.month))?.days.findIndex((e) => d(e) === d(t)) ?? 0) + 7) % 7;
136
136
  switch (e.key) {
137
137
  case "ArrowRight":
138
- e.preventDefault(), Q(h(t, 1));
138
+ e.preventDefault(), $(g(t, 1), 1);
139
139
  break;
140
140
  case "ArrowLeft":
141
- e.preventDefault(), Q(h(t, -1));
141
+ e.preventDefault(), $(g(t, -1), -1);
142
142
  break;
143
143
  case "ArrowDown":
144
- e.preventDefault(), Q(h(t, 7));
144
+ e.preventDefault(), $(g(t, 7), 7);
145
145
  break;
146
146
  case "ArrowUp":
147
- e.preventDefault(), Q(h(t, -7));
147
+ e.preventDefault(), $(g(t, -7), -7);
148
148
  break;
149
149
  case "Home":
150
- e.preventDefault(), Q(h(t, -r));
150
+ e.preventDefault(), $(g(t, -r), -1);
151
151
  break;
152
152
  case "End":
153
- e.preventDefault(), Q(h(t, 6 - r));
153
+ e.preventDefault(), $(g(t, 6 - r), 1);
154
154
  break;
155
155
  case "PageUp":
156
- e.preventDefault(), Q(g(t, n(t, -1)));
156
+ e.preventDefault(), $(_(t, n(t, -1)), -1);
157
157
  break;
158
158
  case "PageDown":
159
- e.preventDefault(), Q(g(t, n(t, 1)));
159
+ e.preventDefault(), $(_(t, n(t, 1)), 1);
160
160
  break;
161
161
  }
162
162
  };
163
- return /* @__PURE__ */ m("div", {
163
+ return /* @__PURE__ */ h("div", {
164
164
  "data-slot": "calendar",
165
- "data-months": L,
165
+ "data-months": B,
166
166
  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),
167
- ...he,
167
+ ...pe,
168
168
  children: [
169
- /* @__PURE__ */ m("div", {
169
+ /* @__PURE__ */ h("div", {
170
170
  className: "mb-3 flex items-center justify-between gap-3",
171
171
  children: [
172
- /* @__PURE__ */ p(t, {
172
+ /* @__PURE__ */ m(t, {
173
173
  type: "button",
174
174
  variant: "outline",
175
175
  size: "icon-sm",
176
176
  className: "rounded-[var(--radius-md)] border-border/70 bg-background text-foreground shadow-none hover:border-border hover:bg-accent hover:text-accent-foreground",
177
- "aria-label": O?.previousMonth ?? "Previous month",
178
- onClick: () => Z(n(I, -R)),
179
- children: /* @__PURE__ */ p(te, {})
177
+ "aria-label": j?.previousMonth ?? "Previous month",
178
+ onClick: () => Q(n(z, -ye)),
179
+ children: /* @__PURE__ */ m(p, {})
180
180
  }),
181
- /* @__PURE__ */ m("div", {
181
+ /* @__PURE__ */ h("div", {
182
182
  className: "flex flex-1 flex-col items-center text-center",
183
- children: [/* @__PURE__ */ p("span", {
183
+ children: [/* @__PURE__ */ m("span", {
184
184
  className: "text-[10px] font-semibold uppercase tracking-[0.24em] text-muted-foreground/90",
185
185
  children: "Calendar"
186
- }), /* @__PURE__ */ p("div", {
186
+ }), /* @__PURE__ */ m("div", {
187
187
  className: "text-base font-semibold capitalize tracking-tight text-foreground",
188
- children: i(I, w)
188
+ children: i(z, E)
189
189
  })]
190
190
  }),
191
- /* @__PURE__ */ p(t, {
191
+ /* @__PURE__ */ m(t, {
192
192
  type: "button",
193
193
  variant: "outline",
194
194
  size: "icon-sm",
195
195
  className: "rounded-[var(--radius-md)] border-border/70 bg-background text-foreground shadow-none hover:border-border hover:bg-accent hover:text-accent-foreground",
196
- "aria-label": O?.nextMonth ?? "Next month",
197
- onClick: () => Z(n(I, R)),
198
- children: /* @__PURE__ */ p(ne, {})
196
+ "aria-label": j?.nextMonth ?? "Next month",
197
+ onClick: () => Q(n(z, ye)),
198
+ children: /* @__PURE__ */ m(te, {})
199
199
  })
200
200
  ]
201
201
  }),
202
- /* @__PURE__ */ p("div", {
203
- className: e("grid gap-3", L > 1 && "sm:grid-cols-2"),
204
- style: L > 2 ? { gridTemplateColumns: `repeat(${L}, minmax(0, 1fr))` } : void 0,
205
- children: q.map(({ month: t, days: n }) => /* @__PURE__ */ m("div", {
202
+ /* @__PURE__ */ m("div", {
203
+ className: e("grid gap-3", B > 1 && "sm:grid-cols-2"),
204
+ style: B > 2 ? { gridTemplateColumns: `repeat(${B}, minmax(0, 1fr))` } : void 0,
205
+ children: J.map(({ month: t, days: n }) => /* @__PURE__ */ h("div", {
206
206
  className: "min-w-[16.5rem] rounded-[var(--radius-md)] bg-transparent p-1",
207
207
  children: [
208
- be && /* @__PURE__ */ p("div", {
208
+ ve && /* @__PURE__ */ m("div", {
209
209
  className: "mb-2 text-center text-sm font-semibold capitalize tracking-tight text-foreground",
210
- children: i(t, w)
210
+ children: i(t, E)
211
211
  }),
212
- /* @__PURE__ */ p("div", {
212
+ /* @__PURE__ */ m("div", {
213
213
  className: "grid grid-cols-7 gap-1 text-center text-[0.68rem] font-semibold uppercase tracking-[0.18em] text-muted-foreground/90",
214
- children: xe.map((e) => /* @__PURE__ */ p("div", {
214
+ children: xe.map((e) => /* @__PURE__ */ m("div", {
215
215
  className: "py-1",
216
216
  children: e
217
217
  }, `${d(t)}-${e}`))
218
218
  }),
219
- /* @__PURE__ */ p("div", {
219
+ /* @__PURE__ */ m("div", {
220
220
  className: "mt-1.5 grid grid-cols-7 gap-1",
221
221
  children: n.map((n) => {
222
- let r = d(n), i = !c(n, t), a = S === "single" ? P === r : r === F?.from || r === F?.to, o = S === "range" && ee(r, F?.from, F?.to), s = !o && S === "range" && ee(r, $?.from, $?.to), l = J(r), u = !!l, f = l ? O?.disabledDate?.(r, l) : void 0;
223
- return /* @__PURE__ */ p("button", {
222
+ 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;
223
+ return /* @__PURE__ */ m("button", {
224
224
  ref: (e) => {
225
- e ? V.current.set(r, e) : V.current.delete(r);
225
+ e ? H.current.set(r, e) : H.current.delete(r);
226
226
  },
227
227
  type: "button",
228
- disabled: u,
229
- "aria-label": f ?? O?.selectDate?.(r) ?? r,
230
- "aria-current": r === z ? "date" : void 0,
228
+ disabled: te,
229
+ "aria-label": h ?? j?.selectDate?.(r) ?? r,
230
+ "aria-current": r === V ? "date" : void 0,
231
+ "aria-selected": a || o || s || void 0,
231
232
  tabIndex: r === Ce ? 0 : -1,
232
- title: f,
233
+ title: h,
233
234
  "data-selected": a || void 0,
234
- "data-today": r === z || void 0,
235
+ "data-range-start": l || void 0,
236
+ "data-range-end": u || void 0,
237
+ "data-range-middle": f || void 0,
238
+ "data-today": r === V || void 0,
235
239
  "data-outside": i || void 0,
236
240
  "data-in-range": o || void 0,
237
241
  "data-in-preview-range": s || void 0,
238
- "data-disabled-reason": l,
239
- 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 && E ? "text-muted-foreground/34" : "text-foreground", i && !E && "pointer-events-none opacity-0", r === z && "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"),
240
- onFocus: () => U(r),
241
- onMouseEnter: () => G(r),
242
- onMouseLeave: () => G(null),
243
- onKeyDown: (e) => Oe(e, n),
242
+ "data-disabled-reason": p,
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 === 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"),
244
+ onFocus: () => W(r),
245
+ onMouseEnter: () => K(r),
246
+ onMouseLeave: () => K(null),
247
+ onKeyDown: (e) => ke(e, n),
244
248
  onClick: () => we(r),
245
249
  children: n.getDate()
246
250
  }, r);
@@ -249,25 +253,25 @@ function y({ className: l, value: y, range: b, onValueChange: ie, onRangeChange:
249
253
  ]
250
254
  }, d(t)))
251
255
  }),
252
- pe || me || D || k ? /* @__PURE__ */ m("div", {
256
+ O || k || A || M ? /* @__PURE__ */ h("div", {
253
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",
254
- children: [/* @__PURE__ */ p("div", {
258
+ children: [/* @__PURE__ */ m("div", {
255
259
  className: "text-xs text-muted-foreground",
256
- children: Te
257
- }), /* @__PURE__ */ m("div", {
260
+ children: Ee
261
+ }), /* @__PURE__ */ h("div", {
258
262
  className: "flex flex-wrap gap-2",
259
- children: [me ? /* @__PURE__ */ p(t, {
263
+ children: [k ? /* @__PURE__ */ m(t, {
260
264
  type: "button",
261
265
  size: "sm",
262
266
  variant: "ghost",
263
- onClick: Ee,
264
- children: O?.clear ?? "Clear"
265
- }) : null, pe ? /* @__PURE__ */ p(t, {
267
+ onClick: De,
268
+ children: j?.clear ?? "Clear"
269
+ }) : null, O ? /* @__PURE__ */ m(t, {
266
270
  type: "button",
267
271
  size: "sm",
268
272
  variant: "outline",
269
- onClick: De,
270
- children: O?.today ?? "Today"
273
+ onClick: Oe,
274
+ children: j?.today ?? "Today"
271
275
  }) : null]
272
276
  })]
273
277
  }) : null
@@ -1 +1 @@
1
- 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("../ui/popover/index.cjs"),i=require("./date-utils.cjs"),a=require("./calendar.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("lucide-react"),c=require("react/jsx-runtime");function l(e){let t=i.parseDateKey(e);return t?new Intl.DateTimeFormat(`en-US`,{dateStyle:`medium`}).format(t):e}function u(e,t){return typeof e==`string`?e:t}function d({className:e,value:i,onValueChange:d,labels:f,placeholder:p,disabled:m=!1,clearable:h=!0,formatValue:g=l,closeOnSelect:_=!1,closeOnPresetSelect:v=!1,showFooter:y=!0,presets:b,triggerClassName:x,contentClassName:S,numberOfMonths:C=2,pagedNavigation:w=!0,...T}){let[E,D]=o.useState(!1),[O,k]=o.useState(i??{}),A=i?.from??``,j=i?.to??``,M=!!(A||j),N=y?O:i,P=N?.from??``,F=N?.to??``,I=!!(P||F),L=A&&j?`${g(A)} - ${g(j)}`:A?`${g(A)} - ...`:p??f?.placeholder??`Select date range`,R=P&&F?`${g(P)} - ${g(F)}`:P?`${g(P)} - ...`:f?.placeholder??`Select date range`;o.useEffect(()=>{E&&y&&k(i??{})},[E,y,i]);let z=e=>{if(y){k(e);return}d?.(e),_&&e.from&&e.to&&D(!1)},B=()=>{d?.(O),D(!1)},V=()=>{let e={};if(y){k(e);return}d?.(e)},H=()=>{let e={};k(e),d?.(e)},U=e=>{e.preventDefault(),e.stopPropagation(),H()},W=e=>{if(y){k(e),v&&(d?.(e),D(!1));return}d?.(e),(_||v)&&e.from&&e.to&&D(!1)};return(0,c.jsx)(`div`,{"data-slot":`date-range-picker`,className:t.cn(`w-full`,e),children:(0,c.jsxs)(r.Popover,{open:E,onOpenChange:D,children:[(0,c.jsxs)(r.PopoverTrigger,{render:(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,disabled:m,className:t.cn(`group min-h-11 w-full justify-start gap-3 rounded-[var(--aui-control-radius,var(--radius-md))] border-border/80 bg-background/96 px-3 text-left font-normal shadow-[var(--aui-control-shadow,0_1px_2px_rgba(15,23,42,0.04))]`,!M&&`text-muted-foreground`,x)}),children:[(0,c.jsx)(s.CalendarIcon,{"data-icon":`inline-start`,className:t.cn(M&&`text-primary`)}),M?(0,c.jsxs)(`span`,{className:`grid min-w-0 flex-1 grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center gap-2`,children:[(0,c.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[(0,c.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:f?.start??`Start`}),(0,c.jsx)(`span`,{className:`truncate text-sm font-semibold text-foreground`,children:A?g(A):`...`})]}),(0,c.jsx)(`span`,{className:`text-muted-foreground`,children:`-`}),(0,c.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[(0,c.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:f?.end??`End`}),(0,c.jsx)(`span`,{className:`truncate text-sm font-semibold text-foreground`,children:j?g(j):`...`})]})]}):(0,c.jsxs)(`span`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,c.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Range`}),(0,c.jsx)(`span`,{className:`truncate text-sm`,children:L})]}),h&&M?(0,c.jsx)(`span`,{role:`button`,tabIndex:0,"aria-label":u(f?.clear,`Clear date range`),className:`ml-auto inline-flex size-7 shrink-0 items-center justify-center rounded-[var(--radius-sm)] text-muted-foreground opacity-80 transition hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,onClick:U,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),H())},children:(0,c.jsx)(s.XIcon,{className:`size-3.5`})}):null]}),(0,c.jsxs)(r.PopoverContent,{align:`start`,className:t.cn(`w-auto overflow-hidden rounded-[var(--aui-card-radius,var(--radius-lg))] border-border/70 bg-popover p-0 shadow-[var(--aui-control-panel-shadow,0_18px_40px_rgba(15,23,42,0.14))] backdrop-blur`,S),children:[b?.length?(0,c.jsx)(`div`,{className:`flex flex-wrap gap-2 border-b border-border/70 bg-muted/20 px-3 py-3`,children:b.map((e,t)=>(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,className:`h-7 rounded-full px-3 text-xs`,onClick:()=>W(e.value),children:e.label},t))}):null,(0,c.jsx)(a.Calendar,{mode:`range`,range:N,onRangeChange:z,labels:f,renderSelectionSummary:({range:e})=>{let t=e?.from?g(e.from):null,n=e?.to?g(e.to):null;return t&&n?`${t} -> ${n}`:t?`${t} -> ...`:`No range selected`},numberOfMonths:C,pagedNavigation:w,showClearShortcut:!y&&h,showSelectionSummary:!0,...T}),y&&(0,c.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-border/70 bg-muted/24 px-4 py-3`,children:[(0,c.jsx)(`div`,{className:`min-w-0 text-sm text-muted-foreground`,children:(0,c.jsx)(`span`,{className:`block truncate`,children:R})}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(n.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:V,children:f?.clear??`Clear`}),(0,c.jsx)(n.Button,{type:`button`,size:`sm`,disabled:!I,onClick:B,children:f?.apply??`Apply`})]})]})]})]})})}exports.DateRangePicker=d;
1
+ 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("../ui/popover/index.cjs"),i=require("./date-utils.cjs"),a=require("./calendar.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("lucide-react"),c=require("react/jsx-runtime");function l(e){let t=i.parseDateKey(e);return t?new Intl.DateTimeFormat(`en-US`,{dateStyle:`medium`}).format(t):e}function u(e,t){return typeof e==`string`?e:t}function d({className:e,value:i,onValueChange:d,labels:f,placeholder:p,disabled:m=!1,clearable:h=!0,formatValue:g=l,closeOnSelect:_=!1,closeOnPresetSelect:v=!1,showFooter:y=!0,presets:b,triggerClassName:x,contentClassName:S,months:C,numberOfMonths:w=2,pagedNavigation:T=!0,...E}){let[D,O]=o.useState(!1),[k,A]=o.useState(i??{}),j=i?.from??``,M=i?.to??``,N=!!(j||M),P=y?k:i,F=P?.from??``,I=P?.to??``,L=!!(F||I),R=C??w,z=j&&M?`${g(j)} - ${g(M)}`:j?`${g(j)} - ...`:p??f?.placeholder??`Select date range`,B=F&&I?`${g(F)} - ${g(I)}`:F?`${g(F)} - ...`:f?.placeholder??`Select date range`;o.useEffect(()=>{D&&y&&A(i??{})},[D,y,i]);let V=e=>{if(y){A(e);return}d?.(e),_&&e.from&&e.to&&O(!1)},H=()=>{d?.(k),O(!1)},U=()=>{let e={};if(y){A(e);return}d?.(e)},W=()=>{let e={};A(e),d?.(e)},G=e=>{e.preventDefault(),e.stopPropagation(),W()},K=e=>{if(y){A(e),v&&(d?.(e),O(!1));return}d?.(e),(_||v)&&e.from&&e.to&&O(!1)};return(0,c.jsx)(`div`,{"data-slot":`date-range-picker`,className:t.cn(`w-full`,e),children:(0,c.jsxs)(r.Popover,{open:D,onOpenChange:O,children:[(0,c.jsxs)(r.PopoverTrigger,{render:(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,disabled:m,className:t.cn(`group min-h-11 w-full justify-start gap-3 rounded-[var(--aui-control-radius,var(--radius-md))] border-border/80 bg-background/96 px-3 text-left font-normal shadow-[var(--aui-control-shadow,0_1px_2px_rgba(15,23,42,0.04))]`,!N&&`text-muted-foreground`,x)}),children:[(0,c.jsx)(s.CalendarIcon,{"data-icon":`inline-start`,className:t.cn(N&&`text-primary`)}),N?(0,c.jsxs)(`span`,{className:`grid min-w-0 flex-1 grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center gap-2`,children:[(0,c.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[(0,c.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:f?.start??`Start`}),(0,c.jsx)(`span`,{className:`truncate text-sm font-semibold text-foreground`,children:j?g(j):`...`})]}),(0,c.jsx)(`span`,{className:`text-muted-foreground`,children:`-`}),(0,c.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[(0,c.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:f?.end??`End`}),(0,c.jsx)(`span`,{className:`truncate text-sm font-semibold text-foreground`,children:M?g(M):`...`})]})]}):(0,c.jsxs)(`span`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,c.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Range`}),(0,c.jsx)(`span`,{className:`truncate text-sm`,children:z})]}),h&&N?(0,c.jsx)(`span`,{role:`button`,tabIndex:0,"aria-label":u(f?.clear,`Clear date range`),className:`ml-auto inline-flex size-7 shrink-0 items-center justify-center rounded-[var(--radius-sm)] text-muted-foreground opacity-80 transition hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,onClick:G,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),W())},children:(0,c.jsx)(s.XIcon,{className:`size-3.5`})}):null]}),(0,c.jsxs)(r.PopoverContent,{align:`start`,className:t.cn(`w-auto overflow-hidden rounded-[var(--aui-card-radius,var(--radius-lg))] border-border/70 bg-popover p-0 shadow-[var(--aui-control-panel-shadow,0_18px_40px_rgba(15,23,42,0.14))] backdrop-blur`,S),children:[b?.length?(0,c.jsx)(`div`,{className:`flex flex-wrap gap-2 border-b border-border/70 bg-muted/20 px-3 py-3`,children:b.map((e,t)=>(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,className:`h-7 rounded-full px-3 text-xs`,onClick:()=>K(e.value),children:e.label},t))}):null,(0,c.jsx)(a.Calendar,{mode:`range`,range:P,onRangeChange:V,labels:f,renderSelectionSummary:({range:e})=>{let t=e?.from?g(e.from):null,n=e?.to?g(e.to):null;return t&&n?`${t} -> ${n}`:t?`${t} -> ...`:`No range selected`},numberOfMonths:R,pagedNavigation:T,showClearShortcut:!y&&h,showSelectionSummary:!0,...E}),y&&(0,c.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-border/70 bg-muted/24 px-4 py-3`,children:[(0,c.jsx)(`div`,{className:`min-w-0 text-sm text-muted-foreground`,children:(0,c.jsx)(`span`,{className:`block truncate`,children:B})}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(n.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:U,children:f?.clear??`Clear`}),(0,c.jsx)(n.Button,{type:`button`,size:`sm`,disabled:!L,onClick:H,children:f?.apply??`Apply`})]})]})]})]})})}exports.DateRangePicker=d;
@@ -26,6 +26,7 @@ export type DateRangePickerProps = Omit<CalendarProps, "mode" | "value" | "onVal
26
26
  presets?: DateRangePickerPreset[];
27
27
  triggerClassName?: string;
28
28
  contentClassName?: string;
29
+ months?: number;
29
30
  };
30
- declare function DateRangePicker({ className, value, onValueChange, labels, placeholder, disabled, clearable, formatValue, closeOnSelect, closeOnPresetSelect, showFooter, presets, triggerClassName, contentClassName, numberOfMonths, pagedNavigation, ...calendarProps }: DateRangePickerProps): React.JSX.Element;
31
+ declare function DateRangePicker({ className, value, onValueChange, labels, placeholder, disabled, clearable, formatValue, closeOnSelect, closeOnPresetSelect, showFooter, presets, triggerClassName, contentClassName, months, numberOfMonths, pagedNavigation, ...calendarProps }: DateRangePickerProps): React.JSX.Element;
31
32
  export { DateRangePicker };