@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
@@ -2,6 +2,7 @@ import { cx } from "../utils/cx.js";
2
2
  import { Icon } from "../icon/Icon.js";
3
3
  import { messages } from "../intl/messages.js";
4
4
  import { usePanneauIntl } from "../intl/usePanneauIntl.js";
5
+ import { toneClass } from "../theme/toneClass.js";
5
6
  import { Button as Button$1 } from "../button/Button.js";
6
7
  import Toast_module_default from "./Toast.module.js";
7
8
  import { IconButton } from "../icon-button/IconButton.js";
@@ -58,7 +59,7 @@ function ToastProvider(t0) {
58
59
  } else t2 = $[3];
59
60
  let t3;
60
61
  if ($[4] !== regionClassName) {
61
- t3 = cx(regionClassName, Toast_module_default.region);
62
+ t3 = cx("panneau-toast-region", regionClassName, Toast_module_default.region);
62
63
  $[4] = regionClassName;
63
64
  $[5] = t3;
64
65
  } else t3 = $[5];
@@ -67,11 +68,11 @@ function ToastProvider(t0) {
67
68
  t4 = (t5) => {
68
69
  const { toast } = t5;
69
70
  const tone = toast.content.tone ?? "neutral";
70
- const icon = TONE_ICONS[tone];
71
+ const icon = TONE_ICONS[tone] ?? null;
71
72
  const { action } = toast.content;
72
73
  return /* @__PURE__ */ jsxs(UNSTABLE_Toast, {
73
74
  toast,
74
- className: cx(Toast_module_default.toast, Toast_module_default[tone]),
75
+ className: cx("panneau-toast", Toast_module_default.toast, toneClass(tone), tone !== "neutral" && Toast_module_default.toned),
75
76
  children: [
76
77
  icon !== null ? /* @__PURE__ */ jsx(Icon, {
77
78
  icon,
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","names":["toast","icon","X","queue","toasts","children","_c","styles","AriaToast","AriaToastContent","Button","AriaToastRegion","AriaToastQueue"],"sources":["../../src/toast/Toast.tsx"],"sourcesContent":["import { CircleAlert, CircleCheck, Info, TriangleAlert, X } from 'lucide-react';\nimport { type ReactNode, createContext, use, useState } from 'react';\nimport {\n UNSTABLE_Toast as AriaToast,\n UNSTABLE_ToastContent as AriaToastContent,\n UNSTABLE_ToastQueue as AriaToastQueue,\n UNSTABLE_ToastRegion as AriaToastRegion,\n Text,\n} from 'react-aria-components';\n\nimport { Button } from '../button/Button';\nimport { IconButton } from '../icon-button/IconButton';\nimport { Icon, type IconComponent } from '../icon/Icon';\nimport { messages } from '../intl/messages';\nimport { usePanneauIntl } from '../intl/usePanneauIntl';\nimport { cx } from '../utils/cx';\nimport styles from './Toast.module.css';\n\nexport type ToastTone = 'neutral' | 'success' | 'danger' | 'warning' | 'info';\n\n/** What a toast says. */\nexport interface ToastContent {\n title: string;\n description?: string;\n /** Defaults to `neutral`. */\n tone?: ToastTone;\n /** A button in the toast, such as \"Retry\" or \"Undo\". The toast closes when it is pressed. */\n action?: { label: string; onAction: () => void };\n}\n\nexport interface ToastOptions {\n /**\n * Milliseconds before the toast closes by itself. Defaults to 5000, and to no timeout for\n * toasts with an action, which users must have time to reach.\n */\n timeout?: number | null;\n onClose?: () => void;\n}\n\nexport interface Toasts {\n /** Shows a toast. Returns its key. */\n show(content: ToastContent, options?: ToastOptions): string;\n /** Closes a toast by key. */\n close(key: string): void;\n}\n\nconst TONE_ICONS: Record<ToastTone, IconComponent | null> = {\n neutral: null,\n success: CircleCheck,\n danger: CircleAlert,\n warning: TriangleAlert,\n info: Info,\n};\n\nconst ToastContext = createContext<Toasts | null>(null);\n\n/** Shows toasts in the closest `PanneauRoot`. */\nexport function useToast(): Toasts {\n const toasts = use(ToastContext);\n if (toasts === null) {\n throw new Error('useToast() must be used inside <PanneauRoot>.');\n }\n return toasts;\n}\n\nexport interface ToastProviderProps {\n children?: ReactNode;\n /** Class names that give the region its tokens, since it renders in the body. */\n regionClassName?: string;\n regionProps?: Record<`data-${string}`, string | undefined>;\n}\n\n/** Holds the toasts of a `PanneauRoot` and renders them in an accessible region. */\nexport function ToastProvider({ children, regionClassName, regionProps }: ToastProviderProps) {\n const intl = usePanneauIntl();\n const [queue] = useState(() => new AriaToastQueue<ToastContent>({ maxVisibleToasts: 5 }));\n const [toasts] = useState<Toasts>(() => ({\n show(content, { timeout, onClose } = {}) {\n const delay = timeout === undefined ? (content.action ? null : 5000) : timeout;\n return queue.add(content, {\n ...(delay !== null ? { timeout: delay } : {}),\n ...(onClose !== undefined ? { onClose } : {}),\n });\n },\n close(key) {\n queue.close(key);\n },\n }));\n return (\n <ToastContext value={toasts}>\n {children}\n <AriaToastRegion\n queue={queue}\n aria-label={intl.formatMessage(messages.notifications)}\n className={cx(regionClassName, styles.region)}\n {...regionProps}\n >\n {({ toast }) => {\n const tone = toast.content.tone ?? 'neutral';\n const icon = TONE_ICONS[tone];\n const { action } = toast.content;\n return (\n <AriaToast toast={toast} className={cx(styles.toast, styles[tone])}>\n {icon !== null ? (\n <Icon icon={icon} size=\"lg\" className={styles.icon} />\n ) : null}\n <AriaToastContent className={styles.content}>\n <Text slot=\"title\" className={styles.title}>\n {toast.content.title}\n </Text>\n {toast.content.description !== undefined ? (\n <Text slot=\"description\" className={styles.description}>\n {toast.content.description}\n </Text>\n ) : null}\n </AriaToastContent>\n <div className={styles.actions}>\n {action !== undefined ? (\n <Button\n size=\"sm\"\n onPress={() => {\n action.onAction();\n queue.close(toast.key);\n }}\n >\n {action.label}\n </Button>\n ) : null}\n <IconButton\n slot=\"close\"\n icon={X}\n size=\"sm\"\n label={intl.formatMessage(messages.close)}\n showTooltip={false}\n />\n </div>\n </AriaToast>\n );\n }}\n </AriaToastRegion>\n </ToastContext>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Toast.js","names":["toast","icon","X","queue","toasts","children","_c","styles","AriaToast","AriaToastContent","Button","AriaToastRegion","AriaToastQueue"],"sources":["../../src/toast/Toast.tsx"],"sourcesContent":["import { CircleAlert, CircleCheck, Info, TriangleAlert, X } from 'lucide-react';\nimport { type ReactNode, createContext, use, useState } from 'react';\nimport {\n UNSTABLE_Toast as AriaToast,\n UNSTABLE_ToastContent as AriaToastContent,\n UNSTABLE_ToastQueue as AriaToastQueue,\n UNSTABLE_ToastRegion as AriaToastRegion,\n Text,\n} from 'react-aria-components';\n\nimport { Button } from '../button/Button';\nimport { IconButton } from '../icon-button/IconButton';\nimport { Icon, type IconComponent } from '../icon/Icon';\nimport { messages } from '../intl/messages';\nimport { usePanneauIntl } from '../intl/usePanneauIntl';\nimport { toneClass } from '../theme/toneClass';\nimport type { Tone } from '../theme/tones';\nimport { cx } from '../utils/cx';\nimport styles from './Toast.module.css';\n\n/** @deprecated Use `Tone`. */\nexport type ToastTone = Tone;\n\n/** What a toast says. */\nexport interface ToastContent {\n title: string;\n description?: string;\n /** Defaults to `neutral`. Any tone other than neutral colors the edge and the icon. */\n tone?: Tone;\n /** A button in the toast, such as \"Retry\" or \"Undo\". The toast closes when it is pressed. */\n action?: { label: string; onAction: () => void };\n}\n\nexport interface ToastOptions {\n /**\n * Milliseconds before the toast closes by itself. Defaults to 5000, and to no timeout for\n * toasts with an action, which users must have time to reach.\n */\n timeout?: number | null;\n onClose?: () => void;\n}\n\nexport interface Toasts {\n /** Shows a toast. Returns its key. */\n show(content: ToastContent, options?: ToastOptions): string;\n /** Closes a toast by key. */\n close(key: string): void;\n}\n\nconst TONE_ICONS: Partial<Record<Tone, IconComponent | null>> = {\n neutral: null,\n success: CircleCheck,\n danger: CircleAlert,\n warning: TriangleAlert,\n info: Info,\n};\n\nconst ToastContext = createContext<Toasts | null>(null);\n\n/** Shows toasts in the closest `PanneauRoot`. */\nexport function useToast(): Toasts {\n const toasts = use(ToastContext);\n if (toasts === null) {\n throw new Error('useToast() must be used inside <PanneauRoot>.');\n }\n return toasts;\n}\n\nexport interface ToastProviderProps {\n children?: ReactNode;\n /** Class names that give the region its tokens, since it renders in the body. */\n regionClassName?: string;\n regionProps?: Record<`data-${string}`, string | undefined>;\n}\n\n/** Holds the toasts of a `PanneauRoot` and renders them in an accessible region. */\nexport function ToastProvider({ children, regionClassName, regionProps }: ToastProviderProps) {\n const intl = usePanneauIntl();\n const [queue] = useState(() => new AriaToastQueue<ToastContent>({ maxVisibleToasts: 5 }));\n const [toasts] = useState<Toasts>(() => ({\n show(content, { timeout, onClose } = {}) {\n const delay = timeout === undefined ? (content.action ? null : 5000) : timeout;\n return queue.add(content, {\n ...(delay !== null ? { timeout: delay } : {}),\n ...(onClose !== undefined ? { onClose } : {}),\n });\n },\n close(key) {\n queue.close(key);\n },\n }));\n return (\n <ToastContext value={toasts}>\n {children}\n <AriaToastRegion\n queue={queue}\n aria-label={intl.formatMessage(messages.notifications)}\n className={cx('panneau-toast-region', regionClassName, styles.region)}\n {...regionProps}\n >\n {({ toast }) => {\n const tone = toast.content.tone ?? 'neutral';\n const icon = TONE_ICONS[tone] ?? null;\n const { action } = toast.content;\n return (\n <AriaToast\n toast={toast}\n className={cx(\n 'panneau-toast',\n styles.toast,\n toneClass(tone),\n tone !== 'neutral' && styles.toned,\n )}\n >\n {icon !== null ? (\n <Icon icon={icon} size=\"lg\" className={styles.icon} />\n ) : null}\n <AriaToastContent className={styles.content}>\n <Text slot=\"title\" className={styles.title}>\n {toast.content.title}\n </Text>\n {toast.content.description !== undefined ? (\n <Text slot=\"description\" className={styles.description}>\n {toast.content.description}\n </Text>\n ) : null}\n </AriaToastContent>\n <div className={styles.actions}>\n {action !== undefined ? (\n <Button\n size=\"sm\"\n onPress={() => {\n action.onAction();\n queue.close(toast.key);\n }}\n >\n {action.label}\n </Button>\n ) : null}\n <IconButton\n slot=\"close\"\n icon={X}\n size=\"sm\"\n label={intl.formatMessage(messages.close)}\n showTooltip={false}\n />\n </div>\n </AriaToast>\n );\n }}\n </AriaToastRegion>\n </ToastContext>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAiDA,IAAM,aAA0D;CAC5D,SAAS;CACT,SAAS;CACT,QAAQ;CACR,SAAS;CACT,MAAM;AACV;AAEA,IAAM,eAAe,cAA6B,IAAI;;AAGtD,SAAgB,WAAmB;CAC/B,MAAM,SAAS,IAAI,YAAY;CAC/B,IAAI,WAAW,MACX,MAAM,IAAI,MAAM,+CAA+C;CAEnE,OAAO;AACX;;AAUA,SAAO,cAAA,IAAA;CAAA,MAAA,IAAAM,EAAA,EAAA;CAAuB,MAAA,EAAA,UAAA,iBAAA,gBAAA;CAC1B,MAAA,OAAa,eAAe;CAC5B,MAAA,CAAA,SAAgB,SAAS,KAA+D;CAAE,IAAA;CAAA,IAAA,EAAA,OAAA,OAAA;EACxD,YAAO;GAAA,KAAA,SAAA,IAAA;IACvB,MAAA,EAAA,SAAA,YAAA,OAAA,KAAA,IAAA,CAAwB,IAAxB;IACV,MAAA,QAAc,YAAY,KAAA,IAAa,QAAO,SAAP,OAAA,MAAzB;IAAiE,OACxE,MAAK,IAAK,SAAS;KAAA,GAClB,UAAU,OAAV,EAAA,SAA4B,MAAW,IAAvC,CAAuC;KAAC,GACxC,YAAY,KAAA,IAAZ,EAAA,QAAuC,IAAvC,CAAuC;IAC/C,CAAC;GAAC;GAAA,MAAA,KAAA;IAGF,MAAK,MAAO,GAAG;GAAC;EAExB;EAAE,EAAA,KAAA;EAAA,EAAA,KAAA;CAAA,OAAA,KAAA,EAAA;CAXF,MAAA,CAAA,UAAiB,SAAiB,EAWhC;CAAE,IAAA;CAAA,IAAA,EAAA,OAAA,MAAA;EAMoB,KAAA,KAAI,cAAe,SAAQ,aAAc;EAAC,EAAA,KAAA;EAAA,EAAA,KAAA;CAAA,OAAA,KAAA,EAAA;CAAA,IAAA;CAAA,IAAA,EAAA,OAAA,iBAAA;EAC3C,KAAA,GAAG,wBAAwB,iBAAiBC,qBAAM,MAAO;EAAC,EAAA,KAAA;EAAA,EAAA,KAAA;CAAA,OAAA,KAAA,EAAA;CAAA,IAAA;CAAA,IAAA,EAAA,OAAA,QAAA,EAAA,OAAA,OAAA;EAGpE,MAAA,OAAA;GAAC,MAAA,EAAA,UAAA;GACE,MAAA,OAAa,MAAK,QAAQ,QAAb;GACb,MAAA,OAAa,WAAW,SAAX;GACb,MAAA,EAAA,WAAmB,MAAK;GAAS,OAE7B,qBAACC,gBAAD;IACW;IACI,WAAA,GACP,iBACAD,qBAAM,OACN,UAAU,IAAI,GACd,SAAS,aAAaA,qBAAM,KAChC;IAPJ,UAAA;KASK,SAAS,OACN,oBAAC,MAAD;MAAY;MAAW,MAAA;MAAgB,WAAAA,qBAAM;KAAK,CAAA,IADrD;KAGD,qBAACE,uBAAD;MAA6B,WAAAF,qBAAM;MAAnC,UAAA,CACI,oBAAC,MAAD;OAAW,MAAA;OAAmB,WAAAA,qBAAM;OAC/B,UAAA,MAAK,QAAQ;MADb,CAAA,GAGJ,MAAK,QAAQ,gBAAiB,KAAA,IAC3B,oBAAC,MAAD;OAAW,MAAA;OAAyB,WAAAA,qBAAM;OACrC,UAAA,MAAK,QAAQ;MADb,CAAA,IADR,IAJY;;KAUjB,qBAAA,OAAA;MAAgB,WAAAA,qBAAM;MAAtB,UAAA,CACK,WAAW,KAAA,IACR,oBAACG,UAAD;OACS,MAAA;OACI,eAAA;QACL,OAAM,SAAU;QAChB,MAAK,MAAO,MAAK,GAAI;OAAC;OAGzB,UAAA,OAAM;MAPJ,CAAA,IADV,MAWD,oBAAC,YAAD;OACS,MAAA;OACCR,MAAA;OACD,MAAA;OACE,OAAA,KAAI,cAAe,SAAQ,KAAM;OAC3B,aAAA;MAAK,CAAA,CAEpB;;IAzCA;;EA0CE;EAEnB,EAAA,KAAA;EAAA,EAAA,KAAA;EAAA,EAAA,KAAA;CAAA,OAAA,KAAA,EAAA;CAAA,IAAA;CAAA,IAAA,EAAA,OAAA,SAAA,EAAA,QAAA,eAAA,EAAA,QAAA,MAAA,EAAA,QAAA,MAAA,EAAA,QAAA,IAAA;EAvDL,KAAA,oBAACS,sBAAD;GACW;GACK,cAAA;GACD,WAAA;GAA0D,GACjE;GAEH,UAAA;EANW,CAAA;EAwDE,EAAA,KAAA;EAAA,EAAA,MAAA;EAAA,EAAA,MAAA;EAAA,EAAA,MAAA;EAAA,EAAA,MAAA;EAAA,EAAA,MAAA;CAAA,OAAA,KAAA,EAAA;CAAA,IAAA;CAAA,IAAA,EAAA,QAAA,YAAA,EAAA,QAAA,MAAA,EAAA,QAAA,QAAA;EA1DtB,KAAA,qBAAC,cAAD;GAAqBP,OAAA;GAArB,UAAA,CACK,UACD,EAFS;;EA2DE,EAAA,MAAA;EAAA,EAAA,MAAA;EAAA,EAAA,MAAA;EAAA,EAAA,MAAA;CAAA,OAAA,KAAA,EAAA;CAAA,OA3Df;AA2De;AA3EhB,SAAA,QAAA;CAAA,OAE4B,IAAIQ,oBAA6B,EAAA,kBAAoB,EAAE,CAAC;AAAC"}
@@ -1,30 +1,24 @@
1
1
  import "./Toast.css";
2
2
  //#region src/toast/Toast.module.css
3
- var region = "panneau-region-wzx1vG";
4
- var toast = "panneau-toast-zcR9rJ";
5
- var success = "panneau-success-bKO-t0";
6
- var danger = "panneau-danger-xAgJYb";
7
- var warning = "panneau-warning-8eqKky";
8
- var info = "panneau-info-3p-uFF";
9
- var icon = "panneau-icon-xCysks";
10
- var content = "panneau-content-oL01to";
11
- var title = "panneau-title-ZUmw4H";
12
- var description = "panneau-description-bQFVpf";
13
- var actions = "panneau-actions-4GKOfg";
3
+ var region = "panneau-toast-region";
4
+ var toast = "panneau-toast";
5
+ var icon = "panneau-toast-icon";
6
+ var toned = "panneau-toast-toned";
7
+ var content = "panneau-toast-content";
8
+ var title = "panneau-toast-title";
9
+ var description = "panneau-toast-description";
10
+ var actions = "panneau-toast-actions";
14
11
  var Toast_module_default = {
15
12
  region,
16
13
  toast,
17
- success,
18
- danger,
19
- warning,
20
- info,
21
14
  icon,
15
+ toned,
22
16
  content,
23
17
  title,
24
18
  description,
25
19
  actions
26
20
  };
27
21
  //#endregion
28
- export { actions, content, danger, Toast_module_default as default, description, icon, info, region, success, title, toast, warning };
22
+ export { actions, content, Toast_module_default as default, description, icon, region, title, toast, toned };
29
23
 
30
24
  //# sourceMappingURL=Toast.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.module.js","names":[],"sources":["../../src/toast/Toast.module.css"],"sourcesContent":["/* The region carries the root's class (tokens), since React Aria renders it in the body. */\n.region.region {\n position: fixed;\n inset-block-end: var(--panneau-space-4);\n inset-inline-end: var(--panneau-space-4);\n z-index: var(--panneau-z-toast);\n display: flex;\n flex-direction: column-reverse;\n gap: var(--panneau-space-2);\n width: min(24rem, calc(100vw - 2 * var(--panneau-space-4)));\n background: transparent;\n outline: none;\n}\n\n.region[data-focus-visible] {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 4px;\n}\n\n@media (max-width: 30rem) {\n .region.region {\n inset-inline: var(--panneau-space-2);\n inset-block-end: var(--panneau-space-2);\n width: auto;\n }\n}\n\n.toast {\n display: flex;\n align-items: flex-start;\n gap: var(--panneau-space-3);\n padding: var(--panneau-space-3) var(--panneau-space-3) var(--panneau-space-3)\n var(--panneau-space-4);\n color: var(--panneau-color-text);\n background-color: var(--panneau-color-surface-raised);\n border: var(--panneau-border-width) solid var(--panneau-color-border);\n border-inline-start-width: 4px;\n border-radius: var(--panneau-radius-lg);\n box-shadow: var(--panneau-shadow-lg);\n outline: none;\n}\n\n.toast[data-focus-visible] {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 2px;\n}\n\n.success {\n border-inline-start-color: var(--panneau-color-success);\n}\n\n.danger {\n border-inline-start-color: var(--panneau-color-danger);\n}\n\n.warning {\n border-inline-start-color: var(--panneau-color-warning);\n}\n\n.info {\n border-inline-start-color: var(--panneau-color-info);\n}\n\n.icon {\n margin-top: 0.125rem;\n}\n\n.success .icon {\n color: var(--panneau-color-success);\n}\n\n.danger .icon {\n color: var(--panneau-color-danger);\n}\n\n.warning .icon {\n color: var(--panneau-color-warning);\n}\n\n.info .icon {\n color: var(--panneau-color-info);\n}\n\n.content {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--panneau-space-1);\n min-width: 0;\n padding-top: 0.125rem;\n}\n\n.title {\n font-weight: var(--panneau-font-weight-medium);\n overflow-wrap: anywhere;\n}\n\n.description {\n font-size: var(--panneau-font-size-sm);\n color: var(--panneau-color-text-muted);\n overflow-wrap: anywhere;\n}\n\n.actions {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--panneau-space-1);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Toast.module.js","names":[],"sources":["../../src/toast/Toast.module.css"],"sourcesContent":["/* The region carries the root's class (tokens), since React Aria renders it in the body. */\n.region.region {\n position: fixed;\n inset-block-end: var(--panneau-space-4);\n inset-inline-end: var(--panneau-space-4);\n z-index: var(--panneau-z-toast);\n display: flex;\n flex-direction: column-reverse;\n gap: var(--panneau-space-2);\n width: min(var(--panneau-toast-width, 24rem), calc(100vw - 2 * var(--panneau-space-4)));\n background: transparent;\n outline: none;\n}\n\n.region[data-focus-visible] {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 4px;\n}\n\n@media (max-width: 30rem) {\n .region.region {\n inset-inline: var(--panneau-space-2);\n inset-block-end: var(--panneau-space-2);\n width: auto;\n }\n}\n\n.toast {\n display: flex;\n align-items: flex-start;\n gap: var(--panneau-space-3);\n padding: var(--panneau-space-3) var(--panneau-space-3) var(--panneau-space-3)\n var(--panneau-space-4);\n color: var(--panneau-color-text);\n background-color: var(--panneau-toast-bg, var(--panneau-color-surface-raised));\n border: var(--panneau-border-width) solid\n var(--panneau-toast-border-color, var(--panneau-color-border));\n border-inline-start-width: var(--panneau-toast-tone-width, 4px);\n border-radius: var(--panneau-toast-radius, var(--panneau-radius-lg));\n box-shadow: var(--panneau-toast-shadow, var(--panneau-shadow-lg));\n outline: none;\n}\n\n.toast[data-focus-visible] {\n outline: var(--panneau-focus-width) solid var(--panneau-color-focus);\n outline-offset: 2px;\n}\n\n.icon {\n margin-top: 0.125rem;\n}\n\n/* A toast with a tone other than neutral: a colored edge and icon, from its tone class. */\n.toned {\n border-inline-start-color: var(--panneau-tone-text);\n}\n\n.toned .icon {\n color: var(--panneau-tone-text);\n}\n\n.content {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--panneau-space-1);\n min-width: 0;\n padding-top: 0.125rem;\n}\n\n.title {\n font-weight: var(--panneau-font-weight-medium);\n overflow-wrap: anywhere;\n}\n\n.description {\n font-size: var(--panneau-font-size-sm);\n color: var(--panneau-color-text-muted);\n overflow-wrap: anywhere;\n}\n\n.actions {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--panneau-space-1);\n}\n"],"mappings":""}
@@ -0,0 +1,3 @@
1
+ /** Tokens of Toast. */
2
+ export declare const toastTokens: import("..").ComponentTokens<"toast", "panneau-toast-width" | "panneau-toast-radius" | "panneau-toast-bg" | "panneau-toast-border-color" | "panneau-toast-shadow" | "panneau-toast-tone-width">;
3
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/toast/tokens.ts"],"names":[],"mappings":"AAEA,uBAAuB;AACvB,eAAO,MAAM,WAAW,iMAatB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineComponentTokens } from "../theme/componentTokens.js";
2
+ //#region src/toast/tokens.ts
3
+ /** Tokens of Toast. */
4
+ var toastTokens = defineComponentTokens("toast", {
5
+ /** Width of the toasts. */
6
+ width: "24rem",
7
+ /** Background. */
8
+ bg: "var(--panneau-color-surface-raised)",
9
+ /** Border color. */
10
+ "border-color": "var(--panneau-color-border)",
11
+ /** Width of the colored edge of a toast with a tone. */
12
+ "tone-width": "4px",
13
+ /** Corner radius. */
14
+ radius: "var(--panneau-radius-lg)",
15
+ /** Shadow. */
16
+ shadow: "var(--panneau-shadow-lg)"
17
+ });
18
+ //#endregion
19
+ export { toastTokens };
20
+
21
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","names":[],"sources":["../../src/toast/tokens.ts"],"sourcesContent":["import { defineComponentTokens } from '../theme/componentTokens';\n\n/** Tokens of Toast. */\nexport const toastTokens = defineComponentTokens('toast', {\n /** Width of the toasts. */\n width: '24rem',\n /** Background. */\n bg: 'var(--panneau-color-surface-raised)',\n /** Border color. */\n 'border-color': 'var(--panneau-color-border)',\n /** Width of the colored edge of a toast with a tone. */\n 'tone-width': '4px',\n /** Corner radius. */\n radius: 'var(--panneau-radius-lg)',\n /** Shadow. */\n shadow: 'var(--panneau-shadow-lg)',\n});\n"],"mappings":";;;AAGA,IAAa,cAAc,sBAAsB,SAAS;;CAEtD,OAAO;;CAEP,IAAI;;CAEJ,gBAAgB;;CAEhB,cAAc;;CAEd,QAAQ;;CAER,QAAQ;AACZ,CAAC"}
@@ -1,24 +1,25 @@
1
- .panneau-tooltip--CWkTN {
1
+ .panneau-tooltip {
2
2
  max-width: min(20rem, calc(100vw - 2 * var(--panneau-space-4)));
3
- padding: var(--panneau-space-1) var(--panneau-space-2);
4
- font-size: var(--panneau-font-size-sm);
3
+ padding: var(--panneau-tooltip-padding-y, var(--panneau-space-1))
4
+ var(--panneau-tooltip-padding-x, var(--panneau-space-2));
5
+ font-size: var(--panneau-tooltip-font-size, var(--panneau-font-size-sm));
5
6
  line-height: var(--panneau-line-height-tight);
6
- color: var(--panneau-color-bg);
7
- background-color: var(--panneau-color-text);
8
- border-radius: var(--panneau-radius-sm);
7
+ color: var(--panneau-tooltip-color, var(--panneau-color-bg));
8
+ background-color: var(--panneau-tooltip-bg, var(--panneau-color-text));
9
+ border-radius: var(--panneau-tooltip-radius, var(--panneau-radius-sm));
9
10
  box-shadow: var(--panneau-shadow-md);
10
11
  z-index: var(--panneau-z-overlay);
11
12
  }
12
13
 
13
- .panneau-tooltip--CWkTN[data-entering] {
14
- animation: panneau-fade--CCbVC var(--panneau-duration);
14
+ .panneau-tooltip[data-entering] {
15
+ animation: panneau-tooltip-fade var(--panneau-duration);
15
16
  }
16
17
 
17
- .panneau-tooltip--CWkTN[data-exiting] {
18
- animation: panneau-fade--CCbVC var(--panneau-duration) reverse ease-in;
18
+ .panneau-tooltip[data-exiting] {
19
+ animation: panneau-tooltip-fade var(--panneau-duration) reverse ease-in;
19
20
  }
20
21
 
21
- @keyframes panneau-fade--CCbVC {
22
+ @keyframes panneau-tooltip-fade {
22
23
  from {
23
24
  opacity: 0;
24
25
  }
@@ -17,7 +17,7 @@ function Tooltip$1({ content, children, placement = "top", delay = 600, isDisabl
17
17
  children: [children, /* @__PURE__ */ jsx(Tooltip, {
18
18
  placement,
19
19
  offset: 6,
20
- className: cx(Tooltip_module_default.tooltip, className),
20
+ className: cx("panneau-tooltip", Tooltip_module_default.tooltip, className),
21
21
  UNSTABLE_portalContainer: container,
22
22
  children: content
23
23
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","names":["Tooltip","AriaTooltip","styles"],"sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport {\n Tooltip as AriaTooltip,\n type TooltipProps as AriaTooltipProps,\n TooltipTrigger,\n} from 'react-aria-components';\n\nimport { usePortalContainer } from '../root/PanneauRoot';\nimport { cx } from '../utils/cx';\nimport styles from './Tooltip.module.css';\n\nexport interface TooltipProps {\n /** Content of the tooltip. */\n content: ReactNode;\n /** The element that shows the tooltip on hover and focus: a focusable React Aria element. */\n children: ReactElement;\n placement?: AriaTooltipProps['placement'];\n /** Delay before showing, in milliseconds. Defaults to 600. */\n delay?: number;\n isDisabled?: boolean;\n className?: string;\n}\n\n/**\n * A tooltip on hover and keyboard focus. It only adds a description: never put information or\n * actions in it that aren't available otherwise, since touch screens don't show it.\n */\nexport function Tooltip({\n content,\n children,\n placement = 'top',\n delay = 600,\n isDisabled = false,\n className,\n}: TooltipProps) {\n const container = usePortalContainer();\n if (container === null) {\n return children;\n }\n return (\n <TooltipTrigger delay={delay} isDisabled={isDisabled}>\n {children}\n <AriaTooltip\n placement={placement}\n offset={6}\n className={cx(styles.tooltip, className)}\n UNSTABLE_portalContainer={container}\n >\n {content}\n </AriaTooltip>\n </TooltipTrigger>\n );\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAgBA,UAAQ,EACpB,SACA,UACA,YAAY,OACZ,QAAQ,KACR,aAAa,OACb,aACa;CACb,MAAM,YAAY,mBAAmB;CACrC,IAAI,cAAc,MACd,OAAO;CAEX,OACI,qBAAC,gBAAD;EAAuB;EAAmB;EAA1C,UAAA,CACK,UACD,oBAACC,SAAD;GACe;GACX,QAAQ;GACR,WAAW,GAAGC,uBAAO,SAAS,SAAS;GACvC,0BAA0B;GAEzB,UAAA;EACQ,CAAA,CACD;;AAExB"}
1
+ {"version":3,"file":"Tooltip.js","names":["Tooltip","AriaTooltip","styles"],"sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport {\n Tooltip as AriaTooltip,\n type TooltipProps as AriaTooltipProps,\n TooltipTrigger,\n} from 'react-aria-components';\n\nimport { usePortalContainer } from '../root/PanneauRoot';\nimport { cx } from '../utils/cx';\nimport styles from './Tooltip.module.css';\n\nexport interface TooltipProps {\n /** Content of the tooltip. */\n content: ReactNode;\n /** The element that shows the tooltip on hover and focus: a focusable React Aria element. */\n children: ReactElement;\n placement?: AriaTooltipProps['placement'];\n /** Delay before showing, in milliseconds. Defaults to 600. */\n delay?: number;\n isDisabled?: boolean;\n className?: string;\n}\n\n/**\n * A tooltip on hover and keyboard focus. It only adds a description: never put information or\n * actions in it that aren't available otherwise, since touch screens don't show it.\n */\nexport function Tooltip({\n content,\n children,\n placement = 'top',\n delay = 600,\n isDisabled = false,\n className,\n}: TooltipProps) {\n const container = usePortalContainer();\n if (container === null) {\n return children;\n }\n return (\n <TooltipTrigger delay={delay} isDisabled={isDisabled}>\n {children}\n <AriaTooltip\n placement={placement}\n offset={6}\n className={cx('panneau-tooltip', styles.tooltip, className)}\n UNSTABLE_portalContainer={container}\n >\n {content}\n </AriaTooltip>\n </TooltipTrigger>\n );\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAgBA,UAAQ,EACpB,SACA,UACA,YAAY,OACZ,QAAQ,KACR,aAAa,OACb,aACa;CACb,MAAM,YAAY,mBAAmB;CACrC,IAAI,cAAc,MACd,OAAO;CAEX,OACI,qBAAC,gBAAD;EAAuB;EAAmB;EAA1C,UAAA,CACK,UACD,oBAACC,SAAD;GACe;GACX,QAAQ;GACR,WAAW,GAAG,mBAAmBC,uBAAO,SAAS,SAAS;GAC1D,0BAA0B;GAEzB,UAAA;EACQ,CAAA,CACD;;AAExB"}
@@ -1,7 +1,7 @@
1
1
  import "./Tooltip.css";
2
2
  //#region src/tooltip/Tooltip.module.css
3
- var tooltip = "panneau-tooltip--CWkTN";
4
- var fade = "panneau-fade--CCbVC";
3
+ var tooltip = "panneau-tooltip";
4
+ var fade = "panneau-tooltip-fade";
5
5
  var Tooltip_module_default = {
6
6
  tooltip,
7
7
  fade
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.module.js","names":[],"sources":["../../src/tooltip/Tooltip.module.css"],"sourcesContent":[".tooltip {\n max-width: min(20rem, calc(100vw - 2 * var(--panneau-space-4)));\n padding: var(--panneau-space-1) var(--panneau-space-2);\n font-size: var(--panneau-font-size-sm);\n line-height: var(--panneau-line-height-tight);\n color: var(--panneau-color-bg);\n background-color: var(--panneau-color-text);\n border-radius: var(--panneau-radius-sm);\n box-shadow: var(--panneau-shadow-md);\n z-index: var(--panneau-z-overlay);\n}\n\n.tooltip[data-entering] {\n animation: fade var(--panneau-duration);\n}\n\n.tooltip[data-exiting] {\n animation: fade var(--panneau-duration) reverse ease-in;\n}\n\n@keyframes fade {\n from {\n opacity: 0;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Tooltip.module.js","names":[],"sources":["../../src/tooltip/Tooltip.module.css"],"sourcesContent":[".tooltip {\n max-width: min(20rem, calc(100vw - 2 * var(--panneau-space-4)));\n padding: var(--panneau-tooltip-padding-y, var(--panneau-space-1))\n var(--panneau-tooltip-padding-x, var(--panneau-space-2));\n font-size: var(--panneau-tooltip-font-size, var(--panneau-font-size-sm));\n line-height: var(--panneau-line-height-tight);\n color: var(--panneau-tooltip-color, var(--panneau-color-bg));\n background-color: var(--panneau-tooltip-bg, var(--panneau-color-text));\n border-radius: var(--panneau-tooltip-radius, var(--panneau-radius-sm));\n box-shadow: var(--panneau-shadow-md);\n z-index: var(--panneau-z-overlay);\n}\n\n.tooltip[data-entering] {\n animation: fade var(--panneau-duration);\n}\n\n.tooltip[data-exiting] {\n animation: fade var(--panneau-duration) reverse ease-in;\n}\n\n@keyframes fade {\n from {\n opacity: 0;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,3 @@
1
+ /** Tokens of Tooltip. */
2
+ export declare const tooltipTokens: import("..").ComponentTokens<"tooltip", "panneau-tooltip-color" | "panneau-tooltip-radius" | "panneau-tooltip-padding-y" | "panneau-tooltip-padding-x" | "panneau-tooltip-font-size" | "panneau-tooltip-bg">;
3
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/tooltip/tokens.ts"],"names":[],"mappings":"AAEA,yBAAyB;AACzB,eAAO,MAAM,aAAa,8MAaxB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineComponentTokens } from "../theme/componentTokens.js";
2
+ //#region src/tooltip/tokens.ts
3
+ /** Tokens of Tooltip. */
4
+ var tooltipTokens = defineComponentTokens("tooltip", {
5
+ /** Vertical padding. */
6
+ "padding-y": "var(--panneau-space-1)",
7
+ /** Horizontal padding. */
8
+ "padding-x": "var(--panneau-space-2)",
9
+ /** Font size. */
10
+ "font-size": "var(--panneau-font-size-sm)",
11
+ /** Text color. */
12
+ color: "var(--panneau-color-bg)",
13
+ /** Background. */
14
+ bg: "var(--panneau-color-text)",
15
+ /** Corner radius. */
16
+ radius: "var(--panneau-radius-sm)"
17
+ });
18
+ //#endregion
19
+ export { tooltipTokens };
20
+
21
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","names":[],"sources":["../../src/tooltip/tokens.ts"],"sourcesContent":["import { defineComponentTokens } from '../theme/componentTokens';\n\n/** Tokens of Tooltip. */\nexport const tooltipTokens = defineComponentTokens('tooltip', {\n /** Vertical padding. */\n 'padding-y': 'var(--panneau-space-1)',\n /** Horizontal padding. */\n 'padding-x': 'var(--panneau-space-2)',\n /** Font size. */\n 'font-size': 'var(--panneau-font-size-sm)',\n /** Text color. */\n color: 'var(--panneau-color-bg)',\n /** Background. */\n bg: 'var(--panneau-color-text)',\n /** Corner radius. */\n radius: 'var(--panneau-radius-sm)',\n});\n"],"mappings":";;;AAGA,IAAa,gBAAgB,sBAAsB,WAAW;;CAE1D,aAAa;;CAEb,aAAa;;CAEb,aAAa;;CAEb,OAAO;;CAEP,IAAI;;CAEJ,QAAQ;AACZ,CAAC"}
@@ -1,3 +1,3 @@
1
- /** Joins class names, skipping empty ones. */
1
+ /** Joins class names, skipping empty and repeated ones. */
2
2
  export declare function cx(...classNames: (string | false | null | undefined)[]): string;
3
3
  //# sourceMappingURL=cx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cx.d.ts","sourceRoot":"","sources":["../../src/utils/cx.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,wBAAgB,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAE/E"}
1
+ {"version":3,"file":"cx.d.ts","sourceRoot":"","sources":["../../src/utils/cx.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,wBAAgB,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAQ/E"}
package/dist/utils/cx.js CHANGED
@@ -1,7 +1,7 @@
1
1
  //#region src/utils/cx.ts
2
- /** Joins class names, skipping empty ones. */
2
+ /** Joins class names, skipping empty and repeated ones. */
3
3
  function cx(...classNames) {
4
- return classNames.filter(Boolean).join(" ");
4
+ return [...new Set(classNames.flatMap((className) => typeof className === "string" ? className.split(/\s+/).filter(Boolean) : []))].join(" ");
5
5
  }
6
6
  //#endregion
7
7
  export { cx };
@@ -1 +1 @@
1
- {"version":3,"file":"cx.js","names":[],"sources":["../../src/utils/cx.ts"],"sourcesContent":["/** Joins class names, skipping empty ones. */\nexport function cx(...classNames: (string | false | null | undefined)[]): string {\n return classNames.filter(Boolean).join(' ');\n}\n"],"mappings":";;AACA,SAAgB,GAAG,GAAG,YAA2D;CAC7E,OAAO,WAAW,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AAC9C"}
1
+ {"version":3,"file":"cx.js","names":[],"sources":["../../src/utils/cx.ts"],"sourcesContent":["/** Joins class names, skipping empty and repeated ones. */\nexport function cx(...classNames: (string | false | null | undefined)[]): string {\n return [\n ...new Set(\n classNames.flatMap((className) =>\n typeof className === 'string' ? className.split(/\\s+/).filter(Boolean) : [],\n ),\n ),\n ].join(' ');\n}\n"],"mappings":";;AACA,SAAgB,GAAG,GAAG,YAA2D;CAC7E,OAAO,CACH,GAAG,IAAI,IACH,WAAW,SAAS,cAChB,OAAO,cAAc,WAAW,UAAU,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO,IAAI,CAAA,CAC7E,CACJ,CAAC,CACJ,CAAC,KAAK,GAAG;AACd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/ui",
3
- "version": "5.0.0-alpha.0",
3
+ "version": "5.0.0-alpha.2",
4
4
  "description": "Design tokens, themes and accessible primitives of Panneau, built on React Aria Components.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -23,11 +23,20 @@
23
23
  "types": "./dist/locales/index.d.ts",
24
24
  "default": "./dist/locales/index.js"
25
25
  },
26
+ "./theme": {
27
+ "@panneau/source": "./src/theme/index.ts",
28
+ "types": "./dist/theme/index.d.ts",
29
+ "default": "./dist/theme/index.js"
30
+ },
26
31
  "./package.json": "./package.json"
27
32
  },
28
33
  "files": [
29
- "dist"
34
+ "dist",
35
+ "bin"
30
36
  ],
37
+ "bin": {
38
+ "panneau-check-theme": "./bin/check-theme.js"
39
+ },
31
40
  "scripts": {
32
41
  "build": "vite build && tsc -p tsconfig.build.json",
33
42
  "typecheck": "tsc --noEmit",
@@ -43,7 +52,10 @@
43
52
  "react-intl": "^12.0.0"
44
53
  },
45
54
  "dependencies": {
46
- "@panneau/intl": "5.0.0-alpha.0",
55
+ "@panneau/intl": "5.0.0-alpha.2",
47
56
  "lucide-react": "^1.57.0"
57
+ },
58
+ "devDependencies": {
59
+ "@panneau/protocol": "5.0.0-alpha.2"
48
60
  }
49
61
  }