@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,35 @@
1
+ import type React from "react";
2
+ import { type OnceUIAdapters } from "../contexts/AdapterProvider";
3
+ import { LayoutProvider as BaseLayoutProvider } from "../contexts/LayoutProvider";
4
+ export declare const nextAdapters: OnceUIAdapters;
5
+ export interface NextAdapterProviderProps {
6
+ children: React.ReactNode;
7
+ }
8
+ export declare const NextAdapterProvider: React.FC<NextAdapterProviderProps>;
9
+ /**
10
+ * Drop-in replacement for core's `LayoutProvider`, with the Next adapters
11
+ * already installed.
12
+ *
13
+ * This is the whole migration for a Next.js app on 1.8.x: change the import
14
+ * path for `LayoutProvider`, and `SmartLink`, `Button`/`Card`/`ToggleButton`
15
+ * with an `href`, `Media`, `Logo`, `MegaMenu` and `Kbar` keep routing through
16
+ * next/link and next/image exactly as before. No provider is added to the tree
17
+ * and no props change.
18
+ *
19
+ * - import { LayoutProvider } from "@once-ui-system/core";
20
+ * + import { LayoutProvider } from "@once-ui-system/core/next";
21
+ *
22
+ * Detection is deliberately not attempted. The adapters include two hooks whose
23
+ * implementations call different numbers of hooks — the DOM `useNavigate`
24
+ * returns a closure, the Next one calls `useRouter` and `useCallback` — so
25
+ * swapping them after mount breaks the rules of hooks. Resolution has to be
26
+ * settled before the first render, and a browser bundle has no synchronous way
27
+ * to conditionally resolve an optional module. An explicit import is the
28
+ * honest, bundler-independent version of the same thing.
29
+ *
30
+ * Apps that already compose `AdapterProvider` themselves can keep using
31
+ * `NextAdapterProvider` directly; this only removes the boilerplate for the
32
+ * common case.
33
+ */
34
+ export declare const LayoutProvider: React.FC<React.ComponentProps<typeof BaseLayoutProvider>>;
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/next/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AA4BlF,eAAO,MAAM,YAAY,EAAE,cAK1B,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAElE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAOpF,CAAC"}
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import NextImage from "next/image";
4
+ import NextLink from "next/link";
5
+ import { usePathname, useRouter } from "next/navigation";
6
+ import { forwardRef, useCallback } from "react";
7
+ import { AdapterProvider, } from "../contexts/AdapterProvider";
8
+ import { LayoutProvider as BaseLayoutProvider } from "../contexts/LayoutProvider";
9
+ /**
10
+ * Next.js adapter bindings — the ONLY runtime `next/*` imports in core
11
+ * outside modules/seo and server/ (enforced by framework-boundary.test.ts).
12
+ * Imported via the `@once-ui-system/core/next` subpath, never the root
13
+ * barrel, so non-Next bundlers never resolve `next/*`. This module becomes
14
+ * the seed of `@once-ui-system/nextjs` in 2.0 Phase 4.
15
+ */
16
+ const NextAdapterLink = forwardRef(({ href, children, ...props }, ref) => (_jsx(NextLink, { href: href, ref: ref, ...props, children: children })));
17
+ NextAdapterLink.displayName = "NextAdapterLink";
18
+ const NextAdapterImage = ({ width, height, ...props }) => (_jsx(NextImage, { width: width, height: height, ...props }));
19
+ const useNextNavigate = () => {
20
+ const router = useRouter();
21
+ return useCallback((href) => router.push(href), [router]);
22
+ };
23
+ export const nextAdapters = {
24
+ Link: NextAdapterLink,
25
+ Image: NextAdapterImage,
26
+ usePathname,
27
+ useNavigate: useNextNavigate,
28
+ };
29
+ export const NextAdapterProvider = ({ children }) => (_jsx(AdapterProvider, { adapters: nextAdapters, children: children }));
30
+ /**
31
+ * Drop-in replacement for core's `LayoutProvider`, with the Next adapters
32
+ * already installed.
33
+ *
34
+ * This is the whole migration for a Next.js app on 1.8.x: change the import
35
+ * path for `LayoutProvider`, and `SmartLink`, `Button`/`Card`/`ToggleButton`
36
+ * with an `href`, `Media`, `Logo`, `MegaMenu` and `Kbar` keep routing through
37
+ * next/link and next/image exactly as before. No provider is added to the tree
38
+ * and no props change.
39
+ *
40
+ * - import { LayoutProvider } from "@once-ui-system/core";
41
+ * + import { LayoutProvider } from "@once-ui-system/core/next";
42
+ *
43
+ * Detection is deliberately not attempted. The adapters include two hooks whose
44
+ * implementations call different numbers of hooks — the DOM `useNavigate`
45
+ * returns a closure, the Next one calls `useRouter` and `useCallback` — so
46
+ * swapping them after mount breaks the rules of hooks. Resolution has to be
47
+ * settled before the first render, and a browser bundle has no synchronous way
48
+ * to conditionally resolve an optional module. An explicit import is the
49
+ * honest, bundler-independent version of the same thing.
50
+ *
51
+ * Apps that already compose `AdapterProvider` themselves can keep using
52
+ * `NextAdapterProvider` directly; this only removes the boilerplate for the
53
+ * common case.
54
+ */
55
+ export const LayoutProvider = ({ children, ...props }) => (_jsx(NextAdapterProvider, { children: _jsx(BaseLayoutProvider, { ...props, children: children }) }));
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/next/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAGL,eAAe,GAEhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAElF;;;;;;GAMG;AAEH,MAAM,eAAe,GAAG,UAAU,CAChC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACrC,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAM,KAAK,YACtC,QAAQ,GACA,CACZ,CACF,CAAC;AACF,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEhD,MAAM,gBAAgB,GAAgC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CACrF,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,KAAM,KAAK,GAAI,CACvD,CAAC;AAEF,MAAM,eAAe,GAAG,GAA6B,EAAE;IACrD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,gBAAgB;IACvB,WAAW;IACX,WAAW,EAAE,eAAe;CAC7B,CAAC;AAMF,MAAM,CAAC,MAAM,mBAAmB,GAAuC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACvF,KAAC,eAAe,IAAC,QAAQ,EAAE,YAAY,YAAG,QAAQ,GAAmB,CACtE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,cAAc,GAA8D,CAAC,EACxF,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,EAAE,CAAC,CACJ,KAAC,mBAAmB,cAClB,KAAC,kBAAkB,OAAK,KAAK,YAAG,QAAQ,GAAsB,GAC1C,CACvB,CAAC"}
package/dist/package.json CHANGED
@@ -1,6 +1,18 @@
1
1
  {
2
2
  "name": "@once-ui-system/core",
3
- "version": "1.8.4",
3
+ "version": "2.0.0-alpha.0",
4
+ "publishConfig": {
5
+ "access": "public",
6
+ "tag": "alpha"
7
+ },
8
+ "files": [
9
+ "dist",
10
+ "ai",
11
+ "agent",
12
+ "AGENTS.md",
13
+ "scripts/init-agent.js",
14
+ "scripts/validate-ai-code.js"
15
+ ],
4
16
  "description": "Once UI for Next.js NPM package",
5
17
  "keywords": [
6
18
  "once-ui",
@@ -99,6 +111,11 @@
99
111
  "import": "./dist/server/index.js",
100
112
  "require": "./dist/server/index.js"
101
113
  },
114
+ "./next": {
115
+ "types": "./dist/next/index.d.ts",
116
+ "import": "./dist/next/index.js",
117
+ "require": "./dist/next/index.js"
118
+ },
102
119
  "./ai/manifest.json": "./ai/manifest.json",
103
120
  "./ai/spec.json": "./ai/spec.json",
104
121
  "./ai/catalog.json": "./ai/catalog.json",
@@ -106,20 +123,33 @@
106
123
  "./ai/rules.compact.md": "./ai/rules.compact.md",
107
124
  "./ai/rules.md": "./ai/rules.md",
108
125
  "./ai/recipes.md": "./ai/recipes.md",
126
+ "./ai/layouts.md": "./ai/layouts.md",
109
127
  "./ai/tasks/*": "./ai/tasks/*",
110
128
  "./ai/components/*": "./ai/components/*",
111
129
  "./ai/examples/*": "./ai/examples/*",
112
130
  "./ai/examples/blocks/*": "./ai/examples/blocks/*",
113
- "./AGENTS.md": "./AGENTS.md"
131
+ "./AGENTS.md": "./AGENTS.md",
132
+ "./data": {
133
+ "types": "./dist/modules/data/index.d.ts",
134
+ "import": "./dist/modules/data/index.js",
135
+ "require": "./dist/modules/data/index.js"
136
+ },
137
+ "./code": {
138
+ "types": "./dist/modules/code/index.d.ts",
139
+ "import": "./dist/modules/code/index.js",
140
+ "require": "./dist/modules/code/index.js"
141
+ },
142
+ "./media": {
143
+ "types": "./dist/modules/media/index.d.ts",
144
+ "import": "./dist/modules/media/index.js",
145
+ "require": "./dist/modules/media/index.js"
146
+ },
147
+ "./package.json": "./package.json"
114
148
  },
