@webjsdev/ui 0.3.17 → 0.4.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 (358) hide show
  1. package/README.md +66 -7
  2. package/THIRD_PARTY_NOTICES.md +349 -0
  3. package/package.json +4 -2
  4. package/packages/registry/blocks/_shared/placeholder.svg +1 -0
  5. package/packages/registry/blocks/charts/chart-area-axes.ts +72 -0
  6. package/packages/registry/blocks/charts/chart-area-default.ts +64 -0
  7. package/packages/registry/blocks/charts/chart-area-gradient.ts +82 -0
  8. package/packages/registry/blocks/charts/chart-area-icons.ts +77 -0
  9. package/packages/registry/blocks/charts/chart-area-interactive.ts +204 -0
  10. package/packages/registry/blocks/charts/chart-area-legend.ts +72 -0
  11. package/packages/registry/blocks/charts/chart-area-linear.ts +64 -0
  12. package/packages/registry/blocks/charts/chart-area-stacked-expand.ts +77 -0
  13. package/packages/registry/blocks/charts/chart-area-stacked.ts +71 -0
  14. package/packages/registry/blocks/charts/chart-area-step.ts +68 -0
  15. package/packages/registry/blocks/charts/chart-bar-active.ts +93 -0
  16. package/packages/registry/blocks/charts/chart-bar-default.ts +60 -0
  17. package/packages/registry/blocks/charts/chart-bar-horizontal.ts +62 -0
  18. package/packages/registry/blocks/charts/chart-bar-interactive.ts +185 -0
  19. package/packages/registry/blocks/charts/chart-bar-label-custom.ts +78 -0
  20. package/packages/registry/blocks/charts/chart-bar-label.ts +66 -0
  21. package/packages/registry/blocks/charts/chart-bar-mixed.ts +87 -0
  22. package/packages/registry/blocks/charts/chart-bar-multiple.ts +67 -0
  23. package/packages/registry/blocks/charts/chart-bar-negative.ts +61 -0
  24. package/packages/registry/blocks/charts/chart-bar-stacked.ts +68 -0
  25. package/packages/registry/blocks/charts/chart-line-default.ts +61 -0
  26. package/packages/registry/blocks/charts/chart-line-dots-colors.ts +86 -0
  27. package/packages/registry/blocks/charts/chart-line-dots-custom.ts +75 -0
  28. package/packages/registry/blocks/charts/chart-line-dots.ts +65 -0
  29. package/packages/registry/blocks/charts/chart-line-interactive.ts +185 -0
  30. package/packages/registry/blocks/charts/chart-line-label-custom.ts +94 -0
  31. package/packages/registry/blocks/charts/chart-line-label.ts +73 -0
  32. package/packages/registry/blocks/charts/chart-line-linear.ts +61 -0
  33. package/packages/registry/blocks/charts/chart-line-multiple.ts +71 -0
  34. package/packages/registry/blocks/charts/chart-line-step.ts +61 -0
  35. package/packages/registry/blocks/charts/chart-pie-donut-active.ts +86 -0
  36. package/packages/registry/blocks/charts/chart-pie-donut-text.ts +89 -0
  37. package/packages/registry/blocks/charts/chart-pie-donut.ts +77 -0
  38. package/packages/registry/blocks/charts/chart-pie-interactive.ts +120 -0
  39. package/packages/registry/blocks/charts/chart-pie-label-custom.ts +82 -0
  40. package/packages/registry/blocks/charts/chart-pie-label-list.ts +86 -0
  41. package/packages/registry/blocks/charts/chart-pie-label.ts +77 -0
  42. package/packages/registry/blocks/charts/chart-pie-legend.ts +79 -0
  43. package/packages/registry/blocks/charts/chart-pie-separator-none.ts +77 -0
  44. package/packages/registry/blocks/charts/chart-pie-simple.ts +77 -0
  45. package/packages/registry/blocks/charts/chart-pie-stacked.ts +99 -0
  46. package/packages/registry/blocks/charts/chart-radar-default.ts +61 -0
  47. package/packages/registry/blocks/charts/chart-radar-dots.ts +61 -0
  48. package/packages/registry/blocks/charts/chart-radar-grid-circle-fill.ts +61 -0
  49. package/packages/registry/blocks/charts/chart-radar-grid-circle-no-lines.ts +61 -0
  50. package/packages/registry/blocks/charts/chart-radar-grid-circle.ts +61 -0
  51. package/packages/registry/blocks/charts/chart-radar-grid-custom.ts +61 -0
  52. package/packages/registry/blocks/charts/chart-radar-grid-fill.ts +61 -0
  53. package/packages/registry/blocks/charts/chart-radar-grid-none.ts +60 -0
  54. package/packages/registry/blocks/charts/chart-radar-icons.ts +76 -0
  55. package/packages/registry/blocks/charts/chart-radar-label-custom.ts +77 -0
  56. package/packages/registry/blocks/charts/chart-radar-legend.ts +70 -0
  57. package/packages/registry/blocks/charts/chart-radar-lines-only.ts +68 -0
  58. package/packages/registry/blocks/charts/chart-radar-multiple.ts +68 -0
  59. package/packages/registry/blocks/charts/chart-radar-radius.ts +68 -0
  60. package/packages/registry/blocks/charts/chart-radial-grid.ts +80 -0
  61. package/packages/registry/blocks/charts/chart-radial-label.ts +85 -0
  62. package/packages/registry/blocks/charts/chart-radial-shape.ts +81 -0
  63. package/packages/registry/blocks/charts/chart-radial-simple.ts +79 -0
  64. package/packages/registry/blocks/charts/chart-radial-stacked.ts +69 -0
  65. package/packages/registry/blocks/charts/chart-radial-text.ts +82 -0
  66. package/packages/registry/blocks/charts/chart-tooltip-advanced.ts +84 -0
  67. package/packages/registry/blocks/charts/chart-tooltip-default.ts +62 -0
  68. package/packages/registry/blocks/charts/chart-tooltip-formatter.ts +75 -0
  69. package/packages/registry/blocks/charts/chart-tooltip-icons.ts +68 -0
  70. package/packages/registry/blocks/charts/chart-tooltip-indicator-line.ts +62 -0
  71. package/packages/registry/blocks/charts/chart-tooltip-indicator-none.ts +62 -0
  72. package/packages/registry/blocks/charts/chart-tooltip-label-custom.ts +65 -0
  73. package/packages/registry/blocks/charts/chart-tooltip-label-formatter.ts +66 -0
  74. package/packages/registry/blocks/charts/chart-tooltip-label-none.ts +62 -0
  75. package/packages/registry/blocks/dashboard-01/components/app-sidebar.ts +108 -0
  76. package/packages/registry/blocks/dashboard-01/components/chart-area-interactive.ts +276 -0
  77. package/packages/registry/blocks/dashboard-01/components/dashboard-data.ts +89 -0
  78. package/packages/registry/blocks/dashboard-01/components/data-table.ts +637 -0
  79. package/packages/registry/blocks/dashboard-01/components/nav-documents.ts +65 -0
  80. package/packages/registry/blocks/dashboard-01/components/nav-main.ts +61 -0
  81. package/packages/registry/blocks/dashboard-01/components/nav-secondary.ts +40 -0
  82. package/packages/registry/blocks/dashboard-01/components/nav-user.ts +66 -0
  83. package/packages/registry/blocks/dashboard-01/components/section-cards.ts +59 -0
  84. package/packages/registry/blocks/dashboard-01/components/site-header.ts +52 -0
  85. package/packages/registry/blocks/dashboard-01/page.ts +39 -0
  86. package/packages/registry/blocks/login-01/components/login-form.ts +70 -0
  87. package/packages/registry/blocks/login-01/page.ts +19 -0
  88. package/packages/registry/blocks/login-02/components/login-form.ts +68 -0
  89. package/packages/registry/blocks/login-02/page.ts +36 -0
  90. package/packages/registry/blocks/login-03/components/login-form.ts +89 -0
  91. package/packages/registry/blocks/login-03/page.ts +28 -0
  92. package/packages/registry/blocks/login-04/components/login-form.ts +91 -0
  93. package/packages/registry/blocks/login-04/page.ts +20 -0
  94. package/packages/registry/blocks/login-05/components/login-form.ts +75 -0
  95. package/packages/registry/blocks/login-05/page.ts +19 -0
  96. package/packages/registry/blocks/preview/cards/activate-agent-dialog.ts +77 -0
  97. package/packages/registry/blocks/preview/cards/analytics-card.ts +64 -0
  98. package/packages/registry/blocks/preview/cards/anomaly-alert.ts +35 -0
  99. package/packages/registry/blocks/preview/cards/bar-chart-card.ts +91 -0
  100. package/packages/registry/blocks/preview/cards/book-appointment.ts +51 -0
  101. package/packages/registry/blocks/preview/cards/codespaces-card.ts +172 -0
  102. package/packages/registry/blocks/preview/cards/contributions-activity.ts +63 -0
  103. package/packages/registry/blocks/preview/cards/contributors.ts +51 -0
  104. package/packages/registry/blocks/preview/cards/environment-variables.ts +47 -0
  105. package/packages/registry/blocks/preview/cards/feedback-form.ts +61 -0
  106. package/packages/registry/blocks/preview/cards/file-upload.ts +51 -0
  107. package/packages/registry/blocks/preview/cards/github-profile.ts +66 -0
  108. package/packages/registry/blocks/preview/cards/icon-preview-grid.ts +47 -0
  109. package/packages/registry/blocks/preview/cards/invite-team.ts +78 -0
  110. package/packages/registry/blocks/preview/cards/invoice.ts +91 -0
  111. package/packages/registry/blocks/preview/cards/live-waveform.ts +330 -0
  112. package/packages/registry/blocks/preview/cards/no-team-members.ts +61 -0
  113. package/packages/registry/blocks/preview/cards/not-found.ts +46 -0
  114. package/packages/registry/blocks/preview/cards/observability-card.ts +44 -0
  115. package/packages/registry/blocks/preview/cards/pie-chart-card.ts +84 -0
  116. package/packages/registry/blocks/preview/cards/report-bug.ts +71 -0
  117. package/packages/registry/blocks/preview/cards/shipping-address.ts +79 -0
  118. package/packages/registry/blocks/preview/cards/shortcuts.ts +57 -0
  119. package/packages/registry/blocks/preview/cards/skeleton-loading.ts +37 -0
  120. package/packages/registry/blocks/preview/cards/sleep-report.ts +85 -0
  121. package/packages/registry/blocks/preview/cards/style-overview.ts +64 -0
  122. package/packages/registry/blocks/preview/cards/typography-specimen.ts +107 -0
  123. package/packages/registry/blocks/preview/cards/ui-elements.ts +164 -0
  124. package/packages/registry/blocks/preview/cards/usage-card.ts +63 -0
  125. package/packages/registry/blocks/preview/cards/visitors.ts +71 -0
  126. package/packages/registry/blocks/preview/cards/weekly-fitness-summary.ts +54 -0
  127. package/packages/registry/blocks/preview/page.ts +103 -0
  128. package/packages/registry/blocks/preview-02/cards/account-access.ts +70 -0
  129. package/packages/registry/blocks/preview-02/cards/card-overview.ts +75 -0
  130. package/packages/registry/blocks/preview-02/cards/claimable-balance.ts +54 -0
  131. package/packages/registry/blocks/preview-02/cards/contribution-history.ts +80 -0
  132. package/packages/registry/blocks/preview-02/cards/cover-art.ts +41 -0
  133. package/packages/registry/blocks/preview-02/cards/dividend-income.ts +76 -0
  134. package/packages/registry/blocks/preview-02/cards/empty-connect-bank.ts +38 -0
  135. package/packages/registry/blocks/preview-02/cards/empty-distribute-track.ts +38 -0
  136. package/packages/registry/blocks/preview-02/cards/empty-explore-catalog.ts +39 -0
  137. package/packages/registry/blocks/preview-02/cards/faq.ts +79 -0
  138. package/packages/registry/blocks/preview-02/cards/front-door.ts +40 -0
  139. package/packages/registry/blocks/preview-02/cards/index-investing.ts +31 -0
  140. package/packages/registry/blocks/preview-02/cards/kitchen-island.ts +90 -0
  141. package/packages/registry/blocks/preview-02/cards/loading-card.ts +34 -0
  142. package/packages/registry/blocks/preview-02/cards/new-milestone.ts +53 -0
  143. package/packages/registry/blocks/preview-02/cards/notification-settings.ts +126 -0
  144. package/packages/registry/blocks/preview-02/cards/payments.ts +88 -0
  145. package/packages/registry/blocks/preview-02/cards/payout-threshold.ts +92 -0
  146. package/packages/registry/blocks/preview-02/cards/power-usage.ts +84 -0
  147. package/packages/registry/blocks/preview-02/cards/preferences.ts +89 -0
  148. package/packages/registry/blocks/preview-02/cards/qr-connect.ts +54 -0
  149. package/packages/registry/blocks/preview-02/cards/receiving-method.ts +89 -0
  150. package/packages/registry/blocks/preview-02/cards/recent-transactions.ts +101 -0
  151. package/packages/registry/blocks/preview-02/cards/release-catalog.ts +73 -0
  152. package/packages/registry/blocks/preview-02/cards/roller-shades.ts +110 -0
  153. package/packages/registry/blocks/preview-02/cards/savings-progress.ts +68 -0
  154. package/packages/registry/blocks/preview-02/cards/savings-targets.ts +132 -0
  155. package/packages/registry/blocks/preview-02/cards/sidebar-nav.ts +88 -0
  156. package/packages/registry/blocks/preview-02/cards/social-links.ts +57 -0
  157. package/packages/registry/blocks/preview-02/cards/stock-performance.ts +106 -0
  158. package/packages/registry/blocks/preview-02/cards/syncing-state.ts +37 -0
  159. package/packages/registry/blocks/preview-02/cards/transfer-funds.ts +111 -0
  160. package/packages/registry/blocks/preview-02/cards/upcoming-payments.ts +69 -0
  161. package/packages/registry/blocks/preview-02/page.ts +111 -0
  162. package/packages/registry/blocks/preview-03/cards/files-chat.ts +75 -0
  163. package/packages/registry/blocks/preview-03/cards/group-chat.ts +114 -0
  164. package/packages/registry/blocks/preview-03/cards/reasoning-chat.ts +88 -0
  165. package/packages/registry/blocks/preview-03/cards/simple-chat.ts +53 -0
  166. package/packages/registry/blocks/preview-03/components/chat-card.ts +126 -0
  167. package/packages/registry/blocks/preview-03/components/chat-player.ts +174 -0
  168. package/packages/registry/blocks/preview-03/components/part-file.ts +77 -0
  169. package/packages/registry/blocks/preview-03/components/part-reasoning.ts +25 -0
  170. package/packages/registry/blocks/preview-03/components/part-source.ts +48 -0
  171. package/packages/registry/blocks/preview-03/components/part-text.ts +69 -0
  172. package/packages/registry/blocks/preview-03/components/part-tool.ts +71 -0
  173. package/packages/registry/blocks/preview-03/components/prompt-input.ts +86 -0
  174. package/packages/registry/blocks/preview-03/page.ts +39 -0
  175. package/packages/registry/blocks/sidebar-01/components/app-sidebar.ts +113 -0
  176. package/packages/registry/blocks/sidebar-01/components/search-form.ts +33 -0
  177. package/packages/registry/blocks/sidebar-01/components/version-switcher.ts +50 -0
  178. package/packages/registry/blocks/sidebar-01/page.ts +58 -0
  179. package/packages/registry/blocks/sidebar-02/components/app-sidebar.ts +131 -0
  180. package/packages/registry/blocks/sidebar-02/components/search-form.ts +33 -0
  181. package/packages/registry/blocks/sidebar-02/components/version-switcher.ts +50 -0
  182. package/packages/registry/blocks/sidebar-02/page.ts +53 -0
  183. package/packages/registry/blocks/sidebar-03/components/app-sidebar.ts +134 -0
  184. package/packages/registry/blocks/sidebar-03/page.ts +60 -0
  185. package/packages/registry/blocks/sidebar-04/components/app-sidebar.ts +136 -0
  186. package/packages/registry/blocks/sidebar-04/page.ts +58 -0
  187. package/packages/registry/blocks/sidebar-05/components/app-sidebar.ts +147 -0
  188. package/packages/registry/blocks/sidebar-05/components/search-form.ts +33 -0
  189. package/packages/registry/blocks/sidebar-05/page.ts +58 -0
  190. package/packages/registry/blocks/sidebar-06/components/app-sidebar.ts +105 -0
  191. package/packages/registry/blocks/sidebar-06/components/nav-main.ts +56 -0
  192. package/packages/registry/blocks/sidebar-06/components/sidebar-opt-in-form.ts +44 -0
  193. package/packages/registry/blocks/sidebar-06/page.ts +57 -0
  194. package/packages/registry/blocks/sidebar-07/components/app-sidebar.ts +108 -0
  195. package/packages/registry/blocks/sidebar-07/components/nav-main.ts +61 -0
  196. package/packages/registry/blocks/sidebar-07/components/nav-projects.ts +65 -0
  197. package/packages/registry/blocks/sidebar-07/components/nav-user.ts +70 -0
  198. package/packages/registry/blocks/sidebar-07/components/team-switcher.ts +66 -0
  199. package/packages/registry/blocks/sidebar-07/page.ts +59 -0
  200. package/packages/registry/blocks/sidebar-08/components/app-sidebar.ts +122 -0
  201. package/packages/registry/blocks/sidebar-08/components/nav-main.ts +68 -0
  202. package/packages/registry/blocks/sidebar-08/components/nav-projects.ts +65 -0
  203. package/packages/registry/blocks/sidebar-08/components/nav-secondary.ts +40 -0
  204. package/packages/registry/blocks/sidebar-08/components/nav-user.ts +70 -0
  205. package/packages/registry/blocks/sidebar-08/page.ts +59 -0
  206. package/packages/registry/blocks/sidebar-09/components/app-sidebar.ts +213 -0
  207. package/packages/registry/blocks/sidebar-09/components/nav-user.ts +70 -0
  208. package/packages/registry/blocks/sidebar-09/page.ts +52 -0
  209. package/packages/registry/blocks/sidebar-10/components/app-sidebar.ts +125 -0
  210. package/packages/registry/blocks/sidebar-10/components/nav-actions.ts +84 -0
  211. package/packages/registry/blocks/sidebar-10/components/nav-favorites.ts +66 -0
  212. package/packages/registry/blocks/sidebar-10/components/nav-main.ts +37 -0
  213. package/packages/registry/blocks/sidebar-10/components/nav-secondary.ts +43 -0
  214. package/packages/registry/blocks/sidebar-10/components/nav-workspaces.ts +78 -0
  215. package/packages/registry/blocks/sidebar-10/components/team-switcher.ts +63 -0
  216. package/packages/registry/blocks/sidebar-10/page.ts +46 -0
  217. package/packages/registry/blocks/sidebar-11/components/app-sidebar.ts +114 -0
  218. package/packages/registry/blocks/sidebar-11/page.ts +63 -0
  219. package/packages/registry/blocks/sidebar-12/components/app-sidebar.ts +63 -0
  220. package/packages/registry/blocks/sidebar-12/components/calendars.ts +53 -0
  221. package/packages/registry/blocks/sidebar-12/components/date-picker.ts +26 -0
  222. package/packages/registry/blocks/sidebar-12/components/nav-user.ts +70 -0
  223. package/packages/registry/blocks/sidebar-12/page.ts +43 -0
  224. package/packages/registry/blocks/sidebar-13/components/settings-dialog.ts +114 -0
  225. package/packages/registry/blocks/sidebar-13/page.ts +21 -0
  226. package/packages/registry/blocks/sidebar-14/components/app-sidebar.ts +120 -0
  227. package/packages/registry/blocks/sidebar-14/page.ts +55 -0
  228. package/packages/registry/blocks/sidebar-15/components/calendars.ts +53 -0
  229. package/packages/registry/blocks/sidebar-15/components/date-picker.ts +26 -0
  230. package/packages/registry/blocks/sidebar-15/components/nav-favorites.ts +66 -0
  231. package/packages/registry/blocks/sidebar-15/components/nav-main.ts +35 -0
  232. package/packages/registry/blocks/sidebar-15/components/nav-secondary.ts +43 -0
  233. package/packages/registry/blocks/sidebar-15/components/nav-user.ts +70 -0
  234. package/packages/registry/blocks/sidebar-15/components/nav-workspaces.ts +75 -0
  235. package/packages/registry/blocks/sidebar-15/components/sidebar-left.ts +126 -0
  236. package/packages/registry/blocks/sidebar-15/components/sidebar-right.ts +62 -0
  237. package/packages/registry/blocks/sidebar-15/components/team-switcher.ts +63 -0
  238. package/packages/registry/blocks/sidebar-15/page.ts +47 -0
  239. package/packages/registry/blocks/sidebar-16/components/app-sidebar.ts +124 -0
  240. package/packages/registry/blocks/sidebar-16/components/nav-main.ts +67 -0
  241. package/packages/registry/blocks/sidebar-16/components/nav-projects.ts +65 -0
  242. package/packages/registry/blocks/sidebar-16/components/nav-secondary.ts +40 -0
  243. package/packages/registry/blocks/sidebar-16/components/nav-user.ts +70 -0
  244. package/packages/registry/blocks/sidebar-16/components/search-form.ts +27 -0
  245. package/packages/registry/blocks/sidebar-16/components/site-header.ts +42 -0
  246. package/packages/registry/blocks/sidebar-16/page.ts +38 -0
  247. package/packages/registry/blocks/signup-01/components/signup-form.ts +78 -0
  248. package/packages/registry/blocks/signup-01/page.ts +19 -0
  249. package/packages/registry/blocks/signup-02/components/signup-form.ts +78 -0
  250. package/packages/registry/blocks/signup-02/page.ts +36 -0
  251. package/packages/registry/blocks/signup-03/components/signup-form.ts +79 -0
  252. package/packages/registry/blocks/signup-03/page.ts +28 -0
  253. package/packages/registry/blocks/signup-04/components/signup-form.ts +100 -0
  254. package/packages/registry/blocks/signup-04/page.ts +20 -0
  255. package/packages/registry/blocks/signup-05/components/signup-form.ts +75 -0
  256. package/packages/registry/blocks/signup-05/page.ts +20 -0
  257. package/packages/registry/components/accordion.ts +20 -7
  258. package/packages/registry/components/alert-dialog.ts +58 -13
  259. package/packages/registry/components/alert.ts +11 -6
  260. package/packages/registry/components/attachment.ts +119 -0
  261. package/packages/registry/components/avatar.ts +17 -8
  262. package/packages/registry/components/badge.ts +16 -9
  263. package/packages/registry/components/breadcrumb.ts +6 -6
  264. package/packages/registry/components/bubble.ts +95 -0
  265. package/packages/registry/components/button-group.ts +73 -0
  266. package/packages/registry/components/button.ts +35 -25
  267. package/packages/registry/components/calendar.ts +566 -0
  268. package/packages/registry/components/card.ts +8 -8
  269. package/packages/registry/components/carousel.ts +352 -0
  270. package/packages/registry/components/chart-element.ts +547 -0
  271. package/packages/registry/components/chart-geometry.ts +457 -0
  272. package/packages/registry/components/chart.ts +932 -0
  273. package/packages/registry/components/checkbox.ts +22 -84
  274. package/packages/registry/components/code-block.ts +191 -0
  275. package/packages/registry/components/collapsible.ts +5 -2
  276. package/packages/registry/components/combobox.ts +802 -0
  277. package/packages/registry/components/command.ts +618 -0
  278. package/packages/registry/components/context-menu.ts +302 -0
  279. package/packages/registry/components/dialog.ts +156 -45
  280. package/packages/registry/components/direction.ts +43 -0
  281. package/packages/registry/components/drawer.ts +226 -0
  282. package/packages/registry/components/dropdown-menu.ts +262 -83
  283. package/packages/registry/components/empty.ts +8 -8
  284. package/packages/registry/components/field.ts +20 -18
  285. package/packages/registry/components/floating.ts +124 -0
  286. package/packages/registry/components/hover-card.ts +19 -8
  287. package/packages/registry/components/input-group.ts +118 -0
  288. package/packages/registry/components/input-otp.ts +365 -0
  289. package/packages/registry/components/input.ts +3 -3
  290. package/packages/registry/components/item.ts +134 -0
  291. package/packages/registry/components/kbd.ts +2 -2
  292. package/packages/registry/components/label.ts +1 -1
  293. package/packages/registry/components/marker.ts +63 -0
  294. package/packages/registry/components/menubar.ts +388 -0
  295. package/packages/registry/components/message-scroller.ts +470 -0
  296. package/packages/registry/components/message.ts +69 -0
  297. package/packages/registry/components/native-select.ts +5 -5
  298. package/packages/registry/components/navigation-menu.ts +564 -0
  299. package/packages/registry/components/pagination.ts +5 -5
  300. package/packages/registry/components/popover.ts +30 -84
  301. package/packages/registry/components/progress.ts +7 -3
  302. package/packages/registry/components/questionnaire.ts +840 -0
  303. package/packages/registry/components/radio-group.ts +18 -73
  304. package/packages/registry/components/resizable.ts +330 -0
  305. package/packages/registry/components/scroll-area.ts +46 -0
  306. package/packages/registry/components/select.ts +650 -0
  307. package/packages/registry/components/separator.ts +1 -1
  308. package/packages/registry/components/sheet.ts +128 -0
  309. package/packages/registry/components/sidebar.ts +457 -0
  310. package/packages/registry/components/skeleton.ts +1 -1
  311. package/packages/registry/components/slider.ts +333 -0
  312. package/packages/registry/components/sonner.ts +74 -7
  313. package/packages/registry/components/spinner.ts +7 -4
  314. package/packages/registry/components/switch.ts +117 -9
  315. package/packages/registry/components/table.ts +11 -9
  316. package/packages/registry/components/tabs.ts +76 -25
  317. package/packages/registry/components/textarea.ts +1 -1
  318. package/packages/registry/components/toggle-group.ts +30 -11
  319. package/packages/registry/components/toggle.ts +20 -13
  320. package/packages/registry/components/tooltip.ts +68 -7
  321. package/packages/registry/components/trace.ts +75 -0
  322. package/packages/registry/lib/icons-hugeicons.ts +955 -0
  323. package/packages/registry/lib/icons-phosphor.ts +955 -0
  324. package/packages/registry/lib/icons-remixicon.ts +955 -0
  325. package/packages/registry/lib/icons-tabler.ts +955 -0
  326. package/packages/registry/lib/icons.ts +768 -0
  327. package/packages/registry/lib/utils.ts +49 -4
  328. package/packages/registry/registry.json +4056 -72
  329. package/packages/registry/styles/shadcn-tailwind.css +654 -0
  330. package/packages/registry/styles/style-luma.css +1987 -0
  331. package/packages/registry/styles/style-lyra.css +1965 -0
  332. package/packages/registry/styles/style-maia.css +1987 -0
  333. package/packages/registry/styles/style-mira.css +1992 -0
  334. package/packages/registry/styles/style-new-york.css +1597 -0
  335. package/packages/registry/styles/style-nova.css +1990 -0
  336. package/packages/registry/styles/style-rhea.css +1987 -0
  337. package/packages/registry/styles/style-sera.css +1977 -0
  338. package/packages/registry/styles/style-vega.css +1990 -0
  339. package/packages/registry/styles/supplement.json +54 -0
  340. package/packages/registry/styles/tw-animate.css +6 -0
  341. package/packages/registry/themes/base-colors.js +8 -2
  342. package/packages/registry/themes/fonts.js +120 -0
  343. package/packages/registry/themes/index.css +2 -0
  344. package/packages/registry/themes/items.js +61 -0
  345. package/packages/registry/themes/preset.js +302 -0
  346. package/packages/registry/themes/themes.js +1193 -0
  347. package/src/commands/add.js +236 -12
  348. package/src/commands/diff.js +34 -20
  349. package/src/commands/info.js +7 -0
  350. package/src/commands/init.js +125 -8
  351. package/src/commands/list.js +43 -11
  352. package/src/commands/view.js +33 -5
  353. package/src/registry/extract.js +192 -2
  354. package/src/registry/icons.js +31 -0
  355. package/src/registry/local.js +15 -1
  356. package/src/registry/schema.js +13 -0
  357. package/src/registry/style-bake.js +506 -0
  358. package/src/utils/theme.js +110 -21
