@agent-native/core 0.80.0 → 0.80.2

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 (228) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +28 -0
  3. package/corpus/core/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
  4. package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +14 -1
  5. package/corpus/core/docs/content/locales/de-DE/skills-guide.mdx +5 -0
  6. package/corpus/core/docs/content/locales/de-DE/template-design.mdx +15 -1
  7. package/corpus/core/docs/content/locales/es-ES/skills-guide.mdx +5 -0
  8. package/corpus/core/docs/content/locales/es-ES/template-design.mdx +15 -1
  9. package/corpus/core/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
  10. package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +15 -1
  11. package/corpus/core/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
  12. package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +15 -1
  13. package/corpus/core/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
  14. package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +16 -1
  15. package/corpus/core/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
  16. package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +14 -1
  17. package/corpus/core/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
  18. package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +14 -1
  19. package/corpus/core/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
  20. package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +14 -1
  21. package/corpus/core/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
  22. package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +14 -1
  23. package/corpus/core/docs/content/skills-guide.mdx +5 -0
  24. package/corpus/core/docs/content/template-design.mdx +14 -1
  25. package/corpus/core/package.json +1 -1
  26. package/corpus/core/src/application-state/handlers.ts +1 -1
  27. package/corpus/core/src/brand-kit/index.ts +1 -1
  28. package/corpus/core/src/cli/skills.ts +18 -0
  29. package/corpus/core/src/client/AgentPanel.tsx +1 -1
  30. package/corpus/core/src/client/MultiTabAssistantChat.tsx +1 -1
  31. package/corpus/core/src/client/extensions/portable-extension.ts +1 -1
  32. package/corpus/core/src/code-agents/transcript-normalizer.ts +1 -1
  33. package/corpus/core/src/extensions/path.ts +1 -4
  34. package/corpus/core/src/integrations/a2a-continuation-processor.ts +1 -1
  35. package/corpus/core/src/mcp/build-server.ts +2 -2
  36. package/corpus/core/src/mcp/embed-app.ts +35 -1
  37. package/corpus/core/src/org/handlers.ts +5 -5
  38. package/corpus/core/src/org/plugin.ts +2 -2
  39. package/corpus/core/src/scripts/call-agent.ts +1 -1
  40. package/corpus/core/src/scripts/db/safety.ts +1 -1
  41. package/corpus/core/src/server/auth.ts +3 -0
  42. package/corpus/core/src/server/builder-design-systems.ts +308 -0
  43. package/corpus/core/src/server/core-routes-plugin.ts +29 -3
  44. package/corpus/core/src/server/index.ts +8 -0
  45. package/corpus/core/src/styles/agent-native.css +14 -7
  46. package/corpus/core/src/usage/store.ts +2 -2
  47. package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +298 -15
  48. package/corpus/templates/analytics/actions/get-sql-dashboard.ts +9 -4
  49. package/corpus/templates/analytics/actions/mutate-dashboard.ts +18 -2
  50. package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +12 -2
  51. package/corpus/templates/analytics/app/hooks/use-replay-storage-status.ts +66 -0
  52. package/corpus/templates/analytics/app/i18n/zh-TW.ts +37 -0
  53. package/corpus/templates/analytics/app/i18n-data.ts +404 -0
  54. package/corpus/templates/analytics/app/pages/Settings.tsx +333 -0
  55. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +2 -1
  56. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-layout.ts +121 -3
  57. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +49 -26
  58. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +137 -36
  59. package/corpus/templates/analytics/changelog/2026-06-29-analytics-agents-can-now-place-new-charts-into-requested-das.md +6 -0
  60. package/corpus/templates/analytics/changelog/2026-06-29-analytics-queries-now-report-failed-source-query-errors-inst.md +6 -0
  61. package/corpus/templates/analytics/changelog/2026-06-29-charts-can-now-be-dropped-between-full-dashboard-rows-to-cre.md +6 -0
  62. package/corpus/templates/analytics/changelog/2026-06-29-dashboard-email-reports-include-the-full-dashboard-image-wit.md +6 -0
  63. package/corpus/templates/analytics/changelog/2026-06-29-main-surface-border-reaches-the-top.md +6 -0
  64. package/corpus/templates/analytics/changelog/2026-06-29-session-replay-now-records-playable-sessions-in-production-a.md +6 -0
  65. package/corpus/templates/analytics/changelog/2026-06-29-set-up-session-replay-storage-from-settings-connect-builder-.md +6 -0
  66. package/corpus/templates/analytics/scripts/cleanup-empty-session-recordings.ts +102 -0
  67. package/corpus/templates/analytics/server/lib/dashboard-report.ts +49 -26
  68. package/corpus/templates/analytics/server/lib/real-data-actions.ts +81 -20
  69. package/corpus/templates/analytics/server/lib/replay-storage.ts +79 -0
  70. package/corpus/templates/analytics/server/lib/s3-upload-provider.ts +255 -0
  71. package/corpus/templates/analytics/server/lib/session-replay.ts +29 -8
  72. package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -2
  73. package/corpus/templates/analytics/server/plugins/onboarding.ts +97 -0
  74. package/corpus/templates/clips/desktop/src/lib/recorder.ts +24 -0
  75. package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +105 -5
  76. package/corpus/templates/content/actions/set-image-alt-text.ts +1 -1
  77. package/corpus/templates/content/shared/document-export.ts +1 -1
  78. package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +8 -18
  79. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +17 -0
  80. package/corpus/templates/design/actions/add-localhost-screens.ts +32 -5
  81. package/corpus/templates/design/actions/index-design-system-with-builder.ts +259 -0
  82. package/corpus/templates/design/actions/update-file.ts +9 -2
  83. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +33 -75
  84. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +72 -9
  85. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +41 -39
  86. package/corpus/templates/design/app/components/design/EditPanel.tsx +1029 -249
  87. package/corpus/templates/design/app/components/design/LayersPanel.tsx +450 -101
  88. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +978 -154
  89. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +7 -9
  90. package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +133 -66
  91. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +1234 -344
  92. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +144 -94
  93. package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +301 -72
  94. package/corpus/templates/design/app/components/design/inspector/FigmaColorPicker.tsx +876 -286
  95. package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +601 -0
  96. package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +242 -0
  97. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +30 -7
  98. package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +212 -155
  99. package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +423 -0
  100. package/corpus/templates/design/app/components/design/inspector/figma-icons.tsx +487 -107
  101. package/corpus/templates/design/app/components/design/inspector/index.ts +27 -0
  102. package/corpus/templates/design/app/global.css +29 -3
  103. package/corpus/templates/design/app/i18n/zh-TW.ts +13 -0
  104. package/corpus/templates/design/app/i18n-data.ts +239 -1
  105. package/corpus/templates/design/app/pages/DesignEditor.tsx +1023 -353
  106. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +57 -221
  107. package/corpus/templates/design/changelog/2026-06-29-canvas-selection-no-longer-flashes-broken-prototype-html-whe.md +6 -0
  108. package/corpus/templates/design/changelog/2026-06-29-command-menu-selections-are-clearer-in-dark-mode.md +6 -0
  109. package/corpus/templates/design/changelog/2026-06-29-design-mode-top-chrome-now-groups-collaborators-preview-shar.md +6 -0
  110. package/corpus/templates/design/changelog/2026-06-29-element-selection-now-stays-on-the-intended-layer-after-sele.md +6 -0
  111. package/corpus/templates/design/changelog/2026-06-29-screen-overview-full-view-controls-now-sit-above-frames-inst.md +6 -0
  112. package/corpus/templates/design/changelog/2026-06-29-screen-overview-tools-can-draw-shapes-create-screens-and-kee.md +6 -0
  113. package/corpus/templates/design/changelog/2026-06-29-the-pen-tool-now-creates-anchor-based-bezier-vectors-with-ha.md +6 -0
  114. package/corpus/templates/design/server/handlers/import-figma-system.ts +38 -85
  115. package/corpus/templates/design/server/lib/design-snapshot.ts +9 -1
  116. package/corpus/templates/design/shared/code-layer.ts +209 -9
  117. package/corpus/templates/design/shared/html-content.ts +21 -0
  118. package/corpus/templates/design/shared/pen-path.ts +207 -0
  119. package/corpus/templates/mail/app/lib/utils.ts +2 -2
  120. package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +9 -10
  121. package/corpus/templates/slides/AGENTS.md +3 -2
  122. package/corpus/templates/slides/actions/import-file.ts +26 -17
  123. package/corpus/templates/slides/actions/index-design-system-with-builder.ts +259 -0
  124. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +35 -167
  125. package/corpus/templates/slides/app/components/design-system/fig-import-response.ts +9 -13
  126. package/corpus/templates/slides/app/context/DeckContext.tsx +1 -1
  127. package/corpus/templates/slides/app/i18n/ar-SA.ts +9 -37
  128. package/corpus/templates/slides/app/i18n/de-DE.ts +10 -25
  129. package/corpus/templates/slides/app/i18n/en-US.ts +9 -26
  130. package/corpus/templates/slides/app/i18n/es-ES.ts +10 -28
  131. package/corpus/templates/slides/app/i18n/fr-FR.ts +10 -28
  132. package/corpus/templates/slides/app/i18n/hi-IN.ts +9 -26
  133. package/corpus/templates/slides/app/i18n/ja-JP.ts +10 -22
  134. package/corpus/templates/slides/app/i18n/ko-KR.ts +9 -23
  135. package/corpus/templates/slides/app/i18n/pt-BR.ts +10 -28
  136. package/corpus/templates/slides/app/i18n/zh-CN.ts +9 -22
  137. package/corpus/templates/slides/app/i18n/zh-TW.ts +9 -22
  138. package/corpus/templates/slides/server/handlers/import-figma-system.ts +44 -12
  139. package/corpus/templates/slides/server/lib/chat-attachments.ts +1 -1
  140. package/corpus/templates/videos/app/components/NewCompositionPopover.tsx +1 -1
  141. package/dist/application-state/handlers.js +1 -1
  142. package/dist/application-state/handlers.js.map +1 -1
  143. package/dist/brand-kit/index.d.ts +1 -1
  144. package/dist/brand-kit/index.js +1 -1
  145. package/dist/brand-kit/index.js.map +1 -1
  146. package/dist/cli/skills.d.ts.map +1 -1
  147. package/dist/cli/skills.js +18 -0
  148. package/dist/cli/skills.js.map +1 -1
  149. package/dist/client/AgentPanel.js +1 -1
  150. package/dist/client/AgentPanel.js.map +1 -1
  151. package/dist/client/MultiTabAssistantChat.js +1 -1
  152. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  153. package/dist/client/extensions/portable-extension.d.ts +1 -1
  154. package/dist/client/extensions/portable-extension.d.ts.map +1 -1
  155. package/dist/client/extensions/portable-extension.js.map +1 -1
  156. package/dist/code-agents/transcript-normalizer.js +1 -1
  157. package/dist/code-agents/transcript-normalizer.js.map +1 -1
  158. package/dist/collab/awareness.d.ts +2 -2
  159. package/dist/collab/awareness.d.ts.map +1 -1
  160. package/dist/collab/routes.d.ts +1 -1
  161. package/dist/extensions/path.d.ts +1 -1
  162. package/dist/extensions/path.d.ts.map +1 -1
  163. package/dist/extensions/path.js.map +1 -1
  164. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  165. package/dist/integrations/a2a-continuation-processor.js +1 -1
  166. package/dist/integrations/a2a-continuation-processor.js.map +1 -1
  167. package/dist/mcp/build-server.d.ts +1 -1
  168. package/dist/mcp/build-server.d.ts.map +1 -1
  169. package/dist/mcp/build-server.js +1 -1
  170. package/dist/mcp/build-server.js.map +1 -1
  171. package/dist/mcp/embed-app.d.ts.map +1 -1
  172. package/dist/mcp/embed-app.js +35 -1
  173. package/dist/mcp/embed-app.js.map +1 -1
  174. package/dist/notifications/routes.d.ts +3 -3
  175. package/dist/observability/routes.d.ts +8 -8
  176. package/dist/org/handlers.js +5 -5
  177. package/dist/org/handlers.js.map +1 -1
  178. package/dist/org/plugin.js +2 -2
  179. package/dist/org/plugin.js.map +1 -1
  180. package/dist/resources/handlers.d.ts +1 -1
  181. package/dist/scripts/call-agent.js +1 -1
  182. package/dist/scripts/call-agent.js.map +1 -1
  183. package/dist/scripts/db/safety.js +1 -1
  184. package/dist/scripts/db/safety.js.map +1 -1
  185. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  186. package/dist/server/auth.d.ts.map +1 -1
  187. package/dist/server/auth.js +3 -0
  188. package/dist/server/auth.js.map +1 -1
  189. package/dist/server/builder-design-systems.d.ts +28 -0
  190. package/dist/server/builder-design-systems.d.ts.map +1 -0
  191. package/dist/server/builder-design-systems.js +217 -0
  192. package/dist/server/builder-design-systems.js.map +1 -0
  193. package/dist/server/core-routes-plugin.d.ts +1 -0
  194. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  195. package/dist/server/core-routes-plugin.js +20 -3
  196. package/dist/server/core-routes-plugin.js.map +1 -1
  197. package/dist/server/index.d.ts +1 -0
  198. package/dist/server/index.d.ts.map +1 -1
  199. package/dist/server/index.js +1 -0
  200. package/dist/server/index.js.map +1 -1
  201. package/dist/styles/agent-native.css +14 -7
  202. package/dist/usage/store.js +2 -2
  203. package/dist/usage/store.js.map +1 -1
  204. package/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
  205. package/docs/content/locales/ar-SA/template-design.mdx +14 -1
  206. package/docs/content/locales/de-DE/skills-guide.mdx +5 -0
  207. package/docs/content/locales/de-DE/template-design.mdx +15 -1
  208. package/docs/content/locales/es-ES/skills-guide.mdx +5 -0
  209. package/docs/content/locales/es-ES/template-design.mdx +15 -1
  210. package/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
  211. package/docs/content/locales/fr-FR/template-design.mdx +15 -1
  212. package/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
  213. package/docs/content/locales/hi-IN/template-design.mdx +15 -1
  214. package/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
  215. package/docs/content/locales/ja-JP/template-design.mdx +16 -1
  216. package/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
  217. package/docs/content/locales/ko-KR/template-design.mdx +14 -1
  218. package/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
  219. package/docs/content/locales/pt-BR/template-design.mdx +14 -1
  220. package/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
  221. package/docs/content/locales/zh-CN/template-design.mdx +14 -1
  222. package/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
  223. package/docs/content/locales/zh-TW/template-design.mdx +14 -1
  224. package/docs/content/skills-guide.mdx +5 -0
  225. package/docs/content/template-design.mdx +14 -1
  226. package/package.json +1 -1
  227. package/corpus/templates/design/actions/import-figma-file.ts +0 -166
  228. package/corpus/templates/slides/server/lib/fig-design-system.ts +0 -110
