@once-ui-system/core 1.7.12 → 1.8.0

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 (409) 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 +195 -634
  5. package/ai/components/Banner.json +2 -2
  6. package/ai/components/BlobFx.json +2 -2
  7. package/ai/components/Carousel.json +1 -0
  8. package/ai/components/ChartHeader.json +2 -2
  9. package/ai/components/Checkbox.json +2 -1
  10. package/ai/components/CompareImage.json +2 -1
  11. package/ai/components/ContextMenu.json +2 -2
  12. package/ai/components/Dialog.json +2 -0
  13. package/ai/components/HoverCard.json +2 -2
  14. package/ai/components/InfiniteScroll.json +2 -2
  15. package/ai/components/OgCard.json +3 -2
  16. package/ai/components/RadioButton.json +2 -1
  17. package/ai/components/ScrollContainer.json +2 -2
  18. package/ai/components/SegmentedControl.json +2 -2
  19. package/ai/components/Select.json +1 -1
  20. package/ai/components/SplitView.json +2 -2
  21. package/ai/components/Swiper.json +1 -0
  22. package/ai/components/Table.json +17 -2
  23. package/ai/components/ThemeSwitcher.json +2 -2
  24. package/ai/components/Tooltip.json +2 -2
  25. package/ai/examples/blocks/content/chat1content.ts +2 -0
  26. package/ai/examples/dashboard.tsx +1 -1
  27. package/ai/examples/settings.tsx +32 -28
  28. package/ai/manifest.json +2 -2
  29. package/ai/spec.json +64 -68
  30. package/dist/AGENTS.md +53 -0
  31. package/dist/README.md +27 -0
  32. package/dist/agent/once-ui-codegen.mdc +27 -0
  33. package/dist/ai/catalog.json +195 -634
  34. package/dist/ai/components/Banner.json +2 -2
  35. package/dist/ai/components/BlobFx.json +2 -2
  36. package/dist/ai/components/Carousel.json +1 -0
  37. package/dist/ai/components/ChartHeader.json +2 -2
  38. package/dist/ai/components/Checkbox.json +2 -1
  39. package/dist/ai/components/CompareImage.json +2 -1
  40. package/dist/ai/components/ContextMenu.json +2 -2
  41. package/dist/ai/components/Dialog.json +2 -0
  42. package/dist/ai/components/HoverCard.json +2 -2
  43. package/dist/ai/components/InfiniteScroll.json +2 -2
  44. package/dist/ai/components/OgCard.json +3 -2
  45. package/dist/ai/components/RadioButton.json +2 -1
  46. package/dist/ai/components/ScrollContainer.json +2 -2
  47. package/dist/ai/components/SegmentedControl.json +2 -2
  48. package/dist/ai/components/Select.json +1 -1
  49. package/dist/ai/components/SplitView.json +2 -2
  50. package/dist/ai/components/Swiper.json +1 -0
  51. package/dist/ai/components/Table.json +17 -2
  52. package/dist/ai/components/ThemeSwitcher.json +2 -2
  53. package/dist/ai/components/Tooltip.json +2 -2
  54. package/dist/ai/manifest.json +2 -2
  55. package/dist/ai/spec.json +64 -68
  56. package/dist/components/Accordion.js +1 -1
  57. package/dist/components/Accordion.js.map +1 -1
  58. package/dist/components/AccordionGroup.d.ts +1 -1
  59. package/dist/components/AccordionGroup.d.ts.map +1 -1
  60. package/dist/components/AccordionGroup.js +3 -3
  61. package/dist/components/AccordionGroup.js.map +1 -1
  62. package/dist/components/Animation.d.ts +1 -1
  63. package/dist/components/Animation.d.ts.map +1 -1
  64. package/dist/components/Arrow.d.ts +1 -1
  65. package/dist/components/Arrow.d.ts.map +1 -1
  66. package/dist/components/Arrow.js +4 -4
  67. package/dist/components/Arrow.js.map +1 -1
  68. package/dist/components/ArrowNavigationContext.d.ts +2 -1
  69. package/dist/components/ArrowNavigationContext.d.ts.map +1 -1
  70. package/dist/components/ArrowNavigationContext.js +5 -3
  71. package/dist/components/ArrowNavigationContext.js.map +1 -1
  72. package/dist/components/Avatar.d.ts +2 -2
  73. package/dist/components/Avatar.d.ts.map +1 -1
  74. package/dist/components/AvatarGroup.js +1 -1
  75. package/dist/components/AvatarGroup.js.map +1 -1
  76. package/dist/components/Background.js +1 -1
  77. package/dist/components/Background.js.map +1 -1
  78. package/dist/components/Badge.js +1 -1
  79. package/dist/components/Badge.js.map +1 -1
  80. package/dist/components/Banner.d.ts.map +1 -1
  81. package/dist/components/Banner.js +1 -0
  82. package/dist/components/Banner.js.map +1 -1
  83. package/dist/components/BlobFx.d.ts +1 -1
  84. package/dist/components/BlobFx.d.ts.map +1 -1
  85. package/dist/components/BlobFx.js +3 -2
  86. package/dist/components/BlobFx.js.map +1 -1
  87. package/dist/components/Button.js +1 -1
  88. package/dist/components/Button.js.map +1 -1
  89. package/dist/components/Card.js +1 -1
  90. package/dist/components/Card.js.map +1 -1
  91. package/dist/components/Carousel.d.ts +3 -2
  92. package/dist/components/Carousel.d.ts.map +1 -1
  93. package/dist/components/Carousel.js +5 -5
  94. package/dist/components/Carousel.js.map +1 -1
  95. package/dist/components/Checkbox.d.ts +1 -0
  96. package/dist/components/Checkbox.d.ts.map +1 -1
  97. package/dist/components/Checkbox.js +5 -5
  98. package/dist/components/Checkbox.js.map +1 -1
  99. package/dist/components/Chip.js +1 -1
  100. package/dist/components/Chip.js.map +1 -1
  101. package/dist/components/ClientFlex.d.ts.map +1 -1
  102. package/dist/components/ClientFlex.js +124 -5
  103. package/dist/components/ClientFlex.js.map +1 -1
  104. package/dist/components/CompareImage.d.ts +2 -1
  105. package/dist/components/CompareImage.d.ts.map +1 -1
  106. package/dist/components/CompareImage.js +4 -4
  107. package/dist/components/CompareImage.js.map +1 -1
  108. package/dist/components/ContextMenu.d.ts +2 -2
  109. package/dist/components/ContextMenu.d.ts.map +1 -1
  110. package/dist/components/ContextMenu.js +3 -3
  111. package/dist/components/ContextMenu.js.map +1 -1
  112. package/dist/components/CountFx.d.ts +1 -1
  113. package/dist/components/CountFx.d.ts.map +1 -1
  114. package/dist/components/CountFx.js +6 -6
  115. package/dist/components/CountFx.js.map +1 -1
  116. package/dist/components/CountdownFx.d.ts +1 -1
  117. package/dist/components/CountdownFx.d.ts.map +1 -1
  118. package/dist/components/CountdownFx.js +4 -4
  119. package/dist/components/CountdownFx.js.map +1 -1
  120. package/dist/components/Cursor.d.ts +1 -1
  121. package/dist/components/Cursor.d.ts.map +1 -1
  122. package/dist/components/Cursor.js +6 -6
  123. package/dist/components/Cursor.js.map +1 -1
  124. package/dist/components/DateInput.d.ts +1 -1
  125. package/dist/components/DateInput.d.ts.map +1 -1
  126. package/dist/components/DateInput.js +6 -5
  127. package/dist/components/DateInput.js.map +1 -1
  128. package/dist/components/DatePicker.d.ts.map +1 -1
  129. package/dist/components/DatePicker.js +5 -5
  130. package/dist/components/DatePicker.js.map +1 -1
  131. package/dist/components/DateRangeInput.d.ts +2 -2
  132. package/dist/components/DateRangeInput.d.ts.map +1 -1
  133. package/dist/components/DateRangeInput.js +6 -4
  134. package/dist/components/DateRangeInput.js.map +1 -1
  135. package/dist/components/DateRangePicker.d.ts +1 -1
  136. package/dist/components/DateRangePicker.d.ts.map +1 -1
  137. package/dist/components/DateRangePicker.js +3 -3
  138. package/dist/components/DateRangePicker.js.map +1 -1
  139. package/dist/components/Dialog.d.ts +2 -0
  140. package/dist/components/Dialog.d.ts.map +1 -1
  141. package/dist/components/Dialog.js +32 -15
  142. package/dist/components/Dialog.js.map +1 -1
  143. package/dist/components/Dropdown.d.ts.map +1 -1
  144. package/dist/components/Dropdown.js +1 -1
  145. package/dist/components/Dropdown.js.map +1 -1
  146. package/dist/components/DropdownWrapper.d.ts.map +1 -1
  147. package/dist/components/DropdownWrapper.js +14 -11
  148. package/dist/components/DropdownWrapper.js.map +1 -1
  149. package/dist/components/ElementType.d.ts +1 -1
  150. package/dist/components/ElementType.d.ts.map +1 -1
  151. package/dist/components/ElementType.js +6 -4
  152. package/dist/components/ElementType.js.map +1 -1
  153. package/dist/components/EmojiPickerDropdown.d.ts +1 -1
  154. package/dist/components/EmojiPickerDropdown.d.ts.map +1 -1
  155. package/dist/components/EmojiPickerDropdown.js +4 -2
  156. package/dist/components/EmojiPickerDropdown.js.map +1 -1
  157. package/dist/components/Fade.js +1 -1
  158. package/dist/components/Fade.js.map +1 -1
  159. package/dist/components/FlipFx.d.ts.map +1 -1
  160. package/dist/components/FlipFx.js +2 -4
  161. package/dist/components/FlipFx.js.map +1 -1
  162. package/dist/components/FocusTrap.d.ts +1 -1
  163. package/dist/components/FocusTrap.d.ts.map +1 -1
  164. package/dist/components/FocusTrap.js +3 -3
  165. package/dist/components/FocusTrap.js.map +1 -1
  166. package/dist/components/GlitchFx.js +1 -1
  167. package/dist/components/GlitchFx.js.map +1 -1
  168. package/dist/components/Heading.js +1 -1
  169. package/dist/components/Heading.js.map +1 -1
  170. package/dist/components/HoloFx.d.ts +1 -1
  171. package/dist/components/HoloFx.d.ts.map +1 -1
  172. package/dist/components/HoloFx.js +17 -8
  173. package/dist/components/HoloFx.js.map +1 -1
  174. package/dist/components/Icon.js +1 -1
  175. package/dist/components/Icon.js.map +1 -1
  176. package/dist/components/IconButton.js +1 -1
  177. package/dist/components/IconButton.js.map +1 -1
  178. package/dist/components/InlineCode.js +1 -1
  179. package/dist/components/InlineCode.js.map +1 -1
  180. package/dist/components/Input.js +1 -1
  181. package/dist/components/Input.js.map +1 -1
  182. package/dist/components/LetterFx.js +1 -1
  183. package/dist/components/LetterFx.js.map +1 -1
  184. package/dist/components/ListItem.js +1 -1
  185. package/dist/components/ListItem.js.map +1 -1
  186. package/dist/components/Logo.d.ts +1 -1
  187. package/dist/components/Logo.d.ts.map +1 -1
  188. package/dist/components/Logo.js +6 -10
  189. package/dist/components/Logo.js.map +1 -1
  190. package/dist/components/LogoCloud.js +1 -1
  191. package/dist/components/LogoCloud.js.map +1 -1
  192. package/dist/components/Mask.js +1 -1
  193. package/dist/components/Mask.js.map +1 -1
  194. package/dist/components/MasonryGrid.js +1 -1
  195. package/dist/components/MasonryGrid.js.map +1 -1
  196. package/dist/components/Media.d.ts +1 -1
  197. package/dist/components/Media.d.ts.map +1 -1
  198. package/dist/components/Media.js +10 -7
  199. package/dist/components/Media.js.map +1 -1
  200. package/dist/components/MediaVideoPlayer.d.ts +12 -0
  201. package/dist/components/MediaVideoPlayer.d.ts.map +1 -0
  202. package/dist/components/MediaVideoPlayer.js +246 -0
  203. package/dist/components/MediaVideoPlayer.js.map +1 -0
  204. package/dist/components/MediaVideoPlayer.module.scss +90 -0
  205. package/dist/components/Modal.d.ts +1 -1
  206. package/dist/components/Modal.d.ts.map +1 -1
  207. package/dist/components/Modal.js +3 -3
  208. package/dist/components/Modal.js.map +1 -1
  209. package/dist/components/NavIcon.js +1 -1
  210. package/dist/components/NavIcon.js.map +1 -1
  211. package/dist/components/NumberInput.js +1 -1
  212. package/dist/components/NumberInput.js.map +1 -1
  213. package/dist/components/OgCard.d.ts +3 -2
  214. package/dist/components/OgCard.d.ts.map +1 -1
  215. package/dist/components/OgCard.js +2 -2
  216. package/dist/components/OgCard.js.map +1 -1
  217. package/dist/components/Option.js +1 -1
  218. package/dist/components/Option.js.map +1 -1
  219. package/dist/components/ProgressBar.d.ts +1 -1
  220. package/dist/components/ProgressBar.d.ts.map +1 -1
  221. package/dist/components/ProgressBar.js +1 -1
  222. package/dist/components/ProgressBar.js.map +1 -1
  223. package/dist/components/RadioButton.d.ts +1 -0
  224. package/dist/components/RadioButton.d.ts.map +1 -1
  225. package/dist/components/RadioButton.js +6 -6
  226. package/dist/components/RadioButton.js.map +1 -1
  227. package/dist/components/ScrollContainer.d.ts +1 -1
  228. package/dist/components/ScrollContainer.d.ts.map +1 -1
  229. package/dist/components/ScrollContainer.js +3 -3
  230. package/dist/components/ScrollContainer.js.map +1 -1
  231. package/dist/components/ScrollLock.d.ts +6 -1
  232. package/dist/components/ScrollLock.d.ts.map +1 -1
  233. package/dist/components/ScrollLock.js +39 -13
  234. package/dist/components/ScrollLock.js.map +1 -1
  235. package/dist/components/ScrollToTop.d.ts +4 -1
  236. package/dist/components/ScrollToTop.d.ts.map +1 -1
  237. package/dist/components/ScrollToTop.js +2 -1
  238. package/dist/components/ScrollToTop.js.map +1 -1
  239. package/dist/components/Scroller.d.ts +2 -2
  240. package/dist/components/Scroller.d.ts.map +1 -1
  241. package/dist/components/Scroller.js +4 -4
  242. package/dist/components/Scroller.js.map +1 -1
  243. package/dist/components/SegmentedControl.d.ts +1 -1
  244. package/dist/components/SegmentedControl.d.ts.map +1 -1
  245. package/dist/components/SegmentedControl.js +3 -3
  246. package/dist/components/SegmentedControl.js.map +1 -1
  247. package/dist/components/Select.d.ts +1 -1
  248. package/dist/components/Select.d.ts.map +1 -1
  249. package/dist/components/Select.js +1 -1
  250. package/dist/components/Select.js.map +1 -1
  251. package/dist/components/ServerFlex.d.ts.map +1 -1
  252. package/dist/components/ServerFlex.js +4 -2
  253. package/dist/components/ServerFlex.js.map +1 -1
  254. package/dist/components/ServerGrid.js +1 -1
  255. package/dist/components/ServerGrid.js.map +1 -1
  256. package/dist/components/SharedInteractiveStyles.module.scss +4 -0
  257. package/dist/components/ShineFx.d.ts +1 -1
  258. package/dist/components/ShineFx.d.ts.map +1 -1
  259. package/dist/components/ShineFx.js +4 -3
  260. package/dist/components/ShineFx.js.map +1 -1
  261. package/dist/components/Skeleton.js +1 -1
  262. package/dist/components/Skeleton.js.map +1 -1
  263. package/dist/components/Slider.js +1 -1
  264. package/dist/components/Slider.js.map +1 -1
  265. package/dist/components/Slider.module.scss +2 -2
  266. package/dist/components/SmartLink.js +1 -1
  267. package/dist/components/SmartLink.js.map +1 -1
  268. package/dist/components/Spinner.js +1 -1
  269. package/dist/components/Spinner.js.map +1 -1
  270. package/dist/components/StatusIndicator.js +1 -1
  271. package/dist/components/StatusIndicator.js.map +1 -1
  272. package/dist/components/StylePanel.js +1 -1
  273. package/dist/components/StylePanel.js.map +1 -1
  274. package/dist/components/Swiper.d.ts +2 -1
  275. package/dist/components/Swiper.d.ts.map +1 -1
  276. package/dist/components/Swiper.js +5 -5
  277. package/dist/components/Swiper.js.map +1 -1
  278. package/dist/components/Switch.js +1 -1
  279. package/dist/components/Switch.js.map +1 -1
  280. package/dist/components/Table.d.ts +37 -6
  281. package/dist/components/Table.d.ts.map +1 -1
  282. package/dist/components/Table.js +115 -30
  283. package/dist/components/Table.js.map +1 -1
  284. package/dist/components/Table.module.scss +174 -3
  285. package/dist/components/Tag.d.ts +1 -1
  286. package/dist/components/Tag.d.ts.map +1 -1
  287. package/dist/components/Tag.js +1 -1
  288. package/dist/components/Tag.js.map +1 -1
  289. package/dist/components/Text.js +1 -1
  290. package/dist/components/Text.js.map +1 -1
  291. package/dist/components/Textarea.d.ts.map +1 -1
  292. package/dist/components/Textarea.js +1 -2
  293. package/dist/components/Textarea.js.map +1 -1
  294. package/dist/components/ThemeInit.d.ts.map +1 -1
  295. package/dist/components/ThemeInit.js +6 -2
  296. package/dist/components/ThemeInit.js.map +1 -1
  297. package/dist/components/TiltFx.d.ts +1 -1
  298. package/dist/components/TiltFx.d.ts.map +1 -1
  299. package/dist/components/TiltFx.js +16 -7
  300. package/dist/components/TiltFx.js.map +1 -1
  301. package/dist/components/Timeline.d.ts +3 -3
  302. package/dist/components/Timeline.d.ts.map +1 -1
  303. package/dist/components/Timeline.js +19 -54
  304. package/dist/components/Timeline.js.map +1 -1
  305. package/dist/components/Toast.js +1 -1
  306. package/dist/components/Toast.js.map +1 -1
  307. package/dist/components/Toaster.d.ts +1 -1
  308. package/dist/components/Toaster.d.ts.map +1 -1
  309. package/dist/components/Toaster.js +4 -4
  310. package/dist/components/Toaster.js.map +1 -1
  311. package/dist/components/Toaster.module.scss +0 -2
  312. package/dist/components/ToggleButton.js +1 -1
  313. package/dist/components/ToggleButton.js.map +1 -1
  314. package/dist/components/Tooltip.js +1 -1
  315. package/dist/components/Tooltip.js.map +1 -1
  316. package/dist/components/TypeFx.d.ts +1 -1
  317. package/dist/components/TypeFx.d.ts.map +1 -1
  318. package/dist/components/TypeFx.js +3 -3
  319. package/dist/components/TypeFx.js.map +1 -1
  320. package/dist/components/User.js +1 -1
  321. package/dist/components/User.js.map +1 -1
  322. package/dist/components/UserMenu.d.ts +1 -1
  323. package/dist/components/UserMenu.d.ts.map +1 -1
  324. package/dist/components/UserMenu.js +4 -3
  325. package/dist/components/UserMenu.js.map +1 -1
  326. package/dist/css/styles.css +1 -1
  327. package/dist/css/styles.css.map +1 -1
  328. package/dist/css/tokens.css +1 -1
  329. package/dist/css/tokens.css.map +1 -1
  330. package/dist/data/emoji-data.json +8 -0
  331. package/dist/hooks/index.d.ts +2 -0
  332. package/dist/hooks/index.d.ts.map +1 -1
  333. package/dist/hooks/index.js +2 -0
  334. package/dist/hooks/index.js.map +1 -1
  335. package/dist/hooks/useArrowNavigation.d.ts.map +1 -1
  336. package/dist/hooks/useArrowNavigation.js +1 -0
  337. package/dist/hooks/useArrowNavigation.js.map +1 -1
  338. package/dist/hooks/useDebounce.d.ts +1 -1
  339. package/dist/hooks/useDebounce.d.ts.map +1 -1
  340. package/dist/hooks/useDebounce.js.map +1 -1
  341. package/dist/hooks/useResponsiveClasses.d.ts.map +1 -1
  342. package/dist/hooks/useResponsiveClasses.js +45 -2
  343. package/dist/hooks/useResponsiveClasses.js.map +1 -1
  344. package/dist/icons.d.ts.map +1 -1
  345. package/dist/icons.js +7 -2
  346. package/dist/icons.js.map +1 -1
  347. package/dist/index.d.ts +0 -1
  348. package/dist/index.d.ts.map +1 -1
  349. package/dist/index.js +0 -1
  350. package/dist/index.js.map +1 -1
  351. package/dist/interfaces.d.ts +21 -36
  352. package/dist/interfaces.d.ts.map +1 -1
  353. package/dist/internal/scrollLockState.d.ts +2 -0
  354. package/dist/internal/scrollLockState.d.ts.map +1 -0
  355. package/dist/internal/scrollLockState.js +12 -0
  356. package/dist/internal/scrollLockState.js.map +1 -0
  357. package/dist/modules/code/CodeBlock.impl.d.ts +2 -0
  358. package/dist/modules/code/CodeBlock.impl.d.ts.map +1 -1
  359. package/dist/modules/code/CodeBlock.impl.js +57 -17
  360. package/dist/modules/code/CodeBlock.impl.js.map +1 -1
  361. package/dist/modules/data/BarChart.impl.js +1 -1
  362. package/dist/modules/data/BarChart.impl.js.map +1 -1
  363. package/dist/modules/data/LineBarChart.impl.js +1 -1
  364. package/dist/modules/data/LineBarChart.impl.js.map +1 -1
  365. package/dist/modules/data/LineChart.impl.js +1 -1
  366. package/dist/modules/data/LineChart.impl.js.map +1 -1
  367. package/dist/modules/data/PieChart.impl.js +1 -1
  368. package/dist/modules/data/PieChart.impl.js.map +1 -1
  369. package/dist/modules/data/utils/formatDate.js +1 -1
  370. package/dist/modules/data/utils/formatDate.js.map +1 -1
  371. package/dist/modules/index.d.ts +2 -1
  372. package/dist/modules/index.d.ts.map +1 -1
  373. package/dist/modules/index.js +2 -1
  374. package/dist/modules/index.js.map +1 -1
  375. package/dist/modules/seo/Schema.d.ts.map +1 -1
  376. package/dist/modules/seo/Schema.js +3 -4
  377. package/dist/modules/seo/Schema.js.map +1 -1
  378. package/dist/package.json +38 -8
  379. package/dist/server/og-url-validation.d.ts +10 -0
  380. package/dist/server/og-url-validation.d.ts.map +1 -0
  381. package/dist/server/og-url-validation.js +234 -0
  382. package/dist/server/og-url-validation.js.map +1 -0
  383. package/dist/server/og-utils.d.ts +5 -2
  384. package/dist/server/og-utils.d.ts.map +1 -1
  385. package/dist/server/og-utils.js +39 -14
  386. package/dist/server/og-utils.js.map +1 -1
  387. package/dist/styles/typography.scss +8 -0
  388. package/dist/tokens/typography.scss +2 -0
  389. package/dist/types.d.ts +1 -1
  390. package/dist/types.d.ts.map +1 -1
  391. package/dist/utils/index.d.ts +1 -0
  392. package/dist/utils/index.d.ts.map +1 -1
  393. package/dist/utils/index.js +1 -0
  394. package/dist/utils/index.js.map +1 -1
  395. package/dist/utils/safe-html.d.ts +19 -0
  396. package/dist/utils/safe-html.d.ts.map +1 -0
  397. package/dist/utils/safe-html.js +43 -0
  398. package/dist/utils/safe-html.js.map +1 -0
  399. package/next-env.d.ts +5 -0
  400. package/package.json +55 -21
  401. package/scripts/copy-files.js +103 -0
  402. package/scripts/generate-ai-spec.js +464 -0
  403. package/scripts/generate-emoji-data.js +128 -0
  404. package/scripts/init-agent.js +156 -0
  405. package/scripts/validate-ai-code.js +149 -0
  406. package/.eslintrc.json +0 -3
  407. package/ai/catalog.seed.json +0 -411
  408. package/dist/ai/catalog.seed.json +0 -411
  409. package/next.config.mjs +0 -14
package/ai/spec.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@once-ui-system/core",
3
- "version": "1.7.12",
4
- "generated": "2026-07-05",
3
+ "version": "1.8.0",
4
+ "generated": "2026-07-29",
5
5
  "format": "props are 'type', 'type = default', or '!type' (required). Components with 'mixins' also accept all props of those mixins. 'extends' means all props of that component are accepted.",
6
6
  "tokens": {
7
7
  "StaticSpacingToken": "\"0\" | \"1\" | \"2\" | \"4\" | \"8\" | \"12\" | \"16\" | \"20\" | \"24\" | \"32\" | \"40\" | \"48\" | \"56\" | \"64\" | \"80\" | \"104\" | \"128\" | \"160\"",
@@ -15,10 +15,10 @@
15
15
  "Colors": "`${ColorScheme}-${ColorWeight}` | `${ColorScheme}-alpha-${ColorWeight}`",
16
16
  "RadiusSize": "TShirtSizes | \"full\" | \"none\"",
17
17
  "TextType": "\"body\" | \"heading\" | \"display\" | \"label\" | \"code\"",
18
- "TextWeight": "\"default\" | \"strong\"",
18
+ "TextWeight": "\"default\" | \"normal\" | \"medium\" | \"strong\"",
19
19
  "TextSize": "TShirtSizes",
20
20
  "TextVariant": "`${TextType}-${TextWeight}-${TextSize}`",
21
- "IconName": "\"chevronUp\" | \"chevronDown\" | \"chevronRight\" | \"chevronLeft\" | \"chevronsLeftRight\" | \"refresh\" | \"light\" | \"dark\" | \"help\" | \"info\" | \"warning\" | \"danger\" | \"checkbox\" | \"check\" | \"copy\" | \"eyeDropper\" | \"clipboard\" | \"person\" | \"close\" | \"link\" | \"arrowUpRight\" | \"minus\" | \"plus\" | \"calendar\" | \"eye\" | \"eyeOff\" | \"search\" | \"security\" | \"sparkle\" | \"computer\" | \"minimize\" | \"maximize\" | \"smiley\" | \"paw\" | \"food\" | \"ball\" | \"world\" | \"gift\" | \"symbol\" | \"flag\" | \"wordmark\" | \"enter\" | \"play\" | \"pause\" | \"screen\" | \"document\" | \"radialGauge\" | \"linearGauge\" | \"opacity\""
21
+ "IconName": "\"chevronUp\" | \"chevronDown\" | \"chevronRight\" | \"chevronLeft\" | \"chevronsLeftRight\" | \"refresh\" | \"light\" | \"dark\" | \"help\" | \"info\" | \"warning\" | \"danger\" | \"checkbox\" | \"check\" | \"copy\" | \"eyeDropper\" | \"clipboard\" | \"person\" | \"close\" | \"link\" | \"arrowUpRight\" | \"minus\" | \"plus\" | \"calendar\" | \"eye\" | \"eyeOff\" | \"search\" | \"security\" | \"sparkle\" | \"computer\" | \"minimize\" | \"maximize\" | \"smiley\" | \"paw\" | \"food\" | \"ball\" | \"world\" | \"gift\" | \"symbol\" | \"flag\" | \"wordmark\" | \"enter\" | \"play\" | \"pause\" | \"volume\" | \"volumeOff\" | \"screen\" | \"document\" | \"radialGauge\" | \"linearGauge\" | \"edit\" | \"trash\" | \"mail\" | \"download\""
22
22
  },
