@once-ui-system/core 1.7.11 → 1.7.13

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 (392) hide show
  1. package/AGENTS.md +53 -0
  2. package/README.md +27 -0
  3. package/agent/once-ui-codegen.mdc +27 -0
  4. package/ai/catalog.json +1650 -0
  5. package/ai/catalog.seed.json +411 -0
  6. package/ai/components/Accordion.json +136 -0
  7. package/ai/components/AccordionGroup.json +128 -0
  8. package/ai/components/Animation.json +146 -0
  9. package/ai/components/Arrow.json +128 -0
  10. package/ai/components/AutoScroll.json +130 -0
  11. package/ai/components/Avatar.json +133 -0
  12. package/ai/components/AvatarGroup.json +129 -0
  13. package/ai/components/Background.json +131 -0
  14. package/ai/components/Badge.json +132 -0
  15. package/ai/components/Banner.json +122 -0
  16. package/ai/components/BarChart.json +123 -0
  17. package/ai/components/BlobFx.json +125 -0
  18. package/ai/components/BlockQuote.json +132 -0
  19. package/ai/components/Button.json +26 -0
  20. package/ai/components/Card.json +129 -0
  21. package/ai/components/Carousel.json +134 -0
  22. package/ai/components/CelebrationFx.json +132 -0
  23. package/ai/components/ChartHeader.json +130 -0
  24. package/ai/components/ChartStatus.json +12 -0
  25. package/ai/components/Checkbox.json +13 -0
  26. package/ai/components/Chip.json +132 -0
  27. package/ai/components/CodeBlock.json +122 -0
  28. package/ai/components/ColorInput.json +13 -0
  29. package/ai/components/Column.json +128 -0
  30. package/ai/components/CompareImage.json +126 -0
  31. package/ai/components/ContextMenu.json +22 -0
  32. package/ai/components/CountFx.json +82 -0
  33. package/ai/components/CountdownFx.json +11 -0
  34. package/ai/components/Cursor.json +9 -0
  35. package/ai/components/CursorCard.json +128 -0
  36. package/ai/components/DataTooltip.json +15 -0
  37. package/ai/components/DateInput.json +21 -0
  38. package/ai/components/DatePicker.json +143 -0
  39. package/ai/components/DateRangeInput.json +18 -0
  40. package/ai/components/DateRangePicker.json +129 -0
  41. package/ai/components/Dialog.json +134 -0
  42. package/ai/components/DialogProvider.json +8 -0
  43. package/ai/components/Dropdown.json +128 -0
  44. package/ai/components/DropdownWrapper.json +28 -0
  45. package/ai/components/EmojiPicker.json +129 -0
  46. package/ai/components/EmojiPickerDropdown.json +13 -0
  47. package/ai/components/Fade.json +130 -0
  48. package/ai/components/FadingLettersFx.json +77 -0
  49. package/ai/components/Feedback.json +132 -0
  50. package/ai/components/Flex.json +125 -0
  51. package/ai/components/FlipFx.json +133 -0
  52. package/ai/components/GlitchFx.json +128 -0
  53. package/ai/components/Grid.json +121 -0
  54. package/ai/components/Heading.json +75 -0
  55. package/ai/components/HeadingLink.json +127 -0
  56. package/ai/components/HeadingNav.json +124 -0
  57. package/ai/components/HoloFx.json +128 -0
  58. package/ai/components/Hover.json +130 -0
  59. package/ai/components/HoverCard.json +122 -0
  60. package/ai/components/Icon.json +132 -0
  61. package/ai/components/IconButton.json +22 -0
  62. package/ai/components/InfiniteScroll.json +130 -0
  63. package/ai/components/InlineCode.json +126 -0
  64. package/ai/components/Input.json +24 -0
  65. package/ai/components/InteractiveDetails.json +14 -0
  66. package/ai/components/Kbar.json +10 -0
  67. package/ai/components/Kbd.json +127 -0
  68. package/ai/components/Legend.json +14 -0
  69. package/ai/components/LetterFx.json +14 -0
  70. package/ai/components/Line.json +125 -0
  71. package/ai/components/LineBarChart.json +123 -0
  72. package/ai/components/LineChart.json +123 -0
  73. package/ai/components/LinearGauge.json +130 -0
  74. package/ai/components/LinearGradient.json +15 -0
  75. package/ai/components/List.json +127 -0
  76. package/ai/components/ListItem.json +77 -0
  77. package/ai/components/Logo.json +16 -0
  78. package/ai/components/LogoCloud.json +124 -0
  79. package/ai/components/Mask.json +131 -0
  80. package/ai/components/MasonryGrid.json +132 -0
  81. package/ai/components/MatrixFx.json +135 -0
  82. package/ai/components/Media.json +142 -0
  83. package/ai/components/MediaUpload.json +122 -0
  84. package/ai/components/MegaMenu.json +125 -0
  85. package/ai/components/MobileMegaMenu.json +125 -0
  86. package/ai/components/Modal.json +12 -0
  87. package/ai/components/NavIcon.json +127 -0
  88. package/ai/components/NumberInput.json +16 -0
  89. package/ai/components/OTPInput.json +13 -0
  90. package/ai/components/OgCard.json +135 -0
  91. package/ai/components/Option.json +137 -0
  92. package/ai/components/Particle.json +135 -0
  93. package/ai/components/PasswordInput.json +8 -0
  94. package/ai/components/PieChart.json +123 -0
  95. package/ai/components/ProgressBar.json +131 -0
  96. package/ai/components/Pulse.json +129 -0
  97. package/ai/components/RadialGauge.json +134 -0
  98. package/ai/components/RadialGradient.json +16 -0
  99. package/ai/components/RadioButton.json +17 -0
  100. package/ai/components/RevealFx.json +131 -0
  101. package/ai/components/Row.json +128 -0
  102. package/ai/components/Schema.json +17 -0
  103. package/ai/components/ScrollContainer.json +126 -0
  104. package/ai/components/ScrollToTop.json +124 -0
  105. package/ai/components/Scroller.json +128 -0
  106. package/ai/components/SegmentedControl.json +132 -0
  107. package/ai/components/Select.json +21 -0
  108. package/ai/components/ShineFx.json +80 -0
  109. package/ai/components/Skeleton.json +129 -0
  110. package/ai/components/Slider.json +17 -0
  111. package/ai/components/SmartLink.json +17 -0
  112. package/ai/components/Spinner.json +127 -0
  113. package/ai/components/SplitView.json +129 -0
  114. package/ai/components/StatusIndicator.json +128 -0
  115. package/ai/components/StyleOverlay.json +126 -0
  116. package/ai/components/StylePanel.json +125 -0
  117. package/ai/components/Swiper.json +130 -0
  118. package/ai/components/Switch.json +20 -0
  119. package/ai/components/Table.json +140 -0
  120. package/ai/components/Tag.json +129 -0
  121. package/ai/components/TagInput.json +12 -0
  122. package/ai/components/Text.json +72 -0
  123. package/ai/components/Textarea.json +24 -0
  124. package/ai/components/ThemeSwitcher.json +122 -0
  125. package/ai/components/TiltFx.json +126 -0
  126. package/ai/components/Timeline.json +126 -0
  127. package/ai/components/Toast.json +13 -0
  128. package/ai/components/Toaster.json +14 -0
  129. package/ai/components/ToggleButton.json +24 -0
  130. package/ai/components/Tooltip.json +129 -0
  131. package/ai/components/TypeFx.json +15 -0
  132. package/ai/components/User.json +15 -0
  133. package/ai/components/UserMenu.json +16 -0
  134. package/ai/components/WeatherFx.json +133 -0
  135. package/ai/examples/auth.tsx +105 -0
  136. package/ai/examples/blocks/Background6.tsx +25 -0
  137. package/ai/examples/blocks/Chat1.tsx +70 -0
  138. package/ai/examples/blocks/Dashboard1.tsx +404 -0
  139. package/ai/examples/blocks/Feed3.tsx +151 -0
  140. package/ai/examples/blocks/Footer1.tsx +30 -0
  141. package/ai/examples/blocks/Footer2.tsx +96 -0
  142. package/ai/examples/blocks/Footer3.tsx +127 -0
  143. package/ai/examples/blocks/Footer4.tsx +406 -0
  144. package/ai/examples/blocks/Header1.tsx +370 -0
  145. package/ai/examples/blocks/Header2.tsx +98 -0
  146. package/ai/examples/blocks/Header3.tsx +133 -0
  147. package/ai/examples/blocks/Header4.tsx +123 -0
  148. package/ai/examples/blocks/Productivity1.tsx +318 -0
  149. package/ai/examples/blocks/Roadmap1.tsx +133 -0
  150. package/ai/examples/blocks/Sidebar1.tsx +34 -0
  151. package/ai/examples/blocks/Sidebar2.tsx +17 -0
  152. package/ai/examples/blocks/Sidebar4.tsx +92 -0
  153. package/ai/examples/blocks/Sidebar5.tsx +73 -0
  154. package/ai/examples/blocks/Streaming1.tsx +353 -0
  155. package/ai/examples/blocks/Table1.tsx +303 -0
  156. package/ai/examples/blocks/Waitlist1.tsx +141 -0
  157. package/ai/examples/blocks/content/chat1content.ts +65 -0
  158. package/ai/examples/blocks/content/resources.ts +5 -0
  159. package/ai/examples/blocks/content/roadmap1content.ts +51 -0
  160. package/ai/examples/blocks/manifest.json +191 -0
  161. package/ai/examples/dashboard.tsx +150 -0
  162. package/ai/examples/marketing-hero.tsx +152 -0
  163. package/ai/examples/pricing.tsx +219 -0
  164. package/ai/examples/settings.tsx +140 -0
  165. package/ai/gotchas.json +85 -0
  166. package/ai/manifest.json +21 -0
  167. package/ai/rules.compact.md +73 -0
  168. package/ai/spec.json +2694 -2701
  169. package/ai/tasks/auth.json +23 -0
  170. package/ai/tasks/chat.json +28 -0
  171. package/ai/tasks/dashboard.json +39 -0
  172. package/ai/tasks/index.json +12 -0
  173. package/ai/tasks/marketing-hero.json +38 -0
  174. package/ai/tasks/pricing.json +42 -0
  175. package/ai/tasks/roadmap.json +22 -0
  176. package/ai/tasks/settings.json +34 -0
  177. package/dist/AGENTS.md +53 -0
  178. package/dist/README.md +27 -0
  179. package/dist/agent/once-ui-codegen.mdc +27 -0
  180. package/dist/ai/catalog.json +1650 -0
  181. package/dist/ai/catalog.seed.json +411 -0
  182. package/dist/ai/components/Accordion.json +136 -0
  183. package/dist/ai/components/AccordionGroup.json +128 -0
  184. package/dist/ai/components/Animation.json +146 -0
  185. package/dist/ai/components/Arrow.json +128 -0
  186. package/dist/ai/components/AutoScroll.json +130 -0
  187. package/dist/ai/components/Avatar.json +133 -0
  188. package/dist/ai/components/AvatarGroup.json +129 -0
  189. package/dist/ai/components/Background.json +131 -0
  190. package/dist/ai/components/Badge.json +132 -0
  191. package/dist/ai/components/Banner.json +122 -0
  192. package/dist/ai/components/BarChart.json +123 -0
  193. package/dist/ai/components/BlobFx.json +125 -0
  194. package/dist/ai/components/BlockQuote.json +132 -0
  195. package/dist/ai/components/Button.json +26 -0
  196. package/dist/ai/components/Card.json +129 -0
  197. package/dist/ai/components/Carousel.json +134 -0
  198. package/dist/ai/components/CelebrationFx.json +132 -0
  199. package/dist/ai/components/ChartHeader.json +130 -0
  200. package/dist/ai/components/ChartStatus.json +12 -0
  201. package/dist/ai/components/Checkbox.json +13 -0
  202. package/dist/ai/components/Chip.json +132 -0
  203. package/dist/ai/components/CodeBlock.json +122 -0
  204. package/dist/ai/components/ColorInput.json +13 -0
  205. package/dist/ai/components/Column.json +128 -0
  206. package/dist/ai/components/CompareImage.json +126 -0
  207. package/dist/ai/components/ContextMenu.json +22 -0
  208. package/dist/ai/components/CountFx.json +82 -0
  209. package/dist/ai/components/CountdownFx.json +11 -0
  210. package/dist/ai/components/Cursor.json +9 -0
  211. package/dist/ai/components/CursorCard.json +128 -0
  212. package/dist/ai/components/DataTooltip.json +15 -0
  213. package/dist/ai/components/DateInput.json +21 -0
  214. package/dist/ai/components/DatePicker.json +143 -0
  215. package/dist/ai/components/DateRangeInput.json +18 -0
  216. package/dist/ai/components/DateRangePicker.json +129 -0
  217. package/dist/ai/components/Dialog.json +134 -0
  218. package/dist/ai/components/DialogProvider.json +8 -0
  219. package/dist/ai/components/Dropdown.json +128 -0
  220. package/dist/ai/components/DropdownWrapper.json +28 -0
  221. package/dist/ai/components/EmojiPicker.json +129 -0
  222. package/dist/ai/components/EmojiPickerDropdown.json +13 -0
  223. package/dist/ai/components/Fade.json +130 -0
  224. package/dist/ai/components/FadingLettersFx.json +77 -0
  225. package/dist/ai/components/Feedback.json +132 -0
  226. package/dist/ai/components/Flex.json +125 -0
  227. package/dist/ai/components/FlipFx.json +133 -0
  228. package/dist/ai/components/GlitchFx.json +128 -0
  229. package/dist/ai/components/Grid.json +121 -0
  230. package/dist/ai/components/Heading.json +75 -0
  231. package/dist/ai/components/HeadingLink.json +127 -0
  232. package/dist/ai/components/HeadingNav.json +124 -0
  233. package/dist/ai/components/HoloFx.json +128 -0
  234. package/dist/ai/components/Hover.json +130 -0
  235. package/dist/ai/components/HoverCard.json +122 -0
  236. package/dist/ai/components/Icon.json +132 -0
  237. package/dist/ai/components/IconButton.json +22 -0
  238. package/dist/ai/components/InfiniteScroll.json +130 -0
  239. package/dist/ai/components/InlineCode.json +126 -0
  240. package/dist/ai/components/Input.json +24 -0
  241. package/dist/ai/components/InteractiveDetails.json +14 -0
  242. package/dist/ai/components/Kbar.json +10 -0
  243. package/dist/ai/components/Kbd.json +127 -0
  244. package/dist/ai/components/Legend.json +14 -0
  245. package/dist/ai/components/LetterFx.json +14 -0
  246. package/dist/ai/components/Line.json +125 -0
  247. package/dist/ai/components/LineBarChart.json +123 -0
  248. package/dist/ai/components/LineChart.json +123 -0
  249. package/dist/ai/components/LinearGauge.json +130 -0
  250. package/dist/ai/components/LinearGradient.json +15 -0
  251. package/dist/ai/components/List.json +127 -0
  252. package/dist/ai/components/ListItem.json +77 -0
  253. package/dist/ai/components/Logo.json +16 -0
  254. package/dist/ai/components/LogoCloud.json +124 -0
  255. package/dist/ai/components/Mask.json +131 -0
  256. package/dist/ai/components/MasonryGrid.json +132 -0
  257. package/dist/ai/components/MatrixFx.json +135 -0
  258. package/dist/ai/components/Media.json +142 -0
  259. package/dist/ai/components/MediaUpload.json +122 -0
  260. package/dist/ai/components/MegaMenu.json +125 -0
  261. package/dist/ai/components/MobileMegaMenu.json +125 -0
  262. package/dist/ai/components/Modal.json +12 -0
  263. package/dist/ai/components/NavIcon.json +127 -0
  264. package/dist/ai/components/NumberInput.json +16 -0
  265. package/dist/ai/components/OTPInput.json +13 -0
  266. package/dist/ai/components/OgCard.json +135 -0
  267. package/dist/ai/components/Option.json +137 -0
  268. package/dist/ai/components/Particle.json +135 -0
  269. package/dist/ai/components/PasswordInput.json +8 -0
  270. package/dist/ai/components/PieChart.json +123 -0
  271. package/dist/ai/components/ProgressBar.json +131 -0
  272. package/dist/ai/components/Pulse.json +129 -0
  273. package/dist/ai/components/RadialGauge.json +134 -0
  274. package/dist/ai/components/RadialGradient.json +16 -0
  275. package/dist/ai/components/RadioButton.json +17 -0
  276. package/dist/ai/components/RevealFx.json +131 -0
  277. package/dist/ai/components/Row.json +128 -0
  278. package/dist/ai/components/Schema.json +17 -0
  279. package/dist/ai/components/ScrollContainer.json +126 -0
  280. package/dist/ai/components/ScrollToTop.json +124 -0
  281. package/dist/ai/components/Scroller.json +128 -0
  282. package/dist/ai/components/SegmentedControl.json +132 -0
  283. package/dist/ai/components/Select.json +21 -0
  284. package/dist/ai/components/ShineFx.json +80 -0
  285. package/dist/ai/components/Skeleton.json +129 -0
  286. package/dist/ai/components/Slider.json +17 -0
  287. package/dist/ai/components/SmartLink.json +17 -0
  288. package/dist/ai/components/Spinner.json +127 -0
  289. package/dist/ai/components/SplitView.json +129 -0
  290. package/dist/ai/components/StatusIndicator.json +128 -0
  291. package/dist/ai/components/StyleOverlay.json +126 -0
  292. package/dist/ai/components/StylePanel.json +125 -0
  293. package/dist/ai/components/Swiper.json +130 -0
  294. package/dist/ai/components/Switch.json +20 -0
  295. package/dist/ai/components/Table.json +140 -0
  296. package/dist/ai/components/Tag.json +129 -0
  297. package/dist/ai/components/TagInput.json +12 -0
  298. package/dist/ai/components/Text.json +72 -0
  299. package/dist/ai/components/Textarea.json +24 -0
  300. package/dist/ai/components/ThemeSwitcher.json +122 -0
  301. package/dist/ai/components/TiltFx.json +126 -0
  302. package/dist/ai/components/Timeline.json +126 -0
  303. package/dist/ai/components/Toast.json +13 -0
  304. package/dist/ai/components/Toaster.json +14 -0
  305. package/dist/ai/components/ToggleButton.json +24 -0
  306. package/dist/ai/components/Tooltip.json +129 -0
  307. package/dist/ai/components/TypeFx.json +15 -0
  308. package/dist/ai/components/User.json +15 -0
  309. package/dist/ai/components/UserMenu.json +16 -0
  310. package/dist/ai/components/WeatherFx.json +133 -0
  311. package/dist/ai/eval-tasks.md +71 -0
  312. package/dist/ai/examples/blocks/manifest.json +191 -0
  313. package/dist/ai/gotchas.json +85 -0
  314. package/dist/ai/manifest.json +21 -0
  315. package/dist/ai/recipes.md +149 -0
  316. package/dist/ai/rules.compact.md +73 -0
  317. package/dist/ai/rules.md +217 -0
  318. package/dist/ai/spec.json +2695 -0
  319. package/dist/ai/tasks/auth.json +23 -0
  320. package/dist/ai/tasks/chat.json +28 -0
  321. package/dist/ai/tasks/dashboard.json +39 -0
  322. package/dist/ai/tasks/index.json +12 -0
  323. package/dist/ai/tasks/marketing-hero.json +38 -0
  324. package/dist/ai/tasks/pricing.json +42 -0
  325. package/dist/ai/tasks/roadmap.json +22 -0
  326. package/dist/ai/tasks/settings.json +34 -0
  327. package/dist/components/ContextMenu.d.ts +2 -2
  328. package/dist/components/ContextMenu.d.ts.map +1 -1
  329. package/dist/components/ContextMenu.js +3 -3
  330. package/dist/components/ContextMenu.js.map +1 -1
  331. package/dist/components/ElementType.d.ts.map +1 -1
  332. package/dist/components/ElementType.js +6 -4
  333. package/dist/components/ElementType.js.map +1 -1
  334. package/dist/components/Media.d.ts.map +1 -1
  335. package/dist/components/Media.js +6 -3
  336. package/dist/components/Media.js.map +1 -1
  337. package/dist/components/MediaVideoPlayer.d.ts +12 -0
  338. package/dist/components/MediaVideoPlayer.d.ts.map +1 -0
  339. package/dist/components/MediaVideoPlayer.js +246 -0
  340. package/dist/components/MediaVideoPlayer.js.map +1 -0
  341. package/dist/components/MediaVideoPlayer.module.scss +90 -0
  342. package/dist/components/Table.d.ts +34 -6
  343. package/dist/components/Table.d.ts.map +1 -1
  344. package/dist/components/Table.js +114 -30
  345. package/dist/components/Table.js.map +1 -1
  346. package/dist/components/Table.module.scss +174 -3
  347. package/dist/components/ThemeInit.d.ts.map +1 -1
  348. package/dist/components/ThemeInit.js +2 -1
  349. package/dist/components/ThemeInit.js.map +1 -1
  350. package/dist/components/Timeline.d.ts +1 -1
  351. package/dist/components/Timeline.d.ts.map +1 -1
  352. package/dist/components/Timeline.js +16 -52
  353. package/dist/components/Timeline.js.map +1 -1
  354. package/dist/data/emoji-data.json +0 -10
  355. package/dist/icons.d.ts.map +1 -1
  356. package/dist/icons.js +7 -2
  357. package/dist/icons.js.map +1 -1
  358. package/dist/index.d.ts +0 -1
  359. package/dist/index.d.ts.map +1 -1
  360. package/dist/index.js +0 -1
  361. package/dist/index.js.map +1 -1
  362. package/dist/modules/code/CodeBlock.impl.d.ts.map +1 -1
  363. package/dist/modules/code/CodeBlock.impl.js +11 -5
  364. package/dist/modules/code/CodeBlock.impl.js.map +1 -1
  365. package/dist/modules/seo/Schema.d.ts.map +1 -1
  366. package/dist/modules/seo/Schema.js +3 -4
  367. package/dist/modules/seo/Schema.js.map +1 -1
  368. package/dist/package.json +33 -3
  369. package/dist/server/og-url-validation.d.ts +10 -0
  370. package/dist/server/og-url-validation.d.ts.map +1 -0
  371. package/dist/server/og-url-validation.js +234 -0
  372. package/dist/server/og-url-validation.js.map +1 -0
  373. package/dist/server/og-utils.d.ts +5 -2
  374. package/dist/server/og-utils.d.ts.map +1 -1
  375. package/dist/server/og-utils.js +39 -14
  376. package/dist/server/og-utils.js.map +1 -1
  377. package/dist/utils/index.d.ts +1 -0
  378. package/dist/utils/index.d.ts.map +1 -1
  379. package/dist/utils/index.js +1 -0
  380. package/dist/utils/index.js.map +1 -1
  381. package/dist/utils/safe-html.d.ts +19 -0
  382. package/dist/utils/safe-html.d.ts.map +1 -0
  383. package/dist/utils/safe-html.js +43 -0
  384. package/dist/utils/safe-html.js.map +1 -0
  385. package/package.json +159 -127
  386. package/scripts/copy-files.js +103 -0
  387. package/scripts/generate-ai-spec.js +464 -0
  388. package/scripts/generate-emoji-data.js +128 -0
  389. package/scripts/init-agent.js +156 -0
  390. package/scripts/validate-ai-code.js +149 -0
  391. package/LICENSE.md +0 -21
  392. package/next-env.d.ts +0 -5
