@acronis-platform/ui-react 4.0.0 → 5.0.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 (628) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +11 -0
  2. package/dist/components/ui/accordion/accordion.js +40 -53
  3. package/dist/components/ui/accordion/accordion.js.map +1 -1
  4. package/dist/components/ui/accordion-container/accordion-container.js +93 -141
  5. package/dist/components/ui/accordion-container/accordion-container.js.map +1 -1
  6. package/dist/components/ui/alert/alert.js +95 -156
  7. package/dist/components/ui/alert/alert.js.map +1 -1
  8. package/dist/components/ui/app-shell-chat/app-shell-chat.js +233 -332
  9. package/dist/components/ui/app-shell-chat/app-shell-chat.js.map +1 -1
  10. package/dist/components/ui/area-chart/area-chart.js +155 -240
  11. package/dist/components/ui/area-chart/area-chart.js.map +1 -1
  12. package/dist/components/ui/avatar/avatar.js +47 -84
  13. package/dist/components/ui/avatar/avatar.js.map +1 -1
  14. package/dist/components/ui/bar-chart/bar-chart.js +405 -615
  15. package/dist/components/ui/bar-chart/bar-chart.js.map +1 -1
  16. package/dist/components/ui/breadcrumb/breadcrumb.js +68 -116
  17. package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -1
  18. package/dist/components/ui/button/button.js +31 -40
  19. package/dist/components/ui/button/button.js.map +1 -1
  20. package/dist/components/ui/button-group/button-group.js +33 -55
  21. package/dist/components/ui/button-group/button-group.js.map +1 -1
  22. package/dist/components/ui/button-icon/button-icon.js +26 -35
  23. package/dist/components/ui/button-icon/button-icon.js.map +1 -1
  24. package/dist/components/ui/button-icon-input/button-icon-input.js +28 -35
  25. package/dist/components/ui/button-icon-input/button-icon-input.js.map +1 -1
  26. package/dist/components/ui/button-icon-menu/button-icon-menu.js +22 -26
  27. package/dist/components/ui/button-icon-menu/button-icon-menu.js.map +1 -1
  28. package/dist/components/ui/button-menu/button-menu.js +36 -52
  29. package/dist/components/ui/button-menu/button-menu.js.map +1 -1
  30. package/dist/components/ui/calendar/calendar.js +103 -202
  31. package/dist/components/ui/calendar/calendar.js.map +1 -1
  32. package/dist/components/ui/calendar-panel/calendar-panel-utils.js +46 -57
  33. package/dist/components/ui/calendar-panel/calendar-panel-utils.js.map +1 -1
  34. package/dist/components/ui/calendar-panel/calendar-panel.js +136 -257
  35. package/dist/components/ui/calendar-panel/calendar-panel.js.map +1 -1
  36. package/dist/components/ui/card/card.js +104 -168
  37. package/dist/components/ui/card/card.js.map +1 -1
  38. package/dist/components/ui/card-filter/card-filter.js +49 -76
  39. package/dist/components/ui/card-filter/card-filter.js.map +1 -1
  40. package/dist/components/ui/card-section/card-section.js +81 -111
  41. package/dist/components/ui/card-section/card-section.js.map +1 -1
  42. package/dist/components/ui/carousel-dialog/carousel-dialog.js +49 -87
  43. package/dist/components/ui/carousel-dialog/carousel-dialog.js.map +1 -1
  44. package/dist/components/ui/category-bar/category-bar.js +123 -162
  45. package/dist/components/ui/category-bar/category-bar.js.map +1 -1
  46. package/dist/components/ui/chart/chart-format.js +117 -153
  47. package/dist/components/ui/chart/chart-format.js.map +1 -1
  48. package/dist/components/ui/chart/chart-palette.js +63 -107
  49. package/dist/components/ui/chart/chart-palette.js.map +1 -1
  50. package/dist/components/ui/chart/chart.js +180 -305
  51. package/dist/components/ui/chart/chart.js.map +1 -1
  52. package/dist/components/ui/chart-state/chart-state-illustrations.js +400 -298
  53. package/dist/components/ui/chart-state/chart-state-illustrations.js.map +1 -1
  54. package/dist/components/ui/chart-state/chart-state.js +40 -56
  55. package/dist/components/ui/chart-state/chart-state.js.map +1 -1
  56. package/dist/components/ui/chart-widget/chart-widget.js +40 -87
  57. package/dist/components/ui/chart-widget/chart-widget.js.map +1 -1
  58. package/dist/components/ui/checkbox/checkbox.js +56 -69
  59. package/dist/components/ui/checkbox/checkbox.js.map +1 -1
  60. package/dist/components/ui/chip/chip.js +51 -70
  61. package/dist/components/ui/chip/chip.js.map +1 -1
  62. package/dist/components/ui/combobox/combobox.js +88 -151
  63. package/dist/components/ui/combobox/combobox.js.map +1 -1
  64. package/dist/components/ui/composed-chart/composed-chart.js +297 -434
  65. package/dist/components/ui/composed-chart/composed-chart.js.map +1 -1
  66. package/dist/components/ui/confidence-cone/confidence-cone.js +214 -332
  67. package/dist/components/ui/confidence-cone/confidence-cone.js.map +1 -1
  68. package/dist/components/ui/data-table/data-table-bulk-actions-bar.js +32 -37
  69. package/dist/components/ui/data-table/data-table-bulk-actions-bar.js.map +1 -1
  70. package/dist/components/ui/data-table/data-table-column-header.js +23 -38
  71. package/dist/components/ui/data-table/data-table-column-header.js.map +1 -1
  72. package/dist/components/ui/data-table/data-table-expand-trigger.js +23 -46
  73. package/dist/components/ui/data-table/data-table-expand-trigger.js.map +1 -1
  74. package/dist/components/ui/data-table/data-table-pagination.js +84 -89
  75. package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
  76. package/dist/components/ui/data-table/data-table-selection.js +7 -6
  77. package/dist/components/ui/data-table/data-table-selection.js.map +1 -1
  78. package/dist/components/ui/data-table/data-table-toolbar.js +51 -76
  79. package/dist/components/ui/data-table/data-table-toolbar.js.map +1 -1
  80. package/dist/components/ui/data-table/data-table-view-options.js +21 -28
  81. package/dist/components/ui/data-table/data-table-view-options.js.map +1 -1
  82. package/dist/components/ui/data-table/data-table.js +304 -438
  83. package/dist/components/ui/data-table/data-table.js.map +1 -1
  84. package/dist/components/ui/date-range-picker/date-range-picker-utils.js +16 -14
  85. package/dist/components/ui/date-range-picker/date-range-picker-utils.js.map +1 -1
  86. package/dist/components/ui/date-range-picker/date-range-picker.js +77 -111
  87. package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
  88. package/dist/components/ui/description-list/description-list.js +44 -54
  89. package/dist/components/ui/description-list/description-list.js.map +1 -1
  90. package/dist/components/ui/dialog/dialog.js +229 -310
  91. package/dist/components/ui/dialog/dialog.js.map +1 -1
  92. package/dist/components/ui/dialog-footer-carousel/dialog-footer-carousel.js +33 -57
  93. package/dist/components/ui/dialog-footer-carousel/dialog-footer-carousel.js.map +1 -1
  94. package/dist/components/ui/dialog-footer-default/dialog-footer-default.js +21 -26
  95. package/dist/components/ui/dialog-footer-default/dialog-footer-default.js.map +1 -1
  96. package/dist/components/ui/dialog-welcome/dialog-welcome.js +221 -267
  97. package/dist/components/ui/dialog-welcome/dialog-welcome.js.map +1 -1
  98. package/dist/components/ui/dropdown-menu/dropdown-menu.js +101 -168
  99. package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -1
  100. package/dist/components/ui/empty/empty.js +49 -77
  101. package/dist/components/ui/empty/empty.js.map +1 -1
  102. package/dist/components/ui/empty-overlay/empty-overlay.js +43 -49
  103. package/dist/components/ui/empty-overlay/empty-overlay.js.map +1 -1
  104. package/dist/components/ui/field/field.js +95 -178
  105. package/dist/components/ui/field/field.js.map +1 -1
  106. package/dist/components/ui/filter-cards/filter-cards.js +16 -25
  107. package/dist/components/ui/filter-cards/filter-cards.js.map +1 -1
  108. package/dist/components/ui/filter-chips/filter-chips.js +36 -44
  109. package/dist/components/ui/filter-chips/filter-chips.js.map +1 -1
  110. package/dist/components/ui/filter-search/filter-search.js +139 -209
  111. package/dist/components/ui/filter-search/filter-search.js.map +1 -1
  112. package/dist/components/ui/fitted-actions/fitted-actions.js +87 -137
  113. package/dist/components/ui/fitted-actions/fitted-actions.js.map +1 -1
  114. package/dist/components/ui/form/form.js +14 -15
  115. package/dist/components/ui/form/form.js.map +1 -1
  116. package/dist/components/ui/funnel-chart/funnel-chart.js +266 -274
  117. package/dist/components/ui/funnel-chart/funnel-chart.js.map +1 -1
  118. package/dist/components/ui/grid/grid.js +61 -68
  119. package/dist/components/ui/grid/grid.js.map +1 -1
  120. package/dist/components/ui/histogram/histogram.js +107 -141
  121. package/dist/components/ui/histogram/histogram.js.map +1 -1
  122. package/dist/components/ui/input/input.js +14 -21
  123. package/dist/components/ui/input/input.js.map +1 -1
  124. package/dist/components/ui/input-date-picker/input-date-picker.js +70 -114
  125. package/dist/components/ui/input-date-picker/input-date-picker.js.map +1 -1
  126. package/dist/components/ui/input-num-picker/input-num-picker.js +48 -0
  127. package/dist/components/ui/input-num-picker/input-num-picker.js.map +1 -0
  128. package/dist/components/ui/input-otp/input-otp.js +75 -104
  129. package/dist/components/ui/input-otp/input-otp.js.map +1 -1
  130. package/dist/components/ui/input-password/input-password.js +71 -126
  131. package/dist/components/ui/input-password/input-password.js.map +1 -1
  132. package/dist/components/ui/input-search/input-search.js +32 -56
  133. package/dist/components/ui/input-search/input-search.js.map +1 -1
  134. package/dist/components/ui/input-select/input-select.js +234 -335
  135. package/dist/components/ui/input-select/input-select.js.map +1 -1
  136. package/dist/components/ui/input-text/input-text.js +54 -98
  137. package/dist/components/ui/input-text/input-text.js.map +1 -1
  138. package/dist/components/ui/input-text-area/input-text-area.js +41 -86
  139. package/dist/components/ui/input-text-area/input-text-area.js.map +1 -1
  140. package/dist/components/ui/label/label.js +6 -5
  141. package/dist/components/ui/label/label.js.map +1 -1
  142. package/dist/components/ui/line-chart/line-chart.js +175 -277
  143. package/dist/components/ui/line-chart/line-chart.js.map +1 -1
  144. package/dist/components/ui/link/link.js +34 -54
  145. package/dist/components/ui/link/link.js.map +1 -1
  146. package/dist/components/ui/loading/loading.js +51 -78
  147. package/dist/components/ui/loading/loading.js.map +1 -1
  148. package/dist/components/ui/meter/meter.js +79 -93
  149. package/dist/components/ui/meter/meter.js.map +1 -1
  150. package/dist/components/ui/metric/metric.js +83 -89
  151. package/dist/components/ui/metric/metric.js.map +1 -1
  152. package/dist/components/ui/number-field/number-field.js +36 -60
  153. package/dist/components/ui/number-field/number-field.js.map +1 -1
  154. package/dist/components/ui/page-content/page-content.js +15 -19
  155. package/dist/components/ui/page-content/page-content.js.map +1 -1
  156. package/dist/components/ui/page-header/page-header.js +120 -181
  157. package/dist/components/ui/page-header/page-header.js.map +1 -1
  158. package/dist/components/ui/pagination/pagination.js +58 -86
  159. package/dist/components/ui/pagination/pagination.js.map +1 -1
  160. package/dist/components/ui/pie-chart/pie-chart.js +189 -268
  161. package/dist/components/ui/pie-chart/pie-chart.js.map +1 -1
  162. package/dist/components/ui/popover/popover.js +51 -96
  163. package/dist/components/ui/popover/popover.js.map +1 -1
  164. package/dist/components/ui/progress/progress.js +23 -29
  165. package/dist/components/ui/progress/progress.js.map +1 -1
  166. package/dist/components/ui/progress-circle/progress-circle.js +97 -113
  167. package/dist/components/ui/progress-circle/progress-circle.js.map +1 -1
  168. package/dist/components/ui/radar-chart/radar-chart.js +137 -225
  169. package/dist/components/ui/radar-chart/radar-chart.js.map +1 -1
  170. package/dist/components/ui/radial-bar-chart/radial-bar-chart.js +267 -399
  171. package/dist/components/ui/radial-bar-chart/radial-bar-chart.js.map +1 -1
  172. package/dist/components/ui/radio/radio.js +22 -43
  173. package/dist/components/ui/radio/radio.js.map +1 -1
  174. package/dist/components/ui/resizable/resizable.js +20 -64
  175. package/dist/components/ui/resizable/resizable.js.map +1 -1
  176. package/dist/components/ui/sankey-chart/sankey-chart.js +155 -217
  177. package/dist/components/ui/sankey-chart/sankey-chart.js.map +1 -1
  178. package/dist/components/ui/scatter-chart/scatter-chart.js +95 -140
  179. package/dist/components/ui/scatter-chart/scatter-chart.js.map +1 -1
  180. package/dist/components/ui/scroll-area/scroll-area.js +43 -77
  181. package/dist/components/ui/scroll-area/scroll-area.js.map +1 -1
  182. package/dist/components/ui/search/search.js +58 -92
  183. package/dist/components/ui/search/search.js.map +1 -1
  184. package/dist/components/ui/section/section.js +125 -163
  185. package/dist/components/ui/section/section.js.map +1 -1
  186. package/dist/components/ui/separator/separator.js +16 -22
  187. package/dist/components/ui/separator/separator.js.map +1 -1
  188. package/dist/components/ui/sheet/sheet-details.js +55 -78
  189. package/dist/components/ui/sheet/sheet-details.js.map +1 -1
  190. package/dist/components/ui/sheet/sheet.js +80 -136
  191. package/dist/components/ui/sheet/sheet.js.map +1 -1
  192. package/dist/components/ui/sidebar-primary/sidebar-primary.js +220 -364
  193. package/dist/components/ui/sidebar-primary/sidebar-primary.js.map +1 -1
  194. package/dist/components/ui/sidebar-secondary/sidebar-secondary.js +459 -641
  195. package/dist/components/ui/sidebar-secondary/sidebar-secondary.js.map +1 -1
  196. package/dist/components/ui/skeleton/skeleton.js +14 -21
  197. package/dist/components/ui/skeleton/skeleton.js.map +1 -1
  198. package/dist/components/ui/slider/slider.js +28 -42
  199. package/dist/components/ui/slider/slider.js.map +1 -1
  200. package/dist/components/ui/spinner/spinner.js +28 -37
  201. package/dist/components/ui/spinner/spinner.js.map +1 -1
  202. package/dist/components/ui/stack/stack.js +59 -61
  203. package/dist/components/ui/stack/stack.js.map +1 -1
  204. package/dist/components/ui/stepper/stepper.js +52 -70
  205. package/dist/components/ui/stepper/stepper.js.map +1 -1
  206. package/dist/components/ui/stepper-item/stepper-item.js +85 -116
  207. package/dist/components/ui/stepper-item/stepper-item.js.map +1 -1
  208. package/dist/components/ui/switch/switch.js +26 -40
  209. package/dist/components/ui/switch/switch.js.map +1 -1
  210. package/dist/components/ui/table/table-pagination.js +91 -106
  211. package/dist/components/ui/table/table-pagination.js.map +1 -1
  212. package/dist/components/ui/table/table-view-options.js +37 -53
  213. package/dist/components/ui/table/table-view-options.js.map +1 -1
  214. package/dist/components/ui/table/table.js +90 -177
  215. package/dist/components/ui/table/table.js.map +1 -1
  216. package/dist/components/ui/tabs/tabs.js +26 -43
  217. package/dist/components/ui/tabs/tabs.js.map +1 -1
  218. package/dist/components/ui/tag/tag.js +42 -47
  219. package/dist/components/ui/tag/tag.js.map +1 -1
  220. package/dist/components/ui/timeline/timeline.js +161 -239
  221. package/dist/components/ui/timeline/timeline.js.map +1 -1
  222. package/dist/components/ui/timer/timer.js +24 -47
  223. package/dist/components/ui/timer/timer.js.map +1 -1
  224. package/dist/components/ui/toast/toast.js +134 -189
  225. package/dist/components/ui/toast/toast.js.map +1 -1
  226. package/dist/components/ui/toggle-group/toggle-group.js +28 -46
  227. package/dist/components/ui/toggle-group/toggle-group.js.map +1 -1
  228. package/dist/components/ui/toolbar/toolbar.js +128 -201
  229. package/dist/components/ui/toolbar/toolbar.js.map +1 -1
  230. package/dist/components/ui/tooltip/tooltip.js +35 -57
  231. package/dist/components/ui/tooltip/tooltip.js.map +1 -1
  232. package/dist/components/ui/treemap/treemap.js +135 -213
  233. package/dist/components/ui/treemap/treemap.js.map +1 -1
  234. package/dist/components/ui/trend-indicator/trend-indicator.js +48 -62
  235. package/dist/components/ui/trend-indicator/trend-indicator.js.map +1 -1
  236. package/dist/components/ui/truncate-text/middle-truncate.js +19 -19
  237. package/dist/components/ui/truncate-text/middle-truncate.js.map +1 -1
  238. package/dist/components/ui/truncate-text/text-width.js +11 -10
  239. package/dist/components/ui/truncate-text/text-width.js.map +1 -1
  240. package/dist/components/ui/truncate-text/truncate-text.js +92 -152
  241. package/dist/components/ui/truncate-text/truncate-text.js.map +1 -1
  242. package/dist/components/ui/widget-placeholder/widget-placeholder.js +63 -106
  243. package/dist/components/ui/widget-placeholder/widget-placeholder.js.map +1 -1
  244. package/dist/components/ui/wizard/wizard.js +36 -59
  245. package/dist/components/ui/wizard/wizard.js.map +1 -1
  246. package/dist/hooks/use-intersection-observer.js +27 -25
  247. package/dist/hooks/use-intersection-observer.js.map +1 -1
  248. package/dist/hooks/use-sort-state.js +43 -33
  249. package/dist/hooks/use-sort-state.js.map +1 -1
  250. package/dist/hooks/use-table-url-state.js +100 -109
  251. package/dist/hooks/use-table-url-state.js.map +1 -1
  252. package/dist/hooks/use-wizard.js +57 -71
  253. package/dist/hooks/use-wizard.js.map +1 -1
  254. package/dist/index.js +125 -550
  255. package/dist/lib/breakpoints.js +8 -13
  256. package/dist/lib/breakpoints.js.map +1 -1
  257. package/dist/lib/deep-equal.js +14 -22
  258. package/dist/lib/deep-equal.js.map +1 -1
  259. package/dist/lib/portal-container.js +16 -12
  260. package/dist/lib/portal-container.js.map +1 -1
  261. package/dist/lib/use-doc-dir.js +11 -10
  262. package/dist/lib/use-doc-dir.js.map +1 -1
  263. package/dist/lib/utils.js +8 -7
  264. package/dist/lib/utils.js.map +1 -1
  265. package/dist/llms/funnel-chart.md +269 -101
  266. package/dist/llms/input-num-picker.md +180 -0
  267. package/dist/llms/input-select.md +175 -1
  268. package/dist/llms/radar-chart.md +15 -5
  269. package/dist/llms.txt +3 -2
  270. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/index.js +58 -61
  271. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/index.js.map +1 -1
  272. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/mini.js +71 -85
  273. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/mini.js.map +1 -1
  274. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/index.js +6 -0
  275. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tz/index.js +1 -0
  276. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzName/index.js +11 -11
  277. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzName/index.js.map +1 -1
  278. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzOffset/index.js +22 -21
  279. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzOffset/index.js.map +1 -1
  280. package/dist/node_modules/.pnpm/@tanstack_react-table@8.21.3_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@tanstack/react-table/build/lib/index.js +36 -99
  281. package/dist/node_modules/.pnpm/@tanstack_react-table@8.21.3_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@tanstack/react-table/build/lib/index.js.map +1 -1
  282. package/dist/node_modules/.pnpm/@tanstack_table-core@8.21.3/node_modules/@tanstack/table-core/build/lib/index.js +1478 -1852
  283. package/dist/node_modules/.pnpm/@tanstack_table-core@8.21.3/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -1
  284. package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js +34 -35
  285. package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js.map +1 -1
  286. package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js +18 -15
  287. package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -1
  288. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/addLeadingZeros.js +7 -7
  289. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -1
  290. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/defaultOptions.js +8 -7
  291. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/defaultOptions.js.map +1 -1
  292. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/formatters.js +387 -580
  293. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
  294. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/lightFormatters.js +44 -59
  295. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
  296. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/longFormatters.js +39 -52
  297. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -1
  298. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +9 -18
  299. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -1
  300. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/normalizeDates.js +9 -11
  301. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/normalizeDates.js.map +1 -1
  302. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/normalizeInterval.js +12 -8
  303. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/normalizeInterval.js.map +1 -1
  304. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/protectedTokens.js +21 -17
  305. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/_lib/protectedTokens.js.map +1 -1
  306. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addDays.js +10 -9
  307. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addDays.js.map +1 -1
  308. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addMonths.js +13 -19
  309. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addMonths.js.map +1 -1
  310. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addWeeks.js +8 -7
  311. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addWeeks.js.map +1 -1
  312. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addYears.js +8 -7
  313. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addYears.js.map +1 -1
  314. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constants.js +12 -7
  315. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constants.js.map +1 -1
  316. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constructFrom.js +8 -7
  317. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constructFrom.js.map +1 -1
  318. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/differenceInCalendarDays.js +12 -15
  319. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/differenceInCalendarDays.js.map +1 -1
  320. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/differenceInCalendarMonths.js +9 -12
  321. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/differenceInCalendarMonths.js.map +1 -1
  322. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/eachMonthOfInterval.js +16 -16
  323. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/eachMonthOfInterval.js.map +1 -1
  324. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/eachYearOfInterval.js +16 -16
  325. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/eachYearOfInterval.js.map +1 -1
  326. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfISOWeek.js +11 -7
  327. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfISOWeek.js.map +1 -1
  328. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfMonth.js +9 -8
  329. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfMonth.js.map +1 -1
  330. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfWeek.js +10 -10
  331. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfWeek.js.map +1 -1
  332. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfYear.js +9 -8
  333. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/endOfYear.js.map +1 -1
  334. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/format.js +59 -57
  335. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/format.js.map +1 -1
  336. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDayOfYear.js +11 -10
  337. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDayOfYear.js.map +1 -1
  338. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDaysInMonth.js +10 -9
  339. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDaysInMonth.js.map +1 -1
  340. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISOWeek.js +12 -11
  341. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISOWeek.js.map +1 -1
  342. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISOWeekYear.js +15 -14
  343. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISOWeekYear.js.map +1 -1
  344. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getMonth.js +8 -7
  345. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getMonth.js.map +1 -1
  346. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getWeek.js +12 -11
  347. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getWeek.js.map +1 -1
  348. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getWeekYear.js +16 -16
  349. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getWeekYear.js.map +1 -1
  350. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getYear.js +8 -7
  351. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getYear.js.map +1 -1
  352. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isAfter.js +8 -7
  353. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isAfter.js.map +1 -1
  354. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isBefore.js +8 -7
  355. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isBefore.js.map +1 -1
  356. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isDate.js +7 -6
  357. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isDate.js.map +1 -1
  358. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameDay.js +10 -13
  359. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameDay.js.map +1 -1
  360. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameMonth.js +9 -12
  361. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameMonth.js.map +1 -1
  362. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameYear.js +9 -12
  363. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isSameYear.js.map +1 -1
  364. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isValid.js +9 -8
  365. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/isValid.js.map +1 -1
  366. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +10 -9
  367. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
  368. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +18 -18
  369. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
  370. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildMatchFn.js +21 -29
  371. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
  372. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +19 -15
  373. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
  374. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +70 -70
  375. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -1
  376. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js +33 -33
  377. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -1
  378. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +13 -12
  379. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -1
  380. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/localize.js +202 -154
  381. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -1
  382. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/match.js +125 -110
  383. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -1
  384. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US.js +20 -19
  385. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/locale/en-US.js.map +1 -1
  386. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/max.js +14 -13
  387. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/max.js.map +1 -1
  388. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/min.js +14 -13
  389. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/min.js.map +1 -1
  390. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setMonth.js +13 -12
  391. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setMonth.js.map +1 -1
  392. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setYear.js +10 -9
  393. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setYear.js.map +1 -1
  394. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfDay.js +9 -8
  395. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfDay.js.map +1 -1
  396. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfISOWeek.js +11 -7
  397. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfISOWeek.js.map +1 -1
  398. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfISOWeekYear.js +11 -10
  399. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfISOWeekYear.js.map +1 -1
  400. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfMonth.js +9 -8
  401. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfMonth.js.map +1 -1
  402. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfWeek.js +10 -10
  403. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfWeek.js.map +1 -1
  404. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfWeekYear.js +12 -12
  405. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfWeekYear.js.map +1 -1
  406. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfYear.js +9 -8
  407. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/startOfYear.js.map +1 -1
  408. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/toDate.js +8 -7
  409. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/toDate.js.map +1 -1
  410. package/dist/node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.6/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js +25 -24
  411. package/dist/node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.6/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js.map +1 -1
  412. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js +26 -30
  413. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +1 -1
  414. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js +1016 -1202
  415. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +1 -1
  416. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/DayPicker.js +398 -246
  417. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/DayPicker.js.map +1 -1
  418. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/UI.js +16 -18
  419. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/UI.js.map +1 -1
  420. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js +13 -19
  421. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js.map +1 -1
  422. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js +9 -8
  423. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js.map +1 -1
  424. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js +9 -8
  425. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js.map +1 -1
  426. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/DateLib.js +107 -257
  427. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/classes/DateLib.js.map +1 -1
  428. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js +8 -7
  429. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js.map +1 -1
  430. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Chevron.js +14 -14
  431. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Chevron.js.map +1 -1
  432. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Day.js +9 -8
  433. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Day.js.map +1 -1
  434. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/DayButton.js +13 -10
  435. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/DayButton.js.map +1 -1
  436. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Dropdown.js +30 -19
  437. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Dropdown.js.map +1 -1
  438. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/DropdownNav.js +8 -7
  439. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/DropdownNav.js.map +1 -1
  440. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Footer.js +8 -7
  441. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Footer.js.map +1 -1
  442. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Month.js +9 -8
  443. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Month.js.map +1 -1
  444. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthCaption.js +9 -8
  445. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthCaption.js.map +1 -1
  446. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthGrid.js +7 -6
  447. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthGrid.js.map +1 -1
  448. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Months.js +7 -6
  449. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Months.js.map +1 -1
  450. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js +10 -9
  451. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js.map +1 -1
  452. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Nav.js +41 -27
  453. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Nav.js.map +1 -1
  454. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js +7 -6
  455. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js.map +1 -1
  456. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Option.js +7 -6
  457. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Option.js.map +1 -1
  458. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js +7 -6
  459. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js.map +1 -1
  460. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Root.js +12 -8
  461. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Root.js.map +1 -1
  462. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Select.js +8 -7
  463. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Select.js.map +1 -1
  464. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Week.js +9 -8
  465. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Week.js.map +1 -1
  466. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/WeekNumber.js +9 -8
  467. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/WeekNumber.js.map +1 -1
  468. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js +8 -7
  469. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js.map +1 -1
  470. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weekday.js +8 -7
  471. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weekday.js.map +1 -1
  472. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weekdays.js +7 -10
  473. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weekdays.js.map +1 -1
  474. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weeks.js +8 -7
  475. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/Weeks.js.map +1 -1
  476. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js +10 -9
  477. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js.map +1 -1
  478. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/custom-components.js +57 -52
  479. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/components/custom-components.js.map +1 -1
  480. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js +8 -7
  481. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js.map +1 -1
  482. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatDay.js +8 -7
  483. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatDay.js.map +1 -1
  484. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js +8 -7
  485. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js.map +1 -1
  486. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js +8 -7
  487. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js.map +1 -1
  488. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js +6 -5
  489. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js.map +1 -1
  490. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js +8 -7
  491. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js.map +1 -1
  492. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js +8 -7
  493. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js.map +1 -1
  494. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/index.js +22 -17
  495. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/formatters/index.js.map +1 -1
  496. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js +18 -17
  497. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js.map +1 -1
  498. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js +36 -41
  499. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js.map +1 -1
  500. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js +10 -9
  501. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js.map +1 -1
  502. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js +7 -7
  503. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js.map +1 -1
  504. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js +8 -7
  505. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js.map +1 -1
  506. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getComponents.js +11 -10
  507. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getComponents.js.map +1 -1
  508. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js +17 -16
  509. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js.map +1 -1
  510. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDates.js +20 -19
  511. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDates.js.map +1 -1
  512. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDays.js +11 -10
  513. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDays.js.map +1 -1
  514. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js +12 -15
  515. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js.map +1 -1
  516. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js +13 -13
  517. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js.map +1 -1
  518. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js +15 -15
  519. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js.map +1 -1
  520. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js +11 -10
  521. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js.map +1 -1
  522. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js +8 -13
  523. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js.map +1 -1
  524. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getLabels.js +35 -35
  525. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getLabels.js.map +1 -1
  526. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js +18 -13
  527. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js.map +1 -1
  528. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getMonths.js +25 -24
  529. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getMonths.js.map +1 -1
  530. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js +8 -11
  531. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js.map +1 -1
  532. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js +12 -12
  533. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js.map +1 -1
  534. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js +9 -12
  535. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js.map +1 -1
  536. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js +9 -12
  537. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js.map +1 -1
  538. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js +14 -13
  539. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js.map +1 -1
  540. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js +12 -11
  541. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js.map +1 -1
  542. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js +7 -7
  543. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js.map +1 -1
  544. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js +19 -16
  545. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js.map +1 -1
  546. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js +8 -7
  547. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js.map +1 -1
  548. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js +9 -8
  549. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js.map +1 -1
  550. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/index.js +30 -25
  551. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/index.js.map +1 -1
  552. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js +9 -8
  553. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js.map +1 -1
  554. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelGrid.js +7 -6
  555. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelGrid.js.map +1 -1
  556. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js +9 -8
  557. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js.map +1 -1
  558. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js +7 -6
  559. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js.map +1 -1
  560. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelNav.js +6 -5
  561. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelNav.js.map +1 -1
  562. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelNext.js +6 -7
  563. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelNext.js.map +1 -1
  564. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js +7 -6
  565. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js.map +1 -1
  566. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js +7 -6
  567. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js.map +1 -1
  568. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js +7 -6
  569. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js.map +1 -1
  570. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js +8 -7
  571. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js.map +1 -1
  572. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js +7 -6
  573. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js.map +1 -1
  574. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/locale/en-US.js +50 -37
  575. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/locale/en-US.js.map +1 -1
  576. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/noonDateLib.js +101 -106
  577. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/noonDateLib.js.map +1 -1
  578. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useMulti.js +20 -21
  579. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useMulti.js.map +1 -1
  580. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useRange.js +29 -23
  581. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useRange.js.map +1 -1
  582. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useSingle.js +16 -15
  583. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/selection/useSingle.js.map +1 -1
  584. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useAnimation.js +50 -56
  585. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useAnimation.js.map +1 -1
  586. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useCalendar.js +71 -76
  587. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useCalendar.js.map +1 -1
  588. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useDayPicker.js +11 -12
  589. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useDayPicker.js.map +1 -1
  590. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useFocus.js +23 -23
  591. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useFocus.js.map +1 -1
  592. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useSelection.js +16 -19
  593. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/useSelection.js.map +1 -1
  594. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/addToRange.js +60 -32
  595. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/addToRange.js.map +1 -1
  596. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js +24 -24
  597. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js.map +1 -1
  598. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js +22 -26
  599. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js.map +1 -1
  600. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js +13 -15
  601. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js.map +1 -1
  602. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js +29 -28
  603. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js.map +1 -1
  604. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js +9 -9
  605. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js.map +1 -1
  606. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js +9 -8
  607. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js.map +1 -1
  608. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js +9 -8
  609. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js.map +1 -1
  610. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/typeguards.js +15 -19
  611. package/dist/node_modules/.pnpm/react-day-picker@10.0.1_@types_react@19.2.15_react@19.2.6/node_modules/react-day-picker/dist/esm/utils/typeguards.js.map +1 -1
  612. package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/react-resizable-panels/dist/react-resizable-panels.js +1511 -2084
  613. package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/react-resizable-panels/dist/react-resizable-panels.js.map +1 -1
  614. package/dist/node_modules/.pnpm/tailwind-merge@3.6.0/node_modules/tailwind-merge/dist/bundle-mjs.js +1716 -2996
  615. package/dist/node_modules/.pnpm/tailwind-merge@3.6.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  616. package/dist/react.js +125 -550
  617. package/dist/src/components/ui/chart/chart.d.ts +8 -1
  618. package/dist/src/components/ui/funnel-chart/funnel-chart.d.ts +92 -26
  619. package/dist/src/components/ui/funnel-chart/index.d.ts +1 -1
  620. package/dist/src/components/ui/input-num-picker/index.d.ts +1 -0
  621. package/dist/src/components/ui/input-num-picker/input-num-picker.d.ts +14 -0
  622. package/dist/src/components/ui/input-select/input-select.d.ts +34 -2
  623. package/dist/src/components/ui/radar-chart/radar-chart.d.ts +42 -9
  624. package/dist/src/index.d.ts +1 -0
  625. package/dist/ui-react.css +2 -1
  626. package/package.json +6 -6
  627. package/dist/index.js.map +0 -1
  628. package/dist/react.js.map +0 -1
