shelving 1.199.2 → 1.200.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/index.js +1 -0
  2. package/package.json +10 -5
  3. package/ui/app/App.d.ts +11 -0
  4. package/ui/app/App.js +21 -0
  5. package/ui/app/App.module.css +168 -0
  6. package/ui/app/App.tsx +26 -0
  7. package/ui/app/index.d.ts +1 -0
  8. package/ui/app/index.js +1 -0
  9. package/ui/app/index.ts +1 -0
  10. package/ui/block/Address.d.ts +20 -0
  11. package/ui/block/Address.js +17 -0
  12. package/ui/block/Address.module.css +20 -0
  13. package/ui/block/Address.tsx +47 -0
  14. package/ui/block/Blockquote.d.ts +5 -0
  15. package/ui/block/Blockquote.js +5 -0
  16. package/ui/block/Blockquote.module.css +21 -0
  17. package/ui/block/Blockquote.tsx +10 -0
  18. package/ui/block/Card.d.ts +10 -0
  19. package/ui/block/Card.js +7 -0
  20. package/ui/block/Card.module.css +32 -0
  21. package/ui/block/Card.tsx +18 -0
  22. package/ui/block/Divider.d.ts +6 -0
  23. package/ui/block/Divider.js +5 -0
  24. package/ui/block/Divider.module.css +19 -0
  25. package/ui/block/Divider.tsx +11 -0
  26. package/ui/block/Element.d.ts +9 -0
  27. package/ui/block/Element.js +7 -0
  28. package/ui/block/Element.module.css +12 -0
  29. package/ui/block/Element.tsx +14 -0
  30. package/ui/block/Elements.d.ts +27 -0
  31. package/ui/block/Elements.js +10 -0
  32. package/ui/block/Elements.module.css +70 -0
  33. package/ui/block/Elements.tsx +44 -0
  34. package/ui/block/Figure.d.ts +6 -0
  35. package/ui/block/Figure.js +5 -0
  36. package/ui/block/Figure.module.css +27 -0
  37. package/ui/block/Figure.tsx +16 -0
  38. package/ui/block/Heading.d.ts +6 -0
  39. package/ui/block/Heading.js +7 -0
  40. package/ui/block/Heading.module.css +23 -0
  41. package/ui/block/Heading.tsx +13 -0
  42. package/ui/block/Image.d.ts +6 -0
  43. package/ui/block/Image.js +5 -0
  44. package/ui/block/Image.module.css +20 -0
  45. package/ui/block/Image.tsx +11 -0
  46. package/ui/block/List.d.ts +6 -0
  47. package/ui/block/List.js +6 -0
  48. package/ui/block/List.module.css +30 -0
  49. package/ui/block/List.tsx +12 -0
  50. package/ui/block/Paragraph.d.ts +15 -0
  51. package/ui/block/Paragraph.js +7 -0
  52. package/ui/block/Paragraph.module.css +36 -0
  53. package/ui/block/Paragraph.tsx +21 -0
  54. package/ui/block/Preformatted.d.ts +5 -0
  55. package/ui/block/Preformatted.js +5 -0
  56. package/ui/block/Preformatted.module.css +23 -0
  57. package/ui/block/Preformatted.tsx +10 -0
  58. package/ui/block/Prose.d.ts +6 -0
  59. package/ui/block/Prose.js +28 -0
  60. package/ui/block/Prose.module.css +15 -0
  61. package/ui/block/Prose.tsx +56 -0
  62. package/ui/block/Section.d.ts +28 -0
  63. package/ui/block/Section.js +26 -0
  64. package/ui/block/Section.module.css +28 -0
  65. package/ui/block/Section.tsx +53 -0
  66. package/ui/block/Subheading.d.ts +3 -0
  67. package/ui/block/Subheading.js +7 -0
  68. package/ui/block/Subheading.module.css +23 -0
  69. package/ui/block/Subheading.tsx +10 -0
  70. package/ui/block/Table.d.ts +5 -0
  71. package/ui/block/Table.js +5 -0
  72. package/ui/block/Table.module.css +85 -0
  73. package/ui/block/Table.tsx +14 -0
  74. package/ui/block/Video.d.ts +36 -0
  75. package/ui/block/Video.js +43 -0
  76. package/ui/block/Video.module.css +103 -0
  77. package/ui/block/Video.tsx +91 -0
  78. package/ui/block/index.d.ts +17 -0
  79. package/ui/block/index.js +17 -0
  80. package/ui/block/index.ts +17 -0
  81. package/ui/dialog/Dialog.d.ts +13 -0
  82. package/ui/dialog/Dialog.js +28 -0
  83. package/ui/dialog/Dialog.module.css +29 -0
  84. package/ui/dialog/Dialog.tsx +57 -0
  85. package/ui/dialog/Dialogs.d.ts +23 -0
  86. package/ui/dialog/Dialogs.js +43 -0
  87. package/ui/dialog/Dialogs.tsx +64 -0
  88. package/ui/dialog/Modal.d.ts +5 -0
  89. package/ui/dialog/Modal.js +5 -0
  90. package/ui/dialog/Modal.module.css +11 -0
  91. package/ui/dialog/Modal.tsx +10 -0
  92. package/ui/dialog/index.d.ts +3 -0
  93. package/ui/dialog/index.js +3 -0
  94. package/ui/dialog/index.ts +3 -0
  95. package/ui/form/ArrayInput.d.ts +13 -0
  96. package/ui/form/ArrayInput.js +23 -0
  97. package/ui/form/ArrayInput.tsx +90 -0
  98. package/ui/form/ArrayRadioInputs.d.ts +15 -0
  99. package/ui/form/ArrayRadioInputs.js +16 -0
  100. package/ui/form/ArrayRadioInputs.tsx +53 -0
  101. package/ui/form/Button.d.ts +24 -0
  102. package/ui/form/Button.js +21 -0
  103. package/ui/form/Button.module.css +83 -0
  104. package/ui/form/Button.tsx +48 -0
  105. package/ui/form/ButtonInput.d.ts +7 -0
  106. package/ui/form/ButtonInput.js +19 -0
  107. package/ui/form/ButtonInput.tsx +33 -0
  108. package/ui/form/ButtonInputPopover.d.ts +16 -0
  109. package/ui/form/ButtonInputPopover.js +17 -0
  110. package/ui/form/ButtonInputPopover.tsx +32 -0
  111. package/ui/form/ButtonPopover.d.ts +16 -0
  112. package/ui/form/ButtonPopover.js +17 -0
  113. package/ui/form/ButtonPopover.tsx +31 -0
  114. package/ui/form/CheckboxInput.d.ts +7 -0
  115. package/ui/form/CheckboxInput.js +8 -0
  116. package/ui/form/CheckboxInput.tsx +37 -0
  117. package/ui/form/ChoiceRadioInputs.d.ts +17 -0
  118. package/ui/form/ChoiceRadioInputs.js +13 -0
  119. package/ui/form/ChoiceRadioInputs.tsx +60 -0
  120. package/ui/form/Clickable.d.ts +27 -0
  121. package/ui/form/Clickable.js +29 -0
  122. package/ui/form/Clickable.tsx +87 -0
  123. package/ui/form/DataInput.d.ts +9 -0
  124. package/ui/form/DataInput.js +17 -0
  125. package/ui/form/DataInput.tsx +43 -0
  126. package/ui/form/DateInput.d.ts +12 -0
  127. package/ui/form/DateInput.js +17 -0
  128. package/ui/form/DateInput.tsx +58 -0
  129. package/ui/form/DictionaryInput.d.ts +13 -0
  130. package/ui/form/DictionaryInput.js +32 -0
  131. package/ui/form/DictionaryInput.tsx +106 -0
  132. package/ui/form/Field.d.ts +10 -0
  133. package/ui/form/Field.js +7 -0
  134. package/ui/form/Field.module.css +45 -0
  135. package/ui/form/Field.test.tsx +26 -0
  136. package/ui/form/Field.tsx +32 -0
  137. package/ui/form/FileInput.d.ts +7 -0
  138. package/ui/form/FileInput.js +13 -0
  139. package/ui/form/FileInput.tsx +41 -0
  140. package/ui/form/Form.d.ts +38 -0
  141. package/ui/form/Form.js +61 -0
  142. package/ui/form/Form.module.css +9 -0
  143. package/ui/form/Form.tsx +130 -0
  144. package/ui/form/FormContext.d.ts +13 -0
  145. package/ui/form/FormContext.js +22 -0
  146. package/ui/form/FormContext.tsx +33 -0
  147. package/ui/form/FormFields.d.ts +6 -0
  148. package/ui/form/FormFields.js +16 -0
  149. package/ui/form/FormFields.tsx +30 -0
  150. package/ui/form/FormFooter.d.ts +11 -0
  151. package/ui/form/FormFooter.js +13 -0
  152. package/ui/form/FormFooter.tsx +27 -0
  153. package/ui/form/FormInput.d.ts +8 -0
  154. package/ui/form/FormInput.js +12 -0
  155. package/ui/form/FormInput.tsx +23 -0
  156. package/ui/form/FormMessage.d.ts +4 -0
  157. package/ui/form/FormMessage.js +11 -0
  158. package/ui/form/FormMessage.tsx +16 -0
  159. package/ui/form/FormNotice.d.ts +4 -0
  160. package/ui/form/FormNotice.js +11 -0
  161. package/ui/form/FormNotice.tsx +16 -0
  162. package/ui/form/FormNotify.d.ts +2 -0
  163. package/ui/form/FormNotify.js +11 -0
  164. package/ui/form/FormNotify.tsx +13 -0
  165. package/ui/form/FormStore.d.ts +39 -0
  166. package/ui/form/FormStore.js +95 -0
  167. package/ui/form/FormStore.tsx +107 -0
  168. package/ui/form/Input.d.ts +47 -0
  169. package/ui/form/Input.js +43 -0
  170. package/ui/form/Input.module.css +190 -0
  171. package/ui/form/Input.tsx +81 -0
  172. package/ui/form/NumberInput.d.ts +12 -0
  173. package/ui/form/NumberInput.js +18 -0
  174. package/ui/form/NumberInput.tsx +54 -0
  175. package/ui/form/Popover.d.ts +31 -0
  176. package/ui/form/Popover.js +20 -0
  177. package/ui/form/Popover.module.css +25 -0
  178. package/ui/form/Popover.tsx +61 -0
  179. package/ui/form/Progress.d.ts +9 -0
  180. package/ui/form/Progress.js +8 -0
  181. package/ui/form/Progress.module.css +30 -0
  182. package/ui/form/Progress.tsx +21 -0
  183. package/ui/form/QueryInput.d.ts +32 -0
  184. package/ui/form/QueryInput.js +37 -0
  185. package/ui/form/QueryInput.tsx +94 -0
  186. package/ui/form/RadioInput.d.ts +7 -0
  187. package/ui/form/RadioInput.js +8 -0
  188. package/ui/form/RadioInput.tsx +37 -0
  189. package/ui/form/SchemaInput.d.ts +59 -0
  190. package/ui/form/SchemaInput.js +102 -0
  191. package/ui/form/SchemaInput.tsx +154 -0
  192. package/ui/form/SegmentedProgress.d.ts +10 -0
  193. package/ui/form/SegmentedProgress.js +16 -0
  194. package/ui/form/SegmentedProgress.module.css +31 -0
  195. package/ui/form/SegmentedProgress.tsx +34 -0
  196. package/ui/form/SelectInput.d.ts +8 -0
  197. package/ui/form/SelectInput.js +6 -0
  198. package/ui/form/SelectInput.tsx +45 -0
  199. package/ui/form/SubmitButton.d.ts +7 -0
  200. package/ui/form/SubmitButton.js +15 -0
  201. package/ui/form/SubmitButton.tsx +38 -0
  202. package/ui/form/TextInput.d.ts +16 -0
  203. package/ui/form/TextInput.js +31 -0
  204. package/ui/form/TextInput.tsx +97 -0
  205. package/ui/form/index.d.ts +34 -0
  206. package/ui/form/index.js +34 -0
  207. package/ui/form/index.ts +34 -0
  208. package/ui/index.d.ts +12 -0
  209. package/ui/index.js +12 -0
  210. package/ui/index.ts +12 -0
  211. package/ui/inline/Code.d.ts +17 -0
  212. package/ui/inline/Code.js +14 -0
  213. package/ui/inline/Code.module.css +14 -0
  214. package/ui/inline/Code.tsx +34 -0
  215. package/ui/inline/Deleted.d.ts +5 -0
  216. package/ui/inline/Deleted.js +5 -0
  217. package/ui/inline/Deleted.module.css +9 -0
  218. package/ui/inline/Deleted.tsx +10 -0
  219. package/ui/inline/Emphasis.d.ts +5 -0
  220. package/ui/inline/Emphasis.js +5 -0
  221. package/ui/inline/Emphasis.module.css +5 -0
  222. package/ui/inline/Emphasis.tsx +10 -0
  223. package/ui/inline/Inserted.d.ts +5 -0
  224. package/ui/inline/Inserted.js +5 -0
  225. package/ui/inline/Inserted.module.css +9 -0
  226. package/ui/inline/Inserted.tsx +10 -0
  227. package/ui/inline/Link.d.ts +5 -0
  228. package/ui/inline/Link.js +5 -0
  229. package/ui/inline/Link.module.css +19 -0
  230. package/ui/inline/Link.tsx +9 -0
  231. package/ui/inline/Mark.d.ts +5 -0
  232. package/ui/inline/Mark.js +5 -0
  233. package/ui/inline/Mark.module.css +15 -0
  234. package/ui/inline/Mark.tsx +10 -0
  235. package/ui/inline/Small.d.ts +5 -0
  236. package/ui/inline/Small.js +5 -0
  237. package/ui/inline/Small.module.css +9 -0
  238. package/ui/inline/Small.tsx +10 -0
  239. package/ui/inline/Strong.d.ts +5 -0
  240. package/ui/inline/Strong.js +5 -0
  241. package/ui/inline/Strong.module.css +5 -0
  242. package/ui/inline/Strong.tsx +10 -0
  243. package/ui/inline/Subscript.d.ts +5 -0
  244. package/ui/inline/Subscript.js +5 -0
  245. package/ui/inline/Subscript.module.css +9 -0
  246. package/ui/inline/Subscript.tsx +10 -0
  247. package/ui/inline/Superscript.d.ts +5 -0
  248. package/ui/inline/Superscript.js +5 -0
  249. package/ui/inline/Superscript.module.css +9 -0
  250. package/ui/inline/Superscript.tsx +10 -0
  251. package/ui/inline/When.d.ts +18 -0
  252. package/ui/inline/When.js +24 -0
  253. package/ui/inline/When.tsx +49 -0
  254. package/ui/inline/index.d.ts +11 -0
  255. package/ui/inline/index.js +11 -0
  256. package/ui/inline/index.ts +11 -0
  257. package/ui/layout/CenteredLayout.d.ts +10 -0
  258. package/ui/layout/CenteredLayout.js +11 -0
  259. package/ui/layout/CenteredLayout.module.css +13 -0
  260. package/ui/layout/CenteredLayout.tsx +23 -0
  261. package/ui/layout/Layout.d.ts +9 -0
  262. package/ui/layout/Layout.js +25 -0
  263. package/ui/layout/Layout.module.css +64 -0
  264. package/ui/layout/Layout.ts +26 -0
  265. package/ui/layout/index.d.ts +2 -0
  266. package/ui/layout/index.js +2 -0
  267. package/ui/layout/index.tsx +2 -0
  268. package/ui/misc/Catcher.d.ts +45 -0
  269. package/ui/misc/Catcher.js +57 -0
  270. package/ui/misc/Catcher.tsx +114 -0
  271. package/ui/misc/Loading.d.ts +8 -0
  272. package/ui/misc/Loading.js +6 -0
  273. package/ui/misc/Loading.module.css +19 -0
  274. package/ui/misc/Loading.tsx +31 -0
  275. package/ui/misc/Meta.d.ts +9 -0
  276. package/ui/misc/Meta.js +14 -0
  277. package/ui/misc/Meta.tsx +20 -0
  278. package/ui/misc/index.d.ts +3 -0
  279. package/ui/misc/index.js +3 -0
  280. package/ui/misc/index.tsx +3 -0
  281. package/ui/notice/Message.d.ts +11 -0
  282. package/ui/notice/Message.js +12 -0
  283. package/ui/notice/Message.module.css +8 -0
  284. package/ui/notice/Message.tsx +30 -0
  285. package/ui/notice/Notice.d.ts +15 -0
  286. package/ui/notice/Notice.js +13 -0
  287. package/ui/notice/Notice.module.css +15 -0
  288. package/ui/notice/Notice.tsx +42 -0
  289. package/ui/notice/NoticeStore.d.ts +21 -0
  290. package/ui/notice/NoticeStore.js +44 -0
  291. package/ui/notice/NoticeStore.ts +60 -0
  292. package/ui/notice/Notices.d.ts +7 -0
  293. package/ui/notice/Notices.js +22 -0
  294. package/ui/notice/Notices.module.css +10 -0
  295. package/ui/notice/Notices.tsx +28 -0
  296. package/ui/notice/NoticesStore.d.ts +11 -0
  297. package/ui/notice/NoticesStore.js +16 -0
  298. package/ui/notice/NoticesStore.ts +23 -0
  299. package/ui/notice/README.md +40 -0
  300. package/ui/notice/Status.d.ts +29 -0
  301. package/ui/notice/Status.js +6 -0
  302. package/ui/notice/Status.module.css +79 -0
  303. package/ui/notice/Status.tsx +36 -0
  304. package/ui/notice/StatusIcon.d.ts +12 -0
  305. package/ui/notice/StatusIcon.js +19 -0
  306. package/ui/notice/StatusIcon.module.css +28 -0
  307. package/ui/notice/StatusIcon.tsx +33 -0
  308. package/ui/notice/index.d.ts +7 -0
  309. package/ui/notice/index.js +7 -0
  310. package/ui/notice/index.ts +7 -0
  311. package/ui/page/Head.d.ts +8 -0
  312. package/ui/page/Head.js +32 -0
  313. package/ui/page/Head.tsx +49 -0
  314. package/ui/page/Page.d.ts +10 -0
  315. package/ui/page/Page.js +10 -0
  316. package/ui/page/Page.tsx +21 -0
  317. package/ui/page/index.d.ts +2 -0
  318. package/ui/page/index.js +2 -0
  319. package/ui/page/index.ts +2 -0
  320. package/ui/router/Router.d.ts +31 -0
  321. package/ui/router/Router.js +59 -0
  322. package/ui/router/Router.tsx +88 -0
  323. package/ui/router/RouterContext.d.ts +5 -0
  324. package/ui/router/RouterContext.js +9 -0
  325. package/ui/router/RouterContext.tsx +12 -0
  326. package/ui/router/RouterStore.d.ts +13 -0
  327. package/ui/router/RouterStore.js +23 -0
  328. package/ui/router/RouterStore.test.tsx +43 -0
  329. package/ui/router/RouterStore.tsx +29 -0
  330. package/ui/router/Routes.d.ts +39 -0
  331. package/ui/router/Routes.js +35 -0
  332. package/ui/router/Routes.tsx +62 -0
  333. package/ui/router/index.d.ts +4 -0
  334. package/ui/router/index.js +4 -0
  335. package/ui/router/index.ts +4 -0
  336. package/ui/transition/CollapseTransition.css +3 -0
  337. package/ui/transition/CollapseTransition.d.ts +6 -0
  338. package/ui/transition/CollapseTransition.js +6 -0
  339. package/ui/transition/CollapseTransition.tsx +9 -0
  340. package/ui/transition/FadeTransition.css +25 -0
  341. package/ui/transition/FadeTransition.d.ts +5 -0
  342. package/ui/transition/FadeTransition.js +5 -0
  343. package/ui/transition/FadeTransition.tsx +8 -0
  344. package/ui/transition/HorizontalTransition.css +66 -0
  345. package/ui/transition/HorizontalTransition.d.ts +6 -0
  346. package/ui/transition/HorizontalTransition.js +6 -0
  347. package/ui/transition/HorizontalTransition.tsx +9 -0
  348. package/ui/transition/Transition.css +3 -0
  349. package/ui/transition/Transition.d.ts +18 -0
  350. package/ui/transition/Transition.js +21 -0
  351. package/ui/transition/Transition.tsx +35 -0
  352. package/ui/transition/VerticalTransition.css +66 -0
  353. package/ui/transition/VerticalTransition.d.ts +6 -0
  354. package/ui/transition/VerticalTransition.js +6 -0
  355. package/ui/transition/VerticalTransition.tsx +9 -0
  356. package/ui/transition/index.d.ts +6 -0
  357. package/ui/transition/index.js +6 -0
  358. package/ui/transition/index.tsx +6 -0
  359. package/ui/transition/util.d.ts +17 -0
  360. package/ui/transition/util.js +6 -0
  361. package/ui/transition/util.tsx +24 -0
  362. package/ui/types.d.ts +9 -0
  363. package/ui/util/context.d.ts +6 -0
  364. package/ui/util/context.js +10 -0
  365. package/ui/util/context.ts +15 -0
  366. package/ui/util/css.d.ts +37 -0
  367. package/ui/util/css.js +63 -0
  368. package/ui/util/css.ts +80 -0
  369. package/ui/util/event.d.ts +2 -0
  370. package/ui/util/event.js +4 -0
  371. package/ui/util/event.ts +4 -0
  372. package/ui/util/focus.d.ts +16 -0
  373. package/ui/util/focus.js +21 -0
  374. package/ui/util/focus.ts +23 -0
  375. package/ui/util/index.d.ts +8 -0
  376. package/ui/util/index.js +8 -0
  377. package/ui/util/index.ts +8 -0
  378. package/ui/util/meta.d.ts +67 -0
  379. package/ui/util/meta.js +33 -0
  380. package/ui/util/meta.ts +97 -0
  381. package/ui/util/notice.d.ts +26 -0
  382. package/ui/util/notice.js +82 -0
  383. package/ui/util/notice.ts +103 -0
  384. package/ui/util/refresh.d.ts +2 -0
  385. package/ui/util/refresh.js +9 -0
  386. package/ui/util/refresh.ts +11 -0
  387. package/ui/util/scroll.d.ts +11 -0
  388. package/ui/util/scroll.js +32 -0
  389. package/ui/util/scroll.ts +40 -0
  390. package/ui/util/state.d.ts +11 -0
  391. package/ui/util/state.js +42 -0
  392. package/ui/util/state.ts +44 -0
  393. package/util/index.d.ts +1 -0
  394. package/util/index.js +1 -0
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getClass, getModuleClass } from "../util/css.js";
3
+ import { ELEMENT_CSS } from "./Element.js";
4
+ import ELEMENTS_CSS from "./Elements.module.css";
5
+ /** Block with element spacing and flex children. */
6
+ export function Elements({ children, ...variants }) {
7
+ return (_jsx("div", { className: getClass(ELEMENT_CSS.element, // Elements has element spacing.
8
+ getModuleClass(ELEMENTS_CSS, "elements", variants)), children: children }));
9
+ }
10
+ export { ELEMENTS_CSS };
@@ -0,0 +1,70 @@
1
+ /** Flex styles reused by a few other elements including <Elements>, <Notice>, <Button>, <InputButton> */
2
+ .elements {
3
+ /* Box */
4
+ && {
5
+ display: flex; /* Raise specificity of this. */
6
+ }
7
+
8
+ /* Contents */
9
+ flex-direction: row;
10
+ gap: var(--elements-gap, var(--spacing-element));
11
+ justify-content: stretch;
12
+ align-items: center;
13
+
14
+ /* Variants */
15
+ &.wrap {
16
+ flex-wrap: wrap;
17
+ }
18
+ &.left {
19
+ justify-content: start;
20
+ }
21
+ &.center {
22
+ justify-content: center;
23
+ }
24
+ &.right {
25
+ justify-content: end;
26
+ }
27
+ &.stretch {
28
+ justify-content: stretch;
29
+ }
30
+ &.reverse {
31
+ flex-direction: row-reverse;
32
+ }
33
+ &.column {
34
+ flex-direction: column;
35
+ justify-content: center;
36
+ align-items: stretch;
37
+
38
+ &.left {
39
+ align-items: start;
40
+ }
41
+ &.center {
42
+ align-items: center;
43
+ }
44
+ &.right {
45
+ align-items: end;
46
+ }
47
+ &.stretch {
48
+ align-items: stretch;
49
+ }
50
+ &.reverse {
51
+ flex-direction: column-reverse;
52
+ }
53
+ }
54
+ &.flush {
55
+ gap: 0;
56
+ }
57
+
58
+ /* Children */
59
+ :where(& > *) {
60
+ flex: var(--grow-normal) 1 auto;
61
+ }
62
+ && > * {
63
+ margin: 0; /* No margins on children (high specificity). */
64
+ }
65
+ && > [data-slot="icon"] {
66
+ inline-size: var(--elements-size-icon, var(--size-icon));
67
+ block-size: var(--elements-size-icon, var(--size-icon));
68
+ flex: none;
69
+ }
70
+ }
@@ -0,0 +1,44 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import { getClass, getModuleClass } from "../util/css.js";
3
+ import { ELEMENT_CSS } from "./Element.js";
4
+ import ELEMENTS_CSS from "./Elements.module.css";
5
+
6
+ /** Variants for elements. */
7
+ export interface ElementsVariants {
8
+ /** Wrap overflowing elements onto the next line (defaults to no wrapping). */
9
+ wrap?: boolean | undefined;
10
+ /** Display the elements as a column (defaults to row). */
11
+ column?: boolean | undefined;
12
+ /** Align the elements to the left (defaults to stretch). */
13
+ left?: boolean | undefined;
14
+ /** Align the elements to the center (defaults to stretch). */
15
+ center?: boolean | undefined;
16
+ /** Align the elements to the right (defaults to stretch). */
17
+ right?: boolean | undefined;
18
+ /** Align the elements stretch (defaults to stretch). */
19
+ stretch?: boolean | undefined;
20
+ /** Remove the gap between elements. */
21
+ flush?: boolean | undefined;
22
+ /** Reverse the order of the elements. */
23
+ reverse?: boolean | undefined;
24
+ }
25
+
26
+ export interface ElementsProps extends ElementsVariants {
27
+ children?: ReactNode | undefined;
28
+ }
29
+
30
+ /** Block with element spacing and flex children. */
31
+ export function Elements({ children, ...variants }: ElementsProps): ReactElement {
32
+ return (
33
+ <div
34
+ className={getClass(
35
+ ELEMENT_CSS.element, // Elements has element spacing.
36
+ getModuleClass(ELEMENTS_CSS, "elements", variants),
37
+ )}
38
+ >
39
+ {children}
40
+ </div>
41
+ );
42
+ }
43
+
44
+ export { ELEMENTS_CSS };
@@ -0,0 +1,6 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ export interface FigureProps {
3
+ children?: ReactNode;
4
+ caption?: ReactNode;
5
+ }
6
+ export declare function Figure({ children, caption }: FigureProps): ReactElement;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import styles from "./Figure.module.css";
3
+ export function Figure({ children, caption }) {
4
+ return (_jsxs("figure", { className: styles.figure, children: [children, caption && _jsx("figcaption", { className: styles.caption, children: caption })] }));
5
+ }
@@ -0,0 +1,27 @@
1
+ .figure,
2
+ .prose figure {
3
+ /* Box */
4
+ position: relative;
5
+ display: block;
6
+ margin-inline: 0;
7
+ margin-block: var(--figure-spacing, var(--spacing-block));
8
+
9
+ /* Psuedo-classes */
10
+ &:first-child {
11
+ margin-block-start: 0;
12
+ }
13
+ &:last-child {
14
+ margin-block-end: 0;
15
+ }
16
+ }
17
+
18
+ .caption,
19
+ .prose figcaption {
20
+ /* Box */
21
+ display: block;
22
+ margin-block-start: var(--caption-gap, var(--spacing-paragraph));
23
+
24
+ /* Style */
25
+ font-size: var(--caption-font-size, var(--size-small));
26
+ color: var(--caption-color, var(--color-quiet));
27
+ }
@@ -0,0 +1,16 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import styles from "./Figure.module.css";
3
+
4
+ export interface FigureProps {
5
+ children?: ReactNode;
6
+ caption?: ReactNode;
7
+ }
8
+
9
+ export function Figure({ children, caption }: FigureProps): ReactElement {
10
+ return (
11
+ <figure className={styles.figure}>
12
+ {children}
13
+ {caption && <figcaption className={styles.caption}>{caption}</figcaption>}
14
+ </figure>
15
+ );
16
+ }
@@ -0,0 +1,6 @@
1
+ import type { ReactNode } from "react";
2
+ export interface HeadingProps {
3
+ level?: "1" | "2" | "3" | "4" | "5" | "6" | 1 | 2 | 3 | 4 | 5 | 6;
4
+ children: ReactNode;
5
+ }
6
+ export declare function Heading({ level, children, ...variants }: HeadingProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getModuleClass } from "../util/css.js";
3
+ import styles from "./Heading.module.css";
4
+ export function Heading({ level = "1", children, ...variants }) {
5
+ const Element = `h${level}`;
6
+ return _jsx(Element, { className: getModuleClass(styles, "heading", variants), children: children });
7
+ }
@@ -0,0 +1,23 @@
1
+ .heading,
2
+ .prose h1 {
3
+ /* Box */
4
+ display: block;
5
+ inline-size: 100%;
6
+ margin-inline: 0;
7
+ margin-block: var(--heading-spacing, var(--spacing-paragraph));
8
+
9
+ /* Style */
10
+ font-family: var(--heading-font, var(--font-body));
11
+ font-weight: var(--heading-weight, var(--weight-strong));
12
+ font-size: var(--heading-font-size, var(--size-xlarge));
13
+ line-height: var(--heading-leading, var(--leading-tight));
14
+ color: var(--heading-color, var(--color-text));
15
+
16
+ /* Psuedo-classes */
17
+ &:first-child {
18
+ margin-block-start: 0;
19
+ }
20
+ &:last-child {
21
+ margin-block-end: 0;
22
+ }
23
+ }
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from "react";
2
+ import { getModuleClass } from "../util/css.js";
3
+ import styles from "./Heading.module.css";
4
+
5
+ export interface HeadingProps {
6
+ level?: "1" | "2" | "3" | "4" | "5" | "6" | 1 | 2 | 3 | 4 | 5 | 6;
7
+ children: ReactNode;
8
+ }
9
+
10
+ export function Heading({ level = "1", children, ...variants }: HeadingProps) {
11
+ const Element: `h${typeof level}` = `h${level}`;
12
+ return <Element className={getModuleClass(styles, "heading", variants)}>{children}</Element>;
13
+ }
@@ -0,0 +1,6 @@
1
+ import type { ReactElement } from "react";
2
+ export interface ImageProps {
3
+ src: string;
4
+ alt?: string;
5
+ }
6
+ export declare function Image({ src, alt }: ImageProps): ReactElement;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from "./Image.module.css";
3
+ export function Image({ src, alt }) {
4
+ return _jsx("img", { src: src, className: styles.image, alt: alt });
5
+ }
@@ -0,0 +1,20 @@
1
+ .image,
2
+ .prose img {
3
+ /* Box */
4
+ display: block;
5
+ width: 100%;
6
+ margin-inline: 0;
7
+ margin-block: var(--image-spacing, var(--spacing-block));
8
+
9
+ /* Style */
10
+ object-position: center center;
11
+ object-fit: cover; /* Don't distort when resized. */
12
+
13
+ /* Psuedo-classes */
14
+ &:first-child {
15
+ margin-block-start: 0;
16
+ }
17
+ &:last-child {
18
+ margin-block-end: 0;
19
+ }
20
+ }
@@ -0,0 +1,11 @@
1
+ import type { ReactElement } from "react";
2
+ import styles from "./Image.module.css";
3
+
4
+ export interface ImageProps {
5
+ src: string;
6
+ alt?: string;
7
+ }
8
+
9
+ export function Image({ src, alt }: ImageProps): ReactElement {
10
+ return <img src={src} className={styles.image} alt={alt} />;
11
+ }
@@ -0,0 +1,6 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ export interface ListProps {
3
+ children: ReactNode[];
4
+ ordered?: boolean;
5
+ }
6
+ export declare function List({ children, ordered }: ListProps): ReactElement;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from "./List.module.css";
3
+ export function List({ children, ordered = false }) {
4
+ const items = children.map((v, i) => _jsx("li", { children: v }, i.toString()));
5
+ return ordered ? _jsx("ol", { className: styles.ordered, children: items }) : _jsx("ul", { className: styles.unordered, children: items });
6
+ }
@@ -0,0 +1,30 @@
1
+ .unordered,
2
+ .ordered,
3
+ .prose ul,
4
+ .prose ol {
5
+ /* Box */
6
+ display: block;
7
+ margin-inline: 0;
8
+ margin-block: var(--list-spacing, var(--spacing-paragraph));
9
+
10
+ /* Typography */
11
+ text-align: left;
12
+
13
+ /* Psuedo-classes */
14
+ &:first-child {
15
+ margin-block-start: 0;
16
+ }
17
+ &:last-child {
18
+ margin-block-end: 0;
19
+ }
20
+ }
21
+
22
+ .unordered,
23
+ .prose ul {
24
+ padding-inline-start: var(--unordered-list-padding-inline-start, 1.125em);
25
+ }
26
+
27
+ .ordered,
28
+ .prose ol {
29
+ padding-inline-start: var(--ordered-list-padding-inline-start, 1.8em);
30
+ }
@@ -0,0 +1,12 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import styles from "./List.module.css";
3
+
4
+ export interface ListProps {
5
+ children: ReactNode[];
6
+ ordered?: boolean;
7
+ }
8
+
9
+ export function List({ children, ordered = false }: ListProps): ReactElement {
10
+ const items = children.map((v, i) => <li key={i.toString()}>{v}</li>);
11
+ return ordered ? <ol className={styles.ordered}>{items}</ol> : <ul className={styles.unordered}>{items}</ul>;
12
+ }
@@ -0,0 +1,15 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import PARAGRAPH_CSS from "./Paragraph.module.css";
3
+ export interface ParagraphProps {
4
+ children?: ReactNode;
5
+ /** Align the paragraph to the right. */
6
+ right?: boolean | undefined;
7
+ /** Align the paragraph to the center. */
8
+ center?: boolean | undefined;
9
+ /** Align the paragraph to the left. */
10
+ left?: boolean | undefined;
11
+ /** Give the paragraph more space. */
12
+ spacious?: boolean | undefined;
13
+ }
14
+ export declare function Paragraph({ children, ...variants }: ParagraphProps): ReactElement;
15
+ export { PARAGRAPH_CSS };
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getModuleClass } from "../util/css.js";
3
+ import PARAGRAPH_CSS from "./Paragraph.module.css";
4
+ export function Paragraph({ children, ...variants }) {
5
+ return _jsx("p", { className: getModuleClass(PARAGRAPH_CSS, "paragraph", variants), children: children });
6
+ }
7
+ export { PARAGRAPH_CSS };
@@ -0,0 +1,36 @@
1
+ .paragraph,
2
+ .prose p {
3
+ /* Low-specificity defaults */
4
+ :where(&) {
5
+ /* Typography */
6
+ text-align: left;
7
+ }
8
+
9
+ /* Box */
10
+ display: block;
11
+ inline-size: 100%;
12
+ margin-inline: 0;
13
+ margin-block: var(--paragraph-spacing, var(--spacing-paragraph));
14
+
15
+ /* Variants */
16
+ &.left {
17
+ text-align: left;
18
+ }
19
+ &.center {
20
+ text-align: center;
21
+ }
22
+ &.right {
23
+ text-align: right;
24
+ }
25
+ &.spacious {
26
+ margin-block: var(--paragraph-spacious-spacing, var(--spacing-spacious));
27
+ }
28
+
29
+ /* Psuedo-classes */
30
+ &:first-child {
31
+ margin-block-start: 0;
32
+ }
33
+ &:last-child {
34
+ margin-block-end: 0;
35
+ }
36
+ }
@@ -0,0 +1,21 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import { getModuleClass } from "../util/css.js";
3
+ import PARAGRAPH_CSS from "./Paragraph.module.css";
4
+
5
+ export interface ParagraphProps {
6
+ children?: ReactNode;
7
+ /** Align the paragraph to the right. */
8
+ right?: boolean | undefined;
9
+ /** Align the paragraph to the center. */
10
+ center?: boolean | undefined;
11
+ /** Align the paragraph to the left. */
12
+ left?: boolean | undefined;
13
+ /** Give the paragraph more space. */
14
+ spacious?: boolean | undefined;
15
+ }
16
+
17
+ export function Paragraph({ children, ...variants }: ParagraphProps): ReactElement {
18
+ return <p className={getModuleClass(PARAGRAPH_CSS, "paragraph", variants)}>{children}</p>;
19
+ }
20
+
21
+ export { PARAGRAPH_CSS };
@@ -0,0 +1,5 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ export interface PreformattedProps {
3
+ children?: ReactNode;
4
+ }
5
+ export declare function Preformatted({ children }: PreformattedProps): ReactElement;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from "./Preformatted.module.css";
3
+ export function Preformatted({ children }) {
4
+ return _jsx("pre", { className: styles.preformatted, children: children });
5
+ }
@@ -0,0 +1,23 @@
1
+ .preformatted,
2
+ .prose pre {
3
+ /* Box */
4
+ display: block;
5
+ margin-inline: 0;
6
+ margin-block: var(--preformatted-spacing, var(--spacing-block));
7
+ padding: var(--preformatted-padding, var(--spacing-inline));
8
+
9
+ /* Style */
10
+ font-family: var(--preformatted-font, var(--font-code));
11
+ color: var(--preformatted-color-text, var(--color-text));
12
+ background-color: var(--preformatted-color-bg, var(--color-surface));
13
+ border: var(--preformatted-border, var(--border-block)) solid var(--preformatted-color-border, var(--color-surface));
14
+ tab-size: 2;
15
+
16
+ /* Psuedo-classes */
17
+ &:first-child {
18
+ margin-block-start: 0;
19
+ }
20
+ &:last-child {
21
+ margin-block-end: 0;
22
+ }
23
+ }
@@ -0,0 +1,10 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import styles from "./Preformatted.module.css";
3
+
4
+ export interface PreformattedProps {
5
+ children?: ReactNode;
6
+ }
7
+
8
+ export function Preformatted({ children }: PreformattedProps): ReactElement {
9
+ return <pre className={styles.preformatted}>{children}</pre>;
10
+ }
@@ -0,0 +1,6 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ export interface ProseProps {
3
+ children?: ReactNode;
4
+ }
5
+ /** A section of longform text containing lots of `<p>` or `<ul>` style elements. */
6
+ export declare function Prose({ children }: ProseProps): ReactElement;
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import codeStyles from "../inline/Code.module.css";
3
+ import deletedStyles from "../inline/Deleted.module.css";
4
+ import emphasisStyles from "../inline/Emphasis.module.css";
5
+ import insertedStyles from "../inline/Inserted.module.css";
6
+ import linkStyles from "../inline/Link.module.css";
7
+ import markStyles from "../inline/Mark.module.css";
8
+ import smallStyles from "../inline/Small.module.css";
9
+ import strongStyles from "../inline/Strong.module.css";
10
+ import subscriptStyles from "../inline/Subscript.module.css";
11
+ import superscriptStyles from "../inline/Superscript.module.css";
12
+ import { getClass } from "../util/css.js";
13
+ import addressStyles from "./Address.module.css";
14
+ import blockquoteStyles from "./Blockquote.module.css";
15
+ import dividerStyles from "./Divider.module.css";
16
+ import figureStyles from "./Figure.module.css";
17
+ import headingStyles from "./Heading.module.css";
18
+ import imageStyles from "./Image.module.css";
19
+ import listStyles from "./List.module.css";
20
+ import paragraphStyles from "./Paragraph.module.css";
21
+ import preformattedStyles from "./Preformatted.module.css";
22
+ import subheadingStyles from "./Subheading.module.css";
23
+ import tableStyles from "./Table.module.css";
24
+ const PROSE_STYLES = getClass(paragraphStyles.prose, headingStyles.prose, subheadingStyles.prose, addressStyles.prose, blockquoteStyles.prose, codeStyles.prose, deletedStyles.prose, emphasisStyles.prose, figureStyles.prose, imageStyles.prose, insertedStyles.prose, listStyles.prose, linkStyles.prose, markStyles.prose, preformattedStyles.prose, smallStyles.prose, strongStyles.prose, subscriptStyles.prose, superscriptStyles.prose, tableStyles.prose, dividerStyles.prose);
25
+ /** A section of longform text containing lots of `<p>` or `<ul>` style elements. */
26
+ export function Prose({ children }) {
27
+ return _jsx("div", { className: PROSE_STYLES, children: children });
28
+ }
@@ -0,0 +1,15 @@
1
+ .prose {
2
+ /* Box */
3
+ position: relative;
4
+ display: block;
5
+ margin-inline: 0;
6
+ margin-block: var(--prose-spacing, var(--spacing-block));
7
+
8
+ /* Psuedo-classes */
9
+ &:first-child {
10
+ margin-block-start: 0;
11
+ }
12
+ &:last-child {
13
+ margin-block-end: 0;
14
+ }
15
+ }
@@ -0,0 +1,56 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import codeStyles from "../inline/Code.module.css";
3
+ import deletedStyles from "../inline/Deleted.module.css";
4
+ import emphasisStyles from "../inline/Emphasis.module.css";
5
+ import insertedStyles from "../inline/Inserted.module.css";
6
+ import linkStyles from "../inline/Link.module.css";
7
+ import markStyles from "../inline/Mark.module.css";
8
+ import smallStyles from "../inline/Small.module.css";
9
+ import strongStyles from "../inline/Strong.module.css";
10
+ import subscriptStyles from "../inline/Subscript.module.css";
11
+ import superscriptStyles from "../inline/Superscript.module.css";
12
+ import { getClass } from "../util/css.js";
13
+ import addressStyles from "./Address.module.css";
14
+ import blockquoteStyles from "./Blockquote.module.css";
15
+ import dividerStyles from "./Divider.module.css";
16
+ import figureStyles from "./Figure.module.css";
17
+ import headingStyles from "./Heading.module.css";
18
+ import imageStyles from "./Image.module.css";
19
+ import listStyles from "./List.module.css";
20
+ import paragraphStyles from "./Paragraph.module.css";
21
+ import preformattedStyles from "./Preformatted.module.css";
22
+ import subheadingStyles from "./Subheading.module.css";
23
+ import tableStyles from "./Table.module.css";
24
+
25
+ const PROSE_STYLES = getClass(
26
+ paragraphStyles.prose,
27
+ headingStyles.prose,
28
+ subheadingStyles.prose,
29
+ addressStyles.prose,
30
+ blockquoteStyles.prose,
31
+ codeStyles.prose,
32
+ deletedStyles.prose,
33
+ emphasisStyles.prose,
34
+ figureStyles.prose,
35
+ imageStyles.prose,
36
+ insertedStyles.prose,
37
+ listStyles.prose,
38
+ linkStyles.prose,
39
+ markStyles.prose,
40
+ preformattedStyles.prose,
41
+ smallStyles.prose,
42
+ strongStyles.prose,
43
+ subscriptStyles.prose,
44
+ superscriptStyles.prose,
45
+ tableStyles.prose,
46
+ dividerStyles.prose,
47
+ );
48
+
49
+ export interface ProseProps {
50
+ children?: ReactNode;
51
+ }
52
+
53
+ /** A section of longform text containing lots of `<p>` or `<ul>` style elements. */
54
+ export function Prose({ children }: ProseProps): ReactElement {
55
+ return <div className={PROSE_STYLES}>{children}</div>;
56
+ }
@@ -0,0 +1,28 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ export interface SectionProps {
3
+ children?: ReactNode;
4
+ /** Constrain the section to narrow width (defaults to full-width). */
5
+ narrow?: boolean;
6
+ /** Constrain the section to wide width (defaults to full-width). */
7
+ wide?: boolean;
8
+ /** Constrain the section to spacious spacing (defaults to full-width). */
9
+ spacious?: boolean;
10
+ }
11
+ export interface HeaderProps extends SectionProps {
12
+ }
13
+ /** A single HTML `<header>` with correct spacing. */
14
+ export declare function Header(props: HeaderProps): ReactElement;
15
+ /** A single HTML `<section>` with correct spacing. */
16
+ export declare function Section(props: SectionProps): ReactElement;
17
+ export interface NavigationProps extends SectionProps {
18
+ }
19
+ /** A single HTML `<nav>` with correct spacing. */
20
+ export declare function Navigation(props: NavigationProps): ReactElement;
21
+ export interface AsideProps extends SectionProps {
22
+ }
23
+ /** A single HTML `<aside>` with correct spacing. */
24
+ export declare function Aside(props: AsideProps): ReactElement;
25
+ export interface FooterProps extends SectionProps {
26
+ }
27
+ /** A single HTML `<footer>` with correct spacing. */
28
+ export declare function Footer(props: FooterProps): ReactElement;
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getModuleClass } from "../util/css.js";
3
+ import styles from "./Section.module.css";
4
+ function renderSection(Component, { children, ...variants }) {
5
+ return _jsx(Component, { className: getModuleClass(styles, "section", variants), children: children });
6
+ }
7
+ /** A single HTML `<header>` with correct spacing. */
8
+ export function Header(props) {
9
+ return renderSection("header", props);
10
+ }
11
+ /** A single HTML `<section>` with correct spacing. */
12
+ export function Section(props) {
13
+ return renderSection("section", props);
14
+ }
15
+ /** A single HTML `<nav>` with correct spacing. */
16
+ export function Navigation(props) {
17
+ return renderSection("nav", props);
18
+ }
19
+ /** A single HTML `<aside>` with correct spacing. */
20
+ export function Aside(props) {
21
+ return renderSection("aside", props);
22
+ }
23
+ /** A single HTML `<footer>` with correct spacing. */
24
+ export function Footer(props) {
25
+ return renderSection("footer", props);
26
+ }