@@ -0,0 +1,1650 @@
1
+ {
2
+ "version": "1.7.13",
3
+ "generated": "2026-07-24",
4
+ "components": {
5
+ "Accordion": {
6
+ "group": "components",
7
+ "extends": [
8
+ "Flex"
9
+ ],
10
+ "purpose": "Accordion component",
11
+ "tags": [
12
+ "components"
13
+ ]
14
+ },
15
+ "AccordionGroup": {
16
+ "group": "components",
17
+ "extends": [
18
+ "Flex"
19
+ ],
20
+ "purpose": "Expandable FAQ / disclosure sections",
21
+ "tags": [
22
+ "content",
23
+ "marketing"
24
+ ],
25
+ "pairsWith": [
26
+ "Column",
27
+ "Text",
28
+ "Heading"
29
+ ]
30
+ },
31
+ "Animation": {
32
+ "group": "components",
33
+ "extends": [
34
+ "Flex"
35
+ ],
36
+ "purpose": "Animation component",
37
+ "tags": [
38
+ "components"
39
+ ]
40
+ },
41
+ "Arrow": {
42
+ "group": "components",
43
+ "extends": [
44
+ "Flex"
45
+ ],
46
+ "purpose": "Arrow component",
47
+ "tags": [
48
+ "components"
49
+ ]
50
+ },
51
+ "AutoScroll": {
52
+ "group": "components",
53
+ "extends": [
54
+ "Flex"
55
+ ],
56
+ "purpose": "AutoScroll component",
57
+ "tags": [
58
+ "components"
59
+ ]
60
+ },
61
+ "Avatar": {
62
+ "group": "components",
63
+ "extends": [
64
+ "Flex"
65
+ ],
66
+ "purpose": "User avatar with size tokens",
67
+ "tags": [
68
+ "media",
69
+ "profile"
70
+ ],
71
+ "pairsWith": [
72
+ "Row",
73
+ "User",
74
+ "AvatarGroup"
75
+ ]
76
+ },
77
+ "AvatarGroup": {
78
+ "group": "components",
79
+ "extends": [
80
+ "Flex"
81
+ ],
82
+ "purpose": "Stacked overlapping avatars",
83
+ "tags": [
84
+ "profile",
85
+ "marketing"
86
+ ],
87
+ "pairsWith": [
88
+ "Avatar",
89
+ "Row"
90
+ ]
91
+ },
92
+ "Badge": {
93
+ "group": "components",
94
+ "extends": [
95
+ "Flex"
96
+ ],
97
+ "purpose": "Notification count or status badge",
98
+ "tags": [
99
+ "typography",
100
+ "dashboard"
101
+ ],
102
+ "avoid": "Passing same text in title prop and children"
103
+ },
104
+ "BlobFx": {
105
+ "group": "components",
106
+ "extends": [
107
+ "Flex",
108
+ "Row"
109
+ ],
110
+ "purpose": "Drifting blurred brand blobs for ambient panels",
111
+ "tags": [
112
+ "decoration",
113
+ "effect",
114
+ "marketing"
115
+ ],
116
+ "pairsWith": [
117
+ "Column",
118
+ "Card"
119
+ ]
120
+ },
121
+ "Banner": {
122
+ "group": "components",
123
+ "extends": [
124
+ "Flex",
125
+ "Row"
126
+ ],
127
+ "purpose": "Top-of-page announcement strip",
128
+ "tags": [
129
+ "navigation",
130
+ "marketing"
131
+ ],
132
+ "pairsWith": [
133
+ "Row",
134
+ "Button",
135
+ "SmartLink"
136
+ ]
137
+ },
138
+ "Background": {
139
+ "group": "components",
140
+ "extends": [
141
+ "Flex"
142
+ ],
143
+ "purpose": "Absolute decorative layer: gradients, dots, lines, grid textures",
144
+ "tags": [
145
+ "decoration",
146
+ "effect"
147
+ ],
148
+ "pairsWith": [
149
+ "Column",
150
+ "Row",
151
+ "MatrixFx",
152
+ "BlobFx"
153
+ ]
154
+ },
155
+ "BlockQuote": {
156
+ "group": "components",
157
+ "extends": [
158
+ "Flex"
159
+ ],
160
+ "purpose": "Quoted text — keep smaller than section headings",
161
+ "tags": [
162
+ "typography",
163
+ "marketing"
164
+ ],
165
+ "avoid": "Using default size larger than display-strong-xs section titles"
166
+ },
167
+ "Button": {
168
+ "group": "components",
169
+ "purpose": "Primary action and navigation with variants and icons",
170
+ "tags": [
171
+ "action",
172
+ "basics"
173
+ ],
174
+ "pairsWith": [
175
+ "Icon",
176
+ "SmartLink",
177
+ "Row"
178
+ ]
179
+ },
180
+ "MatrixFx": {
181
+ "group": "components",
182
+ "extends": [
183
+ "Flex"
184
+ ],
185
+ "purpose": "Animated matrix field with optional bulge wave",
186
+ "tags": [
187
+ "decoration",
188
+ "effect",
189
+ "marketing"
190
+ ],
191
+ "pairsWith": [
192
+ "Background",
193
+ "Column",
194
+ "RevealFx"
195
+ ]
196
+ },
197
+ "WeatherFx": {
198
+ "group": "components",
199
+ "extends": [
200
+ "Flex"
201
+ ],
202
+ "purpose": "WeatherFx component",
203
+ "tags": [
204
+ "components"
205
+ ]
206
+ },
207
+ "Carousel": {
208
+ "group": "components",
209
+ "extends": [
210
+ "Flex"
211
+ ],
212
+ "purpose": "Image/content carousel with navigation",
213
+ "tags": [
214
+ "media",
215
+ "marketing"
216
+ ],
217
+ "pairsWith": [
218
+ "Media",
219
+ "Column",
220
+ "Button"
221
+ ]
222
+ },
223
+ "Swiper": {
224
+ "group": "components",
225
+ "extends": [
226
+ "Flex"
227
+ ],
228
+ "purpose": "Touch-friendly image swiper",
229
+ "tags": [
230
+ "media",
231
+ "marketing"
232
+ ],
233
+ "pairsWith": [
234
+ "Media",
235
+ "Row"
236
+ ]
237
+ },
238
+ "Card": {
239
+ "group": "components",
240
+ "extends": [
241
+ "Flex"
242
+ ],
243
+ "purpose": "Interactive surface only — requires href or onClick",
244
+ "tags": [
245
+ "surface"
246
+ ],
247
+ "avoid": "Static panels (pricing tiers, testimonials, stats) — use Column + surface recipe",
248
+ "pairsWith": [
249
+ "Background",
250
+ "Media",
251
+ "Heading",
252
+ "SmartLink"
253
+ ]
254
+ },
255
+ "CursorCard": {
256
+ "group": "components",
257
+ "extends": [
258
+ "Flex"
259
+ ],
260
+ "purpose": "Card that follows cursor for spotlight effects",
261
+ "tags": [
262
+ "effect",
263
+ "marketing"
264
+ ],
265
+ "pairsWith": [
266
+ "Background",
267
+ "Column"
268
+ ]
269
+ },
270
+ "Cursor": {
271
+ "group": "components",
272
+ "purpose": "Cursor component",
273
+ "tags": [
274
+ "components"
275
+ ]
276
+ },
277
+ "CountFx": {
278
+ "group": "components",
279
+ "purpose": "Animated number counter for stats and pricing",
280
+ "tags": [
281
+ "effect",
282
+ "data",
283
+ "marketing"
284
+ ],
285
+ "pairsWith": [
286
+ "useInViewport",
287
+ "Text",
288
+ "Row"
289
+ ]
290
+ },
291
+ "CountdownFx": {
292
+ "group": "components",
293
+ "purpose": "CountdownFx component",
294
+ "tags": [
295
+ "components"
296
+ ]
297
+ },
298
+ "Column": {
299
+ "group": "components",
300
+ "extends": [
301
+ "Flex"
302
+ ],
303
+ "purpose": "Vertical flex layout — default direction column",
304
+ "tags": [
305
+ "layout",
306
+ "basics"
307
+ ],
308
+ "preferOver": "Flex with direction=\"column\"",
309
+ "pairsWith": [
310
+ "Row",
311
+ "Grid",
312
+ "Heading",
313
+ "Text"
314
+ ]
315
+ },
316
+ "Checkbox": {
317
+ "group": "components",
318
+ "extends": [
319
+ "InteractiveDetails"
320
+ ],
321
+ "purpose": "Checkbox with label for forms",
322
+ "tags": [
323
+ "form",
324
+ "settings"
325
+ ],
326
+ "pairsWith": [
327
+ "Column",
328
+ "Row"
329
+ ]
330
+ },
331
+ "Chip": {
332
+ "group": "components",
333
+ "extends": [
334
+ "Flex"
335
+ ],
336
+ "purpose": "Selectable chip for ratings, filters, tags",
337
+ "tags": [
338
+ "form",
339
+ "feedback"
340
+ ],
341
+ "pairsWith": [
342
+ "Row",
343
+ "Textarea",
344
+ "Dialog"
345
+ ]
346
+ },
347
+ "ColorInput": {
348
+ "group": "components",
349
+ "extends": [
350
+ "Input"
351
+ ],
352
+ "purpose": "ColorInput component",
353
+ "tags": [
354
+ "components"
355
+ ]
356
+ },
357
+ "CompareImage": {
358
+ "group": "components",
359
+ "extends": [
360
+ "Flex"
361
+ ],
362
+ "purpose": "Before/after image comparison slider",
363
+ "tags": [
364
+ "media",
365
+ "marketing"
366
+ ],
367
+ "pairsWith": [
368
+ "Column",
369
+ "Media"
370
+ ]
371
+ },
372
+ "ContextMenu": {
373
+ "group": "components",
374
+ "purpose": "Right-click context menu",
375
+ "tags": [
376
+ "overlay",
377
+ "chat"
378
+ ],
379
+ "pairsWith": [
380
+ "Column",
381
+ "Row"
382
+ ]
383
+ },
384
+ "DateInput": {
385
+ "group": "components",
386
+ "extends": [
387
+ "Input"
388
+ ],
389
+ "purpose": "DateInput component",
390
+ "tags": [
391
+ "components"
392
+ ]
393
+ },
394
+ "DatePicker": {
395
+ "group": "components",
396
+ "extends": [
397
+ "Flex"
398
+ ],
399
+ "purpose": "DatePicker component",
400
+ "tags": [
401
+ "components"
402
+ ]
403
+ },
404
+ "DateRangeInput": {
405
+ "group": "components",
406
+ "extends": [
407
+ "Input"
408
+ ],
409
+ "purpose": "DateRangeInput component",
410
+ "tags": [
411
+ "components"
412
+ ]
413
+ },
414
+ "DateRangePicker": {
415
+ "group": "components",
416
+ "extends": [
417
+ "Flex"
418
+ ],
419
+ "purpose": "Date range filter for dashboards and tables",
420
+ "tags": [
421
+ "form",
422
+ "dashboard"
423
+ ],
424
+ "pairsWith": [
425
+ "Input",
426
+ "Row",
427
+ "Table"
428
+ ]
429
+ },
430
+ "DialogProvider": {
431
+ "group": "components",
432
+ "purpose": "DialogProvider component",
433
+ "tags": [
434
+ "components"
435
+ ]
436
+ },
437
+ "Dialog": {
438
+ "group": "components",
439
+ "extends": [
440
+ "Flex"
441
+ ],
442
+ "purpose": "Modal dialog with stack support for multi-step flows",
443
+ "tags": [
444
+ "overlay",
445
+ "auth"
446
+ ],
447
+ "pairsWith": [
448
+ "OTPInput",
449
+ "PasswordInput",
450
+ "Button",
451
+ "Column"
452
+ ]
453
+ },
454
+ "Dropdown": {
455
+ "group": "components",
456
+ "extends": [
457
+ "Flex"
458
+ ],
459
+ "purpose": "Dropdown menu for actions and navigation",
460
+ "tags": [
461
+ "overlay",
462
+ "navigation"
463
+ ],
464
+ "pairsWith": [
465
+ "IconButton",
466
+ "UserMenu"
467
+ ]
468
+ },
469
+ "DropdownWrapper": {
470
+ "group": "components",
471
+ "purpose": "DropdownWrapper component",
472
+ "tags": [
473
+ "components"
474
+ ]
475
+ },
476
+ "EmojiPicker": {
477
+ "group": "components",
478
+ "extends": [
479
+ "Flex"
480
+ ],
481
+ "purpose": "EmojiPicker component",
482
+ "tags": [
483
+ "components"
484
+ ]
485
+ },
486
+ "EmojiPickerDropdown": {
487
+ "group": "components",
488
+ "extends": [
489
+ "DropdownWrapper"
490
+ ],
491
+ "purpose": "Emoji picker in a dropdown for chat/message inputs",
492
+ "tags": [
493
+ "overlay",
494
+ "chat"
495
+ ],
496
+ "pairsWith": [
497
+ "Input",
498
+ "IconButton",
499
+ "Row"
500
+ ]
501
+ },
502
+ "Fade": {
503
+ "group": "components",
504
+ "extends": [
505
+ "Flex"
506
+ ],
507
+ "purpose": "Edge overlay strip on scroll containers — not a content wrapper",
508
+ "tags": [
509
+ "effect",
510
+ "chat"
511
+ ],
512
+ "avoid": "Wrapping entire message lists or sections"
513
+ },
514
+ "Feedback": {
515
+ "group": "components",
516
+ "extends": [
517
+ "Flex"
518
+ ],
519
+ "purpose": "Inline feedback message display",
520
+ "tags": [
521
+ "feedback"
522
+ ],
523
+ "pairsWith": [
524
+ "useToast",
525
+ "Dialog"
526
+ ]
527
+ },
528
+ "Flex": {
529
+ "group": "components",
530
+ "purpose": "Dynamic-direction flex container — use only when direction changes at breakpoints",
531
+ "tags": [
532
+ "layout",
533
+ "basics"
534
+ ],
535
+ "avoid": "Static row/column layouts — use Row or Column instead"
536
+ },
537
+ "FlipFx": {
538
+ "group": "components",
539
+ "extends": [
540
+ "Flex"
541
+ ],
542
+ "purpose": "Flip card between front and back faces",
543
+ "tags": [
544
+ "effect",
545
+ "marketing"
546
+ ],
547
+ "pairsWith": [
548
+ "Card",
549
+ "Column"
550
+ ]
551
+ },
552
+ "GlitchFx": {
553
+ "group": "components",
554
+ "extends": [
555
+ "Flex"
556
+ ],
557
+ "purpose": "Glitch text effect",
558
+ "tags": [
559
+ "effect",
560
+ "marketing"
561
+ ],
562
+ "pairsWith": [
563
+ "Heading",
564
+ "Text"
565
+ ]
566
+ },
567
+ "Grid": {
568
+ "group": "components",
569
+ "purpose": "CSS grid container with token-based columns/rows",
570
+ "tags": [
571
+ "layout",
572
+ "basics"
573
+ ],
574
+ "pairsWith": [
575
+ "Column",
576
+ "Row",
577
+ "Card"
578
+ ]
579
+ },
580
+ "Heading": {
581
+ "group": "components",
582
+ "purpose": "Semantic headings with display/heading variants",
583
+ "tags": [
584
+ "typography",
585
+ "basics"
586
+ ],
587
+ "pairsWith": [
588
+ "Text",
589
+ "Column",
590
+ "RevealFx"
591
+ ]
592
+ },
593
+ "HoloFx": {
594
+ "group": "components",
595
+ "extends": [
596
+ "Flex"
597
+ ],
598
+ "purpose": "Holographic foil effect on cards",
599
+ "tags": [
600
+ "effect",
601
+ "marketing"
602
+ ],
603
+ "pairsWith": [
604
+ "Card",
605
+ "Media"
606
+ ]
607
+ },
608
+ "Hover": {
609
+ "group": "components",
610
+ "extends": [
611
+ "Flex"
612
+ ],
613
+ "purpose": "Hover state wrapper for subtle scale/glow transitions",
614
+ "tags": [
615
+ "effect"
616
+ ],
617
+ "pairsWith": [
618
+ "Card",
619
+ "Media"
620
+ ]
621
+ },
622
+ "HoverCard": {
623
+ "group": "components",
624
+ "extends": [
625
+ "Flex",
626
+ "Animation"
627
+ ],
628
+ "purpose": "Rich popover card on hover",
629
+ "tags": [
630
+ "overlay",
631
+ "profile"
632
+ ],
633
+ "pairsWith": [
634
+ "Avatar",
635
+ "User",
636
+ "Column"
637
+ ]
638
+ },
639
+ "Icon": {
640
+ "group": "components",
641
+ "extends": [
642
+ "Flex"
643
+ ],
644
+ "purpose": "Icon from IconName list in spec — never invent names",
645
+ "tags": [
646
+ "basics"
647
+ ],
648
+ "pairsWith": [
649
+ "Row",
650
+ "Button",
651
+ "IconButton"
652
+ ]
653
+ },
654
+ "IconButton": {
655
+ "group": "components",
656
+ "purpose": "Icon-only action with optional tooltip",
657
+ "tags": [
658
+ "action",
659
+ "chat"
660
+ ],
661
+ "pairsWith": [
662
+ "Tooltip",
663
+ "Row"
664
+ ]
665
+ },
666
+ "InfiniteScroll": {
667
+ "group": "components",
668
+ "extends": [
669
+ "Flex",
670
+ "Row"
671
+ ],
672
+ "purpose": "Infinite scroll wrapper for feeds and lists",
673
+ "tags": [
674
+ "layout",
675
+ "chat"
676
+ ],
677
+ "pairsWith": [
678
+ "Column",
679
+ "Spinner"
680
+ ]
681
+ },
682
+ "InlineCode": {
683
+ "group": "components",
684
+ "extends": [
685
+ "Flex"
686
+ ],
687
+ "purpose": "Inline code snippet styling",
688
+ "tags": [
689
+ "typography",
690
+ "docs"
691
+ ],
692
+ "pairsWith": [
693
+ "Text",
694
+ "CodeBlock"
695
+ ]
696
+ },
697
+ "Input": {
698
+ "group": "components",
699
+ "purpose": "Text input with label, validation, and icons",
700
+ "tags": [
701
+ "form"
702
+ ],
703
+ "pairsWith": [
704
+ "PasswordInput",
705
+ "Select",
706
+ "Switch",
707
+ "Column"
708
+ ]
709
+ },
710
+ "InteractiveDetails": {
711
+ "group": "components",
712
+ "purpose": "InteractiveDetails component",
713
+ "tags": [
714
+ "components"
715
+ ]
716
+ },
717
+ "Kbd": {
718
+ "group": "components",
719
+ "extends": [
720
+ "Flex"
721
+ ],
722
+ "purpose": "Keyboard shortcut display",
723
+ "tags": [
724
+ "typography",
725
+ "chat"
726
+ ],
727
+ "pairsWith": [
728
+ "Row",
729
+ "Text"
730
+ ]
731
+ },
732
+ "LetterFx": {
733
+ "group": "components",
734
+ "purpose": "Per-letter text animation for hero headlines",
735
+ "tags": [
736
+ "effect",
737
+ "marketing"
738
+ ],
739
+ "pairsWith": [
740
+ "Heading",
741
+ "Column"
742
+ ]
743
+ },
744
+ "Line": {
745
+ "group": "components",
746
+ "extends": [
747
+ "Flex"
748
+ ],
749
+ "purpose": "Horizontal divider / section separator",
750
+ "tags": [
751
+ "decoration",
752
+ "marketing"
753
+ ],
754
+ "pairsWith": [
755
+ "Column",
756
+ "Row"
757
+ ]
758
+ },
759
+ "List": {
760
+ "group": "components",
761
+ "extends": [
762
+ "Flex"
763
+ ],
764
+ "purpose": "Styled list with icons or bullets",
765
+ "tags": [
766
+ "content"
767
+ ],
768
+ "pairsWith": [
769
+ "Column",
770
+ "Icon",
771
+ "Text"
772
+ ]
773
+ },
774
+ "ListItem": {
775
+ "group": "components",
776
+ "purpose": "ListItem component",
777
+ "tags": [
778
+ "components"
779
+ ]
780
+ },
781
+ "Logo": {
782
+ "group": "components",
783
+ "purpose": "Brand logo with light/dark variants",
784
+ "tags": [
785
+ "media",
786
+ "navigation"
787
+ ],
788
+ "pairsWith": [
789
+ "SmartLink",
790
+ "Row"
791
+ ]
792
+ },
793
+ "LogoCloud": {
794
+ "group": "components",
795
+ "extends": [
796
+ "Grid"
797
+ ],
798
+ "purpose": "Grid of partner/customer logos — always set columns",
799
+ "tags": [
800
+ "marketing",
801
+ "social-proof"
802
+ ],
803
+ "pairsWith": [
804
+ "Grid",
805
+ "Media",
806
+ "Logo"
807
+ ]
808
+ },
809
+ "Mask": {
810
+ "group": "components",
811
+ "extends": [
812
+ "Flex"
813
+ ],
814
+ "purpose": "Mask component",
815
+ "tags": [
816
+ "components"
817
+ ]
818
+ },
819
+ "MasonryGrid": {
820
+ "group": "components",
821
+ "extends": [
822
+ "Flex"
823
+ ],
824
+ "purpose": "Pinterest-style masonry layout",
825
+ "tags": [
826
+ "layout",
827
+ "marketing"
828
+ ],
829
+ "pairsWith": [
830
+ "Media",
831
+ "Card"
832
+ ]
833
+ },
834
+ "Media": {
835
+ "group": "components",
836
+ "extends": [
837
+ "Flex"
838
+ ],
839
+ "purpose": "Optimized image/video with aspect ratio and radius",
840
+ "tags": [
841
+ "media",
842
+ "basics"
843
+ ],
844
+ "avoid": "Raw img elements",
845
+ "pairsWith": [
846
+ "Card",
847
+ "Column",
848
+ "TiltFx"
849
+ ]
850
+ },
851
+ "Modal": {
852
+ "group": "components",
853
+ "purpose": "Modal component",
854
+ "tags": [
855
+ "components"
856
+ ]
857
+ },
858
+ "NavIcon": {
859
+ "group": "components",
860
+ "extends": [
861
+ "Flex"
862
+ ],
863
+ "purpose": "NavIcon component",
864
+ "tags": [
865
+ "components"
866
+ ]
867
+ },
868
+ "NumberInput": {
869
+ "group": "components",
870
+ "extends": [
871
+ "Input"
872
+ ],
873
+ "purpose": "NumberInput component",
874
+ "tags": [
875
+ "components"
876
+ ]
877
+ },
878
+ "OgCard": {
879
+ "group": "components",
880
+ "extends": [
881
+ "Flex",
882
+ "Card"
883
+ ],
884
+ "purpose": "Open Graph link preview card",
885
+ "tags": [
886
+ "media",
887
+ "social"
888
+ ],
889
+ "pairsWith": [
890
+ "SmartLink",
891
+ "Media"
892
+ ]
893
+ },
894
+ "Option": {
895
+ "group": "components",
896
+ "extends": [
897
+ "Flex"
898
+ ],
899
+ "purpose": "Option component",
900
+ "tags": [
901
+ "components"
902
+ ]
903
+ },
904
+ "OTPInput": {
905
+ "group": "components",
906
+ "purpose": "One-time password input for verification steps",
907
+ "tags": [
908
+ "form",
909
+ "auth"
910
+ ],
911
+ "pairsWith": [
912
+ "Dialog",
913
+ "Column",
914
+ "Button"
915
+ ]
916
+ },
917
+ "Particle": {
918
+ "group": "components",
919
+ "extends": [
920
+ "Flex"
921
+ ],
922
+ "purpose": "Floating particle decoration",
923
+ "tags": [
924
+ "effect",
925
+ "marketing"
926
+ ],
927
+ "pairsWith": [
928
+ "Background",
929
+ "Column"
930
+ ]
931
+ },
932
+ "PasswordInput": {
933
+ "group": "components",
934
+ "extends": [
935
+ "Input"
936
+ ],
937
+ "purpose": "Password field with show/hide toggle",
938
+ "tags": [
939
+ "form",
940
+ "auth"
941
+ ],
942
+ "pairsWith": [
943
+ "Input",
944
+ "Dialog",
945
+ "Column"
946
+ ]
947
+ },
948
+ "ProgressBar": {
949
+ "group": "components",
950
+ "extends": [
951
+ "Flex"
952
+ ],
953
+ "purpose": "Linear progress indicator",
954
+ "tags": [
955
+ "data",
956
+ "onboarding"
957
+ ],
958
+ "pairsWith": [
959
+ "StatusIndicator",
960
+ "Column",
961
+ "Text"
962
+ ]
963
+ },
964
+ "Pulse": {
965
+ "group": "components",
966
+ "extends": [
967
+ "Flex"
968
+ ],
969
+ "purpose": "Pulse component",
970
+ "tags": [
971
+ "components"
972
+ ]
973
+ },
974
+ "RadioButton": {
975
+ "group": "components",
976
+ "extends": [
977
+ "InteractiveDetails"
978
+ ],
979
+ "purpose": "RadioButton component",
980
+ "tags": [
981
+ "components"
982
+ ]
983
+ },
984
+ "RevealFx": {
985
+ "group": "components",
986
+ "extends": [
987
+ "Flex"
988
+ ],
989
+ "purpose": "Viewport-triggered entrance animation — one key set per page",
990
+ "tags": [
991
+ "effect",
992
+ "motion"
993
+ ],
994
+ "pairsWith": [
995
+ "useInViewport",
996
+ "Grid",
997
+ "Column"
998
+ ]
999
+ },
1000
+ "Row": {
1001
+ "group": "components",
1002
+ "extends": [
1003
+ "Flex"
1004
+ ],
1005
+ "purpose": "Horizontal flex layout — default direction row",
1006
+ "tags": [
1007
+ "layout",
1008
+ "basics"
1009
+ ],
1010
+ "preferOver": "Flex with direction=\"row\"",
1011
+ "pairsWith": [
1012
+ "Column",
1013
+ "Grid",
1014
+ "Text",
1015
+ "Button"
1016
+ ]
1017
+ },
1018
+ "Scroller": {
1019
+ "group": "components",
1020
+ "extends": [
1021
+ "Flex"
1022
+ ],
1023
+ "purpose": "Horizontal scroll container for chips, tabs, cards",
1024
+ "tags": [
1025
+ "layout"
1026
+ ],
1027
+ "pairsWith": [
1028
+ "Row",
1029
+ "Chip"
1030
+ ]
1031
+ },
1032
+ "ScrollContainer": {
1033
+ "group": "components",
1034
+ "extends": [
1035
+ "Flex",
1036
+ "Row"
1037
+ ],
1038
+ "purpose": "ScrollContainer component",
1039
+ "tags": [
1040
+ "components"
1041
+ ]
1042
+ },
1043
+ "ScrollToTop": {
1044
+ "group": "components",
1045
+ "extends": [
1046
+ "Flex"
1047
+ ],
1048
+ "purpose": "ScrollToTop component",
1049
+ "tags": [
1050
+ "components"
1051
+ ]
1052
+ },
1053
+ "SegmentedControl": {
1054
+ "group": "components",
1055
+ "extends": [
1056
+ "Flex",
1057
+ "Scroller"
1058
+ ],
1059
+ "purpose": "Toggle between 2–5 options (billing period, view mode)",
1060
+ "tags": [
1061
+ "control",
1062
+ "dashboard"
1063
+ ],
1064
+ "pairsWith": [
1065
+ "Row",
1066
+ "Grid"
1067
+ ]
1068
+ },
1069
+ "Select": {
1070
+ "group": "components",
1071
+ "extends": [
1072
+ "Input",
1073
+ "DropdownWrapper"
1074
+ ],
1075
+ "purpose": "Dropdown select for forms and filters",
1076
+ "tags": [
1077
+ "form",
1078
+ "dashboard"
1079
+ ],
1080
+ "pairsWith": [
1081
+ "Input",
1082
+ "Row",
1083
+ "Column"
1084
+ ]
1085
+ },
1086
+ "ShineFx": {
1087
+ "group": "components",
1088
+ "purpose": "Shine sweep animation on text",
1089
+ "tags": [
1090
+ "effect",
1091
+ "marketing"
1092
+ ],
1093
+ "pairsWith": [
1094
+ "Heading",
1095
+ "Text"
1096
+ ]
1097
+ },
1098
+ "Skeleton": {
1099
+ "group": "components",
1100
+ "extends": [
1101
+ "Flex"
1102
+ ],
1103
+ "purpose": "Loading placeholder for cards and lists",
1104
+ "tags": [
1105
+ "feedback",
1106
+ "ecommerce"
1107
+ ],
1108
+ "pairsWith": [
1109
+ "Grid",
1110
+ "Media",
1111
+ "Column"
1112
+ ]
1113
+ },
1114
+ "Slider": {
1115
+ "group": "components",
1116
+ "purpose": "Numeric range slider",
1117
+ "tags": [
1118
+ "form",
1119
+ "settings"
1120
+ ],
1121
+ "pairsWith": [
1122
+ "Row",
1123
+ "Text"
1124
+ ]
1125
+ },
1126
+ "SmartLink": {
1127
+ "group": "components",
1128
+ "purpose": "Enhanced link with Once UI styling",
1129
+ "tags": [
1130
+ "navigation",
1131
+ "basics"
1132
+ ],
1133
+ "avoid": "Raw a elements"
1134
+ },
1135
+ "Spinner": {
1136
+ "group": "components",
1137
+ "extends": [
1138
+ "Flex"
1139
+ ],
1140
+ "purpose": "Loading indicator for async/streaming states",
1141
+ "tags": [
1142
+ "feedback",
1143
+ "chat"
1144
+ ],
1145
+ "pairsWith": [
1146
+ "Row",
1147
+ "Text"
1148
+ ]
1149
+ },
1150
+ "SplitView": {
1151
+ "group": "components",
1152
+ "extends": [
1153
+ "Flex",
1154
+ "Row"
1155
+ ],
1156
+ "purpose": "Resizable two-pane layout for sidebars and chat",
1157
+ "tags": [
1158
+ "layout",
1159
+ "chat",
1160
+ "settings"
1161
+ ],
1162
+ "pairsWith": [
1163
+ "Column",
1164
+ "Row"
1165
+ ]
1166
+ },
1167
+ "StatusIndicator": {
1168
+ "group": "components",
1169
+ "extends": [
1170
+ "Flex"
1171
+ ],
1172
+ "purpose": "Colored status dot for online/offline/success states",
1173
+ "tags": [
1174
+ "data",
1175
+ "onboarding"
1176
+ ],
1177
+ "pairsWith": [
1178
+ "Row",
1179
+ "Text",
1180
+ "Avatar"
1181
+ ]
1182
+ },
1183
+ "StylePanel": {
1184
+ "group": "components",
1185
+ "extends": [
1186
+ "Flex"
1187
+ ],
1188
+ "purpose": "StylePanel component",
1189
+ "tags": [
1190
+ "components"
1191
+ ]
1192
+ },
1193
+ "StyleOverlay": {
1194
+ "group": "components",
1195
+ "extends": [
1196
+ "Flex"
1197
+ ],
1198
+ "purpose": "StyleOverlay component",
1199
+ "tags": [
1200
+ "components"
1201
+ ]
1202
+ },
1203
+ "Switch": {
1204
+ "group": "components",
1205
+ "extends": [
1206
+ "InteractiveDetails"
1207
+ ],
1208
+ "purpose": "Boolean toggle for settings",
1209
+ "tags": [
1210
+ "form",
1211
+ "settings"
1212
+ ],
1213
+ "pairsWith": [
1214
+ "Row",
1215
+ "Column",
1216
+ "Text"
1217
+ ]
1218
+ },
1219
+ "Table": {
1220
+ "group": "components",
1221
+ "extends": [
1222
+ "Flex"
1223
+ ],
1224
+ "purpose": "Structured data table with headers and rows",
1225
+ "tags": [
1226
+ "data",
1227
+ "dashboard"
1228
+ ],
1229
+ "pairsWith": [
1230
+ "Column",
1231
+ "Tag",
1232
+ "Icon"
1233
+ ]
1234
+ },
1235
+ "Tag": {
1236
+ "group": "components",
1237
+ "extends": [
1238
+ "Flex"
1239
+ ],
1240
+ "purpose": "Metadata label — do not duplicate text in label prop and children",
1241
+ "tags": [
1242
+ "typography",
1243
+ "marketing"
1244
+ ],
1245
+ "pairsWith": [
1246
+ "Row",
1247
+ "Badge",
1248
+ "Heading"
1249
+ ]
1250
+ },
1251
+ "TagInput": {
1252
+ "group": "components",
1253
+ "extends": [
1254
+ "Input"
1255
+ ],
1256
+ "purpose": "TagInput component",
1257
+ "tags": [
1258
+ "components"
1259
+ ]
1260
+ },
1261
+ "Text": {
1262
+ "group": "components",
1263
+ "purpose": "Body, label, display, and code typography",
1264
+ "tags": [
1265
+ "typography",
1266
+ "basics"
1267
+ ],
1268
+ "pairsWith": [
1269
+ "Heading",
1270
+ "Column",
1271
+ "Row"
1272
+ ]
1273
+ },
1274
+ "Textarea": {
1275
+ "group": "components",
1276
+ "purpose": "Multi-line text input",
1277
+ "tags": [
1278
+ "form",
1279
+ "feedback"
1280
+ ],
1281
+ "pairsWith": [
1282
+ "Dialog",
1283
+ "Column",
1284
+ "Chip"
1285
+ ]
1286
+ },
1287
+ "TiltFx": {
1288
+ "group": "components",
1289
+ "extends": [
1290
+ "Flex"
1291
+ ],
1292
+ "purpose": "Pointer-tilt interaction wrapper for cards and previews",
1293
+ "tags": [
1294
+ "effect",
1295
+ "marketing"
1296
+ ],
1297
+ "pairsWith": [
1298
+ "Card",
1299
+ "Media",
1300
+ "Column"
1301
+ ]
1302
+ },
1303
+ "Timeline": {
1304
+ "group": "components",
1305
+ "extends": [
1306
+ "Flex"
1307
+ ],
1308
+ "purpose": "Versioned changelog / release history layout",
1309
+ "tags": [
1310
+ "content",
1311
+ "docs"
1312
+ ],
1313
+ "pairsWith": [
1314
+ "Tag",
1315
+ "CodeBlock",
1316
+ "Text"
1317
+ ]
1318
+ },
1319
+ "Toast": {
1320
+ "group": "components",
1321
+ "purpose": "Toast component",
1322
+ "tags": [
1323
+ "components"
1324
+ ]
1325
+ },
1326
+ "Toaster": {
1327
+ "group": "components",
1328
+ "purpose": "Toaster component",
1329
+ "tags": [
1330
+ "components"
1331
+ ]
1332
+ },
1333
+ "ToggleButton": {
1334
+ "group": "components",
1335
+ "purpose": "ToggleButton component",
1336
+ "tags": [
1337
+ "components"
1338
+ ]
1339
+ },
1340
+ "Tooltip": {
1341
+ "group": "components",
1342
+ "extends": [
1343
+ "Flex",
1344
+ "Row"
1345
+ ],
1346
+ "purpose": "Hover/focus tooltip for icon buttons and truncated text",
1347
+ "tags": [
1348
+ "overlay",
1349
+ "basics"
1350
+ ],
1351
+ "pairsWith": [
1352
+ "IconButton",
1353
+ "Text"
1354
+ ]
1355
+ },
1356
+ "TypeFx": {
1357
+ "group": "components",
1358
+ "purpose": "Typewriter text effect",
1359
+ "tags": [
1360
+ "effect",
1361
+ "marketing"
1362
+ ],
1363
+ "pairsWith": [
1364
+ "Heading",
1365
+ "Text"
1366
+ ]
1367
+ },
1368
+ "ThemeSwitcher": {
1369
+ "group": "components",
1370
+ "extends": [
1371
+ "Flex",
1372
+ "Row"
1373
+ ],
1374
+ "purpose": "Light/dark theme toggle",
1375
+ "tags": [
1376
+ "navigation",
1377
+ "settings"
1378
+ ],
1379
+ "pairsWith": [
1380
+ "IconButton",
1381
+ "Row"
1382
+ ]
1383
+ },
1384
+ "User": {
1385
+ "group": "components",
1386
+ "purpose": "User profile row with avatar, name, and metadata",
1387
+ "tags": [
1388
+ "profile",
1389
+ "chat"
1390
+ ],
1391
+ "pairsWith": [
1392
+ "Avatar",
1393
+ "Row",
1394
+ "Text"
1395
+ ]
1396
+ },
1397
+ "UserMenu": {
1398
+ "group": "components",
1399
+ "extends": [
1400
+ "User",
1401
+ "DropdownWrapper"
1402
+ ],
1403
+ "purpose": "Avatar-triggered account menu",
1404
+ "tags": [
1405
+ "overlay",
1406
+ "navigation"
1407
+ ],
1408
+ "pairsWith": [
1409
+ "Avatar",
1410
+ "Dropdown",
1411
+ "Column"
1412
+ ]
1413
+ },
1414
+ "CelebrationFx": {
1415
+ "group": "components",
1416
+ "extends": [
1417
+ "Flex"
1418
+ ],
1419
+ "purpose": "Confetti/fireworks on completion milestones",
1420
+ "tags": [
1421
+ "effect",
1422
+ "onboarding"
1423
+ ],
1424
+ "pairsWith": [
1425
+ "Column",
1426
+ "Button"
1427
+ ]
1428
+ },
1429
+ "FadingLettersFx": {
1430
+ "group": "components",
1431
+ "purpose": "FadingLettersFx component",
1432
+ "tags": [
1433
+ "components"
1434
+ ]
1435
+ },
1436
+ "Kbar": {
1437
+ "group": "modules",
1438
+ "purpose": "Command palette (⌘K) for navigation and actions",
1439
+ "tags": [
1440
+ "navigation",
1441
+ "chat"
1442
+ ],
1443
+ "pairsWith": [
1444
+ "Kbd",
1445
+ "Dialog"
1446
+ ]
1447
+ },
1448
+ "MobileMegaMenu": {
1449
+ "group": "modules",
1450
+ "extends": [
1451
+ "Flex"
1452
+ ],
1453
+ "purpose": "MobileMegaMenu component",
1454
+ "tags": [
1455
+ "modules"
1456
+ ]
1457
+ },
1458
+ "MegaMenu": {
1459
+ "group": "modules",
1460
+ "extends": [
1461
+ "Flex"
1462
+ ],
1463
+ "purpose": "Navigation mega menu with featured card and link columns",
1464
+ "tags": [
1465
+ "navigation",
1466
+ "marketing"
1467
+ ],
1468
+ "pairsWith": [
1469
+ "Background",
1470
+ "SmartLink",
1471
+ "Column",
1472
+ "Row"
1473
+ ]
1474
+ },
1475
+ "HeadingLink": {
1476
+ "group": "modules",
1477
+ "extends": [
1478
+ "Flex"
1479
+ ],
1480
+ "purpose": "HeadingLink component",
1481
+ "tags": [
1482
+ "modules"
1483
+ ]
1484
+ },
1485
+ "HeadingNav": {
1486
+ "group": "modules",
1487
+ "extends": [
1488
+ "Flex"
1489
+ ],
1490
+ "purpose": "HeadingNav component",
1491
+ "tags": [
1492
+ "modules"
1493
+ ]
1494
+ },
1495
+ "ChartHeader": {
1496
+ "group": "modules",
1497
+ "extends": [
1498
+ "Flex",
1499
+ "Column"
1500
+ ],
1501
+ "purpose": "ChartHeader component",
1502
+ "tags": [
1503
+ "modules"
1504
+ ]
1505
+ },
1506
+ "ChartStatus": {
1507
+ "group": "modules",
1508
+ "purpose": "ChartStatus component",
1509
+ "tags": [
1510
+ "modules"
1511
+ ]
1512
+ },
1513
+ "LinearGradient": {
1514
+ "group": "modules",
1515
+ "purpose": "LinearGradient component",
1516
+ "tags": [
1517
+ "modules"
1518
+ ]
1519
+ },
1520
+ "RadialGradient": {
1521
+ "group": "modules",
1522
+ "purpose": "RadialGradient component",
1523
+ "tags": [
1524
+ "modules"
1525
+ ]
1526
+ },
1527
+ "BarChart": {
1528
+ "group": "modules",
1529
+ "extends": [
1530
+ "BarChart.impl",
1531
+ "interfaces",
1532
+ "Flex"
1533
+ ],
1534
+ "purpose": "BarChart component",
1535
+ "tags": [
1536
+ "modules"
1537
+ ]
1538
+ },
1539
+ "LineChart": {
1540
+ "group": "modules",
1541
+ "extends": [
1542
+ "LineChart.impl",
1543
+ "interfaces",
1544
+ "Flex"
1545
+ ],
1546
+ "purpose": "LineChart component",
1547
+ "tags": [
1548
+ "modules"
1549
+ ]
1550
+ },
1551
+ "PieChart": {
1552
+ "group": "modules",
1553
+ "extends": [
1554
+ "PieChart.impl",
1555
+ "interfaces",
1556
+ "Flex"
1557
+ ],
1558
+ "purpose": "PieChart component",
1559
+ "tags": [
1560
+ "modules"
1561
+ ]
1562
+ },
1563
+ "LineBarChart": {
1564
+ "group": "modules",
1565
+ "extends": [
1566
+ "LineBarChart.impl",
1567
+ "interfaces",
1568
+ "Flex"
1569
+ ],
1570
+ "purpose": "LineBarChart component",
1571
+ "tags": [
1572
+ "modules"
1573
+ ]
1574
+ },
1575
+ "DataTooltip": {
1576
+ "group": "modules",
1577
+ "purpose": "DataTooltip component",
1578
+ "tags": [
1579
+ "modules"
1580
+ ]
1581
+ },
1582
+ "Legend": {
1583
+ "group": "modules",
1584
+ "purpose": "Legend component",
1585
+ "tags": [
1586
+ "modules"
1587
+ ]
1588
+ },
1589
+ "RadialGauge": {
1590
+ "group": "modules",
1591
+ "extends": [
1592
+ "Flex"
1593
+ ],
1594
+ "purpose": "RadialGauge component",
1595
+ "tags": [
1596
+ "modules"
1597
+ ]
1598
+ },
1599
+ "LinearGauge": {
1600
+ "group": "modules",
1601
+ "extends": [
1602
+ "Flex"
1603
+ ],
1604
+ "purpose": "LinearGauge component",
1605
+ "tags": [
1606
+ "modules"
1607
+ ]
1608
+ },
1609
+ "CodeBlock": {
1610
+ "group": "modules",
1611
+ "extends": [
1612
+ "CodeBlock.impl",
1613
+ "Flex"
1614
+ ],
1615
+ "purpose": "Syntax-highlighted code with optional live preview",
1616
+ "tags": [
1617
+ "docs",
1618
+ "content"
1619
+ ],
1620
+ "pairsWith": [
1621
+ "InlineCode",
1622
+ "Column"
1623
+ ]
1624
+ },
1625
+ "MediaUpload": {
1626
+ "group": "modules",
1627
+ "extends": [
1628
+ "MediaUpload.impl",
1629
+ "Flex"
1630
+ ],
1631
+ "purpose": "Image upload with compression for profile/settings",
1632
+ "tags": [
1633
+ "form",
1634
+ "settings"
1635
+ ],
1636
+ "pairsWith": [
1637
+ "Avatar",
1638
+ "Column",
1639
+ "Button"
1640
+ ]
1641
+ },
1642
+ "Schema": {
1643
+ "group": "modules",
1644
+ "purpose": "Schema component",
1645
+ "tags": [
1646
+ "modules"
1647
+ ]
1648
+ }
1649
+ }
1650
+ }