@panneau/ui 5.0.0-alpha.0 → 5.0.0-alpha.2

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 (388) hide show
  1. package/README.md +280 -6
  2. package/bin/check-theme.js +5 -0
  3. package/dist/alert/Alert.css +28 -42
  4. package/dist/alert/Alert.d.ts +18 -4
  5. package/dist/alert/Alert.d.ts.map +1 -1
  6. package/dist/alert/Alert.js +4 -3
  7. package/dist/alert/Alert.js.map +1 -1
  8. package/dist/alert/Alert.module.js +14 -16
  9. package/dist/alert/Alert.module.js.map +1 -1
  10. package/dist/alert/tokens.d.ts +3 -0
  11. package/dist/alert/tokens.d.ts.map +1 -0
  12. package/dist/alert/tokens.js +21 -0
  13. package/dist/alert/tokens.js.map +1 -0
  14. package/dist/badge/Badge.css +24 -36
  15. package/dist/badge/Badge.d.ts +18 -3
  16. package/dist/badge/Badge.d.ts.map +1 -1
  17. package/dist/badge/Badge.js +3 -2
  18. package/dist/badge/Badge.js.map +1 -1
  19. package/dist/badge/Badge.module.js +9 -13
  20. package/dist/badge/Badge.module.js.map +1 -1
  21. package/dist/badge/tokens.d.ts +3 -0
  22. package/dist/badge/tokens.d.ts.map +1 -0
  23. package/dist/badge/tokens.js +23 -0
  24. package/dist/badge/tokens.js.map +1 -0
  25. package/dist/button/Button.css +58 -42
  26. package/dist/button/Button.d.ts +30 -3
  27. package/dist/button/Button.d.ts.map +1 -1
  28. package/dist/button/Button.js +27 -2
  29. package/dist/button/Button.js.map +1 -1
  30. package/dist/button/Button.module.js +14 -14
  31. package/dist/button/Button.module.js.map +1 -1
  32. package/dist/button/tokens.d.ts +3 -0
  33. package/dist/button/tokens.d.ts.map +1 -0
  34. package/dist/button/tokens.js +25 -0
  35. package/dist/button/tokens.js.map +1 -0
  36. package/dist/card/Card.css +27 -20
  37. package/dist/card/Card.js +1 -1
  38. package/dist/card/Card.js.map +1 -1
  39. package/dist/card/Card.module.js +5 -5
  40. package/dist/card/Card.module.js.map +1 -1
  41. package/dist/card/tokens.d.ts +3 -0
  42. package/dist/card/tokens.d.ts.map +1 -0
  43. package/dist/card/tokens.js +31 -0
  44. package/dist/card/tokens.js.map +1 -0
  45. package/dist/checkbox/Checkbox.css +22 -21
  46. package/dist/checkbox/Checkbox.d.ts.map +1 -1
  47. package/dist/checkbox/Checkbox.js +1 -0
  48. package/dist/checkbox/Checkbox.js.map +1 -1
  49. package/dist/checkbox/Checkbox.module.js +4 -4
  50. package/dist/checkbox/Checkbox.module.js.map +1 -1
  51. package/dist/checkbox/ChoiceChrome.d.ts +3 -1
  52. package/dist/checkbox/ChoiceChrome.d.ts.map +1 -1
  53. package/dist/checkbox/ChoiceChrome.js +2 -2
  54. package/dist/checkbox/ChoiceChrome.js.map +1 -1
  55. package/dist/checkbox/tokens.d.ts +3 -0
  56. package/dist/checkbox/tokens.d.ts.map +1 -0
  57. package/dist/checkbox/tokens.js +21 -0
  58. package/dist/checkbox/tokens.js.map +1 -0
  59. package/dist/combo-box/ComboBox.css +4 -4
  60. package/dist/combo-box/ComboBox.js +1 -1
  61. package/dist/combo-box/ComboBox.js.map +1 -1
  62. package/dist/combo-box/ComboBox.module.js +3 -3
  63. package/dist/container/Container.css +32 -0
  64. package/dist/container/Container.d.ts +15 -0
  65. package/dist/container/Container.d.ts.map +1 -0
  66. package/dist/container/Container.js +18 -0
  67. package/dist/container/Container.js.map +1 -0
  68. package/dist/container/Container.module.js +20 -0
  69. package/dist/container/Container.module.js.map +1 -0
  70. package/dist/container/tokens.d.ts +3 -0
  71. package/dist/container/tokens.d.ts.map +1 -0
  72. package/dist/container/tokens.js +19 -0
  73. package/dist/container/tokens.js.map +1 -0
  74. package/dist/date-picker/DatePicker.css +30 -30
  75. package/dist/date-picker/DatePicker.js +1 -1
  76. package/dist/date-picker/DatePicker.js.map +1 -1
  77. package/dist/date-picker/DatePicker.module.js +11 -11
  78. package/dist/date-picker/DatePicker.module.js.map +1 -1
  79. package/dist/date-picker/calendarTokens.d.ts +3 -0
  80. package/dist/date-picker/calendarTokens.d.ts.map +1 -0
  81. package/dist/date-picker/calendarTokens.js +17 -0
  82. package/dist/date-picker/calendarTokens.js.map +1 -0
  83. package/dist/dialog/Dialog.css +40 -36
  84. package/dist/dialog/Dialog.js +1 -1
  85. package/dist/dialog/Dialog.js.map +1 -1
  86. package/dist/dialog/Dialog.module.js +11 -11
  87. package/dist/dialog/Dialog.module.js.map +1 -1
  88. package/dist/dialog/tokens.d.ts +3 -0
  89. package/dist/dialog/tokens.d.ts.map +1 -0
  90. package/dist/dialog/tokens.js +29 -0
  91. package/dist/dialog/tokens.js.map +1 -0
  92. package/dist/disclosure/Disclosure.css +12 -12
  93. package/dist/disclosure/Disclosure.d.ts.map +1 -1
  94. package/dist/disclosure/Disclosure.js +1 -1
  95. package/dist/disclosure/Disclosure.js.map +1 -1
  96. package/dist/disclosure/Disclosure.module.js +7 -7
  97. package/dist/disclosure/Disclosure.module.js.map +1 -1
  98. package/dist/disclosure/tokens.d.ts +3 -0
  99. package/dist/disclosure/tokens.d.ts.map +1 -0
  100. package/dist/disclosure/tokens.js +15 -0
  101. package/dist/disclosure/tokens.js.map +1 -0
  102. package/dist/divider/Divider.css +17 -0
  103. package/dist/divider/Divider.d.ts +8 -0
  104. package/dist/divider/Divider.d.ts.map +1 -0
  105. package/dist/divider/Divider.js +21 -0
  106. package/dist/divider/Divider.js.map +1 -0
  107. package/dist/divider/Divider.module.js +12 -0
  108. package/dist/divider/Divider.module.js.map +1 -0
  109. package/dist/divider/tokens.d.ts +3 -0
  110. package/dist/divider/tokens.d.ts.map +1 -0
  111. package/dist/divider/tokens.js +13 -0
  112. package/dist/divider/tokens.js.map +1 -0
  113. package/dist/field/Field.css +40 -37
  114. package/dist/field/Field.module.js +11 -11
  115. package/dist/field/Field.module.js.map +1 -1
  116. package/dist/field/Fieldset.js +1 -1
  117. package/dist/field/Fieldset.js.map +1 -1
  118. package/dist/field/inputTokens.d.ts +3 -0
  119. package/dist/field/inputTokens.d.ts.map +1 -0
  120. package/dist/field/inputTokens.js +21 -0
  121. package/dist/field/inputTokens.js.map +1 -0
  122. package/dist/field/tokens.d.ts +3 -0
  123. package/dist/field/tokens.d.ts.map +1 -0
  124. package/dist/field/tokens.js +15 -0
  125. package/dist/field/tokens.js.map +1 -0
  126. package/dist/grid/Grid.css +174 -0
  127. package/dist/grid/Grid.d.ts +28 -0
  128. package/dist/grid/Grid.d.ts.map +1 -0
  129. package/dist/grid/Grid.js +31 -0
  130. package/dist/grid/Grid.js.map +1 -0
  131. package/dist/grid/Grid.module.js +12 -0
  132. package/dist/grid/Grid.module.js.map +1 -0
  133. package/dist/grid/GridItem.css +59 -0
  134. package/dist/grid/GridItem.module.js +7 -0
  135. package/dist/grid/GridItem.module.js.map +1 -0
  136. package/dist/grid/tokens.d.ts +3 -0
  137. package/dist/grid/tokens.d.ts.map +1 -0
  138. package/dist/grid/tokens.js +10 -0
  139. package/dist/grid/tokens.js.map +1 -0
  140. package/dist/heading/Heading.css +52 -0
  141. package/dist/heading/Heading.d.ts +17 -0
  142. package/dist/heading/Heading.d.ts.map +1 -0
  143. package/dist/heading/Heading.js +17 -0
  144. package/dist/heading/Heading.js.map +1 -0
  145. package/dist/heading/Heading.module.js +16 -0
  146. package/dist/heading/Heading.module.js.map +1 -0
  147. package/dist/heading/tokens.d.ts +6 -0
  148. package/dist/heading/tokens.d.ts.map +1 -0
  149. package/dist/heading/tokens.js +66 -0
  150. package/dist/heading/tokens.js.map +1 -0
  151. package/dist/icon/Icon.css +1 -1
  152. package/dist/icon/Icon.js +1 -1
  153. package/dist/icon/Icon.js.map +1 -1
  154. package/dist/icon/Icon.module.js +1 -1
  155. package/dist/icon/namedIcons.d.ts +16 -0
  156. package/dist/icon/namedIcons.d.ts.map +1 -0
  157. package/dist/icon/namedIcons.js +90 -0
  158. package/dist/icon/namedIcons.js.map +1 -0
  159. package/dist/icon-button/IconButton.css +2 -2
  160. package/dist/icon-button/IconButton.d.ts +1 -1
  161. package/dist/icon-button/IconButton.d.ts.map +1 -1
  162. package/dist/icon-button/IconButton.js +3 -3
  163. package/dist/icon-button/IconButton.js.map +1 -1
  164. package/dist/icon-button/IconButton.module.js +2 -2
  165. package/dist/index.d.ts +26 -5
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +21 -2
  168. package/dist/inline/Inline.css +142 -0
  169. package/dist/inline/Inline.d.ts +17 -0
  170. package/dist/inline/Inline.d.ts.map +1 -0
  171. package/dist/inline/Inline.js +21 -0
  172. package/dist/inline/Inline.js.map +1 -0
  173. package/dist/inline/Inline.module.js +12 -0
  174. package/dist/inline/Inline.module.js.map +1 -0
  175. package/dist/inline/tokens.d.ts +3 -0
  176. package/dist/inline/tokens.d.ts.map +1 -0
  177. package/dist/inline/tokens.js +10 -0
  178. package/dist/inline/tokens.js.map +1 -0
  179. package/dist/layout/responsive.d.ts +38 -0
  180. package/dist/layout/responsive.d.ts.map +1 -0
  181. package/dist/layout/responsive.js +49 -0
  182. package/dist/layout/responsive.js.map +1 -0
  183. package/dist/menu/Menu.js +2 -2
  184. package/dist/menu/Menu.js.map +1 -1
  185. package/dist/number-input/NumberInput.css +12 -12
  186. package/dist/number-input/NumberInput.js +1 -1
  187. package/dist/number-input/NumberInput.js.map +1 -1
  188. package/dist/number-input/NumberInput.module.js +4 -4
  189. package/dist/number-input/NumberInput.module.js.map +1 -1
  190. package/dist/number-input/tokens.d.ts +3 -0
  191. package/dist/number-input/tokens.d.ts.map +1 -0
  192. package/dist/number-input/tokens.js +10 -0
  193. package/dist/number-input/tokens.js.map +1 -0
  194. package/dist/popover/Popover.css +13 -12
  195. package/dist/popover/Popover.js +2 -2
  196. package/dist/popover/Popover.js.map +1 -1
  197. package/dist/popover/Popover.module.js +3 -3
  198. package/dist/popover/Popover.module.js.map +1 -1
  199. package/dist/popover/tokens.d.ts +3 -0
  200. package/dist/popover/tokens.d.ts.map +1 -0
  201. package/dist/popover/tokens.js +19 -0
  202. package/dist/popover/tokens.js.map +1 -0
  203. package/dist/prose/Prose.css +141 -0
  204. package/dist/prose/Prose.d.ts +11 -0
  205. package/dist/prose/Prose.d.ts.map +1 -0
  206. package/dist/prose/Prose.js +18 -0
  207. package/dist/prose/Prose.js.map +1 -0
  208. package/dist/prose/Prose.module.js +8 -0
  209. package/dist/prose/Prose.module.js.map +1 -0
  210. package/dist/prose/tokens.d.ts +3 -0
  211. package/dist/prose/tokens.d.ts.map +1 -0
  212. package/dist/prose/tokens.js +33 -0
  213. package/dist/prose/tokens.js.map +1 -0
  214. package/dist/radio-group/RadioGroup.css +21 -20
  215. package/dist/radio-group/RadioGroup.d.ts.map +1 -1
  216. package/dist/radio-group/RadioGroup.js +2 -2
  217. package/dist/radio-group/RadioGroup.js.map +1 -1
  218. package/dist/radio-group/RadioGroup.module.js +6 -6
  219. package/dist/radio-group/RadioGroup.module.js.map +1 -1
  220. package/dist/radio-group/tokens.d.ts +3 -0
  221. package/dist/radio-group/tokens.d.ts.map +1 -0
  222. package/dist/radio-group/tokens.js +19 -0
  223. package/dist/radio-group/tokens.js.map +1 -0
  224. package/dist/root/PanneauRoot.css +243 -20
  225. package/dist/root/PanneauRoot.d.ts +28 -4
  226. package/dist/root/PanneauRoot.d.ts.map +1 -1
  227. package/dist/root/PanneauRoot.js +104 -21
  228. package/dist/root/PanneauRoot.js.map +1 -1
  229. package/dist/root/PanneauRoot.module.js +11 -3
  230. package/dist/root/PanneauRoot.module.js.map +1 -1
  231. package/dist/root/ThemeScope.d.ts +24 -0
  232. package/dist/root/ThemeScope.d.ts.map +1 -0
  233. package/dist/root/ThemeScope.js +49 -0
  234. package/dist/root/ThemeScope.js.map +1 -0
  235. package/dist/select/ListBox.css +23 -22
  236. package/dist/select/ListBox.module.js +12 -12
  237. package/dist/select/ListBox.module.js.map +1 -1
  238. package/dist/select/Select.js +1 -1
  239. package/dist/select/Select.js.map +1 -1
  240. package/dist/select/listBoxTokens.d.ts +3 -0
  241. package/dist/select/listBoxTokens.d.ts.map +1 -0
  242. package/dist/select/listBoxTokens.js +19 -0
  243. package/dist/select/listBoxTokens.js.map +1 -0
  244. package/dist/spinner/Spinner.css +8 -8
  245. package/dist/spinner/Spinner.js +1 -1
  246. package/dist/spinner/Spinner.js.map +1 -1
  247. package/dist/spinner/Spinner.module.js +5 -5
  248. package/dist/spinner/Spinner.module.js.map +1 -1
  249. package/dist/spinner/tokens.d.ts +3 -0
  250. package/dist/spinner/tokens.d.ts.map +1 -0
  251. package/dist/spinner/tokens.js +10 -0
  252. package/dist/spinner/tokens.js.map +1 -0
  253. package/dist/stack/Stack.css +135 -0
  254. package/dist/stack/Stack.d.ts +15 -0
  255. package/dist/stack/Stack.d.ts.map +1 -0
  256. package/dist/stack/Stack.js +21 -0
  257. package/dist/stack/Stack.js.map +1 -0
  258. package/dist/stack/Stack.module.js +8 -0
  259. package/dist/stack/Stack.module.js.map +1 -0
  260. package/dist/stack/tokens.d.ts +3 -0
  261. package/dist/stack/tokens.d.ts.map +1 -0
  262. package/dist/stack/tokens.js +10 -0
  263. package/dist/stack/tokens.js.map +1 -0
  264. package/dist/switch/Switch.css +34 -25
  265. package/dist/switch/Switch.d.ts.map +1 -1
  266. package/dist/switch/Switch.js +1 -0
  267. package/dist/switch/Switch.js.map +1 -1
  268. package/dist/switch/Switch.module.js +4 -4
  269. package/dist/switch/Switch.module.js.map +1 -1
  270. package/dist/switch/tokens.d.ts +3 -0
  271. package/dist/switch/tokens.d.ts.map +1 -0
  272. package/dist/switch/tokens.js +25 -0
  273. package/dist/switch/tokens.js.map +1 -0
  274. package/dist/tabs/Tabs.css +24 -23
  275. package/dist/tabs/Tabs.js +4 -4
  276. package/dist/tabs/Tabs.js.map +1 -1
  277. package/dist/tabs/Tabs.module.js +4 -4
  278. package/dist/tabs/Tabs.module.js.map +1 -1
  279. package/dist/tabs/tokens.d.ts +3 -0
  280. package/dist/tabs/tokens.d.ts.map +1 -0
  281. package/dist/tabs/tokens.js +25 -0
  282. package/dist/tabs/tokens.js.map +1 -0
  283. package/dist/text/Text.css +74 -0
  284. package/dist/text/Text.d.ts +27 -0
  285. package/dist/text/Text.d.ts.map +1 -0
  286. package/dist/text/Text.js +16 -0
  287. package/dist/text/Text.js.map +1 -0
  288. package/dist/text/Text.module.js +30 -0
  289. package/dist/text/Text.module.js.map +1 -0
  290. package/dist/text/tokens.d.ts +3 -0
  291. package/dist/text/tokens.d.ts.map +1 -0
  292. package/dist/text/tokens.js +10 -0
  293. package/dist/text/tokens.js.map +1 -0
  294. package/dist/text-area/TextArea.css +1 -1
  295. package/dist/text-area/TextArea.js +1 -1
  296. package/dist/text-area/TextArea.js.map +1 -1
  297. package/dist/text-area/TextArea.module.js +1 -1
  298. package/dist/text-input/TextInput.js +1 -1
  299. package/dist/text-input/TextInput.js.map +1 -1
  300. package/dist/theme/Tone.css +70 -0
  301. package/dist/theme/Tone.module.js +20 -0
  302. package/dist/theme/Tone.module.js.map +1 -0
  303. package/dist/theme/bootstrap.d.ts +10 -0
  304. package/dist/theme/bootstrap.d.ts.map +1 -1
  305. package/dist/theme/bootstrap.js +48 -5
  306. package/dist/theme/bootstrap.js.map +1 -1
  307. package/dist/theme/chartColors.d.ts +23 -0
  308. package/dist/theme/chartColors.d.ts.map +1 -0
  309. package/dist/theme/chartColors.js +27 -0
  310. package/dist/theme/chartColors.js.map +1 -0
  311. package/dist/theme/checkTheme.d.ts +39 -0
  312. package/dist/theme/checkTheme.d.ts.map +1 -0
  313. package/dist/theme/checkTheme.js +132 -0
  314. package/dist/theme/checkTheme.js.map +1 -0
  315. package/dist/theme/cli.d.ts +14 -0
  316. package/dist/theme/cli.d.ts.map +1 -0
  317. package/dist/theme/cli.js +61 -0
  318. package/dist/theme/cli.js.map +1 -0
  319. package/dist/theme/color.d.ts +30 -0
  320. package/dist/theme/color.d.ts.map +1 -0
  321. package/dist/theme/color.js +94 -0
  322. package/dist/theme/color.js.map +1 -0
  323. package/dist/theme/colorVision.d.ts +23 -0
  324. package/dist/theme/colorVision.d.ts.map +1 -0
  325. package/dist/theme/colorVision.js +140 -0
  326. package/dist/theme/colorVision.js.map +1 -0
  327. package/dist/theme/componentTokens.d.ts +24 -0
  328. package/dist/theme/componentTokens.d.ts.map +1 -0
  329. package/dist/theme/componentTokens.js +20 -0
  330. package/dist/theme/componentTokens.js.map +1 -0
  331. package/dist/theme/components.d.ts +38 -0
  332. package/dist/theme/components.d.ts.map +1 -0
  333. package/dist/theme/components.js +65 -0
  334. package/dist/theme/components.js.map +1 -0
  335. package/dist/theme/defineTheme.d.ts +85 -0
  336. package/dist/theme/defineTheme.d.ts.map +1 -0
  337. package/dist/theme/defineTheme.js +130 -0
  338. package/dist/theme/defineTheme.js.map +1 -0
  339. package/dist/theme/fonts.d.ts +32 -0
  340. package/dist/theme/fonts.d.ts.map +1 -0
  341. package/dist/theme/fonts.js +36 -0
  342. package/dist/theme/fonts.js.map +1 -0
  343. package/dist/theme/index.d.ts +13 -0
  344. package/dist/theme/index.d.ts.map +1 -0
  345. package/dist/theme/index.js +10 -0
  346. package/dist/theme/semanticTokens.d.ts +9 -0
  347. package/dist/theme/semanticTokens.d.ts.map +1 -0
  348. package/dist/theme/semanticTokens.js +110 -0
  349. package/dist/theme/semanticTokens.js.map +1 -0
  350. package/dist/theme/theme.d.ts +61 -7
  351. package/dist/theme/theme.d.ts.map +1 -1
  352. package/dist/theme/theme.js +100 -10
  353. package/dist/theme/theme.js.map +1 -1
  354. package/dist/theme/toneClass.d.ts +8 -0
  355. package/dist/theme/toneClass.d.ts.map +1 -0
  356. package/dist/theme/toneClass.js +15 -0
  357. package/dist/theme/toneClass.js.map +1 -0
  358. package/dist/theme/tones.d.ts +89 -0
  359. package/dist/theme/tones.d.ts.map +1 -0
  360. package/dist/theme/tones.js +127 -0
  361. package/dist/theme/tones.js.map +1 -0
  362. package/dist/time-input/TimeInput.js +1 -1
  363. package/dist/time-input/TimeInput.js.map +1 -1
  364. package/dist/toast/Toast.css +22 -44
  365. package/dist/toast/Toast.d.ts +5 -3
  366. package/dist/toast/Toast.d.ts.map +1 -1
  367. package/dist/toast/Toast.js +4 -3
  368. package/dist/toast/Toast.js.map +1 -1
  369. package/dist/toast/Toast.module.js +10 -16
  370. package/dist/toast/Toast.module.js.map +1 -1
  371. package/dist/toast/tokens.d.ts +3 -0
  372. package/dist/toast/tokens.d.ts.map +1 -0
  373. package/dist/toast/tokens.js +21 -0
  374. package/dist/toast/tokens.js.map +1 -0
  375. package/dist/tooltip/Tooltip.css +12 -11
  376. package/dist/tooltip/Tooltip.js +1 -1
  377. package/dist/tooltip/Tooltip.js.map +1 -1
  378. package/dist/tooltip/Tooltip.module.js +2 -2
  379. package/dist/tooltip/Tooltip.module.js.map +1 -1
  380. package/dist/tooltip/tokens.d.ts +3 -0
  381. package/dist/tooltip/tokens.d.ts.map +1 -0
  382. package/dist/tooltip/tokens.js +21 -0
  383. package/dist/tooltip/tokens.js.map +1 -0
  384. package/dist/utils/cx.d.ts +1 -1
  385. package/dist/utils/cx.d.ts.map +1 -1
  386. package/dist/utils/cx.js +2 -2
  387. package/dist/utils/cx.js.map +1 -1
  388. package/package.json +15 -3
