@nadicodeai/ui 9.2.1 → 10.0.1

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 (293) hide show
  1. package/AGENTS.md +1 -0
  2. package/README.md +4 -29
  3. package/dist/agent-orb.d.ts +3 -0
  4. package/dist/agent-orb.d.ts.map +1 -0
  5. package/dist/agent-orb.js +2 -0
  6. package/dist/assets/brand/aionlabs.svg +2 -0
  7. package/dist/assets/brand/airtable.svg +2 -0
  8. package/dist/assets/brand/apple.svg +2 -0
  9. package/dist/assets/brand/arcee.svg +2 -0
  10. package/dist/assets/brand/asana.svg +2 -0
  11. package/dist/assets/brand/atlassian.svg +2 -0
  12. package/dist/assets/brand/baidu.svg +2 -0
  13. package/dist/assets/brand/bytedance.svg +2 -0
  14. package/dist/assets/brand/claude.svg +2 -0
  15. package/dist/assets/brand/cohere.svg +2 -0
  16. package/dist/assets/brand/datadog.svg +2 -0
  17. package/dist/assets/brand/deepseek.svg +2 -0
  18. package/dist/assets/brand/discord.svg +2 -0
  19. package/dist/assets/brand/dolphin.svg +2 -0
  20. package/dist/assets/brand/dotsstudio.svg +2 -0
  21. package/dist/assets/brand/figma.svg +2 -0
  22. package/dist/assets/brand/gemini.svg +2 -0
  23. package/dist/assets/brand/github.svg +2 -0
  24. package/dist/assets/brand/gitlab.svg +2 -0
  25. package/dist/assets/brand/gmail.svg +2 -0
  26. package/dist/assets/brand/google-calendar.svg +2 -0
  27. package/dist/assets/brand/google-drive.svg +2 -0
  28. package/dist/assets/brand/grok.svg +2 -0
  29. package/dist/assets/brand/huggingface.svg +2 -0
  30. package/dist/assets/brand/ibm.svg +2 -0
  31. package/dist/assets/brand/inception.svg +2 -0
  32. package/dist/assets/brand/inclusionai.svg +2 -0
  33. package/dist/assets/brand/index.json +778 -0
  34. package/dist/assets/brand/inference.svg +2 -0
  35. package/dist/assets/brand/intercom.svg +2 -0
  36. package/dist/assets/brand/jira.svg +2 -0
  37. package/dist/assets/brand/kwaipilot.svg +2 -0
  38. package/dist/assets/brand/linear.svg +2 -0
  39. package/dist/assets/brand/linux.svg +2 -0
  40. package/dist/assets/brand/liquid.svg +2 -0
  41. package/dist/assets/brand/longcat.svg +2 -0
  42. package/dist/assets/brand/mattermost.svg +2 -0
  43. package/dist/assets/brand/meta.svg +2 -0
  44. package/dist/assets/brand/microsoft.svg +2 -0
  45. package/dist/assets/brand/minimax.svg +2 -0
  46. package/dist/assets/brand/mistral.svg +2 -0
  47. package/dist/assets/brand/moonshot.svg +2 -0
  48. package/dist/assets/brand/morph.svg +2 -0
  49. package/dist/assets/brand/n8n.svg +2 -0
  50. package/dist/assets/brand/netlify.svg +2 -0
  51. package/dist/assets/brand/nexagi.svg +2 -0
  52. package/dist/assets/brand/notion.svg +2 -0
  53. package/dist/assets/brand/nousresearch.svg +2 -0
  54. package/dist/assets/brand/nova.svg +2 -0
  55. package/dist/assets/brand/nvidia.svg +2 -0
  56. package/dist/assets/brand/openai.svg +2 -0
  57. package/dist/assets/brand/openrouter.svg +2 -0
  58. package/dist/assets/brand/paypal.svg +2 -0
  59. package/dist/assets/brand/perceptron.svg +2 -0
  60. package/dist/assets/brand/perplexity.svg +2 -0
  61. package/dist/assets/brand/poolside.svg +2 -0
  62. package/dist/assets/brand/postgresql.svg +2 -0
  63. package/dist/assets/brand/qwen.svg +2 -0
  64. package/dist/assets/brand/reka.svg +2 -0
  65. package/dist/assets/brand/relace.svg +2 -0
  66. package/dist/assets/brand/sakana.svg +2 -0
  67. package/dist/assets/brand/sentry.svg +2 -0
  68. package/dist/assets/brand/signal.svg +2 -0
  69. package/dist/assets/brand/slack.svg +2 -0
  70. package/dist/assets/brand/spotify.svg +2 -0
  71. package/dist/assets/brand/square.svg +2 -0
  72. package/dist/assets/brand/stepfun.svg +2 -0
  73. package/dist/assets/brand/stripe.svg +2 -0
  74. package/dist/assets/brand/supabase.svg +2 -0
  75. package/dist/assets/brand/telegram.svg +2 -0
  76. package/dist/assets/brand/tencent.svg +2 -0
  77. package/dist/assets/brand/the-drummer.svg +2 -0
  78. package/dist/assets/brand/thinkingmachines.svg +2 -0
  79. package/dist/assets/brand/todoist.svg +2 -0
  80. package/dist/assets/brand/unbiased.svg +2 -0
  81. package/dist/assets/brand/unreal-engine.svg +2 -0
  82. package/dist/assets/brand/upstage.svg +2 -0
  83. package/dist/assets/brand/vercel.svg +2 -0
  84. package/dist/assets/brand/webflow.svg +2 -0
  85. package/dist/assets/brand/whatsapp.svg +2 -0
  86. package/dist/assets/brand/windows.svg +2 -0
  87. package/dist/assets/brand/writer.svg +2 -0
  88. package/dist/assets/brand/xiaomimimo.svg +2 -0
  89. package/dist/assets/brand/youtube.svg +2 -0
  90. package/dist/assets/brand/yuanbao.svg +2 -0
  91. package/dist/assets/brand/zai.svg +2 -0
  92. package/dist/assets/brand/zapier.svg +2 -0
  93. package/dist/components/action-status.d.ts +5 -0
  94. package/dist/components/action-status.d.ts.map +1 -1
  95. package/dist/components/action-status.js +6 -2
  96. package/dist/components/agent-orb-appearance.d.ts +16 -2
  97. package/dist/components/agent-orb-appearance.d.ts.map +1 -1
  98. package/dist/components/agent-orb-appearance.js +28 -5
  99. package/dist/components/agent-orb.d.ts +6 -3
  100. package/dist/components/agent-orb.d.ts.map +1 -1
  101. package/dist/components/agent-orb.js +20 -7
  102. package/dist/components/app-mark-aliases.d.ts +16 -0
  103. package/dist/components/app-mark-aliases.d.ts.map +1 -0
  104. package/dist/components/app-mark-aliases.js +84 -0
  105. package/dist/components/app-mark.d.ts +4 -0
  106. package/dist/components/app-mark.d.ts.map +1 -1
  107. package/dist/components/app-mark.js +14 -31
  108. package/dist/components/automation-section.d.ts.map +1 -1
  109. package/dist/components/automation-section.js +2 -2
  110. package/dist/components/badge.js +1 -1
  111. package/dist/components/brand.d.ts +3 -2
  112. package/dist/components/brand.d.ts.map +1 -1
  113. package/dist/components/brand.js +18 -28
  114. package/dist/components/button.js +1 -1
  115. package/dist/components/collection-filters.js +2 -2
  116. package/dist/components/confirm-dialog.d.ts +3 -1
  117. package/dist/components/confirm-dialog.d.ts.map +1 -1
  118. package/dist/components/confirm-dialog.js +3 -3
  119. package/dist/components/drawer.js +5 -5
  120. package/dist/components/feedback-state.d.ts.map +1 -1
  121. package/dist/components/feedback-state.js +6 -9
  122. package/dist/components/footer.js +2 -2
  123. package/dist/components/house-icons.d.ts.map +1 -1
  124. package/dist/components/house-icons.js +9 -1
  125. package/dist/components/input-otp.js +1 -1
  126. package/dist/components/installer-shell.d.ts.map +1 -1
  127. package/dist/components/installer-shell.js +5 -6
  128. package/dist/components/navigation-menu.js +2 -2
  129. package/dist/components/pending-label.d.ts +15 -0
  130. package/dist/components/pending-label.d.ts.map +1 -0
  131. package/dist/components/pending-label.js +14 -0
  132. package/dist/components/sheet.js +1 -1
  133. package/dist/components/skeleton.d.ts +4 -0
  134. package/dist/components/skeleton.d.ts.map +1 -1
  135. package/dist/components/skeleton.js +5 -1
  136. package/dist/components/sonner.d.ts.map +1 -1
  137. package/dist/components/sonner.js +5 -2
  138. package/dist/components/table.js +1 -1
  139. package/dist/components/tabs.js +1 -1
  140. package/dist/components/toggle.js +1 -1
  141. package/dist/components/waiting-line.d.ts +30 -0
  142. package/dist/components/waiting-line.d.ts.map +1 -0
  143. package/dist/components/waiting-line.js +33 -0
  144. package/dist/eslint/rules/no-invalid-token-utility.js +1 -1
  145. package/dist/index.d.ts +3 -38
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +3 -38
  148. package/dist/internal/agent-orb-motion.d.ts +9 -1
  149. package/dist/internal/agent-orb-motion.d.ts.map +1 -1
  150. package/dist/internal/agent-orb-motion.js +23 -11
  151. package/dist/internal/agent-orb.d.ts +14 -1
  152. package/dist/internal/agent-orb.d.ts.map +1 -1
  153. package/dist/internal/agent-orb.js +78 -22
  154. package/dist/internal/assistant-ui/attachment.d.ts.map +1 -1
  155. package/dist/internal/assistant-ui/attachment.js +3 -2
  156. package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -1
  157. package/dist/internal/assistant-ui/reasoning.js +4 -4
  158. package/dist/internal/assistant-ui/tool-fallback.d.ts.map +1 -1
  159. package/dist/internal/assistant-ui/tool-fallback.js +5 -4
  160. package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -1
  161. package/dist/internal/assistant-ui/tool-group.js +4 -3
  162. package/dist/lib/motion.d.ts +18 -4
  163. package/dist/lib/motion.d.ts.map +1 -1
  164. package/dist/lib/motion.js +18 -4
  165. package/dist/styles/globals.css +0 -1
  166. package/docs/activity.md +99 -119
  167. package/docs/agent-orb.md +71 -20
  168. package/docs/component-classification.md +4 -4
  169. package/docs/consuming-cross-repo.md +8 -10
  170. package/docs/contract.md +10 -9
  171. package/docs/icon-assets.md +106 -0
  172. package/docs/migration/10.0.0.md +144 -0
  173. package/package.json +8 -7
  174. package/dist/activity.d.ts +0 -2
  175. package/dist/activity.d.ts.map +0 -1
  176. package/dist/activity.js +0 -2
  177. package/dist/components/action-band.d.ts +0 -12
  178. package/dist/components/action-band.d.ts.map +0 -1
  179. package/dist/components/action-band.js +0 -48
  180. package/dist/components/activity-orb.d.ts +0 -21
  181. package/dist/components/activity-orb.d.ts.map +0 -1
  182. package/dist/components/activity-orb.js +0 -26
  183. package/dist/components/benefits-bento.d.ts +0 -15
  184. package/dist/components/benefits-bento.d.ts.map +0 -1
  185. package/dist/components/benefits-bento.js +0 -6
  186. package/dist/components/bento.d.ts +0 -39
  187. package/dist/components/bento.d.ts.map +0 -1
  188. package/dist/components/bento.js +0 -70
  189. package/dist/components/card-marketing.d.ts +0 -30
  190. package/dist/components/card-marketing.d.ts.map +0 -1
  191. package/dist/components/card-marketing.js +0 -48
  192. package/dist/components/code-editor-mockup.d.ts +0 -25
  193. package/dist/components/code-editor-mockup.d.ts.map +0 -1
  194. package/dist/components/code-editor-mockup.js +0 -47
  195. package/dist/components/contact.d.ts +0 -32
  196. package/dist/components/contact.d.ts.map +0 -1
  197. package/dist/components/contact.js +0 -46
  198. package/dist/components/faq-item.d.ts +0 -25
  199. package/dist/components/faq-item.d.ts.map +0 -1
  200. package/dist/components/faq-item.js +0 -25
  201. package/dist/components/faq.d.ts +0 -20
  202. package/dist/components/faq.d.ts.map +0 -1
  203. package/dist/components/faq.js +0 -23
  204. package/dist/components/feature-grid.d.ts +0 -23
  205. package/dist/components/feature-grid.d.ts.map +0 -1
  206. package/dist/components/feature-grid.js +0 -33
  207. package/dist/components/feature-rows.d.ts +0 -23
  208. package/dist/components/feature-rows.d.ts.map +0 -1
  209. package/dist/components/feature-rows.js +0 -27
  210. package/dist/components/glyph-spinner.d.ts +0 -10
  211. package/dist/components/glyph-spinner.d.ts.map +0 -1
  212. package/dist/components/glyph-spinner.js +0 -101
  213. package/dist/components/hero-split.d.ts +0 -23
  214. package/dist/components/hero-split.d.ts.map +0 -1
  215. package/dist/components/hero-split.js +0 -35
  216. package/dist/components/hero.d.ts +0 -28
  217. package/dist/components/hero.d.ts.map +0 -1
  218. package/dist/components/hero.js +0 -45
  219. package/dist/components/integration-flow.d.ts +0 -36
  220. package/dist/components/integration-flow.d.ts.map +0 -1
  221. package/dist/components/integration-flow.js +0 -36
  222. package/dist/components/live-demo.d.ts +0 -31
  223. package/dist/components/live-demo.d.ts.map +0 -1
  224. package/dist/components/live-demo.js +0 -30
  225. package/dist/components/logo-band.d.ts +0 -33
  226. package/dist/components/logo-band.d.ts.map +0 -1
  227. package/dist/components/logo-band.js +0 -49
  228. package/dist/components/logo-tile.d.ts +0 -21
  229. package/dist/components/logo-tile.d.ts.map +0 -1
  230. package/dist/components/logo-tile.js +0 -28
  231. package/dist/components/media-mount.d.ts +0 -13
  232. package/dist/components/media-mount.d.ts.map +0 -1
  233. package/dist/components/media-mount.js +0 -15
  234. package/dist/components/nav-bar.d.ts +0 -24
  235. package/dist/components/nav-bar.d.ts.map +0 -1
  236. package/dist/components/nav-bar.js +0 -35
  237. package/dist/components/newsletter.d.ts +0 -24
  238. package/dist/components/newsletter.d.ts.map +0 -1
  239. package/dist/components/newsletter.js +0 -31
  240. package/dist/components/page-frame.d.ts +0 -30
  241. package/dist/components/page-frame.d.ts.map +0 -1
  242. package/dist/components/page-frame.js +0 -30
  243. package/dist/components/pricing-card.d.ts +0 -30
  244. package/dist/components/pricing-card.d.ts.map +0 -1
  245. package/dist/components/pricing-card.js +0 -44
  246. package/dist/components/pricing.d.ts +0 -25
  247. package/dist/components/pricing.d.ts.map +0 -1
  248. package/dist/components/pricing.js +0 -11
  249. package/dist/components/proof-slot.d.ts +0 -8
  250. package/dist/components/proof-slot.d.ts.map +0 -1
  251. package/dist/components/proof-slot.js +0 -8
  252. package/dist/components/quote-card.d.ts +0 -31
  253. package/dist/components/quote-card.d.ts.map +0 -1
  254. package/dist/components/quote-card.js +0 -48
  255. package/dist/components/seam-grid.d.ts +0 -30
  256. package/dist/components/seam-grid.d.ts.map +0 -1
  257. package/dist/components/seam-grid.js +0 -30
  258. package/dist/components/section-intro.d.ts +0 -18
  259. package/dist/components/section-intro.d.ts.map +0 -1
  260. package/dist/components/section-intro.js +0 -22
  261. package/dist/components/security-grid.d.ts +0 -25
  262. package/dist/components/security-grid.d.ts.map +0 -1
  263. package/dist/components/security-grid.js +0 -28
  264. package/dist/components/shift-band.d.ts +0 -14
  265. package/dist/components/shift-band.d.ts.map +0 -1
  266. package/dist/components/shift-band.js +0 -11
  267. package/dist/components/spinner.d.ts +0 -3
  268. package/dist/components/spinner.d.ts.map +0 -1
  269. package/dist/components/spinner.js +0 -7
  270. package/dist/components/statement.d.ts +0 -32
  271. package/dist/components/statement.d.ts.map +0 -1
  272. package/dist/components/statement.js +0 -40
  273. package/dist/components/steps.d.ts +0 -34
  274. package/dist/components/steps.d.ts.map +0 -1
  275. package/dist/components/steps.js +0 -40
  276. package/dist/components/team-grid.d.ts +0 -27
  277. package/dist/components/team-grid.d.ts.map +0 -1
  278. package/dist/components/team-grid.js +0 -30
  279. package/dist/components/testimonials.d.ts +0 -48
  280. package/dist/components/testimonials.d.ts.map +0 -1
  281. package/dist/components/testimonials.js +0 -58
  282. package/dist/components/texture-strip.d.ts +0 -22
  283. package/dist/components/texture-strip.d.ts.map +0 -1
  284. package/dist/components/texture-strip.js +0 -32
  285. package/dist/components/use-case-bento.d.ts +0 -13
  286. package/dist/components/use-case-bento.d.ts.map +0 -1
  287. package/dist/components/use-case-bento.js +0 -8
  288. package/dist/internal/activity-orb.d.ts +0 -27
  289. package/dist/internal/activity-orb.d.ts.map +0 -1
  290. package/dist/internal/activity-orb.js +0 -150
  291. package/dist/lib/seam.d.ts +0 -29
  292. package/dist/lib/seam.d.ts.map +0 -1
  293. package/dist/lib/seam.js +0 -30
