@once-ui-system/core 1.8.4 → 2.0.0-alpha.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 (561) hide show
  1. package/ai/catalog.json +166 -78
  2. package/ai/components/Accordion.json +1 -1
  3. package/ai/components/BarChart.json +34 -3
  4. package/ai/components/Book.json +128 -0
  5. package/ai/components/Button.json +1 -1
  6. package/ai/components/Card.json +1 -0
  7. package/ai/components/Carousel.json +1 -1
  8. package/ai/components/ChartHeader.json +2 -1
  9. package/ai/components/ChartStatus.json +2 -1
  10. package/ai/components/Checkbox.json +2 -2
  11. package/ai/components/CodeBlock.json +23 -2
  12. package/ai/components/ColorInput.json +1 -1
  13. package/ai/components/DataTooltip.json +3 -2
  14. package/ai/components/DatePicker.json +2 -2
  15. package/ai/components/Dialog.json +1 -1
  16. package/ai/components/DropdownWrapper.json +6 -4
  17. package/ai/components/Effect.json +133 -0
  18. package/ai/components/Fade.json +1 -1
  19. package/ai/components/Feedback.json +1 -1
  20. package/ai/components/IconButton.json +1 -1
  21. package/ai/components/InfoTip.json +125 -0
  22. package/ai/components/Input.json +5 -4
  23. package/ai/components/Legend.json +2 -1
  24. package/ai/components/LineBarChart.json +34 -3
  25. package/ai/components/LineChart.json +39 -3
  26. package/ai/components/LinearGauge.json +3 -2
  27. package/ai/components/LinearGradient.json +2 -1
  28. package/ai/components/Logo.json +2 -2
  29. package/ai/components/Media.json +1 -1
  30. package/ai/components/MediaUpload.json +21 -2
  31. package/ai/components/Modal.json +1 -1
  32. package/ai/components/NavGroup.json +130 -0
  33. package/ai/components/NavIcon.json +1 -1
  34. package/ai/components/NavItem.json +14 -0
  35. package/ai/components/Option.json +2 -2
  36. package/ai/components/Particle.json +1 -1
  37. package/ai/components/PieChart.json +32 -3
  38. package/ai/components/ProgressBar.json +1 -1
  39. package/ai/components/Pulse.json +1 -1
  40. package/ai/components/RadialGauge.json +4 -3
  41. package/ai/components/RadialGradient.json +2 -1
  42. package/ai/components/RadioButton.json +1 -1
  43. package/ai/components/RevealFx.json +1 -1
  44. package/ai/components/Scrubber.json +136 -0
  45. package/ai/components/SegmentedControl.json +3 -3
  46. package/ai/components/Setting.json +128 -0
  47. package/ai/components/SettingAxes.json +127 -0
  48. package/ai/components/SettingGroup.json +129 -0
  49. package/ai/components/ShineFx.json +1 -1
  50. package/ai/components/Skeleton.json +2 -3
  51. package/ai/components/SplitView.json +2 -0
  52. package/ai/components/StylePanel.json +4 -2
  53. package/ai/components/Swatch.json +11 -0
  54. package/ai/components/Swiper.json +1 -1
  55. package/ai/components/Switch.json +1 -1
  56. package/ai/components/Tag.json +1 -1
  57. package/ai/components/Textarea.json +6 -5
  58. package/ai/components/ThemeSwitcher.json +3 -0
  59. package/ai/components/Toast.json +1 -1
  60. package/ai/components/ToggleButton.json +2 -1
  61. package/ai/eval-tasks.md +8 -0
  62. package/ai/examples/app-shell.tsx +111 -0
  63. package/ai/examples/auth.tsx +1 -1
  64. package/ai/examples/blocks/Dashboard1.tsx +17 -28
  65. package/ai/examples/blocks/Feed3.tsx +4 -4
  66. package/ai/examples/blocks/Footer1.tsx +5 -3
  67. package/ai/examples/blocks/Footer2.tsx +3 -3
  68. package/ai/examples/blocks/Footer3.tsx +1 -1
  69. package/ai/examples/blocks/Footer4.tsx +6 -5
  70. package/ai/examples/blocks/Header1.tsx +7 -6
  71. package/ai/examples/blocks/Header3.tsx +7 -7
  72. package/ai/examples/blocks/Header4.tsx +5 -5
  73. package/ai/examples/blocks/Sidebar4.tsx +1 -1
  74. package/ai/examples/blocks/Streaming1.tsx +4 -4
  75. package/ai/examples/blocks/Table1.tsx +6 -6
  76. package/ai/examples/blocks/Waitlist1.tsx +5 -5
  77. package/ai/examples/blocks/content/resources.ts +3 -1
  78. package/ai/examples/dashboard.tsx +8 -9
  79. package/ai/examples/marketing-hero.tsx +2 -2
  80. package/ai/examples/pricing.tsx +4 -5
  81. package/ai/examples/settings.tsx +3 -3
  82. package/ai/gotchas.json +80 -23
  83. package/ai/layouts.md +154 -0
  84. package/ai/manifest.json +3 -2
  85. package/ai/recipes.md +49 -4
  86. package/ai/rules.compact.md +18 -3
  87. package/ai/rules.md +68 -10
  88. package/ai/spec.json +634 -176
  89. package/dist/ai/catalog.json +166 -78
  90. package/dist/ai/components/Accordion.json +1 -1
  91. package/dist/ai/components/BarChart.json +34 -3
  92. package/dist/ai/components/Book.json +128 -0
  93. package/dist/ai/components/Button.json +1 -1
  94. package/dist/ai/components/Card.json +1 -0
  95. package/dist/ai/components/Carousel.json +1 -1
  96. package/dist/ai/components/ChartHeader.json +2 -1
  97. package/dist/ai/components/ChartStatus.json +2 -1
  98. package/dist/ai/components/Checkbox.json +2 -2
  99. package/dist/ai/components/CodeBlock.json +23 -2
  100. package/dist/ai/components/ColorInput.json +1 -1
  101. package/dist/ai/components/DataTooltip.json +3 -2
  102. package/dist/ai/components/DatePicker.json +2 -2
  103. package/dist/ai/components/Dialog.json +1 -1
  104. package/dist/ai/components/DropdownWrapper.json +6 -4
  105. package/dist/ai/components/Effect.json +133 -0
  106. package/dist/ai/components/Fade.json +1 -1
  107. package/dist/ai/components/Feedback.json +1 -1
  108. package/dist/ai/components/IconButton.json +1 -1
  109. package/dist/ai/components/InfoTip.json +125 -0
  110. package/dist/ai/components/Input.json +5 -4
  111. package/dist/ai/components/Legend.json +2 -1
  112. package/dist/ai/components/LineBarChart.json +34 -3
  113. package/dist/ai/components/LineChart.json +39 -3
  114. package/dist/ai/components/LinearGauge.json +3 -2
  115. package/dist/ai/components/LinearGradient.json +2 -1
  116. package/dist/ai/components/Logo.json +2 -2
  117. package/dist/ai/components/Media.json +1 -1
  118. package/dist/ai/components/MediaUpload.json +21 -2
  119. package/dist/ai/components/Modal.json +1 -1
  120. package/dist/ai/components/NavGroup.json +130 -0
  121. package/dist/ai/components/NavIcon.json +1 -1
  122. package/dist/ai/components/NavItem.json +14 -0
  123. package/dist/ai/components/Option.json +2 -2
  124. package/dist/ai/components/Particle.json +1 -1
  125. package/dist/ai/components/PieChart.json +32 -3
  126. package/dist/ai/components/ProgressBar.json +1 -1
  127. package/dist/ai/components/Pulse.json +1 -1
  128. package/dist/ai/components/RadialGauge.json +4 -3
  129. package/dist/ai/components/RadialGradient.json +2 -1
  130. package/dist/ai/components/RadioButton.json +1 -1
  131. package/dist/ai/components/RevealFx.json +1 -1
  132. package/dist/ai/components/Scrubber.json +136 -0
  133. package/dist/ai/components/SegmentedControl.json +3 -3
  134. package/dist/ai/components/Setting.json +128 -0
  135. package/dist/ai/components/SettingAxes.json +127 -0
  136. package/dist/ai/components/SettingGroup.json +129 -0
  137. package/dist/ai/components/ShineFx.json +1 -1
  138. package/dist/ai/components/Skeleton.json +2 -3
  139. package/dist/ai/components/SplitView.json +2 -0
  140. package/dist/ai/components/StylePanel.json +4 -2
  141. package/dist/ai/components/Swatch.json +11 -0
  142. package/dist/ai/components/Swiper.json +1 -1
  143. package/dist/ai/components/Switch.json +1 -1
  144. package/dist/ai/components/Tag.json +1 -1
  145. package/dist/ai/components/Textarea.json +6 -5
  146. package/dist/ai/components/ThemeSwitcher.json +3 -0
  147. package/dist/ai/components/Toast.json +1 -1
  148. package/dist/ai/components/ToggleButton.json +2 -1
  149. package/dist/ai/eval-tasks.md +8 -0
  150. package/dist/ai/gotchas.json +80 -23
  151. package/dist/ai/layouts.md +154 -0
  152. package/dist/ai/manifest.json +3 -2
  153. package/dist/ai/recipes.md +49 -4
  154. package/dist/ai/rules.compact.md +18 -3
  155. package/dist/ai/rules.md +68 -10
  156. package/dist/ai/spec.json +634 -176
  157. package/dist/components/Accordion.d.ts +2 -1
  158. package/dist/components/Accordion.d.ts.map +1 -1
  159. package/dist/components/Accordion.js.map +1 -1
  160. package/dist/components/Avatar.js +1 -1
  161. package/dist/components/Avatar.js.map +1 -1
  162. package/dist/components/Background.d.ts +6 -6
  163. package/dist/components/Background.d.ts.map +1 -1
  164. package/dist/components/Book.d.ts +28 -0
  165. package/dist/components/Book.d.ts.map +1 -0
  166. package/dist/components/Book.js +24 -0
  167. package/dist/components/Book.js.map +1 -0
  168. package/dist/components/Book.module.scss +45 -0
  169. package/dist/components/Button.d.ts +1 -1
  170. package/dist/components/Button.d.ts.map +1 -1
  171. package/dist/components/Button.js +4 -4
  172. package/dist/components/Button.js.map +1 -1
  173. package/dist/components/Card.d.ts +8 -0
  174. package/dist/components/Card.d.ts.map +1 -1
  175. package/dist/components/Card.js +10 -2
  176. package/dist/components/Card.js.map +1 -1
  177. package/dist/components/Card.module.scss +11 -1
  178. package/dist/components/Carousel.d.ts +7 -1
  179. package/dist/components/Carousel.d.ts.map +1 -1
  180. package/dist/components/Carousel.js +7 -7
  181. package/dist/components/Carousel.js.map +1 -1
  182. package/dist/components/Carousel.module.scss +1 -8
  183. package/dist/components/Checkbox.d.ts +3 -3
  184. package/dist/components/Checkbox.d.ts.map +1 -1
  185. package/dist/components/Checkbox.js +5 -5
  186. package/dist/components/Checkbox.js.map +1 -1
  187. package/dist/components/ClientFlex.d.ts.map +1 -1
  188. package/dist/components/ClientFlex.js +5 -10
  189. package/dist/components/ClientFlex.js.map +1 -1
  190. package/dist/components/ClientGrid.d.ts.map +1 -1
  191. package/dist/components/ClientGrid.js +2 -7
  192. package/dist/components/ClientGrid.js.map +1 -1
  193. package/dist/components/ColorInput.d.ts +1 -1
  194. package/dist/components/ColorInput.d.ts.map +1 -1
  195. package/dist/components/ColorInput.js +7 -13
  196. package/dist/components/ColorInput.js.map +1 -1
  197. package/dist/components/CompareImage.d.ts.map +1 -1
  198. package/dist/components/CompareImage.js +2 -2
  199. package/dist/components/CompareImage.js.map +1 -1
  200. package/dist/components/DateInput.d.ts.map +1 -1
  201. package/dist/components/DateInput.js +10 -1
  202. package/dist/components/DateInput.js.map +1 -1
  203. package/dist/components/DatePicker.d.ts +2 -2
  204. package/dist/components/DatePicker.d.ts.map +1 -1
  205. package/dist/components/DatePicker.js +21 -14
  206. package/dist/components/DatePicker.js.map +1 -1
  207. package/dist/components/DateRangeInput.js +3 -3
  208. package/dist/components/DateRangeInput.js.map +1 -1
  209. package/dist/components/Dialog.d.ts +1 -1
  210. package/dist/components/Dialog.d.ts.map +1 -1
  211. package/dist/components/Dialog.js +14 -14
  212. package/dist/components/Dialog.js.map +1 -1
  213. package/dist/components/DropdownWrapper.d.ts +8 -3
  214. package/dist/components/DropdownWrapper.d.ts.map +1 -1
  215. package/dist/components/DropdownWrapper.js +17 -6
  216. package/dist/components/DropdownWrapper.js.map +1 -1
  217. package/dist/components/Effect.d.ts +41 -0
  218. package/dist/components/Effect.d.ts.map +1 -0
  219. package/dist/components/Effect.js +30 -0
  220. package/dist/components/Effect.js.map +1 -0
  221. package/dist/components/ElementType.d.ts +2 -1
  222. package/dist/components/ElementType.d.ts.map +1 -1
  223. package/dist/components/ElementType.js +4 -2
  224. package/dist/components/ElementType.js.map +1 -1
  225. package/dist/components/EmojiPicker.d.ts.map +1 -1
  226. package/dist/components/EmojiPicker.js +1 -1
  227. package/dist/components/EmojiPicker.js.map +1 -1
  228. package/dist/components/Feedback.d.ts +1 -1
  229. package/dist/components/Feedback.d.ts.map +1 -1
  230. package/dist/components/Feedback.js +2 -2
  231. package/dist/components/Feedback.js.map +1 -1
  232. package/dist/components/Flex.d.ts.map +1 -1
  233. package/dist/components/Flex.js +46 -5
  234. package/dist/components/Flex.js.map +1 -1
  235. package/dist/components/Icon.d.ts.map +1 -1
  236. package/dist/components/Icon.js.map +1 -1
  237. package/dist/components/IconButton.d.ts +1 -1
  238. package/dist/components/IconButton.d.ts.map +1 -1
  239. package/dist/components/IconButton.js +4 -4
  240. package/dist/components/IconButton.js.map +1 -1
  241. package/dist/components/InfoTip.d.ts +17 -0
  242. package/dist/components/InfoTip.d.ts.map +1 -0
  243. package/dist/components/InfoTip.js +12 -0
  244. package/dist/components/InfoTip.js.map +1 -0
  245. package/dist/components/Input.d.ts +11 -5
  246. package/dist/components/Input.d.ts.map +1 -1
  247. package/dist/components/Input.js +32 -16
  248. package/dist/components/Input.js.map +1 -1
  249. package/dist/components/Input.module.scss +313 -1
  250. package/dist/components/InteractiveDetails.d.ts.map +1 -1
  251. package/dist/components/InteractiveDetails.js +1 -1
  252. package/dist/components/InteractiveDetails.js.map +1 -1
  253. package/dist/components/Kbd.d.ts.map +1 -1
  254. package/dist/components/Kbd.js +4 -1
  255. package/dist/components/Kbd.js.map +1 -1
  256. package/dist/components/Logo.d.ts +16 -4
  257. package/dist/components/Logo.d.ts.map +1 -1
  258. package/dist/components/Logo.js +32 -14
  259. package/dist/components/Logo.js.map +1 -1
  260. package/dist/components/Media.d.ts +9 -2
  261. package/dist/components/Media.d.ts.map +1 -1
  262. package/dist/components/Media.js +25 -16
  263. package/dist/components/Media.js.map +1 -1
  264. package/dist/components/MediaAudioPlayer.d.ts +29 -0
  265. package/dist/components/MediaAudioPlayer.d.ts.map +1 -0
  266. package/dist/components/MediaAudioPlayer.js +115 -0
  267. package/dist/components/MediaAudioPlayer.js.map +1 -0
  268. package/dist/components/MediaAudioPlayer.module.scss +38 -0
  269. package/dist/components/Modal.d.ts +1 -1
  270. package/dist/components/Modal.d.ts.map +1 -1
  271. package/dist/components/Modal.js +10 -10
  272. package/dist/components/Modal.js.map +1 -1
  273. package/dist/components/NavGroup.d.ts +33 -0
  274. package/dist/components/NavGroup.d.ts.map +1 -0
  275. package/dist/components/NavGroup.js +27 -0
  276. package/dist/components/NavGroup.js.map +1 -0
  277. package/dist/components/NavIcon.d.ts +1 -1
  278. package/dist/components/NavIcon.d.ts.map +1 -1
  279. package/dist/components/NavIcon.js +2 -2
  280. package/dist/components/NavIcon.js.map +1 -1
  281. package/dist/components/NavItem.d.ts +24 -0
  282. package/dist/components/NavItem.d.ts.map +1 -0
  283. package/dist/components/NavItem.js +18 -0
  284. package/dist/components/NavItem.js.map +1 -0
  285. package/dist/components/NumberInput.js +1 -1
  286. package/dist/components/NumberInput.js.map +1 -1
  287. package/dist/components/OgCard.js +3 -3
  288. package/dist/components/OgCard.js.map +1 -1
  289. package/dist/components/Option.d.ts +3 -3
  290. package/dist/components/Option.d.ts.map +1 -1
  291. package/dist/components/Option.js +2 -2
  292. package/dist/components/Option.js.map +1 -1
  293. package/dist/components/Particle.d.ts +2 -2
  294. package/dist/components/Particle.d.ts.map +1 -1
  295. package/dist/components/PasswordInput.d.ts.map +1 -1
  296. package/dist/components/PasswordInput.js +2 -2
  297. package/dist/components/PasswordInput.js.map +1 -1
  298. package/dist/components/ProgressBar.d.ts +1 -1
  299. package/dist/components/ProgressBar.d.ts.map +1 -1
  300. package/dist/components/ProgressBar.js +2 -2
  301. package/dist/components/ProgressBar.js.map +1 -1
  302. package/dist/components/Pulse.d.ts +1 -1
  303. package/dist/components/Pulse.d.ts.map +1 -1
  304. package/dist/components/Pulse.js +2 -2
  305. package/dist/components/Pulse.js.map +1 -1
  306. package/dist/components/RadioButton.d.ts +2 -2
  307. package/dist/components/RadioButton.d.ts.map +1 -1
  308. package/dist/components/RadioButton.js +1 -1
  309. package/dist/components/RadioButton.js.map +1 -1
  310. package/dist/components/RevealFx.d.ts +2 -1
  311. package/dist/components/RevealFx.d.ts.map +1 -1
  312. package/dist/components/RevealFx.js +8 -8
  313. package/dist/components/RevealFx.js.map +1 -1
  314. package/dist/components/ScrollContainer.d.ts.map +1 -1
  315. package/dist/components/ScrollContainer.js +1 -1
  316. package/dist/components/ScrollContainer.js.map +1 -1
  317. package/dist/components/Scrubber.d.ts +70 -0
  318. package/dist/components/Scrubber.d.ts.map +1 -0
  319. package/dist/components/Scrubber.js +161 -0
  320. package/dist/components/Scrubber.js.map +1 -0
  321. package/dist/components/SegmentedControl.d.ts +4 -4
  322. package/dist/components/SegmentedControl.d.ts.map +1 -1
  323. package/dist/components/SegmentedControl.js +11 -11
  324. package/dist/components/SegmentedControl.js.map +1 -1
  325. package/dist/components/Select.d.ts.map +1 -1
  326. package/dist/components/Select.js +48 -15
  327. package/dist/components/Select.js.map +1 -1
  328. package/dist/components/ServerFlex.d.ts +0 -1
  329. package/dist/components/ServerFlex.d.ts.map +1 -1
  330. package/dist/components/ServerFlex.js +99 -52
  331. package/dist/components/ServerFlex.js.map +1 -1
  332. package/dist/components/ServerGrid.d.ts +0 -1
  333. package/dist/components/ServerGrid.d.ts.map +1 -1
  334. package/dist/components/ServerGrid.js +11 -9
  335. package/dist/components/ServerGrid.js.map +1 -1
  336. package/dist/components/Setting.d.ts +50 -0
  337. package/dist/components/Setting.d.ts.map +1 -0
  338. package/dist/components/Setting.js +43 -0
  339. package/dist/components/Setting.js.map +1 -0
  340. package/dist/components/ShineFx.d.ts +1 -0
  341. package/dist/components/ShineFx.d.ts.map +1 -1
  342. package/dist/components/ShineFx.js +2 -2
  343. package/dist/components/ShineFx.js.map +1 -1
  344. package/dist/components/Skeleton.d.ts +16 -3
  345. package/dist/components/Skeleton.d.ts.map +1 -1
  346. package/dist/components/Skeleton.js +2 -2
  347. package/dist/components/Skeleton.js.map +1 -1
  348. package/dist/components/Skeleton.module.scss +14 -51
  349. package/dist/components/SplitView.d.ts +23 -3
  350. package/dist/components/SplitView.d.ts.map +1 -1
  351. package/dist/components/SplitView.js +90 -58
  352. package/dist/components/SplitView.js.map +1 -1
  353. package/dist/components/StyleOverlay.d.ts.map +1 -1
  354. package/dist/components/StyleOverlay.js +1 -1
  355. package/dist/components/StyleOverlay.js.map +1 -1
  356. package/dist/components/StylePanel.d.ts +47 -6
  357. package/dist/components/StylePanel.d.ts.map +1 -1
  358. package/dist/components/StylePanel.js +16 -189
  359. package/dist/components/StylePanel.js.map +1 -1
  360. package/dist/components/StylePanel.module.scss +6 -1
  361. package/dist/components/StylePanelSections.d.ts +117 -0
  362. package/dist/components/StylePanelSections.d.ts.map +1 -0
  363. package/dist/components/StylePanelSections.js +175 -0
  364. package/dist/components/StylePanelSections.js.map +1 -0
  365. package/dist/components/Swiper.d.ts +7 -1
  366. package/dist/components/Swiper.d.ts.map +1 -1
  367. package/dist/components/Swiper.js +7 -7
  368. package/dist/components/Swiper.js.map +1 -1
  369. package/dist/components/Switch.d.ts +2 -2
  370. package/dist/components/Switch.d.ts.map +1 -1
  371. package/dist/components/Switch.js +4 -4
  372. package/dist/components/Switch.js.map +1 -1
  373. package/dist/components/Table.d.ts.map +1 -1
  374. package/dist/components/Table.js +2 -2
  375. package/dist/components/Table.js.map +1 -1
  376. package/dist/components/Tag.d.ts +1 -1
  377. package/dist/components/Tag.d.ts.map +1 -1
  378. package/dist/components/Tag.js +2 -2
  379. package/dist/components/Tag.js.map +1 -1
  380. package/dist/components/Textarea.d.ts +15 -5
  381. package/dist/components/Textarea.d.ts.map +1 -1
  382. package/dist/components/Textarea.js +31 -17
  383. package/dist/components/Textarea.js.map +1 -1
  384. package/dist/components/ThemeSwitcher.d.ts +14 -1
  385. package/dist/components/ThemeSwitcher.d.ts.map +1 -1
  386. package/dist/components/ThemeSwitcher.js +19 -9
  387. package/dist/components/ThemeSwitcher.js.map +1 -1
  388. package/dist/components/ThemeSwitcher.module.scss +54 -0
  389. package/dist/components/Toast.d.ts +1 -1
  390. package/dist/components/Toast.d.ts.map +1 -1
  391. package/dist/components/Toast.js +2 -2
  392. package/dist/components/Toast.js.map +1 -1
  393. package/dist/components/ToggleButton.d.ts +9 -2
  394. package/dist/components/ToggleButton.d.ts.map +1 -1
  395. package/dist/components/ToggleButton.js +5 -5
  396. package/dist/components/ToggleButton.js.map +1 -1
  397. package/dist/components/User.js +1 -1
  398. package/dist/components/User.js.map +1 -1
  399. package/dist/components/index.d.ts +7 -0
  400. package/dist/components/index.d.ts.map +1 -1
  401. package/dist/components/index.js +7 -0
  402. package/dist/components/index.js.map +1 -1
  403. package/dist/contexts/AdapterProvider.d.ts +50 -0
  404. package/dist/contexts/AdapterProvider.d.ts.map +1 -0
  405. package/dist/contexts/AdapterProvider.js +91 -0
  406. package/dist/contexts/AdapterProvider.js.map +1 -0
  407. package/dist/contexts/IconProvider.d.ts +2 -2
  408. package/dist/contexts/IconProvider.d.ts.map +1 -1
  409. package/dist/contexts/IconProvider.js +2 -2
  410. package/dist/contexts/IconProvider.js.map +1 -1
  411. package/dist/contexts/LayoutProvider.d.ts +0 -2
  412. package/dist/contexts/LayoutProvider.d.ts.map +1 -1
  413. package/dist/contexts/LayoutProvider.js +15 -10
  414. package/dist/contexts/LayoutProvider.js.map +1 -1
  415. package/dist/contexts/ThemeProvider.d.ts +29 -1
  416. package/dist/contexts/ThemeProvider.d.ts.map +1 -1
  417. package/dist/contexts/ThemeProvider.js +42 -15
  418. package/dist/contexts/ThemeProvider.js.map +1 -1
  419. package/dist/contexts/index.d.ts +3 -2
  420. package/dist/contexts/index.d.ts.map +1 -1
  421. package/dist/contexts/index.js +3 -2
  422. package/dist/contexts/index.js.map +1 -1
  423. package/dist/css/styles.css +1 -1
  424. package/dist/css/tokens.css +1 -1
  425. package/dist/hooks/index.d.ts +0 -1
  426. package/dist/hooks/index.d.ts.map +1 -1
  427. package/dist/hooks/index.js +0 -1
  428. package/dist/hooks/index.js.map +1 -1
  429. package/dist/icons/ATTRIBUTION.md +19 -0
  430. package/dist/icons/data.d.ts +1919 -0
  431. package/dist/icons/data.d.ts.map +1 -0
  432. package/dist/icons/data.js +102 -0
  433. package/dist/icons/data.js.map +1 -0
  434. package/dist/icons/renderIcon.d.ts +26 -0
  435. package/dist/icons/renderIcon.d.ts.map +1 -0
  436. package/dist/icons/renderIcon.js +22 -0
  437. package/dist/icons/renderIcon.js.map +1 -0
  438. package/dist/icons.d.ts +35 -4
  439. package/dist/icons.d.ts.map +1 -1
  440. package/dist/icons.js +13 -60
  441. package/dist/icons.js.map +1 -1
  442. package/dist/modules/code/CodeBlock.impl.d.ts +2 -1
  443. package/dist/modules/code/CodeBlock.impl.d.ts.map +1 -1
  444. package/dist/modules/code/CodeBlock.impl.js +7 -2
  445. package/dist/modules/code/CodeBlock.impl.js.map +1 -1
  446. package/dist/modules/data/ChartHeader.d.ts.map +1 -1
  447. package/dist/modules/data/ChartHeader.js +1 -1
  448. package/dist/modules/data/ChartHeader.js.map +1 -1
  449. package/dist/modules/data/DataTooltip.d.ts +1 -1
  450. package/dist/modules/data/DataTooltip.d.ts.map +1 -1
  451. package/dist/modules/data/DataTooltip.js +2 -2
  452. package/dist/modules/data/DataTooltip.js.map +1 -1
  453. package/dist/modules/data/LinearGauge.d.ts +3 -2
  454. package/dist/modules/data/LinearGauge.d.ts.map +1 -1
  455. package/dist/modules/data/LinearGauge.js +1 -1
  456. package/dist/modules/data/LinearGauge.js.map +1 -1
  457. package/dist/modules/data/PieChart.impl.d.ts +1 -1
  458. package/dist/modules/data/PieChart.impl.d.ts.map +1 -1
  459. package/dist/modules/data/PieChart.impl.js +4 -1
  460. package/dist/modules/data/PieChart.impl.js.map +1 -1
  461. package/dist/modules/data/RadialGauge.d.ts +3 -2
  462. package/dist/modules/data/RadialGauge.d.ts.map +1 -1
  463. package/dist/modules/data/RadialGauge.js +1 -1
  464. package/dist/modules/data/RadialGauge.js.map +1 -1
  465. package/dist/modules/data/interfaces.d.ts +12 -3
  466. package/dist/modules/data/interfaces.d.ts.map +1 -1
  467. package/dist/modules/index.d.ts +1 -4
  468. package/dist/modules/index.d.ts.map +1 -1
  469. package/dist/modules/index.js +9 -3
  470. package/dist/modules/index.js.map +1 -1
  471. package/dist/modules/media/MediaUpload.impl.d.ts +1 -1
  472. package/dist/modules/media/MediaUpload.impl.d.ts.map +1 -1
  473. package/dist/modules/media/MediaUpload.impl.js +1 -1
  474. package/dist/modules/media/MediaUpload.impl.js.map +1 -1
  475. package/dist/modules/navigation/Kbar.d.ts +5 -4
  476. package/dist/modules/navigation/Kbar.d.ts.map +1 -1
  477. package/dist/modules/navigation/Kbar.js +32 -35
  478. package/dist/modules/navigation/Kbar.js.map +1 -1
  479. package/dist/modules/navigation/MegaMenu.d.ts +5 -3
  480. package/dist/modules/navigation/MegaMenu.d.ts.map +1 -1
  481. package/dist/modules/navigation/MegaMenu.js +24 -12
  482. package/dist/modules/navigation/MegaMenu.js.map +1 -1
  483. package/dist/modules/navigation/MobileMegaMenu.d.ts +3 -2
  484. package/dist/modules/navigation/MobileMegaMenu.d.ts.map +1 -1
  485. package/dist/modules/navigation/MobileMegaMenu.js +1 -1
  486. package/dist/modules/navigation/MobileMegaMenu.js.map +1 -1
  487. package/dist/modules/seo/Meta.d.ts +40 -2
  488. package/dist/modules/seo/Meta.d.ts.map +1 -1
  489. package/dist/modules/seo/Meta.js.map +1 -1
  490. package/dist/modules/seo/Schema.d.ts.map +1 -1
  491. package/dist/modules/seo/Schema.js +1 -2
  492. package/dist/modules/seo/Schema.js.map +1 -1
  493. package/dist/next/index.d.ts +35 -0
  494. package/dist/next/index.d.ts.map +1 -0
  495. package/dist/next/index.js +56 -0
  496. package/dist/next/index.js.map +1 -0
  497. package/dist/package.json +52 -7
  498. package/dist/scripts/init-agent.js +0 -0
  499. package/dist/scripts/validate-ai-code.js +74 -10
  500. package/dist/server/og-utils.d.ts +9 -3
  501. package/dist/server/og-utils.d.ts.map +1 -1
  502. package/dist/server/og-utils.js +15 -9
  503. package/dist/server/og-utils.js.map +1 -1
  504. package/dist/styles/breakpoints.scss +16 -5
  505. package/dist/test/setup.js +21 -0
  506. package/dist/test/setup.js.map +1 -1
  507. package/dist/types.d.ts +13 -1
  508. package/dist/types.d.ts.map +1 -1
  509. package/dist/types.js.map +1 -1
  510. package/dist/utils/colorScheme.d.ts +35 -0
  511. package/dist/utils/colorScheme.d.ts.map +1 -0
  512. package/dist/utils/colorScheme.js +140 -0
  513. package/dist/utils/colorScheme.js.map +1 -0
  514. package/dist/utils/index.d.ts +2 -0
  515. package/dist/utils/index.d.ts.map +1 -1
  516. package/dist/utils/index.js +2 -0
  517. package/dist/utils/index.js.map +1 -1
  518. package/dist/utils/navMatch.d.ts +21 -0
  519. package/dist/utils/navMatch.d.ts.map +1 -0
  520. package/dist/utils/navMatch.js +26 -0
  521. package/dist/utils/navMatch.js.map +1 -0
  522. package/package.json +228 -171
  523. package/scripts/init-agent.js +0 -0
  524. package/scripts/validate-ai-code.js +74 -10
  525. package/LICENSE.md +0 -21
  526. package/dist/css/styles.css.map +0 -1
  527. package/dist/css/tokens.css.map +0 -1
  528. package/dist/hooks/useResponsiveClasses.d.ts +0 -9
  529. package/dist/hooks/useResponsiveClasses.d.ts.map +0 -1
  530. package/dist/hooks/useResponsiveClasses.js +0 -293
  531. package/dist/hooks/useResponsiveClasses.js.map +0 -1
  532. package/dist/styles/background.scss +0 -423
  533. package/dist/styles/border.scss +0 -546
  534. package/dist/styles/color.scss +0 -183
  535. package/dist/styles/display.scss +0 -391
  536. package/dist/styles/flex.scss +0 -518
  537. package/dist/styles/global.scss +0 -36
  538. package/dist/styles/grid.scss +0 -293
  539. package/dist/styles/index.scss +0 -14
  540. package/dist/styles/position.scss +0 -1549
  541. package/dist/styles/shadow.scss +0 -19
  542. package/dist/styles/size.scss +0 -53
  543. package/dist/styles/spacing.scss +0 -1505
  544. package/dist/styles/typography.scss +0 -223
  545. package/dist/styles/utilities.scss +0 -23
  546. package/dist/tokens/border.scss +0 -95
  547. package/dist/tokens/data.scss +0 -107
  548. package/dist/tokens/function.scss +0 -742
  549. package/dist/tokens/index.scss +0 -8
  550. package/dist/tokens/layout.scss +0 -275
  551. package/dist/tokens/scheme.scss +0 -352
  552. package/dist/tokens/shadow.scss +0 -7
  553. package/dist/tokens/theme.scss +0 -657
  554. package/dist/tokens/typography.scss +0 -118
  555. package/next-env.d.ts +0 -5
  556. package/scripts/copy-files.js +0 -103
  557. package/scripts/generate-ai-spec.js +0 -464
  558. package/scripts/generate-emoji-data.js +0 -128
  559. package/scss.d.ts +0 -4
  560. package/tsconfig.vitest.json +0 -20
  561. package/vitest.config.ts +0 -19
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Generate a 12-step Once UI colour ramp from one seed colour.
3
+ *
4
+ * Steps are anchored to a contrast ratio against black rather than to fixed
5
+ * lightness values, so a generated ramp keeps the same contrast relationships
6
+ * as the built-in schemes no matter which hue it is built from.
7
+ *
8
+ * Hue and chroma are taken from the seed and held constant; only lightness
9
+ * moves. That was measured against the 19 hand-tuned schemes rather than
10
+ * assumed: their hue drift averages to nothing across the set (each scheme
11
+ * drifts its own way, so there is no house curve to copy), and reproducing
12
+ * their chroma arc made the match worse, not better.
13
+ *
14
+ * What does matter is staying inside the gamut. A chroma that exists at the
15
+ * seed's lightness usually does not exist at 0.98, and clamping the red,
16
+ * green and blue channels separately — which is what converting an
17
+ * out-of-range colour to hex does — shifts the hue as it clips. Reducing
18
+ * chroma until the colour fits instead cuts the worst error across the
19
+ * built-in schemes from 0.168 to 0.110 in OKLab ΔE, and roughly five-fold on
20
+ * the lightest steps, where clipping is worst.
21
+ */
22
+ /** Contrast against black for each step, matching the built-in schemes. */
23
+ export const defaultContrastRatios = [
24
+ [100, 1.05], [200, 1.15], [300, 2], [400, 3], [500, 4.5], [600, 7],
25
+ [700, 10], [800, 14], [900, 16], [1000, 18], [1100, 19], [1200, 20],
26
+ ];
27
+ const clamp01 = (n) => Math.min(1, Math.max(0, n));
28
+ function parseSeed(input) {
29
+ const value = input.trim();
30
+ const oklch = value.match(/^oklch\(\s*([\d.]+%?)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*[\d.]+%?)?\s*\)$/i);
31
+ if (oklch) {
32
+ const l = oklch[1].endsWith("%") ? parseFloat(oklch[1]) / 100 : parseFloat(oklch[1]);
33
+ return { l, c: parseFloat(oklch[2]), h: parseFloat(oklch[3]) };
34
+ }
35
+ const rgb = value.match(/^rgba?\(([^)]+)\)$/i);
36
+ if (rgb) {
37
+ const parts = rgb[1].split(/[\s,/]+/).filter(Boolean).map(parseFloat);
38
+ if (parts.length >= 3)
39
+ return srgbToOklch(parts[0] / 255, parts[1] / 255, parts[2] / 255);
40
+ }
41
+ let hex = value.replace(/^#/, "");
42
+ if (hex.length === 3 || hex.length === 4)
43
+ hex = hex.split("").map((d) => d + d).join("");
44
+ if (hex.length === 6 || hex.length === 8) {
45
+ const n = Number.parseInt(hex.slice(0, 6), 16);
46
+ if (!Number.isNaN(n)) {
47
+ return srgbToOklch(((n >> 16) & 255) / 255, ((n >> 8) & 255) / 255, (n & 255) / 255);
48
+ }
49
+ }
50
+ return null;
51
+ }
52
+ const toLinear = (c) => (c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4);
53
+ function srgbToOklch(r, g, b) {
54
+ const [lr, lg, lb] = [toLinear(r), toLinear(g), toLinear(b)];
55
+ const l = Math.cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);
56
+ const m = Math.cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);
57
+ const s = Math.cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);
58
+ const L = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;
59
+ const a = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s;
60
+ const bb = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;
61
+ return { l: L, c: Math.hypot(a, bb), h: ((Math.atan2(bb, a) * 180) / Math.PI + 360) % 360 };
62
+ }
63
+ /** Linear sRGB, which may fall outside 0–1 when the colour is out of gamut. */
64
+ function oklchToLinearSrgb({ l: L, c, h }) {
65
+ const a = c * Math.cos((h * Math.PI) / 180);
66
+ const b = c * Math.sin((h * Math.PI) / 180);
67
+ const l = (L + 0.3963377774 * a + 0.2158037573 * b) ** 3;
68
+ const m = (L - 0.1055613458 * a - 0.0638541728 * b) ** 3;
69
+ const s = (L - 0.0894841775 * a - 1.291485548 * b) ** 3;
70
+ return [
71
+ 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s,
72
+ -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s,
73
+ -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s,
74
+ ];
75
+ }
76
+ const inGamut = (lch) => oklchToLinearSrgb(lch).every((channel) => channel >= -1e-4 && channel <= 1 + 1e-4);
77
+ /** The most chroma this hue and lightness can carry inside sRGB. */
78
+ function fitChroma(lch) {
79
+ if (inGamut(lch))
80
+ return lch;
81
+ let low = 0;
82
+ let high = lch.c;
83
+ for (let i = 0; i < 24; i++) {
84
+ const mid = (low + high) / 2;
85
+ if (inGamut({ ...lch, c: mid }))
86
+ low = mid;
87
+ else
88
+ high = mid;
89
+ }
90
+ return { ...lch, c: low };
91
+ }
92
+ /** WCAG relative luminance, which is what a contrast ratio is built from. */
93
+ function luminance(lch) {
94
+ const [r, g, b] = oklchToLinearSrgb(lch).map(clamp01);
95
+ return 0.2126 * r + 0.7152 * g + 0.0722 * b;
96
+ }
97
+ const contrastAgainstBlack = (lch) => (luminance(lch) + 0.05) / 0.05;
98
+ /** The lightness whose contrast against black is closest to `ratio`. */
99
+ function lightnessForContrast(ratio, c, h) {
100
+ let low = 0;
101
+ let high = 1;
102
+ for (let i = 0; i < 24; i++) {
103
+ const mid = (low + high) / 2;
104
+ if (contrastAgainstBlack(fitChroma({ l: mid, c, h })) < ratio)
105
+ low = mid;
106
+ else
107
+ high = mid;
108
+ }
109
+ return (low + high) / 2;
110
+ }
111
+ const format = ({ l, c, h }, alpha) => `oklch(${l.toFixed(4)} ${c.toFixed(4)} ${c < 0.0005 ? 0 : h.toFixed(2)}${alpha === undefined ? "" : ` / ${alpha}`})`;
112
+ /**
113
+ * Build a scheme from a seed colour. Accepts hex, `rgb()`/`rgba()` or
114
+ * `oklch()` — which covers what `ColorInput` produces with and without
115
+ * `supportAlpha`. Returns `null` if the seed cannot be parsed, so a caller
116
+ * can leave the current scheme in place rather than apply something wrong.
117
+ */
118
+ export function generateColorScheme(seed, ratios = defaultContrastRatios) {
119
+ const base = parseSeed(seed);
120
+ if (!base)
121
+ return null;
122
+ const scheme = {};
123
+ for (const [weight, ratio] of ratios) {
124
+ const l = lightnessForContrast(ratio, base.c, base.h);
125
+ scheme[weight] = format(fitChroma({ l, c: base.c, h: base.h }));
126
+ }
127
+ return scheme;
128
+ }
129
+ /** The three translucent variants of step 600 that the token set expects. */
130
+ export function schemeAlphaVariants(scheme) {
131
+ const base = parseSeed(scheme[600]);
132
+ if (!base)
133
+ return {};
134
+ return {
135
+ "600-15": format(base, 0.15),
136
+ "600-30": format(base, 0.3),
137
+ "600-50": format(base, 0.5),
138
+ };
139
+ }
140
+ //# sourceMappingURL=colorScheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorScheme.js","sourceRoot":"","sources":["../../src/utils/colorScheme.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export * from "./devLogger";
2
2
  export * from "./MissingDependency";
3
3
  export * from "./dropdownState";
4
+ export * from "./colorScheme";
5
+ export * from "./navMatch";
4
6
  export * from "./safe-html";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export * from "./devLogger";
2
2
  export * from "./MissingDependency";
3
3
  export * from "./dropdownState";
4
+ export * from "./colorScheme";
5
+ export * from "./navMatch";
4
6
  export * from "./safe-html";
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Which of a set of hrefs a pathname is currently on.
3
+ *
4
+ * A sidebar cannot decide this with `pathname === href`, because a nested
5
+ * route (`/settings/billing/invoices`) is on none of its links, and it cannot
6
+ * use `startsWith` either, because `/settings` is a prefix of every one of its
7
+ * children and would light up alongside them. The answer is the *longest*
8
+ * href that matches, which is the one lower in the tree.
9
+ *
10
+ * Lifted out of a product sidebar where it had been written once and copied
11
+ * nowhere — every other sidebar in the fleet got the highlight subtly wrong.
12
+ *
13
+ * ```ts
14
+ * const hrefs = items.map((i) => i.href);
15
+ * const current = selectNavHref(pathname, hrefs);
16
+ * // then: selected={item.href === current}
17
+ * ```
18
+ */
19
+ declare function selectNavHref(pathname: string, hrefs: string[]): string | null;
20
+ export { selectNavHref };
21
+ //# sourceMappingURL=navMatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navMatch.d.ts","sourceRoot":"","sources":["../../src/utils/navMatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAIvE;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Which of a set of hrefs a pathname is currently on.
3
+ *
4
+ * A sidebar cannot decide this with `pathname === href`, because a nested
5
+ * route (`/settings/billing/invoices`) is on none of its links, and it cannot
6
+ * use `startsWith` either, because `/settings` is a prefix of every one of its
7
+ * children and would light up alongside them. The answer is the *longest*
8
+ * href that matches, which is the one lower in the tree.
9
+ *
10
+ * Lifted out of a product sidebar where it had been written once and copied
11
+ * nowhere — every other sidebar in the fleet got the highlight subtly wrong.
12
+ *
13
+ * ```ts
14
+ * const hrefs = items.map((i) => i.href);
15
+ * const current = selectNavHref(pathname, hrefs);
16
+ * // then: selected={item.href === current}
17
+ * ```
18
+ */
19
+ function selectNavHref(pathname, hrefs) {
20
+ const matches = hrefs.filter((href) => pathname === href || pathname.startsWith(`${href}/`));
21
+ if (matches.length === 0)
22
+ return null;
23
+ return matches.reduce((a, b) => (a.length >= b.length ? a : b));
24
+ }
25
+ export { selectNavHref };
26
+ //# sourceMappingURL=navMatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navMatch.js","sourceRoot":"","sources":["../../src/utils/navMatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,aAAa,CAAC,QAAgB,EAAE,KAAe;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IAC7F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}