@acronis-platform/ui-react 0.55.0 → 0.56.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 (307) hide show
  1. package/README.md +1 -1
  2. package/package.json +4 -2
  3. package/dist/components/ui/accordion/accordion.js +0 -53
  4. package/dist/components/ui/accordion/accordion.js.map +0 -1
  5. package/dist/components/ui/alert/alert.js +0 -99
  6. package/dist/components/ui/alert/alert.js.map +0 -1
  7. package/dist/components/ui/app-shell/app-shell.js +0 -75
  8. package/dist/components/ui/app-shell/app-shell.js.map +0 -1
  9. package/dist/components/ui/auth-layout/auth-layout.js +0 -56
  10. package/dist/components/ui/auth-layout/auth-layout.js.map +0 -1
  11. package/dist/components/ui/avatar/avatar.js +0 -70
  12. package/dist/components/ui/avatar/avatar.js.map +0 -1
  13. package/dist/components/ui/breadcrumb/breadcrumb.js +0 -116
  14. package/dist/components/ui/breadcrumb/breadcrumb.js.map +0 -1
  15. package/dist/components/ui/button/button.js +0 -50
  16. package/dist/components/ui/button/button.js.map +0 -1
  17. package/dist/components/ui/button-icon/button-icon.js +0 -35
  18. package/dist/components/ui/button-icon/button-icon.js.map +0 -1
  19. package/dist/components/ui/button-menu/button-menu.js +0 -52
  20. package/dist/components/ui/button-menu/button-menu.js.map +0 -1
  21. package/dist/components/ui/card/card.js +0 -92
  22. package/dist/components/ui/card/card.js.map +0 -1
  23. package/dist/components/ui/card-filter/card-filter.js +0 -63
  24. package/dist/components/ui/card-filter/card-filter.js.map +0 -1
  25. package/dist/components/ui/chart/chart.js +0 -213
  26. package/dist/components/ui/chart/chart.js.map +0 -1
  27. package/dist/components/ui/checkbox/checkbox.js +0 -70
  28. package/dist/components/ui/checkbox/checkbox.js.map +0 -1
  29. package/dist/components/ui/chip/chip.js +0 -70
  30. package/dist/components/ui/chip/chip.js.map +0 -1
  31. package/dist/components/ui/collapsible/collapsible.js +0 -22
  32. package/dist/components/ui/collapsible/collapsible.js.map +0 -1
  33. package/dist/components/ui/combobox/combobox.js +0 -153
  34. package/dist/components/ui/combobox/combobox.js.map +0 -1
  35. package/dist/components/ui/data-table/data-table-column-header.js +0 -36
  36. package/dist/components/ui/data-table/data-table-column-header.js.map +0 -1
  37. package/dist/components/ui/data-table/data-table-pagination.js +0 -89
  38. package/dist/components/ui/data-table/data-table-pagination.js.map +0 -1
  39. package/dist/components/ui/data-table/data-table-toolbar.js +0 -46
  40. package/dist/components/ui/data-table/data-table-toolbar.js.map +0 -1
  41. package/dist/components/ui/data-table/data-table-view-options.js +0 -40
  42. package/dist/components/ui/data-table/data-table-view-options.js.map +0 -1
  43. package/dist/components/ui/data-table/data-table.js +0 -89
  44. package/dist/components/ui/data-table/data-table.js.map +0 -1
  45. package/dist/components/ui/description-list/description-list.js +0 -54
  46. package/dist/components/ui/description-list/description-list.js.map +0 -1
  47. package/dist/components/ui/dialog/dialog.js +0 -141
  48. package/dist/components/ui/dialog/dialog.js.map +0 -1
  49. package/dist/components/ui/dropdown-menu/dropdown-menu.js +0 -160
  50. package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +0 -1
  51. package/dist/components/ui/empty/empty.js +0 -78
  52. package/dist/components/ui/empty/empty.js.map +0 -1
  53. package/dist/components/ui/field/field.js +0 -189
  54. package/dist/components/ui/field/field.js.map +0 -1
  55. package/dist/components/ui/filter-search/filter-search.js +0 -28
  56. package/dist/components/ui/filter-search/filter-search.js.map +0 -1
  57. package/dist/components/ui/form/form.js +0 -16
  58. package/dist/components/ui/form/form.js.map +0 -1
  59. package/dist/components/ui/grid/grid.js +0 -69
  60. package/dist/components/ui/grid/grid.js.map +0 -1
  61. package/dist/components/ui/input/input.js +0 -22
  62. package/dist/components/ui/input/input.js.map +0 -1
  63. package/dist/components/ui/input-date-picker/input-date-picker.js +0 -104
  64. package/dist/components/ui/input-date-picker/input-date-picker.js.map +0 -1
  65. package/dist/components/ui/input-search/input-search.js +0 -56
  66. package/dist/components/ui/input-search/input-search.js.map +0 -1
  67. package/dist/components/ui/input-select/input-select.js +0 -269
  68. package/dist/components/ui/input-select/input-select.js.map +0 -1
  69. package/dist/components/ui/input-text/input-text.js +0 -87
  70. package/dist/components/ui/input-text/input-text.js.map +0 -1
  71. package/dist/components/ui/input-text-area/input-text-area.js +0 -77
  72. package/dist/components/ui/input-text-area/input-text-area.js.map +0 -1
  73. package/dist/components/ui/label/label.js +0 -12
  74. package/dist/components/ui/label/label.js.map +0 -1
  75. package/dist/components/ui/link/link.js +0 -39
  76. package/dist/components/ui/link/link.js.map +0 -1
  77. package/dist/components/ui/number-field/number-field.js +0 -61
  78. package/dist/components/ui/number-field/number-field.js.map +0 -1
  79. package/dist/components/ui/page-content/page-content.js +0 -19
  80. package/dist/components/ui/page-content/page-content.js.map +0 -1
  81. package/dist/components/ui/page-header/page-header.js +0 -74
  82. package/dist/components/ui/page-header/page-header.js.map +0 -1
  83. package/dist/components/ui/pagination/pagination.js +0 -87
  84. package/dist/components/ui/pagination/pagination.js.map +0 -1
  85. package/dist/components/ui/popover/popover.js +0 -49
  86. package/dist/components/ui/popover/popover.js.map +0 -1
  87. package/dist/components/ui/progress/progress.js +0 -30
  88. package/dist/components/ui/progress/progress.js.map +0 -1
  89. package/dist/components/ui/progress-circle/progress-circle.js +0 -115
  90. package/dist/components/ui/progress-circle/progress-circle.js.map +0 -1
  91. package/dist/components/ui/radio/radio.js +0 -44
  92. package/dist/components/ui/radio/radio.js.map +0 -1
  93. package/dist/components/ui/resizable/resizable.js +0 -44
  94. package/dist/components/ui/resizable/resizable.js.map +0 -1
  95. package/dist/components/ui/scroll-area/scroll-area.js +0 -61
  96. package/dist/components/ui/scroll-area/scroll-area.js.map +0 -1
  97. package/dist/components/ui/search/search.js +0 -93
  98. package/dist/components/ui/search/search.js.map +0 -1
  99. package/dist/components/ui/search-global/search-global.js +0 -60
  100. package/dist/components/ui/search-global/search-global.js.map +0 -1
  101. package/dist/components/ui/section/section.js +0 -37
  102. package/dist/components/ui/section/section.js.map +0 -1
  103. package/dist/components/ui/separator/separator.js +0 -22
  104. package/dist/components/ui/separator/separator.js.map +0 -1
  105. package/dist/components/ui/sheet/sheet-details.js +0 -80
  106. package/dist/components/ui/sheet/sheet-details.js.map +0 -1
  107. package/dist/components/ui/sheet/sheet.js +0 -139
  108. package/dist/components/ui/sheet/sheet.js.map +0 -1
  109. package/dist/components/ui/sidebar-primary/sidebar-primary.js +0 -318
  110. package/dist/components/ui/sidebar-primary/sidebar-primary.js.map +0 -1
  111. package/dist/components/ui/sidebar-secondary/sidebar-secondary.js +0 -624
  112. package/dist/components/ui/sidebar-secondary/sidebar-secondary.js.map +0 -1
  113. package/dist/components/ui/skeleton/skeleton.js +0 -22
  114. package/dist/components/ui/skeleton/skeleton.js.map +0 -1
  115. package/dist/components/ui/slider/slider.js +0 -42
  116. package/dist/components/ui/slider/slider.js.map +0 -1
  117. package/dist/components/ui/spinner/spinner.js +0 -38
  118. package/dist/components/ui/spinner/spinner.js.map +0 -1
  119. package/dist/components/ui/stack/stack.js +0 -61
  120. package/dist/components/ui/stack/stack.js.map +0 -1
  121. package/dist/components/ui/switch/switch.js +0 -41
  122. package/dist/components/ui/switch/switch.js.map +0 -1
  123. package/dist/components/ui/table/table.js +0 -118
  124. package/dist/components/ui/table/table.js.map +0 -1
  125. package/dist/components/ui/tabs/tabs.js +0 -44
  126. package/dist/components/ui/tabs/tabs.js.map +0 -1
  127. package/dist/components/ui/tag/tag.js +0 -47
  128. package/dist/components/ui/tag/tag.js.map +0 -1
  129. package/dist/components/ui/toast/toast.js +0 -85
  130. package/dist/components/ui/toast/toast.js.map +0 -1
  131. package/dist/components/ui/toggle-group/toggle-group.js +0 -47
  132. package/dist/components/ui/toggle-group/toggle-group.js.map +0 -1
  133. package/dist/components/ui/tooltip/tooltip.js +0 -53
  134. package/dist/components/ui/tooltip/tooltip.js.map +0 -1
  135. package/dist/components/ui/widget-placeholder/widget-placeholder.js +0 -106
  136. package/dist/components/ui/widget-placeholder/widget-placeholder.js.map +0 -1
  137. package/dist/index.d.ts +0 -2
  138. package/dist/index.js +0 -361
  139. package/dist/index.js.map +0 -1
  140. package/dist/lib/portal-container.js +0 -14
  141. package/dist/lib/portal-container.js.map +0 -1
  142. package/dist/lib/utils.js +0 -9
  143. package/dist/lib/utils.js.map +0 -1
  144. 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 +0 -104
  145. 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 +0 -1
  146. package/dist/node_modules/.pnpm/@tanstack_table-core@8.21.3/node_modules/@tanstack/table-core/build/lib/index.js +0 -1900
  147. package/dist/node_modules/.pnpm/@tanstack_table-core@8.21.3/node_modules/@tanstack/table-core/build/lib/index.js.map +0 -1
  148. package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js +0 -36
  149. package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js.map +0 -1
  150. package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js +0 -17
  151. package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +0 -1
  152. 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 +0 -2093
  153. 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 +0 -1
  154. package/dist/node_modules/.pnpm/tailwind-merge@3.6.0/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2996
  155. package/dist/node_modules/.pnpm/tailwind-merge@3.6.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
  156. package/dist/react.d.ts +0 -2
  157. package/dist/react.js +0 -361
  158. package/dist/react.js.map +0 -1
  159. package/dist/src/components/ui/accordion/accordion.d.ts +0 -7
  160. package/dist/src/components/ui/accordion/index.d.ts +0 -1
  161. package/dist/src/components/ui/alert/alert.d.ts +0 -14
  162. package/dist/src/components/ui/alert/index.d.ts +0 -2
  163. package/dist/src/components/ui/app-shell/app-shell.d.ts +0 -8
  164. package/dist/src/components/ui/app-shell/index.d.ts +0 -1
  165. package/dist/src/components/ui/auth-layout/auth-layout.d.ts +0 -6
  166. package/dist/src/components/ui/auth-layout/index.d.ts +0 -1
  167. package/dist/src/components/ui/avatar/avatar.d.ts +0 -27
  168. package/dist/src/components/ui/avatar/index.d.ts +0 -1
  169. package/dist/src/components/ui/breadcrumb/breadcrumb.d.ts +0 -30
  170. package/dist/src/components/ui/breadcrumb/index.d.ts +0 -1
  171. package/dist/src/components/ui/button/button.d.ts +0 -16
  172. package/dist/src/components/ui/button/index.d.ts +0 -1
  173. package/dist/src/components/ui/button-icon/button-icon.d.ts +0 -20
  174. package/dist/src/components/ui/button-icon/index.d.ts +0 -1
  175. package/dist/src/components/ui/button-menu/button-menu.d.ts +0 -29
  176. package/dist/src/components/ui/button-menu/index.d.ts +0 -1
  177. package/dist/src/components/ui/card/card.d.ts +0 -17
  178. package/dist/src/components/ui/card/index.d.ts +0 -1
  179. package/dist/src/components/ui/card-filter/card-filter.d.ts +0 -27
  180. package/dist/src/components/ui/card-filter/index.d.ts +0 -1
  181. package/dist/src/components/ui/chart/chart.d.ts +0 -55
  182. package/dist/src/components/ui/chart/index.d.ts +0 -2
  183. package/dist/src/components/ui/checkbox/checkbox.d.ts +0 -10
  184. package/dist/src/components/ui/checkbox/index.d.ts +0 -1
  185. package/dist/src/components/ui/chip/chip.d.ts +0 -20
  186. package/dist/src/components/ui/chip/index.d.ts +0 -1
  187. package/dist/src/components/ui/collapsible/collapsible.d.ts +0 -5
  188. package/dist/src/components/ui/collapsible/index.d.ts +0 -1
  189. package/dist/src/components/ui/combobox/combobox.d.ts +0 -28
  190. package/dist/src/components/ui/combobox/index.d.ts +0 -2
  191. package/dist/src/components/ui/data-table/data-table-column-header.d.ts +0 -8
  192. package/dist/src/components/ui/data-table/data-table-pagination.d.ts +0 -8
  193. package/dist/src/components/ui/data-table/data-table-toolbar.d.ts +0 -9
  194. package/dist/src/components/ui/data-table/data-table-view-options.d.ts +0 -6
  195. package/dist/src/components/ui/data-table/data-table.d.ts +0 -24
  196. package/dist/src/components/ui/data-table/data-table.docs.d.ts +0 -22
  197. package/dist/src/components/ui/data-table/index.d.ts +0 -5
  198. package/dist/src/components/ui/description-list/description-list.d.ts +0 -8
  199. package/dist/src/components/ui/description-list/index.d.ts +0 -1
  200. package/dist/src/components/ui/dialog/dialog.d.ts +0 -39
  201. package/dist/src/components/ui/dialog/dialog.docs.d.ts +0 -24
  202. package/dist/src/components/ui/dialog/index.d.ts +0 -1
  203. package/dist/src/components/ui/dropdown-menu/dropdown-menu.d.ts +0 -39
  204. package/dist/src/components/ui/dropdown-menu/dropdown-menu.docs.d.ts +0 -25
  205. package/dist/src/components/ui/dropdown-menu/index.d.ts +0 -1
  206. package/dist/src/components/ui/empty/empty.d.ts +0 -9
  207. package/dist/src/components/ui/empty/index.d.ts +0 -1
  208. package/dist/src/components/ui/field/field.d.ts +0 -39
  209. package/dist/src/components/ui/field/field.docs.d.ts +0 -27
  210. package/dist/src/components/ui/field/index.d.ts +0 -2
  211. package/dist/src/components/ui/filter-search/filter-search.d.ts +0 -6
  212. package/dist/src/components/ui/filter-search/index.d.ts +0 -2
  213. package/dist/src/components/ui/form/form.d.ts +0 -6
  214. package/dist/src/components/ui/form/index.d.ts +0 -1
  215. package/dist/src/components/ui/grid/grid.d.ts +0 -15
  216. package/dist/src/components/ui/grid/index.d.ts +0 -1
  217. package/dist/src/components/ui/input/index.d.ts +0 -1
  218. package/dist/src/components/ui/input/input.d.ts +0 -4
  219. package/dist/src/components/ui/input-date-picker/index.d.ts +0 -1
  220. package/dist/src/components/ui/input-date-picker/input-date-picker.d.ts +0 -27
  221. package/dist/src/components/ui/input-search/index.d.ts +0 -1
  222. package/dist/src/components/ui/input-search/input-search.d.ts +0 -10
  223. package/dist/src/components/ui/input-select/index.d.ts +0 -1
  224. package/dist/src/components/ui/input-select/input-select.d.ts +0 -46
  225. package/dist/src/components/ui/input-text/index.d.ts +0 -1
  226. package/dist/src/components/ui/input-text/input-text.d.ts +0 -20
  227. package/dist/src/components/ui/input-text-area/index.d.ts +0 -1
  228. package/dist/src/components/ui/input-text-area/input-text-area.d.ts +0 -16
  229. package/dist/src/components/ui/label/index.d.ts +0 -1
  230. package/dist/src/components/ui/label/label.d.ts +0 -5
  231. package/dist/src/components/ui/label/label.docs.d.ts +0 -10
  232. package/dist/src/components/ui/link/index.d.ts +0 -1
  233. package/dist/src/components/ui/link/link.d.ts +0 -15
  234. package/dist/src/components/ui/number-field/index.d.ts +0 -1
  235. package/dist/src/components/ui/number-field/number-field.d.ts +0 -7
  236. package/dist/src/components/ui/page-content/index.d.ts +0 -1
  237. package/dist/src/components/ui/page-content/page-content.d.ts +0 -4
  238. package/dist/src/components/ui/page-header/index.d.ts +0 -1
  239. package/dist/src/components/ui/page-header/page-header.d.ts +0 -8
  240. package/dist/src/components/ui/pagination/index.d.ts +0 -2
  241. package/dist/src/components/ui/pagination/pagination.d.ts +0 -25
  242. package/dist/src/components/ui/popover/index.d.ts +0 -1
  243. package/dist/src/components/ui/popover/popover.d.ts +0 -27
  244. package/dist/src/components/ui/popover/popover.docs.d.ts +0 -25
  245. package/dist/src/components/ui/progress/index.d.ts +0 -1
  246. package/dist/src/components/ui/progress/progress.d.ts +0 -9
  247. package/dist/src/components/ui/progress/progress.docs.d.ts +0 -16
  248. package/dist/src/components/ui/progress-circle/index.d.ts +0 -1
  249. package/dist/src/components/ui/progress-circle/progress-circle.d.ts +0 -47
  250. package/dist/src/components/ui/progress-circle/progress-circle.docs.d.ts +0 -21
  251. package/dist/src/components/ui/radio/index.d.ts +0 -1
  252. package/dist/src/components/ui/radio/radio.d.ts +0 -8
  253. package/dist/src/components/ui/resizable/index.d.ts +0 -2
  254. package/dist/src/components/ui/resizable/resizable.d.ts +0 -6
  255. package/dist/src/components/ui/scroll-area/index.d.ts +0 -1
  256. package/dist/src/components/ui/scroll-area/scroll-area.d.ts +0 -10
  257. package/dist/src/components/ui/search/index.d.ts +0 -1
  258. package/dist/src/components/ui/search/search.d.ts +0 -7
  259. package/dist/src/components/ui/search-global/index.d.ts +0 -1
  260. package/dist/src/components/ui/search-global/search-global.d.ts +0 -7
  261. package/dist/src/components/ui/section/index.d.ts +0 -1
  262. package/dist/src/components/ui/section/section.d.ts +0 -7
  263. package/dist/src/components/ui/select/index.d.ts +0 -1
  264. package/dist/src/components/ui/select/select.d.ts +0 -1
  265. package/dist/src/components/ui/separator/index.d.ts +0 -1
  266. package/dist/src/components/ui/separator/separator.d.ts +0 -3
  267. package/dist/src/components/ui/sheet/index.d.ts +0 -3
  268. package/dist/src/components/ui/sheet/sheet-details.d.ts +0 -42
  269. package/dist/src/components/ui/sheet/sheet.d.ts +0 -36
  270. package/dist/src/components/ui/sheet/sheet.docs.d.ts +0 -21
  271. package/dist/src/components/ui/sidebar-primary/index.d.ts +0 -1
  272. package/dist/src/components/ui/sidebar-primary/sidebar-primary.d.ts +0 -99
  273. package/dist/src/components/ui/sidebar-secondary/index.d.ts +0 -1
  274. package/dist/src/components/ui/sidebar-secondary/sidebar-secondary.d.ts +0 -117
  275. package/dist/src/components/ui/skeleton/index.d.ts +0 -1
  276. package/dist/src/components/ui/skeleton/skeleton.d.ts +0 -4
  277. package/dist/src/components/ui/slider/index.d.ts +0 -1
  278. package/dist/src/components/ui/slider/slider.d.ts +0 -7
  279. package/dist/src/components/ui/spinner/index.d.ts +0 -1
  280. package/dist/src/components/ui/spinner/spinner.d.ts +0 -9
  281. package/dist/src/components/ui/stack/index.d.ts +0 -1
  282. package/dist/src/components/ui/stack/stack.d.ts +0 -13
  283. package/dist/src/components/ui/switch/index.d.ts +0 -1
  284. package/dist/src/components/ui/switch/switch.d.ts +0 -8
  285. package/dist/src/components/ui/table/index.d.ts +0 -1
  286. package/dist/src/components/ui/table/table.d.ts +0 -23
  287. package/dist/src/components/ui/tabs/index.d.ts +0 -1
  288. package/dist/src/components/ui/tabs/tabs.d.ts +0 -6
  289. package/dist/src/components/ui/tabs/tabs.docs.d.ts +0 -25
  290. package/dist/src/components/ui/tag/index.d.ts +0 -1
  291. package/dist/src/components/ui/tag/tag.d.ts +0 -12
  292. package/dist/src/components/ui/toast/index.d.ts +0 -1
  293. package/dist/src/components/ui/toast/toast.d.ts +0 -48
  294. package/dist/src/components/ui/toast/toast.docs.d.ts +0 -12
  295. package/dist/src/components/ui/toggle-group/index.d.ts +0 -1
  296. package/dist/src/components/ui/toggle-group/toggle-group.d.ts +0 -7
  297. package/dist/src/components/ui/tooltip/index.d.ts +0 -1
  298. package/dist/src/components/ui/tooltip/tooltip.d.ts +0 -13
  299. package/dist/src/components/ui/widget-placeholder/index.d.ts +0 -1
  300. package/dist/src/components/ui/widget-placeholder/widget-placeholder.d.ts +0 -18
  301. package/dist/src/components/ui/widget-placeholder/widget-placeholder.docs.d.ts +0 -14
  302. package/dist/src/index.d.ts +0 -68
  303. package/dist/src/lib/portal-container.d.ts +0 -36
  304. package/dist/src/lib/utils.d.ts +0 -2
  305. package/dist/src/react.d.ts +0 -1
  306. package/dist/styles.d.ts +0 -1
  307. package/dist/ui-react.css +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio.js","sources":["../../../../src/components/ui/radio/radio.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Radio as RadioPrimitive } from '@base-ui/react/radio';\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group';\n\nimport { cn } from '@/lib/utils';\n\n// Radio group + item, wrapping Base UI's RadioGroup / Radio primitives. Radios\n// are mutually exclusive, so the group owns the selected value; each Radio takes\n// a `value`. Colors and geometry come from the dedicated next-gen `--ui-radio-*`\n// token tier from @acronis-platform/tokens-pd (which mirrors `--ui-checkbox-*`):\n// the circle has two logical states — `unchecked` (the base) and `checked` —\n// each with its own per-interaction (idle / hover / active / disabled) fill\n// (`*-box-color-*`) and border (`*-box-border-color-*`) tokens. `unchecked` is\n// the base layer (lowest specificity); `data-[checked]` overrides it, and\n// `data-[disabled]:data-[checked]` overrides that in turn. The inner dot fill\n// uses `--ui-radio-checked-icon-color-*`. Box geometry (16px size) comes from\n// `--ui-radio-global-box-size`; the focus ring uses `--ui-focus-primary`. Each\n// state is wired to its own token, and the checked overrides are scoped with\n// `not-data-[disabled]` so the disabled tokens win.\n\nexport type RadioGroupProps = React.ComponentPropsWithoutRef<\n typeof RadioGroupPrimitive\n>;\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive>,\n RadioGroupProps\n>(({ className, ...props }, ref) => (\n <RadioGroupPrimitive\n ref={ref}\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n));\nRadioGroup.displayName = 'RadioGroup';\n\nexport type RadioProps = React.ComponentPropsWithoutRef<\n typeof RadioPrimitive.Root\n>;\n\nconst Radio = React.forwardRef<\n React.ElementRef<typeof RadioPrimitive.Root>,\n RadioProps\n>(({ className, ...props }, ref) => (\n <RadioPrimitive.Root\n ref={ref}\n className={cn(\n // geometry + focus ring\n 'inline-flex size-[var(--ui-radio-global-box-size)] shrink-0 cursor-pointer items-center justify-center rounded-full border outline-none transition-colors focus-visible:ring-[3px] focus-visible:ring-[var(--ui-focus-primary)]',\n // unchecked (base): idle / hover / active\n 'bg-[var(--ui-radio-unchecked-box-color-idle)] border-[var(--ui-radio-unchecked-box-border-color-idle)]',\n 'not-data-[disabled]:hover:bg-[var(--ui-radio-unchecked-box-color-hover)] not-data-[disabled]:hover:border-[var(--ui-radio-unchecked-box-border-color-hover)]',\n 'not-data-[disabled]:active:bg-[var(--ui-radio-unchecked-box-color-active)] not-data-[disabled]:active:border-[var(--ui-radio-unchecked-box-border-color-active)]',\n // checked: idle / hover / active\n 'data-[checked]:not-data-[disabled]:bg-[var(--ui-radio-checked-box-color-idle)] data-[checked]:not-data-[disabled]:border-[var(--ui-radio-checked-box-border-color-idle)]',\n 'data-[checked]:not-data-[disabled]:hover:bg-[var(--ui-radio-checked-box-color-hover)] data-[checked]:not-data-[disabled]:hover:border-[var(--ui-radio-checked-box-border-color-hover)]',\n 'data-[checked]:not-data-[disabled]:active:bg-[var(--ui-radio-checked-box-color-active)] data-[checked]:not-data-[disabled]:active:border-[var(--ui-radio-checked-box-border-color-active)]',\n // disabled (unchecked base + checked override)\n 'data-[disabled]:cursor-not-allowed data-[disabled]:bg-[var(--ui-radio-unchecked-box-color-disabled)] data-[disabled]:border-[var(--ui-radio-unchecked-box-border-color-disabled)]',\n 'data-[disabled]:data-[checked]:bg-[var(--ui-radio-checked-box-color-disabled)] data-[disabled]:data-[checked]:border-[var(--ui-radio-checked-box-border-color-disabled)]',\n className\n )}\n {...props}\n >\n <RadioPrimitive.Indicator className=\"size-2 rounded-full bg-[var(--ui-radio-checked-icon-color-idle)] data-[disabled]:bg-[var(--ui-radio-checked-icon-color-disabled)]\" />\n </RadioPrimitive.Root>\n));\nRadio.displayName = 'Radio';\n\nexport { RadioGroup, Radio };\n"],"names":["RadioGroup","React","className","props","ref","jsx","RadioGroupPrimitive","cn","Radio","RadioPrimitive"],"mappings":";;;;;AAwBA,MAAMA,IAAaC,EAAM,WAGvB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACC;AAAAA,EAAA;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG,EAAG,uBAAuBL,CAAS;AAAA,IAC7C,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAW,cAAc;AAMzB,MAAMQ,IAAQP,EAAM,WAGlB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACI,EAAe;AAAA,EAAf;AAAA,IACC,KAAAL;AAAA,IACA,WAAWG;AAAA;AAAA,MAET;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACAL;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,IAEJ,UAAA,gBAAAE,EAACI,EAAe,WAAf,EAAyB,WAAU,oIAAA,CAAoI;AAAA,EAAA;AAC1K,CACD;AACDD,EAAM,cAAc;"}
