@publish.os/nextjs 0.0.1-alpha.90 → 0.0.1-alpha.92

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 (284) hide show
  1. package/compiler-assets/nextjs/defaults/group/index.tsx +16 -11
  2. package/compiler-assets/nextjs/defaults/group/layout.tsx +6 -6
  3. package/compiler-assets/nextjs/defaults/group/page.tsx +36 -26
  4. package/compiler-assets/nextjs/defaults/project/next.config.mjs +21 -11
  5. package/compiler-assets/nextjs/defaults/project/tsconfig.json.template +10 -0
  6. package/compiler-assets/nextjs/defaults/root/css/components/code-block.css +18 -0
  7. package/compiler-assets/nextjs/defaults/root/index.tsx +16 -11
  8. package/compiler-assets/nextjs/defaults/root/layout.tsx +7 -3
  9. package/compiler-assets/nextjs/shims/agent-user-agents.ts +65 -0
  10. package/compiler-assets/nextjs/shims/document.tsx +46 -0
  11. package/compiler-assets/nextjs/shims/generated-leaf-page.tsx +5 -0
  12. package/compiler-assets/nextjs/shims/global-layout.tsx +8 -42
  13. package/compiler-assets/nextjs/shims/global-not-found.tsx +69 -0
  14. package/compiler-assets/nextjs/shims/markdown-route.ts +2 -0
  15. package/compiler-assets/nextjs/shims/metadata-icons.tsx +39 -0
  16. package/compiler-assets/nextjs/shims/not-found-content.tsx +53 -0
  17. package/compiler-assets/nextjs/shims/not-found-navigation.tsx +60 -0
  18. package/compiler-assets/nextjs/shims/proxy.ts +254 -86
  19. package/compiler-assets/nextjs/shims/site-fenced-code-block.tsx +2 -6
  20. package/compiler-assets/nextjs/shims/site-mdx-components.tsx +28 -16
  21. package/compiler-assets/nextjs/shims/site-mdx.tsx +6 -1
  22. package/dist/{build-operation-2JAYBSKF.js → build-operation-CJDUL4OW.js} +29 -23
  23. package/dist/{button-c3WGnxIj.d.ts → button-D6Xp2HBm.d.ts} +4 -4
  24. package/dist/capture-local-source-WGGDIUU2.js +258 -0
  25. package/dist/chunk-22RSSUNV.js +13 -0
  26. package/dist/chunk-3T4HVDSC.js +426 -0
  27. package/dist/{chunk-WKTEO6RS.js → chunk-4BC2L2KA.js} +46 -12
  28. package/dist/{chunk-WDY4IK6Z.js → chunk-5J3YUNRY.js} +3 -10
  29. package/dist/chunk-5KAD7W53.js +248 -0
  30. package/dist/{chunk-DWA3ZRGW.js → chunk-6C65KV7O.js} +2 -2
  31. package/dist/{chunk-GGKFQ3MA.js → chunk-6D2E6UMD.js} +144 -70
  32. package/dist/{chunk-7OGTPSKI.js → chunk-7NY22B5U.js} +8 -3
  33. package/dist/chunk-DX7PXFCM.js +2519 -0
  34. package/dist/{chunk-726GV2NF.js → chunk-DZ3VWEV5.js} +950 -632
  35. package/dist/chunk-EFO6AWXN.js +19 -0
  36. package/dist/chunk-IL4RJOKI.js +186 -0
  37. package/dist/{chunk-H6XILMZX.js → chunk-NHSLTARU.js} +2588 -1493
  38. package/dist/{chunk-DLDFHU7Y.js → chunk-NNBJZPFM.js} +4 -2
  39. package/dist/{chunk-VO2I7MTM.js → chunk-SBMDONTV.js} +10 -7
  40. package/dist/{chunk-YLTOLYWM.js → chunk-WL75GQ5M.js} +6 -18
  41. package/dist/compiler.d.ts +15 -2
  42. package/dist/compiler.js +111 -23
  43. package/dist/components/blocks/agent-actions.d.ts +81 -0
  44. package/dist/components/blocks/agent-actions.js +563 -0
  45. package/dist/components/blocks/toc.d.ts +43 -0
  46. package/dist/components/blocks/toc.js +136 -0
  47. package/dist/components/ui/button.d.ts +4 -0
  48. package/dist/components/ui/button.js +94 -0
  49. package/dist/compose-44GJSMXD.js +16 -0
  50. package/dist/config/createNextConfig.js +19 -3
  51. package/dist/{dev-operation-TZDVJCN7.js → dev-operation-WNECBHZ5.js} +134 -84
  52. package/dist/{framework-selection-X4U6Y6QC.js → framework-selection-ZVO323PK.js} +3 -2
  53. package/dist/ide-support-TG74L4FF.js +16 -0
  54. package/dist/index.d.ts +151 -95
  55. package/dist/index.js +25 -0
  56. package/dist/jsx-dev-runtime.d.ts +6 -0
  57. package/dist/jsx-dev-runtime.js +100 -0
  58. package/dist/jsx-runtime.d.ts +7 -0
  59. package/dist/jsx-runtime.js +97 -0
  60. package/dist/kernel/components/blocks/AgentActions.d.ts +37 -8
  61. package/dist/kernel/components/blocks/AgentActions.js +384 -174
  62. package/dist/kernel/components/blocks/agent-actions.d.ts +4 -0
  63. package/dist/kernel/components/blocks/agent-actions.js +563 -0
  64. package/dist/kernel/components/blocks/animated-icon-swap.d.ts +2 -2
  65. package/dist/kernel/components/blocks/animated-icon-swap.js +1 -1
  66. package/dist/kernel/components/blocks/color-palette.d.ts +2 -2
  67. package/dist/kernel/components/blocks/color-palette.js +4 -4
  68. package/dist/kernel/components/blocks/logo-block.d.ts +2 -2
  69. package/dist/kernel/components/blocks/logo-block.js +1 -1
  70. package/dist/kernel/components/blocks/nav-breadcrumb.d.ts +6 -5
  71. package/dist/kernel/components/blocks/nav-breadcrumb.js +21 -15
  72. package/dist/kernel/components/blocks/navbar.d.ts +5 -4
  73. package/dist/kernel/components/blocks/navbar.js +79 -59
  74. package/dist/kernel/components/blocks/navigation-progress.d.ts +2 -2
  75. package/dist/kernel/components/blocks/navigation-progress.js +2 -2
  76. package/dist/kernel/components/blocks/next-prev.d.ts +4 -4
  77. package/dist/kernel/components/blocks/next-prev.js +30 -7
  78. package/dist/kernel/components/blocks/page-list.d.ts +4 -4
  79. package/dist/kernel/components/blocks/page-list.js +32 -9
  80. package/dist/kernel/components/blocks/search.d.ts +9 -15
  81. package/dist/kernel/components/blocks/search.js +16 -17
  82. package/dist/kernel/components/blocks/sidebar-node.d.ts +3 -5
  83. package/dist/kernel/components/blocks/sidebar-node.js +13 -3
  84. package/dist/kernel/components/blocks/sidebar.d.ts +6 -7
  85. package/dist/kernel/components/blocks/sidebar.js +137 -28
  86. package/dist/kernel/components/blocks/theme-toggle.d.ts +3 -4
  87. package/dist/kernel/components/blocks/theme-toggle.js +5 -5
  88. package/dist/kernel/components/blocks/toc-client.d.ts +40 -0
  89. package/dist/kernel/components/blocks/toc-client.js +495 -0
  90. package/dist/kernel/components/blocks/toc.d.ts +20 -2
  91. package/dist/kernel/components/blocks/toc.js +121 -179
  92. package/dist/kernel/components/mdx/components/blockquote.d.ts +2 -2
  93. package/dist/kernel/components/mdx/components/blockquote.js +1 -1
  94. package/dist/kernel/components/mdx/components/callout.d.ts +3 -3
  95. package/dist/kernel/components/mdx/components/callout.js +1 -1
  96. package/dist/kernel/components/mdx/components/code-block.d.ts +2 -2
  97. package/dist/kernel/components/mdx/components/code-block.js +2 -2
  98. package/dist/kernel/components/mdx/components/copy-code-button.d.ts +2 -2
  99. package/dist/kernel/components/mdx/components/copy-code-button.js +5 -4
  100. package/dist/kernel/components/mdx/components/figure-caption.d.ts +3 -3
  101. package/dist/kernel/components/mdx/components/figure-caption.js +3 -2
  102. package/dist/kernel/components/mdx/components/figure.d.ts +8 -4
  103. package/dist/kernel/components/mdx/components/figure.js +23 -13
  104. package/dist/kernel/components/mdx/components/footnotes.d.ts +2 -2
  105. package/dist/kernel/components/mdx/components/footnotes.js +1 -1
  106. package/dist/kernel/components/mdx/components/heading-copy-link.d.ts +2 -2
  107. package/dist/kernel/components/mdx/components/heading-copy-link.js +1 -1
  108. package/dist/kernel/components/mdx/components/heading.d.ts +2 -2
  109. package/dist/kernel/components/mdx/components/heading.js +6 -3
  110. package/dist/kernel/components/mdx/components/hr.d.ts +4 -4
  111. package/dist/kernel/components/mdx/components/hr.js +2 -2
  112. package/dist/kernel/components/mdx/components/image-zoom.d.ts +3 -3
  113. package/dist/kernel/components/mdx/components/image-zoom.js +4 -3
  114. package/dist/kernel/components/mdx/components/image.d.ts +2 -2
  115. package/dist/kernel/components/mdx/components/image.js +22 -17
  116. package/dist/kernel/components/mdx/components/inline-code.d.ts +2 -2
  117. package/dist/kernel/components/mdx/components/inline-code.js +1 -1
  118. package/dist/kernel/components/mdx/components/kbd.d.ts +3 -3
  119. package/dist/kernel/components/mdx/components/kbd.js +2 -2
  120. package/dist/kernel/components/mdx/components/link.d.ts +6 -6
  121. package/dist/kernel/components/mdx/components/link.js +2 -2
  122. package/dist/kernel/components/mdx/components/paragraph.d.ts +2 -2
  123. package/dist/kernel/components/mdx/components/paragraph.js +1 -1
  124. package/dist/kernel/components/mdx/components/strikethrough.d.ts +2 -2
  125. package/dist/kernel/components/mdx/components/strikethrough.js +1 -1
  126. package/dist/kernel/components/mdx/components/table.d.ts +7 -7
  127. package/dist/kernel/components/mdx/components/table.js +2 -2
  128. package/dist/kernel/components/mdx/components/task-list.d.ts +3 -3
  129. package/dist/kernel/components/mdx/components/task-list.js +1 -1
  130. package/dist/kernel/components/mdx/components/video-player.d.ts +8 -4
  131. package/dist/kernel/components/mdx/components/video-player.js +6 -2
  132. package/dist/kernel/components/mdx/components/video.d.ts +5 -4
  133. package/dist/kernel/components/mdx/components/video.js +7 -5
  134. package/dist/kernel/components/mdx/error-boundary.d.ts +3 -4
  135. package/dist/kernel/components/mdx/error-boundary.js +2 -2
  136. package/dist/kernel/components/mdx/error-fallback.d.ts +2 -2
  137. package/dist/kernel/components/mdx/error-fallback.js +1 -1
  138. package/dist/kernel/components/mdx/mdx.d.ts +57 -16
  139. package/dist/kernel/components/mdx/mdx.js +232 -35
  140. package/dist/kernel/components/mdx/rehype-heading-ids.d.ts +1 -0
  141. package/dist/kernel/components/mdx/rehype-heading-ids.js +5 -3
  142. package/dist/kernel/components/mdx/types.d.ts +1 -1
  143. package/dist/kernel/components/next-image.d.ts +12 -0
  144. package/dist/kernel/components/next-image.js +61 -0
  145. package/dist/kernel/components/ui/accordion.d.ts +7 -7
  146. package/dist/kernel/components/ui/accordion.js +1 -1
  147. package/dist/kernel/components/ui/breadcrumb-trail.d.ts +3 -4
  148. package/dist/kernel/components/ui/breadcrumb-trail.js +2 -2
  149. package/dist/kernel/components/ui/breadcrumb.d.ts +14 -14
  150. package/dist/kernel/components/ui/breadcrumb.js +4 -4
  151. package/dist/kernel/components/ui/button-group.d.ts +6 -6
  152. package/dist/kernel/components/ui/button-group.js +3 -3
  153. package/dist/kernel/components/ui/button.d.ts +59 -7
  154. package/dist/kernel/components/ui/button.js +43 -39
  155. package/dist/kernel/components/ui/card.d.ts +7 -7
  156. package/dist/kernel/components/ui/card.js +1 -1
  157. package/dist/kernel/components/ui/dialog.d.ts +10 -10
  158. package/dist/kernel/components/ui/dialog.js +1 -1
  159. package/dist/kernel/components/ui/drawer.d.ts +12 -12
  160. package/dist/kernel/components/ui/drawer.js +1 -1
  161. package/dist/kernel/components/ui/input.d.ts +2 -2
  162. package/dist/kernel/components/ui/input.js +1 -1
  163. package/dist/kernel/components/ui/kbd.d.ts +4 -4
  164. package/dist/kernel/components/ui/kbd.js +1 -1
  165. package/dist/kernel/components/ui/link.d.ts +11 -5
  166. package/dist/kernel/components/ui/link.js +2 -2
  167. package/dist/kernel/components/ui/menu.d.ts +22 -22
  168. package/dist/kernel/components/ui/menu.js +1 -1
  169. package/dist/kernel/components/ui/mod-key.d.ts +2 -3
  170. package/dist/kernel/components/ui/mod-key.js +2 -2
  171. package/dist/kernel/components/ui/navigation-menu.d.ts +15 -15
  172. package/dist/kernel/components/ui/navigation-menu.js +1 -1
  173. package/dist/kernel/components/ui/popover.d.ts +11 -11
  174. package/dist/kernel/components/ui/popover.js +1 -1
  175. package/dist/kernel/components/ui/progress.d.ts +7 -7
  176. package/dist/kernel/components/ui/progress.js +1 -1
  177. package/dist/kernel/components/ui/scroll-area.d.ts +9 -10
  178. package/dist/kernel/components/ui/scroll-area.js +1 -1
  179. package/dist/kernel/components/ui/select.d.ts +16 -16
  180. package/dist/kernel/components/ui/select.js +1 -1
  181. package/dist/kernel/components/ui/separator.d.ts +3 -3
  182. package/dist/kernel/components/ui/separator.js +1 -1
  183. package/dist/kernel/components/ui/table.d.ts +7 -7
  184. package/dist/kernel/components/ui/table.js +1 -1
  185. package/dist/kernel/components/ui/tabs.d.ts +12 -12
  186. package/dist/kernel/components/ui/tabs.js +1 -1
  187. package/dist/kernel/components/ui/tag.d.ts +3 -3
  188. package/dist/kernel/components/ui/tag.js +1 -1
  189. package/dist/kernel/components/ui/text.d.ts +4 -4
  190. package/dist/kernel/components/ui/text.js +1 -1
  191. package/dist/kernel/components/ui/toast.d.ts +11 -11
  192. package/dist/kernel/components/ui/toast.js +1 -1
  193. package/dist/kernel/components/ui/tooltip.d.ts +9 -9
  194. package/dist/kernel/components/ui/tooltip.js +1 -1
  195. package/dist/kernel/defaults.registry.d.ts +4 -17
  196. package/dist/kernel/defaults.registry.js +4 -19
  197. package/dist/kernel/routes/agent/markdown.d.ts +7 -0
  198. package/dist/kernel/routes/agent/markdown.js +229 -54
  199. package/dist/kernel/routes/layouts/group.d.ts +1 -1
  200. package/dist/kernel/routes/layouts/group.js +5 -7
  201. package/dist/kernel/routes/metadata/feed.d.ts +1 -2
  202. package/dist/kernel/routes/metadata/feed.js +119 -88
  203. package/dist/kernel/routes/metadata/llms.d.ts +3 -23
  204. package/dist/kernel/routes/metadata/llms.js +2 -103
  205. package/dist/kernel/routes/metadata/og-image.js +1 -1
  206. package/dist/kernel/routes/metadata/robots.d.ts +5 -3
  207. package/dist/kernel/routes/metadata/robots.js +4 -25
  208. package/dist/kernel/routes/metadata/sitemap.d.ts +36 -3
  209. package/dist/kernel/routes/metadata/sitemap.js +277 -49
  210. package/dist/kernel/routes/not-found.d.ts +34 -0
  211. package/dist/kernel/routes/not-found.js +213 -0
  212. package/dist/kernel/routes/pages/group.d.ts +5 -5
  213. package/dist/kernel/routes/pages/group.js +11 -5
  214. package/dist/kernel/routes/pages/leaf.d.ts +38 -6
  215. package/dist/kernel/routes/pages/leaf.js +21 -12
  216. package/dist/kernel/routes/pages/root.d.ts +5 -5
  217. package/dist/kernel/routes/pages/root.js +21 -6
  218. package/dist/keyboard-shortcuts.d.ts +2 -2
  219. package/dist/keyboard-shortcuts.js +1 -1
  220. package/dist/manifest-types-CcVPH_jh.d.ts +83 -0
  221. package/dist/resolvers/manifest-resolver.d.ts +2 -2
  222. package/dist/resolvers/manifest-resolver.js +65 -35
  223. package/dist/route-metadata-og-image-BeKKFHg7.d.ts +58 -0
  224. package/dist/search.d.ts +2 -9
  225. package/dist/search.js +9 -16
  226. package/dist/sidebar-types-CMrMM0Nj.d.ts +105 -0
  227. package/dist/theme-scope.d.ts +2 -2
  228. package/dist/theme-scope.js +1 -1
  229. package/dist/types-BbqmOzLC.d.ts +168 -0
  230. package/dist/types-TjH1ek0X.d.ts +22 -0
  231. package/dist/types-sM2g9nW0.d.ts +12 -0
  232. package/dist/types.d.ts +117 -91
  233. package/dist/utils/heading-ids.js +30 -11
  234. package/dist/utils/toc-selection.d.ts +7 -0
  235. package/dist/utils/toc-selection.js +14 -0
  236. package/dist/validate-local-source-EN2GW4FR.js +16 -0
  237. package/dist/validate-publish-os-source-OEWQDB7B.js +14 -0
  238. package/init/seed/minimal/publish.os/assets/blog/hello-world.svg +13 -0
  239. package/init/seed/minimal/publish.os/assets/favicon.dark.svg +13 -0
  240. package/init/seed/minimal/publish.os/assets/favicon.svg +13 -0
  241. package/init/seed/minimal/publish.os/blog/content/hello-world.mdx +48 -0
  242. package/init/seed/minimal/publish.os/blog/content/series-a.mdx +11 -0
  243. package/init/seed/minimal/publish.os/blog/index.tsx +85 -0
  244. package/init/seed/minimal/publish.os/blog/layout.tsx +13 -0
  245. package/init/seed/minimal/publish.os/blog/page.tsx +91 -0
  246. package/init/seed/minimal/publish.os/components/blog/copy-link.tsx +64 -0
  247. package/init/seed/minimal/publish.os/components/blog/frontmatter.ts +41 -0
  248. package/init/seed/minimal/publish.os/docs/content/get-started.mdx +2 -3
  249. package/init/seed/minimal/publish.os/docs/content/groups.mdx +5 -6
  250. package/init/seed/minimal/publish.os/publish.os.config.json +17 -2
  251. package/init/seed/minimal/publish.os/theme.css +3 -3
  252. package/init/seed/minimal/seed.json +12 -4
  253. package/init/seed/scratch/publish.os/docs/content/get-started.mdx +1 -1
  254. package/init/seed/scratch/publish.os/publish.os.config.json +1 -1
  255. package/package.json +48 -23
  256. package/release/app/phosphor/package.json +4 -4
  257. package/release/app/phosphor/pnpm-lock.yaml.template +123 -184
  258. package/release/compiler/package.json +5 -3
  259. package/release/compiler/pnpm-lock.yaml.template +153 -183
  260. package/release/release.json +6 -6
  261. package/dist/button-CtzUJB8u.d.ts +0 -11
  262. package/dist/chunk-535TM4A5.js +0 -1455
  263. package/dist/chunk-B2V22WRT.js +0 -297
  264. package/dist/chunk-NECL5IBJ.js +0 -318
  265. package/dist/chunk-SVYGXXYR.js +0 -36
  266. package/dist/chunk-UF6ATARM.js +0 -1100
  267. package/dist/compose-NN23UJGC.js +0 -13
  268. package/dist/ide-support-ZNW7ODFY.js +0 -15
  269. package/dist/kernel/components/blocks/design-system-preview.d.ts +0 -61
  270. package/dist/kernel/components/blocks/design-system-preview.js +0 -667
  271. package/dist/kernel/components/blocks/link-playground.d.ts +0 -5
  272. package/dist/kernel/components/blocks/link-playground.js +0 -744
  273. package/dist/kernel/components/blocks/navigation-progress-playground.d.ts +0 -5
  274. package/dist/kernel/components/blocks/navigation-progress-playground.js +0 -629
  275. package/dist/kernel/components/ui/theme-toggle.d.ts +0 -24
  276. package/dist/kernel/components/ui/theme-toggle.js +0 -53
  277. package/dist/sidebar-types-DKpR27II.d.ts +0 -25
  278. package/dist/types-BzkZty3r.d.ts +0 -147
  279. package/dist/types-CJWRG05y.d.ts +0 -76
  280. package/dist/types-CUtrppxt.d.ts +0 -69
  281. package/dist/validate-local-source-XRL2Y7XE.js +0 -14
  282. package/dist/validate-publish-os-source-DAPZ4QGE.js +0 -12
  283. package/init/seed/minimal/publish.os/assets/favicon/favicon.dark.png +0 -0
  284. package/init/seed/minimal/publish.os/assets/favicon/favicon.png +0 -0
