@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
@@ -1,244 +0,0 @@
1
- import { t as VariantProps } from "./tv-DuMh7UH2.js";
2
- import { ComponentProps, ReactNode } from "react";
3
- //#region src/components/button/button.styles.d.ts
4
- declare const buttonStyles: import("tailwind-variants").TVReturnType<{
5
- variant: {
6
- primary: {
7
- base: string;
8
- };
9
- secondary: {
10
- base: string;
11
- };
12
- outline: {
13
- base: string;
14
- };
15
- ghost: {
16
- base: string;
17
- };
18
- danger: {
19
- base: string;
20
- };
21
- link: {
22
- base: string;
23
- };
24
- };
25
- size: {
26
- sm: {
27
- base: string;
28
- icon: string;
29
- };
30
- md: {
31
- base: string;
32
- };
33
- lg: {
34
- base: string;
35
- icon: string;
36
- };
37
- };
38
- iconOnly: {
39
- true: {
40
- base: string;
41
- };
42
- };
43
- fullWidth: {
44
- true: {
45
- base: string;
46
- };
47
- };
48
- }, {
49
- base: string[];
50
- icon: string;
51
- }, undefined, {
52
- variant: {
53
- primary: {
54
- base: string;
55
- };
56
- secondary: {
57
- base: string;
58
- };
59
- outline: {
60
- base: string;
61
- };
62
- ghost: {
63
- base: string;
64
- };
65
- danger: {
66
- base: string;
67
- };
68
- link: {
69
- base: string;
70
- };
71
- };
72
- size: {
73
- sm: {
74
- base: string;
75
- icon: string;
76
- };
77
- md: {
78
- base: string;
79
- };
80
- lg: {
81
- base: string;
82
- icon: string;
83
- };
84
- };
85
- iconOnly: {
86
- true: {
87
- base: string;
88
- };
89
- };
90
- fullWidth: {
91
- true: {
92
- base: string;
93
- };
94
- };
95
- }, {
96
- base: string[];
97
- icon: string;
98
- }, import("tailwind-variants").TVReturnTypeLike<{
99
- variant: {
100
- primary: {
101
- base: string;
102
- };
103
- secondary: {
104
- base: string;
105
- };
106
- outline: {
107
- base: string;
108
- };
109
- ghost: {
110
- base: string;
111
- };
112
- danger: {
113
- base: string;
114
- };
115
- link: {
116
- base: string;
117
- };
118
- };
119
- size: {
120
- sm: {
121
- base: string;
122
- icon: string;
123
- };
124
- md: {
125
- base: string;
126
- };
127
- lg: {
128
- base: string;
129
- icon: string;
130
- };
131
- };
132
- iconOnly: {
133
- true: {
134
- base: string;
135
- };
136
- };
137
- fullWidth: {
138
- true: {
139
- base: string;
140
- };
141
- };
142
- }, {
143
- base: string[];
144
- icon: string;
145
- }>>;
146
- type ButtonVariants = VariantProps<typeof buttonStyles>;
147
- //#endregion
148
- //#region src/components/field/field.styles.d.ts
149
- declare const fieldStyles: import("tailwind-variants").TVReturnType<{
150
- orientation: {
151
- vertical: {};
152
- horizontal: {
153
- root: string;
154
- };
155
- };
156
- }, {
157
- root: string;
158
- label: string;
159
- labelRow: string;
160
- labelAction: string;
161
- required: string;
162
- text: string;
163
- description: string;
164
- error: string;
165
- }, undefined, {
166
- orientation: {
167
- vertical: {};
168
- horizontal: {
169
- root: string;
170
- };
171
- };
172
- }, {
173
- root: string;
174
- label: string;
175
- labelRow: string;
176
- labelAction: string;
177
- required: string;
178
- text: string;
179
- description: string;
180
- error: string;
181
- }, import("tailwind-variants").TVReturnTypeLike<{
182
- orientation: {
183
- vertical: {};
184
- horizontal: {
185
- root: string;
186
- };
187
- };
188
- }, {
189
- root: string;
190
- label: string;
191
- labelRow: string;
192
- labelAction: string;
193
- required: string;
194
- text: string;
195
- description: string;
196
- error: string;
197
- }>>;
198
- type FieldVariants = VariantProps<typeof fieldStyles>;
199
- //#endregion
200
- //#region src/components/button/button.d.ts
201
- interface ButtonProps extends ComponentProps<'button'>, ButtonVariants {
202
- /** Render the child element (e.g. a router link) with button styles instead of a `<button>`. */
203
- asChild?: boolean;
204
- /** Shows a spinner, disables the button and sets `aria-busy`. */
205
- loading?: boolean;
206
- leftIcon?: ReactNode;
207
- rightIcon?: ReactNode;
208
- }
209
- declare function Button(inProps: ButtonProps): import("react").JSX.Element;
210
- interface IconButtonProps extends Omit<ButtonProps, 'leftIcon' | 'rightIcon' | 'iconOnly' | 'fullWidth' | 'children'> {
211
- icon: ReactNode;
212
- /** Required: an icon-only button has no visible text. */
213
- 'aria-label': string;
214
- }
215
- /** A square button holding one icon. Shares Button's variants and theme overrides. */
216
- declare function IconButton({ icon, variant, ...props }: IconButtonProps): import("react").JSX.Element;
217
- //#endregion
218
- //#region src/components/field/field.d.ts
219
- interface FieldProps extends Omit<ComponentProps<'div'>, 'children'>, FieldVariants {
220
- label?: ReactNode;
221
- /**
222
- * Shown at the end of the label row, outside the label, so it is not part of the
223
- * control's accessible name. For example a "Forgot password?" link.
224
- */
225
- labelAction?: ReactNode;
226
- description?: ReactNode;
227
- /** Error message. Marks the control invalid and is announced to screen readers. */
228
- error?: ReactNode;
229
- required?: boolean;
230
- disabled?: boolean;
231
- /** Id for the control. Generated when omitted. */
232
- controlId?: string;
233
- children: ReactNode;
234
- }
235
- /**
236
- * Wraps one form control with its label, description and error, and wires the ARIA
237
- * attributes between them. Controls inside (Input, Select, Checkbox, ...) pick this up.
238
- *
239
- * `orientation="horizontal"` puts the control first with text beside it, for checkboxes
240
- * and switches.
241
- */
242
- declare function Field(inProps: FieldProps): import("react").JSX.Element;
243
- //#endregion
244
- export { IconButton as a, fieldStyles as c, ButtonProps as i, ButtonVariants as l, FieldProps as n, IconButtonProps as o, Button as r, FieldVariants as s, Field as t, buttonStyles as u };
@@ -1,288 +0,0 @@
1
- "use client";
2
- import { a as themedBorder, o as transition, r as focusRing, s as useComponentConfig, t as tv } from "./tv-DLbT66dC.js";
3
- import { c as AlertIcon, d as CheckIcon, g as InboxIcon, n as useFieldControl, o as Spinner, r as Button, v as MinusIcon } from "./field-context-7I-cWvvS.js";
4
- import { Checkbox } from "radix-ui";
5
- import { jsx, jsxs } from "react/jsx-runtime";
6
- //#region src/components/checkbox/checkbox.tsx
7
- const checkboxStyles = tv({ slots: {
8
- root: [
9
- "peer mt-0.5 inline-flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-xs border-input bg-surface text-primary-foreground shadow-xs",
10
- themedBorder,
11
- transition,
12
- focusRing,
13
- "hover:border-border-strong aria-invalid:border-danger",
14
- "data-[state=checked]:border-primary data-[state=checked]:bg-primary",
15
- "data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary",
16
- "disabled:cursor-not-allowed disabled:opacity-50"
17
- ],
18
- indicator: "flex items-center justify-center [&>svg]:size-3.5 [&>svg]:stroke-[3]"
19
- } });
20
- function Checkbox$1(inProps) {
21
- const [{ className, ...rest }, slots] = useComponentConfig("Checkbox", useFieldControl(inProps));
22
- const s = checkboxStyles();
23
- return /* @__PURE__ */ jsx(Checkbox.Root, {
24
- "data-slot": "checkbox",
25
- className: s.root({ class: [slots.root, className] }),
26
- ...rest,
27
- children: /* @__PURE__ */ jsx(Checkbox.Indicator, {
28
- className: s.indicator({ class: slots.indicator }),
29
- children: rest.checked === "indeterminate" ? /* @__PURE__ */ jsx(MinusIcon, {}) : /* @__PURE__ */ jsx(CheckIcon, {})
30
- })
31
- });
32
- }
33
- //#endregion
34
- //#region src/components/input/input.styles.ts
35
- /** Shared by Input, Textarea and the Select trigger so all fields look alike. */
36
- const fieldControl = [
37
- "w-full rounded-md border-input bg-surface text-foreground shadow-xs",
38
- themedBorder,
39
- transition,
40
- "hover:border-border-strong",
41
- "data-invalid:border-danger aria-invalid:border-danger"
42
- ];
43
- const inputStyles = tv({
44
- slots: {
45
- root: [
46
- ...fieldControl,
47
- "flex items-center gap-2 px-3",
48
- "focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/20",
49
- "data-invalid:focus-within:ring-danger/20",
50
- "has-[input:disabled]:cursor-not-allowed has-[input:disabled]:opacity-50"
51
- ],
52
- input: "h-full w-full min-w-0 bg-transparent text-foreground outline-none placeholder:text-faint-foreground disabled:cursor-not-allowed",
53
- adornment: "flex shrink-0 items-center text-faint-foreground [&>svg]:size-4"
54
- },
55
- variants: { size: {
56
- sm: { root: "h-(--glyph-control-sm) text-small" },
57
- md: { root: "h-(--glyph-control-md) text-small" },
58
- lg: { root: "h-(--glyph-control-lg) text-body" }
59
- } },
60
- defaultVariants: { size: "md" }
61
- });
62
- //#endregion
63
- //#region src/components/input/input.tsx
64
- function Input(inProps) {
65
- const [props, slots] = useComponentConfig("Input", useFieldControl(inProps));
66
- const { size, prefix, suffix, className, inputClassName, ...rest } = props;
67
- const s = inputStyles({ size });
68
- const invalid = rest["aria-invalid"] === true || rest["aria-invalid"] === "true";
69
- return /* @__PURE__ */ jsxs("div", {
70
- "data-slot": "input",
71
- "data-invalid": invalid || void 0,
72
- className: s.root({ class: [slots.root, className] }),
73
- children: [
74
- prefix && /* @__PURE__ */ jsx("span", {
75
- className: s.adornment({ class: slots.adornment }),
76
- children: prefix
77
- }),
78
- /* @__PURE__ */ jsx("input", {
79
- className: s.input({ class: [slots.input, inputClassName] }),
80
- ...rest
81
- }),
82
- suffix && /* @__PURE__ */ jsx("span", {
83
- className: s.adornment({ class: slots.adornment }),
84
- children: suffix
85
- })
86
- ]
87
- });
88
- }
89
- //#endregion
90
- //#region src/components/skeleton/skeleton.tsx
91
- const skeletonStyles = tv({ slots: { base: "animate-pulse rounded-sm bg-muted" } });
92
- /** Placeholder block shown while content loads. Size it with classes: `h-4 w-32`. */
93
- function Skeleton(inProps) {
94
- const [{ className, ...rest }, slots] = useComponentConfig("Skeleton", inProps);
95
- return /* @__PURE__ */ jsx("div", {
96
- "data-slot": "skeleton",
97
- "aria-hidden": "true",
98
- className: skeletonStyles().base({ class: [slots.base, className] }),
99
- ...rest
100
- });
101
- }
102
- //#endregion
103
- //#region src/components/table/table.tsx
104
- const tableStyles = tv({ slots: {
105
- wrapper: "relative w-full overflow-x-auto",
106
- table: "w-full caption-bottom border-collapse text-small tabular-nums",
107
- header: "[&_tr]:border-b [&_tr]:border-border",
108
- body: "[&_tr:last-child]:border-0",
109
- row: "border-b border-border transition-colors duration-(--glyph-duration-fast) hover:bg-muted/50 data-[state=selected]:bg-primary/6",
110
- head: "h-10 whitespace-nowrap px-3 first:pl-4 last:pr-4 text-left align-middle text-caption font-medium text-muted-foreground [&:has([role=checkbox])]:w-10 [&:has([role=checkbox])]:pr-0",
111
- cell: "px-3 py-2.5 align-middle first:pl-4 last:pr-4 [&:has([role=checkbox])]:pr-0",
112
- caption: "mt-3 text-small text-faint-foreground"
113
- } });
114
- const s = tableStyles();
115
- function useSlots() {
116
- return useComponentConfig("Table", {})[1];
117
- }
118
- /** Semantic table primitives styled by the theme. For sorting and pagination use DataTable. */
119
- function Table({ className, ...props }) {
120
- const slots = useSlots();
121
- return /* @__PURE__ */ jsx("div", {
122
- "data-slot": "table-wrapper",
123
- className: s.wrapper({ class: slots.wrapper }),
124
- children: /* @__PURE__ */ jsx("table", {
125
- "data-slot": "table",
126
- className: s.table({ class: [slots.table, className] }),
127
- ...props
128
- })
129
- });
130
- }
131
- function TableHeader({ className, ...props }) {
132
- const slots = useSlots();
133
- return /* @__PURE__ */ jsx("thead", {
134
- "data-slot": "table-header",
135
- className: s.header({ class: [slots.header, className] }),
136
- ...props
137
- });
138
- }
139
- function TableBody({ className, ...props }) {
140
- const slots = useSlots();
141
- return /* @__PURE__ */ jsx("tbody", {
142
- "data-slot": "table-body",
143
- className: s.body({ class: [slots.body, className] }),
144
- ...props
145
- });
146
- }
147
- function TableRow({ className, ...props }) {
148
- const slots = useSlots();
149
- return /* @__PURE__ */ jsx("tr", {
150
- "data-slot": "table-row",
151
- className: s.row({ class: [slots.row, className] }),
152
- ...props
153
- });
154
- }
155
- function TableHead({ className, ...props }) {
156
- const slots = useSlots();
157
- return /* @__PURE__ */ jsx("th", {
158
- "data-slot": "table-head",
159
- className: s.head({ class: [slots.head, className] }),
160
- ...props
161
- });
162
- }
163
- function TableCell({ className, ...props }) {
164
- const slots = useSlots();
165
- return /* @__PURE__ */ jsx("td", {
166
- "data-slot": "table-cell",
167
- className: s.cell({ class: [slots.cell, className] }),
168
- ...props
169
- });
170
- }
171
- function TableCaption({ className, ...props }) {
172
- const slots = useSlots();
173
- return /* @__PURE__ */ jsx("caption", {
174
- "data-slot": "table-caption",
175
- className: s.caption({ class: [slots.caption, className] }),
176
- ...props
177
- });
178
- }
179
- //#endregion
180
- //#region src/patterns/async/states.tsx
181
- const stateStyles = tv({
182
- slots: {
183
- root: "flex flex-col items-center justify-center gap-3 px-6 py-12 text-center",
184
- icon: "flex size-10 items-center justify-center rounded-md border border-border bg-surface text-muted-foreground shadow-xs [&>svg]:size-5",
185
- text: "grid max-w-sm gap-1",
186
- title: "text-body font-medium text-foreground",
187
- description: "text-small text-muted-foreground",
188
- action: "mt-1 flex items-center gap-2"
189
- },
190
- variants: { tone: {
191
- neutral: {},
192
- danger: { icon: "border-danger/30 bg-danger/10 text-danger" }
193
- } }
194
- });
195
- /** Shown when a list or page has no content yet. Say what will appear and how to add it. */
196
- function EmptyState(inProps) {
197
- const [props, slots] = useComponentConfig("EmptyState", inProps);
198
- const { icon = /* @__PURE__ */ jsx(InboxIcon, {}), title, description, action, className, ...rest } = props;
199
- const s = stateStyles({ tone: "neutral" });
200
- return /* @__PURE__ */ jsxs("div", {
201
- "data-slot": "empty-state",
202
- className: s.root({ class: [slots.root, className] }),
203
- ...rest,
204
- children: [
205
- /* @__PURE__ */ jsx("div", {
206
- className: s.icon({ class: slots.icon }),
207
- "aria-hidden": "true",
208
- children: icon
209
- }),
210
- /* @__PURE__ */ jsxs("div", {
211
- className: s.text({ class: slots.text }),
212
- children: [/* @__PURE__ */ jsx("p", {
213
- className: s.title({ class: slots.title }),
214
- children: title
215
- }), description && /* @__PURE__ */ jsx("p", {
216
- className: s.description({ class: slots.description }),
217
- children: description
218
- })]
219
- }),
220
- action && /* @__PURE__ */ jsx("div", {
221
- className: s.action({ class: slots.action }),
222
- children: action
223
- })
224
- ]
225
- });
226
- }
227
- function messageOf(error) {
228
- if (error instanceof Error) return error.message;
229
- if (typeof error === "string") return error;
230
- }
231
- /** Shown when loading failed. Explains what went wrong and offers a retry. */
232
- function ErrorState(inProps) {
233
- const [props, slots] = useComponentConfig("EmptyState", inProps);
234
- const { icon = /* @__PURE__ */ jsx(AlertIcon, {}), title = "Couldn’t load this", description, error, onRetry, action, className, ...rest } = props;
235
- const s = stateStyles({ tone: "danger" });
236
- const detail = description ?? messageOf(error);
237
- return /* @__PURE__ */ jsxs("div", {
238
- "data-slot": "error-state",
239
- role: "alert",
240
- className: s.root({ class: [slots.root, className] }),
241
- ...rest,
242
- children: [
243
- /* @__PURE__ */ jsx("div", {
244
- className: s.icon({ class: slots.icon }),
245
- "aria-hidden": "true",
246
- children: icon
247
- }),
248
- /* @__PURE__ */ jsxs("div", {
249
- className: s.text({ class: slots.text }),
250
- children: [/* @__PURE__ */ jsx("p", {
251
- className: s.title({ class: slots.title }),
252
- children: title
253
- }), detail && /* @__PURE__ */ jsx("p", {
254
- className: s.description({ class: slots.description }),
255
- children: detail
256
- })]
257
- }),
258
- (action || onRetry) && /* @__PURE__ */ jsxs("div", {
259
- className: s.action({ class: slots.action }),
260
- children: [onRetry && /* @__PURE__ */ jsx(Button, {
261
- variant: "outline",
262
- size: "sm",
263
- onClick: () => onRetry(),
264
- children: "Try again"
265
- }), action]
266
- })
267
- ]
268
- });
269
- }
270
- /** A centered spinner with a label, for content that has no natural skeleton. */
271
- function LoadingState({ label = "Loading…", className, ...props }) {
272
- const s = stateStyles();
273
- return /* @__PURE__ */ jsxs("div", {
274
- "data-slot": "loading-state",
275
- role: "status",
276
- className: s.root({ class: className }),
277
- ...props,
278
- children: [/* @__PURE__ */ jsx(Spinner, {
279
- size: "lg",
280
- className: "text-faint-foreground"
281
- }), /* @__PURE__ */ jsx("p", {
282
- className: s.description(),
283
- children: label
284
- })]
285
- });
286
- }
287
- //#endregion
288
- export { inputStyles as _, Table as a, TableCell as c, TableRow as d, tableStyles as f, fieldControl as g, Input as h, stateStyles as i, TableHead as l, skeletonStyles as m, ErrorState as n, TableBody as o, Skeleton as p, LoadingState as r, TableCaption as s, EmptyState as t, TableHeader as u, Checkbox$1 as v, checkboxStyles as y };
@@ -1,70 +0,0 @@
1
- "use client";
2
- import { textTokens } from "@glyphui/tokens";
3
- import { createContext, useContext } from "react";
4
- import { createTV } from "tailwind-variants";
5
- //#region src/provider/glyph-context.ts
6
- const GlyphContext = createContext(null);
7
- /** The active theme and app-level settings. Must be used under `GlyphProvider`. */
8
- function useGlyph() {
9
- const value = useContext(GlyphContext);
10
- if (!value) throw new Error("useGlyph must be used inside <GlyphProvider>.");
11
- return value;
12
- }
13
- /** The router-aware link component configured on `GlyphProvider`. */
14
- function useLinkComponent() {
15
- return useContext(GlyphContext)?.linkComponent ?? "a";
16
- }
17
- const neverActive = () => false;
18
- /**
19
- * Whether `href` is the current page, using the router passed to `GlyphProvider`.
20
- * Returns `explicit` when it is set, so an `active` prop always wins.
21
- */
22
- function useIsActive(href, options) {
23
- const isActive = useContext(GlyphContext)?.useIsActive ?? neverActive;
24
- const { explicit, ...matchOptions } = options ?? {};
25
- const matched = isActive(href ?? "", matchOptions);
26
- if (explicit !== void 0) return explicit;
27
- return href ? matched : false;
28
- }
29
- //#endregion
30
- //#region src/hooks/use-component-config.ts
31
- /**
32
- * Applies the theme's per-component settings (`theme.components[name]`):
33
- * fills unset variant props from `defaultVariants` and returns the extra slot classes.
34
- * Every styled component calls this first.
35
- */
36
- function useComponentConfig(name, props) {
37
- const override = (useContext(GlyphContext)?.theme)?.components[name];
38
- if (!override) return [props, {}];
39
- let merged = props;
40
- const defaults = override.defaultVariants;
41
- if (defaults) {
42
- merged = { ...props };
43
- for (const [key, value] of Object.entries(defaults)) if (merged[key] === void 0) merged[key] = value;
44
- }
45
- return [merged, override.className ?? {}];
46
- }
47
- //#endregion
48
- //#region src/utils/styles.ts
49
- /** Shared class fragments. Kept as literals so Tailwind's scanner picks them up. */
50
- const focusRing = "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background";
51
- const themedBorder = "border-(length:--glyph-border-width)";
52
- const transition = "transition-[color,background-color,border-color,box-shadow,transform,opacity] duration-(--glyph-duration-base) ease-standard";
53
- /** Popover surfaces: Select, Tooltip-like menus. */
54
- const popover = "z-50 overflow-hidden rounded-[min(var(--radius-md),var(--radius-lg))] border-(length:--glyph-border-width) border-border bg-raised text-foreground shadow-lg animate-pop-in";
55
- //#endregion
56
- //#region src/utils/tw-merge-config.ts
57
- /**
58
- * Teaches tailwind-merge about Glyph's custom utilities so `cn('text-h1', 'text-small')`
59
- * keeps only the last size instead of treating `text-h1` as a color.
60
- */
61
- const twMergeConfig = { extend: { theme: {
62
- text: [...textTokens],
63
- radius: ["pill"]
64
- } } };
65
- //#endregion
66
- //#region src/utils/tv.ts
67
- /** `tailwind-variants` preconfigured with Glyph's merge rules. All component styles use this. */
68
- const tv = createTV({ twMergeConfig });
69
- //#endregion
70
- export { themedBorder as a, GlyphContext as c, useIsActive as d, useLinkComponent as f, popover as i, neverActive as l, twMergeConfig as n, transition as o, focusRing as r, useComponentConfig as s, tv as t, useGlyph as u };