115
149
  "dependencies": {
116
150
  "@floating-ui/react-dom": "^2.1.9",
117
151
  "clsx": "^2.1.1",
118
- "compressorjs": "^1.3.0",
119
- "date-fns": "^4.4.0",
120
- "prismjs": "^1.30.0",
121
- "react-icons": "^5.7.0",
122
- "recharts": "^3.10.1"
152
+ "date-fns": "^4.4.0"
123
153
  },
124
154
  "peerDependencies": {
125
155
  "react": ">=18.0.0",
@@ -127,8 +157,23 @@
127
157
  "next": ">=13.0.0"
128
158
  },
129
159
  "peerDependenciesMeta": {
160
+ "next": {
161
+ "optional": true
162
+ },
163
+ "sass": {
164
+ "optional": true
165
+ },
130
166
  "sharp": {
131
167
  "optional": true
168
+ },
169
+ "recharts": {
170
+ "optional": true
171
+ },
172
+ "prismjs": {
173
+ "optional": true
174
+ },
175
+ "compressorjs": {
176
+ "optional": true
132
177
  }
133
178
  }
134
179
  }
File without changes
@@ -34,6 +34,54 @@ function readInput(argv) {
34
34
  return { source: fs.readFileSync(fileArg, "utf8"), file: fileArg };
35
35
  }
