@trebired/frontend 28.1.0 → 29.0.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 (280) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +80 -6
  3. package/dist/config/default/config.d.ts.map +1 -1
  4. package/dist/config/default/config.js +2 -0
  5. package/dist/config/default/config.js.map +1 -1
  6. package/dist/config/index.d.ts +1 -1
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js.map +1 -1
  9. package/dist/config/links.d.ts +5 -0
  10. package/dist/config/links.d.ts.map +1 -0
  11. package/dist/config/links.js +134 -0
  12. package/dist/config/links.js.map +1 -0
  13. package/dist/config/normalize.d.ts.map +1 -1
  14. package/dist/config/normalize.js +3 -0
  15. package/dist/config/normalize.js.map +1 -1
  16. package/dist/config/scss.d.ts.map +1 -1
  17. package/dist/config/scss.js +3 -1
  18. package/dist/config/scss.js.map +1 -1
  19. package/dist/config/types/language.d.ts +16 -0
  20. package/dist/config/types/language.d.ts.map +1 -0
  21. package/dist/config/types/language.js +2 -0
  22. package/dist/config/types/language.js.map +1 -0
  23. package/dist/config/types/links.d.ts +71 -0
  24. package/dist/config/types/links.d.ts.map +1 -0
  25. package/dist/config/types/links.js +2 -0
  26. package/dist/config/types/links.js.map +1 -0
  27. package/dist/config/types.d.ts +6 -16
  28. package/dist/config/types.d.ts.map +1 -1
  29. package/dist/config/typography.d.ts +2 -1
  30. package/dist/config/typography.d.ts.map +1 -1
  31. package/dist/config/typography.js +14 -1
  32. package/dist/config/typography.js.map +1 -1
  33. package/dist/entries/root/02.d.ts +1 -1
  34. package/dist/entries/root/02.d.ts.map +1 -1
  35. package/dist/entries/root/02.js +1 -1
  36. package/dist/entries/root/02.js.map +1 -1
  37. package/dist/hollow/bitmap.d.ts +5 -0
  38. package/dist/hollow/bitmap.d.ts.map +1 -0
  39. package/dist/hollow/bitmap.js +45 -0
  40. package/dist/hollow/bitmap.js.map +1 -0
  41. package/dist/hollow/component.d.ts +18 -0
  42. package/dist/hollow/component.d.ts.map +1 -0
  43. package/dist/hollow/component.js +44 -0
  44. package/dist/hollow/component.js.map +1 -0
  45. package/dist/hollow/index.d.ts +7 -0
  46. package/dist/hollow/index.d.ts.map +1 -0
  47. package/dist/hollow/index.js +4 -0
  48. package/dist/hollow/index.js.map +1 -0
  49. package/dist/hollow/print.d.ts +19 -0
  50. package/dist/hollow/print.d.ts.map +1 -0
  51. package/dist/hollow/print.js +103 -0
  52. package/dist/hollow/print.js.map +1 -0
  53. package/dist/hollow/shapes.d.ts +11 -0
  54. package/dist/hollow/shapes.d.ts.map +1 -0
  55. package/dist/hollow/shapes.js +65 -0
  56. package/dist/hollow/shapes.js.map +1 -0
  57. package/dist/hollow/styles/index.scss +56 -0
  58. package/dist/indent/styles/index.scss +24 -0
  59. package/dist/inputs/advanced/input/styles/field.scss +2 -2
  60. package/dist/inputs/styles/field.scss +14 -3
  61. package/dist/language/messages.d.ts.map +1 -1
  62. package/dist/language/messages.js +8 -0
  63. package/dist/language/messages.js.map +1 -1
  64. package/dist/layer/index.d.ts +2 -1
  65. package/dist/layer/index.d.ts.map +1 -1
  66. package/dist/layer/index.js +6 -2
  67. package/dist/layer/index.js.map +1 -1
  68. package/dist/layout/components/site/footer.d.ts +3 -17
  69. package/dist/layout/components/site/footer.d.ts.map +1 -1
  70. package/dist/layout/components/site/footer.js +15 -15
  71. package/dist/layout/components/site/footer.js.map +1 -1
  72. package/dist/layout/components/site/header/groups.d.ts +44 -0
  73. package/dist/layout/components/site/header/groups.d.ts.map +1 -0
  74. package/dist/layout/components/site/header/groups.js +92 -0
  75. package/dist/layout/components/site/header/groups.js.map +1 -0
  76. package/dist/layout/components/site/header/search.d.ts +11 -0
  77. package/dist/layout/components/site/header/search.d.ts.map +1 -0
  78. package/dist/layout/components/site/header/search.js +81 -0
  79. package/dist/layout/components/site/header/search.js.map +1 -0
  80. package/dist/layout/components/site/header/sheet.d.ts +14 -0
  81. package/dist/layout/components/site/header/sheet.d.ts.map +1 -0
  82. package/dist/layout/components/site/header/sheet.js +88 -0
  83. package/dist/layout/components/site/header/sheet.js.map +1 -0
  84. package/dist/layout/components/site/header.d.ts +1 -1
  85. package/dist/layout/components/site/header.d.ts.map +1 -1
  86. package/dist/layout/components/site/header.js +34 -43
  87. package/dist/layout/components/site/header.js.map +1 -1
  88. package/dist/layout/components/site/link.d.ts +8 -3
  89. package/dist/layout/components/site/link.d.ts.map +1 -1
  90. package/dist/layout/components/site/link.js +16 -8
  91. package/dist/layout/components/site/link.js.map +1 -1
  92. package/dist/layout/header/tone.d.ts.map +1 -1
  93. package/dist/layout/header/tone.js +4 -2
  94. package/dist/layout/header/tone.js.map +1 -1
  95. package/dist/layout/index.d.ts +2 -0
  96. package/dist/layout/index.d.ts.map +1 -1
  97. package/dist/layout/index.js +1 -0
  98. package/dist/layout/index.js.map +1 -1
  99. package/dist/layout/links.d.ts +29 -0
  100. package/dist/layout/links.d.ts.map +1 -0
  101. package/dist/layout/links.js +77 -0
  102. package/dist/layout/links.js.map +1 -0
  103. package/dist/layout/scroll.d.ts.map +1 -1
  104. package/dist/layout/scroll.js +10 -0
  105. package/dist/layout/scroll.js.map +1 -1
  106. package/dist/layout/styles/index.scss +1 -0
  107. package/dist/layout/styles/site/footer.scss +8 -1
  108. package/dist/layout/styles/site/header.scss +1 -3
  109. package/dist/layout/styles/site/menu.scss +17 -3
  110. package/dist/layout/styles/site/sheet.scss +196 -0
  111. package/dist/popover/index.d.ts.map +1 -1
  112. package/dist/popover/index.js +5 -4
  113. package/dist/popover/index.js.map +1 -1
  114. package/dist/popover/styles/index.scss +1 -1
  115. package/dist/primitives/components/prose.d.ts.map +1 -1
  116. package/dist/primitives/components/prose.js +4 -3
  117. package/dist/primitives/components/prose.js.map +1 -1
  118. package/dist/primitives/styles/_link.scss +22 -8
  119. package/dist/reveal/index.d.ts.map +1 -1
  120. package/dist/reveal/index.js +41 -4
  121. package/dist/reveal/index.js.map +1 -1
  122. package/dist/reveal/styles/index.scss +10 -20
  123. package/dist/search/site/build.d.ts +33 -0
  124. package/dist/search/site/build.d.ts.map +1 -0
  125. package/dist/search/site/build.js +27 -0
  126. package/dist/search/site/build.js.map +1 -0
  127. package/dist/search/site/extract.d.ts +13 -0
  128. package/dist/search/site/extract.d.ts.map +1 -0
  129. package/dist/search/site/extract.js +82 -0
  130. package/dist/search/site/extract.js.map +1 -0
  131. package/dist/search/site/load.d.ts +4 -0
  132. package/dist/search/site/load.d.ts.map +1 -0
  133. package/dist/search/site/load.js +25 -0
  134. package/dist/search/site/load.js.map +1 -0
  135. package/dist/search/site/query.d.ts +31 -0
  136. package/dist/search/site/query.d.ts.map +1 -0
  137. package/dist/search/site/query.js +125 -0
  138. package/dist/search/site/query.js.map +1 -0
  139. package/dist/server/index.d.ts +2 -0
  140. package/dist/server/index.d.ts.map +1 -1
  141. package/dist/server/index.js +1 -0
  142. package/dist/server/index.js.map +1 -1
  143. package/dist/src/config/default/config.d.ts.map +1 -1
  144. package/dist/src/config/default/config.js +2 -0
  145. package/dist/src/config/default/config.js.map +1 -1
  146. package/dist/src/config/index.d.ts +1 -1
  147. package/dist/src/config/index.d.ts.map +1 -1
  148. package/dist/src/config/index.js.map +1 -1
  149. package/dist/src/config/links.d.ts +5 -0
  150. package/dist/src/config/links.d.ts.map +1 -0
  151. package/dist/src/config/links.js +134 -0
  152. package/dist/src/config/links.js.map +1 -0
  153. package/dist/src/config/normalize.d.ts.map +1 -1
  154. package/dist/src/config/normalize.js +3 -0
  155. package/dist/src/config/normalize.js.map +1 -1
  156. package/dist/src/config/scss.d.ts.map +1 -1
  157. package/dist/src/config/scss.js +3 -1
  158. package/dist/src/config/scss.js.map +1 -1
  159. package/dist/src/config/types/language.d.ts +16 -0
  160. package/dist/src/config/types/language.d.ts.map +1 -0
  161. package/dist/src/config/types/language.js +2 -0
  162. package/dist/src/config/types/language.js.map +1 -0
  163. package/dist/src/config/types/links.d.ts +71 -0
  164. package/dist/src/config/types/links.d.ts.map +1 -0
  165. package/dist/src/config/types/links.js +2 -0
  166. package/dist/src/config/types/links.js.map +1 -0
  167. package/dist/src/config/types.d.ts +6 -16
  168. package/dist/src/config/types.d.ts.map +1 -1
  169. package/dist/src/config/typography.d.ts +2 -1
  170. package/dist/src/config/typography.d.ts.map +1 -1
  171. package/dist/src/config/typography.js +14 -1
  172. package/dist/src/config/typography.js.map +1 -1
  173. package/dist/src/entries/root/02.d.ts +1 -1
  174. package/dist/src/entries/root/02.d.ts.map +1 -1
  175. package/dist/src/entries/root/02.js +1 -1
  176. package/dist/src/entries/root/02.js.map +1 -1
  177. package/dist/src/hollow/bitmap.d.ts +5 -0
  178. package/dist/src/hollow/bitmap.d.ts.map +1 -0
  179. package/dist/src/hollow/bitmap.js +45 -0
  180. package/dist/src/hollow/bitmap.js.map +1 -0
  181. package/dist/src/hollow/component.d.ts +18 -0
  182. package/dist/src/hollow/component.d.ts.map +1 -0
  183. package/dist/src/hollow/component.js +44 -0
  184. package/dist/src/hollow/component.js.map +1 -0
  185. package/dist/src/hollow/index.d.ts +7 -0
  186. package/dist/src/hollow/index.d.ts.map +1 -0
  187. package/dist/src/hollow/index.js +4 -0
  188. package/dist/src/hollow/index.js.map +1 -0
  189. package/dist/src/hollow/print.d.ts +19 -0
  190. package/dist/src/hollow/print.d.ts.map +1 -0
  191. package/dist/src/hollow/print.js +103 -0
  192. package/dist/src/hollow/print.js.map +1 -0
  193. package/dist/src/hollow/shapes.d.ts +11 -0
  194. package/dist/src/hollow/shapes.d.ts.map +1 -0
  195. package/dist/src/hollow/shapes.js +65 -0
  196. package/dist/src/hollow/shapes.js.map +1 -0
  197. package/dist/src/language/messages.d.ts.map +1 -1
  198. package/dist/src/language/messages.js +8 -0
  199. package/dist/src/language/messages.js.map +1 -1
  200. package/dist/src/layer/index.d.ts +2 -1
  201. package/dist/src/layer/index.d.ts.map +1 -1
  202. package/dist/src/layer/index.js +6 -2
  203. package/dist/src/layer/index.js.map +1 -1
  204. package/dist/src/layout/components/site/footer.d.ts +3 -17
  205. package/dist/src/layout/components/site/footer.d.ts.map +1 -1
  206. package/dist/src/layout/components/site/footer.js +15 -15
  207. package/dist/src/layout/components/site/footer.js.map +1 -1
  208. package/dist/src/layout/components/site/header/groups.d.ts +44 -0
  209. package/dist/src/layout/components/site/header/groups.d.ts.map +1 -0
  210. package/dist/src/layout/components/site/header/groups.js +92 -0
  211. package/dist/src/layout/components/site/header/groups.js.map +1 -0
  212. package/dist/src/layout/components/site/header/search.d.ts +11 -0
  213. package/dist/src/layout/components/site/header/search.d.ts.map +1 -0
  214. package/dist/src/layout/components/site/header/search.js +81 -0
  215. package/dist/src/layout/components/site/header/search.js.map +1 -0
  216. package/dist/src/layout/components/site/header/sheet.d.ts +14 -0
  217. package/dist/src/layout/components/site/header/sheet.d.ts.map +1 -0
  218. package/dist/src/layout/components/site/header/sheet.js +88 -0
  219. package/dist/src/layout/components/site/header/sheet.js.map +1 -0
  220. package/dist/src/layout/components/site/header.d.ts +1 -1
  221. package/dist/src/layout/components/site/header.d.ts.map +1 -1
  222. package/dist/src/layout/components/site/header.js +34 -43
  223. package/dist/src/layout/components/site/header.js.map +1 -1
  224. package/dist/src/layout/components/site/link.d.ts +8 -3
  225. package/dist/src/layout/components/site/link.d.ts.map +1 -1
  226. package/dist/src/layout/components/site/link.js +16 -8
  227. package/dist/src/layout/components/site/link.js.map +1 -1
  228. package/dist/src/layout/header/tone.d.ts.map +1 -1
  229. package/dist/src/layout/header/tone.js +4 -2
  230. package/dist/src/layout/header/tone.js.map +1 -1
  231. package/dist/src/layout/index.d.ts +2 -0
  232. package/dist/src/layout/index.d.ts.map +1 -1
  233. package/dist/src/layout/index.js +1 -0
  234. package/dist/src/layout/index.js.map +1 -1
  235. package/dist/src/layout/links.d.ts +29 -0
  236. package/dist/src/layout/links.d.ts.map +1 -0
  237. package/dist/src/layout/links.js +77 -0
  238. package/dist/src/layout/links.js.map +1 -0
  239. package/dist/src/layout/scroll.d.ts.map +1 -1
  240. package/dist/src/layout/scroll.js +10 -0
  241. package/dist/src/layout/scroll.js.map +1 -1
  242. package/dist/src/popover/index.d.ts.map +1 -1
  243. package/dist/src/popover/index.js +5 -4
  244. package/dist/src/popover/index.js.map +1 -1
  245. package/dist/src/primitives/components/prose.d.ts.map +1 -1
  246. package/dist/src/primitives/components/prose.js +4 -3
  247. package/dist/src/primitives/components/prose.js.map +1 -1
  248. package/dist/src/reveal/index.d.ts.map +1 -1
  249. package/dist/src/reveal/index.js +41 -4
  250. package/dist/src/reveal/index.js.map +1 -1
  251. package/dist/src/search/site/build.d.ts +33 -0
  252. package/dist/src/search/site/build.d.ts.map +1 -0
  253. package/dist/src/search/site/build.js +27 -0
  254. package/dist/src/search/site/build.js.map +1 -0
  255. package/dist/src/search/site/extract.d.ts +13 -0
  256. package/dist/src/search/site/extract.d.ts.map +1 -0
  257. package/dist/src/search/site/extract.js +82 -0
  258. package/dist/src/search/site/extract.js.map +1 -0
  259. package/dist/src/search/site/load.d.ts +4 -0
  260. package/dist/src/search/site/load.d.ts.map +1 -0
  261. package/dist/src/search/site/load.js +25 -0
  262. package/dist/src/search/site/load.js.map +1 -0
  263. package/dist/src/search/site/query.d.ts +31 -0
  264. package/dist/src/search/site/query.d.ts.map +1 -0
  265. package/dist/src/search/site/query.js +125 -0
  266. package/dist/src/search/site/query.js.map +1 -0
  267. package/dist/src/server/index.d.ts +2 -0
  268. package/dist/src/server/index.d.ts.map +1 -1
  269. package/dist/src/server/index.js +1 -0
  270. package/dist/src/server/index.js.map +1 -1
  271. package/dist/src/tooltip/index.d.ts.map +1 -1
  272. package/dist/src/tooltip/index.js +2 -1
  273. package/dist/src/tooltip/index.js.map +1 -1
  274. package/dist/styles/tokens.scss +1 -0
  275. package/dist/styles/utils/_tone.scss +2 -0
  276. package/dist/styles/utils/text/core.scss +25 -0
  277. package/dist/tooltip/index.d.ts.map +1 -1
  278. package/dist/tooltip/index.js +2 -1
  279. package/dist/tooltip/index.js.map +1 -1
  280. package/package.json +10 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # Changelog