@@ -1,104 +1,75 @@
1
- import { jsx as h } from "react/jsx-runtime";
2
- import * as c from "react";
3
- import { cn as S } from "../../../lib/utils.js";
4
- const _ = (s, e) => `Digit ${s} of ${e}`, $ = /^[0-9]$/, R = (s, e) => Array.from({ length: e }, (n, p) => s[p] ?? ""), E = c.forwardRef(
5
- ({
6
- className: s,
7
- length: e = 6,
8
- value: n,
9
- defaultValue: p,
10
- onChange: f,
11
- onComplete: b,
12
- disabled: w,
13
- error: m,
14
- autoFocus: x,
15
- slotAriaLabel: A = _,
16
- ...j
17
- }, k) => {
18
- const [I, P] = c.useState(
19
- () => R(p ?? "", e)
20
- ), y = n != null, u = y ? R(n, e) : I, g = c.useRef([]), d = c.useRef(!1), v = (r) => {
21
- y || P(r);
22
- const t = r.join("");
23
- f == null || f(t), r.every((o) => o !== "") ? d.current || (d.current = !0, b == null || b(t)) : d.current = !1;
24
- }, a = (r) => {
25
- const t = g.current[r];
26
- t == null || t.focus(), t == null || t.select();
27
- };
28
- c.useEffect(() => {
29
- x && a(0);
30
- }, []);
31
- const D = (r, t) => {
32
- const o = [...u];
33
- let i = r;
34
- for (const l of t) {
35
- if (i >= e) break;
36
- o[i] = l, i += 1;
37
- }
38
- v(o), a(Math.min(i, e - 1));
39
- }, T = (r, t) => {
40
- if (t.length > 1) {
41
- const l = t.replace(/\D/g, "");
42
- l && D(r, l);
43
- return;
44
- }
45
- const o = t;
46
- if (o !== "" && !$.test(o)) return;
47
- const i = [...u];
48
- i[r] = o, v(i), o && r < e - 1 && a(r + 1);
49
- }, N = (r, t) => {
50
- if (t.key === "Backspace" && !u[r] && r > 0) {
51
- t.preventDefault();
52
- const o = [...u];
53
- o[r - 1] = "", v(o), a(r - 1);
54
- } else t.key === "ArrowLeft" && r > 0 ? (t.preventDefault(), a(r - 1)) : t.key === "ArrowRight" && r < e - 1 && (t.preventDefault(), a(r + 1));
55
- }, L = (r, t) => {
56
- const o = t.clipboardData.getData("text").replace(/\D/g, "");
57
- o && (t.preventDefault(), D(r, o));
58
- };
59
- return /* @__PURE__ */ h(
60
- "div",
61
- {
62
- ref: k,
63
- role: "group",
64
- className: S(
65
- "inline-flex justify-[var(--ui-input-otp-container-justify-content)] gap-3",
66
- s
67
- ),
68
- ...j,
69
- children: Array.from({ length: e }, (r, t) => /* @__PURE__ */ h(
70
- "input",
71
- {
72
- ref: (o) => {
73
- g.current[t] = o;
74
- },
75
- type: "text",
76
- inputMode: "numeric",
77
- pattern: "[0-9]*",
78
- autoComplete: "one-time-code",
79
- maxLength: 1,
80
- value: u[t],
81
- placeholder: String(t + 1),
82
- disabled: w,
83
- "aria-label": A(t + 1, e),
84
- "aria-invalid": m || void 0,
85
- onChange: (o) => T(t, o.target.value),
86
- onKeyDown: (o) => N(t, o),
87
- onPaste: (o) => L(t, o),
88
- onFocus: (o) => o.target.select(),
89
- className: S(
90
- "ui-input-otp-value-text-style h-[var(--ui-input-otp-box-height)] w-[var(--ui-input-otp-box-width)] rounded-[var(--ui-input-otp-box-border-radius)] border-[length:var(--ui-input-otp-box-border-width)] bg-[var(--ui-input-otp-box-color)] px-[var(--ui-input-otp-box-padding-x)] py-[var(--ui-input-otp-box-padding-y)] text-center text-[var(--ui-input-otp-value-color)] caret-[var(--ui-input-otp-value-color)] placeholder:text-[var(--ui-input-otp-placeholder-color)] transition-colors focus-visible:outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
91
- m ? "border-[var(--ui-input-otp-box-border-color-error)] focus-visible:ring-[var(--ui-focus-error)]" : "border-[var(--ui-input-otp-box-border-color-idle)] focus-visible:border-[var(--ui-input-otp-box-border-color-active)] focus-visible:ring-[var(--ui-focus-primary)]"
92
- )
93
- },
94
- t
95
- ))
96
- }
97
- );
98
- }
99
- );
100
- E.displayName = "InputOTP";
101
- export {
102
- E as InputOTP
103
- };
104
- //# sourceMappingURL=input-otp.js.map
1
+ import { cn as e } from "../../../lib/utils.js";
2
+ import * as t from "react";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ //#region src/components/ui/input-otp/input-otp.tsx
5
+ var r = (e, t) => `Digit ${e} of ${t}`, i = /^[0-9]$/, a = (e, t) => Array.from({ length: t }, (t, n) => e[n] ?? ""), o = t.forwardRef(({ className: o, length: s = 6, value: c, defaultValue: l, onChange: u, onComplete: d, disabled: f, error: p, autoFocus: m, slotAriaLabel: h = r, ...g }, _) => {
6
+ let [v, y] = t.useState(() => a(l ?? "", s)), b = c != null, x = b ? a(c, s) : v, S = t.useRef([]), C = t.useRef(!1), w = (e) => {
7
+ b || y(e);
8
+ let t = e.join("");
9
+ u?.(t), e.every((e) => e !== "") ? C.current || (C.current = !0, d?.(t)) : C.current = !1;
10
+ }, T = (e) => {
11
+ let t = S.current[e];
12
+ t?.focus(), t?.select();
13
+ };
14
+ t.useEffect(() => {
15
+ m && T(0);
16
+ }, []);
17
+ let E = (e, t) => {
18
+ let n = [...x], r = e;
19
+ for (let e of t) {
20
+ if (r >= s) break;
21
+ n[r] = e, r += 1;
22
+ }
23
+ w(n), T(Math.min(r, s - 1));
24
+ }, D = (e, t) => {
25
+ if (t.length > 1) {
26
+ let n = t.replace(/\D/g, "");
27
+ n && E(e, n);
28
+ return;
29
+ }
30
+ let n = t;
31
+ if (n !== "" && !i.test(n)) return;
32
+ let r = [...x];
33
+ r[e] = n, w(r), n && e < s - 1 && T(e + 1);
34
+ }, O = (e, t) => {
35
+ if (t.key === "Backspace" && !x[e] && e > 0) {
36
+ t.preventDefault();
37
+ let n = [...x];
38
+ n[e - 1] = "", w(n), T(e - 1);
39
+ } else t.key === "ArrowLeft" && e > 0 ? (t.preventDefault(), T(e - 1)) : t.key === "ArrowRight" && e < s - 1 && (t.preventDefault(), T(e + 1));
40
+ }, k = (e, t) => {
41
+ let n = t.clipboardData.getData("text").replace(/\D/g, "");
42
+ n && (t.preventDefault(), E(e, n));
43
+ };
44
+ return /* @__PURE__ */ n("div", {
45
+ ref: _,
46
+ role: "group",
47
+ className: e("inline-flex justify-[var(--ui-input-otp-container-justify-content)] gap-3", o),
48
+ ...g,
49
+ children: Array.from({ length: s }, (t, r) => /* @__PURE__ */ n("input", {
50
+ ref: (e) => {
51
+ S.current[r] = e;
52
+ },
53
+ type: "text",
54
+ inputMode: "numeric",
55
+ pattern: "[0-9]*",
56
+ autoComplete: "one-time-code",
57
+ maxLength: 1,
58
+ value: x[r],
59
+ placeholder: String(r + 1),
60
+ disabled: f,
61
+ "aria-label": h(r + 1, s),
62
+ "aria-invalid": p || void 0,
63
+ onChange: (e) => D(r, e.target.value),
64
+ onKeyDown: (e) => O(r, e),
65
+ onPaste: (e) => k(r, e),
66
+ onFocus: (e) => e.target.select(),
67
+ className: e("ui-input-otp-value-text-style h-[var(--ui-input-otp-box-height)] w-[var(--ui-input-otp-box-width)] rounded-[var(--ui-input-otp-box-border-radius)] border-[length:var(--ui-input-otp-box-border-width)] bg-[var(--ui-input-otp-box-color)] px-[var(--ui-input-otp-box-padding-x)] py-[var(--ui-input-otp-box-padding-y)] text-center text-[var(--ui-input-otp-value-color)] caret-[var(--ui-input-otp-value-color)] placeholder:text-[var(--ui-input-otp-placeholder-color)] transition-colors focus-visible:outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", p ? "border-[var(--ui-input-otp-box-border-color-error)] focus-visible:ring-[var(--ui-focus-error)]" : "border-[var(--ui-input-otp-box-border-color-idle)] focus-visible:border-[var(--ui-input-otp-box-border-color-active)] focus-visible:ring-[var(--ui-focus-primary)]")
68
+ }, r))
69
+ });
70
+ });
71
+ o.displayName = "InputOTP";
72
+ //#endregion
73
+ export { o as InputOTP };
74
+
75
+ //# sourceMappingURL=input-otp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.js","sources":["../../../../src/components/ui/input-otp/input-otp.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\n// Mirrors the Figma \"inputOTP\" component: a bare row of single-character boxes\n// (no label/description — like `Input`, field furniture is a future `Field`\n// wrapper). Themed by the `--ui-input-otp-*` token tier. Each slot is a plain\n// `<input>`; typing a digit advances focus to the next slot, Backspace on an\n// empty slot clears and moves back to the previous one, and pasting — or a\n// browser/password-manager autofill that drops the full code into one slot's\n// `onChange` — distributes it across the slots from the focused one onward.\n// `error`\n// reddens every box (via `--ui-input-otp-box-border-color-error`); there is no\n// disabled treatment in the design, so `disabled` falls back to the generic\n// `disabled:opacity-50` convention used elsewhere in this package. OTP codes\n// are numeric-only by design (SMS/authenticator codes): `inputMode=\"numeric\"`\n// and `pattern=\"[0-9]*\"` are mobile-keyboard hints only, so both typed and\n// pasted input are also filtered to digits in JS — a non-digit keystroke is\n// rejected outright and non-digit characters are stripped from a paste.\nexport interface InputOTPProps\n extends Omit<\n React.ComponentPropsWithoutRef<'div'>,\n 'onChange' | 'defaultValue' | 'children'\n > {\n /** Number of single-character slots. */\n length?: number;\n /** Controlled value (the digits entered so far, left to right). */\n value?: string;\n /** Initial value for uncontrolled usage. */\n defaultValue?: string;\n /** Fires with the full value on every change. */\n onChange?: (value: string) => void;\n /** Fires once, the moment the value reaches `length` characters. */\n onComplete?: (value: string) => void;\n /** Disables every slot. */\n disabled?: boolean;\n /** Switches every slot to the error treatment. */\n error?: boolean;\n /** Focuses the first slot on mount. */\n autoFocus?: boolean;\n /** Builds the accessible name for a slot from its 1-based index and the total length. */\n slotAriaLabel?: (index: number, length: number) => string;\n}\n\nconst defaultSlotAriaLabel = (index: number, length: number) =>\n `Digit ${index} of ${length}`;\n\nconst DIGIT_PATTERN = /^[0-9]$/;\n\n// Fixed-length per-slot array, not a derived dense string — a slot's\n// position must survive edits to other slots (see `commitSlots`).\nconst toSlots = (value: string, length: number): string[] =>\n Array.from({ length }, (_, index) => value[index] ?? '');\n\nconst InputOTP = React.forwardRef<HTMLDivElement, InputOTPProps>(\n (\n {\n className,\n length = 6,\n value,\n defaultValue,\n onChange,\n onComplete,\n disabled,\n error,\n autoFocus,\n slotAriaLabel = defaultSlotAriaLabel,\n ...props\n },\n ref\n ) => {\n const [internalSlots, setInternalSlots] = React.useState(() =>\n toSlots(defaultValue ?? '', length)\n );\n const isControlled = value != null;\n const slots = isControlled ? toSlots(value, length) : internalSlots;\n const slotRefs = React.useRef<Array<HTMLInputElement | null>>([]);\n const completedRef = React.useRef(false);\n\n // `nextSlots` is the source of truth — each index keeps its own slot's\n // character regardless of whether earlier slots are filled. The joined\n // string handed to `onChange`/`onComplete` is a derived value; only\n // `nextSlots.every(...)` can tell whether every slot has been filled,\n // since a joined string with a blank slot collapses indistinguishably\n // from a shorter one.\n const commitSlots = (nextSlots: string[]) => {\n if (!isControlled) setInternalSlots(nextSlots);\n const joined = nextSlots.join('');\n onChange?.(joined);\n if (nextSlots.every((char) => char !== '')) {\n if (!completedRef.current) {\n completedRef.current = true;\n onComplete?.(joined);\n }\n } else {\n completedRef.current = false;\n }\n };\n\n const focusSlot = (index: number) => {\n const slot = slotRefs.current[index];\n slot?.focus();\n slot?.select();\n };\n\n React.useEffect(() => {\n if (autoFocus) focusSlot(0);\n // Only run on mount.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Distributes digits across slots starting at `index` — shared by a\n // multi-character paste and a multi-character autofill `onChange` (a\n // password manager or Chrome's OTP autofill can set a single slot's\n // `.value` to the entire code, bypassing `maxLength`).\n const distributeFrom = (index: number, digits: string) => {\n const nextSlots = [...slots];\n let cursor = index;\n for (const char of digits) {\n if (cursor >= length) break;\n nextSlots[cursor] = char;\n cursor += 1;\n }\n commitSlots(nextSlots);\n focusSlot(Math.min(cursor, length - 1));\n };\n\n const handleSlotChange = (index: number, raw: string) => {\n if (raw.length > 1) {\n const digits = raw.replace(/\\D/g, '');\n if (digits) distributeFrom(index, digits);\n return;\n }\n const char = raw;\n if (char !== '' && !DIGIT_PATTERN.test(char)) return;\n const nextSlots = [...slots];\n nextSlots[index] = char;\n commitSlots(nextSlots);\n if (char && index < length - 1) focusSlot(index + 1);\n };\n\n const handleKeyDown = (\n index: number,\n event: React.KeyboardEvent<HTMLInputElement>\n ) => {\n if (event.key === 'Backspace' && !slots[index] && index > 0) {\n event.preventDefault();\n const nextSlots = [...slots];\n nextSlots[index - 1] = '';\n commitSlots(nextSlots);\n focusSlot(index - 1);\n } else if (event.key === 'ArrowLeft' && index > 0) {\n event.preventDefault();\n focusSlot(index - 1);\n } else if (event.key === 'ArrowRight' && index < length - 1) {\n event.preventDefault();\n focusSlot(index + 1);\n }\n };\n\n const handlePaste = (\n index: number,\n event: React.ClipboardEvent<HTMLInputElement>\n ) => {\n const digits = event.clipboardData.getData('text').replace(/\\D/g, '');\n if (!digits) return;\n event.preventDefault();\n distributeFrom(index, digits);\n };\n\n return (\n <div\n ref={ref}\n role=\"group\"\n className={cn(\n 'inline-flex justify-[var(--ui-input-otp-container-justify-content)] gap-3',\n className\n )}\n {...props}\n >\n {Array.from({ length }, (_, index) => (\n <input\n key={index}\n ref={(el) => {\n slotRefs.current[index] = el;\n }}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n autoComplete=\"one-time-code\"\n maxLength={1}\n value={slots[index]}\n placeholder={String(index + 1)}\n disabled={disabled}\n aria-label={slotAriaLabel(index + 1, length)}\n aria-invalid={error || undefined}\n onChange={(event) => handleSlotChange(index, event.target.value)}\n onKeyDown={(event) => handleKeyDown(index, event)}\n onPaste={(event) => handlePaste(index, event)}\n onFocus={(event) => event.target.select()}\n className={cn(\n 'ui-input-otp-value-text-style h-[var(--ui-input-otp-box-height)] w-[var(--ui-input-otp-box-width)] rounded-[var(--ui-input-otp-box-border-radius)] border-[length:var(--ui-input-otp-box-border-width)] bg-[var(--ui-input-otp-box-color)] px-[var(--ui-input-otp-box-padding-x)] py-[var(--ui-input-otp-box-padding-y)] text-center text-[var(--ui-input-otp-value-color)] caret-[var(--ui-input-otp-value-color)] placeholder:text-[var(--ui-input-otp-placeholder-color)] transition-colors focus-visible:outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n error\n ? 'border-[var(--ui-input-otp-box-border-color-error)] focus-visible:ring-[var(--ui-focus-error)]'\n : 'border-[var(--ui-input-otp-box-border-color-idle)] focus-visible:border-[var(--ui-input-otp-box-border-color-active)] focus-visible:ring-[var(--ui-focus-primary)]'\n )}\n />\n ))}\n </div>\n );\n }\n);\nInputOTP.displayName = 'InputOTP';\n\nexport { InputOTP };\n"],"names":["defaultSlotAriaLabel","index","length","DIGIT_PATTERN","toSlots","value","_","InputOTP","React","className","defaultValue","onChange","onComplete","disabled","error","autoFocus","slotAriaLabel","props","ref","internalSlots","setInternalSlots","isControlled","slots","slotRefs","completedRef","commitSlots","nextSlots","joined","char","focusSlot","slot","distributeFrom","digits","cursor","handleSlotChange","raw","handleKeyDown","event","handlePaste","jsx","cn","el"],"mappings":"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"}
1
+ {"version":3,"file":"input-otp.js","names":[],"sources":["../../../../src/components/ui/input-otp/input-otp.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\n// Mirrors the Figma \"inputOTP\" component: a bare row of single-character boxes\n// (no label/description — like `Input`, field furniture is a future `Field`\n// wrapper). Themed by the `--ui-input-otp-*` token tier. Each slot is a plain\n// `<input>`; typing a digit advances focus to the next slot, Backspace on an\n// empty slot clears and moves back to the previous one, and pasting — or a\n// browser/password-manager autofill that drops the full code into one slot's\n// `onChange` — distributes it across the slots from the focused one onward.\n// `error`\n// reddens every box (via `--ui-input-otp-box-border-color-error`); there is no\n// disabled treatment in the design, so `disabled` falls back to the generic\n// `disabled:opacity-50` convention used elsewhere in this package. OTP codes\n// are numeric-only by design (SMS/authenticator codes): `inputMode=\"numeric\"`\n// and `pattern=\"[0-9]*\"` are mobile-keyboard hints only, so both typed and\n// pasted input are also filtered to digits in JS — a non-digit keystroke is\n// rejected outright and non-digit characters are stripped from a paste.\nexport interface InputOTPProps\n extends Omit<\n React.ComponentPropsWithoutRef<'div'>,\n 'onChange' | 'defaultValue' | 'children'\n > {\n /** Number of single-character slots. */\n length?: number;\n /** Controlled value (the digits entered so far, left to right). */\n value?: string;\n /** Initial value for uncontrolled usage. */\n defaultValue?: string;\n /** Fires with the full value on every change. */\n onChange?: (value: string) => void;\n /** Fires once, the moment the value reaches `length` characters. */\n onComplete?: (value: string) => void;\n /** Disables every slot. */\n disabled?: boolean;\n /** Switches every slot to the error treatment. */\n error?: boolean;\n /** Focuses the first slot on mount. */\n autoFocus?: boolean;\n /** Builds the accessible name for a slot from its 1-based index and the total length. */\n slotAriaLabel?: (index: number, length: number) => string;\n}\n\nconst defaultSlotAriaLabel = (index: number, length: number) =>\n `Digit ${index} of ${length}`;\n\nconst DIGIT_PATTERN = /^[0-9]$/;\n\n// Fixed-length per-slot array, not a derived dense string — a slot's\n// position must survive edits to other slots (see `commitSlots`).\nconst toSlots = (value: string, length: number): string[] =>\n Array.from({ length }, (_, index) => value[index] ?? '');\n\nconst InputOTP = React.forwardRef<HTMLDivElement, InputOTPProps>(\n (\n {\n className,\n length = 6,\n value,\n defaultValue,\n onChange,\n onComplete,\n disabled,\n error,\n autoFocus,\n slotAriaLabel = defaultSlotAriaLabel,\n ...props\n },\n ref\n ) => {\n const [internalSlots, setInternalSlots] = React.useState(() =>\n toSlots(defaultValue ?? '', length)\n );\n const isControlled = value != null;\n const slots = isControlled ? toSlots(value, length) : internalSlots;\n const slotRefs = React.useRef<Array<HTMLInputElement | null>>([]);\n const completedRef = React.useRef(false);\n\n // `nextSlots` is the source of truth — each index keeps its own slot's\n // character regardless of whether earlier slots are filled. The joined\n // string handed to `onChange`/`onComplete` is a derived value; only\n // `nextSlots.every(...)` can tell whether every slot has been filled,\n // since a joined string with a blank slot collapses indistinguishably\n // from a shorter one.\n const commitSlots = (nextSlots: string[]) => {\n if (!isControlled) setInternalSlots(nextSlots);\n const joined = nextSlots.join('');\n onChange?.(joined);\n if (nextSlots.every((char) => char !== '')) {\n if (!completedRef.current) {\n completedRef.current = true;\n onComplete?.(joined);\n }\n } else {\n completedRef.current = false;\n }\n };\n\n const focusSlot = (index: number) => {\n const slot = slotRefs.current[index];\n slot?.focus();\n slot?.select();\n };\n\n React.useEffect(() => {\n if (autoFocus) focusSlot(0);\n // Only run on mount.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Distributes digits across slots starting at `index` — shared by a\n // multi-character paste and a multi-character autofill `onChange` (a\n // password manager or Chrome's OTP autofill can set a single slot's\n // `.value` to the entire code, bypassing `maxLength`).\n const distributeFrom = (index: number, digits: string) => {\n const nextSlots = [...slots];\n let cursor = index;\n for (const char of digits) {\n if (cursor >= length) break;\n nextSlots[cursor] = char;\n cursor += 1;\n }\n commitSlots(nextSlots);\n focusSlot(Math.min(cursor, length - 1));\n };\n\n const handleSlotChange = (index: number, raw: string) => {\n if (raw.length > 1) {\n const digits = raw.replace(/\\D/g, '');\n if (digits) distributeFrom(index, digits);\n return;\n }\n const char = raw;\n if (char !== '' && !DIGIT_PATTERN.test(char)) return;\n const nextSlots = [...slots];\n nextSlots[index] = char;\n commitSlots(nextSlots);\n if (char && index < length - 1) focusSlot(index + 1);\n };\n\n const handleKeyDown = (\n index: number,\n event: React.KeyboardEvent<HTMLInputElement>\n ) => {\n if (event.key === 'Backspace' && !slots[index] && index > 0) {\n event.preventDefault();\n const nextSlots = [...slots];\n nextSlots[index - 1] = '';\n commitSlots(nextSlots);\n focusSlot(index - 1);\n } else if (event.key === 'ArrowLeft' && index > 0) {\n event.preventDefault();\n focusSlot(index - 1);\n } else if (event.key === 'ArrowRight' && index < length - 1) {\n event.preventDefault();\n focusSlot(index + 1);\n }\n };\n\n const handlePaste = (\n index: number,\n event: React.ClipboardEvent<HTMLInputElement>\n ) => {\n const digits = event.clipboardData.getData('text').replace(/\\D/g, '');\n if (!digits) return;\n event.preventDefault();\n distributeFrom(index, digits);\n };\n\n return (\n <div\n ref={ref}\n role=\"group\"\n className={cn(\n 'inline-flex justify-[var(--ui-input-otp-container-justify-content)] gap-3',\n className\n )}\n {...props}\n >\n {Array.from({ length }, (_, index) => (\n <input\n key={index}\n ref={(el) => {\n slotRefs.current[index] = el;\n }}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n autoComplete=\"one-time-code\"\n maxLength={1}\n value={slots[index]}\n placeholder={String(index + 1)}\n disabled={disabled}\n aria-label={slotAriaLabel(index + 1, length)}\n aria-invalid={error || undefined}\n onChange={(event) => handleSlotChange(index, event.target.value)}\n onKeyDown={(event) => handleKeyDown(index, event)}\n onPaste={(event) => handlePaste(index, event)}\n onFocus={(event) => event.target.select()}\n className={cn(\n 'ui-input-otp-value-text-style h-[var(--ui-input-otp-box-height)] w-[var(--ui-input-otp-box-width)] rounded-[var(--ui-input-otp-box-border-radius)] border-[length:var(--ui-input-otp-box-border-width)] bg-[var(--ui-input-otp-box-color)] px-[var(--ui-input-otp-box-padding-x)] py-[var(--ui-input-otp-box-padding-y)] text-center text-[var(--ui-input-otp-value-color)] caret-[var(--ui-input-otp-value-color)] placeholder:text-[var(--ui-input-otp-placeholder-color)] transition-colors focus-visible:outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n error\n ? 'border-[var(--ui-input-otp-box-border-color-error)] focus-visible:ring-[var(--ui-focus-error)]'\n : 'border-[var(--ui-input-otp-box-border-color-idle)] focus-visible:border-[var(--ui-input-otp-box-border-color-active)] focus-visible:ring-[var(--ui-focus-primary)]'\n )}\n />\n ))}\n </div>\n );\n }\n);\nInputOTP.displayName = 'InputOTP';\n\nexport { InputOTP };\n"],"mappings":"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"}
@@ -1,130 +1,75 @@
1
- import { jsxs as b, jsx as o } from "react/jsx-runtime";
2
- import * as c from "react";
3
- import { EyeIcon as E, EyeOffIcon as j } from "@acronis-platform/icons-react/stroke-mono";
4
1
  import { cn as e } from "../../../lib/utils.js";
