@once-ui-system/core 1.7.11 → 1.7.12

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 (325) hide show
  1. package/ai/catalog.json +1650 -0
  2. package/ai/catalog.seed.json +411 -0
  3. package/ai/components/Accordion.json +136 -0
  4. package/ai/components/AccordionGroup.json +128 -0
  5. package/ai/components/Animation.json +146 -0
  6. package/ai/components/Arrow.json +128 -0
  7. package/ai/components/AutoScroll.json +130 -0
  8. package/ai/components/Avatar.json +133 -0
  9. package/ai/components/AvatarGroup.json +129 -0
  10. package/ai/components/Background.json +131 -0
  11. package/ai/components/Badge.json +132 -0
  12. package/ai/components/Banner.json +122 -0
  13. package/ai/components/BarChart.json +123 -0
  14. package/ai/components/BlobFx.json +125 -0
  15. package/ai/components/BlockQuote.json +132 -0
  16. package/ai/components/Button.json +26 -0
  17. package/ai/components/Card.json +129 -0
  18. package/ai/components/Carousel.json +134 -0
  19. package/ai/components/CelebrationFx.json +132 -0
  20. package/ai/components/ChartHeader.json +130 -0
  21. package/ai/components/ChartStatus.json +12 -0
  22. package/ai/components/Checkbox.json +13 -0
  23. package/ai/components/Chip.json +132 -0
  24. package/ai/components/CodeBlock.json +122 -0
  25. package/ai/components/ColorInput.json +13 -0
  26. package/ai/components/Column.json +128 -0
  27. package/ai/components/CompareImage.json +126 -0
  28. package/ai/components/ContextMenu.json +22 -0
  29. package/ai/components/CountFx.json +82 -0
  30. package/ai/components/CountdownFx.json +11 -0
  31. package/ai/components/Cursor.json +9 -0
  32. package/ai/components/CursorCard.json +128 -0
  33. package/ai/components/DataTooltip.json +15 -0
  34. package/ai/components/DateInput.json +21 -0
  35. package/ai/components/DatePicker.json +143 -0
  36. package/ai/components/DateRangeInput.json +18 -0
  37. package/ai/components/DateRangePicker.json +129 -0
  38. package/ai/components/Dialog.json +134 -0
  39. package/ai/components/DialogProvider.json +8 -0
  40. package/ai/components/Dropdown.json +128 -0
  41. package/ai/components/DropdownWrapper.json +28 -0
  42. package/ai/components/EmojiPicker.json +129 -0
  43. package/ai/components/EmojiPickerDropdown.json +13 -0
  44. package/ai/components/Fade.json +130 -0
  45. package/ai/components/FadingLettersFx.json +77 -0
  46. package/ai/components/Feedback.json +132 -0
  47. package/ai/components/Flex.json +125 -0
  48. package/ai/components/FlipFx.json +133 -0
  49. package/ai/components/GlitchFx.json +128 -0
  50. package/ai/components/Grid.json +121 -0
  51. package/ai/components/Heading.json +75 -0
  52. package/ai/components/HeadingLink.json +127 -0
  53. package/ai/components/HeadingNav.json +124 -0
  54. package/ai/components/HoloFx.json +128 -0
  55. package/ai/components/Hover.json +130 -0
  56. package/ai/components/HoverCard.json +122 -0
  57. package/ai/components/Icon.json +132 -0
  58. package/ai/components/IconButton.json +22 -0
  59. package/ai/components/InfiniteScroll.json +130 -0
  60. package/ai/components/InlineCode.json +126 -0
  61. package/ai/components/Input.json +24 -0
  62. package/ai/components/InteractiveDetails.json +14 -0
  63. package/ai/components/Kbar.json +10 -0
  64. package/ai/components/Kbd.json +127 -0
  65. package/ai/components/Legend.json +14 -0
  66. package/ai/components/LetterFx.json +14 -0
  67. package/ai/components/Line.json +125 -0
  68. package/ai/components/LineBarChart.json +123 -0
  69. package/ai/components/LineChart.json +123 -0
  70. package/ai/components/LinearGauge.json +130 -0
  71. package/ai/components/LinearGradient.json +15 -0
  72. package/ai/components/List.json +127 -0
  73. package/ai/components/ListItem.json +77 -0
  74. package/ai/components/Logo.json +16 -0
  75. package/ai/components/LogoCloud.json +124 -0
  76. package/ai/components/Mask.json +131 -0
  77. package/ai/components/MasonryGrid.json +132 -0
  78. package/ai/components/MatrixFx.json +135 -0
  79. package/ai/components/Media.json +142 -0
  80. package/ai/components/MediaUpload.json +122 -0
  81. package/ai/components/MegaMenu.json +125 -0
  82. package/ai/components/MobileMegaMenu.json +125 -0
  83. package/ai/components/Modal.json +12 -0
  84. package/ai/components/NavIcon.json +127 -0
  85. package/ai/components/NumberInput.json +16 -0
  86. package/ai/components/OTPInput.json +13 -0
  87. package/ai/components/OgCard.json +135 -0
  88. package/ai/components/Option.json +137 -0
  89. package/ai/components/Particle.json +135 -0
  90. package/ai/components/PasswordInput.json +8 -0
  91. package/ai/components/PieChart.json +123 -0
  92. package/ai/components/ProgressBar.json +131 -0
  93. package/ai/components/Pulse.json +129 -0
  94. package/ai/components/RadialGauge.json +134 -0
  95. package/ai/components/RadialGradient.json +16 -0
  96. package/ai/components/RadioButton.json +17 -0
  97. package/ai/components/RevealFx.json +131 -0
  98. package/ai/components/Row.json +128 -0
  99. package/ai/components/Schema.json +17 -0
  100. package/ai/components/ScrollContainer.json +126 -0
  101. package/ai/components/ScrollToTop.json +124 -0
  102. package/ai/components/Scroller.json +128 -0
  103. package/ai/components/SegmentedControl.json +132 -0
  104. package/ai/components/Select.json +21 -0
  105. package/ai/components/ShineFx.json +80 -0
  106. package/ai/components/Skeleton.json +129 -0
  107. package/ai/components/Slider.json +17 -0
  108. package/ai/components/SmartLink.json +17 -0
  109. package/ai/components/Spinner.json +127 -0
  110. package/ai/components/SplitView.json +129 -0
  111. package/ai/components/StatusIndicator.json +128 -0
  112. package/ai/components/StyleOverlay.json +126 -0
  113. package/ai/components/StylePanel.json +125 -0
  114. package/ai/components/Swiper.json +130 -0
  115. package/ai/components/Switch.json +20 -0
  116. package/ai/components/Table.json +125 -0
  117. package/ai/components/Tag.json +129 -0
  118. package/ai/components/TagInput.json +12 -0
  119. package/ai/components/Text.json +72 -0
  120. package/ai/components/Textarea.json +24 -0
  121. package/ai/components/ThemeSwitcher.json +122 -0
  122. package/ai/components/TiltFx.json +126 -0
  123. package/ai/components/Timeline.json +126 -0
  124. package/ai/components/Toast.json +13 -0
  125. package/ai/components/Toaster.json +14 -0
  126. package/ai/components/ToggleButton.json +24 -0
  127. package/ai/components/Tooltip.json +129 -0
  128. package/ai/components/TypeFx.json +15 -0
  129. package/ai/components/User.json +15 -0
  130. package/ai/components/UserMenu.json +16 -0
  131. package/ai/components/WeatherFx.json +133 -0
  132. package/ai/examples/auth.tsx +105 -0
  133. package/ai/examples/blocks/Background6.tsx +25 -0
  134. package/ai/examples/blocks/Chat1.tsx +70 -0
  135. package/ai/examples/blocks/Dashboard1.tsx +404 -0
  136. package/ai/examples/blocks/Feed3.tsx +151 -0
  137. package/ai/examples/blocks/Footer1.tsx +30 -0
  138. package/ai/examples/blocks/Footer2.tsx +96 -0
  139. package/ai/examples/blocks/Footer3.tsx +127 -0
  140. package/ai/examples/blocks/Footer4.tsx +406 -0
  141. package/ai/examples/blocks/Header1.tsx +370 -0
  142. package/ai/examples/blocks/Header2.tsx +98 -0
  143. package/ai/examples/blocks/Header3.tsx +133 -0
  144. package/ai/examples/blocks/Header4.tsx +123 -0
  145. package/ai/examples/blocks/Productivity1.tsx +318 -0
  146. package/ai/examples/blocks/Roadmap1.tsx +133 -0
  147. package/ai/examples/blocks/Sidebar1.tsx +34 -0
  148. package/ai/examples/blocks/Sidebar2.tsx +17 -0
  149. package/ai/examples/blocks/Sidebar4.tsx +92 -0
  150. package/ai/examples/blocks/Sidebar5.tsx +73 -0
  151. package/ai/examples/blocks/Streaming1.tsx +353 -0
  152. package/ai/examples/blocks/Table1.tsx +303 -0
  153. package/ai/examples/blocks/Waitlist1.tsx +141 -0
  154. package/ai/examples/blocks/content/chat1content.ts +65 -0
  155. package/ai/examples/blocks/content/resources.ts +5 -0
  156. package/ai/examples/blocks/content/roadmap1content.ts +51 -0
  157. package/ai/examples/blocks/manifest.json +191 -0
  158. package/ai/examples/dashboard.tsx +150 -0
  159. package/ai/examples/marketing-hero.tsx +152 -0
  160. package/ai/examples/pricing.tsx +219 -0
  161. package/ai/examples/settings.tsx +140 -0
  162. package/ai/gotchas.json +85 -0
  163. package/ai/manifest.json +21 -0
  164. package/ai/rules.compact.md +73 -0
  165. package/ai/spec.json +2679 -2701
  166. package/ai/tasks/auth.json +23 -0
  167. package/ai/tasks/chat.json +28 -0
  168. package/ai/tasks/dashboard.json +39 -0
  169. package/ai/tasks/index.json +12 -0
  170. package/ai/tasks/marketing-hero.json +38 -0
  171. package/ai/tasks/pricing.json +42 -0
  172. package/ai/tasks/roadmap.json +22 -0
  173. package/ai/tasks/settings.json +34 -0
  174. package/dist/ai/catalog.json +1650 -0
  175. package/dist/ai/catalog.seed.json +411 -0
  176. package/dist/ai/components/Accordion.json +136 -0
  177. package/dist/ai/components/AccordionGroup.json +128 -0
  178. package/dist/ai/components/Animation.json +146 -0
  179. package/dist/ai/components/Arrow.json +128 -0
  180. package/dist/ai/components/AutoScroll.json +130 -0
  181. package/dist/ai/components/Avatar.json +133 -0
  182. package/dist/ai/components/AvatarGroup.json +129 -0
  183. package/dist/ai/components/Background.json +131 -0
  184. package/dist/ai/components/Badge.json +132 -0
  185. package/dist/ai/components/Banner.json +122 -0
  186. package/dist/ai/components/BarChart.json +123 -0
  187. package/dist/ai/components/BlobFx.json +125 -0
  188. package/dist/ai/components/BlockQuote.json +132 -0
  189. package/dist/ai/components/Button.json +26 -0
  190. package/dist/ai/components/Card.json +129 -0
  191. package/dist/ai/components/Carousel.json +134 -0
  192. package/dist/ai/components/CelebrationFx.json +132 -0
  193. package/dist/ai/components/ChartHeader.json +130 -0
  194. package/dist/ai/components/ChartStatus.json +12 -0
  195. package/dist/ai/components/Checkbox.json +13 -0
  196. package/dist/ai/components/Chip.json +132 -0
  197. package/dist/ai/components/CodeBlock.json +122 -0
  198. package/dist/ai/components/ColorInput.json +13 -0
  199. package/dist/ai/components/Column.json +128 -0
  200. package/dist/ai/components/CompareImage.json +126 -0
  201. package/dist/ai/components/ContextMenu.json +22 -0
  202. package/dist/ai/components/CountFx.json +82 -0
  203. package/dist/ai/components/CountdownFx.json +11 -0
  204. package/dist/ai/components/Cursor.json +9 -0
  205. package/dist/ai/components/CursorCard.json +128 -0
  206. package/dist/ai/components/DataTooltip.json +15 -0
  207. package/dist/ai/components/DateInput.json +21 -0
  208. package/dist/ai/components/DatePicker.json +143 -0
  209. package/dist/ai/components/DateRangeInput.json +18 -0
  210. package/dist/ai/components/DateRangePicker.json +129 -0
  211. package/dist/ai/components/Dialog.json +134 -0
  212. package/dist/ai/components/DialogProvider.json +8 -0
  213. package/dist/ai/components/Dropdown.json +128 -0
  214. package/dist/ai/components/DropdownWrapper.json +28 -0
  215. package/dist/ai/components/EmojiPicker.json +129 -0
  216. package/dist/ai/components/EmojiPickerDropdown.json +13 -0
  217. package/dist/ai/components/Fade.json +130 -0
  218. package/dist/ai/components/FadingLettersFx.json +77 -0
  219. package/dist/ai/components/Feedback.json +132 -0
  220. package/dist/ai/components/Flex.json +125 -0
  221. package/dist/ai/components/FlipFx.json +133 -0
  222. package/dist/ai/components/GlitchFx.json +128 -0
  223. package/dist/ai/components/Grid.json +121 -0
  224. package/dist/ai/components/Heading.json +75 -0
  225. package/dist/ai/components/HeadingLink.json +127 -0
  226. package/dist/ai/components/HeadingNav.json +124 -0
  227. package/dist/ai/components/HoloFx.json +128 -0
  228. package/dist/ai/components/Hover.json +130 -0
  229. package/dist/ai/components/HoverCard.json +122 -0
  230. package/dist/ai/components/Icon.json +132 -0
  231. package/dist/ai/components/IconButton.json +22 -0
  232. package/dist/ai/components/InfiniteScroll.json +130 -0
  233. package/dist/ai/components/InlineCode.json +126 -0
  234. package/dist/ai/components/Input.json +24 -0
  235. package/dist/ai/components/InteractiveDetails.json +14 -0
  236. package/dist/ai/components/Kbar.json +10 -0
  237. package/dist/ai/components/Kbd.json +127 -0
  238. package/dist/ai/components/Legend.json +14 -0
  239. package/dist/ai/components/LetterFx.json +14 -0
  240. package/dist/ai/components/Line.json +125 -0
  241. package/dist/ai/components/LineBarChart.json +123 -0
  242. package/dist/ai/components/LineChart.json +123 -0
  243. package/dist/ai/components/LinearGauge.json +130 -0
  244. package/dist/ai/components/LinearGradient.json +15 -0
  245. package/dist/ai/components/List.json +127 -0
  246. package/dist/ai/components/ListItem.json +77 -0
  247. package/dist/ai/components/Logo.json +16 -0
  248. package/dist/ai/components/LogoCloud.json +124 -0
  249. package/dist/ai/components/Mask.json +131 -0
  250. package/dist/ai/components/MasonryGrid.json +132 -0
  251. package/dist/ai/components/MatrixFx.json +135 -0
  252. package/dist/ai/components/Media.json +142 -0
  253. package/dist/ai/components/MediaUpload.json +122 -0
  254. package/dist/ai/components/MegaMenu.json +125 -0
  255. package/dist/ai/components/MobileMegaMenu.json +125 -0
  256. package/dist/ai/components/Modal.json +12 -0
  257. package/dist/ai/components/NavIcon.json +127 -0
  258. package/dist/ai/components/NumberInput.json +16 -0
  259. package/dist/ai/components/OTPInput.json +13 -0
  260. package/dist/ai/components/OgCard.json +135 -0
  261. package/dist/ai/components/Option.json +137 -0
  262. package/dist/ai/components/Particle.json +135 -0
  263. package/dist/ai/components/PasswordInput.json +8 -0
  264. package/dist/ai/components/PieChart.json +123 -0
  265. package/dist/ai/components/ProgressBar.json +131 -0
  266. package/dist/ai/components/Pulse.json +129 -0
  267. package/dist/ai/components/RadialGauge.json +134 -0
  268. package/dist/ai/components/RadialGradient.json +16 -0
  269. package/dist/ai/components/RadioButton.json +17 -0
  270. package/dist/ai/components/RevealFx.json +131 -0
  271. package/dist/ai/components/Row.json +128 -0
  272. package/dist/ai/components/Schema.json +17 -0
  273. package/dist/ai/components/ScrollContainer.json +126 -0
  274. package/dist/ai/components/ScrollToTop.json +124 -0
  275. package/dist/ai/components/Scroller.json +128 -0
  276. package/dist/ai/components/SegmentedControl.json +132 -0
  277. package/dist/ai/components/Select.json +21 -0
  278. package/dist/ai/components/ShineFx.json +80 -0
  279. package/dist/ai/components/Skeleton.json +129 -0
  280. package/dist/ai/components/Slider.json +17 -0
  281. package/dist/ai/components/SmartLink.json +17 -0
  282. package/dist/ai/components/Spinner.json +127 -0
  283. package/dist/ai/components/SplitView.json +129 -0
  284. package/dist/ai/components/StatusIndicator.json +128 -0
  285. package/dist/ai/components/StyleOverlay.json +126 -0
  286. package/dist/ai/components/StylePanel.json +125 -0
  287. package/dist/ai/components/Swiper.json +130 -0
  288. package/dist/ai/components/Switch.json +20 -0
  289. package/dist/ai/components/Table.json +125 -0
  290. package/dist/ai/components/Tag.json +129 -0
  291. package/dist/ai/components/TagInput.json +12 -0
  292. package/dist/ai/components/Text.json +72 -0
  293. package/dist/ai/components/Textarea.json +24 -0
  294. package/dist/ai/components/ThemeSwitcher.json +122 -0
  295. package/dist/ai/components/TiltFx.json +126 -0
  296. package/dist/ai/components/Timeline.json +126 -0
  297. package/dist/ai/components/Toast.json +13 -0
  298. package/dist/ai/components/Toaster.json +14 -0
  299. package/dist/ai/components/ToggleButton.json +24 -0
  300. package/dist/ai/components/Tooltip.json +129 -0
  301. package/dist/ai/components/TypeFx.json +15 -0
  302. package/dist/ai/components/User.json +15 -0
  303. package/dist/ai/components/UserMenu.json +16 -0
  304. package/dist/ai/components/WeatherFx.json +133 -0
  305. package/dist/ai/eval-tasks.md +71 -0
  306. package/dist/ai/examples/blocks/manifest.json +191 -0
  307. package/dist/ai/gotchas.json +85 -0
  308. package/dist/ai/manifest.json +21 -0
  309. package/dist/ai/recipes.md +149 -0
  310. package/dist/ai/rules.compact.md +73 -0
  311. package/dist/ai/rules.md +217 -0
  312. package/dist/ai/spec.json +2680 -0
  313. package/dist/ai/tasks/auth.json +23 -0
  314. package/dist/ai/tasks/chat.json +28 -0
  315. package/dist/ai/tasks/dashboard.json +39 -0
  316. package/dist/ai/tasks/index.json +12 -0
  317. package/dist/ai/tasks/marketing-hero.json +38 -0
  318. package/dist/ai/tasks/pricing.json +42 -0
  319. package/dist/ai/tasks/roadmap.json +22 -0
  320. package/dist/ai/tasks/settings.json +34 -0
  321. package/dist/data/emoji-data.json +0 -18
  322. package/dist/package.json +13 -2
  323. package/package.json +139 -127
  324. package/LICENSE.md +0 -21
  325. package/next-env.d.ts +0 -5
