canvas-ui-sdk 0.3.7 → 0.3.8

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 (67) hide show
  1. package/dist/index.js +270 -223
  2. package/dist/index.js.map +1 -1
  3. package/mcp/dist/index.js +14 -2
  4. package/package.json +1 -1
  5. package/registry/blocks/canvas-item.json +1 -1
  6. package/registry/blocks/chat-message.json +1 -1
  7. package/registry/blocks/component-palette.json +1 -1
  8. package/registry/blocks/component-search.json +1 -1
  9. package/registry/blocks/content-dropzone.json +1 -1
  10. package/registry/blocks/credit-card-display.json +1 -1
  11. package/registry/blocks/custom-component-helper.json +1 -1
  12. package/registry/blocks/empty-state.json +1 -1
  13. package/registry/blocks/filter-popover.json +1 -1
  14. package/registry/blocks/fixed-column-data-table.json +1 -1
  15. package/registry/blocks/infinity-canvas.json +1 -1
  16. package/registry/blocks/menu-section.json +1 -1
  17. package/registry/blocks/messenger-sidebar.json +1 -1
  18. package/registry/blocks/mobile-bottom-nav.json +1 -1
  19. package/registry/blocks/monthly-calendar-widget.json +1 -1
  20. package/registry/blocks/page-header-section.json +1 -1
  21. package/registry/blocks/page-previews.json +1 -1
  22. package/registry/blocks/pagination.json +1 -1
  23. package/registry/blocks/persona-card.json +1 -1
  24. package/registry/blocks/pricing-cards.json +1 -1
  25. package/registry/blocks/profile-card.json +1 -1
  26. package/registry/blocks/profile-info-cards.json +1 -1
  27. package/registry/blocks/prompt-template.json +1 -1
  28. package/registry/blocks/screen-flowchart.json +1 -1
  29. package/registry/blocks/screen-prompt-builder.json +1 -1
  30. package/registry/blocks/screen-prompt-template.json +1 -1
  31. package/registry/blocks/search-bar.json +1 -1
  32. package/registry/blocks/sidebar-cards.json +1 -1
  33. package/registry/blocks/sidebar-profile-card.json +1 -1
  34. package/registry/blocks/step-tracker.json +1 -1
  35. package/registry/blocks/vertical-step-tracker.json +1 -1
  36. package/registry/blocks/video-chat-controls.json +1 -1
  37. package/registry/layout/account-settings-shell.json +1 -1
  38. package/registry/layout/dashboard-shell.json +1 -1
  39. package/registry/layout/double-sidebar-shell.json +1 -1
  40. package/registry/layout/double-sidebar.json +1 -1
  41. package/registry/layout/header.json +1 -1
  42. package/registry/layout/icon-sidebar-shell.json +1 -1
  43. package/registry/layout/icon-sidebar.json +1 -1
  44. package/registry/layout/mobile-menu-shell.json +1 -1
  45. package/registry/layout/multistep-progressbar-shell.json +1 -1
  46. package/registry/layout/multistep-shell.json +1 -1
  47. package/registry/layout/multistep-sidebar-shell.json +1 -1
  48. package/registry/layout/project-context-shell.json +1 -1
  49. package/registry/layout/search-bar-shell.json +1 -1
  50. package/registry/layout/sidebar.json +1 -1
  51. package/registry/layout/standard-page-shell.json +1 -1
  52. package/registry/layout/vertical-multistep-shell.json +1 -1
  53. package/registry/ui/avatar.json +1 -1
  54. package/registry/ui/checkbox.json +1 -1
  55. package/registry/ui/date-input.json +1 -1
  56. package/registry/ui/image-uploader.json +1 -1
  57. package/registry/ui/multiselect-checkbox-field.json +1 -1
  58. package/registry/ui/multiselect-tags.json +1 -1
  59. package/registry/ui/radio-group.json +1 -1
  60. package/registry/ui/searchbox.json +1 -1
  61. package/registry/ui/select.json +1 -1
  62. package/registry/ui/selectable-pills.json +1 -1
  63. package/registry/ui/slider.json +1 -1
  64. package/registry/ui/switch.json +1 -1
  65. package/registry/ui/text-input.json +1 -1
  66. package/registry/ui/textarea.json +1 -1
  67. package/styles/tokens.reference.css +9 -0