5
- import { ButtonIconInput as k } from "../button-icon-input/button-icon-input.js";
6
- function B({
7
- htmlFor: a,
8
- disabled: r,
9
- required: l,
10
- children: s
11
- }) {
12
- return /* @__PURE__ */ b(
13
- "label",
14
- {
15
- htmlFor: a,
16
- className: e(
17
- "flex gap-[var(--ui-input-password-global-container-label-gap)] text-sm leading-4",
18
- r ? "text-[var(--ui-input-password-global-label-color-disabled)]" : "text-[var(--ui-input-password-global-label-color-idle)]"
19
- ),
20
- children: [
21
- s,
22
- l && /* @__PURE__ */ o(
23
- "span",
24
- {
25
- "aria-hidden": "true",
26
- className: "text-[var(--ui-input-password-global-required-color)]",
27
- children: "*"
28
- }
29
- )
30
- ]
31
- }
32
- );
2
+ import { ButtonIconInput as t } from "../button-icon-input/button-icon-input.js";
3
+ import * as n from "react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ import { EyeIcon as a, EyeOffIcon as o } from "@acronis-platform/icons-react/stroke-mono";
6
+ //#region src/components/ui/input-password/input-password.tsx
7
+ function s({ htmlFor: t, disabled: n, required: a, children: o }) {
8
+ return /* @__PURE__ */ i("label", {
9
+ htmlFor: t,
10
+ className: e("flex gap-[var(--ui-input-password-global-container-label-gap)] text-sm leading-4", n ? "text-[var(--ui-input-password-global-label-color-disabled)]" : "text-[var(--ui-input-password-global-label-color-idle)]"),
11
+ children: [o, a && /* @__PURE__ */ r("span", {
12
+ "aria-hidden": "true",
13
+ className: "text-[var(--ui-input-password-global-required-color)]",
14
+ children: "*"
15
+ })]
16
+ });
33
17
  }
34
- function C({
35
- id: a,
36
- hasError: r,
37
- disabled: l,
38
- children: s
39
- }) {
40
- return /* @__PURE__ */ o(
41
- "p",
42
- {
43
- id: a,
44
- className: e(
45
- "text-xs leading-4",
46
- r ? "text-[var(--ui-input-password-error-msg-error-color)]" : l ? "text-[var(--ui-input-password-normal-description-color-disabled)]" : "text-[var(--ui-input-password-normal-description-color-idle)]"
47
- ),
48
- children: s
49
- }
50
- );
18
+ function c({ id: t, hasError: n, disabled: i, children: a }) {
19
+ return /* @__PURE__ */ r("p", {
20
+ id: t,
21
+ className: e("text-xs leading-4", n ? "text-[var(--ui-input-password-error-msg-error-color)]" : i ? "text-[var(--ui-input-password-normal-description-color-disabled)]" : "text-[var(--ui-input-password-normal-description-color-idle)]"),
22
+ children: a
23
+ });
51
24
  }
52
- function M(a, r) {
53
- return e(
54
- "flex h-[var(--ui-input-password-global-box-height)] items-center gap-[var(--ui-input-password-global-box-gap)] rounded-[var(--ui-input-password-global-box-border-radius)] border-[length:var(--ui-input-password-global-box-border-width)] px-[var(--ui-input-password-global-box-padding-x)] py-[var(--ui-input-password-global-box-padding-y)] transition-colors",
55
- a ? "border-[var(--ui-input-password-error-msg-box-border-color-idle)] bg-[var(--ui-input-password-global-box-color-idle)] has-[:focus-visible]:border-[var(--ui-input-password-error-msg-box-border-color-hover)] has-[:focus-visible]:ring-[3px] has-[:focus-visible]:ring-[var(--ui-focus-error)]" : e(
56
- "border-[var(--ui-input-password-normal-box-border-color-idle)] bg-[var(--ui-input-password-global-box-color-idle)]",
57
- !r && "hover:border-[var(--ui-input-password-normal-box-border-color-hover)] hover:bg-[var(--ui-input-password-global-box-color-hover)]",
58
- "has-[:focus-visible]:border-[var(--ui-input-password-normal-box-border-color-hover)] has-[:focus-visible]:ring-[3px] has-[:focus-visible]:ring-[var(--ui-focus-primary)]"
59
- ),
60
- r && "cursor-not-allowed border-[var(--ui-input-password-normal-box-border-color-disabled)] bg-[var(--ui-input-password-global-box-color-disabled)]"
61
- );
25
+ function l(t, n) {
26
+ return e("flex h-[var(--ui-input-password-global-box-height)] items-center gap-[var(--ui-input-password-global-box-gap)] rounded-[var(--ui-input-password-global-box-border-radius)] border-[length:var(--ui-input-password-global-box-border-width)] px-[var(--ui-input-password-global-box-padding-x)] py-[var(--ui-input-password-global-box-padding-y)] transition-colors", t ? "border-[var(--ui-input-password-error-msg-box-border-color-idle)] bg-[var(--ui-input-password-global-box-color-idle)] has-[:focus-visible]:border-[var(--ui-input-password-error-msg-box-border-color-hover)] has-[:focus-visible]:ring-[3px] has-[:focus-visible]:ring-[var(--ui-focus-error)]" : e("border-[var(--ui-input-password-normal-box-border-color-idle)] bg-[var(--ui-input-password-global-box-color-idle)]", !n && "hover:border-[var(--ui-input-password-normal-box-border-color-hover)] hover:bg-[var(--ui-input-password-global-box-color-hover)]", "has-[:focus-visible]:border-[var(--ui-input-password-normal-box-border-color-hover)] has-[:focus-visible]:ring-[3px] has-[:focus-visible]:ring-[var(--ui-focus-primary)]"), n && "cursor-not-allowed border-[var(--ui-input-password-normal-box-border-color-disabled)] bg-[var(--ui-input-password-global-box-color-disabled)]");
62
27
  }
63
- const R = c.forwardRef(
64
- ({
65
- className: a,
66
- style: r,
67
- id: l,
68
- label: s,
69
- required: v,
70
- description: x,
71
- error: d,
72
- disabled: i,
73
- showPasswordLabel: m = "Show password",
74
- hidePasswordLabel: h = "Hide password",
75
- ...f
76
- }, I) => {
77
- const N = c.useId(), p = l ?? N, g = `${p}-message`, [n, y] = c.useState(!1), t = d != null && d !== "", u = t ? d : x, w = u != null && u !== "";
78
- return /* @__PURE__ */ b(
79
- "div",
80
- {
81
- className: e(
82
- "flex min-w-[var(--ui-input-password-global-container-width-min)] flex-col gap-[var(--ui-input-password-global-container-gap)]",
83
- a
84
- ),
85
- style: r,
86
- children: [
87
- s != null && s !== "" && /* @__PURE__ */ o(B, { htmlFor: p, disabled: i, required: v, children: s }),
88
- /* @__PURE__ */ b("div", { className: M(t, i), children: [
89
- /* @__PURE__ */ o(
90
- "input",
91
- {
92
- ref: I,
93
- id: p,
94
- type: n ? "text" : "password",
95
- disabled: i,
96
- "aria-invalid": t || void 0,
97
- "aria-required": v || void 0,
98
- "aria-describedby": w ? g : void 0,
99
- className: e(
100
- "min-w-0 flex-1 bg-transparent text-sm leading-6 outline-none",
101
- i ? "text-[var(--ui-input-password-global-value-color-disabled)] placeholder:text-[var(--ui-input-password-global-placeholder-color-disabled)]" : "text-[var(--ui-input-password-global-value-color-idle)] placeholder:text-[var(--ui-input-password-global-placeholder-color-idle)]"
102
- ),
103
- ...f
104
- }
105
- ),
106
- /* @__PURE__ */ o(
107
- k,
108
- {
109
- variant: t ? "error" : "normal",
110
- onClick: () => y((P) => !P),
111
- disabled: i,
112
- "aria-label": n ? h : m,
113
- "aria-pressed": n,
114
- className: "shrink-0",
115
- children: n ? /* @__PURE__ */ o(E, {}) : /* @__PURE__ */ o(j, {})
116
- }
117
- )
118
- ] }),
119
- w && /* @__PURE__ */ o(C, { id: g, hasError: t, disabled: i, children: u })
120
- ]
121
- }
122
- );
123
- }
124
- );
125
- R.displayName = "InputPassword";
126
- export {
127
- R as InputPassword,
128
- M as getInputPasswordBoxClassName
129
- };
130
- //# sourceMappingURL=input-password.js.map
28
+ var u = n.forwardRef(({ className: u, style: d, id: f, label: p, required: m, description: h, error: g, disabled: _, showPasswordLabel: v = "Show password", hidePasswordLabel: y = "Hide password", ...b }, x) => {
29
+ let S = n.useId(), C = f ?? S, w = `${C}-message`, [T, E] = n.useState(!1), D = g != null && g !== "", O = D ? g : h, k = O != null && O !== "";
30
+ return /* @__PURE__ */ i("div", {
31
+ className: e("flex min-w-[var(--ui-input-password-global-container-width-min)] flex-col gap-[var(--ui-input-password-global-container-gap)]", u),
32
+ style: d,
33
+ children: [
34
+ p != null && p !== "" && /* @__PURE__ */ r(s, {
35
+ htmlFor: C,
36
+ disabled: _,
37
+ required: m,
38
+ children: p
39
+ }),
40
+ /* @__PURE__ */ i("div", {
41
+ className: l(D, _),
42
+ children: [/* @__PURE__ */ r("input", {
43
+ ref: x,
44
+ id: C,
45
+ type: T ? "text" : "password",
46
+ disabled: _,
47
+ "aria-invalid": D || void 0,
48
+ "aria-required": m || void 0,
49
+ "aria-describedby": k ? w : void 0,
50
+ className: e("min-w-0 flex-1 bg-transparent text-sm leading-6 outline-none", _ ? "text-[var(--ui-input-password-global-value-color-disabled)] placeholder:text-[var(--ui-input-password-global-placeholder-color-disabled)]" : "text-[var(--ui-input-password-global-value-color-idle)] placeholder:text-[var(--ui-input-password-global-placeholder-color-idle)]"),
51
+ ...b
52
+ }), /* @__PURE__ */ r(t, {
53
+ variant: D ? "error" : "normal",
54
+ onClick: () => E((e) => !e),
55
+ disabled: _,
56
+ "aria-label": T ? y : v,
57
+ "aria-pressed": T,
58
+ className: "shrink-0",
59
+ children: r(T ? a : o, {})
60
+ })]
61
+ }),
62
+ k && /* @__PURE__ */ r(c, {
63
+ id: w,
64
+ hasError: D,
65
+ disabled: _,
66
+ children: O
67
+ })
68
+ ]
69
+ });
70
+ });
71
+ u.displayName = "InputPassword";
72
+ //#endregion
73
+ export { u as InputPassword, l as getInputPasswordBoxClassName };
74
+
75
+ //# sourceMappingURL=input-password.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-password.js","sources":["../../../../src/components/ui/input-password/input-password.tsx"],"sourcesContent":["import * as React from 'react';\nimport { EyeIcon, EyeOffIcon } from '@acronis-platform/icons-react/stroke-mono';\n\nimport { cn } from '@/lib/utils';\nimport { ButtonIconInput } from '../button-icon-input';\n\n// Mirrors the Figma \"InputPassword\" component: an `InputText`-shaped field\n// (label / required / description / error) with a built-in show/hide toggle.\n// Unlike `InputText`, the box itself isn't the bare `Input` primitive — the\n// design gives InputPassword its own token tier (`--ui-input-password-*`)\n// down to the box fill/border, so the value input renders borderless/\n// transparent inside a themed flex container alongside the toggle button\n// (the tier's own `global-box-gap` token implies this layout, not an\n// absolutely-positioned overlay). The toggle is the Figma \"ButtonIconInput\"\n// instance, rendered here via the `ButtonIconInput` component. Visibility is\n// fully internal state; nothing in the design calls for a consumer-controlled\n// mode. `ref` targets the underlying `<input>`; `className` and `style` both\n// target the field wrapper (label + box + message), so sizing the field works\n// the same way whichever one a consumer reaches for.\nexport interface InputPasswordProps\n extends Omit<React.ComponentPropsWithoutRef<'input'>, 'children' | 'type'> {\n /** Field label, rendered above the input. */\n label?: React.ReactNode;\n /** Marks the field required — appends a `*` after the label. */\n required?: boolean;\n /** Helper text below the input. Hidden while `error` is set. */\n description?: React.ReactNode;\n /**\n * Error message below the input. Its presence switches the field to the error\n * treatment (red box border + red message).\n */\n error?: React.ReactNode;\n /** Accessible label for the toggle button while the password is hidden. */\n showPasswordLabel?: string;\n /** Accessible label for the toggle button while the password is shown. */\n hidePasswordLabel?: string;\n}\n\ninterface InputPasswordLabelProps {\n htmlFor: string;\n disabled?: boolean;\n required?: boolean;\n children: React.ReactNode;\n}\n\nfunction InputPasswordLabel({\n htmlFor,\n disabled,\n required,\n children,\n}: InputPasswordLabelProps) {\n return (\n <label\n htmlFor={htmlFor}\n className={cn(\n 'flex gap-[var(--ui-input-password-global-container-label-gap)] text-sm leading-4',\n disabled\n ? 'text-[var(--ui-input-password-global-label-color-disabled)]'\n : 'text-[var(--ui-input-password-global-label-color-idle)]'\n )}\n >\n {children}\n {required && (\n <span\n aria-hidden=\"true\"\n className=\"text-[var(--ui-input-password-global-required-color)]\"\n >\n *\n </span>\n )}\n </label>\n );\n}\n\ninterface InputPasswordMessageProps {\n id: string;\n hasError: boolean;\n disabled?: boolean;\n children: React.ReactNode;\n}\n\nfunction InputPasswordMessage({\n id,\n hasError,\n disabled,\n children,\n}: InputPasswordMessageProps) {\n return (\n <p\n id={id}\n className={cn(\n 'text-xs leading-4',\n hasError\n ? 'text-[var(--ui-input-password-error-msg-error-color)]'\n : disabled\n ? 'text-[var(--ui-input-password-normal-description-color-disabled)]'\n : 'text-[var(--ui-input-password-normal-description-color-idle)]'\n )}\n >\n {children}\n </p>\n );\n}\n\n// The box's border/background/focus-ring classes branch on `hasError` and\n// `disabled` independently, so inlining it is a 3-way nested ternary. Pulled\n// out as a pure function so the branches can be unit-tested directly.\nexport function getInputPasswordBoxClassName(\n hasError: boolean,\n disabled?: boolean\n) {\n return cn(\n 'flex h-[var(--ui-input-password-global-box-height)] items-center gap-[var(--ui-input-password-global-box-gap)] rounded-[var(--ui-input-password-global-box-border-radius)] border-[length:var(--ui-input-password-global-box-border-width)] px-[var(--ui-input-password-global-box-padding-x)] py-[var(--ui-input-password-global-box-padding-y)] transition-colors',\n hasError\n ? 'border-[var(--ui-input-password-error-msg-box-border-color-idle)] bg-[var(--ui-input-password-global-box-color-idle)] has-[:focus-visible]:border-[var(--ui-input-password-error-msg-box-border-color-hover)] has-[:focus-visible]:ring-[3px] has-[:focus-visible]:ring-[var(--ui-focus-error)]'\n : cn(\n 'border-[var(--ui-input-password-normal-box-border-color-idle)] bg-[var(--ui-input-password-global-box-color-idle)]',\n !disabled &&\n 'hover:border-[var(--ui-input-password-normal-box-border-color-hover)] hover:bg-[var(--ui-input-password-global-box-color-hover)]',\n 'has-[:focus-visible]:border-[var(--ui-input-password-normal-box-border-color-hover)] has-[:focus-visible]:ring-[3px] has-[:focus-visible]:ring-[var(--ui-focus-primary)]'\n ),\n disabled &&\n 'cursor-not-allowed border-[var(--ui-input-password-normal-box-border-color-disabled)] bg-[var(--ui-input-password-global-box-color-disabled)]'\n );\n}\n\nconst InputPassword = React.forwardRef<HTMLInputElement, InputPasswordProps>(\n (\n {\n className,\n style,\n id,\n label,\n required,\n description,\n error,\n disabled,\n showPasswordLabel = 'Show password',\n hidePasswordLabel = 'Hide password',\n ...props\n },\n ref\n ) => {\n const reactId = React.useId();\n const inputId = id ?? reactId;\n const messageId = `${inputId}-message`;\n const [visible, setVisible] = React.useState(false);\n\n const hasError = error != null && error !== '';\n const message = hasError ? error : description;\n const hasMessage = message != null && message !== '';\n\n return (\n <div\n className={cn(\n 'flex min-w-[var(--ui-input-password-global-container-width-min)] flex-col gap-[var(--ui-input-password-global-container-gap)]',\n className\n )}\n style={style}\n >\n {label != null && label !== '' && (\n <InputPasswordLabel htmlFor={inputId} disabled={disabled} required={required}>\n {label}\n </InputPasswordLabel>\n )}\n\n <div className={getInputPasswordBoxClassName(hasError, disabled)}>\n <input\n ref={ref}\n id={inputId}\n type={visible ? 'text' : 'password'}\n disabled={disabled}\n aria-invalid={hasError || undefined}\n aria-required={required || undefined}\n aria-describedby={hasMessage ? messageId : undefined}\n className={cn(\n 'min-w-0 flex-1 bg-transparent text-sm leading-6 outline-none',\n disabled\n ? 'text-[var(--ui-input-password-global-value-color-disabled)] placeholder:text-[var(--ui-input-password-global-placeholder-color-disabled)]'\n : 'text-[var(--ui-input-password-global-value-color-idle)] placeholder:text-[var(--ui-input-password-global-placeholder-color-idle)]'\n )}\n {...props}\n />\n <ButtonIconInput\n variant={hasError ? 'error' : 'normal'}\n onClick={() => setVisible((prev) => !prev)}\n disabled={disabled}\n aria-label={visible ? hidePasswordLabel : showPasswordLabel}\n aria-pressed={visible}\n className=\"shrink-0\"\n >\n {visible ? <EyeIcon /> : <EyeOffIcon />}\n </ButtonIconInput>\n </div>\n\n {hasMessage && (\n <InputPasswordMessage id={messageId} hasError={hasError} disabled={disabled}>\n {message}\n </InputPasswordMessage>\n )}\n </div>\n );\n }\n);\nInputPassword.displayName = 'InputPassword';\n\nexport { InputPassword };\n"],"names":["InputPasswordLabel","htmlFor","disabled","required","children","jsxs","cn","jsx","InputPasswordMessage","id","hasError","getInputPasswordBoxClassName","InputPassword","React","className","style","label","description","error","showPasswordLabel","hidePasswordLabel","props","ref","reactId","inputId","messageId","visible","setVisible","message","hasMessage","ButtonIconInput","prev","EyeIcon","EyeOffIcon"],"mappings":"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"}
1
+ {"version":3,"file":"input-password.js","names":[],"sources":["../../../../src/components/ui/input-password/input-password.tsx"],"sourcesContent":["import * as React from 'react';\nimport { EyeIcon, EyeOffIcon } from '@acronis-platform/icons-react/stroke-mono';\n\nimport { cn } from '@/lib/utils';\nimport { ButtonIconInput } from '../button-icon-input';\n\n// Mirrors the Figma \"InputPassword\" component: an `InputText`-shaped field\n// (label / required / description / error) with a built-in show/hide toggle.\n// Unlike `InputText`, the box itself isn't the bare `Input` primitive — the\n// design gives InputPassword its own token tier (`--ui-input-password-*`)\n// down to the box fill/border, so the value input renders borderless/\n// transparent inside a themed flex container alongside the toggle button\n// (the tier's own `global-box-gap` token implies this layout, not an\n// absolutely-positioned overlay). The toggle is the Figma \"ButtonIconInput\"\n// instance, rendered here via the `ButtonIconInput` component. Visibility is\n// fully internal state; nothing in the design calls for a consumer-controlled\n// mode. `ref` targets the underlying `<input>`; `className` and `style` both\n// target the field wrapper (label + box + message), so sizing the field works\n// the same way whichever one a consumer reaches for.\nexport interface InputPasswordProps\n extends Omit<React.ComponentPropsWithoutRef<'input'>, 'children' | 'type'> {\n /** Field label, rendered above the input. */\n label?: React.ReactNode;\n /** Marks the field required — appends a `*` after the label. */\n required?: boolean;\n /** Helper text below the input. Hidden while `error` is set. */\n description?: React.ReactNode;\n /**\n * Error message below the input. Its presence switches the field to the error\n * treatment (red box border + red message).\n */\n error?: React.ReactNode;\n /** Accessible label for the toggle button while the password is hidden. */\n showPasswordLabel?: string;\n /** Accessible label for the toggle button while the password is shown. */\n hidePasswordLabel?: string;\n}\n\ninterface InputPasswordLabelProps {\n htmlFor: string;\n disabled?: boolean;\n required?: boolean;\n children: React.ReactNode;\n}\n\nfunction InputPasswordLabel({\n htmlFor,\n disabled,\n required,\n children,\n}: InputPasswordLabelProps) {\n return (\n <label\n htmlFor={htmlFor}\n className={cn(\n 'flex gap-[var(--ui-input-password-global-container-label-gap)] text-sm leading-4',\n disabled\n ? 'text-[var(--ui-input-password-global-label-color-disabled)]'\n : 'text-[var(--ui-input-password-global-label-color-idle)]'\n )}\n >\n {children}\n {required && (\n <span\n aria-hidden=\"true\"\n className=\"text-[var(--ui-input-password-global-required-color)]\"\n >\n *\n </span>\n )}\n </label>\n );\n}\n\ninterface InputPasswordMessageProps {\n id: string;\n hasError: boolean;\n disabled?: boolean;\n children: React.ReactNode;\n}\n\nfunction InputPasswordMessage({\n id,\n hasError,\n disabled,\n children,\n}: InputPasswordMessageProps) {\n return (\n <p\n id={id}\n className={cn(\n 'text-xs leading-4',\n hasError\n ? 'text-[var(--ui-input-password-error-msg-error-color)]'\n : disabled\n ? 'text-[var(--ui-input-password-normal-description-color-disabled)]'\n : 'text-[var(--ui-input-password-normal-description-color-idle)]'\n )}\n >\n {children}\n </p>\n );\n}\n\n// The box's border/background/focus-ring classes branch on `hasError` and\n// `disabled` independently, so inlining it is a 3-way nested ternary. Pulled\n// out as a pure function so the branches can be unit-tested directly.\nexport function getInputPasswordBoxClassName(\n hasError: boolean,\n disabled?: boolean\n) {\n return cn(\n 'flex h-[var(--ui-input-password-global-box-height)] items-center gap-[var(--ui-input-password-global-box-gap)] rounded-[var(--ui-input-password-global-box-border-radius)] border-[length:var(--ui-input-password-global-box-border-width)] px-[var(--ui-input-password-global-box-padding-x)] py-[var(--ui-input-password-global-box-padding-y)] transition-colors',\n hasError\n ? 'border-[var(--ui-input-password-error-msg-box-border-color-idle)] bg-[var(--ui-input-password-global-box-color-idle)] has-[:focus-visible]:border-[var(--ui-input-password-error-msg-box-border-color-hover)] has-[:focus-visible]:ring-[3px] has-[:focus-visible]:ring-[var(--ui-focus-error)]'\n : cn(\n 'border-[var(--ui-input-password-normal-box-border-color-idle)] bg-[var(--ui-input-password-global-box-color-idle)]',\n !disabled &&\n 'hover:border-[var(--ui-input-password-normal-box-border-color-hover)] hover:bg-[var(--ui-input-password-global-box-color-hover)]',\n 'has-[:focus-visible]:border-[var(--ui-input-password-normal-box-border-color-hover)] has-[:focus-visible]:ring-[3px] has-[:focus-visible]:ring-[var(--ui-focus-primary)]'\n ),\n disabled &&\n 'cursor-not-allowed border-[var(--ui-input-password-normal-box-border-color-disabled)] bg-[var(--ui-input-password-global-box-color-disabled)]'\n );\n}\n\nconst InputPassword = React.forwardRef<HTMLInputElement, InputPasswordProps>(\n (\n {\n className,\n style,\n id,\n label,\n required,\n description,\n error,\n disabled,\n showPasswordLabel = 'Show password',\n hidePasswordLabel = 'Hide password',\n ...props\n },\n ref\n ) => {\n const reactId = React.useId();\n const inputId = id ?? reactId;\n const messageId = `${inputId}-message`;\n const [visible, setVisible] = React.useState(false);\n\n const hasError = error != null && error !== '';\n const message = hasError ? error : description;\n const hasMessage = message != null && message !== '';\n\n return (\n <div\n className={cn(\n 'flex min-w-[var(--ui-input-password-global-container-width-min)] flex-col gap-[var(--ui-input-password-global-container-gap)]',\n className\n )}\n style={style}\n >\n {label != null && label !== '' && (\n <InputPasswordLabel htmlFor={inputId} disabled={disabled} required={required}>\n {label}\n </InputPasswordLabel>\n )}\n\n <div className={getInputPasswordBoxClassName(hasError, disabled)}>\n <input\n ref={ref}\n id={inputId}\n type={visible ? 'text' : 'password'}\n disabled={disabled}\n aria-invalid={hasError || undefined}\n aria-required={required || undefined}\n aria-describedby={hasMessage ? messageId : undefined}\n className={cn(\n 'min-w-0 flex-1 bg-transparent text-sm leading-6 outline-none',\n disabled\n ? 'text-[var(--ui-input-password-global-value-color-disabled)] placeholder:text-[var(--ui-input-password-global-placeholder-color-disabled)]'\n : 'text-[var(--ui-input-password-global-value-color-idle)] placeholder:text-[var(--ui-input-password-global-placeholder-color-idle)]'\n )}\n {...props}\n />\n <ButtonIconInput\n variant={hasError ? 'error' : 'normal'}\n onClick={() => setVisible((prev) => !prev)}\n disabled={disabled}\n aria-label={visible ? hidePasswordLabel : showPasswordLabel}\n aria-pressed={visible}\n className=\"shrink-0\"\n >\n {visible ? <EyeIcon /> : <EyeOffIcon />}\n </ButtonIconInput>\n </div>\n\n {hasMessage && (\n <InputPasswordMessage id={messageId} hasError={hasError} disabled={disabled}>\n {message}\n </InputPasswordMessage>\n )}\n </div>\n );\n }\n);\nInputPassword.displayName = 'InputPassword';\n\nexport { InputPassword };\n"],"mappings":";;;;;;AA6CA,SAAS,EAAmB,EAC1B,YACA,aACA,aACA,eAC0B;CAC1B,OACE,kBAAC,SAAD;EACW;EACT,WAAW,EACT,oFACA,IACI,gEACA,yDACN;EAPF,UAAA,CASG,GACA,KACC,kBAAC,QAAD;GACE,eAAY;GACZ,WAAU;GACX,UAAA;EAEK,CAAA,CAEH;;AAEX;AASA,SAAS,EAAqB,EAC5B,OACA,aACA,aACA,eAC4B;CAC5B,OACE,kBAAC,KAAD;EACM;EACJ,WAAW,EACT,qBACA,IACI,0DACA,IACE,sEACA,+DACR;EAEC;CACA,CAAA;AAEP;AAKA,SAAgB,EACd,GACA,GACA;CACA,OAAO,EACL,uWACA,IACI,oSACA,EACE,sHACA,CAAC,KACC,oIACF,0KACF,GACJ,KACE,+IACJ;AACF;AAEA,IAAM,IAAgB,EAAM,YAExB,EACE,cACA,UACA,OACA,UACA,aACA,gBACA,UACA,aACA,uBAAoB,iBACpB,uBAAoB,iBACpB,GAAG,KAEL,MACG;CACH,IAAM,IAAU,EAAM,MAAM,GACtB,IAAU,KAAM,GAChB,IAAY,GAAG,EAAQ,WACvB,CAAC,GAAS,KAAc,EAAM,SAAS,EAAK,GAE5C,IAAW,KAAS,QAAQ,MAAU,IACtC,IAAU,IAAW,IAAQ,GAC7B,IAAa,KAAW,QAAQ,MAAY;CAElD,OACE,kBAAC,OAAD;EACE,WAAW,EACT,iIACA,CACF;EACO;EALT,UAAA;GAOG,KAAS,QAAQ,MAAU,MAC1B,kBAAC,GAAD;IAAoB,SAAS;IAAmB;IAAoB;IACjE,UAAA;GACiB,CAAA;GAGtB,kBAAC,OAAD;IAAK,WAAW,EAA6B,GAAU,CAAQ;IAA/D,UAAA,CACE,kBAAC,SAAD;KACO;KACL,IAAI;KACJ,MAAM,IAAU,SAAS;KACf;KACV,gBAAc,KAAY,KAAA;KAC1B,iBAAe,KAAY,KAAA;KAC3B,oBAAkB,IAAa,IAAY,KAAA;KAC3C,WAAW,EACT,gEACA,IACI,8IACA,mIACN;KACA,GAAI;IACL,CAAA,GACD,kBAAC,GAAD;KACE,SAAS,IAAW,UAAU;KAC9B,eAAe,GAAY,MAAS,CAAC,CAAI;KAC/B;KACV,cAAY,IAAU,IAAoB;KAC1C,gBAAc;KACd,WAAU;KAET,UAAU,EAAV,IAAW,IAAc,GAAf,CAAU,CAAiB;IACvB,CAAA,CACd;;GAEJ,KACC,kBAAC,GAAD;IAAsB,IAAI;IAAqB;IAAoB;IAChE,UAAA;GACmB,CAAA;EAErB;;AAET,CACF;AACA,EAAc,cAAc"}
@@ -1,56 +1,32 @@
1
- import { jsxs as c, jsx as o } from "react/jsx-runtime";
2
- import * as l from "react";
3
- import { cn as s } from "../../../lib/utils.js";
4
- import { SearchBox as f } from "../search/search.js";
5
- const v = l.forwardRef(
6
- ({
7
- className: p,
8
- id: u,
9
- label: a,
10
- required: r,
11
- disabled: e,
12
- "aria-label": i,
13
- ...d
14
- }, h) => {
15
- const m = l.useId(), t = u ?? m, n = a != null && a !== "", x = n ? { "aria-label": void 0 } : i != null ? { "aria-label": i } : {};
16
- return /* @__PURE__ */ c("div", { className: s("flex min-w-[var(--ui-input-search-container-width-min)] flex-col gap-[var(--ui-input-search-container-gap)]", p), children: [
17
- n && /* @__PURE__ */ c(
18
- "label",
19
- {
20
- htmlFor: t,
21
- className: s(
22
- "flex gap-[var(--ui-input-search-container-label-gap)] text-sm leading-4",
23
- e ? "text-[var(--ui-input-search-color-disabled)]" : "text-[var(--ui-input-search-color-idle)]"
24
- ),
25
- children: [
26
- a,
27
- r && /* @__PURE__ */ o(
28
- "span",
29
- {
30
- "aria-hidden": "true",
31
- className: "text-[var(--ui-input-search-required-color)]",
32
- children: "*"
33
- }
34
- )
35
- ]
36
- }
37
- ),
38
- /* @__PURE__ */ o(
39
- f,
40
- {
41
- ref: h,
42
- id: t,
43
- disabled: e,
44
- "aria-required": r || void 0,
45
- ...x,
46
- ...d
47
- }
48
- )
49
- ] });
50
- }
51
- );
52
- v.displayName = "InputSearch";
53
- export {
54
- v as InputSearch
55
- };
56
- //# sourceMappingURL=input-search.js.map
1
+ import { cn as e } from "../../../lib/utils.js";
2
+ import { SearchBox as t } from "../search/search.js";
3
+ import * as n from "react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ //#region src/components/ui/input-search/input-search.tsx
6
+ var a = n.forwardRef(({ className: a, id: o, label: s, required: c, disabled: l, "aria-label": u, ...d }, f) => {
7
+ let p = n.useId(), m = o ?? p, h = s != null && s !== "", g = h ? { "aria-label": void 0 } : u == null ? {} : { "aria-label": u };
8
+ return /* @__PURE__ */ i("div", {
9
+ className: e("flex min-w-[var(--ui-input-search-container-width-min)] flex-col gap-[var(--ui-input-search-container-gap)]", a),
10
+ children: [h && /* @__PURE__ */ i("label", {
11
+ htmlFor: m,
12
+ className: e("flex gap-[var(--ui-input-search-container-label-gap)] text-sm leading-4", l ? "text-[var(--ui-input-search-color-disabled)]" : "text-[var(--ui-input-search-color-idle)]"),
13
+ children: [s, c && /* @__PURE__ */ r("span", {
14
+ "aria-hidden": "true",
15
+ className: "text-[var(--ui-input-search-required-color)]",
16
+ children: "*"
17
+ })]
18
+ }), /* @__PURE__ */ r(t, {
19
+ ref: f,
20
+ id: m,
21
+ disabled: l,
22
+ "aria-required": c || void 0,
23
+ ...g,
24
+ ...d
25
+ })]
26
+ });
27
+ });
28
+ a.displayName = "InputSearch";
29
+ //#endregion
30
+ export { a as InputSearch };
31
+
32
+ //# sourceMappingURL=input-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-search.js","sources":["../../../../src/components/ui/input-search/input-search.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { SearchBox, type SearchBoxProps } from '../search';\n\n// Mirrors the Figma \"InputSearch\" component: a full search field built around the\n// bare `SearchBox` (themed by the `--ui-input-search-*` tier). It adds the field\n// furniture — an optional `label` above the box (with an optional `required` `*`).\n// Every other prop (placeholder, value, onClear, disabled, …) passes straight\n// through to `Search`. Label colors come from `--ui-input-search-color-{idle,disabled}`\n// and the required marker from `--ui-input-search-required-color`, so brand overrides\n// are honored. When a visible label is present it names the field via `htmlFor`/`id`,\n// and `Search`'s built-in `aria-label=\"Search\"` is cleared so it doesn't shadow the\n// visible label.\nexport interface InputSearchProps extends SearchBoxProps {\n /** Field label, rendered above the search box. */\n label?: React.ReactNode;\n /** Marks the field required — appends a `*` after the label. */\n required?: boolean;\n}\n\nconst InputSearch = React.forwardRef<HTMLInputElement, InputSearchProps>(\n (\n {\n className,\n id,\n label,\n required,\n disabled,\n 'aria-label': ariaLabel,\n ...props\n },\n ref\n ) => {\n const reactId = React.useId();\n const inputId = id ?? reactId;\n const hasLabel = label != null && label !== '';\n\n // A visible label names the field via `htmlFor`/`id`, so clear `Search`'s\n // default `aria-label`. With no label, forward the caller's `aria-label` (if\n // any) and otherwise let `Search`'s default stand.\n const ariaLabelProps = hasLabel\n ? { 'aria-label': undefined }\n : ariaLabel != null\n ? { 'aria-label': ariaLabel }\n : {};\n\n return (\n <div className={cn('flex min-w-[var(--ui-input-search-container-width-min)] flex-col gap-[var(--ui-input-search-container-gap)]', className)}>\n {hasLabel && (\n <label\n htmlFor={inputId}\n className={cn(\n 'flex gap-[var(--ui-input-search-container-label-gap)] text-sm leading-4',\n disabled\n ? 'text-[var(--ui-input-search-color-disabled)]'\n : 'text-[var(--ui-input-search-color-idle)]'\n )}\n >\n {label}\n {required && (\n <span\n aria-hidden=\"true\"\n className=\"text-[var(--ui-input-search-required-color)]\"\n >\n *\n </span>\n )}\n </label>\n )}\n <SearchBox\n ref={ref}\n id={inputId}\n disabled={disabled}\n aria-required={required || undefined}\n {...ariaLabelProps}\n {...props}\n />\n </div>\n );\n }\n);\nInputSearch.displayName = 'InputSearch';\n\nexport { InputSearch };\n"],"names":["InputSearch","React","className","id","label","required","disabled","ariaLabel","props","ref","reactId","inputId","hasLabel","ariaLabelProps","cn","jsxs","jsx","SearchBox"],"mappings":";;;;AAqBA,MAAMA,IAAcC,EAAM;AAAA,EACxB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,IAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAcC;AAAA,IACd,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAUT,EAAM,MAAA,GAChBU,IAAUR,KAAMO,GAChBE,IAAWR,KAAS,QAAQA,MAAU,IAKtCS,IAAiBD,IACnB,EAAE,cAAc,OAAA,IAChBL,KAAa,OACX,EAAE,cAAcA,EAAA,IAChB,CAAA;AAEN,6BACG,OAAA,EAAI,WAAWO,EAAG,+GAA+GZ,CAAS,GACxI,UAAA;AAAA,MAAAU,KACC,gBAAAG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASJ;AAAA,UACT,WAAWG;AAAA,YACT;AAAA,YACAR,IACI,iDACA;AAAA,UAAA;AAAA,UAGL,UAAA;AAAA,YAAAF;AAAA,YACAC,KACC,gBAAAW;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,eAAY;AAAA,gBACZ,WAAU;AAAA,gBACX,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED;AAAA,QAAA;AAAA,MAAA;AAAA,MAIN,gBAAAA;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,KAAAR;AAAA,UACA,IAAIE;AAAA,UACJ,UAAAL;AAAA,UACA,iBAAeD,KAAY;AAAA,UAC1B,GAAGQ;AAAA,UACH,GAAGL;AAAA,QAAA;AAAA,MAAA;AAAA,IACN,GACF;AAAA,EAEJ;AACF;AACAR,EAAY,cAAc;"}
1
+ {"version":3,"file":"input-search.js","names":[],"sources":["../../../../src/components/ui/input-search/input-search.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { SearchBox, type SearchBoxProps } from '../search';\n\n// Mirrors the Figma \"InputSearch\" component: a full search field built around the\n// bare `SearchBox` (themed by the `--ui-input-search-*` tier). It adds the field\n// furniture — an optional `label` above the box (with an optional `required` `*`).\n// Every other prop (placeholder, value, onClear, disabled, …) passes straight\n// through to `Search`. Label colors come from `--ui-input-search-color-{idle,disabled}`\n// and the required marker from `--ui-input-search-required-color`, so brand overrides\n// are honored. When a visible label is present it names the field via `htmlFor`/`id`,\n// and `Search`'s built-in `aria-label=\"Search\"` is cleared so it doesn't shadow the\n// visible label.\nexport interface InputSearchProps extends SearchBoxProps {\n /** Field label, rendered above the search box. */\n label?: React.ReactNode;\n /** Marks the field required — appends a `*` after the label. */\n required?: boolean;\n}\n\nconst InputSearch = React.forwardRef<HTMLInputElement, InputSearchProps>(\n (\n {\n className,\n id,\n label,\n required,\n disabled,\n 'aria-label': ariaLabel,\n ...props\n },\n ref\n ) => {\n const reactId = React.useId();\n const inputId = id ?? reactId;\n const hasLabel = label != null && label !== '';\n\n // A visible label names the field via `htmlFor`/`id`, so clear `Search`'s\n // default `aria-label`. With no label, forward the caller's `aria-label` (if\n // any) and otherwise let `Search`'s default stand.\n const ariaLabelProps = hasLabel\n ? { 'aria-label': undefined }\n : ariaLabel != null\n ? { 'aria-label': ariaLabel }\n : {};\n\n return (\n <div className={cn('flex min-w-[var(--ui-input-search-container-width-min)] flex-col gap-[var(--ui-input-search-container-gap)]', className)}>\n {hasLabel && (\n <label\n htmlFor={inputId}\n className={cn(\n 'flex gap-[var(--ui-input-search-container-label-gap)] text-sm leading-4',\n disabled\n ? 'text-[var(--ui-input-search-color-disabled)]'\n : 'text-[var(--ui-input-search-color-idle)]'\n )}\n >\n {label}\n {required && (\n <span\n aria-hidden=\"true\"\n className=\"text-[var(--ui-input-search-required-color)]\"\n >\n *\n </span>\n )}\n </label>\n )}\n <SearchBox\n ref={ref}\n id={inputId}\n disabled={disabled}\n aria-required={required || undefined}\n {...ariaLabelProps}\n {...props}\n />\n </div>\n );\n }\n);\nInputSearch.displayName = 'InputSearch';\n\nexport { InputSearch };\n"],"mappings":";;;;;AAqBA,IAAM,IAAc,EAAM,YAEtB,EACE,cACA,OACA,UACA,aACA,aACA,cAAc,GACd,GAAG,KAEL,MACG;CACH,IAAM,IAAU,EAAM,MAAM,GACtB,IAAU,KAAM,GAChB,IAAW,KAAS,QAAQ,MAAU,IAKtC,IAAiB,IACnB,EAAE,cAAc,KAAA,EAAU,IAC1B,KAAa,OAEX,CAAC,IADD,EAAE,cAAc,EAAU;CAGhC,OACE,kBAAC,OAAD;EAAK,WAAW,EAAG,+GAA+G,CAAS;EAA3I,UAAA,CACG,KACC,kBAAC,SAAD;GACE,SAAS;GACT,WAAW,EACT,2EACA,IACI,iDACA,0CACN;GAPF,UAAA,CASG,GACA,KACC,kBAAC,QAAD;IACE,eAAY;IACZ,WAAU;IACX,UAAA;GAEK,CAAA,CAEH;EAET,CAAA,GAAA,kBAAC,GAAD;GACO;GACL,IAAI;GACM;GACV,iBAAe,KAAY,KAAA;GAC3B,GAAI;GACJ,GAAI;EACL,CAAA,CACE;;AAET,CACF;AACA,EAAY,cAAc"}