@@ -4,6 +4,7 @@ interface IconProps {
4
4
  className?: string;
5
5
  }
6
6
 
7
+ // Gap icon: ]·[ — two inward-facing C-brackets with a center dot
7
8
  export function IconGap({ className }: IconProps) {
8
9
  return (
9
10
  <svg
@@ -16,112 +17,119 @@ export function IconGap({ className }: IconProps) {
16
17
  className={cn("size-4", className)}
17
18
  aria-hidden="true"
18
19
  >
19
- {/* Left bracket ] */}
20
- <line x1="8" y1="6" x2="4" y2="6" />
21
- <line x1="4" y1="6" x2="4" y2="18" />
22
- <line x1="4" y1="18" x2="8" y2="18" />
20
+ {/* Left bracket ] — vertical bar on right side, serifs pointing right */}
21
+ <line x1="9" y1="7" x2="6" y2="7" />
22
+ <line x1="6" y1="7" x2="6" y2="17" />
23
+ <line x1="6" y1="17" x2="9" y2="17" />
23
24
  {/* Center dot */}
24
- <circle cx="12" cy="12" r="1.5" fill="currentColor" stroke="none" />
25
- {/* Right bracket [ */}
26
- <line x1="16" y1="6" x2="20" y2="6" />
27
- <line x1="20" y1="6" x2="20" y2="18" />
28
- <line x1="20" y1="18" x2="16" y2="18" />
25
+ <circle cx="12" cy="12" r="1" fill="currentColor" stroke="none" />
26
+ {/* Right bracket [ — vertical bar on left side, serifs pointing left */}
27
+ <line x1="15" y1="7" x2="18" y2="7" />
28
+ <line x1="18" y1="7" x2="18" y2="17" />
29
+ <line x1="18" y1="17" x2="15" y2="17" />
29
30
  </svg>
30
31
  );
31
32
  }
32
33
 
34
+ // Padding horizontal: square with thick left and right edges
33
35
  export function IconPaddingHorizontal({ className }: IconProps) {
34
36
  return (
35
37
  <svg
36
38
  viewBox="0 0 24 24"
37
39
  fill="none"
38
40
  stroke="currentColor"
39
- strokeWidth={2}
41
+ strokeWidth={1.5}
40
42
  strokeLinecap="round"
41
43
  strokeLinejoin="round"
42
44
  className={cn("size-4", className)}
43
45
  aria-hidden="true"
44
46
  >
45
47
  {/* Outer frame */}
46
- <rect x="3" y="3" width="18" height="18" rx="2" strokeWidth="1.5" />
47
- {/* Thick left side */}
48
- <line
49
- x1="3"
50
- y1="3"
51
- x2="3"
52
- y2="21"
53
- strokeWidth="4"
54
- strokeLinecap="square"
48
+ <rect x="3" y="4" width="18" height="16" rx="1.5" strokeWidth={1.5} />
49
+ {/* Thick left edge fill */}
50
+ <rect
51
+ x="3"
52
+ y="4"
53
+ width="4"
54
+ height="16"
55
+ rx="1.5"
56
+ fill="currentColor"
57
+ stroke="none"
55
58
  />
56
- {/* Thick right side */}
57
- <line
58
- x1="21"
59
- y1="3"
60
- x2="21"
61
- y2="21"
62
- strokeWidth="4"
63
- strokeLinecap="square"
59
+ {/* Thick right edge fill */}
60
+ <rect
61
+ x="17"
62
+ y="4"
63
+ width="4"
64
+ height="16"
65
+ rx="1.5"
66
+ fill="currentColor"
67
+ stroke="none"
64
68
  />
65
69
  </svg>
66
70
  );
67
71
  }
68
72
 
73
+ // Padding vertical: square with thick top and bottom edges
69
74
  export function IconPaddingVertical({ className }: IconProps) {
70
75
  return (
71
76
  <svg
72
77
  viewBox="0 0 24 24"
73
78
  fill="none"
74
79
  stroke="currentColor"
75
- strokeWidth={2}
80
+ strokeWidth={1.5}
76
81
  strokeLinecap="round"
77
82
  strokeLinejoin="round"
78
83
  className={cn("size-4", className)}
79
84
  aria-hidden="true"
80
85
  >
81
86
  {/* Outer frame */}
82
- <rect x="3" y="3" width="18" height="18" rx="2" strokeWidth="1.5" />
83
- {/* Thick top side */}
84
- <line
85
- x1="3"
86
- y1="3"
87
- x2="21"
88
- y2="3"
89
- strokeWidth="4"
90
- strokeLinecap="square"
87
+ <rect x="4" y="3" width="16" height="18" rx="1.5" strokeWidth={1.5} />
88
+ {/* Thick top edge fill */}
89
+ <rect
90
+ x="4"
91
+ y="3"
92
+ width="16"
93
+ height="4"
94
+ rx="1.5"
95
+ fill="currentColor"
96
+ stroke="none"
91
97
  />
92
- {/* Thick bottom side */}
93
- <line
94
- x1="3"
95
- y1="21"
96
- x2="21"
97
- y2="21"
98
- strokeWidth="4"
99
- strokeLinecap="square"
98
+ {/* Thick bottom edge fill */}
99
+ <rect
100
+ x="4"
101
+ y="17"
102
+ width="16"
103
+ height="4"
104
+ rx="1.5"
105
+ fill="currentColor"
106
+ stroke="none"
100
107
  />
101
108
  </svg>
102
109
  );
103
110
  }
104
111
 
112
+ // Flow horizontal: two filled boxes side-by-side inside a wide frame
105
113
  export function IconFlowHorizontal({ className }: IconProps) {
106
114
  return (
107
115
  <svg
108
116
  viewBox="0 0 24 24"
109
117
  fill="none"
110
118
  stroke="currentColor"
111
- strokeWidth={2}
119
+ strokeWidth={1.5}
112
120
  strokeLinecap="round"
113
121
  strokeLinejoin="round"
114
122
  className={cn("size-4", className)}
115
123
  aria-hidden="true"
116
124
  >
117
- {/* Container frame */}
118
- <rect x="2" y="7" width="20" height="10" rx="2" strokeWidth="1.5" />
125
+ {/* Outer container — wide landscape frame */}
126
+ <rect x="2" y="6" width="20" height="12" rx="2" strokeWidth={1.5} />
119
127
  {/* Left item */}
120
128
  <rect
121
129
  x="5"
122
- y="10"
130
+ y="9"
123
131
  width="5"
124
- height="4"
132
+ height="6"
125
133
  rx="1"
126
134
  fill="currentColor"
127
135
  stroke="none"
@@ -129,9 +137,9 @@ export function IconFlowHorizontal({ className }: IconProps) {
129
137
  {/* Right item */}
130
138
  <rect
131
139
  x="14"
132
- y="10"
140
+ y="9"
133
141
  width="5"
134
- height="4"
142
+ height="6"
135
143
  rx="1"
136
144
  fill="currentColor"
137
145
  stroke="none"
@@ -140,25 +148,26 @@ export function IconFlowHorizontal({ className }: IconProps) {
140
148
  );
141
149
  }
142
150
 
151
+ // Flow vertical: two filled boxes stacked inside a tall frame
143
152
  export function IconFlowVertical({ className }: IconProps) {
144
153
  return (
145
154
  <svg
146
155
  viewBox="0 0 24 24"
147
156
  fill="none"
148
157
  stroke="currentColor"
149
- strokeWidth={2}
158
+ strokeWidth={1.5}
150
159
  strokeLinecap="round"
151
160
  strokeLinejoin="round"
152
161
  className={cn("size-4", className)}
153
162
  aria-hidden="true"
154
163
  >
155
- {/* Container frame */}
156
- <rect x="7" y="2" width="10" height="20" rx="2" strokeWidth="1.5" />
164
+ {/* Outer container — tall portrait frame */}
165
+ <rect x="6" y="2" width="12" height="20" rx="2" strokeWidth={1.5} />
157
166
  {/* Top item */}
158
167
  <rect
159
- x="10"
168
+ x="9"
160
169
  y="5"
161
- width="4"
170
+ width="6"
162
171
  height="5"
163
172
  rx="1"
164
173
  fill="currentColor"
@@ -166,9 +175,9 @@ export function IconFlowVertical({ className }: IconProps) {
166
175
  />
167
176
  {/* Bottom item */}
168
177
  <rect
169
- x="10"
178
+ x="9"
170
179
  y="14"
171
- width="4"
180
+ width="6"
172
181
  height="5"
173
182
  rx="1"
174
183
  fill="currentColor"
@@ -178,53 +187,57 @@ export function IconFlowVertical({ className }: IconProps) {
178
187
  );
179
188
  }
180
189
 
190
+ // Flow wrap: items wrap to a new row (first row: two boxes, second row: one + arrow)
181
191
  export function IconFlowWrap({ className }: IconProps) {
182
192
  return (
183
193
  <svg
184
194
  viewBox="0 0 24 24"
185
195
  fill="none"
186
196
  stroke="currentColor"
187
- strokeWidth={2}
197
+ strokeWidth={1.5}
188
198
  strokeLinecap="round"
189
199
  strokeLinejoin="round"
190
200
  className={cn("size-4", className)}
191
201
  aria-hidden="true"
192
202
  >
193
203
  {/* First row: two items */}
194
- <rect x="2" y="4" width="8" height="7" rx="1.5" strokeWidth="1.5" />
195
- <rect x="12" y="4" width="8" height="7" rx="1.5" strokeWidth="1.5" />
196
- {/* Second row: one item (wrap) */}
197
- <rect x="2" y="13" width="8" height="7" rx="1.5" strokeWidth="1.5" />
198
- {/* Wrap arrow */}
199
- <polyline points="20,16 20,19 17,19" strokeWidth="1.5" />
204
+ <rect x="2" y="3" width="8" height="7" rx="1.5" strokeWidth={1.5} />
205
+ <rect x="12" y="3" width="8" height="7" rx="1.5" strokeWidth={1.5} />
206
+ {/* Second row: one item (wrapped) */}
207
+ <rect x="2" y="12" width="8" height="7" rx="1.5" strokeWidth={1.5} />
208
+ {/* Wrap return arrow — corner turn from right → down → left */}
209
+ <polyline points="22,7 22,15 18,15" strokeWidth={1.5} />
210
+ <polyline points="20,13 18,15 20,17" strokeWidth={1.5} />
200
211
  </svg>
201
212
  );
202
213
  }
203
214
 
215
+ // Flow grid: 2×2 equal grid of boxes
204
216
  export function IconFlowGrid({ className }: IconProps) {
205
217
  return (
206
218
  <svg
207
219
  viewBox="0 0 24 24"
208
220
  fill="none"
209
221
  stroke="currentColor"
210
- strokeWidth={2}
222
+ strokeWidth={1.5}
211
223
  strokeLinecap="round"
212
224
  strokeLinejoin="round"
213
225
  className={cn("size-4", className)}
214
226
  aria-hidden="true"
215
227
  >
216
228
  {/* Top-left */}
217
- <rect x="2" y="2" width="9" height="9" rx="1.5" strokeWidth="1.5" />
229
+ <rect x="2" y="2" width="9" height="9" rx="1.5" strokeWidth={1.5} />
218
230
  {/* Top-right */}
219
- <rect x="13" y="2" width="9" height="9" rx="1.5" strokeWidth="1.5" />
231
+ <rect x="13" y="2" width="9" height="9" rx="1.5" strokeWidth={1.5} />
220
232
  {/* Bottom-left */}
221
- <rect x="2" y="13" width="9" height="9" rx="1.5" strokeWidth="1.5" />
233
+ <rect x="2" y="13" width="9" height="9" rx="1.5" strokeWidth={1.5} />
222
234
  {/* Bottom-right */}
223
- <rect x="13" y="13" width="9" height="9" rx="1.5" strokeWidth="1.5" />
235
+ <rect x="13" y="13" width="9" height="9" rx="1.5" strokeWidth={1.5} />
224
236
  </svg>
225
237
  );
226
238
  }
227
239
 
240
+ // Distribute horizontal: two vertical rail lines + center item + gap tick marks
228
241
  export function IconDistributeHorizontal({ className }: IconProps) {
229
242
  return (
230
243
  <svg
@@ -241,23 +254,24 @@ export function IconDistributeHorizontal({ className }: IconProps) {
241
254
  <line x1="3" y1="5" x2="3" y2="19" />
242
255
  {/* Right rail */}
243
256
  <line x1="21" y1="5" x2="21" y2="19" />
244
- {/* Center item */}
257
+ {/* Center filled item */}
245
258
  <rect
246
259
  x="9"
247
- y="9"
260
+ y="8"
248
261
  width="6"
249
- height="6"
262
+ height="8"
250
263
  rx="1"
251
264
  fill="currentColor"
252
265
  stroke="none"
253
266
  />
254
- {/* Spacing tick marks */}
255
- <line x1="6" y1="10" x2="6" y2="14" strokeWidth="1.5" />
256
- <line x1="18" y1="10" x2="18" y2="14" strokeWidth="1.5" />
267
+ {/* Gap tick marks — short vertical lines between rail and center */}
268
+ <line x1="6" y1="10" x2="6" y2="14" strokeWidth={1.5} />
269
+ <line x1="18" y1="10" x2="18" y2="14" strokeWidth={1.5} />
257
270
  </svg>
258
271
  );
259
272
  }
260
273
 
274
+ // Distribute vertical: two horizontal rail lines + center item + gap tick marks
261
275
  export function IconDistributeVertical({ className }: IconProps) {
262
276
  return (
263
277
  <svg
@@ -274,23 +288,24 @@ export function IconDistributeVertical({ className }: IconProps) {
274
288
  <line x1="5" y1="3" x2="19" y2="3" />
275
289
  {/* Bottom rail */}
276
290
  <line x1="5" y1="21" x2="19" y2="21" />
277
- {/* Center item */}
291
+ {/* Center filled item */}
278
292
  <rect
279
- x="9"
293
+ x="8"
280
294
  y="9"
281
- width="6"
295
+ width="8"
282
296
  height="6"
283
297
  rx="1"
284
298
  fill="currentColor"
285
299
  stroke="none"
286
300
  />
287
- {/* Spacing tick marks */}
288
- <line x1="10" y1="6" x2="14" y2="6" strokeWidth="1.5" />
289
- <line x1="10" y1="18" x2="14" y2="18" strokeWidth="1.5" />
301
+ {/* Gap tick marks — short horizontal lines between rail and center */}
302
+ <line x1="10" y1="6" x2="14" y2="6" strokeWidth={1.5} />
303
+ <line x1="10" y1="18" x2="14" y2="18" strokeWidth={1.5} />
290
304
  </svg>
291
305
  );
292
306
  }
293
307
 
308
+ // Layout settings / sliders: three horizontal tracks with thumb handles at different x positions
294
309
  export function IconLayoutSettings({ className }: IconProps) {
295
310
  return (
296
311
  <svg
@@ -303,37 +318,41 @@ export function IconLayoutSettings({ className }: IconProps) {
303
318
  className={cn("size-4", className)}
304
319
  aria-hidden="true"
305
320
  >
306
- {/* Line 1 with handle at x=8 */}
321
+ {/* Track 1 */}
307
322
  <line x1="3" y1="7" x2="21" y2="7" />
323
+ {/* Handle 1 at ~x=8 */}
308
324
  <circle
309
325
  cx="8"
310
326
  cy="7"
311
- r="2"
312
- fill="var(--background, white)"
313
- strokeWidth="2"
327
+ r="2.5"
328
+ fill="var(--background, #1e1e1e)"
329
+ strokeWidth={2}
314
330
  />
315
- {/* Line 2 with handle at x=15 */}
331
+ {/* Track 2 */}
316
332
  <line x1="3" y1="12" x2="21" y2="12" />
333
+ {/* Handle 2 at ~x=16 */}
317
334
  <circle
318
- cx="15"
335
+ cx="16"
319
336
  cy="12"
320
- r="2"
321
- fill="var(--background, white)"
322
- strokeWidth="2"
337
+ r="2.5"
338
+ fill="var(--background, #1e1e1e)"
339
+ strokeWidth={2}
323
340
  />
324
- {/* Line 3 with handle at x=10 */}
341
+ {/* Track 3 */}
325
342
  <line x1="3" y1="17" x2="21" y2="17" />
343
+ {/* Handle 3 at ~x=11 */}
326
344
  <circle
327
- cx="10"
345
+ cx="11"
328
346
  cy="17"
329
- r="2"
330
- fill="var(--background, white)"
331
- strokeWidth="2"
347
+ r="2.5"
348
+ fill="var(--background, #1e1e1e)"
349
+ strokeWidth={2}
332
350
  />
333
351
  </svg>
334
352
  );
335
353
  }
336
354
 
355
+ // Resize to fit: four corner L-brackets pointing inward
337
356
  export function IconResizeToFit({ className }: IconProps) {
338
357
  return (
339
358
  <svg
@@ -346,16 +365,377 @@ export function IconResizeToFit({ className }: IconProps) {
346
365
  className={cn("size-4", className)}
347
366
  aria-hidden="true"
348
367
  >
349
- {/* Inner content box */}
350
- <rect x="8" y="8" width="8" height="8" rx="1" strokeWidth="1.5" />
351
- {/* Top-left corner arrows */}
352
- <polyline points="4,8 4,4 8,4" />
353
- {/* Top-right corner arrows */}
354
- <polyline points="16,4 20,4 20,8" />
355
- {/* Bottom-left corner arrows */}
356
- <polyline points="8,20 4,20 4,16" />
357
- {/* Bottom-right corner arrows */}
358
- <polyline points="20,16 20,20 16,20" />
368
+ {/* Top-left corner: L pointing inward (→ and ↓) */}
369
+ <polyline points="9,4 4,4 4,9" />
370
+ {/* Top-right corner */}
371
+ <polyline points="15,4 20,4 20,9" />
372
+ {/* Bottom-left corner */}
373
+ <polyline points="4,15 4,20 9,20" />
374
+ {/* Bottom-right corner */}
375
+ <polyline points="20,15 20,20 15,20" />
376
+ </svg>
377
+ );
378
+ }
379
+
380
+ // Auto-layout toggle "on" — rounded rectangle with two small boxes arranged in a row inside
381
+ // Matches Figma's blue auto-layout indicator glyph
382
+ export function IconAutoLayoutOn({ className }: IconProps) {
383
+ return (
384
+ <svg
385
+ viewBox="0 0 24 24"
386
+ fill="none"
387
+ stroke="currentColor"
388
+ strokeWidth={1.5}
389
+ strokeLinecap="round"
390
+ strokeLinejoin="round"
391
+ className={cn("size-4", className)}
392
+ aria-hidden="true"
393
+ >
394
+ {/* Outer rounded frame */}
395
+ <rect x="2" y="5" width="20" height="14" rx="3" strokeWidth={1.5} />
396
+ {/* Left inner item */}
397
+ <rect
398
+ x="5"
399
+ y="8"
400
+ width="5"
401
+ height="8"
402
+ rx="1"
403
+ fill="currentColor"
404
+ stroke="none"
405
+ />
406
+ {/* Right inner item */}
407
+ <rect
408
+ x="12"
409
+ y="8"
410
+ width="7"
411
+ height="8"
412
+ rx="1"
413
+ fill="currentColor"
414
+ stroke="none"
415
+ />
416
+ </svg>
417
+ );
418
+ }
419
+
420
+ // Paint type: solid fill swatch (filled square)
421
+ export function IconPaintSolid({ className }: IconProps) {
422
+ return (
423
+ <svg
424
+ viewBox="0 0 24 24"
425
+ fill="none"
426
+ stroke="currentColor"
427
+ strokeWidth={1.5}
428
+ strokeLinecap="round"
429
+ strokeLinejoin="round"
430
+ className={cn("size-4", className)}
431
+ aria-hidden="true"
432
+ >
433
+ <rect
434
+ x="3"
435
+ y="3"
436
+ width="18"
437
+ height="18"
438
+ rx="2.5"
439
+ fill="currentColor"
440
+ stroke="none"
441
+ />
442
+ </svg>
443
+ );
444
+ }
445
+
446
+ // Paint type: linear gradient (left-dark to right-light)
447
+ export function IconPaintLinear({ className }: IconProps) {
448
+ return (
449
+ <svg
450
+ viewBox="0 0 24 24"
451
+ fill="none"
452
+ stroke="currentColor"
453
+ strokeWidth={1.5}
454
+ strokeLinecap="round"
455
+ strokeLinejoin="round"
456
+ className={cn("size-4", className)}
457
+ aria-hidden="true"
458
+ >
459
+ <defs>
460
+ <linearGradient id="lg-icon-grad" x1="0" y1="0" x2="1" y2="0">
461
+ <stop offset="0%" stopColor="currentColor" stopOpacity="1" />
462
+ <stop offset="100%" stopColor="currentColor" stopOpacity="0" />
463
+ </linearGradient>
464
+ </defs>
465
+ <rect
466
+ x="3"
467
+ y="3"
468
+ width="18"
469
+ height="18"
470
+ rx="2.5"
471
+ fill="url(#lg-icon-grad)"
472
+ strokeWidth={1.5}
473
+ />
474
+ </svg>
475
+ );
476
+ }
477
+
478
+ // Paint type: image fill (picture frame with mountain/sun)
479
+ export function IconPaintImage({ className }: IconProps) {
480
+ return (
481
+ <svg
482
+ viewBox="0 0 24 24"
483
+ fill="none"
484
+ stroke="currentColor"
485
+ strokeWidth={1.5}
486
+ strokeLinecap="round"
487
+ strokeLinejoin="round"
488
+ className={cn("size-4", className)}
489
+ aria-hidden="true"
490
+ >
491
+ {/* Frame */}
492
+ <rect x="3" y="3" width="18" height="18" rx="2.5" strokeWidth={1.5} />
493
+ {/* Mountain silhouette */}
494
+ <polyline points="3,17 8,12 12,15 16,10 21,17" strokeWidth={1.5} />
495
+ {/* Sun dot */}
496
+ <circle cx="17" cy="8" r="2" fill="currentColor" stroke="none" />
497
+ </svg>
498
+ );
499
+ }
500
+
501
+ // Paint type: none / no fill (square with diagonal slash)
502
+ export function IconPaintNone({ className }: IconProps) {
503
+ return (
504
+ <svg
505
+ viewBox="0 0 24 24"
506
+ fill="none"
507
+ stroke="currentColor"
508
+ strokeWidth={1.5}
509
+ strokeLinecap="round"
510
+ strokeLinejoin="round"
511
+ className={cn("size-4", className)}
512
+ aria-hidden="true"
513
+ >
514
+ {/* Square frame */}
515
+ <rect x="3" y="3" width="18" height="18" rx="2.5" strokeWidth={1.5} />
516
+ {/* Diagonal slash */}
517
+ <line x1="5" y1="19" x2="19" y2="5" strokeWidth={1.5} />
518
+ </svg>
519
+ );
520
+ }
521
+
522
+ // Align left — lines left-aligned against a left rail
523
+ export function IconAlignLeft({ className }: IconProps) {
524
+ return (
525
+ <svg
526
+ viewBox="0 0 24 24"
527
+ fill="none"
528
+ stroke="currentColor"
529
+ strokeWidth={2}
530
+ strokeLinecap="round"
531
+ strokeLinejoin="round"
532
+ className={cn("size-4", className)}
533
+ aria-hidden="true"
534
+ >
535
+ <line x1="3" y1="4" x2="3" y2="20" />
536
+ <line x1="6" y1="8" x2="18" y2="8" />
537
+ <line x1="6" y1="12" x2="14" y2="12" />
538
+ <line x1="6" y1="16" x2="16" y2="16" />
539
+ </svg>
540
+ );
541
+ }
542
+
543
+ // Align center horizontal
544
+ export function IconAlignCenterH({ className }: IconProps) {
545
+ return (
546
+ <svg
547
+ viewBox="0 0 24 24"
548
+ fill="none"
549
+ stroke="currentColor"
550
+ strokeWidth={2}
551
+ strokeLinecap="round"
552
+ strokeLinejoin="round"
553
+ className={cn("size-4", className)}
554
+ aria-hidden="true"
555
+ >
556
+ <line x1="12" y1="4" x2="12" y2="20" />
557
+ <line x1="5" y1="8" x2="19" y2="8" />
558
+ <line x1="7" y1="12" x2="17" y2="12" />
559
+ <line x1="6" y1="16" x2="18" y2="16" />
560
+ </svg>
561
+ );
562
+ }
563
+
564
+ // Align right
565
+ export function IconAlignRight({ className }: IconProps) {
566
+ return (
567
+ <svg
568
+ viewBox="0 0 24 24"
569
+ fill="none"
570
+ stroke="currentColor"
571
+ strokeWidth={2}
572
+ strokeLinecap="round"
573
+ strokeLinejoin="round"
574
+ className={cn("size-4", className)}
575
+ aria-hidden="true"
576
+ >
577
+ <line x1="21" y1="4" x2="21" y2="20" />
578
+ <line x1="6" y1="8" x2="18" y2="8" />
579
+ <line x1="10" y1="12" x2="18" y2="12" />
580
+ <line x1="8" y1="16" x2="18" y2="16" />
581
+ </svg>
582
+ );
583
+ }
584
+
585
+ // ─────────────────────────────────────────────────
586
+ // W/H sizing-menu glyphs (Figma resizing dropdown rows)
587
+ // ─────────────────────────────────────────────────
588
+
589
+ // Sizing: Fixed — a bar bounded by two end-stops (⊢ / fixed dimension)
590
+ export function IconSizingFixed({ className }: IconProps) {
591
+ return (
592
+ <svg
593
+ viewBox="0 0 24 24"
594
+ fill="none"
595
+ stroke="currentColor"
596
+ strokeWidth={1.6}
597
+ strokeLinecap="round"
598
+ strokeLinejoin="round"
599
+ className={cn("size-3.5", className)}
600
+ aria-hidden="true"
601
+ >
602
+ {/* Left end-stop */}
603
+ <line x1="5" y1="6" x2="5" y2="18" />
604
+ {/* Right end-stop */}
605
+ <line x1="19" y1="6" x2="19" y2="18" />
606
+ {/* Fixed span */}
607
+ <line x1="5" y1="12" x2="19" y2="12" />
608
+ </svg>
609
+ );
610
+ }
611
+
612
+ // Sizing: Hug contents — two arrows pointing inward toward content (>< )
613
+ export function IconSizingHug({ className }: IconProps) {
614
+ return (
615
+ <svg
616
+ viewBox="0 0 24 24"
617
+ fill="none"
618
+ stroke="currentColor"
619
+ strokeWidth={1.6}
620
+ strokeLinecap="round"
621
+ strokeLinejoin="round"
622
+ className={cn("size-3.5", className)}
623
+ aria-hidden="true"
624
+ >
625
+ {/* Left inward chevron > */}
626
+ <polyline points="5,7 10,12 5,17" />
627
+ {/* Right inward chevron < */}
628
+ <polyline points="19,7 14,12 19,17" />
629
+ </svg>
630
+ );
631
+ }
632
+
633
+ // Sizing: Fill container — two arrows pushing outward to the walls (↔)
634
+ export function IconSizingFill({ className }: IconProps) {
635
+ return (
636
+ <svg
637
+ viewBox="0 0 24 24"
638
+ fill="none"
639
+ stroke="currentColor"
640
+ strokeWidth={1.6}
641
+ strokeLinecap="round"
642
+ strokeLinejoin="round"
643
+ className={cn("size-3.5", className)}
644
+ aria-hidden="true"
645
+ >
646
+ {/* Left wall */}
647
+ <line x1="4" y1="6" x2="4" y2="18" />
648
+ {/* Right wall */}
649
+ <line x1="20" y1="6" x2="20" y2="18" />
650
+ {/* Outward double arrow */}
651
+ <line x1="8" y1="12" x2="16" y2="12" />
652
+ <polyline points="11,9 8,12 11,15" />
653
+ <polyline points="13,9 16,12 13,15" />
654
+ </svg>
655
+ );
656
+ }
657
+
658
+ // Sizing: Add min width — wall + arrow pushing toward a lower bound (→|←)
659
+ export function IconSizingMin({ className }: IconProps) {
660
+ return (
661
+ <svg
662
+ viewBox="0 0 24 24"
663
+ fill="none"
664
+ stroke="currentColor"
665
+ strokeWidth={1.6}
666
+ strokeLinecap="round"
667
+ strokeLinejoin="round"
668
+ className={cn("size-3.5", className)}
669
+ aria-hidden="true"
670
+ >
671
+ {/* Center constraint bar */}
672
+ <line x1="12" y1="5" x2="12" y2="19" />
673
+ {/* Arrows converging on the bar */}
674
+ <line x1="4" y1="12" x2="11" y2="12" />
675
+ <polyline points="8,9 11,12 8,15" />
676
+ <line x1="20" y1="12" x2="13" y2="12" />
677
+ <polyline points="16,9 13,12 16,15" />
678
+ </svg>
679
+ );
680
+ }
681
+
682
+ // Sizing: Add max width — bar + arrows pushing outward to an upper bound (|↔)
683
+ export function IconSizingMax({ className }: IconProps) {
684
+ return (
685
+ <svg
686
+ viewBox="0 0 24 24"
687
+ fill="none"
688
+ stroke="currentColor"
689
+ strokeWidth={1.6}
690
+ strokeLinecap="round"
691
+ strokeLinejoin="round"
692
+ className={cn("size-3.5", className)}
693
+ aria-hidden="true"
694
+ >
695
+ {/* Center bar */}
696
+ <line x1="12" y1="5" x2="12" y2="19" />
697
+ {/* Arrows diverging from the bar */}
698
+ <line x1="13" y1="12" x2="20" y2="12" />
699
+ <polyline points="17,9 20,12 17,15" />
700
+ <line x1="11" y1="12" x2="4" y2="12" />
701
+ <polyline points="7,9 4,12 7,15" />
702
+ </svg>
703
+ );
704
+ }
705
+
706
+ // Sizing: Apply variable — hexagon token (⬡)
707
+ export function IconSizingVariable({ className }: IconProps) {
708
+ return (
709
+ <svg
710
+ viewBox="0 0 24 24"
711
+ fill="none"
712
+ stroke="currentColor"
713
+ strokeWidth={1.6}
714
+ strokeLinecap="round"
715
+ strokeLinejoin="round"
716
+ className={cn("size-3.5", className)}
717
+ aria-hidden="true"
718
+ >
719
+ <polygon points="12,3 20,7.5 20,16.5 12,21 4,16.5 4,7.5" />
720
+ </svg>
721
+ );
722
+ }
723
+
724
+ // Small remove / clear glyph for min-max sub-rows (×)
725
+ export function IconSizingRemove({ className }: IconProps) {
726
+ return (
727
+ <svg
728
+ viewBox="0 0 24 24"
729
+ fill="none"
730
+ stroke="currentColor"
731
+ strokeWidth={1.8}
732
+ strokeLinecap="round"
733
+ strokeLinejoin="round"
734
+ className={cn("size-3", className)}
735
+ aria-hidden="true"
736
+ >
737
+ <line x1="6" y1="6" x2="18" y2="18" />
738
+ <line x1="18" y1="6" x2="6" y2="18" />
359
739
  </svg>
360
740
  );
361
741
  }