package/dist/index.js CHANGED
@@ -74,7 +74,7 @@ function AvatarFallback({
74
74
  {
75
75
  "data-slot": "avatar-fallback",
76
76
  className: cn(
77
- "bg-muted flex size-full items-center justify-center rounded-full",
77
+ "bg-[var(--canvas-surface)] flex size-full items-center justify-center rounded-full",
78
78
  className
79
79
  ),
80
80
  ...props
@@ -412,7 +412,7 @@ var Checkbox = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__
412
412
  ref,
413
413
  className: cn(
414
414
  "peer size-4 shrink-0 rounded-[var(--radius-xs)] border border-[var(--canvas-border-input)]",
415
- "bg-white transition-colors",
415
+ "bg-[var(--canvas-background)] transition-colors",
416
416
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)] focus-visible:ring-offset-2",
417
417
  "disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)]",
418
418
  "data-[state=checked]:bg-[var(--canvas-primary)] data-[state=checked]:border-[var(--canvas-primary)]",
@@ -423,7 +423,7 @@ var Checkbox = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__
423
423
  children: /* @__PURE__ */ jsx(
424
424
  CheckboxPrimitive.Indicator,
425
425
  {
426
- className: cn("flex items-center justify-center text-white"),
426
+ className: cn("flex items-center justify-center text-[var(--canvas-primary-foreground)]"),
427
427
  children: /* @__PURE__ */ jsx(Check, { className: "size-3", strokeWidth: 2.5 })
428
428
  }
429
429
  )
@@ -466,7 +466,7 @@ var DateInput = React13.forwardRef(
466
466
  "div",
467
467
  {
468
468
  className: cn(
469
- "flex items-center gap-2 bg-white border border-[var(--canvas-border-input)]",
469
+ "flex items-center gap-2 bg-[var(--canvas-background)] border border-[var(--canvas-border-input)]",
470
470
  "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)] focus-within:ring-offset-2",
471
471
  "has-[:disabled]:cursor-not-allowed has-[:disabled]:bg-[var(--canvas-input-disabled-bg)] has-[:disabled]:border-[var(--canvas-input-disabled-border)]",
472
472
  className
@@ -1236,7 +1236,7 @@ var ImageUploader = React13.forwardRef(
1236
1236
  disabled: disabled || isFirst,
1237
1237
  className: cn(
1238
1238
  "flex items-center justify-center rounded-full transition-colors",
1239
- isFirst || disabled ? "bg-[var(--canvas-surface)] border border-[var(--canvas-border)] text-[var(--canvas-text-muted)]" : "bg-[var(--canvas-text)] text-white"
1239
+ isFirst || disabled ? "bg-[var(--canvas-surface)] border border-[var(--canvas-border)] text-[var(--canvas-text-muted)]" : "bg-[var(--canvas-text)] text-[var(--canvas-primary-foreground)]"
1240
1240
  ),
1241
1241
  style: { width: "24px", height: "24px" },
1242
1242
  children: /* @__PURE__ */ jsx(ChevronLeft, { style: { width: "16px", height: "16px" } })
@@ -1253,7 +1253,7 @@ var ImageUploader = React13.forwardRef(
1253
1253
  disabled: disabled || isLast,
1254
1254
  className: cn(
1255
1255
  "flex items-center justify-center rounded-full transition-colors",
1256
- isLast || disabled ? "bg-[var(--canvas-surface)] border border-[var(--canvas-border)] text-[var(--canvas-text-muted)]" : "bg-[var(--canvas-text)] text-white"
1256
+ isLast || disabled ? "bg-[var(--canvas-surface)] border border-[var(--canvas-border)] text-[var(--canvas-text-muted)]" : "bg-[var(--canvas-text)] text-[var(--canvas-primary-foreground)]"
1257
1257
  ),
1258
1258
  style: { width: "24px", height: "24px" },
1259
1259
  children: /* @__PURE__ */ jsx(ChevronRight, { style: { width: "16px", height: "16px" } })
@@ -1268,7 +1268,7 @@ var ImageUploader = React13.forwardRef(
1268
1268
  handleDelete(image.id);
1269
1269
  },
1270
1270
  disabled,
1271
- className: "flex items-center justify-center rounded-full bg-[var(--canvas-text)] text-white transition-colors",
1271
+ className: "flex items-center justify-center rounded-full bg-[var(--canvas-text)] text-[var(--canvas-primary-foreground)] transition-colors",
1272
1272
  style: { width: "24px", height: "24px" },
1273
1273
  children: /* @__PURE__ */ jsx(Trash2, { style: { width: "16px", height: "16px" } })
1274
1274
  }
@@ -1400,7 +1400,7 @@ var MultiselectCheckboxField = React13.forwardRef(
1400
1400
  onClick: () => handleToggle(option.id),
1401
1401
  disabled,
1402
1402
  className: cn(
1403
- "flex items-center gap-2 bg-white border overflow-hidden transition-colors",
1403
+ "flex items-center gap-2 bg-[var(--canvas-background)] border overflow-hidden transition-colors",
1404
1404
  "focus:outline-none focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2",
1405
1405
  isSelected ? "border-[var(--canvas-primary)]" : "border-[var(--canvas-border-input)]",
1406
1406
  disabled && "cursor-not-allowed bg-[var(--canvas-input-disabled-bg)] border-[var(--canvas-input-disabled-border)] opacity-60"
@@ -1422,7 +1422,7 @@ var MultiselectCheckboxField = React13.forwardRef(
1422
1422
  {
1423
1423
  className: cn(
1424
1424
  "flex items-center justify-center shrink-0 rounded-[var(--radius-xs)] border transition-colors",
1425
- isSelected ? "bg-[var(--canvas-primary)] border-[var(--canvas-primary)]" : "bg-white border-[var(--canvas-border-input)]",
1425
+ isSelected ? "bg-[var(--canvas-primary)] border-[var(--canvas-primary)]" : "bg-[var(--canvas-background)] border-[var(--canvas-border-input)]",
1426
1426
  disabled && "opacity-60"
1427
1427
  ),
1428
1428
  style: {
@@ -1432,7 +1432,7 @@ var MultiselectCheckboxField = React13.forwardRef(
1432
1432
  children: isSelected && /* @__PURE__ */ jsx(
1433
1433
  Check,
1434
1434
  {
1435
- className: "text-white",
1435
+ className: "text-[var(--canvas-primary-foreground)]",
1436
1436
  style: {
1437
1437
  width: inputSize === "sm" ? "12px" : "16px",
1438
1438
  height: inputSize === "sm" ? "12px" : "16px"
@@ -1489,7 +1489,7 @@ var MultiselectTags = React13.forwardRef(
1489
1489
  "div",
1490
1490
  {
1491
1491
  className: cn(
1492
- "flex flex-wrap items-center gap-1.5 bg-white border border-[var(--canvas-border-input)] p-1.5",
1492
+ "flex flex-wrap items-center gap-1.5 bg-[var(--canvas-background)] border border-[var(--canvas-border-input)] p-1.5",
1493
1493
  "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)] focus-within:ring-offset-2",
1494
1494
  disabled && "cursor-not-allowed bg-[var(--canvas-input-disabled-bg)] border-[var(--canvas-input-disabled-border)]",
1495
1495
  className
@@ -1603,7 +1603,7 @@ function RadioGroupItem({
1603
1603
  {
1604
1604
  "data-slot": "radio-group-item",
1605
1605
  className: cn(
1606
- "aspect-square size-4 shrink-0 rounded-full border border-[var(--canvas-border-input)] bg-white transition-colors",
1606
+ "aspect-square size-4 shrink-0 rounded-full border border-[var(--canvas-border-input)] bg-[var(--canvas-background)] transition-colors",
1607
1607
  "outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)] focus-visible:ring-offset-2",
1608
1608
  "aria-invalid:border-[var(--canvas-border-input-invalid)] aria-invalid:ring-[var(--canvas-border-input-invalid)]/20",
1609
1609
  "disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)]",
@@ -1632,7 +1632,7 @@ var TextInput = React13.forwardRef(
1632
1632
  ref,
1633
1633
  disabled,
1634
1634
  className: cn(
1635
- "w-full bg-white border border-[var(--canvas-border-input)]",
1635
+ "w-full bg-[var(--canvas-background)] border border-[var(--canvas-border-input)]",
1636
1636
  "text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)]",
1637
1637
  "focus:outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2",
1638
1638
  "disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)]",
@@ -1781,7 +1781,7 @@ var Searchbox = React13.forwardRef(
1781
1781
  "div",
1782
1782
  {
1783
1783
  className: cn(
1784
- "flex items-center gap-2 bg-white border border-[var(--canvas-border-input)]",
1784
+ "flex items-center gap-2 bg-[var(--canvas-background)] border border-[var(--canvas-border-input)]",
1785
1785
  "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)] focus-within:ring-offset-2",
1786
1786
  "has-[:disabled]:cursor-not-allowed has-[:disabled]:bg-[var(--canvas-input-disabled-bg)] has-[:disabled]:border-[var(--canvas-input-disabled-border)]",
1787
1787
  className
@@ -1822,7 +1822,7 @@ var Searchbox = React13.forwardRef(
1822
1822
  Searchbox.displayName = "Searchbox";
1823
1823
  var selectTriggerVariants = cva(
1824
1824
  // Base styles using CSS variables
1825
- "flex w-full items-center justify-between gap-2 bg-white border border-[var(--canvas-border-input)] text-[var(--canvas-text)] whitespace-nowrap transition-colors outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)] aria-invalid:border-[var(--canvas-border-input-invalid)] data-[placeholder]:text-[var(--canvas-text-placeholder)] [&_svg:not([class*='text-'])]:text-[var(--canvas-text-muted)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 font-[family-name:var(--typo-global-font)]",
1825
+ "flex w-full items-center justify-between gap-2 bg-[var(--canvas-background)] border border-[var(--canvas-border-input)] text-[var(--canvas-text)] whitespace-nowrap transition-colors outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)] aria-invalid:border-[var(--canvas-border-input-invalid)] data-[placeholder]:text-[var(--canvas-text-placeholder)] [&_svg:not([class*='text-'])]:text-[var(--canvas-text-muted)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 font-[family-name:var(--typo-global-font)]",
1826
1826
  {
1827
1827
  variants: {
1828
1828
  inputSize: {
@@ -2059,7 +2059,7 @@ var SelectablePills = React13.forwardRef(
2059
2059
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)] focus-visible:ring-offset-2",
2060
2060
  "disabled:cursor-not-allowed disabled:opacity-50",
2061
2061
  styles.pill,
2062
- isSelected ? "bg-[var(--canvas-surface-brand)] border-[var(--canvas-primary)] text-[var(--canvas-primary)]" : "bg-white border-[var(--canvas-border)] text-[var(--canvas-text-muted)] hover:border-[var(--canvas-text-muted)]"
2062
+ isSelected ? "bg-[var(--canvas-surface-brand)] border-[var(--canvas-primary)] text-[var(--canvas-primary)]" : "bg-[var(--canvas-background)] border-[var(--canvas-border)] text-[var(--canvas-text-muted)] hover:border-[var(--canvas-text-muted)]"
2063
2063
  ),
2064
2064
  children: option.label
2065
2065
  },
@@ -2939,7 +2939,7 @@ var Slider = React13.forwardRef(({
2939
2939
  SliderPrimitive.Thumb,
2940
2940
  {
2941
2941
  className: cn(
2942
- "block rounded-full border-2 border-white bg-[var(--canvas-primary)]",
2942
+ "block rounded-full border-2 border-[var(--canvas-background)] bg-[var(--canvas-primary)]",
2943
2943
  "shadow-[0px_1px_2px_0px_rgba(0,0,0,0.08)]",
2944
2944
  "ring-offset-background transition-colors",
2945
2945
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--canvas-border-input-focus)] focus-visible:ring-offset-2",
@@ -2986,7 +2986,7 @@ function Switch({
2986
2986
  {
2987
2987
  "data-slot": "switch-thumb",
2988
2988
  className: cn(
2989
- "pointer-events-none block size-4 rounded-full bg-white ring-0 transition-transform",
2989
+ "pointer-events-none block size-4 rounded-full bg-[var(--canvas-background)] ring-0 transition-transform",
2990
2990
  "data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
2991
2991
  )
2992
2992
  }
@@ -3054,7 +3054,7 @@ function TabsContent({
3054
3054
  }
3055
3055
  var textareaVariants = cva(
3056
3056
  // Base styles using CSS variables
3057
- "flex w-full bg-white border border-[var(--canvas-border-input)] text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] transition-colors resize-none focus:outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)] aria-invalid:border-[var(--canvas-border-input-invalid)]",
3057
+ "flex w-full bg-[var(--canvas-background)] border border-[var(--canvas-border-input)] text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] transition-colors resize-none focus:outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:bg-[var(--canvas-input-disabled-bg)] disabled:border-[var(--canvas-input-disabled-border)] disabled:text-[var(--canvas-input-disabled-text)] aria-invalid:border-[var(--canvas-border-input-invalid)]",
3058
3058
  {
3059
3059
  variants: {
3060
3060
  inputSize: {
@@ -3122,8 +3122,20 @@ var colorVariables = [
3122
3122
  { name: "--canvas-primary", default: "#1165ef", label: "Primary" },
3123
3123
  { name: "--canvas-primary-dark", default: "#093378", label: "Primary Dark" },
3124
3124
  { name: "--canvas-primary-foreground", default: "#ffffff", label: "Primary Text" },
3125
- { name: "--canvas-flair-bg", default: "#093378", label: "Flair Background" },
3126
- { name: "--canvas-destructive", default: "#ef4444", label: "Destructive" }
3125
+ { name: "--canvas-flair-bg", default: "#093378", label: "Flair Background" }
3126
+ ]
3127
+ },
3128
+ {
3129
+ category: "Status",
3130
+ variables: [
3131
+ { name: "--canvas-success", default: "#08875d", label: "Success" },
3132
+ { name: "--canvas-success-surface", default: "#edfdf8", label: "Success Surface" },
3133
+ { name: "--canvas-warning", default: "#d97706", label: "Warning" },
3134
+ { name: "--canvas-warning-surface", default: "#fffbeb", label: "Warning Surface" },
3135
+ { name: "--canvas-info", default: "#2563eb", label: "Info" },
3136
+ { name: "--canvas-info-surface", default: "#eff6ff", label: "Info Surface" },
3137
+ { name: "--canvas-destructive", default: "#ef4444", label: "Destructive" },
3138
+ { name: "--canvas-destructive-surface", default: "#fef2f2", label: "Destructive Surface" }
3127
3139
  ]
3128
3140
  },
3129
3141
  {
@@ -4049,7 +4061,7 @@ function Header({
4049
4061
  return /* @__PURE__ */ jsxs(
4050
4062
  "header",
4051
4063
  {
4052
- className: `h-[var(--header-height)] w-full border-b ${isDark ? "bg-[var(--canvas-sidebar-dark-bg)] border-[var(--canvas-sidebar-dark-border)]" : "bg-white border-[var(--canvas-neutral-border)]"}`,
4064
+ className: `h-[var(--header-height)] w-full border-b ${isDark ? "bg-[var(--canvas-sidebar-dark-bg)] border-[var(--canvas-sidebar-dark-border)]" : "bg-[var(--canvas-background)] border-[var(--canvas-neutral-border)]"}`,
4053
4065
  children: [
4054
4066
  /* @__PURE__ */ jsxs("div", { className: "flex items-center h-full px-4 lg:px-[var(--spacing-5xl)]", children: [
4055
4067
  /* @__PURE__ */ jsxs("div", { className: `flex items-center gap-[var(--spacing-md)] h-8 shrink-0 ${showDesktopLogo ? "" : "lg:hidden"}`, children: [
@@ -4203,7 +4215,7 @@ function Header({
4203
4215
  onClick: () => setIsMobileMenuOpen(false)
4204
4216
  }
4205
4217
  ),
4206
- /* @__PURE__ */ jsxs("div", { className: "absolute right-0 top-0 h-full w-full max-w-sm bg-white shadow-xl", children: [
4218
+ /* @__PURE__ */ jsxs("div", { className: "absolute right-0 top-0 h-full w-full max-w-sm bg-[var(--canvas-background)] shadow-xl", children: [
4207
4219
  /* @__PURE__ */ jsx("div", { className: "flex justify-end p-4", children: /* @__PURE__ */ jsx(
4208
4220
  Button,
4209
4221
  {
@@ -4516,7 +4528,7 @@ function Sidebar2({
4516
4528
  className: cn(
4517
4529
  "flex flex-col h-full w-[var(--sidebar-width)]",
4518
4530
  isDark && "bg-[var(--canvas-sidebar-dark-bg)] border-r border-[var(--canvas-sidebar-dark-border)]",
4519
- !isDark && "bg-white border-r border-[var(--canvas-border)]",
4531
+ !isDark && "bg-[var(--canvas-background)] border-r border-[var(--canvas-border)]",
4520
4532
  className
4521
4533
  ),
4522
4534
  children: [
@@ -4545,9 +4557,9 @@ function Sidebar2({
4545
4557
  })() })
4546
4558
  ] }),
4547
4559
  /* @__PURE__ */ jsx("span", { className: cn(
4548
- "text-xl font-semibold ml-[var(--spacing-md)]",
4560
+ "font-semibold ml-[var(--spacing-md)]",
4549
4561
  isDark ? "text-white" : "text-[var(--canvas-text)]"
4550
- ), children: branding.wordmark || "canvas" })
4562
+ ), style: { fontSize: "var(--typo-body-xl-size)" }, children: branding.wordmark || "canvas" })
4551
4563
  ] })
4552
4564
  ) }),
4553
4565
  /* @__PURE__ */ jsx(ScrollArea, { className: "flex-1 px-[var(--spacing-2xl)] pb-[var(--spacing-5xl)]", children: /* @__PURE__ */ jsx(
@@ -4650,7 +4662,7 @@ function DashboardShell({
4650
4662
  onAppMenuClick?.();
4651
4663
  console.log("App menu clicked - implement app-level mobile menu here");
4652
4664
  };
4653
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
4665
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
4654
4666
  /* @__PURE__ */ jsx("div", { className: "fixed top-0 left-0 right-0 lg:left-[var(--sidebar-width)] z-40", children: /* @__PURE__ */ jsx(Header, { onMenuClick: handleAppMenuClick }) }),
4655
4667
  /* @__PURE__ */ jsx("div", { className: "hidden lg:block fixed top-0 left-0 bottom-0 z-50 w-[var(--sidebar-width)]", children: /* @__PURE__ */ jsx(
4656
4668
  Sidebar2,
@@ -4669,7 +4681,7 @@ function DashboardShell({
4669
4681
  "top-[calc(var(--header-height)+4px)]",
4670
4682
  "flex items-center justify-center",
4671
4683
  "size-11",
4672
- "bg-white",
4684
+ "bg-[var(--canvas-background)]",
4673
4685
  "border border-l-0 border-[var(--canvas-neutral-border)]",
4674
4686
  "rounded-r-[var(--radius-xs)]",
4675
4687
  "shadow-[0px_4px_16px_0px_rgba(0,0,0,0.04)]",
@@ -4852,7 +4864,7 @@ function IconSidebar({
4852
4864
  className: cn(
4853
4865
  "flex flex-col items-center h-full w-[var(--icon-sidebar-width)]",
4854
4866
  isDark && "bg-[var(--canvas-sidebar-dark-bg)] border-r border-[var(--canvas-sidebar-dark-border)]",
4855
- !isDark && "bg-white border-r border-[var(--canvas-border)]",
4867
+ !isDark && "bg-[var(--canvas-background)] border-r border-[var(--canvas-border)]",
4856
4868
  className
4857
4869
  ),
4858
4870
  children: [
@@ -4908,7 +4920,7 @@ function IconSidebarShell({
4908
4920
  onAppMenuClick?.();
4909
4921
  console.log("App menu clicked - implement app-level mobile menu here");
4910
4922
  };
4911
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
4923
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
4912
4924
  /* @__PURE__ */ jsx("div", { className: "fixed top-0 left-0 right-0 lg:left-[var(--icon-sidebar-width)] z-40", children: /* @__PURE__ */ jsx(Header, { onMenuClick: handleAppMenuClick }) }),
4913
4925
  /* @__PURE__ */ jsx("div", { className: "hidden lg:block fixed top-0 left-0 bottom-0 z-50 w-[var(--icon-sidebar-width)]", children: /* @__PURE__ */ jsx(
4914
4926
  IconSidebar,
@@ -4927,7 +4939,7 @@ function IconSidebarShell({
4927
4939
  "top-[calc(var(--header-height)+4px)]",
4928
4940
  "flex items-center justify-center",
4929
4941
  "size-11",
4930
- "bg-white",
4942
+ "bg-[var(--canvas-background)]",
4931
4943
  "border border-l-0 border-[var(--canvas-neutral-border)]",
4932
4944
  "rounded-r-[var(--radius-xs)]",
4933
4945
  "shadow-[0px_4px_16px_0px_rgba(0,0,0,0.04)]",
@@ -5210,7 +5222,7 @@ function DoubleSidebar({
5210
5222
  className: cn(
5211
5223
  "flex flex-col items-center w-[var(--icon-sidebar-width)] shrink-0",
5212
5224
  isIconDark && "bg-[var(--canvas-sidebar-dark-bg)] border-r border-[var(--canvas-sidebar-dark-border)]",
5213
- !isIconDark && "bg-white border-r border-[var(--canvas-border)]"
5225
+ !isIconDark && "bg-[var(--canvas-background)] border-r border-[var(--canvas-border)]"
5214
5226
  ),
5215
5227
  children: [
5216
5228
  /* @__PURE__ */ jsx("div", { className: `flex items-center justify-center shrink-0 py-5 ${isMounted ? "opacity-100" : "opacity-0"}`, children: logoUrl ? /* @__PURE__ */ jsx(
@@ -5249,7 +5261,7 @@ function DoubleSidebar({
5249
5261
  className: cn(
5250
5262
  "flex flex-col w-[var(--nav-sidebar-width)]",
5251
5263
  isNavDark && "bg-[var(--canvas-sidebar-dark-bg)] border-r border-[var(--canvas-sidebar-dark-border)]",
5252
- !isNavDark && "bg-white border-r border-[var(--canvas-border)] shadow-[0_4px_16px_0_rgba(0,0,0,0.04)]"
5264
+ !isNavDark && "bg-[var(--canvas-background)] border-r border-[var(--canvas-border)] shadow-[0_4px_16px_0_rgba(0,0,0,0.04)]"
5253
5265
  ),
5254
5266
  children: /* @__PURE__ */ jsx(ScrollArea, { className: "flex-1 pt-[var(--header-height)] px-[var(--spacing-2xl)] pb-[var(--spacing-5xl)]", children: /* @__PURE__ */ jsx("nav", { className: "flex flex-col gap-0", children: activeSection?.tabs.map((tab) => /* @__PURE__ */ jsx(
5255
5267
  NavTabItem,
@@ -5285,7 +5297,7 @@ function DoubleSidebarShell({
5285
5297
  onAppMenuClick?.();
5286
5298
  console.log("App menu clicked - implement app-level mobile menu here");
5287
5299
  };
5288
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
5300
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
5289
5301
  /* @__PURE__ */ jsx("div", { className: "fixed top-0 left-0 right-0 lg:left-[var(--double-sidebar-width)] z-40", children: /* @__PURE__ */ jsx(Header, { onMenuClick: handleAppMenuClick }) }),
5290
5302
  /* @__PURE__ */ jsx("div", { className: "hidden lg:block fixed top-0 left-0 bottom-0 z-50 w-[var(--double-sidebar-width)]", children: /* @__PURE__ */ jsx(
5291
5303
  DoubleSidebar,
@@ -5305,7 +5317,7 @@ function DoubleSidebarShell({
5305
5317
  "top-[calc(var(--header-height)+4px)]",
5306
5318
  "flex items-center justify-center",
5307
5319
  "size-11",
5308
- "bg-white",
5320
+ "bg-[var(--canvas-background)]",
5309
5321
  "border border-l-0 border-[var(--canvas-neutral-border)]",
5310
5322
  "rounded-r-[var(--radius-xs)]",
5311
5323
  "shadow-[0px_4px_16px_0px_rgba(0,0,0,0.04)]",
@@ -5434,14 +5446,13 @@ function PageHeaderSection({
5434
5446
  /* @__PURE__ */ jsx(
5435
5447
  "h2",
5436
5448
  {
5437
- className: "text-4xl",
5438
5449
  style: {
5439
- fontFamily: "var(--typo-page-title-font, var(--typo-global-font))",
5440
- fontSize: "var(--typo-page-title-size)",
5441
- fontWeight: "var(--typo-page-title-weight)",
5442
- letterSpacing: "var(--typo-page-title-spacing)",
5443
- lineHeight: "var(--typo-page-title-line-height)",
5444
- color: "var(--typo-page-title-color)"
5450
+ fontFamily: "var(--typo-h4-font, var(--typo-global-font))",
5451
+ fontSize: "var(--typo-h4-size)",
5452
+ fontWeight: "var(--typo-h4-weight)",
5453
+ letterSpacing: "var(--typo-h4-spacing)",
5454
+ lineHeight: "var(--typo-h4-line-height)",
5455
+ color: "var(--typo-h4-color)"
5445
5456
  },
5446
5457
  children: title
5447
5458
  }
@@ -5450,12 +5461,12 @@ function PageHeaderSection({
5450
5461
  "p",
5451
5462
  {
5452
5463
  style: {
5453
- fontFamily: "var(--typo-page-desc-font, var(--typo-global-font))",
5454
- fontSize: "var(--typo-page-desc-size)",
5455
- fontWeight: "var(--typo-page-desc-weight)",
5456
- letterSpacing: "var(--typo-page-desc-spacing)",
5457
- lineHeight: "var(--typo-page-desc-line-height)",
5458
- color: "var(--typo-page-desc-color-muted)"
5464
+ fontFamily: "var(--typo-body-m-font, var(--typo-global-font))",
5465
+ fontSize: "var(--typo-body-m-size)",
5466
+ fontWeight: "var(--typo-body-m-weight)",
5467
+ letterSpacing: "var(--typo-body-m-spacing)",
5468
+ lineHeight: "var(--typo-body-m-line-height)",
5469
+ color: "var(--typo-body-m-color-muted)"
5459
5470
  },
5460
5471
  children: description
5461
5472
  }
@@ -5498,7 +5509,7 @@ function StandardPageShell({
5498
5509
  onAppMenuClick?.();
5499
5510
  console.log("App menu clicked - implement app-level mobile menu here");
5500
5511
  };
5501
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
5512
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
5502
5513
  /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-40", children: /* @__PURE__ */ jsx(Header, { onMenuClick: handleAppMenuClick, showDesktopLogo: true }) }),
5503
5514
  (showBanner || showPageHeader) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-full", children: [
5504
5515
  showBanner && /* @__PURE__ */ jsx(FlairBanner, { title: bannerTitle }),
@@ -5565,12 +5576,13 @@ function MobileNavTab({ item, variant = "light", onClick }) {
5565
5576
  {
5566
5577
  className: cn(
5567
5578
  // Match icon-sidebar: 12px labels, medium weight
5568
- "text-xs font-medium",
5579
+ "font-medium",
5569
5580
  isDark && isActive && "text-[var(--canvas-sidebar-dark-active-text)]",
5570
5581
  isDark && !isActive && "text-[var(--canvas-sidebar-dark-text)]",
5571
5582
  !isDark && isActive && "text-[var(--canvas-sidebar-light-active-text)]",
5572
5583
  !isDark && !isActive && "text-[var(--canvas-sidebar-light-text)]"
5573
5584
  ),
5585
+ style: { fontSize: "var(--typo-sidebar-label-size)" },
5574
5586
  children: item.label
5575
5587
  }
5576
5588
  )
@@ -5642,7 +5654,7 @@ function MobileMenuShell({
5642
5654
  setInternalActiveTab(tab.id);
5643
5655
  }
5644
5656
  };
5645
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
5657
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
5646
5658
  /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-40", children: /* @__PURE__ */ jsx(Header, { showDesktopLogo: true }) }),
5647
5659
  /* @__PURE__ */ jsx("main", { className: "w-full", children: /* @__PURE__ */ jsx(
5648
5660
  "div",
@@ -5687,7 +5699,7 @@ function SearchBar({
5687
5699
  {
5688
5700
  className: cn(
5689
5701
  "flex items-center gap-2",
5690
- "bg-white border border-[var(--canvas-border-input)]",
5702
+ "bg-[var(--canvas-background)] border border-[var(--canvas-border-input)]",
5691
5703
  "pr-2",
5692
5704
  "transition-colors",
5693
5705
  "focus-within:border-[var(--canvas-border-input-focus)] focus-within:ring-2 focus-within:ring-[var(--canvas-border-input-focus)] focus-within:ring-offset-2",
@@ -5776,7 +5788,7 @@ var defaultDateRange = {
5776
5788
  };
5777
5789
  function FilterDropdown({ config, value, onChange }) {
5778
5790
  return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
5779
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: config.label }),
5791
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: config.label }),
5780
5792
  /* @__PURE__ */ jsxs(Select, { value: value || void 0, onValueChange: onChange, children: [
5781
5793
  /* @__PURE__ */ jsx(SelectTrigger, { inputSize: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: config.placeholder }) }),
5782
5794
  /* @__PURE__ */ jsx(SelectContent, { position: "popper", side: "bottom", sideOffset: 4, children: config.options.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.id, children: option.label }, option.id)) })
@@ -5851,7 +5863,7 @@ function FilterPopover({
5851
5863
  "button",
5852
5864
  {
5853
5865
  className: cn(
5854
- "flex items-center justify-between gap-2 bg-white border text-[var(--canvas-text)] whitespace-nowrap transition-colors outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2 data-[state=open]:border-[var(--canvas-border-input-focus)]",
5866
+ "flex items-center justify-between gap-2 bg-[var(--canvas-background)] border text-[var(--canvas-text)] whitespace-nowrap transition-colors outline-none focus:border-[var(--canvas-border-input-focus)] focus:ring-2 focus:ring-[var(--canvas-border-input-focus)] focus:ring-offset-2 data-[state=open]:border-[var(--canvas-border-input-focus)]",
5855
5867
  className
5856
5868
  ),
5857
5869
  style: {
@@ -5881,15 +5893,15 @@ function FilterPopover({
5881
5893
  side: "bottom",
5882
5894
  sideOffset: 4,
5883
5895
  avoidCollisions: false,
5884
- className: "w-80 p-0 bg-white border border-[var(--canvas-border)] shadow-lg",
5896
+ className: "w-80 p-0 bg-[var(--canvas-background)] border border-[var(--canvas-border)] shadow-lg",
5885
5897
  children: [
5886
5898
  /* @__PURE__ */ jsxs("div", { className: "p-4 space-y-5 max-h-[480px] overflow-y-auto", children: [
5887
5899
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
5888
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: "Text Input" }),
5900
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: "Text Input" }),
5889
5901
  /* @__PURE__ */ jsx(TextInput, { inputSize: "sm", placeholder: "Enter text..." })
5890
5902
  ] }),
5891
5903
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
5892
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: "Searchbox" }),
5904
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: "Searchbox" }),
5893
5905
  /* @__PURE__ */ jsx(Searchbox, { inputSize: "sm", placeholder: "Search..." })
5894
5906
  ] }),
5895
5907
  dropdowns.slice(0, 1).map((dropdown) => /* @__PURE__ */ jsx(
@@ -5902,11 +5914,11 @@ function FilterPopover({
5902
5914
  dropdown.id
5903
5915
  )),
5904
5916
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
5905
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: "Date Input" }),
5917
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: "Date Input" }),
5906
5918
  /* @__PURE__ */ jsx(DateInput, { inputSize: "sm" })
5907
5919
  ] }),
5908
5920
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
5909
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: "Radio Buttons" }),
5921
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: "Radio Buttons" }),
5910
5922
  /* @__PURE__ */ jsxs(RadioGroup2, { defaultValue: "option1", className: "flex", children: [
5911
5923
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
5912
5924
  /* @__PURE__ */ jsx(RadioGroupItem, { value: "option1", id: "radio1" }),
@@ -5935,7 +5947,7 @@ function FilterPopover({
5935
5947
  ] })
5936
5948
  ] }),
5937
5949
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
5938
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: "Radio Buttons List" }),
5950
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: "Radio Buttons List" }),
5939
5951
  /* @__PURE__ */ jsxs(RadioGroup2, { defaultValue: "list-opt1", className: "flex flex-col gap-2", children: [
5940
5952
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
5941
5953
  /* @__PURE__ */ jsx(RadioGroupItem, { value: "list-opt1", id: "radio-list-1" }),
@@ -5976,7 +5988,7 @@ function FilterPopover({
5976
5988
  ] })
5977
5989
  ] }),
5978
5990
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
5979
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: "Checkbox" }),
5991
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: "Checkbox" }),
5980
5992
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
5981
5993
  /* @__PURE__ */ jsx(Checkbox, { id: "single-checkbox" }),
5982
5994
  /* @__PURE__ */ jsx(
@@ -5991,7 +6003,7 @@ function FilterPopover({
5991
6003
  ] })
5992
6004
  ] }),
5993
6005
  checkboxGroup && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
5994
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: "Checkbox List" }),
6006
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: "Checkbox List" }),
5995
6007
  /* @__PURE__ */ jsx("div", { className: "space-y-2", children: checkboxGroup.options.map((option) => /* @__PURE__ */ jsx(
5996
6008
  CheckboxWithLabel,
5997
6009
  {
@@ -6003,7 +6015,7 @@ function FilterPopover({
6003
6015
  )) })
6004
6016
  ] }),
6005
6017
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
6006
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: "Toggle" }),
6018
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: "Toggle" }),
6007
6019
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
6008
6020
  /* @__PURE__ */ jsx(Switch, { id: "toggle-switch" }),
6009
6021
  /* @__PURE__ */ jsx(
@@ -6018,7 +6030,7 @@ function FilterPopover({
6018
6030
  ] })
6019
6031
  ] }),
6020
6032
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
6021
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text-muted)]", children: "Multiselect Tags" }),
6033
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-input-label-size)", fontWeight: "var(--typo-input-label-weight)" }, children: "Multiselect Tags" }),
6022
6034
  /* @__PURE__ */ jsx(MultiselectTags, { inputSize: "sm", tags: ["Tag 1", "Tag 2"], placeholder: "Add..." })
6023
6035
  ] })
6024
6036
  ] }),
@@ -6074,7 +6086,7 @@ function SearchBarShell({
6074
6086
  setFilterState(clearedState);
6075
6087
  onFilterApply?.(clearedState);
6076
6088
  };
6077
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
6089
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
6078
6090
  /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-40", children: /* @__PURE__ */ jsx(Header, { showDesktopLogo: true }) }),
6079
6091
  /* @__PURE__ */ jsx(FlairBanner, { title: bannerTitle }),
6080
6092
  /* @__PURE__ */ jsx(
@@ -6187,12 +6199,12 @@ function StepTracker({
6187
6199
  onStepClick && "cursor-pointer",
6188
6200
  !onStepClick && "cursor-default",
6189
6201
  isCompleted && "bg-[var(--canvas-primary)] border-[var(--canvas-primary)] text-[var(--canvas-primary-foreground)]",
6190
- isActive && "bg-white border-[var(--canvas-primary)] text-[var(--canvas-primary)]",
6202
+ isActive && "bg-[var(--canvas-background)] border-[var(--canvas-primary)] text-[var(--canvas-primary)]",
6191
6203
  isUpcoming && "bg-[var(--canvas-border)] border-[var(--canvas-border)] text-[var(--canvas-text-placeholder)]"
6192
6204
  ),
6193
6205
  style: {
6194
6206
  fontFamily: "var(--typo-body-m-font, var(--typo-global-font))",
6195
- fontSize: "16px",
6207
+ fontSize: "var(--typo-body-m-size)",
6196
6208
  fontWeight: 500
6197
6209
  },
6198
6210
  children: /* @__PURE__ */ jsx("span", { children: index + 1 })
@@ -6251,7 +6263,7 @@ function MultistepShell({
6251
6263
  const currentStepData = steps[currentStep];
6252
6264
  const isFirstStep = currentStep === 0;
6253
6265
  const isLastStep = currentStep === steps.length - 1;
6254
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
6266
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
6255
6267
  /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-40", children: /* @__PURE__ */ jsx(Header, { onMenuClick: handleAppMenuClick, showDesktopLogo: true }) }),
6256
6268
  /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsx(
6257
6269
  StepTracker,
@@ -6286,7 +6298,7 @@ function MultistepShell({
6286
6298
  ] });
6287
6299
  }
6288
6300
  var cardClassName = cn(
6289
- "bg-white border border-[var(--canvas-border)]",
6301
+ "bg-[var(--canvas-background)] border border-[var(--canvas-border)]",
6290
6302
  "rounded-xl p-8"
6291
6303
  );
6292
6304
  function InfoCard({
@@ -6301,7 +6313,7 @@ function InfoCard({
6301
6313
  className: "text-[var(--canvas-text-placeholder)] font-semibold mb-4",
6302
6314
  style: {
6303
6315
  fontFamily: "var(--typo-body-m-font, var(--typo-global-font))",
6304
- fontSize: "16px"
6316
+ fontSize: "var(--typo-body-m-size)"
6305
6317
  },
6306
6318
  children: title
6307
6319
  }
@@ -6312,7 +6324,7 @@ function InfoCard({
6312
6324
  className: "text-[var(--canvas-text-muted)] whitespace-pre-line",
6313
6325
  style: {
6314
6326
  fontFamily: "var(--typo-body-m-font, var(--typo-global-font))",
6315
- fontSize: "16px",
6327
+ fontSize: "var(--typo-body-m-size)",
6316
6328
  lineHeight: "24px"
6317
6329
  },
6318
6330
  children: description
@@ -6338,7 +6350,7 @@ function LinksCard({
6338
6350
  className: "text-[var(--canvas-text-placeholder)] font-semibold mb-4",
6339
6351
  style: {
6340
6352
  fontFamily: "var(--typo-body-m-font, var(--typo-global-font))",
6341
- fontSize: "16px"
6353
+ fontSize: "var(--typo-body-m-size)"
6342
6354
  },
6343
6355
  children: title
6344
6356
  }
@@ -6353,7 +6365,7 @@ function LinksCard({
6353
6365
  className: "text-[var(--canvas-primary)] font-medium",
6354
6366
  style: {
6355
6367
  fontFamily: "var(--typo-body-m-font, var(--typo-global-font))",
6356
- fontSize: "16px"
6368
+ fontSize: "var(--typo-body-m-size)"
6357
6369
  },
6358
6370
  children: link.label
6359
6371
  }
@@ -6408,7 +6420,7 @@ function MultistepSidebarShell({
6408
6420
  const currentStepData = steps[currentStep];
6409
6421
  const isFirstStep = currentStep === 0;
6410
6422
  const isLastStep = currentStep === steps.length - 1;
6411
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
6423
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
6412
6424
  /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-40", children: /* @__PURE__ */ jsx(Header, { onMenuClick: handleAppMenuClick, showDesktopLogo: true }) }),
6413
6425
  /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsx(
6414
6426
  StepTracker,
@@ -6517,7 +6529,7 @@ function MultistepProgressBarShell({
6517
6529
  };
6518
6530
  const currentStepData = steps[currentStep] || { title: `Step ${currentStep + 1}`, description: "Description" };
6519
6531
  const totalSteps = steps.length;
6520
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
6532
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
6521
6533
  /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-40", children: /* @__PURE__ */ jsx(Header, { onMenuClick: handleAppMenuClick, showDesktopLogo: true }) }),
6522
6534
  /* @__PURE__ */ jsx(FlairBanner, { title: bannerTitle }),
6523
6535
  /* @__PURE__ */ jsx(
@@ -6604,7 +6616,7 @@ function VerticalStepTracker({
6604
6616
  (isActive || isCompleted) && "bg-[var(--canvas-primary)] border-[var(--canvas-primary)]",
6605
6617
  !isActive && !isCompleted && "bg-[var(--canvas-border)] border-[var(--canvas-border)]"
6606
6618
  ),
6607
- children: /* @__PURE__ */ jsx("div", { className: "size-2 rounded-full bg-white" })
6619
+ children: /* @__PURE__ */ jsx("div", { className: "size-2 rounded-full bg-[var(--canvas-background)]" })
6608
6620
  }
6609
6621
  ),
6610
6622
  !isLast && /* @__PURE__ */ jsx(
@@ -6679,7 +6691,7 @@ function VerticalMultistepShell({
6679
6691
  const currentStepData = steps[currentStep];
6680
6692
  const isFirstStep = currentStep === 0;
6681
6693
  const isLastStep = currentStep === steps.length - 1;
6682
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
6694
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
6683
6695
  /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-40", children: /* @__PURE__ */ jsx(Header, { onMenuClick: handleAppMenuClick, showDesktopLogo: true }) }),
6684
6696
  /* @__PURE__ */ jsx(FlairBanner, { title: bannerTitle }),
6685
6697
  /* @__PURE__ */ jsx("div", { className: "w-full border-b border-[var(--canvas-border)]", children: /* @__PURE__ */ jsxs(
@@ -6696,12 +6708,12 @@ function VerticalMultistepShell({
6696
6708
  "h2",
6697
6709
  {
6698
6710
  style: {
6699
- fontFamily: "var(--typo-page-title-font, var(--typo-global-font))",
6700
- fontSize: "var(--typo-page-title-size)",
6701
- fontWeight: "var(--typo-page-title-weight)",
6702
- letterSpacing: "var(--typo-page-title-spacing)",
6703
- lineHeight: "var(--typo-page-title-line-height)",
6704
- color: "var(--typo-page-title-color)"
6711
+ fontFamily: "var(--typo-h4-font, var(--typo-global-font))",
6712
+ fontSize: "var(--typo-h4-size)",
6713
+ fontWeight: "var(--typo-h4-weight)",
6714
+ letterSpacing: "var(--typo-h4-spacing)",
6715
+ lineHeight: "var(--typo-h4-line-height)",
6716
+ color: "var(--typo-h4-color)"
6705
6717
  },
6706
6718
  children: pageTitle
6707
6719
  }
@@ -6710,12 +6722,12 @@ function VerticalMultistepShell({
6710
6722
  "p",
6711
6723
  {
6712
6724
  style: {
6713
- fontFamily: "var(--typo-page-desc-font, var(--typo-global-font))",
6714
- fontSize: "var(--typo-page-desc-size)",
6715
- fontWeight: "var(--typo-page-desc-weight)",
6716
- letterSpacing: "var(--typo-page-desc-spacing)",
6717
- lineHeight: "var(--typo-page-desc-line-height)",
6718
- color: "var(--typo-page-desc-color-muted)"
6725
+ fontFamily: "var(--typo-body-m-font, var(--typo-global-font))",
6726
+ fontSize: "var(--typo-body-m-size)",
6727
+ fontWeight: "var(--typo-body-m-weight)",
6728
+ letterSpacing: "var(--typo-body-m-spacing)",
6729
+ lineHeight: "var(--typo-body-m-line-height)",
6730
+ color: "var(--typo-body-m-color-muted)"
6719
6731
  },
6720
6732
  children: pageDescription
6721
6733
  }
@@ -6739,7 +6751,7 @@ function VerticalMultistepShell({
6739
6751
  className: cn(
6740
6752
  "lg:w-[320px]",
6741
6753
  // Desktop card styling
6742
- "lg:bg-white lg:border lg:border-[var(--canvas-border)]",
6754
+ "lg:bg-[var(--canvas-background)] lg:border lg:border-[var(--canvas-border)]",
6743
6755
  "lg:rounded-[var(--radius-xl)]",
6744
6756
  "lg:p-6"
6745
6757
  ),
@@ -6792,24 +6804,24 @@ function AccountSettingsShell({
6792
6804
  setInternalActiveTab(tab);
6793
6805
  }
6794
6806
  };
6795
- return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--background)]", children: [
6807
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-[var(--canvas-background)]", children: [
6796
6808
  /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-40", children: /* @__PURE__ */ jsx(Header, { showDesktopLogo: true }) }),
6797
6809
  /* @__PURE__ */ jsx("div", { className: "w-full border-b border-[var(--canvas-neutral-border)]", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-[1200px] mx-auto px-[var(--spacing-xl)] py-[var(--spacing-6xl)]", children: /* @__PURE__ */ jsx(
6798
6810
  "h1",
6799
6811
  {
6800
6812
  style: {
6801
- fontFamily: "var(--typo-page-title-font)",
6802
- fontSize: "var(--typo-page-title-size)",
6803
- fontWeight: "var(--typo-page-title-weight)",
6804
- lineHeight: "var(--typo-page-title-line-height)",
6805
- letterSpacing: "var(--typo-page-title-spacing)",
6806
- color: "var(--typo-page-title-color)"
6813
+ fontFamily: "var(--typo-h4-font, var(--typo-global-font))",
6814
+ fontSize: "var(--typo-h4-size)",
6815
+ fontWeight: "var(--typo-h4-weight)",
6816
+ lineHeight: "var(--typo-h4-line-height)",
6817
+ letterSpacing: "var(--typo-h4-spacing)",
6818
+ color: "var(--typo-h4-color)"
6807
6819
  },
6808
6820
  children: pageTitle
6809
6821
  }
6810
6822
  ) }) }),
6811
6823
  /* @__PURE__ */ jsx("main", { className: "w-full flex justify-center pb-[var(--spacing-8xl)]", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-[1200px] px-[var(--spacing-xl)] pt-[var(--spacing-5xl)]", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row gap-[var(--spacing-5xl)]", children: [
6812
- /* @__PURE__ */ jsx("aside", { className: "w-full lg:w-[320px] shrink-0", children: /* @__PURE__ */ jsx("div", { className: "bg-white border border-[var(--canvas-neutral-border)] rounded-[var(--radius-lg)] p-[var(--spacing-xl)] lg:p-[var(--spacing-4xl)]", children: /* @__PURE__ */ jsx("nav", { className: "flex flex-col gap-0", children: accountTabs.map((tab) => {
6824
+ /* @__PURE__ */ jsx("aside", { className: "w-full lg:w-[320px] shrink-0", children: /* @__PURE__ */ jsx("div", { className: "bg-[var(--canvas-background)] border border-[var(--canvas-neutral-border)] rounded-[var(--radius-lg)] p-[var(--spacing-xl)] lg:p-[var(--spacing-4xl)]", children: /* @__PURE__ */ jsx("nav", { className: "flex flex-col gap-0", children: accountTabs.map((tab) => {
6813
6825
  const Icon2 = tab.icon;
6814
6826
  const isActive = activeTab === tab.id;
6815
6827
  return /* @__PURE__ */ jsxs(
@@ -6962,7 +6974,7 @@ function ProjectContextShell({
6962
6974
  return /* @__PURE__ */ jsx(IconComponent, { weight: "bold", size: 18, color: branding.iconColor || "var(--canvas-primary-foreground)" });
6963
6975
  })() })
6964
6976
  ] }),
6965
- /* @__PURE__ */ jsx("span", { className: "text-xl font-semibold ml-2.5 text-[var(--canvas-text)]", children: branding.wordmark || "canvas" })
6977
+ /* @__PURE__ */ jsx("span", { className: "font-semibold ml-2.5 text-[var(--canvas-text)]", style: { fontSize: "var(--typo-body-xl-size)" }, children: branding.wordmark || "canvas" })
6966
6978
  ] })
6967
6979
  ) }) }),
6968
6980
  /* @__PURE__ */ jsx("nav", { className: "flex-1 p-2", children: tabs.map((tab) => {
@@ -6978,18 +6990,18 @@ function ProjectContextShell({
6978
6990
  ),
6979
6991
  children: [
6980
6992
  /* @__PURE__ */ jsx(Icon2, { className: "size-4 shrink-0" }),
6981
- /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: tab.label })
6993
+ /* @__PURE__ */ jsx("span", { className: "font-medium", style: { fontSize: "var(--typo-body-s-size)" }, children: tab.label })
6982
6994
  ]
6983
6995
  },
6984
6996
  tab.id
6985
6997
  );
6986
6998
  }) }),
6987
- /* @__PURE__ */ jsx("div", { className: "p-4 border-t border-[var(--canvas-border)]", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg bg-[var(--canvas-surface)] p-3", children: /* @__PURE__ */ jsx("p", { className: "text-xs text-[var(--canvas-text-muted)] leading-relaxed", children: "\u{1F4A1} Use the prompt templates to generate content with Cursor AI" }) }) })
6999
+ /* @__PURE__ */ jsx("div", { className: "p-4 border-t border-[var(--canvas-border)]", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg bg-[var(--canvas-surface)] p-3", children: /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)] leading-relaxed", style: { fontSize: "var(--typo-body-xs-size)" }, children: "\u{1F4A1} Use the prompt templates to generate content with Cursor AI" }) }) })
6988
7000
  ] }),
6989
7001
  /* @__PURE__ */ jsxs("main", { className: "flex-1 flex flex-col min-w-0 overflow-hidden", children: [
6990
7002
  /* @__PURE__ */ jsx("div", { className: "border-b border-[var(--canvas-border)] px-8 py-6 bg-[var(--canvas-background)]", children: activeTabConfig && /* @__PURE__ */ jsxs("div", { children: [
6991
- /* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold text-[var(--canvas-text)]", children: activeTabConfig.label }),
6992
- /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--canvas-text-muted)]", children: activeTabConfig.description })
7003
+ /* @__PURE__ */ jsx("h2", { className: "font-semibold text-[var(--canvas-text)]", style: { fontSize: "var(--typo-body-xl-size)" }, children: activeTabConfig.label }),
7004
+ /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: activeTabConfig.description })
6993
7005
  ] }) }),
6994
7006
  /* @__PURE__ */ jsx(ScrollArea, { className: "flex-1", children: /* @__PURE__ */ jsx("div", { className: "p-8", children }) })
6995
7007
  ] })
@@ -7026,8 +7038,8 @@ function ChatBubble({ message }) {
7026
7038
  /* @__PURE__ */ jsx(
7027
7039
  AvatarFallback,
7028
7040
  {
7029
- className: "text-[8px]",
7030
7041
  style: {
7042
+ fontSize: "8px",
7031
7043
  backgroundColor: "var(--canvas-subtle)",
7032
7044
  color: "var(--canvas-muted-foreground)"
7033
7045
  },
@@ -7062,8 +7074,9 @@ function ChatDateSeparator({ date }) {
7062
7074
  return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(
7063
7075
  "span",
7064
7076
  {
7065
- className: "text-xs font-medium",
7077
+ className: "font-medium",
7066
7078
  style: {
7079
+ fontSize: "var(--typo-body-xs-size)",
7067
7080
  color: "var(--canvas-muted-foreground)"
7068
7081
  },
7069
7082
  children: date
@@ -7094,10 +7107,11 @@ function MessengerInput({
7094
7107
  {
7095
7108
  placeholder: "Send a message",
7096
7109
  rows: 2,
7097
- className: "w-full p-3 resize-none focus:outline-none text-xs",
7110
+ className: "w-full p-3 resize-none focus:outline-none",
7098
7111
  style: {
7099
7112
  backgroundColor: "transparent",
7100
7113
  color: "var(--canvas-foreground)",
7114
+ fontSize: "var(--typo-body-xs-size)",
7101
7115
  lineHeight: "var(--typo-body-xs-line-height)"
7102
7116
  }
7103
7117
  }
@@ -7135,8 +7149,7 @@ function MessengerInput({
7135
7149
  /* @__PURE__ */ jsx(
7136
7150
  "span",
7137
7151
  {
7138
- className: "text-xs",
7139
- style: { color: "var(--canvas-muted-foreground)" },
7152
+ style: { color: "var(--canvas-muted-foreground)", fontSize: "var(--typo-body-xs-size)" },
7140
7153
  children: attachment.name
7141
7154
  }
7142
7155
  ),
@@ -7194,10 +7207,11 @@ function MessengerInput({
7194
7207
  "button",
7195
7208
  {
7196
7209
  onClick: onSend,
7197
- className: "h-10 px-[var(--spacing-lg)] rounded-[var(--radius-xs)] font-semibold text-xs transition-colors hover:opacity-90",
7210
+ className: "h-10 px-[var(--spacing-lg)] rounded-[var(--radius-xs)] font-semibold transition-colors hover:opacity-90",
7198
7211
  style: {
7199
7212
  backgroundColor: "var(--canvas-primary)",
7200
- color: "var(--canvas-primary-foreground)"
7213
+ color: "var(--canvas-primary-foreground)",
7214
+ fontSize: "var(--typo-body-xs-size)"
7201
7215
  },
7202
7216
  children: "Send"
7203
7217
  }
@@ -7268,7 +7282,7 @@ function MessengerSidebar({
7268
7282
  className: "font-semibold",
7269
7283
  style: {
7270
7284
  color: "var(--canvas-foreground)",
7271
- fontSize: "20px",
7285
+ fontSize: "var(--typo-body-xl-size)",
7272
7286
  lineHeight: "28px"
7273
7287
  },
7274
7288
  children: "Messages"
@@ -7354,8 +7368,8 @@ function ThreadRow({ thread, isSelected, onSelect }) {
7354
7368
  /* @__PURE__ */ jsx(
7355
7369
  AvatarFallback,
7356
7370
  {
7357
- className: "text-xs",
7358
7371
  style: {
7372
+ fontSize: "var(--typo-body-xs-size)",
7359
7373
  backgroundColor: "var(--canvas-primary)",
7360
7374
  color: "var(--canvas-primary-foreground)"
7361
7375
  },
@@ -7882,7 +7896,7 @@ function ContentDropzone({
7882
7896
  {
7883
7897
  className: cn(
7884
7898
  "flex items-center justify-center",
7885
- "bg-white",
7899
+ "bg-[var(--canvas-background)]",
7886
7900
  "border-2 border-dashed border-[var(--canvas-border)]",
7887
7901
  "rounded-[var(--radius-nav)]",
7888
7902
  "overflow-hidden",
@@ -8095,7 +8109,7 @@ function EmptyState({ icon, title, description, className }) {
8095
8109
  children: [
8096
8110
  /* @__PURE__ */ jsx("span", { className: "text-4xl mb-3", children: icon }),
8097
8111
  /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)] font-medium text-center", children: title }),
8098
- description && /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--canvas-text-placeholder)] text-center mt-1 max-w-md", children: description })
8112
+ description && /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-placeholder)] text-center mt-1 max-w-md", style: { fontSize: "var(--typo-body-s-size)" }, children: description })
8099
8113
  ]
8100
8114
  }
8101
8115
  );
@@ -9006,12 +9020,12 @@ function StatusBadge({ status }) {
9006
9020
  },
9007
9021
  paid: {
9008
9022
  label: "Paid",
9009
- bgColor: "var(--canvas-success-surface, #edfdf8)",
9023
+ bgColor: "var(--canvas-success-surface)",
9010
9024
  textColor: "var(--canvas-success)"
9011
9025
  },
9012
9026
  overdue: {
9013
9027
  label: "Overdue",
9014
- bgColor: "var(--canvas-destructive-surface, #fef2f2)",
9028
+ bgColor: "var(--canvas-destructive-surface)",
9015
9029
  textColor: "var(--canvas-destructive)"
9016
9030
  }
9017
9031
  };
@@ -11444,17 +11458,18 @@ function ProfileCard({
11444
11458
  children: [
11445
11459
  /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col items-center w-full", children: [
11446
11460
  /* @__PURE__ */ jsxs("div", { className: "relative -mt-16", children: [
11447
- /* @__PURE__ */ jsxs(Avatar, { className: "size-32 border-4 border-white", children: [
11461
+ /* @__PURE__ */ jsxs(Avatar, { className: "size-32 border-4 border-[var(--canvas-background)]", children: [
11448
11462
  /* @__PURE__ */ jsx(AvatarImage, { src: avatarUrl, alt: name }),
11449
11463
  /* @__PURE__ */ jsx(
11450
11464
  AvatarFallback,
11451
11465
  {
11452
- className: "text-xl font-semibold bg-[var(--canvas-surface)] text-[var(--canvas-text-muted)]",
11466
+ className: "font-semibold bg-[var(--canvas-surface)] text-[var(--canvas-text-muted)]",
11467
+ style: { fontSize: "var(--typo-body-xl-size)" },
11453
11468
  children: avatarFallback
11454
11469
  }
11455
11470
  )
11456
11471
  ] }),
11457
- showStatus && /* @__PURE__ */ jsx("div", { className: "absolute bottom-[9px] right-[9px] size-5 rounded-full bg-emerald-500 border-[3px] border-white" })
11472
+ showStatus && /* @__PURE__ */ jsx("div", { className: "absolute bottom-[9px] right-[9px] size-5 rounded-full bg-[var(--canvas-success)] border-[3px] border-[var(--canvas-background)]" })
11458
11473
  ] }),
11459
11474
  showMenu && /* @__PURE__ */ jsx(
11460
11475
  "button",
@@ -11561,9 +11576,9 @@ function SidebarProfileCard({
11561
11576
  /* @__PURE__ */ jsxs("div", { className: "relative", children: [
11562
11577
  /* @__PURE__ */ jsxs(Avatar, { className: "size-[120px]", children: [
11563
11578
  /* @__PURE__ */ jsx(AvatarImage, { src: avatarUrl, alt: name }),
11564
- /* @__PURE__ */ jsx(AvatarFallback, { className: "text-2xl font-semibold bg-[var(--canvas-surface)] text-[var(--canvas-text-muted)]", children: avatarFallback })
11579
+ /* @__PURE__ */ jsx(AvatarFallback, { className: "font-semibold bg-[var(--canvas-surface)] text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-h6-size)" }, children: avatarFallback })
11565
11580
  ] }),
11566
- showStatus && /* @__PURE__ */ jsx("div", { className: "absolute bottom-[10px] right-[10px] size-5 rounded-full bg-emerald-500 border-[3px] border-white" })
11581
+ showStatus && /* @__PURE__ */ jsx("div", { className: "absolute bottom-[10px] right-[10px] size-5 rounded-full bg-[var(--canvas-success)] border-[3px] border-[var(--canvas-background)]" })
11567
11582
  ] }),
11568
11583
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-[var(--spacing-xs)]", children: [
11569
11584
  /* @__PURE__ */ jsx(Typography, { variant: "body-xl", className: "text-center", style: { fontWeight: 600 }, children: name }),
@@ -11746,8 +11761,8 @@ var badgeIcons = {
11746
11761
  };
11747
11762
  var badgeColors = {
11748
11763
  zap: "text-[var(--canvas-primary)]",
11749
- star: "text-amber-600",
11750
- check: "text-emerald-600"
11764
+ star: "text-[var(--canvas-warning)]",
11765
+ check: "text-[var(--canvas-success)]"
11751
11766
  };
11752
11767
  function BadgesCard({ badges, className }) {
11753
11768
  return /* @__PURE__ */ jsx(CardWrapper, { className: cn("p-[var(--spacing-4xl)]", className), children: /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[var(--spacing-xl)]", children: badges.map((badge, index) => {
@@ -14623,7 +14638,7 @@ function ControlButton({ icon, onClick, isActive = true, label }) {
14623
14638
  className: cn(
14624
14639
  "w-10 h-10 rounded-full flex items-center justify-center",
14625
14640
  "shadow-sm transition-colors",
14626
- isActive ? "bg-[var(--canvas-sidebar-light-text)] text-white hover:opacity-80" : "bg-[var(--canvas-destructive)] text-white hover:opacity-80"
14641
+ isActive ? "bg-[var(--canvas-sidebar-light-text)] text-[var(--canvas-primary-foreground)] hover:opacity-80" : "bg-[var(--canvas-destructive)] text-[var(--canvas-primary-foreground)] hover:opacity-80"
14627
14642
  ),
14628
14643
  children: icon
14629
14644
  }
@@ -15151,8 +15166,8 @@ function CreditCardDisplay({
15151
15166
  /* @__PURE__ */ jsx(
15152
15167
  "span",
15153
15168
  {
15154
- className: "text-white/70 text-xs block mb-1",
15155
- style: { fontFamily: "var(--typo-global-font)" },
15169
+ className: "text-white/70 block mb-1",
15170
+ style: { fontFamily: "var(--typo-global-font)", fontSize: "var(--typo-body-xs-size)" },
15156
15171
  children: "CARDHOLDER"
15157
15172
  }
15158
15173
  ),
@@ -15161,7 +15176,7 @@ function CreditCardDisplay({
15161
15176
  {
15162
15177
  className: "text-white font-medium",
15163
15178
  style: {
15164
- fontSize: "16px",
15179
+ fontSize: "var(--typo-body-m-size)",
15165
15180
  fontFamily: "var(--typo-global-font)"
15166
15181
  },
15167
15182
  children: cardholderName
@@ -15172,8 +15187,8 @@ function CreditCardDisplay({
15172
15187
  /* @__PURE__ */ jsx(
15173
15188
  "span",
15174
15189
  {
15175
- className: "text-white/70 text-xs block mb-1",
15176
- style: { fontFamily: "var(--typo-global-font)" },
15190
+ className: "text-white/70 block mb-1",
15191
+ style: { fontFamily: "var(--typo-global-font)", fontSize: "var(--typo-body-xs-size)" },
15177
15192
  children: "EXPIRES"
15178
15193
  }
15179
15194
  ),
@@ -15182,7 +15197,7 @@ function CreditCardDisplay({
15182
15197
  {
15183
15198
  className: "text-white font-medium",
15184
15199
  style: {
15185
- fontSize: "16px",
15200
+ fontSize: "var(--typo-body-m-size)",
15186
15201
  fontFamily: "var(--typo-global-font)"
15187
15202
  },
15188
15203
  children: expiryDate
@@ -15248,7 +15263,8 @@ function CanvasItem({
15248
15263
  "div",
15249
15264
  {
15250
15265
  onMouseDown: handleDragHandleMouseDown,
15251
- className: "flex items-center gap-1.5 text-white/90 text-xs cursor-grab active:cursor-grabbing select-none",
15266
+ className: "flex items-center gap-1.5 text-white/90 cursor-grab active:cursor-grabbing select-none",
15267
+ style: { fontSize: "var(--typo-body-xs-size)" },
15252
15268
  children: [
15253
15269
  /* @__PURE__ */ jsx(GripHorizontal, { className: "size-4" }),
15254
15270
  /* @__PURE__ */ jsx("span", { className: "text-[11px] font-medium", children: item.componentType })
@@ -15424,9 +15440,10 @@ function DraggableComponent({ component }) {
15424
15440
  /* @__PURE__ */ jsx(
15425
15441
  "span",
15426
15442
  {
15427
- className: "text-sm text-[var(--canvas-text)]",
15443
+ className: "text-[var(--canvas-text)]",
15428
15444
  style: {
15429
- fontFamily: "var(--typo-body-s-font, var(--typo-global-font))"
15445
+ fontFamily: "var(--typo-body-s-font, var(--typo-global-font))",
15446
+ fontSize: "var(--typo-body-s-size)"
15430
15447
  },
15431
15448
  children: component.label
15432
15449
  }
@@ -15448,11 +15465,12 @@ function CategorySection({ category, components, defaultExpanded = true }) {
15448
15465
  /* @__PURE__ */ jsx(
15449
15466
  "span",
15450
15467
  {
15451
- className: "text-xs font-semibold uppercase tracking-wider text-[var(--canvas-text-muted)]",
15468
+ className: "font-semibold uppercase tracking-wider text-[var(--canvas-text-muted)]",
15469
+ style: { fontSize: "var(--typo-body-xs-size)" },
15452
15470
  children: category
15453
15471
  }
15454
15472
  ),
15455
- /* @__PURE__ */ jsx("span", { className: "ml-auto text-xs text-[var(--canvas-text-placeholder)]", children: components.length })
15473
+ /* @__PURE__ */ jsx("span", { className: "ml-auto text-[var(--canvas-text-placeholder)]", style: { fontSize: "var(--typo-body-xs-size)" }, children: components.length })
15456
15474
  ]
15457
15475
  }
15458
15476
  ),
@@ -15465,7 +15483,7 @@ function ComponentPalette({ className }) {
15465
15483
  {
15466
15484
  className: cn(
15467
15485
  "w-[280px] h-full flex flex-col",
15468
- "bg-white border-r border-[var(--canvas-border)]",
15486
+ "bg-[var(--canvas-background)] border-r border-[var(--canvas-border)]",
15469
15487
  className
15470
15488
  ),
15471
15489
  children: [
@@ -15473,9 +15491,10 @@ function ComponentPalette({ className }) {
15473
15491
  /* @__PURE__ */ jsx(
15474
15492
  "h2",
15475
15493
  {
15476
- className: "text-sm font-semibold text-[var(--canvas-text)]",
15494
+ className: "font-semibold text-[var(--canvas-text)]",
15477
15495
  style: {
15478
- fontFamily: "var(--typo-body-m-font, var(--typo-global-font))"
15496
+ fontFamily: "var(--typo-body-m-font, var(--typo-global-font))",
15497
+ fontSize: "var(--typo-body-s-size)"
15479
15498
  },
15480
15499
  children: "Components"
15481
15500
  }
@@ -15483,7 +15502,8 @@ function ComponentPalette({ className }) {
15483
15502
  /* @__PURE__ */ jsx(
15484
15503
  "p",
15485
15504
  {
15486
- className: "text-xs text-[var(--canvas-text-muted)] mt-1",
15505
+ className: "text-[var(--canvas-text-muted)] mt-1",
15506
+ style: { fontSize: "var(--typo-body-xs-size)" },
15487
15507
  children: "Drag components onto the canvas"
15488
15508
  }
15489
15509
  )
@@ -15501,9 +15521,9 @@ function ComponentPalette({ className }) {
15501
15521
  category
15502
15522
  );
15503
15523
  }) }) }),
15504
- /* @__PURE__ */ jsx("div", { className: "px-4 py-3 border-t border-[var(--canvas-border)] bg-[var(--canvas-surface)]", children: /* @__PURE__ */ jsxs("p", { className: "text-xs text-[var(--canvas-text-placeholder)]", children: [
15524
+ /* @__PURE__ */ jsx("div", { className: "px-4 py-3 border-t border-[var(--canvas-border)] bg-[var(--canvas-surface)]", children: /* @__PURE__ */ jsxs("p", { className: "text-[var(--canvas-text-placeholder)]", style: { fontSize: "var(--typo-body-xs-size)" }, children: [
15505
15525
  "Tip: Press ",
15506
- /* @__PURE__ */ jsx("kbd", { className: "px-1.5 py-0.5 bg-white rounded border border-[var(--canvas-border)] text-[10px]", children: "Delete" }),
15526
+ /* @__PURE__ */ jsx("kbd", { className: "px-1.5 py-0.5 bg-[var(--canvas-background)] rounded border border-[var(--canvas-border)]", style: { fontSize: "10px" }, children: "Delete" }),
15507
15527
  " to remove selected"
15508
15528
  ] }) })
15509
15529
  ]
@@ -16295,7 +16315,8 @@ function ComponentSearch({
16295
16315
  selectedComponents.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: selectedComponents.map((component) => /* @__PURE__ */ jsxs(
16296
16316
  "div",
16297
16317
  {
16298
- className: "flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-[var(--canvas-surface-brand)] text-[var(--canvas-primary)] text-sm",
16318
+ className: "flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-[var(--canvas-surface-brand)] text-[var(--canvas-primary)]",
16319
+ style: { fontSize: "var(--typo-body-s-size)" },
16299
16320
  children: [
16300
16321
  /* @__PURE__ */ jsx("span", { className: "font-medium", children: component.name }),
16301
16322
  /* @__PURE__ */ jsx(
@@ -16329,10 +16350,11 @@ function ComponentSearch({
16329
16350
  onChange: (e) => setSearchQuery(e.target.value),
16330
16351
  onFocus: () => setIsOpen(true),
16331
16352
  placeholder: "Search components...",
16332
- className: "flex-1 bg-transparent text-sm text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] outline-none"
16353
+ className: "flex-1 bg-transparent text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] outline-none",
16354
+ style: { fontSize: "var(--typo-body-s-size)" }
16333
16355
  }
16334
16356
  ),
16335
- /* @__PURE__ */ jsxs("span", { className: "text-xs text-[var(--canvas-text-muted)]", children: [
16357
+ /* @__PURE__ */ jsxs("span", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-xs-size)" }, children: [
16336
16358
  selectedComponents.length,
16337
16359
  " selected"
16338
16360
  ] })
@@ -16353,7 +16375,8 @@ function ComponentSearch({
16353
16375
  "button",
16354
16376
  {
16355
16377
  onClick: () => toggleCategory(category),
16356
- className: "w-full flex items-center justify-between px-3 py-2 bg-[var(--canvas-surface)] border-b border-[var(--canvas-border)] text-xs font-semibold text-[var(--canvas-text-muted)] uppercase tracking-wide hover:bg-[var(--canvas-surface-brand)]/50",
16378
+ className: "w-full flex items-center justify-between px-3 py-2 bg-[var(--canvas-surface)] border-b border-[var(--canvas-border)] font-semibold text-[var(--canvas-text-muted)] uppercase tracking-wide hover:bg-[var(--canvas-surface-brand)]/50",
16379
+ style: { fontSize: "var(--typo-body-xs-size)" },
16357
16380
  children: [
16358
16381
  /* @__PURE__ */ jsxs("span", { children: [
16359
16382
  category,
@@ -16388,7 +16411,7 @@ function ComponentSearch({
16388
16411
  children: isSelected && /* @__PURE__ */ jsx(
16389
16412
  "svg",
16390
16413
  {
16391
- className: "size-3 text-white",
16414
+ className: "size-3 text-[var(--canvas-primary-foreground)]",
16392
16415
  fill: "none",
16393
16416
  viewBox: "0 0 24 24",
16394
16417
  stroke: "currentColor",
@@ -16411,15 +16434,16 @@ function ComponentSearch({
16411
16434
  "span",
16412
16435
  {
16413
16436
  className: cn(
16414
- "text-sm font-medium",
16437
+ "font-medium",
16415
16438
  isSelected ? "text-[var(--canvas-primary)]" : "text-[var(--canvas-text)]"
16416
16439
  ),
16440
+ style: { fontSize: "var(--typo-body-s-size)" },
16417
16441
  children: component.name
16418
16442
  }
16419
16443
  ),
16420
- /* @__PURE__ */ jsx("span", { className: "text-xs text-[var(--canvas-text-placeholder)]", children: component.path })
16444
+ /* @__PURE__ */ jsx("span", { className: "text-[var(--canvas-text-placeholder)]", style: { fontSize: "var(--typo-body-xs-size)" }, children: component.path })
16421
16445
  ] }),
16422
- /* @__PURE__ */ jsx("p", { className: "text-xs text-[var(--canvas-text-muted)] mt-0.5 line-clamp-2", children: component.description })
16446
+ /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)] mt-0.5 line-clamp-2", style: { fontSize: "var(--typo-body-xs-size)" }, children: component.description })
16423
16447
  ] })
16424
16448
  ]
16425
16449
  },
@@ -16427,7 +16451,7 @@ function ComponentSearch({
16427
16451
  );
16428
16452
  }) })
16429
16453
  ] }, category)),
16430
- filteredComponents.length === 0 && /* @__PURE__ */ jsxs("div", { className: "px-3 py-6 text-center text-sm text-[var(--canvas-text-muted)]", children: [
16454
+ filteredComponents.length === 0 && /* @__PURE__ */ jsxs("div", { className: "px-3 py-6 text-center text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: [
16431
16455
  'No components found for "',
16432
16456
  searchQuery,
16433
16457
  '"'
@@ -16544,11 +16568,11 @@ function CustomComponentHelper({ className }) {
16544
16568
  const hasContent = componentName || componentDescription;
16545
16569
  return /* @__PURE__ */ jsxs("div", { className: cn("space-y-6", className), children: [
16546
16570
  /* @__PURE__ */ jsxs("div", { children: [
16547
- /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-[var(--canvas-text)]", children: "Create Custom Component" }),
16548
- /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--canvas-text-muted)] mt-1", children: "Generate a prompt to create a new ShadCN-based component with design variables" })
16571
+ /* @__PURE__ */ jsx("h3", { className: "font-semibold text-[var(--canvas-text)]", style: { fontSize: "var(--typo-body-l-size)" }, children: "Create Custom Component" }),
16572
+ /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)] mt-1", style: { fontSize: "var(--typo-body-s-size)" }, children: "Generate a prompt to create a new ShadCN-based component with design variables" })
16549
16573
  ] }),
16550
16574
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
16551
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text)]", children: "Component Type" }),
16575
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text)]", style: { fontSize: "var(--typo-body-s-size)", fontWeight: 500 }, children: "Component Type" }),
16552
16576
  /* @__PURE__ */ jsx("div", { className: "flex gap-2", children: [
16553
16577
  { id: "block", label: "Block" },
16554
16578
  { id: "page-template", label: "Page Template" },
@@ -16558,9 +16582,10 @@ function CustomComponentHelper({ className }) {
16558
16582
  {
16559
16583
  onClick: () => setComponentType(type.id),
16560
16584
  className: cn(
16561
- "px-4 py-2 rounded-lg text-sm font-medium transition-all",
16562
- componentType === type.id ? "bg-[var(--canvas-primary)] text-white" : "bg-[var(--canvas-surface)] text-[var(--canvas-text-muted)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)] hover:text-[var(--canvas-primary)]"
16585
+ "px-4 py-2 rounded-lg font-medium transition-all",
16586
+ componentType === type.id ? "bg-[var(--canvas-primary)] text-[var(--canvas-primary-foreground)]" : "bg-[var(--canvas-surface)] text-[var(--canvas-text-muted)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)] hover:text-[var(--canvas-primary)]"
16563
16587
  ),
16588
+ style: { fontSize: "var(--typo-body-s-size)" },
16564
16589
  children: type.label
16565
16590
  },
16566
16591
  type.id
@@ -16571,7 +16596,8 @@ function CustomComponentHelper({ className }) {
16571
16596
  "label",
16572
16597
  {
16573
16598
  htmlFor: "component-name",
16574
- className: "text-sm font-medium text-[var(--canvas-text)]",
16599
+ className: "text-[var(--canvas-text)]",
16600
+ style: { fontSize: "var(--typo-body-s-size)", fontWeight: 500 },
16575
16601
  children: "Component Name"
16576
16602
  }
16577
16603
  ),
@@ -16583,7 +16609,8 @@ function CustomComponentHelper({ className }) {
16583
16609
  value: componentName,
16584
16610
  onChange: (e) => setComponentName(e.target.value),
16585
16611
  placeholder: "e.g., MultiStepPopup, ImageCarousel, StatCard",
16586
- className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] text-sm placeholder:text-[var(--canvas-text-placeholder)] focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent"
16612
+ className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent",
16613
+ style: { fontSize: "var(--typo-body-s-size)" }
16587
16614
  }
16588
16615
  )
16589
16616
  ] }),
@@ -16592,7 +16619,8 @@ function CustomComponentHelper({ className }) {
16592
16619
  "label",
16593
16620
  {
16594
16621
  htmlFor: "component-description",
16595
- className: "text-sm font-medium text-[var(--canvas-text)]",
16622
+ className: "text-[var(--canvas-text)]",
16623
+ style: { fontSize: "var(--typo-body-s-size)", fontWeight: 500 },
16596
16624
  children: "Description"
16597
16625
  }
16598
16626
  ),
@@ -16604,13 +16632,14 @@ function CustomComponentHelper({ className }) {
16604
16632
  onChange: (e) => setComponentDescription(e.target.value),
16605
16633
  placeholder: "Describe what this component should do, its features, and any specific requirements (e.g., a multi-step popup with steps listed on the left side and content on the right, progress indicator, next/back buttons)",
16606
16634
  rows: 4,
16607
- className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] text-sm placeholder:text-[var(--canvas-text-placeholder)] focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent resize-none"
16635
+ className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent resize-none",
16636
+ style: { fontSize: "var(--typo-body-s-size)" }
16608
16637
  }
16609
16638
  )
16610
16639
  ] }),
16611
16640
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
16612
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text)]", children: "Reference Components (optional)" }),
16613
- /* @__PURE__ */ jsx("p", { className: "text-xs text-[var(--canvas-text-muted)] mb-2", children: "Select existing components to use as style/pattern references" }),
16641
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text)]", style: { fontSize: "var(--typo-body-s-size)", fontWeight: 500 }, children: "Reference Components (optional)" }),
16642
+ /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)] mb-2", style: { fontSize: "var(--typo-body-xs-size)" }, children: "Select existing components to use as style/pattern references" }),
16614
16643
  /* @__PURE__ */ jsx(
16615
16644
  ComponentSearch,
16616
16645
  {
@@ -16621,7 +16650,7 @@ function CustomComponentHelper({ className }) {
16621
16650
  ] }),
16622
16651
  hasContent && /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-dashed border-[var(--canvas-border)] bg-[var(--canvas-surface)] p-4", children: [
16623
16652
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
16624
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-[var(--canvas-text-muted)]", children: [
16653
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 font-medium text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: [
16625
16654
  /* @__PURE__ */ jsx(Sparkles, { className: "size-4 text-[var(--canvas-primary)]" }),
16626
16655
  "Generated Prompt"
16627
16656
  ] }),
@@ -16631,9 +16660,10 @@ function CustomComponentHelper({ className }) {
16631
16660
  onClick: handleCopy,
16632
16661
  disabled: !generatedPrompt,
16633
16662
  className: cn(
16634
- "flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-all",
16635
- copied ? "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)]"
16663
+ "flex items-center gap-1.5 px-2.5 py-1.5 rounded-md font-medium transition-all",
16664
+ copied ? "bg-[var(--canvas-success-surface)] text-[var(--canvas-success)]" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)]"
16636
16665
  ),
16666
+ style: { fontSize: "var(--typo-body-xs-size)" },
16637
16667
  children: copied ? /* @__PURE__ */ jsxs(Fragment, { children: [
16638
16668
  /* @__PURE__ */ jsx(Check, { className: "size-3" }),
16639
16669
  "Copied!"
@@ -16644,9 +16674,9 @@ function CustomComponentHelper({ className }) {
16644
16674
  }
16645
16675
  )
16646
16676
  ] }),
16647
- /* @__PURE__ */ jsx("pre", { className: "text-sm text-[var(--canvas-text)] leading-relaxed font-mono whitespace-pre-wrap bg-[var(--canvas-background)] rounded-md p-3 border border-[var(--canvas-border)] max-h-[300px] overflow-y-auto", children: generatedPrompt })
16677
+ /* @__PURE__ */ jsx("pre", { className: "text-[var(--canvas-text)] leading-relaxed font-mono whitespace-pre-wrap bg-[var(--canvas-background)] rounded-md p-3 border border-[var(--canvas-border)] max-h-[300px] overflow-y-auto", style: { fontSize: "var(--typo-body-s-size)" }, children: generatedPrompt })
16648
16678
  ] }),
16649
- !hasContent && /* @__PURE__ */ jsx("div", { className: "rounded-lg border-2 border-dashed border-[var(--canvas-border)] bg-[var(--canvas-surface)] p-8 text-center", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--canvas-text-muted)]", children: "Enter a component name or description to generate a prompt" }) })
16679
+ !hasContent && /* @__PURE__ */ jsx("div", { className: "rounded-lg border-2 border-dashed border-[var(--canvas-border)] bg-[var(--canvas-surface)] p-8 text-center", children: /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: "Enter a component name or description to generate a prompt" }) })
16650
16680
  ] });
16651
16681
  }
16652
16682
  function toKebabCase(str) {
@@ -19672,7 +19702,7 @@ function DateCell({
19672
19702
  "span",
19673
19703
  {
19674
19704
  className: cn(
19675
- "font-semibold text-base leading-6",
19705
+ "font-semibold leading-6",
19676
19706
  showStrikethrough && "line-through"
19677
19707
  ),
19678
19708
  style: {
@@ -20097,12 +20127,13 @@ function PaginationButton({
20097
20127
  onClick,
20098
20128
  className: cn(
20099
20129
  "flex items-center justify-center shrink-0 transition-colors",
20100
- "font-semibold text-[14px] leading-[20px]",
20130
+ "font-semibold",
20101
20131
  "size-[32px] rounded-[var(--radius-xs)]",
20102
20132
  "border bg-[var(--canvas-background)]",
20103
20133
  isSelected ? "border-[var(--canvas-primary)] text-[var(--canvas-primary)]" : "border-[var(--canvas-border)] text-[var(--canvas-text)] hover:bg-[var(--canvas-surface)]",
20104
20134
  className
20105
20135
  ),
20136
+ style: { fontSize: "var(--typo-body-s-size)", lineHeight: "var(--typo-body-s-line-height)" },
20106
20137
  "aria-current": isSelected ? "page" : void 0,
20107
20138
  children: page
20108
20139
  }
@@ -20144,7 +20175,7 @@ function NavigationButton({
20144
20175
  "aria-label": type,
20145
20176
  children: [
20146
20177
  (type === "first" || type === "prev") && /* @__PURE__ */ jsx(Icon2, { className: "size-[20px]" }),
20147
- label && /* @__PURE__ */ jsx("span", { className: "font-semibold text-[14px] leading-[20px]", children: label }),
20178
+ label && /* @__PURE__ */ jsx("span", { className: "font-semibold", style: { fontSize: "var(--typo-body-s-size)", lineHeight: "var(--typo-body-s-line-height)" }, children: label }),
20148
20179
  (type === "next" || type === "last") && /* @__PURE__ */ jsx(Icon2, { className: "size-[20px]" })
20149
20180
  ]
20150
20181
  }
@@ -20246,8 +20277,8 @@ function Pagination({
20246
20277
  showResultsText && /* @__PURE__ */ jsxs(
20247
20278
  "span",
20248
20279
  {
20249
- className: "text-[14px] leading-[20px] text-[var(--canvas-text)] whitespace-nowrap",
20250
- style: { fontFamily: "var(--typo-global-font)" },
20280
+ className: "text-[var(--canvas-text)] whitespace-nowrap",
20281
+ style: { fontFamily: "var(--typo-global-font)", fontSize: "var(--typo-body-s-size)", lineHeight: "var(--typo-body-s-line-height)" },
20251
20282
  children: [
20252
20283
  "Viewing ",
20253
20284
  formatNumber(startItem),
@@ -20364,7 +20395,7 @@ function PromptTemplate({
20364
20395
  ),
20365
20396
  children: [
20366
20397
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
20367
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-[var(--canvas-text-muted)]", children: [
20398
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 font-medium text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: [
20368
20399
  /* @__PURE__ */ jsx(Sparkles, { className: "size-4 text-[var(--canvas-primary)]" }),
20369
20400
  title
20370
20401
  ] }),
@@ -20373,9 +20404,10 @@ function PromptTemplate({
20373
20404
  {
20374
20405
  onClick: handleCopy,
20375
20406
  className: cn(
20376
- "flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-all",
20377
- copied ? "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)]"
20407
+ "flex items-center gap-1.5 px-2.5 py-1.5 rounded-md font-medium transition-all",
20408
+ copied ? "bg-[var(--canvas-success-surface)] text-[var(--canvas-success)]" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)]"
20378
20409
  ),
20410
+ style: { fontSize: "var(--typo-body-xs-size)" },
20379
20411
  children: copied ? /* @__PURE__ */ jsxs(Fragment, { children: [
20380
20412
  /* @__PURE__ */ jsx(Check, { className: "size-3" }),
20381
20413
  "Copied!"
@@ -20386,7 +20418,7 @@ function PromptTemplate({
20386
20418
  }
20387
20419
  )
20388
20420
  ] }),
20389
- /* @__PURE__ */ jsx("pre", { className: "text-sm text-[var(--canvas-text)] leading-relaxed font-mono whitespace-pre-wrap bg-[var(--canvas-background)] rounded-md p-3 border border-[var(--canvas-border)] max-h-[300px] overflow-y-auto", children: prompt })
20421
+ /* @__PURE__ */ jsx("pre", { className: "text-[var(--canvas-text)] leading-relaxed font-mono whitespace-pre-wrap bg-[var(--canvas-background)] rounded-md p-3 border border-[var(--canvas-border)] max-h-[300px] overflow-y-auto", style: { fontSize: "var(--typo-body-s-size)" }, children: prompt })
20390
20422
  ]
20391
20423
  }
20392
20424
  );
@@ -20403,9 +20435,10 @@ function MiniPromptChip({ label, prompt }) {
20403
20435
  {
20404
20436
  onClick: handleCopy,
20405
20437
  className: cn(
20406
- "inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-medium transition-all",
20407
- copied ? "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400" : "bg-[var(--canvas-surface)] text-[var(--canvas-text-muted)] hover:bg-[var(--canvas-surface-hover)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)]"
20438
+ "inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full font-medium transition-all",
20439
+ copied ? "bg-[var(--canvas-success-surface)] text-[var(--canvas-success)]" : "bg-[var(--canvas-surface)] text-[var(--canvas-text-muted)] hover:bg-[var(--canvas-surface-hover)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)]"
20408
20440
  ),
20441
+ style: { fontSize: "var(--typo-body-xs-size)" },
20409
20442
  title: `Copy: ${prompt.slice(0, 100)}...`,
20410
20443
  children: [
20411
20444
  copied ? /* @__PURE__ */ jsx(Check, { className: "size-3" }) : /* @__PURE__ */ jsx(Copy, { className: "size-3" }),
@@ -20416,7 +20449,7 @@ function MiniPromptChip({ label, prompt }) {
20416
20449
  }
20417
20450
  function PromptChipsRow({ chips, label = "More prompts:" }) {
20418
20451
  return /* @__PURE__ */ jsxs("div", { className: "pt-4 border-t border-[var(--canvas-border)]", children: [
20419
- /* @__PURE__ */ jsx("p", { className: "text-xs text-[var(--canvas-text-muted)] mb-2 font-medium", children: label }),
20452
+ /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)] mb-2 font-medium", style: { fontSize: "var(--typo-body-xs-size)" }, children: label }),
20420
20453
  /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: chips.map((chip) => /* @__PURE__ */ jsx(MiniPromptChip, { label: chip.label, prompt: chip.prompt }, chip.label)) })
20421
20454
  ] });
20422
20455
  }
@@ -20499,9 +20532,10 @@ function ScreenPromptTemplate() {
20499
20532
  {
20500
20533
  onClick: () => setPromptType(type),
20501
20534
  className: cn(
20502
- "flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-all",
20503
- isActive ? "bg-[var(--canvas-primary)] text-white shadow-sm" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)] hover:text-[var(--canvas-primary)]"
20535
+ "flex items-center gap-2 px-4 py-2 rounded-lg font-medium transition-all",
20536
+ isActive ? "bg-[var(--canvas-primary)] text-[var(--canvas-primary-foreground)] shadow-sm" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)] hover:text-[var(--canvas-primary)]"
20504
20537
  ),
20538
+ style: { fontSize: "var(--typo-body-s-size)" },
20505
20539
  children: [
20506
20540
  /* @__PURE__ */ jsx(Icon2, { className: "size-4" }),
20507
20541
  config.label
@@ -20511,10 +20545,10 @@ function ScreenPromptTemplate() {
20511
20545
  );
20512
20546
  }
20513
20547
  ) }),
20514
- /* @__PURE__ */ jsx("p", { className: "text-xs text-[var(--canvas-text-muted)] mb-3", children: currentConfig.description }),
20548
+ /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)] mb-3", style: { fontSize: "var(--typo-body-xs-size)" }, children: currentConfig.description }),
20515
20549
  /* @__PURE__ */ jsx("div", { className: "border-t border-[var(--canvas-border)] my-4" }),
20516
20550
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
20517
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-[var(--canvas-text-muted)]", children: [
20551
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 font-medium text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: [
20518
20552
  /* @__PURE__ */ jsx(Sparkles, { className: "size-4 text-[var(--canvas-primary)]" }),
20519
20553
  "Generate with Cursor"
20520
20554
  ] }),
@@ -20523,9 +20557,10 @@ function ScreenPromptTemplate() {
20523
20557
  {
20524
20558
  onClick: handleCopy,
20525
20559
  className: cn(
20526
- "flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-all",
20527
- copied ? "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)]"
20560
+ "flex items-center gap-1.5 px-2.5 py-1.5 rounded-md font-medium transition-all",
20561
+ copied ? "bg-[var(--canvas-success-surface)] text-[var(--canvas-success)]" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)]"
20528
20562
  ),
20563
+ style: { fontSize: "var(--typo-body-xs-size)" },
20529
20564
  children: copied ? /* @__PURE__ */ jsxs(Fragment, { children: [
20530
20565
  /* @__PURE__ */ jsx(Check, { className: "size-3" }),
20531
20566
  "Copied!"
@@ -20536,7 +20571,7 @@ function ScreenPromptTemplate() {
20536
20571
  }
20537
20572
  )
20538
20573
  ] }),
20539
- /* @__PURE__ */ jsx("pre", { className: "text-sm text-[var(--canvas-text)] leading-relaxed font-mono whitespace-pre-wrap bg-[var(--canvas-background)] rounded-md p-3 border border-[var(--canvas-border)] max-h-[300px] overflow-y-auto", children: currentConfig.prompt })
20574
+ /* @__PURE__ */ jsx("pre", { className: "text-[var(--canvas-text)] leading-relaxed font-mono whitespace-pre-wrap bg-[var(--canvas-background)] rounded-md p-3 border border-[var(--canvas-border)] max-h-[300px] overflow-y-auto", style: { fontSize: "var(--typo-body-s-size)" }, children: currentConfig.prompt })
20540
20575
  ] });
20541
20576
  }
20542
20577
  function ScreenPromptBuilder({ className }) {
@@ -20609,11 +20644,11 @@ function ScreenPromptBuilder({ className }) {
20609
20644
  const hasContent = selectedComponents.length > 0 || screenName || screenContext;
20610
20645
  return /* @__PURE__ */ jsxs("div", { className: cn("space-y-6", className), children: [
20611
20646
  /* @__PURE__ */ jsxs("div", { children: [
20612
- /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-[var(--canvas-text)]", children: "Build from Components" }),
20613
- /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--canvas-text-muted)] mt-1", children: "Select existing components and describe your screen to generate a prompt" })
20647
+ /* @__PURE__ */ jsx("h3", { className: "font-semibold text-[var(--canvas-text)]", style: { fontSize: "var(--typo-body-l-size)" }, children: "Build from Components" }),
20648
+ /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)] mt-1", style: { fontSize: "var(--typo-body-s-size)" }, children: "Select existing components and describe your screen to generate a prompt" })
20614
20649
  ] }),
20615
20650
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
20616
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-[var(--canvas-text)]", children: "Select Components" }),
20651
+ /* @__PURE__ */ jsx("label", { className: "text-[var(--canvas-text)]", style: { fontSize: "var(--typo-body-s-size)", fontWeight: 500 }, children: "Select Components" }),
20617
20652
  /* @__PURE__ */ jsx(
20618
20653
  ComponentSearch,
20619
20654
  {
@@ -20627,7 +20662,8 @@ function ScreenPromptBuilder({ className }) {
20627
20662
  "label",
20628
20663
  {
20629
20664
  htmlFor: "screen-name",
20630
- className: "text-sm font-medium text-[var(--canvas-text)]",
20665
+ className: "text-[var(--canvas-text)]",
20666
+ style: { fontSize: "var(--typo-body-s-size)", fontWeight: 500 },
20631
20667
  children: "Screen Name"
20632
20668
  }
20633
20669
  ),
@@ -20639,7 +20675,8 @@ function ScreenPromptBuilder({ className }) {
20639
20675
  value: screenName,
20640
20676
  onChange: (e) => setScreenName(e.target.value),
20641
20677
  placeholder: "e.g., User Dashboard, Order History, Settings",
20642
- className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] text-sm placeholder:text-[var(--canvas-text-placeholder)] focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent"
20678
+ className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent",
20679
+ style: { fontSize: "var(--typo-body-s-size)" }
20643
20680
  }
20644
20681
  )
20645
20682
  ] }),
@@ -20648,7 +20685,8 @@ function ScreenPromptBuilder({ className }) {
20648
20685
  "label",
20649
20686
  {
20650
20687
  htmlFor: "screen-context",
20651
- className: "text-sm font-medium text-[var(--canvas-text)]",
20688
+ className: "text-[var(--canvas-text)]",
20689
+ style: { fontSize: "var(--typo-body-s-size)", fontWeight: 500 },
20652
20690
  children: "Screen Purpose & Context"
20653
20691
  }
20654
20692
  ),
@@ -20660,7 +20698,8 @@ function ScreenPromptBuilder({ className }) {
20660
20698
  onChange: (e) => setScreenContext(e.target.value),
20661
20699
  placeholder: "Describe what this screen should do, what users will accomplish here, and any specific requirements...",
20662
20700
  rows: 3,
20663
- className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] text-sm placeholder:text-[var(--canvas-text-placeholder)] focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent resize-none"
20701
+ className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] placeholder:text-[var(--canvas-text-placeholder)] focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent resize-none",
20702
+ style: { fontSize: "var(--typo-body-s-size)" }
20664
20703
  }
20665
20704
  )
20666
20705
  ] }),
@@ -20669,7 +20708,8 @@ function ScreenPromptBuilder({ className }) {
20669
20708
  "label",
20670
20709
  {
20671
20710
  htmlFor: "persona",
20672
- className: "text-sm font-medium text-[var(--canvas-text)]",
20711
+ className: "text-[var(--canvas-text)]",
20712
+ style: { fontSize: "var(--typo-body-s-size)", fontWeight: 500 },
20673
20713
  children: "Target Persona (optional)"
20674
20714
  }
20675
20715
  ),
@@ -20679,7 +20719,8 @@ function ScreenPromptBuilder({ className }) {
20679
20719
  id: "persona",
20680
20720
  value: selectedPersona,
20681
20721
  onChange: (e) => setSelectedPersona(e.target.value),
20682
- className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] text-sm focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent",
20722
+ className: "w-full px-3 py-2 rounded-lg border border-[var(--canvas-border)] bg-[var(--canvas-background)] text-[var(--canvas-text)] focus:outline-none focus:ring-2 focus:ring-[var(--canvas-primary)] focus:border-transparent",
20723
+ style: { fontSize: "var(--typo-body-s-size)" },
20683
20724
  children: [
20684
20725
  /* @__PURE__ */ jsx("option", { value: "", children: "Select a persona..." }),
20685
20726
  personas.map((persona) => /* @__PURE__ */ jsxs("option", { value: persona.id, children: [
@@ -20695,7 +20736,7 @@ function ScreenPromptBuilder({ className }) {
20695
20736
  ] }),
20696
20737
  hasContent && /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-dashed border-[var(--canvas-border)] bg-[var(--canvas-surface)] p-4", children: [
20697
20738
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
20698
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-[var(--canvas-text-muted)]", children: [
20739
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 font-medium text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: [
20699
20740
  /* @__PURE__ */ jsx(Sparkles, { className: "size-4 text-[var(--canvas-primary)]" }),
20700
20741
  "Generated Prompt"
20701
20742
  ] }),
@@ -20705,9 +20746,10 @@ function ScreenPromptBuilder({ className }) {
20705
20746
  onClick: handleCopy,
20706
20747
  disabled: !generatedPrompt,
20707
20748
  className: cn(
20708
- "flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-all",
20709
- copied ? "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)]"
20749
+ "flex items-center gap-1.5 px-2.5 py-1.5 rounded-md font-medium transition-all",
20750
+ copied ? "bg-[var(--canvas-success-surface)] text-[var(--canvas-success)]" : "bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] hover:text-[var(--canvas-text)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)]"
20710
20751
  ),
20752
+ style: { fontSize: "var(--typo-body-xs-size)" },
20711
20753
  children: copied ? /* @__PURE__ */ jsxs(Fragment, { children: [
20712
20754
  /* @__PURE__ */ jsx(Check, { className: "size-3" }),
20713
20755
  "Copied!"
@@ -20718,18 +20760,18 @@ function ScreenPromptBuilder({ className }) {
20718
20760
  }
20719
20761
  )
20720
20762
  ] }),
20721
- /* @__PURE__ */ jsx("pre", { className: "text-sm text-[var(--canvas-text)] leading-relaxed font-mono whitespace-pre-wrap bg-[var(--canvas-background)] rounded-md p-3 border border-[var(--canvas-border)] max-h-[300px] overflow-y-auto", children: generatedPrompt })
20763
+ /* @__PURE__ */ jsx("pre", { className: "text-[var(--canvas-text)] leading-relaxed font-mono whitespace-pre-wrap bg-[var(--canvas-background)] rounded-md p-3 border border-[var(--canvas-border)] max-h-[300px] overflow-y-auto", style: { fontSize: "var(--typo-body-s-size)" }, children: generatedPrompt })
20722
20764
  ] }),
20723
- !hasContent && /* @__PURE__ */ jsx("div", { className: "rounded-lg border-2 border-dashed border-[var(--canvas-border)] bg-[var(--canvas-surface)] p-8 text-center", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--canvas-text-muted)]", children: "Select components or enter screen details to generate a prompt" }) })
20765
+ !hasContent && /* @__PURE__ */ jsx("div", { className: "rounded-lg border-2 border-dashed border-[var(--canvas-border)] bg-[var(--canvas-surface)] p-8 text-center", children: /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: "Select components or enter screen details to generate a prompt" }) })
20724
20766
  ] });
20725
20767
  }
20726
20768
  function ScreenNode({ data, selected }) {
20727
20769
  const { screen, childScreens } = data;
20728
20770
  const hasChildren = childScreens.length > 0;
20729
20771
  const statusColors = {
20730
- draft: "bg-yellow-100 text-yellow-700 border-yellow-200",
20731
- review: "bg-blue-100 text-blue-700 border-blue-200",
20732
- approved: "bg-green-100 text-green-700 border-green-200"
20772
+ draft: { bg: "var(--canvas-warning-surface)", text: "var(--canvas-warning)", border: "var(--canvas-warning)" },
20773
+ review: { bg: "var(--canvas-info-surface)", text: "var(--canvas-info)", border: "var(--canvas-info)" },
20774
+ approved: { bg: "var(--canvas-success-surface)", text: "var(--canvas-success)", border: "var(--canvas-success)" }
20733
20775
  };
20734
20776
  const typeLabels = {
20735
20777
  page: null,
@@ -20742,7 +20784,7 @@ function ScreenNode({ data, selected }) {
20742
20784
  "div",
20743
20785
  {
20744
20786
  className: cn(
20745
- "rounded-lg border-2 bg-white shadow-sm min-w-[160px]",
20787
+ "rounded-lg border-2 bg-[var(--canvas-background)] shadow-sm min-w-[160px]",
20746
20788
  selected ? "border-[var(--canvas-primary)] shadow-md" : "border-[var(--canvas-border)]"
20747
20789
  ),
20748
20790
  children: [
@@ -20756,11 +20798,11 @@ function ScreenNode({ data, selected }) {
20756
20798
  ),
20757
20799
  /* @__PURE__ */ jsxs("div", { className: "p-3", children: [
20758
20800
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-1", children: [
20759
- /* @__PURE__ */ jsx("span", { className: "text-lg", children: screen.icon || "\u{1F4C4}" }),
20760
- /* @__PURE__ */ jsx("span", { className: "font-medium text-sm text-[var(--canvas-text)] truncate", children: screen.name })
20801
+ /* @__PURE__ */ jsx("span", { style: { fontSize: "var(--typo-body-l-size)" }, children: screen.icon || "\u{1F4C4}" }),
20802
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-[var(--canvas-text)] truncate", style: { fontSize: "var(--typo-body-s-size)" }, children: screen.name })
20761
20803
  ] }),
20762
20804
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
20763
- /* @__PURE__ */ jsxs("span", { className: "text-xs text-[var(--canvas-text-muted)] font-mono", children: [
20805
+ /* @__PURE__ */ jsxs("span", { className: "text-[var(--canvas-text-muted)] font-mono", style: { fontSize: "var(--typo-body-xs-size)" }, children: [
20764
20806
  "/",
20765
20807
  screen.slug
20766
20808
  ] }),
@@ -20769,10 +20811,12 @@ function ScreenNode({ data, selected }) {
20769
20811
  /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between mt-2 pt-2 border-t border-[var(--canvas-border)]", children: /* @__PURE__ */ jsx(
20770
20812
  "span",
20771
20813
  {
20772
- className: cn(
20773
- "text-[10px] px-1.5 py-0.5 rounded border font-medium capitalize",
20774
- statusColors[screen.status]
20775
- ),
20814
+ className: "text-[10px] px-1.5 py-0.5 rounded border font-medium capitalize",
20815
+ style: {
20816
+ backgroundColor: statusColors[screen.status].bg,
20817
+ color: statusColors[screen.status].text,
20818
+ borderColor: statusColors[screen.status].border
20819
+ },
20776
20820
  children: screen.status
20777
20821
  }
20778
20822
  ) })
@@ -20781,7 +20825,7 @@ function ScreenNode({ data, selected }) {
20781
20825
  "div",
20782
20826
  {
20783
20827
  className: cn(
20784
- "px-3 py-2 flex items-center gap-2 text-xs",
20828
+ "px-3 py-2 flex items-center gap-2",
20785
20829
  "hover:bg-[var(--canvas-surface)]",
20786
20830
  i < childScreens.length - 1 && "border-b border-[var(--canvas-border)]"
20787
20831
  ),
@@ -20792,8 +20836,8 @@ function ScreenNode({ data, selected }) {
20792
20836
  child.type === "drawer" && "\u{1F4E5}",
20793
20837
  child.type === "state" && "\u{1F504}"
20794
20838
  ] }),
20795
- /* @__PURE__ */ jsx("span", { className: "text-[var(--canvas-text)] truncate", children: child.name }),
20796
- /* @__PURE__ */ jsxs("span", { className: "text-[var(--canvas-text-muted)] font-mono ml-auto", children: [
20839
+ /* @__PURE__ */ jsx("span", { className: "text-[var(--canvas-text)] truncate", style: { fontSize: "var(--typo-body-s-size)" }, children: child.name }),
20840
+ /* @__PURE__ */ jsxs("span", { className: "text-[var(--canvas-text-muted)] font-mono ml-auto", style: { fontSize: "var(--typo-body-xs-size)" }, children: [
20797
20841
  "/",
20798
20842
  child.slug
20799
20843
  ] })
@@ -20879,7 +20923,8 @@ function ScreenFlowchart({
20879
20923
  "button",
20880
20924
  {
20881
20925
  onClick: onOpenFullscreen,
20882
- className: "absolute top-3 right-3 z-10 flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-medium bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)] hover:text-[var(--canvas-primary)] transition-colors",
20926
+ className: "absolute top-3 right-3 z-10 flex items-center gap-1.5 px-3 py-1.5 rounded-md font-medium bg-[var(--canvas-background)] text-[var(--canvas-text-muted)] border border-[var(--canvas-border)] hover:border-[var(--canvas-primary)] hover:text-[var(--canvas-primary)] transition-colors",
20927
+ style: { fontSize: "var(--typo-body-xs-size)" },
20883
20928
  children: [
20884
20929
  /* @__PURE__ */ jsx(ExternalLink, { className: "size-3" }),
20885
20930
  "Open in new tab"
@@ -20901,7 +20946,7 @@ function ScreenFlowchart({
20901
20946
  className: "bg-[var(--canvas-surface)] rounded-lg border border-[var(--canvas-border)]",
20902
20947
  children: [
20903
20948
  /* @__PURE__ */ jsx(Background, { variant: BackgroundVariant.Dots, gap: 20, size: 1 }),
20904
- /* @__PURE__ */ jsx(Controls, { className: "!bg-white !border-[var(--canvas-border)] !shadow-sm" })
20949
+ /* @__PURE__ */ jsx(Controls, { className: "!bg-[var(--canvas-background)] !border-[var(--canvas-border)] !shadow-sm" })
20905
20950
  ]
20906
20951
  }
20907
20952
  )
@@ -20921,18 +20966,19 @@ function PersonaCard({ persona, className }) {
20921
20966
  /* @__PURE__ */ jsx("div", { className: "text-3xl", children: persona.avatar || "\u{1F464}" }),
20922
20967
  /* @__PURE__ */ jsxs("div", { children: [
20923
20968
  /* @__PURE__ */ jsx("h3", { className: "font-semibold text-[var(--canvas-text)]", children: persona.name }),
20924
- /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--canvas-text-muted)]", children: persona.role })
20969
+ /* @__PURE__ */ jsx("p", { className: "text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: persona.role })
20925
20970
  ] })
20926
20971
  ] }),
20927
20972
  /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
20928
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 text-xs font-medium text-[var(--canvas-text-muted)] mb-2", children: [
20973
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 font-medium text-[var(--canvas-text-muted)] mb-2", style: { fontSize: "var(--typo-body-xs-size)" }, children: [
20929
20974
  /* @__PURE__ */ jsx(Target$1, { className: "size-3" }),
20930
20975
  "Goals"
20931
20976
  ] }),
20932
20977
  /* @__PURE__ */ jsx("ul", { className: "space-y-1", children: persona.goals.map((goal, i) => /* @__PURE__ */ jsxs(
20933
20978
  "li",
20934
20979
  {
20935
- className: "text-sm text-[var(--canvas-text)] flex items-start gap-2",
20980
+ className: "text-[var(--canvas-text)] flex items-start gap-2",
20981
+ style: { fontSize: "var(--typo-body-s-size)" },
20936
20982
  children: [
20937
20983
  /* @__PURE__ */ jsx("span", { className: "text-[var(--canvas-primary)] mt-1.5", children: "\u2022" }),
20938
20984
  goal
@@ -20942,16 +20988,17 @@ function PersonaCard({ persona, className }) {
20942
20988
  )) })
20943
20989
  ] }),
20944
20990
  /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
20945
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 text-xs font-medium text-[var(--canvas-text-muted)] mb-2", children: [
20991
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 font-medium text-[var(--canvas-text-muted)] mb-2", style: { fontSize: "var(--typo-body-xs-size)" }, children: [
20946
20992
  /* @__PURE__ */ jsx(AlertCircle, { className: "size-3" }),
20947
20993
  "Pain Points"
20948
20994
  ] }),
20949
20995
  /* @__PURE__ */ jsx("ul", { className: "space-y-1", children: persona.painPoints.map((point, i) => /* @__PURE__ */ jsxs(
20950
20996
  "li",
20951
20997
  {
20952
- className: "text-sm text-[var(--canvas-text)] flex items-start gap-2",
20998
+ className: "text-[var(--canvas-text)] flex items-start gap-2",
20999
+ style: { fontSize: "var(--typo-body-s-size)" },
20953
21000
  children: [
20954
- /* @__PURE__ */ jsx("span", { className: "text-red-500 mt-1.5", children: "\u2022" }),
21001
+ /* @__PURE__ */ jsx("span", { className: "text-[var(--canvas-destructive)] mt-1.5", children: "\u2022" }),
20955
21002
  point
20956
21003
  ]
20957
21004
  },
@@ -20960,7 +21007,7 @@ function PersonaCard({ persona, className }) {
20960
21007
  ] }),
20961
21008
  /* @__PURE__ */ jsx("div", { className: "border-t border-[var(--canvas-border)] pt-4 mt-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
20962
21009
  /* @__PURE__ */ jsx(Quote, { className: "size-4 text-[var(--canvas-text-muted)] shrink-0 mt-0.5" }),
20963
- /* @__PURE__ */ jsxs("p", { className: "text-sm italic text-[var(--canvas-text-muted)]", children: [
21010
+ /* @__PURE__ */ jsxs("p", { className: "italic text-[var(--canvas-text-muted)]", style: { fontSize: "var(--typo-body-s-size)" }, children: [
20964
21011
  '"',
20965
21012
  persona.quote,
20966
21013
  '"'
@@ -23686,7 +23733,7 @@ function PricingCards() {
23686
23733
  children: /* @__PURE__ */ jsx(
23687
23734
  "div",
23688
23735
  {
23689
- className: "absolute top-1 w-9 h-9 bg-white rounded-full shadow transition-all",
23736
+ className: "absolute top-1 w-9 h-9 bg-[var(--canvas-background)] rounded-full shadow transition-all",
23690
23737
  style: {
23691
23738
  left: isAnnual ? "calc(100% - 40px)" : "4px"
23692
23739
  }