@nanisoft/prism-ui 0.5.0 → 0.6.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 (303) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -0
  3. package/THIRD-PARTY-NOTICES.md +48 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/blocks/app-shell-01/app-shell.d.ts +38 -0
  6. package/dist/blocks/app-shell-01/app-shell.d.ts.map +1 -0
  7. package/dist/blocks/app-shell-01/app-shell.js +27 -0
  8. package/dist/blocks/app-shell-01/index.d.ts +3 -0
  9. package/dist/blocks/app-shell-01/index.d.ts.map +1 -0
  10. package/dist/blocks/app-shell-01/index.js +1 -0
  11. package/dist/blocks/auth-form-01/auth-form.d.ts +52 -0
  12. package/dist/blocks/auth-form-01/auth-form.d.ts.map +1 -0
  13. package/dist/blocks/auth-form-01/auth-form.js +23 -0
  14. package/dist/blocks/auth-form-01/index.d.ts +3 -0
  15. package/dist/blocks/auth-form-01/index.d.ts.map +1 -0
  16. package/dist/blocks/auth-form-01/index.js +1 -0
  17. package/dist/blocks/cta-01/cta.d.ts +83 -0
  18. package/dist/blocks/cta-01/cta.d.ts.map +1 -0
  19. package/dist/blocks/cta-01/cta.js +29 -0
  20. package/dist/blocks/cta-01/index.d.ts +3 -0
  21. package/dist/blocks/cta-01/index.d.ts.map +1 -0
  22. package/dist/blocks/cta-01/index.js +1 -0
  23. package/dist/blocks/data-table-01/data-table.d.ts +102 -0
  24. package/dist/blocks/data-table-01/data-table.d.ts.map +1 -0
  25. package/dist/blocks/data-table-01/data-table.js +116 -0
  26. package/dist/blocks/data-table-01/index.d.ts +3 -0
  27. package/dist/blocks/data-table-01/index.d.ts.map +1 -0
  28. package/dist/blocks/data-table-01/index.js +1 -0
  29. package/dist/blocks/feature-grid-01/feature-grid.d.ts +78 -0
  30. package/dist/blocks/feature-grid-01/feature-grid.d.ts.map +1 -0
  31. package/dist/blocks/feature-grid-01/feature-grid.js +24 -0
  32. package/dist/blocks/feature-grid-01/index.d.ts +3 -0
  33. package/dist/blocks/feature-grid-01/index.d.ts.map +1 -0
  34. package/dist/blocks/feature-grid-01/index.js +1 -0
  35. package/dist/blocks/hero-01/hero.d.ts +59 -0
  36. package/dist/blocks/hero-01/hero.d.ts.map +1 -0
  37. package/dist/blocks/hero-01/hero.js +24 -0
  38. package/dist/blocks/hero-01/index.d.ts +2 -0
  39. package/dist/blocks/hero-01/index.d.ts.map +1 -0
  40. package/dist/blocks/hero-01/index.js +1 -0
  41. package/dist/blocks/index.d.ts +28 -0
  42. package/dist/blocks/index.d.ts.map +1 -0
  43. package/dist/blocks/index.js +26 -0
  44. package/dist/blocks/instrument-panel-01/index.d.ts +3 -0
  45. package/dist/blocks/instrument-panel-01/index.d.ts.map +1 -0
  46. package/dist/blocks/instrument-panel-01/index.js +1 -0
  47. package/dist/blocks/instrument-panel-01/instrument-panel.d.ts +114 -0
  48. package/dist/blocks/instrument-panel-01/instrument-panel.d.ts.map +1 -0
  49. package/dist/blocks/instrument-panel-01/instrument-panel.js +64 -0
  50. package/dist/blocks/logo-strip-01/index.d.ts +3 -0
  51. package/dist/blocks/logo-strip-01/index.d.ts.map +1 -0
  52. package/dist/blocks/logo-strip-01/index.js +1 -0
  53. package/dist/blocks/logo-strip-01/logo-strip.d.ts +84 -0
  54. package/dist/blocks/logo-strip-01/logo-strip.d.ts.map +1 -0
  55. package/dist/blocks/logo-strip-01/logo-strip.js +40 -0
  56. package/dist/blocks/note-grid-01/index.d.ts +3 -0
  57. package/dist/blocks/note-grid-01/index.d.ts.map +1 -0
  58. package/dist/blocks/note-grid-01/index.js +1 -0
  59. package/dist/blocks/note-grid-01/note-grid.d.ts +79 -0
  60. package/dist/blocks/note-grid-01/note-grid.d.ts.map +1 -0
  61. package/dist/blocks/note-grid-01/note-grid.js +37 -0
  62. package/dist/blocks/page-header-01/index.d.ts +3 -0
  63. package/dist/blocks/page-header-01/index.d.ts.map +1 -0
  64. package/dist/blocks/page-header-01/index.js +1 -0
  65. package/dist/blocks/page-header-01/page-header.d.ts +48 -0
  66. package/dist/blocks/page-header-01/page-header.d.ts.map +1 -0
  67. package/dist/blocks/page-header-01/page-header.js +27 -0
  68. package/dist/blocks/pricing-01/index.d.ts +2 -0
  69. package/dist/blocks/pricing-01/index.d.ts.map +1 -0
  70. package/dist/blocks/pricing-01/index.js +1 -0
  71. package/dist/blocks/pricing-01/pricing.d.ts +35 -0
  72. package/dist/blocks/pricing-01/pricing.d.ts.map +1 -0
  73. package/dist/blocks/pricing-01/pricing.js +20 -0
  74. package/dist/blocks/process-rail-01/index.d.ts +3 -0
  75. package/dist/blocks/process-rail-01/index.d.ts.map +1 -0
  76. package/dist/blocks/process-rail-01/index.js +1 -0
  77. package/dist/blocks/process-rail-01/process-rail.d.ts +99 -0
  78. package/dist/blocks/process-rail-01/process-rail.d.ts.map +1 -0
  79. package/dist/blocks/process-rail-01/process-rail.js +58 -0
  80. package/dist/blocks/product-grid-01/index.d.ts +3 -0
  81. package/dist/blocks/product-grid-01/index.d.ts.map +1 -0
  82. package/dist/blocks/product-grid-01/index.js +1 -0
  83. package/dist/blocks/product-grid-01/product-grid.d.ts +114 -0
  84. package/dist/blocks/product-grid-01/product-grid.d.ts.map +1 -0
  85. package/dist/blocks/product-grid-01/product-grid.js +51 -0
  86. package/dist/blocks/settings-panel-01/index.d.ts +3 -0
  87. package/dist/blocks/settings-panel-01/index.d.ts.map +1 -0
  88. package/dist/blocks/settings-panel-01/index.js +1 -0
  89. package/dist/blocks/settings-panel-01/settings-panel.d.ts +71 -0
  90. package/dist/blocks/settings-panel-01/settings-panel.d.ts.map +1 -0
  91. package/dist/blocks/settings-panel-01/settings-panel.js +38 -0
  92. package/dist/blocks/site-footer/index.d.ts +3 -0
  93. package/dist/blocks/site-footer/index.d.ts.map +1 -0
  94. package/dist/blocks/site-footer/index.js +1 -0
  95. package/dist/blocks/site-footer/site-footer.d.ts +135 -0
  96. package/dist/blocks/site-footer/site-footer.d.ts.map +1 -0
  97. package/dist/blocks/site-footer/site-footer.js +41 -0
  98. package/dist/blocks/site-header/index.d.ts +3 -0
  99. package/dist/blocks/site-header/index.d.ts.map +1 -0
  100. package/dist/blocks/site-header/index.js +1 -0
  101. package/dist/blocks/site-header/site-header.d.ts +142 -0
  102. package/dist/blocks/site-header/site-header.d.ts.map +1 -0
  103. package/dist/blocks/site-header/site-header.js +46 -0
  104. package/dist/blocks/stack-grid-01/index.d.ts +3 -0
  105. package/dist/blocks/stack-grid-01/index.d.ts.map +1 -0
  106. package/dist/blocks/stack-grid-01/index.js +1 -0
  107. package/dist/blocks/stack-grid-01/stack-grid.d.ts +118 -0
  108. package/dist/blocks/stack-grid-01/stack-grid.d.ts.map +1 -0
  109. package/dist/blocks/stack-grid-01/stack-grid.js +49 -0
  110. package/dist/blocks/stats-01/index.d.ts +2 -0
  111. package/dist/blocks/stats-01/index.d.ts.map +1 -0
  112. package/dist/blocks/stats-01/index.js +1 -0
  113. package/dist/blocks/stats-01/stats.d.ts +28 -0
  114. package/dist/blocks/stats-01/stats.d.ts.map +1 -0
  115. package/dist/blocks/stats-01/stats.js +27 -0
  116. package/dist/blocks/status-ledger-01/index.d.ts +3 -0
  117. package/dist/blocks/status-ledger-01/index.d.ts.map +1 -0
  118. package/dist/blocks/status-ledger-01/index.js +1 -0
  119. package/dist/blocks/status-ledger-01/status-ledger.d.ts +131 -0
  120. package/dist/blocks/status-ledger-01/status-ledger.d.ts.map +1 -0
  121. package/dist/blocks/status-ledger-01/status-ledger.js +80 -0
  122. package/dist/catalog.d.ts +28 -0
  123. package/dist/catalog.d.ts.map +1 -0
  124. package/dist/catalog.js +672 -0
  125. package/dist/components/index.d.ts +64 -0
  126. package/dist/components/index.d.ts.map +1 -0
  127. package/dist/components/index.js +43 -0
  128. package/dist/components/ui/accordion.d.ts +65 -0
  129. package/dist/components/ui/accordion.d.ts.map +1 -0
  130. package/dist/components/ui/accordion.js +30 -0
  131. package/dist/components/ui/alert.d.ts +19 -0
  132. package/dist/components/ui/alert.d.ts.map +1 -0
  133. package/dist/components/ui/alert.js +31 -0
  134. package/dist/components/ui/avatar.d.ts +47 -0
  135. package/dist/components/ui/avatar.d.ts.map +1 -0
  136. package/dist/components/ui/avatar.js +30 -0
  137. package/dist/components/ui/badge.d.ts +14 -0
  138. package/dist/components/ui/badge.d.ts.map +1 -0
  139. package/dist/components/ui/badge.js +26 -0
  140. package/dist/components/ui/breadcrumb.d.ts +35 -0
  141. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  142. package/dist/components/ui/breadcrumb.js +48 -0
  143. package/dist/components/ui/button.d.ts +16 -0
  144. package/dist/components/ui/button.d.ts.map +1 -0
  145. package/dist/components/ui/button.js +63 -0
  146. package/dist/components/ui/card.d.ts +41 -0
  147. package/dist/components/ui/card.d.ts.map +1 -0
  148. package/dist/components/ui/card.js +53 -0
  149. package/dist/components/ui/checkbox.d.ts +43 -0
  150. package/dist/components/ui/checkbox.d.ts.map +1 -0
  151. package/dist/components/ui/checkbox.js +18 -0
  152. package/dist/components/ui/cta-link.d.ts +45 -0
  153. package/dist/components/ui/cta-link.d.ts.map +1 -0
  154. package/dist/components/ui/cta-link.js +81 -0
  155. package/dist/components/ui/diagram.d.ts +154 -0
  156. package/dist/components/ui/diagram.d.ts.map +1 -0
  157. package/dist/components/ui/diagram.js +150 -0
  158. package/dist/components/ui/dialog.d.ts +81 -0
  159. package/dist/components/ui/dialog.d.ts.map +1 -0
  160. package/dist/components/ui/dialog.js +60 -0
  161. package/dist/components/ui/dropdown-menu.d.ts +189 -0
  162. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  163. package/dist/components/ui/dropdown-menu.js +67 -0
  164. package/dist/components/ui/fact-list.d.ts +90 -0
  165. package/dist/components/ui/fact-list.d.ts.map +1 -0
  166. package/dist/components/ui/fact-list.js +38 -0
  167. package/dist/components/ui/field.d.ts +36 -0
  168. package/dist/components/ui/field.d.ts.map +1 -0
  169. package/dist/components/ui/field.js +46 -0
  170. package/dist/components/ui/input.d.ts +12 -0
  171. package/dist/components/ui/input.d.ts.map +1 -0
  172. package/dist/components/ui/input.js +14 -0
  173. package/dist/components/ui/kbd.d.ts +10 -0
  174. package/dist/components/ui/kbd.d.ts.map +1 -0
  175. package/dist/components/ui/kbd.js +12 -0
  176. package/dist/components/ui/pagination.d.ts +40 -0
  177. package/dist/components/ui/pagination.d.ts.map +1 -0
  178. package/dist/components/ui/pagination.js +49 -0
  179. package/dist/components/ui/popover.d.ts +56 -0
  180. package/dist/components/ui/popover.d.ts.map +1 -0
  181. package/dist/components/ui/popover.js +25 -0
  182. package/dist/components/ui/product-mark.d.ts +115 -0
  183. package/dist/components/ui/product-mark.d.ts.map +1 -0
  184. package/dist/components/ui/product-mark.js +82 -0
  185. package/dist/components/ui/product-switcher.d.ts +108 -0
  186. package/dist/components/ui/product-switcher.d.ts.map +1 -0
  187. package/dist/components/ui/product-switcher.js +47 -0
  188. package/dist/components/ui/progress.d.ts +38 -0
  189. package/dist/components/ui/progress.d.ts.map +1 -0
  190. package/dist/components/ui/progress.js +17 -0
  191. package/dist/components/ui/prose.d.ts +88 -0
  192. package/dist/components/ui/prose.d.ts.map +1 -0
  193. package/dist/components/ui/prose.js +53 -0
  194. package/dist/components/ui/radio-group.d.ts +66 -0
  195. package/dist/components/ui/radio-group.d.ts.map +1 -0
  196. package/dist/components/ui/radio-group.js +30 -0
  197. package/dist/components/ui/section.d.ts +60 -0
  198. package/dist/components/ui/section.d.ts.map +1 -0
  199. package/dist/components/ui/section.js +21 -0
  200. package/dist/components/ui/select.d.ts +124 -0
  201. package/dist/components/ui/select.d.ts.map +1 -0
  202. package/dist/components/ui/select.js +47 -0
  203. package/dist/components/ui/separator.d.ts +16 -0
  204. package/dist/components/ui/separator.d.ts.map +1 -0
  205. package/dist/components/ui/separator.js +15 -0
  206. package/dist/components/ui/skeleton.d.ts +12 -0
  207. package/dist/components/ui/skeleton.d.ts.map +1 -0
  208. package/dist/components/ui/skeleton.js +14 -0
  209. package/dist/components/ui/slider.d.ts +43 -0
  210. package/dist/components/ui/slider.d.ts.map +1 -0
  211. package/dist/components/ui/slider.js +23 -0
  212. package/dist/components/ui/switch.d.ts +42 -0
  213. package/dist/components/ui/switch.d.ts.map +1 -0
  214. package/dist/components/ui/switch.js +16 -0
  215. package/dist/components/ui/table.d.ts +27 -0
  216. package/dist/components/ui/table.d.ts.map +1 -0
  217. package/dist/components/ui/table.js +43 -0
  218. package/dist/components/ui/tabs.d.ts +66 -0
  219. package/dist/components/ui/tabs.d.ts.map +1 -0
  220. package/dist/components/ui/tabs.js +29 -0
  221. package/dist/components/ui/textarea.d.ts +11 -0
  222. package/dist/components/ui/textarea.d.ts.map +1 -0
  223. package/dist/components/ui/textarea.js +13 -0
  224. package/dist/components/ui/tooltip.d.ts +63 -0
  225. package/dist/components/ui/tooltip.d.ts.map +1 -0
  226. package/dist/components/ui/tooltip.js +25 -0
  227. package/dist/components/ui/typography.d.ts +32 -0
  228. package/dist/components/ui/typography.d.ts.map +1 -0
  229. package/dist/components/ui/typography.js +51 -0
  230. package/dist/index.d.ts +79 -0
  231. package/dist/index.d.ts.map +1 -0
  232. package/dist/index.js +68 -0
  233. package/dist/lib/utils.d.ts +3 -0
  234. package/dist/lib/utils.d.ts.map +1 -0
  235. package/dist/lib/utils.js +5 -0
  236. package/dist/pages/auth-page/index.d.ts +36 -0
  237. package/dist/pages/auth-page/index.d.ts.map +1 -0
  238. package/dist/pages/auth-page/index.js +23 -0
  239. package/dist/pages/blog-post-page/index.d.ts +174 -0
  240. package/dist/pages/blog-post-page/index.d.ts.map +1 -0
  241. package/dist/pages/blog-post-page/index.js +49 -0
  242. package/dist/pages/dashboard-page/index.d.ts +36 -0
  243. package/dist/pages/dashboard-page/index.d.ts.map +1 -0
  244. package/dist/pages/dashboard-page/index.js +24 -0
  245. package/dist/pages/index.d.ts +21 -0
  246. package/dist/pages/index.d.ts.map +1 -0
  247. package/dist/pages/index.js +14 -0
  248. package/dist/pages/marketing-page/index.d.ts +43 -0
  249. package/dist/pages/marketing-page/index.d.ts.map +1 -0
  250. package/dist/pages/marketing-page/index.js +25 -0
  251. package/dist/pages/not-found-page/index.d.ts +112 -0
  252. package/dist/pages/not-found-page/index.d.ts.map +1 -0
  253. package/dist/pages/not-found-page/index.js +46 -0
  254. package/dist/pages/settings-page/index.d.ts +47 -0
  255. package/dist/pages/settings-page/index.d.ts.map +1 -0
  256. package/dist/pages/settings-page/index.js +24 -0
  257. package/dist/provider/index.d.ts +12 -0
  258. package/dist/provider/index.d.ts.map +1 -0
  259. package/dist/provider/index.js +9 -0
  260. package/dist/provider/provider.d.ts +42 -0
  261. package/dist/provider/provider.d.ts.map +1 -0
  262. package/dist/provider/provider.js +178 -0
  263. package/dist/provider/theme-script.d.ts +55 -0
  264. package/dist/provider/theme-script.d.ts.map +1 -0
  265. package/dist/provider/theme-script.js +79 -0
  266. package/dist/styles.css +2894 -0
  267. package/dist/theming/index.d.ts +173 -0
  268. package/dist/theming/index.d.ts.map +1 -0
  269. package/dist/theming/index.js +186 -0
  270. package/package.json +89 -18
  271. package/components.json +0 -21
  272. package/public/r/badge.json +0 -26
  273. package/public/r/button.json +0 -26
  274. package/public/r/card.json +0 -25
  275. package/public/r/cta-01.json +0 -44
  276. package/public/r/feature-grid-01.json +0 -44
  277. package/public/r/hero-01.json +0 -44
  278. package/public/r/pricing-01.json +0 -46
  279. package/public/r/registry.json +0 -294
  280. package/public/r/section.json +0 -25
  281. package/public/r/stats-01.json +0 -44
  282. package/registry.json +0 -294
  283. package/src/components/ds/blocks/cta-01/block.json +0 -8
  284. package/src/components/ds/blocks/cta-01/cta.tsx +0 -62
  285. package/src/components/ds/blocks/cta-01/index.tsx +0 -1
  286. package/src/components/ds/blocks/feature-grid-01/block.json +0 -8
  287. package/src/components/ds/blocks/feature-grid-01/feature-grid.tsx +0 -69
  288. package/src/components/ds/blocks/feature-grid-01/index.tsx +0 -1
  289. package/src/components/ds/blocks/hero-01/block.json +0 -8
  290. package/src/components/ds/blocks/hero-01/hero.tsx +0 -85
  291. package/src/components/ds/blocks/hero-01/index.tsx +0 -1
  292. package/src/components/ds/blocks/pricing-01/block.json +0 -8
  293. package/src/components/ds/blocks/pricing-01/index.tsx +0 -1
  294. package/src/components/ds/blocks/pricing-01/pricing.tsx +0 -122
  295. package/src/components/ds/blocks/section.meta.json +0 -6
  296. package/src/components/ds/blocks/section.tsx +0 -86
  297. package/src/components/ds/blocks/stats-01/block.json +0 -8
  298. package/src/components/ds/blocks/stats-01/index.tsx +0 -1
  299. package/src/components/ds/blocks/stats-01/stats.tsx +0 -92
  300. package/src/components/ui/badge.tsx +0 -37
  301. package/src/components/ui/button.tsx +0 -77
  302. package/src/components/ui/card.tsx +0 -65
  303. package/src/lib/utils.ts +0 -6
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Every Prism component, one export list.
3
+ *
4
+ * Consumers who want a single item import `@nanisoft/prism-ui/components/<name>`;
5
+ * this barrel is the convenience entry for an app that uses most of the set.
6
+ * Compound parts stay inside their parent module (ticket 07): `Card` ships its
7
+ * header, title, description, content and footer here, and there is no
8
+ * `components/card-header` subpath.
9
+ */
10
+ export { Button } from './ui/button';
11
+ export { CtaLink } from './ui/cta-link';
12
+ export { Badge } from './ui/badge';
13
+ export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, } from './ui/card';
14
+ export { Section, SectionHeading } from './ui/section';
15
+ export type { HeadingLevel } from './ui/section';
16
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, } from './ui/breadcrumb';
17
+ export { Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationPrevious, PaginationNext, PaginationEllipsis, } from './ui/pagination';
18
+ export { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, } from './ui/field';
19
+ export { Input } from './ui/input';
20
+ export { Textarea } from './ui/textarea';
21
+ export { Alert, AlertTitle, AlertDescription } from './ui/alert';
22
+ export { Skeleton } from './ui/skeleton';
23
+ export { Separator } from './ui/separator';
24
+ export { Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption, } from './ui/table';
25
+ export { Heading, Text } from './ui/typography';
26
+ export type { HeadingElement } from './ui/typography';
27
+ export { Kbd } from './ui/kbd';
28
+ export { Diagram } from './ui/diagram';
29
+ export type { DiagramProps, DiagramNode, DiagramRelation } from './ui/diagram';
30
+ export { ProductMark } from './ui/product-mark';
31
+ export type { ProductMarkProps, ProductMarkSize } from './ui/product-mark';
32
+ export { Prose } from './ui/prose';
33
+ export type { ProseProps, ProseSize } from './ui/prose';
34
+ export { FactList } from './ui/fact-list';
35
+ export type { FactListProps, Fact } from './ui/fact-list';
36
+ export { ProductSwitcher } from './ui/product-switcher';
37
+ export type { ProductSwitcherProps, SwitcherProduct } from './ui/product-switcher';
38
+ export { Select, SelectTrigger, SelectValue, SelectContent, SelectItem, SelectGroup, SelectLabel, SelectSeparator, } from './ui/select';
39
+ export type { SelectProps, SelectTriggerProps, SelectValueProps } from './ui/select';
40
+ export { Checkbox } from './ui/checkbox';
41
+ export type { CheckboxProps } from './ui/checkbox';
42
+ export { RadioGroup, RadioGroupItem } from './ui/radio-group';
43
+ export type { RadioGroupProps, RadioGroupItemProps } from './ui/radio-group';
44
+ export { Switch } from './ui/switch';
45
+ export type { SwitchProps } from './ui/switch';
46
+ export { Slider } from './ui/slider';
47
+ export type { SliderProps } from './ui/slider';
48
+ export { Progress } from './ui/progress';
49
+ export type { ProgressProps } from './ui/progress';
50
+ export { Tooltip, TooltipTrigger, TooltipContent } from './ui/tooltip';
51
+ export type { TooltipProps, TooltipTriggerProps, TooltipContentProps } from './ui/tooltip';
52
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from './ui/accordion';
53
+ export type { AccordionProps, AccordionItemProps, AccordionTriggerProps, AccordionContentProps, } from './ui/accordion';
54
+ export { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose, } from './ui/dialog';
55
+ export type { DialogProps, DialogTriggerProps, DialogContentProps, DialogHeaderProps, DialogFooterProps, DialogTitleProps, DialogDescriptionProps, DialogCloseProps, } from './ui/dialog';
56
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuGroup, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, } from './ui/dropdown-menu';
57
+ export type { DropdownMenuProps, DropdownMenuTriggerProps, DropdownMenuContentProps, DropdownMenuItemProps, DropdownMenuCheckboxItemProps, DropdownMenuRadioGroupProps, DropdownMenuRadioItemProps, DropdownMenuLabelProps, DropdownMenuSeparatorProps, DropdownMenuGroupProps, DropdownMenuSubProps, DropdownMenuSubTriggerProps, DropdownMenuSubContentProps, } from './ui/dropdown-menu';
58
+ export { Popover, PopoverTrigger, PopoverContent } from './ui/popover';
59
+ export type { PopoverProps, PopoverTriggerProps, PopoverContentProps } from './ui/popover';
60
+ export { Tabs, TabsList, TabsTrigger, TabsContent } from './ui/tabs';
61
+ export type { TabsProps, TabsListProps, TabsTriggerProps, TabsContentProps } from './ui/tabs';
62
+ export { Avatar, AvatarImage, AvatarFallback } from './ui/avatar';
63
+ export type { AvatarProps, AvatarImageProps, AvatarFallbackProps } from './ui/avatar';
64
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Every Prism component, one export list.
3
+ *
4
+ * Consumers who want a single item import `@nanisoft/prism-ui/components/<name>`;
5
+ * this barrel is the convenience entry for an app that uses most of the set.
6
+ * Compound parts stay inside their parent module (ticket 07): `Card` ships its
7
+ * header, title, description, content and footer here, and there is no
8
+ * `components/card-header` subpath.
9
+ */
10
+ export { Button } from './ui/button';
11
+ export { CtaLink } from './ui/cta-link';
12
+ export { Badge } from './ui/badge';
13
+ export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, } from './ui/card';
14
+ export { Section, SectionHeading } from './ui/section';
15
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, } from './ui/breadcrumb';
16
+ export { Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationPrevious, PaginationNext, PaginationEllipsis, } from './ui/pagination';
17
+ export { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, } from './ui/field';
18
+ export { Input } from './ui/input';
19
+ export { Textarea } from './ui/textarea';
20
+ export { Alert, AlertTitle, AlertDescription } from './ui/alert';
21
+ export { Skeleton } from './ui/skeleton';
22
+ export { Separator } from './ui/separator';
23
+ export { Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption, } from './ui/table';
24
+ export { Heading, Text } from './ui/typography';
25
+ export { Kbd } from './ui/kbd';
26
+ export { Diagram } from './ui/diagram';
27
+ export { ProductMark } from './ui/product-mark';
28
+ export { Prose } from './ui/prose';
29
+ export { FactList } from './ui/fact-list';
30
+ export { ProductSwitcher } from './ui/product-switcher';
31
+ export { Select, SelectTrigger, SelectValue, SelectContent, SelectItem, SelectGroup, SelectLabel, SelectSeparator, } from './ui/select';
32
+ export { Checkbox } from './ui/checkbox';
33
+ export { RadioGroup, RadioGroupItem } from './ui/radio-group';
34
+ export { Switch } from './ui/switch';
35
+ export { Slider } from './ui/slider';
36
+ export { Progress } from './ui/progress';
37
+ export { Tooltip, TooltipTrigger, TooltipContent } from './ui/tooltip';
38
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from './ui/accordion';
39
+ export { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose, } from './ui/dialog';
40
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuGroup, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, } from './ui/dropdown-menu';
41
+ export { Popover, PopoverTrigger, PopoverContent } from './ui/popover';
42
+ export { Tabs, TabsList, TabsTrigger, TabsContent } from './ui/tabs';
43
+ export { Avatar, AvatarImage, AvatarFallback } from './ui/avatar';
@@ -0,0 +1,65 @@
1
+ import type { ComponentProps } from 'react';
2
+ /**
3
+ * The props the Accordion root forwards to Base UI.
4
+ *
5
+ * Declared here rather than re-exported from Base UI so no upstream type
6
+ * crosses the package seam (ticket 07 section 6).
7
+ */
8
+ export interface AccordionProps extends Omit<ComponentProps<'div'>, 'onChange'> {
9
+ /** The open item values, when the accordion is controlled. */
10
+ value?: string[];
11
+ /** The item values open initially, for an uncontrolled accordion. */
12
+ defaultValue?: string[];
13
+ /** Called when the open set changes. */
14
+ onValueChange?: (value: string[]) => void;
15
+ /** Whether more than one item may be open at once. */
16
+ multiple?: boolean;
17
+ /** Whether every item ignores user interaction. */
18
+ disabled?: boolean;
19
+ /** Whether the browser's page search may expand a panel. */
20
+ hiddenUntilFound?: boolean;
21
+ /** Whether a closed panel stays in the DOM. */
22
+ keepMounted?: boolean;
23
+ }
24
+ /**
25
+ * The props the AccordionItem forwards to Base UI.
26
+ *
27
+ * Declared here rather than re-exported from Base UI so no upstream type
28
+ * crosses the package seam (ticket 07 section 6).
29
+ */
30
+ export interface AccordionItemProps extends Omit<ComponentProps<'div'>, 'onChange'> {
31
+ /** A stable value identifying this item within the accordion. */
32
+ value?: string;
33
+ /** Whether this item ignores user interaction. */
34
+ disabled?: boolean;
35
+ /** Called when this item opens or closes. */
36
+ onOpenChange?: (open: boolean) => void;
37
+ }
38
+ /** The props the AccordionTrigger forwards to Base UI. */
39
+ export interface AccordionTriggerProps extends ComponentProps<'button'> {
40
+ }
41
+ /** The props the AccordionContent forwards to Base UI. */
42
+ export interface AccordionContentProps extends ComponentProps<'div'> {
43
+ /** Whether the browser's page search may expand this panel. */
44
+ hiddenUntilFound?: boolean;
45
+ /** Whether the closed panel stays in the DOM. */
46
+ keepMounted?: boolean;
47
+ }
48
+ /**
49
+ * A stack of headers that each reveal a panel.
50
+ *
51
+ * The trigger is a real button and the panel is linked to it by the library,
52
+ * so Enter or Space opens the focused item and the header announces its
53
+ * expanded state. By default one item is open at a time; pass `multiple` to
54
+ * allow several. Use an Accordion to reveal a long answer in place, and a
55
+ * Tabs set when the sections are peers rather than a progression.
56
+ */
57
+ declare function Accordion({ className, ...props }: AccordionProps): import("react").JSX.Element;
58
+ /** One header-and-panel pair inside an Accordion. */
59
+ declare function AccordionItem({ className, ...props }: AccordionItemProps): import("react").JSX.Element;
60
+ /** The button that opens and closes its panel. */
61
+ declare function AccordionTrigger({ className, children, ...props }: AccordionTriggerProps): import("react").JSX.Element;
62
+ /** The panel an AccordionTrigger reveals. */
63
+ declare function AccordionContent({ className, ...props }: AccordionContentProps): import("react").JSX.Element;
64
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
65
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/ui/accordion.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC7E,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,wCAAwC;IACxC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACzC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACjF,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC;AAED,0DAA0D;AAC1D,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,QAAQ,CAAC;CAAG;AAE1E,0DAA0D;AAC1D,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAClE,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;;;;;GAQG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAQzD;AAED,qDAAqD;AACrD,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,+BAQjE;AAED,kDAAkD;AAClD,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,+BAkBjF;AAED,6CAA6C;AAC7C,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,+BAcvE;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Accordion as AccordionPrimitive } from '@base-ui/react/accordion';
4
+ import { ChevronDownIcon } from 'lucide-react';
5
+ import { cn } from '../../lib/utils';
6
+ /**
7
+ * A stack of headers that each reveal a panel.
8
+ *
9
+ * The trigger is a real button and the panel is linked to it by the library,
10
+ * so Enter or Space opens the focused item and the header announces its
11
+ * expanded state. By default one item is open at a time; pass `multiple` to
12
+ * allow several. Use an Accordion to reveal a long answer in place, and a
13
+ * Tabs set when the sections are peers rather than a progression.
14
+ */
15
+ function Accordion({ className, ...props }) {
16
+ return (_jsx(AccordionPrimitive.Root, { "data-slot": "accordion", className: cn('w-full', className), ...props }));
17
+ }
18
+ /** One header-and-panel pair inside an Accordion. */
19
+ function AccordionItem({ className, ...props }) {
20
+ return (_jsx(AccordionPrimitive.Item, { "data-slot": "accordion-item", className: cn('border-b border-border', className), ...props }));
21
+ }
22
+ /** The button that opens and closes its panel. */
23
+ function AccordionTrigger({ className, children, ...props }) {
24
+ return (_jsx(AccordionPrimitive.Header, { className: "flex", children: _jsxs(AccordionPrimitive.Trigger, { "data-slot": "accordion-trigger", className: cn('focus-visible:border-ring focus-visible:ring-ring flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium outline-none', 'transition-[color,box-shadow] duration-fast ease-out hover:underline focus-visible:ring-[3px]', 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), ...props, children: [children, _jsx(ChevronDownIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-base ease-out data-[panel-open]:rotate-180" })] }) }));
25
+ }
26
+ /** The panel an AccordionTrigger reveals. */
27
+ function AccordionContent({ className, ...props }) {
28
+ return (_jsx(AccordionPrimitive.Panel, { "data-slot": "accordion-content", className: cn('h-(--accordion-panel-height) overflow-hidden text-sm', 'transition-[height] duration-base ease-out data-[starting-style]:h-0 data-[ending-style]:h-0', className), ...props, children: _jsx("div", { className: "pt-0 pb-4", children: props.children }) }));
29
+ }
30
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
@@ -0,0 +1,19 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import type { ComponentProps } from 'react';
3
+ declare const alertVariants: (props?: ({
4
+ variant?: "default" | "destructive" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ /**
7
+ * A static callout that carries an important message.
8
+ *
9
+ * Renders a `<div role="alert">`, so it is announced when it enters the
10
+ * document. Compose it from `AlertTitle` and `AlertDescription`, and place a
11
+ * Lucide icon as the first child to add a visual marker.
12
+ */
13
+ declare function Alert({ className, variant, ...props }: ComponentProps<'div'> & VariantProps<typeof alertVariants>): import("react").JSX.Element;
14
+ /** The callout's short heading. */
15
+ declare function AlertTitle({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
16
+ /** The callout's supporting sentence. */
17
+ declare function AlertDescription({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
18
+ export { Alert, AlertTitle, AlertDescription };
19
+ //# sourceMappingURL=alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/components/ui/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C,QAAA,MAAM,aAAa;;8EAYlB,CAAA;AAED;;;;;;GAMG;AACH,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,+BAS5D;AAED,mCAAmC;AACnC,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,+BAWjE;AAED,yCAAyC;AACzC,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,+BAWvE;AAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from 'class-variance-authority';
3
+ import { cn } from '../../lib/utils';
4
+ const alertVariants = cva('relative grid w-full items-start gap-x-3 gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] [&>svg]:size-4 [&>svg]:translate-y-0.5', {
5
+ variants: {
6
+ variant: {
7
+ default: 'bg-card text-card-foreground',
8
+ destructive: 'border-destructive/40 text-destructive [&>svg]:text-destructive',
9
+ },
10
+ },
11
+ defaultVariants: { variant: 'default' },
12
+ });
13
+ /**
14
+ * A static callout that carries an important message.
15
+ *
16
+ * Renders a `<div role="alert">`, so it is announced when it enters the
17
+ * document. Compose it from `AlertTitle` and `AlertDescription`, and place a
18
+ * Lucide icon as the first child to add a visual marker.
19
+ */
20
+ function Alert({ className, variant, ...props }) {
21
+ return (_jsx("div", { "data-slot": "alert", role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
22
+ }
23
+ /** The callout's short heading. */
24
+ function AlertTitle({ className, ...props }) {
25
+ return (_jsx("div", { "data-slot": "alert-title", className: cn('col-start-2 min-h-4 font-medium tracking-tight', className), ...props }));
26
+ }
27
+ /** The callout's supporting sentence. */
28
+ function AlertDescription({ className, ...props }) {
29
+ return (_jsx("div", { "data-slot": "alert-description", className: cn('text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed', className), ...props }));
30
+ }
31
+ export { Alert, AlertTitle, AlertDescription };
@@ -0,0 +1,47 @@
1
+ import type { ComponentProps } from 'react';
2
+ /** The props the Avatar forwards to its Base UI root. */
3
+ export interface AvatarProps extends ComponentProps<'span'> {
4
+ }
5
+ /**
6
+ * The props the AvatarImage forwards to Base UI.
7
+ *
8
+ * Declared here rather than re-exported from Base UI so no upstream type
9
+ * crosses the package seam (ticket 07 section 6).
10
+ */
11
+ export interface AvatarImageProps extends ComponentProps<'img'> {
12
+ /** Called when the image loading status changes. */
13
+ onLoadingStatusChange?: (status: 'idle' | 'loading' | 'loaded' | 'error') => void;
14
+ /** Whether the image stays mounted and loads in place. @defaultValue false */
15
+ keepMounted?: boolean;
16
+ }
17
+ /**
18
+ * The props the AvatarFallback forwards to Base UI.
19
+ *
20
+ * Declared here rather than re-exported from Base UI so no upstream type
21
+ * crosses the package seam (ticket 07 section 6).
22
+ */
23
+ export interface AvatarFallbackProps extends ComponentProps<'span'> {
24
+ /** How long to wait before showing the fallback, in milliseconds. @defaultValue 0 */
25
+ delay?: number;
26
+ }
27
+ /**
28
+ * A person or entity's image, with initials as the fallback.
29
+ *
30
+ * Always render an `AvatarFallback`: it covers the moment before the image
31
+ * loads and the case where it never does, so the control is never an empty
32
+ * circle. Give `AvatarImage` a meaningful `alt`, or leave it empty when the
33
+ * adjacent name already identifies the person. Size the root with
34
+ * `className`; the image and fallback fill it.
35
+ */
36
+ declare function Avatar({ className, ...props }: AvatarProps): import("react").JSX.Element;
37
+ /** The Avatar's image. Renders an `<img>` and reports its loading status. */
38
+ declare function AvatarImage({ className, ...props }: AvatarImageProps): import("react").JSX.Element;
39
+ /**
40
+ * What the Avatar shows when the image is missing or still loading.
41
+ *
42
+ * Typically initials, but any short node works. It is only rendered while the
43
+ * image is unavailable, so it is not read twice by a screen reader.
44
+ */
45
+ declare function AvatarFallback({ className, ...props }: AvatarFallbackProps): import("react").JSX.Element;
46
+ export { Avatar, AvatarImage, AvatarFallback };
47
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/avatar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C,yDAAyD;AACzD,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,MAAM,CAAC;CAAG;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC7D,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAA;IACjF,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc,CAAC,MAAM,CAAC;IACjE,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;GAQG;AACH,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAWnD;AAED,6EAA6E;AAC7E,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,+BAQ7D;AAED;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,+BAWnE;AAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Avatar as AvatarPrimitive } from '@base-ui/react/avatar';
4
+ import { cn } from '../../lib/utils';
5
+ /**
6
+ * A person or entity's image, with initials as the fallback.
7
+ *
8
+ * Always render an `AvatarFallback`: it covers the moment before the image
9
+ * loads and the case where it never does, so the control is never an empty
10
+ * circle. Give `AvatarImage` a meaningful `alt`, or leave it empty when the
11
+ * adjacent name already identifies the person. Size the root with
12
+ * `className`; the image and fallback fill it.
13
+ */
14
+ function Avatar({ className, ...props }) {
15
+ return (_jsx(AvatarPrimitive.Root, { "data-slot": "avatar", className: cn('relative flex size-10 shrink-0 overflow-hidden rounded-full', className), ...props }));
16
+ }
17
+ /** The Avatar's image. Renders an `<img>` and reports its loading status. */
18
+ function AvatarImage({ className, ...props }) {
19
+ return (_jsx(AvatarPrimitive.Image, { "data-slot": "avatar-image", className: cn('aspect-square size-full object-cover', className), ...props }));
20
+ }
21
+ /**
22
+ * What the Avatar shows when the image is missing or still loading.
23
+ *
24
+ * Typically initials, but any short node works. It is only rendered while the
25
+ * image is unavailable, so it is not read twice by a screen reader.
26
+ */
27
+ function AvatarFallback({ className, ...props }) {
28
+ return (_jsx(AvatarPrimitive.Fallback, { "data-slot": "avatar-fallback", className: cn('bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-xs font-medium', className), ...props }));
29
+ }
30
+ export { Avatar, AvatarImage, AvatarFallback };
@@ -0,0 +1,14 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import type { ComponentProps } from 'react';
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "success" | "warning" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ /**
7
+ * A compact status or category label.
8
+ *
9
+ * Renders a `<span>`; `variant` selects the surface treatment and the default
10
+ * is the filled primary style.
11
+ */
12
+ declare function Badge({ className, variant, ...props }: ComponentProps<'span'> & VariantProps<typeof badgeVariants>): import("react").JSX.Element;
13
+ export { Badge };
14
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/components/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C,QAAA,MAAM,aAAa;;8EAelB,CAAA;AAED;;;;;GAKG;AACH,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,+BAQ7D;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from 'class-variance-authority';
3
+ import { cn } from '../../lib/utils';
4
+ const badgeVariants = cva('inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-md border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-colors', {
5
+ variants: {
6
+ variant: {
7
+ default: 'bg-primary text-primary-foreground border-transparent',
8
+ secondary: 'bg-secondary text-secondary-foreground border-transparent',
9
+ destructive: 'bg-destructive text-destructive-foreground border-transparent',
10
+ success: 'bg-success text-success-foreground border-transparent',
11
+ warning: 'bg-warning text-warning-foreground border-transparent',
12
+ outline: 'text-foreground border-border',
13
+ },
14
+ },
15
+ defaultVariants: { variant: 'default' },
16
+ });
17
+ /**
18
+ * A compact status or category label.
19
+ *
20
+ * Renders a `<span>`; `variant` selects the surface treatment and the default
21
+ * is the filled primary style.
22
+ */
23
+ function Badge({ className, variant, ...props }) {
24
+ return (_jsx("span", { "data-slot": "badge", className: cn(badgeVariants({ variant }), className), ...props }));
25
+ }
26
+ export { Badge };
@@ -0,0 +1,35 @@
1
+ import type { ComponentProps } from 'react';
2
+ /**
3
+ * The trail of ancestor links that shows where the current page sits.
4
+ *
5
+ * The root is a `<nav>` with an accessible name so the trail is announced as
6
+ * one region rather than as an unexplained list of links.
7
+ */
8
+ declare function Breadcrumb({ className, ...props }: ComponentProps<'nav'>): import("react").JSX.Element;
9
+ /** The ordered list that holds the trail's items and separators. */
10
+ declare function BreadcrumbList({ className, ...props }: ComponentProps<'ol'>): import("react").JSX.Element;
11
+ /** One step in the trail. Holds a link, the current page, or a separator. */
12
+ declare function BreadcrumbItem({ className, ...props }: ComponentProps<'li'>): import("react").JSX.Element;
13
+ /**
14
+ * A link to an ancestor page.
15
+ *
16
+ * Renders a native `<a>`; pass `href`. The consumer owns the destination, so a
17
+ * client router's link is composed here rather than baked in.
18
+ */
19
+ declare function BreadcrumbLink({ className, ...props }: ComponentProps<'a'>): import("react").JSX.Element;
20
+ /**
21
+ * The current page, which is text rather than a link.
22
+ *
23
+ * It carries `aria-current="page"` so assistive technology announces the trail's
24
+ * end instead of reading a dead link.
25
+ */
26
+ declare function BreadcrumbPage({ className, ...props }: ComponentProps<'span'>): import("react").JSX.Element;
27
+ /**
28
+ * The mark between two steps.
29
+ *
30
+ * Decorative by default, so it is hidden from assistive technology and does not
31
+ * enter the accessible name; pass `children` to replace the chevron.
32
+ */
33
+ declare function BreadcrumbSeparator({ children, className, ...props }: ComponentProps<'li'>): import("react").JSX.Element;
34
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, };
35
+ //# sourceMappingURL=breadcrumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/ui/breadcrumb.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,+BASjE;AAED,oEAAoE;AACpE,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,+BAWpE;AAED,6EAA6E;AAC7E,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,+BAQpE;AAED;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,+BAWnE;AAED;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,MAAM,CAAC,+BAStE;AAED;;;;;GAKG;AACH,iBAAS,mBAAmB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,IAAI,CAAC,+BAYtB;AAED,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,GACpB,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ChevronRight } from 'lucide-react';
3
+ import { cn } from '../../lib/utils';
4
+ /**
5
+ * The trail of ancestor links that shows where the current page sits.
6
+ *
7
+ * The root is a `<nav>` with an accessible name so the trail is announced as
8
+ * one region rather than as an unexplained list of links.
9
+ */
10
+ function Breadcrumb({ className, ...props }) {
11
+ return (_jsx("nav", { "aria-label": "Breadcrumb", "data-slot": "breadcrumb", className: cn(className), ...props }));
12
+ }
13
+ /** The ordered list that holds the trail's items and separators. */
14
+ function BreadcrumbList({ className, ...props }) {
15
+ return (_jsx("ol", { "data-slot": "breadcrumb-list", className: cn('text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5', className), ...props }));
16
+ }
17
+ /** One step in the trail. Holds a link, the current page, or a separator. */
18
+ function BreadcrumbItem({ className, ...props }) {
19
+ return (_jsx("li", { "data-slot": "breadcrumb-item", className: cn('inline-flex items-center gap-1.5', className), ...props }));
20
+ }
21
+ /**
22
+ * A link to an ancestor page.
23
+ *
24
+ * Renders a native `<a>`; pass `href`. The consumer owns the destination, so a
25
+ * client router's link is composed here rather than baked in.
26
+ */
27
+ function BreadcrumbLink({ className, ...props }) {
28
+ return (_jsx("a", { "data-slot": "breadcrumb-link", className: cn('hover:text-foreground rounded-sm outline-none transition-colors duration-fast ease-out focus-visible:ring-ring focus-visible:ring-[3px]', className), ...props }));
29
+ }
30
+ /**
31
+ * The current page, which is text rather than a link.
32
+ *
33
+ * It carries `aria-current="page"` so assistive technology announces the trail's
34
+ * end instead of reading a dead link.
35
+ */
36
+ function BreadcrumbPage({ className, ...props }) {
37
+ return (_jsx("span", { "data-slot": "breadcrumb-page", "aria-current": "page", className: cn('text-foreground font-normal', className), ...props }));
38
+ }
39
+ /**
40
+ * The mark between two steps.
41
+ *
42
+ * Decorative by default, so it is hidden from assistive technology and does not
43
+ * enter the accessible name; pass `children` to replace the chevron.
44
+ */
45
+ function BreadcrumbSeparator({ children, className, ...props }) {
46
+ return (_jsx("li", { "data-slot": "breadcrumb-separator", role: "presentation", "aria-hidden": "true", className: cn('[&>svg]:size-3.5', className), ...props, children: children ?? _jsx(ChevronRight, {}) }));
47
+ }
48
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, };
@@ -0,0 +1,16 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import type { ComponentProps } from 'react';
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ /**
8
+ * The primary action control.
9
+ *
10
+ * Renders a native `<button>` and takes the standard React button props plus
11
+ * `variant` and `size`. The coarse-pointer media query grows the target to 44px
12
+ * on touch input without changing the desktop metrics.
13
+ */
14
+ declare function Button({ className, variant, size, ...props }: ComponentProps<'button'> & VariantProps<typeof buttonVariants>): import("react").JSX.Element;
15
+ export { Button };
16
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C,QAAA,MAAM,cAAc;;;8EAsDnB,CAAA;AAED;;;;;;GAMG;AACH,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,+BAQhE;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,63 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from 'class-variance-authority';
3
+ import { cn } from '../../lib/utils';
4
+ const buttonVariants = cva(
5
+ // The focus ring is `ring-ring` at full strength, not shadcn's stock
6
+ // `focus-visible:ring-ring/50`. The token build pins `--ring` to a step that
7
+ // clears 3:1 against the surface, and half alpha throws that away: 50% of this
8
+ // ring composites to between 1.14:1 and 2.74:1 against every surface in all
9
+ // six themes and clears 3:1 in none of them, which fails WCAG 1.4.11 on the one
10
+ // indicator a keyboard user has. The stock value is kept here deliberately as a
11
+ // deviation from upstream: a consumer's button must not fail the threshold the
12
+ // ring exists to meet.
13
+ "inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium outline-none transition-[color,box-shadow,background-color] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:border-destructive", {
14
+ variants: {
15
+ variant: {
16
+ default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',
17
+ destructive: 'bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90',
18
+ outline: 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground',
19
+ secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',
20
+ ghost: 'hover:bg-accent hover:text-accent-foreground',
21
+ // `primary` is a surface token, not a text token: in the pastel themes it
22
+ // compiles to a light tint (e.g. #ec88a0) that fails 4.5:1 on the page
23
+ // background. Link text uses the foreground and keeps the underline as its
24
+ // affordance, so emphasis comes from weight rather than a failing colour.
25
+ link: 'text-foreground underline-offset-4 hover:underline',
26
+ },
27
+ // Touch targets are enlarged by input method, not by viewport. The
28
+ // metrics below are the designed desktop sizes and stay untouched for
29
+ // mouse and trackpad; only a coarse pointer — finger or stylus — gets
30
+ // the 44px iOS/Android HIG target. `pointer-coarse:` compiles to
31
+ // `@media (pointer: coarse)` inside `@layer utilities`, which lands
32
+ // after the base utility in the cascade, so it wins without needing
33
+ // `!important` or a specificity fight.
34
+ //
35
+ // `min-w-11` is what makes the second axis safe: an icon-only `default`
36
+ // is `size-4` plus `px-3` = 40px wide and an icon-only `sm` is `size-4`
37
+ // plus `px-2.5` = 36px, so growing the height alone would still leave
38
+ // both under 44px across. The coarse padding step on `default` lifts the
39
+ // common cases clear of the floor outright, and `min-w-11` backstops
40
+ // whatever content a consumer passes.
41
+ size: {
42
+ default: 'h-9 px-4 py-2 has-[>svg]:px-3 pointer-coarse:h-11 pointer-coarse:min-w-11 pointer-coarse:px-5 pointer-coarse:has-[>svg]:px-4',
43
+ sm: 'h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5 pointer-coarse:h-11 pointer-coarse:min-w-11',
44
+ lg: 'h-10 rounded-md px-6 has-[>svg]:px-4 pointer-coarse:h-11',
45
+ icon: 'size-9 pointer-coarse:size-11',
46
+ },
47
+ },
48
+ defaultVariants: {
49
+ variant: 'default',
50
+ size: 'default',
51
+ },
52
+ });
53
+ /**
54
+ * The primary action control.
55
+ *
56
+ * Renders a native `<button>` and takes the standard React button props plus
57
+ * `variant` and `size`. The coarse-pointer media query grows the target to 44px
58
+ * on touch input without changing the desktop metrics.
59
+ */
60
+ function Button({ className, variant, size, ...props }) {
61
+ return (_jsx("button", { "data-slot": "button", className: cn(buttonVariants({ variant, size, className })), ...props }));
62
+ }
63
+ export { Button };
@@ -0,0 +1,41 @@
1
+ import type { ComponentProps } from 'react';
2
+ /**
3
+ * A bordered surface for a small group of related content.
4
+ *
5
+ * Compose it from `CardHeader`, `CardTitle`, `CardDescription`, `CardContent`
6
+ * and `CardFooter`. Those parts ship from this module rather than as separate
7
+ * subpaths.
8
+ */
9
+ declare function Card({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
10
+ /**
11
+ * The head of a card: the row above the card's content.
12
+ *
13
+ * A part rather than an Item, and it stays inside this module: `CardHeader` is not
14
+ * a second catalogue entry, and DESIGN.md's authoring contract says compound parts
15
+ * ship from their parent module and do not form a second vocabulary.
16
+ */
17
+ declare function CardHeader({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
18
+ /**
19
+ * The card's title: the one line that names the group of related content.
20
+ *
21
+ * Renders a `div` rather than a heading, because a card's title is not always the
22
+ * heading of the region it sits in: four cards in a grid are four titles under one
23
+ * section heading, and four `h3`s under one `h2` is right while four `h2`s is
24
+ * four sections. Pass Prism's `Heading` inside it when the card is the only thing
25
+ * in its region and the outline should say so.
26
+ */
27
+ declare function CardTitle({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
28
+ /**
29
+ * The supporting line under a card's title: one sentence about what the card
30
+ * holds.
31
+ */
32
+ declare function CardDescription({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
33
+ /** The card's body: the content the title and description introduce. */
34
+ declare function CardContent({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
35
+ /**
36
+ * The foot of a card: the actions that belong to the card rather than to the
37
+ * page.
38
+ */
39
+ declare function CardFooter({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
40
+ export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter };
41
+ //# sourceMappingURL=card.d.ts.map