2
2
 
3
+ ## 29.0.0
4
+
5
+ **Breaking: the site chrome reads its links from the config.** An application declares every link once under `links` in the frontend config: a key, an `href`, the `site` a path belongs to and whether it is `external`, grouped into `categories` and listed per site in `sets`, with labels, descriptions and headings per locale in `messages`. `SiteHeader`, its sitemap sheet and `SiteFooter` read that declaration, so a link is labelled, targeted and marked the same way wherever it appears. `SiteHeader` no longer takes `links`; `SiteFooter` no longer takes `columns`, and its `site` band no longer takes `links`. Hand the config to `configureSiteLinks(links, { set, origins })` in the server and client entries.
6
+
7
+ - Added external links. A link with `external: true` opens in a new tab with `rel="noopener noreferrer"`, never soft-navigates and carries the external-link icon after its label in the bar, the sheet, the mobile menu and the footer. `links.icon` replaces the icon.
8
+ - Added the footer's note links. A set's `footer.note` links sit beside the footer's `note`.
9
+ - Added links across sites. A link whose `site` is not the rendering set's own takes that site's origin from `origins` and hands the reader's locale over.
10
+ - Added validation of the links config when it is read: a key no link defines, a missing label in any locale and a header group with neither links nor the sitemap are refused with the path that is wrong.
11
+ - Removed `node` and `active` from a site link. A header link is a link from the config; it cannot be replaced by arbitrary markup or forced current.
12
+ - Added `@trebired/frontend/hollow`. `HollowText` prints outlined text with riso shapes inside its letters, coloured by an `inks` pair or by the nearest `HollowPalette`; the print is sized in `em`, so the server markup carries it on the first paint, and each layer is swapped for a cached bitmap after hydration. `seeded()` and `scatter()` export the shape generator for prints that should match it. The print comes from `@trebired/overprint`, an optional peer dependency an application installs only when it imports the subpath.
13
+ - Fixed selected outline text losing its outline. `tbf-text-outline` keeps its outline while selected and only the outline takes the selection colour; `design.semantics.selection.bg` colours it when set.
14
+ - Added scroll restoration on reload and back/forward navigation. The scroll boot script restores the reader's position itself once the document is parsed, with the page hidden until then, instead of letting the browser restore it against a page still parsing and correct it with a visible jump. The header tone script waits for the page to show before it measures.
15
+ - Changed scroll reveals to start from server markup that is visible. A target already on screen or above it when the runtime binds is shown without a transition, targets reached by a soft navigation are shown the same way, and only what is still below the fold is hidden. Reveal motion runs only for readers without `prefers-reduced-motion`. The root marker is now `data-tbf-reveal-root="live"`.
16
+ - Changed tooltips to take the tone of the element that opened them, as popovers already did.
17
+ - Added external short-form prose links. `[GitHub](https://github.com/Trebired)` opens in a new tab like the comment pair with `tab`.
18
+ - Changed the text link's underline to scale with its text: the offset, the radius and the thickness are in `em`, with a 1px minimum. The link shows the pointer cursor, and its font weight, letter spacing and case tokens no longer outrank utility classes.
19
+ - Changed a sheet entry to be one text link: the whole entry carries the link's colour and states, its label and description inside it.
20
+
21
+ ## 28.2.0
22
+
23
+ - Changed `SiteHeader` groups to open the header's sheet instead of a popover. The sheet is a band under the bar, as wide as the header, painted with the bar's surface and following its tone, with its content on the bar's gutter. It opens on hover and on press, closes when the pointer leaves the header, on a second press, on Escape, on a press or focus outside the header and when a link in it is chosen, and moves focus to its first link when opened from the keyboard. Its layout has no tokens and is the same in every application.
24
+ - Added nested groups and link descriptions. A group whose children are groups lays out in the sheet as columns, each under an `h5`; a link's `description` is printed as one line under its label. The mobile menu shows the same groups as disclosures with the same headings and without the descriptions.
25
+ - Added site search. `createSiteSearchIndex()` in `@trebired/frontend/server` reads each language's rendered pages into `tbf-search/<locale>.json` at build time, taking only the page's own content. A `SiteHeader` group with `search: true` shows a search field in its sheet and in the mobile menu; it loads the reader's language on first focus, matches every word ignoring accents and case, ranks titles over headings over text, links a heading match to its section and marks the matched words in a snippet. `SiteHeader` takes `lang` for the language it is rendered in.
26
+ - Changed the indent to fit its text. `typography.indent.size` and `flow` now name the step for body text under an `h2`; the indent scales by the size of the text it moves and by the square root of the size of the largest heading in its block, so small text under a small title steps in a little and a lead under a page title steps in more. The configuration is unchanged. Browsers that cannot divide lengths in `calc()` keep the fixed step.
27
+ - Fixed a group's label in the mobile menu standing out from the links around it. It was inset by its own padding and printed in the full text colour; it is now the same text link as every other entry, muted, on the same edge, with the same hover and active states.
28
+ - Added the tone's `ground`, the background of whatever tone region an element sits in: the page by default and the ink inside any dark region, set by `--tbf-dark-ground` when an application wants another. The site header, its sheet and mobile menu, the inverse footer and popovers paint with it, so chrome has no background system of its own; `components.shell.header.rootBgDark` is gone, and a dark header takes the ink like every dark band. A popover takes the tone of the element that opened it, so one opened from a dark header is dark although it is portaled out of it.
29
+ - Changed the sheet's columns to wrap at four per row, so a group of more than four groups fills rows instead of narrowing, and capped the sheet at the window's height, scrolling inside it, so a long one never runs past the screen. The sheet opens at its full height behind a wipe instead of growing from nothing, so no scrollbar flashes while it opens. A column's links stop at the height of four and scroll with the `tbf-scroll-min` scrollbar, so one long group no longer sets the height of its whole row.
30
+ - Changed a header group to never show as current. A group is a menu, not a page: it lights up when it is hovered or open, and a group holding every page no longer looks active on all of them.
31
+ - Changed the input to ease into focus. Its outline is always drawn, transparent at rest, so focus fades the ring in and settles it inward instead of snapping it on; border, background and colour changes ease the same way.
32
+ - Added `primitives.input.root.bg` and `primitives.input.root.border`. The input reads them before its defaults, so an application can give every input its own background and border from config.
33
+ - Changed a link whose page is current to light up a text link inside it, as hovering it already did.
34
+ - Fixed popovers placed partly off screen near the right edge. Placement measured the panel while its opening scale shrank it and against a viewport that included the scrollbar; it now uses the panel's layout size and the document's client width.
35
+
3
36
  ## 28.1.0
4
37
 
5
38
  - The indent reaches past documents. `typography.indent.flow` steps in every paragraph and quote that follows a heading among the same siblings, so a band, a card or a hero indents its text under its title the way a document section does without wearing a class. It is zero by default, which leaves every existing page as it was; set it to the indent step, `token.gap("md")`, to turn it on. Only text moves: a grid, a figure, a button or a wrapper after a heading stays on the heading's edge, a document, whose body already wears `tbf-indent`, is not indented twice, and centered text (`tbf-text-center`, a centered column, the error page) is left alone so it stays centered.
package/README.md CHANGED
@@ -109,11 +109,13 @@ meta: {
109
109
  }
110
110
  ```
111
111
 
112
- It returns `{ bootScripts, bodyScripts }`: the head scripts that restore the scroll state and the reader's locale, and the body script that gives the header its tone before the first paint. `scroll` and `header` are on unless passed `false`, and `locale` is given by a site that has one. Nothing else has to be arranged by hand.
112
+ It returns `{ bootScripts, bodyScripts }`: the head scripts that restore the scroll state and the reader's locale, and the body script that gives the header its tone before the first paint. On a reload or a back/forward navigation the scroll script also restores the reader's position itself: the browser would restore it against the first layout of a page that is still parsing and correct it when loading ends, a visible jump on a long page, so the script switches that navigation to manual restoration, keeps the page invisible until the document is parsed, then scrolls to the saved position and shows it in the same frame. `scroll` and `header` are on unless passed `false`, and `locale` is given by a site that has one. Nothing else has to be arranged by hand.
113
+
114
+ There is no boot step for scroll reveals: the server renders every target visible, and `bindFrontendRuntime` with `reveal.selector` shows whatever is already on screen or above it without a transition when it binds after hydration, and hides only what is still below the fold, so nothing a reader can see changes and no hydrated element is touched before React owns it.
113
115
 
114
116
  ### Site Header
115
117
 
116
- `SiteHeader` is the whole header of a content site: the sticky bar, the brand, the desktop navigation, the actions beside it, and the mobile menu behind the toggle. The menu is a full-width panel under the bar; it lists the same links, repeats the actions in a footer row, and closes on a link, on Escape, on a press outside the header and when the viewport grows past 768px. The desktop navigation appears when it fits and not at a width: the header measures the bar against the links it was given and falls back to the menu whenever they would collide with the actions, so a site with four links keeps its bar on a tablet and a site with eight does not have to cram them at 820px. Pass the links as data, not markup:
118
+ `SiteHeader` is the whole header of a content site: the sticky bar, the brand, the desktop navigation, the actions beside it, and the mobile menu behind the toggle. The menu is a full-width panel under the bar; it lists the same links, repeats the actions in a footer row, and closes on a link, on Escape, on a press outside the header and when the viewport grows past 768px. The desktop navigation appears when it fits and not at a width: the header measures the bar against its links and falls back to the menu whenever they would collide with the actions, so a site with four links keeps its bar on a tablet and a site with eight does not have to cram them at 820px. The links come from the application's links config (see Site Links); the header takes no links of its own:
117
119
 
118
120
  ```tsx
119
121
  <SiteHeader
@@ -121,13 +123,16 @@ It returns `{ bootScripts, bodyScripts }`: the head scripts that restore the scr
121
123
  brand="Restaurace Střílky"
122
124
  brandHref="#top"
123
125
  labels={{ closeMenu: t("menuClose"), navigation: t("navLabel"), openMenu: t("menuOpen") }}
124
- links={sections.map((section) => ({ href: hrefs[section], key: section, label: t(`nav.${section}`) }))}
125
126
  />
126
127
  ```
127
128
 
129
+ A header group is a button in the bar that opens the header's sheet: a band directly under the bar, as wide as the header, painted with the bar's own surface and tone, with its content on the same gutter as the bar. The sheet opens when the pointer rests on the group and on a press; it closes when the pointer leaves the header, on a second press, on Escape, on a press or focus outside the header, and when a link in it is chosen. Pressing a group from the keyboard moves focus to its first link, and Escape returns it to the group. Every group's links are in the server markup, hidden until their group opens.
130
+
131
+ A group of plain links lays out as a list. The sitemap group lays out as columns, one per category, each under an `h5` that takes the page's own heading styles, and prints each link's description as one line under its label. In the mobile menu the same group is a disclosure with the same headings and without the descriptions, so it stays a short list. A group with `search: true` puts the site search at the top of its section and of its mobile disclosure (see Site Search); `lang` on `SiteHeader` names the language the header is rendered in, and the current locale is used without it. The sheet has no tokens: its spacing, columns and motion are the same in every application, and its colours are the header's.
132
+
128
133
  A header with no links and no `menuActions` has no toggle and keeps its actions visible on a phone. `menuActions` replaces `actions` inside the menu when the two should differ, `menuIcon` and `closeIcon` replace the built-in burger, and `softRedirect` marks the links for soft navigation.
129
134
 
130
- The header takes the tone of whatever is behind it, and it knows which that is before the first paint. `frontendBoot()` adds the script that does it: it runs with the document parsed, finds the band under the bar among `main`'s own children and the site footer, and marks the header `data-tbf-dark` when that band declares itself dark, which is the same marker a dark band, an inverse footer or a dark card carries. After that it follows scrolling, resizing, `pageshow` and soft navigation. There is nothing to configure and nothing per page: a page that wants a dark bar under it says so on the band, once, the way it already says it for everything else inside it.
135
+ The header takes the tone of whatever is behind it, and it knows which that is before the first paint. `frontendBoot()` adds the script that does it: it runs with the document parsed, finds the band under the bar among `main`'s own children and the site footer, and marks the header `data-tbf-dark` when that band declares itself dark, which is the same marker a dark band, an inverse footer or a dark card carries. After that it follows scrolling, resizing, `pageshow` and soft navigation. There is nothing to configure and nothing per page: a page that wants a dark bar under it says so on the band, once, the way it already says it for everything else inside it. The header has no colours of its own for this: it paints with the tone's `ground`, the background every tone region carries (the page in a light region, the ink in a dark one), and its sheet, its mobile menu and every popover it opens paint with the same `ground`, so they all change together.
131
136
 
132
137
  The header is the hydration root, so it renders itself as the `<header>` element. Server markup wraps it with `siteHeaderRootHtml(html)`, which the client hydrates through `SITE_HEADER_ROOT_SELECTOR`; the wrapper is `display: contents`, so the header still sticks to the viewport.
133
138
 
@@ -135,6 +140,35 @@ Colors, fonts, borders and spacing are tokens under `components.shell.header`: `
135
140
 
136
141
  `tone` is the crossfade: `duration` and `easing`, 320ms by default, for the moment the bar changes tone as a band scrolls under it. The first paint never uses it, because the tone is decided before it. A soft navigation does not cross-fade either: `<html>` carries `data-tbf-page-swap` for the frame the page is replaced in, which holds every transition and animation at 1ms, so chrome arrives in the new page's colours instead of sliding into them while the reader is already looking at a different page.
137
142
 
