@trebired/frontend 27.0.0 → 28.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 (451) hide show
  1. package/CHANGELOG.md +108 -0
  2. package/README.md +35 -7
  3. package/dist/a11y/components/index.d.ts.map +1 -1
  4. package/dist/a11y/components/index.js +4 -3
  5. package/dist/a11y/components/index.js.map +1 -1
  6. package/dist/a11y/components/sections.js +1 -1
  7. package/dist/a11y/components/sections.js.map +1 -1
  8. package/dist/a11y/styles/panel.scss +1 -9
  9. package/dist/a11y/styles/targets.scss +1 -3
  10. package/dist/code/lazy.d.ts +3 -0
  11. package/dist/code/lazy.d.ts.map +1 -0
  12. package/dist/code/lazy.js +5 -0
  13. package/dist/code/lazy.js.map +1 -0
  14. package/dist/config/containers.d.ts +4 -2
  15. package/dist/config/containers.d.ts.map +1 -1
  16. package/dist/config/containers.js +40 -12
  17. package/dist/config/containers.js.map +1 -1
  18. package/dist/config/default/component-tokens.d.ts +9 -38
  19. package/dist/config/default/component-tokens.d.ts.map +1 -1
  20. package/dist/config/default/component-tokens.js +8 -217
  21. package/dist/config/default/component-tokens.js.map +1 -1
  22. package/dist/config/default/config.d.ts.map +1 -1
  23. package/dist/config/default/config.js +4 -0
  24. package/dist/config/default/config.js.map +1 -1
  25. package/dist/config/default/primitive-tokens.d.ts +306 -0
  26. package/dist/config/default/primitive-tokens.d.ts.map +1 -0
  27. package/dist/config/default/primitive-tokens.js +200 -0
  28. package/dist/config/default/primitive-tokens.js.map +1 -0
  29. package/dist/config/default/scales.d.ts +2 -1
  30. package/dist/config/default/scales.d.ts.map +1 -1
  31. package/dist/config/default/scales.js +3 -1
  32. package/dist/config/default/scales.js.map +1 -1
  33. package/dist/config/index.d.ts +2 -1
  34. package/dist/config/index.d.ts.map +1 -1
  35. package/dist/config/index.js +1 -0
  36. package/dist/config/index.js.map +1 -1
  37. package/dist/config/scales-css.d.ts.map +1 -1
  38. package/dist/config/scales-css.js +6 -4
  39. package/dist/config/scales-css.js.map +1 -1
  40. package/dist/config/scales.d.ts.map +1 -1
  41. package/dist/config/scales.js +11 -2
  42. package/dist/config/scales.js.map +1 -1
  43. package/dist/config/scss.d.ts.map +1 -1
  44. package/dist/config/scss.js +6 -1
  45. package/dist/config/scss.js.map +1 -1
  46. package/dist/config/shared.d.ts +3 -0
  47. package/dist/config/shared.d.ts.map +1 -1
  48. package/dist/config/shared.js +12 -0
  49. package/dist/config/shared.js.map +1 -1
  50. package/dist/config/sources/index.d.ts +2 -4
  51. package/dist/config/sources/index.d.ts.map +1 -1
  52. package/dist/config/sources/index.js +1 -2
  53. package/dist/config/sources/index.js.map +1 -1
  54. package/dist/config/sources/money.d.ts +8 -3
  55. package/dist/config/sources/money.d.ts.map +1 -1
  56. package/dist/config/sources/money.js +13 -2
  57. package/dist/config/sources/money.js.map +1 -1
  58. package/dist/config/theme.d.ts.map +1 -1
  59. package/dist/config/theme.js +5 -1
  60. package/dist/config/theme.js.map +1 -1
  61. package/dist/config/tokens.d.ts +16 -5
  62. package/dist/config/tokens.d.ts.map +1 -1
  63. package/dist/config/tokens.js +25 -3
  64. package/dist/config/tokens.js.map +1 -1
  65. package/dist/config/types/containers.d.ts +4 -1
  66. package/dist/config/types/containers.d.ts.map +1 -1
  67. package/dist/config/types.d.ts +3 -3
  68. package/dist/config/types.d.ts.map +1 -1
  69. package/dist/{layout/components/text-document.d.ts → document/components/index.d.ts} +5 -1
  70. package/dist/document/components/index.d.ts.map +1 -0
  71. package/dist/document/components/index.js +73 -0
  72. package/dist/document/components/index.js.map +1 -0
  73. package/dist/{layout/styles/text-document.scss → document/styles/index.scss} +3 -7
  74. package/dist/dom/binding.d.ts.map +1 -1
  75. package/dist/dom/binding.js +8 -0
  76. package/dist/dom/binding.js.map +1 -1
  77. package/dist/dom/index.d.ts.map +1 -1
  78. package/dist/dom/index.js +5 -2
  79. package/dist/dom/index.js.map +1 -1
  80. package/dist/editor/lazy.d.ts +3 -0
  81. package/dist/editor/lazy.d.ts.map +1 -0
  82. package/dist/editor/lazy.js +5 -0
  83. package/dist/editor/lazy.js.map +1 -0
  84. package/dist/entries/react/01.d.ts +5 -4
  85. package/dist/entries/react/01.d.ts.map +1 -1
  86. package/dist/entries/react/01.js +3 -4
  87. package/dist/entries/react/01.js.map +1 -1
  88. package/dist/entries/react/02.d.ts +2 -7
  89. package/dist/entries/react/02.d.ts.map +1 -1
  90. package/dist/entries/react/02.js +2 -6
  91. package/dist/entries/react/02.js.map +1 -1
  92. package/dist/entries/root/01.d.ts +0 -5
  93. package/dist/entries/root/01.d.ts.map +1 -1
  94. package/dist/entries/root/01.js +0 -5
  95. package/dist/entries/root/01.js.map +1 -1
  96. package/dist/entries/root/02.d.ts +2 -3
  97. package/dist/entries/root/02.d.ts.map +1 -1
  98. package/dist/entries/root/02.js +1 -3
  99. package/dist/entries/root/02.js.map +1 -1
  100. package/dist/entries/root/03.d.ts +2 -1
  101. package/dist/entries/root/03.d.ts.map +1 -1
  102. package/dist/entries/root/03.js +1 -1
  103. package/dist/entries/root/03.js.map +1 -1
  104. package/dist/fullscreen/lazy.d.ts +3 -0
  105. package/dist/fullscreen/lazy.d.ts.map +1 -0
  106. package/dist/fullscreen/lazy.js +5 -0
  107. package/dist/fullscreen/lazy.js.map +1 -0
  108. package/dist/graph/index.d.ts +2 -0
  109. package/dist/graph/index.d.ts.map +1 -1
  110. package/dist/graph/index.js +2 -0
  111. package/dist/graph/index.js.map +1 -1
  112. package/dist/graph/lazy.d.ts +3 -0
  113. package/dist/graph/lazy.d.ts.map +1 -0
  114. package/dist/graph/lazy.js +5 -0
  115. package/dist/graph/lazy.js.map +1 -0
  116. package/dist/indent/styles/index.scss +16 -0
  117. package/dist/index.d.ts +3 -1
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +12 -15
  120. package/dist/index.js.map +1 -1
  121. package/dist/inputs/advanced/tabs/manager/dom.d.ts.map +1 -1
  122. package/dist/inputs/advanced/tabs/manager/dom.js +0 -3
  123. package/dist/inputs/advanced/tabs/manager/dom.js.map +1 -1
  124. package/dist/inputs/advanced/tabs/styles.scss +9 -4
  125. package/dist/inputs/index.d.ts.map +1 -1
  126. package/dist/inputs/index.js +2 -0
  127. package/dist/inputs/index.js.map +1 -1
  128. package/dist/language/runtime/source/lazy.d.ts +4 -0
  129. package/dist/language/runtime/source/lazy.d.ts.map +1 -0
  130. package/dist/language/runtime/source/lazy.js +5 -0
  131. package/dist/language/runtime/source/lazy.js.map +1 -0
  132. package/dist/layout/components/index.d.ts +0 -1
  133. package/dist/layout/components/index.d.ts.map +1 -1
  134. package/dist/layout/components/index.js +0 -1
  135. package/dist/layout/components/index.js.map +1 -1
  136. package/dist/layout/components/outline.d.ts +2 -0
  137. package/dist/layout/components/outline.d.ts.map +1 -1
  138. package/dist/layout/components/outline.js +52 -11
  139. package/dist/layout/components/outline.js.map +1 -1
  140. package/dist/layout/components/site/footer.d.ts.map +1 -1
  141. package/dist/layout/components/site/footer.js +2 -2
  142. package/dist/layout/components/site/footer.js.map +1 -1
  143. package/dist/layout/components/site/header/fit.d.ts.map +1 -1
  144. package/dist/layout/components/site/header/fit.js +14 -2
  145. package/dist/layout/components/site/header/fit.js.map +1 -1
  146. package/dist/layout/components/site/header.js +2 -2
  147. package/dist/layout/components/site/header.js.map +1 -1
  148. package/dist/layout/components/site/link.d.ts +2 -1
  149. package/dist/layout/components/site/link.d.ts.map +1 -1
  150. package/dist/layout/components/site/link.js +5 -3
  151. package/dist/layout/components/site/link.js.map +1 -1
  152. package/dist/layout/header/tone.d.ts.map +1 -1
  153. package/dist/layout/header/tone.js +5 -6
  154. package/dist/layout/header/tone.js.map +1 -1
  155. package/dist/layout/styles/index.scss +2 -4
  156. package/dist/layout/styles/outline.scss +130 -6
  157. package/dist/layout/styles/{site-footer.scss → site/footer.scss} +1 -30
  158. package/dist/layout/styles/{site-header.scss → site/header.scss} +13 -70
  159. package/dist/layout/styles/site/menu.scss +12 -4
  160. package/dist/live/components/index.d.ts +5 -2
  161. package/dist/live/components/index.d.ts.map +1 -1
  162. package/dist/live/components/index.js +7 -5
  163. package/dist/live/components/index.js.map +1 -1
  164. package/dist/live/lazy.d.ts +4 -0
  165. package/dist/live/lazy.d.ts.map +1 -0
  166. package/dist/live/lazy.js +6 -0
  167. package/dist/live/lazy.js.map +1 -0
  168. package/dist/logs/lazy.d.ts +3 -0
  169. package/dist/logs/lazy.d.ts.map +1 -0
  170. package/dist/logs/lazy.js +5 -0
  171. package/dist/logs/lazy.js.map +1 -0
  172. package/dist/namespace/index.d.ts +2 -1
  173. package/dist/namespace/index.d.ts.map +1 -1
  174. package/dist/namespace/index.js +2 -1
  175. package/dist/namespace/index.js.map +1 -1
  176. package/dist/primitives/styles/_controls.scss +4 -1
  177. package/dist/primitives/styles/_display.scss +0 -29
  178. package/dist/primitives/styles/_link.scss +106 -0
  179. package/dist/primitives/styles/index.scss +1 -0
  180. package/dist/react/index.d.ts +5 -0
  181. package/dist/react/index.d.ts.map +1 -1
  182. package/dist/react/index.js +2 -1
  183. package/dist/react/index.js.map +1 -1
  184. package/dist/render/current_url.d.ts +2 -1
  185. package/dist/render/current_url.d.ts.map +1 -1
  186. package/dist/render/current_url.js +16 -3
  187. package/dist/render/current_url.js.map +1 -1
  188. package/dist/reveal/index.d.ts +11 -0
  189. package/dist/reveal/index.d.ts.map +1 -0
  190. package/dist/reveal/index.js +61 -0
  191. package/dist/reveal/index.js.map +1 -0
  192. package/dist/reveal/styles/index.scss +30 -0
  193. package/dist/runtime/lazy.d.ts +18 -0
  194. package/dist/runtime/lazy.d.ts.map +1 -0
  195. package/dist/runtime/lazy.js +61 -0
  196. package/dist/runtime/lazy.js.map +1 -0
  197. package/dist/spa/navigate.d.ts.map +1 -1
  198. package/dist/spa/navigate.js +2 -1
  199. package/dist/spa/navigate.js.map +1 -1
  200. package/dist/spa/page.d.ts +4 -1
  201. package/dist/spa/page.d.ts.map +1 -1
  202. package/dist/spa/page.js +14 -1
  203. package/dist/spa/page.js.map +1 -1
  204. package/dist/src/a11y/components/index.d.ts.map +1 -1
  205. package/dist/src/a11y/components/index.js +4 -3
  206. package/dist/src/a11y/components/index.js.map +1 -1
  207. package/dist/src/a11y/components/sections.js +1 -1
  208. package/dist/src/a11y/components/sections.js.map +1 -1
  209. package/dist/src/code/lazy.d.ts +3 -0
  210. package/dist/src/code/lazy.d.ts.map +1 -0
  211. package/dist/src/code/lazy.js +5 -0
  212. package/dist/src/code/lazy.js.map +1 -0
  213. package/dist/src/config/containers.d.ts +4 -2
  214. package/dist/src/config/containers.d.ts.map +1 -1
  215. package/dist/src/config/containers.js +40 -12
  216. package/dist/src/config/containers.js.map +1 -1
  217. package/dist/src/config/default/component-tokens.d.ts +9 -38
  218. package/dist/src/config/default/component-tokens.d.ts.map +1 -1
  219. package/dist/src/config/default/component-tokens.js +8 -217
  220. package/dist/src/config/default/component-tokens.js.map +1 -1
  221. package/dist/src/config/default/config.d.ts.map +1 -1
  222. package/dist/src/config/default/config.js +4 -0
  223. package/dist/src/config/default/config.js.map +1 -1
  224. package/dist/src/config/default/primitive-tokens.d.ts +306 -0
  225. package/dist/src/config/default/primitive-tokens.d.ts.map +1 -0
  226. package/dist/src/config/default/primitive-tokens.js +200 -0
  227. package/dist/src/config/default/primitive-tokens.js.map +1 -0
  228. package/dist/src/config/default/scales.d.ts +2 -1
  229. package/dist/src/config/default/scales.d.ts.map +1 -1
  230. package/dist/src/config/default/scales.js +3 -1
  231. package/dist/src/config/default/scales.js.map +1 -1
  232. package/dist/src/config/index.d.ts +2 -1
  233. package/dist/src/config/index.d.ts.map +1 -1
  234. package/dist/src/config/index.js +1 -0
  235. package/dist/src/config/index.js.map +1 -1
  236. package/dist/src/config/scales-css.d.ts.map +1 -1
  237. package/dist/src/config/scales-css.js +6 -4
  238. package/dist/src/config/scales-css.js.map +1 -1
  239. package/dist/src/config/scales.d.ts.map +1 -1
  240. package/dist/src/config/scales.js +11 -2
  241. package/dist/src/config/scales.js.map +1 -1
  242. package/dist/src/config/scss.d.ts.map +1 -1
  243. package/dist/src/config/scss.js +6 -1
  244. package/dist/src/config/scss.js.map +1 -1
  245. package/dist/src/config/shared.d.ts +3 -0
  246. package/dist/src/config/shared.d.ts.map +1 -1
  247. package/dist/src/config/shared.js +12 -0
  248. package/dist/src/config/shared.js.map +1 -1
  249. package/dist/src/config/sources/index.d.ts +2 -4
  250. package/dist/src/config/sources/index.d.ts.map +1 -1
  251. package/dist/src/config/sources/index.js +1 -2
  252. package/dist/src/config/sources/index.js.map +1 -1
  253. package/dist/src/config/sources/money.d.ts +8 -3
  254. package/dist/src/config/sources/money.d.ts.map +1 -1
  255. package/dist/src/config/sources/money.js +13 -2
  256. package/dist/src/config/sources/money.js.map +1 -1
  257. package/dist/src/config/theme.d.ts.map +1 -1
  258. package/dist/src/config/theme.js +5 -1
  259. package/dist/src/config/theme.js.map +1 -1
  260. package/dist/src/config/tokens.d.ts +16 -5
  261. package/dist/src/config/tokens.d.ts.map +1 -1
  262. package/dist/src/config/tokens.js +25 -3
  263. package/dist/src/config/tokens.js.map +1 -1
  264. package/dist/src/config/types/containers.d.ts +4 -1
  265. package/dist/src/config/types/containers.d.ts.map +1 -1
  266. package/dist/src/config/types.d.ts +3 -3
  267. package/dist/src/config/types.d.ts.map +1 -1
  268. package/dist/src/{layout/components/text-document.d.ts → document/components/index.d.ts} +5 -1
  269. package/dist/src/document/components/index.d.ts.map +1 -0
  270. package/dist/src/document/components/index.js +73 -0
  271. package/dist/src/document/components/index.js.map +1 -0
  272. package/dist/src/dom/binding.d.ts.map +1 -1
  273. package/dist/src/dom/binding.js +8 -0
  274. package/dist/src/dom/binding.js.map +1 -1
  275. package/dist/src/dom/index.d.ts.map +1 -1
  276. package/dist/src/dom/index.js +5 -2
  277. package/dist/src/dom/index.js.map +1 -1
  278. package/dist/src/editor/lazy.d.ts +3 -0
  279. package/dist/src/editor/lazy.d.ts.map +1 -0
  280. package/dist/src/editor/lazy.js +5 -0
  281. package/dist/src/editor/lazy.js.map +1 -0
  282. package/dist/src/entries/react/01.d.ts +5 -4
  283. package/dist/src/entries/react/01.d.ts.map +1 -1
  284. package/dist/src/entries/react/01.js +3 -4
  285. package/dist/src/entries/react/01.js.map +1 -1
  286. package/dist/src/entries/react/02.d.ts +2 -7
  287. package/dist/src/entries/react/02.d.ts.map +1 -1
  288. package/dist/src/entries/react/02.js +2 -6
  289. package/dist/src/entries/react/02.js.map +1 -1
  290. package/dist/src/entries/root/01.d.ts +0 -5
  291. package/dist/src/entries/root/01.d.ts.map +1 -1
  292. package/dist/src/entries/root/01.js +0 -5
  293. package/dist/src/entries/root/01.js.map +1 -1
  294. package/dist/src/entries/root/02.d.ts +2 -3
  295. package/dist/src/entries/root/02.d.ts.map +1 -1
  296. package/dist/src/entries/root/02.js +1 -3
  297. package/dist/src/entries/root/02.js.map +1 -1
  298. package/dist/src/entries/root/03.d.ts +2 -1
  299. package/dist/src/entries/root/03.d.ts.map +1 -1
  300. package/dist/src/entries/root/03.js +1 -1
  301. package/dist/src/entries/root/03.js.map +1 -1
  302. package/dist/src/fullscreen/lazy.d.ts +3 -0
  303. package/dist/src/fullscreen/lazy.d.ts.map +1 -0
  304. package/dist/src/fullscreen/lazy.js +5 -0
  305. package/dist/src/fullscreen/lazy.js.map +1 -0
  306. package/dist/src/graph/index.d.ts +2 -0
  307. package/dist/src/graph/index.d.ts.map +1 -1
  308. package/dist/src/graph/index.js +2 -0
  309. package/dist/src/graph/index.js.map +1 -1
  310. package/dist/src/graph/lazy.d.ts +3 -0
  311. package/dist/src/graph/lazy.d.ts.map +1 -0
  312. package/dist/src/graph/lazy.js +5 -0
  313. package/dist/src/graph/lazy.js.map +1 -0
  314. package/dist/src/index.d.ts +3 -1
  315. package/dist/src/index.d.ts.map +1 -1
  316. package/dist/src/index.js +12 -15
  317. package/dist/src/index.js.map +1 -1
  318. package/dist/src/inputs/advanced/tabs/manager/dom.d.ts.map +1 -1
  319. package/dist/src/inputs/advanced/tabs/manager/dom.js +0 -3
  320. package/dist/src/inputs/advanced/tabs/manager/dom.js.map +1 -1
  321. package/dist/src/inputs/index.d.ts.map +1 -1
  322. package/dist/src/inputs/index.js +2 -0
  323. package/dist/src/inputs/index.js.map +1 -1
  324. package/dist/src/language/runtime/source/lazy.d.ts +4 -0
  325. package/dist/src/language/runtime/source/lazy.d.ts.map +1 -0
  326. package/dist/src/language/runtime/source/lazy.js +5 -0
  327. package/dist/src/language/runtime/source/lazy.js.map +1 -0
  328. package/dist/src/layout/components/index.d.ts +0 -1
  329. package/dist/src/layout/components/index.d.ts.map +1 -1
  330. package/dist/src/layout/components/index.js +0 -1
  331. package/dist/src/layout/components/index.js.map +1 -1
  332. package/dist/src/layout/components/outline.d.ts +2 -0
  333. package/dist/src/layout/components/outline.d.ts.map +1 -1
  334. package/dist/src/layout/components/outline.js +52 -11
  335. package/dist/src/layout/components/outline.js.map +1 -1
  336. package/dist/src/layout/components/site/footer.d.ts.map +1 -1
  337. package/dist/src/layout/components/site/footer.js +2 -2
  338. package/dist/src/layout/components/site/footer.js.map +1 -1
  339. package/dist/src/layout/components/site/header/fit.d.ts.map +1 -1
  340. package/dist/src/layout/components/site/header/fit.js +14 -2
  341. package/dist/src/layout/components/site/header/fit.js.map +1 -1
  342. package/dist/src/layout/components/site/header.js +2 -2
  343. package/dist/src/layout/components/site/header.js.map +1 -1
  344. package/dist/src/layout/components/site/link.d.ts +2 -1
  345. package/dist/src/layout/components/site/link.d.ts.map +1 -1
  346. package/dist/src/layout/components/site/link.js +5 -3
  347. package/dist/src/layout/components/site/link.js.map +1 -1
  348. package/dist/src/layout/header/tone.d.ts.map +1 -1
  349. package/dist/src/layout/header/tone.js +5 -6
  350. package/dist/src/layout/header/tone.js.map +1 -1
  351. package/dist/src/live/components/index.d.ts +5 -2
  352. package/dist/src/live/components/index.d.ts.map +1 -1
  353. package/dist/src/live/components/index.js +7 -5
  354. package/dist/src/live/components/index.js.map +1 -1
  355. package/dist/src/live/lazy.d.ts +4 -0
  356. package/dist/src/live/lazy.d.ts.map +1 -0
  357. package/dist/src/live/lazy.js +6 -0
  358. package/dist/src/live/lazy.js.map +1 -0
  359. package/dist/src/logs/lazy.d.ts +3 -0
  360. package/dist/src/logs/lazy.d.ts.map +1 -0
  361. package/dist/src/logs/lazy.js +5 -0
  362. package/dist/src/logs/lazy.js.map +1 -0
  363. package/dist/src/namespace/index.d.ts +2 -1
  364. package/dist/src/namespace/index.d.ts.map +1 -1
  365. package/dist/src/namespace/index.js +2 -1
  366. package/dist/src/namespace/index.js.map +1 -1
  367. package/dist/src/react/index.d.ts +5 -0
  368. package/dist/src/react/index.d.ts.map +1 -1
  369. package/dist/src/react/index.js +2 -1
  370. package/dist/src/react/index.js.map +1 -1
  371. package/dist/src/render/current_url.d.ts +2 -1
  372. package/dist/src/render/current_url.d.ts.map +1 -1
  373. package/dist/src/render/current_url.js +16 -3
  374. package/dist/src/render/current_url.js.map +1 -1
  375. package/dist/src/reveal/index.d.ts +11 -0
  376. package/dist/src/reveal/index.d.ts.map +1 -0
  377. package/dist/src/reveal/index.js +61 -0
  378. package/dist/src/reveal/index.js.map +1 -0
  379. package/dist/src/runtime/lazy.d.ts +18 -0
  380. package/dist/src/runtime/lazy.d.ts.map +1 -0
  381. package/dist/src/runtime/lazy.js +61 -0
  382. package/dist/src/runtime/lazy.js.map +1 -0
  383. package/dist/src/spa/navigate.d.ts.map +1 -1
  384. package/dist/src/spa/navigate.js +2 -1
  385. package/dist/src/spa/navigate.js.map +1 -1
  386. package/dist/src/spa/page.d.ts +4 -1
  387. package/dist/src/spa/page.d.ts.map +1 -1
  388. package/dist/src/spa/page.js +14 -1
  389. package/dist/src/spa/page.js.map +1 -1
  390. package/dist/src/surface/motif/boot.d.ts.map +1 -1
  391. package/dist/src/surface/motif/boot.js +14 -2
  392. package/dist/src/surface/motif/boot.js.map +1 -1
  393. package/dist/src/surface/motif/program.d.ts +6 -1
  394. package/dist/src/surface/motif/program.d.ts.map +1 -1
  395. package/dist/src/surface/motif/program.js +50 -1
  396. package/dist/src/surface/motif/program.js.map +1 -1
  397. package/dist/src/tooltip/index.d.ts.map +1 -1
  398. package/dist/src/tooltip/index.js +9 -7
  399. package/dist/src/tooltip/index.js.map +1 -1
  400. package/dist/src/visibility/components/index.d.ts +26 -0
  401. package/dist/src/visibility/components/index.d.ts.map +1 -0
  402. package/dist/src/visibility/components/index.js +28 -0
  403. package/dist/src/visibility/components/index.js.map +1 -0
  404. package/dist/src/visibility/index.d.ts +17 -0
  405. package/dist/src/visibility/index.d.ts.map +1 -0
  406. package/dist/src/visibility/index.js +59 -0
  407. package/dist/src/visibility/index.js.map +1 -0
  408. package/dist/styles/tokens.scss +1 -0
  409. package/dist/styles/utils/_tone.scss +3 -0
  410. package/dist/styles/utils/base.scss +10 -74
  411. package/dist/styles/utils/headings.scss +75 -0
  412. package/dist/styles/utils/text/core.scss +11 -9
  413. package/dist/styles/utils.scss +1 -0
  414. package/dist/surface/motif/boot.d.ts.map +1 -1
  415. package/dist/surface/motif/boot.js +14 -2
  416. package/dist/surface/motif/boot.js.map +1 -1
  417. package/dist/surface/motif/program.d.ts +6 -1
  418. package/dist/surface/motif/program.d.ts.map +1 -1
  419. package/dist/surface/motif/program.js +50 -1
  420. package/dist/surface/motif/program.js.map +1 -1
  421. package/dist/surface/styles/hairline.scss +1 -0
  422. package/dist/surface/styles/layout.scss +0 -95
  423. package/dist/tooltip/index.d.ts.map +1 -1
  424. package/dist/tooltip/index.js +9 -7
  425. package/dist/tooltip/index.js.map +1 -1
  426. package/dist/tooltip/styles/index.scss +0 -59
  427. package/dist/visibility/components/index.d.ts +26 -0
  428. package/dist/visibility/components/index.d.ts.map +1 -0
  429. package/dist/visibility/components/index.js +28 -0
  430. package/dist/visibility/components/index.js.map +1 -0
  431. package/dist/visibility/index.d.ts +17 -0
  432. package/dist/visibility/index.d.ts.map +1 -0
  433. package/dist/visibility/index.js +59 -0
  434. package/dist/visibility/index.js.map +1 -0
  435. package/dist/visibility/styles/index.scss +33 -0
  436. package/package.json +42 -1
  437. package/dist/config/sources/gravatar.d.ts +0 -32
  438. package/dist/config/sources/gravatar.d.ts.map +0 -1
  439. package/dist/config/sources/gravatar.js +0 -135
  440. package/dist/config/sources/gravatar.js.map +0 -1
  441. package/dist/layout/components/text-document.d.ts.map +0 -1
  442. package/dist/layout/components/text-document.js +0 -44
  443. package/dist/layout/components/text-document.js.map +0 -1
  444. package/dist/layout/styles/site-link.scss +0 -61
  445. package/dist/src/config/sources/gravatar.d.ts +0 -32
  446. package/dist/src/config/sources/gravatar.d.ts.map +0 -1
  447. package/dist/src/config/sources/gravatar.js +0 -135
  448. package/dist/src/config/sources/gravatar.js.map +0 -1
  449. package/dist/src/layout/components/text-document.d.ts.map +0 -1
  450. package/dist/src/layout/components/text-document.js +0 -44
  451. package/dist/src/layout/components/text-document.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,113 @@
