@lt-three/love3 0.0.0 → 0.1.1

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 (377) hide show
  1. package/README.md +85 -1
  2. package/dist/native/analytics/animation.d.ts +4 -0
  3. package/dist/native/analytics/animation.js +6 -0
  4. package/dist/native/analytics/chart.types.d.ts +25 -0
  5. package/dist/native/analytics/chart.types.js +0 -0
  6. package/dist/native/analytics/line-chart.d.ts +4 -0
  7. package/dist/native/analytics/line-chart.ios.d.ts +4 -0
  8. package/dist/native/analytics/line-chart.ios.js +24 -0
  9. package/dist/native/analytics/line-chart.js +33 -0
  10. package/dist/native/analytics/metric-card.d.ts +10 -0
  11. package/dist/native/analytics/metric-card.js +29 -0
  12. package/dist/native/analytics/multi-line-chart.d.ts +18 -0
  13. package/dist/native/analytics/multi-line-chart.js +216 -0
  14. package/dist/native/analytics/pie-chart.d.ts +15 -0
  15. package/dist/native/analytics/pie-chart.ios.d.ts +4 -0
  16. package/dist/native/analytics/pie-chart.ios.js +24 -0
  17. package/dist/native/analytics/pie-chart.js +92 -0
  18. package/dist/native/analytics/single-number.d.ts +19 -0
  19. package/dist/native/analytics/single-number.js +101 -0
  20. package/dist/native/atom/avatar.d.ts +21 -0
  21. package/dist/native/atom/avatar.js +46 -0
  22. package/dist/native/atom/badge.d.ts +28 -0
  23. package/dist/native/atom/badge.js +51 -0
  24. package/dist/native/atom/button.d.ts +46 -0
  25. package/dist/native/atom/button.js +109 -0
  26. package/dist/native/atom/checkbox.d.ts +21 -0
  27. package/dist/native/atom/checkbox.js +47 -0
  28. package/dist/native/atom/colored-value.d.ts +12 -0
  29. package/dist/native/atom/colored-value.js +24 -0
  30. package/dist/native/atom/image.d.ts +21 -0
  31. package/dist/native/atom/image.js +72 -0
  32. package/dist/native/atom/label.d.ts +18 -0
  33. package/dist/native/atom/label.js +33 -0
  34. package/dist/native/atom/link.d.ts +18 -0
  35. package/dist/native/atom/link.js +25 -0
  36. package/dist/native/atom/readout.d.ts +22 -0
  37. package/dist/native/atom/readout.js +39 -0
  38. package/dist/native/atom/search-input.d.ts +12 -0
  39. package/dist/native/atom/search-input.js +36 -0
  40. package/dist/native/atom/select.d.ts +54 -0
  41. package/dist/native/atom/select.js +200 -0
  42. package/dist/native/atom/separator.d.ts +12 -0
  43. package/dist/native/atom/separator.js +16 -0
  44. package/dist/native/atom/skeleton.d.ts +12 -0
  45. package/dist/native/atom/skeleton.js +39 -0
  46. package/dist/native/atom/slider.d.ts +32 -0
  47. package/dist/native/atom/slider.js +75 -0
  48. package/dist/native/atom/spinner.d.ts +15 -0
  49. package/dist/native/atom/spinner.js +25 -0
  50. package/dist/native/atom/switch.d.ts +18 -0
  51. package/dist/native/atom/switch.js +52 -0
  52. package/dist/native/atom/symbol.d.ts +16 -0
  53. package/dist/native/atom/symbol.js +38 -0
  54. package/dist/native/atom/symbol.types.d.ts +25 -0
  55. package/dist/native/atom/symbol.types.js +49 -0
  56. package/dist/native/atom/text-field.d.ts +49 -0
  57. package/dist/native/atom/text-field.js +56 -0
  58. package/dist/native/atom/text.d.ts +2 -0
  59. package/dist/native/atom/text.js +3 -0
  60. package/dist/native/atom/theme-toggle.d.ts +21 -0
  61. package/dist/native/atom/theme-toggle.js +36 -0
  62. package/dist/native/atom/timezone-select.d.ts +16 -0
  63. package/dist/native/atom/timezone-select.js +28 -0
  64. package/dist/native/atom/typography.d.ts +13 -0
  65. package/dist/native/atom/typography.js +28 -0
  66. package/dist/native/base/button.d.ts +61 -0
  67. package/dist/native/base/button.js +92 -0
  68. package/dist/native/base/form.d.ts +72 -0
  69. package/dist/native/base/form.js +113 -0
  70. package/dist/native/base/glass-card.d.ts +15 -0
  71. package/dist/native/base/glass-card.js +38 -0
  72. package/dist/native/base/input.d.ts +29 -0
  73. package/dist/native/base/input.js +27 -0
  74. package/dist/native/base/sheet.d.ts +71 -0
  75. package/dist/native/base/sheet.js +187 -0
  76. package/dist/native/base/text.d.ts +14 -0
  77. package/dist/native/base/text.js +53 -0
  78. package/dist/native/form/checkbox.d.ts +13 -0
  79. package/dist/native/form/checkbox.js +55 -0
  80. package/dist/native/form/date-picker.d.ts +23 -0
  81. package/dist/native/form/date-picker.js +119 -0
  82. package/dist/native/form/form.d.ts +22 -0
  83. package/dist/native/form/form.js +44 -0
  84. package/dist/native/form/radio-group.d.ts +23 -0
  85. package/dist/native/form/radio-group.js +88 -0
  86. package/dist/native/form/select.d.ts +13 -0
  87. package/dist/native/form/select.js +45 -0
  88. package/dist/native/form/slider.d.ts +14 -0
  89. package/dist/native/form/slider.js +42 -0
  90. package/dist/native/form/switch.d.ts +9 -0
  91. package/dist/native/form/switch.js +59 -0
  92. package/dist/native/form/text-area.d.ts +11 -0
  93. package/dist/native/form/text-area.js +50 -0
  94. package/dist/native/form/text-input.d.ts +18 -0
  95. package/dist/native/form/text-input.js +90 -0
  96. package/dist/native/index.d.ts +1 -0
  97. package/dist/native/index.js +0 -0
  98. package/dist/native/layout/accordion.d.ts +25 -0
  99. package/dist/native/layout/accordion.js +54 -0
  100. package/dist/native/layout/card.d.ts +47 -0
  101. package/dist/native/layout/card.js +57 -0
  102. package/dist/native/layout/description.d.ts +16 -0
  103. package/dist/native/layout/description.js +32 -0
  104. package/dist/native/layout/error.d.ts +21 -0
  105. package/dist/native/layout/error.js +44 -0
  106. package/dist/native/layout/information.d.ts +25 -0
  107. package/dist/native/layout/information.js +35 -0
  108. package/dist/native/layout/locked.d.ts +38 -0
  109. package/dist/native/layout/locked.js +94 -0
  110. package/dist/native/layout/modal.d.ts +25 -0
  111. package/dist/native/layout/modal.js +93 -0
  112. package/dist/native/layout/not-found.d.ts +17 -0
  113. package/dist/native/layout/not-found.js +30 -0
  114. package/dist/native/layout/page-frame.d.ts +23 -0
  115. package/dist/native/layout/page-frame.js +46 -0
  116. package/dist/native/layout/panel.d.ts +18 -0
  117. package/dist/native/layout/panel.js +23 -0
  118. package/dist/native/layout/reorderable-list.d.ts +42 -0
  119. package/dist/native/layout/reorderable-list.js +52 -0
  120. package/dist/native/layout/sheet.d.ts +30 -0
  121. package/dist/native/layout/sheet.js +46 -0
  122. package/dist/native/layout/simple-dialog.d.ts +16 -0
  123. package/dist/native/layout/simple-dialog.js +20 -0
  124. package/dist/native/layout/simple-table.d.ts +50 -0
  125. package/dist/native/layout/simple-table.js +75 -0
  126. package/dist/native/layout/tab-bar.d.ts +33 -0
  127. package/dist/native/layout/tab-bar.js +48 -0
  128. package/dist/native/layout/tabs.d.ts +28 -0
  129. package/dist/native/layout/tabs.js +54 -0
  130. package/dist/native/layout/tuning-panel.d.ts +24 -0
  131. package/dist/native/layout/tuning-panel.js +246 -0
  132. package/dist/native/lib/autocomplete.d.ts +7 -0
  133. package/dist/native/lib/autocomplete.js +34 -0
  134. package/dist/native/lib/breakpoints.d.ts +14 -0
  135. package/dist/native/lib/breakpoints.js +17 -0
  136. package/dist/native/lib/chart-palette.d.ts +8 -0
  137. package/dist/native/lib/chart-palette.js +20 -0
  138. package/dist/native/lib/confirm.d.ts +48 -0
  139. package/dist/native/lib/confirm.js +69 -0
  140. package/dist/native/lib/control.d.ts +24 -0
  141. package/dist/native/lib/control.js +0 -0
  142. package/dist/native/lib/external-store.d.ts +16 -0
  143. package/dist/native/lib/external-store.js +30 -0
  144. package/dist/native/lib/keyboard.d.ts +15 -0
  145. package/dist/native/lib/keyboard.js +24 -0
  146. package/dist/native/lib/labels.d.ts +15 -0
  147. package/dist/native/lib/labels.js +17 -0
  148. package/dist/native/lib/loading.d.ts +10 -0
  149. package/dist/native/lib/loading.js +15 -0
  150. package/dist/native/lib/network.d.ts +11 -0
  151. package/dist/native/lib/network.js +20 -0
  152. package/dist/native/lib/scheme.d.ts +18 -0
  153. package/dist/native/lib/scheme.js +22 -0
  154. package/dist/native/lib/snackbar.d.ts +45 -0
  155. package/dist/native/lib/snackbar.js +59 -0
  156. package/dist/native/lib/theme.d.ts +34 -0
  157. package/dist/native/lib/theme.js +53 -0
  158. package/dist/native/lib/timezone.d.ts +26 -0
  159. package/dist/native/lib/timezone.js +95 -0
  160. package/dist/native/lib/token-color.d.ts +5 -0
  161. package/dist/native/lib/token-color.js +13 -0
  162. package/dist/native/lib/token-color.web.d.ts +4 -0
  163. package/dist/native/lib/token-color.web.js +7 -0
  164. package/dist/native/lib/tuning-context.d.ts +9 -0
  165. package/dist/native/lib/tuning-context.js +7 -0
  166. package/dist/native/lib/tuning.d.ts +24 -0
  167. package/dist/native/lib/tuning.js +42 -0
  168. package/dist/native/lib/typography.d.ts +10 -0
  169. package/dist/native/lib/typography.js +11 -0
  170. package/dist/native/lib/utils.d.ts +11 -0
  171. package/dist/native/lib/utils.js +21 -0
  172. package/dist/native/once/confirm.d.ts +7 -0
  173. package/dist/native/once/confirm.js +60 -0
  174. package/dist/native/once/error-boundary.d.ts +28 -0
  175. package/dist/native/once/error-boundary.js +55 -0
  176. package/dist/native/once/loading-lock.d.ts +8 -0
  177. package/dist/native/once/loading-lock.js +28 -0
  178. package/dist/native/once/offline-banner.d.ts +15 -0
  179. package/dist/native/once/offline-banner.js +35 -0
  180. package/dist/native/once/snackbar.d.ts +17 -0
  181. package/dist/native/once/snackbar.js +106 -0
  182. package/dist/native/styles.css +46 -0
  183. package/dist/shared/analytics.d.ts +71 -0
  184. package/dist/shared/analytics.js +0 -0
  185. package/dist/shared/button.d.ts +7 -0
  186. package/dist/shared/button.js +23 -0
  187. package/dist/shared/form.d.ts +45 -0
  188. package/dist/shared/form.js +46 -0
  189. package/dist/shared/index.d.ts +3 -0
  190. package/dist/shared/index.js +3 -0
  191. package/dist/tokens/contrast-pairs.d.ts +30 -0
  192. package/dist/tokens/contrast-pairs.js +404 -0
  193. package/dist/tokens/index.d.ts +6 -0
  194. package/dist/tokens/index.js +10 -0
  195. package/dist/tokens/styles.gen.css +250 -0
  196. package/dist/tokens/tokens.gen.d.ts +141 -0
  197. package/dist/tokens/tokens.gen.js +206 -0
  198. package/dist/tuning/catalog.d.ts +27 -0
  199. package/dist/tuning/catalog.gen.d.ts +4 -0
  200. package/dist/tuning/catalog.gen.js +397 -0
  201. package/dist/tuning/catalog.js +128 -0
  202. package/dist/tuning/color.d.ts +20 -0
  203. package/dist/tuning/color.js +80 -0
  204. package/dist/tuning/css.d.ts +35 -0
  205. package/dist/tuning/css.js +147 -0
  206. package/dist/tuning/index.d.ts +8 -0
  207. package/dist/tuning/index.js +9 -0
  208. package/dist/tuning/model.d.ts +33 -0
  209. package/dist/tuning/model.js +154 -0
  210. package/dist/tuning/native.d.ts +35 -0
  211. package/dist/tuning/native.js +80 -0
  212. package/dist/tuning/schema.d.ts +69 -0
  213. package/dist/tuning/schema.js +247 -0
  214. package/dist/tuning/types.d.ts +75 -0
  215. package/dist/tuning/types.js +39 -0
  216. package/dist/web/analytics/line-chart.d.ts +20 -0
  217. package/dist/web/analytics/line-chart.js +28 -0
  218. package/dist/web/analytics/metric-card.d.ts +18 -0
  219. package/dist/web/analytics/metric-card.js +40 -0
  220. package/dist/web/analytics/multi-line-chart.d.ts +39 -0
  221. package/dist/web/analytics/multi-line-chart.js +345 -0
  222. package/dist/web/atom/avatar.d.ts +11 -0
  223. package/dist/web/atom/avatar.js +24 -0
  224. package/dist/web/atom/badge.d.ts +2 -0
  225. package/dist/web/atom/badge.js +3 -0
  226. package/dist/web/atom/button.d.ts +23 -0
  227. package/dist/web/atom/button.js +35 -0
  228. package/dist/web/atom/checkbox.d.ts +19 -0
  229. package/dist/web/atom/checkbox.js +33 -0
  230. package/dist/web/atom/colored-value.d.ts +13 -0
  231. package/dist/web/atom/colored-value.js +24 -0
  232. package/dist/web/atom/help.d.ts +10 -0
  233. package/dist/web/atom/help.js +18 -0
  234. package/dist/web/atom/label.d.ts +2 -0
  235. package/dist/web/atom/label.js +3 -0
  236. package/dist/web/atom/segmented-control.d.ts +39 -0
  237. package/dist/web/atom/segmented-control.js +42 -0
  238. package/dist/web/atom/select.d.ts +43 -0
  239. package/dist/web/atom/select.js +93 -0
  240. package/dist/web/atom/separator.d.ts +2 -0
  241. package/dist/web/atom/separator.js +3 -0
  242. package/dist/web/atom/skeleton.d.ts +2 -0
  243. package/dist/web/atom/skeleton.js +3 -0
  244. package/dist/web/atom/slider.d.ts +33 -0
  245. package/dist/web/atom/slider.js +70 -0
  246. package/dist/web/atom/spinner.d.ts +8 -0
  247. package/dist/web/atom/spinner.js +14 -0
  248. package/dist/web/atom/switch.d.ts +11 -0
  249. package/dist/web/atom/switch.js +10 -0
  250. package/dist/web/atom/text-area.d.ts +23 -0
  251. package/dist/web/atom/text-area.js +27 -0
  252. package/dist/web/atom/text-field.d.ts +18 -0
  253. package/dist/web/atom/text-field.js +22 -0
  254. package/dist/web/atom/toggle-chip.d.ts +22 -0
  255. package/dist/web/atom/toggle-chip.js +28 -0
  256. package/dist/web/atom/tooltip.d.ts +23 -0
  257. package/dist/web/atom/tooltip.js +26 -0
  258. package/dist/web/atom/typography.d.ts +6 -0
  259. package/dist/web/atom/typography.js +23 -0
  260. package/dist/web/base/accordion.d.ts +9 -0
  261. package/dist/web/base/accordion.js +44 -0
  262. package/dist/web/base/alert.d.ts +11 -0
  263. package/dist/web/base/alert.js +37 -0
  264. package/dist/web/base/avatar.d.ts +8 -0
  265. package/dist/web/base/avatar.js +29 -0
  266. package/dist/web/base/badge.d.ts +12 -0
  267. package/dist/web/base/badge.js +26 -0
  268. package/dist/web/base/breadcrumb.d.ts +16 -0
  269. package/dist/web/base/breadcrumb.js +72 -0
  270. package/dist/web/base/button.d.ts +12 -0
  271. package/dist/web/base/button.js +47 -0
  272. package/dist/web/base/card.d.ts +19 -0
  273. package/dist/web/base/card.js +74 -0
  274. package/dist/web/base/checkbox.d.ts +6 -0
  275. package/dist/web/base/checkbox.js +21 -0
  276. package/dist/web/base/dialog.d.ts +20 -0
  277. package/dist/web/base/dialog.js +92 -0
  278. package/dist/web/base/dropdown-menu.d.ts +29 -0
  279. package/dist/web/base/dropdown-menu.js +125 -0
  280. package/dist/web/base/field.d.ts +27 -0
  281. package/dist/web/base/field.js +118 -0
  282. package/dist/web/base/form.d.ts +38 -0
  283. package/dist/web/base/form.js +110 -0
  284. package/dist/web/base/input.d.ts +9 -0
  285. package/dist/web/base/input.js +23 -0
  286. package/dist/web/base/label.d.ts +6 -0
  287. package/dist/web/base/label.js +15 -0
  288. package/dist/web/base/pagination.d.ts +34 -0
  289. package/dist/web/base/pagination.js +90 -0
  290. package/dist/web/base/popover.d.ts +11 -0
  291. package/dist/web/base/popover.js +37 -0
  292. package/dist/web/base/radio-group.d.ts +7 -0
  293. package/dist/web/base/radio-group.js +27 -0
  294. package/dist/web/base/scroll-area.d.ts +10 -0
  295. package/dist/web/base/scroll-area.js +41 -0
  296. package/dist/web/base/select.d.ts +17 -0
  297. package/dist/web/base/select.js +96 -0
  298. package/dist/web/base/separator.d.ts +6 -0
  299. package/dist/web/base/separator.js +17 -0
  300. package/dist/web/base/sheet.d.ts +19 -0
  301. package/dist/web/base/sheet.js +88 -0
  302. package/dist/web/base/skeleton.d.ts +5 -0
  303. package/dist/web/base/skeleton.js +14 -0
  304. package/dist/web/base/slider.d.ts +9 -0
  305. package/dist/web/base/slider.js +39 -0
  306. package/dist/web/base/sonner.d.ts +9 -0
  307. package/dist/web/base/sonner.js +25 -0
  308. package/dist/web/base/spinner.d.ts +5 -0
  309. package/dist/web/base/spinner.js +17 -0
  310. package/dist/web/base/switch.d.ts +6 -0
  311. package/dist/web/base/switch.js +19 -0
  312. package/dist/web/base/table.d.ts +14 -0
  313. package/dist/web/base/table.js +68 -0
  314. package/dist/web/base/tabs.d.ts +9 -0
  315. package/dist/web/base/tabs.js +36 -0
  316. package/dist/web/base/textarea.d.ts +9 -0
  317. package/dist/web/base/textarea.js +23 -0
  318. package/dist/web/base/tooltip.d.ts +9 -0
  319. package/dist/web/base/tooltip.js +36 -0
  320. package/dist/web/form/checkbox.d.ts +35 -0
  321. package/dist/web/form/checkbox.js +91 -0
  322. package/dist/web/form/radio-group.d.ts +24 -0
  323. package/dist/web/form/radio-group.js +75 -0
  324. package/dist/web/form/select.d.ts +16 -0
  325. package/dist/web/form/select.js +44 -0
  326. package/dist/web/form/slider.d.ts +19 -0
  327. package/dist/web/form/slider.js +51 -0
  328. package/dist/web/form/switch.d.ts +11 -0
  329. package/dist/web/form/switch.js +50 -0
  330. package/dist/web/form/text-area.d.ts +10 -0
  331. package/dist/web/form/text-area.js +31 -0
  332. package/dist/web/form/text-input.d.ts +10 -0
  333. package/dist/web/form/text-input.js +42 -0
  334. package/dist/web/index.d.ts +1 -0
  335. package/dist/web/index.js +0 -0
  336. package/dist/web/layout/accordion.d.ts +26 -0
  337. package/dist/web/layout/accordion.js +29 -0
  338. package/dist/web/layout/alert-modal.d.ts +41 -0
  339. package/dist/web/layout/alert-modal.js +71 -0
  340. package/dist/web/layout/card.d.ts +17 -0
  341. package/dist/web/layout/card.js +35 -0
  342. package/dist/web/layout/description.d.ts +12 -0
  343. package/dist/web/layout/description.js +20 -0
  344. package/dist/web/layout/information.d.ts +36 -0
  345. package/dist/web/layout/information.js +53 -0
  346. package/dist/web/layout/modal.d.ts +16 -0
  347. package/dist/web/layout/modal.js +37 -0
  348. package/dist/web/layout/page-frame.d.ts +37 -0
  349. package/dist/web/layout/page-frame.js +79 -0
  350. package/dist/web/layout/scroll-area.d.ts +10 -0
  351. package/dist/web/layout/scroll-area.js +13 -0
  352. package/dist/web/layout/sheet.d.ts +32 -0
  353. package/dist/web/layout/sheet.js +68 -0
  354. package/dist/web/layout/simple-dialog.d.ts +11 -0
  355. package/dist/web/layout/simple-dialog.js +24 -0
  356. package/dist/web/layout/simple-table.d.ts +49 -0
  357. package/dist/web/layout/simple-table.js +58 -0
  358. package/dist/web/layout/tabs.d.ts +26 -0
  359. package/dist/web/layout/tabs.js +42 -0
  360. package/dist/web/layout/titled-modal.d.ts +32 -0
  361. package/dist/web/layout/titled-modal.js +58 -0
  362. package/dist/web/lib/css-vars.d.ts +14 -0
  363. package/dist/web/lib/css-vars.js +18 -0
  364. package/dist/web/lib/dialog.d.ts +13 -0
  365. package/dist/web/lib/dialog.js +0 -0
  366. package/dist/web/lib/form.d.ts +2 -0
  367. package/dist/web/lib/form.js +3 -0
  368. package/dist/web/lib/labels.d.ts +27 -0
  369. package/dist/web/lib/labels.js +29 -0
  370. package/dist/web/lib/modal-open-focus.d.ts +17 -0
  371. package/dist/web/lib/modal-open-focus.js +44 -0
  372. package/dist/web/lib/restore-focus.d.ts +12 -0
  373. package/dist/web/lib/restore-focus.js +32 -0
  374. package/dist/web/lib/utils.d.ts +4 -0
  375. package/dist/web/lib/utils.js +10 -0
  376. package/dist/web/styles.css +162 -0
  377. package/package.json +203 -4
