lintje 0.3.0 → 0.5.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 (260) hide show
  1. package/README.md +1 -1
  2. package/dist-elements/actions.js +1 -1
  3. package/dist-elements/chunks/{base-CbmWxUig.js → base-CVKIPSLx.js} +151 -145
  4. package/dist-elements/chunks/chart-styles-JK4clSyA.js +108 -0
  5. package/dist-elements/chunks/{controls-DxmnDSBr.js → controls-_4ac1Lpz.js} +1 -1
  6. package/dist-elements/chunks/{date-format-mHtZyBys.js → date-format-DxP9yfDp.js} +1 -1
  7. package/dist-elements/chunks/{dialog-DChINFxD.js → dialog-D4V467iC.js} +2 -2
  8. package/dist-elements/chunks/{disclosure-DLkXPUpV.js → disclosure-DVex7Lo_.js} +1 -1
  9. package/dist-elements/chunks/download-D7ZarlMZ.js +103 -0
  10. package/dist-elements/chunks/{focus-trap-BwOxE5BX.js → focus-trap-rje9Oz19.js} +1 -1
  11. package/dist-elements/chunks/input-DEHA2Z_0.js +195 -0
  12. package/dist-elements/chunks/input-lQTmOMOz.js +4 -0
  13. package/dist-elements/chunks/{player-B8QXJ0Z5.js → player-DDDWUevR.js} +2 -2
  14. package/dist-elements/chunks/{sentence-B19AyZBS.js → sentence-mY0Iqu5H.js} +1 -1
  15. package/dist-elements/chunks/{stagger-BHoOgy0g.js → stagger-Dvkth9_C.js} +116 -107
  16. package/dist-elements/content.js +2 -0
  17. package/dist-elements/core.js +1 -1
  18. package/dist-elements/custom-elements.json +7740 -6789
  19. package/dist-elements/data-types.json +338 -29
  20. package/dist-elements/feedback.js +1 -1
  21. package/dist-elements/guides/loading.md +3 -3
  22. package/dist-elements/inputs.js +2 -1
  23. package/dist-elements/layout.js +1 -1
  24. package/dist-elements/lintje.js +7346 -5856
  25. package/dist-elements/overlays.js +1 -1
  26. package/dist-elements/tag/activity-log.js +1 -1
  27. package/dist-elements/tag/ai-label.js +1 -1
  28. package/dist-elements/tag/announcement.js +2 -2
  29. package/dist-elements/tag/app-search.js +2 -2
  30. package/dist-elements/tag/audio-player.js +2 -2
  31. package/dist-elements/tag/badge.d.ts +1 -1
  32. package/dist-elements/tag/badge.js +1 -1
  33. package/dist-elements/tag/breadcrumbs.js +1 -1
  34. package/dist-elements/tag/button.d.ts +1 -1
  35. package/dist-elements/tag/button.js +1 -1
  36. package/dist-elements/tag/card-list.js +1 -1
  37. package/dist-elements/tag/card.js +1 -1
  38. package/dist-elements/tag/chart.js +1168 -794
  39. package/dist-elements/tag/chat-answer.js +2 -2
  40. package/dist-elements/tag/chat-composer.js +1 -1
  41. package/dist-elements/tag/chat-message.js +1 -1
  42. package/dist-elements/tag/chat-strip.js +1 -1
  43. package/dist-elements/tag/chat-suggestions.js +1 -1
  44. package/dist-elements/tag/chat.js +1 -1
  45. package/dist-elements/tag/checkbox-group.js +3 -2
  46. package/dist-elements/tag/checkbox.js +3 -2
  47. package/dist-elements/tag/code.js +1 -1
  48. package/dist-elements/tag/combobox.js +11 -10
  49. package/dist-elements/tag/conflict-alert.js +1 -1
  50. package/dist-elements/tag/copy-button.js +1 -1
  51. package/dist-elements/tag/data-table.js +179 -178
  52. package/dist-elements/tag/date-input.js +14 -13
  53. package/dist-elements/tag/date-range.js +5 -4
  54. package/dist-elements/tag/description-list.js +1 -1
  55. package/dist-elements/tag/dialog.js +4 -4
  56. package/dist-elements/tag/document-viewer.js +1 -1
  57. package/dist-elements/tag/drawer.js +3 -3
  58. package/dist-elements/tag/empty-state.js +1 -1
  59. package/dist-elements/tag/error-page.js +1 -1
  60. package/dist-elements/tag/error-summary.js +2 -2
  61. package/dist-elements/tag/expander.js +2 -2
  62. package/dist-elements/tag/explainer.js +2 -2
  63. package/dist-elements/tag/field.js +1 -1
  64. package/dist-elements/tag/file-upload.js +4 -3
  65. package/dist-elements/tag/filter-bar.js +3 -3
  66. package/dist-elements/tag/filter-sheet.js +3 -3
  67. package/dist-elements/tag/filter-zone.js +2 -2
  68. package/dist-elements/tag/find.d.ts +1 -0
  69. package/dist-elements/tag/find.js +132 -0
  70. package/dist-elements/tag/footer.js +1 -1
  71. package/dist-elements/tag/form-actions.js +2 -2
  72. package/dist-elements/tag/form-section.js +2 -2
  73. package/dist-elements/tag/form.js +2 -2
  74. package/dist-elements/tag/gallery.js +1 -1
  75. package/dist-elements/tag/grid-item.d.ts +1 -1
  76. package/dist-elements/tag/grid-item.js +1 -1
  77. package/dist-elements/tag/grid.d.ts +1 -1
  78. package/dist-elements/tag/grid.js +1 -1
  79. package/dist-elements/tag/hero.js +1 -1
  80. package/dist-elements/tag/highlight.js +1 -1
  81. package/dist-elements/tag/icon-button.d.ts +1 -1
  82. package/dist-elements/tag/icon-button.js +1 -1
  83. package/dist-elements/tag/icon.d.ts +1 -1
  84. package/dist-elements/tag/icon.js +1 -1
  85. package/dist-elements/tag/job-list.js +1 -1
  86. package/dist-elements/tag/kpi-row.js +1 -1
  87. package/dist-elements/tag/kpi.js +73 -71
  88. package/dist-elements/tag/level-meter.js +1 -1
  89. package/dist-elements/tag/list.js +2 -2
  90. package/dist-elements/tag/log-viewer.d.ts +1 -0
  91. package/dist-elements/tag/log-viewer.js +847 -0
  92. package/dist-elements/tag/logo.js +1 -1
  93. package/dist-elements/tag/map.js +151 -144
  94. package/dist-elements/tag/menu-button.js +14 -9
  95. package/dist-elements/tag/modal.js +2 -2
  96. package/dist-elements/tag/multiselect.js +4 -3
  97. package/dist-elements/tag/note.js +1 -1
  98. package/dist-elements/tag/notifications.js +2 -2
  99. package/dist-elements/tag/number-input.js +3 -2
  100. package/dist-elements/tag/page-header.js +1 -1
  101. package/dist-elements/tag/pagination.js +25 -25
  102. package/dist-elements/tag/popover.d.ts +1 -1
  103. package/dist-elements/tag/popover.js +1 -1
  104. package/dist-elements/tag/progress-bar.d.ts +1 -1
  105. package/dist-elements/tag/progress-bar.js +1 -1
  106. package/dist-elements/tag/prose.js +1 -1
  107. package/dist-elements/tag/qr-code.js +1 -1
  108. package/dist-elements/tag/radio-group.js +3 -2
  109. package/dist-elements/tag/range.js +3 -2
  110. package/dist-elements/tag/recording-status.js +1 -1
  111. package/dist-elements/tag/repeater.js +1 -1
  112. package/dist-elements/tag/segmented.js +3 -2
  113. package/dist-elements/tag/select.js +3 -2
  114. package/dist-elements/tag/shell.js +3 -3
  115. package/dist-elements/tag/skeleton.d.ts +1 -1
  116. package/dist-elements/tag/skeleton.js +1 -1
  117. package/dist-elements/tag/slot-picker.js +4 -3
  118. package/dist-elements/tag/sortable-list.js +1 -1
  119. package/dist-elements/tag/spinner.d.ts +1 -1
  120. package/dist-elements/tag/spinner.js +1 -1
  121. package/dist-elements/tag/split-pane.js +1 -1
  122. package/dist-elements/tag/status-dot.d.ts +1 -1
  123. package/dist-elements/tag/status-dot.js +1 -1
  124. package/dist-elements/tag/stepper.js +1 -1
  125. package/dist-elements/tag/streaming-text.js +1 -1
  126. package/dist-elements/tag/sub-nav.js +1 -1
  127. package/dist-elements/tag/tabs.js +1 -1
  128. package/dist-elements/tag/tag-input.js +11 -10
  129. package/dist-elements/tag/text-editor.js +3 -2
  130. package/dist-elements/tag/text-input.js +3 -2
  131. package/dist-elements/tag/textarea.js +3 -2
  132. package/dist-elements/tag/tile.d.ts +1 -1
  133. package/dist-elements/tag/tile.js +1 -1
  134. package/dist-elements/tag/time-input.js +7 -6
  135. package/dist-elements/tag/toast.js +2 -2
  136. package/dist-elements/tag/toggle.js +3 -2
  137. package/dist-elements/tag/toggletip.js +2 -2
  138. package/dist-elements/tag/token-value.d.ts +1 -0
  139. package/dist-elements/tag/token-value.js +75 -0
  140. package/dist-elements/tag/tooltip.d.ts +1 -1
  141. package/dist-elements/tag/tooltip.js +1 -1
  142. package/dist-elements/tag/transcript.js +1 -1
  143. package/dist-elements/tag/translator.js +1 -1
  144. package/dist-elements/tag/tree-view.js +1 -1
  145. package/dist-elements/tag/user-menu.js +1 -1
  146. package/dist-elements/tag/video-player.js +2 -2
  147. package/dist-elements/tokens.css +2 -0
  148. package/dist-elements/tokens.json +1248 -0
  149. package/dist-elements/types/bundle/actions.d.ts +3 -3
  150. package/dist-elements/types/bundle/content.d.ts +2 -0
  151. package/dist-elements/types/bundle/feedback.d.ts +5 -5
  152. package/dist-elements/types/bundle/index.d.ts +1 -11
  153. package/dist-elements/types/bundle/inputs.d.ts +1 -0
  154. package/dist-elements/types/bundle/layout.d.ts +3 -3
  155. package/dist-elements/types/bundle/overlays.d.ts +2 -2
  156. package/dist-elements/types/categories.d.ts +4 -0
  157. package/dist-elements/types/{primitives → components/actions}/button/button.d.ts +1 -1
  158. package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +2 -2
  159. package/dist-elements/types/{icons → components/actions}/icon/icon.d.ts +2 -2
  160. package/dist-elements/types/{primitives → components/actions}/icon-button/icon-button.d.ts +1 -1
  161. package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +7 -4
  162. package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +1 -1
  163. package/dist-elements/types/components/charts/chart/chart.d.ts +1 -1
  164. package/dist-elements/types/components/charts/explainer/explainer.d.ts +1 -1
  165. package/dist-elements/types/components/charts/kpi/kpi.d.ts +3 -3
  166. package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +1 -1
  167. package/dist-elements/types/components/charts/note/note.d.ts +1 -1
  168. package/dist-elements/types/components/chat/chat/chat.d.ts +1 -1
  169. package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +3 -3
  170. package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +2 -2
  171. package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +1 -1
  172. package/dist-elements/types/components/content/audio-player/audio-player.d.ts +5 -5
  173. package/dist-elements/types/components/content/code/code.d.ts +1 -1
  174. package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +2 -2
  175. package/dist-elements/types/components/content/highlight/highlight.d.ts +1 -1
  176. package/dist-elements/types/components/content/log-viewer/lines.d.ts +33 -0
  177. package/dist-elements/types/components/content/log-viewer/log-viewer.d.ts +117 -0
  178. package/dist-elements/types/components/content/prose/prose.d.ts +1 -1
  179. package/dist-elements/types/components/content/token-value/token-value.d.ts +42 -0
  180. package/dist-elements/types/components/content/transcript/transcript.d.ts +3 -3
  181. package/dist-elements/types/components/content/translator/translator.d.ts +1 -1
  182. package/dist-elements/types/components/content/video-player/video-player.d.ts +1 -1
  183. package/dist-elements/types/components/feedback/announcement/announcement.d.ts +2 -2
  184. package/dist-elements/types/{primitives → components/feedback}/badge/badge.d.ts +2 -2
  185. package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +1 -1
  186. package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +2 -2
  187. package/dist-elements/types/components/feedback/job-list/job-list.d.ts +1 -1
  188. package/dist-elements/types/{primitives → components/feedback}/progress-bar/progress-bar.d.ts +2 -2
  189. package/dist-elements/types/{primitives → components/feedback}/skeleton/skeleton.d.ts +1 -1
  190. package/dist-elements/types/{primitives → components/feedback}/spinner/spinner.d.ts +1 -1
  191. package/dist-elements/types/{primitives → components/feedback}/status-dot/status-dot.d.ts +2 -2
  192. package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +2 -2
  193. package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +2 -2
  194. package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +1 -1
  195. package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +1 -1
  196. package/dist-elements/types/components/forms/repeater/repeater.d.ts +2 -2
  197. package/dist-elements/types/components/forms/stepper/stepper.d.ts +1 -1
  198. package/dist-elements/types/components/frame/app-search/app-search.d.ts +1 -1
  199. package/dist-elements/types/components/frame/notifications/notifications.d.ts +2 -2
  200. package/dist-elements/types/components/frame/page-header/page-header.d.ts +1 -1
  201. package/dist-elements/types/components/frame/shell/shell.d.ts +1 -1
  202. package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +2 -2
  203. package/dist-elements/types/components/index.d.ts +45 -3
  204. package/dist-elements/types/components/inputs/combobox/combobox.d.ts +2 -2
  205. package/dist-elements/types/components/inputs/date-input/date-input.d.ts +1 -1
  206. package/dist-elements/types/components/inputs/date-range/date-range.d.ts +2 -2
  207. package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +2 -2
  208. package/dist-elements/types/components/inputs/find/find.d.ts +52 -0
  209. package/dist-elements/types/components/inputs/segmented/segmented.d.ts +1 -1
  210. package/dist-elements/types/components/inputs/shared/input.d.ts +1 -1
  211. package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +1 -1
  212. package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +2 -2
  213. package/dist-elements/types/components/inputs/text-input/text-input.d.ts +1 -1
  214. package/dist-elements/types/components/inputs/time-input/time-input.d.ts +1 -1
  215. package/dist-elements/types/components/layout/expander/expander.d.ts +1 -1
  216. package/dist-elements/types/{primitives → components/layout}/grid/grid.d.ts +1 -1
  217. package/dist-elements/types/{primitives → components/layout}/grid-item/grid-item.d.ts +1 -1
  218. package/dist-elements/types/components/layout/tabs/tabs.d.ts +1 -1
  219. package/dist-elements/types/{primitives → components/layout}/tile/tile.d.ts +6 -6
  220. package/dist-elements/types/components/map/map/map.d.ts +2 -2
  221. package/dist-elements/types/components/overlays/modal/modal.d.ts +2 -2
  222. package/dist-elements/types/{primitives → components/overlays}/popover/popover.d.ts +2 -2
  223. package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +1 -1
  224. package/dist-elements/types/{primitives → components/overlays}/tooltip/tooltip.d.ts +2 -2
  225. package/dist-elements/types/components/shared/charts/index.d.ts +1 -0
  226. package/dist-elements/types/components/shared/charts/kinds.d.ts +6 -0
  227. package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +1 -1
  228. package/dist-elements/types/components/shared/charts/radar-chart/radar-chart.d.ts +31 -0
  229. package/dist-elements/types/components/shared/charts/shared/axes.d.ts +10 -2
  230. package/dist-elements/types/components/shared/charts/shared/controller.d.ts +5 -1
  231. package/dist-elements/types/components/shared/charts/shared/layer-motion.d.ts +21 -0
  232. package/dist-elements/types/components/shared/charts/shared/types.d.ts +33 -0
  233. package/dist-elements/types/components/shared/content-tile.d.ts +1 -1
  234. package/dist-elements/types/components/{forms/form → shared}/controls.d.ts +3 -2
  235. package/dist-elements/types/components/shared/download.d.ts +2 -0
  236. package/dist-elements/types/components/shared/overflow.d.ts +1 -1
  237. package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +1 -1
  238. package/dist-elements/types/components/tables/card/card.d.ts +4 -4
  239. package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
  240. package/dist-elements/types/components/tables/data-table/data-table.d.ts +3 -3
  241. package/dist-elements/types/components/tables/data-table/editing.d.ts +1 -1
  242. package/dist-elements/types/components/tables/data-table/filters.d.ts +3 -3
  243. package/dist-elements/types/components/tables/description-list/description-list.d.ts +2 -2
  244. package/dist-elements/types/components/tables/list/list.d.ts +4 -4
  245. package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +1 -1
  246. package/dist-elements/types/core/focus.d.ts +1 -1
  247. package/dist-elements/types/types.d.ts +51 -7
  248. package/package.json +1 -1
  249. package/dist-elements/chunks/download-Ct9q2anY.js +0 -206
  250. package/dist-elements/chunks/input-CRW_exv_.js +0 -195
  251. package/dist-elements/types/primitives/index.d.ts +0 -35
  252. /package/dist-elements/types/components/content/{audio-player → shared}/playback.d.ts +0 -0
  253. /package/dist-elements/types/components/content/{audio-player → shared}/player.d.ts +0 -0
  254. /package/dist-elements/types/{primitives → components}/shared/announcement-block.d.ts +0 -0
  255. /package/dist-elements/types/components/{inputs/date-input → shared}/date-format.d.ts +0 -0
  256. /package/dist-elements/types/{primitives → components}/shared/empty-state-block.d.ts +0 -0
  257. /package/dist-elements/types/{primitives → components}/shared/grid-item-element.d.ts +0 -0
  258. /package/dist-elements/types/{primitives → components}/shared/length.d.ts +0 -0
  259. /package/dist-elements/types/{primitives → components}/shared/place.d.ts +0 -0
  260. /package/dist-elements/types/{primitives → components}/shared/tone.d.ts +0 -0
