@glyphui/ui 0.4.0 → 0.5.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 (546) hide show
  1. package/README.md +9 -6
  2. package/dist/chart.d.ts +14 -202
  3. package/dist/chart.js +14 -465
  4. package/dist/components/accordion/accordion.d.ts +15 -0
  5. package/dist/components/accordion/accordion.js +69 -0
  6. package/dist/components/accordion/accordion.styles.d.ts +65 -0
  7. package/dist/components/accordion/accordion.styles.js +30 -0
  8. package/dist/components/accordion/index.d.ts +3 -0
  9. package/dist/components/alert/alert-icons.js +62 -0
  10. package/dist/components/alert/alert.d.ts +19 -0
  11. package/dist/components/alert/alert.js +64 -0
  12. package/dist/components/alert/alert.styles.d.ts +107 -0
  13. package/dist/components/alert/alert.styles.js +86 -0
  14. package/dist/components/alert/index.d.ts +3 -0
  15. package/dist/components/alert-dialog/alert-dialog.d.ts +29 -0
  16. package/dist/components/alert-dialog/alert-dialog.js +89 -0
  17. package/dist/components/alert-dialog/alert-dialog.styles.d.ts +63 -0
  18. package/dist/components/alert-dialog/alert-dialog.styles.js +19 -0
  19. package/dist/components/alert-dialog/confirm-dialog.js +22 -0
  20. package/dist/components/alert-dialog/confirm.d.ts +30 -0
  21. package/dist/components/alert-dialog/confirm.js +62 -0
  22. package/dist/components/alert-dialog/index.d.ts +4 -0
  23. package/dist/components/aspect-ratio/aspect-ratio.d.ts +55 -0
  24. package/dist/components/aspect-ratio/aspect-ratio.js +28 -0
  25. package/dist/components/aspect-ratio/index.d.ts +2 -0
  26. package/dist/components/avatar/avatar.d.ts +13 -0
  27. package/dist/components/avatar/avatar.js +50 -0
  28. package/dist/components/avatar/avatar.styles.d.ts +77 -0
  29. package/dist/components/avatar/avatar.styles.js +32 -0
  30. package/dist/components/avatar/index.d.ts +3 -0
  31. package/dist/components/badge/badge.d.ts +10 -0
  32. package/dist/components/badge/badge.js +28 -0
  33. package/dist/components/badge/badge.styles.d.ts +62 -0
  34. package/dist/components/badge/badge.styles.js +72 -0
  35. package/dist/components/badge/index.d.ts +3 -0
  36. package/dist/components/banner/banner.d.ts +17 -0
  37. package/dist/components/banner/banner.js +71 -0
  38. package/dist/components/banner/banner.styles.d.ts +98 -0
  39. package/dist/components/banner/banner.styles.js +27 -0
  40. package/dist/components/banner/index.d.ts +3 -0
  41. package/dist/components/blockquote/blockquote.d.ts +72 -0
  42. package/dist/components/blockquote/blockquote.js +47 -0
  43. package/dist/components/blockquote/index.d.ts +2 -0
  44. package/dist/components/breadcrumb/breadcrumb.d.ts +28 -0
  45. package/dist/components/breadcrumb/breadcrumb.js +85 -0
  46. package/dist/components/breadcrumb/breadcrumb.styles.d.ts +63 -0
  47. package/dist/components/breadcrumb/breadcrumb.styles.js +18 -0
  48. package/dist/components/breadcrumb/index.d.ts +3 -0
  49. package/dist/components/button/button.d.ts +20 -0
  50. package/dist/components/button/button.js +52 -0
  51. package/dist/components/button/button.styles.d.ts +146 -0
  52. package/dist/components/button/button.styles.js +64 -0
  53. package/dist/components/button/index.d.ts +3 -0
  54. package/dist/components/calendar/calendar.d.ts +9 -0
  55. package/dist/components/calendar/calendar.js +75 -0
  56. package/dist/components/calendar/calendar.styles.d.ts +171 -0
  57. package/dist/components/calendar/calendar.styles.js +42 -0
  58. package/dist/components/calendar/index.d.ts +4 -0
  59. package/dist/components/card/card.d.ts +17 -0
  60. package/dist/components/card/card.js +79 -0
  61. package/dist/components/card/card.styles.d.ts +113 -0
  62. package/dist/components/card/card.styles.js +38 -0
  63. package/dist/components/card/index.d.ts +3 -0
  64. package/dist/components/carousel/carousel.d.ts +37 -0
  65. package/dist/components/carousel/carousel.js +190 -0
  66. package/dist/components/carousel/carousel.styles.d.ts +74 -0
  67. package/dist/components/carousel/carousel.styles.js +35 -0
  68. package/dist/components/carousel/index.d.ts +3 -0
  69. package/dist/components/checkbox/checkbox.d.ts +37 -0
  70. package/dist/components/checkbox/checkbox.js +44 -0
  71. package/dist/components/checkbox/index.d.ts +2 -0
  72. package/dist/components/code/code.d.ts +18 -0
  73. package/dist/components/code/code.js +75 -0
  74. package/dist/components/code/code.styles.d.ts +76 -0
  75. package/dist/components/code/code.styles.js +18 -0
  76. package/dist/components/code/index.d.ts +3 -0
  77. package/dist/components/collapsible/collapsible.d.ts +56 -0
  78. package/dist/components/collapsible/collapsible.js +43 -0
  79. package/dist/components/collapsible/index.d.ts +2 -0
  80. package/dist/components/combobox/combobox.d.ts +50 -0
  81. package/dist/components/combobox/combobox.js +141 -0
  82. package/dist/components/combobox/combobox.styles.d.ts +110 -0
  83. package/dist/components/combobox/combobox.styles.js +42 -0
  84. package/dist/components/combobox/index.d.ts +3 -0
  85. package/dist/components/command-menu/command-menu.d.ts +40 -0
  86. package/dist/components/command-menu/command-menu.js +148 -0
  87. package/dist/components/command-menu/command-menu.styles.d.ts +105 -0
  88. package/dist/components/command-menu/command-menu.styles.js +30 -0
  89. package/dist/components/command-menu/index.d.ts +3 -0
  90. package/dist/components/container/container.d.ts +34 -0
  91. package/dist/components/container/container.js +30 -0
  92. package/dist/components/container/index.d.ts +2 -0
  93. package/dist/components/context-menu/context-menu.d.ts +34 -0
  94. package/dist/components/context-menu/context-menu.js +157 -0
  95. package/dist/components/context-menu/context-menu.styles.d.ts +135 -0
  96. package/dist/components/context-menu/context-menu.styles.js +14 -0
  97. package/dist/components/context-menu/index.d.ts +3 -0
  98. package/dist/components/copy-button/copy-button.d.ts +61 -0
  99. package/dist/components/copy-button/copy-button.js +79 -0
  100. package/dist/components/copy-button/index.d.ts +2 -0
  101. package/dist/components/date-picker/date-picker.d.ts +51 -0
  102. package/dist/components/date-picker/date-picker.js +235 -0
  103. package/dist/components/date-picker/date-picker.styles.d.ts +77 -0
  104. package/dist/components/date-picker/date-picker.styles.js +31 -0
  105. package/dist/components/date-picker/index.d.ts +3 -0
  106. package/dist/components/description-list/description-list.d.ts +15 -0
  107. package/dist/components/description-list/description-list.js +51 -0
  108. package/dist/components/description-list/description-list.styles.d.ts +74 -0
  109. package/dist/components/description-list/description-list.styles.js +35 -0
  110. package/dist/components/description-list/index.d.ts +3 -0
  111. package/dist/components/dialog/close-icon.js +22 -0
  112. package/dist/components/dialog/dialog.d.ts +21 -0
  113. package/dist/components/dialog/dialog.js +79 -0
  114. package/dist/components/dialog/dialog.styles.d.ts +83 -0
  115. package/dist/components/dialog/dialog.styles.js +34 -0
  116. package/dist/components/dialog/index.d.ts +3 -0
  117. package/dist/components/dropdown-menu/dropdown-menu.d.ts +34 -0
  118. package/dist/components/dropdown-menu/dropdown-menu.js +160 -0
  119. package/dist/components/dropdown-menu/dropdown-menu.styles.d.ts +83 -0
  120. package/dist/components/dropdown-menu/dropdown-menu.styles.js +38 -0
  121. package/dist/components/dropdown-menu/index.d.ts +3 -0
  122. package/dist/components/eyebrow/eyebrow.d.ts +9 -0
  123. package/dist/components/eyebrow/eyebrow.js +20 -0
  124. package/dist/components/eyebrow/eyebrow.styles.d.ts +38 -0
  125. package/dist/components/eyebrow/eyebrow.styles.js +13 -0
  126. package/dist/components/eyebrow/index.d.ts +3 -0
  127. package/dist/components/field/field-context.d.ts +25 -0
  128. package/dist/components/field/field-context.js +27 -0
  129. package/dist/components/field/field.d.ts +28 -0
  130. package/dist/{field-CVbywksE.js → components/field/field.js} +6 -35
  131. package/dist/components/field/field.styles.d.ts +53 -0
  132. package/dist/components/field/field.styles.js +22 -0
  133. package/dist/components/field/index.d.ts +4 -0
  134. package/dist/components/file-upload/file-upload.d.ts +52 -0
  135. package/dist/components/file-upload/file-upload.js +266 -0
  136. package/dist/components/file-upload/file-upload.styles.d.ts +123 -0
  137. package/dist/components/file-upload/file-upload.styles.js +32 -0
  138. package/dist/components/file-upload/index.d.ts +3 -0
  139. package/dist/components/grid/grid.d.ts +168 -0
  140. package/dist/components/grid/grid.js +126 -0
  141. package/dist/components/grid/index.d.ts +2 -0
  142. package/dist/components/heading/heading.d.ts +12 -0
  143. package/dist/components/heading/heading.js +28 -0
  144. package/dist/components/heading/heading.styles.d.ts +65 -0
  145. package/dist/components/heading/heading.styles.js +15 -0
  146. package/dist/components/heading/index.d.ts +3 -0
  147. package/dist/components/hover-card/hover-card.d.ts +43 -0
  148. package/dist/components/hover-card/hover-card.js +27 -0
  149. package/dist/components/hover-card/index.d.ts +2 -0
  150. package/dist/components/input/index.d.ts +3 -0
  151. package/dist/components/input/input.d.ts +13 -0
  152. package/dist/components/input/input.js +33 -0
  153. package/dist/components/input/input.styles.d.ts +55 -0
  154. package/dist/components/input/input.styles.js +33 -0
  155. package/dist/components/input-otp/index.d.ts +4 -0
  156. package/dist/components/input-otp/index.js +5 -0
  157. package/dist/components/input-otp/input-otp.d.ts +23 -0
  158. package/dist/components/input-otp/input-otp.js +86 -0
  159. package/dist/components/input-otp/input-otp.styles.d.ts +71 -0
  160. package/dist/components/input-otp/input-otp.styles.js +30 -0
  161. package/dist/components/kbd/index.d.ts +2 -0
  162. package/dist/components/kbd/kbd.d.ts +30 -0
  163. package/dist/components/kbd/kbd.js +17 -0
  164. package/dist/components/label/index.d.ts +2 -0
  165. package/dist/components/label/label.d.ts +31 -0
  166. package/dist/components/label/label.js +17 -0
  167. package/dist/components/link/index.d.ts +3 -0
  168. package/dist/components/link/link.d.ts +14 -0
  169. package/dist/components/link/link.js +57 -0
  170. package/dist/components/link/link.styles.d.ts +89 -0
  171. package/dist/components/link/link.styles.js +33 -0
  172. package/dist/components/modal/index.d.ts +3 -0
  173. package/dist/components/modal/modal.d.ts +33 -0
  174. package/dist/components/modal/modal.js +56 -0
  175. package/dist/components/modal/modal.styles.d.ts +61 -0
  176. package/dist/components/modal/modal.styles.js +14 -0
  177. package/dist/components/navigation-menu/index.d.ts +3 -0
  178. package/dist/components/navigation-menu/navigation-menu.d.ts +37 -0
  179. package/dist/components/navigation-menu/navigation-menu.js +138 -0
  180. package/dist/components/navigation-menu/navigation-menu.styles.d.ts +111 -0
  181. package/dist/components/navigation-menu/navigation-menu.styles.js +39 -0
  182. package/dist/components/number-input/index.d.ts +3 -0
  183. package/dist/components/number-input/number-input.d.ts +30 -0
  184. package/dist/components/number-input/number-input.js +151 -0
  185. package/dist/components/number-input/number-input.styles.d.ts +68 -0
  186. package/dist/components/number-input/number-input.styles.js +35 -0
  187. package/dist/components/pagination/index.d.ts +4 -0
  188. package/dist/components/pagination/pagination-range.d.ts +11 -0
  189. package/dist/components/pagination/pagination-range.js +42 -0
  190. package/dist/components/pagination/pagination.d.ts +18 -0
  191. package/dist/components/pagination/pagination.js +94 -0
  192. package/dist/components/pagination/pagination.styles.d.ts +65 -0
  193. package/dist/components/pagination/pagination.styles.js +35 -0
  194. package/dist/components/password-input/index.d.ts +3 -0
  195. package/dist/components/password-input/password-input.d.ts +20 -0
  196. package/dist/components/password-input/password-input.js +106 -0
  197. package/dist/components/password-input/password-input.styles.d.ts +66 -0
  198. package/dist/components/password-input/password-input.styles.js +21 -0
  199. package/dist/components/popover/index.d.ts +2 -0
  200. package/dist/components/popover/popover.d.ts +52 -0
  201. package/dist/components/popover/popover.js +35 -0
  202. package/dist/components/progress/index.d.ts +3 -0
  203. package/dist/components/progress/progress.d.ts +29 -0
  204. package/dist/components/progress/progress.js +108 -0
  205. package/dist/components/progress/progress.styles.d.ts +236 -0
  206. package/dist/components/progress/progress.styles.js +69 -0
  207. package/dist/components/prose/index.d.ts +2 -0
  208. package/dist/components/prose/prose.d.ts +90 -0
  209. package/dist/components/prose/prose.js +67 -0
  210. package/dist/components/radio-group/index.d.ts +3 -0
  211. package/dist/components/radio-group/radio-group.d.ts +26 -0
  212. package/dist/components/radio-group/radio-group.js +102 -0
  213. package/dist/components/radio-group/radio-group.styles.d.ts +80 -0
  214. package/dist/components/radio-group/radio-group.styles.js +56 -0
  215. package/dist/components/resizable/index.d.ts +3 -0
  216. package/dist/components/resizable/resizable.d.ts +17 -0
  217. package/dist/components/resizable/resizable.js +81 -0
  218. package/dist/components/resizable/resizable.styles.d.ts +53 -0
  219. package/dist/components/resizable/resizable.styles.js +19 -0
  220. package/dist/components/scroll-area/index.d.ts +2 -0
  221. package/dist/components/scroll-area/scroll-area.d.ts +70 -0
  222. package/dist/components/scroll-area/scroll-area.js +70 -0
  223. package/dist/components/section/index.d.ts +2 -0
  224. package/dist/components/section/section.d.ts +52 -0
  225. package/dist/components/section/section.js +41 -0
  226. package/dist/components/segmented-control/index.d.ts +2 -0
  227. package/dist/components/segmented-control/segmented-control.d.ts +92 -0
  228. package/dist/components/segmented-control/segmented-control.js +86 -0
  229. package/dist/components/select/index.d.ts +2 -0
  230. package/dist/components/select/select.d.ts +85 -0
  231. package/dist/components/select/select.js +81 -0
  232. package/dist/components/separator/index.d.ts +2 -0
  233. package/dist/components/separator/separator.d.ts +40 -0
  234. package/dist/components/separator/separator.js +27 -0
  235. package/dist/components/sheet/index.d.ts +3 -0
  236. package/dist/components/sheet/sheet.d.ts +20 -0
  237. package/dist/components/sheet/sheet.js +83 -0
  238. package/dist/components/sheet/sheet.styles.d.ts +101 -0
  239. package/dist/components/sheet/sheet.styles.js +62 -0
  240. package/dist/components/skeleton/index.d.ts +2 -0
  241. package/dist/components/skeleton/skeleton.d.ts +30 -0
  242. package/dist/components/skeleton/skeleton.js +18 -0
  243. package/dist/components/slider/index.d.ts +3 -0
  244. package/dist/components/slider/slider.d.ts +38 -0
  245. package/dist/components/slider/slider.js +68 -0
  246. package/dist/components/slider/slider.styles.d.ts +56 -0
  247. package/dist/components/slider/slider.styles.js +23 -0
  248. package/dist/components/spinner/index.d.ts +3 -0
  249. package/dist/components/spinner/spinner.d.ts +9 -0
  250. package/dist/components/spinner/spinner.js +36 -0
  251. package/dist/components/spinner/spinner.styles.d.ts +53 -0
  252. package/dist/components/spinner/spinner.styles.js +18 -0
  253. package/dist/components/stack/index.d.ts +2 -0
  254. package/dist/components/stack/stack.d.ts +109 -0
  255. package/dist/components/stack/stack.js +62 -0
  256. package/dist/components/stat-card/index.d.ts +3 -0
  257. package/dist/components/stat-card/stat-card.d.ts +22 -0
  258. package/dist/components/stat-card/stat-card.js +82 -0
  259. package/dist/components/stat-card/stat-card.styles.d.ts +83 -0
  260. package/dist/components/stat-card/stat-card.styles.js +16 -0
  261. package/dist/components/stepper/index.d.ts +3 -0
  262. package/dist/components/stepper/stepper.d.ts +20 -0
  263. package/dist/components/stepper/stepper.js +100 -0
  264. package/dist/components/stepper/stepper.styles.d.ts +170 -0
  265. package/dist/components/stepper/stepper.styles.js +67 -0
  266. package/dist/components/switch/index.d.ts +2 -0
  267. package/dist/components/switch/switch.d.ts +51 -0
  268. package/dist/components/switch/switch.js +43 -0
  269. package/dist/components/table/index.d.ts +2 -0
  270. package/dist/components/table/table.d.ts +78 -0
  271. package/dist/components/table/table.js +82 -0
  272. package/dist/components/tabs/index.d.ts +2 -0
  273. package/dist/components/tabs/tabs.d.ts +73 -0
  274. package/dist/components/tabs/tabs.js +103 -0
  275. package/dist/components/tag-input/index.d.ts +3 -0
  276. package/dist/components/tag-input/tag-input.d.ts +30 -0
  277. package/dist/components/tag-input/tag-input.js +149 -0
  278. package/dist/components/tag-input/tag-input.styles.d.ts +71 -0
  279. package/dist/components/tag-input/tag-input.styles.js +29 -0
  280. package/dist/components/text/index.d.ts +3 -0
  281. package/dist/components/text/text.d.ts +9 -0
  282. package/dist/components/text/text.js +25 -0
  283. package/dist/components/text/text.styles.d.ts +188 -0
  284. package/dist/components/text/text.styles.js +36 -0
  285. package/dist/components/textarea/index.d.ts +2 -0
  286. package/dist/components/textarea/textarea.d.ts +29 -0
  287. package/dist/components/textarea/textarea.js +23 -0
  288. package/dist/components/timeline/index.d.ts +3 -0
  289. package/dist/components/timeline/timeline.d.ts +28 -0
  290. package/dist/components/timeline/timeline.js +61 -0
  291. package/dist/components/timeline/timeline.styles.d.ts +110 -0
  292. package/dist/components/timeline/timeline.styles.js +30 -0
  293. package/dist/components/toast/index.d.ts +2 -0
  294. package/dist/components/toast/toast.d.ts +119 -0
  295. package/dist/components/toast/toast.js +75 -0
  296. package/dist/components/toggle/index.d.ts +3 -0
  297. package/dist/components/toggle/toggle.d.ts +20 -0
  298. package/dist/components/toggle/toggle.js +58 -0
  299. package/dist/components/toggle/toggle.styles.d.ts +80 -0
  300. package/dist/components/toggle/toggle.styles.js +34 -0
  301. package/dist/components/tooltip/index.d.ts +2 -0
  302. package/dist/components/tooltip/tooltip.d.ts +39 -0
  303. package/dist/components/tooltip/tooltip.js +29 -0
  304. package/dist/components/tree-view/index.d.ts +3 -0
  305. package/dist/components/tree-view/tree-view.d.ts +31 -0
  306. package/dist/components/tree-view/tree-view.js +192 -0
  307. package/dist/components/tree-view/tree-view.styles.d.ts +59 -0
  308. package/dist/components/tree-view/tree-view.styles.js +32 -0
  309. package/dist/components/visually-hidden/index.d.ts +2 -0
  310. package/dist/components/visually-hidden/visually-hidden.d.ts +10 -0
  311. package/dist/components/visually-hidden/visually-hidden.js +16 -0
  312. package/dist/data-table.d.ts +3 -110
  313. package/dist/data-table.js +2 -224
  314. package/dist/form.d.ts +2 -86
  315. package/dist/form.js +1 -108
  316. package/dist/hooks/index.d.ts +5 -0
  317. package/dist/hooks/use-component-config.d.ts +13 -0
  318. package/dist/hooks/use-component-config.js +22 -0
  319. package/dist/hooks/use-controllable-state.d.ts +9 -0
  320. package/dist/hooks/use-controllable-state.js +18 -0
  321. package/dist/hooks/use-media-query.d.ts +4 -0
  322. package/dist/hooks/use-media-query.js +13 -0
  323. package/dist/hooks/use-scrolled.d.ts +4 -0
  324. package/dist/hooks/use-scrolled.js +17 -0
  325. package/dist/index.d.ts +223 -6856
  326. package/dist/index.js +148 -6791
  327. package/dist/internal/dev.js +12 -0
  328. package/dist/internal/icons.js +91 -0
  329. package/dist/motion/active-indicator.d.ts +12 -0
  330. package/dist/motion/active-indicator.js +26 -0
  331. package/dist/motion/animated-number.d.ts +21 -0
  332. package/dist/motion/animated-number.js +88 -0
  333. package/dist/motion/features.js +10 -0
  334. package/dist/motion/index.d.ts +10 -0
  335. package/dist/motion/index.js +10 -0
  336. package/dist/motion/motion-root.js +48 -0
  337. package/dist/motion/page-transition.d.ts +16 -0
  338. package/dist/motion/page-transition.js +23 -0
  339. package/dist/motion/presence-list.js +46 -0
  340. package/dist/motion/presence.d.ts +11 -0
  341. package/dist/motion/presence.js +17 -0
  342. package/dist/motion/reveal.d.ts +18 -0
  343. package/dist/motion/reveal.js +37 -0
  344. package/dist/motion/stagger.d.ts +29 -0
  345. package/dist/motion/stagger.js +52 -0
  346. package/dist/motion/use-motion-settings.d.ts +25 -0
  347. package/dist/motion/use-motion-settings.js +47 -0
  348. package/dist/motion/use-reveal.d.ts +11 -0
  349. package/dist/motion/use-reveal.js +41 -0
  350. package/dist/patterns/app-shell/app-shell-context.d.ts +14 -0
  351. package/dist/patterns/app-shell/app-shell-context.js +16 -0
  352. package/dist/patterns/app-shell/app-shell.d.ts +21 -0
  353. package/dist/patterns/app-shell/app-shell.js +82 -0
  354. package/dist/patterns/app-shell/app-shell.styles.d.ts +302 -0
  355. package/dist/patterns/app-shell/app-shell.styles.js +106 -0
  356. package/dist/patterns/app-shell/index.d.ts +7 -0
  357. package/dist/patterns/app-shell/navbar.d.ts +29 -0
  358. package/dist/patterns/app-shell/navbar.js +116 -0
  359. package/dist/patterns/app-shell/page-header.d.ts +12 -0
  360. package/dist/patterns/app-shell/page-header.js +38 -0
  361. package/dist/patterns/app-shell/sidebar.d.ts +31 -0
  362. package/dist/patterns/app-shell/sidebar.js +141 -0
  363. package/dist/patterns/async/async.d.ts +40 -0
  364. package/dist/patterns/async/async.js +61 -0
  365. package/dist/patterns/async/index.d.ts +3 -0
  366. package/dist/patterns/async/states.d.ts +68 -0
  367. package/dist/patterns/async/states.js +116 -0
  368. package/dist/patterns/chart/cartesian.d.ts +128 -0
  369. package/dist/patterns/chart/cartesian.js +552 -0
  370. package/dist/patterns/chart/chart-card.d.ts +39 -0
  371. package/dist/patterns/chart/chart-card.js +103 -0
  372. package/dist/patterns/chart/chart-parts.d.ts +53 -0
  373. package/dist/patterns/chart/chart-parts.js +282 -0
  374. package/dist/patterns/chart/chart.styles.d.ts +200 -0
  375. package/dist/patterns/chart/chart.styles.js +43 -0
  376. package/dist/patterns/chart/export.d.ts +45 -0
  377. package/dist/patterns/chart/export.js +293 -0
  378. package/dist/patterns/chart/funnel.d.ts +23 -0
  379. package/dist/patterns/chart/funnel.js +129 -0
  380. package/dist/patterns/chart/heatmap.d.ts +37 -0
  381. package/dist/patterns/chart/heatmap.js +258 -0
  382. package/dist/patterns/chart/icons.js +39 -0
  383. package/dist/patterns/chart/pie.d.ts +36 -0
  384. package/dist/patterns/chart/pie.js +120 -0
  385. package/dist/patterns/chart/radial.d.ts +75 -0
  386. package/dist/patterns/chart/radial.js +282 -0
  387. package/dist/patterns/chart/sankey.d.ts +29 -0
  388. package/dist/patterns/chart/sankey.js +136 -0
  389. package/dist/patterns/chart/scatter.d.ts +42 -0
  390. package/dist/patterns/chart/scatter.js +203 -0
  391. package/dist/patterns/chart/sparkline.d.ts +20 -0
  392. package/dist/patterns/chart/sparkline.js +102 -0
  393. package/dist/patterns/chart/treemap.d.ts +25 -0
  394. package/dist/patterns/chart/treemap.js +128 -0
  395. package/dist/patterns/chart/use-element-width.js +23 -0
  396. package/dist/patterns/data-table/data-table.d.ts +109 -0
  397. package/dist/patterns/data-table/data-table.js +233 -0
  398. package/dist/patterns/form/form.d.ts +89 -0
  399. package/dist/patterns/form/form.js +111 -0
  400. package/dist/{color-mode-script-KdwItKN2.d.ts → provider/color-mode-script.d.ts} +4 -5
  401. package/dist/{color-mode-script-Bf7LYkOj.js → provider/color-mode-script.js} +1 -1
  402. package/dist/provider/color-mode.d.ts +24 -0
  403. package/dist/provider/color-mode.js +87 -0
  404. package/dist/{glyph-context-DxGJrdvr.d.ts → provider/glyph-context.d.ts} +13 -12
  405. package/dist/provider/glyph-context.js +28 -0
  406. package/dist/provider/glyph-provider.d.ts +37 -0
  407. package/dist/provider/glyph-provider.js +48 -0
  408. package/dist/provider/index.d.ts +6 -0
  409. package/dist/provider/theme-scope.d.ts +12 -0
  410. package/dist/provider/theme-scope.js +42 -0
  411. package/dist/provider/theme-style.js +15 -0
  412. package/dist/react-router.d.ts +1 -1
  413. package/dist/register.d.ts +57 -0
  414. package/dist/themes.d.ts +22 -0
  415. package/dist/themes.js +49 -0
  416. package/dist/utils/cn.d.ts +6 -0
  417. package/dist/utils/cn.js +12 -0
  418. package/dist/utils/compose-refs.js +11 -0
  419. package/dist/{registry-BGSJoiLq.d.ts → utils/registry.d.ts} +2 -3
  420. package/dist/utils/styles.js +20 -0
  421. package/dist/{tv-DuMh7UH2.d.ts → utils/tv.d.ts} +2 -2
  422. package/dist/utils/tv.js +8 -0
  423. package/dist/utils/tw-merge-config.js +13 -0
  424. package/dist/vite.d.ts +1 -1
  425. package/dist/vite.js +1 -1
  426. package/package.json +3 -2
  427. package/src/components/accordion/accordion.styles.ts +1 -1
  428. package/src/components/alert/alert.styles.ts +1 -1
  429. package/src/components/alert-dialog/alert-dialog.styles.ts +5 -4
  430. package/src/components/alert-dialog/confirm-dialog.tsx +42 -0
  431. package/src/components/alert-dialog/confirm.tsx +12 -31
  432. package/src/components/aspect-ratio/aspect-ratio.tsx +1 -1
  433. package/src/components/avatar/avatar.styles.ts +1 -1
  434. package/src/components/badge/badge.styles.ts +1 -1
  435. package/src/components/banner/banner.styles.ts +1 -1
  436. package/src/components/blockquote/blockquote.tsx +1 -1
  437. package/src/components/breadcrumb/breadcrumb.styles.ts +1 -1
  438. package/src/components/button/button.styles.ts +4 -2
  439. package/src/components/calendar/calendar.styles.ts +1 -1
  440. package/src/components/card/card.styles.ts +1 -1
  441. package/src/components/carousel/carousel.styles.ts +1 -1
  442. package/src/components/checkbox/checkbox.tsx +20 -5
  443. package/src/components/code/code.styles.ts +2 -2
  444. package/src/components/collapsible/collapsible.tsx +1 -1
  445. package/src/components/combobox/combobox.styles.ts +5 -2
  446. package/src/components/command-menu/command-menu.styles.ts +6 -4
  447. package/src/components/container/container.tsx +1 -1
  448. package/src/components/context-menu/context-menu.styles.ts +4 -2
  449. package/src/components/copy-button/copy-button.tsx +1 -1
  450. package/src/components/date-picker/date-picker.styles.ts +2 -2
  451. package/src/components/description-list/description-list.styles.ts +1 -1
  452. package/src/components/dialog/dialog.styles.ts +11 -4
  453. package/src/components/dropdown-menu/dropdown-menu.styles.ts +3 -3
  454. package/src/components/eyebrow/eyebrow.styles.ts +1 -1
  455. package/src/components/field/field.styles.ts +1 -1
  456. package/src/components/file-upload/file-upload.styles.ts +1 -1
  457. package/src/components/file-upload/file-upload.tsx +51 -48
  458. package/src/components/grid/grid.tsx +1 -1
  459. package/src/components/heading/heading.styles.ts +1 -1
  460. package/src/components/hover-card/hover-card.tsx +5 -2
  461. package/src/components/input/input.styles.ts +1 -1
  462. package/src/components/input-otp/input-otp.styles.ts +1 -1
  463. package/src/components/kbd/kbd.tsx +1 -1
  464. package/src/components/label/label.tsx +1 -1
  465. package/src/components/link/link.styles.ts +1 -1
  466. package/src/components/modal/modal.styles.ts +1 -1
  467. package/src/components/navigation-menu/navigation-menu.styles.ts +2 -2
  468. package/src/components/number-input/number-input.styles.ts +1 -1
  469. package/src/components/pagination/pagination.styles.ts +6 -4
  470. package/src/components/pagination/pagination.tsx +14 -1
  471. package/src/components/password-input/password-input.styles.ts +1 -1
  472. package/src/components/popover/popover.tsx +1 -1
  473. package/src/components/progress/progress.styles.ts +2 -2
  474. package/src/components/prose/prose.tsx +1 -1
  475. package/src/components/radio-group/radio-group.styles.ts +1 -1
  476. package/src/components/resizable/resizable.styles.ts +1 -1
  477. package/src/components/scroll-area/scroll-area.tsx +1 -1
  478. package/src/components/section/section.tsx +1 -1
  479. package/src/components/segmented-control/segmented-control.tsx +24 -8
  480. package/src/components/select/select.tsx +2 -2
  481. package/src/components/separator/separator.tsx +1 -1
  482. package/src/components/sheet/sheet.styles.ts +1 -1
  483. package/src/components/skeleton/skeleton.tsx +1 -1
  484. package/src/components/slider/slider.styles.ts +1 -1
  485. package/src/components/spinner/spinner.styles.ts +1 -1
  486. package/src/components/stack/stack.tsx +1 -1
  487. package/src/components/stat-card/stat-card.styles.ts +1 -1
  488. package/src/components/stepper/stepper.styles.ts +1 -1
  489. package/src/components/switch/switch.tsx +2 -2
  490. package/src/components/table/table.tsx +1 -1
  491. package/src/components/tabs/tabs.tsx +46 -15
  492. package/src/components/tag-input/tag-input.styles.ts +1 -1
  493. package/src/components/tag-input/tag-input.tsx +27 -18
  494. package/src/components/text/text.styles.ts +1 -1
  495. package/src/components/textarea/textarea.tsx +1 -1
  496. package/src/components/timeline/timeline.styles.ts +1 -1
  497. package/src/components/toast/toast.tsx +1 -1
  498. package/src/components/toggle/toggle.styles.ts +1 -1
  499. package/src/components/tooltip/tooltip.tsx +6 -3
  500. package/src/components/tree-view/tree-view.styles.ts +1 -1
  501. package/src/index.ts +3 -0
  502. package/src/motion/active-indicator.tsx +26 -0
  503. package/src/motion/animated-number.tsx +113 -0
  504. package/src/motion/features.ts +7 -0
  505. package/src/motion/index.ts +9 -0
  506. package/src/motion/motion-root.tsx +46 -0
  507. package/src/motion/page-transition.tsx +30 -0
  508. package/src/motion/presence-list.tsx +42 -0
  509. package/src/motion/presence.tsx +13 -0
  510. package/src/motion/reveal.tsx +50 -0
  511. package/src/motion/stagger.tsx +81 -0
  512. package/src/motion/use-motion-settings.ts +52 -0
  513. package/src/motion/use-reveal.ts +54 -0
  514. package/src/patterns/app-shell/app-shell.styles.ts +18 -11
  515. package/src/patterns/app-shell/sidebar.tsx +28 -7
  516. package/src/patterns/async/states.tsx +1 -1
  517. package/src/patterns/chart/cartesian.tsx +755 -0
  518. package/src/patterns/chart/chart-card.tsx +148 -0
  519. package/src/patterns/chart/chart-parts.tsx +323 -58
  520. package/src/patterns/chart/chart.styles.ts +29 -3
  521. package/src/patterns/chart/export.ts +334 -0
  522. package/src/patterns/chart/funnel.tsx +171 -0
  523. package/src/patterns/chart/heatmap.tsx +339 -0
  524. package/src/patterns/chart/icons.tsx +44 -0
  525. package/src/patterns/chart/index.ts +52 -7
  526. package/src/patterns/chart/pie.tsx +169 -0
  527. package/src/patterns/chart/radial.tsx +361 -0
  528. package/src/patterns/chart/sankey.tsx +197 -0
  529. package/src/patterns/chart/scatter.tsx +254 -0
  530. package/src/patterns/chart/sparkline.tsx +111 -0
  531. package/src/patterns/chart/test-utils.tsx +35 -0
  532. package/src/patterns/chart/treemap.tsx +198 -0
  533. package/src/patterns/chart/use-element-width.ts +20 -0
  534. package/src/patterns/data-table/data-table.tsx +1 -1
  535. package/src/patterns/form/form.tsx +1 -1
  536. package/src/provider/glyph-context.ts +3 -1
  537. package/src/provider/glyph-provider.tsx +31 -12
  538. package/src/provider/theme-scope.tsx +14 -9
  539. package/src/themes.ts +3 -3
  540. package/src/utils/styles.ts +17 -3
  541. package/styles.css +122 -3
  542. package/dist/field-context-7I-cWvvS.js +0 -267
  543. package/dist/index-Bi7rZ6ba.d.ts +0 -244
  544. package/dist/states-IvhjBgna.js +0 -288
  545. package/dist/tv-DLbT66dC.js +0 -70
  546. package/src/patterns/chart/chart.tsx +0 -386