@@ -0,0 +1,29 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
4
+
5
+ //#region src/web/base/avatar.tsx
6
+ function Avatar({ className, ...props }) {
7
+ return /* @__PURE__ */ jsx(AvatarPrimitive.Root, {
8
+ "data-slot": "avatar",
9
+ className: cn("relative flex size-8 shrink-0 overflow-hidden rounded-full", className),
10
+ ...props
11
+ });
12
+ }
13
+ function AvatarImage({ className, ...props }) {
14
+ return /* @__PURE__ */ jsx(AvatarPrimitive.Image, {
15
+ "data-slot": "avatar-image",
16
+ className: cn("aspect-square size-full", className),
17
+ ...props
18
+ });
19
+ }
20
+ function AvatarFallback({ className, ...props }) {
21
+ return /* @__PURE__ */ jsx(AvatarPrimitive.Fallback, {
22
+ "data-slot": "avatar-fallback",
23
+ className: cn("bg-muted flex size-full items-center justify-center rounded-full", className),
24
+ ...props
25
+ });
26
+ }
27
+
28
+ //#endregion
29
+ export { Avatar, AvatarFallback, AvatarImage };
@@ -0,0 +1,12 @@
1
+ import * as React$1 from "react";
2
+ import { VariantProps } from "class-variance-authority";
3
+ //#region src/web/base/badge.d.ts
4
+ declare const badgeVariants: (props?: ({
5
+ variant?: "<3" | "default" | "destructive" | "outline" | "secondary" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export type BadgeVariants = VariantProps<typeof badgeVariants>["variant"];
8
+ declare function Badge({ className, variant, asChild, ...props }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
9
+ asChild?: boolean;
10
+ }): React$1.JSX.Element;
11
+ //#endregion
12
+ export { Badge, badgeVariants };
@@ -0,0 +1,26 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { Slot } from "@radix-ui/react-slot";
5
+
6
+ //#region src/web/base/badge.tsx
7
+ const badgeVariants = cva("inline-flex items-center justify-center rounded-control border h-5 px-1.5 text-xs font-medium font-mono tabular-nums tracking-[0.01em] w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background overflow-hidden", {
8
+ variants: { variant: {
9
+ default: "border-transparent bg-action text-action-foreground [a&]:hover:bg-action-hover",
10
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/80",
11
+ destructive: "border-state-error/30 bg-state-error/5 text-state-error",
12
+ outline: "border-input text-foreground [a&]:hover:bg-accent",
13
+ "<3": "border-transparent bg-lt-three text-lt-three-foreground"
14
+ } },
15
+ defaultVariants: { variant: "default" }
16
+ });
17
+ function Badge({ className, variant, asChild = false, ...props }) {
18
+ return /* @__PURE__ */ jsx(asChild ? Slot : "span", {
19
+ "data-slot": "badge",
20
+ className: cn(badgeVariants({ variant }), className),
21
+ ...props
22
+ });
23
+ }
24
+
25
+ //#endregion
26
+ export { Badge, badgeVariants };
@@ -0,0 +1,16 @@
1
+ import * as React$1 from "react";
2
+ //#region src/web/base/breadcrumb.d.ts
3
+ declare function Breadcrumb({ ...props }: React$1.ComponentProps<"nav">): React$1.JSX.Element;
4
+ declare function BreadcrumbList({ className, ...props }: React$1.ComponentProps<"ol">): React$1.JSX.Element;
5
+ declare function BreadcrumbItem({ className, ...props }: React$1.ComponentProps<"li">): React$1.JSX.Element;
6
+ declare function BreadcrumbLink({ asChild, className, ...props }: React$1.ComponentProps<"a"> & {
7
+ asChild?: boolean;
8
+ }): React$1.JSX.Element;
9
+ declare function BreadcrumbPage({ className, ...props }: React$1.ComponentProps<"span">): React$1.JSX.Element;
10
+ declare function BreadcrumbSeparator({ children, className, ...props }: React$1.ComponentProps<"li">): React$1.JSX.Element;
11
+ declare function BreadcrumbEllipsis({ className, moreLabel, ...props }: React$1.ComponentProps<"span"> & {
12
+ /** Accessible name of the omitted levels */
13
+ moreLabel?: string;
14
+ }): React$1.JSX.Element;
15
+ //#endregion
16
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
@@ -0,0 +1,72 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { BREADCRUMB_LABEL, MORE_LEVELS_LABEL } from "../lib/labels.js";
3
+ import "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { ChevronRight, MoreHorizontal } from "lucide-react";
6
+ import { Slot } from "@radix-ui/react-slot";
7
+
8
+ //#region src/web/base/breadcrumb.tsx
9
+ function Breadcrumb({ ...props }) {
10
+ return /* @__PURE__ */ jsx("nav", {
11
+ "aria-label": BREADCRUMB_LABEL,
12
+ "data-slot": "breadcrumb",
13
+ ...props
14
+ });
15
+ }
16
+ function BreadcrumbList({ className, ...props }) {
17
+ return /* @__PURE__ */ jsx("ol", {
18
+ "data-slot": "breadcrumb-list",
19
+ className: cn("flex flex-wrap items-center gap-1.5 text-[13px] break-words text-muted-foreground sm:gap-2.5", className),
20
+ ...props
21
+ });
22
+ }
23
+ function BreadcrumbItem({ className, ...props }) {
24
+ return /* @__PURE__ */ jsx("li", {
25
+ "data-slot": "breadcrumb-item",
26
+ className: cn("inline-flex items-center gap-1.5", className),
27
+ ...props
28
+ });
29
+ }
30
+ function BreadcrumbLink({ asChild, className, ...props }) {
31
+ return /* @__PURE__ */ jsx(asChild ? Slot : "a", {
32
+ "data-slot": "breadcrumb-link",
33
+ className: cn("hover:text-foreground", className),
34
+ ...props
35
+ });
36
+ }
37
+ function BreadcrumbPage({ className, ...props }) {
38
+ return /* @__PURE__ */ jsx("span", {
39
+ "data-slot": "breadcrumb-page",
40
+ role: "link",
41
+ "aria-disabled": "true",
42
+ "aria-current": "page",
43
+ className: cn("font-normal text-foreground", className),
44
+ ...props
45
+ });
46
+ }
47
+ function BreadcrumbSeparator({ children, className, ...props }) {
48
+ return /* @__PURE__ */ jsx("li", {
49
+ "data-slot": "breadcrumb-separator",
50
+ role: "presentation",
51
+ "aria-hidden": "true",
52
+ className: cn("[&>svg]:size-3.5", className),
53
+ ...props,
54
+ children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
55
+ });
56
+ }
57
+ function BreadcrumbEllipsis({ className, moreLabel = MORE_LEVELS_LABEL, ...props }) {
58
+ return /* @__PURE__ */ jsxs("span", {
59
+ "data-slot": "breadcrumb-ellipsis",
60
+ role: "presentation",
61
+ "aria-hidden": "true",
62
+ className: cn("flex size-9 items-center justify-center", className),
63
+ ...props,
64
+ children: [/* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }), /* @__PURE__ */ jsx("span", {
65
+ className: "sr-only",
66
+ children: moreLabel
67
+ })]
68
+ });
69
+ }
70
+
71
+ //#endregion
72
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
@@ -0,0 +1,12 @@
1
+ import * as React$1 from "react";
2
+ import { VariantProps } from "class-variance-authority";
3
+ //#region src/web/base/button.d.ts
4
+ declare const buttonVariants: (props?: ({
5
+ variant?: "<3" | "default" | "destructive" | "ghost" | "link" | "outline" | "plate" | "secondary" | null | undefined;
6
+ size?: "default" | "icon" | "icon-xs" | "lg" | "sm" | "xl" | "xs" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ declare function Button({ className, variant, size, asChild, ...props }: React$1.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
9
+ asChild?: boolean;
10
+ }): React$1.JSX.Element;
11
+ //#endregion
12
+ export { Button, buttonVariants };
@@ -0,0 +1,47 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { Slot } from "@radix-ui/react-slot";
5
+
6
+ //#region src/web/base/button.tsx
7
+ const buttonVariants = cva("cursor-pointer inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-control text-[13px] font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
8
+ variants: {
9
+ variant: {
10
+ default: "bg-action text-action-foreground hover:bg-action-hover",
11
+ destructive: "bg-destructive-solid text-destructive-solid-foreground hover:bg-destructive-solid/90",
12
+ outline: "border border-input bg-card text-foreground shadow-xs hover:bg-accent",
13
+ secondary: "border border-input bg-card text-secondary-foreground shadow-xs hover:bg-accent",
14
+ ghost: "hover:bg-accent hover:text-accent-foreground",
15
+ link: "text-action-ink underline-offset-4 hover:underline",
16
+ plate: "border border-black bg-white font-normal text-black hover:border-white hover:bg-black hover:text-white",
17
+ "<3": "bg-lt-three text-lt-three-foreground hover:bg-lt-three/85"
18
+ },
19
+ size: {
20
+ default: "h-8 px-3 py-1.5 has-[>svg]:px-2.5",
21
+ xs: "h-6 rounded-control gap-1 px-2 text-xs has-[>svg]:px-1.5",
22
+ sm: "h-7 rounded-control gap-1.5 px-2.5 has-[>svg]:px-2",
23
+ lg: "h-10 rounded-control px-5 text-sm has-[>svg]:px-4",
24
+ xl: "h-12 rounded-control px-6 text-sm has-[>svg]:px-4",
25
+ icon: "size-8",
26
+ "icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3.5"
27
+ }
28
+ },
29
+ defaultVariants: {
30
+ variant: "default",
31
+ size: "default"
32
+ }
33
+ });
34
+ function Button({ className, variant, size, asChild = false, ...props }) {
35
+ return /* @__PURE__ */ jsx(asChild ? Slot : "button", {
36
+ "data-slot": "button",
37
+ className: cn(buttonVariants({
38
+ variant,
39
+ size,
40
+ className
41
+ })),
42
+ ...props
43
+ });
44
+ }
45
+
46
+ //#endregion
47
+ export { Button, buttonVariants };
@@ -0,0 +1,19 @@
1
+ import * as React$1 from "react";
2
+ //#region src/web/base/card.d.ts
3
+ declare function Card({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
4
+ declare function CardHeader({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
5
+ /** Heading level (`<h2>` to `<h6>`). There is one h1 per page, so a card title cannot choose it. */
6
+ export type CardHeadingLevel = 2 | 3 | 4 | 5 | 6;
7
+ /**
8
+ * The title of a card. Defaults to a `<div>` (not part of the heading hierarchy). Passing `headingLevel` makes it `<h2>` to `<h6>` and puts it in the heading hierarchy
9
+ * (it looks the same; the default margin and size of headings are cancelled).
10
+ */
11
+ declare function CardTitle({ className, headingLevel, ...props }: React$1.ComponentProps<"div"> & {
12
+ headingLevel?: CardHeadingLevel;
13
+ }): React$1.JSX.Element;
14
+ declare function CardDescription({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
15
+ declare function CardAction({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
16
+ declare function CardContent({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
17
+ declare function CardFooter({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
18
+ //#endregion
19
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
@@ -0,0 +1,74 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+
4
+ //#region src/web/base/card.tsx
5
+ function Card({ className, ...props }) {
6
+ return /* @__PURE__ */ jsx("div", {
7
+ "data-slot": "card",
8
+ className: cn("bg-card text-card-foreground flex flex-col gap-5 rounded-surface border py-5", className),
9
+ ...props
10
+ });
11
+ }
12
+ function CardHeader({ className, ...props }) {
13
+ return /* @__PURE__ */ jsx("div", {
14
+ "data-slot": "card-header",
15
+ className: cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1 px-4 sm:px-5 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-5", className),
16
+ ...props
17
+ });
18
+ }
19
+ const HEADINGS = {
20
+ 2: "h2",
21
+ 3: "h3",
22
+ 4: "h4",
23
+ 5: "h5",
24
+ 6: "h6"
25
+ };
26
+ /**
27
+ * The title of a card. Defaults to a `<div>` (not part of the heading hierarchy). Passing `headingLevel` makes it `<h2>` to `<h6>` and puts it in the heading hierarchy
28
+ * (it looks the same; the default margin and size of headings are cancelled).
29
+ */
30
+ function CardTitle({ className, headingLevel, ...props }) {
31
+ const classes = cn("text-base font-semibold leading-tight tracking-tight", className);
32
+ if (headingLevel === void 0) return /* @__PURE__ */ jsx("div", {
33
+ "data-slot": "card-title",
34
+ className: classes,
35
+ ...props
36
+ });
37
+ const Heading = HEADINGS[headingLevel];
38
+ return /* @__PURE__ */ jsx(Heading, {
39
+ "data-slot": "card-title",
40
+ className: cn("m-0", classes),
41
+ ...props
42
+ });
43
+ }
44
+ function CardDescription({ className, ...props }) {
45
+ return /* @__PURE__ */ jsx("div", {
46
+ "data-slot": "card-description",
47
+ className: cn("text-muted-foreground text-sm", className),
48
+ ...props
49
+ });
50
+ }
51
+ function CardAction({ className, ...props }) {
52
+ return /* @__PURE__ */ jsx("div", {
53
+ "data-slot": "card-action",
54
+ className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className),
55
+ ...props
56
+ });
57
+ }
58
+ function CardContent({ className, ...props }) {
59
+ return /* @__PURE__ */ jsx("div", {
60
+ "data-slot": "card-content",
61
+ className: cn("px-4 sm:px-5", className),
62
+ ...props
63
+ });
64
+ }
65
+ function CardFooter({ className, ...props }) {
66
+ return /* @__PURE__ */ jsx("div", {
67
+ "data-slot": "card-footer",
68
+ className: cn("flex items-center px-4 sm:px-5 [.border-t]:pt-5", className),
69
+ ...props
70
+ });
71
+ }
72
+
73
+ //#endregion
74
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
@@ -0,0 +1,6 @@
1
+ import * as React$1 from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ //#region src/web/base/checkbox.d.ts
4
+ declare function Checkbox({ className, ...props }: React$1.ComponentProps<typeof CheckboxPrimitive.Root>): React$1.JSX.Element;
5
+ //#endregion
6
+ export { Checkbox };
@@ -0,0 +1,21 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { CheckIcon } from "lucide-react";
4
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
5
+
6
+ //#region src/web/base/checkbox.tsx
7
+ function Checkbox({ className, ...props }) {
8
+ return /* @__PURE__ */ jsx(CheckboxPrimitive.Root, {
9
+ "data-slot": "checkbox",
10
+ className: cn("peer border-line-control bg-card data-[state=checked]:bg-action data-[state=checked]:text-action-foreground data-[state=checked]:border-action aria-invalid:border-destructive size-4 shrink-0 rounded-control border outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50", className),
11
+ ...props,
12
+ children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, {
13
+ "data-slot": "checkbox-indicator",
14
+ className: "flex items-center justify-center text-current",
15
+ children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
16
+ })
17
+ });
18
+ }
19
+
20
+ //#endregion
21
+ export { Checkbox };
@@ -0,0 +1,20 @@
1
+ import * as React$1 from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ //#region src/web/base/dialog.d.ts
4
+ declare function Dialog({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Root>): React$1.JSX.Element;
5
+ declare function DialogTrigger({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Trigger>): React$1.JSX.Element;
6
+ declare function DialogPortal({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Portal>): React$1.JSX.Element;
7
+ declare function DialogClose({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Close>): React$1.JSX.Element;
8
+ declare function DialogOverlay({ className, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Overlay>): React$1.JSX.Element;
9
+ declare function DialogContent({ className, children, showCloseButton, closeLabel, onClose, onOpenAutoFocus, onCloseAutoFocus, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Content> & {
10
+ showCloseButton?: boolean;
11
+ /** Accessible name of the close button */
12
+ closeLabel?: string;
13
+ onClose?: () => void;
14
+ }): React$1.JSX.Element;
15
+ declare function DialogHeader({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
16
+ declare function DialogFooter({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
17
+ declare function DialogTitle({ className, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Title>): React$1.JSX.Element;
18
+ declare function DialogDescription({ className, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Description>): React$1.JSX.Element;
19
+ //#endregion
20
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
@@ -0,0 +1,92 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { CLOSE_LABEL } from "../lib/labels.js";
3
+ import { useRestoreFocus } from "../lib/restore-focus.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { XIcon } from "lucide-react";
6
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
7
+
8
+ //#region src/web/base/dialog.tsx
9
+ function Dialog({ ...props }) {
10
+ return /* @__PURE__ */ jsx(DialogPrimitive.Root, {
11
+ "data-slot": "dialog",
12
+ ...props
13
+ });
14
+ }
15
+ function DialogTrigger({ ...props }) {
16
+ return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, {
17
+ "data-slot": "dialog-trigger",
18
+ ...props
19
+ });
20
+ }
21
+ function DialogPortal({ ...props }) {
22
+ return /* @__PURE__ */ jsx(DialogPrimitive.Portal, {
23
+ "data-slot": "dialog-portal",
24
+ ...props
25
+ });
26
+ }
27
+ function DialogClose({ ...props }) {
28
+ return /* @__PURE__ */ jsx(DialogPrimitive.Close, {
29
+ "data-slot": "dialog-close",
30
+ ...props
31
+ });
32
+ }
33
+ function DialogOverlay({ className, ...props }) {
34
+ return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
35
+ "data-slot": "dialog-overlay",
36
+ className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-scrim", className),
37
+ ...props
38
+ });
39
+ }
40
+ function DialogContent({ className, children, showCloseButton = true, closeLabel = CLOSE_LABEL, onClose, onOpenAutoFocus, onCloseAutoFocus, ...props }) {
41
+ const focus = useRestoreFocus(onOpenAutoFocus, onCloseAutoFocus);
42
+ return /* @__PURE__ */ jsxs(DialogPortal, {
43
+ "data-slot": "dialog-portal",
44
+ children: [/* @__PURE__ */ jsx(DialogOverlay, {}), /* @__PURE__ */ jsxs(DialogPrimitive.Content, {
45
+ "data-slot": "dialog-content",
46
+ className: cn("bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-surface p-5 duration-200 sm:max-w-lg", className),
47
+ onOpenAutoFocus: focus.onOpenAutoFocus,
48
+ onCloseAutoFocus: focus.onCloseAutoFocus,
49
+ ...props,
50
+ children: [children, showCloseButton && /* @__PURE__ */ jsxs(DialogPrimitive.Close, {
51
+ "data-slot": "dialog-close",
52
+ className: "text-muted-foreground hover:bg-accent hover:text-foreground absolute top-3.5 right-3.5 flex size-7 cursor-pointer items-center justify-center rounded-control outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-popover disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
53
+ onClick: onClose,
54
+ children: [/* @__PURE__ */ jsx(XIcon, {}), /* @__PURE__ */ jsx("span", {
55
+ className: "sr-only",
56
+ children: closeLabel
57
+ })]
58
+ })]
59
+ })]
60
+ });
61
+ }
62
+ function DialogHeader({ className, ...props }) {
63
+ return /* @__PURE__ */ jsx("div", {
64
+ "data-slot": "dialog-header",
65
+ className: cn("flex flex-col gap-1.5 text-center sm:text-left", className),
66
+ ...props
67
+ });
68
+ }
69
+ function DialogFooter({ className, ...props }) {
70
+ return /* @__PURE__ */ jsx("div", {
71
+ "data-slot": "dialog-footer",
72
+ className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
73
+ ...props
74
+ });
75
+ }
76
+ function DialogTitle({ className, ...props }) {
77
+ return /* @__PURE__ */ jsx(DialogPrimitive.Title, {
78
+ "data-slot": "dialog-title",
79
+ className: cn("text-base leading-6 font-semibold", className),
80
+ ...props
81
+ });
82
+ }
83
+ function DialogDescription({ className, ...props }) {
84
+ return /* @__PURE__ */ jsx(DialogPrimitive.Description, {
85
+ "data-slot": "dialog-description",
86
+ className: cn("text-muted-foreground text-[13px] leading-5", className),
87
+ ...props
88
+ });
89
+ }
90
+
91
+ //#endregion
92
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
@@ -0,0 +1,29 @@
1
+ import * as React$1 from "react";
2
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
3
+ //#region src/web/base/dropdown-menu.d.ts
4
+ declare function DropdownMenu({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Root>): React$1.JSX.Element;
5
+ declare function DropdownMenuPortal({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Portal>): React$1.JSX.Element;
6
+ declare function DropdownMenuTrigger({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): React$1.JSX.Element;
7
+ declare function DropdownMenuContent({ className, sideOffset, portal, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Content> & {
8
+ portal?: boolean;
9
+ }): React$1.JSX.Element;
10
+ declare function DropdownMenuGroup({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Group>): React$1.JSX.Element;
11
+ declare function DropdownMenuItem({ className, inset, variant, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
12
+ inset?: boolean;
13
+ variant?: "default" | "destructive";
14
+ }): React$1.JSX.Element;
15
+ declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): React$1.JSX.Element;
16
+ declare function DropdownMenuRadioGroup({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): React$1.JSX.Element;
17
+ declare function DropdownMenuRadioItem({ className, children, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): React$1.JSX.Element;
18
+ declare function DropdownMenuLabel({ className, inset, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
19
+ inset?: boolean;
20
+ }): React$1.JSX.Element;
21
+ declare function DropdownMenuSeparator({ className, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Separator>): React$1.JSX.Element;
22
+ declare function DropdownMenuShortcut({ className, ...props }: React$1.ComponentProps<"span">): React$1.JSX.Element;
23
+ declare function DropdownMenuSub({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Sub>): React$1.JSX.Element;
24
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
25
+ inset?: boolean;
26
+ }): React$1.JSX.Element;
27
+ declare function DropdownMenuSubContent({ className, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): React$1.JSX.Element;
28
+ //#endregion
29
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
@@ -0,0 +1,125 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
4
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
5
+
6
+ //#region src/web/base/dropdown-menu.tsx
7
+ function DropdownMenu({ ...props }) {
8
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, {
9
+ "data-slot": "dropdown-menu",
10
+ ...props
11
+ });
12
+ }
13
+ function DropdownMenuPortal({ ...props }) {
14
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, {
15
+ "data-slot": "dropdown-menu-portal",
16
+ ...props
17
+ });
18
+ }
19
+ function DropdownMenuTrigger({ ...props }) {
20
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, {
21
+ "data-slot": "dropdown-menu-trigger",
22
+ ...props
23
+ });
24
+ }
25
+ function DropdownMenuContent({ className, sideOffset = 4, portal = true, ...props }) {
26
+ const comp = /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, {
27
+ "data-slot": "dropdown-menu-content",
28
+ sideOffset,
29
+ className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-surface border border-border p-1 shadow-md", className),
30
+ ...props
31
+ });
32
+ if (!portal) return comp;
33
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: comp });
34
+ }
35
+ function DropdownMenuGroup({ ...props }) {
36
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, {
37
+ "data-slot": "dropdown-menu-group",
38
+ ...props
39
+ });
40
+ }
41
+ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
42
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, {
43
+ "data-slot": "dropdown-menu-item",
44
+ "data-inset": inset,
45
+ "data-variant": variant,
46
+ className: cn("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-pointer items-center gap-2 rounded-control px-2 py-1.5 text-[13px] outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
47
+ ...props
48
+ });
49
+ }
50
+ function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
51
+ return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, {
52
+ "data-slot": "dropdown-menu-checkbox-item",
53
+ className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-control py-1.5 pr-2 pl-8 text-[13px] outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
54
+ checked,
55
+ ...props,
56
+ children: [/* @__PURE__ */ jsx("span", {
57
+ className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
58
+ children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
59
+ }), children]
60
+ });
61
+ }
62
+ function DropdownMenuRadioGroup({ ...props }) {
63
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.RadioGroup, {
64
+ "data-slot": "dropdown-menu-radio-group",
65
+ ...props
66
+ });
67
+ }
68
+ function DropdownMenuRadioItem({ className, children, ...props }) {
69
+ return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, {
70
+ "data-slot": "dropdown-menu-radio-item",
71
+ className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-control py-1.5 pr-2 pl-8 text-[13px] outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
72
+ ...props,
73
+ children: [/* @__PURE__ */ jsx("span", {
74
+ className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
75
+ children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) })
76
+ }), children]
77
+ });
78
+ }
79
+ function DropdownMenuLabel({ className, inset, ...props }) {
80
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, {
81
+ "data-slot": "dropdown-menu-label",
82
+ "data-inset": inset,
83
+ className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
84
+ ...props
85
+ });
86
+ }
87
+ function DropdownMenuSeparator({ className, ...props }) {
88
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, {
89
+ "data-slot": "dropdown-menu-separator",
90
+ className: cn("bg-border -mx-1 my-1 h-px", className),
91
+ ...props
92
+ });
93
+ }
94
+ function DropdownMenuShortcut({ className, ...props }) {
95
+ return /* @__PURE__ */ jsx("span", {
96
+ "data-slot": "dropdown-menu-shortcut",
97
+ className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
98
+ ...props
99
+ });
100
+ }
101
+ function DropdownMenuSub({ ...props }) {
102
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, {
103
+ "data-slot": "dropdown-menu-sub",
104
+ ...props
105
+ });
106
+ }
107
+ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
108
+ return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, {
109
+ "data-slot": "dropdown-menu-sub-trigger",
110
+ "data-inset": inset,
111
+ className: cn("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-control px-2 py-1.5 text-[13px] outline-hidden select-none data-[inset]:pl-8", className),
112
+ ...props,
113
+ children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })]
114
+ });
115
+ }
116
+ function DropdownMenuSubContent({ className, ...props }) {
117
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, {
118
+ "data-slot": "dropdown-menu-sub-content",
119
+ className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-surface border border-border p-1 shadow-md", className),
120
+ ...props
121
+ });
122
+ }
123
+
124
+ //#endregion
125
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
@@ -0,0 +1,27 @@
1
+ import { Label } from "./label.js";
2
+ import React from "react";
3
+ import { VariantProps } from "class-variance-authority";
4
+ //#region src/web/base/field.d.ts
5
+ declare function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">): React.JSX.Element;
6
+ declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<"legend"> & {
7
+ variant?: "legend" | "label";
8
+ }): React.JSX.Element;
9
+ declare function FieldGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
10
+ declare const fieldVariants: (props?: ({
11
+ orientation?: "horizontal" | "responsive" | "vertical" | null | undefined;
12
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
+ declare function Field({ className, orientation, ...props }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>): React.JSX.Element;
14
+ declare function FieldContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
15
+ declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): React.JSX.Element;
16
+ declare function FieldTitle({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
17
+ declare function FieldDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
18
+ declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<"div"> & {
19
+ children?: React.ReactNode;
20
+ }): React.JSX.Element;
21
+ declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<"div"> & {
22
+ errors?: Array<{
23
+ message?: string;
24
+ } | undefined>;
25
+ }): React.JSX.Element | null;
26
+ //#endregion
27
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle };