@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 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,QAAQ,CAAC;CAAG;AAEvE;;;;;GAKG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC/D;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACrD,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,4DAA4D;AAC5D,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,KAAK,CAAC;CAAG;AAEnE,4DAA4D;AAC5D,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,KAAK,CAAC;CAAG;AAEnE,iDAAiD;AACjD,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,IAAI,CAAC;CAAG;AAEjE,uDAAuD;AACvD,MAAM,WAAW,sBAAuB,SAAQ,cAAc,CAAC,GAAG,CAAC;CAAG;AAEtE,iDAAiD;AACjD,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,QAAQ,CAAC;CAAG;AAqBrE;;;;;;;;GAQG;AACH,iBAAS,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAExC;AAED,yCAAyC;AACzC,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,+BAcjE;AAED,qDAAqD;AACrD,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAe,EACf,eAAsB,EACtB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAgCpB;AAED,iDAAiD;AACjD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,+BAQ/D;AAED,gDAAgD;AAChD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,+BAW/D;AAED,0EAA0E;AAC1E,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,+BAQ7D;AAED,yCAAyC;AACzC,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,+BAQzE;AAED,gEAAgE;AAChE,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,+BAc7D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,WAAW,GACZ,CAAA"}
@@ -0,0 +1,60 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Dialog as DialogPrimitive } from '@base-ui/react/dialog';
4
+ import { XIcon } from 'lucide-react';
5
+ import { cn } from '../../lib/utils';
6
+ const VIEWPORT = {
7
+ center: 'fixed inset-0 z-50 flex items-center justify-center p-4',
8
+ top: 'fixed inset-x-0 top-0 z-50 flex justify-center',
9
+ bottom: 'fixed inset-x-0 bottom-0 z-50 flex justify-center',
10
+ left: 'fixed inset-y-0 left-0 z-50 flex',
11
+ right: 'fixed inset-y-0 right-0 z-50 flex',
12
+ };
13
+ const POPUP = {
14
+ center: 'w-full max-w-md rounded-xl border data-[starting-style]:scale-95 data-[ending-style]:scale-95',
15
+ top: 'w-full rounded-b-xl border-x border-b data-[starting-style]:-translate-y-4 data-[ending-style]:-translate-y-4',
16
+ bottom: 'w-full rounded-t-xl border-x border-t data-[starting-style]:translate-y-4 data-[ending-style]:translate-y-4',
17
+ left: 'h-full w-3/4 max-w-sm rounded-r-xl border-y border-r data-[starting-style]:-translate-x-4 data-[ending-style]:-translate-x-4',
18
+ right: 'h-full w-3/4 max-w-sm rounded-l-xl border-y border-l data-[starting-style]:translate-x-4 data-[ending-style]:translate-x-4',
19
+ };
20
+ /**
21
+ * A modal surface that interrupts the page.
22
+ *
23
+ * The dialog traps focus while it is open, locks page scroll, closes on
24
+ * Escape and on an outside press, and returns focus to its trigger when it
25
+ * closes. Always give it a `DialogTitle`, which names the dialog for every
26
+ * reader. Use a Dialog for a decision or a short task; for content that is
27
+ * not a task, use a Popover or navigate to a page.
28
+ */
29
+ function Dialog({ ...props }) {
30
+ return _jsx(DialogPrimitive.Root, { ...props });
31
+ }
32
+ /** The element that opens the dialog. */
33
+ function DialogTrigger({ className, ...props }) {
34
+ return (_jsx(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", className: cn('bg-background shadow-xs inline-flex h-9 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium outline-none', 'transition-[color,box-shadow,background-color] duration-fast ease-out', 'hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-[3px]', 'disabled:pointer-events-none disabled:opacity-50', className), ...props }));
35
+ }
36
+ /** The dialog panel, its backdrop and its portal. */
37
+ function DialogContent({ className, side = 'center', showCloseButton = true, children, ...props }) {
38
+ return (_jsxs(DialogPrimitive.Portal, { children: [_jsx(DialogPrimitive.Backdrop, { "data-slot": "dialog-backdrop", className: "bg-background/80 fixed inset-0 z-50 backdrop-blur-sm transition-opacity duration-base ease-out data-[starting-style]:opacity-0 data-[ending-style]:opacity-0" }), _jsx(DialogPrimitive.Viewport, { "data-slot": "dialog-viewport", className: VIEWPORT[side], children: _jsxs(DialogPrimitive.Popup, { "data-slot": "dialog-content", className: cn('bg-background shadow-md relative grid gap-4 p-6 outline-none', 'transition-[opacity,transform] duration-base ease-out data-[starting-style]:opacity-0 data-[ending-style]:opacity-0', POPUP[side], className), ...props, children: [children, showCloseButton ? (_jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", "aria-label": "Close", className: "ring-offset-background focus-visible:ring-ring absolute top-4 right-4 rounded-sm opacity-70 outline-none transition-opacity duration-fast ease-out hover:opacity-100 focus-visible:ring-[3px] disabled:pointer-events-none", children: _jsx(XIcon, { className: "size-4" }) })) : null] }) })] }));
39
+ }
40
+ /** The dialog's heading area, above the body. */
41
+ function DialogHeader({ className, ...props }) {
42
+ return (_jsx("div", { "data-slot": "dialog-header", className: cn('flex flex-col gap-1.5 text-center sm:text-left', className), ...props }));
43
+ }
44
+ /** The dialog's action area, below the body. */
45
+ function DialogFooter({ className, ...props }) {
46
+ return (_jsx("div", { "data-slot": "dialog-footer", className: cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className), ...props }));
47
+ }
48
+ /** The dialog's heading. It names the dialog for assistive technology. */
49
+ function DialogTitle({ className, ...props }) {
50
+ return (_jsx(DialogPrimitive.Title, { "data-slot": "dialog-title", className: cn('text-lg leading-none font-semibold tracking-tight', className), ...props }));
51
+ }
52
+ /** A supporting line under the title. */
53
+ function DialogDescription({ className, ...props }) {
54
+ return (_jsx(DialogPrimitive.Description, { "data-slot": "dialog-description", className: cn('text-muted-foreground text-sm', className), ...props }));
55
+ }
56
+ /** A control that closes the dialog from inside its content. */
57
+ function DialogClose({ className, ...props }) {
58
+ return (_jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", className: cn('inline-flex items-center justify-center rounded-md text-sm font-medium outline-none', 'transition-[color,box-shadow,background-color] duration-fast ease-out', 'focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-[3px]', 'disabled:pointer-events-none disabled:opacity-50', className), ...props }));
59
+ }
60
+ export { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose, };
@@ -0,0 +1,189 @@
1
+ import type { ComponentProps } from 'react';
2
+ /**
3
+ * The props the DropdownMenu 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 DropdownMenuProps {
9
+ /** The controlled open state. */
10
+ open?: boolean;
11
+ /** The initially open state, for an uncontrolled menu. */
12
+ defaultOpen?: boolean;
13
+ /** Called when the open state changes. */
14
+ onOpenChange?: (open: boolean) => void;
15
+ /** Whether the menu ignores user interaction. */
16
+ disabled?: boolean;
17
+ /** The trigger and the menu content. */
18
+ children?: React.ReactNode;
19
+ }
20
+ /** The props DropdownMenuTrigger forwards to Base UI. */
21
+ export interface DropdownMenuTriggerProps extends ComponentProps<'button'> {
22
+ }
23
+ /**
24
+ * The props DropdownMenuContent forwards to Base UI.
25
+ *
26
+ * Declared here rather than re-exported from Base UI so no upstream type
27
+ * crosses the package seam (ticket 07 section 6).
28
+ */
29
+ export interface DropdownMenuContentProps extends ComponentProps<'div'> {
30
+ /** Which side of the trigger the menu is placed on. @defaultValue bottom */
31
+ side?: 'top' | 'right' | 'bottom' | 'left';
32
+ /** How the menu aligns against the trigger. @defaultValue start */
33
+ align?: 'start' | 'center' | 'end';
34
+ /** The distance in pixels between the trigger and the menu. @defaultValue 4 */
35
+ sideOffset?: number;
36
+ /** The offset in pixels along the alignment axis. @defaultValue 0 */
37
+ alignOffset?: number;
38
+ }
39
+ /**
40
+ * The props DropdownMenuItem forwards to Base UI.
41
+ *
42
+ * Declared here rather than re-exported from Base UI so no upstream type
43
+ * crosses the package seam (ticket 07 section 6).
44
+ */
45
+ export interface DropdownMenuItemProps extends ComponentProps<'div'> {
46
+ /** Whether the item aligns with the labels above it. @defaultValue false */
47
+ inset?: boolean;
48
+ /** Whether the item reads as a destructive action. @defaultValue default */
49
+ variant?: 'default' | 'destructive';
50
+ /** Whether the item ignores user interaction. */
51
+ disabled?: boolean;
52
+ /** Whether the menu closes when the item is chosen. @defaultValue true */
53
+ closeOnClick?: boolean;
54
+ }
55
+ /**
56
+ * The props DropdownMenuCheckboxItem forwards to Base UI.
57
+ *
58
+ * Declared here rather than re-exported from Base UI so no upstream type
59
+ * crosses the package seam (ticket 07 section 6).
60
+ */
61
+ export interface DropdownMenuCheckboxItemProps extends Omit<ComponentProps<'div'>, 'onChange'> {
62
+ /** The controlled ticked state. */
63
+ checked?: boolean;
64
+ /** The initially ticked state, for an uncontrolled item. */
65
+ defaultChecked?: boolean;
66
+ /** Called when the ticked state changes. */
67
+ onCheckedChange?: (checked: boolean) => void;
68
+ /** Whether the item ignores user interaction. */
69
+ disabled?: boolean;
70
+ /** Whether the menu closes when the item is chosen. @defaultValue false */
71
+ closeOnClick?: boolean;
72
+ }
73
+ /**
74
+ * The props DropdownMenuRadioGroup forwards to Base UI.
75
+ *
76
+ * Declared here rather than re-exported from Base UI so no upstream type
77
+ * crosses the package seam (ticket 07 section 6). A radio item needs this
78
+ * group to hold its selected value; without it the item's `value` has no
79
+ * owning state and selection never moves.
80
+ */
81
+ export interface DropdownMenuRadioGroupProps extends Omit<ComponentProps<'div'>, 'onChange'> {
82
+ /** The controlled value of the selected radio item. */
83
+ value?: string;
84
+ /** The initially selected value, for an uncontrolled group. */
85
+ defaultValue?: string;
86
+ /** Called when the selected value changes. */
87
+ onValueChange?: (value: string) => void;
88
+ /** Whether the group ignores user interaction. */
89
+ disabled?: boolean;
90
+ }
91
+ /**
92
+ * The props DropdownMenuRadioItem forwards to Base UI.
93
+ *
94
+ * Declared here rather than re-exported from Base UI so no upstream type
95
+ * crosses the package seam (ticket 07 section 6).
96
+ */
97
+ export interface DropdownMenuRadioItemProps extends Omit<ComponentProps<'div'>, 'onChange'> {
98
+ /** The value this item contributes to its radio group. */
99
+ value: string;
100
+ /** Whether the item ignores user interaction. */
101
+ disabled?: boolean;
102
+ /** Whether the menu closes when the item is chosen. @defaultValue false */
103
+ closeOnClick?: boolean;
104
+ }
105
+ /** The props DropdownMenuLabel forwards to Base UI. */
106
+ export interface DropdownMenuLabelProps extends ComponentProps<'div'> {
107
+ /** Whether the label aligns with items that carry an indicator. @defaultValue false */
108
+ inset?: boolean;
109
+ }
110
+ /** The props DropdownMenuSeparator forwards to Base UI. */
111
+ export interface DropdownMenuSeparatorProps extends ComponentProps<'div'> {
112
+ }
113
+ /** The props DropdownMenuGroup forwards to Base UI. */
114
+ export interface DropdownMenuGroupProps extends ComponentProps<'div'> {
115
+ }
116
+ /** The props DropdownMenuSub forwards to Base UI. */
117
+ export interface DropdownMenuSubProps {
118
+ /** The controlled open state of the submenu. */
119
+ open?: boolean;
120
+ /** The initially open state of the submenu. */
121
+ defaultOpen?: boolean;
122
+ /** Called when the submenu opens or closes. */
123
+ onOpenChange?: (open: boolean) => void;
124
+ /** Whether the submenu ignores user interaction. */
125
+ disabled?: boolean;
126
+ /** The submenu trigger and its content. */
127
+ children?: React.ReactNode;
128
+ }
129
+ /**
130
+ * The props DropdownMenuSubTrigger forwards to Base UI.
131
+ *
132
+ * Declared here rather than re-exported from Base UI so no upstream type
133
+ * crosses the package seam (ticket 07 section 6).
134
+ */
135
+ export interface DropdownMenuSubTriggerProps extends ComponentProps<'div'> {
136
+ /** Whether the trigger aligns with the labels above it. @defaultValue false */
137
+ inset?: boolean;
138
+ /** Whether the trigger ignores user interaction. */
139
+ disabled?: boolean;
140
+ }
141
+ /**
142
+ * The props DropdownMenuSubContent forwards to Base UI.
143
+ *
144
+ * Declared here rather than re-exported from Base UI so no upstream type
145
+ * crosses the package seam (ticket 07 section 6).
146
+ */
147
+ export interface DropdownMenuSubContentProps extends ComponentProps<'div'> {
148
+ /** Which side of the trigger the submenu is placed on. */
149
+ side?: 'top' | 'right' | 'bottom' | 'left';
150
+ /** How the submenu aligns against the trigger. @defaultValue start */
151
+ align?: 'start' | 'center' | 'end';
152
+ /** The distance in pixels between the trigger and the submenu. @defaultValue 0 */
153
+ sideOffset?: number;
154
+ }
155
+ /**
156
+ * A menu of actions opened from a trigger.
157
+ *
158
+ * Use a DropdownMenu for a short list of commands attached to one control,
159
+ * such as a row's actions or an account menu. It supports arrow-key and
160
+ * typeahead navigation, and Escape closes it. Keep a command that is the
161
+ * primary action on the surface visible instead of hiding it here.
162
+ */
163
+ declare function DropdownMenu({ ...props }: DropdownMenuProps): import("react").JSX.Element;
164
+ /** The element that opens the menu. */
165
+ declare function DropdownMenuTrigger({ className, ...props }: DropdownMenuTriggerProps): import("react").JSX.Element;
166
+ /** The floating menu surface. */
167
+ declare function DropdownMenuContent({ className, side, align, sideOffset, alignOffset, children, ...props }: DropdownMenuContentProps): import("react").JSX.Element;
168
+ /** One command in the menu. */
169
+ declare function DropdownMenuItem({ className, inset, variant, ...props }: DropdownMenuItemProps): import("react").JSX.Element;
170
+ /** A menu item that toggles a setting on or off. */
171
+ declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: DropdownMenuCheckboxItemProps): import("react").JSX.Element;
172
+ /** A set of radio items that selects exactly one value. */
173
+ declare function DropdownMenuRadioGroup({ className, ...props }: DropdownMenuRadioGroupProps): import("react").JSX.Element;
174
+ /** A menu item that selects one value from an implicit radio group. */
175
+ declare function DropdownMenuRadioItem({ className, children, ...props }: DropdownMenuRadioItemProps): import("react").JSX.Element;
176
+ /** A non-interactive heading inside a menu group. */
177
+ declare function DropdownMenuLabel({ className, inset, ...props }: DropdownMenuLabelProps): import("react").JSX.Element;
178
+ /** A rule between groups of commands. */
179
+ declare function DropdownMenuSeparator({ className, ...props }: DropdownMenuSeparatorProps): import("react").JSX.Element;
180
+ /** A labelled set of related commands. */
181
+ declare function DropdownMenuGroup({ className, ...props }: DropdownMenuGroupProps): import("react").JSX.Element;
182
+ /** An item that opens a nested menu. */
183
+ declare function DropdownMenuSub({ ...props }: DropdownMenuSubProps): import("react").JSX.Element;
184
+ /** The item that opens a submenu. */
185
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: DropdownMenuSubTriggerProps): import("react").JSX.Element;
186
+ /** The nested menu surface. */
187
+ declare function DropdownMenuSubContent({ className, align, sideOffset, children, ...props }: DropdownMenuSubContentProps): import("react").JSX.Element;
188
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuGroup, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };
189
+ //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dropdown-menu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Menu as MenuPrimitive } from '@base-ui/react/menu';
4
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';
5
+ import { cn } from '../../lib/utils';
6
+ const POPUP = 'bg-popover text-popover-foreground z-50 max-h-(--available-height) min-w-36 overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md outline-none transition-[opacity,transform] duration-fast ease-out data-[starting-style]:scale-95 data-[starting-style]:opacity-0 data-[ending-style]:scale-95 data-[ending-style]:opacity-0';
7
+ const ITEM = 'focus:bg-accent focus:text-accent-foreground data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*="size-"])]:size-4';
8
+ /**
9
+ * A menu of actions opened from a trigger.
10
+ *
11
+ * Use a DropdownMenu for a short list of commands attached to one control,
12
+ * such as a row's actions or an account menu. It supports arrow-key and
13
+ * typeahead navigation, and Escape closes it. Keep a command that is the
14
+ * primary action on the surface visible instead of hiding it here.
15
+ */
16
+ function DropdownMenu({ ...props }) {
17
+ return _jsx(MenuPrimitive.Root, { ...props });
18
+ }
19
+ /** The element that opens the menu. */
20
+ function DropdownMenuTrigger({ className, ...props }) {
21
+ return (_jsx(MenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", className: cn('bg-background shadow-xs inline-flex h-9 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium outline-none', 'transition-[color,box-shadow,background-color] duration-fast ease-out', 'hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-[3px]', 'disabled:pointer-events-none disabled:opacity-50', className), ...props }));
22
+ }
23
+ /** The floating menu surface. */
24
+ function DropdownMenuContent({ className, side = 'bottom', align = 'start', sideOffset = 4, alignOffset = 0, children, ...props }) {
25
+ return (_jsx(MenuPrimitive.Portal, { children: _jsx(MenuPrimitive.Positioner, { side: side, align: align, sideOffset: sideOffset, alignOffset: alignOffset, children: _jsx(MenuPrimitive.Popup, { "data-slot": "dropdown-menu-content", className: cn(POPUP, className), ...props, children: children }) }) }));
26
+ }
27
+ /** One command in the menu. */
28
+ function DropdownMenuItem({ className, inset, variant = 'default', ...props }) {
29
+ return (_jsx(MenuPrimitive.Item, { "data-slot": "dropdown-menu-item", className: cn(ITEM, 'data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:data-[highlighted]:bg-destructive/10', inset && 'pl-8', className), "data-variant": variant, ...props }));
30
+ }
31
+ /** A menu item that toggles a setting on or off. */
32
+ function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
33
+ return (_jsxs(MenuPrimitive.CheckboxItem, { "data-slot": "dropdown-menu-checkbox-item", checked: checked, className: cn(ITEM, 'pr-8 pl-8', className), ...props, children: [_jsx(MenuPrimitive.CheckboxItemIndicator, { className: "absolute left-2 flex size-4 items-center justify-center", children: _jsx(CheckIcon, { className: "size-4" }) }), children] }));
34
+ }
35
+ /** A set of radio items that selects exactly one value. */
36
+ function DropdownMenuRadioGroup({ className, ...props }) {
37
+ return (_jsx(MenuPrimitive.RadioGroup, { "data-slot": "dropdown-menu-radio-group", className: cn(className), ...props }));
38
+ }
39
+ /** A menu item that selects one value from an implicit radio group. */
40
+ function DropdownMenuRadioItem({ className, children, ...props }) {
41
+ return (_jsxs(MenuPrimitive.RadioItem, { "data-slot": "dropdown-menu-radio-item", className: cn(ITEM, 'pr-8 pl-8', className), ...props, children: [_jsx(MenuPrimitive.RadioItemIndicator, { className: "absolute left-2 flex size-4 items-center justify-center", children: _jsx(CircleIcon, { className: "size-2 fill-current" }) }), children] }));
42
+ }
43
+ /** A non-interactive heading inside a menu group. */
44
+ function DropdownMenuLabel({ className, inset, ...props }) {
45
+ return (_jsx(MenuPrimitive.GroupLabel, { "data-slot": "dropdown-menu-label", className: cn('px-2 py-1.5 text-xs font-medium', inset && 'pl-8', className), ...props }));
46
+ }
47
+ /** A rule between groups of commands. */
48
+ function DropdownMenuSeparator({ className, ...props }) {
49
+ return (_jsx(MenuPrimitive.Separator, { "data-slot": "dropdown-menu-separator", className: cn('bg-border -mx-1 my-1 h-px', className), ...props }));
50
+ }
51
+ /** A labelled set of related commands. */
52
+ function DropdownMenuGroup({ className, ...props }) {
53
+ return (_jsx(MenuPrimitive.Group, { "data-slot": "dropdown-menu-group", className: cn(className), ...props }));
54
+ }
55
+ /** An item that opens a nested menu. */
56
+ function DropdownMenuSub({ ...props }) {
57
+ return _jsx(MenuPrimitive.SubmenuRoot, { ...props });
58
+ }
59
+ /** The item that opens a submenu. */
60
+ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
61
+ return (_jsxs(MenuPrimitive.SubmenuTrigger, { "data-slot": "dropdown-menu-sub-trigger", className: cn(ITEM, inset && 'pl-8', className), ...props, children: [children, _jsx(ChevronRightIcon, { className: "ml-auto size-4" })] }));
62
+ }
63
+ /** The nested menu surface. */
64
+ function DropdownMenuSubContent({ className, align = 'start', sideOffset = 0, children, ...props }) {
65
+ return (_jsx(MenuPrimitive.Portal, { children: _jsx(MenuPrimitive.Positioner, { align: align, sideOffset: sideOffset, children: _jsx(MenuPrimitive.Popup, { "data-slot": "dropdown-menu-sub-content", className: cn(POPUP, className), ...props, children: children }) }) }));
66
+ }
67
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuGroup, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };
@@ -0,0 +1,90 @@
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ /**
3
+ * One fact: the term that names it and the value that answers it.
4
+ *
5
+ * `label` is required and `value` is required, because a fact with no value is a
6
+ * heading and a fact with no term is a value with nothing to answer. A fact whose
7
+ * value is a destination passes `href` and gets an anchor, so a reader can
8
+ * follow it rather than read it.
9
+ */
10
+ export type Fact = {
11
+ /**
12
+ * The name of the fact, the term side of the pair. It is a label rather than
13
+ * prose: a column of these is read by scanning the left edge, so a term that
14
+ * wraps to two lines costs the whole column its alignment.
15
+ */
16
+ label: ReactNode;
17
+ /** The answer. A string, or any node a consumer composes. */
18
+ value: ReactNode;
19
+ /**
20
+ * Makes the value a link to where the fact is kept. Omit it for a fact whose
21
+ * value is the whole answer, such as a count or a version.
22
+ */
23
+ href?: string;
24
+ /**
25
+ * Opens the destination in a new browsing context, which defaults the link
26
+ * relationship to `noopener noreferrer`. Prism does not decide what counts as
27
+ * external: a cross-origin destination is not by itself a reason to open a tab.
28
+ */
29
+ newTab?: boolean;
30
+ };
31
+ /**
32
+ * The props a FactList takes.
33
+ *
34
+ * The facts are the content and the content is a prop: the list ships no fact,
35
+ * no sample row and no placeholder. An empty list renders nothing rather than an
36
+ * empty frame, so a caller that has nothing to say does not get a bordered box
37
+ * with a title above it.
38
+ */
39
+ export type FactListProps = ComponentProps<'dl'> & {
40
+ /**
41
+ * The facts, in the order a reader should meet them. Order is the caller's
42
+ * because it is a claim about importance, and a list that sorted itself would
43
+ * be making that claim on the caller's behalf.
44
+ */
45
+ facts: readonly Fact[];
46
+ /**
47
+ * A heading above the list, for a set of facts that needs to say what it is.
48
+ * Rendered as a `dt`-level caption rather than as a heading, so it does not
49
+ * compete with the document's own outline.
50
+ */
51
+ label?: ReactNode;
52
+ /**
53
+ * Layout only, exactly as on every Component. Changing a Prism-owned visual
54
+ * property from here is prohibited.
55
+ */
56
+ className?: string;
57
+ };
58
+ /**
59
+ * A short list of named facts, as a definition list.
60
+ *
61
+ * One job: put a term beside its value in a column a reader can scan, and make
62
+ * the pair a real description list so a screen reader announces the term before
63
+ * the value. Every NaniSoft site states facts beside prose: what a plan costs,
64
+ * what a feed carries, which version a document describes, when a collector went
65
+ * live. Each one re-derived a `<dl>` and each one got the alignment and the
66
+ * term-before-value wiring subtly wrong.
67
+ *
68
+ * It is a Component rather than a Block because it has no content of its own to
69
+ * be passed, and because the fact set is data rather than a section: a Block
70
+ * models a region of a page and this models a shape that appears inside one.
71
+ *
72
+ * The term column is a fixed fraction rather than a content width, so a column
73
+ * of facts lines up down its whole length and a long term pushes the value rather
74
+ * than resizing every other row. Values align to the top, because a value that
75
+ * wraps and a value that does not are both common and centring one of them reads
76
+ * as an error.
77
+ *
78
+ * The hairline between rows is `border-border`, so a list of facts reads as a
79
+ * table without becoming one: no header row, because a fact has no column
80
+ * header, and no `Table` semantics, because these are terms and their answers
81
+ * rather than records.
82
+ *
83
+ * A fact with no value renders the term and nothing else, so a caller that is
84
+ * missing an answer shows a gap rather than a blank that reads as a value.
85
+ *
86
+ * It is a server Component: no hook, no context and no client code.
87
+ */
88
+ declare function FactList({ facts, label, className, ...props }: FactListProps): import("react").JSX.Element | null;
89
+ export { FactList };
90
+ //# sourceMappingURL=fact-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact-list.d.ts","sourceRoot":"","sources":["../../../src/components/ui/fact-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItD;;;;;;;GAOG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB;;;;OAIG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB,6DAA6D;IAC7D,KAAK,EAAE,SAAS,CAAA;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG;IACjD;;;;OAIG;IACH,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,iBAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,sCAuCrE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/utils';
3
+ /**
4
+ * A short list of named facts, as a definition list.
5
+ *
6
+ * One job: put a term beside its value in a column a reader can scan, and make
7
+ * the pair a real description list so a screen reader announces the term before
8
+ * the value. Every NaniSoft site states facts beside prose: what a plan costs,
9
+ * what a feed carries, which version a document describes, when a collector went
10
+ * live. Each one re-derived a `<dl>` and each one got the alignment and the
11
+ * term-before-value wiring subtly wrong.
12
+ *
13
+ * It is a Component rather than a Block because it has no content of its own to
14
+ * be passed, and because the fact set is data rather than a section: a Block
15
+ * models a region of a page and this models a shape that appears inside one.
16
+ *
17
+ * The term column is a fixed fraction rather than a content width, so a column
18
+ * of facts lines up down its whole length and a long term pushes the value rather
19
+ * than resizing every other row. Values align to the top, because a value that
20
+ * wraps and a value that does not are both common and centring one of them reads
21
+ * as an error.
22
+ *
23
+ * The hairline between rows is `border-border`, so a list of facts reads as a
24
+ * table without becoming one: no header row, because a fact has no column
25
+ * header, and no `Table` semantics, because these are terms and their answers
26
+ * rather than records.
27
+ *
28
+ * A fact with no value renders the term and nothing else, so a caller that is
29
+ * missing an answer shows a gap rather than a blank that reads as a value.
30
+ *
31
+ * It is a server Component: no hook, no context and no client code.
32
+ */
33
+ function FactList({ facts, label, className, ...props }) {
34
+ if (facts.length === 0)
35
+ return null;
36
+ return (_jsxs("dl", { "data-slot": "fact-list", className: cn('flex w-full flex-col text-sm', className), ...props, children: [label ? (_jsx("dt", { className: "text-muted-foreground mb-2 text-xs font-medium tracking-wide uppercase", children: label })) : null, facts.map((fact, index) => (_jsxs("div", { "data-slot": "fact-list-row", className: "border-border flex items-start justify-between gap-6 border-b py-2 last:border-b-0", children: [_jsx("dt", { className: "text-muted-foreground shrink-0 font-medium", children: fact.label }), _jsx("dd", { className: "text-right text-balance", children: fact.href ? (_jsx("a", { href: fact.href, rel: fact.newTab ? 'noopener noreferrer' : undefined, target: fact.newTab ? '_blank' : undefined, className: "underline underline-offset-4 hover:underline", children: fact.value })) : (fact.value) })] }, index)))] }));
37
+ }
38
+ export { FactList };
@@ -0,0 +1,36 @@
1
+ import type { ComponentProps } from 'react';
2
+ /**
3
+ * The layout and labelling components that wrap a form control.
4
+ *
5
+ * The module ships `Field`, `FieldLabel`, `FieldDescription`, `FieldError` and
6
+ * `FieldGroup`, and each is presentational: the consumer owns the control's
7
+ * `id` and wires it to the label's `htmlFor` and to the description or error's
8
+ * `id` through `aria-describedby`. Nothing here generates an `id`, so a field
9
+ * stays a Server Component and no markup is decided at hydration time.
10
+ */
11
+ declare function Field({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
12
+ /** Groups several related fields, for example one row of a settings form. */
13
+ declare function FieldGroup({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
14
+ /**
15
+ * The control's accessible name.
16
+ *
17
+ * Renders a native `<label>`; pass the control's `id` as `htmlFor` so the name
18
+ * is programmatically attached rather than merely adjacent.
19
+ */
20
+ declare function FieldLabel({ className, ...props }: ComponentProps<'label'>): import("react").JSX.Element;
21
+ /**
22
+ * A short helper line under the control.
23
+ *
24
+ * Give it an `id` and reference it from the control's `aria-describedby`; the
25
+ * text is an explanation, not the accessible name.
26
+ */
27
+ declare function FieldDescription({ className, ...props }: ComponentProps<'p'>): import("react").JSX.Element;
28
+ /**
29
+ * The field's error message.
30
+ *
31
+ * Carries `role="alert"`, so it is announced when it appears. It is shown only
32
+ * while the field is invalid; render nothing otherwise.
33
+ */
34
+ declare function FieldError({ className, ...props }: ComponentProps<'p'>): import("react").JSX.Element;
35
+ export { Field, FieldLabel, FieldDescription, FieldError, FieldGroup };
36
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;;;;GAQG;AACH,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,+BAS5D;AAED,6EAA6E;AAC7E,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,+BASjE;AAED;;;;;GAKG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,+BAWnE;AAED;;;;;GAKG;AACH,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,+BAQrE;AAED;;;;;GAKG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,+BAS/D;AAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/utils';
3
+ /**
4
+ * The layout and labelling components that wrap a form control.
5
+ *
6
+ * The module ships `Field`, `FieldLabel`, `FieldDescription`, `FieldError` and
7
+ * `FieldGroup`, and each is presentational: the consumer owns the control's
8
+ * `id` and wires it to the label's `htmlFor` and to the description or error's
9
+ * `id` through `aria-describedby`. Nothing here generates an `id`, so a field
10
+ * stays a Server Component and no markup is decided at hydration time.
11
+ */
12
+ function Field({ className, ...props }) {
13
+ return (_jsx("div", { "data-slot": "field", role: "group", className: cn('flex w-full flex-col gap-1.5', className), ...props }));
14
+ }
15
+ /** Groups several related fields, for example one row of a settings form. */
16
+ function FieldGroup({ className, ...props }) {
17
+ return (_jsx("div", { "data-slot": "field-group", role: "group", className: cn('flex w-full flex-col gap-6', className), ...props }));
18
+ }
19
+ /**
20
+ * The control's accessible name.
21
+ *
22
+ * Renders a native `<label>`; pass the control's `id` as `htmlFor` so the name
23
+ * is programmatically attached rather than merely adjacent.
24
+ */
25
+ function FieldLabel({ className, ...props }) {
26
+ return (_jsx("label", { "data-slot": "field-label", className: cn('text-foreground text-sm leading-none font-medium', className), ...props }));
27
+ }
28
+ /**
29
+ * A short helper line under the control.
30
+ *
31
+ * Give it an `id` and reference it from the control's `aria-describedby`; the
32
+ * text is an explanation, not the accessible name.
33
+ */
34
+ function FieldDescription({ className, ...props }) {
35
+ return (_jsx("p", { "data-slot": "field-description", className: cn('text-muted-foreground text-sm', className), ...props }));
36
+ }
37
+ /**
38
+ * The field's error message.
39
+ *
40
+ * Carries `role="alert"`, so it is announced when it appears. It is shown only
41
+ * while the field is invalid; render nothing otherwise.
42
+ */
43
+ function FieldError({ className, ...props }) {
44
+ return (_jsx("p", { "data-slot": "field-error", role: "alert", className: cn('text-destructive text-sm font-medium', className), ...props }));
45
+ }
46
+ export { Field, FieldLabel, FieldDescription, FieldError, FieldGroup };
@@ -0,0 +1,12 @@
1
+ import type { ComponentProps } from 'react';
2
+ /**
3
+ * The single-line text control.
4
+ *
5
+ * Renders a native `<input>`, so it submits, validates and takes focus without
6
+ * extra work. The focus ring is drawn at full strength, and `aria-invalid`
7
+ * switches the border and ring to the destructive token so a failed field is
8
+ * visible as well as announced.
9
+ */
10
+ declare function Input({ className, type, ...props }: ComponentProps<'input'>): import("react").JSX.Element;
11
+ export { Input };
12
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;;;GAOG;AACH,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,+BAcpE;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/utils';
3
+ /**
4
+ * The single-line text control.
5
+ *
6
+ * Renders a native `<input>`, so it submits, validates and takes focus without
7
+ * extra work. The focus ring is drawn at full strength, and `aria-invalid`
8
+ * switches the border and ring to the destructive token so a failed field is
9
+ * visible as well as announced.
10
+ */
11
+ function Input({ className, type, ...props }) {
12
+ return (_jsx("input", { type: type, "data-slot": "input", className: cn('border-input bg-background text-foreground selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-md border px-3 py-1 text-base shadow-xs transition-[color,box-shadow] duration-fast ease-out outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', 'focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-[3px]', 'aria-invalid:border-destructive aria-invalid:ring-destructive/20', className), ...props }));
13
+ }
14
+ export { Input };
@@ -0,0 +1,10 @@
1
+ import type { ComponentProps } from 'react';
2
+ /**
3
+ * An inline label for a keyboard key or shortcut.
4
+ *
5
+ * Renders a native `<kbd>`, so a screen reader can identify it as input the
6
+ * reader types rather than as text to read. Use one element per key.
7
+ */
8
+ declare function Kbd({ className, ...props }: ComponentProps<'kbd'>): import("react").JSX.Element;
9
+ export { Kbd };
10
+ //# sourceMappingURL=kbd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbd.d.ts","sourceRoot":"","sources":["../../../src/components/ui/kbd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,iBAAS,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,+BAW1D;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/utils';
3
+ /**
4
+ * An inline label for a keyboard key or shortcut.
5
+ *
6
+ * Renders a native `<kbd>`, so a screen reader can identify it as input the
7
+ * reader types rather than as text to read. Use one element per key.
8
+ */
9
+ function Kbd({ className, ...props }) {
10
+ return (_jsx("kbd", { "data-slot": "kbd", className: cn('bg-muted text-muted-foreground pointer-events-none inline-flex h-5 min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none', className), ...props }));
11
+ }
12
+ export { Kbd };