23
23
  "mixins": {
24
24
  "CommonProps": {
@@ -42,21 +42,6 @@
42
42
  "dark": "boolean",
43
43
  "light": "boolean"
44
44
  },
45
- "FlexBreakpointProps": {
46
- "direction": "\"row\" | \"column\" | \"row-reverse\" | \"column-reverse\"",
47
- "horizontal": "\"start\" | \"center\" | \"end\" | \"between\" | \"around\" | \"even\" | \"stretch\"",
48
- "vertical": "\"start\" | \"center\" | \"end\" | \"between\" | \"around\" | \"even\" | \"stretch\"",
49
- "center": "boolean",
50
- "overflow": "CSSProperties[\"overflow\"]",
51
- "overflowX": "CSSProperties[\"overflowX\"]",
52
- "overflowY": "CSSProperties[\"overflowY\"]",
53
- "top": "SpacingToken",
54
- "right": "SpacingToken",
55
- "bottom": "SpacingToken",
56
- "left": "SpacingToken",
57
- "aspectRatio": "CSSProperties[\"aspectRatio\"]",
58
- "style": "CSSProperties"
59
- },
60
45
  "FlexProps": {
61
46
  "direction": "\"row\" | \"column\" | \"row-reverse\" | \"column-reverse\"",
62
47
  "horizontal": "\"start\" | \"center\" | \"end\" | \"between\" | \"around\" | \"even\" | \"stretch\"",
@@ -65,18 +50,6 @@
65
50
  "wrap": "boolean",
66
51
  "flex": "FlexValue"
67
52
  },
68
- "GridBreakpointProps": {
69
- "columns": "GridProps[\"columns\"]",
70
- "overflow": "CSSProperties[\"overflow\"]",
71
- "overflowX": "CSSProperties[\"overflowX\"]",
72
- "overflowY": "CSSProperties[\"overflowY\"]",
73
- "top": "SpacingToken",
74
- "right": "SpacingToken",
75
- "bottom": "SpacingToken",
76
- "left": "SpacingToken",
77
- "aspectRatio": "CSSProperties[\"aspectRatio\"]",
78
- "style": "CSSProperties"
79
- },
80
53
  "GridProps": {
81
54
  "columns": "GridSize",
82
55
  "rows": "GridSize"
@@ -367,8 +340,8 @@
367
340
  "BlobFx": {
368
341
  "group": "components",
369
342
  "extends": [
370
- "Flex",
371
- "Row"
343
+ "Row",
344
+ "Flex"
372
345
  ],
373
346
  "mixins": [
374
347
  "CommonProps",
@@ -385,8 +358,8 @@
385
358
  "Banner": {
386
359
  "group": "components",
387
360
  "extends": [
388
- "Flex",
389
- "Row"
361
+ "Row",
362
+ "Flex"
390
363
  ],
391
364
  "mixins": [
392
365
  "CommonProps",
@@ -546,6 +519,7 @@
546
519
  "translateY": "SpacingToken | number",
547
520
  "aspectRatio": "string = original",
548
521
  "sizes": "string",
522
+ "unoptimized": "boolean = false",
549
523
  "revealedByDefault": "boolean = false",
550
524
  "thumbnail": "ThumbnailItem = { scaling: 1, height: \"80\", sizes: \"120px\" }",
551
525
  "play": "{ auto?: boolean; interval?: number; controls?: boolean; progress?: boolean; } = { auto: false, interval: 3000, controls: true }"
@@ -571,6 +545,7 @@
571
545
  "fill": "boolean = false",
572
546
  "aspectRatio": "string = 16 / 9",
573
547
  "sizes": "string",
548
+ "unoptimized": "boolean = false",
574
549
  "indicator": "boolean = true"
575
550
  }
576
551
  },
@@ -681,7 +656,8 @@
681
656
  "props": {
682
657
  "isChecked": "boolean",
683
658
  "isIndeterminate": "boolean = false",
684
- "onToggle": "() => void"
659
+ "onToggle": "() => void",
660
+ "hoverable": "boolean = true"
685
661
  }
686
662
  },
687
663
  "Chip": {
@@ -736,7 +712,8 @@
736
712
  "props": {
737
713
  "leftContent": "!SideContent",
738
714
  "rightContent": "!SideContent",
739
- "aspectRatio": "string"
715
+ "aspectRatio": "string",
716
+ "unoptimized": "boolean"
740
717
  }
741
718
  },
742
719
  "ContextMenu": {
@@ -753,8 +730,8 @@
753
730
  "className": "string",
754
731
  "onSelect": "(value: string) => void",
755
732
  "closeAfterClick": "boolean = true",
756
- "isOpen": "boolean",
757
- "onOpenChange": "(isOpen: boolean) => void",
733
+ "open": "boolean",
734
+ "onOpenChange": "(open: boolean) => void",
758
735
  "selectedOption": "string",
759
736
  "disabled": "boolean = false"
760
737
  }
@@ -880,6 +857,8 @@
880
857
  "footer": "ReactNode",
881
858
  "base": "boolean",
882
859
  "stack": "boolean",
860
+ "flush": "boolean = false",
861
+ "hideClose": "boolean = false",
883
862
  "onHeightChange": "(height: number) => void",
884
863
  "minHeight": "number",
885
864
  "closeOnClickaway": "boolean = true"
@@ -1155,8 +1134,8 @@
1155
1134
  "HoverCard": {
1156
1135
  "group": "components",
1157
1136
  "extends": [
1158
- "Flex",
1159
- "Animation"
1137
+ "Animation",
1138
+ "Flex"
1160
1139
  ],
1161
1140
  "mixins": [
1162
1141
  "CommonProps",
@@ -1215,8 +1194,8 @@
1215
1194
  "InfiniteScroll": {
1216
1195
  "group": "components",
1217
1196
  "extends": [
1218
- "Flex",
1219
- "Row"
1197
+ "Row",
1198
+ "Flex"
1220
1199
  ],
1221
1200
  "mixins": [
1222
1201
  "CommonProps",
@@ -1538,8 +1517,8 @@
1538
1517
  "OgCard": {
1539
1518
  "group": "components",
1540
1519
  "extends": [
1541
- "Flex",
1542
- "Card"
1520
+ "Card",
1521
+ "Flex"
1543
1522
  ],
1544
1523
  "mixins": [
1545
1524
  "CommonProps",
@@ -1552,6 +1531,7 @@
1552
1531
  "props": {
1553
1532
  "url": "string",
1554
1533
  "sizes": "string = 320px",
1534
+ "unoptimized": "boolean = false",
1555
1535
  "size": "CondensedTShirtSizes = m",
1556
1536
  "ogData": "Partial<OgData> | null",
1557
1537
  "direction": "\"column\" | \"row\" | \"column-reverse\" | \"row-reverse\" = column",
@@ -1696,7 +1676,8 @@
1696
1676
  "name": "string",
1697
1677
  "value": "string",
1698
1678
  "disabled": "boolean",
1699
- "onToggle": "() => void"
1679
+ "onToggle": "() => void",
1680
+ "hoverable": "boolean = true"
1700
1681
  }
1701
1682
  },
1702
1683
  "RevealFx": {
@@ -1768,8 +1749,8 @@
1768
1749
  "ScrollContainer": {
1769
1750
  "group": "components",
1770
1751
  "extends": [
1771
- "Flex",
1772
- "Row"
1752
+ "Row",
1753
+ "Flex"
1773
1754
  ],
1774
1755
  "mixins": [
1775
1756
  "CommonProps",
@@ -1804,8 +1785,8 @@
1804
1785
  "SegmentedControl": {
1805
1786
  "group": "components",
1806
1787
  "extends": [
1807
- "Flex",
1808
- "Scroller"
1788
+ "Scroller",
1789
+ "Flex"
1809
1790
  ],
1810
1791
  "mixins": [
1811
1792
  "CommonProps",
@@ -1836,7 +1817,7 @@
1836
1817
  "options": "!SelectOptionType[]",
1837
1818
  "value": "string | string[] = ",
1838
1819
  "emptyState": "ReactNode = No results",
1839
- "onSelect": "(value: any) => void",
1820
+ "onSelect": "(value: string | string[]) => void",
1840
1821
  "placement": "Placement",
1841
1822
  "searchable": "boolean = false",
1842
1823
  "className": "string",
@@ -1937,8 +1918,8 @@
1937
1918
  "SplitView": {
1938
1919
  "group": "components",
1939
1920
  "extends": [
1940
- "Flex",
1941
- "Row"
1921
+ "Row",
1922
+ "Flex"
1942
1923
  ],
1943
1924
  "mixins": [
1944
1925
  "CommonProps",
@@ -2046,8 +2027,23 @@
2046
2027
  "StyleProps"
2047
2028
  ],
2048
2029
  "props": {
2049
- "data": "!{ headers: { content: ReactNode; key: string; sortable?: boolean; }[]; rows: ReactNode[][]; }",
2050
- "onRowClick": "(rowIndex: number) => void"
2030
+ "data": "!{ headers: TableHeader[]; rows: ReactNode[][]; }",
2031
+ "onRowClick": "(rowIndex: number) => void",
2032
+ "searchable": "boolean = false",
2033
+ "searchPlaceholder": "string = Search...",
2034
+ "striped": "boolean = false",
2035
+ "hoverable": "boolean = true",
2036
+ "compact": "boolean = false",
2037
+ "loading": "boolean = false",
2038
+ "emptyState": "ReactNode",
2039
+ "actions": "TableAction[]",
2040
+ "stickyHeader": "boolean = false",
2041
+ "rowClassName": "(rowIndex: number) => string",
2042
+ "cellClassName": "(rowIndex: number, cellIndex: number) => string",
2043
+ "paginated": "boolean = false",
2044
+ "defaultPageSize": "number = 10",
2045
+ "pageSizeOptions": "number[] = [5, 10, 20, 50]",
2046
+ "loadingState": "ReactNode"
2051
2047
  }
2052
2048
  },
2053
2049
  "Tag": {
@@ -2199,8 +2195,8 @@
2199
2195
  "Tooltip": {
2200
2196
  "group": "components",
2201
2197
  "extends": [
2202
- "Flex",
2203
- "Row"
2198
+ "Row",
2199
+ "Flex"
2204
2200
  ],
2205
2201
  "mixins": [
2206
2202
  "CommonProps",
@@ -2234,8 +2230,8 @@
2234
2230
  "ThemeSwitcher": {
2235
2231
  "group": "components",
2236
2232
  "extends": [
2237
- "Flex",
2238
- "Row"
2233
+ "Row",
2234
+ "Flex"
2239
2235
  ],
2240
2236
  "mixins": [
2241
2237
  "CommonProps",
@@ -2356,7 +2352,7 @@
2356
2352
  "className": "string"
2357
2353
  }
2358
2354
  },
2359
- "HeadingLink": {
2355
+ "HeadingNav": {
2360
2356
  "group": "modules",
2361
2357
  "extends": [
2362
2358
  "Flex"
@@ -2370,13 +2366,10 @@
2370
2366
  "StyleProps"
2371
2367
  ],
2372
2368
  "props": {
2373
- "id": "!string",
2374
- "as": "!\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"",
2375
- "children": "!React.ReactNode",
2376
- "style": "React.CSSProperties"
2369
+ "header": "boolean = true"
2377
2370
  }
2378
2371
  },
2379
- "HeadingNav": {
2372
+ "HeadingLink": {
2380
2373
  "group": "modules",
2381
2374
  "extends": [
2382
2375
  "Flex"
@@ -2390,14 +2383,17 @@
2390
2383
  "StyleProps"
2391
2384
  ],
2392
2385
  "props": {
2393
- "header": "boolean = true"
2386
+ "id": "!string",
2387
+ "as": "!\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"",
2388
+ "children": "!React.ReactNode",
2389
+ "style": "React.CSSProperties"
2394
2390
  }
2395
2391
  },
2396
2392
  "ChartHeader": {
2397
2393
  "group": "modules",
2398
2394
  "extends": [
2399
- "Flex",
2400
- "Column"
2395
+ "Column",
2396
+ "Flex"
2401
2397
  ],
2402
2398
  "mixins": [
2403
2399
  "CommonProps",
package/dist/AGENTS.md ADDED
@@ -0,0 +1,53 @@
1
+ # @once-ui-system/core — agent harness
2
+
3
+ This package ships an agent-first codegen harness under `ai/`. Use it when **writing Once UI code**, not full MDX documentation pages.
4
+
5
+ ## Entry point
6
+
7
+ ```
8
+ @once-ui-system/core/ai/manifest.json
9
+ ```
10
+
11
+ Or from disk:
12
+
13
+ ```
14
+ node_modules/@once-ui-system/core/ai/manifest.json
15
+ ```
16
+
17
+ ## Bootstrap workflow
18
+
19
+ 1. Read `ai/manifest.json`
20
+ 2. Load bootstrap files: `ai/rules.compact.md` + `ai/catalog.json` (~6KB)
21
+ 3. Match intent via `ai/tasks/index.json` → e.g. `ai/tasks/pricing.json`
22
+ 4. Fetch component slices listed in the task bundle (`ai/components/*.json`)
23
+ 5. Read the gold example referenced by the task; for production fidelity, read Pro blocks from `ai/examples/blocks/manifest.json`
24
+ 6. Validate generated code: `npx once-ui-validate-ai-code path/to/file.tsx`
25
+
26
+ ## npm exports
27
+
28
+ ```tsx
29
+ // Readable paths (version-pinned to your install)
30
+ import manifest from '@once-ui-system/core/ai/manifest.json';
31
+ ```
32
+
33
+ ```bash
34
+ # One-time project setup (writes AGENTS.md + Cursor rule in consumer app)
35
+ npx once-ui-init-agent
36
+ ```
37
+
38
+ ## Remote fallback
39
+
40
+ If you cannot read `node_modules`, use the docs host (may not match your installed version exactly):
41
+
42
+ - https://docs.once-ui.com/ai/manifest.json
43
+ - https://docs.once-ui.com/ai/rules.compact.md
44
+ - https://docs.once-ui.com/once-ui/ai-coding
45
+
46
+ ## Key rules (summary)
47
+
48
+ - Use `Column` / `Row`, not `Flex` unless direction changes at breakpoints
49
+ - Use `fill`, not `fillWidth fillHeight`; use `center`, not `horizontal="center" vertical="center"`
50
+ - Static panels: `Column background="surface" border="neutral-alpha-weak" radius="l" padding="24"`
51
+ - `Card` is interactive only (`href` or `onClick`)
52
+
53
+ Full rules: `@once-ui-system/core/ai/rules.compact.md`
package/dist/README.md CHANGED
@@ -35,6 +35,33 @@ Learn how to set up and build with Once UI at [docs.once-ui.com](https://docs.on
35
35
  npm install @once-ui-system/core
36
36
  ```
37
37
 
38
+ ## AI codegen harness
39
+
40
+ This package includes an agent-first harness under `ai/` for generating Once UI code with minimal context (~6–10KB per task).
41
+
42
+ | Resource | Path |
43
+ |----------|------|
44
+ | Entry point | `@once-ui-system/core/ai/manifest.json` |
45
+ | Compact rules | `@once-ui-system/core/ai/rules.compact.md` |
46
+ | Component catalog | `@once-ui-system/core/ai/catalog.json` |
47
+ | Task bundles | `@once-ui-system/core/ai/tasks/index.json` |
48
+
49
+ **One-time setup in your app** (writes project `AGENTS.md` + Cursor rule):
50
+
51
+ ```bash
52
+ npx once-ui-init-agent
53
+ ```
54
+
55
+ **Validate generated code:**
56
+
57
+ ```bash
58
+ npx once-ui-validate-ai-code src/app/page.tsx
59
+ ```
60
+
61
+ Full guide: [docs.once-ui.com/once-ui/ai-coding](https://docs.once-ui.com/once-ui/ai-coding)
62
+
63
+ Machine-readable discovery: see the `onceUi` field in this package's `package.json`.
64
+
38
65
  ## Authors
39
66
 
40
67
  Built and maintained by [**Lorant One**](https://lorant.one).
@@ -0,0 +1,27 @@
1
+ ---
2
+ description: Load Once UI agent harness before generating UI code
3
+ globs: "**/*.{tsx,jsx}"
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Once UI codegen harness
8
+
9
+ Before generating or editing Once UI UI code in this project:
10
+
11
+ 1. Read `@once-ui-system/core/ai/manifest.json` (or `node_modules/@once-ui-system/core/ai/manifest.json`)
12
+ 2. Load bootstrap files from the manifest: `rules.compact.md` + `catalog.json`
13
+ 3. Resolve intent via `ai/tasks/index.json` → fetch the matching task bundle
14
+ 4. Fetch only the component slices listed in that task (`ai/components/*.json`)
15
+ 5. Read the task's gold example; for production layouts, read matching Pro blocks from `ai/examples/blocks/manifest.json`
16
+ 6. Validate output: `npx once-ui-validate-ai-code path/to/file.tsx`
17
+
18
+ ## Do not
19
+
20
+ - Use full documentation MDX pages for codegen (too large; use the harness)
21
+ - Use `Flex direction="column"` when `Column` works; same for `Row`
22
+ - Use `fillWidth fillHeight` when `fill` works
23
+ - Use `Card` for static panels (use the surface recipe on `Column`)
24
+
25
+ ## Remote fallback
26
+
27
+ https://docs.once-ui.com/ai/manifest.json