143
+ ### Site Search
144
+
145
+ Site search finds any page of a static site by its words, with no server. The package owns the whole job: reading the rendered pages into an index at build time, loading the index in the browser, matching, ranking and showing the results. The application owns which pages exist and their titles, and it writes the files the package returns.
146
+
147
+ At build time, `createSiteSearchIndex()` from `@trebired/frontend/server` takes the same per-language bodies and metadata an application already renders for its shells and returns one file per language, `tbf-search/<locale>.json`:
148
+
149
+ ```ts
150
+ import { createSiteSearchIndex } from "@trebired/frontend/server";
151
+
152
+ for (const file of createSiteSearchIndex({
153
+ locales: ["en", "cs"],
154
+ meta: (path, locale) => ({ description: descriptionOf(path, locale), title: titleOf(path, locale) }),
155
+ paths: allRoutePaths,
156
+ render: (path, locale) => bodies[path][locale],
157
+ })) await Bun.write(`${outDir}/${file.path}`, file.contents);
158
+ ```
159
+
160
+ Only the page's own content is read: the inside of `<main>` when the page has one, without scripts, SVG, buttons, form controls, and anything `hidden`, `inert` or `aria-hidden`, so decorative duplicates and the header and footer every page shares never match. Headings up to `h4` are kept as sections, with their `id` when they have one.
161
+
162
+ In the browser the search lives in the site header: a group with `search: true` shows the field. The index for the reader's current language is fetched the first time the field is focused, once, and only that language is searched. Every word of the query has to match; accents and case are ignored, so "prirucka" finds "Příručka". Titles outrank section headings, which outrank descriptions and body text. A result whose best match is a heading with an `id` opens that section. Each result shows a snippet with the matched words marked. Enter opens the first result, the arrow keys move between results, and Escape clears the query before it closes the header's sheet. The field's label, placeholder and messages come from the package in the header's `lang`.
163
+
164
+ ### Hollow Text
165
+
166
+ `@trebired/frontend/hollow` prints outlined text with riso shapes inside its letters: `<HollowText>` takes the text as children, an optional `inks` pair, `as` for the tag and `dark` to force dark-band inks (an ancestor with `data-tbf-dark` does the same). Without `inks`, the colours come from the nearest `<HollowPalette tones={...}>`, used as given whatever their hue, so a page's hollow text matches the palette it declares; only a page without a palette falls back to the package's cool defaults. The print is sized in `em` from the text, so server markup already carries it on the first paint; after hydration each layer is swapped for a cached bitmap at the element's size.
167
+
168
+ The print is generated by `@trebired/overprint`, an optional peer dependency: install it only in an application that imports `@trebired/frontend/hollow`. Nothing else in the package imports it.
169
+
170
+ The shape generator behind the print is exported for other prints that should match it: `seeded(seed)` returns a deterministic random source, and `scatter(next, { box, font })` returns random geometric `path` art (irregular polygons, slivers and sectors) spread across a `box` of `[width, height]`, each shape sized from `font`. The same seed always returns the same shapes.
171
+
138
172
  ### Prose Text
139
173
 
140
174
  `ProseText` renders a plain string in which a marked span becomes a `TextLink`, so copy kept as strings can point at another page without becoming markup. It takes `text` and an optional `softRedirect`.
@@ -147,7 +181,7 @@ Get it from <!--tbf:link https://github.com/Trebired tab-->GitHub<!--/tbf:link--
147
181
  Start at <!--tbf:link /downloads reload-->the downloads page<!--/tbf:link-->.
148
182
  ```
149
183
 
150
- In source that nothing else renders, the short form: `[the philosophy page](/philosophy)`, equal to the comment pair with no flags.
184
+ In source that nothing else renders, the short form: `[the philosophy page](/philosophy)`, equal to the comment pair with no flags. A short form whose href starts with `http://` or `https://`, such as `[GitHub](https://github.com/Trebired)`, is external and behaves as the comment pair with `tab`.
151
185
 
152
186
  The first token after the marker is the href and is required. `tab` opens a new tab and sets its `rel`; `reload` navigates fully instead of soft redirecting. Anything malformed, a missing href, an unknown flag, an unclosed pair, drops the annotation and renders the text plainly: a marker is never shown to a reader, and prose is never lost to a typo.
153
187
 
@@ -194,9 +228,47 @@ parts: disclosure
194
228
  `PageOutline` takes `items` of `{ id, label }`, lists the sections of a page and marks the one being read. `PageOutlineLayout` takes the same `items` and the page content, and lays them out side by side: the list in a column on the left, the content beside it, the column sticking to the top of the viewport while the reader scrolls. A click scrolls smoothly to the section, instantly under reduced motion, moves focus to it so the keyboard carries on from there, and replaces the fragment in the address bar rather than stacking a history entry per jump. The column appears from 1024px, where there is room beside the content; below that the layout is a single column and the list renders nothing, because the page is still read by scrolling. Called with no items the layout renders the content alone.
195
229
 
196
230
 
