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,68 +1,68 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{cn as e,en as t,on as n,rn as r,rt as i,tn as a}from"../chunks/base-BsZyWDre.js";import{n as o}from"../chunks/focus-trap-BDxiHED1.js";import{t as s}from"../chunks/copied-Dx6jfxoK.js";import"./announcement.js";import"./prose.js";import{t as c}from"../chunks/sentence-end-DqHdi7Wb.js";import"./kpi-row.js";import"./data-table.js";import"./chart.js";import"./chat-strip.js";import"./chat-suggestions.js";var l=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-chat-answer{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.lintje-chat-answer__body{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.lintje-chat-answer__lead{font-weight:700}.lintje-chat-answer__blocks{gap:var(--space-3) var(--grid-gutter);grid-template-columns:repeat(12,minmax(0,1fr));min-width:0;display:grid}.lintje-chat-answer__blocks>:not([span]){grid-column:1/-1}@media screen and (width<=767px){.lintje-chat-answer__blocks{grid-template-columns:minmax(0,1fr)}}.lintje-chat-answer__stopped,.lintje-chat-answer__note,.lintje-chat-answer__reasons-label{font:var(--text-small);color:var(--color-text-muted)}.lintje-chat-answer__status{align-self:flex-start}.lintje-chat-answer__retry{margin-top:var(--space-2)}.lintje-chat-answer__actions{align-items:center;gap:var(--space-2);margin-left:calc((16px - var(--h-icon-button)) / 2);color:var(--color-text-primary);flex-wrap:wrap;display:flex}.lintje-chat-answer__note{margin-left:var(--space-2)}.lintje-chat-answer__reasons{align-items:center;gap:var(--space-2);animation:lintje-fade-in var(--dur-base) var(--ease-in-motion) both;flex-wrap:wrap;display:flex}.lintje-chat-answer__reasons-label{margin-right:var(--space-1)}`,u=[`Klopt niet`,`Niet wat ik vroeg`,`Onduidelijk`],d={"needs-clarification":{label:`Kies je antwoord`,hint:`Of typ je eigen antwoord in het veld.`},"out-of-scope":{label:`Kies wat je wilt doen`,hint:`Of stel een andere vraag in het veld.`}},f=class extends t{constructor(...e){super(...e),this.state=`ready`,this.current=!1,this.rating=null,this.reasonGiven=!1,this.note=``,this.spoken=[],this.#e=!1,this.#t=0,this.#n=``}static{this.styles=r(l)}static{this.properties={state:{type:String,reflect:!0},lead:{type:String},text:{type:String},blocks:{attribute:!1},strip:{attribute:!1},status:{type:String},error:{attribute:!1},choices:{attribute:!1},followUps:{attribute:!1},current:{type:Boolean,reflect:!0},turnId:{type:String,attribute:`turn-id`},rating:{state:!0},reasonGiven:{state:!0},note:{state:!0},spoken:{state:!0}}}#e;#t;#n;#r;#i;disconnectedCallback(){clearTimeout(this.#r),clearTimeout(this.#i),super.disconnectedCallback()}get spokenText(){return[this.lead,this.text].filter(Boolean).join(` `)}willUpdate(e){if(super.willUpdate(e),!e.has(`state`)&&!e.has(`lead`)&&!e.has(`text`))return;let t=this.spokenText,n=e.has(`state`)&&this.state===`streaming`||!t.startsWith(this.#n.slice(0,this.#t));if(this.#n=t,n&&(this.#e||this.state===`streaming`)&&(this.#e=!0,this.#t=0,this.spoken=[]),!this.#e||this.state===`error`)return;let r=t.slice(this.#t),i=this.state===`streaming`?c(r):r.length,a=r.slice(0,i).trim();this.#t+=i,a&&(this.spoken=[...this.spoken,a])}get detail(){return{turnId:this.turnId??null}}get plainText(){let e=(this.blocks??[]).map(e=>e.kind===`prose`?e.text:``);return[[this.lead,this.text].filter(Boolean).join(` `),...e].filter(Boolean).join(`
|
|
2
2
|
|
|
3
|
-
`)}say(e,t){clearTimeout(this.#r),clearTimeout(this.#i),t&&(this.#r=setTimeout(()=>this.note=``,t)),e&&e===this.note?(this.note=``,this.#i=setTimeout(()=>this.note=e,100)):this.note=e}async copy(){try{await navigator.clipboard.writeText(this.plainText),this.say(`Gekopieerd`,s)}catch{this.say(`Kopiëren is niet gelukt`)}}rate(e){this.rating=this.rating===e?null:e,this.reasonGiven=!1,this.say(``),this.emit(`lintje-answer-rate`,{...this.detail,rating:this.rating,reason:null})}giveReason(e){let t=this.renderRoot.querySelector(`.lintje-chat-answer__reasons`),n=this.renderRoot.querySelector(`[label="Slecht antwoord"]`);t&&n&&
|
|
3
|
+
`)}say(e,t){clearTimeout(this.#r),clearTimeout(this.#i),t&&(this.#r=setTimeout(()=>this.note=``,t)),e&&e===this.note?(this.note=``,this.#i=setTimeout(()=>this.note=e,100)):this.note=e}async copy(){try{await navigator.clipboard.writeText(this.plainText),this.say(`Gekopieerd`,s)}catch{this.say(`Kopiëren is niet gelukt`)}}rate(e){this.rating=this.rating===e?null:e,this.reasonGiven=!1,this.say(``),this.emit(`lintje-answer-rate`,{...this.detail,rating:this.rating,reason:null})}giveReason(e){let t=this.renderRoot.querySelector(`.lintje-chat-answer__reasons`),n=this.renderRoot.querySelector(`[label="Slecht antwoord"]`);t&&n&&i(t)&&o(n).focus(),this.reasonGiven=!0,this.say(`Bedankt, doorgegeven.`),this.emit(`lintje-answer-rate`,{...this.detail,rating:`down`,reason:e})}retry(){this.emit(`lintje-answer-retry`,this.detail)}render(){let t=this.state,r=t===`ready`,i=d[t];return e`<article class="lintje-chat-answer">
|
|
4
4
|
<div class="lintje-chat-answer__body">
|
|
5
|
-
${
|
|
5
|
+
${t===`error`?this.renderError():this.renderText()}
|
|
6
6
|
<div class="visually-hidden" role="status" aria-atomic="false">
|
|
7
|
-
${this.spoken.map(e
|
|
7
|
+
${this.spoken.map(t=>e`<p>${t}</p>`)}
|
|
8
8
|
</div>
|
|
9
|
-
${
|
|
10
|
-
turn-id=${this.turnId??
|
|
9
|
+
${r&&this.strip?e`<lintje-chat-strip
|
|
10
|
+
turn-id=${this.turnId??n}
|
|
11
11
|
.items=${this.strip.items}
|
|
12
12
|
.details=${this.strip.details}
|
|
13
|
-
details-label=${this.strip.detailsLabel??
|
|
13
|
+
details-label=${this.strip.detailsLabel??n}
|
|
14
14
|
?disabled=${!this.current}
|
|
15
|
-
></lintje-chat-strip>`:
|
|
15
|
+
></lintje-chat-strip>`:n}
|
|
16
16
|
${this.renderBlocks()}
|
|
17
|
-
${
|
|
17
|
+
${t===`streaming`?e`<lintje-spinner
|
|
18
18
|
class="lintje-chat-answer__status"
|
|
19
19
|
label=${this.status??`Antwoord schrijven`}
|
|
20
|
-
></lintje-spinner>`:
|
|
21
|
-
${
|
|
22
|
-
${
|
|
20
|
+
></lintje-spinner>`:n}
|
|
21
|
+
${t===`stopped`?e`<p class="lintje-chat-answer__stopped">Antwoord gestopt.</p>`:n}
|
|
22
|
+
${r?this.renderActions():n}
|
|
23
23
|
</div>
|
|
24
|
-
${
|
|
24
|
+
${i&&this.current?e`<lintje-chat-suggestions
|
|
25
25
|
kind="choice"
|
|
26
|
-
turn-id=${this.turnId??
|
|
27
|
-
label=${
|
|
28
|
-
hint=${
|
|
26
|
+
turn-id=${this.turnId??n}
|
|
27
|
+
label=${i.label}
|
|
28
|
+
hint=${i.hint}
|
|
29
29
|
.items=${this.choices}
|
|
30
|
-
></lintje-chat-suggestions>`:
|
|
31
|
-
${
|
|
32
|
-
turn-id=${this.turnId??
|
|
30
|
+
></lintje-chat-suggestions>`:n}
|
|
31
|
+
${r&&this.current?e`<lintje-chat-suggestions
|
|
32
|
+
turn-id=${this.turnId??n}
|
|
33
33
|
label="Jij, als vervolgvraag"
|
|
34
34
|
.items=${this.followUps}
|
|
35
|
-
></lintje-chat-suggestions>`:
|
|
36
|
-
</article>`}renderText(){return
|
|
35
|
+
></lintje-chat-suggestions>`:n}
|
|
36
|
+
</article>`}renderText(){return e`<lintje-prose
|
|
37
37
|
class="lintje-chat-answer__text"
|
|
38
|
-
aria-live=${this.#e?`off`:
|
|
39
|
-
aria-busy=${this.state===`streaming`?`true`:
|
|
38
|
+
aria-live=${this.#e?`off`:n}
|
|
39
|
+
aria-busy=${this.state===`streaming`?`true`:n}
|
|
40
40
|
>
|
|
41
41
|
<p>
|
|
42
|
-
<span class="visually-hidden">Assistent: </span>${this.lead?
|
|
42
|
+
<span class="visually-hidden">Assistent: </span>${this.lead?e`<strong class="lintje-chat-answer__lead">${this.lead}</strong> `:n}${this.text??n}
|
|
43
43
|
</p>
|
|
44
|
-
</lintje-prose>`}renderError(){let
|
|
45
|
-
<lintje-announcement .data=${
|
|
46
|
-
${this.current?
|
|
44
|
+
</lintje-prose>`}renderError(){let t={kind:`warning`,live:!0,title:this.error?.title??`Het antwoord is niet geladen`,text:this.error?.text??`Je vraag staat er nog: probeer het opnieuw, of stel een kortere vraag.`};return e`<span class="visually-hidden">Assistent: </span>
|
|
45
|
+
<lintje-announcement .data=${t}>
|
|
46
|
+
${this.current?e`<lintje-button
|
|
47
47
|
class="lintje-chat-answer__retry"
|
|
48
48
|
slot="action"
|
|
49
49
|
variant="secondary"
|
|
50
50
|
icon="functioneel-refresh"
|
|
51
51
|
@click=${()=>this.retry()}
|
|
52
52
|
>Opnieuw proberen</lintje-button
|
|
53
|
-
>`:
|
|
54
|
-
</lintje-announcement>`}renderBlocks(){let
|
|
53
|
+
>`:n}
|
|
54
|
+
</lintje-announcement>`}renderBlocks(){let t=this.blocks??[];return t.length?e`<div
|
|
55
55
|
class="lintje-chat-answer__blocks"
|
|
56
|
-
aria-busy=${this.state===`streaming`?`true`:
|
|
56
|
+
aria-busy=${this.state===`streaming`?`true`:n}
|
|
57
57
|
>
|
|
58
|
-
${
|
|
59
|
-
span=${
|
|
60
|
-
.data=${
|
|
61
|
-
></lintje-chart>`;case`data-table`:return
|
|
62
|
-
span=${
|
|
63
|
-
.data=${
|
|
58
|
+
${t.map(t=>{switch(t.kind){case`prose`:return e`<lintje-prose .html=${t.html} .text=${t.text}></lintje-prose>`;case`kpi-row`:return e`<lintje-kpi-row .data=${t.data}></lintje-kpi-row>`;case`chart`:return e`<lintje-chart
|
|
59
|
+
span=${t.data.span??n}
|
|
60
|
+
.data=${t.data}
|
|
61
|
+
></lintje-chart>`;case`data-table`:return e`<lintje-data-table
|
|
62
|
+
span=${t.data.span??n}
|
|
63
|
+
.data=${t.data}
|
|
64
64
|
></lintje-data-table>`}})}
|
|
65
|
-
</div>`:
|
|
65
|
+
</div>`:n}renderActions(){let t=this.rating===`down`&&!this.reasonGiven;return e`<div class="lintje-chat-answer__actions">
|
|
66
66
|
<lintje-icon-button
|
|
67
67
|
icon="functioneel-kopieren"
|
|
68
68
|
label="Antwoord kopiëren"
|
|
@@ -85,24 +85,24 @@ import{$t as e,Xt as t,Zt as n,et as r,in as i,nn as a}from"../chunks/base-DuuwE
|
|
|
85
85
|
?active=${this.rating===`down`}
|
|
86
86
|
@click=${()=>this.rate(`down`)}
|
|
87
87
|
></lintje-icon-button>
|
|
88
|
-
${this.current?
|
|
88
|
+
${this.current?e`<lintje-icon-button
|
|
89
89
|
icon="functioneel-refresh"
|
|
90
90
|
label="Opnieuw beantwoorden"
|
|
91
91
|
variant="flat"
|
|
92
92
|
@click=${()=>this.retry()}
|
|
93
|
-
></lintje-icon-button>`:
|
|
93
|
+
></lintje-icon-button>`:n}
|
|
94
94
|
<span class="lintje-chat-answer__note" role="status">${this.note}</span>
|
|
95
95
|
</div>
|
|
96
|
-
${e
|
|
96
|
+
${t?e`<div
|
|
97
97
|
class="lintje-chat-answer__reasons"
|
|
98
98
|
role="group"
|
|
99
99
|
aria-labelledby="reasons"
|
|
100
100
|
>
|
|
101
101
|
<span id="reasons" class="lintje-chat-answer__reasons-label">Wat was er mis?</span>
|
|
102
|
-
${u.map(e
|
|
102
|
+
${u.map(t=>e`<lintje-button
|
|
103
103
|
variant="tertiary"
|
|
104
104
|
size="compact"
|
|
105
|
-
@click=${()=>this.giveReason(
|
|
106
|
-
>${
|
|
105
|
+
@click=${()=>this.giveReason(t)}
|
|
106
|
+
>${t}</lintje-button
|
|
107
107
|
>`)}
|
|
108
|
-
</div>`:
|
|
108
|
+
</div>`:n}`}};a(`lintje-chat-answer`,f);export{f as LintjeChatAnswer};
|
|
@@ -1,36 +1,40 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`);return{text:n,nodes:t}}function
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import{Et as e,Qt as t,cn as n,ct as r,en as i,on as a,pt as o,rn as s,rt as c,sn as l,tn as u}from"../chunks/base-BsZyWDre.js";import"./radio-group.js";import{t as d}from"../chunks/key-CAxrgBxD.js";import"./multiselect.js";function f(e,t=[]){let n=[],r=0;for(let i of[...t].sort((e,t)=>e.start-t.start))i.start<r||i.end<=i.start||i.end>e.length||(i.start>r&&n.push({text:e.slice(r,i.start)}),n.push({text:e.slice(i.start,i.end),term:i}),r=i.end);return r<e.length&&n.push({text:e.slice(r)}),n}var p=/[\p{L}\p{N}]/u;function m(e,t=[],n){let r=e.toLowerCase(),i=t.flatMap(e=>[e.label,...e.aliases??[]].map(t=>({word:t,term:e}))).filter(({word:e})=>e.trim()!==``).sort((e,t)=>t.word.length-e.word.length),a=[];for(let{word:t,term:o}of i){let i=t.toLowerCase();for(let t=r.indexOf(i);t!==-1;t=r.indexOf(i,t+1)){let r=t+i.length;if(t>0&&p.test(e[t-1])||r<e.length&&p.test(e[r])||a.some(e=>t<e.end&&r>e.start))continue;let s=o.source!==void 0&&n!==void 0&&!n.includes(o.source);a.push({start:t,end:r,kind:o.kind,certain:!(o.ambiguous||s)})}}return a.sort((e,t)=>e.start-t.start)}function h(e,t=e.length){return/\S*$/.exec(e.slice(0,t))?.[0]??``}function g(e,t=[]){let n=e.toLowerCase();return n?t.filter(e=>{let t=e.label.toLowerCase();return t!==n&&t.split(/\s+/).some(e=>e.startsWith(n))}).slice(0,5):[]}var _=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-chat-composer{position:relative}.lintje-chat-composer__frame{background:var(--color-bg-surface);border:1px solid var(--color-border-field);flex-direction:column;display:flex}.lintje-chat-composer__field{max-height:calc(var(--h-control) * 4 + var(--space-5));position:relative;overflow-y:auto}.lintje-chat-composer__input{min-height:calc(var(--h-control) + var(--space-5));padding:var(--space-3) var(--space-4) var(--space-2);font:var(--text-body);line-height:var(--h-control);color:var(--color-text-primary);white-space:pre-wrap;overflow-wrap:anywhere;display:block}.lintje-chat-composer__input.is-empty:before{content:attr(data-placeholder);content:attr(data-placeholder) / "";color:var(--color-text-placeholder);opacity:1;pointer-events:none;position:absolute}@supports selector(:has(*)){.lintje-chat-composer__input:focus-visible{outline:none}.lintje-chat-composer__frame:has(.lintje-chat-composer__input:focus-visible){outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}}.lintje-chat-composer__input::highlight(lintje-term){background-color:var(--color-term-bg);text-decoration:underline solid var(--color-term-line);text-underline-offset:var(--space-1);text-decoration-thickness:2px}.lintje-chat-composer__input::highlight(lintje-term-uncertain){text-decoration:underline dashed var(--color-border-suggestion);text-underline-offset:var(--space-1);text-decoration-thickness:2px}.lintje-chat-composer__captions{pointer-events:none;position:absolute;inset:0}.lintje-chat-composer__caption{font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;color:var(--color-accent-text);line-height:1;position:absolute;overflow:hidden;transform:translateY(-100%)}.lintje-chat-composer__caption.is-uncertain{color:var(--color-text-muted)}.lintje-chat-composer__bar{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-2);flex-wrap:wrap;display:flex}.lintje-chat-composer__sources{flex:0 auto;width:auto;min-width:0}.lintje-chat-composer__hint{min-width:0;font:var(--text-small);color:var(--color-text-muted);text-align:right;flex:auto}.lintje-chat-composer__send{flex:none;gap:1px;display:flex;position:relative}.lintje-chat-composer__send-half{--h-icon-button:var(--h-button)}.lintje-chat-composer__scrim{z-index:45;position:fixed;inset:0}.lintje-chat-composer__options{right:0;bottom:calc(100% + var(--space-2));z-index:46;width:320px;max-width:calc(100vw - 2 * var(--space-4));gap:var(--space-4);padding:var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border-popover);box-shadow:var(--shadow-popover);color:var(--color-text-primary);animation:lintje-rise var(--dur-popover) var(--ease-in-motion);flex-direction:column;display:flex;position:absolute}.lintje-chat-composer__shortcuts{gap:var(--space-2);flex-direction:column;display:flex}.lintje-chat-composer__shortcuts-label{font:var(--text-small);font-weight:700}.lintje-chat-composer__keys{align-items:center;gap:var(--space-2) var(--space-3);font:var(--text-ui);grid-template-columns:minmax(0,1fr) auto;margin:0;display:grid}.lintje-chat-composer__key{margin:0}.lintje-chat-composer__completions{left:0;bottom:calc(100% + var(--space-2));z-index:46;background:var(--color-bg-surface);border:1px solid var(--color-border-popover);width:360px;max-width:100%;box-shadow:var(--shadow-popover);animation:lintje-rise var(--dur-popover) var(--ease-in-motion);position:absolute}.lintje-chat-composer__completion{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--h-option);padding:0 var(--space-3);border-bottom:1px solid var(--color-border-default);font:var(--text-ui);color:var(--color-text-primary);cursor:pointer;display:flex}.lintje-chat-composer__completion:last-child{border-bottom:0}.lintje-chat-composer__completion:hover,.lintje-chat-composer__completion.is-active{background:var(--color-bg-subtle)}.lintje-chat-composer__completion-kind{font:var(--text-small);color:var(--color-text-muted)}@media screen and (width<=767px){.lintje-chat-composer__input{padding:var(--space-3) var(--space-3) var(--space-1)}.lintje-chat-composer__hint:not(:empty){text-align:left;flex-basis:100%;order:-1}}@media (forced-colors:active){.lintje-chat-composer__completion.is-active{outline-offset:-1px;outline:1px solid highlight}}`,v=[{value:`auto`,label:`Automatisch (de assistent kiest)`},{value:`text`,label:`Alleen tekst`},{value:`chart`,label:`Met grafiek`},{value:`table`,label:`Als tabel`}],y=[{value:`enter`,label:`Enter (Shift+Enter: nieuwe regel)`},{value:`ctrl-enter`,label:`Ctrl+Enter (Enter: nieuwe regel)`}],b=`lintje-chat-send-key`,x={enter:`Enter verstuurt, Shift+Enter begint een nieuwe regel.`,"ctrl-enter":`Ctrl+Enter verstuurt, Enter begint een nieuwe regel.`};function S(){try{return localStorage.getItem(b)===`ctrl-enter`?`ctrl-enter`:`enter`}catch{return`enter`}}var C=`lintje-term`,w=`lintje-term-uncertain`,T=()=>typeof CSS<`u`&&`highlights`in CSS&&typeof Highlight<`u`;function E(e){let t=CSS.highlights.get(e);return t||(t=new Highlight,CSS.highlights.set(e,t)),t}function D(e){let t=[],n=``,r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT);for(let e=r.nextNode();e;e=r.nextNode())e.nodeType===Node.TEXT_NODE?(t.push({node:e,start:n.length}),n+=e.data):e.localName===`br`&&(n+=`
|
|
2
|
+
`);return{text:n,nodes:t}}function O(e,t){for(let n=e.nodes.length-1;n>=0;n--){let{node:r,start:i}=e.nodes[n];if(t>=i&&t<=i+r.data.length)return{node:r,offset:t-i}}return null}var k=t=>n`<span
|
|
3
|
+
class=${o({"lintje-chat-composer__caption":!0,"is-uncertain":!t.certain})}
|
|
4
|
+
${e({left:`${t.left}px`,top:`${t.top}px`,maxWidth:t.room===void 0?null:`${t.room}px`})}
|
|
5
|
+
>${t.kind}</span
|
|
6
|
+
>`,A=class extends i{constructor(...e){super(...e),this.variant=`ask`,this.text=``,this.placeholder=`Stel een vraag over de gegevens`,this.busy=!1,this.sendKey=S(),this.form=`auto`,this.optionsOpen=!1,this.plain=!1,this.draft=``,this.caret=0,this.completionIndex=0,this.completionOff=!1,this.#e=[],this.#t=null,this.#n=new t(this),this.#r=!0,this.#i=[],this.#a=null,this.#s=!1,this.#c=!1}static{this.styles=[s(d),s(_),s(r)]}static{this.properties={variant:{type:String,reflect:!0},text:{type:String},placeholder:{type:String},busy:{type:Boolean,reflect:!0},recall:{type:String},sendKey:{type:String,attribute:`send-key`},form:{type:String},sources:{attribute:!1},vocabulary:{attribute:!1},draftTerms:{attribute:!1},optionsOpen:{type:Boolean,attribute:`options-open`,reflect:!0},plain:{type:Boolean,reflect:!0},draft:{state:!0},caret:{state:!0},completionIndex:{state:!0},completionOff:{state:!0}}}#e;#t;#n;#r;#i;#a;#o;#s;#c;get input(){return this.renderRoot.querySelector(`.lintje-chat-composer__input`)}get selectedIds(){return(this.sources??[]).filter(e=>e.selected).map(e=>e.id)}get noSource(){return this.variant===`ask`&&!!this.sources?.length&&!this.selectedIds.length}termsIn(e){return this.draftTerms&&this.draftTerms.text===e?this.draftTerms.ranges:m(e,this.vocabulary,this.sources?this.selectedIds:void 0)}get suggestions(){return this.completionOff||this.termsIn(this.draft).some(e=>e.end===this.caret)?[]:g(h(this.draft,this.caret),this.vocabulary)}disconnectedCallback(){this.clearHighlights(),this.#a?.disconnect(),this.#a=null,clearTimeout(this.#o),super.disconnectedCallback()}firstUpdated(){let e=this.input;e&&(e.contentEditable!==`plaintext-only`&&(e.contentEditable=`true`,this.#r=!1),typeof ResizeObserver<`u`&&(this.#a=new ResizeObserver(()=>this.paint()),this.#a.observe(e)))}willUpdate(e){if(super.willUpdate(e),e.has(`text`)&&this.text!==this.draft&&(this.draft=this.text,this.caret=this.text.length,this.#c=!0),!e.has(`busy`)||e.get(`busy`)===void 0)return;let t=this.renderRoot.querySelector(this.busy?`.lintje-chat-composer__send`:`.lintje-chat-composer__stop`);t&&c(t)&&(this.#s=!0)}updated(){this.#c&&(this.#c=!1,this.write(this.draft,void 0,!1)),this.paint(),this.#s&&(this.#s=!1,this.focus())}focus(){this.write(this.draft)}openSources(){let e=this.renderRoot.querySelector(`lintje-multiselect`);e&&(e.open=!0)}selection(){return this.renderRoot.getSelection?.()??document.getSelection()}read(){let e=this.input;if(!e)return;let t=D(e);t.text===`
|
|
7
|
+
`&&(e.textContent=``,t.text=``);let n=this.selection(),r=t.nodes.find(({node:e})=>e===n?.focusNode);this.draft=t.text,this.caret=r?r.start+(n?.focusOffset??0):t.text.length}write(e,t=e.length,n=!0){let r=this.input;if(r){if(D(r).text!==e&&(r.textContent=e),n){r.focus();let e=O(D(r),t);e&&this.selection()?.collapse(e.node,e.offset)}this.draft=e,this.caret=t}}onInput(){this.read(),this.completionOff=!1,this.completionIndex=0,clearTimeout(this.#o),this.#o=setTimeout(()=>this.emit(`lintje-draft-change`,{text:this.draft}),200)}onPaste(e){this.#r||(e.preventDefault(),document.execCommand(`insertText`,!1,e.clipboardData?.getData(`text/plain`)??``))}sends(e){if(e.key!==`Enter`||e.isComposing)return!1;let t=e.ctrlKey||e.metaKey;return(this.plain?`enter`:this.sendKey)===`enter`?!e.shiftKey&&!t:t}onKeydown(e){let t=this.suggestions;if(t.length&&(e.key===`ArrowDown`||e.key===`ArrowUp`)){e.preventDefault();let n=e.key===`ArrowDown`?1:-1;this.completionIndex=(this.completionIndex+n+t.length)%t.length}else t.length&&(e.key===`Enter`||e.key===`Tab`)&&!e.isComposing?(e.preventDefault(),this.complete(t[Math.min(this.completionIndex,t.length-1)])):t.length&&e.key===`Escape`?(e.preventDefault(),this.completionOff=!0):this.sends(e)?(e.preventDefault(),this.send()):e.key===`Enter`&&!this.#r&&!e.isComposing?(e.preventDefault(),document.execCommand(`insertLineBreak`)):e.key===`Escape`?this.variant===`edit`?this.emitLocal(`lintje-cancel`):this.busy&&this.emit(`lintje-answer-stop`,{}):e.key===`ArrowUp`&&this.draft===``&&this.recall&&(e.preventDefault(),this.write(this.recall))}complete(e){let t=h(this.draft,this.caret),n=this.caret-t.length,r=`${this.draft.slice(0,n)}${e.label} ${this.draft.slice(this.caret)}`;this.write(r,n+e.label.length+1),this.completionOff=!0}send(){let e=this.draft.trim();if(!e||this.noSource||this.busy&&this.variant===`ask`)return;let t=this.termsFor(e);this.variant===`edit`?this.emitLocal(`lintje-submit`,{text:e,terms:t}):(this.emit(`lintje-message-send`,{text:e,terms:t,sources:this.selectedIds,form:this.form}),this.write(``))}termsFor(e){let t=this.draft.length-this.draft.trimStart().length;return this.termsIn(this.draft).map(e=>({...e,start:e.start-t,end:e.end-t})).filter(t=>t.start>=0&&t.end<=e.length)}clearHighlights(){if(T()){for(let{name:e,range:t}of this.#i)E(e).delete(t);this.#i=[]}}paint(){let e=this.input,t=this.renderRoot.querySelector(`.lintje-chat-composer__field`);if(!e||!t||!T())return;this.clearHighlights();let n=D(e),r=t.getBoundingClientRect(),i=[];for(let e of this.termsIn(n.text)){let a=O(n,e.start),o=O(n,e.end);if(!a||!o)continue;let s=new Range;s.setStart(a.node,a.offset),s.setEnd(o.node,o.offset);let c=e.certain===!1?w:C;E(c).add(s),this.#i.push({name:c,range:s});let l=s.getClientRects()[0];e.kind&&l&&i.push({left:Math.round(l.left-r.left+t.scrollLeft),top:Math.round(l.top-r.top+t.scrollTop),kind:e.kind,certain:e.certain!==!1})}i.forEach((e,t)=>{let n=i[t+1];n&&n.top===e.top&&(e.room=Math.max(0,n.left-e.left-4))});let a=this.renderRoot.querySelector(`.lintje-chat-composer__captions`);a&&(a!==this.#t||JSON.stringify(i)!==JSON.stringify(this.#e))&&(this.#t=a,this.#e=i,l(i.map(k),a))}setSendKey(e){this.sendKey=e;try{localStorage.setItem(b,e)}catch{}}async toggleOptions(e){this.optionsOpen=e,await this.updateComplete;let t=this.renderRoot.querySelector(e?`.lintje-chat-composer__options`:`.lintje-chat-composer__options-toggle`);(t?.shadowRoot?.querySelector(`button`)??t)?.focus()}render(){let e=this.suggestions,t=Math.min(this.completionIndex,e.length-1),r=this.termsIn(this.draft).map(e=>{let t=this.draft.slice(e.start,e.end),n=[e.kind,e.certain===!1?`niet zeker`:``].filter(Boolean);return n.length?`${t} (${n.join(`, `)})`:t}).join(`, `);return n`<div class="lintje-chat-composer lintje-chat-composer--${this.variant}">
|
|
8
|
+
${e.length?n`<div
|
|
5
9
|
id="completions"
|
|
6
10
|
class="lintje-chat-composer__completions"
|
|
7
11
|
role="listbox"
|
|
8
12
|
aria-label="Aanvullen"
|
|
9
13
|
>
|
|
10
|
-
${e.map((e,
|
|
11
|
-
id="completion-${
|
|
12
|
-
class=${
|
|
14
|
+
${e.map((e,r)=>n`<div
|
|
15
|
+
id="completion-${r}"
|
|
16
|
+
class=${o({"lintje-chat-composer__completion":!0,"is-active":r===t})}
|
|
13
17
|
role="option"
|
|
14
|
-
aria-selected=${String(
|
|
18
|
+
aria-selected=${String(r===t)}
|
|
15
19
|
@mousedown=${t=>{t.preventDefault(),this.complete(e)}}
|
|
16
20
|
>
|
|
17
21
|
<span>${e.label}</span>
|
|
18
22
|
<span class="lintje-chat-composer__completion-kind">${e.kind}</span>
|
|
19
23
|
</div>`)}
|
|
20
|
-
</div>`:
|
|
24
|
+
</div>`:a}
|
|
21
25
|
<div class="lintje-chat-composer__frame">
|
|
22
26
|
<div class="lintje-chat-composer__field">
|
|
23
27
|
<div
|
|
24
|
-
class=${
|
|
28
|
+
class=${o({"lintje-chat-composer__input":!0,"is-empty":this.draft===``})}
|
|
25
29
|
contenteditable="plaintext-only"
|
|
26
30
|
role="textbox"
|
|
27
31
|
aria-multiline="true"
|
|
28
32
|
aria-label=${this.variant===`edit`?`Je vraag bewerken`:`Je vraag`}
|
|
29
33
|
aria-describedby="hint send-key"
|
|
30
34
|
aria-placeholder=${this.placeholder}
|
|
31
|
-
aria-autocomplete=${this.vocabulary?.length?`list`:
|
|
32
|
-
aria-controls=${e.length?`completions`:
|
|
33
|
-
aria-activedescendant=${e.length?`completion-${t}`:
|
|
35
|
+
aria-autocomplete=${this.vocabulary?.length?`list`:a}
|
|
36
|
+
aria-controls=${e.length?`completions`:a}
|
|
37
|
+
aria-activedescendant=${e.length?`completion-${t}`:a}
|
|
34
38
|
data-placeholder=${this.placeholder}
|
|
35
39
|
@input=${this.onInput}
|
|
36
40
|
@keydown=${this.onKeydown}
|
|
@@ -38,23 +42,17 @@ import{$t as e,Jt as t,St as n,Xt as r,Zt as i,et as a,in as o,it as s,lt as c,n
|
|
|
38
42
|
@mouseup=${this.read}
|
|
39
43
|
@paste=${this.onPaste}
|
|
40
44
|
></div>
|
|
41
|
-
<div class="lintje-chat-composer__captions" aria-hidden="true">
|
|
42
|
-
${this.captions.map(e=>o`<span
|
|
43
|
-
class=${c({"lintje-chat-composer__caption":!0,"is-uncertain":!e.certain})}
|
|
44
|
-
${n({left:`${e.left}px`,top:`${e.top}px`,maxWidth:e.room===void 0?null:`${e.room}px`})}
|
|
45
|
-
>${e.kind}</span
|
|
46
|
-
>`)}
|
|
47
|
-
</div>
|
|
45
|
+
<div class="lintje-chat-composer__captions" aria-hidden="true"></div>
|
|
48
46
|
</div>
|
|
49
47
|
<span id="send-key" class="visually-hidden"
|
|
50
|
-
>${
|
|
48
|
+
>${x[this.plain?`enter`:this.sendKey]}</span
|
|
51
49
|
>
|
|
52
50
|
<span class="visually-hidden" aria-live="polite">${r?`Herkend: ${r}`:``}</span>
|
|
53
51
|
<div class="lintje-chat-composer__bar">
|
|
54
52
|
${this.variant===`edit`?this.renderEdit():this.renderAsk()}
|
|
55
53
|
</div>
|
|
56
54
|
</div>
|
|
57
|
-
</div>`}renderAsk(){let e=this.sources??[],t=this.draft.trim()===``;return
|
|
55
|
+
</div>`}renderAsk(){let e=this.sources??[],t=this.draft.trim()===``;return n`${e.length?n`<lintje-multiselect
|
|
58
56
|
class="lintje-chat-composer__sources"
|
|
59
57
|
label="Bronnen voor je volgende vraag"
|
|
60
58
|
hide-label
|
|
@@ -62,32 +60,32 @@ import{$t as e,Jt as t,St as n,Xt as r,Zt as i,et as a,in as o,it as s,lt as c,n
|
|
|
62
60
|
.options=${e.map(e=>({value:e.id,label:e.label,description:[e.description,e.asOf].filter(Boolean).join(` · `)}))}
|
|
63
61
|
.selected=${this.selectedIds}
|
|
64
62
|
@lintje-change=${e=>{e.stopPropagation(),this.emit(`lintje-sources-change`,{ids:e.detail})}}
|
|
65
|
-
></lintje-multiselect>`:
|
|
63
|
+
></lintje-multiselect>`:a}
|
|
66
64
|
<span id="hint" class="lintje-chat-composer__hint" role="status"
|
|
67
65
|
>${this.noSource?`Kies eerst een bron om een vraag te stellen`:``}</span
|
|
68
66
|
>
|
|
69
|
-
${this.busy?
|
|
67
|
+
${this.busy?n`<lintje-button
|
|
70
68
|
class="lintje-chat-composer__stop"
|
|
71
69
|
variant="secondary"
|
|
72
70
|
icon="multimedia-player-stop"
|
|
73
71
|
@click=${()=>this.emit(`lintje-answer-stop`,{})}
|
|
74
72
|
>Stoppen</lintje-button
|
|
75
|
-
>`:
|
|
76
|
-
${this.#
|
|
73
|
+
>`:n`<div class="lintje-chat-composer__send">
|
|
74
|
+
${this.#n.matches?n`<lintje-icon-button
|
|
77
75
|
class="lintje-chat-composer__send-half"
|
|
78
76
|
icon="functioneel-verzenden"
|
|
79
77
|
label="Versturen"
|
|
80
78
|
active
|
|
81
79
|
?disabled=${t||this.noSource}
|
|
82
80
|
@click=${()=>this.send()}
|
|
83
|
-
></lintje-icon-button>`:
|
|
81
|
+
></lintje-icon-button>`:n`<lintje-button
|
|
84
82
|
variant="primary"
|
|
85
83
|
icon="functioneel-verzenden"
|
|
86
84
|
?disabled=${t||this.noSource}
|
|
87
85
|
@click=${()=>this.send()}
|
|
88
86
|
>Versturen</lintje-button
|
|
89
87
|
>`}
|
|
90
|
-
${this.plain?
|
|
88
|
+
${this.plain?a:n`<lintje-icon-button
|
|
91
89
|
class="lintje-chat-composer__send-half lintje-chat-composer__options-toggle"
|
|
92
90
|
icon="functioneel-delta-omlaag"
|
|
93
91
|
label="Opties bij versturen"
|
|
@@ -95,8 +93,8 @@ import{$t as e,Jt as t,St as n,Xt as r,Zt as i,et as a,in as o,it as s,lt as c,n
|
|
|
95
93
|
.expanded=${this.optionsOpen}
|
|
96
94
|
@click=${()=>this.toggleOptions(!this.optionsOpen)}
|
|
97
95
|
></lintje-icon-button>
|
|
98
|
-
${this.optionsOpen?this.renderSendOptions():
|
|
99
|
-
</div>`}`}renderSendOptions(){return
|
|
96
|
+
${this.optionsOpen?this.renderSendOptions():a}`}
|
|
97
|
+
</div>`}`}renderSendOptions(){return n`<span
|
|
100
98
|
class="lintje-chat-composer__scrim"
|
|
101
99
|
@click=${()=>this.toggleOptions(!1)}
|
|
102
100
|
></span>
|
|
@@ -109,13 +107,13 @@ import{$t as e,Jt as t,St as n,Xt as r,Zt as i,et as a,in as o,it as s,lt as c,n
|
|
|
109
107
|
>
|
|
110
108
|
<lintje-radio-group
|
|
111
109
|
label="Antwoord als"
|
|
112
|
-
.options=${
|
|
110
|
+
.options=${v}
|
|
113
111
|
value=${this.form}
|
|
114
112
|
@lintje-change=${e=>{e.stopPropagation(),this.form=e.detail}}
|
|
115
113
|
></lintje-radio-group>
|
|
116
114
|
<lintje-radio-group
|
|
117
115
|
label="Versturen met"
|
|
118
|
-
.options=${
|
|
116
|
+
.options=${y}
|
|
119
117
|
value=${this.sendKey}
|
|
120
118
|
@lintje-change=${e=>{e.stopPropagation(),this.setSendKey(e.detail)}}
|
|
121
119
|
></lintje-radio-group>
|
|
@@ -128,7 +126,7 @@ import{$t as e,Jt as t,St as n,Xt as r,Zt as i,et as a,in as o,it as s,lt as c,n
|
|
|
128
126
|
<dd class="lintje-chat-composer__key"><kbd class="lintje-key">Esc</kbd></dd>
|
|
129
127
|
</dl>
|
|
130
128
|
</div>
|
|
131
|
-
</div>`}renderEdit(){return
|
|
129
|
+
</div>`}renderEdit(){return n`<span id="hint" class="lintje-chat-composer__hint"></span>
|
|
132
130
|
<lintje-button variant="tertiary" size="chrome" @click=${()=>this.emitLocal(`lintje-cancel`)}
|
|
133
131
|
>Annuleren</lintje-button
|
|
134
132
|
>
|
|
@@ -138,4 +136,4 @@ import{$t as e,Jt as t,St as n,Xt as r,Zt as i,et as a,in as o,it as s,lt as c,n
|
|
|
138
136
|
?disabled=${this.draft.trim()===``}
|
|
139
137
|
@click=${()=>this.send()}
|
|
140
138
|
>Opnieuw vragen</lintje-button
|
|
141
|
-
>`}};
|
|
139
|
+
>`}};u(`lintje-chat-composer`,A);export{A as LintjeChatComposer,f as t};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{cn as e,en as t,on as n,pt as r,rn as i,tn as a}from"../chunks/base-BsZyWDre.js";import{t as o}from"./chat-composer.js";var s=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-chat-message{align-items:center;gap:var(--space-2);max-width:var(--w-message);flex-direction:row-reverse;margin-left:auto;display:flex}.lintje-chat-message__text{min-width:0;padding:var(--space-3) var(--space-4);background:var(--color-bg-subtle);font:var(--text-body);color:var(--color-text-primary);white-space:pre-wrap;overflow-wrap:anywhere}.lintje-chat-message__meta{align-items:center;gap:var(--space-2);flex-direction:row-reverse;flex:none;display:flex}.lintje-chat-message__time{font:var(--text-small);color:var(--color-text-muted)}.lintje-chat-message__term{text-decoration:underline solid var(--color-term-line);text-underline-offset:var(--space-1);text-decoration-thickness:2px}.lintje-chat-message__term.is-uncertain{text-decoration-style:dashed;text-decoration-color:var(--color-border-suggestion)}.lintje-chat-message--editing{align-items:flex-end;gap:var(--space-2);flex-direction:column;width:100%}.lintje-chat-message__head{align-items:baseline;gap:var(--space-2);display:flex}.lintje-chat-message__label{font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-muted)}.lintje-chat-message__frame{align-self:stretch}.lintje-chat-message__note{font:var(--text-small);color:var(--color-text-muted)}@media screen and (width<=767px){.lintje-chat-message{margin-left:var(--space-10);flex-direction:column;align-items:flex-end}.lintje-chat-message--editing{margin-left:0}}@media (forced-colors:active){.lintje-chat-message__text{outline-offset:-1px;outline:1px solid canvastext}}`,c=class extends t{constructor(...e){super(...e),this.text=``,this.editable=!1,this.editing=!1}static{this.styles=i(s)}static{this.properties={text:{type:String},terms:{attribute:!1},time:{type:String},editable:{type:Boolean},editing:{type:Boolean,reflect:!0},turnId:{type:String,attribute:`turn-id`},vocabulary:{attribute:!1},sources:{attribute:!1}}}async setEditing(e){this.editing=e,this.emitLocal(`lintje-editing-change`,{turnId:this.turnId??null,editing:e}),await this.updateComplete;let t=this.renderRoot.querySelector(e?`lintje-chat-composer`:`.lintje-chat-message__edit`);e&&await t?.updateComplete,(t?.shadowRoot?.querySelector(`button`)??t)?.focus()}render(){return this.editing?this.renderEditing():this.renderSent()}renderSent(){return e`<div class="lintje-chat-message">
|
|
2
2
|
<p class="lintje-chat-message__text">${this.renderText()}</p>
|
|
3
3
|
<div class="lintje-chat-message__meta">
|
|
4
|
-
${this.editable?
|
|
4
|
+
${this.editable?e`<lintje-icon-button
|
|
5
5
|
class="lintje-chat-message__edit"
|
|
6
6
|
icon="functioneel-bewerken"
|
|
7
7
|
label="Vraag bewerken"
|
|
8
8
|
variant="flat"
|
|
9
9
|
@click=${()=>this.setEditing(!0)}
|
|
10
|
-
></lintje-icon-button>`:
|
|
11
|
-
${this.time?
|
|
10
|
+
></lintje-icon-button>`:n}
|
|
11
|
+
${this.time?e`<span class="lintje-chat-message__time">${this.time}</span>`:n}
|
|
12
12
|
</div>
|
|
13
|
-
</div>`}renderText(){let
|
|
14
|
-
class=${
|
|
15
|
-
title=${
|
|
16
|
-
>${
|
|
17
|
-
>`:
|
|
13
|
+
</div>`}renderText(){let t=o(this.text,this.terms).map(t=>t.term?e`<span
|
|
14
|
+
class=${r({"lintje-chat-message__term":!0,"is-uncertain":t.term.certain===!1})}
|
|
15
|
+
title=${t.term.kind??n}
|
|
16
|
+
>${t.text}</span
|
|
17
|
+
>`:t.text);return e`<span class="visually-hidden">Jij: </span>${t}`}renderEditing(){return e`<div class="lintje-chat-message lintje-chat-message--editing">
|
|
18
18
|
<div class="lintje-chat-message__head">
|
|
19
19
|
<span class="lintje-chat-message__label">Jij, bewerken</span>
|
|
20
|
-
${this.time?
|
|
20
|
+
${this.time?e`<span class="lintje-chat-message__time">${this.time}</span>`:n}
|
|
21
21
|
</div>
|
|
22
22
|
<lintje-chat-composer
|
|
23
23
|
class="lintje-chat-message__frame"
|
|
@@ -31,4 +31,4 @@ import{$t as e,Xt as t,Zt as n,in as r,lt as i,nn as a}from"../chunks/base-DuuwE
|
|
|
31
31
|
<p class="lintje-chat-message__note">
|
|
32
32
|
Het antwoord hieronder en alles wat erna kwam worden vervangen.
|
|
33
33
|
</p>
|
|
34
|
-
</div>`}};
|
|
34
|
+
</div>`}};a(`lintje-chat-message`,c);export{c as LintjeChatMessage};
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import{
|
|
2
|
-
<span class="lintje-chat-strip__term-text">${
|
|
3
|
-
${
|
|
1
|
+
import{cn as e,en as t,gt as n,ht as r,on as i,pt as a,rn as o,tn as s}from"../chunks/base-BsZyWDre.js";import{t as c}from"../chunks/disclosure-DjLQzn9n.js";var l=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-chat-strip{border-top:1px solid var(--color-border-default);border-bottom:1px solid var(--color-border-default);color:var(--color-text-primary)}.lintje-chat-strip__row{align-items:flex-end;gap:var(--space-2) var(--space-6);padding:var(--space-2) 0;flex-wrap:wrap;display:flex}.lintje-chat-strip__items{align-items:flex-end;gap:var(--space-2) var(--space-6);flex-wrap:wrap;flex:auto;min-width:0;margin:0;display:flex}.lintje-chat-strip__item{align-items:flex-start;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.lintje-chat-strip__label{font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-muted)}.lintje-chat-strip__value{min-width:0;font:var(--text-ui);margin:0}.lintje-chat-strip__text,.lintje-chat-strip__term,.lintje-chat-strip__suggestion{min-height:var(--h-chip-field);font:var(--text-ui);color:var(--color-text-primary);align-items:center;display:inline-flex}.lintje-chat-strip__term,.lintje-chat-strip__suggestion.is-pressed{background:var(--color-term-bg);border-bottom:2px solid var(--color-term-line)}.lintje-chat-strip__term{gap:var(--space-1);padding:0 0 0 var(--space-1);position:relative}.lintje-chat-strip__select{inset:min(0px, calc((100% - var(--h-target)) / 2)) 0;opacity:0;cursor:pointer;appearance:none;width:100%;height:auto;position:absolute}.lintje-chat-strip__term:focus-within{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}.lintje-chat-strip__suggestion,.lintje-chat-strip__toggle{position:relative}.lintje-chat-strip__suggestion:after,.lintje-chat-strip__toggle:after{content:"";inset:min(0px, calc((100% - var(--h-target)) / 2)) 0;position:absolute}.lintje-chat-strip__suggestion{padding:0 var(--space-1);border-bottom:2px dashed var(--color-border-suggestion);transition:background var(--dur-hover)}.lintje-chat-strip__suggestion:hover{background:var(--color-bg-subtle)}.lintje-chat-strip__suggestion.is-pressed:hover{background:var(--color-term-bg)}.lintje-chat-strip__toggle{align-items:center;gap:var(--space-1);min-height:var(--h-chip-field);font:var(--text-small);color:var(--color-text-primary);margin-left:auto;font-weight:700;display:inline-flex}.lintje-chat-strip__details{gap:var(--space-2) var(--space-4);padding:0 0 var(--space-3);font:var(--text-ui);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.lintje-chat-strip__detail{display:contents}.lintje-chat-strip__detail-term{color:var(--color-text-muted)}.lintje-chat-strip__detail-text{color:var(--color-text-primary);margin:0}@media screen and (width<=767px){.lintje-chat-strip__row{padding:var(--space-1) 0 0;display:block}.lintje-chat-strip__items{gap:0 var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.lintje-chat-strip__item{min-height:var(--h-touch);justify-content:center}.lintje-chat-strip__item--fixed{grid-column:1/-1}.lintje-chat-strip__select,.lintje-chat-strip__suggestion:after{inset:calc(var(--space-6) * -1) 0 calc(var(--space-2) * -1)}.lintje-chat-strip__toggle{width:100%;min-height:var(--h-touch);margin:var(--space-1) 0 0;border-top:1px solid var(--color-border-default);font:var(--text-ui);justify-content:space-between;font-weight:700}.lintje-chat-strip__details{grid-template-columns:minmax(0,1fr);gap:0}.lintje-chat-strip__detail-text{margin-bottom:var(--space-2)}}`,u=class extends t{constructor(...e){super(...e),this.detailsLabel=`Berekening`,this.disabled=!1,this.open=!1}static{this.styles=[r,o(c),o(l)]}static{this.properties={items:{attribute:!1},details:{attribute:!1},detailsLabel:{type:String,attribute:`details-label`},disabled:{type:Boolean,reflect:!0},turnId:{type:String,attribute:`turn-id`},open:{type:Boolean,reflect:!0}}}change(e,t){this.emit(`lintje-strip-change`,{turnId:this.turnId??null,key:e,value:t})}updated(){for(let e of this.renderRoot.querySelectorAll(`select`))e.value=e.dataset.value??``}value(t){if(t.options&&!this.disabled){let r=t.options.find(e=>e.value===t.value);return e`<span class="lintje-chat-strip__term">
|
|
2
|
+
<span class="lintje-chat-strip__term-text">${r?.label??t.value}</span>
|
|
3
|
+
${n(`functioneel-delta-omlaag`,{size:16})}
|
|
4
4
|
<select
|
|
5
5
|
class="lintje-chat-strip__select"
|
|
6
|
-
aria-label=${
|
|
7
|
-
data-value=${
|
|
8
|
-
@change=${
|
|
6
|
+
aria-label=${t.label}
|
|
7
|
+
data-value=${t.value}
|
|
8
|
+
@change=${e=>{let n=e.target,r=n.value;n.value=t.value,r!==t.value&&this.change(t.key,r)}}
|
|
9
9
|
>
|
|
10
|
-
${
|
|
10
|
+
${t.options.map(t=>e`<option value=${t.value}>${t.label}</option>`)}
|
|
11
11
|
</select>
|
|
12
|
-
</span>`}if(
|
|
12
|
+
</span>`}if(t.pressed!==void 0&&!this.disabled)return e`<button
|
|
13
13
|
type="button"
|
|
14
|
-
class=${
|
|
15
|
-
aria-pressed=${String(
|
|
16
|
-
@click=${()=>this.change(
|
|
14
|
+
class=${a({"lintje-chat-strip__suggestion":!0,"is-pressed":t.pressed})}
|
|
15
|
+
aria-pressed=${String(t.pressed)}
|
|
16
|
+
@click=${()=>this.change(t.key,!t.pressed)}
|
|
17
17
|
>
|
|
18
|
-
${
|
|
19
|
-
</button>`;let t
|
|
20
|
-
class=${
|
|
18
|
+
${t.value}
|
|
19
|
+
</button>`;let r=t.options?.find(e=>e.value===t.value);return e`<span class="lintje-chat-strip__text">${r?.label??t.value}</span>`}render(){let t=(this.items??[]).filter(e=>!(this.disabled&&e.pressed===!1)),r=this.details??[];return!t.length&&!r.length?i:e`<div
|
|
20
|
+
class=${a({"lintje-chat-strip":!0,"lintje-disclosure":!0,"is-open":this.open})}
|
|
21
21
|
role="group"
|
|
22
22
|
aria-label="Uitgangspunten"
|
|
23
23
|
>
|
|
24
24
|
<div class="lintje-chat-strip__row">
|
|
25
25
|
<dl class="lintje-chat-strip__items">
|
|
26
|
-
${
|
|
27
|
-
class=${
|
|
26
|
+
${t.map(t=>e`<div
|
|
27
|
+
class=${a({"lintje-chat-strip__item":!0,"lintje-chat-strip__item--fixed":!t.options&&t.pressed===void 0})}
|
|
28
28
|
>
|
|
29
|
-
<dt class="lintje-chat-strip__label">${
|
|
30
|
-
<dd class="lintje-chat-strip__value">${this.value(
|
|
29
|
+
<dt class="lintje-chat-strip__label">${t.label}</dt>
|
|
30
|
+
<dd class="lintje-chat-strip__value">${this.value(t)}</dd>
|
|
31
31
|
</div>`)}
|
|
32
32
|
</dl>
|
|
33
|
-
${
|
|
33
|
+
${r.length?e`<button
|
|
34
34
|
type="button"
|
|
35
35
|
class="lintje-chat-strip__toggle"
|
|
36
36
|
aria-expanded=${String(this.open)}
|
|
@@ -38,17 +38,17 @@ import{$t as e,Xt as t,Zt as n,dt as r,ft as i,in as a,lt as o,nn as s}from"../c
|
|
|
38
38
|
@click=${()=>{this.open=!this.open}}
|
|
39
39
|
>
|
|
40
40
|
<span>${this.detailsLabel}</span>
|
|
41
|
-
${
|
|
42
|
-
</button>`:
|
|
41
|
+
${n(`functioneel-delta-omlaag`,{size:16,className:`lintje-disclosure__chevron`})}
|
|
42
|
+
</button>`:i}
|
|
43
43
|
</div>
|
|
44
|
-
${
|
|
44
|
+
${r.length?e`<div class="lintje-disclosure__body">
|
|
45
45
|
<div id="details" class="lintje-disclosure__body-inner">
|
|
46
46
|
<dl class="lintje-chat-strip__details">
|
|
47
|
-
${
|
|
48
|
-
<dt class="lintje-chat-strip__detail-term">${
|
|
49
|
-
<dd class="lintje-chat-strip__detail-text">${
|
|
47
|
+
${r.map(t=>e`<div class="lintje-chat-strip__detail">
|
|
48
|
+
<dt class="lintje-chat-strip__detail-term">${t.term}</dt>
|
|
49
|
+
<dd class="lintje-chat-strip__detail-text">${t.description}</dd>
|
|
50
50
|
</div>`)}
|
|
51
51
|
</dl>
|
|
52
52
|
</div>
|
|
53
|
-
</div>`:
|
|
54
|
-
</div>`}};
|
|
53
|
+
</div>`:i}
|
|
54
|
+
</div>`}};s(`lintje-chat-strip`,u);export{u as LintjeChatStrip};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{cn as e,ct as t,en as n,on as r,rn as i,tn as a}from"../chunks/base-BsZyWDre.js";var o=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-chat-suggestions{align-items:flex-end;gap:var(--space-2);max-width:var(--w-message);flex-direction:column;margin-left:auto;display:flex}.lintje-chat-suggestions__label{font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-muted)}.lintje-chat-suggestions__list{align-items:flex-end;gap:var(--space-2);flex-direction:column;display:flex}.lintje-chat-suggestions--choice .lintje-chat-suggestions__list{flex-flow:wrap;justify-content:flex-end}.lintje-chat-suggestions__item{min-height:var(--h-touch);padding:var(--space-2) var(--space-4);font:var(--text-body);color:var(--color-text-primary);text-align:left;transition:background var(--dur-hover)}.lintje-chat-suggestions__item:hover{background:var(--color-bg-subtle)}.lintje-chat-suggestions--suggestion .lintje-chat-suggestions__item{border:1px dashed var(--color-border-suggestion)}.lintje-chat-suggestions--choice .lintje-chat-suggestions__item{background:var(--color-bg-surface);border:1px solid var(--color-border-choice)}.lintje-chat-suggestions--choice .lintje-chat-suggestions__item:hover{background:var(--color-bg-subtle)}.lintje-chat-suggestions__hint{font:var(--text-small);color:var(--color-text-muted)}.lintje-chat-suggestions--start{align-items:flex-start;max-width:none;margin-left:0}.lintje-chat-suggestions--start .lintje-chat-suggestions__list{flex-flow:wrap;justify-content:flex-start;align-items:stretch}@media screen and (width<=767px){.lintje-chat-suggestions{margin-left:var(--space-10)}.lintje-chat-suggestions--start{margin-left:0}}`,s=class extends n{constructor(...e){super(...e),this.kind=`suggestion`,this.align=`end`}static{this.styles=[i(o),i(t)]}static{this.properties={label:{type:String},hint:{type:String},kind:{type:String,reflect:!0},align:{type:String,reflect:!0},items:{attribute:!1},turnId:{type:String,attribute:`turn-id`}}}select(e){this.emit(`lintje-suggestion-select`,{turnId:this.turnId??null,kind:this.kind,label:e.label,value:e.value??e.label})}render(){let t=this.items??[];return t.length?e`<div
|
|
2
2
|
class="lintje-chat-suggestions lintje-chat-suggestions--${this.kind} lintje-chat-suggestions--${this.align}"
|
|
3
3
|
role="group"
|
|
4
|
-
aria-labelledby=${this.label?`label`:
|
|
5
|
-
aria-label=${this.label?
|
|
4
|
+
aria-labelledby=${this.label?`label`:r}
|
|
5
|
+
aria-label=${this.label?r:`Suggesties`}
|
|
6
6
|
>
|
|
7
|
-
${this.label?
|
|
7
|
+
${this.label?e`<span id="label" class="lintje-chat-suggestions__label">${this.label}</span>`:r}
|
|
8
8
|
<div class="lintje-chat-suggestions__list">
|
|
9
|
-
${
|
|
9
|
+
${t.map(t=>e`<button
|
|
10
10
|
type="button"
|
|
11
11
|
class="lintje-chat-suggestions__item"
|
|
12
|
-
@click=${()=>this.select(
|
|
12
|
+
@click=${()=>this.select(t)}
|
|
13
13
|
>
|
|
14
|
-
${
|
|
14
|
+
${t.label}
|
|
15
15
|
</button>`)}
|
|
16
16
|
</div>
|
|
17
|
-
${this.hint?
|
|
18
|
-
</div>`:
|
|
17
|
+
${this.hint?e`<p class="lintje-chat-suggestions__hint">${this.hint}</p>`:r}
|
|
18
|
+
</div>`:r}};a(`lintje-chat-suggestions`,s);export{s as LintjeChatSuggestions};
|