1
1
  # Changelog
2
2
 
3
+ ## 28.0.0
4
+
5
+ **Breaking: a container class is emitted under `tbfm-`.** `containers: { card: … }` now writes `.tbfm-card`, `.tbfm-card__header` and `.tbfm-card--muted`. Two prefixes mark two kinds of ownership: `tbf-` is the package's own and closed to applications, while `tbfm-` is tbf-managed, named and owned by the application and only compiled by the package. A bare `.card` said neither, and sat in the global namespace where anything could collide with it. Container names in config stay bare, and may not start with either prefix.
6
+
7
+ **Breaking: config speaks in tokens, and a token written by hand is refused.** Every value a container declares comes from the config token helpers · `token.semantic`, `token.frontend`, `token.gap`, `token.radius`, `token.variable`, `token.border`, `token.colorMix`, and `token.css` for composing them. A helper result carries a runtime mark, so a string like `"var(--tbf-page)"` typed into a container is rejected when the config is read, naming the property and what to use instead.
8
+
9
+ **Breaking: paragraph size comes from the text-size scale.** A paragraph was set to a constant `1rem`, and to `0.9375rem` under 769px, so a site that wanted larger running text had to override `p` against the package and fight every utility that came after it. The scale now emits `--text-size-<step>` for every step and `--text-size-body` for the step paragraphs use, chosen by `design.scales.textBody` (`md` by default, rejected unless it names a declared step). A paragraph reads `--text-size-body`, and the mobile reduction is gone: a site that wants a smaller step on phones sets it rather than inheriting an off-scale number. The `tbf-text-xs`, `-sm`, `-md` and `-lg` classes were also written twice, once by the scale and once as fixed pixel values in the utilities that won the cascade, so a site that changed the scale saw no change; the fixed copies are removed and every `tbf-text-<step>` reads its scale variable.
10
+
11
+ **Breaking: footer group headings are plain `h5` elements.** The `__heading` class, its styles and the `shell-footer-heading-*` variables are gone; a heading takes the page's own `h5` style and the footer's text colour, so it reads as part of the type system instead of a separate label.
12
+
13
+ **Breaking: the heavy systems live on their own subpaths.** `@trebired/frontend/graph`, `/logs`, `/editor`, `/explorer`, `/code`, `/fullscreen`, `/live`, `/realtime` and `/socket` each export their system whole, runtime and React components together, and the root and `/react` entrypoints no longer re-export them. A re-export kept the system in every page the moment anything else was imported from the same entrypoint, because a bundler cannot drop a module that is reachable both from a static re-export and from an on-demand import. Only the import path changes; `LiveIslandMount`, `LiveRegion` and the fullscreen buttons stay on `/react`.
14
+
15
+ **Runtime systems load when the page carries them.** `bindFrontendRuntime` used to import every widget system and bind each one on every page, so a site that drew no chart still shipped Chart.js, the log viewer, the code highlighter, the editor, fullscreen and the live socket client in its entry. Graphs, logs, code blocks, editors, fullscreen, source-language breakdowns and live cards and lists are now imported the first time their markup appears in a bound root, each as its own chunk; a page without them never downloads them. The package declares `sideEffects`, so a re-export an app never imports is dropped from its bundle. On a marketing site the client entry fell from 990 KB to 82 KB once its routes were split as well, and a page transfers about 250 KB of script instead of 390 KB.
16
+
17
+ **`mountLiveIsland` takes `prepare`.** The hook runs before the island renders or hydrates, on the first mount and on every remount after a soft navigation, and the island waits for it. It receives `url`, the address the island is about to render; during a soft navigation that is the target, because the history entry is pushed only after the new content is in place. An app uses it to load what the island renders, such as the page module of the current route, so a route can live in its own chunk and still hydrate against the server markup.
18
+
19
+ **Breaking: `moneyRatesSource` no longer stamps `fetchedAt`.** The value carried the moment of the fetch to the millisecond, and a site that inlines its build data then shipped a different client bundle on every build: one chunk changed, every chunk importing it was renamed, and visitors downloaded all of it again after each deploy. The value is now `{ base, date, rates, source }`, a pure function of what the exchange published, so two builds of the same day are byte-identical. `date` remains the date the rates are for.
20
+
21
+ **Breaking: `gravatarProfilesSource` and `profileHash` are removed.** Gravatar's public API returns no custom links without a key, and a team page is better served by a file each person publishes and edits in their own repository. An application that listed people through Gravatar declares its own source under `data.sources`.
22
+
23
+ **Breaking: `shell.header.maxWidth` names the content band, not the bar.** The bar used to carry its gutter inside that width while the footer and every page band carry it outside, so one value produced two different content lines: past about 1366px the brand sat one gutter further in than the title under it. The bar and the mobile menu now add the gutter to the cap, so `80rem` in the header and `80rem` in the footer put their first character on the same vertical line at every width. An application that compensated by widening the header should drop the compensation.
24
+
25
+ - The mobile menu reads the gutter from `bar-px` and `bar-px-wide` instead of a hardcoded `1.5rem` / `1rem`, so an open menu's links line up with the brand above them.
26
+
27
+ - `hairline` rendered as a `<ul>` kept the browser's 40px list indent, and since the root's background is the border colour, that indent painted as a wide grey bar down the left of every hairline list. It was the one list reset in the package that did not zero its padding.
28
+
29
+ - A text document's question is a plain `<h3>`, the same level a prose part gets under the same section. It was an `<h4>` under an `<h2>`, which skipped a level and left an FAQ's outline with a hole in it; the level says how deep the heading sits, and a disclosure part sits exactly as deep as a prose part. It is also It carried its own font size, letter spacing and text transform, no longer carrying its own font size, letter spacing and text transform, which fought whatever scale the application sets for its headings and made an FAQ the one place on a site where a title did not look like a title; `shell.textDocument.questionFontSize` is gone with it. Its text now sits in the heading rather than in a `<span>`, and the trigger inherits case and letter spacing, since the HTML rendering spec resets both on a form control and the heading's own styling never reached its text.
30
+
31
+ - A document without a section navigator keeps the page frame. `PageOutlineLayout` returned its children bare whenever there was nothing to put in the rail, which dropped the frame grid as well, and the frame is what establishes the page's content column, not just the rail's position. A document that declares `outline: false`, or that has fewer sections than the outline's minimum, therefore rendered its chapters edge to edge with no gutter on either side. The frame is now rendered whenever it is asked for and only the rail is conditional; the rail column itself is reserved by `:has(> …__rail)`, so a document with no rail spends the whole measure on its text instead of holding 13rem open for nothing.
32
+
33
+ - `PageOutlineLayout` and `TextDocumentBody` take an `aside`, rendered at the top of the rail with the section navigator under it. An article needs its author, dates and a way back beside the text, and the rail was the one column that could hold them; a page had to build its own two-column layout around the document to get them there and lost the navigator doing it. Below 1024px the navigator stays hidden and the aside alone is shown above the text, so nothing it carries disappears on a phone. A layout with an aside renders its rail even when there are too few sections for a navigator.
34
+
35
+ - `TextDocumentBody` takes `opening`, which renders the document's lead, the paragraphs before the first section, as an untitled opening in the flow of the text. An article that starts with prose before its first heading, or has no headings at all, is now a document like any other; the opening carries `__opening` and is not listed in the navigator. In a framed document the opening takes the first alternate tone and the chapters continue from the next one, so the opening and the first chapter never share a tone; a framed rail sits in the content column on a phone instead of falling into the gutter. The rail now sits in a `__track` that a framed layout lays over the rail column for the full height of the document instead of placing it in the first row, so a tall rail no longer stretches the first chapter to its own height, and the rail stays in view all the way down.
36
+
37
+ - `Marquee` is exported from `@trebired/frontend/react`. The component and its stylesheet shipped, and its reduced-motion handling already honours both the system setting and the a11y toggle, but the react entry listed its exports by name and left it out, so an application could not render one without reaching into `dist`.
38
+
39
+ **Breaking: `LiveIslandMount` renders the island root and nothing else.** It used to return a fragment holding a JSON state script and the root element, and a fragment with two children is a tree fork: React derives `useId` from a node's position, so every id inside the island was computed two bits deeper on the server than on the client, which hydrates the root element on its own. Every `useId` under a live island therefore mismatched on every page of every site, and the components that pay for it are the ones wiring an id between elements, such as a disclosure's trigger and its panel. The state script is `LiveIslandState` now, with the `state` and `stateId` props moved to it, and it is rendered in its own `renderToString` call or anywhere outside the island root. An application that passed `stateId` to `LiveIslandMount` is rejected by the type, and an application that never read the script back, which is the common case, simply drops the prop.
40
+
41
+ - A binder leaves an island alone until it has hydrated, and comes back for it afterwards. `queryAll` skips any element inside a `[data-tbf-live-island-root]` still marked `data-tbf-live-island-hydrated="false"`, so no binder touches markup React is about to hydrate. On a soft navigation the swapped-in HTML was bound before the island remounted, which set `data-tbf-disclosure-bound`, flipped `aria-expanded` and marked every closed panel `inert`, and React then hydrated against a DOM three attributes ahead of it. Skipping alone would lose those elements: an observer-driven binding from `bindElements` runs once per mutation and never looks at that subtree again, which left a hero's motif canvas unstarted and unsized after every soft navigation. Each binding now also listens for the island's own hydrated event and binds that subtree when it arrives, so nothing is bound early and nothing is dropped.
42
+
43
+ - The page outline no longer reads the address while it renders. Its active section started from `location.hash` in the first client render, which the server cannot know, so opening a document at `#some-section` marked one link on the server and another in the browser and React reported a hydration mismatch. The first render now marks the item the server marks; the scroll measurement that runs once the outline is mounted picks the section actually in view, which is the one the hash scrolled to. Each link also carries `suppressHydrationWarning`, because the boot script sets `aria-current` on it before React arrives, exactly as it already did on the list.
44
+
45
+ - The page outline's list no longer argues with its own boot script. The marker offset, its height and `data-tbf-outline-ready` are written by the inline script before paint and by the marker effect after, never by a render, so the element carries `suppressHydrationWarning`: React renders none of those attributes and has no business diffing them. Without it the boot script the outline ships specifically to be correct before hydration was reported as a hydration mismatch on every document page.
46
+
47
+ **Breaking: there is one link.** `tbf-text-link` is it, and the header and the footer render their links with it. The three link styles the package used to ship are gone with their tokens: `tbf-site-link` and `tbf-site-link-label` (the whole `site-link` stylesheet), `tbf-site-header__link` and `tbf-site-header__link-label` with `shell.header.link.*`, and `tbf-site-footer__link` with `shell.footer.link.*`. A site styled its navigation in one place, its footer in another and its inline links in a third, and the three drifted. `primitives.textLink` is now the single place, and it carries the look the shell links had: the surface's own `--tbf-text-muted` at rest, full ink on hover, focus and `aria-current`, and an underline that wipes in from the start edge. The underline is the one the shell links had, down to its 0.3rem corner radius, and it is drawn on the link itself rather than on a wrapper span. Where a link is the label of a control that owns its own `::after`, such as the header's navigation group trigger with its chevron, the link sits inside that control and follows its hover, focus and expanded state. An application that configured `shell.header.link` or `shell.footer.link` moves those values to `primitives.textLink`; both are refused by the config check, so a stale declaration fails the build rather than going quiet.
48
+
49
+ - A text link reads `fontWeight`, `letterSpacing` and `textTransform`, and its states cover hover, focus-visible and `aria-current="page"` (plus the `tbf-text-link--active` modifier the shell sets). Its underline is tuned with `root.underlineHeight`, `root.underlineShift` and `root.underlineColor`, and its timing with `motion.duration` and `motion.easing`.
50
+
51
+ - The site header stopped measuring its own fit in whole pixels. `scrollWidth` rounds a fractional content width up, so a navigation that fitted exactly still reported one pixel of overflow, and a `<= 1` guard was the only thing keeping the bar out of its compact state. A row whose content measured a shade wider latched compact and stayed there, because the width it recorded to come back at was computed from that same bad number. It compares the children's right edges against the row's now, in fractions, and reports zero when the row fits.
52
+
53
+ - An anchor clears the header it scrolls under. `scroll-margin-top` fell back through `--tbf-layout-top-offset` to the header height, but the layout declares that variable as `0px` on `:root`, so the fallback never fired and the chain stopped at zero; an application that noticed had to hardcode its own header height, and one that hardcoded it exactly landed the target flush against the header's bottom border. `--tbf-anchor-top` is the greatest of the layout offset, the shell header height and the app header height, and the default offset is that plus `--tbf-anchor-gap`, one medium gap. The page outline's sticky rail reads the same value, so the rail and the heading it points at clear the header by the same amount. An application that sets `--tbf-anchor-offset` still overrides all of it.
54
+
55
+ - The header's navigation group trigger is the size of the links beside it. It is a `<button>`, which takes the browser's own font rather than the page's, and the stylesheet compensated with a hardcoded `0.875rem` while every link next to it inherited `1rem`; the one item in the bar that opens a menu was two pixels smaller than the rest. It takes `font: inherit` now, so it matches its siblings in family, size and line height without a number to keep in step. The navigation and the mobile menu carry the bar's `0.875rem` themselves, so every link in them takes it by inheritance: removing the header's own link rule had quietly let its anchors grow to the page's `1rem` while the trigger stayed behind, and the size is a fixed part of the bar rather than a per-site option.
56
+
57
+ - The page outline is marked before it hydrates. Its active item was state that started empty, so the server sent a rail with nothing current and the first effect filled it in after paint; a reader saw a blank list snap into place on every load. The server marks the first section now, and the outline ships an inline script beside its list that reads the address, moves the mark to the section a link points at and places the sliding marker, all before the first paint. On a reload it reads the section it recorded on `pagehide` instead, because clicking an outline link writes a hash and the browser then restores a scroll position that hash no longer describes, so the rail marked the old link and corrected itself a moment later. It takes the stored value only for a reload or a history move, by navigation type, exactly as the header's tone does. Verified with hydration blocked: at the top of a document the first item is current with the marker at `0px`, and on a deep link the named item is current with the marker already at its offset.
58
+
59
+ - The page outline's content column stands off its own grid line. A section heading sat exactly on it while the paragraphs under it were indented, so the heading read as hanging off the edge of the column rather than starting it, and a heavy uppercase face made the first letter look clipped. It takes `--tbf-page-outline-layout-content-px`, one medium gap by default and only once the rail is beside it; in the single column below that breakpoint there is no rail to stand off from, so it stays at zero.
60
+
61
+ - A section heading sits one step away from its body on every side. The gap under it was a large step while the indent beside it was a medium one, so the same heading was 40px from the paragraph below and 24px from the paragraph's start edge; both are the medium step now, and with the outline rail's standoff set to the same value the three spaces that frame a heading read as one measure rather than three.
62
+
63
+ **Elements say what they are.** A browser's own reader mode, Firefox's Reader View, Safari's Reader and Brave's SpeedReader alike, scores a page's markup to decide both whether to offer itself and which part of the page to keep. Nothing an application ships can turn that on; the only lever is markup that says what each region is, which is worth having on its own terms.
64
+
65
+ - A text document is an `<article>`, and exactly one. Its parts were `<article>` elements too, so a document presented a reader with a dozen competing candidates and any of them could win; a part with a heading is a `<section>` now and a part without one is a plain wrapper.
66
+
67
+ - The page outline's rail is an `<aside>` and sits outside the article rather than inside it, since navigation within an article is the first thing a reader is told to drop. The document's `<article>` holds its chapters and nothing else.
68
+
69
+ **The text document is its own system.** `document` joins the system list with the component and the stylesheet that used to sit inside `layout`, so an application that ships no documents can switch it off and an application that does gets the whole thing rather than assembling one. Its chapters alternate a page band: `alternate` takes a list of class names and each chapter wears the next one, cycling, and the application decides what those names paint. The package owns only the placement. A document that alternates lays its outline out as a page frame, one grid whose named lines run `full`, `rail` and `content`: the rail is an ordinary sticky grid item in the rail column, and a chapter spans `full-start / full-end` and re-enters the measure with `grid-template-columns: subgrid`, so a band reaches the viewport edges while its text stays on the same line as every other page's. The rail sits beside the text rather than over it, the distance between them is a grid gap, and both follow the measure at every width instead of being positioned against the viewport. `shell.outline.frame.measure` and `shell.outline.frame.gutter` set that measure, and `shell.outline.frame.offset` starts the rail level with the first heading, since the padding a chapter carries belongs to the application's band and the rail cannot read it. It still renders the page outline, and `outline` on the component now decides that explicitly: `false` refuses the rail whatever the document's front matter says, `true` insists on it below the section minimum, and left alone it behaves as before. `TextDocumentBody` is exported from the same place it always was.
70
+
71
+ **The indent is its own system.** `indent` joins the system list and ships one class: `tbf-indent` steps a block in from the start edge by `typography.indent.size`, and `tbf-indent--rule` draws a hairline down that edge from `typography.indent.border`. It belongs to no component, so anything may wear it. A text document is the first caller rather than the owner: a section's body gets the class, and a part that carries a heading gets it again on its paragraphs, which is how a document written without subsections indents once and one written with them indents twice. A disclosure section is left bare, because its cells already inset their own text and padding a panel whose background is the border colour paints a slab down its start edge instead of a margin. The page outline's content standoff reads the same token, so the space that frames a heading cannot drift from the space beside it. The site header and footer stylesheets moved under `layout/styles/site/` with the menu that was already there. `shell.textDocument.indent` is gone; the step is set once for the whole application.
72
+
73
+ - A text link's hover and active colour is the surface's `--tbf-text`, not `currentColor`. `currentColor` resolves against the inherited colour, so whenever an ancestor's own `color` was mid-transition the link's target moved every frame and its transition restarted every frame with it. The header's light-to-dark follow on scroll did exactly that: the active link fired twenty-one `transitionstart`s in one flip and settled 680ms in, while the links beside it, which read a custom property, each ran once and settled at 324ms. All of them now start once and land together.
74
+
75
+ - The shell marks a link active when a navigation starts rather than when it commits. `aria-current` used to move inside the same task that swaps the page, so the transition it triggered elapsed behind a blocked main thread and the next painted frame already showed the end state: the outgoing link ran for 59ms of its 300ms and simply snapped. A navigation now announces its destination as it begins, so the underline crosses over while the next page is being fetched and both links run the full duration. `page-pending` carries the target URL and an empty string when the navigation settles or falls back.
76
+
77
+ - A header or footer link can be any element. `SiteLink` takes a `node`, and when it is set the shell renders that node instead of building an anchor, so an application that wants a button, a custom component or anything else in its navigation is not fighting the component for it. Nothing else changes: a link without `node` still gets the text link, its active state and its soft redirect.
78
+
79
+ **Breaking: the package stops shipping application surfaces.** `prose` and `glow` are gone, with their component tokens. A reading measure and a pair of blurred orbs are boxes, not behaviour, and an application that wants them declares a container for them. `components.surfaces.prose` and `components.surfaces.glow` are refused by the config check, so a stale declaration fails the build rather than going quiet.
80
+
81
+ - A line height utility scale, `tbf-lh-xs` through `tbf-lh-lg`, sitting beside the text size scale. Each reads `--tbf-line-h-*` so an application can retune the step without overriding the class. A row pairing a heading with a value had no way to tighten both without a container of its own.
82
+
83
+ - The page outline's links no longer tint their background on hover. The colour change is the whole signal; the tint turned a quiet rail into a list of buttons. `--tbf-page-outline-link-hover-bg` is gone.
84
+
85
+ - The tooltip has no arrow. It was a pair of bordered triangles positioned from script in one coordinate system and re-clamped by the stylesheet in another, and it was never right at both screen edges at once. The panel is a panel: it centres on its trigger, clamps to the viewport, and keeps the entry direction it always had. `overlay.tooltip.arrow` is gone with it.
86
+
87
+ - A tooltip reads `data-tbf-tooltip` again after the first bind. The text was memoised per element with nothing to invalidate it, so a trigger whose tooltip changed kept announcing the old one unless `setTooltipText()` was called.
88
+
89
+ - A tooltip follows its trigger while the page scrolls. It only re-placed on resize, so scrolling left it behind.
90
+
91
+ - `VisibilityToggle` takes `tooltip`, and the runtime keeps that tooltip in step with the state: the same words the button announces are the words the tooltip shows, on both sides of a toggle.
92
+
93
+ - The `chrome` button's hover border no longer jumps to full ink. It went from a 24% mix of the current colour to the colour itself, which reads as a hard black outline on a light surface; it is a 42% mix now.
94
+
95
+ **Headings take an application's own face.** `h1` through `h6` read `--tbf-heading-font-family`, `--tbf-heading-letter-spacing`, `--tbf-heading-line-h` and `--tbf-heading-text-transform`, falling back to what they did before, and they wrap and balance like the titles they are. An application sets those once under `design.semantics.heading`, beside the `--tbf-h1-font-size` scale it could already set, and every heading follows: in a page, in a modal, in a popover, anywhere the package renders one. Before this, a heading outside the application's own markup silently fell back to the body face.
96
+
97
+ **Breaking: the accessibility settings are a dialog, not a popover.** The panel is a modal: it has its own heading, names itself through `aria-labelledby`, carries a close control, traps focus, locks the page behind it and returns focus to the trigger when it closes. The trigger announces `aria-haspopup="dialog"` instead of pretending to be a menu, and each group of settings is a heading under the dialog's own, where they used to be paragraphs dressed as titles. A settings panel with radio groups and a switch is a task to finish, not a menu to glance at, and the popover gave it no title, no focus to return to, and no outline a screen reader could follow. It closes with Escape, with a click outside, or with the trigger.
98
+
99
+ **A visibility system.** A new `visibility` system hides any region behind an icon button, and is tied to nothing in particular: mark a scope with `visibilityScopeAttrs()`, mark what may disappear with `visibilityTargetAttrs()`, and drop a `<VisibilityToggle>` anywhere inside the scope. The toggle holds both icons and the stylesheet shows the one the current state calls for, so the button never re-renders and nothing mutates markup React owns. `bindVisibilities()` binds it, `setVisibilityHidden()` and `toggleVisibility()` drive it from code, and a `tbf:visibility` event reports every change.
100
+
101
+ - `tone: "light" | "dark"` on a container, a part or a variant. The package includes its own `on-light` / `on-dark` mixin, which is what the removed `HairlineCell` did. An application no longer copies five custom properties to keep a light surface readable inside a dark band, and the two can no longer drift.
102
+
103
+ - `token.frontend(name, fallback?)` reads the package's own namespace without spelling the prefix, `token.gap(size)` and `token.radius(size?)` read the spacing and corner scales, and `token.css` composes a value out of other tokens.
104
+
105
+ - `readMoneyRates()` reads the rates a build wrote, so an application stops opening `dist/data/rates.json` itself. It takes `rootDir`, `dir` and `name`, defaults to the build's own `dist/data/rates.json`, returns `{}` when the file is not there yet, and throws if it is there and unreadable.
106
+
107
+ - `defineContainers()` types a container set at its definition, so a bad `tone` or field is a type error where it is written rather than a config error at build time.
108
+
109
+ - Every class the package writes is namespaced, and `verify:frontend` now proves it: the only unprefixed selectors are the third-party ones it integrates with (`monaco-*`, `cropper-*`), and a component may not write a literal `className`.
110
+
3
111
  ## 27.0.0