231
+ ### Site Links
232
+
233
+ Every link in the site chrome is declared once, under `links` in the frontend config, and the header, its sitemap sheet and the footer all read that one declaration. A link is a key, an `href`, and whether it is `external`; a label never lives in a component. An external link opens in a new tab with `rel="noopener noreferrer"`, never soft-navigates, and carries the external-link icon after its label in the bar, the sheet, the menu and the footer alike.
234
+
235
+ ```ts
236
+ // .trebired/frontend/links.ts
237
+ import type { FrontendLinksConfig } from "@trebired/frontend/config";
238
+ import cs from "./../../src/frontend/components/chrome/site/i18n/cs";
239
+ import en from "./../../src/frontend/components/chrome/site/i18n/en";
240
+
241
+ export const links: FrontendLinksConfig = {
242
+ links: {
243
+ about: { href: "/about" },
244
+ discussions: { external: true, href: "https://github.com/orgs/Example/discussions" },
245
+ downloads: { href: "/downloads", site: "app" },
246
+ home: { href: "/" },
247
+ privacy: { href: "/privacy" },
248
+ },
249
+ categories: { community: ["discussions"], organization: ["about"], legal: ["privacy"] },
250
+ messages: { cs: cs.links, en: en.links },
251
+ sets: {
252
+ main: {
253
+ header: ["home", "about", { group: "everything", search: true, sitemap: true }],
254
+ footer: { columns: [["organization", "community"], ["legal"]], note: ["privacy"] },
255
+ },
256
+ app: { header: ["downloads"], footer: { columns: [["organization"]], site: ["downloads"] } },
257
+ },
258
+ };
259
+ ```
260
+
261
+ - `links` maps each key to its `href`, its `site` when the path belongs to one of several sites built from the same code, and `external`.
262
+ - `categories` groups link keys under a heading. A footer column is a list of categories; the sitemap is a list of categories too, all of them unless a set names its own under `sitemap`.
263
+ - `sets` name what each site shows: its `header` (link keys, and groups with `links` or `sitemap: true`, optionally `search: true`), its `footer` (`columns`, the `note` links and the `site` band) and the `site` it renders on, which is the set's own name unless given.
264
+ - `messages` holds, per locale, `links` (every link's label), `descriptions` (the line under a label in the sitemap), `categories` (every category's heading) and `groups` (every header group's label). Point them at the application's own i18n files rather than writing copy into the config.
265
+ - `icon` replaces the external-link icon, `remixicon:external-link-line` by default.
266
+
267
+ The config is checked when it is read: a key a set or category names that no link defines, a link, category or group without a label in some locale, or a header group with neither links nor the sitemap is refused with the path that is wrong. At runtime the application hands the same object to `configureSiteLinks(links, { set, origins })` once, in its server entry and its client entry, the way it hands over its language and money config. `set` names the set this site renders. A link whose `site` is not the set's own is written with that site's origin from `origins`, and with the reader's locale handed over, so a product site's footer can link to the organization site that builds it.
268
+
197
269
  ### Site Footer
198
270
 
199
- `SiteFooter` takes a `brand`, a `tagline`, `social` links, `columns` of links and a `note`. On a site that stands for itself they fill the whole footer: the brand on the left, the columns on the right. A site that belongs to someone else passes `site` as well, carrying that site's own `brand`, `tagline`, `social` and a row of `links`. That becomes a band above the first, with a rule between them: this site on top, and under it the owner's mark, one line saying who builds the site, and the columns that belong to the organization rather than to the product. One footer, one ground, two parts.
271
+ `SiteFooter` takes a `brand`, a `tagline`, `social` links and a `note`; its columns of links, the links of a site band and the links beside the note come from the links config (see Site Links). On a site that stands for itself they fill the whole footer: the brand on the left, the columns on the right. A site that belongs to someone else passes `site` as well, carrying that site's own `brand`, `tagline` and `social`, and its set lists the site's own links under `footer.site`. That becomes a band above the first, with a rule between them: this site on top, and under it the owner's mark, one line saying who builds the site, and the columns that belong to the organization rather than to the product. One footer, one ground, two parts.
200
272
 
201
273
  That is the whole mechanism for telling the two apart, and it is deliberate: a column heading cannot say whose links these are, because every column looks equally weighted, while a mark is read before it is read. The two parts share one ground, because a second background reads as a second footer rather than as the rest of this one. Give the bands the same heading names on every site so a reader learns one map, and let the same label appear in both bands when both genuinely have one, such as a brand page per site.
202
274
 
@@ -346,6 +418,8 @@ Static icon mode uses `registerStaticIcons()` in the browser. Missing cached ico
346
418
 
347
419
  `typography.indent.flow` indents paragraphs and quotes that follow a heading among the same siblings, by the given step; it is zero by default. Set it once in the components config and every heading in the application carries its text one step in, without a class on any component. Structure decides what moves: text that is a sibling after a heading moves, everything else stays on the heading's edge.
348
420
 
421
+ The step is not a fixed distance. `flow` and `size` name the indent for body text under an `h2`, and the package scales it to what it moves: by the size of the indented text against the root size, and by the square root of the size of the largest heading in the same block against an `h2`. A list of small links under an `h5` steps in a little; a lead under a page title steps in more. The heading sizes are the `typography` heading tokens, so a heading restyled by a class still counts as its level. Browsers that cannot divide lengths in `calc()` use the configured step as it is.
422
+
349
423
  ### Island Preparation
350
424
 
351
425
  `mountLiveIsland({ prepare })` awaits `prepare` before the island renders or hydrates, on the first mount and on every remount after a soft navigation. It receives `url`, the address the island is about to render: during a soft navigation that is the target, which the browser history does not show until the new content is in place, so read the route from `url` rather than from `location`. Load what the island renders there, such as the page module of the current route, and the server markup hydrates against it without a mismatch.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/config/default/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEnG,QAAA,MAAM,oBAAoB,kBAA4B,CAAC;AAEvD,QAAA,MAAM,oBAAoB,EAAE,gBAAgB,EAAkC,CAAC;AAE/E,QAAA,MAAM,YAAY,EAAE,iBAAiB,EA4BpC,CAAC;AAEF,QAAA,MAAM,uBAAuB,EAAE,wBAiE7B,CAAC;AAEH,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/config/default/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEnG,QAAA,MAAM,oBAAoB,kBAA4B,CAAC;AAEvD,QAAA,MAAM,oBAAoB,EAAE,gBAAgB,EAAkC,CAAC;AAE/E,QAAA,MAAM,YAAY,EAAE,iBAAiB,EA6BpC,CAAC;AAEF,QAAA,MAAM,uBAAuB,EAAE,wBAkE7B,CAAC;AAEH,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
@@ -33,6 +33,7 @@ const SYSTEM_ORDER = [
33
33
  "fullscreen",
34
34
  "surface",
35
35
  "graph",
36
+ "hollow",
36
37
  "document",
37
38
  "indent",
38
39
  "visibility",
@@ -88,6 +89,7 @@ const DEFAULT_FRONTEND_CONFIG = Object.freeze({
88
89
  }),
89
90
  forVersion: PACKAGE_VERSION,
90
91
  language: EMPTY_LANGUAGE_CONFIG,
92
+ links: null,
91
93
  money: EMPTY_MONEY_CONFIG,
92
94
  prefix: FRONTEND_PREFIX,
93
95
  runtime: Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/config/default/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/config/default/config.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export { generateFrontendScss } from "./scss.js";
11
11
  export { collectConfigDependencies } from "./module.js";
12
12
  export { createFrontendTokenHelpers } from "./tokens.js";
13
13
  export { defineConfig, findConfig, loadConfig };
14
- export type { LoadFrontendConfigOptions, LoadedFrontendConfig, NormalizedFrontendActivePressInteractionConfig, NormalizedFrontendAssetsConfig, NormalizedFrontendConfig, NormalizedFrontendComponentsConfig, NormalizedFrontendDesignConfig, NormalizedFrontendDesignInteractionsConfig, NormalizedFrontendFontConfig, NormalizedFrontendFontFamilyConfig, NormalizedFrontendPaletteConfig, NormalizedFrontendPaletteMode, NormalizedFrontendPaletteSemantic, NormalizedFrontendRuntimeConfig, NormalizedFrontendScalesConfig, NormalizedFrontendThemeConfig, NormalizedFrontendThemeMode, NormalizedFrontendZIndexScaleConfig, FrontendConfig, FrontendActivePressInteractionConfig, FrontendAssetsConfig, FrontendComponentTokens, FrontendComponentsConfig, FrontendDataComponentsConfig, FrontendDesignConfig, FrontendDesignInteractionsConfig, FrontendFeedbackComponentsConfig, FrontendFontConfig, FrontendLanguageConfig, FrontendContainer, FrontendContainerBlock, FrontendContainerTone, FrontendContainersConfig, FrontendMoneyConfig, FrontendFontDisplay, FrontendFontFamilyConfig, FrontendFontStyle, FrontendIconAliasValue, FrontendIconPack, FrontendOverlayComponentsConfig, FrontendPaletteConfig, FrontendPaletteFamilies, FrontendPaletteMode, FrontendPaletteScale, FrontendPaletteSemanticRef, FrontendPrimitiveComponentsConfig, FrontendRuntimeConfig, FrontendScaleSteps, FrontendScalesConfig, FrontendShellComponentsConfig, FrontendSurfaceComponentsConfig, FrontendSystemKey, FrontendThemeConfig, FrontendThemeMode, FrontendThemeModeScheme, FrontendThemeTokens, FrontendZIndexScaleConfig, } from "./types.js";
14
+ export type { LoadFrontendConfigOptions, LoadedFrontendConfig, NormalizedFrontendActivePressInteractionConfig, NormalizedFrontendAssetsConfig, NormalizedFrontendConfig, NormalizedFrontendComponentsConfig, NormalizedFrontendDesignConfig, NormalizedFrontendDesignInteractionsConfig, NormalizedFrontendFontConfig, NormalizedFrontendFontFamilyConfig, NormalizedFrontendPaletteConfig, NormalizedFrontendPaletteMode, NormalizedFrontendPaletteSemantic, NormalizedFrontendRuntimeConfig, NormalizedFrontendScalesConfig, NormalizedFrontendThemeConfig, NormalizedFrontendThemeMode, NormalizedFrontendZIndexScaleConfig, FrontendConfig, FrontendActivePressInteractionConfig, FrontendAssetsConfig, FrontendComponentTokens, FrontendComponentsConfig, FrontendDataComponentsConfig, FrontendDesignConfig, FrontendDesignInteractionsConfig, FrontendFeedbackComponentsConfig, FrontendFontConfig, FrontendLanguageConfig, FrontendContainer, FrontendContainerBlock, FrontendContainerTone, FrontendContainersConfig, FrontendLinksConfig, FrontendMoneyConfig, FrontendFontDisplay, FrontendFontFamilyConfig, FrontendFontStyle, FrontendIconAliasValue, FrontendIconPack, FrontendOverlayComponentsConfig, FrontendPaletteConfig, FrontendPaletteFamilies, FrontendPaletteMode, FrontendPaletteScale, FrontendPaletteSemanticRef, FrontendPrimitiveComponentsConfig, FrontendRuntimeConfig, FrontendScaleSteps, FrontendScalesConfig, FrontendShellComponentsConfig, FrontendSurfaceComponentsConfig, FrontendSystemKey, FrontendThemeConfig, FrontendThemeMode, FrontendThemeModeScheme, FrontendThemeTokens, FrontendZIndexScaleConfig, } from "./types.js";
15
15
  export type { FrontendConfigTokenHelpers, FrontendConfigVariableHelper, FrontendCssVariable, FrontendCssVariableWithFallback, FrontendPaletteFamily, FrontendPaletteModeKey, FrontendPaletteSemanticToken, FrontendPaletteStep, } from "./tokens.js";
16
16
  export { DEFAULT_FAVICON_ICO, DEFAULT_FAVICON_SIZES, generateFaviconAssets } from "./favicon.js";
17
17
  export { ECB_DAILY_URL, fetchMoneyRates } from "./../money/rates.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,QAAA,MAAM,YAAY,EAAkB,CAAC,CAAC,SAAS,cAAc,EAAI,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAEjF,iBAAe,UAAU,CACvB,QAAQ,GAAE,MAAsB,EAChC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAC,IAAI,CAAC,CAStB;AAeD,iBAAe,UAAU,CACvB,WAAW,GAAE,MAAsB,EACnC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,oBAAoB,CAAC,CA4B/B;AAED,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrG,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAChD,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,8CAA8C,EAC9C,8BAA8B,EAC9B,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,0CAA0C,EAC1C,4BAA4B,EAC5B,kCAAkC,EAClC,+BAA+B,EAC/B,6BAA6B,EAC7B,iCAAiC,EACjC,+BAA+B,EAC/B,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,mCAAmC,EACnC,cAAc,EACd,oCAAoC,EACpC,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,EACpB,gCAAgC,EAChC,gCAAgC,EAChC,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,+BAA+B,EAC/B,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,iCAAiC,EACjC,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,+BAA+B,EAC/B,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,+BAA+B,EAC/B,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAa,oBAAoB,CAAC;AAClC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { NormalizedFrontendLinksConfig } from "./types/links.js";
2
+ declare const DEFAULT_LINK_ICON = "remixicon:external-link-line";
3
+ declare function normalizeLinksConfig(value: unknown): NormalizedFrontendLinksConfig | null;
4
+ export { DEFAULT_LINK_ICON, normalizeLinksConfig };
5
+ //# sourceMappingURL=links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../../src/config/links.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,6BAA6B,EAE9B,MAAM,kBAAkB,CAAC;AAS1B,QAAA,MAAM,iBAAiB,iCAAiC,CAAC;AAsGzD,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAsBlF;AAED,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,134 @@
1
+ import { assertPlainObject, invalidConfig } from "./shared.js";
2
+ const LINKS_FIELDS = ["categories", "icon", "links", "messages", "sets"];
3
+ const LINK_FIELDS = ["external", "href", "site"];
4
+ const SET_FIELDS = ["footer", "header", "site", "sitemap"];
5
+ const FOOTER_FIELDS = ["columns", "note", "site"];
6
+ const GROUP_FIELDS = ["group", "links", "search", "sitemap"];
7
+ const MESSAGE_FIELDS = ["categories", "descriptions", "groups", "links"];
8
+ const DEFAULT_LINK_ICON = "remixicon:external-link-line";
9
+ const ROOT = "config.links";
10
+ function assertFields(source, fields, pathLabel) {
11
+ for (const key of Object.keys(source)) {
12
+ if (!fields.includes(key))
13
+ throw invalidConfig(`${pathLabel}.${key} is not supported`);
14
+ }
15
+ }
16
+ function text(value, pathLabel) {
17
+ if (typeof value !== "string" || !value.trim())
18
+ throw invalidConfig(`${pathLabel} must be a non-empty string`);
19
+ return value.trim();
20
+ }
21
+ function keys(value, known, pathLabel, kind) {
22
+ if (value === undefined)
23
+ return [];
24
+ if (!Array.isArray(value))
25
+ throw invalidConfig(`${pathLabel} must be an array of ${kind} keys`);
26
+ return value.map((entry, index) => {
27
+ const key = text(entry, `${pathLabel}[${index}]`);
28
+ if (!(key in known))
29
+ throw invalidConfig(`${pathLabel}[${index}] names "${key}", which is not a ${kind} in ${ROOT}`);
30
+ return key;
31
+ });
32
+ }
33
+ function normalizeLink(value, pathLabel) {
34
+ const source = assertPlainObject(value, pathLabel);
35
+ assertFields(source, LINK_FIELDS, pathLabel);
36
+ if (source.external !== undefined && typeof source.external !== "boolean")
37
+ throw invalidConfig(`${pathLabel}.external must be boolean`);
38
+ return {
39
+ external: source.external === true,
40
+ href: text(source.href, `${pathLabel}.href`),
41
+ site: source.site === undefined ? "" : text(source.site, `${pathLabel}.site`),
42
+ };
43
+ }
44
+ function normalizeGroup(value, links, pathLabel) {
45
+ assertFields(value, GROUP_FIELDS, pathLabel);
46
+ const sitemap = value.sitemap === true;
47
+ const entries = keys(value.links, links, `${pathLabel}.links`, "link");
48
+ if (!sitemap && !entries.length)
49
+ throw invalidConfig(`${pathLabel} needs links or sitemap: true`);
50
+ return { group: text(value.group, `${pathLabel}.group`), links: entries, search: value.search === true, sitemap };
51
+ }
52
+ function normalizeSet(name, value, links, categories) {
53
+ const pathLabel = `${ROOT}.sets.${name}`;
54
+ const source = assertPlainObject(value, pathLabel);
55
+ assertFields(source, SET_FIELDS, pathLabel);
56
+ const footer = assertPlainObject(source.footer ?? {}, `${pathLabel}.footer`);
57
+ assertFields(footer, FOOTER_FIELDS, `${pathLabel}.footer`);
58
+ const header = source.header === undefined ? [] : source.header;
59
+ if (!Array.isArray(header))
60
+ throw invalidConfig(`${pathLabel}.header must be an array`);
61
+ const columns = footer.columns === undefined ? [] : footer.columns;
62
+ if (!Array.isArray(columns))
63
+ throw invalidConfig(`${pathLabel}.footer.columns must be an array of category key arrays`);
64
+ return {
65
+ footer: {
66
+ columns: columns.map((column, index) => keys(column, categories, `${pathLabel}.footer.columns[${index}]`, "category")),
67
+ note: keys(footer.note, links, `${pathLabel}.footer.note`, "link"),
68
+ site: keys(footer.site, links, `${pathLabel}.footer.site`, "link"),
69
+ },
70
+ header: header.map((item, index) => {
71
+ const itemPath = `${pathLabel}.header[${index}]`;
72
+ if (typeof item === "string")
73
+ return keys([item], links, itemPath, "link")[0];
74
+ return normalizeGroup(assertPlainObject(item, itemPath), links, itemPath);
75
+ }),
76
+ site: source.site === undefined ? name : text(source.site, `${pathLabel}.site`),
77
+ sitemap: source.sitemap === undefined ? Object.keys(categories) : keys(source.sitemap, categories, `${pathLabel}.sitemap`, "category"),
78
+ };
79
+ }
80
+ function labels(value, pathLabel) {
81
+ if (value === undefined)
82
+ return {};
83
+ const source = assertPlainObject(value, pathLabel);
84
+ return Object.fromEntries(Object.entries(source).map(([key, entry]) => [key, text(entry, `${pathLabel}.${key}`)]));
85
+ }
86
+ function normalizeMessages(locale, value) {
87
+ const pathLabel = `${ROOT}.messages.${locale}`;
88
+ const source = assertPlainObject(value, pathLabel);
89
+ assertFields(source, MESSAGE_FIELDS, pathLabel);
90
+ return {
91
+ categories: labels(source.categories, `${pathLabel}.categories`),
92
+ descriptions: labels(source.descriptions, `${pathLabel}.descriptions`),
93
+ groups: labels(source.groups, `${pathLabel}.groups`),
94
+ links: labels(source.links, `${pathLabel}.links`),
95
+ };
96
+ }
97
+ function missing(record, wanted, pathLabel) {
98
+ const absent = wanted.filter((key) => !record[key]);
99
+ if (absent.length)
100
+ throw invalidConfig(`${pathLabel} has no label for ${absent.map((key) => `"${key}"`).join(", ")}`);
101
+ }
102
+ function assertLabelled(config) {
103
+ const groups = Object.values(config.sets).flatMap((set) => set.header.filter((item) => typeof item !== "string").map((item) => item.group));
104
+ for (const [locale, messages] of Object.entries(config.messages)) {
105
+ missing(messages.links, Object.keys(config.links), `${ROOT}.messages.${locale}.links`);
106
+ missing(messages.categories, Object.keys(config.categories), `${ROOT}.messages.${locale}.categories`);
107
+ missing(messages.groups, groups, `${ROOT}.messages.${locale}.groups`);
108
+ }
109
+ }
110
+ function normalizeLinksConfig(value) {
111
+ if (value === undefined)
112
+ return null;
113
+ const source = assertPlainObject(value, ROOT);
114
+ assertFields(source, LINKS_FIELDS, ROOT);
115
+ const rawLinks = assertPlainObject(source.links, `${ROOT}.links`);
116
+ const links = Object.fromEntries(Object.entries(rawLinks).map(([key, entry]) => [key, normalizeLink(entry, `${ROOT}.links.${key}`)]));
117
+ const rawCategories = assertPlainObject(source.categories ?? {}, `${ROOT}.categories`);
118
+ const categories = Object.fromEntries(Object.entries(rawCategories).map(([key, entry]) => [key, keys(entry, links, `${ROOT}.categories.${key}`, "link")]));
119
+ const rawMessages = assertPlainObject(source.messages, `${ROOT}.messages`);
120
+ if (!Object.keys(rawMessages).length)
121
+ throw invalidConfig(`${ROOT}.messages needs at least one locale`);
122
+ const sets = assertPlainObject(source.sets, `${ROOT}.sets`);
123
+ const config = {
124
+ categories,
125
+ icon: source.icon === undefined ? DEFAULT_LINK_ICON : text(source.icon, `${ROOT}.icon`),
126
+ links,
127
+ messages: Object.fromEntries(Object.entries(rawMessages).map(([locale, entry]) => [locale, normalizeMessages(locale, entry)])),
128
+ sets: Object.fromEntries(Object.entries(sets).map(([name, entry]) => [name, normalizeSet(name, entry, links, categories)])),
129
+ };
130
+ assertLabelled(config);
131
+ return config;
132
+ }
133
+ export { DEFAULT_LINK_ICON, normalizeLinksConfig };
134
+ //# sourceMappingURL=links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../../../src/config/links.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/config/normalize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAqBxH,OAAO,KAAK,EACV,wBAAwB,EAMzB,MAAM,YAAY,CAAC;AAEpB,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,QAAA,MAAM,oBAAoB,QAAuB,CAAC;AAqMlD,iBAAS,uBAAuB,CAC9B,MAAM,GAAE,OAAY,EACpB,OAAO,GAAE,gBAAqB,GAC7B,wBAAwB,CAkB1B;AAgBD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,GACxB,CAAC"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/config/normalize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAsBxH,OAAO,KAAK,EACV,wBAAwB,EAMzB,MAAM,YAAY,CAAC;AAEpB,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,QAAA,MAAM,oBAAoB,QAAuB,CAAC;AAsMlD,iBAAS,uBAAuB,CAC9B,MAAM,GAAE,OAAY,EACpB,OAAO,GAAE,gBAAqB,GAC7B,wBAAwB,CAmB1B;AAgBD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,GACxB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { normalizeA11yConfig } from "./a11y.js";
2
2
  import { DEFAULT_FRONTEND_CONFIG, SUPPORTED_ICON_PACKS, SYSTEM_ORDER, THEME_MODE_ATTRIBUTE } from "./default/config.js";
3
3
  import { normalizeLanguageConfig } from "./language.js";
4
+ import { normalizeLinksConfig } from "./links.js";
4
5
  import { normalizeMoneyConfig } from "./money.js";
5
6
  import { assertPlainObject, invalidConfig } from "./shared.js";
6
7
  import { normalizeComponentsConfig } from "./component-tokens.js";
@@ -26,6 +27,7 @@ const TOP_LEVEL_FIELDS = [
26
27
  "design",
27
28
  "forVersion",
28
29
  "language",
30
+ "links",
29
31
  "money",
30
32
  "runtime",
31
33
  "systems",
@@ -212,6 +214,7 @@ function normalizeFrontendConfig(config = {}, options = {}) {
212
214
  design,
213
215
  forVersion: normalizeForVersion(source, options),
214
216
  language: normalizeLanguageConfig(source.language),
217
+ links: normalizeLinksConfig(source.links),
215
218
  money: normalizeMoneyConfig(source.money),
216
219
  prefix: DEFAULT_FRONTEND_CONFIG.prefix,
217
220
  runtime,
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/config/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/config/normalize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/config/scss.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,wBAAwB,EAExB,cAAc,EAEf,MAAM,YAAY,CAAC;AAmPpB,iBAAS,oBAAoB,CAC3B,WAAW,EAAE,cAAc,GAAG,wBAAwB,GACrD,MAAM,CA4BR;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/config/scss.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,wBAAwB,EAExB,cAAc,EAEf,MAAM,YAAY,CAAC;AAoPpB,iBAAS,oBAAoB,CAC3B,WAAW,EAAE,cAAc,GAAG,wBAAwB,GACrD,MAAM,CA6BR;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -5,7 +5,7 @@ import { renderFontsCss } from "./fonts.js";
5
5
  import { renderFlagRules } from "./flags.js";
6
6
  import { breakpointDeclarations } from "./breakpoints.js";
7
7
  import { TONE_NAMESPACE, renderContainerClassRules } from "./containers.js";
8
- import { renderContainerRules, renderHeadingVariantRules } from "./typography.js";
8
+ import { renderContainerRules, renderHeadingVariantRules, renderOutlineSelectionRule } from "./typography.js";
9
9
  import { cssComment, cssString, invalidConfig } from "./shared.js";
10
10
  import { componentGroupCssName, componentTokenCssName } from "../namespace/css-var.js";
11
11
  import { frontendDataAttr } from "../namespace/index.js";
@@ -24,6 +24,7 @@ const SYSTEM_STYLE_FILES = {
24
24
  explorer: "explorer/styles/index.scss",
25
25
  flash: "flash/styles/index.scss",
26
26
  graph: "graph/styles/index.scss",
27
+ hollow: "hollow/styles/index.scss",
27
28
  icons: "icons/styles/index.scss",
28
29
  indent: "indent/styles/index.scss",
29
30
  inputs: "inputs/styles/index.scss",
@@ -262,6 +263,7 @@ function generateFrontendScss(configInput) {
262
263
  ...renderCardToneRules(config),
263
264
  ...renderContainerRules(config),
264
265
  ...renderHeadingVariantRules(config),
266
+ ...renderOutlineSelectionRule(config),
265
267
  ...renderContainerClassRules(config),
266
268
  ];
267
269
  assertGeneratedVariablesResolve(config.prefix, lines);