@lt-three/love3 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +17 -0
  13. package/dist/native/analytics/multi-line-chart.js +215 -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 +13 -0
  43. package/dist/native/atom/separator.js +17 -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 +23 -0
  83. package/dist/native/form/form.js +45 -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 +49 -0
  139. package/dist/native/lib/confirm.js +70 -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 +17 -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 +12 -0
  151. package/dist/native/lib/network.js +21 -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 +46 -0
  155. package/dist/native/lib/snackbar.js +60 -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 +40 -0
  237. package/dist/web/atom/segmented-control.js +43 -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 +22 -0
  251. package/dist/web/atom/text-area.js +26 -0
  252. package/dist/web/atom/text-field.d.ts +17 -0
  253. package/dist/web/atom/text-field.js +21 -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 +33 -0
  361. package/dist/web/layout/titled-modal.js +59 -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,37 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+
5
+ //#region src/web/base/alert.tsx
6
+ const alertVariants = cva("relative w-full rounded-surface border px-3.5 py-3 text-[13px] grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current", {
7
+ variants: { variant: {
8
+ default: "bg-card text-card-foreground",
9
+ destructive: "border-state-error/30 bg-state-error/5 text-state-error [&>svg]:text-current *:data-[slot=alert-description]:text-state-error"
10
+ } },
11
+ defaultVariants: { variant: "default" }
12
+ });
13
+ function Alert({ className, variant, ...props }) {
14
+ return /* @__PURE__ */ jsx("div", {
15
+ "data-slot": "alert",
16
+ role: "alert",
17
+ className: cn(alertVariants({ variant }), className),
18
+ ...props
19
+ });
20
+ }
21
+ function AlertTitle({ className, ...props }) {
22
+ return /* @__PURE__ */ jsx("div", {
23
+ "data-slot": "alert-title",
24
+ className: cn("col-start-2 min-h-4 font-medium tracking-tight", className),
25
+ ...props
26
+ });
27
+ }
28
+ function AlertDescription({ className, ...props }) {
29
+ return /* @__PURE__ */ jsx("div", {
30
+ "data-slot": "alert-description",
31
+ className: cn("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed", className),
32
+ ...props
33
+ });
34
+ }
35
+
36
+ //#endregion
37
+ export { Alert, AlertDescription, AlertTitle };
@@ -0,0 +1,8 @@
1
+ import * as React$1 from "react";
2
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
3
+ //#region src/web/base/avatar.d.ts
4
+ declare function Avatar({ className, ...props }: React$1.ComponentProps<typeof AvatarPrimitive.Root>): React$1.JSX.Element;
5
+ declare function AvatarImage({ className, ...props }: React$1.ComponentProps<typeof AvatarPrimitive.Image>): React$1.JSX.Element;
6
+ declare function AvatarFallback({ className, ...props }: React$1.ComponentProps<typeof AvatarPrimitive.Fallback>): React$1.JSX.Element;
7
+ //#endregion
8
+ export { Avatar, AvatarFallback, AvatarImage };
@@ -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
+ /** 省略された階層の読み上げ名 */
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 { BREADCRUMB_LABEL, MORE_LEVELS_LABEL } from "../lib/labels.js";
2
+ import { cn } from "../lib/utils.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
+ /** 見出しのレベル(`<h2>`〜`<h6>`)。h1 はページに 1 つなので、カードの題には選ばせない。 */
6
+ export type CardHeadingLevel = 2 | 3 | 4 | 5 | 6;
7
+ /**
8
+ * カードの題。既定は `<div>`(見出しの階層に入れない)。`headingLevel` を渡すと `<h2>`〜`<h6>` になり、見出しの階層に入る
9
+ * (見た目は同じ。見出しの既定の余白・大きさは打ち消す)。
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
+ * カードの題。既定は `<div>`(見出しの階層に入れない)。`headingLevel` を渡すと `<h2>`〜`<h6>` になり、見出しの階層に入る
28
+ * (見た目は同じ。見出しの既定の余白・大きさは打ち消す)。
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
+ /** 閉じるボタンの読み上げ名 */
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 { CLOSE_LABEL } from "../lib/labels.js";
2
+ import { cn } from "../lib/utils.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 };