@@ -1,45 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * hero — the full-viewport, always-dark page-opening hero (V5 · B02).
5
- *
6
- * A left-pinned copy column (kicker with an accent bar, poster headline, lead, and a
7
- * two-CTA row) over a right-anchored visual slot. The hero is ALWAYS dark, so the
8
- * root carries its own `dark` ancestor class and resolves every colour from the
9
- * semantic roles that state each element's purpose (`bg-background`,
10
- * `text-foreground`, `text-muted-foreground`, `bg-primary`, `border-border`).
11
- *
12
- * STUBBED VISUAL: `HeroVisual` is a clean static slot the consumer fills with an
13
- * image or inline SVG (the founder-approved WebGL Duomo particle field is out of
14
- * scope for this pass). Absent content, it renders only the dark surface behind the
15
- * copy — no canvas, no WebGL, no motion.
16
- *
17
- * The copy parts are typed presentational wrappers; the consumer supplies the words
18
- * and drops `Button`s into `HeroActions`. Token-only; the root sets its own `dark`
19
- * class (an accepted ancestor-class remap), never `dark:` utilities.
20
- */
21
- function Hero({ className, ...props }) {
22
- return (_jsx("section", { "data-slot": "hero", className: cn("dark relative isolate min-h-[max(640px,100svh)] overflow-hidden bg-background text-foreground", className), ...props }));
23
- }
24
- function HeroVisual({ className, ...props }) {
25
- return (_jsx("div", { "data-slot": "hero-visual", "aria-hidden": "true", className: cn(
26
- // Right-anchored static plate. Flush mount: consumer media fills it; empty,
27
- // it is just the dark surface. This is the stub slot for the WebGL field.
28
- "pointer-events-none absolute inset-y-0 right-0 z-0 hidden w-[62%] overflow-hidden border-l border-border/60 sm:block", "[&_img]:size-full [&_img]:object-cover [&_svg]:size-full", className), ...props }));
29
- }
30
- function HeroBody({ className, ...props }) {
31
- return (_jsx("div", { "data-slot": "hero-body", className: cn("relative z-10 mx-auto flex min-h-[inherit] w-full max-w-[1200px] flex-col items-start justify-center gap-6 px-[clamp(24px,5vw,64px)] py-[clamp(96px,12vw,120px)]", className), ...props }));
32
- }
33
- function HeroKicker({ className, children, ...props }) {
34
- return (_jsxs("p", { "data-slot": "hero-kicker", className: cn("nc-type-caption-mono flex items-center gap-3 uppercase text-muted-foreground", className), ...props, children: [_jsx("span", { "data-slot": "hero-kicker-bar", "aria-hidden": "true", className: "h-0.5 w-8 bg-primary" }), children] }));
35
- }
36
- function HeroTitle({ className, ...props }) {
37
- return (_jsx("h1", { "data-slot": "hero-title", className: cn("nc-type-display-lg max-w-[16ch] text-balance text-foreground", className), ...props }));
38
- }
39
- function HeroLead({ className, ...props }) {
40
- return (_jsx("p", { "data-slot": "hero-lead", className: cn("nc-type-body-lg max-w-[40ch] text-muted-foreground", className), ...props }));
41
- }
42
- function HeroActions({ className, ...props }) {
43
- return (_jsx("div", { "data-slot": "hero-actions", className: cn("mt-2 flex flex-wrap items-center gap-3", className), ...props }));
44
- }
45
- export { Hero, HeroVisual, HeroBody, HeroKicker, HeroTitle, HeroLead, HeroActions };
@@ -1,36 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * integration-flow — the "how it runs" flow diagram (V5 B10).
4
- *
5
- * A four-node flow: three main-row nodes (source → agent → output) plus one
6
- * branch node (a named person) below the centre. Wide layouts use one inline
7
- * SVG connector layer. Compact layouts reflow to source → agent → a two-column
8
- * output/person fork and use CSS borders in the real gaps, so connectors never
9
- * disappear behind stacked cards. This pass is STATIC: no `animateMotion`, no
10
- * draw-on stroke animation.
11
- *
12
- * All SVG colours resolve through `var(--nc-*)` / semantic role tokens, never a
13
- * raw literal. `IntegrationFlowLegend` / `IntegrationFlowLegendPill` render the
14
- * tint key. Copy is props-driven: only the nodes you pass are rendered.
15
- *
16
- * Light-surface composition; inherits the page theme and sets no dark root.
17
- * Token-only; no `dark:` styling.
18
- */
19
- type FlowTone = "neutral" | "primary" | "warning";
20
- type FlowNode = {
21
- label: string;
22
- sublabel?: string;
23
- tone?: FlowTone;
24
- icon?: React.ReactNode;
25
- };
26
- declare function IntegrationFlow({ nodes, className, ...props }: React.ComponentProps<"div"> & {
27
- nodes?: FlowNode[];
28
- }): React.JSX.Element;
29
- type LegendTone = "primary" | "warning" | "info";
30
- declare function IntegrationFlowLegend({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
31
- declare function IntegrationFlowLegendPill({ tone, className, ...props }: React.ComponentProps<"span"> & {
32
- tone?: LegendTone;
33
- }): React.JSX.Element;
34
- export { IntegrationFlow, IntegrationFlowLegend, IntegrationFlowLegendPill };
35
- export type { FlowNode, FlowTone, LegendTone };
36
- //# sourceMappingURL=integration-flow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration-flow.d.ts","sourceRoot":"","sources":["../../src/components/integration-flow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;;;GAgBG;AAEH,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAElD,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAyDF,iBAAS,eAAe,CAAC,EACvB,KAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB,qBA2HA;AAED,KAAK,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAQjD,iBAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQlF;AAED,iBAAS,yBAAyB,CAAC,EACjC,IAAgB,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,qBAatD;AAED,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,CAAC;AAC7E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
@@ -1,36 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- const NODE_BORDER_CLASS = {
4
- neutral: "border-border",
5
- primary: "border-primary",
6
- warning: "border-warning",
7
- };
8
- const NODE_CHIP_CLASS = {
9
- neutral: "bg-muted",
10
- primary: "bg-[var(--nc-link-bg-soft)]",
11
- warning: "bg-[var(--nc-warning-soft)]",
12
- };
13
- // Default role tones for the canonical four-node arrangement.
14
- const DEFAULT_TONES = ["neutral", "primary", "neutral", "warning"];
15
- function FlowNodeBox({ node, tone }) {
16
- return (_jsxs("div", { "data-slot": "integration-flow-node", "data-tone": tone, className: cn("relative z-10 flex flex-col gap-2 border bg-card p-4", NODE_BORDER_CLASS[tone]), children: [node.icon ? (_jsx("span", { "data-slot": "integration-flow-node-icon", "aria-hidden": "true", className: cn("grid size-8 place-items-center text-foreground [&_svg]:size-4", NODE_CHIP_CLASS[tone]), children: node.icon })) : null, _jsx("span", { "data-slot": "integration-flow-node-label", className: "font-mono text-[11px] tracking-[0.08em] text-foreground uppercase", children: node.label }), node.sublabel ? (_jsx("span", { "data-slot": "integration-flow-node-sublabel", className: "font-mono text-[10px] text-muted-foreground", children: node.sublabel })) : null] }));
17
- }
18
- function IntegrationFlow({ nodes = [], className, ...props }) {
19
- const main = nodes.slice(0, 3);
20
- const branch = nodes[3];
21
- const toneOf = (node, i) => node.tone ?? DEFAULT_TONES[i] ?? "neutral";
22
- return (_jsxs("div", { "data-slot": "integration-flow", className: cn("nc-dotted-field relative grid gap-y-8 bg-card p-6 sm:p-10", className), ...props, children: [_jsxs("svg", { "data-slot": "integration-flow-connectors", className: "pointer-events-none absolute inset-0 hidden size-full sm:block", viewBox: "0 0 300 200", preserveAspectRatio: "none", "aria-hidden": "true", focusable: "false", children: [main.length > 1 ? (_jsx("line", { "data-slot": "integration-flow-link", x1: "60", y1: "46", x2: "140", y2: "46", stroke: "var(--primary)", strokeWidth: "1.5", vectorEffect: "non-scaling-stroke" })) : null, main.length > 2 ? (_jsx("line", { "data-slot": "integration-flow-link", x1: "160", y1: "46", x2: "240", y2: "46", stroke: "var(--primary)", strokeWidth: "1.5", vectorEffect: "non-scaling-stroke" })) : null, branch ? (_jsx("line", { "data-slot": "integration-flow-branch-link", x1: "150", y1: "62", x2: "150", y2: "150", stroke: "var(--border)", strokeWidth: "1.5", strokeDasharray: "4 4", vectorEffect: "non-scaling-stroke" })) : null] }), _jsxs("div", { "data-slot": "integration-flow-main", className: "grid grid-cols-1 gap-y-6 sm:grid-cols-3 sm:gap-x-6 sm:gap-y-8", children: [main[0] ? _jsx(FlowNodeBox, { node: main[0], tone: toneOf(main[0], 0) }) : null, main[1] ? (_jsxs("div", { className: "relative", children: [_jsx("span", { "data-slot": "integration-flow-mobile-link", className: "pointer-events-none absolute -top-6 left-1/2 h-6 border-l border-primary sm:hidden", "aria-hidden": "true" }), _jsx(FlowNodeBox, { node: main[1], tone: toneOf(main[1], 1) })] })) : null, main[2] ? (_jsxs("div", { className: cn("relative grid pt-6 sm:contents", branch ? "grid-cols-2 gap-4" : "grid-cols-1"), children: [_jsx("span", { "data-slot": "integration-flow-mobile-fork-entry", className: "pointer-events-none absolute -top-6 left-1/2 h-6 border-l border-primary sm:hidden", "aria-hidden": "true" }), _jsxs("span", { "data-slot": "integration-flow-mobile-fork", className: cn("pointer-events-none absolute inset-x-0 top-0 h-6 sm:hidden", branch &&
23
- "before:absolute before:top-3 before:right-1/4 before:left-1/4 before:border-t before:border-primary after:absolute after:top-0 after:left-1/2 after:h-3 after:border-l after:border-primary"), "aria-hidden": "true", children: [_jsx("span", { className: cn("absolute bottom-0 h-3 border-l border-primary", branch ? "left-1/4" : "left-1/2") }), branch ? (_jsx("span", { className: "absolute right-1/4 bottom-0 h-3 border-l border-dashed border-border" })) : null] }), _jsx("div", { className: "sm:col-start-3 sm:row-start-1", children: _jsx(FlowNodeBox, { node: main[2], tone: toneOf(main[2], 2) }) }), branch ? (_jsx("div", { "data-slot": "integration-flow-branch", className: "sm:col-start-2 sm:row-start-2", children: _jsx(FlowNodeBox, { node: branch, tone: toneOf(branch, 3) }) })) : null] })) : null] })] }));
24
- }
25
- const LEGEND_TINT_CLASS = {
26
- primary: "bg-[var(--nc-link-bg-soft)] text-[var(--nc-link-deep)]",
27
- warning: "bg-[var(--nc-warning-soft)] text-[var(--nc-warning-deep)]",
28
- info: "bg-[var(--nc-info-soft)] text-[var(--nc-info-deep)]",
29
- };
30
- function IntegrationFlowLegend({ className, ...props }) {
31
- return (_jsx("div", { "data-slot": "integration-flow-legend", className: cn("flex flex-wrap gap-2", className), ...props }));
32
- }
33
- function IntegrationFlowLegendPill({ tone = "primary", className, ...props }) {
34
- return (_jsx("span", { "data-slot": "integration-flow-legend-pill", "data-tone": tone, className: cn("inline-flex items-center gap-1.5 px-2.5 py-1 font-mono text-[10px] tracking-[0.1em] uppercase", LEGEND_TINT_CLASS[tone], className), ...props }));
35
- }
36
- export { IntegrationFlow, IntegrationFlowLegend, IntegrationFlowLegendPill };
@@ -1,31 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * live-demo — the faux application window standing in for the agent-at-work
4
- * recording (V5 B11).
5
- *
6
- * `LiveDemoWindow` is a bordered card with a mono title bar, three NEUTRAL chrome
7
- * dots (muted brand-token fills — deliberately not the literal macOS traffic
8
- * colours), an optional "live" chip whose dot pulses (a CSS keyframe gated by
9
- * `motion-reduce:animate-none` so it holds still under reduced-motion), and a
10
- * stack of status rows. `LiveDemoRow` renders one status line with a soft tint
11
- * pill: `done` (success tint) or `waiting` (warning tint).
12
- *
13
- * Replay interactivity is out of scope this pass — the rows are static. Copy is
14
- * props-driven: an absent title, chip, or tag renders nothing.
15
- *
16
- * Light-surface composition; inherits the page theme and sets no dark root.
17
- * Token-only; no `dark:` styling.
18
- */
19
- declare function LiveDemoWindow({ title, live, children, className, ...props }: React.ComponentProps<"div"> & {
20
- title?: React.ReactNode;
21
- live?: React.ReactNode;
22
- }): React.JSX.Element;
23
- type LiveDemoStatus = "done" | "waiting";
24
- declare function LiveDemoRow({ status, label, tag, className, children, ...props }: React.ComponentProps<"div"> & {
25
- status?: LiveDemoStatus;
26
- label?: React.ReactNode;
27
- tag?: React.ReactNode;
28
- }): React.JSX.Element;
29
- export { LiveDemoWindow, LiveDemoRow };
30
- export type { LiveDemoStatus };
31
- //# sourceMappingURL=live-demo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-demo.d.ts","sourceRoot":"","sources":["../../src/components/live-demo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;;;GAgBG;AAEH,iBAAS,cAAc,CAAC,EACtB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,qBA+CA;AAED,KAAK,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAOzC,iBAAS,WAAW,CAAC,EACnB,MAAe,EACf,KAAK,EACL,GAAG,EACH,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACvB,qBA8BA;AAED,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -1,30 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * live-demo — the faux application window standing in for the agent-at-work
5
- * recording (V5 B11).
6
- *
7
- * `LiveDemoWindow` is a bordered card with a mono title bar, three NEUTRAL chrome
8
- * dots (muted brand-token fills — deliberately not the literal macOS traffic
9
- * colours), an optional "live" chip whose dot pulses (a CSS keyframe gated by
10
- * `motion-reduce:animate-none` so it holds still under reduced-motion), and a
11
- * stack of status rows. `LiveDemoRow` renders one status line with a soft tint
12
- * pill: `done` (success tint) or `waiting` (warning tint).
13
- *
14
- * Replay interactivity is out of scope this pass — the rows are static. Copy is
15
- * props-driven: an absent title, chip, or tag renders nothing.
16
- *
17
- * Light-surface composition; inherits the page theme and sets no dark root.
18
- * Token-only; no `dark:` styling.
19
- */
20
- function LiveDemoWindow({ title, live, children, className, ...props }) {
21
- return (_jsxs("div", { "data-slot": "live-demo-window", className: cn("flex flex-col overflow-hidden rounded-md border border-border bg-card", className), ...props, children: [_jsxs("div", { "data-slot": "live-demo-bar", className: "flex items-center gap-3 border-b border-border px-4 py-2.5", children: [_jsx("span", { "data-slot": "live-demo-chrome", "aria-hidden": "true", className: "flex gap-1.5", children: [0, 1, 2].map((i) => (_jsx("span", { className: "size-2.5 rounded-full bg-muted-foreground/40" }, i))) }), title ? (_jsx("span", { "data-slot": "live-demo-title", className: "font-mono text-[10px] tracking-[0.08em] text-muted-foreground uppercase", children: title })) : null] }), live ? (_jsxs("div", { "data-slot": "live-demo-chip", className: "flex items-center gap-2 border-b border-border px-4 py-2.5 font-mono text-[9.5px] tracking-[0.08em] text-[var(--nc-link-deep)] uppercase", children: [_jsx("span", { "aria-hidden": "true", className: "size-1.5 rounded-full bg-primary motion-safe:animate-pulse" }), live] })) : null, _jsx("div", { "data-slot": "live-demo-rows", className: "flex flex-col", children: children })] }));
22
- }
23
- const ROW_TINT_CLASS = {
24
- done: "bg-[var(--nc-link-bg-soft)] text-[var(--nc-link-deep)]",
25
- waiting: "bg-[var(--nc-warning-soft)] text-[var(--nc-warning-deep)]",
26
- };
27
- function LiveDemoRow({ status = "done", label, tag, className, children, ...props }) {
28
- return (_jsxs("div", { "data-slot": "live-demo-row", "data-status": status, className: cn("flex items-center justify-between gap-3 border-t border-border px-4 py-3 first:border-t-0", className), ...props, children: [label ? (_jsx("span", { "data-slot": "live-demo-row-label", className: "font-mono text-[11px] text-foreground", children: label })) : null, tag ? (_jsx("span", { "data-slot": "live-demo-row-tag", className: cn("shrink-0 px-2 py-0.5 font-mono text-[10px] tracking-[0.06em] uppercase", ROW_TINT_CLASS[status]), children: tag })) : null, children] }));
29
- }
30
- export { LiveDemoWindow, LiveDemoRow };
@@ -1,33 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * logo-band / integrations-grid — wall of monochrome marks (replaces the retired
4
- * `sections/logo-band.css` + `sections/integrations-grid.css` + their coupled
5
- * `logo-tile` cells).
6
- *
7
- * Identical kernel geometry in both intents (a `LogoTile` wall in the gap-as-seam
8
- * grid); they differ only in label/density of intent, so one composition backs
9
- * both and the two names below keep the section vocabulary distinct (matching the
10
- * retired CSS, which kept two section files over identical primitives).
11
- *
12
- * V5 logo-cloud usage: a caller stacks a mono `LogoBandLabel` caption above each
13
- * auto-fit tile row (`columns="auto"`), e.g. "the tools you already use" over one
14
- * row and "many models, no lock-in" over the next — the two-row composition is the
15
- * caller's, this component only owns one labelled tile wall.
16
- *
17
- * SINGLE-OWNER SEAM: the grid owns every divider once (`gap-px bg-border`). Each
18
- * `LogoTile` is borderless and square-cornered. `surface="ink"` flips only the
19
- * seam colour, never its weight. Token-only; no `dark:` styling.
20
- */
21
- declare function LogoGrid({ className, columns, surface, ...props }: React.ComponentProps<"div"> & {
22
- columns?: 2 | 3 | 4 | 5 | 6 | "auto";
23
- surface?: "canvas" | "ink";
24
- }): React.JSX.Element;
25
- declare function LogoBand({ ...props }: React.ComponentProps<typeof LogoGrid>): React.JSX.Element;
26
- declare function IntegrationsGrid({ ...props }: React.ComponentProps<typeof LogoGrid>): React.JSX.Element;
27
- /**
28
- * LogoBandLabel — the mono caption row that sits above a tile wall (V5 `.lab`).
29
- * Small uppercase mono in the muted role; the caller supplies the words.
30
- */
31
- declare function LogoBandLabel({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
32
- export { LogoBand, IntegrationsGrid, LogoBandLabel };
33
- //# sourceMappingURL=logo-band.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logo-band.d.ts","sourceRoot":"","sources":["../../src/components/logo-band.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B;;;;;;;;;;;;;;;;;;GAkBG;AAEH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,OAAW,EACX,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;CAC5B,qBAYA;AAED,iBAAS,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,qBAEpE;AAED,iBAAS,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,qBAE5E;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAQxE;AAED,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC"}
@@ -1,49 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- import { seamSurfaceClass } from "../lib/seam.js";
4
- const LOGO_GRID_COLUMNS = {
5
- 2: "grid-cols-2",
6
- 3: "grid-cols-2 sm:grid-cols-3",
7
- 4: "grid-cols-2 sm:grid-cols-4",
8
- 5: "grid-cols-2 sm:grid-cols-3 lg:grid-cols-5",
9
- 6: "grid-cols-2 sm:grid-cols-3 lg:grid-cols-6",
10
- // V5 auto-fit tile row: cells flow at a minimum comfortable width and share the
11
- // free space, so a 7-mark row and a 6-mark row both stay optically even.
12
- auto: "grid-cols-[repeat(auto-fit,minmax(130px,1fr))]",
13
- };
14
- /**
15
- * logo-band / integrations-grid — wall of monochrome marks (replaces the retired
16
- * `sections/logo-band.css` + `sections/integrations-grid.css` + their coupled
17
- * `logo-tile` cells).
18
- *
19
- * Identical kernel geometry in both intents (a `LogoTile` wall in the gap-as-seam
20
- * grid); they differ only in label/density of intent, so one composition backs
21
- * both and the two names below keep the section vocabulary distinct (matching the
22
- * retired CSS, which kept two section files over identical primitives).
23
- *
24
- * V5 logo-cloud usage: a caller stacks a mono `LogoBandLabel` caption above each
25
- * auto-fit tile row (`columns="auto"`), e.g. "the tools you already use" over one
26
- * row and "many models, no lock-in" over the next — the two-row composition is the
27
- * caller's, this component only owns one labelled tile wall.
28
- *
29
- * SINGLE-OWNER SEAM: the grid owns every divider once (`gap-px bg-border`). Each
30
- * `LogoTile` is borderless and square-cornered. `surface="ink"` flips only the
31
- * seam colour, never its weight. Token-only; no `dark:` styling.
32
- */
33
- function LogoGrid({ className, columns = 4, surface = "canvas", ...props }) {
34
- return (_jsx("div", { className: cn("grid h-full gap-px", LOGO_GRID_COLUMNS[columns], seamSurfaceClass(surface), className), ...props }));
35
- }
36
- function LogoBand({ ...props }) {
37
- return _jsx(LogoGrid, { "data-slot": "logo-band", ...props });
38
- }
39
- function IntegrationsGrid({ ...props }) {
40
- return _jsx(LogoGrid, { "data-slot": "integrations-grid", ...props });
41
- }
42
- /**
43
- * LogoBandLabel — the mono caption row that sits above a tile wall (V5 `.lab`).
44
- * Small uppercase mono in the muted role; the caller supplies the words.
45
- */
46
- function LogoBandLabel({ className, ...props }) {
47
- return (_jsx("p", { "data-slot": "logo-band-label", className: cn("nc-type-caption-mono uppercase text-muted-foreground", className), ...props }));
48
- }
49
- export { LogoBand, IntegrationsGrid, LogoBandLabel };
@@ -1,21 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * logo-tile — single logo cell (replaces the retired `.nc-logo-tile`).
4
- *
5
- * An equal-height fill holding one monochrome logo, with an optional mono metric
6
- * or integration name below it. Seam-free canvas fill: the holding `LogoBand` /
7
- * `IntegrationsGrid` grid owns the dividers (gap-as-seam), so it draws NO border
8
- * and is square-cornered. The logo mark is fixed-height so a row of mixed-aspect
9
- * logos stays optically level. `surface="ink"` inverts onto the ink role.
10
- * Token-only; no `dark:` styling.
11
- */
12
- declare function LogoTile({ className, surface, ...props }: React.ComponentProps<"div"> & {
13
- surface?: "canvas" | "ink";
14
- }): React.JSX.Element;
15
- declare function LogoTileMark({ className, surface, ...props }: React.ComponentProps<"span"> & {
16
- surface?: "canvas" | "ink";
17
- }): React.JSX.Element;
18
- declare function LogoTileMetric({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
19
- declare function LogoTileName({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
20
- export { LogoTile, LogoTileMark, LogoTileMetric, LogoTileName };
21
- //# sourceMappingURL=logo-tile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logo-tile.d.ts","sourceRoot":"","sources":["../../src/components/logo-tile.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;GASG;AAEH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CAAE,qBAa9D;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CAAE,qBAc/D;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAQ5E;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAQ1E;AAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
@@ -1,28 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * logo-tile — single logo cell (replaces the retired `.nc-logo-tile`).
5
- *
6
- * An equal-height fill holding one monochrome logo, with an optional mono metric
7
- * or integration name below it. Seam-free canvas fill: the holding `LogoBand` /
8
- * `IntegrationsGrid` grid owns the dividers (gap-as-seam), so it draws NO border
9
- * and is square-cornered. The logo mark is fixed-height so a row of mixed-aspect
10
- * logos stays optically level. `surface="ink"` inverts onto the ink role.
11
- * Token-only; no `dark:` styling.
12
- */
13
- function LogoTile({ className, surface = "canvas", ...props }) {
14
- return (_jsx("div", { "data-slot": "logo-tile", "data-surface": surface, className: cn("grid min-h-24 place-content-center justify-items-center gap-2 p-6", surface === "ink" ? "bg-primary" : "bg-card", className), ...props }));
15
- }
16
- function LogoTileMark({ className, surface = "canvas", ...props }) {
17
- return (_jsx("span", { "data-slot": "logo-tile-mark", className: cn("block h-7 w-auto [&_svg]:h-full [&_svg]:w-auto [&_img]:h-full [&_img]:w-auto",
18
- // Semantic roles keep the mark's purpose explicit: on ink (verde) it
19
- // reads as on-primary; on canvas it reads as muted body.
20
- surface === "ink" ? "text-primary-foreground" : "text-muted-foreground", className), ...props }));
21
- }
22
- function LogoTileMetric({ className, ...props }) {
23
- return (_jsx("span", { "data-slot": "logo-tile-metric", className: cn("font-mono text-xs uppercase text-muted-foreground", className), ...props }));
24
- }
25
- function LogoTileName({ className, ...props }) {
26
- return (_jsx("span", { "data-slot": "logo-tile-name", className: cn("text-[13px] leading-4 text-muted-foreground", className), ...props }));
27
- }
28
- export { LogoTile, LogoTileMark, LogoTileMetric, LogoTileName };
@@ -1,13 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * media-mount — standard square-cornered brand image/video/artifact mount.
4
- *
5
- * The kept design-system `.nc-image` atom owns the image register. This wrapper
6
- * standardizes fill behavior so website pages do not recreate image mounts.
7
- */
8
- declare function MediaMount({ className, ratio, children, style, ...props }: React.ComponentProps<"figure"> & {
9
- ratio?: string | "auto";
10
- }): React.JSX.Element;
11
- declare function MediaMountCaption({ className, ...props }: React.ComponentProps<"figcaption">): React.JSX.Element;
12
- export { MediaMount, MediaMountCaption };
13
- //# sourceMappingURL=media-mount.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-mount.d.ts","sourceRoot":"","sources":["../../src/components/media-mount.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;GAKG;AAEH,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,KAAe,EACf,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,qBAc9D;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,qBAQrF;AAED,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,15 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * media-mount — standard square-cornered brand image/video/artifact mount.
5
- *
6
- * The kept design-system `.nc-image` atom owns the image register. This wrapper
7
- * standardizes fill behavior so website pages do not recreate image mounts.
8
- */
9
- function MediaMount({ className, ratio = "4 / 3", children, style, ...props }) {
10
- return (_jsx("figure", { "data-slot": "media-mount", className: cn("nc-image relative min-h-0 w-full overflow-hidden bg-[var(--nc-canvas-soft)]", className), style: ratio === "auto" ? style : { aspectRatio: ratio, ...style }, ...props, children: children }));
11
- }
12
- function MediaMountCaption({ className, ...props }) {
13
- return (_jsx("figcaption", { "data-slot": "media-mount-caption", className: cn("nc-image-caption nc-type-caption", className), ...props }));
14
- }
15
- export { MediaMount, MediaMountCaption };
@@ -1,24 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * nav-bar — the fixed, always-dark glass navigation bar.
4
- *
5
- * A three-track grid (`1fr auto 1fr`): logo lockup leading, route links centered,
6
- * CTA cluster trailing. It is a PERMANENT dark glass bar regardless of the page
7
- * section it floats over, so the root carries its own `dark` ancestor class and
8
- * resolves every surface from semantic roles. `GlassControl` owns the complete
9
- * glass material; this component contributes only navigation layout.
10
- *
11
- * `position: fixed` pins it to the viewport top; the consuming page owns the top
12
- * padding that clears it. Below ~960px the centered links slot hides and the grid
13
- * collapses to logo + CTA.
14
- *
15
- * A11y: links/triggers expose a `--ring` focus outline; the consumer wraps this in
16
- * a `<nav aria-label>`. Token-only; the root sets its own `dark` class (an accepted
17
- * ancestor-class remap), never `dark:` utilities.
18
- */
19
- declare function NavBar({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
20
- declare function NavBarLogo({ className, ...props }: React.ComponentProps<"a">): React.JSX.Element;
21
- declare function NavBarLinks({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
22
- declare function NavBarCta({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
23
- export { NavBar, NavBarLogo, NavBarLinks, NavBarCta };
24
- //# sourceMappingURL=nav-bar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nav-bar.d.ts","sourceRoot":"","sources":["../../src/components/nav-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;;;GAgBG;AAEH,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAYnE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAWrE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAexE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQtE;AAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC"}
@@ -1,35 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { GlassControl } from "./glass-control.js";
3
- import { cn } from "../lib/utils.js";
4
- /**
5
- * nav-bar — the fixed, always-dark glass navigation bar.
6
- *
7
- * A three-track grid (`1fr auto 1fr`): logo lockup leading, route links centered,
8
- * CTA cluster trailing. It is a PERMANENT dark glass bar regardless of the page
9
- * section it floats over, so the root carries its own `dark` ancestor class and
10
- * resolves every surface from semantic roles. `GlassControl` owns the complete
11
- * glass material; this component contributes only navigation layout.
12
- *
13
- * `position: fixed` pins it to the viewport top; the consuming page owns the top
14
- * padding that clears it. Below ~960px the centered links slot hides and the grid
15
- * collapses to logo + CTA.
16
- *
17
- * A11y: links/triggers expose a `--ring` focus outline; the consumer wraps this in
18
- * a `<nav aria-label>`. Token-only; the root sets its own `dark` class (an accepted
19
- * ancestor-class remap), never `dark:` utilities.
20
- */
21
- function NavBar({ className, ...props }) {
22
- return (_jsx(GlassControl, { "data-slot": "nav-bar", shape: "bar", className: cn("dark fixed inset-x-0 top-0 z-30 grid min-h-16 grid-cols-[1fr_auto] items-center gap-4 px-4 py-3 text-foreground sm:px-8 lg:grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)]", className), ...props }));
23
- }
24
- function NavBarLogo({ className, ...props }) {
25
- return (_jsx("a", { "data-slot": "nav-bar-logo", className: cn("inline-flex w-fit items-center gap-2.5 text-sm font-semibold text-foreground no-underline [&_img]:block [&_img]:h-7 [&_img]:w-auto [&_svg]:block [&_svg]:h-7 [&_svg]:w-auto", className), ...props }));
26
- }
27
- function NavBarLinks({ className, ...props }) {
28
- return (_jsx("div", { "data-slot": "nav-bar-links", className: cn("hidden items-center justify-center gap-1 text-sm text-muted-foreground lg:inline-flex",
29
- // each link reads as a flat pill with hover/focus affordance against the glass.
30
- "[&_a]:rounded-sm [&_a]:px-3 [&_a]:py-2 [&_a]:text-inherit [&_a]:no-underline [&_a]:transition-colors", "[&_a:hover]:bg-accent [&_a:hover]:text-foreground", "[&_a[data-active]]:text-foreground", className), ...props }));
31
- }
32
- function NavBarCta({ className, ...props }) {
33
- return (_jsx("div", { "data-slot": "nav-bar-cta", className: cn("inline-flex items-center gap-3 justify-self-end", className), ...props }));
34
- }
35
- export { NavBar, NavBarLogo, NavBarLinks, NavBarCta };
@@ -1,24 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * newsletter — email-capture section (replaces the retired `sections/newsletter.css`
4
- * + its coupled form control).
5
- *
6
- * Composition pattern: a centered intro over an inline email + submit row. It owns
7
- * NO structural seam — the only visible borders are the caller's input control and
8
- * the submit button's own edge. The frame/lane/row perimeter is owned by the kept
9
- * geometry layer this composes inside. `surface="ink"` inverts the band onto the
10
- * ink role; the note tint follows via a `data-slot` descendant selector (the
11
- * retired CSS-cascade model), so the section stays server-renderable.
12
- *
13
- * Slots: `<NewsletterForm>` holds the input + button (the input grows, the button
14
- * stays content-width on desktop, stacking under 640px); `<NewsletterNote>` is the
15
- * consent line. The caller supplies the `Input` and `Button`. Token-only;
16
- * no `dark:` styling.
17
- */
18
- declare function Newsletter({ className, surface, ...props }: React.ComponentProps<"div"> & {
19
- surface?: "canvas" | "ink";
20
- }): React.JSX.Element;
21
- declare function NewsletterForm({ className, ...props }: React.ComponentProps<"form">): React.JSX.Element;
22
- declare function NewsletterNote({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
23
- export { Newsletter, NewsletterForm, NewsletterNote };
24
- //# sourceMappingURL=newsletter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"newsletter.d.ts","sourceRoot":"","sources":["../../src/components/newsletter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;;GAeG;AAEH,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CAAE,qBAiB9D;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAY5E;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAQzE;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
@@ -1,31 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * newsletter — email-capture section (replaces the retired `sections/newsletter.css`
5
- * + its coupled form control).
6
- *
7
- * Composition pattern: a centered intro over an inline email + submit row. It owns
8
- * NO structural seam — the only visible borders are the caller's input control and
9
- * the submit button's own edge. The frame/lane/row perimeter is owned by the kept
10
- * geometry layer this composes inside. `surface="ink"` inverts the band onto the
11
- * ink role; the note tint follows via a `data-slot` descendant selector (the
12
- * retired CSS-cascade model), so the section stays server-renderable.
13
- *
14
- * Slots: `<NewsletterForm>` holds the input + button (the input grows, the button
15
- * stays content-width on desktop, stacking under 640px); `<NewsletterNote>` is the
16
- * consent line. The caller supplies the `Input` and `Button`. Token-only;
17
- * no `dark:` styling.
18
- */
19
- function Newsletter({ className, surface = "canvas", ...props }) {
20
- return (_jsx("div", { "data-slot": "newsletter", "data-surface": surface, className: cn("grid min-h-full min-w-0 content-center justify-items-center py-[clamp(40px,6vw,96px)] text-center", surface === "canvas" && "bg-card", surface === "ink" && [
21
- "bg-primary text-primary-foreground",
22
- "[&_[data-slot=newsletter-note]]:text-[color-mix(in_srgb,var(--nc-canvas)_56%,var(--nc-ink))]",
23
- ], className), ...props }));
24
- }
25
- function NewsletterForm({ className, ...props }) {
26
- return (_jsx("form", { "data-slot": "newsletter-form", className: cn("mt-3 grid w-full max-w-[560px] grid-cols-1 gap-2 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center", "[&>button]:w-full sm:[&>button]:w-auto", className), ...props }));
27
- }
28
- function NewsletterNote({ className, ...props }) {
29
- return (_jsx("p", { "data-slot": "newsletter-note", className: cn("mt-2 font-mono text-xs text-muted-foreground", className), ...props }));
30
- }
31
- export { Newsletter, NewsletterForm, NewsletterNote };
@@ -1,30 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * page-frame — React shell for the kept design-system page geometry.
4
- *
5
- * The design-system owns the frame, row, lane, side-fill, rail, and marker CSS.
6
- * This component gives website pages a small React vocabulary so they do not
7
- * hand-author the same structure for every section. It intentionally does not
8
- * replace the geometry layer; it only composes the approved classes.
9
- */
10
- declare function PageSystem({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
11
- declare function PageFrame({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
12
- type PageMarkerPosition = "top-left" | "top-right" | "bottom-left" | "bottom-right";
13
- type PageRowProps = React.ComponentProps<"section"> & {
14
- lane?: "active" | "full";
15
- laneClassName?: string;
16
- sideFills?: boolean;
17
- marker?: PageMarkerPosition;
18
- };
19
- declare function PageRow({ lane, laneClassName, sideFills, marker, className, children, ...props }: PageRowProps): React.JSX.Element;
20
- declare function PageLane({ lane, className, ...props }: React.ComponentProps<"div"> & {
21
- lane?: "active" | "full";
22
- }): React.JSX.Element;
23
- declare function PageSideFill({ side, className, ...props }: React.ComponentProps<"div"> & {
24
- side: "start" | "end";
25
- }): React.JSX.Element;
26
- declare function PageMarker({ position, className, ...props }: React.ComponentProps<"span"> & {
27
- position: PageMarkerPosition;
28
- }): React.JSX.Element;
29
- export { PageSystem, PageFrame, PageRow, PageLane, PageSideFill, PageMarker };
30
- //# sourceMappingURL=page-frame.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-frame.d.ts","sourceRoot":"","sources":["../../src/components/page-frame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;GAOG;AAEH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAEvE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAItE;AAED,KAAK,kBAAkB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAEpF,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG;IACpD,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,iBAAS,OAAO,CAAC,EACf,IAAe,EACf,aAAa,EACb,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,YAAY,qBAad;AAED,iBAAS,QAAQ,CAAC,EAChB,IAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;CAAE,qBAS5D;AAED,iBAAS,YAAY,CAAC,EACpB,IAAI,EACJ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,qBAIzD;AAED,iBAAS,UAAU,CAAC,EAClB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;IAAE,QAAQ,EAAE,kBAAkB,CAAA;CAAE,qBASjE;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -1,30 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * page-frame — React shell for the kept design-system page geometry.
5
- *
6
- * The design-system owns the frame, row, lane, side-fill, rail, and marker CSS.
7
- * This component gives website pages a small React vocabulary so they do not
8
- * hand-author the same structure for every section. It intentionally does not
9
- * replace the geometry layer; it only composes the approved classes.
10
- */
11
- function PageSystem({ className, ...props }) {
12
- return _jsx("div", { className: cn("nc-page-system", className), ...props });
13
- }
14
- function PageFrame({ className, ...props }) {
15
- return (_jsx("div", { "data-nc-component": "page-frame", className: cn("nc-page-frame", className), ...props }));
16
- }
17
- function PageRow({ lane = "active", laneClassName, sideFills, marker, className, children, ...props }) {
18
- const showSideFills = sideFills ?? lane === "active";
19
- return (_jsxs("section", { "data-nc-component": "page-row", className: cn("nc-page-row", className), ...props, children: [marker ? _jsx(PageMarker, { position: marker }) : null, showSideFills ? _jsx(PageSideFill, { side: "start" }) : null, _jsx(PageLane, { lane: lane, className: laneClassName, children: children }), showSideFills ? _jsx(PageSideFill, { side: "end" }) : null] }));
20
- }
21
- function PageLane({ lane = "active", className, ...props }) {
22
- return (_jsx("div", { "data-lane": lane, "data-nc-component": lane === "active" ? "active-lane" : undefined, className: cn("nc-row-lane", className), ...props }));
23
- }
24
- function PageSideFill({ side, className, ...props }) {
25
- return (_jsx("div", { "data-side": side, className: cn("nc-side-fill", className), "aria-hidden": "true", ...props }));
26
- }
27
- function PageMarker({ position, className, ...props }) {
28
- return (_jsx("span", { "data-position": position, className: cn("nc-marker", className), "aria-hidden": "true", ...props }));
29
- }
30
- export { PageSystem, PageFrame, PageRow, PageLane, PageSideFill, PageMarker };
@@ -1,30 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * pricing-card — the brand pricing/package tier molecule (V5 rework).
4
- *
5
- * A seam-free fill: it drops into the holding `Pricing` grid, which owns every
6
- * hairline divider through its gap-as-seam (`gap-px bg-border`). The card draws NO
7
- * border and has square corners so the grid line never shows through a rounded
8
- * edge. It is a full-height flex column so `PricingCardCta` (`mt-auto`) pins to the
9
- * bottom and aligns across tiers.
10
- *
11
- * `variant="featured"` (V5) reads as featured through a SOFT canvas surface — a
12
- * quiet fill change, not an ink/primary polarity flip and not an inset rail. The
13
- * body/eyebrow/feature tones are identical to the default card; only the surface
14
- * differs. Server-renderable; token-only; no `dark:` styling.
15
- */
16
- declare function PricingCard({ className, variant, ...props }: React.ComponentProps<"div"> & {
17
- variant?: "default" | "featured";
18
- }): React.JSX.Element;
19
- declare function PricingCardEyebrow({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
20
- declare function PricingCardName({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
21
- declare function PricingCardPrice({ className, children, amount, period, ...props }: React.ComponentProps<"div"> & {
22
- amount: React.ReactNode;
23
- period?: React.ReactNode;
24
- }): React.JSX.Element;
25
- declare function PricingCardNote({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
26
- declare function PricingCardFeatures({ className, ...props }: React.ComponentProps<"ul">): React.JSX.Element;
27
- declare function PricingCardFeature({ className, children, ...props }: React.ComponentProps<"li">): React.JSX.Element;
28
- declare function PricingCardCta({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
29
- export { PricingCard, PricingCardEyebrow, PricingCardName, PricingCardPrice, PricingCardNote, PricingCardFeatures, PricingCardFeature, PricingCardCta, };
30
- //# sourceMappingURL=pricing-card.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pricing-card.d.ts","sourceRoot":"","sources":["../../src/components/pricing-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;GAaG;AAEH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;CAAE,qBAgBpE;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAQ7E;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ5E;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAmBrF;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAQ1E;AAED,iBAAS,mBAAmB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQ/E;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAkBxF;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ3E;AAED,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACf,CAAC"}