@@ -1,44 +0,0 @@
1
- import { jsx as t } from "react/jsx-runtime";
2
- import { Separator as i, Panel as o, Group as n } from "../../../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";
3
- import { cn as e } from "../../../lib/utils.js";
4
- function u({ className: r, ...a }) {
5
- return /* @__PURE__ */ t(
6
- n,
7
- {
8
- className: e("flex h-full w-full aria-[orientation=vertical]:flex-col", r),
9
- ...a
10
- }
11
- );
12
- }
13
- function c(r) {
14
- return /* @__PURE__ */ t(o, { ...r });
15
- }
16
- function b({ className: r, ...a }) {
17
- return /* @__PURE__ */ t(
18
- i,
19
- {
20
- className: e(
21
- // 9px hit area: 1px divider + 4px padding each side.
22
- "relative flex w-[9px] items-center justify-center",
23
- "cursor-[var(--ui-resizable-cursor)] outline-none",
24
- // Centered 1px divider line (idle → semantic border, hover → hover token, drag → active token).
25
- "after:absolute after:inset-y-0 after:start-1/2 after:-translate-x-1/2",
26
- "after:w-[var(--ui-resizable-border-width)] after:bg-[var(--ui-border-on-surface-border)]",
27
- "hover:after:bg-[var(--ui-resizable-border-color-hover)]",
28
- "active:after:bg-[var(--ui-resizable-border-color-active)]",
29
- "focus-visible:ring-[3px] focus-visible:ring-[var(--ui-focus-primary)]",
30
- // orientation=horizontal = panels stacked → horizontal divider line.
31
- "aria-[orientation=horizontal]:h-[9px] aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:cursor-[ns-resize]",
32
- "aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:inset-y-auto aria-[orientation=horizontal]:after:start-auto aria-[orientation=horizontal]:after:top-1/2 aria-[orientation=horizontal]:after:h-[var(--ui-resizable-border-width)] aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 aria-[orientation=horizontal]:after:translate-x-0",
33
- r
34
- ),
35
- ...a
36
- }
37
- );
38
- }
39
- export {
40
- b as ResizableHandle,
41
- c as ResizablePanel,
42
- u as ResizablePanelGroup
43
- };
44
- //# sourceMappingURL=resizable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resizable.js","sources":["../../../../src/components/ui/resizable/resizable.tsx"],"sourcesContent":["import * as ResizablePrimitive from 'react-resizable-panels';\n\nimport { cn } from '@/lib/utils';\n\n// Resizable panels: a thin wrapper over `react-resizable-panels` (v4: `Group` /\n// `Panel` / `Separator`) themed with the next-gen `--ui-resizable-*` token tier,\n// following the shadcn composition (`ResizablePanelGroup` / `ResizablePanel` /\n// `ResizableHandle`). Base UI has no resizable primitive, so this is the one\n// component that wraps a third-party panel library instead.\n//\n// The handle is the 9px-wide draggable `Separator` (Figma node 4649:6681,\n// 1px divider + 4px padding each side for hover hit area). It paints a centered\n// 1px divider line (`--ui-resizable-border-width`) — `--ui-border-on-surface-border`\n// at rest (idle), `--ui-resizable-border-color-hover` on pointer hover,\n// `--ui-resizable-border-color-active` while dragging (`:active`). Keyboard focus\n// paints a 3px `--ui-focus-primary` ring; the resting cursor is\n// `--ui-resizable-cursor` (`ew-resize`). Each interaction state is wired to its\n// own token so brands can diverge.\n//\n// `orientation=\"vertical\"` (panels stacked) flips the layout: the Group goes\n// `flex-col`, the Separator becomes a horizontal line (`aria-orientation=horizontal`),\n// and the cursor becomes `ns-resize`.\n\nfunction ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps) {\n return (\n <ResizablePrimitive.Group\n className={cn('flex h-full w-full aria-[orientation=vertical]:flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel(props: ResizablePrimitive.PanelProps) {\n return <ResizablePrimitive.Panel {...props} />;\n}\n\nexport type ResizableHandleProps = ResizablePrimitive.SeparatorProps;\n\nfunction ResizableHandle({ className, ...props }: ResizableHandleProps) {\n return (\n <ResizablePrimitive.Separator\n className={cn(\n // 9px hit area: 1px divider + 4px padding each side.\n 'relative flex w-[9px] items-center justify-center',\n 'cursor-[var(--ui-resizable-cursor)] outline-none',\n // Centered 1px divider line (idle → semantic border, hover → hover token, drag → active token).\n 'after:absolute after:inset-y-0 after:start-1/2 after:-translate-x-1/2',\n 'after:w-[var(--ui-resizable-border-width)] after:bg-[var(--ui-border-on-surface-border)]',\n 'hover:after:bg-[var(--ui-resizable-border-color-hover)]',\n 'active:after:bg-[var(--ui-resizable-border-color-active)]',\n 'focus-visible:ring-[3px] focus-visible:ring-[var(--ui-focus-primary)]',\n // orientation=horizontal = panels stacked → horizontal divider line.\n 'aria-[orientation=horizontal]:h-[9px] aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:cursor-[ns-resize]',\n 'aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:inset-y-auto aria-[orientation=horizontal]:after:start-auto aria-[orientation=horizontal]:after:top-1/2 aria-[orientation=horizontal]:after:h-[var(--ui-resizable-border-width)] aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 aria-[orientation=horizontal]:after:translate-x-0',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n"],"names":["ResizablePanelGroup","className","props","jsx","ResizablePrimitive.Group","cn","ResizablePanel","ResizablePrimitive.Panel","ResizableHandle","ResizablePrimitive.Separator"],"mappings":";;;AAuBA,SAASA,EAAoB,EAAE,WAAAC,GAAW,GAAGC,KAAwC;AACnF,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC,EAAG,2DAA2DJ,CAAS;AAAA,MACjF,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAeJ,GAAsC;AAC5D,SAAO,gBAAAC,EAACI,GAAA,EAA0B,GAAGL,EAAA,CAAO;AAC9C;AAIA,SAASM,EAAgB,EAAE,WAAAP,GAAW,GAAGC,KAA+B;AACtE,SACE,gBAAAC;AAAA,IAACM;AAAAA,IAAA;AAAA,MACC,WAAWJ;AAAA;AAAA,QAET;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1,61 +0,0 @@
1
- import { jsxs as d, jsx as r } from "react/jsx-runtime";
2
- import * as i from "react";
3
- import { ScrollArea as a } from "@base-ui/react/scroll-area";
4
- import { cn as s } from "../../../lib/utils.js";
5
- const c = i.forwardRef(
6
- ({ className: e, orientation: o = "vertical", ...l }, t) => /* @__PURE__ */ r(
7
- a.Scrollbar,
8
- {
9
- ref: t,
10
- orientation: o,
11
- "data-slot": "scroll-area-scrollbar",
12
- className: s(
13
- "flex touch-none select-none opacity-0 transition-opacity duration-150",
14
- // Revealed on hover/scroll; hidden at rest.
15
- "data-[hovering]:opacity-100 data-[scrolling]:opacity-100",
16
- o === "vertical" && "h-full w-2.5 p-px",
17
- o === "horizontal" && "h-2.5 w-full flex-col p-px",
18
- e
19
- ),
20
- ...l,
21
- children: /* @__PURE__ */ r(
22
- a.Thumb,
23
- {
24
- "data-slot": "scroll-area-thumb",
25
- className: "relative flex-1 rounded-full bg-[var(--ui-border-on-surface-border)] transition-colors hover:bg-[var(--ui-border-on-surface-border-active)]"
26
- }
27
- )
28
- }
29
- )
30
- );
31
- c.displayName = "ScrollBar";
32
- const f = i.forwardRef(
33
- ({ className: e, children: o, orientation: l = "vertical", ...t }, n) => /* @__PURE__ */ d(
34
- a.Root,
35
- {
36
- ref: n,
37
- "data-slot": "scroll-area",
38
- className: s("relative overflow-hidden", e),
39
- ...t,
40
- children: [
41
- /* @__PURE__ */ r(
42
- a.Viewport,
43
- {
44
- "data-slot": "scroll-area-viewport",
45
- className: "size-full rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-focus-brand)]",
46
- children: /* @__PURE__ */ r(a.Content, { "data-slot": "scroll-area-content", children: o })
47
- }
48
- ),
49
- l !== "horizontal" && /* @__PURE__ */ r(c, { orientation: "vertical" }),
50
- l !== "vertical" && /* @__PURE__ */ r(c, { orientation: "horizontal" }),
51
- l === "both" && /* @__PURE__ */ r(a.Corner, { "data-slot": "scroll-area-corner" })
52
- ]
53
- }
54
- )
55
- );
56
- f.displayName = "ScrollArea";
57
- export {
58
- f as ScrollArea,
59
- c as ScrollBar
60
- };
61
- //# sourceMappingURL=scroll-area.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll-area.js","sources":["../../../../src/components/ui/scroll-area/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area';\n\nimport { cn } from '@/lib/utils';\n\n// A scrollable region with a custom **overlay** scrollbar built on Base UI's\n// Scroll Area. Unlike a native `overflow: auto` element, the scrollbar floats\n// over the content and reserves **zero** layout space, so full-bleed content\n// (e.g. edge-to-edge selected rows in a sidebar) is never cropped by a gutter —\n// on every OS and browser, not just where the platform provides overlay bars.\n// The bar is revealed on hover/scroll and hidden at rest.\n\nexport type ScrollBarProps = React.ComponentPropsWithoutRef<\n typeof ScrollAreaPrimitive.Scrollbar\n>;\n\nconst ScrollBar = React.forwardRef<HTMLDivElement, ScrollBarProps>(\n ({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.Scrollbar\n ref={ref}\n orientation={orientation}\n data-slot=\"scroll-area-scrollbar\"\n className={cn(\n 'flex touch-none select-none opacity-0 transition-opacity duration-150',\n // Revealed on hover/scroll; hidden at rest.\n 'data-[hovering]:opacity-100 data-[scrolling]:opacity-100',\n orientation === 'vertical' && 'h-full w-2.5 p-px',\n orientation === 'horizontal' && 'h-2.5 w-full flex-col p-px',\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-[var(--ui-border-on-surface-border)] transition-colors hover:bg-[var(--ui-border-on-surface-border-active)]\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n )\n);\nScrollBar.displayName = 'ScrollBar';\n\nexport interface ScrollAreaProps\n extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {\n /** Which scrollbar(s) to render. @default 'vertical' */\n orientation?: 'vertical' | 'horizontal' | 'both';\n}\n\nconst ScrollArea = React.forwardRef<HTMLDivElement, ScrollAreaProps>(\n ({ className, children, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n data-slot=\"scroll-area\"\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-focus-brand)]\"\n >\n <ScrollAreaPrimitive.Content data-slot=\"scroll-area-content\">\n {children}\n </ScrollAreaPrimitive.Content>\n </ScrollAreaPrimitive.Viewport>\n {orientation !== 'horizontal' && <ScrollBar orientation=\"vertical\" />}\n {orientation !== 'vertical' && <ScrollBar orientation=\"horizontal\" />}\n {orientation === 'both' && (\n <ScrollAreaPrimitive.Corner data-slot=\"scroll-area-corner\" />\n )}\n </ScrollAreaPrimitive.Root>\n )\n);\nScrollArea.displayName = 'ScrollArea';\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollBar","React","className","orientation","props","ref","jsx","ScrollAreaPrimitive","cn","ScrollArea","children","jsxs"],"mappings":";;;;AAgBA,MAAMA,IAAYC,EAAM;AAAA,EACtB,CAAC,EAAE,WAAAC,GAAW,aAAAC,IAAc,YAAY,GAAGC,EAAA,GAASC,MAClD,gBAAAC;AAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,KAAAF;AAAA,MACA,aAAAF;AAAA,MACA,aAAU;AAAA,MACV,WAAWK;AAAA,QACT;AAAA;AAAA,QAEA;AAAA,QACAL,MAAgB,cAAc;AAAA,QAC9BA,MAAgB,gBAAgB;AAAA,QAChCD;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEJ,UAAA,gBAAAE;AAAA,QAACC,EAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ;AAAA,EAAA;AAGN;AACAP,EAAU,cAAc;AAQxB,MAAMS,IAAaR,EAAM;AAAA,EACvB,CAAC,EAAE,WAAAC,GAAW,UAAAQ,GAAU,aAAAP,IAAc,YAAY,GAAGC,EAAA,GAASC,MAC5D,gBAAAM;AAAA,IAACJ,EAAoB;AAAA,IAApB;AAAA,MACC,KAAAF;AAAA,MACA,aAAU;AAAA,MACV,WAAWG,EAAG,4BAA4BN,CAAS;AAAA,MAClD,GAAGE;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAE;AAAA,UAACC,EAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAEV,4BAACA,EAAoB,SAApB,EAA4B,aAAU,uBACpC,UAAAG,EAAA,CACH;AAAA,UAAA;AAAA,QAAA;AAAA,QAEDP,MAAgB,gBAAgB,gBAAAG,EAACN,GAAA,EAAU,aAAY,YAAW;AAAA,QAClEG,MAAgB,cAAc,gBAAAG,EAACN,GAAA,EAAU,aAAY,cAAa;AAAA,QAClEG,MAAgB,UACf,gBAAAG,EAACC,EAAoB,QAApB,EAA2B,aAAU,qBAAA,CAAqB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAInE;AACAE,EAAW,cAAc;"}
@@ -1,93 +0,0 @@
1
- import { jsxs as w, jsx as o } from "react/jsx-runtime";
2
- import * as t from "react";
3
- import { MagnifierIcon as S, TimesIcon as k } from "@acronis-platform/icons-react/stroke-mono";
4
- import { cn as N } from "../../../lib/utils.js";
5
- const j = t.forwardRef(
6
- ({
7
- className: b,
8
- type: v = "search",
9
- disabled: s,
10
- onClear: n,
11
- onChange: c,
12
- value: r,
13
- defaultValue: u,
14
- ...f
15
- }, i) => {
16
- const d = t.useRef(null), [x, l] = t.useState(
17
- () => String(r ?? u ?? "").length > 0
18
- );
19
- t.useEffect(() => {
20
- r !== void 0 && l(String(r).length > 0);
21
- }, [r]);
22
- const g = t.useCallback(
23
- (e) => {
24
- d.current = e, typeof i == "function" ? i(e) : i && (i.current = e);
25
- },
26
- [i]
27
- ), m = (e) => {
28
- l(e.target.value.length > 0), c == null || c(e);
29
- }, y = () => {
30
- var h, p;
31
- const e = d.current;
32
- if (!e) return;
33
- let a;
34
- try {
35
- a = (p = Object.getOwnPropertyDescriptor(
36
- (h = globalThis.HTMLInputElement) == null ? void 0 : h.prototype,
37
- "value"
38
- )) == null ? void 0 : p.set;
39
- } catch {
40
- a = void 0;
41
- }
42
- a ? a.call(e, "") : e.value = "", e.dispatchEvent(new Event("input", { bubbles: !0 })), l(!1), e.focus(), n == null || n();
43
- };
44
- return /* @__PURE__ */ w(
45
- "div",
46
- {
47
- "data-disabled": s || void 0,
48
- className: N(
49
- "group inline-flex h-[var(--ui-input-search-box-height)] w-full min-w-0 items-center gap-[var(--ui-input-search-box-gap)] rounded-[var(--ui-input-search-box-border-radius)] border bg-[var(--ui-input-search-box-color-idle)] border-[var(--ui-input-search-border-color-idle)] px-[var(--ui-input-search-box-padding-x)] text-sm leading-6 text-[var(--ui-input-search-value-color-idle)] transition-colors not-data-[disabled]:hover:bg-[var(--ui-input-search-box-color-hover)] not-data-[disabled]:hover:border-[var(--ui-input-search-border-color-hover)] focus-within:border-[var(--ui-input-search-border-color-hover)] focus-within:ring-[3px] focus-within:ring-[var(--ui-focus-primary)] data-[disabled]:cursor-not-allowed data-[disabled]:border-[var(--ui-input-search-border-color-disabled)] data-[disabled]:bg-[var(--ui-input-search-box-color-disabled)] data-[disabled]:text-[var(--ui-input-search-value-color-disabled)]",
50
- b
51
- ),
52
- children: [
53
- /* @__PURE__ */ o(
54
- S,
55
- {
56
- size: 16,
57
- className: "shrink-0 text-[var(--ui-input-search-icon-search-color-idle)] group-data-[disabled]:text-[var(--ui-input-search-icon-search-color-disabled)]"
58
- }
59
- ),
60
- /* @__PURE__ */ o(
61
- "input",
62
- {
63
- ref: g,
64
- type: v,
65
- disabled: s,
66
- value: r,
67
- defaultValue: u,
68
- onChange: m,
69
- "aria-label": "Search",
70
- className: "h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-inherit outline-none placeholder:text-[var(--ui-input-search-placeholder-color-idle)] disabled:cursor-not-allowed [&::-webkit-search-cancel-button]:appearance-none",
71
- ...f
72
- }
73
- ),
74
- x && !s && /* @__PURE__ */ o(
75
- "button",
76
- {
77
- type: "button",
78
- "aria-label": "Clear search",
79
- onClick: y,
80
- className: "inline-flex shrink-0 cursor-pointer items-center justify-center rounded-sm text-[var(--ui-input-search-clear-icon-color)] outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-focus-primary)] [&>svg]:size-4",
81
- children: /* @__PURE__ */ o(k, { size: 16 })
82
- }
83
- )
84
- ]
85
- }
86
- );
87
- }
88
- );
89
- j.displayName = "SearchBox";
90
- export {
91
- j as SearchBox
92
- };
93
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sources":["../../../../src/components/ui/search/search.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n MagnifierIcon,\n TimesIcon,\n} from '@acronis-platform/icons-react/stroke-mono';\n\nimport { cn } from '@/lib/utils';\n\n// Internal primitive: the bare search box behind the public `InputSearch` field\n// (which is also exported as `Search`). Not exported from the package; consumed\n// by `input-search`. A bordered box (the dedicated `--ui-input-search-*` token\n// tier) holding a leading magnifier, a borderless native input, and a trailing\n// clear button shown once there's a value. The box owns the visual state via\n// `focus-within` (the input-search tier has no focus/active border token, so the\n// focused border reuses `--ui-input-search-border-color-hover` plus a 3px\n// `--ui-focus-primary` ring) / hover / disabled; the magnifier uses\n// `--ui-input-search-icon-search-color-{idle,disabled}` (via the `group`) and the\n// clear button uses `--ui-input-search-clear-icon-color`.\n\nexport interface SearchBoxProps extends React.ComponentPropsWithoutRef<'input'> {\n /** Called when the clear (×) button is pressed, after the value is cleared. */\n onClear?: () => void;\n}\n\nconst SearchBox = React.forwardRef<HTMLInputElement, SearchBoxProps>(\n (\n {\n className,\n type = 'search',\n disabled,\n onClear,\n onChange,\n value,\n defaultValue,\n ...props\n },\n forwardedRef\n ) => {\n const innerRef = React.useRef<HTMLInputElement>(null);\n const [hasValue, setHasValue] = React.useState(\n () => String(value ?? defaultValue ?? '').length > 0\n );\n\n // Keep the clear button in sync when the value is controlled externally.\n React.useEffect(() => {\n if (value !== undefined) setHasValue(String(value).length > 0);\n }, [value]);\n\n const setRefs = React.useCallback(\n (node: HTMLInputElement | null) => {\n innerRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef]\n );\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setHasValue(event.target.value.length > 0);\n onChange?.(event);\n };\n\n const handleClear = () => {\n const input = innerRef.current;\n if (!input) return;\n // Use the native value setter when available + dispatch a real input event\n // so React's onChange fires for both controlled and uncontrolled usage.\n let setter: ((this: HTMLInputElement, value: string) => void) | undefined;\n try {\n setter = Object.getOwnPropertyDescriptor(\n globalThis.HTMLInputElement?.prototype,\n 'value'\n )?.set;\n } catch {\n setter = undefined;\n }\n\n if (setter) setter.call(input, '');\n else input.value = '';\n\n input.dispatchEvent(new Event('input', { bubbles: true }));\n setHasValue(false);\n input.focus();\n onClear?.();\n };\n\n return (\n <div\n data-disabled={disabled || undefined}\n className={cn(\n 'group inline-flex h-[var(--ui-input-search-box-height)] w-full min-w-0 items-center gap-[var(--ui-input-search-box-gap)] rounded-[var(--ui-input-search-box-border-radius)] border bg-[var(--ui-input-search-box-color-idle)] border-[var(--ui-input-search-border-color-idle)] px-[var(--ui-input-search-box-padding-x)] text-sm leading-6 text-[var(--ui-input-search-value-color-idle)] transition-colors not-data-[disabled]:hover:bg-[var(--ui-input-search-box-color-hover)] not-data-[disabled]:hover:border-[var(--ui-input-search-border-color-hover)] focus-within:border-[var(--ui-input-search-border-color-hover)] focus-within:ring-[3px] focus-within:ring-[var(--ui-focus-primary)] data-[disabled]:cursor-not-allowed data-[disabled]:border-[var(--ui-input-search-border-color-disabled)] data-[disabled]:bg-[var(--ui-input-search-box-color-disabled)] data-[disabled]:text-[var(--ui-input-search-value-color-disabled)]',\n className\n )}\n >\n <MagnifierIcon\n size={16}\n className=\"shrink-0 text-[var(--ui-input-search-icon-search-color-idle)] group-data-[disabled]:text-[var(--ui-input-search-icon-search-color-disabled)]\"\n />\n <input\n ref={setRefs}\n type={type}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n aria-label=\"Search\"\n className=\"h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-inherit outline-none placeholder:text-[var(--ui-input-search-placeholder-color-idle)] disabled:cursor-not-allowed [&::-webkit-search-cancel-button]:appearance-none\"\n {...props}\n />\n {hasValue && !disabled && (\n <button\n type=\"button\"\n aria-label=\"Clear search\"\n onClick={handleClear}\n className=\"inline-flex shrink-0 cursor-pointer items-center justify-center rounded-sm text-[var(--ui-input-search-clear-icon-color)] outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-focus-primary)] [&>svg]:size-4\"\n >\n <TimesIcon size={16} />\n </button>\n )}\n </div>\n );\n }\n);\nSearchBox.displayName = 'SearchBox';\n\nexport { SearchBox };\n"],"names":["SearchBox","React","className","type","disabled","onClear","onChange","value","defaultValue","props","forwardedRef","innerRef","hasValue","setHasValue","setRefs","node","handleChange","event","handleClear","input","setter","_b","_a","jsxs","cn","jsx","MagnifierIcon","TimesIcon"],"mappings":";;;;AAwBA,MAAMA,IAAYC,EAAM;AAAA,EACtB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAWV,EAAM,OAAyB,IAAI,GAC9C,CAACW,GAAUC,CAAW,IAAIZ,EAAM;AAAA,MACpC,MAAM,OAAOM,KAASC,KAAgB,EAAE,EAAE,SAAS;AAAA,IAAA;AAIrD,IAAAP,EAAM,UAAU,MAAM;AACpB,MAAIM,MAAU,UAAWM,EAAY,OAAON,CAAK,EAAE,SAAS,CAAC;AAAA,IAC/D,GAAG,CAACA,CAAK,CAAC;AAEV,UAAMO,IAAUb,EAAM;AAAA,MACpB,CAACc,MAAkC;AACjC,QAAAJ,EAAS,UAAUI,GACf,OAAOL,KAAiB,aAAYA,EAAaK,CAAI,IAChDL,QAA2B,UAAUK;AAAA,MAChD;AAAA,MACA,CAACL,CAAY;AAAA,IAAA,GAGTM,IAAe,CAACC,MAA+C;AACnE,MAAAJ,EAAYI,EAAM,OAAO,MAAM,SAAS,CAAC,GACzCX,KAAA,QAAAA,EAAWW;AAAA,IACb,GAEMC,IAAc,MAAM;;AACxB,YAAMC,IAAQR,EAAS;AACvB,UAAI,CAACQ,EAAO;AAGZ,UAAIC;AACJ,UAAI;AACF,QAAAA,KAASC,IAAA,OAAO;AAAA,WACdC,IAAA,WAAW,qBAAX,gBAAAA,EAA6B;AAAA,UAC7B;AAAA,QAAA,MAFO,gBAAAD,EAGN;AAAA,MACL,QAAQ;AACN,QAAAD,IAAS;AAAA,MACX;AAEA,MAAIA,IAAQA,EAAO,KAAKD,GAAO,EAAE,MACtB,QAAQ,IAEnBA,EAAM,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,GAAA,CAAM,CAAC,GACzDN,EAAY,EAAK,GACjBM,EAAM,MAAA,GACNd,KAAA,QAAAA;AAAA,IACF;AAEA,WACE,gBAAAkB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,iBAAenB,KAAY;AAAA,QAC3B,WAAWoB;AAAA,UACT;AAAA,UACAtB;AAAA,QAAA;AAAA,QAGF,UAAA;AAAA,UAAA,gBAAAuB;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,WAAU;AAAA,YAAA;AAAA,UAAA;AAAA,UAEZ,gBAAAD;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAKX;AAAA,cACL,MAAAX;AAAA,cACA,UAAAC;AAAA,cACA,OAAAG;AAAA,cACA,cAAAC;AAAA,cACA,UAAUQ;AAAA,cACV,cAAW;AAAA,cACX,WAAU;AAAA,cACT,GAAGP;AAAA,YAAA;AAAA,UAAA;AAAA,UAELG,KAAY,CAACR,KACZ,gBAAAqB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,cAAW;AAAA,cACX,SAASP;AAAA,cACT,WAAU;AAAA,cAEV,UAAA,gBAAAO,EAACE,GAAA,EAAU,MAAM,GAAA,CAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QACvB;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AACA3B,EAAU,cAAc;"}
@@ -1,60 +0,0 @@
1
- import { jsxs as b, jsx as r } from "react/jsx-runtime";
2
- import * as t from "react";
3
- import { MagnifierIcon as n } from "@acronis-platform/icons-react/stroke-mono";
4
- import { cn as h } from "../../../lib/utils.js";
5
- const d = t.forwardRef(
6
- ({
7
- className: o,
8
- type: e = "search",
9
- placeholder: l = "Search anything",
10
- shortcut: a = "⌘K",
11
- "aria-label": i = "Search",
12
- ...c
13
- }, s) => /* @__PURE__ */ b(
14
- "div",
15
- {
16
- className: h(
17
- "inline-flex h-[var(--ui-search-global-box-height)] w-[var(--ui-search-global-box-width)] min-w-[var(--ui-search-global-box-width-min)] max-w-[var(--ui-search-global-box-width-max)] items-center gap-[var(--ui-search-global-box-gap)]",
18
- "rounded-[var(--ui-search-global-box-border-radius)] border-[length:var(--ui-search-global-box-border-width)] border-solid border-transparent px-[var(--ui-search-global-box-padding-x)]",
19
- // Gradient border via padding-box (box fill) + border-box (the `--sg-border` gradient).
20
- "[--sg-border:var(--ui-search-global-border-color-idle)] hover:[--sg-border:var(--ui-search-global-border-color-hover)] active:[--sg-border:var(--ui-search-global-border-color-active)]",
21
- "[background:linear-gradient(var(--ui-search-global-box-color),var(--ui-search-global-box-color))_padding-box,var(--sg-border)_border-box]",
22
- "transition-[background] focus-within:ring-[3px] focus-within:ring-[var(--ui-focus-primary)]",
23
- o
24
- ),
25
- children: [
26
- /* @__PURE__ */ r(
27
- n,
28
- {
29
- size: 16,
30
- className: "shrink-0 text-[var(--ui-search-global-icon-color)]"
31
- }
32
- ),
33
- /* @__PURE__ */ r(
34
- "input",
35
- {
36
- ref: s,
37
- type: e,
38
- placeholder: l,
39
- "aria-label": i,
40
- className: "ui-search-global-placeholoder-text-style h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-foreground outline-none placeholder:text-[var(--ui-search-global-placeholoder-color)] [&::-webkit-search-cancel-button]:appearance-none",
41
- ...c
42
- }
43
- ),
44
- a != null && /* @__PURE__ */ r(
45
- "span",
46
- {
47
- "aria-hidden": !0,
48
- className: "ui-search-global-shortcut-text-style shrink-0 whitespace-nowrap text-[var(--ui-search-global-shortcut-color)]",
49
- children: a
50
- }
51
- )
52
- ]
53
- }
54
- )
55
- );
56
- d.displayName = "SearchGlobal";
57
- export {
58
- d as SearchGlobal
59
- };
60
- //# sourceMappingURL=search-global.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-global.js","sources":["../../../../src/components/ui/search-global/search-global.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MagnifierIcon } from '@acronis-platform/icons-react/stroke-mono';\n\nimport { cn } from '@/lib/utils';\n\n// A global (\"search anything\") field: a 48px pill with a gradient border (the\n// dedicated `--ui-search-global-*` token tier), a leading magnifier, a borderless\n// native input, and a trailing keyboard-shortcut hint (⌘K by default).\n//\n// The border is a brand gradient, not a flat color, so it can't go through\n// `border-color`. Instead a private `--sg-border` custom property holds the\n// active gradient and the box paints it with the standard padding-box/border-box\n// double-background trick (box fill in padding-box, gradient in border-box over a\n// transparent border). State swaps only the gradient: idle\n// (`--ui-search-global-border-color-idle`) / hover / active (`:active`, the\n// darkest). Focus reuses the idle gradient plus a 3px `--ui-focus-primary` ring\n// via `focus-within`, mirroring the Figma focused state. The magnifier +\n// placeholder take the AI-purple `--ui-search-global-icon-color` /\n// `-placeholoder-color` (the token tier keeps Figma's \"placeholoder\" spelling);\n// the shortcut is `--ui-search-global-shortcut-color`.\n\nexport interface SearchGlobalProps extends React.ComponentPropsWithoutRef<'input'> {\n /** Keyboard-shortcut hint shown at the trailing edge (decorative). Pass `null` to hide. */\n shortcut?: React.ReactNode;\n}\n\nconst SearchGlobal = React.forwardRef<HTMLInputElement, SearchGlobalProps>(\n (\n {\n className,\n type = 'search',\n placeholder = 'Search anything',\n shortcut = '⌘K',\n 'aria-label': ariaLabel = 'Search',\n ...props\n },\n ref\n ) => (\n <div\n className={cn(\n 'inline-flex h-[var(--ui-search-global-box-height)] w-[var(--ui-search-global-box-width)] min-w-[var(--ui-search-global-box-width-min)] max-w-[var(--ui-search-global-box-width-max)] items-center gap-[var(--ui-search-global-box-gap)]',\n 'rounded-[var(--ui-search-global-box-border-radius)] border-[length:var(--ui-search-global-box-border-width)] border-solid border-transparent px-[var(--ui-search-global-box-padding-x)]',\n // Gradient border via padding-box (box fill) + border-box (the `--sg-border` gradient).\n '[--sg-border:var(--ui-search-global-border-color-idle)] hover:[--sg-border:var(--ui-search-global-border-color-hover)] active:[--sg-border:var(--ui-search-global-border-color-active)]',\n '[background:linear-gradient(var(--ui-search-global-box-color),var(--ui-search-global-box-color))_padding-box,var(--sg-border)_border-box]',\n 'transition-[background] focus-within:ring-[3px] focus-within:ring-[var(--ui-focus-primary)]',\n className\n )}\n >\n <MagnifierIcon\n size={16}\n className=\"shrink-0 text-[var(--ui-search-global-icon-color)]\"\n />\n <input\n ref={ref}\n type={type}\n placeholder={placeholder}\n aria-label={ariaLabel}\n className=\"ui-search-global-placeholoder-text-style h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-foreground outline-none placeholder:text-[var(--ui-search-global-placeholoder-color)] [&::-webkit-search-cancel-button]:appearance-none\"\n {...props}\n />\n {shortcut != null && (\n <span\n aria-hidden\n className=\"ui-search-global-shortcut-text-style shrink-0 whitespace-nowrap text-[var(--ui-search-global-shortcut-color)]\"\n >\n {shortcut}\n </span>\n )}\n </div>\n )\n);\nSearchGlobal.displayName = 'SearchGlobal';\n\nexport { SearchGlobal };\n"],"names":["SearchGlobal","React","className","type","placeholder","shortcut","ariaLabel","props","ref","jsxs","cn","jsx","MagnifierIcon"],"mappings":";;;;AA0BA,MAAMA,IAAeC,EAAM;AAAA,EACzB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,aAAAC,IAAc;AAAA,IACd,UAAAC,IAAW;AAAA,IACX,cAAcC,IAAY;AAAA,IAC1B,GAAGC;AAAA,EAAA,GAELC,MAEA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACAR;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAS;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAEZ,gBAAAD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAAH;AAAA,YACA,MAAAL;AAAA,YACA,aAAAC;AAAA,YACA,cAAYE;AAAA,YACZ,WAAU;AAAA,YACT,GAAGC;AAAA,UAAA;AAAA,QAAA;AAAA,QAELF,KAAY,QACX,gBAAAM;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAW;AAAA,YACX,WAAU;AAAA,YAET,UAAAN;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;AACAL,EAAa,cAAc;"}
@@ -1,37 +0,0 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import * as i from "react";
3
- import { cn as n } from "../../../lib/utils.js";
4
- const s = i.forwardRef(
5
- ({ className: e, ...t }, o) => /* @__PURE__ */ a("section", { ref: o, className: n("space-y-4", e), ...t })
6
- );
7
- s.displayName = "Section";
8
- const c = i.forwardRef(({ className: e, ...t }, o) => /* @__PURE__ */ a("div", { ref: o, className: n("space-y-1", e), ...t }));
9
- c.displayName = "SectionHeader";
10
- const r = i.forwardRef(({ className: e, ...t }, o) => /* @__PURE__ */ a(
11
- "h2",
12
- {
13
- ref: o,
14
- className: n("text-lg font-semibold leading-none tracking-tight", e),
15
- ...t
16
- }
17
- ));
18
- r.displayName = "SectionTitle";
19
- const m = i.forwardRef(({ className: e, ...t }, o) => /* @__PURE__ */ a(
20
- "p",
21
- {
22
- ref: o,
23
- className: n("text-sm text-muted-foreground", e),
24
- ...t
25
- }
26
- ));
27
- m.displayName = "SectionDescription";
28
- const d = i.forwardRef(({ className: e, ...t }, o) => /* @__PURE__ */ a("div", { ref: o, className: n("pt-2", e), ...t }));
29
- d.displayName = "SectionContent";
30
- export {
31
- s as Section,
32
- d as SectionContent,
33
- m as SectionDescription,
34
- c as SectionHeader,
35
- r as SectionTitle
36
- };
37
- //# sourceMappingURL=section.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"section.js","sources":["../../../../src/components/ui/section/section.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\n// Ported 1:1 from `@acronis-platform`'s `section`. A titled content block —\n// semantic markup parts; the only color is the muted description\n// (`text-muted-foreground` → --ui-text-on-surface-secondary).\nconst Section = React.forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, ...props }, ref) => (\n <section ref={ref} className={cn('space-y-4', className)} {...props} />\n )\n);\nSection.displayName = 'Section';\n\nconst SectionHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('space-y-1', className)} {...props} />\n));\nSectionHeader.displayName = 'SectionHeader';\n\nconst SectionTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nSectionTitle.displayName = 'SectionTitle';\n\nconst SectionDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nSectionDescription.displayName = 'SectionDescription';\n\nconst SectionContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('pt-2', className)} {...props} />\n));\nSectionContent.displayName = 'SectionContent';\n\nexport {\n Section,\n SectionHeader,\n SectionTitle,\n SectionDescription,\n SectionContent,\n};\n"],"names":["Section","React","className","props","ref","jsx","cn","SectionHeader","SectionTitle","SectionDescription","SectionContent"],"mappings":";;;AAOA,MAAMA,IAAUC,EAAM;AAAA,EACpB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC,EAAC,WAAA,EAAQ,KAAAD,GAAU,WAAWE,EAAG,aAAaJ,CAAS,GAAI,GAAGC,EAAA,CAAO;AAEzE;AACAH,EAAQ,cAAc;AAEtB,MAAMO,IAAgBN,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,wBACzB,OAAA,EAAI,KAAAA,GAAU,WAAWE,EAAG,aAAaJ,CAAS,GAAI,GAAGC,GAAO,CAClE;AACDI,EAAc,cAAc;AAE5B,MAAMC,IAAeP,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,qDAAqDJ,CAAS;AAAA,IAC3E,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAa,cAAc;AAE3B,MAAMC,IAAqBR,EAAM,WAG/B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAmB,cAAc;AAEjC,MAAMC,IAAiBT,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,wBACzB,OAAA,EAAI,KAAAA,GAAU,WAAWE,EAAG,QAAQJ,CAAS,GAAI,GAAGC,GAAO,CAC7D;AACDO,EAAe,cAAc;"}
@@ -1,22 +0,0 @@
1
- import { jsx as t } from "react/jsx-runtime";
2
- import * as m from "react";
3
- import { Separator as e } from "@base-ui/react/separator";
4
- import { cn as f } from "../../../lib/utils.js";
5
- const l = m.forwardRef(({ className: o, orientation: r = "horizontal", ...a }, p) => /* @__PURE__ */ t(
6
- e,
7
- {
8
- ref: p,
9
- orientation: r,
10
- className: f(
11
- "shrink-0 bg-border",
12
- r === "horizontal" ? "h-px w-full" : "h-full w-px",
13
- o
14
- ),
15
- ...a
16
- }
17
- ));
18
- l.displayName = "Separator";
19
- export {
20
- l as Separator
21
- };
22
- //# sourceMappingURL=separator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"separator.js","sources":["../../../../src/components/ui/separator/separator.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Separator as SeparatorPrimitive } from '@base-ui/react/separator';\n\nimport { cn } from '@/lib/utils';\n\n// Ported from `@acronis-platform/shadcn-uikit`'s `separator`\n// (packages/ui-legacy/src/components/ui/separator.tsx). A thin divider built on\n// the Base UI Separator primitive (sets the `separator` role + aria-orientation).\n// No `--ui-separator-*` tier; the line uses the shared divider token `bg-border`\n// (--ui-border-on-surface-border), replacing the legacy `bg-primary/10` hack.\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive>\n>(({ className, orientation = 'horizontal', ...props }, ref) => (\n <SeparatorPrimitive\n ref={ref}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-border',\n orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px',\n className\n )}\n {...props}\n />\n));\nSeparator.displayName = 'Separator';\n\nexport { Separator };\n"],"names":["Separator","React","className","orientation","props","ref","jsx","SeparatorPrimitive","cn"],"mappings":";;;;AAWA,MAAMA,IAAYC,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,aAAAC,IAAc,cAAc,GAAGC,KAASC,MACtD,gBAAAC;AAAA,EAACC;AAAAA,EAAA;AAAA,IACC,KAAAF;AAAA,IACA,aAAAF;AAAA,IACA,WAAWK;AAAA,MACT;AAAA,MACAL,MAAgB,eAAe,gBAAgB;AAAA,MAC/CD;AAAA,IAAA;AAAA,IAED,GAAGE;AAAA,EAAA;AACN,CACD;AACDJ,EAAU,cAAc;"}
@@ -1,80 +0,0 @@
1
- import { jsxs as l, jsx as e, Fragment as S } from "react/jsx-runtime";
2
- import { Sheet as g, SheetTrigger as D, SheetContent as x, SheetHeader as N, SheetTitle as E, SheetCloseButton as L, SheetBody as T, SheetFooter as b } from "./sheet.js";
3
- import { Spinner as j } from "../spinner/spinner.js";
4
- import { Empty as w, EmptyHeader as B, EmptyTitle as v, EmptyDescription as C } from "../empty/empty.js";
5
- import { DescriptionList as F, DescriptionListItem as H, DescriptionListLabel as I, DescriptionListValue as V } from "../description-list/description-list.js";
6
- function k({
7
- contentState: t,
8
- properties: i,
9
- children: n,
10
- emptyTitle: h,
11
- emptyDescription: d,
12
- errorTitle: m,
13
- errorDescription: s
14
- }) {
15
- if (t === "loading")
16
- return /* @__PURE__ */ e("div", { className: "flex h-40 items-center justify-center", children: /* @__PURE__ */ e(j, {}) });
17
- if (t === "empty" || t === "error") {
18
- const r = t === "error";
19
- return /* @__PURE__ */ e(w, { children: /* @__PURE__ */ l(B, { children: [
20
- /* @__PURE__ */ e(v, { children: r ? m ?? "Something went wrong" : h ?? "Nothing to show" }),
21
- /* @__PURE__ */ e(C, { children: r ? s ?? "The details could not be loaded." : d ?? "There are no details to display yet." })
22
- ] }) });
23
- }
24
- return n ? /* @__PURE__ */ e(S, { children: n }) : i != null && i.length ? /* @__PURE__ */ e(
25
- F,
26
- {
27
- className: "-mx-6",
28
- style: { "--description-list-label": "9rem" },
29
- children: i.map((r, o) => /* @__PURE__ */ l(H, { children: [
30
- /* @__PURE__ */ e(I, { className: "text-muted-foreground", children: r.label }),
31
- /* @__PURE__ */ e(V, { className: "font-medium", children: r.value })
32
- ] }, o))
33
- }
34
- ) : null;
35
- }
36
- function q({
37
- open: t,
38
- defaultOpen: i,
39
- onOpenChange: n,
40
- title: h,
41
- side: d = "right",
42
- contentState: m = "content",
43
- properties: s,
44
- children: r,
45
- actions: o,
46
- trigger: c,
47
- emptyTitle: a,
48
- emptyDescription: u,
49
- errorTitle: f,
50
- errorDescription: y,
51
- portalContainer: p
52
- }) {
53
- return /* @__PURE__ */ l(g, { open: t, defaultOpen: i, onOpenChange: n, children: [
54
- c ? /* @__PURE__ */ e(D, { render: c }) : null,
55
- /* @__PURE__ */ l(x, { side: d, portalContainer: p, children: [
56
- /* @__PURE__ */ l(N, { children: [
57
- /* @__PURE__ */ e(E, { children: h }),
58
- /* @__PURE__ */ e(L, {})
59
- ] }),
60
- /* @__PURE__ */ e(T, { children: /* @__PURE__ */ e(
61
- k,
62
- {
63
- contentState: m,
64
- properties: s,
65
- emptyTitle: a,
66
- emptyDescription: u,
67
- errorTitle: f,
68
- errorDescription: y,
69
- children: r
70
- }
71
- ) }),
72
- o ? /* @__PURE__ */ e(b, { children: o }) : null
73
- ] })
74
- ] });
75
- }
76
- q.displayName = "SheetDetails";
77
- export {
78
- q as SheetDetails
79
- };
80
- //# sourceMappingURL=sheet-details.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-details.js","sources":["../../../../src/components/ui/sheet/sheet-details.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionList,\n DescriptionListItem,\n DescriptionListLabel,\n DescriptionListValue,\n} from '../description-list';\nimport {\n Empty,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from '../empty';\nimport { Spinner } from '../spinner';\nimport {\n Sheet,\n SheetBody,\n SheetCloseButton,\n type SheetContentProps,\n SheetContent,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from './sheet';\n\n// `SheetDetails` is the preset for the `sheet-detail-panel` usage pattern — the\n// \"easy path that IS the pattern\". It bakes a right-anchored Sheet's header\n// (title + close), a body that switches by `contentState`\n// (loading → Spinner, empty/error → Empty, else a key/value property list or\n// custom children), and an optional footer of actions — so consumers don't\n// re-assemble (or hand-roll) the recipe. For anything outside the recipe, compose\n// the `Sheet*` parts directly. (React composition of the Vue kit's `Details`.)\n\nexport interface SheetDetailsProperty {\n label: React.ReactNode;\n value: React.ReactNode;\n}\n\nexport type SheetDetailsContentState = 'content' | 'loading' | 'empty' | 'error';\n\nexport interface SheetDetailsProps {\n /** Controlled open state. Pair with `onOpenChange`. */\n open?: boolean;\n /** Initial open state when uncontrolled. */\n defaultOpen?: boolean;\n /** Fires when the sheet opens or closes. */\n onOpenChange?: (open: boolean, eventDetails: unknown) => void;\n /** Panel title (header). Also the accessible name. */\n title: React.ReactNode;\n /** Edge the panel anchors to. Defaults to `right`. */\n side?: SheetContentProps['side'];\n /** Which body view to show. Defaults to `content`. */\n contentState?: SheetDetailsContentState;\n /** Key/value rows rendered as the body in the `content` state (unless `children`). */\n properties?: SheetDetailsProperty[];\n /** Custom body for the `content` state — overrides `properties`. */\n children?: React.ReactNode;\n /** Footer action(s). Omit for no footer. */\n actions?: React.ReactNode;\n /** Optional trigger element (rendered via the Sheet trigger's `render`). */\n trigger?: React.ReactElement;\n /** Empty-state copy (`contentState=\"empty\"`). */\n emptyTitle?: React.ReactNode;\n emptyDescription?: React.ReactNode;\n /** Error-state copy (`contentState=\"error\"`). */\n errorTitle?: React.ReactNode;\n errorDescription?: React.ReactNode;\n /** Portal container (shadow-root mount for isolated previews). */\n portalContainer?: SheetContentProps['portalContainer'];\n}\n\nfunction SheetDetailsBody({\n contentState,\n properties,\n children,\n emptyTitle,\n emptyDescription,\n errorTitle,\n errorDescription,\n}: Pick<\n SheetDetailsProps,\n | 'contentState'\n | 'properties'\n | 'children'\n | 'emptyTitle'\n | 'emptyDescription'\n | 'errorTitle'\n | 'errorDescription'\n>) {\n if (contentState === 'loading') {\n return (\n <div className=\"flex h-40 items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n if (contentState === 'empty' || contentState === 'error') {\n const isError = contentState === 'error';\n return (\n <Empty>\n <EmptyHeader>\n <EmptyTitle>\n {isError\n ? (errorTitle ?? 'Something went wrong')\n : (emptyTitle ?? 'Nothing to show')}\n </EmptyTitle>\n <EmptyDescription>\n {isError\n ? (errorDescription ?? 'The details could not be loaded.')\n : (emptyDescription ?? 'There are no details to display yet.')}\n </EmptyDescription>\n </EmptyHeader>\n </Empty>\n );\n }\n if (children) return <>{children}</>;\n if (properties?.length) {\n // Render through DescriptionList. `-mx-6` cancels the SheetBody padding so\n // the row dividers go full-bleed while the content stays aligned at the\n // panel's 24px inset; the label column is tightened for the narrow panel.\n return (\n <DescriptionList\n className=\"-mx-6\"\n style={{ '--description-list-label': '9rem' } as React.CSSProperties}\n >\n {properties.map((p, i) => (\n <DescriptionListItem key={i}>\n <DescriptionListLabel className=\"text-muted-foreground\">\n {p.label}\n </DescriptionListLabel>\n <DescriptionListValue className=\"font-medium\">\n {p.value}\n </DescriptionListValue>\n </DescriptionListItem>\n ))}\n </DescriptionList>\n );\n }\n return null;\n}\n\nfunction SheetDetails({\n open,\n defaultOpen,\n onOpenChange,\n title,\n side = 'right',\n contentState = 'content',\n properties,\n children,\n actions,\n trigger,\n emptyTitle,\n emptyDescription,\n errorTitle,\n errorDescription,\n portalContainer,\n}: SheetDetailsProps) {\n return (\n <Sheet open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n {trigger ? <SheetTrigger render={trigger} /> : null}\n <SheetContent side={side} portalContainer={portalContainer}>\n <SheetHeader>\n <SheetTitle>{title}</SheetTitle>\n <SheetCloseButton />\n </SheetHeader>\n <SheetBody>\n <SheetDetailsBody\n contentState={contentState}\n properties={properties}\n emptyTitle={emptyTitle}\n emptyDescription={emptyDescription}\n errorTitle={errorTitle}\n errorDescription={errorDescription}\n >\n {children}\n </SheetDetailsBody>\n </SheetBody>\n {actions ? <SheetFooter>{actions}</SheetFooter> : null}\n </SheetContent>\n </Sheet>\n );\n}\nSheetDetails.displayName = 'SheetDetails';\n\nexport { SheetDetails };\n"],"names":["SheetDetailsBody","contentState","properties","children","emptyTitle","emptyDescription","errorTitle","errorDescription","jsx","Spinner","isError","Empty","jsxs","EmptyHeader","EmptyTitle","EmptyDescription","Fragment","DescriptionList","p","i","DescriptionListItem","DescriptionListLabel","DescriptionListValue","SheetDetails","open","defaultOpen","onOpenChange","title","side","actions","trigger","portalContainer","Sheet","SheetTrigger","SheetContent","SheetHeader","SheetTitle","SheetCloseButton","SheetBody","SheetFooter"],"mappings":";;;;;AAyEA,SAASA,EAAiB;AAAA,EACxB,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AACF,GASG;AACD,MAAIN,MAAiB;AACnB,6BACG,OAAA,EAAI,WAAU,yCACb,UAAA,gBAAAO,EAACC,KAAQ,GACX;AAGJ,MAAIR,MAAiB,WAAWA,MAAiB,SAAS;AACxD,UAAMS,IAAUT,MAAiB;AACjC,WACE,gBAAAO,EAACG,GAAA,EACC,UAAA,gBAAAC,EAACC,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAL,EAACM,GAAA,EACE,UAAAJ,IACIJ,KAAc,yBACdF,KAAc,mBACrB;AAAA,wBACCW,GAAA,EACE,UAAAL,IACIH,KAAoB,qCACpBF,KAAoB,uCAAA,CAC3B;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAEJ;AACA,SAAIF,IAAiB,gBAAAK,EAAAQ,GAAA,EAAG,UAAAb,EAAA,CAAS,IAC7BD,KAAA,QAAAA,EAAY,SAKZ,gBAAAM;AAAA,IAACS;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO,EAAE,4BAA4B,OAAA;AAAA,MAEpC,YAAW,IAAI,CAACC,GAAGC,wBACjBC,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAZ,EAACa,GAAA,EAAqB,WAAU,yBAC7B,UAAAH,EAAE,OACL;AAAA,QACA,gBAAAV,EAACc,GAAA,EAAqB,WAAU,eAC7B,YAAE,MAAA,CACL;AAAA,MAAA,EAAA,GANwBH,CAO1B,CACD;AAAA,IAAA;AAAA,EAAA,IAIA;AACT;AAEA,SAASI,EAAa;AAAA,EACpB,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,cAAA3B,IAAe;AAAA,EACf,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAA0B;AAAA,EACA,SAAAC;AAAA,EACA,YAAA1B;AAAA,EACA,kBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,iBAAAwB;AACF,GAAsB;AACpB,SACE,gBAAAnB,EAACoB,GAAA,EAAM,MAAAR,GAAY,aAAAC,GAA0B,cAAAC,GAC1C,UAAA;AAAA,IAAAI,IAAU,gBAAAtB,EAACyB,GAAA,EAAa,QAAQH,EAAA,CAAS,IAAK;AAAA,IAC/C,gBAAAlB,EAACsB,GAAA,EAAa,MAAAN,GAAY,iBAAAG,GACxB,UAAA;AAAA,MAAA,gBAAAnB,EAACuB,GAAA,EACC,UAAA;AAAA,QAAA,gBAAA3B,EAAC4B,KAAY,UAAAT,EAAA,CAAM;AAAA,0BAClBU,GAAA,CAAA,CAAiB;AAAA,MAAA,GACpB;AAAA,wBACCC,GAAA,EACC,UAAA,gBAAA9B;AAAA,QAACR;AAAA,QAAA;AAAA,UACC,cAAAC;AAAA,UACA,YAAAC;AAAA,UACA,YAAAE;AAAA,UACA,kBAAAC;AAAA,UACA,YAAAC;AAAA,UACA,kBAAAC;AAAA,UAEC,UAAAJ;AAAA,QAAA;AAAA,MAAA,GAEL;AAAA,MACC0B,IAAU,gBAAArB,EAAC+B,GAAA,EAAa,UAAAV,EAAA,CAAQ,IAAiB;AAAA,IAAA,EAAA,CACpD;AAAA,EAAA,GACF;AAEJ;AACAN,EAAa,cAAc;"}