4
112
 
5
113
  **Breaking: the package ships no container components, and an application declares its own.** A box that exists to hold other boxes is not something to import. `containers` config names each one and the package emits the class: `style` for the base, `on` for a state, `at` for a breakpoint, `parts` for `__element` children, `variants` for `--modifier` siblings. `<div class="card">` is then the whole API, with nothing to import and nothing to keep in step.
package/README.md CHANGED
@@ -160,7 +160,7 @@ It is not a markdown renderer and will not become one. Bold, lists and headings
160
160
 
161
161
  ### Build Data Sources
162
162
 
163
- `textDocumentsSource`, `moneyRatesSource` and `gravatarProfilesSource` are build time data sources for `@trebired/bundler`. An application declares them in `.trebired/bundler/config.ts` under `data.sources` and writes no fetching code of its own:
163
+ `textDocumentsSource` and `moneyRatesSource` are build time data sources for `@trebired/bundler`. An application declares them in `.trebired/bundler/config.ts` under `data.sources` and writes no fetching code of its own:
164
164
 
165
165
  ```ts
166
166
  data: {
@@ -169,15 +169,12 @@ data: {
169
169
  sources: {
170
170
  documents: textDocumentsSource({ org: "Example", repo: "meta", slugs: ["privacy"], langs: ["en", "cs"] }),
171
171
  rates: moneyRatesSource({ base: "CZK", currencies: ["EUR"] }),
172
- team: gravatarProfilesSource({ people: [{ email: "name@example.net", role: "founder" }] }),
173
172
  },
174
173
  },
175
174
  ```