36
36
 
37
+ /**
38
+ * A literal colour in a styling position.
39
+ *
40
+ * The rule used to be a bare `#[0-9a-fA-F]{3,8}` over the whole file, which
41
+ * flagged two things that are not colours at all: any string that happens to
42
+ * look like hex (an order id `"#1024"` is a valid #RGBA literal), and the
43
+ * `fill` / `stroke` of an inline `<svg>`, where a raw value is the only thing
44
+ * that works — which is why 2.0 types those props `ColorValue` rather than
45
+ * `Colors`. So it looks at where the value sits, not only at its shape.
46
+ */
47
+ function hasLiteralColor(source) {
48
+ const LITERAL = /#[0-9a-fA-F]{3,8}\b|rgba?\s*\(/;
49
+ const SVG_PAINT =
50
+ /^(?:fill|stroke|stopColor|stop-color|floodColor|flood-color|lightingColor|lighting-color)$/;
51
+
52
+ for (const block of source.match(/style=\{\{[\s\S]*?\}\}/g) || []) {
53
+ if (LITERAL.test(block)) return true;
54
+ }
55
+
56
+ for (const [, name, value] of source.matchAll(/([A-Za-z-]+)=\{?["']([^"']*)["']/g)) {
57
+ if (SVG_PAINT.test(name)) continue;
58
+ if (!/colou?r|background|border|shadow|gradient/i.test(name)) continue;
59
+ if (LITERAL.test(value)) return true;
60
+ }
61
+ return false;
62
+ }
63
+
64
+ /**
65
+ * Is `index` inside the braces of a `<prop>={ ... }` value?
66
+ *
67
+ * Counts braces forward from each occurrence of the prop, which is enough for
68
+ * JSX: a `{` inside a string would have to be unbalanced to fool it, and the
69
+ * answer is only used to suppress a warning.
70
+ */
71
+ function insidePropValue(source, index, prop) {
72
+ for (const m of source.matchAll(new RegExp(`\\b${prop}=\\{`, "g"))) {
73
+ if (m.index > index) return false;
74
+ let depth = 1;
75
+ let i = m.index + m[0].length;
76
+ for (; i < source.length && depth > 0; i++) {
77
+ if (source[i] === "{") depth++;
78
+ else if (source[i] === "}") depth--;
79
+ }
80
+ if (index > m.index && index < i) return true;
81
+ }
82
+ return false;
83
+ }
84
+
37
85
  function validate(source, spec, iconNames) {
38
86
  const issues = [];
39
87
 
@@ -63,7 +111,12 @@ function validate(source, spec, iconNames) {
63
111
  add("layout.defaults", "variant=\"primary\" is the Button default — omit it");
64
112
  }
65
113
 
66
- if (/#[0-9a-fA-F]{3,8}\b|rgb\s*\(|rgba\s*\(/.test(source)) {
114
+ // Scoped to the tag: `lines` is a different prop on Background and CodeBlock.
115
+ if (/<Textarea[^>]*\blines=\{?["']auto["']/.test(source)) {
116
+ add("layout.defaults", "lines=\"auto\" is the Textarea default — omit it");
117
+ }
118
+
119
+ if (hasLiteralColor(source)) {
67
120
  add("color.tokens", "Use semantic color tokens, not hex/rgb");
68
121
  }
69
122
 
@@ -71,12 +124,14 @@ function validate(source, spec, iconNames) {
71
124
  add("components.primitives", "Use Once UI components (Media, SmartLink, Button) instead of raw HTML");
72
125
  }
73
126
 
74
- const cardMatches = source.match(/<Card\b[^>]*>/g) || [];
75
- for (const tag of cardMatches) {
76
- if (!/\b(href|onClick)=/.test(tag)) {
77
- add("Card.interactive", "Card without href/onClick — use Column + surface recipe for static panels");
78
- break;
79
- }
127
+ for (const match of source.matchAll(/<Card\b[^>]*>/g)) {
128
+ if (/\b(href|onClick)=/.test(match[0])) continue;
129
+ // A card handed to a `trigger` prop is operated by whatever owns it
130
+ // (DropdownWrapper, Dialog), so it carries no handler of its own and is
131
+ // not the static-panel misuse this rule is looking for.
132
+ if (insidePropValue(source, match.index, "trigger")) continue;
133
+ add("Card.interactive", "Card without href/onClick — use Column + surface recipe for static panels");
134
+ break;
80
135
  }
81
136
 
82
137
  const iconPropRe = /(?:prefixIcon|suffixIcon|name)=["']([^"']+)["']/g;
@@ -88,8 +143,14 @@ function validate(source, spec, iconNames) {
88
143
  }
89
144
  }
90
145
 
91
- if (/delay=\{[^}]*\*\s*80/.test(source)) {
92
- add("RevealFx.delay", "RevealFx delay is in seconds — use index * 0.1, not index * 80");
146
+ if (
147
+ /\b(?:delay|speed)=\{[^}]*\*\s*0?\.\d+/.test(source) ||
148
+ /\b(?:delay|speed)=\{\s*0?\.\d+\s*\}/.test(source)
149
+ ) {
150
+ add(
151
+ "RevealFx.delay",
152
+ "RevealFx delay and ShineFx speed are milliseconds — use index * 100, not index * 0.1",
153
+ );
93
154
  }
94
155
 
95
156
  if (/<Fade[^>]*>[\s\S]*<(Column|Row)[^>]*overflowY/.test(source)) {
@@ -146,4 +207,7 @@ function main() {
146
207
  process.exit(1);
147
208
  }
148
209
 
149
- main();
210
+ // Importable for tests; the CLI runs only when this file is invoked directly.
211
+ if (require.main === module) main();
212
+
213
+ module.exports = { validate, loadSpec, parseIconNames, hasLiteralColor, insidePropValue };
@@ -1,4 +1,10 @@
1
- import { NextResponse } from 'next/server';
1
+ /**
2
+ * Open Graph fetch/proxy handlers.
3
+ *
4
+ * Uses the standard `Response` rather than `NextResponse`: `NextResponse`
5
+ * extends `Response`, so Next route handlers accept these return values
6
+ * unchanged, and the module no longer pulls `next/server` into core.
7
+ */
2
8
  import { type OGUrlValidationOptions } from './og-url-validation';
3
9
  export interface OGData {
4
10
  url: string;
@@ -12,12 +18,12 @@ export interface OGFetchOptions extends OGUrlValidationOptions {
12
18
  userAgent?: string;
13
19
  decodeEntities?: boolean;
14
20
  }
15
- export declare function handleOGFetch(request: Request, options?: OGFetchOptions): Promise<NextResponse>;
21
+ export declare function handleOGFetch(request: Request, options?: OGFetchOptions): Promise<Response>;
16
22
  export interface OGProxyOptions extends OGUrlValidationOptions {
17
23
  userAgent?: string;
18
24
  cacheMaxAge?: number;
19
25
  }
20
- export declare function handleOGProxy(request: Request, options?: OGProxyOptions): Promise<NextResponse>;
26
+ export declare function handleOGProxy(request: Request, options?: OGProxyOptions): Promise<Response>;
21
27
  export { OGUrlValidationError, validateOgUrl } from './og-url-validation';
22
28
  export type { OGUrlValidationOptions } from './og-url-validation';
23
29
  //# sourceMappingURL=og-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"og-utils.d.ts","sourceRoot":"","sources":["../../src/server/og-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAGL,KAAK,sBAAsB,EAE5B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,sBAAsB;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA2DD,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkFzG;AAED,MAAM,WAAW,cAAe,SAAQ,sBAAsB;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0DzG;AAED,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"og-utils.d.ts","sourceRoot":"","sources":["../../src/server/og-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAGL,KAAK,sBAAsB,EAE5B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,sBAAsB;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA2DD,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkFrG;AAED,MAAM,WAAW,cAAe,SAAQ,sBAAsB;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0DrG;AAED,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,4 +1,10 @@
1
- import { NextResponse } from 'next/server';
1
+ /**
2
+ * Open Graph fetch/proxy handlers.
3
+ *
4
+ * Uses the standard `Response` rather than `NextResponse`: `NextResponse`
5
+ * extends `Response`, so Next route handlers accept these return values
6
+ * unchanged, and the module no longer pulls `next/server` into core.
7
+ */
2
8
  import { fetchValidatedUrl, OGUrlValidationError, validateOgUrl, } from './og-url-validation';
3
9
  function decodeHTMLEntities(text) {
4
10
  return text.replace(/&(#?[a-zA-Z0-9]+);/g, (match, entity) => {
@@ -41,14 +47,14 @@ async function fetchWithTimeout(url, timeout = 5000, userAgent = 'Mozilla/5.0 (c
41
47
  }
42
48
  }
43
49
  function validationErrorResponse() {
44
- return NextResponse.json({ error: 'URL is not allowed' }, { status: 400 });
50
+ return Response.json({ error: 'URL is not allowed' }, { status: 400 });
45
51
  }
46
52
  export async function handleOGFetch(request, options = {}) {
47
53
  const { timeout = 5000, userAgent = 'Mozilla/5.0 (compatible; OG-Fetcher/1.0)', decodeEntities = true, allowedDomains, } = options;
48
54
  const { searchParams } = new URL(request.url);
49
55
  const url = searchParams.get('url');
50
56
  if (!url) {
51
- return NextResponse.json({ error: 'URL parameter is required' }, { status: 400 });
57
+ return Response.json({ error: 'URL parameter is required' }, { status: 400 });
52
58
  }
53
59
  const validationOptions = { allowedDomains };
54
60
  try {
@@ -99,11 +105,11 @@ export async function handleOGFetch(request, options = {}) {
99
105
  ogData.title = decodeHTMLEntities(ogData.title);
100
106
  ogData.description = decodeHTMLEntities(ogData.description);
101
107
  }
102
- return NextResponse.json(ogData);
108
+ return Response.json(ogData);
103
109
  }
104
110
  catch (error) {
105
111
  console.error('Error fetching OG data:', error);
106
- return NextResponse.json({ error: 'Failed to fetch Open Graph data' }, { status: 500 });
112
+ return Response.json({ error: 'Failed to fetch Open Graph data' }, { status: 500 });
107
113
  }
108
114
  }
109
115
  export async function handleOGProxy(request, options = {}) {
@@ -111,7 +117,7 @@ export async function handleOGProxy(request, options = {}) {
111
117
  const { searchParams } = new URL(request.url);
112
118
  const url = searchParams.get('url');
113
119
  if (!url) {
114
- return NextResponse.json({ error: 'URL parameter is required' }, { status: 400 });
120
+ return Response.json({ error: 'URL parameter is required' }, { status: 400 });
115
121
  }
116
122
  const validationOptions = { allowedDomains };
117
123
  try {
@@ -130,11 +136,11 @@ export async function handleOGProxy(request, options = {}) {
130
136
  },
131
137
  }, validationOptions);
132
138
  if (!response.ok) {
133
- return NextResponse.json({ error: 'Failed to fetch image' }, { status: response.status >= 400 && response.status < 600 ? response.status : 502 });
139
+ return Response.json({ error: 'Failed to fetch image' }, { status: response.status >= 400 && response.status < 600 ? response.status : 502 });
134
140
  }
135
141
  const contentType = response.headers.get('content-type') || 'image/jpeg';
136
142
  const buffer = await response.arrayBuffer();
137
- return new NextResponse(buffer, {
143
+ return new Response(buffer, {
138
144
  headers: {
139
145
  'Content-Type': contentType,
140
146
  'Cache-Control': `public, max-age=${cacheMaxAge}`,
@@ -143,7 +149,7 @@ export async function handleOGProxy(request, options = {}) {
143
149
  }
144
150
  catch (error) {
145
151
  console.error('Error proxying image:', error);
146
- return NextResponse.json({ error: 'Failed to proxy image' }, { status: 500 });
152
+ return Response.json({ error: 'Failed to proxy image' }, { status: 500 });
147
153
  }
148
154
  }
149
155
  export { OGUrlValidationError, validateOgUrl } from './og-url-validation';
@@ -1 +1 @@
1
- {"version":3,"file":"og-utils.js","sourceRoot":"","sources":["../../src/server/og-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"og-utils.js","sourceRoot":"","sources":["../../src/server/og-utils.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,39 @@
1
+ /* GENERATED by scripts/generate-utilities.mjs — do not edit.
2
+ * The class matrix lives in scripts/utilities.spec.mjs; change it there and
3
+ * re-run `pnpm generate:utilities`. */
4
+
1
5
  $breakpoint-xs: 480px;
2
6
  $breakpoint-s: 768px;
3
7
  $breakpoint-m: 1024px;
4
8
  $breakpoint-l: 1440px;
9
+ $breakpoint-xl: 1441px;
5
10
 
6
11
  @mixin xs {
7
- @media (max-width: #{$breakpoint-xs}) {
12
+ @media (max-width: 480px) {
8
13
  @content;
9
14
  }
10
15
  }
11
16
 
12
17
  @mixin s {
13
- @media (max-width: #{$breakpoint-s}) {
18
+ @media (max-width: 768px) {
14
19
  @content;
15
20
  }
16
21
  }
17
22
 
18
23
  @mixin m {
19
- @media (max-width: #{$breakpoint-m}) {
24
+ @media (max-width: 1024px) {
20
25
  @content;
21
26
  }
22
27
  }
23
28
 
24
29
  @mixin l {
25
- @media (max-width: #{$breakpoint-l}) {
30
+ @media (max-width: 1440px) {
31
+ @content;
32
+ }
33
+ }
34
+
35
+ @mixin xl {
36
+ @media (min-width: 1441px) {
26
37
  @content;
27
38
  }
28
- }
39
+ }
@@ -6,6 +6,20 @@ class ResizeObserverMock {
6
6
  unobserve() { }
7
7
  disconnect() { }
8
8
  }
9
+ /** jsdom ships no IntersectionObserver; the canvas effects gate their animation loop on it. */
10
+ class IntersectionObserverMock {
11
+ constructor() {
12
+ this.root = null;
13
+ this.rootMargin = "";
14
+ this.thresholds = [];
15
+ }
16
+ observe() { }
17
+ unobserve() { }
18
+ disconnect() { }
19
+ takeRecords() {
20
+ return [];
21
+ }
22
+ }
9
23
  const installBrowserMocks = () => {
10
24
  if (!("ResizeObserver" in globalThis)) {
11
25
  Object.defineProperty(globalThis, "ResizeObserver", {
@@ -14,6 +28,13 @@ const installBrowserMocks = () => {
14
28
  value: ResizeObserverMock,
15
29
  });
16
30
  }
31
+ if (!("IntersectionObserver" in globalThis)) {
32
+ Object.defineProperty(globalThis, "IntersectionObserver", {
33
+ configurable: true,
34
+ writable: true,
35
+ value: IntersectionObserverMock,
36
+ });
37
+ }
17
38
  Object.defineProperty(window, "scrollTo", {
18
39
  configurable: true,
19
40
  writable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/test/setup.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,kBAAkB;IACtB,OAAO,KAAI,CAAC;IACZ,SAAS,KAAI,CAAC;IACd,UAAU,KAAI,CAAC;CAChB;AAED,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC/B,IAAI,CAAC,CAAC,gBAAgB,IAAI,UAAU,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE;YAClD,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,kBAAkB;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;QACxC,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;KACf,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;QAC1C,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;YACpB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;YACvB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE;YAC5B,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;SACvB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,mBAAmB,EAAE,CAAC;AAEtB,IAAI,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;IACxC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE;QACpD,YAAY,EAAE,IAAI;QAClB,GAAG;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,GAAG,CAAC,KAAc;YAChB,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,EAAE,CAAC;IACV,EAAE,CAAC,eAAe,EAAE,CAAC;IACrB,mBAAmB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/test/setup.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,kBAAkB;IACtB,OAAO,KAAI,CAAC;IACZ,SAAS,KAAI,CAAC;IACd,UAAU,KAAI,CAAC;CAChB;AAED,+FAA+F;AAC/F,MAAM,wBAAwB;IAA9B;QACW,SAAI,GAAG,IAAI,CAAC;QACZ,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAa,EAAE,CAAC;IAOrC,CAAC;IANC,OAAO,KAAI,CAAC;IACZ,SAAS,KAAI,CAAC;IACd,UAAU,KAAI,CAAC;IACf,WAAW;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC/B,IAAI,CAAC,CAAC,gBAAgB,IAAI,UAAU,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE;YAClD,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,kBAAkB;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,CAAC,sBAAsB,IAAI,UAAU,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,sBAAsB,EAAE;YACxD,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,wBAAwB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;QACxC,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;KACf,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;QAC1C,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;YACpB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;YACvB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE;YAC5B,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;SACvB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,mBAAmB,EAAE,CAAC;AAEtB,IAAI,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;IACxC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE;QACpD,YAAY,EAAE,IAAI;QAClB,GAAG;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,GAAG,CAAC,KAAc;YAChB,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,EAAE,CAAC;IACV,EAAE,CAAC,eAAe,EAAE,CAAC;IACrB,mBAAmB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type StaticSpacingToken = "0" | "1" | "2" | "4" | "8" | "12" | "16" | "20" | "24" | "32" | "40" | "48" | "56" | "64" | "80" | "104" | "128" | "160";
1
+ export type StaticSpacingToken = "0" | "1" | "2" | "4" | "8" | "12" | "16" | "20" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "104" | "128" | "160";
2
2
  export declare const schemes: string[];
3
3
  export type Schemes = "blue" | "indigo" | "violet" | "magenta" | "pink" | "red" | "orange" | "yellow" | "moss" | "green" | "emerald" | "aqua" | "cyan";
4
4
  export type CondensedTShirtSizes = "s" | "m" | "l";
@@ -12,6 +12,18 @@ export type ColorScheme = "neutral" | "brand" | "accent" | "info" | "danger" | "
12
12
  export type ColorCategory = "on-solid" | "on-background";
13
13
  export type ColorWeight = "weak" | "medium" | "strong";
14
14
  export type Colors = `${ColorScheme}-${ColorWeight}` | `${ColorScheme}-alpha-${ColorWeight}`;
15
+ /**
16
+ * A design token, or any CSS colour.
17
+ *
18
+ * The `(string & {})` arm is what keeps token autocomplete alive: a bare
19
+ * `Colors | string` collapses to `string` and the editor stops suggesting
20
+ * anything, whereas this keeps the literal union suggestible while still
21
+ * accepting `#fff`, `rgb(...)` or `var(...)`.
22
+ *
23
+ * Used where a value is painted into SVG or canvas rather than through a class,
24
+ * so a raw CSS colour is a legitimate escape hatch rather than a mistake.
25
+ */
26
+ export type ColorValue = Colors | (string & {});
15
27
  export type RadiusSize = TShirtSizes | "full" | "none";
16
28
  export type RadiusNest = "4" | "8";
17
29
  export type TextType = "body" | "heading" | "display" | "label" | "code";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;CACP,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;CACP,CAAC"}
@@ -0,0 +1,35 @@
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
+ export type SchemeRampWeight = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 1000 | 1100 | 1200;
23
+ export type SchemeRamp = Record<SchemeRampWeight, string>;
24
+ /** Contrast against black for each step, matching the built-in schemes. */
25
+ export declare const defaultContrastRatios: [SchemeRampWeight, number][];
26
+ /**
27
+ * Build a scheme from a seed colour. Accepts hex, `rgb()`/`rgba()` or
28
+ * `oklch()` — which covers what `ColorInput` produces with and without
29
+ * `supportAlpha`. Returns `null` if the seed cannot be parsed, so a caller
30
+ * can leave the current scheme in place rather than apply something wrong.
31
+ */
32
+ export declare function generateColorScheme(seed: string, ratios?: [SchemeRampWeight, number][]): SchemeRamp | null;
33
+ /** The three translucent variants of step 600 that the token set expects. */
34
+ export declare function schemeAlphaVariants(scheme: SchemeRamp): Record<string, string>;
35
+ //# sourceMappingURL=colorScheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorScheme.d.ts","sourceRoot":"","sources":["../../src/utils/colorScheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,gBAAgB,GACxB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE1D,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAG7D,CAAC;AAsGF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAA0B,GAC3D,UAAU,GAAG,IAAI,CAUnB;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ9E"}