@nldd/design-system 0.8.91 → 0.8.92
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.
- package/NOTICES.md +2 -2
- package/README.md +3 -3
- package/custom-elements.json +345 -15
- package/dist/components/actions/button/button.d.ts +2 -4
- package/dist/components/actions/button/button.d.ts.map +1 -1
- package/dist/components/actions/button/button.js +2 -10
- package/dist/components/actions/button/button.js.map +1 -1
- package/dist/components/actions/button/button.template.d.ts.map +1 -1
- package/dist/components/actions/button/button.template.js +2 -1
- package/dist/components/actions/button/button.template.js.map +1 -1
- package/dist/components/actions/icon-button/icon-button.d.ts +2 -4
- package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
- package/dist/components/actions/icon-button/icon-button.js +2 -10
- package/dist/components/actions/icon-button/icon-button.js.map +1 -1
- package/dist/components/actions/icon-button/icon-button.template.d.ts.map +1 -1
- package/dist/components/actions/icon-button/icon-button.template.js +2 -1
- package/dist/components/actions/icon-button/icon-button.template.js.map +1 -1
- package/dist/components/actions/toolbar/toolbar.template.d.ts.map +1 -1
- package/dist/components/actions/toolbar/toolbar.template.js +2 -1
- package/dist/components/actions/toolbar/toolbar.template.js.map +1 -1
- package/dist/components/components.js +153 -139
- package/dist/components/content/avatar/avatar.d.ts +2 -5
- package/dist/components/content/avatar/avatar.d.ts.map +1 -1
- package/dist/components/content/avatar/avatar.js +2 -13
- package/dist/components/content/avatar/avatar.js.map +1 -1
- package/dist/components/content/avatar/avatar.template.d.ts.map +1 -1
- package/dist/components/content/avatar/avatar.template.js +2 -1
- package/dist/components/content/avatar/avatar.template.js.map +1 -1
- package/dist/components/content/avatar-group/avatar-group.d.ts +1 -1
- package/dist/components/content/avatar-group/avatar-group.js +1 -1
- package/dist/components/content/code-viewer/code-viewer.d.ts.map +1 -1
- package/dist/components/content/code-viewer/code-viewer.js +12 -2
- package/dist/components/content/code-viewer/code-viewer.js.map +1 -1
- package/dist/components/content/icon/icon.d.ts +2 -2
- package/dist/components/content/icon/icon.js +2 -2
- package/dist/components/content/identity/identity.d.ts +1 -1
- package/dist/components/content/identity/identity.js +1 -1
- package/dist/components/{dist-CENYEz7C.js → dist-B5ie2Bo9.js} +1 -1
- package/dist/components/{dist-D_ckX1sK.js → dist-BUu-NW5O.js} +1 -1
- package/dist/components/{dist-Y54Lma86.js → dist-CGOykrJw.js} +2 -2
- package/dist/components/{dist-CYLM5ciE.js → dist-CQzaKTa8.js} +1 -1
- package/dist/components/{dist-yyE8P2O6.js → dist-CSYXsT7W.js} +2 -2
- package/dist/components/{dist-BLaE_n_F.js → dist-CoUVHSu-.js} +1 -1
- package/dist/components/{dist-DHA-0RyT.js → dist-Dn3c5gfb.js} +7 -1
- package/dist/components/{dist-BeymuiGt.js → dist-Dxn9Up8K.js} +3 -3
- package/dist/components/{dist-Dh_b9r4M.js → dist-M6GKopqu.js} +1 -1
- package/dist/components/{dist-TCqV9dho.js → dist-OlffRM7-.js} +1 -1
- package/dist/components/{dist-DkZlotgT.js → dist-RPaf2J9c.js} +2 -2
- package/dist/components/{icon-button-CEz4MB9H.js → icon-button-oua8pmMC.js} +3 -9
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/inputs/date-field/date-field.d.ts +1 -1
- package/dist/components/inputs/date-field/date-field.js +1 -1
- package/dist/components/inputs/date-picker/date-picker.d.ts +1 -1
- package/dist/components/inputs/date-picker/date-picker.js +1 -1
- package/dist/components/inputs/radio-button/radio-button.styles.d.ts.map +1 -1
- package/dist/components/inputs/radio-button/radio-button.styles.js +0 -10
- package/dist/components/inputs/radio-button/radio-button.styles.js.map +1 -1
- package/dist/components/inputs/radio-button/radio-button.template.js +3 -3
- package/dist/components/inputs/radio-button/radio-button.template.js.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.styles.js +0 -10
- package/dist/components/inputs/radio-button-field/radio-button-field.styles.js.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.template.d.ts.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.template.js +4 -3
- package/dist/components/inputs/radio-button-field/radio-button-field.template.js.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.d.ts +3 -0
- package/dist/components/inputs/segmented-control/segmented-control.d.ts.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.js +6 -0
- package/dist/components/inputs/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.styles.d.ts.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.styles.js +0 -10
- package/dist/components/inputs/segmented-control/segmented-control.styles.js.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.template.js +3 -3
- package/dist/components/inputs/segmented-control/segmented-control.template.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.mentions.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.mentions.js +77 -1
- package/dist/components/inputs/text-editor/text-editor.mentions.js.map +1 -1
- package/dist/components/inputs/time-field/time-field.d.ts +1 -1
- package/dist/components/inputs/time-field/time-field.js +1 -1
- package/dist/components/inputs/time-picker/time-picker.d.ts +1 -1
- package/dist/components/inputs/time-picker/time-picker.js +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.styles.d.ts.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.styles.js +0 -9
- package/dist/components/inputs/toggle-button/toggle-button.styles.js.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.template.js +3 -3
- package/dist/components/inputs/toggle-button/toggle-button.template.js.map +1 -1
- package/dist/components/layout/card/card.d.ts +1 -4
- package/dist/components/layout/card/card.d.ts.map +1 -1
- package/dist/components/layout/card/card.js +1 -12
- package/dist/components/layout/card/card.js.map +1 -1
- package/dist/components/layout/card/card.template.d.ts.map +1 -1
- package/dist/components/layout/card/card.template.js +2 -1
- package/dist/components/layout/card/card.template.js.map +1 -1
- package/dist/components/layout/page-sections/hero/hero.d.ts +1 -1
- package/dist/components/layout/page-sections/hero/hero.js +1 -1
- package/dist/components/layout/sheet/sheet.styles.js +4 -4
- package/dist/components/layout/spacer/spacer.d.ts +2 -2
- package/dist/components/layout/spacer/spacer.js +2 -2
- package/dist/components/lists-and-tables/list-item/list-item.d.ts +3 -2
- package/dist/components/lists-and-tables/list-item/list-item.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.js +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.template.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.template.js +2 -1
- package/dist/components/lists-and-tables/list-item/list-item.template.js.map +1 -1
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.d.ts +1 -1
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.js +1 -1
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.js +2 -1
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.js.map +1 -1
- package/dist/components/navigation/link/link.d.ts +1 -3
- package/dist/components/navigation/link/link.d.ts.map +1 -1
- package/dist/components/navigation/link/link.js +1 -11
- package/dist/components/navigation/link/link.js.map +1 -1
- package/dist/components/navigation/link/link.template.d.ts.map +1 -1
- package/dist/components/navigation/link/link.template.js +2 -1
- package/dist/components/navigation/link/link.template.js.map +1 -1
- package/dist/components/navigation/skip-link/skip-link.styles.d.ts.map +1 -1
- package/dist/components/navigation/skip-link/skip-link.styles.js +10 -4
- package/dist/components/navigation/skip-link/skip-link.styles.js.map +1 -1
- package/dist/components/status-and-feedback/badge/badge.d.ts +1 -1
- package/dist/components/status-and-feedback/badge/badge.js +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.js +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.d.ts +2 -4
- package/dist/components/status-and-feedback/status-bar/status-bar.d.ts.map +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.js +2 -8
- package/dist/components/status-and-feedback/status-bar/status-bar.js.map +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.styles.js +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.template.d.ts.map +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.template.js +2 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.template.js.map +1 -1
- package/dist/components/{with-translations-CqUV9S5g.js → with-translations-BAKFoEKy.js} +22 -1
- package/dist/css/fouc.css +1 -1
- package/dist/css/rijksoverheid-fonts.css +1 -1
- package/dist/css/variables.css +1 -1
- package/dist/favicon.svg +3 -8
- package/dist/nldd.min.js +621 -658
- package/dist/touch-icon.png +0 -0
- package/dist/types/vue.d.ts +14 -14
- package/dist/utilities/form-associated-mixin.d.ts +2 -0
- package/dist/utilities/form-associated-mixin.d.ts.map +1 -1
- package/dist/utilities/form-associated-mixin.js +15 -1
- package/dist/utilities/form-associated-mixin.js.map +1 -1
- package/dist/utilities/link-rel.d.ts +13 -0
- package/dist/utilities/link-rel.d.ts.map +1 -0
- package/dist/utilities/link-rel.js +21 -0
- package/dist/utilities/link-rel.js.map +1 -0
- package/package.json +6 -6
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
2
|
import { n as slottedReset, t as inheritedTextReset } from "./shadow-resets-aG-rgyNQ.js";
|
|
3
|
+
import { n as linkRel, t as withTranslations } from "./with-translations-BAKFoEKy.js";
|
|
3
4
|
import { t as __decorate } from "./decorate-lwt_OrAG.js";
|
|
4
|
-
import { t as withTranslations } from "./with-translations-CqUV9S5g.js";
|
|
5
5
|
import { t as reflectNonDefault } from "./reflect-non-default-OLaK60rT.js";
|
|
6
|
-
import { i as PopupAnchorController, n as NLDDTooltip, r as NLDDActivityIndicator, t as NLDDIconButton } from "./icon-button-
|
|
6
|
+
import { i as PopupAnchorController, n as NLDDTooltip, r as NLDDActivityIndicator, t as NLDDIconButton } from "./icon-button-oua8pmMC.js";
|
|
7
7
|
import { t as NLDDIcon } from "./icon-C_zwJZ_g.js";
|
|
8
8
|
import { n as isPointerMode, r as isTouchMode, t as isKeyboardMode } from "./input-modality-DhTeUxKi.js";
|
|
9
9
|
import { t as breakpoints } from "./breakpoints-CkxsiRgH.js";
|
|
10
10
|
import { t as VisibilityMixin } from "./visibility-mixin-BU1vIMW7.js";
|
|
11
|
-
import { $ as layer, A as syntaxTree, B as Tree, C as indentNodeProp, Ct as
|
|
12
|
-
import { i as completionStatus, n as autocompletion, s as startCompletion, t as CompletionContext } from "./dist-
|
|
13
|
-
import { n as html$2, r as htmlCompletionSource } from "./dist-
|
|
11
|
+
import { $ as layer, A as syntaxTree, B as Tree, C as indentNodeProp, Ct as countColumn, D as matchBrackets, E as languageDataProp, F as NodeProp, G as RectangleMarker, H as Decoration, I as NodeSet, J as drawSelection, K as ViewPlugin, L as NodeType, M as styleTags, N as tags, Q as keymap, S as getIndentation, St as combineConfig, T as indentUnit, U as Direction, V as parseMixed, W as EditorView, X as getDrawSelectionConfig, Y as dropCursor, _t as StateField, a as HighlightStyle, at as Annotation, b as foldService, c as Language, ct as Compartment, d as ParseContext, dt as Facet, et as lineNumbers, f as StreamLanguage, gt as StateEffect, h as defineLanguageFacet, it as tooltips, j as Tag, k as syntaxHighlighting, l as LanguageDescription, lt as EditorSelection, mt as RangeSetBuilder, nt as placeholder, o as IndentContext, ot as ChangeDesc, pt as Prec, q as WidgetType, st as ChangeSet, u as LanguageSupport, ut as EditorState, vt as Text, w as indentString, wt as findClusterBreak, x as getIndentUnit, y as foldNodeProp, yt as Transaction, z as Parser } from "./dist-Dn3c5gfb.js";
|
|
12
|
+
import { i as completionStatus, n as autocompletion, s as startCompletion, t as CompletionContext } from "./dist-BUu-NW5O.js";
|
|
13
|
+
import { n as html$2, r as htmlCompletionSource } from "./dist-Dxn9Up8K.js";
|
|
14
14
|
import { LitElement, css, html, nothing, svg, unsafeCSS } from "lit";
|
|
15
15
|
import { customElement, property, query, state } from "lit/decorators.js";
|
|
16
16
|
import { unsafeHTML } from "lit/directives/unsafe-html.js";
|
|
@@ -694,7 +694,7 @@ function template$23(helpers) {
|
|
|
694
694
|
` : nothing;
|
|
695
695
|
const popupSlot = html`<slot name="popup" @slotchange=${this._popup.handleSlotChange}></slot>`;
|
|
696
696
|
if (this.href) {
|
|
697
|
-
const resolvedRel = this.
|
|
697
|
+
const resolvedRel = linkRel(this.rel, this.target);
|
|
698
698
|
return html`
|
|
699
699
|
<a class=${buttonClass}
|
|
700
700
|
href=${this.href}
|
|
@@ -853,7 +853,7 @@ function DescribedBy(Base) {
|
|
|
853
853
|
* @attr {string} accessible-label - Accessible label for the button, overrides text for screen readers
|
|
854
854
|
* @attr {string} href - When set, renders an <a> element instead of <button>
|
|
855
855
|
* @attr {string} target - Link target (e.g. '_blank'); only used when href is set. With '_blank' the button adds a visually hidden "opens in new tab" announcement for screen readers (WCAG 2.1 SC 3.2.2).
|
|
856
|
-
* @attr {string} rel - Link rel attribute;
|
|
856
|
+
* @attr {string} rel - Link rel attribute, used with href; with target '_blank', 'noopener noreferrer' is added to whatever you set
|
|
857
857
|
* @attr {object} translations - Override translation keys (e.g. the "opens in new tab" announcement); unset keys fall back to Dutch.
|
|
858
858
|
*
|
|
859
859
|
* @slot text - Slot for custom button content (e.g. text with inline markup). Used when the text attribute is empty or not set (an empty string counts as "not set", since the attribute and the unset property are indistinguishable). Provide accessible-label when the slotted content isn't plain text.
|
|
@@ -924,12 +924,6 @@ var NLDDButton = (_NLDDButton = class NLDDButton extends DescribedBy(withTransla
|
|
|
924
924
|
if (this.type === "submit") this._internals.form?.requestSubmit();
|
|
925
925
|
else if (this.type === "reset") this._internals.form?.reset();
|
|
926
926
|
}
|
|
927
|
-
/** Resolves the effective rel value for link rendering. */
|
|
928
|
-
_resolvedRel() {
|
|
929
|
-
if (this.rel) return this.rel;
|
|
930
|
-
if (this.target === "_blank") return "noopener noreferrer";
|
|
931
|
-
return "";
|
|
932
|
-
}
|
|
933
927
|
/**
|
|
934
928
|
* Delegates focus to the inner `<button>` (or `<a>` when `href` is set), so
|
|
935
929
|
* consumers can call `buttonEl.focus()` without reaching into shadow DOM.
|
|
@@ -5386,7 +5380,7 @@ function toolbarTitleTemplate(component) {
|
|
|
5386
5380
|
<a class="toolbar__title-link"
|
|
5387
5381
|
href=${component.href}
|
|
5388
5382
|
target=${component.target || nothing}
|
|
5389
|
-
rel=${component.target
|
|
5383
|
+
rel=${linkRel(null, component.target) || nothing}
|
|
5390
5384
|
>
|
|
5391
5385
|
<slot name="media"></slot>
|
|
5392
5386
|
${titleGroup}${component.target === "_blank" ? html`<span class="toolbar__opens-in-new-tab-hint">${component._t("components.toolbar.opens-in-new-tab-label")}</span>` : nothing}
|
|
@@ -6371,7 +6365,7 @@ function avatarTemplate(component) {
|
|
|
6371
6365
|
<a class="avatar avatar--interactive"
|
|
6372
6366
|
href=${component.href}
|
|
6373
6367
|
target=${component.target || nothing}
|
|
6374
|
-
rel=${component.
|
|
6368
|
+
rel=${linkRel(component.rel, component.target) || nothing}
|
|
6375
6369
|
aria-label=${controlLabel}
|
|
6376
6370
|
tabindex=${component.noTab ? "-1" : nothing}
|
|
6377
6371
|
>${content}</a>
|
|
@@ -6392,7 +6386,7 @@ function avatarTemplate(component) {
|
|
|
6392
6386
|
//#endregion
|
|
6393
6387
|
//#region src/components/content/avatar/avatar.ts
|
|
6394
6388
|
/**
|
|
6395
|
-
*
|
|
6389
|
+
* Nederlandse Digitale Dienst Avatar Component (Lit + TypeScript)
|
|
6396
6390
|
*
|
|
6397
6391
|
* Shows one person or organization as a compact, round (person) or rounded
|
|
6398
6392
|
* (organization) representation. The content follows a fixed fallback chain: an
|
|
@@ -6433,7 +6427,7 @@ function avatarTemplate(component) {
|
|
|
6433
6427
|
* @attr {boolean} no-tab - Takes the control out of the tab order (tabindex="-1"), for an avatar that is a link or a button inside a roving container (a row of an nldd-list). Does nothing on a decorative avatar.
|
|
6434
6428
|
* @attr {boolean} button - Makes the avatar a button; ignored when `href` is set
|
|
6435
6429
|
* @attr {string} target - Link target for href (e.g. '_blank'); completes rel and announces "Opens in a new tab"
|
|
6436
|
-
* @attr {string} rel - Link rel for href;
|
|
6430
|
+
* @attr {string} rel - Link rel for href; with target '_blank', 'noopener noreferrer' is added to whatever you set
|
|
6437
6431
|
* @attr {object} translations - Override translation keys; unset keys fall back to Dutch
|
|
6438
6432
|
*
|
|
6439
6433
|
* @example
|
|
@@ -6482,16 +6476,6 @@ var NLDDAvatar = (_NLDDAvatar = class NLDDAvatar extends withTranslations(LitEle
|
|
|
6482
6476
|
get isInteractive() {
|
|
6483
6477
|
return Boolean(this.href) || this.button;
|
|
6484
6478
|
}
|
|
6485
|
-
/** Resolves rel for the link: _blank adds noopener/noreferrer (mirroring
|
|
6486
|
-
* nldd-link and nldd-card), merged with a rel of your own. */
|
|
6487
|
-
_resolvedRel() {
|
|
6488
|
-
const base = this.rel ?? "";
|
|
6489
|
-
if (this.target !== "_blank") return base;
|
|
6490
|
-
const parts = new Set(base.split(/\s+/).filter(Boolean));
|
|
6491
|
-
parts.add("noopener");
|
|
6492
|
-
parts.add("noreferrer");
|
|
6493
|
-
return [...parts].join(" ");
|
|
6494
|
-
}
|
|
6495
6479
|
/** Initials shown when there is no image: an explicit `initials` wins,
|
|
6496
6480
|
* otherwise the first letter of the first and last word of `name`. */
|
|
6497
6481
|
get resolvedInitials() {
|
|
@@ -10050,7 +10034,7 @@ var template$13 = (button, href, target, rel, opensInNewTabLabel, actionTabindex
|
|
|
10050
10034
|
<a class="list-item__action"
|
|
10051
10035
|
href=${href}
|
|
10052
10036
|
target=${target ?? nothing}
|
|
10053
|
-
rel=${rel
|
|
10037
|
+
rel=${linkRel(rel, target) || nothing}
|
|
10054
10038
|
aria-disabled=${disabled ? "true" : nothing}
|
|
10055
10039
|
aria-expanded=${ariaExpanded}
|
|
10056
10040
|
tabindex=${actionTabindex ?? nothing}
|
|
@@ -10975,7 +10959,7 @@ var nlddAvatarGroupTranslations = {
|
|
|
10975
10959
|
//#endregion
|
|
10976
10960
|
//#region src/components/content/avatar-group/avatar-group.ts
|
|
10977
10961
|
/**
|
|
10978
|
-
*
|
|
10962
|
+
* Nederlandse Digitale Dienst Avatar Group Component (Lit + TypeScript)
|
|
10979
10963
|
*
|
|
10980
10964
|
* Shows several avatars as one group: they overlap, and each one gets a ring in
|
|
10981
10965
|
* the surface color so they stay apart where they meet. The ring uses the same
|
|
@@ -11240,7 +11224,7 @@ function identityTemplate(component) {
|
|
|
11240
11224
|
//#endregion
|
|
11241
11225
|
//#region src/components/content/identity/identity.ts
|
|
11242
11226
|
/**
|
|
11243
|
-
*
|
|
11227
|
+
* Nederlandse Digitale Dienst Identity Component (Lit + TypeScript)
|
|
11244
11228
|
*
|
|
11245
11229
|
* An editorial line that shows authors or editors: optional avatar or avatars,
|
|
11246
11230
|
* a name line and supporting text (a role or a date, for instance). Every part
|
|
@@ -11582,16 +11566,16 @@ var nlddCodeMirrorTheme = [baseTheme, syntaxHighlighting(highlightStyle)];
|
|
|
11582
11566
|
//#endregion
|
|
11583
11567
|
//#region src/utilities/codemirror/languages.ts
|
|
11584
11568
|
var loaders = {
|
|
11585
|
-
json: async () => (await import("./dist-
|
|
11586
|
-
yaml: async () => (await import("./dist-
|
|
11587
|
-
javascript: async () => (await import("./dist-
|
|
11588
|
-
typescript: async () => (await import("./dist-
|
|
11589
|
-
css: async () => (await import("./dist-
|
|
11590
|
-
html: async () => (await import("./dist-
|
|
11591
|
-
xml: async () => (await import("./dist-
|
|
11592
|
-
python: async () => (await import("./dist-
|
|
11593
|
-
rust: async () => (await import("./dist-
|
|
11594
|
-
sql: async () => (await import("./dist-
|
|
11569
|
+
json: async () => (await import("./dist-CoUVHSu-.js")).json(),
|
|
11570
|
+
yaml: async () => (await import("./dist-OlffRM7-.js")).yaml(),
|
|
11571
|
+
javascript: async () => (await import("./dist-CGOykrJw.js").then((n) => n.t)).javascript(),
|
|
11572
|
+
typescript: async () => (await import("./dist-CGOykrJw.js").then((n) => n.t)).javascript({ typescript: true }),
|
|
11573
|
+
css: async () => (await import("./dist-CQzaKTa8.js").then((n) => n.r)).css(),
|
|
11574
|
+
html: async () => (await import("./dist-Dxn9Up8K.js").then((n) => n.t)).html(),
|
|
11575
|
+
xml: async () => (await import("./dist-M6GKopqu.js")).xml(),
|
|
11576
|
+
python: async () => (await import("./dist-CSYXsT7W.js")).python(),
|
|
11577
|
+
rust: async () => (await import("./dist-B5ie2Bo9.js")).rust(),
|
|
11578
|
+
sql: async () => (await import("./dist-RPaf2J9c.js")).sql(),
|
|
11595
11579
|
markdown: async () => (await Promise.resolve().then(() => dist_exports)).markdown(),
|
|
11596
11580
|
bash: async () => new LanguageSupport(StreamLanguage.define((await import("./shell-C61GCsJA.js")).shell)),
|
|
11597
11581
|
toml: async () => new LanguageSupport(StreamLanguage.define((await import("./toml-C2HBbPgG.js")).toml)),
|
|
@@ -11925,7 +11909,11 @@ var NLDDCodeViewer = (_NLDDCodeViewer = class NLDDCodeViewer extends NLDDCodeMir
|
|
|
11925
11909
|
nlddCodeMirrorTheme,
|
|
11926
11910
|
EditorView.editable.of(false),
|
|
11927
11911
|
EditorState.readOnly.of(true),
|
|
11928
|
-
EditorView.contentAttributes.of({
|
|
11912
|
+
EditorView.contentAttributes.of({
|
|
11913
|
+
role: "code",
|
|
11914
|
+
"aria-multiline": null,
|
|
11915
|
+
"aria-readonly": null
|
|
11916
|
+
}),
|
|
11929
11917
|
this._wrapCompartment.of(this.wrap ? EditorView.lineWrapping : []),
|
|
11930
11918
|
this._languageCompartment.of([])
|
|
11931
11919
|
];
|
|
@@ -15630,6 +15618,20 @@ function FormAssociated(Base) {
|
|
|
15630
15618
|
return this.shadowRoot?.querySelector("input, textarea, select") ?? null;
|
|
15631
15619
|
}
|
|
15632
15620
|
/**
|
|
15621
|
+
* Where an invalid submit points its message and puts the focus.
|
|
15622
|
+
*
|
|
15623
|
+
* The native control, where the user reads and fixes it. Not when that
|
|
15624
|
+
* control is hidden, as the radio that only carries `required` is: a radio
|
|
15625
|
+
* inside an element that is itself the radio is a control inside a control,
|
|
15626
|
+
* and a hidden element cannot hold the message. Then it goes on this
|
|
15627
|
+
* element. Override where neither is what the user should land on, such as
|
|
15628
|
+
* a group that has no focus of its own.
|
|
15629
|
+
*/
|
|
15630
|
+
validationAnchor() {
|
|
15631
|
+
const target = this.validationTarget();
|
|
15632
|
+
return target && !target.hidden ? target : void 0;
|
|
15633
|
+
}
|
|
15634
|
+
/**
|
|
15633
15635
|
* A reason the host is invalid that no attribute can express: a server that
|
|
15634
15636
|
* refused the value, or an nldd-validation-list whose rule it fails. Kept
|
|
15635
15637
|
* beside the native flags rather than replacing them, because
|
|
@@ -15663,7 +15665,7 @@ function FormAssociated(Base) {
|
|
|
15663
15665
|
flags.customError = true;
|
|
15664
15666
|
message = custom;
|
|
15665
15667
|
}
|
|
15666
|
-
const anchor =
|
|
15668
|
+
const anchor = this.validationAnchor();
|
|
15667
15669
|
if (Object.keys(flags).length === 0) {
|
|
15668
15670
|
this.internals.setValidity({});
|
|
15669
15671
|
return;
|
|
@@ -20563,7 +20565,7 @@ function datePickerTemplate(component) {
|
|
|
20563
20565
|
//#endregion
|
|
20564
20566
|
//#region src/components/inputs/date-picker/date-picker.ts
|
|
20565
20567
|
/**
|
|
20566
|
-
*
|
|
20568
|
+
* Nederlandse Digitale Dienst Date Picker Component (Lit + TypeScript)
|
|
20567
20569
|
*
|
|
20568
20570
|
* A calendar for picking a date or a period. The component works on its own
|
|
20569
20571
|
* (inline on a page, in a filter panel) and also sits in the popover of
|
|
@@ -21336,7 +21338,7 @@ var nlddDateFieldTranslations = {
|
|
|
21336
21338
|
//#endregion
|
|
21337
21339
|
//#region src/components/inputs/date-field/date-field.ts
|
|
21338
21340
|
/**
|
|
21339
|
-
*
|
|
21341
|
+
* Nederlandse Digitale Dienst Date Field Component (Lit + TypeScript)
|
|
21340
21342
|
*
|
|
21341
21343
|
* A text field for a date, with an optional calendar in a popover. The value is
|
|
21342
21344
|
* always ISO (yyyy-mm-dd); on screen it shows the Dutch notation (dd-mm-yyyy).
|
|
@@ -23848,16 +23850,6 @@ var radioButtonStyles = css`
|
|
|
23848
23850
|
|
|
23849
23851
|
/* # Elements */
|
|
23850
23852
|
|
|
23851
|
-
.radio-button__validation-input {
|
|
23852
|
-
position: absolute;
|
|
23853
|
-
inset: 0;
|
|
23854
|
-
opacity: 0;
|
|
23855
|
-
margin: 0;
|
|
23856
|
-
pointer-events: none;
|
|
23857
|
-
width: 100%;
|
|
23858
|
-
height: 100%;
|
|
23859
|
-
}
|
|
23860
|
-
|
|
23861
23853
|
.radio-button__outer-shape {
|
|
23862
23854
|
box-sizing: border-box;
|
|
23863
23855
|
position: relative;
|
|
@@ -23944,11 +23936,10 @@ function radioButtonTemplate(component) {
|
|
|
23944
23936
|
<input class="radio-button__validation-input"
|
|
23945
23937
|
type="radio"
|
|
23946
23938
|
name="nldd-validation"
|
|
23939
|
+
hidden
|
|
23947
23940
|
?required=${component.required}
|
|
23948
23941
|
?disabled=${component.disabled}
|
|
23949
23942
|
.checked=${component._groupHasSelection}
|
|
23950
|
-
tabindex="-1"
|
|
23951
|
-
aria-hidden="true"
|
|
23952
23943
|
>
|
|
23953
23944
|
<div class="radio-button__outer-shape"
|
|
23954
23945
|
aria-hidden="true"
|
|
@@ -24325,16 +24316,6 @@ var radioButtonFieldStyles = css`
|
|
|
24325
24316
|
outline: none;
|
|
24326
24317
|
}
|
|
24327
24318
|
|
|
24328
|
-
.radio-button-field__validation-input {
|
|
24329
|
-
position: absolute;
|
|
24330
|
-
inset: 0;
|
|
24331
|
-
opacity: 0;
|
|
24332
|
-
margin: 0;
|
|
24333
|
-
pointer-events: none;
|
|
24334
|
-
width: 100%;
|
|
24335
|
-
height: 100%;
|
|
24336
|
-
}
|
|
24337
|
-
|
|
24338
24319
|
|
|
24339
24320
|
/* # Block */
|
|
24340
24321
|
|
|
@@ -24377,11 +24358,10 @@ function radioButtonFieldTemplate(component) {
|
|
|
24377
24358
|
<input class="radio-button-field__validation-input"
|
|
24378
24359
|
type="radio"
|
|
24379
24360
|
name="nldd-validation"
|
|
24361
|
+
hidden
|
|
24380
24362
|
?required=${component.required}
|
|
24381
24363
|
?disabled=${component.disabled}
|
|
24382
24364
|
.checked=${component._answered}
|
|
24383
|
-
tabindex="-1"
|
|
24384
|
-
aria-hidden="true"
|
|
24385
24365
|
>
|
|
24386
24366
|
<div class="radio-button-field__control">
|
|
24387
24367
|
<nldd-radio-button
|
|
@@ -25286,16 +25266,6 @@ var segmentedControlStyles = css`
|
|
|
25286
25266
|
|
|
25287
25267
|
/* # Elements */
|
|
25288
25268
|
|
|
25289
|
-
.segmented-control__validation-input {
|
|
25290
|
-
position: absolute;
|
|
25291
|
-
inset: 0;
|
|
25292
|
-
opacity: 0;
|
|
25293
|
-
margin: 0;
|
|
25294
|
-
pointer-events: none;
|
|
25295
|
-
width: 100%;
|
|
25296
|
-
height: 100%;
|
|
25297
|
-
}
|
|
25298
|
-
|
|
25299
25269
|
::slotted(nldd-segmented-control-item[selected]) {
|
|
25300
25270
|
position: relative;
|
|
25301
25271
|
z-index: var(--_selected-z-index);
|
|
@@ -25521,11 +25491,10 @@ function segmentedControlTemplate(component) {
|
|
|
25521
25491
|
<input class="segmented-control__validation-input"
|
|
25522
25492
|
type="radio"
|
|
25523
25493
|
name="nldd-validation"
|
|
25494
|
+
hidden
|
|
25524
25495
|
?required=${component.required && component.type !== "checkbox"}
|
|
25525
25496
|
?disabled=${component.disabled}
|
|
25526
25497
|
.checked=${!!component.value}
|
|
25527
|
-
tabindex="-1"
|
|
25528
|
-
aria-hidden="true"
|
|
25529
25498
|
>
|
|
25530
25499
|
<slot @slotchange=${component._onSlotChange}></slot>
|
|
25531
25500
|
`;
|
|
@@ -25903,6 +25872,12 @@ var NLDDSegmentedControl = (_NLDDSegmentedControl2 = class NLDDSegmentedControl
|
|
|
25903
25872
|
this.value = this._initialValue;
|
|
25904
25873
|
this.values = [...this._initialValues];
|
|
25905
25874
|
}
|
|
25875
|
+
/** The group has no focus of its own, so an invalid submit lands where Tab
|
|
25876
|
+
* would: on the chosen option, or the first one that is enabled. */
|
|
25877
|
+
validationAnchor() {
|
|
25878
|
+
const items = this._getItems().filter((item) => !item.disabled);
|
|
25879
|
+
return items.find((item) => item.selected) ?? items[0];
|
|
25880
|
+
}
|
|
25906
25881
|
formStateRestoreCallback(state) {
|
|
25907
25882
|
if (state === null) return;
|
|
25908
25883
|
if (this.type === "checkbox" && state instanceof FormData && this.name) this.values = state.getAll(this.name).map(String);
|
|
@@ -29378,7 +29353,73 @@ function completionSource(getTypeaheads, onChoose) {
|
|
|
29378
29353
|
};
|
|
29379
29354
|
};
|
|
29380
29355
|
}
|
|
29356
|
+
/**
|
|
29357
|
+
* A frame for the list in the top layer, the way an nldd-menu opens.
|
|
29358
|
+
*
|
|
29359
|
+
* CodeMirror hangs its tooltip in the editor, so everything around the editor
|
|
29360
|
+
* applies to it: an nldd-sheet and an nldd-modal-dialog hide their overflow and
|
|
29361
|
+
* cut the list off at their edge, and an ancestor with a transform becomes the
|
|
29362
|
+
* frame a `position: fixed` tooltip resolves against, which put the list beside
|
|
29363
|
+
* the page. In the top layer none of that reaches it, and it has the window to
|
|
29364
|
+
* itself instead of the room left in a short dialog.
|
|
29365
|
+
*
|
|
29366
|
+
* It keeps the same distance from the window's edge that an nldd-menu does.
|
|
29367
|
+
*
|
|
29368
|
+
* The frame is `manual`, so only this opens and closes it, and it is opened
|
|
29369
|
+
* from a mutation observer rather than on an update: CodeMirror measures the
|
|
29370
|
+
* tooltip right after it puts it there, and a closed popover has no size.
|
|
29371
|
+
*/
|
|
29372
|
+
/** What an nldd-menu keeps free of the window's edge (--_viewport-margin). */
|
|
29373
|
+
var VIEWPORT_MARGIN = 16;
|
|
29374
|
+
function topLayerPopups() {
|
|
29375
|
+
const frame = document.createElement("div");
|
|
29376
|
+
frame.popover = "manual";
|
|
29377
|
+
frame.className = "cm-nldd-popups";
|
|
29378
|
+
const sync = () => {
|
|
29379
|
+
const wanted = frame.querySelector(".cm-tooltip") !== null;
|
|
29380
|
+
if (wanted === frame.matches(":popover-open")) return;
|
|
29381
|
+
try {
|
|
29382
|
+
if (wanted) frame.showPopover();
|
|
29383
|
+
else frame.hidePopover();
|
|
29384
|
+
} catch {}
|
|
29385
|
+
};
|
|
29386
|
+
const keeper = ViewPlugin.define((view) => {
|
|
29387
|
+
view.dom.appendChild(frame);
|
|
29388
|
+
const observer = new MutationObserver(sync);
|
|
29389
|
+
observer.observe(frame, {
|
|
29390
|
+
childList: true,
|
|
29391
|
+
subtree: true
|
|
29392
|
+
});
|
|
29393
|
+
return { destroy() {
|
|
29394
|
+
observer.disconnect();
|
|
29395
|
+
frame.remove();
|
|
29396
|
+
} };
|
|
29397
|
+
});
|
|
29398
|
+
const space = () => ({
|
|
29399
|
+
left: VIEWPORT_MARGIN,
|
|
29400
|
+
top: VIEWPORT_MARGIN,
|
|
29401
|
+
right: window.innerWidth - VIEWPORT_MARGIN,
|
|
29402
|
+
bottom: window.innerHeight - VIEWPORT_MARGIN
|
|
29403
|
+
});
|
|
29404
|
+
return [tooltips({
|
|
29405
|
+
parent: frame,
|
|
29406
|
+
tooltipSpace: space
|
|
29407
|
+
}), keeper];
|
|
29408
|
+
}
|
|
29381
29409
|
var popupTheme = EditorView.theme({
|
|
29410
|
+
".cm-nldd-popups": {
|
|
29411
|
+
position: "fixed",
|
|
29412
|
+
inset: "0",
|
|
29413
|
+
width: "auto",
|
|
29414
|
+
height: "auto",
|
|
29415
|
+
margin: "0",
|
|
29416
|
+
border: "none",
|
|
29417
|
+
padding: "0",
|
|
29418
|
+
background: "none",
|
|
29419
|
+
overflow: "visible",
|
|
29420
|
+
pointerEvents: "none"
|
|
29421
|
+
},
|
|
29422
|
+
".cm-nldd-popups .cm-tooltip": { pointerEvents: "auto" },
|
|
29382
29423
|
".cm-tooltip.cm-tooltip-autocomplete": {
|
|
29383
29424
|
border: "none",
|
|
29384
29425
|
borderRadius: "var(--semantics-overlays-corner-radius)",
|
|
@@ -29460,6 +29501,7 @@ function typeaheads(getTypeaheads, onChoose) {
|
|
|
29460
29501
|
if (typeaheadQueryAt(update.state, update.state.selection.main.head, triggers)) startCompletion(update.view);
|
|
29461
29502
|
});
|
|
29462
29503
|
return [
|
|
29504
|
+
topLayerPopups(),
|
|
29463
29505
|
autocompletion({
|
|
29464
29506
|
override: [completionSource(getTypeaheads, onChoose)],
|
|
29465
29507
|
icons: false,
|
|
@@ -33834,8 +33876,8 @@ var spacerStyles = css`
|
|
|
33834
33876
|
/**
|
|
33835
33877
|
* Nederlandse Digitale Dienst Spacer Component (Lit + TypeScript)
|
|
33836
33878
|
*
|
|
33837
|
-
* Add explicit space between elements. Components
|
|
33838
|
-
*
|
|
33879
|
+
* Add explicit space between elements. Components here have no margins
|
|
33880
|
+
* of their own — all whitespace is set by a spacer.
|
|
33839
33881
|
*
|
|
33840
33882
|
* ### Sizing
|
|
33841
33883
|
* Use a single `size` attribute for whitespace that's the same at every
|
|
@@ -34172,7 +34214,7 @@ var nlddTimePickerTranslations = {
|
|
|
34172
34214
|
//#endregion
|
|
34173
34215
|
//#region src/components/inputs/time-picker/time-picker.ts
|
|
34174
34216
|
/**
|
|
34175
|
-
*
|
|
34217
|
+
* Nederlandse Digitale Dienst Time Picker Component (Lit + TypeScript)
|
|
34176
34218
|
*
|
|
34177
34219
|
* Two columns, hours and minutes, that slide like a wheel past the selection in
|
|
34178
34220
|
* the middle. The component works on its own (inline on a page, in a filter
|
|
@@ -34612,7 +34654,7 @@ var nlddTimeFieldTranslations = {
|
|
|
34612
34654
|
//#endregion
|
|
34613
34655
|
//#region src/components/inputs/time-field/time-field.ts
|
|
34614
34656
|
/**
|
|
34615
|
-
*
|
|
34657
|
+
* Nederlandse Digitale Dienst Time Field Component (Lit + TypeScript)
|
|
34616
34658
|
*
|
|
34617
34659
|
* A text field for a time. The value is always 24-hour `HH:mm`, which is how
|
|
34618
34660
|
* Dutch shows it too, so unlike nldd-date-field there is nothing to convert.
|
|
@@ -35316,15 +35358,6 @@ var toggleButtonStyles = css`
|
|
|
35316
35358
|
height: 100%;
|
|
35317
35359
|
}
|
|
35318
35360
|
|
|
35319
|
-
.toggle-button__validation-input {
|
|
35320
|
-
position: absolute;
|
|
35321
|
-
inset: 0;
|
|
35322
|
-
opacity: 0;
|
|
35323
|
-
margin: 0;
|
|
35324
|
-
pointer-events: none;
|
|
35325
|
-
width: 100%;
|
|
35326
|
-
height: 100%;
|
|
35327
|
-
}
|
|
35328
35361
|
`;
|
|
35329
35362
|
//#endregion
|
|
35330
35363
|
//#region src/components/inputs/toggle-button/toggle-button.template.ts
|
|
@@ -35348,11 +35381,10 @@ function toggleButtonTemplate(component) {
|
|
|
35348
35381
|
<input class="toggle-button__validation-input"
|
|
35349
35382
|
type="radio"
|
|
35350
35383
|
name="nldd-validation"
|
|
35384
|
+
hidden
|
|
35351
35385
|
?required=${component.required}
|
|
35352
35386
|
?disabled=${component.disabled}
|
|
35353
35387
|
.checked=${component._groupHasSelection}
|
|
35354
|
-
tabindex="-1"
|
|
35355
|
-
aria-hidden="true"
|
|
35356
35388
|
>
|
|
35357
35389
|
${icon}
|
|
35358
35390
|
${textContent}
|
|
@@ -40401,7 +40433,7 @@ function heroTemplate(component) {
|
|
|
40401
40433
|
//#endregion
|
|
40402
40434
|
//#region src/components/layout/page-sections/hero/hero.ts
|
|
40403
40435
|
/**
|
|
40404
|
-
*
|
|
40436
|
+
* Nederlandse Digitale Dienst Hero Component (Lit + TypeScript)
|
|
40405
40437
|
*
|
|
40406
40438
|
* A page header with a media area and a text panel (the main) that can stand in
|
|
40407
40439
|
* six positions. Every area is rectangular.
|
|
@@ -41683,7 +41715,7 @@ var sheetStyles = css`
|
|
|
41683
41715
|
height: var(--_height, calc(100dvh - var(--semantics-sheets-bottom-top-inset)));
|
|
41684
41716
|
|
|
41685
41717
|
&[open] {
|
|
41686
|
-
animation: sheet-slide-in-bottom var(--semantics-sheets-bottom-animation-duration) var(--primitives-transition-easing-default)
|
|
41718
|
+
animation: sheet-slide-in-bottom var(--semantics-sheets-bottom-animation-duration) var(--primitives-transition-easing-default) backwards;
|
|
41687
41719
|
}
|
|
41688
41720
|
|
|
41689
41721
|
&.is-closing {
|
|
@@ -41698,7 +41730,7 @@ var sheetStyles = css`
|
|
|
41698
41730
|
height: calc(100dvh - var(--semantics-overlays-inset) * 2);
|
|
41699
41731
|
|
|
41700
41732
|
&[open] {
|
|
41701
|
-
animation: sheet-slide-in-right var(--semantics-sheets-side-animation-duration) var(--primitives-transition-easing-default)
|
|
41733
|
+
animation: sheet-slide-in-right var(--semantics-sheets-side-animation-duration) var(--primitives-transition-easing-default) backwards;
|
|
41702
41734
|
}
|
|
41703
41735
|
|
|
41704
41736
|
&.is-closing {
|
|
@@ -41733,7 +41765,7 @@ var sheetStyles = css`
|
|
|
41733
41765
|
height: calc(100dvh - var(--semantics-overlays-inset) * 2);
|
|
41734
41766
|
|
|
41735
41767
|
&[open] {
|
|
41736
|
-
animation: sheet-slide-in-left var(--semantics-sheets-side-animation-duration) var(--primitives-transition-easing-default)
|
|
41768
|
+
animation: sheet-slide-in-left var(--semantics-sheets-side-animation-duration) var(--primitives-transition-easing-default) backwards;
|
|
41737
41769
|
}
|
|
41738
41770
|
|
|
41739
41771
|
&.is-closing {
|
|
@@ -41757,7 +41789,7 @@ var sheetStyles = css`
|
|
|
41757
41789
|
height: var(--_height, calc(100dvh - var(--semantics-sheets-bottom-top-inset)));
|
|
41758
41790
|
|
|
41759
41791
|
&[open] {
|
|
41760
|
-
animation: sheet-slide-in-bottom var(--semantics-sheets-bottom-animation-duration) var(--primitives-transition-easing-default)
|
|
41792
|
+
animation: sheet-slide-in-bottom var(--semantics-sheets-bottom-animation-duration) var(--primitives-transition-easing-default) backwards;
|
|
41761
41793
|
}
|
|
41762
41794
|
|
|
41763
41795
|
&.is-closing {
|
|
@@ -42512,7 +42544,7 @@ function cardTemplate(component) {
|
|
|
42512
42544
|
<a class="card__action"
|
|
42513
42545
|
href=${component.href}
|
|
42514
42546
|
target=${component.target || nothing}
|
|
42515
|
-
rel=${component.
|
|
42547
|
+
rel=${linkRel(component.rel, component.target) || nothing}
|
|
42516
42548
|
aria-label=${linkLabel}
|
|
42517
42549
|
></a>
|
|
42518
42550
|
` : component.button ? html`
|
|
@@ -42567,7 +42599,7 @@ var nlddCardTranslations = { "components.card.opens-in-new-tab-label": "Opent in
|
|
|
42567
42599
|
* @attr {string} href - Makes the whole card a link to this URL (empty = no link)
|
|
42568
42600
|
* @attr {boolean} button - Makes the whole card a button; ignored when `href` is set
|
|
42569
42601
|
* @attr {string} target - Link target for href (e.g. '_blank'); adjusts rel automatically and adds an "Opent in nieuw tabblad" announcement for '_blank'
|
|
42570
|
-
* @attr {string} rel - Link rel for href;
|
|
42602
|
+
* @attr {string} rel - Link rel for href; with target '_blank', 'noopener noreferrer' is added to whatever you set
|
|
42571
42603
|
* @attr {object} translations - Override translation keys (e.g. the "Opent in nieuw tabblad" announcement)
|
|
42572
42604
|
*
|
|
42573
42605
|
* @slot header - Header content (e.g. nldd-title)
|
|
@@ -42598,16 +42630,6 @@ var NLDDCard = (_NLDDCard = class NLDDCard extends withTranslations(LitElement,
|
|
|
42598
42630
|
wrapper.hidden = slot.assignedElements().length === 0;
|
|
42599
42631
|
};
|
|
42600
42632
|
}
|
|
42601
|
-
/** Resolve rel for the overlay link: add noopener noreferrer for _blank
|
|
42602
|
-
* (mirrors nldd-link), merged with any consumer-set rel. */
|
|
42603
|
-
_resolvedRel() {
|
|
42604
|
-
const base = this.rel ?? "";
|
|
42605
|
-
if (this.target !== "_blank") return base;
|
|
42606
|
-
const parts = new Set(base.split(/\s+/).filter(Boolean));
|
|
42607
|
-
parts.add("noopener");
|
|
42608
|
-
parts.add("noreferrer");
|
|
42609
|
-
return [...parts].join(" ");
|
|
42610
|
-
}
|
|
42611
42633
|
connectedCallback() {
|
|
42612
42634
|
super.connectedCallback();
|
|
42613
42635
|
this.addEventListener("focusin", this._onFocusIn);
|
|
@@ -44139,7 +44161,7 @@ function template$9(control, href, target, rel, checked, expanded, current, disa
|
|
|
44139
44161
|
if (control === "link") return html`<a class="list-item-segment"
|
|
44140
44162
|
href=${href ?? nothing}
|
|
44141
44163
|
target=${target ?? nothing}
|
|
44142
|
-
rel=${rel
|
|
44164
|
+
rel=${linkRel(rel, target) || nothing}
|
|
44143
44165
|
aria-disabled=${disabled ? "true" : nothing}
|
|
44144
44166
|
aria-expanded=${ariaExpanded}
|
|
44145
44167
|
aria-current=${ariaCurrent}
|
|
@@ -46938,7 +46960,7 @@ var linkStyles = css`
|
|
|
46938
46960
|
//#endregion
|
|
46939
46961
|
//#region src/components/navigation/link/link.template.ts
|
|
46940
46962
|
function template$3(helpers) {
|
|
46941
|
-
const resolvedRel = this.
|
|
46963
|
+
const resolvedRel = linkRel(this.rel, this.target);
|
|
46942
46964
|
const opensInNewTabHint = !this.disabled && this.href && this.target === "_blank" ? this._t("components.link.opens-in-new-tab-label") : "";
|
|
46943
46965
|
const ariaLabel = this.accessibleLabel ? [this.accessibleLabel, opensInNewTabHint].filter(Boolean).join(", ") : nothing;
|
|
46944
46966
|
const renderOpensInNewTabHint = !!opensInNewTabHint && !this.accessibleLabel;
|
|
@@ -46990,7 +47012,7 @@ var nlddLinkTranslations = { "components.link.opens-in-new-tab-label": "Opent in
|
|
|
46990
47012
|
* @element nldd-link
|
|
46991
47013
|
* @attr {string} href - Link target
|
|
46992
47014
|
* @attr {string} target - Link target (e.g. '_blank'); adjusts rel automatically. With '_blank' the link adds a visually hidden "Opent in nieuw tabblad" announcement for screen readers (WCAG 2.1 SC 3.2.2).
|
|
46993
|
-
* @attr {string} rel - Link rel attribute;
|
|
47015
|
+
* @attr {string} rel - Link rel attribute; with target '_blank', 'noopener noreferrer' is added to whatever you set
|
|
46994
47016
|
* @attr {string} size - Text size: 'inherit' (the default) follows the surrounding text and lays the link out inline, so it wraps in running prose. 'xs' | 'sm' | 'md' | 'lg' pin a size and switch to inline-flex, which baseline-aligns a start or end icon with an explicit gap.
|
|
46995
47017
|
* @attr {string} text - Link text (alternative to the default slot)
|
|
46996
47018
|
* @attr {string} start-icon - Icon before the text
|
|
@@ -47025,15 +47047,6 @@ var NLDDLink = (_NLDDLink = class NLDDLink extends withTranslations(LitElement,
|
|
|
47025
47047
|
e.stopPropagation();
|
|
47026
47048
|
}
|
|
47027
47049
|
}
|
|
47028
|
-
/** @internal */
|
|
47029
|
-
_resolvedRel() {
|
|
47030
|
-
const base = this.rel ?? "";
|
|
47031
|
-
if (this.target !== "_blank") return base;
|
|
47032
|
-
const parts = new Set(base.split(/\s+/).filter(Boolean));
|
|
47033
|
-
parts.add("noopener");
|
|
47034
|
-
parts.add("noreferrer");
|
|
47035
|
-
return [...parts].join(" ");
|
|
47036
|
-
}
|
|
47037
47050
|
render() {
|
|
47038
47051
|
return template$3.call(this, { handleClick: this._handleClick.bind(this) });
|
|
47039
47052
|
}
|
|
@@ -47107,17 +47120,24 @@ var skipLinkStyles = css`
|
|
|
47107
47120
|
position: absolute;
|
|
47108
47121
|
top: 0;
|
|
47109
47122
|
left: 0;
|
|
47110
|
-
|
|
47123
|
+
clip-path: inset(50%);
|
|
47111
47124
|
z-index: var(--_z-index);
|
|
47112
47125
|
border-radius: var(--semantics-controls-md-corner-radius);
|
|
47113
47126
|
box-shadow: var(--_box-shadow);
|
|
47114
47127
|
background-color: var(--semantics-surfaces-base-background-color);
|
|
47128
|
+
width: 1px;
|
|
47129
|
+
height: 1px;
|
|
47130
|
+
overflow: hidden;
|
|
47115
47131
|
pointer-events: none;
|
|
47116
47132
|
justify-content: center;
|
|
47117
47133
|
}
|
|
47118
47134
|
|
|
47119
47135
|
.skip-link:has(:focus-visible) {
|
|
47120
|
-
|
|
47136
|
+
clip-path: none;
|
|
47137
|
+
width: auto;
|
|
47138
|
+
max-width: 100%;
|
|
47139
|
+
height: auto;
|
|
47140
|
+
overflow: visible;
|
|
47121
47141
|
pointer-events: auto;
|
|
47122
47142
|
}
|
|
47123
47143
|
|
|
@@ -47133,9 +47153,8 @@ var skipLinkStyles = css`
|
|
|
47133
47153
|
padding: var(--primitives-space-4) var(--primitives-space-16);
|
|
47134
47154
|
align-items: center;
|
|
47135
47155
|
color: var(--semantics-links-color);
|
|
47136
|
-
font: var(--primitives-font-body-md-medium-
|
|
47156
|
+
font: var(--primitives-font-body-md-medium-tight);
|
|
47137
47157
|
text-decoration: underline;
|
|
47138
|
-
white-space: nowrap;
|
|
47139
47158
|
appearance: none;
|
|
47140
47159
|
}
|
|
47141
47160
|
|
|
@@ -50596,7 +50615,7 @@ var modalDialogStyles = css`
|
|
|
50596
50615
|
}
|
|
50597
50616
|
|
|
50598
50617
|
.modal-dialog[open] {
|
|
50599
|
-
animation: modal-dialog-in var(--_animation-duration) var(--_animation-easing)
|
|
50618
|
+
animation: modal-dialog-in var(--_animation-duration) var(--_animation-easing) backwards;
|
|
50600
50619
|
}
|
|
50601
50620
|
|
|
50602
50621
|
.modal-dialog.is-closing {
|
|
@@ -52375,7 +52394,7 @@ var nlddBadgeTranslations = { "components.badge.notification-label": "Notificati
|
|
|
52375
52394
|
* @element nldd-badge
|
|
52376
52395
|
* @attr {string} size - Size: 'sm' | 'md' (default: 'md')
|
|
52377
52396
|
* @attr {string} color - Semantic ('critical' | 'accent' | 'neutral' | 'warning' | 'success'), a Rijkshuisstijl color ('lintblauw' | 'hemelblauw' | 'oranje' | …), or 'inherit' to fill in the content color around it: the `--context-content-color` channel a list item, table row or menu sets, falling back to `currentColor`. Default: 'critical'
|
|
52378
|
-
* @attr {string} custom-color - A color of its own, as any CSS color value ('#a90061', 'oklch(0.6 0.2 20)', 'var(--brand-cable-blue)'). For a color the
|
|
52397
|
+
* @attr {string} custom-color - A color of its own, as any CSS color value ('#a90061', 'oklch(0.6 0.2 20)', 'var(--brand-cable-blue)'). For a color the system cannot know: the jacket of a cable, a color someone picked. It wins over `color`. Whatever it paints, the text and icon on top become white or black, whichever contrasts. The text on it is black or white, picked on the relative luminance of the fill, so it clears 4.5:1 whatever color you hand it.
|
|
52379
52398
|
* @attr {boolean} pulse - Grows a ring out of the badge and fades it, for something happening right now (a live connection, an outage). Respects `prefers-reduced-motion`.
|
|
52380
52399
|
* @attr {string} text - Text (takes precedence over number)
|
|
52381
52400
|
* @attr {number} number - Numeric value. Shortened when it is over max
|
|
@@ -54656,7 +54675,7 @@ var statusBarStyles = css`
|
|
|
54656
54675
|
border-radius: var(--_corner-radius);
|
|
54657
54676
|
background-color: var(--_background-color);
|
|
54658
54677
|
width: 100%;
|
|
54659
|
-
height: var(--_height);
|
|
54678
|
+
min-height: var(--_height);
|
|
54660
54679
|
overflow: hidden;
|
|
54661
54680
|
padding-inline: var(--_inline-padding);
|
|
54662
54681
|
gap: var(--_gap);
|
|
@@ -54745,7 +54764,7 @@ function statusBarTemplate(component) {
|
|
|
54745
54764
|
<a class="status-bar"
|
|
54746
54765
|
href=${component.href}
|
|
54747
54766
|
target=${component.target || nothing}
|
|
54748
|
-
rel=${component.
|
|
54767
|
+
rel=${linkRel(component.rel, component.target) || nothing}
|
|
54749
54768
|
>${content}</a>
|
|
54750
54769
|
`;
|
|
54751
54770
|
if (component.button) return html`
|
|
@@ -54758,7 +54777,7 @@ function statusBarTemplate(component) {
|
|
|
54758
54777
|
//#endregion
|
|
54759
54778
|
//#region src/components/status-and-feedback/status-bar/status-bar.ts
|
|
54760
54779
|
/**
|
|
54761
|
-
*
|
|
54780
|
+
* Nederlandse Digitale Dienst Status Bar Component (Lit + TypeScript)
|
|
54762
54781
|
*
|
|
54763
54782
|
* A narrow, page-wide status bar (24px) with a deep background color per
|
|
54764
54783
|
* variant. Use it for persistent system state: an outage, planned maintenance,
|
|
@@ -54794,7 +54813,7 @@ function statusBarTemplate(component) {
|
|
|
54794
54813
|
* @attr {string} text - The status text (one line; truncated with an ellipsis)
|
|
54795
54814
|
* @attr {string} href - Makes the whole bar a link (renders an <a>)
|
|
54796
54815
|
* @attr {string} target - Link target (e.g. '_blank'); only used with href
|
|
54797
|
-
* @attr {string} rel - Link rel;
|
|
54816
|
+
* @attr {string} rel - Link rel, used with href; with target '_blank', 'noopener noreferrer' is added to whatever you set
|
|
54798
54817
|
* @attr {boolean} button - Makes the whole bar a button; ignored when href is set
|
|
54799
54818
|
*/
|
|
54800
54819
|
var _NLDDStatusBar;
|
|
@@ -54812,11 +54831,6 @@ var NLDDStatusBar = (_NLDDStatusBar = class NLDDStatusBar extends LitElement {
|
|
|
54812
54831
|
super.connectedCallback();
|
|
54813
54832
|
this._applyAriaForVariant(this.variant);
|
|
54814
54833
|
}
|
|
54815
|
-
/** @internal Auto-secure rel for new-tab links unless the consumer set one. */
|
|
54816
|
-
_resolvedRel() {
|
|
54817
|
-
if (this.rel) return this.rel;
|
|
54818
|
-
return this.target === "_blank" ? "noopener noreferrer" : "";
|
|
54819
|
-
}
|
|
54820
54834
|
updated(changed) {
|
|
54821
54835
|
if (changed.has("variant")) this._applyAriaForVariant(this.variant);
|
|
54822
54836
|
}
|