@@ -0,0 +1,75 @@
1
+ import { Jt as e, Yt as t, Zt as n, nn as r } from "../chunks/base-CVKIPSLx.js";
2
+ //#region src/components/content/token-value/token-value.css?inline
3
+ var i = "/*\n * The probe is `visibility: hidden`, not `display: none`, so its computed style is read from a\n * laid-out box. The swatch's edge is heavy, so a white or a pale tint still shows its square.\n */\n:host {\n display: inline;\n}\n:host([hidden]) { display: none; }\n\n/* --- */\n\n.lintje-token-value {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n max-width: 100%;\n vertical-align: bottom;\n}\n/* Under reduced motion the reset gives every element a short transition: a probe that\n transitions reads the value it had. */\n.lintje-token-value__probe {\n position: absolute;\n transition-property: none;\n width: 0;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n pointer-events: none;\n}\n.lintje-token-value__swatch {\n flex: 0 0 auto;\n width: var(--space-4);\n height: var(--space-4);\n box-sizing: border-box;\n border: 1px solid var(--color-border-heavy);\n}\n.lintje-token-value__swatch[hidden] { display: none; }\n.lintje-token-value__value {\n min-width: 0;\n font-family: var(--font-mono);\n font-variant-numeric: normal;\n overflow-wrap: anywhere;\n}\n", a = "—", o = new Intl.NumberFormat("nl", { maximumFractionDigits: 2 }), s = /^rgba?\(([^)]*)\)$/i, c = /^color\(\s*srgb\s+([^)]*)\)$/i, l = (e) => `#${e.map((e) => Math.max(0, Math.min(255, Math.round(e))).toString(16).padStart(2, "0").toUpperCase()).join("")}`;
4
+ function u(e) {
5
+ let t = e.trim(), n = s.exec(t), r = n ? null : c.exec(t), i = (n ?? r)?.[1].split(/[\s,/]+/).filter(Boolean).map(Number.parseFloat);
6
+ if (!i || i.length < 3 || i.length > 4 || i.some(Number.isNaN)) return null;
7
+ let a = i.slice(0, 3).map((e) => r ? e * 255 : e), o = i[3] ?? 1;
8
+ return o < 1 ? `${l(a)} · ${Math.round(o * 100)} %` : l(a);
9
+ }
10
+ var d = (e) => `${o.format(Number.parseFloat(String(e)))} px`, f = class extends e {
11
+ constructor(...e) {
12
+ super(...e), this.noSwatch = !1;
13
+ }
14
+ static {
15
+ this.styles = n(i);
16
+ }
17
+ static {
18
+ this.properties = {
19
+ name: {
20
+ type: String,
21
+ reflect: !0
22
+ },
23
+ noSwatch: {
24
+ type: Boolean,
25
+ attribute: "no-swatch"
26
+ }
27
+ };
28
+ }
29
+ connectedCallback() {
30
+ super.connectedCallback(), typeof MutationObserver < "u" && (this.observer ??= new MutationObserver(() => this.reread()), this.observer.observe(document.documentElement, {
31
+ attributes: !0,
32
+ attributeFilter: ["data-theme"]
33
+ }));
34
+ }
35
+ disconnectedCallback() {
36
+ this.observer?.disconnect(), super.disconnectedCallback();
37
+ }
38
+ updated() {
39
+ this.reread();
40
+ }
41
+ reread() {
42
+ let e = this.shadowRoot?.querySelector(".lintje-token-value__value"), t = this.shadowRoot?.querySelector(".lintje-token-value__swatch"), n = this.shadowRoot?.querySelector(".lintje-token-value__probe");
43
+ if (!e || !t || !n) return;
44
+ let r = this.name && typeof getComputedStyle == "function" ? getComputedStyle(this).getPropertyValue(this.name).trim() : "", i = r ? this.colourOf(r, n) : null;
45
+ t.hidden = !i || this.noSwatch, t.style.background = i ? `var(${this.name})` : "", e.textContent = r ? i ?? this.describe(r, n) : "—";
46
+ }
47
+ colourOf(e, t) {
48
+ return t.style.color = "", t.style.color = e, t.style.color ? (t.style.color = `color-mix(in srgb, ${e} 100%, transparent)`, t.style.color || (t.style.color = e), u(getComputedStyle(t).color) ?? e) : null;
49
+ }
50
+ describe(e, t) {
51
+ if (t.style.font = "", t.style.font = e, t.style.font) {
52
+ let { fontWeight: e, fontSize: n, lineHeight: r } = getComputedStyle(t);
53
+ if (n.endsWith("px")) {
54
+ let t = Number.parseFloat(n), i = Number.parseFloat(r) * (r.endsWith("px") ? 1 : t), a = `${e} · ${d(t)}`;
55
+ return Number.isFinite(i) ? `${a} / ${d(i)}` : a;
56
+ }
57
+ }
58
+ if (/rem|em|calc\(/.test(e) && !e.includes("%")) {
59
+ t.style.width = "", t.style.width = e;
60
+ let n = t.style.width ? getComputedStyle(t).width : "";
61
+ if (n.endsWith("px")) return `${e} · ${d(n)}`;
62
+ }
63
+ return e;
64
+ }
65
+ render() {
66
+ return r`<span class="lintje-token-value">
67
+ <span class="lintje-token-value__probe" aria-hidden="true"></span>
68
+ <span class="lintje-token-value__swatch" aria-hidden="true" hidden></span>
69
+ <span class="lintje-token-value__value"></span>
70
+ </span>`;
71
+ }
72
+ };
73
+ t("lintje-token-value", f);
74
+ //#endregion
75
+ export { f as LintjeTokenValue, a as NO_VALUE, u as formatColour };
@@ -1 +1 @@
1
- export * from '../types/primitives/tooltip/tooltip.js'
1
+ export * from '../types/components/overlays/tooltip/tooltip.js'
@@ -1 +1 @@
1
- export { R as LintjeTooltip, z as TOOLTIP_DELAY, B as TOOLTIP_LINGER } from "../chunks/base-CbmWxUig.js";
1
+ export { R as LintjeTooltip, z as TOOLTIP_DELAY, B as TOOLTIP_LINGER } from "../chunks/base-CVKIPSLx.js";
@@ -1,4 +1,4 @@
1
- import { Jt as e, Q as t, Yt as n, Z as r, Zt as i, at as a, bt as o, en as s, lt as c, nn as l, ot as u, st as d, ut as f, y as p } from "../chunks/base-CbmWxUig.js";
1
+ import { Jt as e, Q as t, Yt as n, Z as r, Zt as i, at as a, bt as o, en as s, lt as c, nn as l, ot as u, st as d, ut as f, y as p } from "../chunks/base-CVKIPSLx.js";
2
2
  import "./menu-button.js";
3
3
  import "./highlight.js";
4
4
  import "./textarea.js";
@@ -1,4 +1,4 @@
1
- import { Gt as e, Jt as t, Kt as n, Yt as r, Zt as i, en as a, nn as o } from "../chunks/base-CbmWxUig.js";
1
+ import { Gt as e, Jt as t, Kt as n, Yt as r, Zt as i, en as a, nn as o } from "../chunks/base-CVKIPSLx.js";
2
2
  import "./textarea.js";
3
3
  //#region src/components/content/translator/translator.css?inline
4
4
  var s = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The halves stretch to one height: the taller text sets both. The plain field has no edge of\n its own, so the surface's is the field's (3:1). */\n.lintje-translator {\n display: flex;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n}\n.lintje-translator__half {\n flex: 1 1 0;\n min-width: 0;\n display: flex;\n flex-direction: column;\n font: var(--text-translation);\n color: var(--color-text-primary);\n}\n/* Inset, not subtle: the fields and buttons on it are the surface, so in dark it steps down. */\n.lintje-translator__half--target {\n position: relative;\n background: var(--color-bg-inset);\n border-left: 1px solid var(--color-border-default);\n}\n\n.lintje-translator__bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-2);\n min-height: calc(var(--h-control) + 2 * var(--space-4));\n box-sizing: border-box;\n padding: var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n font: var(--text-ui);\n}\n/* A language choice keeps a readable width; on a phone it takes the row. What else stands in the\n bar keeps its own width. */\n.lintje-translator__bar ::slotted(lintje-combobox) { flex: 0 1 var(--w-translator-language); min-width: 0; }\n/* The languages flank the swap, which stands half in each bar: the source at the line, the\n target after it, so the pair reads as one \"from ⇄ to\". */\n.lintje-translator__bar--source { justify-content: flex-end; padding-right: var(--space-10); }\n.lintje-translator__half--target .lintje-translator__bar { padding-left: var(--space-10); }\n\n.lintje-translator__body {\n position: relative;\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n padding: var(--space-4);\n}\n.lintje-translator__body--source { padding-right: calc(var(--space-4) + var(--h-icon-button)); }\n/* The source body is the field: the text fills it, and the ring goes round it, inside the edge. */\n.lintje-translator__text { flex: 1; }\n.lintje-translator__body--source:has(.lintje-translator__text:focus-within) {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n.lintje-translator__clear { position: absolute; top: var(--space-2); right: var(--space-2); }\n\n.lintje-translator__foot {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-1) var(--space-2);\n min-height: var(--h-touch);\n /* As far from the sides and the bottom as the language choices stand from the top. */\n padding: var(--space-1) var(--space-4) var(--space-4);\n font: var(--text-ui);\n}\n.lintje-translator__actions { display: flex; align-items: center; gap: var(--space-1); margin-left: auto; }\n/* The AI label belongs to the text it marks: right under it, so the foot holds only actions and\n stands level with the source's at every width. A hidden label leaves no gap. */\n.lintje-translator__body ::slotted([slot='target-note']) { align-self: flex-start; margin-top: var(--space-4); }\n/* The counter stands on the source's foot line, right, level with its tools; the text keeps\n the body. */\n.lintje-translator__text::part(counter) {\n position: absolute;\n top: calc(100% + var(--space-1) + var(--h-icon-button) / 2);\n right: var(--space-4);\n transform: translateY(-50%);\n}\n\n/* Documents: the languages in one row, the content under them at full width. */\n.lintje-translator--documents { flex-direction: column; }\n.lintje-translator__bars { display: flex; }\n.lintje-translator__content {\n display: flex;\n flex-direction: column;\n gap: var(--space-6);\n padding: var(--space-6);\n font: var(--text-ui);\n}\n\n/* On the line between the halves, level with the language choices. */\n.lintje-translator__swap {\n position: absolute;\n z-index: 1;\n top: calc(var(--space-4) + (var(--h-control) - var(--h-icon-button)) / 2);\n left: 0;\n transform: translateX(-50%);\n}\n\n@media screen and (max-width: 767px) {\n .lintje-translator, .lintje-translator__bars { flex-direction: column; }\n .lintje-translator__content { padding: var(--space-4); }\n .lintje-translator__half--target { border-left: 0; border-top: 1px solid var(--color-border-default); }\n .lintje-translator__bar ::slotted(lintje-combobox) { flex: 1 1 100%; }\n .lintje-translator__bar--source { padding-right: var(--space-4); }\n .lintje-translator__swap { top: 0; left: 50%; transform: translate(-50%, -50%); }\n .lintje-translator__half--target .lintje-translator__bar {\n padding-top: calc(var(--space-2) + var(--h-icon-button) / 2);\n padding-left: var(--space-4);\n }\n}\n";
