lintje 0.6.0 → 0.7.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.
- package/dist-elements/actions.js +1 -1
- package/dist-elements/chunks/addon-CFoSG70u.js +5 -0
- package/dist-elements/chunks/base-BsZyWDre.js +226 -0
- package/dist-elements/chunks/{chart-styles-zJy-DGvZ.js → chart-styles-C5IzbVUF.js} +12 -12
- package/dist-elements/chunks/controls-lVYdiFQu.js +1 -0
- package/dist-elements/chunks/dialog-close-CzMRXkJ6.js +1 -0
- package/dist-elements/chunks/{disclosure-DHZz0V4I.js → disclosure-CQcLUnKh.js} +5 -5
- package/dist-elements/chunks/{download-D1wbtARJ.js → download-CxEzwMxI.js} +1 -1
- package/dist-elements/chunks/focus-trap-BDxiHED1.js +1 -0
- package/dist-elements/chunks/follow-7IBDa51N.js +1 -0
- package/dist-elements/chunks/input-C7qx0e4p.js +8 -0
- package/dist-elements/chunks/input-CazTpGUd.js +1 -0
- package/dist-elements/chunks/other-BaLStKaf.js +11 -0
- package/dist-elements/chunks/{player-Dh7ZHcMF.js → player-BEG3MVCm.js} +20 -20
- package/dist-elements/chunks/sentence-CjgQjBP9.js +3 -0
- package/dist-elements/chunks/stagger-CwsMNTLl.js +133 -0
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +509 -68
- package/dist-elements/data-types.json +155 -12
- package/dist-elements/feedback.js +1 -1
- package/dist-elements/guides/events.md +7 -1
- package/dist-elements/inputs.js +1 -1
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +1051 -1001
- package/dist-elements/overlays.js +1 -1
- package/dist-elements/tag/activity-log.js +10 -10
- package/dist-elements/tag/ai-label.js +5 -5
- package/dist-elements/tag/announcement.js +9 -9
- package/dist-elements/tag/app-search.js +19 -19
- package/dist-elements/tag/audio-player.js +40 -40
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +8 -8
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +9 -9
- package/dist-elements/tag/card.js +29 -29
- package/dist-elements/tag/chart.js +379 -379
- package/dist-elements/tag/chat-answer.js +44 -44
- package/dist-elements/tag/chat-composer.js +32 -34
- package/dist-elements/tag/chat-message.js +11 -11
- package/dist-elements/tag/chat-strip.js +27 -27
- package/dist-elements/tag/chat-suggestions.js +9 -9
- package/dist-elements/tag/chat.js +35 -35
- package/dist-elements/tag/checkbox-group.js +17 -9
- package/dist-elements/tag/checkbox.js +10 -10
- package/dist-elements/tag/code.js +9 -9
- package/dist-elements/tag/combobox.js +23 -23
- package/dist-elements/tag/conflict-alert.js +7 -7
- package/dist-elements/tag/copy-button.js +9 -9
- package/dist-elements/tag/data-table.js +217 -213
- package/dist-elements/tag/date-input.js +25 -25
- package/dist-elements/tag/date-range.js +27 -26
- package/dist-elements/tag/description-list.js +17 -17
- package/dist-elements/tag/dialog.js +7 -7
- package/dist-elements/tag/document-viewer.js +35 -27
- package/dist-elements/tag/drawer.js +9 -9
- package/dist-elements/tag/empty-state.js +1 -1
- package/dist-elements/tag/error-page.js +11 -11
- package/dist-elements/tag/error-summary.js +13 -13
- package/dist-elements/tag/expander.js +4 -4
- package/dist-elements/tag/explainer.js +5 -5
- package/dist-elements/tag/field.js +5 -5
- package/dist-elements/tag/file-upload.js +32 -32
- package/dist-elements/tag/filter-bar.js +17 -17
- package/dist-elements/tag/filter-sheet.js +4 -4
- package/dist-elements/tag/filter-zone.js +15 -16
- package/dist-elements/tag/find.js +18 -18
- package/dist-elements/tag/footer.js +14 -14
- package/dist-elements/tag/form-actions.js +3 -3
- package/dist-elements/tag/form-section.js +4 -4
- package/dist-elements/tag/form.js +5 -5
- package/dist-elements/tag/gallery.js +11 -11
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.js +1 -1
- package/dist-elements/tag/hero.js +7 -7
- package/dist-elements/tag/highlight.js +4 -4
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +4 -4
- package/dist-elements/tag/kpi-row.js +5 -5
- package/dist-elements/tag/kpi.js +73 -73
- package/dist-elements/tag/level-meter.js +8 -8
- package/dist-elements/tag/list.js +43 -43
- package/dist-elements/tag/log-viewer.js +80 -80
- package/dist-elements/tag/logo.js +26 -29
- package/dist-elements/tag/map.js +153 -151
- package/dist-elements/tag/menu-button.js +33 -33
- package/dist-elements/tag/modal.js +9 -9
- package/dist-elements/tag/multiselect.js +23 -23
- package/dist-elements/tag/note.js +2 -2
- package/dist-elements/tag/notifications.js +28 -28
- package/dist-elements/tag/number-input.js +20 -19
- package/dist-elements/tag/page-header.js +15 -16
- package/dist-elements/tag/pagination.js +25 -27
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.js +1 -1
- package/dist-elements/tag/prose.js +1 -1
- package/dist-elements/tag/qr-code.js +5 -5
- package/dist-elements/tag/radio-group.js +31 -22
- package/dist-elements/tag/range.js +27 -31
- package/dist-elements/tag/recording-status.js +9 -9
- package/dist-elements/tag/repeater.js +5 -5
- package/dist-elements/tag/segmented.js +10 -10
- package/dist-elements/tag/select.js +9 -9
- package/dist-elements/tag/shell.js +253 -264
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.js +17 -17
- package/dist-elements/tag/sortable-list.js +20 -20
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +9 -9
- package/dist-elements/tag/status-dot.js +1 -1
- package/dist-elements/tag/stepper.js +14 -14
- package/dist-elements/tag/streaming-text.js +13 -13
- package/dist-elements/tag/sub-nav.js +17 -17
- package/dist-elements/tag/tabs.js +37 -37
- package/dist-elements/tag/tag-input.js +29 -29
- package/dist-elements/tag/text-editor.js +19 -19
- package/dist-elements/tag/text-input.js +54 -39
- package/dist-elements/tag/textarea.js +14 -14
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +13 -13
- package/dist-elements/tag/toast.js +8 -8
- package/dist-elements/tag/toggle.js +7 -7
- package/dist-elements/tag/toggletip.js +6 -7
- package/dist-elements/tag/token-value.js +2 -2
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +32 -32
- package/dist-elements/tag/translator.js +6 -6
- package/dist-elements/tag/tree-view.js +23 -23
- package/dist-elements/tag/user-menu.js +39 -28
- package/dist-elements/tag/video-player.js +14 -14
- package/dist-elements/tokens.css +2 -0
- package/dist-elements/tokens.json +4 -0
- package/dist-elements/types/components/actions/button/button.d.ts +1 -0
- package/dist-elements/types/components/actions/icon/icon.d.ts +2 -1
- package/dist-elements/types/components/actions/icon-button/icon-button.d.ts +0 -5
- package/dist-elements/types/components/actions/logo/logo.d.ts +7 -2
- package/dist-elements/types/components/chat/chat/chat.d.ts +0 -2
- package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +1 -11
- package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +14 -1
- package/dist-elements/types/components/content/log-viewer/log-viewer.d.ts +1 -0
- package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -2
- package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +3 -0
- package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +2 -7
- package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +0 -2
- package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +5 -1
- package/dist-elements/types/components/forms/form/form.d.ts +10 -3
- package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +4 -1
- package/dist-elements/types/components/frame/app-search/app-search.d.ts +1 -0
- package/dist-elements/types/components/frame/page-header/page-header.d.ts +1 -1
- package/dist-elements/types/components/frame/shell/header.d.ts +6 -8
- package/dist-elements/types/components/frame/shell/navigation.d.ts +0 -7
- package/dist-elements/types/components/frame/shell/shell.d.ts +7 -6
- package/dist-elements/types/components/frame/shell/top-bar.d.ts +5 -2
- package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +15 -2
- package/dist-elements/types/components/index.d.ts +3 -2
- package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +13 -7
- package/dist-elements/types/components/inputs/number-input/number-input.d.ts +4 -2
- package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +16 -4
- package/dist-elements/types/components/inputs/range/range.d.ts +0 -1
- package/dist-elements/types/components/inputs/segmented/segmented.d.ts +0 -2
- package/dist-elements/types/components/inputs/shared/addon.d.ts +14 -0
- package/dist-elements/types/components/inputs/shared/input.d.ts +58 -1
- package/dist-elements/types/components/inputs/text-input/text-input.d.ts +15 -1
- package/dist-elements/types/components/inputs/textarea/textarea.d.ts +3 -2
- package/dist-elements/types/components/layout/tabs/tabs.d.ts +0 -4
- package/dist-elements/types/components/overlays/popover/popover.d.ts +2 -4
- package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +2 -4
- package/dist-elements/types/components/overlays/tooltip/tooltip.d.ts +0 -2
- package/dist-elements/types/components/shared/controls.d.ts +26 -0
- package/dist-elements/types/components/shared/cut-text.d.ts +6 -0
- package/dist-elements/types/components/shared/dialog.d.ts +8 -2
- package/dist-elements/types/components/shared/focus-trap.d.ts +2 -0
- package/dist-elements/types/components/shared/follow.d.ts +8 -0
- package/dist-elements/types/components/shared/other.d.ts +24 -0
- package/dist-elements/types/components/shared/overflow.d.ts +4 -3
- package/dist-elements/types/components/shared/place.d.ts +5 -0
- package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
- package/dist-elements/types/components/tables/data-table/data-table.d.ts +15 -3
- package/dist-elements/types/components/tables/data-table/filters.d.ts +2 -0
- package/dist-elements/types/components/tables/list/list.d.ts +2 -6
- package/dist-elements/types/core/frame-state.d.ts +2 -0
- package/dist-elements/types/icons/register.d.ts +1 -1
- package/dist-elements/types/icons/render.d.ts +1 -1
- package/dist-elements/types/types.d.ts +27 -4
- package/package.json +1 -1
- package/dist-elements/chunks/base-DuuwEY22.js +0 -224
- package/dist-elements/chunks/controls-IwMNNdZt.js +0 -1
- package/dist-elements/chunks/dialog-CuB90unp.js +0 -1
- package/dist-elements/chunks/dialog-close-CIwpGpo7.js +0 -1
- package/dist-elements/chunks/focus-trap-qYvMiFZF.js +0 -1
- package/dist-elements/chunks/frame-resize-observer-BGZg6VbV.js +0 -1
- package/dist-elements/chunks/input-CTxDOlLs.js +0 -1
- package/dist-elements/chunks/input-fzGBdp-5.js +0 -8
- package/dist-elements/chunks/sentence-DCIShaRE.js +0 -3
- package/dist-elements/chunks/stagger-nGiD5JgJ.js +0 -133
|
@@ -1 +1 @@
|
|
|
1
|
-
export{D as LintjeSkeleton}from"../chunks/base-
|
|
1
|
+
export{D as LintjeSkeleton}from"../chunks/base-BsZyWDre.js";
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{cn as e,ht as t,on as n,pt as r,rn as i,tn as a}from"../chunks/base-BsZyWDre.js";import{r as o}from"../chunks/input-C7qx0e4p.js";import{t as s}from"../chunks/input-CazTpGUd.js";import{o as c,p as l}from"../chunks/date-format-5bii3QLP.js";var u=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-slot-picker{gap:var(--space-3);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.lintje-slot-picker__day{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.lintje-slot-picker__heading{padding:0 0 var(--space-1);border-bottom:1px solid var(--color-border-default);text-align:center;font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-muted);margin:0}:host(:disabled) .lintje-slot-picker__heading{color:var(--color-text-disabled)}.lintje-slot-picker__slot{justify-content:center;align-items:center;gap:var(--space-1);min-height:var(--h-option);padding:0 var(--space-2);border:1px solid var(--color-border-default);background:var(--color-bg-surface);color:var(--color-text-primary);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur-hover) var(--ease-in-motion);font-size:1rem;display:flex;position:relative}.lintje-slot-picker__slot:hover:not(.is-chosen,.is-disabled){background:var(--color-bg-subtle)}.lintje-slot-picker__slot.is-chosen{background:var(--color-choice-active-bg);border-color:var(--color-accent-line);box-shadow:inset 0 0 0 1px var(--color-accent-line);color:var(--color-accent-text);font-weight:700}.lintje-slot-picker__slot.is-disabled{background:var(--color-bg-subtle);border-color:var(--color-border-strong);box-shadow:none;color:var(--color-text-disabled);cursor:not-allowed}.lintje-slot-picker__slot:has(.lintje-choice__input:focus-visible){outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}.lintje-slot-picker__full{font:var(--text-small)}.lintje-slot-picker__none{padding:var(--space-2) 0;text-align:center;font:var(--text-small);color:var(--color-text-muted);margin:0}.lintje-field>.lintje-slot-picker__none{text-align:left;padding:0}@media screen and (width<=767px){.lintje-slot-picker{gap:var(--space-4);grid-auto-flow:row}.lintje-slot-picker__day{grid-template-columns:repeat(auto-fill, minmax(calc(2 * var(--space-10)), 1fr));display:grid}.lintje-slot-picker__heading,.lintje-slot-picker__none{text-align:left;grid-column:1/-1}}@media (forced-colors:active){.lintje-slot-picker__slot.is-chosen{box-shadow:none;border-color:highlight}.lintje-slot-picker__slot.is-disabled{color:graytext;border-color:graytext}.lintje-slot-picker__slot:has(.lintje-choice__input:focus-visible){outline-color:highlight}}`,d=class extends o{constructor(...e){super(...e),this.value=``}static{this.styles=[t,i(s),i(u)]}static{this.properties={value:{type:String},days:{attribute:!1}}}choose(e){this.value=e,this.commit(e)}render(){let t=this.days??[];return e`<div
|
|
2
2
|
class="lintje-field"
|
|
3
3
|
role="radiogroup"
|
|
4
4
|
aria-labelledby=${this.labelId}
|
|
5
5
|
aria-describedby=${this.describedBy}
|
|
6
|
-
aria-invalid=${this.error?`true`:
|
|
7
|
-
aria-required=${this.required?`true`:
|
|
6
|
+
aria-invalid=${this.error?`true`:n}
|
|
7
|
+
aria-required=${this.required?`true`:n}
|
|
8
8
|
>
|
|
9
9
|
${this.renderLabel()}
|
|
10
|
-
${
|
|
10
|
+
${t.length?e`<div class="lintje-slot-picker">${t.map(e=>this.renderDay(e))}</div>`:e`<p class="lintje-slot-picker__none">Geen tijden beschikbaar</p>`}
|
|
11
11
|
${this.renderFoot()}
|
|
12
|
-
</div>`}renderDay(
|
|
13
|
-
<p class="lintje-slot-picker__heading" aria-hidden="true">${l(
|
|
14
|
-
${
|
|
15
|
-
<span class="visually-hidden">${c(
|
|
12
|
+
</div>`}renderDay(t){return e`<div class="lintje-slot-picker__day">
|
|
13
|
+
<p class="lintje-slot-picker__heading" aria-hidden="true">${l(t.date)}</p>
|
|
14
|
+
${t.slots.length?t.slots.map(e=>this.renderSlot(t,e)):e`<p class="lintje-slot-picker__none">
|
|
15
|
+
<span class="visually-hidden">${c(t.date)}: </span>Geen tijden
|
|
16
16
|
</p>`}
|
|
17
|
-
</div>`}renderSlot(
|
|
18
|
-
class=${
|
|
17
|
+
</div>`}renderSlot(t,i){let a=i.value===this.value,o=this.isDisabled||!!i.full;return e`<label
|
|
18
|
+
class=${r({"lintje-slot-picker__slot":!0,"is-chosen":a,"is-disabled":o})}
|
|
19
19
|
>
|
|
20
20
|
<input
|
|
21
21
|
type="radio"
|
|
22
22
|
class="lintje-choice__input"
|
|
23
23
|
name=${this.name||`lintje-slot-picker`}
|
|
24
|
-
value=${
|
|
25
|
-
.checked=${
|
|
24
|
+
value=${i.value}
|
|
25
|
+
.checked=${a}
|
|
26
26
|
?disabled=${o}
|
|
27
|
-
@change=${()=>this.choose(
|
|
27
|
+
@change=${()=>this.choose(i.value)}
|
|
28
28
|
/>
|
|
29
|
-
<span class="visually-hidden">${c(
|
|
30
|
-
<span class="lintje-slot-picker__time">${
|
|
31
|
-
${
|
|
32
|
-
</label>`}};
|
|
29
|
+
<span class="visually-hidden">${c(t.date)}, </span>
|
|
30
|
+
<span class="lintje-slot-picker__time">${i.label}</span>
|
|
31
|
+
${i.full?e`<span class="lintje-slot-picker__full">Vol</span>`:n}
|
|
32
|
+
</label>`}};a(`lintje-slot-picker`,d);export{d as LintjeSlotPicker};
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import{
|
|
2
|
-
class=${
|
|
3
|
-
${
|
|
1
|
+
import{Et as e,cn as t,en as n,g as r,gt as i,ht as a,on as o,pt as s,rn as c,tn as l}from"../chunks/base-BsZyWDre.js";import{t as u}from"../chunks/live-message-CYZ-Ch7D.js";import"./checkbox.js";var d=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-sortable-list{gap:var(--space-2);flex-direction:column;display:flex}.lintje-sortable-list__rows{gap:var(--space-1);font:var(--text-ui);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lintje-sortable-list__row{align-items:center;gap:var(--space-2);height:var(--h-touch);padding:0 var(--space-2);background:var(--color-bg-surface);border:1px solid var(--color-border-default);color:var(--color-text-primary);display:flex;position:relative}.lintje-sortable-list__row.is-lifted{z-index:1;border-color:var(--color-accent-line);box-shadow:var(--shadow-popover);font-weight:700}.lintje-sortable-list__row.is-dragging{transition:none}.lintje-sortable-list__row.is-drop-before:before,.lintje-sortable-list__row.is-drop-after:after{content:"";background:var(--color-accent-line);pointer-events:none;height:3px;position:absolute;left:-1px;right:-1px}.lintje-sortable-list__row.is-drop-before:before{top:-4px}.lintje-sortable-list__row.is-drop-after:after{bottom:-4px}.lintje-sortable-list__grip{width:var(--h-chip-field);height:var(--h-chip-field);color:var(--color-text-muted);cursor:grab;touch-action:none;transition:color var(--dur-hover) var(--ease-in-motion);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.lintje-sortable-list__grip:after{content:"";inset:min(0px, calc((100% - var(--h-target)) / 2)) 0;position:absolute}.lintje-sortable-list__grip:hover{color:var(--color-text-primary)}.lintje-sortable-list__row.is-lifted .lintje-sortable-list__grip{color:var(--color-accent-text);cursor:grabbing}.lintje-sortable-list__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lintje-sortable-list__check{min-width:0}.lintje-sortable-list__status{min-height:1lh;font:var(--text-small);color:var(--color-text-muted);margin:0}@media screen and (width<=767px){.lintje-sortable-list__row{padding-left:0}.lintje-sortable-list__grip{width:var(--h-touch);height:100%}}@media (prefers-reduced-motion:reduce){.lintje-sortable-list__grip{transition:none}}@media (forced-colors:active){.lintje-sortable-list__row.is-lifted{border-color:highlight}.lintje-sortable-list__row.is-drop-before:before,.lintje-sortable-list__row.is-drop-after:after{border-top:3px solid highlight}}`;function f(e,t,n){let r=Math.max(0,Math.min(e.length-1,n));if(t===r||t<0||t>=e.length)return[...e];let i=[...e],[a]=i.splice(t,1);return i.splice(r,0,a),i}function p(e,t){let n=0;for(;n<e.length&&e[n]<t;)n++;return n}var m=4,h=class extends n{constructor(...e){super(...e),this.items=[],this.name=``,this.checkable=!1,this.order=[],this.grabbed=null,this.drag=null,this.#e=new u(this)}static{this.styles=[a,c(d)]}static{this.properties={items:{attribute:!1},name:{type:String},label:{type:String},checkable:{type:Boolean,reflect:!0},order:{state:!0},grabbed:{state:!0},drag:{state:!0}}}#e;willUpdate(e){super.willUpdate(e),e.has(`items`)&&(this.order=this.items.map(e=>({...e})))}indexOf(e){return this.order.findIndex(t=>t.id===e)}place(e){return`Plaats ${e+1} van ${this.order.length}.`}commit(e){if(!e)return;let t=this.order.map(e=>e.id);this.emitLocal(`lintje-change`,t),this.name&&this.emit(`lintje-values-change`,{[this.name]:t})}async focusGrip(e){await this.updateComplete,[...this.renderRoot.querySelectorAll(`.lintje-sortable-list__grip`)].find(t=>t.dataset.id===e)?.focus()}pickUp(e){let t=this.indexOf(e.id);this.grabbed={id:e.id,from:t},this.#e.say(`${e.label} opgepakt. ${this.place(t)}`)}putDown(e){if(!this.grabbed)return;let t=this.indexOf(e.id);this.#e.say(`${e.label} neergelegd op plaats ${t+1}.`);let n=t!==this.grabbed.from;this.grabbed=null,this.commit(n)}putBack(e){if(!this.grabbed)return;let{from:t}=this.grabbed;this.order=f(this.order,this.indexOf(e.id),t),this.#e.say(`${e.label} teruggezet op plaats ${t+1}.`),this.grabbed=null,this.focusGrip(e.id)}dropAt(e){let t=this.grabbed;if(!t)return;let n=this.order[this.indexOf(t.id)];n&&(this.order=f(this.order,this.indexOf(n.id),this.indexOf(e.id)),this.putDown(n),this.focusGrip(n.id))}onGripKeydown(e,t){let n=this.grabbed?.id===t.id;switch(e.key){case` `:case`Enter`:n?this.putDown(t):this.pickUp(t);break;case`ArrowUp`:case`ArrowDown`:{if(!n)return;let r=this.indexOf(t.id),i=Math.max(0,Math.min(this.order.length-1,r+(e.key===`ArrowUp`?-1:1)));i!==r&&(this.order=f(this.order,r,i),this.focusGrip(t.id)),this.#e.say(this.place(i));break}case`Escape`:if(!n)return;this.putBack(t);break;default:return}e.preventDefault(),e.stopPropagation()}onGripBlur(e){this.grabbed?.id===e.id&&requestAnimationFrame(()=>{let t=this.renderRoot instanceof ShadowRoot?this.renderRoot.activeElement:null;this.grabbed?.id===e.id&&t?.dataset.id!==e.id&&this.putDown(e)})}onPointerDown(e,t){if(e.button!==0)return;if(this.grabbed){e.preventDefault(),this.dropAt(t);return}let n=[...this.renderRoot.querySelectorAll(`.lintje-sortable-list__row`)],r=this.indexOf(t.id),i=n.filter((e,t)=>t!==r).map(e=>{let t=e.getBoundingClientRect();return t.top+t.height/2});e.currentTarget.setPointerCapture?.(e.pointerId),e.preventDefault(),this.drag={id:t.id,from:r,to:r,startY:e.clientY,dy:0,middles:i,pointerId:e.pointerId},this.#e.say(`${t.label} opgepakt. ${this.place(r)}`)}onPointerMove(e){let t=this.drag;if(!t||e.pointerId!==t.pointerId)return;let n=p(t.middles,e.clientY);n!==t.to&&this.#e.say(this.place(n)),this.drag={...t,dy:e.clientY-t.startY,to:n}}onPointerUp(e,t){let n=this.drag;n&&e.pointerId===n.pointerId&&(n.to===n.from&&Math.abs(n.dy)<m?(this.drag=null,this.pickUp(t),this.focusGrip(t.id)):(this.order=f(this.order,n.from,n.to),this.#e.say(`${t.label} neergelegd op plaats ${n.to+1}.`),this.drag=null,this.commit(n.to!==n.from),this.focusGrip(t.id)))}onPointerCancel(){this.drag&&(this.drag=null,this.#e.clear())}onCheck(e,t){e.stopPropagation(),this.order=this.order.map(n=>n.id===t.id?{...n,checked:e.detail}:n),this.emit(`lintje-checked-change`,this.order.filter(e=>e.checked).map(e=>e.id))}dropLine(e){let t=this.drag;if(!t||t.to===t.from||e===t.from)return null;let n=this.order.map((e,t)=>t).filter(e=>e!==t.from);return t.to<n.length?n[t.to]===e?`before`:null:n[n.length-1]===e?`after`:null}row(n,r){let a=this.drag?.id===n.id,o=a||this.grabbed?.id===n.id,c=this.dropLine(r);return t`<li
|
|
2
|
+
class=${s({"lintje-sortable-list__row":!0,"is-lifted":o,"is-dragging":a,"is-drop-before":c===`before`,"is-drop-after":c===`after`})}
|
|
3
|
+
${e({transform:a?`translateY(${this.drag.dy}px)`:null})}
|
|
4
4
|
>
|
|
5
5
|
<button
|
|
6
6
|
type="button"
|
|
7
7
|
class="lintje-sortable-list__grip"
|
|
8
|
-
data-id=${
|
|
9
|
-
aria-label=${`${
|
|
10
|
-
aria-pressed=${
|
|
8
|
+
data-id=${n.id}
|
|
9
|
+
aria-label=${`${n.label} verplaatsen`}
|
|
10
|
+
aria-pressed=${o?`true`:`false`}
|
|
11
11
|
aria-describedby="lintje-sortable-list-help"
|
|
12
|
-
@keydown=${
|
|
13
|
-
@blur=${()=>this.onGripBlur(
|
|
14
|
-
@pointerdown=${
|
|
12
|
+
@keydown=${e=>this.onGripKeydown(e,n)}
|
|
13
|
+
@blur=${()=>this.onGripBlur(n)}
|
|
14
|
+
@pointerdown=${e=>this.onPointerDown(e,n)}
|
|
15
15
|
@pointermove=${e=>this.onPointerMove(e)}
|
|
16
|
-
@pointerup=${
|
|
16
|
+
@pointerup=${e=>this.onPointerUp(e,n)}
|
|
17
17
|
@pointercancel=${()=>this.onPointerCancel()}
|
|
18
18
|
>
|
|
19
|
-
${
|
|
19
|
+
${i(`functioneel-sleep`,{size:16})}
|
|
20
20
|
</button>
|
|
21
|
-
${this.checkable?
|
|
21
|
+
${this.checkable?t`<lintje-checkbox
|
|
22
22
|
class="lintje-sortable-list__check"
|
|
23
|
-
label=${
|
|
24
|
-
?checked=${!!
|
|
25
|
-
@lintje-change=${
|
|
26
|
-
></lintje-checkbox>`:
|
|
27
|
-
</li>`}render(){return
|
|
28
|
-
<ul class="lintje-sortable-list__rows" aria-label=${this.label??
|
|
29
|
-
${
|
|
23
|
+
label=${n.label}
|
|
24
|
+
?checked=${!!n.checked}
|
|
25
|
+
@lintje-change=${e=>this.onCheck(e,n)}
|
|
26
|
+
></lintje-checkbox>`:t`<span class="lintje-sortable-list__label">${n.label}</span>`}
|
|
27
|
+
</li>`}render(){return t`<div class="lintje-sortable-list">
|
|
28
|
+
<ul class="lintje-sortable-list__rows" aria-label=${this.label??o}>
|
|
29
|
+
${r(this.order,e=>e.id,(e,t)=>this.row(e,t))}
|
|
30
30
|
</ul>
|
|
31
31
|
<p id="lintje-sortable-list-help" class="visually-hidden">
|
|
32
32
|
Spatie of Enter pakt op, pijl omhoog en omlaag verplaatsen, spatie of Enter legt neer,
|
|
@@ -34,4 +34,4 @@ import{$t as e,St as t,Xt as n,Zt as r,dt as i,ft as a,g as o,in as s,lt as c,nn
|
|
|
34
34
|
heen moet.
|
|
35
35
|
</p>
|
|
36
36
|
<p class="lintje-sortable-list__status" role="status">${this.#e.text}</p>
|
|
37
|
-
</div>`}};
|
|
37
|
+
</div>`}};l(`lintje-sortable-list`,h);export{h as LintjeSortableList,p as dropIndex,f as moveItem};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{V as LintjeSpinner}from"../chunks/base-
|
|
1
|
+
export{V as LintjeSpinner}from"../chunks/base-BsZyWDre.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Et as e,Qt as t,Zt as n,cn as r,en as i,on as a,pt as o,rn as s,tn as c}from"../chunks/base-BsZyWDre.js";import"./segmented.js";var l=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-split-pane{border:1px solid var(--color-border-default);display:flex}.lintje-split-pane__pane{min-width:0;padding:var(--space-4);overflow:auto}.lintje-split-pane__pane--start{flex:0 0 calc((100% - 9px) * var(--lintje-split,50) / 100)}.lintje-split-pane__pane--end{flex:1 1 0}.lintje-split-pane__strip{background:var(--color-bg-subtle);border-left:1px solid var(--color-border-default);border-right:1px solid var(--color-border-default);cursor:col-resize;touch-action:none;transition:background var(--dur-hover) var(--ease-in-motion);flex:0 0 9px;justify-content:center;align-items:center;display:flex}.lintje-split-pane__handle{width:7px;height:var(--h-touch);background:var(--color-border-heavy);transition:background var(--dur-hover) var(--ease-in-motion);flex:none}.lintje-split-pane__strip:hover .lintje-split-pane__handle,.lintje-split-pane.is-dragging .lintje-split-pane__handle{background:var(--color-accent-line)}.lintje-split-pane.is-dragging{user-select:none;cursor:col-resize}.lintje-split-pane.is-dragging .lintje-split-pane__strip{background:var(--color-bg-selected);transition:none}.lintje-split-pane__choice{margin-bottom:var(--space-3);display:block}.lintje-split-pane--phone{border:0;display:block}.lintje-split-pane--phone .lintje-split-pane__pane{padding:0}@media (forced-colors:active){.lintje-split-pane__handle{forced-color-adjust:none;background:canvastext}.lintje-split-pane__strip:hover .lintje-split-pane__handle,.lintje-split-pane.is-dragging .lintje-split-pane__handle{background:highlight}}`,u=5,d=50,f=3;function p(e,t,n){return Math.min(n,Math.max(t,e))}function m(e,t,n,r,i){return p(n<=0?50:Math.round((e-t)/n*100),r,i)}function h(e,t,n,r){return e===`ArrowLeft`?p(t-5,n,r):e===`ArrowRight`?p(t+5,n,r):e===`Home`?n:e===`End`?r:e===`Enter`?p(50,n,r):null}function g(e){try{let t=localStorage.getItem(e);if(t===null)return null;let n=Number(t);return Number.isFinite(n)?n:null}catch{return null}}function _(e,t){try{localStorage.setItem(e,String(t))}catch{}}var v=class extends i{constructor(...e){super(...e),this.value=50,this.min=20,this.max=80,this.startLabel=`Links`,this.endLabel=`Rechts`,this.pane=`start`,this.dragging=!1,this.#e=new t(this,n),this.#t=50,this.#n=0,this.#r=!1,this.#i=!1,this.onPointerDown=e=>{e.button!==0||this.#r||(e.preventDefault(),e.currentTarget.setPointerCapture?.(e.pointerId),this.renderRoot.querySelector(`.lintje-split-pane__handle`)?.focus(),this.#t=this.value,this.#n=e.clientX,this.dragging=!0)},this.onPointerMove=e=>{if(!this.dragging)return;let t=this.splitAt(e.clientX);t!==null&&(this.value=t)},this.onPointerUp=e=>{if(!this.dragging||this.#r)return;let t=e.currentTarget;t.hasPointerCapture?.(e.pointerId)&&t.releasePointerCapture(e.pointerId),Math.abs(e.clientX-this.#n)<=f?(this.#r=!0,document.addEventListener(`pointerdown`,this.onOutside,!0)):(this.dragging=!1,this.commit(this.value,this.#t))},this.onPlace=e=>{if(!this.#r||e.button!==0)return;e.preventDefault(),this.#i=!0;let t=this.splitAt(e.clientX);this.#a(),this.commit(t??this.value,this.#t)},this.onPlacedClick=e=>{this.#i&&(this.#i=!1,e.preventDefault(),e.stopPropagation())},this.onOutside=e=>{e.composedPath().includes(this)||this.cancelLift()},this.onKeydown=e=>{if(this.#r&&e.key===`Escape`){e.preventDefault(),e.stopPropagation(),this.cancelLift();return}this.cancelLift();let t=h(e.key,this.value,this.min,this.max);t!==null&&(e.preventDefault(),this.commit(t))}}static{this.styles=s(l)}static{this.properties={value:{type:Number},min:{type:Number},max:{type:Number},storageKey:{type:String,attribute:`storage-key`},startLabel:{type:String,attribute:`start-label`},endLabel:{type:String,attribute:`end-label`},pane:{type:String,reflect:!0},dragging:{state:!0}}}#e;willUpdate(e){if(super.willUpdate(e),e.has(`storageKey`)&&this.storageKey){let e=g(this.storageKey);e!==null&&(this.value=e)}let t=p(this.value,this.min,this.max);t!==this.value&&(this.value=t)}#t;#n;#r;#i;commit(e,t=this.value){this.value=p(e,this.min,this.max),this.value!==t&&(this.storageKey&&_(this.storageKey,this.value),this.emit(`lintje-split-change`,this.value))}get block(){return this.renderRoot.querySelector(`.lintje-split-pane`)}splitAt(e){let t=this.block?.getBoundingClientRect();return t?m(e,t.left,t.width,this.min,this.max):null}#a(){this.#r=!1,this.dragging=!1,document.removeEventListener(`pointerdown`,this.onOutside,!0)}cancelLift(){this.#r&&(this.#a(),this.value=this.#t)}disconnectedCallback(){this.#a(),super.disconnectedCallback()}onPaneChange(e){e.stopPropagation();let t=e.detail===`end`?`end`:`start`;t!==this.pane&&(this.pane=t,this.emit(`lintje-pane-change`,t))}render(){let t=this.#e.matches,n=Math.round(this.value);return r`${t?r`<lintje-segmented
|
|
2
2
|
class="lintje-split-pane__choice"
|
|
3
3
|
label="Paneel kiezen"
|
|
4
4
|
hide-label
|
|
5
5
|
value=${this.pane}
|
|
6
6
|
.options=${[{value:`start`,label:this.startLabel},{value:`end`,label:this.endLabel}]}
|
|
7
7
|
@lintje-change=${this.onPaneChange}
|
|
8
|
-
></lintje-segmented>`:
|
|
9
|
-
class=${o({"lintje-split-pane":!0,"lintje-split-pane--phone":
|
|
10
|
-
${
|
|
8
|
+
></lintje-segmented>`:a}<div
|
|
9
|
+
class=${o({"lintje-split-pane":!0,"lintje-split-pane--phone":t,"is-dragging":this.dragging})}
|
|
10
|
+
${e({"--lintje-split":String(this.value)})}
|
|
11
11
|
@pointerdown=${this.onPlace}
|
|
12
12
|
@pointermove=${this.onPointerMove}
|
|
13
13
|
@click=${{handleEvent:this.onPlacedClick,capture:!0}}
|
|
@@ -15,13 +15,13 @@ import{$t as e,Jt as t,St as n,Xt as r,Zt as i,in as a,lt as o,nn as s,qt as c}f
|
|
|
15
15
|
<div
|
|
16
16
|
id="start"
|
|
17
17
|
class="lintje-split-pane__pane lintje-split-pane__pane--start"
|
|
18
|
-
?hidden=${
|
|
18
|
+
?hidden=${t&&this.pane!==`start`}
|
|
19
19
|
>
|
|
20
20
|
<slot name="start"></slot>
|
|
21
21
|
</div>
|
|
22
22
|
<div
|
|
23
23
|
class="lintje-split-pane__strip"
|
|
24
|
-
?hidden=${
|
|
24
|
+
?hidden=${t}
|
|
25
25
|
@pointerdown=${this.onPointerDown}
|
|
26
26
|
@pointerup=${this.onPointerUp}
|
|
27
27
|
@pointercancel=${this.onPointerUp}
|
|
@@ -33,7 +33,7 @@ import{$t as e,Jt as t,St as n,Xt as r,Zt as i,in as a,lt as o,nn as s,qt as c}f
|
|
|
33
33
|
tabindex="0"
|
|
34
34
|
aria-orientation="vertical"
|
|
35
35
|
aria-label="Verdeling aanpassen"
|
|
36
|
-
aria-valuenow=${
|
|
36
|
+
aria-valuenow=${n}
|
|
37
37
|
aria-valuemin=${this.min}
|
|
38
38
|
aria-valuemax=${this.max}
|
|
39
39
|
aria-controls="start"
|
|
@@ -42,8 +42,8 @@ import{$t as e,Jt as t,St as n,Xt as r,Zt as i,in as a,lt as o,nn as s,qt as c}f
|
|
|
42
42
|
</div>
|
|
43
43
|
<div
|
|
44
44
|
class="lintje-split-pane__pane lintje-split-pane__pane--end"
|
|
45
|
-
?hidden=${
|
|
45
|
+
?hidden=${t&&this.pane!==`end`}
|
|
46
46
|
>
|
|
47
47
|
<slot name="end"></slot>
|
|
48
48
|
</div>
|
|
49
|
-
</div>`}};
|
|
49
|
+
</div>`}};c(`lintje-split-pane`,v);export{v as LintjeSplitPane,d as SPLIT_RESET,u as SPLIT_STEP,p as clampSplit,h as splitFromKey,m as splitFromPointer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{k as LintjeStatusDot,A as STATUS_LABEL}from"../chunks/base-
|
|
1
|
+
export{k as LintjeStatusDot,A as STATUS_LABEL}from"../chunks/base-BsZyWDre.js";
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{G as e,Qt as t,U as n,Zt as r,cn as i,en as a,gt as o,ht as s,on as c,pt as l,rn as u,tn as d}from"../chunks/base-BsZyWDre.js";var f=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-stepper{font:var(--text-ui);color:var(--color-text-primary)}.lintje-stepper__list{display:flex}.lintje-stepper__list--row{gap:var(--space-2);flex-direction:row;overflow:hidden}.lintje-stepper__list--column{flex-direction:column}.lintje-stepper__step{align-items:flex-start;gap:var(--space-3);flex:none;display:flex;position:relative}.lintje-stepper__list--row .lintje-stepper__step{white-space:nowrap;flex:auto}.lintje-stepper__list--row .lintje-stepper__step:last-child{flex:none}.lintje-stepper__list--column .lintje-stepper__step:not(:last-child){padding-bottom:var(--space-4)}.lintje-stepper__line{border:0 dashed var(--color-border-heavy)}.lintje-stepper__step--done .lintje-stepper__line{border-style:solid;border-color:var(--color-accent-line)}.lintje-stepper__list--row .lintje-stepper__body{flex:auto}.lintje-stepper__list--row .lintje-stepper__line{min-width:var(--space-8);border-top-width:2px;flex:1 1 0}.lintje-stepper__list--column .lintje-stepper__line{top:calc((var(--h-target) + var(--h-chip-field)) / 2);bottom:calc((var(--h-chip-field) - var(--h-target)) / 2);left:calc(var(--h-chip-field) / 2 - 1px);border-left-width:2px;position:absolute}.lintje-stepper__body{flex-direction:column;display:flex}.lintje-stepper__list--column .lintje-stepper__body{flex:auto;min-width:0}.lintje-stepper__head{align-items:center;gap:var(--space-2);min-height:var(--h-target);display:flex}.lintje-stepper__head+.lintje-stepper__description,.lintje-stepper__head+.lintje-stepper__meta{margin-top:calc((var(--h-chip-field) - var(--h-target)) / 2)}.lintje-stepper__description{margin:0 0 var(--space-1);color:var(--color-text-secondary)}.lintje-stepper__meta{font:var(--text-small);color:var(--color-text-secondary)}.lintje-stepper__content{margin-top:var(--space-2)}.lintje-stepper__head+.lintje-stepper__content{margin-top:calc((var(--h-chip-field) - var(--h-target)) / 2 + var(--space-2))}.lintje-stepper__description+.lintje-stepper__content{margin-top:var(--space-1)}.lintje-stepper__marker{width:var(--h-chip-field);height:var(--h-chip-field);margin-top:calc((var(--h-target) - var(--h-chip-field)) / 2);border:1px solid #0000;flex:none;justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:inline-flex}.lintje-stepper__marker--next{border-color:var(--color-text-muted);color:var(--color-text-muted);font-weight:400}.lintje-stepper__step--next .lintje-stepper__name{color:var(--color-text-muted)}.lintje-stepper__marker--current{background:var(--color-action-primary);border-color:var(--color-action-primary-border);color:var(--color-action-primary-text)}.lintje-stepper__step--current .lintje-stepper__name{font-weight:700}.lintje-stepper__marker--done{border-color:var(--color-accent-line);color:var(--color-accent-text)}.lintje-stepper__marker--done.is-error{border-color:var(--color-error-line);color:var(--color-error-text)}.lintje-stepper__name--link{color:var(--color-link);transition:color var(--dur-hover) var(--ease-in-motion);position:relative}.lintje-stepper__name--link:after{content:"";inset:min(0px, calc((100% - var(--h-target)) / 2)) 0;position:absolute}.lintje-stepper__name--link:hover{color:var(--color-link-hover)}.lintje-stepper__errors{font:var(--text-small);color:var(--color-error-text);font-weight:700}.lintje-stepper--phone{gap:var(--space-2);flex-direction:column;display:flex}.lintje-stepper--phone .lintje-stepper__content{margin-top:0}.lintje-stepper__summary{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.lintje-stepper__current{overflow-wrap:anywhere;min-width:0;font-weight:700}.lintje-stepper__count{color:var(--color-text-muted);flex:none}@media (forced-colors:active){.lintje-stepper__marker--current{border-color:highlight}}`;function p(e){return e===1?`1 fout`:`${e} fouten`}function m(e){let t=e.length,n=e.findIndex(e=>e.state===`current`),r=n<0?e.filter(e=>e.state===`done`).length:n+1;return{place:r,total:t,percent:t?Math.round(r/t*100):0}}function h(e,t,n,r){return e===`row`?n>t?`column`:`row`:r>0&&r<=t?`row`:`column`}var g={done:`gedaan`,current:`huidige stap`,next:`nog niet aan de beurt`},_=class extends a{constructor(...n){super(...n),this.steps=[],this.label=`Stappen`,this.orientation=`horizontal`,this.layout=`row`,this.#e=new t(this,r),this.#t=new e(()=>this.fit()),this.#n=0}static{this.styles=[s,u(f)]}static{this.properties={steps:{attribute:!1},label:{type:String},orientation:{type:String},layout:{state:!0}}}#e;#t;#n;connectedCallback(){super.connectedCallback(),this.#t.observe(this)}disconnectedCallback(){this.#t.disconnect(),super.disconnectedCallback()}willUpdate(e){super.willUpdate(e),e.has(`orientation`)&&(this.layout=this.vertical?`column`:`row`)}updated(e){super.updated(e),this.fit()}get vertical(){return this.orientation===`vertical`}get current(){return this.steps.find(e=>e.state===`current`)}fit(){if(this.vertical)return;let e=this.renderRoot.querySelector(`.lintje-stepper__list`);if(!e)return;let t=0;for(let n of e.querySelectorAll(`.lintje-stepper__line`))t+=n.offsetWidth-(parseFloat(getComputedStyle(n).minWidth)||0);let n=e.scrollWidth-t;this.layout===`row`&&(this.#n=n);let r=h(this.layout,e.clientWidth,n,this.#n);r!==this.layout&&(this.layout=r)}follow(e,t){n(e)&&this.followLink(t,e)}renderMarker(e,t){let n=e.state===`done`&&!!e.errors,r=l({"lintje-stepper__marker":!0,[`lintje-stepper__marker--${e.state}`]:!0,"is-error":n}),a=String(t+1);return e.state===`done`&&(a=o(n?`functioneel-waarschuwing`:`functioneel-vinkje`,{size:16})),i`<span class=${r} aria-hidden="true">${a}</span>`}renderName(e){if(e.state===`done`&&e.href){let t=e.href;return i`<a
|
|
2
2
|
class="lintje-stepper__name lintje-stepper__name--link"
|
|
3
3
|
href=${t}
|
|
4
4
|
@click=${e=>this.follow(e,t)}
|
|
5
5
|
>${e.label}<span class="visually-hidden">, ${g.done}</span></a
|
|
6
|
-
>`}return
|
|
6
|
+
>`}return i`<span class="lintje-stepper__name"
|
|
7
7
|
>${e.label}<span class="visually-hidden">, ${g[e.state]}</span></span
|
|
8
|
-
>`}renderContent(e){return e?.value?
|
|
8
|
+
>`}renderContent(e){return e?.value?i`<div class="lintje-stepper__content"><slot name=${e.value}></slot></div>`:c}renderBody(e,t){let n=this.layout===`column`,r=n?e.description:void 0;return i`<div class="lintje-stepper__body">
|
|
9
9
|
<div class="lintje-stepper__head">
|
|
10
|
-
${this.renderName(e)}${e.state===`done`&&e.errors?
|
|
10
|
+
${this.renderName(e)}${e.state===`done`&&e.errors?i`<span class="lintje-stepper__errors">${p(e.errors)}</span>`:c}${t?c:i`<span class="lintje-stepper__line"></span>`}
|
|
11
11
|
</div>
|
|
12
|
-
${r?
|
|
13
|
-
</div>`}renderPhone(){let{place:e,total:t,percent:n}=m(this.steps),r=this.steps[e-1],
|
|
12
|
+
${r?i`<p class="lintje-stepper__description">${r}</p>`:c}${e.meta?i`<span class="lintje-stepper__meta">${e.meta}</span>`:c}${n?this.renderContent(e):c}
|
|
13
|
+
</div>`}renderPhone(){let{place:e,total:t,percent:n}=m(this.steps),r=this.steps[e-1],a=`Stap ${e} van ${t}`;return i`<nav class="lintje-stepper lintje-stepper--phone" aria-label=${this.label}>
|
|
14
14
|
<div class="lintje-stepper__summary">
|
|
15
15
|
<strong class="lintje-stepper__current">${r?.label??``}</strong>
|
|
16
|
-
<span class="lintje-stepper__count">${
|
|
16
|
+
<span class="lintje-stepper__count">${a}</span>
|
|
17
17
|
</div>
|
|
18
|
-
<lintje-progress-bar hide-label label=${
|
|
18
|
+
<lintje-progress-bar hide-label label=${a} value=${n}></lintje-progress-bar>
|
|
19
19
|
${this.renderContent(this.current)}
|
|
20
|
-
</nav>`}render(){return this.#e.matches&&!this.vertical?this.renderPhone():
|
|
20
|
+
</nav>`}render(){return this.#e.matches&&!this.vertical?this.renderPhone():i`<nav class="lintje-stepper" aria-label=${this.label}>
|
|
21
21
|
<ol class="lintje-stepper__list lintje-stepper__list--${this.layout}">
|
|
22
|
-
${this.steps.map((e,t)=>
|
|
23
|
-
class=${
|
|
24
|
-
aria-current=${e.state===`current`?`step`:
|
|
22
|
+
${this.steps.map((e,t)=>i`<li
|
|
23
|
+
class=${l({"lintje-stepper__step":!0,[`lintje-stepper__step--${e.state}`]:!0})}
|
|
24
|
+
aria-current=${e.state===`current`?`step`:c}
|
|
25
25
|
>
|
|
26
26
|
${this.renderMarker(e,t)}${this.renderBody(e,t===this.steps.length-1)}
|
|
27
27
|
</li>`)}
|
|
28
28
|
</ol>
|
|
29
|
-
${this.layout===`row`?this.renderContent(this.current):
|
|
30
|
-
</nav>`}};
|
|
29
|
+
${this.layout===`row`?this.renderContent(this.current):c}
|
|
30
|
+
</nav>`}};d(`lintje-stepper`,_);export{_ as LintjeStepper,h as chooseLayout,p as errorText,m as position};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{cn as e,en as t,on as n,pt as r,rn as i,rt as a,tn as o}from"../chunks/base-BsZyWDre.js";import{t as s}from"../chunks/live-message-CYZ-Ch7D.js";import{t as c}from"../chunks/sentence-end-DqHdi7Wb.js";var l=`:host{min-width:0;display:block}:host([hidden]){display:none}:host([variant=plain]){font:inherit}.lintje-streaming-text{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.lintje-streaming-text__box{padding:var(--space-3);background:var(--color-bg-page);border:1px solid var(--color-border-default);font:var(--text-body);color:var(--color-text-primary);overflow-wrap:anywhere}.lintje-streaming-text__plain{white-space:pre-wrap}.lintje-streaming-text__box--waiting{align-items:center;gap:var(--space-2);font:var(--text-ui);display:flex}.lintje-streaming-text__waiting{color:var(--color-text-muted)}.lintje-streaming-text__caret{width:8px;height:18px;margin-left:var(--space-1);vertical-align:text-bottom;background:var(--color-accent-line);animation:lintje-caret-blink var(--dur-skeleton) steps(1, end) infinite;display:inline-block}@keyframes lintje-caret-blink{0%{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion:reduce){.lintje-streaming-text__caret{animation:none}}@media print{.lintje-streaming-text__caret{display:none}}.lintje-streaming-text--plain .lintje-streaming-text__box{font:inherit;background:0 0;border:0;padding:0}.lintje-streaming-text--plain .lintje-streaming-text__box--waiting{font:var(--text-ui)}.lintje-streaming-text__foot{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.lintje-streaming-text__note{font:var(--text-small);color:var(--color-text-muted)}.lintje-streaming-text__note--error{font:var(--text-small);color:var(--color-error-text);font-weight:700}`,u=`Gestopt`,d=`De verbinding viel weg. De tekst is niet af.`,f=class extends t{constructor(...e){super(...e),this.text=``,this.state=`waiting`,this.label=`Bezig met schrijven`,this.variant=`box`,this.spoken=[],this.said=0,this.#e=new s(this),this.focusRetry=!1}static{this.styles=i(l)}static{this.properties={text:{type:String},state:{type:String,reflect:!0},message:{type:String},label:{type:String},variant:{type:String,reflect:!0},spoken:{state:!0}}}#e;get ended(){return this.state===`done`||this.state===`stopped`||this.state===`error`}willUpdate(e){if(super.willUpdate(e),e.get(`state`)===`streaming`&&this.ended){let e=this.renderRoot.querySelector(`.lintje-streaming-text__stop`);e&&a(e)&&(this.focusRetry=!0)}if((e.has(`state`)||e.has(`label`))&&(this.state===`waiting`?this.#e.say(this.label):this.#e.clear()),!e.has(`text`)&&!e.has(`state`)&&!e.has(`message`))return;let t=e.get(`text`)??``,n=e.has(`text`)&&!this.text.startsWith(t)||e.has(`state`)&&this.state===`waiting`,r=n?[]:[...this.spoken];n&&(this.said=0);let i=this.text.slice(this.said),o=this.ended?i.length:c(i);if(o>0){let e=i.slice(0,o).trim();e&&r.push(e),this.said+=o}e.has(`state`)&&this.state===`stopped`&&r.push(u),(e.has(`state`)||e.has(`message`))&&this.state===`error`&&r.push(this.message||d),(n||r.length!==this.spoken.length)&&(this.spoken=r)}updated(e){if(super.updated(e),!this.focusRetry||!this.ended)return;this.focusRetry=!1;let t=this.renderRoot.querySelector(`.lintje-streaming-text__retry`);t?t.updateComplete.then(()=>t.shadowRoot?.querySelector(`button`)?.focus()):this.renderRoot.querySelector(`.lintje-streaming-text__box`)?.focus()}stop(){this.focusRetry=!0,this.emit(`lintje-stop`)}renderBox(){if(this.state===`waiting`)return e`<div class="lintje-streaming-text__box lintje-streaming-text__box--waiting">
|
|
2
2
|
<lintje-spinner></lintje-spinner>
|
|
3
3
|
<span class="lintje-streaming-text__waiting">${this.label}</span>
|
|
4
|
-
</div>`;if(this.state===`done`)return
|
|
4
|
+
</div>`;if(this.state===`done`)return e`<div class="lintje-streaming-text__box" tabindex="-1">
|
|
5
5
|
<slot><span class="lintje-streaming-text__plain">${this.text}</span></slot>
|
|
6
|
-
</div>`;if(!this.text&&this.state!==`streaming`)return
|
|
7
|
-
><span class="lintje-streaming-text__plain">${this.text}</span>${e
|
|
8
|
-
>`}renderFoot(){if(this.state===`streaming`)return
|
|
6
|
+
</div>`;if(!this.text&&this.state!==`streaming`)return n;let t=this.state===`streaming`;return e`<div class="lintje-streaming-text__box" aria-busy=${t?`true`:`false`}
|
|
7
|
+
><span class="lintje-streaming-text__plain">${this.text}</span>${t?e`<span class="lintje-streaming-text__caret" aria-hidden="true"></span>`:n}</div
|
|
8
|
+
>`}renderFoot(){if(this.state===`streaming`)return e`<div class="lintje-streaming-text__foot">
|
|
9
9
|
<lintje-button
|
|
10
10
|
class="lintje-streaming-text__stop"
|
|
11
11
|
variant="secondary"
|
|
@@ -13,10 +13,10 @@ import{$t as e,Xt as t,Zt as n,et as r,in as i,lt as a,nn as o}from"../chunks/ba
|
|
|
13
13
|
@click=${this.stop}
|
|
14
14
|
>Stoppen</lintje-button
|
|
15
15
|
>
|
|
16
|
-
</div>`;if(this.state!==`stopped`&&this.state!==`error`)return
|
|
16
|
+
</div>`;if(this.state!==`stopped`&&this.state!==`error`)return n;let t=this.state===`error`;return e`<div class="lintje-streaming-text__foot">
|
|
17
17
|
<span
|
|
18
|
-
class=${
|
|
19
|
-
>${
|
|
18
|
+
class=${r({"lintje-streaming-text__note":!0,"lintje-streaming-text__note--error":t})}
|
|
19
|
+
>${t?this.message||d:u}</span
|
|
20
20
|
>
|
|
21
21
|
<lintje-button
|
|
22
22
|
class="lintje-streaming-text__retry"
|
|
@@ -25,12 +25,12 @@ import{$t as e,Xt as t,Zt as n,et as r,in as i,lt as a,nn as o}from"../chunks/ba
|
|
|
25
25
|
@click=${()=>this.emit(`lintje-retry`)}
|
|
26
26
|
>Opnieuw</lintje-button
|
|
27
27
|
>
|
|
28
|
-
</div>`}render(){return
|
|
29
|
-
class=${
|
|
28
|
+
</div>`}render(){return e`<div
|
|
29
|
+
class=${r({"lintje-streaming-text":!0,"lintje-streaming-text--plain":this.variant===`plain`})}
|
|
30
30
|
>
|
|
31
31
|
${this.renderBox()} ${this.renderFoot()}
|
|
32
32
|
<div class="visually-hidden" aria-live="polite" aria-atomic="false">
|
|
33
|
-
${this.#e.text?
|
|
34
|
-
${this.spoken.map(e
|
|
33
|
+
${this.#e.text?e`<p>${this.#e.text}</p>`:n}
|
|
34
|
+
${this.spoken.map(t=>e`<p>${t}</p>`)}
|
|
35
35
|
</div>
|
|
36
|
-
</div>`}};
|
|
36
|
+
</div>`}};o(`lintje-streaming-text`,f);export{f as LintjeStreamingText,c as sentenceEnd};
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Qt as e,U as t,Zt as n,cn as r,dt as i,en as a,ft as o,gt as s,ht as c,on as l,pt as u,rn as d,rt as f,tn as p}from"../chunks/base-BsZyWDre.js";var m=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-sub-nav{font:var(--text-ui)}.lintje-sub-nav__group+.lintje-sub-nav__group{margin-top:var(--space-6)}.lintje-sub-nav__heading{padding:var(--space-3) 0 var(--space-1);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-muted);margin:0;line-height:1.3}.lintje-sub-nav__list{margin:0;padding:0;list-style:none}.lintje-sub-nav__list--nested{margin-bottom:var(--space-1);padding-left:calc(var(--space-6) - 2px);border-left:2px solid var(--color-border-default)}.lintje-sub-nav__link{align-items:flex-start;gap:var(--space-2);box-sizing:border-box;min-height:var(--h-nav-row);margin:0 calc(var(--space-2) * -1);padding:var(--space-3) var(--space-2);font:inherit;color:var(--color-link);text-align:left;cursor:pointer;transition:color var(--dur-hover) var(--ease-in-motion);background:0 0;border:0;line-height:1.5;text-decoration:none;display:flex}.lintje-sub-nav__link--action{width:calc(100% + var(--space-2) * 2)}.lintje-sub-nav__label{text-underline-offset:.2em;min-width:0}.lintje-sub-nav__link:hover{color:var(--color-link-hover)}.lintje-sub-nav__link:hover .lintje-sub-nav__label{text-decoration:underline}.lintje-sub-nav__link.is-current{color:var(--color-text-primary);cursor:default;font-weight:700}.lintje-sub-nav__link.is-current .lintje-sub-nav__label{text-decoration:none}.lintje-sub-nav__link.is-ancestor{color:var(--color-text-primary)}.lintje-sub-nav__link.is-no-page,.lintje-sub-nav__link.is-no-access{color:var(--color-text-disabled);cursor:default}.lintje-sub-nav__link.is-no-access{cursor:not-allowed}.lintje-sub-nav__link.is-no-access .lintje-sub-nav__label{text-decoration:line-through}.lintje-sub-nav__icon{flex:none;margin-top:2px}.lintje-sub-nav__lock{margin-top:var(--space-1);flex:none}.lintje-sub-nav__count{flex:none}.lintje-sub-nav__toggle{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:var(--h-control);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);border:1px solid var(--color-border-field);background:var(--color-bg-surface);color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-hover) var(--ease-in-motion);display:flex}.lintje-sub-nav__toggle:hover{background:var(--color-bg-subtle)}.lintje-sub-nav__toggle-text{flex-direction:column;min-width:0;display:flex}.lintje-sub-nav__toggle-group{font:var(--text-small);color:var(--color-text-muted)}.lintje-sub-nav__toggle-current{font-weight:700}.lintje-sub-nav__toggle-icon{transition:transform var(--dur-hover) var(--ease-in-motion);flex:none}.lintje-sub-nav__toggle.is-open .lintje-sub-nav__toggle-icon{transform:rotate(180deg)}.lintje-sub-nav__panel{padding:var(--space-1) var(--space-6) var(--space-2);border:1px solid var(--color-border-field);background:var(--color-bg-surface);border-top:0}@media (prefers-reduced-motion:reduce){.lintje-sub-nav__link,.lintje-sub-nav__toggle,.lintje-sub-nav__toggle-icon{transition:none}}@media (forced-colors:active){.lintje-sub-nav__link.is-current{text-decoration:underline}.lintje-sub-nav__link.is-no-page,.lintje-sub-nav__link.is-no-access{color:graytext}}`,h=e=>!!e.active||!!e.items?.some(h);function g(e){let t=e=>{for(let n of e){if(n.active)return n;let e=n.items?t(n.items):null;if(e)return e}return null};for(let n of e){let e=t(n.items);if(e)return{item:e,group:n.label}}return null}var _=0,v=class extends a{constructor(...t){super(...t),this.groups=[],this.label=`Submenu`,this.expanded=!1,this.open=!1,this.#e=new e(this,n),this.#t=`lintje-sub-nav-${++_}`}static{this.styles=[c,i,d(m)]}static{this.properties={groups:{attribute:!1},action:{attribute:!1},label:{type:String},expanded:{type:Boolean},open:{state:!0}}}#e;#t;#n(){let e=this.renderRoot.querySelector(`.lintje-sub-nav__panel`);e&&f(e)&&this.renderRoot.querySelector(`.lintje-sub-nav__toggle`)?.focus(),this.open=!1}follow(e,n){t(e)&&(this.#n(),this.followLink(n,e))}act(e){this.#n(),this.emit(`lintje-action`,{value:e})}onKeydown(e){e.key===`Escape`&&this.open&&(e.stopPropagation(),this.open=!1,this.renderRoot.querySelector(`.lintje-sub-nav__toggle`)?.focus())}renderItem(e){let t=e.items?.length&&(this.expanded||h(e))?e.items:null,n=!e.active&&h(e),i=e.icon?s(e.icon,{size:20,className:`lintje-sub-nav__icon`}):l,a=e.badge?o({value:e.badge.value,variant:`count`,label:e.badge.label,className:`lintje-sub-nav__count`}):l,c=r`<span class="lintje-sub-nav__label">${e.label}</span>`,d;if(e.noAccess||!e.href){let t=s(`gebruiksvoorwerpen-hangslot-dicht`,{size:16,label:`Geen toegang`,className:`lintje-sub-nav__lock`});d=r`<span
|
|
2
2
|
class=${u({"lintje-sub-nav__link":!0,"is-no-access":!!e.noAccess,"is-no-page":!e.noAccess})}
|
|
3
3
|
aria-disabled="true"
|
|
4
|
-
>${
|
|
5
|
-
>`}else{let t=e.href;
|
|
4
|
+
>${i}${c}${e.noAccess?t===l?r`<span>geen toegang</span>`:t:r`<span class="visually-hidden"> (niet beschikbaar)</span>`}</span
|
|
5
|
+
>`}else{let t=e.href;d=r`<a
|
|
6
6
|
class=${u({"lintje-sub-nav__link":!0,"focus-inset":!0,"is-current":!!e.active,"is-ancestor":n})}
|
|
7
7
|
href=${t}
|
|
8
|
-
aria-current=${e.active?`page`:
|
|
8
|
+
aria-current=${e.active?`page`:l}
|
|
9
9
|
@click=${e=>this.follow(e,t)}
|
|
10
|
-
>${
|
|
11
|
-
>`}return
|
|
12
|
-
${
|
|
10
|
+
>${i}${c}${a}</a
|
|
11
|
+
>`}return r`<li>
|
|
12
|
+
${d}${t?r`<ul class="lintje-sub-nav__list lintje-sub-nav__list--nested">
|
|
13
13
|
${t.map(e=>this.renderItem(e))}
|
|
14
|
-
</ul>`:
|
|
15
|
-
</li>`}renderGroups(){let e=this.action;return
|
|
16
|
-
${e.label?
|
|
17
|
-
<ul class="lintje-sub-nav__list" aria-labelledby=${e.label?n:
|
|
14
|
+
</ul>`:l}
|
|
15
|
+
</li>`}renderGroups(){let e=this.action;return r`${this.groups.map((e,t)=>{let n=`${this.#t}-g${t}`;return r`<div class="lintje-sub-nav__group">
|
|
16
|
+
${e.label?r`<p id=${n} class="lintje-sub-nav__heading">${e.label}</p>`:l}
|
|
17
|
+
<ul class="lintje-sub-nav__list" aria-labelledby=${e.label?n:l}>
|
|
18
18
|
${e.items.map(e=>this.renderItem(e))}
|
|
19
19
|
</ul>
|
|
20
|
-
</div>`})}${e?
|
|
20
|
+
</div>`})}${e?r`<div class="lintje-sub-nav__group">
|
|
21
21
|
<button
|
|
22
22
|
type="button"
|
|
23
23
|
class="lintje-sub-nav__link lintje-sub-nav__link--action focus-inset"
|
|
24
24
|
@click=${()=>this.act(e.value)}
|
|
25
25
|
>
|
|
26
|
-
${
|
|
26
|
+
${s(e.icon??`functioneel-plus`,{size:20,className:`lintje-sub-nav__icon`})}<span class="lintje-sub-nav__label">${e.label}</span>
|
|
27
27
|
</button>
|
|
28
|
-
</div>`:
|
|
28
|
+
</div>`:l}`}renderPhone(){let e=g(this.groups),t=`${this.#t}-panel`;return r`<nav class="lintje-sub-nav" aria-label=${this.label} @keydown=${this.onKeydown}>
|
|
29
29
|
<button
|
|
30
30
|
type="button"
|
|
31
31
|
class=${u({"lintje-sub-nav__toggle":!0,"is-open":this.open})}
|
|
@@ -34,10 +34,10 @@ import{$t as e,Jt as t,U as n,Xt as r,Zt as i,ct as a,dt as o,et as s,ft as c,in
|
|
|
34
34
|
@click=${()=>this.open=!this.open}
|
|
35
35
|
>
|
|
36
36
|
<span class="lintje-sub-nav__toggle-text">
|
|
37
|
-
${e?.group?
|
|
37
|
+
${e?.group?r`<span class="lintje-sub-nav__toggle-group">${e.group}</span>`:l}
|
|
38
38
|
<span class="lintje-sub-nav__toggle-current">${e?.item.label??this.label}</span>
|
|
39
39
|
</span>
|
|
40
|
-
${
|
|
40
|
+
${s(`functioneel-delta-omlaag`,{size:24,className:`lintje-sub-nav__toggle-icon`})}
|
|
41
41
|
</button>
|
|
42
42
|
<div id=${t} class="lintje-sub-nav__panel" ?hidden=${!this.open}>${this.renderGroups()}</div>
|
|
43
|
-
</nav>`}render(){return!this.groups.length&&!this.action?
|
|
43
|
+
</nav>`}render(){return!this.groups.length&&!this.action?l:this.#e.matches?this.renderPhone():r`<nav class="lintje-sub-nav" aria-label=${this.label}>${this.renderGroups()}</nav>`}};p(`lintje-sub-nav`,v);export{v as LintjeSubNav,g as activeEntry};
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{U as e,cn as t,en as n,gt as r,ht as i,on as a,pt as o,rn as s,tn as c}from"../chunks/base-BsZyWDre.js";var l=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-tabs__list{border-bottom:1px solid var(--color-border-heavy);flex-wrap:wrap;display:flex;position:relative}.lintje-tabs__tab{align-items:center;gap:var(--space-2);height:var(--h-touch);padding:0 var(--space-4);color:var(--color-text-primary);font:var(--text-ui);white-space:nowrap;transition:background var(--dur-hover) var(--ease-in-motion), border-color var(--dur-hover) var(--ease-in-motion);background:0 0;border-bottom:3px solid #0000;text-decoration:none;display:inline-flex}.lintje-tabs__tab:hover:not(.is-active):not(.is-disabled){background:var(--color-bg-subtle);border-bottom-color:var(--color-border-heavy)}.lintje-tabs__tab.is-active{border-bottom-color:var(--color-accent-line);color:var(--color-accent-text);font-weight:700}.lintje-tabs__tab.is-disabled{color:var(--color-text-disabled);cursor:not-allowed}.lintje-tabs__panel{padding-top:var(--space-4)}.lintje-tabs__panel.is-pressed:focus-visible{outline:none}@media screen and (width<=767px){.lintje-tabs__list{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.lintje-tabs__list::-webkit-scrollbar{display:none}.lintje-tabs__tab{flex:none}.lintje-tabs__list.is-scroll-start{box-shadow:var(--shadow-scroll-start)}.lintje-tabs__list.is-scroll-end{box-shadow:var(--shadow-scroll-end)}.lintje-tabs__list.is-scroll-start.is-scroll-end{box-shadow:var(--shadow-scroll-start), var(--shadow-scroll-end)}}@media (forced-colors:active){.lintje-tabs__tab.is-active{border-bottom-color:highlight}.lintje-tabs__tab.is-disabled{color:graytext}}.lintje-tabs--panel{background:var(--color-bg-surface);border:1px solid var(--color-border-default)}.lintje-tabs--panel .lintje-tabs__list{background:var(--color-bg-subtle);border-bottom-color:var(--color-border-default);flex-wrap:nowrap}.lintje-tabs--panel .lintje-tabs__tab{min-width:0;height:auto;min-height:var(--h-touch);align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-right:1px solid var(--color-border-default);border-bottom:1px solid var(--color-border-default);white-space:normal;text-align:left;flex:1 1 0;margin-bottom:-1px}.lintje-tabs--panel .lintje-tabs__tab:last-child{border-right:0}.lintje-tabs--panel .lintje-tabs__tab:hover:not(.is-active):not(.is-disabled){background:var(--color-bg-subtle);border-bottom-color:var(--color-border-default)}.lintje-tabs--panel .lintje-tabs__tab:hover:not(.is-active):not(.is-disabled) .lintje-tabs__label{text-decoration:underline}.lintje-tabs--panel .lintje-tabs__tab.is-active{background:var(--color-bg-surface);border-bottom-color:var(--color-bg-surface);color:var(--color-accent-text)}.lintje-tabs__icon{flex:none}.lintje-tabs__text{flex-direction:column;gap:2px;min-width:0;display:flex}.lintje-tabs__head{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.lintje-tabs__hint{font:var(--text-small);color:var(--color-text-muted)}.lintje-tabs--panel .lintje-tabs__panel{padding:var(--space-6)}@media screen and (width<=767px){.lintje-tabs--panel .lintje-tabs__tab{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-2);text-align:center;flex-direction:column}.lintje-tabs--panel .lintje-tabs__text{align-items:center}.lintje-tabs--panel .lintje-tabs__head{justify-content:center}.lintje-tabs--panel .lintje-tabs__hint{display:none}.lintje-tabs--panel .lintje-tabs__panel{padding:var(--space-4)}}@media (forced-colors:active){.lintje-tabs--panel .lintje-tabs__tab.is-active .lintje-tabs__label{text-decoration:underline}}`;function u(e,t,n){return{start:e>1,end:e+t<n-1}}function d(e,t,n,r){return e<n?e:e+t>n+r?e+t-r:n}var f=class extends n{constructor(...e){super(...e),this.tabs=[],this.label=``,this.variant=`line`,this.#e=null,this.#t=!1}static{this.styles=[i,s(l)]}static{this.properties={tabs:{attribute:!1},value:{type:String},label:{type:String},variant:{type:String,reflect:!0}}}#e;#t;onPanelFocus(e){e.currentTarget.classList.toggle(`is-pressed`,this.#t),this.#t=!1}get selectedIndex(){let e=this.tabs.findIndex(e=>e.value===this.value);return e<0?0:e}get isNav(){return this.tabs.length>0&&this.tabs.every(e=>!!e.href)}get list(){return this.renderRoot.querySelector(`.lintje-tabs__list`)}tabElement(e){return this.renderRoot.querySelector(`#tab-${e}`)}disconnectedCallback(){this.#e?.disconnect(),this.#e=null,super.disconnectedCallback()}choose(e,t){let n=this.tabs[e];n&&!n.disabled&&(this.emit(`lintje-tab-change`,n.value),n.href&&this.followLink(n.href,t))}onClick(t,n){let r=this.tabs[n];r&&(!r.href||r.disabled||e(t))&&this.choose(n,t)}onKeydown(e){let t=this.tabs.length;if(!t)return;let n=this.shadowRoot?.activeElement,r=Math.max(0,this.tabs.findIndex((e,t)=>this.tabElement(t)===n)),i=null;e.key===`ArrowRight`?i=(r+1)%t:e.key===`ArrowLeft`?i=(r-1+t)%t:e.key===`Home`?i=0:e.key===`End`&&(i=t-1),i!==null&&(e.preventDefault(),this.tabElement(i)?.focus(),this.tabs[i]?.href||this.choose(i))}measureEdges(){let e=this.list;if(!e)return;let t=u(e.scrollLeft,e.clientWidth,e.scrollWidth);e.classList.toggle(`is-scroll-start`,t.start),e.classList.toggle(`is-scroll-end`,t.end)}firstUpdated(){let e=this.list;e&&typeof ResizeObserver<`u`&&(this.#e=new ResizeObserver(()=>this.measureEdges()),this.#e.observe(e))}updated(e){super.updated(e);let t=this.list,n=this.tabElement(this.selectedIndex);(e.has(`value`)||e.has(`tabs`))&&t&&n&&t.scrollWidth>t.clientWidth&&(t.scrollLeft=d(n.offsetLeft,n.offsetWidth,t.scrollLeft,t.clientWidth)),this.measureEdges()}renderTab(e,n,i){let s=o({"lintje-tabs__tab":!0,"focus-inset":!0,"is-active":i,"is-disabled":!!e.disabled}),c=t`<span class="lintje-tabs__label">${e.label}</span>${typeof e.count==`number`?t`<lintje-badge variant="count">${e.count}</lintje-badge>`:a}${e.badge?t`<lintje-badge tone="info">${e.badge}</lintje-badge>`:a}`,l=this.variant===`panel`?t`${e.icon?r(e.icon,{size:24,className:`lintje-tabs__icon`}):a}<span
|
|
2
2
|
class="lintje-tabs__text"
|
|
3
|
-
><span class="lintje-tabs__head">${
|
|
4
|
-
>`:
|
|
5
|
-
id="tab-${
|
|
6
|
-
class=${
|
|
3
|
+
><span class="lintje-tabs__head">${c}</span>${e.hint?t`<span class="lintje-tabs__hint">${e.hint}</span>`:a}</span
|
|
4
|
+
>`:c;return this.isNav?e.disabled?t`<a id="tab-${n}" class=${s} role="link" aria-disabled="true">${l}</a>`:t`<a
|
|
5
|
+
id="tab-${n}"
|
|
6
|
+
class=${s}
|
|
7
7
|
href=${e.href}
|
|
8
|
-
aria-current=${
|
|
9
|
-
@click=${e=>this.onClick(e,
|
|
8
|
+
aria-current=${i?`page`:a}
|
|
9
|
+
@click=${e=>this.onClick(e,n)}
|
|
10
10
|
>${l}</a
|
|
11
|
-
>`:e.href&&!e.disabled?
|
|
12
|
-
id="tab-${
|
|
13
|
-
class=${
|
|
11
|
+
>`:e.href&&!e.disabled?t`<a
|
|
12
|
+
id="tab-${n}"
|
|
13
|
+
class=${s}
|
|
14
14
|
role="tab"
|
|
15
15
|
href=${e.href}
|
|
16
|
-
aria-selected=${String(
|
|
17
|
-
aria-controls="panel-${
|
|
18
|
-
tabindex=${
|
|
19
|
-
@click=${e=>this.onClick(e,
|
|
16
|
+
aria-selected=${String(i)}
|
|
17
|
+
aria-controls="panel-${n}"
|
|
18
|
+
tabindex=${i?0:-1}
|
|
19
|
+
@click=${e=>this.onClick(e,n)}
|
|
20
20
|
>${l}</a
|
|
21
|
-
>`:
|
|
22
|
-
id="tab-${
|
|
21
|
+
>`:t`<button
|
|
22
|
+
id="tab-${n}"
|
|
23
23
|
type="button"
|
|
24
|
-
class=${
|
|
24
|
+
class=${s}
|
|
25
25
|
role="tab"
|
|
26
|
-
aria-selected=${String(
|
|
27
|
-
aria-controls="panel-${
|
|
28
|
-
aria-disabled=${e.disabled?`true`:
|
|
29
|
-
tabindex=${
|
|
30
|
-
@click=${e=>this.onClick(e,
|
|
26
|
+
aria-selected=${String(i)}
|
|
27
|
+
aria-controls="panel-${n}"
|
|
28
|
+
aria-disabled=${e.disabled?`true`:a}
|
|
29
|
+
tabindex=${i?0:-1}
|
|
30
|
+
@click=${e=>this.onClick(e,n)}
|
|
31
31
|
>
|
|
32
32
|
${l}
|
|
33
|
-
</button>`}render(){let e=this.selectedIndex,
|
|
34
|
-
class
|
|
35
|
-
role=${
|
|
36
|
-
aria-label=${
|
|
37
|
-
@keydown=${
|
|
33
|
+
</button>`}render(){let e=this.selectedIndex,n=this.isNav,r=t`<div
|
|
34
|
+
class="lintje-tabs__list"
|
|
35
|
+
role=${n?a:`tablist`}
|
|
36
|
+
aria-label=${n?a:this.label||a}
|
|
37
|
+
@keydown=${n?a:this.onKeydown}
|
|
38
38
|
@scroll=${this.measureEdges}
|
|
39
39
|
>
|
|
40
40
|
${this.tabs.map((t,n)=>this.renderTab(t,n,n===e))}
|
|
41
|
-
</div>`,
|
|
42
|
-
<nav aria-label=${this.label||
|
|
41
|
+
</div>`,i=o({"lintje-tabs":!0,"lintje-tabs--panel":this.variant===`panel`});return n?t`<div class=${i}>
|
|
42
|
+
<nav aria-label=${this.label||a}>${r}</nav>
|
|
43
43
|
<div class="lintje-tabs__panel"><slot name=${this.tabs[e].value}></slot></div>
|
|
44
|
-
</div>`:
|
|
45
|
-
${
|
|
46
|
-
${this.tabs.map((
|
|
47
|
-
id="panel-${
|
|
44
|
+
</div>`:t`<div class=${i}>
|
|
45
|
+
${r}
|
|
46
|
+
${this.tabs.map((n,r)=>t`<div
|
|
47
|
+
id="panel-${r}"
|
|
48
48
|
class="lintje-tabs__panel"
|
|
49
49
|
role="tabpanel"
|
|
50
|
-
aria-labelledby="tab-${
|
|
50
|
+
aria-labelledby="tab-${r}"
|
|
51
51
|
tabindex="0"
|
|
52
|
-
?hidden=${
|
|
52
|
+
?hidden=${r!==e}
|
|
53
53
|
@pointerdown=${()=>this.#t=!0}
|
|
54
54
|
@pointerup=${()=>this.#t=!1}
|
|
55
55
|
@focus=${this.onPanelFocus}
|
|
56
56
|
@blur=${e=>e.currentTarget.classList.remove(`is-pressed`)}
|
|
57
57
|
>
|
|
58
|
-
<slot name=${
|
|
58
|
+
<slot name=${n.value}></slot>
|
|
59
59
|
</div>`)}
|
|
60
|
-
</div>`}};
|
|
60
|
+
</div>`}};c(`lintje-tabs`,f);export{f as LintjeTabs,u as scrollEdges,d as scrollToShow};
|