176
175
 
177
176
  Each source reads what the last build wrote through the `cached` it is handed, so a missing document keeps the words that were there before rather than dropping the page, and returns a `detail` line the bundler logs.
178
177
 
179
- `gravatarProfilesSource` returns one row per person: `name`, `bio`, `jobTitle`, `location`, `profileUrl`, the person's own `links` and their verified `accounts`, each as `{ label, service, url }`, and `role`, which is the label the application gave that person rather than anything Gravatar knows. The avatar comes back as a build asset, which the build writes into the site output directory, so the picture is served from the site's own origin. A profile that cannot be read falls back to the row and the avatar from the last build; a person with no picture leaves `avatar` empty instead of pointing at one that is not there.
180
-
181
178
  ### Text Documents
182
179
 
183
180
  `parseTextDocument` reads a document from a text repository: front matter, a lead, sections, and the parts inside them. A document says how it is presented rather than leaving a consumer to recognise it by slug:
@@ -287,9 +284,27 @@ containers: {
287
284
  }
288
285
  ```
289
286
 
290
- That emits `.card`, `.card:hover`, `.card__header`, `.card--muted`, and the `md` block inside the matching `@media (max-width: …)` query. `style` is the base, `on` keys a selector suffix (`hover`, `focus-visible`, or anything starting with `:`, `[` or `&`), `at` keys a breakpoint the design declares, `parts` are `__element` children and `variants` are `--modifier` siblings.
287
+ That emits `.tbfm-card`, `.tbfm-card:hover`, `.tbfm-card__header`, `.tbfm-card--muted`, and the `md` block inside the matching `@media (max-width: …)` query. The config names the container `card`; the package writes the prefix.
288
+
289
+ Two prefixes, because there are two kinds of ownership. `tbf-` is what the package owns outright, and an application may never write into it. `tbfm-` is tbf-managed: the application names the container, owns it and changes it, and the package only turns it into CSS. A container name may not start with either prefix. `style` is the base, `on` keys a selector suffix (`hover`, `focus-visible`, or anything starting with `:`, `[` or `&`), `at` keys a breakpoint the design declares, `parts` are `__element` children and `variants` are `--modifier` siblings.
290
+
291
+ `tone: "light"` or `tone: "dark"` on a container, a part or a variant gives it the package's own palette for that tone, the same mixin the package uses internally. A light surface inside a dark band says `tone: "light"` and stays readable; nothing is copied.
292
+
293
+ Every value comes from the config token helpers, and a package token written as a string is refused when the config is read:
294
+
295
+ ```ts
296
+ import { defineContainers } from "@trebired/frontend/config";
297
+
298
+ const card = {
299
+ style: { background: token.frontend("page"), border: token.border(semantic.borderSurface1), padding: token.gap("md") },
300
+ tone: "light",
301
+ };
302
+ export const containers = defineContainers({ card });
303
+ ```
291
304
 
292
- A container name is kebab-case and may not start with `tbf-`, which is the package's. An unknown field, an undeclared breakpoint and a non-scalar value are all refused when the config is read, with the path that is wrong.
305
+ `token.css` composes one value out of several, for example `token.css\`min(${token.variable("band-max")}, 100%)\``.
306
+
307
+ A container name is kebab-case and may not start with `tbf-` or `tbfm-`, both of which the package writes itself. An unknown field, an undeclared breakpoint and a non-scalar value are all refused when the config is read, with the path that is wrong.
293
308
 
294
309
  Use it for every box an application would otherwise wrap in a component of its own: a card, a band, a panel, a cell, a row. The package ships no such components, so there is nothing to import and nothing to keep in step.
295
310
 
@@ -323,6 +338,14 @@ Frontend server helpers own package static assets, icon SVG endpoints, React doc
323
338
 
324
339
  Static icon mode uses `registerStaticIcons()` in the browser. Missing cached icons do not trigger HTTP when the runtime mode is `"static"`.
325
340
 
341
+ ### Systems on Demand
342
+
343
+ `bindFrontendRuntime` binds graphs, logs, code blocks, editors, fullscreen targets, source-language breakdowns and live cards and lists only when a bound root carries their markup, and imports each system the first time it does. Each system is its own chunk: a page without a graph never downloads Chart.js, and a page without logs never downloads the log viewer or the socket client. Binding these systems is asynchronous; everything else binds synchronously as before.
344
+
345
+ ### Island Preparation
346
+
347
+ `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.
348
+
326
349
  ## Public API
327
350
 
328
351
  Entrypoints:
@@ -331,12 +354,17 @@ Entrypoints:
331
354
  - `@trebired/frontend/config`
332
355
  - `@trebired/frontend/react`
333
356
  - `@trebired/frontend/server`
357
+ - `@trebired/frontend/code`, `/editor`, `/explorer`, `/fullscreen`, `/graph`, `/live`, `/logs`, `/realtime`, `/socket`
334
358
 
335
359
  The root entrypoint exports browser runtime binders, namespace helpers, and static icon cache registration. The config entrypoint exports config loading, normalization, generated CSS, and dependency collection. The React entrypoint exports generic UI components. The server entrypoint exports frontend-related backend helpers plus build-time static icon cache helpers.
336
360
 
361
+ Each system subpath exports that system whole, its runtime and its React components together: `@trebired/frontend/graph` carries `GraphPanel`, the chart presets, `buildChartConfig` and `mountGraphCards`. The root and `/react` entrypoints do not re-export them, because a bundler keeps a re-exported system in every page the moment anything else is imported from the same entrypoint.
362
+
337
363
  ## Migration Notes
338
364
 
339
- Applications import public APIs only from the package root, `/config`, `/react`, and `/server`. There is no public Sass, style, or internal component subpath API.
365
+ Applications import public APIs only from the package root, `/config`, `/react`, `/server`, and the system subpaths. There is no public Sass, style, or internal component subpath API.
366
+
367
+ **28.0.0 moved the heavy systems to their own subpaths.** Graphs, logs, editors, the file explorer, code text, fullscreen, live cards and lists, realtime and the socket client are no longer exported from `@trebired/frontend` or `@trebired/frontend/react`. Import them from `@trebired/frontend/graph`, `/logs`, `/editor`, `/explorer`, `/code`, `/fullscreen`, `/live`, `/realtime` and `/socket`. The names are unchanged; only the import path moves. `LiveIslandMount`, `LiveRegion` and the fullscreen buttons stay on `/react`.
340
368
 
341
369
  **27.0.0 removed every container component.** `PageBand`, `Card`, `CardHeader`, `CardBody`, `CardFooter`, `HairlinePanel`, `HairlineCell`, `ActionRow`, `TrackList`, `TrackItem`, `PinnedSplit`, `IconTile`, `Tag`, `AccentRule`, `Frame`, `FrameCover`, `FrameScrim`, `FrameCaption`, `FrameAction` and `CanvasPanel` are gone, and so are the `tbf-band`, `tbf-tile`, `tbf-tag`, `tbf-rule`, `tbf-action-row`, `tbf-track` and `tbf-frame` classes. Declare what the application needs under `containers` and write the class. `HeadingScope` is now exported, because a container no longer opens a heading level: wrap a section in it where a nested title should step down.
342
370
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/a11y/components/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAExE,KAAK,sBAAsB,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF,iBAAS,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,+BAoCxD;AAED,QAAA,MAAM,iBAAiB,2BAAqB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AACjD,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/a11y/components/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAExE,KAAK,sBAAsB,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF,iBAAS,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,+BA2CxD;AAED,QAAA,MAAM,iBAAiB,2BAAqB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AACjD,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { sourceLanguageMessage } from "./../../language/messages.js";
3
3
  import { frontendClassName, frontendClassNames, frontendDataAttrs } from "../../namespace/index.js";
4
4
  import { Icon } from "../../icons/react/index.js";
@@ -9,11 +9,12 @@ function accessibility_menu(props) {
9
9
  const triggerId = props.id || "a11y_menu_trigger";
10
10
  const panelId = `${triggerId}_panel`;
11
11
  const label = localT("a11yTriggerLabel");
12
- return (_jsxs(_Fragment, { children: [_jsx("button", { "aria-controls": panelId, "aria-expanded": "false", "aria-label": label, className: primitiveButtonClassName({
12
+ const titleId = `${panelId}_title`;
13
+ return (_jsxs(_Fragment, { children: [_jsx("button", { "aria-controls": panelId, "aria-haspopup": "dialog", "aria-label": label, className: primitiveButtonClassName({
13
14
  className: frontendClassName("a11y-trigger"),
14
15
  icon: true,
15
16
  variant: "chrome",
16
- }), id: triggerId, type: "button", ...frontendDataAttrs({ "popover-indicator": "false", "popover-trigger": "", "tooltip": label }), children: _jsx(Icon, { spec: "remixicon:wheelchair-line" }) }), _jsx("div", { "aria-hidden": "true", "aria-label": localT("a11yPanelLabel"), className: frontendClassNames("popover", "a11y-panel"), id: panelId, inert: true, role: "group", ...frontendDataAttrs({ "a11y-panel": "", "popover": "", "popover-autofocus": "true" }), children: a11ySections({ lang: props.lang, settings: props.settings, textSizes: props.textSizes }) })] }));
17
+ }), id: triggerId, type: "button", ...frontendDataAttrs({ "modal-open": "", "tooltip": label }), children: _jsx(Icon, { spec: "remixicon:wheelchair-line" }) }), _jsx("div", { "aria-hidden": "true", "aria-labelledby": titleId, className: frontendClassName("modal"), id: panelId, role: "dialog", ...frontendDataAttrs({ "modal": "" }), children: _jsxs("div", { className: frontendClassNames("modal__content", "a11y-panel"), ...frontendDataAttrs({ "a11y-panel": "", "modal-content": "" }), children: [_jsx("h4", { id: titleId, children: localT("a11yPanelLabel") }), a11ySections({ lang: props.lang, settings: props.settings, textSizes: props.textSizes })] }) })] }));
17
18
  }
18
19
  const AccessibilityMenu = accessibility_menu;
19
20
  export { AccessibilityMenu, accessibility_menu };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/a11y/components/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAY7C,SAAS,kBAAkB,CAAC,KAA6B;IACvD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,IAAI,mBAAmB,CAAC;IAClD,MAAM,OAAO,GAAG,GAAG,SAAS,QAAQ,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEzC,OAAO,CACL,8BACA,kCACe,OAAO,mBACR,OAAO,gBACT,KAAK,EACjB,SAAS,EAAE,wBAAwB,CAAC;oBAC9B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC;oBAC5C,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,QAAQ;iBACtB,CAAC,EACF,EAAE,EAAE,SAAS,EACb,IAAI,EAAC,QAAQ,KACT,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,YAEhG,KAAC,IAAI,IAAC,IAAI,EAAC,2BAA2B,GAAG,GAChC,EACT,6BACY,MAAM,gBACN,MAAM,CAAC,gBAAgB,CAAC,EACpC,SAAS,EAAE,kBAAkB,CAAC,SAAS,EAAE,YAAY,CAAC,EACtD,EAAE,EAAE,OAAO,EACX,KAAK,QACL,IAAI,EAAC,OAAO,KACR,iBAAiB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,YAEtF,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,GACnF,IACH,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/a11y/components/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAY7C,SAAS,kBAAkB,CAAC,KAA6B;IACvD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,IAAI,mBAAmB,CAAC;IAClD,MAAM,OAAO,GAAG,GAAG,SAAS,QAAQ,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,GAAG,OAAO,QAAQ,CAAC;IAEnC,OAAO,CACL,8BACA,kCACe,OAAO,mBACR,QAAQ,gBACV,KAAK,EACjB,SAAS,EAAE,wBAAwB,CAAC;oBAC9B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC;oBAC5C,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,QAAQ;iBACtB,CAAC,EACF,EAAE,EAAE,SAAS,EACb,IAAI,EAAC,QAAQ,KACT,iBAAiB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,YAE7D,KAAC,IAAI,IAAC,IAAI,EAAC,2BAA2B,GAAG,GAChC,EACT,6BACY,MAAM,qBACD,OAAO,EACxB,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,EACrC,EAAE,EAAE,OAAO,EACX,IAAI,EAAC,QAAQ,KACT,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,YAEtC,eACA,SAAS,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,YAAY,CAAC,KACzD,iBAAiB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,aAEhE,aAAI,EAAE,EAAE,OAAO,YAAG,MAAM,CAAC,gBAAgB,CAAC,GAAM,EAC/C,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,IACnF,GACA,IACH,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC"}
@@ -5,7 +5,7 @@ import checkbox from "../../inputs/advanced/checkbox/index.js";
5
5
  import radio from "../../inputs/advanced/radio/index.js";
6
6
  import { EMPTY_A11Y_SETTINGS, TEXT_SIZES } from "./../settings.js";
7
7
  function sectionTitle(text) {
8
- return _jsx("p", { className: frontendClassName("a11y-section-title"), children: text });
8
+ return _jsx("h5", { children: text });
9
9
  }
10
10
  function motionSection(props, current, localT) {
11
11
  return (_jsxs("div", { className: frontendClassName("a11y-section"), ...frontendDataAttrs({ "a11y-field": "motion" }), children: [sectionTitle(localT("a11yMotionTitle")), radio({
@@ -1 +1 @@
1
- {"version":3,"file":"sections.js","sourceRoot":"","sources":["../../../../src/a11y/components/sections.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sections.js","sourceRoot":"","sources":["../../../../src/a11y/components/sections.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  @use "@trebired/bundler/namespace" as ns;
2
2
  #{ns.class("a11y-panel")} {
3
3
  display: flex;
4
- width: min(22rem, calc(100vw - 2rem));
4
+ width: min(26rem, calc(100vw - 2rem));
5
5
  flex-direction: column;
6
6
  gap: var(#{ns.css-var("gap-md")}, 1.5rem);
7
- padding: var(#{ns.css-var("gap-md")}, 1.5rem);
8
7
  }
9
8
 
10
9
  #{ns.class("a11y-section")} {
@@ -12,10 +11,3 @@
12
11
  flex-direction: column;
13
12
  gap: var(#{ns.css-var("gap-xs")}, 0.5rem);
14
13
  }
15
-
16
- #{ns.class("a11y-section-title")} {
17
- color: currentColor;
18
- transition: color var(#{ns.css-var("tone-change")});
19
- font-size: 0.875rem;
20
- font-weight: 700;
21
- }
@@ -12,9 +12,7 @@
12
12
 
13
13
  #{ns.class("choice-row")},
14
14
 
15
- #{ns.class("dropdown-label")},
16
-
17
- #{ns.class("tab")} {
15
+ #{ns.class("dropdown-label")} {
18
16
  min-height: max(
19
17
  var(#{ns.css-var("ui-btn-root-height")}, 1.75rem),
20
18
  var(#{ns.css-var("target-min")}, 2.75rem)
@@ -0,0 +1,3 @@
1
+ import type { BindRoot } from "./../dom/index.js";
2
+ export declare function bind(scope: BindRoot): void;
3
+ //# sourceMappingURL=lazy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../src/code/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,QAEnC"}
@@ -0,0 +1,5 @@
1
+ import { bindCodeBlocks } from "./index.js";
2
+ export function bind(scope) {
3
+ bindCodeBlocks(scope);
4
+ }
5
+ //# sourceMappingURL=lazy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/code/lazy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,UAAU,IAAI,CAAC,KAAe;IAClC,cAAc,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC"}
@@ -1,5 +1,7 @@
1
- import type { NormalizedFrontendConfig, NormalizedFrontendContainers } from "./types.js";
1
+ import type { FrontendContainersConfig, NormalizedFrontendConfig, NormalizedFrontendContainers } from "./types.js";
2
+ declare const TONE_NAMESPACE = "tone";
3
+ declare function defineContainers<const T extends FrontendContainersConfig>(containers: T): T;
2
4
  declare function normalizeContainersConfig(value: unknown, breakpoints: readonly string[]): NormalizedFrontendContainers;
3
5
  declare function renderContainerClassRules(config: NormalizedFrontendConfig): string[];
4
- export { normalizeContainersConfig, renderContainerClassRules };
6
+ export { TONE_NAMESPACE, defineContainers, normalizeContainersConfig, renderContainerClassRules };
5
7
  //# sourceMappingURL=containers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../../../src/config/containers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAmGpB,iBAAS,yBAAyB,CAChC,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,4BAA4B,CAS9B;AAwCD,iBAAS,yBAAyB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAa7E;AAED,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../../../src/config/containers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,wBAAwB,EAGxB,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAMpB,QAAA,MAAM,cAAc,SAAS,CAAC;AAuH9B,iBAAS,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,wBAAwB,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAEpF;AAED,iBAAS,yBAAyB,CAChC,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,4BAA4B,CAS9B;AA0CD,iBAAS,yBAAyB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAc7E;AAED,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC"}
@@ -1,9 +1,12 @@
1
- import { FRONTEND_PREFIX } from "../namespace/index.js";
1
+ import { FRONTEND_CONTAINER_PREFIX, FRONTEND_PREFIX } from "../namespace/index.js";
2
2
  import { breakpointEntries } from "./breakpoints.js";
3
- import { invalidConfig } from "./shared.js";
3
+ import { invalidConfig, isCssToken } from "./shared.js";
4
4
  const NAME_PATTERN = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/u;
5
5
  const PROPERTY_PATTERN = /^-{0,2}[a-zA-Z][a-zA-Z0-9-]*$/u;
6
- const DEFINITION_FIELDS = ["at", "on", "parts", "style", "variants"];
6
+ const DEFINITION_FIELDS = ["at", "on", "parts", "style", "tone", "variants"];
7
+ const TONES = ["dark", "light"];
8
+ const TONE_NAMESPACE = "tone";
9
+ const RAW_TOKEN_PATTERN = new RegExp(`var\\(\\s*--${FRONTEND_PREFIX}-`, "u");
7
10
  function isPlainRecord(value) {
8
11
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
9
12
  }
@@ -23,8 +26,13 @@ function normalizeStyle(value, label) {
23
26
  for (const [property, declared] of Object.entries(value)) {
24
27
  if (declared === undefined || declared === null)
25
28
  continue;
26
- if (typeof declared !== "string" && typeof declared !== "number") {
27
- throw invalidConfig(`${label}.${property} must be a string or a number`);
29
+ const token = isCssToken(declared);
30
+ if (!token && typeof declared !== "string" && typeof declared !== "number") {
31
+ throw invalidConfig(`${label}.${property} must be a string, a number or a config token`);
32
+ }
33
+ if (!token && typeof declared === "string" && RAW_TOKEN_PATTERN.test(declared)) {
34
+ throw invalidConfig(`${label}.${property} writes a package token by hand :: ${declared}`
35
+ + ` :: read it with the config token helpers, or compose it with token.css`);
28
36
  }
29
37
  style[cssProperty(property, `${label}.${property}`)] = String(declared);
30
38
  }
@@ -34,8 +42,10 @@ function normalizeName(name, label) {
34
42
  if (!NAME_PATTERN.test(name)) {
35
43
  throw invalidConfig(`${label} must be kebab-case :: ${name}`);
36
44
  }
37
- if (name.startsWith(`${FRONTEND_PREFIX}-`)) {
38
- throw invalidConfig(`${label} may not start with ${FRONTEND_PREFIX}-, that prefix is the package's :: ${name}`);
45
+ for (const reserved of [FRONTEND_PREFIX, FRONTEND_CONTAINER_PREFIX]) {
46
+ if (!name.startsWith(`${reserved}-`))
47
+ continue;
48
+ throw invalidConfig(`${label} may not start with ${reserved}-, the package writes that prefix itself :: ${name}`);
39
49
  }
40
50
  return name;
41
51
  }
@@ -56,6 +66,17 @@ function normalizeStyleMap(value, label, known) {
56
66
  }
57
67
  return out;
58
68
  }
69
+ function normalizeTone(value, label) {
70
+ if (value === undefined)
71
+ return null;
72
+ if (typeof value !== "string" || !TONES.includes(value)) {
73
+ throw invalidConfig(`${label} must be one of ${TONES.join(", ")}`);
74
+ }
75
+ return value;
76
+ }
77
+ function toneDeclarations(tone) {
78
+ return tone ? [` @include ${TONE_NAMESPACE}.on-${tone};`] : [];
79
+ }
59
80
  function normalizeDefinition(value, label, nested, breakpoints) {
60
81
  if (!isPlainRecord(value))
61
82
  throw invalidConfig(`${label} must be an object`);
@@ -72,6 +93,7 @@ function normalizeDefinition(value, label, nested, breakpoints) {
72
93
  on: normalizeStyleMap(value.on, `${label}.on`),
73
94
  parts: {},
74
95
  style: value.style === undefined ? {} : normalizeStyle(value.style, `${label}.style`),
96
+ tone: normalizeTone(value.tone, `${label}.tone`),
75
97
  variants: {},
76
98
  };
77
99
  if (nested)
@@ -86,6 +108,9 @@ function normalizeDefinition(value, label, nested, breakpoints) {
86
108
  }
87
109
  return definition;
88
110
  }
111
+ function defineContainers(containers) {
112
+ return containers;
113
+ }
89
114
  function normalizeContainersConfig(value, breakpoints) {
90
115
  if (value === undefined)
91
116
  return {};
@@ -113,7 +138,9 @@ function stateSelector(selector, state) {
113
138
  return `${selector}:${state}`;
114
139
  }
115
140
  function renderDefinition(selector, definition, breakpoints) {
116
- const lines = [...ruleFor(selector, definition.style)];
141
+ const tone = toneDeclarations(definition.tone);
142
+ const body = [...tone, ...declarations(definition.style)];
143
+ const lines = body.length ? [`${selector} {`, ...body, "}"] : [];
117
144
  for (const [state, style] of Object.entries(definition.on)) {
118
145
  lines.push(...ruleFor(stateSelector(selector, state), style));
119
146
  }
@@ -132,15 +159,16 @@ function renderContainerClassRules(config) {
132
159
  const breakpoints = config.design.breakpoints;
133
160
  const lines = [];
134
161
  for (const [name, definition] of Object.entries(config.containers)) {
135
- lines.push(...renderDefinition(`.${name}`, definition, breakpoints));
162
+ const selector = `.${FRONTEND_CONTAINER_PREFIX}-${name}`;
163
+ lines.push(...renderDefinition(selector, definition, breakpoints));
136
164
  for (const [part, nested] of Object.entries(definition.parts)) {
137
- lines.push(...renderDefinition(`.${name}__${part}`, nested, breakpoints));
165
+ lines.push(...renderDefinition(`${selector}__${part}`, nested, breakpoints));
138
166
  }
139
167
  for (const [variant, nested] of Object.entries(definition.variants)) {
140
- lines.push(...renderDefinition(`.${name}--${variant}`, nested, breakpoints));
168
+ lines.push(...renderDefinition(`${selector}--${variant}`, nested, breakpoints));
141
169
  }
142
170
  }
143
171
  return lines;
144
172
  }
145
- export { normalizeContainersConfig, renderContainerClassRules };
173
+ export { TONE_NAMESPACE, defineContainers, normalizeContainersConfig, renderContainerClassRules };
146
174
  //# sourceMappingURL=containers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../src/config/containers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C,MAAM,YAAY,GAAG,kCAAkC,CAAC;AACxD,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAErE,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,KAAa;IAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,aAAa,CAAC,GAAG,KAAK,kCAAkC,QAAQ,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa;IACnD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,aAAa,CAAC,GAAG,KAAK,wCAAwC,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;YAAE,SAAS;QAC1D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjE,MAAM,aAAa,CAAC,GAAG,KAAK,IAAI,QAAQ,+BAA+B,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAAa;IAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,aAAa,CAAC,GAAG,KAAK,0BAA0B,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,aAAa,CAAC,GAAG,KAAK,uBAAuB,eAAe,sCAAsC,IAAI,EAAE,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAc,EACd,KAAa,EACb,KAAyB;IAEzB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IAC7E,MAAM,GAAG,GAA2C,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI;YAAE,MAAM,aAAa,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;QAC5D,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,aAAa,CAAC,GAAG,KAAK,IAAI,IAAI,2CAA2C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAc,EACd,KAAa,EACb,MAAe,EACf,WAA8B;IAE9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IAC7E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,aAAa,CAAC,GAAG,KAAK,IAAI,KAAK,uCAAuC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,IAAI,MAAM,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,aAAa,CAAC,GAAG,KAAK,IAAI,KAAK,6CAA6C,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAgC;QAC9C,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,EAAE,WAAW,CAAC;QAC3D,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC;QAC9C,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC;QACrF,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,IAAI,MAAM;QAAE,OAAO,UAAU,CAAC;IAE9B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,KAAK,UAAU,IAAI,EAAE,CAAC,CAAC;QAC3D,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,KAAK,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACtG,CAAC;IACD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,KAAK,aAAa,OAAO,EAAE,CAAC,CAAC;QACpE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,KAAK,aAAa,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/G,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAc,EACd,WAA8B;IAE9B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,8BAA8B,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAiC,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,cAAc,OAAO,EAAE,CAAC,CAAC;QAC7D,UAAU,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,cAAc,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,KAA6B;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,KAAK,KAAK,GAAG,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,OAAO,CAAC,QAAgB,EAAE,KAA6B;IAC9D,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,KAAa;IACpD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;IACjF,OAAO,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAgB,EAChB,UAAuC,EACvC,WAAmC;IAEnC,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,SAAS;QAC3B,KAAK,CAAC,IAAI,CACR,sBAAsB,WAAW,CAAC,IAAI,CAAC,OAAO,EAC9C,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAClC,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAgC;IACjE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACrE,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../src/config/containers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUxD,MAAM,YAAY,GAAG,kCAAkC,CAAC;AACxD,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC7E,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChC,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,eAAe,eAAe,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7E,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,KAAa;IAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,aAAa,CAAC,GAAG,KAAK,kCAAkC,QAAQ,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa;IACnD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,aAAa,CAAC,GAAG,KAAK,wCAAwC,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;YAAE,SAAS;QAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC3E,MAAM,aAAa,CAAC,GAAG,KAAK,IAAI,QAAQ,+CAA+C,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/E,MAAM,aAAa,CACjB,GAAG,KAAK,IAAI,QAAQ,sCAAsC,QAAQ,EAAE;kBACnE,yEAAyE,CAC3E,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAAa;IAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,aAAa,CAAC,GAAG,KAAK,0BAA0B,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,CAAC,eAAe,EAAE,yBAAyB,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC;YAAE,SAAS;QAC/C,MAAM,aAAa,CACjB,GAAG,KAAK,uBAAuB,QAAQ,+CAA+C,IAAI,EAAE,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAc,EACd,KAAa,EACb,KAAyB;IAEzB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IAC7E,MAAM,GAAG,GAA2C,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI;YAAE,MAAM,aAAa,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;QAC5D,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,aAAa,CAAC,GAAG,KAAK,IAAI,IAAI,2CAA2C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa;IAClD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,aAAa,CAAC,GAAG,KAAK,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAA8B,CAAC;AACxC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAA2B;IACnD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,cAAc,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAc,EACd,KAAa,EACb,MAAe,EACf,WAA8B;IAE9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IAC7E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,aAAa,CAAC,GAAG,KAAK,IAAI,KAAK,uCAAuC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,IAAI,MAAM,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,aAAa,CAAC,GAAG,KAAK,IAAI,KAAK,6CAA6C,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAgC;QAC9C,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,EAAE,WAAW,CAAC;QAC3D,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,KAAK,CAAC;QAC9C,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC;QACrF,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;QAChD,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,IAAI,MAAM;QAAE,OAAO,UAAU,CAAC;IAE9B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,KAAK,UAAU,IAAI,EAAE,CAAC,CAAC;QAC3D,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,KAAK,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACtG,CAAC;IACD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,KAAK,aAAa,OAAO,EAAE,CAAC,CAAC;QACpE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,KAAK,aAAa,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/G,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAA2C,UAAa;IAC/E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAc,EACd,WAA8B;IAE9B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,8BAA8B,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAiC,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,cAAc,OAAO,EAAE,CAAC,CAAC;QAC7D,UAAU,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,cAAc,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,KAA6B;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,KAAK,KAAK,GAAG,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,OAAO,CAAC,QAAgB,EAAE,KAA6B;IAC9D,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,KAAa;IACpD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;IACjF,OAAO,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAgB,EAChB,UAAuC,EACvC,WAAmC;IAEnC,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,SAAS;QAC3B,KAAK,CAAC,IAAI,CACR,sBAAsB,WAAW,CAAC,IAAI,CAAC,OAAO,EAC9C,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAClC,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAgC;IACjE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,yBAAyB,IAAI,IAAI,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,QAAQ,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,QAAQ,KAAK,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC"}