@@ -1,4 +1,4 @@
1
- import { Jt as e, Yt as t, Zt as n, bt as r, en as i, lt as a, nn as o, st as s, ut as c } from "../chunks/base-CbmWxUig.js";
1
+ import { Jt as e, Yt as t, Zt as n, bt as r, en as i, lt as a, nn as o, st as s, ut as c } from "../chunks/base-CVKIPSLx.js";
2
2
  //#region src/components/tables/tree-view/tree-view.css?inline
3
3
  var l = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-tree,\n.lintje-tree__group { list-style: none; margin: 0; padding: 0; }\n.lintje-tree { font: var(--text-ui); color: var(--color-text-primary); }\n\n/* The treeitem holds its row and its children, so the ring is drawn inside the row alone. */\n.lintje-tree__item:focus-visible { outline: none; }\n.lintje-tree__item:focus-visible > .lintje-tree__row {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n\n.lintje-tree__row {\n display: flex; align-items: center;\n gap: var(--space-1);\n height: var(--h-option);\n padding: 0 var(--space-2) 0 calc(var(--space-2) + var(--lintje-tree-depth, 0) * var(--space-5));\n cursor: pointer;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-tree__row:hover { background: var(--color-bg-subtle); }\n.lintje-tree__row.is-selected {\n background: var(--color-bg-selected);\n box-shadow: inset 4px 0 0 var(--color-accent-line);\n font-weight: 700;\n}\n\n.lintje-tree__arrow {\n flex: none;\n display: inline-flex; align-items: center; justify-content: center;\n width: 16px; height: 16px;\n color: var(--color-text-muted);\n}\n/* The fold target reaches 24 × 24 px with a transparent hit area; it stays inside the gap. */\n.lintje-tree__arrow--toggle { position: relative; }\n.lintje-tree__arrow--toggle::after {\n content: '';\n position: absolute;\n inset: calc(var(--space-1) * -1);\n}\n.lintje-tree__label {\n min-width: 0;\n overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n.lintje-tree__count { flex: none; font-weight: 400; color: var(--color-text-muted); }\n\n@media (prefers-reduced-motion: reduce) {\n .lintje-tree__row { transition: none; }\n}\n\n/* Forced colours: the fill and inset bar are dropped. The bar becomes a real border (Canvas at\n rest, Highlight when selected), so selecting moves nothing. */\n@media (forced-colors: active) {\n .lintje-tree__row { border-left: 4px solid Canvas; }\n .lintje-tree__row.is-selected { border-left-color: Highlight; }\n}\n";
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- import { H as e, Jt as t, Yt as n, Zt as r, en as i, et as a, lt as o, nn as s, st as c, ut as l } from "../chunks/base-CbmWxUig.js";
1
+ import { H as e, Jt as t, Yt as n, Zt as r, en as i, et as a, lt as o, nn as s, st as c, ut as l } from "../chunks/base-CVKIPSLx.js";
2
2
  import { n as u, nextRow as d, renderMenuEntries as f, t as p } from "./menu-button.js";
3
3
  //#region src/components/frame/user-menu/user-menu.css?inline
4
4
  var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigation bar; the menu is a fixed popover\n * and takes no space. `inline`, it is a block at the bottom of the mobile navigation.\n * `menu-button.css` is adopted beside this file: the rows are its `.lintje-menu__row`.\n */\n:host { display: inline-flex; flex: none; vertical-align: middle; }\n:host([inline]) { display: block; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The avatar and the chevron that says it opens a menu; at least `--h-touch` high. */\n.lintje-user-menu__trigger {\n display: flex; align-items: center; justify-content: center;\n gap: var(--space-2);\n min-width: var(--h-touch); height: var(--lintje-tool-height, var(--h-touch));\n padding: 0 var(--space-3);\n color: var(--color-nav-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-user-menu__trigger:hover,\n.lintje-user-menu__trigger.is-open { background: var(--color-nav-hover); }\n\n.lintje-user-menu__avatar {\n display: flex; align-items: center; justify-content: center;\n flex: none;\n width: 2rem; height: 2rem;\n border-radius: var(--radius-round);\n background: var(--color-nav-avatar-bg);\n color: var(--color-nav-avatar-text);\n font-size: 0.875rem; font-weight: 700;\n}\n\n.lintje-user-menu__panel {\n width: 17.5rem;\n max-width: 100%;\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n.lintje-user-menu__who {\n display: flex; align-items: center; gap: var(--space-3);\n padding: var(--space-3) var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-user-menu__names { min-width: 0; }\n.lintje-user-menu__name { margin: 0; font-weight: 700; overflow-wrap: anywhere; }\n.lintje-user-menu__role { margin: 0; font-size: 0.875rem; color: var(--color-text-muted); }\n\n.lintje-user-menu__group { display: flex; flex-direction: column; padding: var(--space-1) 0; }\n.lintje-user-menu__group--logout { border-top: 1px solid var(--color-border-default); }\n.lintje-user-menu__group:first-child.lintje-user-menu__group--logout { border-top: 0; }\n.lintje-user-menu__logout { display: flex; flex-direction: column; margin: 0; }\n.lintje-user-menu__logout-row { font-weight: 700; }\n\n.lintje-user-menu__version {\n margin: 0;\n padding: var(--space-2) var(--space-4);\n border-top: 1px solid var(--color-border-default);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.lintje-user-menu__panel.is-inline { width: 100%; color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__group--logout,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { border-color: var(--color-nav-line); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who { padding: var(--space-4) var(--space-5); }\n/* Small text on the theme fill takes the menu's own ink: the sub tint is 3.82:1 on #01689B. */\n.lintje-user-menu__panel.is-inline .lintje-user-menu__role,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version,\n.lintje-user-menu__panel.is-inline .lintje-menu__hint { color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { padding: var(--space-2) var(--space-5); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row {\n height: var(--h-touch);\n padding: 0 var(--space-5);\n color: var(--color-nav-text);\n}\n.lintje-user-menu__panel.is-inline .lintje-menu__row:hover { background: var(--color-nav-hover); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled,\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled .lintje-menu__hint { color: var(--color-nav-disabled); }\n.lintje-user-menu__panel.is-inline .lintje-menu__separator { background: var(--color-nav-line); }\n\n/* On the theme fill the orange ring disappears: the on-theme ring, as the side menu. */\n.lintje-user-menu__trigger:focus-visible,\n.lintje-user-menu__panel.is-inline :focus-visible { outline-color: var(--color-focus-on-theme); }\n\n/* Forced colours: the open button keeps a Highlight edge, the avatar a CanvasText ring. */\n@media (forced-colors: active) {\n .lintje-user-menu__trigger:focus-visible,\n .lintje-user-menu__panel.is-inline :focus-visible { outline-color: Highlight; }\n .lintje-user-menu__trigger.is-open:not(:focus-visible) { outline: 1px solid Highlight; outline-offset: -1px; }\n .lintje-user-menu__avatar { border: 1px solid CanvasText; }\n}\n", h = 0, g = class extends t {
@@ -1,7 +1,7 @@
1
- import { L as e, Yt as t, Zt as n, en as r, lt as i, nn as a, rt as o, st as s, ut as c } from "../chunks/base-CbmWxUig.js";
1
+ import { L as e, Yt as t, Zt as n, en as r, lt as i, nn as a, rt as o, st as s, ut as c } from "../chunks/base-CVKIPSLx.js";
2
2
  import "./menu-button.js";
3
3
  import { n as l, o as u, p as d } from "../chunks/playback-DZJ_NMXv.js";
4
- import { n as f, t as p } from "../chunks/player-B8QXJ0Z5.js";
4
+ import { n as f, t as p } from "../chunks/player-DDDWUevR.js";
5
5
  //#region src/components/content/video-player/video-player.css?inline
6
6
  var m = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-video-player {\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n}\n\n/* No surface token stays black in dark, so the surface takes the ink on a light fill. */\n.lintje-video-player__stage {\n position: relative;\n aspect-ratio: 16 / 9;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-text-on-light-fill);\n overflow: hidden;\n}\n.lintje-video-player__video {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n background: var(--color-text-on-light-fill);\n}\n\n/* What stands on the picture has a white edge, so the fill keeps apart from the dark. */\n.lintje-video-player__big-play.lintje-button,\n.lintje-video-player__retry.lintje-button {\n position: relative;\n border: 2px solid var(--color-text-on-fill);\n}\n.lintje-video-player__big-play.lintje-button { width: 64px; height: 64px; padding: 0; }\n.lintje-video-player__big-play.lintje-button.is-disabled {\n border-color: var(--color-text-on-fill);\n}\n\n/* A failed load says so where the picture would be: the announcement's light fill would float. */\n.lintje-video-player__failed {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--space-3);\n padding: 0 var(--space-6);\n text-align: center;\n color: var(--color-text-on-fill);\n}\n.lintje-video-player__failed-mark {\n width: var(--space-6);\n height: var(--space-6);\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-error);\n color: var(--color-text-inverse);\n}\n.lintje-video-player__failed-text { margin: 0; font: var(--text-ui); font-weight: 700; }\n\n.lintje-video-player__caption {\n position: absolute;\n left: var(--space-4);\n right: var(--space-4);\n bottom: var(--space-4);\n text-align: center;\n pointer-events: none;\n}\n.lintje-video-player__caption-text {\n padding: 2px var(--space-2);\n background: var(--color-text-on-light-fill);\n color: var(--color-text-on-fill);\n font: var(--text-body);\n box-decoration-break: clone;\n -webkit-box-decoration-break: clone;\n}\n\n/* Two lines at every width: the time beside the bar keeps the buttons on one line in a tile. */\n.lintje-video-player__controls {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n padding: var(--space-3) var(--space-3) var(--space-2);\n}\n.lintje-video-player__timeline { display: flex; align-items: center; gap: var(--space-3); }\n.lintje-video-player__buttons { display: flex; align-items: center; gap: var(--space-1); }\n.lintje-video-player__speed {\n flex: none;\n padding: 0 var(--space-1);\n background: var(--color-term-bg);\n color: var(--color-accent-text);\n font: var(--text-small);\n font-weight: 700;\n font-variant-numeric: tabular-nums;\n}\n/* The menu's trigger takes the 48 px of the player's other buttons. */\n.lintje-video-player__more { margin-left: auto; --h-icon-button: var(--h-touch); }\n\n.lintje-video-player:fullscreen { display: flex; flex-direction: column; border: 0; }\n.lintje-video-player:fullscreen .lintje-video-player__stage {\n flex: 1 1 auto;\n min-height: 0;\n aspect-ratio: auto;\n}\n\n@media screen and (max-width: 767px) {\n .lintje-video-player { border-left: 0; border-right: 0; }\n}\n\n/* Forced colours drop the fills: the speed and the mark keep an outline. */\n@media (forced-colors: active) {\n .lintje-video-player__speed,\n .lintje-video-player__failed-mark { outline: 1px solid CanvasText; }\n}\n", h = "ondertiteling", g = "audiodescriptie";
7
7
  function _(e, t) {
@@ -425,6 +425,8 @@
425
425
  CSS ships unminified so the notes reach it. */
426
426
  --ease-in-motion: cubic-bezier(0.2, 0, 0, 1); /* @kind other */
427
427
  --ease-out-motion: cubic-bezier(0.4, 0, 1, 1); /* @kind other */
428
+ /* A fade that runs both ways: straight, so out is in played backwards; a curve leaves a ghost. */
429
+ --ease-fade: linear; /* @kind other */
428
430
  --dur-base: 200ms; /* @kind other */
429
431
  --dur-hover: 120ms; /* @kind other */
430
432
  --dur-popover: var(--dur-base); /* @kind other */