@@ -0,0 +1,33 @@
1
+ import { defineComponentTokens } from "../theme/componentTokens.js";
2
+ //#region src/prose/tokens.ts
3
+ /** Tokens of Prose. Its headings use the tokens of Heading. */
4
+ var proseTokens = defineComponentTokens("prose", {
5
+ /** Line height of the content. */
6
+ "line-height": "1.6",
7
+ /** Space between blocks: paragraphs, lists, tables. */
8
+ gap: "var(--panneau-space-4)",
9
+ /** Space above a heading. */
10
+ "heading-gap": "var(--panneau-space-6)",
11
+ /** Indent of lists. */
12
+ "list-indent": "1.5em",
13
+ /** Color of links. */
14
+ "link-color": "var(--panneau-color-link)",
15
+ /** Font size of code, relative to the text around it. */
16
+ "code-font-size": "0.875em",
17
+ /** Text color of code: inherited, so that a site's global `code` color doesn't apply. */
18
+ "code-color": "inherit",
19
+ /** Background of code and code blocks. */
20
+ "code-bg": "var(--panneau-color-surface-sunken)",
21
+ /** Corner radius of code and code blocks. */
22
+ "code-radius": "var(--panneau-radius-sm)",
23
+ /** Border of quotes. */
24
+ "quote-border-color": "var(--panneau-color-border)",
25
+ /** Text color of quotes and captions. */
26
+ "quote-color": "var(--panneau-color-text-muted)",
27
+ /** Color of the borders of tables and of horizontal rules. */
28
+ "border-color": "var(--panneau-color-border)"
29
+ });
30
+ //#endregion
31
+ export { proseTokens };
32
+
33
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","names":[],"sources":["../../src/prose/tokens.ts"],"sourcesContent":["import { defineComponentTokens } from '../theme/componentTokens';\n\n/** Tokens of Prose. Its headings use the tokens of Heading. */\nexport const proseTokens = defineComponentTokens('prose', {\n /** Line height of the content. */\n 'line-height': '1.6',\n /** Space between blocks: paragraphs, lists, tables. */\n gap: 'var(--panneau-space-4)',\n /** Space above a heading. */\n 'heading-gap': 'var(--panneau-space-6)',\n /** Indent of lists. */\n 'list-indent': '1.5em',\n /** Color of links. */\n 'link-color': 'var(--panneau-color-link)',\n /** Font size of code, relative to the text around it. */\n 'code-font-size': '0.875em',\n /** Text color of code: inherited, so that a site's global `code` color doesn't apply. */\n 'code-color': 'inherit',\n /** Background of code and code blocks. */\n 'code-bg': 'var(--panneau-color-surface-sunken)',\n /** Corner radius of code and code blocks. */\n 'code-radius': 'var(--panneau-radius-sm)',\n /** Border of quotes. */\n 'quote-border-color': 'var(--panneau-color-border)',\n /** Text color of quotes and captions. */\n 'quote-color': 'var(--panneau-color-text-muted)',\n /** Color of the borders of tables and of horizontal rules. */\n 'border-color': 'var(--panneau-color-border)',\n});\n"],"mappings":";;;AAGA,IAAa,cAAc,sBAAsB,SAAS;;CAEtD,eAAe;;CAEf,KAAK;;CAEL,eAAe;;CAEf,eAAe;;CAEf,cAAc;;CAEd,kBAAkB;;CAElB,cAAc;;CAEd,WAAW;;CAEX,eAAe;;CAEf,sBAAsB;;CAEtB,eAAe;;CAEf,gBAAgB;AACpB,CAAC"}
@@ -1,15 +1,15 @@
1
- .panneau-options-QPuFOV {
1
+ .panneau-radio-group-options {
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: var(--panneau-space-1);
5
5
  }
6
6
 
7
- .panneau-horizontal-KgXsCy .panneau-options-QPuFOV {
7
+ .panneau-radio-group-horizontal .panneau-radio-group-options {
8
8
  flex-flow: row wrap;
9
9
  gap: var(--panneau-space-1) var(--panneau-space-4);
10
10
  }
11
11
 
12
- .panneau-radio-zz4Tx- {
12
+ .panneau-radio-group-radio {
13
13
  display: inline-flex;
14
14
  align-items: flex-start;
15
15
  gap: var(--panneau-space-2);
@@ -20,64 +20,65 @@
20
20
  -webkit-tap-highlight-color: transparent;
21
21
  }
22
22
 
23
- .panneau-radio-zz4Tx-[data-disabled] {
23
+ .panneau-radio-group-radio[data-disabled] {
24
24
  cursor: not-allowed;
25
25
  opacity: 0.55;
26
26
  }
27
27
 
28
- .panneau-radio-zz4Tx-[data-readonly] {
28
+ .panneau-radio-group-radio[data-readonly] {
29
29
  cursor: default;
30
30
  }
31
31
 
32
- .panneau-circle-IySLxv {
32
+ .panneau-radio-group-circle {
33
33
  flex: 0 0 auto;
34
- width: 1.125rem;
35
- height: 1.125rem;
34
+ width: var(--panneau-radio-size, 1.125rem);
35
+ height: var(--panneau-radio-size, 1.125rem);
36
36
  margin-top: 0.125rem;
37
- background-color: var(--panneau-color-surface);
38
- border: var(--panneau-border-width) solid var(--panneau-color-border-control);
37
+ background-color: var(--panneau-radio-bg, var(--panneau-color-surface));
38
+ border: var(--panneau-border-width) solid
39
+ var(--panneau-radio-border-color, var(--panneau-color-border-control));
39
40
  border-radius: var(--panneau-radius-full);
40
41
  transition:
41
42
  border-color var(--panneau-duration),
42
43
  border-width var(--panneau-duration);
43
44
  }
44
45
 
45
- .panneau-radio-zz4Tx-[data-hovered] .panneau-circle-IySLxv {
46
+ .panneau-radio-group-radio[data-hovered] .panneau-radio-group-circle {
46
47
  border-color: var(--panneau-color-text-muted);
47
48
  }
48
49
 
49
- .panneau-radio-zz4Tx-[data-selected] .panneau-circle-IySLxv {
50
- border-color: var(--panneau-color-accent);
51
- border-width: 0.3125rem;
50
+ .panneau-radio-group-radio[data-selected] .panneau-radio-group-circle {
51
+ border-color: var(--panneau-radio-checked-color, var(--panneau-color-accent));
52
+ border-width: var(--panneau-radio-checked-border-width, 0.3125rem);
52
53
  }
53
54
 
54
- .panneau-radio-zz4Tx-[data-invalid] .panneau-circle-IySLxv {
55
+ .panneau-radio-group-radio[data-invalid] .panneau-radio-group-circle {
55
56
  border-color: var(--panneau-color-danger);
56
57
  }
57
58
 
58
- .panneau-radio-zz4Tx-[data-focus-visible] .panneau-circle-IySLxv {
59
+ .panneau-radio-group-radio[data-focus-visible] .panneau-radio-group-circle {
59
60
  outline: var(--panneau-focus-width) solid var(--panneau-color-focus);
60
61
  outline-offset: 2px;
61
62
  }
62
63
 
63
- .panneau-text-W98R9k {
64
+ .panneau-radio-group-text {
64
65
  display: flex;
65
66
  flex-direction: column;
66
67
  min-width: 0;
67
68
  }
68
69
 
69
- .panneau-description-SPgnUk {
70
+ .panneau-radio-group-description {
70
71
  font-size: var(--panneau-font-size-sm);
71
72
  color: var(--panneau-color-text-muted);
72
73
  }
73
74
 
74
75
  @media (pointer: coarse) {
75
- .panneau-radio-zz4Tx- {
76
+ .panneau-radio-group-radio {
76
77
  min-height: 2.75rem;
77
78
  align-items: center;
78
79
  }
79
80
 
80
- .panneau-circle-IySLxv {
81
+ .panneau-radio-group-circle {
81
82
  margin-top: 0;
82
83
  }
83
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../src/radio-group/RadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,eAAe,IAAI,mBAAmB,EAE9C,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACH,KAAK,gBAAgB,EAKxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIlE,MAAM,WAAW,eACb,SACI,IAAI,CACA,mBAAmB,EACjB,WAAW,GACX,OAAO,GACP,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,GACP,cAAc,GACd,UAAU,CACf,EACD,gBAAgB;IACpB,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,EACvB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,MAAW,EACX,WAAwB,EACxB,UAAU,EACV,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,GAAG,KAAK,EACX,EAAE,eAAe,+BA+CjB"}
1
+ {"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../src/radio-group/RadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,eAAe,IAAI,mBAAmB,EAE9C,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACH,KAAK,gBAAgB,EAKxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIlE,MAAM,WAAW,eACb,SACI,IAAI,CACA,mBAAmB,EACjB,WAAW,GACX,OAAO,GACP,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,GACP,cAAc,GACd,UAAU,CACf,EACD,gBAAgB;IACpB,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,EACvB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,MAAW,EACX,WAAwB,EACxB,UAAU,EACV,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,GAAG,KAAK,EACX,EAAE,eAAe,+BAgDjB"}
@@ -19,7 +19,7 @@ function RadioGroup$1({ options, value, onChange, label, description, errors = [
19
19
  },
20
20
  isInvalid: errors.length > 0,
21
21
  validationBehavior: "aria",
22
- className: cx(Field_module_default.field, orientation === "horizontal" && RadioGroup_module_default.horizontal, className),
22
+ className: cx("panneau-radio-group", Field_module_default.field, orientation === "horizontal" && RadioGroup_module_default.horizontal, className),
23
23
  children: [
24
24
  /* @__PURE__ */ jsx(FieldLabel, {
25
25
  isRequired,
@@ -31,7 +31,7 @@ function RadioGroup$1({ options, value, onChange, label, description, errors = [
31
31
  children: options.map((option_0, position) => /* @__PURE__ */ jsxs(Radio, {
32
32
  value: String(position),
33
33
  isDisabled: option_0.disabled,
34
- className: cx(RadioGroup_module_default.radio, radioClassName),
34
+ className: cx("panneau-radio", RadioGroup_module_default.radio, radioClassName),
35
35
  children: [/* @__PURE__ */ jsx("span", {
36
36
  className: RadioGroup_module_default.circle,
37
37
  "aria-hidden": "true"
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","names":["option","RadioGroup","AriaRadioGroup","fieldStyles","styles"],"sources":["../../src/radio-group/RadioGroup.tsx"],"sourcesContent":["import {\n RadioGroup as AriaRadioGroup,\n type RadioGroupProps as AriaRadioGroupProps,\n Radio,\n} from 'react-aria-components';\n\nimport {\n type FieldChromeProps,\n FieldDescription,\n FieldErrors,\n FieldLabel,\n fieldStyles,\n} from '../field/FieldParts';\nimport type { OptionValue, SelectOption } from '../select/Select';\nimport { cx } from '../utils/cx';\nimport styles from './RadioGroup.module.css';\n\nexport interface RadioGroupProps\n extends\n Omit<\n AriaRadioGroupProps,\n | 'className'\n | 'style'\n | 'children'\n | 'isInvalid'\n | 'validate'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n >,\n FieldChromeProps {\n options: readonly SelectOption[];\n value?: OptionValue | null;\n onChange?: (value: OptionValue) => void;\n radioClassName?: string;\n}\n\n/** A set of options where one can be picked, all visible at once. */\nexport function RadioGroup({\n options,\n value,\n onChange,\n label,\n description,\n errors = [],\n orientation = 'vertical',\n isRequired,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n radioClassName,\n ...props\n}: RadioGroupProps) {\n const index = value === undefined ? undefined : options.findIndex((o) => o.value === value);\n return (\n <AriaRadioGroup\n {...props}\n orientation={orientation}\n isRequired={isRequired}\n value={index === undefined ? undefined : index === -1 ? null : String(index)}\n onChange={(key) => {\n const option = options[Number(key)];\n if (option !== undefined) {\n onChange?.(option.value);\n }\n }}\n isInvalid={errors.length > 0}\n validationBehavior=\"aria\"\n className={cx(\n fieldStyles.field,\n orientation === 'horizontal' && styles.horizontal,\n className,\n )}\n >\n <FieldLabel isRequired={isRequired} className={labelClassName}>\n {label}\n </FieldLabel>\n <div className={styles.options}>\n {options.map((option, position) => (\n <Radio\n key={position}\n value={String(position)}\n isDisabled={option.disabled}\n className={cx(styles.radio, radioClassName)}\n >\n <span className={styles.circle} aria-hidden=\"true\" />\n <span className={styles.text}>\n <span>{option.label}</span>\n {option.description !== undefined ? (\n <span className={styles.description}>{option.description}</span>\n ) : null}\n </span>\n </Radio>\n ))}\n </div>\n <FieldDescription className={descriptionClassName}>{description}</FieldDescription>\n <FieldErrors errors={errors} className={errorsClassName} />\n </AriaRadioGroup>\n );\n}\n"],"mappings":";;;;;;;;AAsCA,SAAgBC,aAAW,EACvB,SACA,OACA,UACA,OACA,aACA,SAAS,CAAA,GACT,cAAc,YACd,YACA,WACA,gBACA,sBACA,iBACA,gBACA,GAAG,SACa;CAChB,MAAM,QAAQ,UAAU,KAAA,IAAY,KAAA,IAAY,QAAQ,WAAW,MAAM,EAAE,UAAU,KAAK;CAC1F,OACI,qBAACC,YAAD;EACI,GAAI;EACS;EACD;EACZ,OAAO,UAAU,KAAA,IAAY,KAAA,IAAY,UAAU,KAAK,OAAO,OAAO,KAAK;EAC3E,WAAW,QAAQ;GACf,MAAM,SAAS,QAAQ,OAAO,GAAG;GACjC,IAAI,WAAW,KAAA,GACX,WAAW,OAAO,KAAK;EAE/B;EACA,WAAW,OAAO,SAAS;EAC3B,oBAAmB;EACnB,WAAW,GACPC,qBAAY,OACZ,gBAAgB,gBAAgBC,0BAAO,YACvC,SACJ;EAjBJ,UAAA;GAmBI,oBAAC,YAAD;IAAwB;IAAY,WAAW;IAC1C,UAAA;GACO,CAAA;GACZ,oBAAC,OAAD;IAAK,WAAWA,0BAAO;IAClB,UAAA,QAAQ,KAAKJ,UAAQ,aAClB,qBAAC,OAAD;KAEI,OAAO,OAAO,QAAQ;KACtB,YAAYA,SAAO;KACnB,WAAW,GAAGI,0BAAO,OAAO,cAAc;KAJ9C,UAAA,CAMI,oBAAC,QAAD;MAAM,WAAWA,0BAAO;MAAQ,eAAY;KAAM,CAAA,GAClD,qBAAC,QAAD;MAAM,WAAWA,0BAAO;MAAxB,UAAA,CACI,oBAAC,QAAD,EAAA,UAAOJ,SAAO,MAAY,CAAA,GACzBA,SAAO,gBAAgB,KAAA,IACpB,oBAAC,QAAD;OAAM,WAAWI,0BAAO;OAAcJ,UAAAA,SAAO;MAAkB,CAAA,IAC/D,IACF;KACH,CAAA,CAAA;IAZE,GAAA,QAYF,CACV;GACA,CAAA;GACL,oBAAC,kBAAD;IAAkB,WAAW;IAAuB,UAAA;GAA8B,CAAA;GAClF,oBAAC,aAAD;IAAqB;IAAQ,WAAW;GAAgB,CAAA;EAC5C;;AAExB"}
1
+ {"version":3,"file":"RadioGroup.js","names":["option","RadioGroup","AriaRadioGroup","fieldStyles","styles"],"sources":["../../src/radio-group/RadioGroup.tsx"],"sourcesContent":["import {\n RadioGroup as AriaRadioGroup,\n type RadioGroupProps as AriaRadioGroupProps,\n Radio,\n} from 'react-aria-components';\n\nimport {\n type FieldChromeProps,\n FieldDescription,\n FieldErrors,\n FieldLabel,\n fieldStyles,\n} from '../field/FieldParts';\nimport type { OptionValue, SelectOption } from '../select/Select';\nimport { cx } from '../utils/cx';\nimport styles from './RadioGroup.module.css';\n\nexport interface RadioGroupProps\n extends\n Omit<\n AriaRadioGroupProps,\n | 'className'\n | 'style'\n | 'children'\n | 'isInvalid'\n | 'validate'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n >,\n FieldChromeProps {\n options: readonly SelectOption[];\n value?: OptionValue | null;\n onChange?: (value: OptionValue) => void;\n radioClassName?: string;\n}\n\n/** A set of options where one can be picked, all visible at once. */\nexport function RadioGroup({\n options,\n value,\n onChange,\n label,\n description,\n errors = [],\n orientation = 'vertical',\n isRequired,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n radioClassName,\n ...props\n}: RadioGroupProps) {\n const index = value === undefined ? undefined : options.findIndex((o) => o.value === value);\n return (\n <AriaRadioGroup\n {...props}\n orientation={orientation}\n isRequired={isRequired}\n value={index === undefined ? undefined : index === -1 ? null : String(index)}\n onChange={(key) => {\n const option = options[Number(key)];\n if (option !== undefined) {\n onChange?.(option.value);\n }\n }}\n isInvalid={errors.length > 0}\n validationBehavior=\"aria\"\n className={cx(\n 'panneau-radio-group',\n fieldStyles.field,\n orientation === 'horizontal' && styles.horizontal,\n className,\n )}\n >\n <FieldLabel isRequired={isRequired} className={labelClassName}>\n {label}\n </FieldLabel>\n <div className={styles.options}>\n {options.map((option, position) => (\n <Radio\n key={position}\n value={String(position)}\n isDisabled={option.disabled}\n className={cx('panneau-radio', styles.radio, radioClassName)}\n >\n <span className={styles.circle} aria-hidden=\"true\" />\n <span className={styles.text}>\n <span>{option.label}</span>\n {option.description !== undefined ? (\n <span className={styles.description}>{option.description}</span>\n ) : null}\n </span>\n </Radio>\n ))}\n </div>\n <FieldDescription className={descriptionClassName}>{description}</FieldDescription>\n <FieldErrors errors={errors} className={errorsClassName} />\n </AriaRadioGroup>\n );\n}\n"],"mappings":";;;;;;;;AAsCA,SAAgBC,aAAW,EACvB,SACA,OACA,UACA,OACA,aACA,SAAS,CAAA,GACT,cAAc,YACd,YACA,WACA,gBACA,sBACA,iBACA,gBACA,GAAG,SACa;CAChB,MAAM,QAAQ,UAAU,KAAA,IAAY,KAAA,IAAY,QAAQ,WAAW,MAAM,EAAE,UAAU,KAAK;CAC1F,OACI,qBAACC,YAAD;EACI,GAAI;EACS;EACD;EACZ,OAAO,UAAU,KAAA,IAAY,KAAA,IAAY,UAAU,KAAK,OAAO,OAAO,KAAK;EAC3E,WAAW,QAAQ;GACf,MAAM,SAAS,QAAQ,OAAO,GAAG;GACjC,IAAI,WAAW,KAAA,GACX,WAAW,OAAO,KAAK;EAE/B;EACA,WAAW,OAAO,SAAS;EAC3B,oBAAmB;EACnB,WAAW,GACP,uBACAC,qBAAY,OACZ,gBAAgB,gBAAgBC,0BAAO,YACvC,SACJ;EAlBJ,UAAA;GAoBI,oBAAC,YAAD;IAAwB;IAAY,WAAW;IAC1C,UAAA;GACO,CAAA;GACZ,oBAAC,OAAD;IAAK,WAAWA,0BAAO;IAClB,UAAA,QAAQ,KAAKJ,UAAQ,aAClB,qBAAC,OAAD;KAEI,OAAO,OAAO,QAAQ;KACtB,YAAYA,SAAO;KACnB,WAAW,GAAG,iBAAiBI,0BAAO,OAAO,cAAc;KAJ/D,UAAA,CAMI,oBAAC,QAAD;MAAM,WAAWA,0BAAO;MAAQ,eAAY;KAAM,CAAA,GAClD,qBAAC,QAAD;MAAM,WAAWA,0BAAO;MAAxB,UAAA,CACI,oBAAC,QAAD,EAAA,UAAOJ,SAAO,MAAY,CAAA,GACzBA,SAAO,gBAAgB,KAAA,IACpB,oBAAC,QAAD;OAAM,WAAWI,0BAAO;OAAcJ,UAAAA,SAAO;MAAkB,CAAA,IAC/D,IACF;KACH,CAAA,CAAA;IAZE,GAAA,QAYF,CACV;GACA,CAAA;GACL,oBAAC,kBAAD;IAAkB,WAAW;IAAuB,UAAA;GAA8B,CAAA;GAClF,oBAAC,aAAD;IAAqB;IAAQ,WAAW;GAAgB,CAAA;EAC5C;;AAExB"}
@@ -1,11 +1,11 @@
1
1
  import "./RadioGroup.css";
2
2
  //#region src/radio-group/RadioGroup.module.css
3
- var options = "panneau-options-QPuFOV";
4
- var horizontal = "panneau-horizontal-KgXsCy";
5
- var radio = "panneau-radio-zz4Tx-";
6
- var circle = "panneau-circle-IySLxv";
7
- var text = "panneau-text-W98R9k";
8
- var description = "panneau-description-SPgnUk";
3
+ var options = "panneau-radio-group-options";
4
+ var horizontal = "panneau-radio-group-horizontal";
5
+ var radio = "panneau-radio-group-radio";
6
+ var circle = "panneau-radio-group-circle";
7
+ var text = "panneau-radio-group-text";
8
+ var description = "panneau-radio-group-description";
9
9
  var RadioGroup_module_default = {
10
10
  options,
11
11
  horizontal,
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.module.js","names":[],"sources":["../../src/radio-group/RadioGroup.module.css"],"sourcesContent":[".options {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-space-1);\n}\n\n.horizontal .options {\n flex-flow: row wrap;\n gap: var(--panneau-space-1) var(--panneau-space-4);\n}\n\n.radio {\n display: inline-flex;\n align-items: flex-start;\n gap: var(--panneau-space-2);\n min-height: 1.5rem;\n font-size: var(--panneau-font-size-md);\n color: var(--panneau-color-text);\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n}\n\n.radio[data-disabled] {\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.radio[data-readonly] {\n cursor: default;\n}\n\n.circle {\n flex: 0 0 auto;\n width: 1.125rem;\n height: 1.125rem;\n margin-top: 0.125rem;\n background-color: var(--panneau-color-surface);\n border: var(--panneau-border-width) solid var(--panneau-color-border-control);\n border-radius: var(--panneau-radius-full);\n transition:\n border-color var(--panneau-duration),\n border-width var(--panneau-duration);\n}\n\n.radio[data-hovered] .circle {\n border-color: var(--panneau-color-text-muted);\n}\n\n.radio[data-selected] .circle {\n border-color: var(--panneau-color-accent);\n border-width: 0.3125rem;\n}\n\n.radio[data-invalid] .circle {\n border-color: var(--panneau-color-danger);\n}\n\n.radio[data-focus-visible] .circle {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 2px;\n}\n\n.text {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.description {\n font-size: var(--panneau-font-size-sm);\n color: var(--panneau-color-text-muted);\n}\n\n@media (pointer: coarse) {\n .radio {\n min-height: 2.75rem;\n align-items: center;\n }\n\n .circle {\n margin-top: 0;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"RadioGroup.module.js","names":[],"sources":["../../src/radio-group/RadioGroup.module.css"],"sourcesContent":[".options {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-space-1);\n}\n\n.horizontal .options {\n flex-flow: row wrap;\n gap: var(--panneau-space-1) var(--panneau-space-4);\n}\n\n.radio {\n display: inline-flex;\n align-items: flex-start;\n gap: var(--panneau-space-2);\n min-height: 1.5rem;\n font-size: var(--panneau-font-size-md);\n color: var(--panneau-color-text);\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n}\n\n.radio[data-disabled] {\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.radio[data-readonly] {\n cursor: default;\n}\n\n.circle {\n flex: 0 0 auto;\n width: var(--panneau-radio-size, 1.125rem);\n height: var(--panneau-radio-size, 1.125rem);\n margin-top: 0.125rem;\n background-color: var(--panneau-radio-bg, var(--panneau-color-surface));\n border: var(--panneau-border-width) solid\n var(--panneau-radio-border-color, var(--panneau-color-border-control));\n border-radius: var(--panneau-radius-full);\n transition:\n border-color var(--panneau-duration),\n border-width var(--panneau-duration);\n}\n\n.radio[data-hovered] .circle {\n border-color: var(--panneau-color-text-muted);\n}\n\n.radio[data-selected] .circle {\n border-color: var(--panneau-radio-checked-color, var(--panneau-color-accent));\n border-width: var(--panneau-radio-checked-border-width, 0.3125rem);\n}\n\n.radio[data-invalid] .circle {\n border-color: var(--panneau-color-danger);\n}\n\n.radio[data-focus-visible] .circle {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 2px;\n}\n\n.text {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.description {\n font-size: var(--panneau-font-size-sm);\n color: var(--panneau-color-text-muted);\n}\n\n@media (pointer: coarse) {\n .radio {\n min-height: 2.75rem;\n align-items: center;\n }\n\n .circle {\n margin-top: 0;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,3 @@
1
+ /** Tokens of RadioGroup. */
2
+ export declare const radioTokens: import("..").ComponentTokens<"radio", "panneau-radio-size" | "panneau-radio-bg" | "panneau-radio-border-color" | "panneau-radio-checked-color" | "panneau-radio-checked-border-width">;
3
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/radio-group/tokens.ts"],"names":[],"mappings":"AAEA,4BAA4B;AAC5B,eAAO,MAAM,WAAW,wLAWtB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineComponentTokens } from "../theme/componentTokens.js";
2
+ //#region src/radio-group/tokens.ts
3
+ /** Tokens of RadioGroup. */
4
+ var radioTokens = defineComponentTokens("radio", {
5
+ /** Size of the circle. */
6
+ size: "1.125rem",
7
+ /** Background of the circle. */
8
+ bg: "var(--panneau-color-surface)",
9
+ /** Border color of the circle. */
10
+ "border-color": "var(--panneau-color-border-control)",
11
+ /** Color of a selected circle. */
12
+ "checked-color": "var(--panneau-color-accent)",
13
+ /** Border width of a selected circle, which draws the dot. */
14
+ "checked-border-width": "0.3125rem"
15
+ });
16
+ //#endregion
17
+ export { radioTokens };
18
+
19
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","names":[],"sources":["../../src/radio-group/tokens.ts"],"sourcesContent":["import { defineComponentTokens } from '../theme/componentTokens';\n\n/** Tokens of RadioGroup. */\nexport const radioTokens = defineComponentTokens('radio', {\n /** Size of the circle. */\n size: '1.125rem',\n /** Background of the circle. */\n bg: 'var(--panneau-color-surface)',\n /** Border color of the circle. */\n 'border-color': 'var(--panneau-color-border-control)',\n /** Color of a selected circle. */\n 'checked-color': 'var(--panneau-color-accent)',\n /** Border width of a selected circle, which draws the dot. */\n 'checked-border-width': '0.3125rem',\n});\n"],"mappings":";;;AAGA,IAAa,cAAc,sBAAsB,SAAS;;CAEtD,MAAM;;CAEN,IAAI;;CAEJ,gBAAgB;;CAEhB,iBAAiB;;CAEjB,wBAAwB;AAC5B,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * class on the root, overrides any token without fighting the cascade.
7
7
  */
8
8
 
9
- :where(.panneau-root--wA35w) {
9
+ :where(.panneau-root) {
10
10
  /* Surfaces */
11
11
  --panneau-color-bg: #ffffff;
12
12
  --panneau-color-surface: #ffffff;
@@ -42,17 +42,54 @@
42
42
  --panneau-color-success: #15803d;
43
43
  --panneau-color-success-subtle: #f0fdf4;
44
44
  --panneau-color-success-border: #86efac;
45
+ --panneau-color-success-solid: #15803d;
46
+ --panneau-color-success-solid-hover: #166534;
47
+ --panneau-color-success-solid-text: #ffffff;
45
48
  --panneau-color-warning: #a16207;
46
49
  --panneau-color-warning-subtle: #fefce8;
47
50
  --panneau-color-warning-border: #fcd34d;
51
+ --panneau-color-warning-solid: #a16207;
52
+ --panneau-color-warning-solid-hover: #854d0e;
53
+ --panneau-color-warning-solid-text: #ffffff;
48
54
  --panneau-color-info: #1d4ed8;
49
55
  --panneau-color-info-subtle: #eff6ff;
50
56
  --panneau-color-info-border: #93c5fd;
57
+ --panneau-color-info-solid: #1d4ed8;
58
+ --panneau-color-info-solid-hover: #1e40af;
59
+ --panneau-color-info-solid-text: #ffffff;
51
60
 
52
- /* Typography */
53
- --panneau-font-family:
61
+ /*
62
+ * Data visualization: 8 categorical colors in a fixed order, a sequential ramp from low to high,
63
+ * and a diverging pair around a neutral midpoint. Each categorical color reaches 3:1 against
64
+ * the surface, and stays distinct under the common color vision deficiencies (chartColors.test).
65
+ */
66
+ --panneau-chart-categorical-1: #1c6cbb;
67
+ --panneau-chart-categorical-2: #c47713;
68
+ --panneau-chart-categorical-3: #d12f74;
69
+ --panneau-chart-categorical-4: #515922;
70
+ --panneau-chart-categorical-5: #2b9c52;
71
+ --panneau-chart-categorical-6: #a977b3;
72
+ --panneau-chart-categorical-7: #8f2786;
73
+ --panneau-chart-categorical-8: #9176e8;
74
+ --panneau-chart-sequential-1: #dbe8f6;
75
+ --panneau-chart-sequential-2: #a3c6e9;
76
+ --panneau-chart-sequential-3: #5f9bd6;
77
+ --panneau-chart-sequential-4: #2c6cb0;
78
+ --panneau-chart-sequential-5: #1a4475;
79
+ --panneau-chart-diverging-negative: #b4501a;
80
+ --panneau-chart-diverging-neutral: #e4e4e7;
81
+ --panneau-chart-diverging-positive: #1c6cbb;
82
+
83
+ /* Typography: font roles. Headings and display text follow the body unless a theme sets them. */
84
+ --panneau-font-family-body:
54
85
  system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
86
+ --panneau-font-family-heading: var(--panneau-font-family-body);
87
+ --panneau-font-family-display: var(--panneau-font-family-heading);
55
88
  --panneau-font-family-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
89
+ /* Deprecated alias of the body family: set --panneau-font-family-body instead. */
90
+ --panneau-font-family: var(--panneau-font-family-body);
91
+ /* Numbers that line up: stats, dates, ids (font-variant-numeric). */
92
+ --panneau-font-numeric: tabular-nums;
56
93
  --panneau-font-size-xs: 0.75rem;
57
94
  --panneau-font-size-sm: 0.8125rem;
58
95
  --panneau-font-size-md: 0.875rem;
@@ -85,9 +122,11 @@
85
122
  --panneau-shadow-md: 0 1px 3px rgb(0 0 0 / 0.08), 0 4px 12px rgb(0 0 0 / 0.08);
86
123
  --panneau-shadow-lg: 0 4px 8px rgb(0 0 0 / 0.08), 0 16px 40px rgb(0 0 0 / 0.16);
87
124
 
88
- /* Controls */
125
+ /* Controls and rows: the comfortable density. Other densities redefine these tokens. */
89
126
  --panneau-control-height: 2.25rem;
90
127
  --panneau-control-height-sm: 1.875rem;
128
+ --panneau-control-padding-x: 0.75rem;
129
+ --panneau-row-padding-y: 0.5rem;
91
130
  --panneau-focus-width: 2px;
92
131
 
93
132
  /* Motion and layers */
@@ -98,7 +137,83 @@
98
137
  color-scheme: light;
99
138
  }
100
139
 
101
- :where(.panneau-root--wA35w[data-color-scheme='dark']) {
140
+ /*
141
+ * A ThemeScope with its own color scheme (.scheme) takes the light colors back, since the root
142
+ * around it may be dark. Scopes without one inherit the colors of their parent.
143
+ */
144
+ :where(.panneau-root-scheme[data-color-scheme='light'], .panneau-root-scheme[data-color-scheme='auto']) {
145
+ --panneau-chart-categorical-1: #1c6cbb;
146
+ --panneau-chart-categorical-2: #c47713;
147
+ --panneau-chart-categorical-3: #d12f74;
148
+ --panneau-chart-categorical-4: #515922;
149
+ --panneau-chart-categorical-5: #2b9c52;
150
+ --panneau-chart-categorical-6: #a977b3;
151
+ --panneau-chart-categorical-7: #8f2786;
152
+ --panneau-chart-categorical-8: #9176e8;
153
+ --panneau-chart-sequential-1: #dbe8f6;
154
+ --panneau-chart-sequential-2: #a3c6e9;
155
+ --panneau-chart-sequential-3: #5f9bd6;
156
+ --panneau-chart-sequential-4: #2c6cb0;
157
+ --panneau-chart-sequential-5: #1a4475;
158
+ --panneau-chart-diverging-negative: #b4501a;
159
+ --panneau-chart-diverging-neutral: #e4e4e7;
160
+ --panneau-chart-diverging-positive: #1c6cbb;
161
+ --panneau-color-bg: #ffffff;
162
+ --panneau-color-surface: #ffffff;
163
+ --panneau-color-surface-sunken: #f4f4f5;
164
+ --panneau-color-surface-raised: #ffffff;
165
+ --panneau-color-hover: rgb(24 24 27 / 0.06);
166
+ --panneau-color-pressed: rgb(24 24 27 / 0.1);
167
+ --panneau-color-backdrop: rgb(9 9 11 / 0.45);
168
+ --panneau-color-text: #18181b;
169
+ --panneau-color-text-muted: #52525b;
170
+ --panneau-color-link: #1d4ed8;
171
+ --panneau-color-border: #e4e4e7;
172
+ --panneau-color-border-control: #8b8b94;
173
+ --panneau-color-accent: #18181b;
174
+ --panneau-color-accent-hover: #3f3f46;
175
+ --panneau-color-accent-text: #ffffff;
176
+ --panneau-color-accent-subtle: #f4f4f5;
177
+ --panneau-color-focus: #2563eb;
178
+ --panneau-color-danger: #b91c1c;
179
+ --panneau-color-danger-subtle: #fef2f2;
180
+ --panneau-color-danger-border: #fca5a5;
181
+ --panneau-color-danger-solid: #b91c1c;
182
+ --panneau-color-danger-solid-hover: #991b1b;
183
+ --panneau-color-danger-solid-text: #ffffff;
184
+ --panneau-color-success: #15803d;
185
+ --panneau-color-success-subtle: #f0fdf4;
186
+ --panneau-color-success-border: #86efac;
187
+ --panneau-color-warning: #a16207;
188
+ --panneau-color-warning-subtle: #fefce8;
189
+ --panneau-color-warning-border: #fcd34d;
190
+ --panneau-color-info: #1d4ed8;
191
+ --panneau-color-info-subtle: #eff6ff;
192
+ --panneau-color-info-border: #93c5fd;
193
+ --panneau-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.06);
194
+ --panneau-shadow-md: 0 1px 3px rgb(0 0 0 / 0.08), 0 4px 12px rgb(0 0 0 / 0.08);
195
+ --panneau-shadow-lg: 0 4px 8px rgb(0 0 0 / 0.08), 0 16px 40px rgb(0 0 0 / 0.16);
196
+
197
+ color-scheme: light;
198
+ }
199
+
200
+ :where(.panneau-root[data-color-scheme='dark'], .panneau-root-scheme[data-color-scheme='dark']) {
201
+ --panneau-chart-categorical-1: #61a9e3;
202
+ --panneau-chart-categorical-2: #e5c040;
203
+ --panneau-chart-categorical-3: #d9456a;
204
+ --panneau-chart-categorical-4: #a1da9e;
205
+ --panneau-chart-categorical-5: #bb6528;
206
+ --panneau-chart-categorical-6: #a06a9b;
207
+ --panneau-chart-categorical-7: #8c71e2;
208
+ --panneau-chart-categorical-8: #56dfe1;
209
+ --panneau-chart-sequential-1: #1d3550;
210
+ --panneau-chart-sequential-2: #285684;
211
+ --panneau-chart-sequential-3: #3d7fc2;
212
+ --panneau-chart-sequential-4: #74abe0;
213
+ --panneau-chart-sequential-5: #b8d6f2;
214
+ --panneau-chart-diverging-negative: #f0884a;
215
+ --panneau-chart-diverging-neutral: #3f3f46;
216
+ --panneau-chart-diverging-positive: #61a9e3;
102
217
  --panneau-color-bg: #09090b;
103
218
  --panneau-color-surface: #18181b;
104
219
  --panneau-color-surface-sunken: #111113;
@@ -139,7 +254,23 @@
139
254
  }
140
255
 
141
256
  @media (prefers-color-scheme: dark) {
142
- :where(.panneau-root--wA35w[data-color-scheme='auto']) {
257
+ :where(.panneau-root[data-color-scheme='auto'], .panneau-root-scheme[data-color-scheme='auto']) {
258
+ --panneau-chart-categorical-1: #61a9e3;
259
+ --panneau-chart-categorical-2: #e5c040;
260
+ --panneau-chart-categorical-3: #d9456a;
261
+ --panneau-chart-categorical-4: #a1da9e;
262
+ --panneau-chart-categorical-5: #bb6528;
263
+ --panneau-chart-categorical-6: #a06a9b;
264
+ --panneau-chart-categorical-7: #8c71e2;
265
+ --panneau-chart-categorical-8: #56dfe1;
266
+ --panneau-chart-sequential-1: #1d3550;
267
+ --panneau-chart-sequential-2: #285684;
268
+ --panneau-chart-sequential-3: #3d7fc2;
269
+ --panneau-chart-sequential-4: #74abe0;
270
+ --panneau-chart-sequential-5: #b8d6f2;
271
+ --panneau-chart-diverging-negative: #f0884a;
272
+ --panneau-chart-diverging-neutral: #3f3f46;
273
+ --panneau-chart-diverging-positive: #61a9e3;
143
274
  --panneau-color-bg: #09090b;
144
275
  --panneau-color-surface: #18181b;
145
276
  --panneau-color-surface-sunken: #111113;
@@ -180,29 +311,69 @@
180
311
  }
181
312
  }
182
313
 
183
- /* Touch screens: larger targets, and 16px text in inputs so that iOS doesn't zoom on focus. */
314
+ /*
315
+ * Densities: compact, comfortable (the tokens above) and touch, with larger targets and 16px text in
316
+ * inputs so that iOS doesn't zoom on focus. `auto`, the default, is touch on coarse pointers (touch
317
+ * screens) and comfortable otherwise.
318
+ */
319
+ /* A ThemeScope with its own density (.density) takes the comfortable values back. */
320
+ :where(.panneau-root-density[data-density='comfortable'], .panneau-root-density[data-density='auto']) {
321
+ --panneau-control-height: 2.25rem;
322
+ --panneau-control-height-sm: 1.875rem;
323
+ --panneau-font-size-control: 0.875rem;
324
+ --panneau-control-padding-x: 0.75rem;
325
+ --panneau-row-padding-y: 0.5rem;
326
+ }
327
+
328
+ :where(.panneau-root[data-density='compact'], .panneau-root-density[data-density='compact']) {
329
+ --panneau-control-height: 2rem;
330
+ --panneau-control-height-sm: 1.625rem;
331
+ --panneau-font-size-control: 0.8125rem;
332
+ --panneau-control-padding-x: 0.5rem;
333
+ --panneau-row-padding-y: 0.25rem;
334
+ }
335
+
336
+ :where(.panneau-root[data-density='touch'], .panneau-root-density[data-density='touch']) {
337
+ --panneau-control-height: 2.75rem;
338
+ --panneau-control-height-sm: 2.25rem;
339
+ --panneau-font-size-control: 1rem;
340
+ --panneau-control-padding-x: 0.75rem;
341
+ --panneau-row-padding-y: 0.75rem;
342
+ }
343
+
184
344
  @media (pointer: coarse) {
185
- :where(.panneau-root--wA35w) {
345
+ :where(.panneau-root[data-density='auto'], .panneau-root-density[data-density='auto']) {
186
346
  --panneau-control-height: 2.75rem;
187
347
  --panneau-control-height-sm: 2.25rem;
188
348
  --panneau-font-size-control: 1rem;
349
+ --panneau-control-padding-x: 0.75rem;
350
+ --panneau-row-padding-y: 0.75rem;
189
351
  }
190
352
  }
191
353
 
192
354
  @media (prefers-reduced-motion: reduce) {
193
- :where(.panneau-root--wA35w) {
355
+ :where(.panneau-root) {
194
356
  --panneau-duration: 0ms;
195
357
  }
196
358
  }
197
359
 
198
- /* Base stylesheet, scoped to the root, without specificity: components and projects override it. */
360
+ /* Base stylesheet, scoped to the root, with less weight than any class: components and projects override it. */
199
361
 
200
- .panneau-root--wA35w {
362
+ .panneau-root {
201
363
  /* The class is mostly a hook for the rules below, which use :where(). */
202
364
  display: block;
203
365
  }
204
366
 
205
- :where(.panneau-root--wA35w) {
367
+ /*
368
+ * The root is a size container, so that the responsive props of layout primitives follow its width
369
+ * rather than the viewport's. Like any size container, its width can't come from its content: in a
370
+ * flex row or a float, give it a width. Toast regions share the tokens of .root, not this.
371
+ */
372
+ .panneau-root-container {
373
+ container: panneau-root / inline-size;
374
+ }
375
+
376
+ :where(.panneau-root) {
206
377
  font-family: var(--panneau-font-family);
207
378
  font-size: var(--panneau-font-size-md);
208
379
  line-height: var(--panneau-line-height);
@@ -213,39 +384,91 @@
213
384
  text-size-adjust: 100%;
214
385
  }
215
386
 
216
- :where(.panneau-root--wA35w) :where(*, *::before, *::after) {
387
+ :where(.panneau-root) :where(*, *::before, *::after) {
217
388
  box-sizing: border-box;
218
389
  }
219
390
 
220
- :where(.panneau-root--wA35w) :where(h1, h2, h3, h4, h5, h6, p, ul, ol, dl, figure, fieldset, legend) {
391
+ /*
392
+ * Element resets weigh two element selectors, (0,0,2), by repeating :is(): more than the global
393
+ * element rules of a site, such as Bootstrap's Reboot (`h5 { margin-bottom: 0.5rem }` weighs
394
+ * (0,0,1)), less than any class, so that components and projects still override them.
395
+ */
396
+ :where(.panneau-root)
397
+ :is(
398
+ h1,
399
+ h2,
400
+ h3,
401
+ h4,
402
+ h5,
403
+ h6,
404
+ p,
405
+ ul,
406
+ ol,
407
+ dl,
408
+ dd,
409
+ figure,
410
+ blockquote,
411
+ pre,
412
+ hr,
413
+ fieldset,
414
+ legend
415
+ ):is(h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, figure, blockquote, pre, hr, fieldset, legend) {
221
416
  margin: 0;
222
417
  padding: 0;
223
418
  }
224
419
 
225
- :where(.panneau-root--wA35w) :where(fieldset) {
420
+ /* Reboot floats legends and scales their text. */
421
+ :where(.panneau-root) :is(legend):is(legend) {
422
+ float: none;
423
+ width: auto;
424
+ font-size: inherit;
425
+ line-height: inherit;
426
+ }
427
+
428
+ /* Reboot fades rules to 25% opacity. */
429
+ :where(.panneau-root) :is(hr):is(hr) {
430
+ opacity: 1;
431
+ }
432
+
433
+ :where(.panneau-root) :where(fieldset) {
226
434
  border: 0;
227
435
  min-width: 0;
228
436
  }
229
437
 
230
- :where(.panneau-root--wA35w) :where(button, input, select, textarea) {
438
+ :where(.panneau-root) :where(button, input, select, textarea) {
231
439
  font: inherit;
232
440
  color: inherit;
233
441
  }
234
442
 
235
- :where(.panneau-root--wA35w) :where(a) {
443
+ :where(.panneau-root) :is(a):is(a) {
236
444
  color: var(--panneau-color-link);
237
445
  }
238
446
 
239
- :where(.panneau-root--wA35w) :where(img, svg, video) {
447
+ :where(.panneau-root) :where(img, svg, video) {
240
448
  max-width: 100%;
241
449
  }
242
450
 
243
- :where(.panneau-root--wA35w) :where(:focus-visible) {
451
+ :where(.panneau-root) :where(:focus-visible) {
244
452
  outline: var(--panneau-focus-width) solid var(--panneau-color-focus);
245
453
  outline-offset: 2px;
246
454
  }
247
455
 
456
+ /*
457
+ * A ThemeScope applies the text styles of its tokens again, since inherited values were computed
458
+ * on the root. One with its own color scheme or theme paints its background too.
459
+ */
460
+ :where(.panneau-root-scope) {
461
+ font-family: var(--panneau-font-family);
462
+ font-size: var(--panneau-font-size-md);
463
+ line-height: var(--panneau-line-height);
464
+ color: var(--panneau-color-text);
465
+ }
466
+
467
+ :where(.panneau-root-scope.panneau-root-scheme, .panneau-root-scope[data-panneau-theme]) {
468
+ background-color: var(--panneau-color-bg);
469
+ }
470
+
248
471
  /* Overlays (dialogs, popovers, menus, tooltips) render here, so that they get the tokens. */
249
- .panneau-portal-keLcJN {
472
+ .panneau-root-portal {
250
473
  display: contents;
251
474
  }