@@ -3,7 +3,7 @@ import { popover } from '../../utils/styles'
3
3
  import { tv, type VariantProps } from '../../utils/tv'
4
4
  import { fieldControl } from '../input/input.styles'
5
5
 
6
- export const comboboxStyles = tv({
6
+ export const comboboxStyles = /* @__PURE__ */ tv({
7
7
  slots: {
8
8
  trigger: [
9
9
  ...fieldControl,
@@ -15,7 +15,10 @@ export const comboboxStyles = tv({
15
15
  placeholder: 'truncate text-faint-foreground',
16
16
  chip: 'inline-flex h-5.5 max-w-40 shrink-0 items-center truncate rounded-pill bg-muted px-2 text-caption text-foreground',
17
17
  icon: 'size-4 shrink-0 text-faint-foreground',
18
- content: [popover, 'w-(--radix-popover-trigger-width) min-w-56 p-0'],
18
+ content: [
19
+ popover,
20
+ 'origin-(--radix-popover-content-transform-origin) w-(--radix-popover-trigger-width) min-w-56 p-0',
21
+ ],
19
22
  search:
20
23
  'flex items-center gap-2 border-b border-border px-3 text-faint-foreground [&>svg]:size-4 [&>svg]:shrink-0',
21
24
  input:
@@ -1,12 +1,14 @@
1
1
  import type { StylesEntry } from '../../utils/registry'
2
- import { themedBorder } from '../../utils/styles'
2
+ import { overlayMotion, themedBorder } from '../../utils/styles'
3
3
  import { tv } from '../../utils/tv'
4
4
 
5
- export const commandMenuStyles = tv({
5
+ export const commandMenuStyles = /* @__PURE__ */ tv({
6
6
  slots: {
7
- overlay: 'fixed inset-0 z-50 animate-fade-in bg-overlay',
7
+ overlay: ['fixed inset-0 z-50 bg-overlay', overlayMotion],
8
8
  content: [
9
- 'fixed top-[12vh] left-1/2 z-50 w-[calc(100%-2rem)] max-w-xl -translate-x-1/2 overflow-hidden rounded-xl border-border bg-raised text-foreground shadow-lg outline-none animate-pop-in',
9
+ 'fixed top-[12vh] left-1/2 z-50 w-[calc(100%-2rem)] max-w-xl -translate-x-1/2 overflow-hidden rounded-xl border-border bg-raised text-foreground shadow-lg outline-none',
10
+ // Anchored near the top, so it grows down from its top edge.
11
+ 'origin-top animate-pop-in data-[state=closed]:animate-pop-out',
10
12
  themedBorder,
11
13
  ],
12
14
  root: 'flex w-full flex-col overflow-hidden bg-raised text-foreground',
@@ -2,7 +2,7 @@ import { Slot } from 'radix-ui'
2
2
  import type { ComponentProps } from 'react'
3
3
  import { tv, type VariantProps } from '../../utils/tv'
4
4
 
5
- export const containerStyles = tv({
5
+ export const containerStyles = /* @__PURE__ */ tv({
6
6
  base: 'mx-auto w-full px-4 sm:px-6',
7
7
  variants: {
8
8
  size: {
@@ -3,10 +3,12 @@ import { tv, type VariantProps } from '../../utils/tv'
3
3
  import { dropdownMenuStyles } from '../dropdown-menu/dropdown-menu.styles'
4
4
 
5
5
  /** Same look as DropdownMenu; only the available-height variable differs. */
6
- export const contextMenuStyles = tv({
6
+ export const contextMenuStyles = /* @__PURE__ */ tv({
7
7
  extend: dropdownMenuStyles,
8
8
  slots: {
9
- content: 'max-h-(--radix-context-menu-content-available-height)',
9
+ content:
10
+ 'origin-(--radix-context-menu-content-transform-origin) max-h-(--radix-context-menu-content-available-height)',
11
+ subContent: 'origin-(--radix-context-menu-content-transform-origin)',
10
12
  },
11
13
  })
12
14
 
@@ -4,7 +4,7 @@ import type { StylesEntry } from '../../utils/registry'
4
4
  import { tv } from '../../utils/tv'
5
5
  import { Button, type ButtonProps } from '../button'
6
6
 
7
- export const copyButtonStyles = tv({
7
+ export const copyButtonStyles = /* @__PURE__ */ tv({
8
8
  slots: {
9
9
  base: '',
10
10
  icon: 'size-4',
@@ -3,7 +3,7 @@ import { popover } from '../../utils/styles'
3
3
  import { tv, type VariantProps } from '../../utils/tv'
4
4
  import { fieldControl } from '../input/input.styles'
5
5
 
6
- export const datePickerStyles = tv({
6
+ export const datePickerStyles = /* @__PURE__ */ tv({
7
7
  slots: {
8
8
  trigger: [
9
9
  ...fieldControl,
@@ -16,7 +16,7 @@ export const datePickerStyles = tv({
16
16
  placeholder: 'min-w-0 flex-1 truncate text-faint-foreground',
17
17
  clear:
18
18
  'inline-flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-xs text-faint-foreground hover:bg-muted hover:text-foreground [&>svg]:size-3.5',
19
- content: [popover, 'w-auto p-0'],
19
+ content: [popover, 'origin-(--radix-popover-content-transform-origin) w-auto p-0'],
20
20
  layout: 'flex flex-col sm:flex-row',
21
21
  presets:
22
22
  'flex gap-1 overflow-x-auto border-b border-border p-2 sm:w-40 sm:flex-col sm:overflow-visible sm:border-r sm:border-b-0',
@@ -1,7 +1,7 @@
1
1
  import type { StylesEntry } from '../../utils/registry'
2
2
  import { tv, type VariantProps } from '../../utils/tv'
3
3
 
4
- export const descriptionListStyles = tv({
4
+ export const descriptionListStyles = /* @__PURE__ */ tv({
5
5
  slots: {
6
6
  root: 'grid w-full',
7
7
  item: 'grid min-w-0 gap-1',
@@ -1,13 +1,20 @@
1
1
  import type { StylesEntry } from '../../utils/registry'
2
- import { focusRing, themedBorder, transition } from '../../utils/styles'
2
+ import {
3
+ dialogMotion,
4
+ focusRing,
5
+ overlayMotion,
6
+ themedBorder,
7
+ transition,
8
+ } from '../../utils/styles'
3
9
  import { tv, type VariantProps } from '../../utils/tv'
4
10
 
5
- export const dialogStyles = tv({
11
+ export const dialogStyles = /* @__PURE__ */ tv({
6
12
  slots: {
7
- overlay: 'fixed inset-0 z-50 animate-fade-in bg-overlay',
13
+ overlay: ['fixed inset-0 z-50 bg-overlay', overlayMotion],
8
14
  content: [
9
15
  'fixed top-1/2 left-1/2 z-50 grid max-h-[calc(100dvh-2rem)] w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 gap-5 overflow-y-auto',
10
- 'rounded-xl border-border bg-surface p-6 text-foreground shadow-lg outline-none animate-pop-in',
16
+ 'rounded-xl border-border bg-surface p-6 text-foreground shadow-lg outline-none',
17
+ dialogMotion,
11
18
  themedBorder,
12
19
  ],
13
20
  close: [
@@ -8,11 +8,11 @@ const item = [
8
8
  '[&_svg]:size-4 [&_svg]:shrink-0',
9
9
  ]
10
10
 
11
- export const dropdownMenuStyles = tv({
11
+ export const dropdownMenuStyles = /* @__PURE__ */ tv({
12
12
  slots: {
13
13
  content: [
14
14
  popover,
15
- 'min-w-48 max-h-(--radix-dropdown-menu-content-available-height) overflow-y-auto p-1',
15
+ 'origin-(--radix-dropdown-menu-content-transform-origin) min-w-48 max-h-(--radix-dropdown-menu-content-available-height) overflow-y-auto p-1',
16
16
  ],
17
17
  item,
18
18
  icon: 'flex size-4 shrink-0 items-center justify-center text-muted-foreground',
@@ -21,7 +21,7 @@ export const dropdownMenuStyles = tv({
21
21
  separator: '-mx-1 my-1 h-px bg-border',
22
22
  shortcut: 'ml-auto pl-4 font-mono text-caption tracking-wider text-faint-foreground',
23
23
  subTrigger: [...item, 'data-[state=open]:bg-muted'],
24
- subContent: [popover, 'min-w-40 p-1'],
24
+ subContent: [popover, 'origin-(--radix-dropdown-menu-content-transform-origin) min-w-40 p-1'],
25
25
  },
26
26
  variants: {
27
27
  tone: {
@@ -1,6 +1,6 @@
1
1
  import { tv, type VariantProps } from '../../utils/tv'
2
2
 
3
- export const eyebrowStyles = tv({
3
+ export const eyebrowStyles = /* @__PURE__ */ tv({
4
4
  slots: { base: 'font-mono text-caption uppercase tracking-[0.12em]' },
5
5
  variants: {
6
6
  tone: {
@@ -1,6 +1,6 @@
1
1
  import { tv, type VariantProps } from '../../utils/tv'
2
2
 
3
- export const fieldStyles = tv({
3
+ export const fieldStyles = /* @__PURE__ */ tv({
4
4
  slots: {
5
5
  root: 'grid gap-1.5',
6
6
  label: '',
@@ -2,7 +2,7 @@ import type { StylesEntry } from '../../utils/registry'
2
2
  import { focusRing, themedBorder, transition } from '../../utils/styles'
3
3
  import { tv } from '../../utils/tv'
4
4
 
5
- export const fileUploadStyles = tv({
5
+ export const fileUploadStyles = /* @__PURE__ */ tv({
6
6
  slots: {
7
7
  root: 'grid gap-3',
8
8
  dropzone: [
@@ -1,6 +1,7 @@
1
1
  import { type DragEvent, type ReactNode, useId, useRef, useState } from 'react'
2
2
  import { useComponentConfig } from '../../hooks/use-component-config'
3
3
  import { useControllableState } from '../../hooks/use-controllable-state'
4
+ import { PresenceItem, PresenceList } from '../../motion/presence-list'
4
5
  import { IconButton } from '../button'
5
6
  import { useFieldControl } from '../field/field-context'
6
7
  import { fileUploadStyles } from './file-upload.styles'
@@ -287,55 +288,57 @@ export function FileUpload(inProps: FileUploadProps) {
287
288
 
288
289
  {files.length > 0 && (
289
290
  <ul className={s.list({ class: slots.list })} aria-label="Selected files">
290
- {files.map((item) => (
291
- <li
292
- key={item.id}
293
- data-slot="file-upload-item"
294
- className={s.item({ class: slots.item })}
295
- >
296
- <span className={s.fileIcon({ class: slots.fileIcon })}>
297
- <FileIcon />
298
- </span>
299
- <span className={s.fileText({ class: slots.fileText })}>
300
- <span className={s.fileName({ class: slots.fileName })}>{item.file.name}</span>
301
- {item.error ? (
302
- <span className={s.fileError({ class: slots.fileError })}>{item.error}</span>
303
- ) : (
304
- <span className={s.fileMeta({ class: slots.fileMeta })}>
305
- {formatBytes(item.file.size)}
306
- {item.progress !== undefined &&
307
- item.progress < 100 &&
308
- ` · ${Math.round(item.progress)}%`}
309
- </span>
310
- )}
311
- {item.progress !== undefined && item.progress < 100 && !item.error && (
312
- <span
313
- role="progressbar"
314
- aria-label={`Uploading ${item.file.name}`}
315
- aria-valuemin={0}
316
- aria-valuemax={100}
317
- aria-valuenow={Math.round(item.progress)}
318
- className={s.progress({ class: slots.progress })}
319
- >
291
+ <PresenceList>
292
+ {files.map((item) => (
293
+ <PresenceItem
294
+ key={item.id}
295
+ data-slot="file-upload-item"
296
+ className={s.item({ class: slots.item })}
297
+ >
298
+ <span className={s.fileIcon({ class: slots.fileIcon })}>
299
+ <FileIcon />
300
+ </span>
301
+ <span className={s.fileText({ class: slots.fileText })}>
302
+ <span className={s.fileName({ class: slots.fileName })}>{item.file.name}</span>
303
+ {item.error ? (
304
+ <span className={s.fileError({ class: slots.fileError })}>{item.error}</span>
305
+ ) : (
306
+ <span className={s.fileMeta({ class: slots.fileMeta })}>
307
+ {formatBytes(item.file.size)}
308
+ {item.progress !== undefined &&
309
+ item.progress < 100 &&
310
+ ` · ${Math.round(item.progress)}%`}
311
+ </span>
312
+ )}
313
+ {item.progress !== undefined && item.progress < 100 && !item.error && (
320
314
  <span
321
- className={s.progressBar({ class: slots.progressBar })}
322
- style={{ width: `${Math.max(0, Math.min(100, item.progress))}%` }}
323
- />
324
- </span>
325
- )}
326
- </span>
327
- <IconButton
328
- size="sm"
329
- icon={<XIcon />}
330
- aria-label={`Remove ${item.file.name}`}
331
- disabled={disabled}
332
- onClick={() => {
333
- setFiles(files.filter((f) => f.id !== item.id))
334
- setRejections([])
335
- }}
336
- />
337
- </li>
338
- ))}
315
+ role="progressbar"
316
+ aria-label={`Uploading ${item.file.name}`}
317
+ aria-valuemin={0}
318
+ aria-valuemax={100}
319
+ aria-valuenow={Math.round(item.progress)}
320
+ className={s.progress({ class: slots.progress })}
321
+ >
322
+ <span
323
+ className={s.progressBar({ class: slots.progressBar })}
324
+ style={{ width: `${Math.max(0, Math.min(100, item.progress))}%` }}
325
+ />
326
+ </span>
327
+ )}
328
+ </span>
329
+ <IconButton
330
+ size="sm"
331
+ icon={<XIcon />}
332
+ aria-label={`Remove ${item.file.name}`}
333
+ disabled={disabled}
334
+ onClick={() => {
335
+ setFiles(files.filter((f) => f.id !== item.id))
336
+ setRejections([])
337
+ }}
338
+ />
339
+ </PresenceItem>
340
+ ))}
341
+ </PresenceList>
339
342
  </ul>
340
343
  )}
341
344
  </div>
@@ -90,7 +90,7 @@ function colsToClasses(cols: GridCols): string {
90
90
  .join(' ')
91
91
  }
92
92
 
93
- export const gridStyles = tv({
93
+ export const gridStyles = /* @__PURE__ */ tv({
94
94
  slots: { base: 'grid' },
95
95
  variants: {
96
96
  gap: {
@@ -1,6 +1,6 @@
1
1
  import { tv, type VariantProps } from '../../utils/tv'
2
2
 
3
- export const headingStyles = tv({
3
+ export const headingStyles = /* @__PURE__ */ tv({
4
4
  slots: { base: 'font-display text-balance text-foreground' },
5
5
  variants: {
6
6
  size: {
@@ -5,9 +5,12 @@ import type { StylesEntry } from '../../utils/registry'
5
5
  import { popover } from '../../utils/styles'
6
6
  import { tv } from '../../utils/tv'
7
7
 
8
- export const hoverCardStyles = tv({
8
+ export const hoverCardStyles = /* @__PURE__ */ tv({
9
9
  slots: {
10
- content: [popover, 'w-72 max-w-[calc(100vw-2rem)] p-4 text-small outline-none'],
10
+ content: [
11
+ popover,
12
+ 'origin-(--radix-hover-card-content-transform-origin) w-72 max-w-[calc(100vw-2rem)] p-4 text-small outline-none',
13
+ ],
11
14
  },
12
15
  })
13
16
 
@@ -10,7 +10,7 @@ export const fieldControl = [
10
10
  'data-invalid:border-danger aria-invalid:border-danger',
11
11
  ]
12
12
 
13
- export const inputStyles = tv({
13
+ export const inputStyles = /* @__PURE__ */ tv({
14
14
  slots: {
15
15
  root: [
16
16
  ...fieldControl,
@@ -2,7 +2,7 @@ import type { StylesEntry } from '../../utils/registry'
2
2
  import { transition } from '../../utils/styles'
3
3
  import { tv, type VariantProps } from '../../utils/tv'
4
4
 
5
- export const inputOtpStyles = tv({
5
+ export const inputOtpStyles = /* @__PURE__ */ tv({
6
6
  slots: {
7
7
  root: 'flex items-center gap-2 has-disabled:opacity-50',
8
8
  input: 'disabled:cursor-not-allowed',
@@ -2,7 +2,7 @@ import type { ComponentProps } from 'react'
2
2
  import { useComponentConfig } from '../../hooks/use-component-config'
3
3
  import { tv } from '../../utils/tv'
4
4
 
5
- export const kbdStyles = tv({
5
+ export const kbdStyles = /* @__PURE__ */ tv({
6
6
  slots: {
7
7
  base: 'inline-flex h-5 min-w-5 items-center justify-center rounded-xs border border-border bg-muted px-1 font-mono text-[0.6875rem] font-medium text-muted-foreground shadow-xs',
8
8
  },
@@ -3,7 +3,7 @@ import type { ComponentProps } from 'react'
3
3
  import { useComponentConfig } from '../../hooks/use-component-config'
4
4
  import { tv } from '../../utils/tv'
5
5
 
6
- export const labelStyles = tv({
6
+ export const labelStyles = /* @__PURE__ */ tv({
7
7
  slots: {
8
8
  base: 'inline-flex select-none items-center gap-1 text-small font-medium text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-60',
9
9
  },
@@ -2,7 +2,7 @@ import type { StylesEntry } from '../../utils/registry'
2
2
  import { focusRing } from '../../utils/styles'
3
3
  import { tv, type VariantProps } from '../../utils/tv'
4
4
 
5
- export const linkStyles = tv({
5
+ export const linkStyles = /* @__PURE__ */ tv({
6
6
  slots: {
7
7
  base: [
8
8
  'inline-flex items-baseline gap-1 rounded-xs font-medium',
@@ -2,7 +2,7 @@ import type { StylesEntry } from '../../utils/registry'
2
2
  import { tv } from '../../utils/tv'
3
3
 
4
4
  /** Modal is built from Dialog parts; these slots add Modal-specific classes on top. */
5
- export const modalStyles = tv({
5
+ export const modalStyles = /* @__PURE__ */ tv({
6
6
  slots: {
7
7
  content: '',
8
8
  header: '',
@@ -10,7 +10,7 @@ const topLevel = [
10
10
  'data-active:text-foreground',
11
11
  ]
12
12
 
13
- export const navigationMenuStyles = tv({
13
+ export const navigationMenuStyles = /* @__PURE__ */ tv({
14
14
  slots: {
15
15
  root: 'relative z-10 flex max-w-max flex-1 items-center justify-center',
16
16
  list: 'group flex flex-1 list-none items-center justify-center gap-1',
@@ -21,7 +21,7 @@ export const navigationMenuStyles = tv({
21
21
  content: 'top-0 left-0 w-full p-2 animate-fade-in md:absolute md:w-auto',
22
22
  viewportWrapper: 'absolute top-full left-0 flex justify-center',
23
23
  viewport: [
24
- 'relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-[calc(100vw-2rem)] origin-top overflow-hidden rounded-lg border-border bg-raised text-foreground shadow-lg animate-pop-in',
24
+ 'relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-[calc(100vw-2rem)] origin-top overflow-hidden rounded-lg border-border bg-raised text-foreground shadow-lg animate-pop-in data-[state=closed]:animate-pop-out',
25
25
  'md:w-(--radix-navigation-menu-viewport-width)',
26
26
  'transition-[width,height] duration-(--glyph-duration-base) ease-standard',
27
27
  themedBorder,
@@ -3,7 +3,7 @@ import { focusRing } from '../../utils/styles'
3
3
  import { tv, type VariantProps } from '../../utils/tv'
4
4
  import { fieldControl } from '../input/input.styles'
5
5
 
6
- export const numberInputStyles = tv({
6
+ export const numberInputStyles = /* @__PURE__ */ tv({
7
7
  slots: {
8
8
  root: [
9
9
  ...fieldControl,
@@ -2,20 +2,22 @@ import type { StylesEntry } from '../../utils/registry'
2
2
  import { focusRing, transition } from '../../utils/styles'
3
3
  import { tv, type VariantProps } from '../../utils/tv'
4
4
 
5
- export const paginationStyles = tv({
5
+ export const paginationStyles = /* @__PURE__ */ tv({
6
6
  slots: {
7
7
  root: 'flex',
8
- list: 'flex flex-wrap items-center gap-1',
8
+ list: 'isolate flex flex-wrap items-center gap-1',
9
9
  item: [
10
- 'inline-flex shrink-0 cursor-pointer select-none items-center justify-center rounded-md font-medium tabular-nums text-muted-foreground',
10
+ 'relative inline-flex shrink-0 cursor-pointer select-none items-center justify-center rounded-md font-medium tabular-nums text-muted-foreground',
11
11
  transition,
12
12
  focusRing,
13
13
  'hover:bg-muted hover:text-foreground',
14
- 'aria-[current=page]:bg-primary aria-[current=page]:text-primary-foreground aria-[current=page]:shadow-xs',
14
+ 'aria-[current=page]:text-primary-foreground aria-[current=page]:hover:bg-transparent',
15
15
  'disabled:pointer-events-none disabled:opacity-40 aria-disabled:pointer-events-none aria-disabled:opacity-40',
16
16
  '[&>svg]:size-4',
17
17
  ],
18
18
  ellipsis: 'inline-flex items-center justify-center text-faint-foreground',
19
+ /** The current page's highlight. Slides to the new page when it changes. */
20
+ indicator: 'pointer-events-none absolute inset-0 -z-10 rounded-[inherit] bg-primary shadow-xs',
19
21
  },
20
22
  variants: {
21
23
  size: {
@@ -1,6 +1,7 @@
1
- import type { ComponentProps, ReactNode } from 'react'
1
+ import { type ComponentProps, type ReactNode, useId } from 'react'
2
2
  import { useComponentConfig } from '../../hooks/use-component-config'
3
3
  import { ChevronLeftIcon, ChevronRightIcon } from '../../internal/icons'
4
+ import { ActiveIndicator } from '../../motion/active-indicator'
4
5
  import { useLinkComponent } from '../../provider/glyph-context'
5
6
  import { type PaginationVariants, paginationStyles } from './pagination.styles'
6
7
  import { paginationRange } from './pagination-range'
@@ -65,6 +66,7 @@ export function Pagination(inProps: PaginationProps) {
65
66
  const s = paginationStyles({ size })
66
67
  const itemClass = s.item({ class: slots.item })
67
68
  const current = Math.min(Math.max(1, page), Math.max(1, pageCount))
69
+ const indicatorId = `${useId()}-pagination-indicator`
68
70
 
69
71
  const control = (
70
72
  target: number,
@@ -73,6 +75,17 @@ export function Pagination(inProps: PaginationProps) {
73
75
  options: { current?: boolean } = {},
74
76
  ) => {
75
77
  const disabled = target < 1 || target > pageCount || (target === current && !options.current)
78
+ if (options.current) {
79
+ content = (
80
+ <>
81
+ <ActiveIndicator
82
+ layoutId={indicatorId}
83
+ className={s.indicator({ class: slots.indicator })}
84
+ />
85
+ {content}
86
+ </>
87
+ )
88
+ }
76
89
  const shared = {
77
90
  'aria-label': label,
78
91
  'aria-current': options.current ? ('page' as const) : undefined,
@@ -2,7 +2,7 @@ import type { StylesEntry } from '../../utils/registry'
2
2
  import { focusRing } from '../../utils/styles'
3
3
  import { tv } from '../../utils/tv'
4
4
 
5
- export const passwordInputStyles = tv({
5
+ export const passwordInputStyles = /* @__PURE__ */ tv({
6
6
  slots: {
7
7
  root: 'grid gap-1.5',
8
8
  toggle: [
@@ -5,7 +5,7 @@ import type { StylesEntry } from '../../utils/registry'
5
5
  import { popover } from '../../utils/styles'
6
6
  import { tv } from '../../utils/tv'
7
7
 
8
- export const popoverStyles = tv({
8
+ export const popoverStyles = /* @__PURE__ */ tv({
9
9
  slots: {
10
10
  content: [
11
11
  popover,
@@ -1,7 +1,7 @@
1
1
  import type { StylesEntry } from '../../utils/registry'
2
2
  import { tv, type VariantProps } from '../../utils/tv'
3
3
 
4
- export const progressStyles = tv({
4
+ export const progressStyles = /* @__PURE__ */ tv({
5
5
  slots: {
6
6
  root: 'grid w-full gap-1.5',
7
7
  header: 'flex items-baseline justify-between gap-3 text-small',
@@ -32,7 +32,7 @@ export const progressStyles = tv({
32
32
 
33
33
  export type ProgressVariants = VariantProps<typeof progressStyles>
34
34
 
35
- export const progressCircleStyles = tv({
35
+ export const progressCircleStyles = /* @__PURE__ */ tv({
36
36
  slots: {
37
37
  root: 'relative inline-flex shrink-0 items-center justify-center',
38
38
  svg: 'size-full -rotate-90',
@@ -8,7 +8,7 @@ import { tv, type VariantProps } from '../../utils/tv'
8
8
  * Element styles for long-form content. Every value comes from theme tokens, so articles
9
9
  * pick up the theme's display font, type scale, colors and radius.
10
10
  */
11
- export const proseStyles = tv({
11
+ export const proseStyles = /* @__PURE__ */ tv({
12
12
  slots: {
13
13
  base: [
14
14
  'text-foreground [&>:first-child]:mt-0 [&>:last-child]:mb-0',
@@ -8,7 +8,7 @@ const control = [
8
8
  transition,
9
9
  ]
10
10
 
11
- export const radioGroupStyles = tv({
11
+ export const radioGroupStyles = /* @__PURE__ */ tv({
12
12
  slots: {
13
13
  root: '',
14
14
  option: 'flex items-start gap-2.5',
@@ -1,7 +1,7 @@
1
1
  import type { StylesEntry } from '../../utils/registry'
2
2
  import { tv, type VariantProps } from '../../utils/tv'
3
3
 
4
- export const resizableStyles = tv({
4
+ export const resizableStyles = /* @__PURE__ */ tv({
5
5
  slots: {
6
6
  group: 'flex h-full w-full data-[panel-group-direction=vertical]:flex-col',
7
7
  panel: 'min-w-0',
@@ -5,7 +5,7 @@ import type { StylesEntry } from '../../utils/registry'
5
5
  import { focusRing } from '../../utils/styles'
6
6
  import { tv } from '../../utils/tv'
7
7
 
8
- export const scrollAreaStyles = tv({
8
+ export const scrollAreaStyles = /* @__PURE__ */ tv({
9
9
  slots: {
10
10
  root: 'relative overflow-hidden',
11
11
  viewport: ['size-full rounded-[inherit]', focusRing],
@@ -2,7 +2,7 @@ import { Slot } from 'radix-ui'
2
2
  import type { ComponentProps } from 'react'
3
3
  import { tv, type VariantProps } from '../../utils/tv'
4
4
 
5
- export const sectionStyles = tv({
5
+ export const sectionStyles = /* @__PURE__ */ tv({
6
6
  base: 'w-full',
7
7
  variants: {
8
8
  spacing: {