@@ -0,0 +1,191 @@
1
+ {
2
+ "version": 1,
3
+ "description": "Once UI Pro block references for agent codegen — canonical composition patterns at production quality. Reference-only; not all blocks are runnable standalone.",
4
+ "usage": "Load the block matching your task intent. Mimic structure and prop patterns; adapt data and copy.",
5
+ "blocks": [
6
+ {
7
+ "id": "Header1",
8
+ "file": "Header1.tsx",
9
+ "title": "App header with MegaMenu + Kbar",
10
+ "tags": ["navigation", "header", "marketing"],
11
+ "components": ["MegaMenu", "MobileMegaMenu", "Kbar", "Logo", "UserMenu", "NavIcon", "SmartLink"],
12
+ "patterns": ["sticky header", "mega menu sections with featured links", "command palette ⌘K"],
13
+ "tasks": ["marketing-hero", "dashboard"],
14
+ "standalone": true
15
+ },
16
+ {
17
+ "id": "Header2",
18
+ "file": "Header2.tsx",
19
+ "title": "Minimal marketing header",
20
+ "tags": ["navigation", "header", "marketing"],
21
+ "components": ["Logo", "Row", "Button", "SmartLink"],
22
+ "tasks": ["marketing-hero"],
23
+ "standalone": true
24
+ },
25
+ {
26
+ "id": "Header3",
27
+ "file": "Header3.tsx",
28
+ "title": "Streaming/media header",
29
+ "tags": ["navigation", "header", "streaming"],
30
+ "components": ["Logo", "IconButton", "UserMenu"],
31
+ "tasks": ["streaming"],
32
+ "standalone": true
33
+ },
34
+ {
35
+ "id": "Header4",
36
+ "file": "Header4.tsx",
37
+ "title": "Compact docs-style header",
38
+ "tags": ["navigation", "header", "docs"],
39
+ "components": ["Logo", "UserMenu", "ToggleButton", "SmartLink"],
40
+ "tasks": ["settings"],
41
+ "standalone": true
42
+ },
43
+ {
44
+ "id": "Footer1",
45
+ "file": "Footer1.tsx",
46
+ "title": "Minimal footer bar",
47
+ "tags": ["footer"],
48
+ "components": ["Row", "IconButton", "Text"],
49
+ "standalone": true
50
+ },
51
+ {
52
+ "id": "Footer2",
53
+ "file": "Footer2.tsx",
54
+ "title": "Footer with CTA",
55
+ "tags": ["footer", "marketing"],
56
+ "components": ["Column", "Button", "SmartLink"],
57
+ "standalone": true
58
+ },
59
+ {
60
+ "id": "Footer3",
61
+ "file": "Footer3.tsx",
62
+ "title": "Multi-column sitemap footer",
63
+ "tags": ["footer", "marketing"],
64
+ "components": ["Grid", "SmartLink", "Tag", "Logo", "IconButton"],
65
+ "patterns": ["5-column nav grid with responsive collapse"],
66
+ "tasks": ["marketing-hero"],
67
+ "standalone": true
68
+ },
69
+ {
70
+ "id": "Footer4",
71
+ "file": "Footer4.tsx",
72
+ "title": "Premium footer with TypeFx + Particle",
73
+ "tags": ["footer", "marketing", "effect"],
74
+ "components": ["Background", "Particle", "TypeFx", "Mask", "Avatar", "Tag"],
75
+ "patterns": ["animated wordmark", "particle decoration", "masked gradient"],
76
+ "tasks": ["marketing-hero"],
77
+ "standalone": true
78
+ },
79
+ {
80
+ "id": "Waitlist1",
81
+ "file": "Waitlist1.tsx",
82
+ "title": "Waitlist / coming-soon hero",
83
+ "tags": ["marketing", "hero", "waitlist"],
84
+ "components": ["RevealFx", "CountFx", "AvatarGroup", "Input", "Badge", "Background"],
85
+ "patterns": ["custom cursor SVG", "subscriber count animation", "email capture with validation"],
86
+ "tasks": ["marketing-hero"],
87
+ "related": ["Background6.tsx"],
88
+ "standalone": true
89
+ },
90
+ {
91
+ "id": "Dashboard1",
92
+ "file": "Dashboard1.tsx",
93
+ "title": "Full analytics dashboard shell",
94
+ "tags": ["dashboard", "data"],
95
+ "components": ["Card", "LineChart", "Grid", "Scroller", "StatusIndicator", "Table1"],
96
+ "patterns": ["StatCard with sparkline chart overlay", "activity feed with Card rows", "orders table"],
97
+ "tasks": ["dashboard"],
98
+ "compose": ["Sidebar1.tsx", "Header1.tsx", "Table1.tsx"],
99
+ "standalone": false
100
+ },
101
+ {
102
+ "id": "Table1",
103
+ "file": "Table1.tsx",
104
+ "title": "Data table with search, pagination, selection",
105
+ "tags": ["data", "dashboard", "table"],
106
+ "components": ["Input", "Checkbox", "DropdownWrapper", "CountFx", "IconButton", "ToggleButton"],
107
+ "patterns": ["custom render columns", "selectable rows", "items per page"],
108
+ "tasks": ["dashboard", "chat"],
109
+ "standalone": true
110
+ },
111
+ {
112
+ "id": "Chat1",
113
+ "file": "Chat1.tsx",
114
+ "title": "Three-pane chat layout",
115
+ "tags": ["chat", "layout"],
116
+ "components": ["SplitView pattern via Row", "Sidebar4", "Feed3", "Sidebar5", "Table1"],
117
+ "patterns": ["channel sidebar + feed + members panel", "view switching"],
118
+ "tasks": ["chat"],
119
+ "compose": ["Feed3.tsx", "Sidebar4.tsx", "Sidebar5.tsx"],
120
+ "standalone": false
121
+ },
122
+ {
123
+ "id": "Feed3",
124
+ "file": "Feed3.tsx",
125
+ "title": "Chat message feed + composer",
126
+ "tags": ["chat", "social"],
127
+ "components": ["Avatar", "Textarea", "EmojiPickerDropdown", "Media", "OgCard", "IconButton"],
128
+ "patterns": ["thread messages without bubbles", "attachment grid", "reactions row", "emoji picker prefix"],
129
+ "tasks": ["chat"],
130
+ "standalone": true
131
+ },
132
+ {
133
+ "id": "Sidebar4",
134
+ "file": "Sidebar4.tsx",
135
+ "title": "Chat channel sidebar",
136
+ "tags": ["chat", "sidebar", "navigation"],
137
+ "components": ["Scroller", "ToggleButton", "Fade", "Media", "Avatar"],
138
+ "patterns": ["cover image header with Fade strip", "grouped channel list", "user status footer"],
139
+ "tasks": ["chat"],
140
+ "standalone": true
141
+ },
142
+ {
143
+ "id": "Sidebar5",
144
+ "file": "Sidebar5.tsx",
145
+ "title": "Chat members panel",
146
+ "tags": ["chat", "sidebar"],
147
+ "components": ["Card", "Avatar", "DropdownWrapper", "Heading"],
148
+ "tasks": ["chat"],
149
+ "standalone": true
150
+ },
151
+ {
152
+ "id": "Roadmap1",
153
+ "file": "Roadmap1.tsx",
154
+ "title": "Kanban-style product roadmap",
155
+ "tags": ["roadmap", "content", "community"],
156
+ "components": ["Card", "StatusIndicator", "User", "Scroller"],
157
+ "patterns": ["horizontal column scroll", "Card for linked tasks / Column for static", "brand dot product header"],
158
+ "tasks": ["roadmap"],
159
+ "standalone": true
160
+ },
161
+ {
162
+ "id": "Streaming1",
163
+ "file": "Streaming1.tsx",
164
+ "title": "Video streaming page",
165
+ "tags": ["streaming", "media", "marketing"],
166
+ "components": ["Media", "Carousel", "ProgressBar", "Fade", "Scroller"],
167
+ "patterns": ["floating controls portal", "episode carousel", "hero video player"],
168
+ "compose": ["Header3.tsx", "Footer2.tsx"],
169
+ "standalone": false
170
+ },
171
+ {
172
+ "id": "Productivity1",
173
+ "file": "Productivity1.tsx",
174
+ "title": "Issue board / kanban productivity",
175
+ "tags": ["productivity", "dashboard"],
176
+ "components": ["Card", "AvatarGroup", "IconButton", "Scroller"],
177
+ "patterns": ["horizontal issue columns", "Card task items with avatars"],
178
+ "compose": ["Sidebar2.tsx"],
179
+ "standalone": false
180
+ }
181
+ ],
182
+ "byTask": {
183
+ "marketing-hero": ["Waitlist1", "Header1", "Footer4", "Footer3"],
184
+ "dashboard": ["Dashboard1", "Table1", "Header1", "Sidebar1"],
185
+ "chat": ["Chat1", "Feed3", "Sidebar4", "Sidebar5", "Table1"],
186
+ "settings": ["Header4", "Sidebar1"],
187
+ "pricing": ["Header2", "Footer2"],
188
+ "auth": ["Header2"],
189
+ "roadmap": ["Roadmap1"]
190
+ }
191
+ }
@@ -0,0 +1,150 @@
1
+ "use client";
2
+
3
+ /**
4
+ * Gold example: dashboard
5
+ * Target: KPI stat row, chart placeholders, recent activity table
6
+ */
7
+ import { useEffect, useRef, useState } from "react";
8
+ import {
9
+ Column,
10
+ CountFx,
11
+ Grid,
12
+ Heading,
13
+ Icon,
14
+ Line,
15
+ RevealFx,
16
+ Row,
17
+ SegmentedControl,
18
+ StatusIndicator,
19
+ Table,
20
+ Tag,
21
+ Text,
22
+ useInViewport,
23
+ } from "@once-ui-system/core";
24
+
25
+ const stats = [
26
+ { label: "Revenue", value: 128400, prefix: "$", change: "+12.4%", up: true },
27
+ { label: "Active users", value: 2847, change: "+8.1%", up: true },
28
+ { label: "Churn rate", value: 2.1, suffix: "%", change: "−0.3%", up: true },
29
+ { label: "Support tickets", value: 34, change: "+4", up: false },
30
+ ];
31
+
32
+ const activity = {
33
+ headers: [
34
+ { content: "Event", key: "event" },
35
+ { content: "User", key: "user" },
36
+ { content: "Status", key: "status" },
37
+ { content: "Time", key: "time" },
38
+ ],
39
+ rows: [
40
+ ["Plan upgraded to Pro", "jane@acme.co", <Tag size="s" variant="success">Completed</Tag>, "2m ago"],
41
+ ["New signup", "alex@studio.io", <Tag size="s" variant="brand">New</Tag>, "14m ago"],
42
+ ["Payment failed", "ops@build.dev", <Tag size="s" variant="danger">Action</Tag>, "1h ago"],
43
+ ],
44
+ };
45
+
46
+ export function DashboardExample() {
47
+ const [range, setRange] = useState("7d");
48
+ const statsRef = useRef<HTMLDivElement>(null);
49
+ const inViewport = useInViewport(statsRef);
50
+ const [seen, setSeen] = useState(false);
51
+ useEffect(() => {
52
+ if (inViewport) setSeen(true);
53
+ }, [inViewport]);
54
+
55
+ return (
56
+ <Column as="main" fillWidth horizontal="center" paddingY="48" paddingX="24" gap="40">
57
+ <Column fillWidth maxWidth="l" gap="40">
58
+ <Row fillWidth horizontal="between" vertical="end" gap="24" s={{ direction: "column", horizontal: "start" }}>
59
+ <Column gap="8">
60
+ <Text variant="label-default-s" onBackground="brand-medium">
61
+ Analytics
62
+ </Text>
63
+ <Heading as="h1" variant="display-strong-s">
64
+ Overview
65
+ </Heading>
66
+ </Column>
67
+ <SegmentedControl
68
+ selected={range}
69
+ onToggle={setRange}
70
+ buttons={[
71
+ { value: "7d", label: "7 days" },
72
+ { value: "30d", label: "30 days" },
73
+ { value: "90d", label: "90 days" },
74
+ ]}
75
+ />
76
+ </Row>
77
+
78
+ <Grid ref={statsRef} columns="4" gap="16" m={{ columns: 2 }} s={{ columns: 1 }}>
79
+ {stats.map((stat, index) => (
80
+ <RevealFx key={stat.label} fill trigger={seen} translateY="8" delay={index * 0.1}>
81
+ <Column background="surface" border="neutral-alpha-weak" radius="l" padding="24" gap="16">
82
+ <Row fillWidth horizontal="between" vertical="center">
83
+ <Text variant="label-default-s" onBackground="neutral-weak">
84
+ {stat.label}
85
+ </Text>
86
+ <StatusIndicator color={stat.up ? "green" : "orange"} />
87
+ </Row>
88
+ <Row vertical="end" gap="4">
89
+ {stat.prefix && (
90
+ <Text variant="display-strong-xs">{stat.prefix}</Text>
91
+ )}
92
+ <CountFx
93
+ variant="display-strong-xs"
94
+ value={seen ? stat.value : 0}
95
+ speed={1200}
96
+ separator=","
97
+ />
98
+ {stat.suffix && (
99
+ <Text variant="display-strong-xs">{stat.suffix}</Text>
100
+ )}
101
+ </Row>
102
+ <Text variant="label-default-s" onBackground={stat.up ? "success-medium" : "warning-medium"}>
103
+ {stat.change}
104
+ </Text>
105
+ </Column>
106
+ </RevealFx>
107
+ ))}
108
+ </Grid>
109
+
110
+ <Grid columns="2" gap="24" s={{ columns: 1 }}>
111
+ <Column background="surface" border="neutral-alpha-weak" radius="l" padding="24" gap="16" minHeight={32}>
112
+ <Heading as="h2" variant="heading-strong-s">
113
+ Revenue trend
114
+ </Heading>
115
+ <Column flex={1} center background="neutral-alpha-weak" radius="m" padding="48">
116
+ <Icon name="linearGauge" size="l" onBackground="neutral-weak" />
117
+ <Text variant="label-default-s" onBackground="neutral-weak">
118
+ Chart area — use recharts or your data viz module
119
+ </Text>
120
+ </Column>
121
+ </Column>
122
+ <Column background="surface" border="neutral-alpha-weak" radius="l" padding="24" gap="16" minHeight={32}>
123
+ <Heading as="h2" variant="heading-strong-s">
124
+ Signups by channel
125
+ </Heading>
126
+ <Column flex={1} center background="neutral-alpha-weak" radius="m" padding="48">
127
+ <Icon name="radialGauge" size="l" onBackground="neutral-weak" />
128
+ <Text variant="label-default-s" onBackground="neutral-weak">
129
+ Chart area
130
+ </Text>
131
+ </Column>
132
+ </Column>
133
+ </Grid>
134
+
135
+ <Column background="surface" border="neutral-alpha-weak" radius="l" padding="24" gap="24">
136
+ <Row fillWidth horizontal="between" vertical="center">
137
+ <Heading as="h2" variant="heading-strong-s">
138
+ Recent activity
139
+ </Heading>
140
+ <Text variant="label-default-s" onBackground="brand-medium" cursor="interactive">
141
+ View all
142
+ </Text>
143
+ </Row>
144
+ <Line />
145
+ <Table fillWidth data={activity} />
146
+ </Column>
147
+ </Column>
148
+ </Column>
149
+ );
150
+ }
@@ -0,0 +1,152 @@
1
+ "use client";
2
+
3
+ /**
4
+ * Gold example: marketing-hero
5
+ * Target: once-ui.com homepage — glow + dots, display headline, feature grid, CTAs
6
+ */
7
+ import {
8
+ Background,
9
+ Button,
10
+ Column,
11
+ Grid,
12
+ Heading,
13
+ Icon,
14
+ Line,
15
+ RevealFx,
16
+ Row,
17
+ Text,
18
+ } from "@once-ui-system/core";
19
+
20
+ const features = [
21
+ {
22
+ icon: "document" as const,
23
+ title: "Contexts",
24
+ description: "App-level state for themes, toasts, icons and layouts.",
25
+ },
26
+ {
27
+ icon: "sparkle" as const,
28
+ title: "Basics",
29
+ description: "Wrappers and utilities that make complex functionality approachable.",
30
+ },
31
+ {
32
+ icon: "radialGauge" as const,
33
+ title: "Form controls",
34
+ description: "Interactive elements for forms and data entry.",
35
+ },
36
+ {
37
+ icon: "document" as const,
38
+ title: "Static elements",
39
+ description: "Feedbacks, badges, tags, skeletons and more.",
40
+ },
41
+ {
42
+ icon: "linearGauge" as const,
43
+ title: "Data visualization",
44
+ description: "Responsive, interactive charts and gauges.",
45
+ },
46
+ {
47
+ icon: "sparkle" as const,
48
+ title: "Modules",
49
+ description: "High functionality, minimal syntax: megamenu, command palette.",
50
+ },
51
+ ];
52
+
53
+ export function MarketingHeroExample() {
54
+ return (
55
+ <Column as="main" fillWidth horizontal="center" gap="104" paddingBottom="104">
56
+ {/* Full-bleed hero — ambient layer outside maxWidth */}
57
+ <Column fillWidth horizontal="center" paddingY="80">
58
+ <Background
59
+ position="absolute"
60
+ top="0"
61
+ left="0"
62
+ fill
63
+ pointerEvents="none"
64
+ gradient={{
65
+ display: true,
66
+ colorStart: "brand-alpha-medium",
67
+ colorEnd: "static-transparent",
68
+ x: 50,
69
+ y: 0,
70
+ width: 150,
71
+ height: 80,
72
+ opacity: 60,
73
+ }}
74
+ dots={{ display: true, color: "neutral-alpha-weak", size: "2", opacity: 40 }}
75
+ />
76
+ <Column zIndex={1} horizontal="center" gap="24" maxWidth={48}>
77
+ <RevealFx translateY="16">
78
+ <Column horizontal="center" gap="16">
79
+ <Text variant="label-default-s" onBackground="brand-medium">
80
+ v1.7 — Discover what's new
81
+ </Text>
82
+ <Heading as="h1" variant="display-strong-l" align="center">
83
+ Write 70% less code with human-readable, machine-writable syntax
84
+ </Heading>
85
+ </Column>
86
+ </RevealFx>
87
+ <RevealFx delay={0.1} translateY="16">
88
+ <Text variant="body-default-l" onBackground="neutral-weak" align="center">
89
+ Build semantic layouts with Row, Column and Grid. Add 100+ pre-styled components.
90
+ Manage themes in a single file.
91
+ </Text>
92
+ </RevealFx>
93
+ <RevealFx delay={0.2} translateY="16">
94
+ <Row gap="12" s={{ direction: "column" }}>
95
+ <Button arrowIcon>View docs</Button>
96
+ <Button variant="secondary" suffixIcon="arrowUpRight">
97
+ Discover Pro
98
+ </Button>
99
+ </Row>
100
+ </RevealFx>
101
+ </Column>
102
+ </Column>
103
+
104
+ {/* Feature grid — left-aligned section header, not repeated centered blocks */}
105
+ <Column fillWidth horizontal="center">
106
+ <Column fillWidth maxWidth="l" gap="40">
107
+ <Column gap="12" maxWidth={32}>
108
+ <Text variant="label-default-s" onBackground="brand-medium">
109
+ Components
110
+ </Text>
111
+ <Heading as="h2" variant="display-strong-xs">
112
+ Copy and paste. Insert from 100+ open-source, pre-styled components.
113
+ </Heading>
114
+ </Column>
115
+ <Grid columns="3" gap="24" m={{ columns: 2 }} s={{ columns: 1 }}>
116
+ {features.map((feature) => (
117
+ <Column
118
+ key={feature.title}
119
+ background="surface"
120
+ border="neutral-alpha-weak"
121
+ radius="l"
122
+ padding="24"
123
+ gap="16"
124
+ >
125
+ <Row
126
+ center
127
+ width={10}
128
+ height={10}
129
+ radius="m"
130
+ background="brand-alpha-weak"
131
+ border="brand-alpha-medium"
132
+ >
133
+ <Icon name={feature.icon} size="s" onBackground="brand-medium" />
134
+ </Row>
135
+ <Heading as="h3" variant="heading-strong-s">
136
+ {feature.title}
137
+ </Heading>
138
+ <Text variant="body-default-s" onBackground="neutral-weak">
139
+ {feature.description}
140
+ </Text>
141
+ </Column>
142
+ ))}
143
+ </Grid>
144
+ </Column>
145
+ </Column>
146
+
147
+ <Column fillWidth horizontal="center">
148
+ <Line width="40" />
149
+ </Column>
150
+ </Column>
151
+ );
152
+ }