@@ -0,0 +1,654 @@
1
+ /* Ported from shadcn/ui (packages/shadcn/src/tailwind.css, MIT). The custom
2
+ variants (data-open, data-closed, data-checked and the rest), the accordion
3
+ keyframes, and the scroll-fade and shimmer utilities the shadcn/ui styles
4
+ and blocks rely on (#1666). See packages/ui/THIRD_PARTY_NOTICES.md.
5
+
6
+ One local change: data-checked and data-unchecked also match a native
7
+ checkbox or radio by its :checked state, and <ui-switch>'s root and thumb
8
+ by the state of the checkbox inside. shadcn's controls are Radix buttons
9
+ that carry data-state; the kit's are native inputs, whose checked state IS
10
+ :checked, so without this every shadcn style leaves them drawn as the
11
+ browser's own control, and a switch would only follow it with script. */
12
+ @theme inline {
13
+ @keyframes accordion-down {
14
+ from {
15
+ height: 0;
16
+ }
17
+ to {
18
+ height: var(
19
+ --radix-accordion-content-height,
20
+ var(--accordion-panel-height, auto)
21
+ );
22
+ }
23
+ }
24
+
25
+ @keyframes accordion-up {
26
+ from {
27
+ height: var(
28
+ --radix-accordion-content-height,
29
+ var(--accordion-panel-height, auto)
30
+ );
31
+ }
32
+ to {
33
+ height: 0;
34
+ }
35
+ }
36
+ }
37
+
38
+ /* Custom variants */
39
+ @custom-variant data-open {
40
+ &:where([data-state="open"]),
41
+ &:where([data-open]:not([data-open="false"])) {
42
+ @slot;
43
+ }
44
+ }
45
+
46
+ @custom-variant data-closed {
47
+ &:where([data-state="closed"]),
48
+ &:where([data-closed]:not([data-closed="false"])) {
49
+ @slot;
50
+ }
51
+ }
52
+
53
+ @custom-variant data-checked {
54
+ &:where([data-state="checked"]),
55
+ &:where([data-checked]:not([data-checked="false"])),
56
+ &:where(input:is([type="checkbox"], [type="radio"]):checked),
57
+ &:where([data-slot="switch"]:has(> input:checked)),
58
+ &:where(input:checked ~ [data-slot="switch-thumb"]) {
59
+ @slot;
60
+ }
61
+ }
62
+
63
+ @custom-variant data-unchecked {
64
+ &:where([data-state="unchecked"]),
65
+ &:where([data-unchecked]:not([data-unchecked="false"])),
66
+ &:where(input:is([type="checkbox"], [type="radio"]):not(:checked)),
67
+ &:where([data-slot="switch"]:has(> input:not(:checked))),
68
+ &:where(input:not(:checked) ~ [data-slot="switch-thumb"]) {
69
+ @slot;
70
+ }
71
+ }
72
+
73
+ @custom-variant data-selected {
74
+ &:where([data-selected="true"]) {
75
+ @slot;
76
+ }
77
+ }
78
+
79
+ @custom-variant data-disabled {
80
+ &:where([data-disabled="true"]),
81
+ &:where([data-disabled]:not([data-disabled="false"])) {
82
+ @slot;
83
+ }
84
+ }
85
+
86
+ @custom-variant data-active {
87
+ &:where([data-state="active"]),
88
+ &:where([data-active]:not([data-active="false"])) {
89
+ @slot;
90
+ }
91
+ }
92
+
93
+ @custom-variant data-horizontal {
94
+ &:where([data-orientation="horizontal"]) {
95
+ @slot;
96
+ }
97
+ }
98
+
99
+ @custom-variant data-vertical {
100
+ &:where([data-orientation="vertical"]) {
101
+ @slot;
102
+ }
103
+ }
104
+
105
+ @utility no-scrollbar {
106
+ -ms-overflow-style: none;
107
+ scrollbar-width: none;
108
+
109
+ &::-webkit-scrollbar {
110
+ display: none;
111
+ }
112
+ }
113
+
114
+ /* scroll-fade */
115
+ @property --scroll-fade-t {
116
+ syntax: "<length-percentage>";
117
+ inherits: false;
118
+ initial-value: 0px;
119
+ }
120
+ @property --scroll-fade-b {
121
+ syntax: "<length-percentage>";
122
+ inherits: false;
123
+ initial-value: 0px;
124
+ }
125
+ @property --scroll-fade-s {
126
+ syntax: "<length-percentage>";
127
+ inherits: false;
128
+ initial-value: 0px;
129
+ }
130
+ @property --scroll-fade-e {
131
+ syntax: "<length-percentage>";
132
+ inherits: false;
133
+ initial-value: 0px;
134
+ }
135
+ @property --scroll-fade-mask {
136
+ syntax: "*";
137
+ inherits: false;
138
+ }
139
+
140
+ @theme inline {
141
+ @keyframes scroll-fade-reveal-t {
142
+ from {
143
+ --scroll-fade-t: 0px;
144
+ }
145
+ to {
146
+ --scroll-fade-t: var(--_scroll-fade-size-t, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
147
+ }
148
+ }
149
+ @keyframes scroll-fade-reveal-b {
150
+ from {
151
+ --scroll-fade-b: var(--_scroll-fade-size-b, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
152
+ }
153
+ to {
154
+ --scroll-fade-b: 0px;
155
+ }
156
+ }
157
+ @keyframes scroll-fade-reveal-s {
158
+ from {
159
+ --scroll-fade-s: 0px;
160
+ }
161
+ to {
162
+ --scroll-fade-s: var(--_scroll-fade-size-s, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
163
+ }
164
+ }
165
+ @keyframes scroll-fade-reveal-e {
166
+ from {
167
+ --scroll-fade-e: var(--_scroll-fade-size-e, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
168
+ }
169
+ to {
170
+ --scroll-fade-e: 0px;
171
+ }
172
+ }
173
+ }
174
+
175
+ @utility scroll-fade {
176
+ --_scroll-fade-size-t: var(
177
+ --scroll-fade-t-size,
178
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
179
+ );
180
+ --_scroll-fade-size-b: var(
181
+ --scroll-fade-b-size,
182
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
183
+ );
184
+ --scroll-fade-block: linear-gradient(
185
+ to bottom,
186
+ transparent 0,
187
+ #000 var(--scroll-fade-t, 0px),
188
+ #000 calc(100% - var(--scroll-fade-b, 0px)),
189
+ transparent 100%
190
+ );
191
+ -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
192
+ mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
193
+ -webkit-mask-composite: source-in;
194
+ mask-composite: intersect;
195
+ -webkit-mask-repeat: no-repeat;
196
+ mask-repeat: no-repeat;
197
+
198
+ @supports (animation-timeline: scroll()) {
199
+ animation:
200
+ scroll-fade-reveal-t 1ms ease-in-out,
201
+ scroll-fade-reveal-b 1ms ease-in-out;
202
+ animation-timeline: scroll(self y), scroll(self y);
203
+ animation-range:
204
+ 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
205
+ calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
206
+ animation-fill-mode: both;
207
+ }
208
+
209
+ @supports not (animation-timeline: scroll()) {
210
+ --scroll-fade-t: var(--_scroll-fade-size-t);
211
+ --scroll-fade-b: var(--_scroll-fade-size-b);
212
+ }
213
+ }
214
+
215
+ @utility scroll-fade-y {
216
+ --_scroll-fade-size-t: var(
217
+ --scroll-fade-t-size,
218
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
219
+ );
220
+ --_scroll-fade-size-b: var(
221
+ --scroll-fade-b-size,
222
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
223
+ );
224
+ --scroll-fade-block: linear-gradient(
225
+ to bottom,
226
+ transparent 0,
227
+ #000 var(--scroll-fade-t, 0px),
228
+ #000 calc(100% - var(--scroll-fade-b, 0px)),
229
+ transparent 100%
230
+ );
231
+ -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
232
+ mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));
233
+ -webkit-mask-composite: source-in;
234
+ mask-composite: intersect;
235
+ -webkit-mask-repeat: no-repeat;
236
+ mask-repeat: no-repeat;
237
+
238
+ @supports (animation-timeline: scroll()) {
239
+ animation:
240
+ scroll-fade-reveal-t 1ms ease-in-out,
241
+ scroll-fade-reveal-b 1ms ease-in-out;
242
+ animation-timeline: scroll(self y), scroll(self y);
243
+ animation-range:
244
+ 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
245
+ calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
246
+ animation-fill-mode: both;
247
+ }
248
+
249
+ @supports not (animation-timeline: scroll()) {
250
+ --scroll-fade-t: var(--_scroll-fade-size-t);
251
+ --scroll-fade-b: var(--_scroll-fade-size-b);
252
+ }
253
+ }
254
+
255
+ @utility scroll-fade-x {
256
+ --_scroll-fade-size-s: var(
257
+ --scroll-fade-s-size,
258
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
259
+ );
260
+ --_scroll-fade-size-e: var(
261
+ --scroll-fade-e-size,
262
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
263
+ );
264
+ --scroll-fade-inline: linear-gradient(
265
+ to right,
266
+ transparent 0,
267
+ #000 var(--scroll-fade-s, 0px),
268
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
269
+ transparent 100%
270
+ );
271
+ &:where([dir="rtl"], [dir="rtl"] *) {
272
+ --scroll-fade-inline: linear-gradient(
273
+ to left,
274
+ transparent 0,
275
+ #000 var(--scroll-fade-s, 0px),
276
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
277
+ transparent 100%
278
+ );
279
+ }
280
+ -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
281
+ mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
282
+ -webkit-mask-composite: source-in;
283
+ mask-composite: intersect;
284
+ -webkit-mask-repeat: no-repeat;
285
+ mask-repeat: no-repeat;
286
+
287
+ @supports (animation-timeline: scroll()) {
288
+ animation:
289
+ scroll-fade-reveal-s 1ms ease-in-out,
290
+ scroll-fade-reveal-e 1ms ease-in-out;
291
+ animation-timeline: scroll(self inline), scroll(self inline);
292
+ animation-range:
293
+ 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)),
294
+ calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
295
+ animation-fill-mode: both;
296
+ }
297
+
298
+ @supports not (animation-timeline: scroll()) {
299
+ --scroll-fade-s: var(--_scroll-fade-size-s);
300
+ --scroll-fade-e: var(--_scroll-fade-size-e);
301
+ }
302
+ }
303
+
304
+ @utility scroll-fade-t {
305
+ --_scroll-fade-size-t: var(
306
+ --scroll-fade-t-size,
307
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
308
+ );
309
+ --scroll-fade-mask: linear-gradient(
310
+ to bottom,
311
+ transparent 0,
312
+ #000 var(--scroll-fade-t, 0px),
313
+ #000 100%
314
+ );
315
+ -webkit-mask-image: var(--scroll-fade-mask);
316
+ mask-image: var(--scroll-fade-mask);
317
+ -webkit-mask-composite: source-in;
318
+ mask-composite: intersect;
319
+ -webkit-mask-repeat: no-repeat;
320
+ mask-repeat: no-repeat;
321
+
322
+ @supports (animation-timeline: scroll()) {
323
+ animation: scroll-fade-reveal-t 1ms ease-in-out;
324
+ animation-timeline: scroll(self y);
325
+ animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24));
326
+ animation-fill-mode: both;
327
+ }
328
+
329
+ @supports not (animation-timeline: scroll()) {
330
+ --scroll-fade-t: var(--_scroll-fade-size-t);
331
+ }
332
+ }
333
+
334
+ @utility scroll-fade-b {
335
+ --_scroll-fade-size-b: var(
336
+ --scroll-fade-b-size,
337
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
338
+ );
339
+ --scroll-fade-mask: linear-gradient(
340
+ to bottom,
341
+ #000 0,
342
+ #000 calc(100% - var(--scroll-fade-b, 0px)),
343
+ transparent 100%
344
+ );
345
+ -webkit-mask-image: var(--scroll-fade-mask);
346
+ mask-image: var(--scroll-fade-mask);
347
+ -webkit-mask-composite: source-in;
348
+ mask-composite: intersect;
349
+ -webkit-mask-repeat: no-repeat;
350
+ mask-repeat: no-repeat;
351
+
352
+ @supports (animation-timeline: scroll()) {
353
+ animation: scroll-fade-reveal-b 1ms ease-in-out;
354
+ animation-timeline: scroll(self y);
355
+ animation-range: calc(
356
+ 100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))
357
+ )
358
+ 100%;
359
+ animation-fill-mode: both;
360
+ }
361
+
362
+ @supports not (animation-timeline: scroll()) {
363
+ --scroll-fade-b: var(--_scroll-fade-size-b);
364
+ }
365
+ }
366
+
367
+ @utility scroll-fade-l {
368
+ --_scroll-fade-size-s: var(
369
+ --scroll-fade-s-size,
370
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
371
+ );
372
+ --scroll-fade-mask: linear-gradient(
373
+ to right,
374
+ transparent 0,
375
+ #000 var(--scroll-fade-s, 0px),
376
+ #000 100%
377
+ );
378
+ -webkit-mask-image: var(--scroll-fade-mask);
379
+ mask-image: var(--scroll-fade-mask);
380
+ -webkit-mask-composite: source-in;
381
+ mask-composite: intersect;
382
+ -webkit-mask-repeat: no-repeat;
383
+ mask-repeat: no-repeat;
384
+
385
+ @supports (animation-timeline: scroll()) {
386
+ animation: scroll-fade-reveal-s 1ms ease-in-out;
387
+ animation-timeline: scroll(self x);
388
+ animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24));
389
+ animation-fill-mode: both;
390
+ }
391
+
392
+ @supports not (animation-timeline: scroll()) {
393
+ --scroll-fade-s: var(--_scroll-fade-size-s);
394
+ }
395
+ }
396
+
397
+ @utility scroll-fade-r {
398
+ --_scroll-fade-size-e: var(
399
+ --scroll-fade-e-size,
400
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
401
+ );
402
+ --scroll-fade-mask: linear-gradient(
403
+ to right,
404
+ #000 0,
405
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
406
+ transparent 100%
407
+ );
408
+ -webkit-mask-image: var(--scroll-fade-mask);
409
+ mask-image: var(--scroll-fade-mask);
410
+ -webkit-mask-composite: source-in;
411
+ mask-composite: intersect;
412
+ -webkit-mask-repeat: no-repeat;
413
+ mask-repeat: no-repeat;
414
+
415
+ @supports (animation-timeline: scroll()) {
416
+ animation: scroll-fade-reveal-e 1ms ease-in-out;
417
+ animation-timeline: scroll(self x);
418
+ animation-range: calc(
419
+ 100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))
420
+ )
421
+ 100%;
422
+ animation-fill-mode: both;
423
+ }
424
+
425
+ @supports not (animation-timeline: scroll()) {
426
+ --scroll-fade-e: var(--_scroll-fade-size-e);
427
+ }
428
+ }
429
+
430
+ @utility scroll-fade-s {
431
+ --_scroll-fade-size-s: var(
432
+ --scroll-fade-s-size,
433
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
434
+ );
435
+ --scroll-fade-mask: linear-gradient(
436
+ to right,
437
+ transparent 0,
438
+ #000 var(--scroll-fade-s, 0px),
439
+ #000 100%
440
+ );
441
+ &:where([dir="rtl"], [dir="rtl"] *) {
442
+ --scroll-fade-mask: linear-gradient(
443
+ to left,
444
+ transparent 0,
445
+ #000 var(--scroll-fade-s, 0px),
446
+ #000 100%
447
+ );
448
+ }
449
+ -webkit-mask-image: var(--scroll-fade-mask);
450
+ mask-image: var(--scroll-fade-mask);
451
+ -webkit-mask-composite: source-in;
452
+ mask-composite: intersect;
453
+ -webkit-mask-repeat: no-repeat;
454
+ mask-repeat: no-repeat;
455
+
456
+ @supports (animation-timeline: scroll()) {
457
+ animation: scroll-fade-reveal-s 1ms ease-in-out;
458
+ animation-timeline: scroll(self inline);
459
+ animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24));
460
+ animation-fill-mode: both;
461
+ }
462
+
463
+ @supports not (animation-timeline: scroll()) {
464
+ --scroll-fade-s: var(--_scroll-fade-size-s);
465
+ }
466
+ }
467
+
468
+ @utility scroll-fade-e {
469
+ --_scroll-fade-size-e: var(
470
+ --scroll-fade-e-size,
471
+ var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10)))
472
+ );
473
+ --scroll-fade-mask: linear-gradient(
474
+ to right,
475
+ #000 0,
476
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
477
+ transparent 100%
478
+ );
479
+ &:where([dir="rtl"], [dir="rtl"] *) {
480
+ --scroll-fade-mask: linear-gradient(
481
+ to left,
482
+ #000 0,
483
+ #000 calc(100% - var(--scroll-fade-e, 0px)),
484
+ transparent 100%
485
+ );
486
+ }
487
+ -webkit-mask-image: var(--scroll-fade-mask);
488
+ mask-image: var(--scroll-fade-mask);
489
+ -webkit-mask-composite: source-in;
490
+ mask-composite: intersect;
491
+ -webkit-mask-repeat: no-repeat;
492
+ mask-repeat: no-repeat;
493
+
494
+ @supports (animation-timeline: scroll()) {
495
+ animation: scroll-fade-reveal-e 1ms ease-in-out;
496
+ animation-timeline: scroll(self inline);
497
+ animation-range: calc(
498
+ 100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))
499
+ )
500
+ 100%;
501
+ animation-fill-mode: both;
502
+ }
503
+
504
+ @supports not (animation-timeline: scroll()) {
505
+ --scroll-fade-e: var(--_scroll-fade-size-e);
506
+ }
507
+ }
508
+
509
+ @utility scroll-fade-* {
510
+ --scroll-fade-size: calc(var(--spacing) * --value(integer));
511
+ --scroll-fade-size: --value([length], [percentage]);
512
+ }
513
+
514
+ @utility scroll-fade-t-* {
515
+ --scroll-fade-t-size: calc(var(--spacing) * --value(integer));
516
+ --scroll-fade-t-size: --value([length], [percentage]);
517
+ }
518
+
519
+ @utility scroll-fade-b-* {
520
+ --scroll-fade-b-size: calc(var(--spacing) * --value(integer));
521
+ --scroll-fade-b-size: --value([length], [percentage]);
522
+ }
523
+
524
+ @utility scroll-fade-s-* {
525
+ --scroll-fade-s-size: calc(var(--spacing) * --value(integer));
526
+ --scroll-fade-s-size: --value([length], [percentage]);
527
+ }
528
+
529
+ @utility scroll-fade-e-* {
530
+ --scroll-fade-e-size: calc(var(--spacing) * --value(integer));
531
+ --scroll-fade-e-size: --value([length], [percentage]);
532
+ }
533
+
534
+ @utility scroll-fade-none {
535
+ --scroll-fade-mask: none;
536
+ }
537
+
538
+ /* shimmer */
539
+ @property --shimmer-angle {
540
+ syntax: "<angle>";
541
+ inherits: true;
542
+ initial-value: 20deg;
543
+ }
544
+ @property --shimmer-image {
545
+ syntax: "*";
546
+ inherits: false;
547
+ }
548
+ @property --shimmer-text-fill {
549
+ syntax: "*";
550
+ inherits: false;
551
+ }
552
+
553
+ @theme inline {
554
+ @keyframes tw-shimmer {
555
+ from {
556
+ background-position: 100% 0;
557
+ }
558
+ to {
559
+ background-position: 0 0;
560
+ }
561
+ }
562
+ }
563
+
564
+ @utility shimmer {
565
+ --_spread: var(--shimmer-spread, calc(3ch + 40px));
566
+ --_base: currentColor;
567
+ --_highlight: var(
568
+ --shimmer-color,
569
+ oklch(from currentColor l c h / calc(alpha* 0.2))
570
+ );
571
+
572
+ background-image: var(
573
+ --shimmer-image,
574
+ linear-gradient(
575
+ calc(90deg + var(--shimmer-angle)),
576
+ var(--_base) calc(50% - var(--_spread)),
577
+ color-mix(in oklch, var(--_highlight), var(--_base) 50%)
578
+ calc(50% - var(--_spread) * 0.5),
579
+ var(--_highlight) 50%,
580
+ color-mix(in oklch, var(--_highlight), var(--_base) 50%)
581
+ calc(50% + var(--_spread) * 0.5),
582
+ var(--_base) calc(50% + var(--_spread))
583
+ )
584
+ );
585
+ background-repeat: no-repeat;
586
+ background-size: calc(200% + var(--_spread) * 2) 100%;
587
+ background-position: 0 0;
588
+ background-clip: text;
589
+ -webkit-background-clip: text;
590
+ -webkit-text-fill-color: var(--shimmer-text-fill, transparent);
591
+ animation: tw-shimmer var(--shimmer-duration, 2s) linear infinite;
592
+
593
+ @variant dark {
594
+ --_highlight: var(
595
+ --shimmer-color,
596
+ oklch(from currentColor max(0.8, calc(l + 0.4)) c h / calc(alpha + 0.4))
597
+ );
598
+ }
599
+
600
+ &:where([dir="rtl"], [dir="rtl"] *) {
601
+ animation-direction: reverse;
602
+ }
603
+
604
+ @media (prefers-reduced-motion: reduce) {
605
+ animation: none;
606
+ background-image: none;
607
+ -webkit-text-fill-color: currentColor;
608
+ }
609
+ }
610
+
611
+ @utility shimmer-once {
612
+ animation-iteration-count: 1;
613
+ }
614
+
615
+ @utility shimmer-reverse {
616
+ animation-direction: reverse;
617
+ }
618
+
619
+ @utility shimmer-none {
620
+ --shimmer-image: none;
621
+ --shimmer-text-fill: currentColor;
622
+ }
623
+
624
+ @utility shimmer-color-* {
625
+ --shimmer-color: --value(--color, [color]);
626
+ --shimmer-color: color-mix(
627
+ in oklch,
628
+ --value(--color, [color]) calc(--modifier(integer) * 1%),
629
+ transparent
630
+ );
631
+ }
632
+
633
+ @utility shimmer-duration-* {
634
+ --shimmer-duration: calc(--value(integer) * 1ms);
635
+ }
636
+
637
+ @utility shimmer-spread-* {
638
+ --shimmer-spread: calc(var(--spacing) * --value(integer));
639
+ --shimmer-spread: --value([length], [percentage]);
640
+ }
641
+
642
+ @utility shimmer-angle-* {
643
+ --shimmer-angle: calc(--value(integer) * 1deg);
644
+ }
645
+
646
+ /* Kept for backwards compatibility. Unlayered, so it still wins over other
647
+ utilities on a plain .shimmer element. Variants are handled in the utility. */
648
+ @media (prefers-reduced-motion: reduce) {
649
+ .shimmer {
650
+ animation: none;
651
+ background-image: none;
652
+ -webkit-text-fill-color: currentColor;
653
+ }
654
+ }