@@ -1,667 +0,0 @@
1
- "use client";
2
-
3
- // src/modules/design-system/design-system-preview.tsx
4
- import { AnimatedIconSwap } from "@publish.os/nextjs/kernel/components/blocks/animated-icon-swap";
5
- import ColorPalette from "@publish.os/nextjs/kernel/components/blocks/color-palette";
6
- import { Callout } from "@publish.os/nextjs/kernel/components/mdx/components/callout";
7
- import { InlineCode } from "@publish.os/nextjs/kernel/components/mdx/components/inline-code";
8
- import {
9
- Accordion,
10
- AccordionHeader,
11
- AccordionItem,
12
- AccordionPanel,
13
- AccordionTrigger
14
- } from "@publish.os/nextjs/kernel/components/ui/accordion";
15
- import {
16
- Breadcrumb,
17
- BreadcrumbItem,
18
- BreadcrumbLink,
19
- BreadcrumbList,
20
- BreadcrumbPage,
21
- BreadcrumbSeparator
22
- } from "@publish.os/nextjs/kernel/components/ui/breadcrumb";
23
- import { Button, buttonVariants } from "@publish.os/nextjs/kernel/components/ui/button";
24
- import {
25
- ButtonGroup,
26
- ButtonGroupSeparator,
27
- ButtonGroupText
28
- } from "@publish.os/nextjs/kernel/components/ui/button-group";
29
- import {
30
- Card,
31
- CardContent,
32
- CardDescription,
33
- CardHeader,
34
- CardTitle
35
- } from "@publish.os/nextjs/kernel/components/ui/card";
36
- import {
37
- Dialog,
38
- DialogBackdrop,
39
- DialogPopup,
40
- DialogPortal,
41
- DialogTitle,
42
- DialogTrigger
43
- } from "@publish.os/nextjs/kernel/components/ui/dialog";
44
- import {
45
- Drawer,
46
- DrawerPopup,
47
- DrawerPortal,
48
- DrawerTitle,
49
- DrawerTrigger,
50
- DrawerViewport
51
- } from "@publish.os/nextjs/kernel/components/ui/drawer";
52
- import { Input } from "@publish.os/nextjs/kernel/components/ui/input";
53
- import { Kbd } from "@publish.os/nextjs/kernel/components/ui/kbd";
54
- import { Link } from "@publish.os/nextjs/kernel/components/ui/link";
55
- import {
56
- Menu,
57
- MenuItem,
58
- MenuPopup,
59
- MenuPortal,
60
- MenuPositioner,
61
- MenuTrigger
62
- } from "@publish.os/nextjs/kernel/components/ui/menu";
63
- import { ModKey } from "@publish.os/nextjs/kernel/components/ui/mod-key";
64
- import {
65
- Popover,
66
- PopoverPopup,
67
- PopoverPortal,
68
- PopoverPositioner,
69
- PopoverTitle,
70
- PopoverTrigger
71
- } from "@publish.os/nextjs/kernel/components/ui/popover";
72
- import {
73
- Progress,
74
- ProgressIndicator,
75
- ProgressTrack
76
- } from "@publish.os/nextjs/kernel/components/ui/progress";
77
- import { ScrollArea } from "@publish.os/nextjs/kernel/components/ui/scroll-area";
78
- import {
79
- Select,
80
- SelectIcon,
81
- SelectItem,
82
- SelectItemIndicator,
83
- SelectItemText,
84
- SelectList,
85
- SelectPopup,
86
- SelectPortal,
87
- SelectPositioner,
88
- SelectTrigger,
89
- SelectValue
90
- } from "@publish.os/nextjs/kernel/components/ui/select";
91
- import { Separator } from "@publish.os/nextjs/kernel/components/ui/separator";
92
- import {
93
- Table,
94
- TableBody,
95
- TableCell,
96
- TableHead,
97
- TableHeader,
98
- TableRow
99
- } from "@publish.os/nextjs/kernel/components/ui/table";
100
- import {
101
- NavigationTabs,
102
- NavigationTabsIndicator,
103
- NavigationTabsLink,
104
- NavigationTabsList,
105
- Tabs,
106
- TabsIndicator,
107
- TabsList,
108
- TabsPanel,
109
- TabsTab
110
- } from "@publish.os/nextjs/kernel/components/ui/tabs";
111
- import { Tag } from "@publish.os/nextjs/kernel/components/ui/tag";
112
- import { Text } from "@publish.os/nextjs/kernel/components/ui/text";
113
- import {
114
- Toast,
115
- ToastContent,
116
- ToastDescription,
117
- ToastProvider,
118
- ToastTitle
119
- } from "@publish.os/nextjs/kernel/components/ui/toast";
120
- import {
121
- Tooltip,
122
- TooltipPopup,
123
- TooltipPortal,
124
- TooltipPositioner,
125
- TooltipProvider,
126
- TooltipTrigger
127
- } from "@publish.os/nextjs/kernel/components/ui/tooltip";
128
- import { CheckIcon, CopyIcon } from "@phosphor-icons/react/ssr";
129
- import { useState } from "react";
130
- import { jsx, jsxs } from "react/jsx-runtime";
131
- var tabs = [
132
- { id: "tokens", label: "Tokens" },
133
- { id: "typography", label: "Typography" },
134
- { id: "ui", label: "UI" },
135
- { id: "mdx", label: "MDX" },
136
- { id: "blocks", label: "Blocks" }
137
- ], scrollRows = Array.from({ length: 8 }, (_, index) => ({
138
- id: `row-${index + 1}`,
139
- label: `Scrollable row ${index + 1}`
140
- }));
141
- function hasFixture(items, name) {
142
- return items.some((item) => item.name === name);
143
- }
144
- function PreviewCell({
145
- children,
146
- name
147
- }) {
148
- return /* @__PURE__ */ jsxs("section", { className: "relative flex min-h-72 items-center justify-center border-b border-r border-stroke-3 bg-surface-1 p-8", children: [
149
- /* @__PURE__ */ jsx("h3", { className: "absolute left-4 top-4 text-xs font-medium text-foreground-3", children: name }),
150
- children
151
- ] });
152
- }
153
- function TypographyPreview() {
154
- return /* @__PURE__ */ jsxs("div", { className: "grid border-l border-t border-stroke-3 md:grid-cols-2", children: [
155
- /* @__PURE__ */ jsx(PreviewCell, { name: "Headings", children: /* @__PURE__ */ jsxs("div", { className: "space-y-3 text-foreground-1", children: [
156
- /* @__PURE__ */ jsx("h1", { className: "text-4xl font-semibold tracking-tight", children: "Heading One" }),
157
- /* @__PURE__ */ jsx("h2", { className: "text-2xl font-semibold tracking-tight", children: "Heading Two" }),
158
- /* @__PURE__ */ jsx("h3", { className: "text-xl font-medium", children: "Heading Three" })
159
- ] }) }),
160
- /* @__PURE__ */ jsx(PreviewCell, { name: "Paragraph", children: /* @__PURE__ */ jsx(Text, { className: "max-w-md text-foreground-2", children: "Good typography keeps dense documentation readable while leaving enough contrast for scanning headings, links, and inline code." }) }),
161
- /* @__PURE__ */ jsx(PreviewCell, { name: "Inline", children: /* @__PURE__ */ jsxs("p", { className: "text-sm leading-7 text-foreground-2", children: [
162
- "A paragraph with ",
163
- /* @__PURE__ */ jsx(Link, { href: "/ds", children: "a link" }),
164
- ",",
165
- " ",
166
- /* @__PURE__ */ jsx(InlineCode, { children: "code" }),
167
- ", and ",
168
- /* @__PURE__ */ jsx(Kbd, { children: "K" }),
169
- "."
170
- ] }) }),
171
- /* @__PURE__ */ jsx(PreviewCell, { name: "Longform", children: /* @__PURE__ */ jsx("blockquote", { className: "max-w-md border-l-2 border-accent-1 pl-4 text-sm leading-7 text-foreground-2", children: "The preview should reveal how content feels in real reading contexts, not only as isolated color chips." }) })
172
- ] });
173
- }
174
- function UiPreview({ items = [] }) {
175
- return /* @__PURE__ */ jsxs("div", { className: "grid border-l border-t border-stroke-3 md:grid-cols-2 xl:grid-cols-4", children: [
176
- items.map((item) => /* @__PURE__ */ jsx(PreviewCell, { name: item.name, children: item.children }, item.name)),
177
- !hasFixture(items, "Button") && /* @__PURE__ */ jsx(PreviewCell, { name: "Button", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-3", children: [
178
- /* @__PURE__ */ jsx(Button, { children: "Solid" }),
179
- /* @__PURE__ */ jsx(Button, { variant: "soft", children: "Soft" }),
180
- /* @__PURE__ */ jsx(Button, { disabled: !0, variant: "outline", children: "Disabled" })
181
- ] }) }),
182
- /* @__PURE__ */ jsx(PreviewCell, { name: "ButtonGroup", children: /* @__PURE__ */ jsxs("div", { className: "grid gap-4", children: [
183
- /* @__PURE__ */ jsxs(ButtonGroup, { children: [
184
- /* @__PURE__ */ jsx(Button, { variant: "soft", children: "Draft" }),
185
- /* @__PURE__ */ jsx(Button, { variant: "soft", children: "Preview" }),
186
- /* @__PURE__ */ jsx(Button, { variant: "soft", children: "Publish" })
187
- ] }),
188
- /* @__PURE__ */ jsxs(ButtonGroup, { children: [
189
- /* @__PURE__ */ jsx(ButtonGroupText, { size: "sm", children: "v1.2.0" }),
190
- /* @__PURE__ */ jsx(ButtonGroupSeparator, {}),
191
- /* @__PURE__ */ jsx(Button, { size: "sm", variant: "outline", children: "Copy" })
192
- ] }),
193
- /* @__PURE__ */ jsxs(ButtonGroup, { orientation: "vertical", children: [
194
- /* @__PURE__ */ jsx(Button, { size: "sm", variant: "soft", children: "Move up" }),
195
- /* @__PURE__ */ jsx(Button, { size: "sm", variant: "soft", children: "Move down" })
196
- ] })
197
- ] }) }),
198
- /* @__PURE__ */ jsx(PreviewCell, { name: "Tag", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap justify-center gap-2", children: [
199
- /* @__PURE__ */ jsx(Tag, { children: "Solid" }),
200
- /* @__PURE__ */ jsx(Tag, { variant: "soft", children: "Soft" }),
201
- /* @__PURE__ */ jsx(Tag, { variant: "outline", children: "Outline" }),
202
- /* @__PURE__ */ jsx(Tag, { borderStyle: "dotted", tone: "accent", variant: "soft", children: "Beta" })
203
- ] }) }),
204
- /* @__PURE__ */ jsx(PreviewCell, { name: "Input", children: /* @__PURE__ */ jsxs(
205
- "label",
206
- {
207
- className: "grid w-full max-w-xs gap-2 text-sm text-foreground-2",
208
- htmlFor: "design-system-preview-email",
209
- children: [
210
- "Email",
211
- /* @__PURE__ */ jsx(
212
- Input,
213
- {
214
- id: "design-system-preview-email",
215
- placeholder: "name@example.com",
216
- type: "email"
217
- }
218
- )
219
- ]
220
- }
221
- ) }),
222
- /* @__PURE__ */ jsx(PreviewCell, { name: "Link", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-3", children: [
223
- /* @__PURE__ */ jsx(Link, { color: "default", href: "#", variant: "link.standalone", children: "Default standalone" }),
224
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "#", variant: "link.inline", children: "Accent inline" }),
225
- /* @__PURE__ */ jsx(
226
- Link,
227
- {
228
- color: "default",
229
- href: "#",
230
- leftIcon: /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\u2190" }),
231
- variant: "link.standalone",
232
- children: "Back to overview"
233
- }
234
- ),
235
- /* @__PURE__ */ jsx(
236
- Link,
237
- {
238
- color: "accent",
239
- href: "#",
240
- rightIcon: /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\u2197" }),
241
- variant: "link.standalone",
242
- children: "External resource"
243
- }
244
- ),
245
- /* @__PURE__ */ jsx(Link, { color: "accent", disabled: !0, href: "#", variant: "link.standalone", children: "Disabled link" }),
246
- /* @__PURE__ */ jsx(Link, { href: "#", size: "sm", variant: "button.solid", children: "Link as button" })
247
- ] }) }),
248
- /* @__PURE__ */ jsx(PreviewCell, { name: "Link colors", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-3", children: [
249
- /* @__PURE__ */ jsx(Link, { href: "/ds", color: "green-300", children: "Docs" }),
250
- /* @__PURE__ */ jsx(Link, { href: "/ds", color: "purple-800", children: "Purple link" }),
251
- /* @__PURE__ */ jsx(Link, { href: "/ds", color: "accent-1-hover", children: "Accent hover" }),
252
- /* @__PURE__ */ jsx(Link, { href: "/ds", color: "foreground-3", children: "Foreground 3" }),
253
- /* @__PURE__ */ jsx(Link, { href: "/ds", color: "--brand-link", children: "Brand var" }),
254
- /* @__PURE__ */ jsx(Link, { href: "/ds", color: "var(--brand-link)", children: "Brand var" }),
255
- /* @__PURE__ */ jsx(Link, { href: "/ds", color: "oklch(55% 0.18 280)", children: "Raw OKLCH" })
256
- ] }) }),
257
- /* @__PURE__ */ jsx(PreviewCell, { name: "Link Scale", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-2", children: [
258
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "#", size: "xs", variant: "link.standalone", children: "Extra small link" }),
259
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "#", size: "sm", variant: "link.standalone", children: "Small link" }),
260
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "#", size: "md", variant: "link.standalone", children: "Medium link" }),
261
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "#", size: "lg", variant: "link.standalone", children: "Large link" }),
262
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "#", size: "xl", variant: "link.standalone", children: "Extra large link" })
263
- ] }) }),
264
- /* @__PURE__ */ jsx(PreviewCell, { name: "Link Inline", children: /* @__PURE__ */ jsxs("div", { className: "max-w-xs text-sm leading-7 text-foreground-2", children: [
265
- "Start:",
266
- /* @__PURE__ */ jsxs("ol", { className: "mt-2 list-decimal space-y-1 pl-6", children: [
267
- /* @__PURE__ */ jsxs("li", { children: [
268
- "Connect a",
269
- " ",
270
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "#", variant: "link.inline", children: "custom domain" })
271
- ] }),
272
- /* @__PURE__ */ jsxs("li", { children: [
273
- "Review the",
274
- " ",
275
- /* @__PURE__ */ jsx(Link, { color: "default", href: "#", variant: "link.inline", children: "deployment checklist" })
276
- ] })
277
- ] })
278
- ] }) }),
279
- /* @__PURE__ */ jsx(PreviewCell, { name: "Composed styles", children: /* @__PURE__ */ jsxs("div", { className: "grid w-full max-w-sm gap-5", children: [
280
- /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
281
- /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#", children: "Default" }) }),
282
- /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
283
- /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#", variant: "link.standalone", children: "Link" }) }),
284
- /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
285
- /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { href: "#", size: "sm", variant: "button.ghost", children: "Button" }) }),
286
- /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
287
- /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: "Page" }) })
288
- ] }) }),
289
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
290
- /* @__PURE__ */ jsx(Link, { href: "#", variant: "link.inline", children: "Link inline" }),
291
- /* @__PURE__ */ jsx(Link, { href: "#", size: "sm", variant: "button.soft", children: "Link button" }),
292
- /* @__PURE__ */ jsx(Button, { size: "sm", variant: "soft", children: "Button" })
293
- ] })
294
- ] }) }),
295
- /* @__PURE__ */ jsx(PreviewCell, { name: "Text", children: /* @__PURE__ */ jsxs("div", { className: "max-w-xs space-y-2", children: [
296
- /* @__PURE__ */ jsx(Text, { weight: "semibold", children: "Body text" }),
297
- /* @__PURE__ */ jsx(Text, { className: "text-foreground-2", size: "sm", children: "Supporting copy" }),
298
- /* @__PURE__ */ jsx(Text, { size: "xs", variant: "label", children: "Small interface text" }),
299
- /* @__PURE__ */ jsx(Text, { size: "xs", variant: "overline", children: "Overline" })
300
- ] }) }),
301
- /* @__PURE__ */ jsx(PreviewCell, { name: "Select", children: /* @__PURE__ */ jsxs(Select, { defaultValue: "docs", children: [
302
- /* @__PURE__ */ jsxs(SelectTrigger, { className: "w-48", children: [
303
- /* @__PURE__ */ jsx(SelectValue, { placeholder: "Choose section" }),
304
- /* @__PURE__ */ jsx(SelectIcon, {})
305
- ] }),
306
- /* @__PURE__ */ jsx(SelectPortal, { children: /* @__PURE__ */ jsx(SelectPositioner, { children: /* @__PURE__ */ jsx(SelectPopup, { children: /* @__PURE__ */ jsxs(SelectList, { children: [
307
- /* @__PURE__ */ jsxs(SelectItem, { value: "docs", children: [
308
- /* @__PURE__ */ jsx(SelectItemIndicator, {}),
309
- /* @__PURE__ */ jsx(SelectItemText, { children: "Docs" })
310
- ] }),
311
- /* @__PURE__ */ jsxs(SelectItem, { value: "api", children: [
312
- /* @__PURE__ */ jsx(SelectItemIndicator, {}),
313
- /* @__PURE__ */ jsx(SelectItemText, { children: "API" })
314
- ] })
315
- ] }) }) }) })
316
- ] }) }),
317
- /* @__PURE__ */ jsx(PreviewCell, { name: "ScrollArea", children: /* @__PURE__ */ jsx(
318
- ScrollArea,
319
- {
320
- className: "h-36 w-56 border border-stroke-2",
321
- contentClassName: "space-y-3 p-4 text-sm text-foreground-2",
322
- mask: { height: 16 },
323
- variant: "gradient",
324
- children: scrollRows.map((row) => /* @__PURE__ */ jsx("p", { children: row.label }, row.id))
325
- }
326
- ) }),
327
- /* @__PURE__ */ jsx(PreviewCell, { name: "Tooltip", children: /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs(Tooltip, { children: [
328
- /* @__PURE__ */ jsx(TooltipTrigger, { className: buttonVariants({ variant: "outline" }), children: "Hover" }),
329
- /* @__PURE__ */ jsx(TooltipPortal, { children: /* @__PURE__ */ jsx(TooltipPositioner, { children: /* @__PURE__ */ jsx(TooltipPopup, { children: "Helpful detail" }) }) })
330
- ] }) }) }),
331
- /* @__PURE__ */ jsx(PreviewCell, { name: "Popover", children: /* @__PURE__ */ jsxs(Popover, { children: [
332
- /* @__PURE__ */ jsx(PopoverTrigger, { className: buttonVariants({ variant: "outline" }), children: "Open" }),
333
- /* @__PURE__ */ jsx(PopoverPortal, { children: /* @__PURE__ */ jsx(PopoverPositioner, { children: /* @__PURE__ */ jsxs(PopoverPopup, { children: [
334
- /* @__PURE__ */ jsx(PopoverTitle, { children: "Popover" }),
335
- /* @__PURE__ */ jsx(Text, { className: "mt-2 text-foreground-2", size: "sm", children: "Floating content with tokenized surface styles." })
336
- ] }) }) })
337
- ] }) }),
338
- /* @__PURE__ */ jsx(PreviewCell, { name: "Dialog", children: /* @__PURE__ */ jsxs(Dialog, { children: [
339
- /* @__PURE__ */ jsx(DialogTrigger, { className: buttonVariants({ variant: "outline" }), children: "Open dialog" }),
340
- /* @__PURE__ */ jsxs(DialogPortal, { children: [
341
- /* @__PURE__ */ jsx(DialogBackdrop, {}),
342
- /* @__PURE__ */ jsxs(DialogPopup, { children: [
343
- /* @__PURE__ */ jsx(DialogTitle, { children: "Dialog title" }),
344
- /* @__PURE__ */ jsx(Text, { className: "mt-2 text-foreground-2", size: "sm", children: "Accessible modal behavior is handled by Base UI." })
345
- ] })
346
- ] })
347
- ] }) }),
348
- /* @__PURE__ */ jsx(PreviewCell, { name: "Menu", children: /* @__PURE__ */ jsxs(Menu, { children: [
349
- /* @__PURE__ */ jsx(MenuTrigger, { className: buttonVariants({ variant: "outline" }), children: "Actions" }),
350
- /* @__PURE__ */ jsx(MenuPortal, { children: /* @__PURE__ */ jsx(MenuPositioner, { children: /* @__PURE__ */ jsxs(MenuPopup, { children: [
351
- /* @__PURE__ */ jsx(MenuItem, { children: "Copy link" }),
352
- /* @__PURE__ */ jsx(MenuItem, { children: "Open settings" })
353
- ] }) }) })
354
- ] }) }),
355
- /* @__PURE__ */ jsx(PreviewCell, { name: "Drawer", children: /* @__PURE__ */ jsxs(Drawer, { children: [
356
- /* @__PURE__ */ jsx(DrawerTrigger, { className: buttonVariants({ variant: "outline" }), children: "Open drawer" }),
357
- /* @__PURE__ */ jsx(DrawerPortal, { children: /* @__PURE__ */ jsx(DrawerViewport, { children: /* @__PURE__ */ jsxs(DrawerPopup, { children: [
358
- /* @__PURE__ */ jsx(DrawerTitle, { children: "Drawer" }),
359
- /* @__PURE__ */ jsx(Text, { className: "mt-2 text-foreground-2", size: "sm", children: "Responsive panel for contextual actions." })
360
- ] }) }) })
361
- ] }) }),
362
- /* @__PURE__ */ jsx(PreviewCell, { name: "Tabs base", children: /* @__PURE__ */ jsxs(Tabs, { className: "w-full max-w-xs", defaultValue: "one", variant: "base", children: [
363
- /* @__PURE__ */ jsxs(TabsList, { "aria-label": "Base tabs", children: [
364
- /* @__PURE__ */ jsx(TabsTab, { value: "one", children: "One" }),
365
- /* @__PURE__ */ jsx(TabsTab, { value: "two", children: "Two" })
366
- ] }),
367
- /* @__PURE__ */ jsx(TabsPanel, { className: "mt-4 text-sm text-foreground-2", value: "one", children: "First panel" }),
368
- /* @__PURE__ */ jsx(TabsPanel, { className: "mt-4 text-sm text-foreground-2", value: "two", children: "Second panel" })
369
- ] }) }),
370
- /* @__PURE__ */ jsx(PreviewCell, { name: "Tabs button", children: /* @__PURE__ */ jsxs(Tabs, { className: "w-full max-w-xs", defaultValue: "draft", variant: "button", children: [
371
- /* @__PURE__ */ jsxs(TabsList, { "aria-label": "Button tabs", children: [
372
- /* @__PURE__ */ jsx(TabsTab, { value: "draft", children: "Draft" }),
373
- /* @__PURE__ */ jsx(TabsTab, { value: "review", children: "Review" }),
374
- /* @__PURE__ */ jsx(TabsTab, { value: "live", children: "Live" })
375
- ] }),
376
- /* @__PURE__ */ jsx(TabsPanel, { className: "mt-4 text-sm text-foreground-2", value: "draft", children: "Draft changes" }),
377
- /* @__PURE__ */ jsx(TabsPanel, { className: "mt-4 text-sm text-foreground-2", value: "review", children: "Review queue" }),
378
- /* @__PURE__ */ jsx(TabsPanel, { className: "mt-4 text-sm text-foreground-2", value: "live", children: "Live version" })
379
- ] }) }),
380
- /* @__PURE__ */ jsx(PreviewCell, { name: "Tabs underline", children: /* @__PURE__ */ jsxs(
381
- Tabs,
382
- {
383
- className: "w-full max-w-xs",
384
- defaultValue: "overview",
385
- indicatorColor: "accent",
386
- variant: "underline",
387
- children: [
388
- /* @__PURE__ */ jsxs(TabsList, { "aria-label": "Underline tabs", children: [
389
- /* @__PURE__ */ jsx(TabsTab, { value: "overview", children: "Overview" }),
390
- /* @__PURE__ */ jsx(TabsTab, { value: "activity", children: "Activity" }),
391
- /* @__PURE__ */ jsx(TabsTab, { value: "settings", children: "Settings" }),
392
- /* @__PURE__ */ jsx(TabsIndicator, {})
393
- ] }),
394
- /* @__PURE__ */ jsx(
395
- TabsPanel,
396
- {
397
- className: "mt-4 text-sm text-foreground-2",
398
- value: "overview",
399
- children: "Publication summary"
400
- }
401
- ),
402
- /* @__PURE__ */ jsx(
403
- TabsPanel,
404
- {
405
- className: "mt-4 text-sm text-foreground-2",
406
- value: "activity",
407
- children: "Recent updates"
408
- }
409
- ),
410
- /* @__PURE__ */ jsx(
411
- TabsPanel,
412
- {
413
- className: "mt-4 text-sm text-foreground-2",
414
- value: "settings",
415
- children: "Project settings"
416
- }
417
- )
418
- ]
419
- }
420
- ) }),
421
- /* @__PURE__ */ jsx(PreviewCell, { name: "NavigationTabs", children: /* @__PURE__ */ jsxs("div", { className: "grid w-full max-w-sm gap-4", children: [
422
- /* @__PURE__ */ jsx(NavigationTabs, { defaultValue: "docs", variant: "base", children: /* @__PURE__ */ jsxs(NavigationTabsList, { "aria-label": "Base navigation tabs", children: [
423
- /* @__PURE__ */ jsx(NavigationTabsLink, { active: !0, href: "#docs", value: "docs", children: "Docs" }),
424
- /* @__PURE__ */ jsx(NavigationTabsLink, { href: "#api", value: "api", children: "API" })
425
- ] }) }),
426
- /* @__PURE__ */ jsx(NavigationTabs, { defaultValue: "drafts", variant: "button", children: /* @__PURE__ */ jsxs(NavigationTabsList, { "aria-label": "Button navigation tabs", children: [
427
- /* @__PURE__ */ jsx(NavigationTabsLink, { active: !0, href: "#drafts", value: "drafts", children: "Drafts" }),
428
- /* @__PURE__ */ jsx(NavigationTabsLink, { href: "#published", value: "published", children: "Published" })
429
- ] }) }),
430
- /* @__PURE__ */ jsx(
431
- NavigationTabs,
432
- {
433
- defaultValue: "overview",
434
- indicatorColor: "foreground",
435
- variant: "underline",
436
- children: /* @__PURE__ */ jsxs(NavigationTabsList, { "aria-label": "Underline navigation tabs", children: [
437
- /* @__PURE__ */ jsx(NavigationTabsLink, { active: !0, href: "#overview", value: "overview", children: "Overview" }),
438
- /* @__PURE__ */ jsx(NavigationTabsLink, { href: "#analytics", value: "analytics", children: "Analytics" }),
439
- /* @__PURE__ */ jsx(NavigationTabsIndicator, {})
440
- ] })
441
- }
442
- )
443
- ] }) }),
444
- /* @__PURE__ */ jsx(PreviewCell, { name: "Progress", children: /* @__PURE__ */ jsx(Progress, { className: "w-full max-w-xs", value: 64, children: /* @__PURE__ */ jsx(ProgressTrack, { children: /* @__PURE__ */ jsx(ProgressIndicator, {}) }) }) }),
445
- /* @__PURE__ */ jsx(PreviewCell, { name: "Accordion", children: /* @__PURE__ */ jsx(Accordion, { className: "w-full max-w-xs", defaultValue: ["one"], children: /* @__PURE__ */ jsxs(AccordionItem, { value: "one", children: [
446
- /* @__PURE__ */ jsx(AccordionHeader, { children: /* @__PURE__ */ jsx(AccordionTrigger, { children: "Section" }) }),
447
- /* @__PURE__ */ jsx(AccordionPanel, { children: "Expandable content preview." })
448
- ] }) }) }),
449
- /* @__PURE__ */ jsx(PreviewCell, { name: "ModKey", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
450
- /* @__PURE__ */ jsx(ModKey, {}),
451
- /* @__PURE__ */ jsx(Kbd, { children: "K" })
452
- ] }) }),
453
- /* @__PURE__ */ jsx(PreviewCell, { name: "Toast", children: /* @__PURE__ */ jsx(ToastProvider, { children: /* @__PURE__ */ jsx(Toast, { className: "w-full max-w-xs", toast: { id: "preview" }, children: /* @__PURE__ */ jsxs(ToastContent, { children: [
454
- /* @__PURE__ */ jsx(ToastTitle, { children: "Saved" }),
455
- /* @__PURE__ */ jsx(ToastDescription, { children: "Changes are ready to publish." })
456
- ] }) }) }) }),
457
- /* @__PURE__ */ jsx(PreviewCell, { name: "Kbd", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
458
- /* @__PURE__ */ jsx(Kbd, { children: "\u2318" }),
459
- /* @__PURE__ */ jsx(Kbd, { children: "K" }),
460
- /* @__PURE__ */ jsx(Kbd, { children: "Esc" })
461
- ] }) }),
462
- /* @__PURE__ */ jsx(PreviewCell, { name: "Card", children: /* @__PURE__ */ jsxs(Card, { className: "w-full max-w-xs", variant: "elevated", children: [
463
- /* @__PURE__ */ jsxs(CardHeader, { children: [
464
- /* @__PURE__ */ jsx(CardTitle, { children: "Card title" }),
465
- /* @__PURE__ */ jsx(CardDescription, { children: "Uses surface, stroke, radius, and foreground tokens." })
466
- ] }),
467
- /* @__PURE__ */ jsxs(CardContent, { children: [
468
- /* @__PURE__ */ jsx(Separator, {}),
469
- /* @__PURE__ */ jsx("p", { className: "mt-4 text-sm text-foreground-2", children: "Composable content." })
470
- ] })
471
- ] }) })
472
- ] });
473
- }
474
- function MdxPreview({ items = [] }) {
475
- return /* @__PURE__ */ jsxs("div", { className: "grid border-l border-t border-stroke-3 md:grid-cols-2 xl:grid-cols-4", children: [
476
- items.map((item) => /* @__PURE__ */ jsx(PreviewCell, { name: item.name, children: item.children }, item.name)),
477
- !hasFixture(items, "Link") && /* @__PURE__ */ jsx(PreviewCell, { name: "Link", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-3", children: [
478
- /* @__PURE__ */ jsx(Link, { color: "default", href: "/ds", variant: "link.standalone", children: "Default standalone" }),
479
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "/ds", variant: "link.inline", children: "Accent inline" }),
480
- /* @__PURE__ */ jsx(Link, { href: "/ds", size: "sm", variant: "button.solid", children: "Button link" })
481
- ] }) }),
482
- /* @__PURE__ */ jsx(PreviewCell, { name: "MDX Links", children: /* @__PURE__ */ jsxs("div", { className: "max-w-md space-y-4 text-sm leading-7 text-foreground-2", children: [
483
- /* @__PURE__ */ jsxs("p", { children: [
484
- "This MDX paragraph includes an",
485
- " ",
486
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "/ds", variant: "link.inline", children: "internal relative link" }),
487
- ", an",
488
- " ",
489
- /* @__PURE__ */ jsx(
490
- Link,
491
- {
492
- color: "accent",
493
- href: "https://example.com",
494
- variant: "link.inline",
495
- children: "external link"
496
- }
497
- ),
498
- ", a",
499
- " ",
500
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "/ds", variant: "link.inline", children: /* @__PURE__ */ jsx("strong", { children: "link with bold text" }) }),
501
- ", a",
502
- " ",
503
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "/ds", variant: "link.inline", children: /* @__PURE__ */ jsx("em", { children: "link with italics" }) }),
504
- ", and a",
505
- " ",
506
- /* @__PURE__ */ jsx(Link, { color: "accent", href: "/ds", variant: "link.inline", children: /* @__PURE__ */ jsx(InlineCode, { children: "linked inline code" }) }),
507
- "."
508
- ] }),
509
- /* @__PURE__ */ jsx("h3", { className: "text-lg font-medium leading-7 text-foreground-1", children: /* @__PURE__ */ jsx(Link, { color: "accent", href: "/ds", variant: "link.standalone", children: "Linked heading" }) })
510
- ] }) }),
511
- /* @__PURE__ */ jsx(PreviewCell, { name: "Callout", children: /* @__PURE__ */ jsx("div", { className: "grid w-full max-w-xl gap-3", children: ["neutral", "info", "warning", "danger", "success"].map(
512
- (color) => ["solid", "soft", "outline"].map((variant) => /* @__PURE__ */ jsxs(
513
- Callout,
514
- {
515
- color,
516
- title: `${color} \xB7 ${variant}`,
517
- variant,
518
- children: [
519
- /* @__PURE__ */ jsxs("p", { children: [
520
- "A callout with ",
521
- /* @__PURE__ */ jsx("strong", { children: "rich text" }),
522
- ",",
523
- " ",
524
- /* @__PURE__ */ jsx(InlineCode, { children: "inline code" }),
525
- ", and a",
526
- " ",
527
- /* @__PURE__ */ jsx("a", { href: "#callout", children: "link" }),
528
- "."
529
- ] }),
530
- /* @__PURE__ */ jsx("ul", { children: /* @__PURE__ */ jsx("li", { children: "Content stays readable at narrow widths." }) })
531
- ]
532
- },
533
- `${color}-${variant}`
534
- ))
535
- ) }) }),
536
- /* @__PURE__ */ jsx(PreviewCell, { name: "Table", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-xs", children: /* @__PURE__ */ jsxs(Table, { children: [
537
- /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
538
- /* @__PURE__ */ jsx(TableHead, { children: "Token" }),
539
- /* @__PURE__ */ jsx(TableHead, { children: "Use" })
540
- ] }) }),
541
- /* @__PURE__ */ jsx(TableBody, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
542
- /* @__PURE__ */ jsx(TableCell, { children: "surface-2" }),
543
- /* @__PURE__ */ jsx(TableCell, { children: "Panels" })
544
- ] }) })
545
- ] }) }) }),
546
- /* @__PURE__ */ jsx(PreviewCell, { name: "Code", children: /* @__PURE__ */ jsx("pre", { className: "max-w-xs overflow-auto rounded-codeblock border border-stroke-2 bg-surface-3 p-4 text-xs text-foreground-1", children: /* @__PURE__ */ jsx("code", { children: 'export const value = "publishOS";' }) }) })
547
- ] });
548
- }
549
- function CopyToClipboardPreview() {
550
- let [copied, setCopied] = useState(!1);
551
- function handleCopy() {
552
- navigator.clipboard?.writeText("pnpm publish.os add block"), setCopied(!0), window.setTimeout(() => setCopied(!1), 1200);
553
- }
554
- return /* @__PURE__ */ jsx(
555
- Button,
556
- {
557
- "aria-label": copied ? "Copied command" : "Copy command",
558
- leftIcon: /* @__PURE__ */ jsx(
559
- AnimatedIconSwap,
560
- {
561
- active: copied,
562
- activeIcon: /* @__PURE__ */ jsx(CheckIcon, { "aria-hidden": "true" }),
563
- defaultIcon: /* @__PURE__ */ jsx(CopyIcon, { "aria-hidden": "true" }),
564
- size: 16
565
- }
566
- ),
567
- onClick: handleCopy,
568
- variant: "soft",
569
- children: "Copy"
570
- }
571
- );
572
- }
573
- function BlocksPreview({
574
- items = []
575
- }) {
576
- return /* @__PURE__ */ jsxs("div", { className: "grid border-l border-t border-stroke-3", children: [
577
- items.map((item) => /* @__PURE__ */ jsxs(
578
- "section",
579
- {
580
- className: "border-b border-r border-stroke-3 bg-surface-1",
581
- children: [
582
- /* @__PURE__ */ jsx("h3", { className: "px-4 pt-4 text-xs font-medium text-foreground-3", children: item.name }),
583
- /* @__PURE__ */ jsx("div", { className: "mt-8", children: item.children })
584
- ]
585
- },
586
- item.name
587
- )),
588
- !hasFixture(items, "Navbar") && /* @__PURE__ */ jsxs("section", { className: "border-b border-r border-stroke-3 bg-surface-1", children: [
589
- /* @__PURE__ */ jsx("h3", { className: "px-4 pt-4 text-xs font-medium text-foreground-3", children: "Navbar" }),
590
- /* @__PURE__ */ jsx("div", { className: "mt-8 border-y border-stroke-3 bg-surface-2 px-6 py-4", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex max-w-6xl flex-col gap-3 md:flex-row md:items-center md:justify-between", children: [
591
- /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-foreground-1", children: "publishOS / Docs / Introduction" }),
592
- /* @__PURE__ */ jsxs("nav", { className: "flex flex-wrap gap-4", children: [
593
- /* @__PURE__ */ jsx(Link, { active: !0, color: "accent", href: "#", size: "sm", children: "Docs" }),
594
- /* @__PURE__ */ jsx(Link, { href: "#", size: "sm", children: "Blog" }),
595
- /* @__PURE__ */ jsx(Link, { href: "#", size: "sm", children: "Changelog" })
596
- ] })
597
- ] }) })
598
- ] }),
599
- !hasFixture(items, "AnimatedIconSwap") && /* @__PURE__ */ jsxs("section", { className: "border-b border-r border-stroke-3 bg-surface-1 p-4", children: [
600
- /* @__PURE__ */ jsx("h3", { className: "text-xs font-medium text-foreground-3", children: "AnimatedIconSwap" }),
601
- /* @__PURE__ */ jsx("div", { className: "mt-8 flex justify-center", children: /* @__PURE__ */ jsx(CopyToClipboardPreview, {}) })
602
- ] }),
603
- /* @__PURE__ */ jsxs("section", { className: "border-b border-r border-stroke-3 bg-surface-1 p-4", children: [
604
- /* @__PURE__ */ jsx("h3", { className: "text-xs font-medium text-foreground-3", children: "Footer" }),
605
- /* @__PURE__ */ jsx("div", { className: "mt-8 border-t border-stroke-3 py-6 text-sm text-foreground-2", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex max-w-6xl justify-between", children: [
606
- /* @__PURE__ */ jsx("span", { children: "publishOS" }),
607
- /* @__PURE__ */ jsx("span", { children: "Docs, API, Status" })
608
- ] }) })
609
- ] })
610
- ] });
611
- }
612
- function ActivePanel({
613
- blocks,
614
- mdx,
615
- tab,
616
- ui
617
- }) {
618
- return tab === "tokens" ? /* @__PURE__ */ jsx(ColorPalette, {}) : tab === "typography" ? /* @__PURE__ */ jsx(TypographyPreview, {}) : tab === "ui" ? /* @__PURE__ */ jsx(UiPreview, { items: ui }) : tab === "mdx" ? /* @__PURE__ */ jsx(MdxPreview, { items: mdx }) : /* @__PURE__ */ jsx(BlocksPreview, { items: blocks });
619
- }
620
- function DesignSystemPreview({
621
- blocks,
622
- initialTab = "ui",
623
- mdx,
624
- tabComponents,
625
- ui
626
- }) {
627
- let [activeTab, setActiveTab] = useState(initialTab), TabsRoot = tabComponents?.Tabs ?? Tabs, TabsListRoot = tabComponents?.TabsList ?? TabsList, TabsPanelRoot = tabComponents?.TabsPanel ?? TabsPanel, TabsTabRoot = tabComponents?.TabsTab ?? TabsTab;
628
- return /* @__PURE__ */ jsx("section", { className: "w-full text-foreground-1", children: /* @__PURE__ */ jsxs(
629
- TabsRoot,
630
- {
631
- className: "w-full",
632
- onValueChange: (value) => setActiveTab(value),
633
- value: activeTab,
634
- children: [
635
- /* @__PURE__ */ jsx(
636
- TabsListRoot,
637
- {
638
- "aria-label": "Design system preview sections",
639
- className: "mb-4",
640
- children: tabs.map((tab) => /* @__PURE__ */ jsx(
641
- TabsTabRoot,
642
- {
643
- id: `design-system-tab-${tab.id}`,
644
- value: tab.id,
645
- children: tab.label
646
- },
647
- tab.id
648
- ))
649
- }
650
- ),
651
- /* @__PURE__ */ jsx(
652
- TabsPanelRoot,
653
- {
654
- "aria-labelledby": `design-system-tab-${activeTab}`,
655
- className: "overflow-hidden rounded-card border border-stroke-3 bg-surface-1",
656
- id: `design-system-${activeTab}`,
657
- value: activeTab,
658
- children: /* @__PURE__ */ jsx(ActivePanel, { blocks, mdx, tab: activeTab, ui })
659
- }
660
- )
661
- ]
662
- }
663
- ) });
664
- }
665
- export {
666
- DesignSystemPreview
667
- };