@oslokommune/punkt-elements 19.0.5 → 19.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/alert-DsGNGcgd.cjs +40 -0
  3. package/dist/{alert-DaXpwnzT.js → alert-vIaasUjb.js} +23 -22
  4. package/dist/{calendar-BuSfyUR9.cjs → calendar-CtfdBqJN.cjs} +1 -1
  5. package/dist/{calendar-KUQ1dFeX.js → calendar-DWSW_GeN.js} +22 -22
  6. package/dist/{combobox-Bg98cVwV.js → combobox-DHL_CGYv.js} +4 -3
  7. package/dist/combobox-nqNZDvBR.cjs +139 -0
  8. package/dist/components/alert/alert.d.ts +1 -1
  9. package/dist/{datepicker-Ct4dbs4e.js → datepicker-BWp2PM9S.js} +2 -2
  10. package/dist/{datepicker-BtEZMsWH.cjs → datepicker-DvO3w0eM.cjs} +1 -1
  11. package/dist/{fileupload-BVAgrofy.cjs → fileupload-DDLvQaSS.cjs} +1 -1
  12. package/dist/{fileupload-Dqf_94m2.js → fileupload-DbtTD1aU.js} +2 -2
  13. package/dist/{footer-XrX6LFHY.cjs → footer-CupUAe8d.cjs} +1 -1
  14. package/dist/{header-fkKhLsyE.js → header-BxgtAiNM.js} +36 -36
  15. package/dist/{header-menu-DYZsigfH.cjs → header-menu-DGywRJCx.cjs} +1 -1
  16. package/dist/{header-DMMt5FtF.cjs → header-wdEiBTI9.cjs} +14 -14
  17. package/dist/{input-wrapper-CvFMiqIt.js → input-wrapper-B5GdwzAM.js} +8 -7
  18. package/dist/input-wrapper-BmPdpY4N.cjs +59 -0
  19. package/dist/{messagebox-CdNMgTz4.cjs → messagebox-D2xvSYWI.cjs} +1 -1
  20. package/dist/{messagebox-D0qxveug.js → messagebox-E8W7RyAJ.js} +1 -1
  21. package/dist/pkt-alert.cjs +1 -1
  22. package/dist/pkt-alert.js +1 -1
  23. package/dist/pkt-calendar.cjs +1 -1
  24. package/dist/pkt-calendar.js +1 -1
  25. package/dist/pkt-combobox.cjs +1 -1
  26. package/dist/pkt-combobox.js +1 -1
  27. package/dist/pkt-datepicker.cjs +1 -1
  28. package/dist/pkt-datepicker.js +1 -1
  29. package/dist/pkt-fileupload.cjs +1 -1
  30. package/dist/pkt-fileupload.js +1 -1
  31. package/dist/pkt-footer.cjs +1 -1
  32. package/dist/pkt-footer.js +1 -1
  33. package/dist/pkt-header-menu.cjs +1 -1
  34. package/dist/pkt-header-menu.js +1 -1
  35. package/dist/pkt-header.cjs +1 -1
  36. package/dist/pkt-header.js +1 -1
  37. package/dist/pkt-index.cjs +1 -1
  38. package/dist/pkt-index.js +22 -22
  39. package/dist/pkt-input-wrapper.cjs +1 -1
  40. package/dist/pkt-input-wrapper.js +1 -1
  41. package/dist/pkt-messagebox.cjs +1 -1
  42. package/dist/pkt-messagebox.js +1 -1
  43. package/dist/pkt-select.cjs +1 -1
  44. package/dist/pkt-select.js +1 -1
  45. package/dist/pkt-textarea.cjs +1 -1
  46. package/dist/pkt-textarea.js +1 -1
  47. package/dist/pkt-textinput.cjs +1 -1
  48. package/dist/pkt-textinput.js +1 -1
  49. package/dist/pkt-timepicker.cjs +1 -1
  50. package/dist/pkt-timepicker.js +1 -1
  51. package/dist/{select-B4gbFOil.js → select-BhK8veJn.js} +1 -1
  52. package/dist/{select-oIF7UVvV.cjs → select-CDoA2rpC.cjs} +1 -1
  53. package/dist/shared-types/alert.d.ts +6 -0
  54. package/dist/shared-types/footer.d.ts +14 -2
  55. package/dist/shared-types/index.d.ts +1 -1
  56. package/dist/{textarea-DNFX958g.cjs → textarea-BLVuKEng.cjs} +1 -1
  57. package/dist/{textarea-DGSMKcqK.js → textarea-sulH-Yk7.js} +1 -1
  58. package/dist/{textinput-Bzkdo2mN.cjs → textinput-CSrBua2N.cjs} +1 -1
  59. package/dist/{textinput-DpLeElI_.js → textinput-Di2lAf2R.js} +1 -1
  60. package/dist/{timepicker-CCNQeX5Q.js → timepicker-BaDGjuOR.js} +1 -1
  61. package/dist/{timepicker-DCzhlRuc.cjs → timepicker-Iq1-vWRn.cjs} +1 -1
  62. package/package.json +2 -2
  63. package/src/components/alert/alert.ts +2 -2
  64. package/dist/alert-Cfr6t5uz.cjs +0 -40
  65. package/dist/combobox-DzK6P9l1.cjs +0 -139
  66. package/dist/input-wrapper-BIrQijWT.cjs +0 -59
  67. package/dist/{footer-Bf6RFuia.js → footer-UT8MbnCT.js} +1 -1
  68. package/dist/{header-menu-CUHrJCvx.js → header-menu-CTEPH4St.js} +2 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,11 @@ og skriver commits ca etter [Conventional Commits](https://conventionalcommits.o
5
5
 
6
6
  ---
7
7
 
8
+ ## [19.2.0](https://github.com/oslokommune/punkt/compare/19.1.0...19.2.0) (2026-09-28)
9
+
10
+ ---
11
+
12
+
8
13
  ## [19.0.5](https://github.com/oslokommune/punkt/compare/19.0.4...19.0.5) (2026-09-22)
9
14
 
10
15
  ### ⚠ BREAKING CHANGES
@@ -0,0 +1,40 @@
1
+ const e=require("./element-CewjrA4g.cjs"),t=require("./class-map-B0FX3YsK.cjs"),n=require("./if-defined-CjRKmMQs.cjs"),r=require("./format-B8meU8Tm.cjs"),i=require("./element-with-slot-MCvSBwUv.cjs"),a=require("./classutils-CbklAJDe.cjs"),o=require("./define-component-spec-DBNd2FJY.cjs");require("./icon-Clz68-Kz.cjs"),require("./button-CCR4eyt_.cjs");var s=[`off`,`polite`,`assertive`],c=[`info`,`success`,`warning`,`error`],l=[`medium`,`small`,`xsmall`],u={compact:!1},d=o.t({name:`pkt-alert`,react:`PktAlert`,"css-class":`pkt-alert`,"dark-mode":!0,isElement:!0,isPureReact:!0,events:{onClose:{reactOnly:!0,description:`React: Klikk-event for 'Lukk'-knappen`},close:{elementsOnly:!0,description:`Elements: Klikk-event for 'Lukk'-knappen`}},props:{title:{name:`Tittel`,description:`Tittelen som vises øverst i på meldingen`,type:`string`,category:`contents`},skin:{name:`Utseende`,description:`Hvordan type melding er dette?`,type:[...c],default:`info`,category:`ui`},date:{name:`Sist oppdatert`,description:`Dato som vises nederst i på meldingen`,type:`string`,category:`contents`},ariaLive:{name:`aria-live`,description:`Hvordan skal skjermleseren lese opp meldingen?`,type:[...s],default:`polite`,category:`accessibility`},size:{name:`Størrelse`,description:`Endrer størrelsen på ulike elementer i alerten.`,type:[...l],default:`medium`,category:`ui`},closeAlert:{name:`Vis 'Lukk'-knapp`,description:`Viser 'Lukk'-knappen`,type:`boolean`,default:!1,category:`ui`},compact:{name:`Kompakt`,description:`Kompakt visning av alerten.`,deprecated:"Bruk `size` i stedet; uten eksplisitt `size` gir compact størrelsen 'small'.",type:`boolean`,category:`ui`,default:u.compact}},slots:{default:{description:`Innholdet i meldingen`}}}),f=class extends i.t{constructor(){super(),this.compact=u.compact,this.title=``,this.skin=d.props.skin.default,this.ariaLive=d.props.ariaLive.default,this.ariaLiveAttr=null,this.closeAlert=d.props.closeAlert.default,this.date=null,this.role=`status`,this._hostId=null,this._isClosed=!1,this.close=e=>{this._isClosed=!0,this.dispatchEvent(new CustomEvent(`close`,{detail:{origin:e},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent(`on-close`,{detail:{origin:e},bubbles:!0,composed:!0}))},this._isClosed=!1}connectedCallback(){super.connectedCallback(),this.ariaLiveAttr=this.getAttribute(`aria-live`)||this.ariaLive}willUpdate(e){super.willUpdate(e);let t=this.getAttribute(`id`);t&&(this._hostId=t,this.removeAttribute(`id`))}attributeChangedCallback(e,t,n){e===`ariaLive`&&(this.ariaLiveAttr=n),super.attributeChangedCallback(e,t,n)}updated(e){super.updated(e),e.has(`ariaLive`)&&e.get(`ariaLive`)!==void 0&&(this.ariaLiveAttr=this.ariaLive),e.has(`_isClosed`)&&a.t(this,`pkt-hide`,this._isClosed)}render(){let a=this.size??(this.compact?`small`:`medium`),o={"pkt-alert":!0,[`pkt-alert--${a}`]:!0,[`pkt-alert--${this.skin}`]:!0,"pkt-hide":this._isClosed},s={"pkt-alert__grid":!0,"pkt-alert__noTitle":!this.title,"pkt-alert__noDate":!this.date};return e._`
2
+ <div
3
+ class=${t.t(o)}
4
+ id=${n.t(this._hostId||void 0)}
5
+ aria-live=${this.ariaLiveAttr}
6
+ role=${this.role}
7
+ >
8
+ <div class=${t.t(s)}>
9
+ <pkt-icon
10
+ class="pkt-alert__icon"
11
+ aria-hidden="true"
12
+ name=${this.skin===`info`?`alert-information`:`alert-${this.skin}`}
13
+ ></pkt-icon>
14
+
15
+ ${this.closeAlert?e._`
16
+ <div class="pkt-alert__close">
17
+ <pkt-button
18
+ tabindex="0"
19
+ aria-label="close"
20
+ size=${a}
21
+ type="button"
22
+ skin="tertiary"
23
+ iconName="close"
24
+ variant="icon-only"
25
+ @click=${this.close}
26
+ >
27
+ <span class="sr-only">${this.pktStrings.get(`generic`).close}</span>
28
+ </pkt-button>
29
+ </div>
30
+ `:e.h}
31
+ ${this.title?e._`<div class="pkt-alert__title">${this.title}</div>`:e.h}
32
+
33
+ <div class="pkt-alert__text">${i.r(this)}</div>
34
+
35
+ ${this.date?e._`<div class="pkt-alert__date">
36
+ ${r.t(this.pktStrings.get(`alert`).lastUpdated,{date:this.date})}
37
+ </div>`:e.h}
38
+ </div>
39
+ </div>
40
+ `}};e.n([e.u({type:Boolean,reflect:!1})],f.prototype,`compact`,void 0),e.n([e.u({type:String,reflect:!0})],f.prototype,`title`,void 0),e.n([e.u({type:String,reflect:!0})],f.prototype,`skin`,void 0),e.n([e.u({type:String})],f.prototype,`ariaLive`,void 0),e.n([e.u({type:String,reflect:!0,attribute:`aria-live`})],f.prototype,`ariaLiveAttr`,void 0),e.n([e.u({type:Boolean,reflect:!0})],f.prototype,`closeAlert`,void 0),e.n([e.u({type:String,reflect:!0})],f.prototype,`date`,void 0),e.n([e.u({type:String})],f.prototype,`role`,void 0),e.n([e.l()],f.prototype,`_hostId`,void 0),e.n([e.u({type:String,attribute:`size`})],f.prototype,`size`,void 0),e.n([e.l()],f.prototype,`_isClosed`,void 0);try{e.d(`pkt-alert`)(f)}catch{console.warn(`Forsøker å definere <pkt-alert>, men den er allerede definert`)}var p=f;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});
@@ -21,7 +21,7 @@ var p = [
21
21
  "medium",
22
22
  "small",
23
23
  "xsmall"
24
- ], g = f({
24
+ ], g = { compact: !1 }, _ = f({
25
25
  name: "pkt-alert",
26
26
  react: "PktAlert",
27
27
  "css-class": "pkt-alert",
@@ -35,7 +35,7 @@ var p = [
35
35
  },
36
36
  close: {
37
37
  elementsOnly: !0,
38
- description: "Vue: Klikk-event for 'Lukk'-knappen"
38
+ description: "Elements: Klikk-event for 'Lukk'-knappen"
39
39
  }
40
40
  },
41
41
  props: {
@@ -78,19 +78,20 @@ var p = [
78
78
  type: "boolean",
79
79
  default: !1,
80
80
  category: "ui"
81
+ },
82
+ compact: {
83
+ name: "Kompakt",
84
+ description: "Kompakt visning av alerten.",
85
+ deprecated: "Bruk `size` i stedet; uten eksplisitt `size` gir compact størrelsen 'small'.",
86
+ type: "boolean",
87
+ category: "ui",
88
+ default: g.compact
81
89
  }
82
90
  },
83
- slots: { default: { description: "Innholdet i meldingen" } },
84
- deprecated: { compact: {
85
- name: "Kompakt (deprecated)",
86
- description: "Bruk `size` i stedet; uten eksplisitt `size` gir compact størrelsen 'small'.",
87
- type: "boolean",
88
- category: "ui",
89
- default: !1
90
- } }
91
- }), _ = class extends u {
91
+ slots: { default: { description: "Innholdet i meldingen" } }
92
+ }), v = class extends u {
92
93
  constructor() {
93
- super(), this.compact = g.deprecated.compact.default, this.title = "", this.skin = g.props.skin.default, this.ariaLive = g.props.ariaLive.default, this.ariaLiveAttr = null, this.closeAlert = g.props.closeAlert.default, this.date = null, this.role = "status", this._hostId = null, this._isClosed = !1, this.close = (e) => {
94
+ super(), this.compact = g.compact, this.title = "", this.skin = _.props.skin.default, this.ariaLive = _.props.ariaLive.default, this.ariaLiveAttr = null, this.closeAlert = _.props.closeAlert.default, this.date = null, this.role = "status", this._hostId = null, this._isClosed = !1, this.close = (e) => {
94
95
  this._isClosed = !0, this.dispatchEvent(new CustomEvent("close", {
95
96
  detail: { origin: e },
96
97
  bubbles: !0,
@@ -172,33 +173,33 @@ var p = [
172
173
  i([a({
173
174
  type: Boolean,
174
175
  reflect: !1
175
- })], _.prototype, "compact", void 0), i([a({
176
+ })], v.prototype, "compact", void 0), i([a({
176
177
  type: String,
177
178
  reflect: !0
178
- })], _.prototype, "title", void 0), i([a({
179
+ })], v.prototype, "title", void 0), i([a({
179
180
  type: String,
180
181
  reflect: !0
181
- })], _.prototype, "skin", void 0), i([a({ type: String })], _.prototype, "ariaLive", void 0), i([a({
182
+ })], v.prototype, "skin", void 0), i([a({ type: String })], v.prototype, "ariaLive", void 0), i([a({
182
183
  type: String,
183
184
  reflect: !0,
184
185
  attribute: "aria-live"
185
- })], _.prototype, "ariaLiveAttr", void 0), i([a({
186
+ })], v.prototype, "ariaLiveAttr", void 0), i([a({
186
187
  type: Boolean,
187
188
  reflect: !0
188
- })], _.prototype, "closeAlert", void 0), i([a({
189
+ })], v.prototype, "closeAlert", void 0), i([a({
189
190
  type: String,
190
191
  reflect: !0
191
- })], _.prototype, "date", void 0), i([a({ type: String })], _.prototype, "role", void 0), i([r()], _.prototype, "_hostId", void 0), i([a({
192
+ })], v.prototype, "date", void 0), i([a({ type: String })], v.prototype, "role", void 0), i([r()], v.prototype, "_hostId", void 0), i([a({
192
193
  type: String,
193
194
  attribute: "size"
194
- })], _.prototype, "size", void 0), i([r()], _.prototype, "_isClosed", void 0);
195
+ })], v.prototype, "size", void 0), i([r()], v.prototype, "_isClosed", void 0);
195
196
  try {
196
- t("pkt-alert")(_);
197
+ t("pkt-alert")(v);
197
198
  } catch {
198
199
  console.warn("Forsøker å definere <pkt-alert>, men den er allerede definert");
199
200
  }
200
201
  //#endregion
201
202
  //#region src/components/alert/index.ts
202
- var v = _;
203
+ var y = v;
203
204
  //#endregion
204
- export { _ as n, v as t };
205
+ export { v as n, y as t };
@@ -1,4 +1,4 @@
1
- const e=require("./element-CewjrA4g.cjs"),t=require("./class-map-B0FX3YsK.cjs");require("./icon-Clz68-Kz.cjs");const n=require("./converters-BJ9Fe0kW.cjs");function r(e,t,r){let i=n.y(e,r?.in);return isNaN(t)?n.b(r?.in||e,NaN):(t&&i.setDate(i.getDate()+t),i)}function i(e,t){let[r,i]=n.v(e,t.start,t.end);return{start:r,end:i}}function a(e,t){let{start:r,end:a}=i(t?.in,e),o=+r>+a,s=o?+r:+a,c=o?a:r;c.setHours(0,0,0,0);let l=t?.step??1;if(!l)return[];l<0&&(l=-l,o=!o);let u=[];for(;+c<=s;)u.push(n.b(r,c)),c.setDate(c.getDate()+l),c.setHours(0,0,0,0);return o?u.reverse():u}function o(e,t){let r=n.y(e,t?.in).getDay();return r===0?7:r}var s={multiple:!1,maxMultiple:0,range:!1,earliest:null,latest:null,weeknumbers:!1,withcontrols:!1};function c(e,t){let r=(t.excludedates??[]).map(e=>typeof e==`string`?e:n.a(e));return!n.l(e,t.earliest,t.latest,r,t.excludeweekdays??[])}function l(e,t,n,r){return!!(c(e,n)||!t&&r.multiple&&r.maxMultiple>0&&r.selectedCount>=r.maxMultiple)}function u(e,t,r){let i=n.p(e,t,0);return!(r&&n.d(r)>i)}function d(e,t,r){let i=n.p(t===11?e+1:e,t===11?0:t+1,1);return!(r&&n.d(r)<i)}function f(e,t){let r=n.p(e,t,1),i=n.p(e,t+1,0),a=(r.getDay()+6)%7,o=i.getDate();return{firstDayOfMonth:r,lastDayOfMonth:i,startingDay:a,numDays:o,numRows:Math.ceil((o+a)/7),numDaysPrevMonth:n.p(e,t,0).getDate(),initialWeek:n._(r)}}function p(e,t,n,r){let{startingDay:i,numDays:a}=r;return e===0&&t<i?`prev-month`:n>a?`next-month`:`current-month`}function m(e,t,n,r){let{startingDay:i,numDaysPrevMonth:a,numDays:o}=r;return e===`prev-month`?a-(i-t-1):e===`next-month`?n-o:n}function h(e){return typeof e==`string`&&(e=e.split(`,`)),e.length===1&&e[0]===``?[]:e.map(e=>n.m(e))}function g(e,t){let r=a({start:e,end:t}),i={};if(Array.isArray(r)&&r.length)for(let a=0;a<r.length;a++){let o=r[a],s=o>e&&o<t;i[n.a(o)]=s}return i}function _(e,t,n,r){if(t.length!==1)return!0;let i=a({start:t[0],end:e});if(!Array.isArray(i)||!i.length)return!0;for(let a=0;a<i.length;a++){for(let r of n??[])if(r>t[0]&&r<e)return!1;if((r??[]).includes(o(i[a]).toString()))return!1}return!0}function v(e,t){let r=n.a(e);return t.includes(r)?t:[...t,r]}function y(e,t){let r=n.a(e),i=t.indexOf(r);if(i===-1)return t;if(t.length===1)return[];let a=[...t];return a.splice(i,1),a}function b(e,t,r){let i=n.a(e);return t.includes(i)?y(e,t):r>0&&t.length>=r?t:v(e,t)}function x(e,t,r){let i=n.a(e),a=h(t);return t.includes(i)?t.indexOf(i)===0?[]:y(e,t):t.length>1||t.length===1&&(!_(e,a,r.excludedates,r.excludeweekdays)||a[0]>e)?[i]:v(e,t)}var S={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7};function C(e){let t=e.nodeName;return t===`INPUT`||t===`SELECT`||t===`BUTTON`&&!e.dataset?.date}function w(e,t,i){let a=r(e,t);if(!a)return null;let o=i(`button[data-date="${n.a(a)}"]`);for(;o instanceof HTMLButtonElement&&o.dataset.disabled;)if(a=r(a,t),o=i(`button[data-date="${n.a(a)}"]`),!o)return null;return a}function T(e){return S[e]??null}var E=class extends e.t{constructor(...e){super(...e),this.selected=[],this.multiple=s.multiple,this.maxMultiple=s.maxMultiple,this.range=s.range,this.earliest=s.earliest,this.latest=s.latest,this.excludedates=[],this.excludeweekdays=[],this.weeknumbers=s.weeknumbers,this.withcontrols=s.withcontrols,this.currentmonth=null,this.today=null,this._selected=[],this.inRange={},this.rangeHovered=null,this.year=0,this.month=0,this.week=0,this.currentmonthtouched=!1,this.focusedDate=null,this.selectableDates=[],this.tabIndexSet=0}get calendarStrings(){let e=this.pktStrings.get(`dates`),t=this.pktStrings.get(`calendar`);return{daysShort:this.dayStrings??e.daysShort,days:this.dayStringsLong??e.days,months:this.monthStrings??e.months,week:this.weekString??e.week,prevMonth:this.prevMonthString??t.prevMonth,nextMonth:this.nextMonthString??t.nextMonth}}get todayDate(){return this.today?n.m(this.today):n.g()}firstUpdated(e){this.addEventListener(`keydown`,this.handleKeydown)}disconnectedCallback(){this.removeEventListener(`keydown`,this.handleKeydown),super.disconnectedCallback()}updated(e){super.updated(e),e.has(`selected`)&&this.convertSelected()}convertSelected(){typeof this.selected==`string`&&(this.selected=this.selected.split(`,`)),this.selected.length===1&&this.selected[0]===``&&(this.selected=[]),this._selected=h(this.selected),this.range&&this.selected.length===2&&(this.inRange=g(this._selected[0],this._selected[1])),this.setCurrentMonth()}setCurrentMonth(){if(this.currentmonth===null&&!this.currentmonthtouched&&(this.currentmonthtouched=!0),this.selected.length&&this.selected[0]!==``){let e=n.m(this.selected[this.selected.length-1]);this.currentmonth=isNaN(e.getTime())?n.f(this.todayDate):e}else this.currentmonth===null&&(this.currentmonth=n.f(this.todayDate));(!this.currentmonth||isNaN(this.currentmonth.getTime()))&&(this.currentmonth=n.f(this.todayDate)),this.year=this.currentmonth.getFullYear(),this.month=this.currentmonth.getMonth()}handleKeydown(e){let t=T(e.key);t!==null&&this.handleArrowKey(e,t)}handleArrowKey(e,t){let r=e.target;if(C(r))return;if(e.preventDefault(),!this.focusedDate){this.focusOnCurrentDate();return}let i=w(this.focusedDate?n.d(this.focusedDate):n.p(this.year,this.month,1),t,this.querySelector.bind(this));if(i){let e=this.querySelector(`button[data-date="${n.a(i)}"]`);e instanceof HTMLButtonElement&&!e.dataset.disabled&&(this.focusedDate=n.a(i),e.focus())}}render(){return e._`
1
+ const e=require("./element-CewjrA4g.cjs"),t=require("./class-map-B0FX3YsK.cjs");require("./icon-Clz68-Kz.cjs");const n=require("./converters-BJ9Fe0kW.cjs");var r={multiple:!1,maxMultiple:0,range:!1,earliest:null,latest:null,weeknumbers:!1,withcontrols:!1};function i(e,t,r){let i=n.y(e,r?.in);return isNaN(t)?n.b(r?.in||e,NaN):(t&&i.setDate(i.getDate()+t),i)}function a(e,t){let[r,i]=n.v(e,t.start,t.end);return{start:r,end:i}}function o(e,t){let{start:r,end:i}=a(t?.in,e),o=+r>+i,s=o?+r:+i,c=o?i:r;c.setHours(0,0,0,0);let l=t?.step??1;if(!l)return[];l<0&&(l=-l,o=!o);let u=[];for(;+c<=s;)u.push(n.b(r,c)),c.setDate(c.getDate()+l),c.setHours(0,0,0,0);return o?u.reverse():u}function s(e,t){let r=n.y(e,t?.in).getDay();return r===0?7:r}function c(e,t){let r=(t.excludedates??[]).map(e=>typeof e==`string`?e:n.a(e));return!n.l(e,t.earliest,t.latest,r,t.excludeweekdays??[])}function l(e,t,n,r){return!!(c(e,n)||!t&&r.multiple&&r.maxMultiple>0&&r.selectedCount>=r.maxMultiple)}function u(e,t,r){let i=n.p(e,t,0);return!(r&&n.d(r)>i)}function d(e,t,r){let i=n.p(t===11?e+1:e,t===11?0:t+1,1);return!(r&&n.d(r)<i)}function f(e,t){let r=n.p(e,t,1),i=n.p(e,t+1,0),a=(r.getDay()+6)%7,o=i.getDate();return{firstDayOfMonth:r,lastDayOfMonth:i,startingDay:a,numDays:o,numRows:Math.ceil((o+a)/7),numDaysPrevMonth:n.p(e,t,0).getDate(),initialWeek:n._(r)}}function p(e,t,n,r){let{startingDay:i,numDays:a}=r;return e===0&&t<i?`prev-month`:n>a?`next-month`:`current-month`}function m(e,t,n,r){let{startingDay:i,numDaysPrevMonth:a,numDays:o}=r;return e===`prev-month`?a-(i-t-1):e===`next-month`?n-o:n}function h(e){return typeof e==`string`&&(e=e.split(`,`)),e.length===1&&e[0]===``?[]:e.map(e=>n.m(e))}function g(e,t){let r=o({start:e,end:t}),i={};if(Array.isArray(r)&&r.length)for(let a=0;a<r.length;a++){let o=r[a],s=o>e&&o<t;i[n.a(o)]=s}return i}function _(e,t,n,r){if(t.length!==1)return!0;let i=o({start:t[0],end:e});if(!Array.isArray(i)||!i.length)return!0;for(let a=0;a<i.length;a++){for(let r of n??[])if(r>t[0]&&r<e)return!1;if((r??[]).includes(s(i[a]).toString()))return!1}return!0}function v(e,t){let r=n.a(e);return t.includes(r)?t:[...t,r]}function y(e,t){let r=n.a(e),i=t.indexOf(r);if(i===-1)return t;if(t.length===1)return[];let a=[...t];return a.splice(i,1),a}function b(e,t,r){let i=n.a(e);return t.includes(i)?y(e,t):r>0&&t.length>=r?t:v(e,t)}function x(e,t,r){let i=n.a(e),a=h(t);return t.includes(i)?t.indexOf(i)===0?[]:y(e,t):t.length>1||t.length===1&&(!_(e,a,r.excludedates,r.excludeweekdays)||a[0]>e)?[i]:v(e,t)}var S={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7};function C(e){let t=e.nodeName;return t===`INPUT`||t===`SELECT`||t===`BUTTON`&&!e.dataset?.date}function w(e,t,r){let a=i(e,t);if(!a)return null;let o=r(`button[data-date="${n.a(a)}"]`);for(;o instanceof HTMLButtonElement&&o.dataset.disabled;)if(a=i(a,t),o=r(`button[data-date="${n.a(a)}"]`),!o)return null;return a}function T(e){return S[e]??null}var E=class extends e.t{constructor(...e){super(...e),this.selected=[],this.multiple=r.multiple,this.maxMultiple=r.maxMultiple,this.range=r.range,this.earliest=r.earliest,this.latest=r.latest,this.excludedates=[],this.excludeweekdays=[],this.weeknumbers=r.weeknumbers,this.withcontrols=r.withcontrols,this.currentmonth=null,this.today=null,this._selected=[],this.inRange={},this.rangeHovered=null,this.year=0,this.month=0,this.week=0,this.currentmonthtouched=!1,this.focusedDate=null,this.selectableDates=[],this.tabIndexSet=0}get calendarStrings(){let e=this.pktStrings.get(`dates`),t=this.pktStrings.get(`calendar`);return{daysShort:this.dayStrings??e.daysShort,days:this.dayStringsLong??e.days,months:this.monthStrings??e.months,week:this.weekString??e.week,prevMonth:this.prevMonthString??t.prevMonth,nextMonth:this.nextMonthString??t.nextMonth}}get todayDate(){return this.today?n.m(this.today):n.g()}firstUpdated(e){this.addEventListener(`keydown`,this.handleKeydown)}disconnectedCallback(){this.removeEventListener(`keydown`,this.handleKeydown),super.disconnectedCallback()}updated(e){super.updated(e),e.has(`selected`)&&this.convertSelected()}convertSelected(){typeof this.selected==`string`&&(this.selected=this.selected.split(`,`)),this.selected.length===1&&this.selected[0]===``&&(this.selected=[]),this._selected=h(this.selected),this.range&&this.selected.length===2&&(this.inRange=g(this._selected[0],this._selected[1])),this.setCurrentMonth()}setCurrentMonth(){if(this.currentmonth===null&&!this.currentmonthtouched&&(this.currentmonthtouched=!0),this.selected.length&&this.selected[0]!==``){let e=n.m(this.selected[this.selected.length-1]);this.currentmonth=isNaN(e.getTime())?n.f(this.todayDate):e}else this.currentmonth===null&&(this.currentmonth=n.f(this.todayDate));(!this.currentmonth||isNaN(this.currentmonth.getTime()))&&(this.currentmonth=n.f(this.todayDate)),this.year=this.currentmonth.getFullYear(),this.month=this.currentmonth.getMonth()}handleKeydown(e){let t=T(e.key);t!==null&&this.handleArrowKey(e,t)}handleArrowKey(e,t){let r=e.target;if(C(r))return;if(e.preventDefault(),!this.focusedDate){this.focusOnCurrentDate();return}let i=w(this.focusedDate?n.d(this.focusedDate):n.p(this.year,this.month,1),t,this.querySelector.bind(this));if(i){let e=this.querySelector(`button[data-date="${n.a(i)}"]`);e instanceof HTMLButtonElement&&!e.dataset.disabled&&(this.focusedDate=n.a(i),e.focus())}}render(){return e._`
2
2
  <div
3
3
  class="pkt-calendar ${this.weeknumbers?`pkt-cal-weeknumbers`:``}"
4
4
  @focusout=${this.closeEvent}
@@ -2,14 +2,25 @@ import { _ as e, d as t, h as n, l as r, n as i, t as a, u as o } from "./elemen
2
2
  import { t as s } from "./class-map-D5GHsely.js";
3
3
  import "./icon-B2v30QUk.js";
4
4
  import { _ as c, a as l, b as u, d, f, g as p, l as m, m as h, o as g, p as _, t as v, v as y, y as b } from "./converters-CkjLSYpa.js";
5
+ //#region ../../shared-types/calendar.ts
6
+ var x = {
7
+ multiple: !1,
8
+ maxMultiple: 0,
9
+ range: !1,
10
+ earliest: null,
11
+ latest: null,
12
+ weeknumbers: !1,
13
+ withcontrols: !1
14
+ };
15
+ //#endregion
5
16
  //#region ../../node_modules/date-fns/addDays.js
6
- function x(e, t, n) {
17
+ function S(e, t, n) {
7
18
  let r = b(e, n?.in);
8
19
  return isNaN(t) ? u(n?.in || e, NaN) : (t && r.setDate(r.getDate() + t), r);
9
20
  }
10
21
  //#endregion
11
22
  //#region ../../node_modules/date-fns/_lib/normalizeInterval.js
12
- function S(e, t) {
23
+ function C(e, t) {
13
24
  let [n, r] = y(e, t.start, t.end);
14
25
  return {
15
26
  start: n,
@@ -18,8 +29,8 @@ function S(e, t) {
18
29
  }
19
30
  //#endregion
20
31
  //#region ../../node_modules/date-fns/eachDayOfInterval.js
21
- function C(e, t) {
22
- let { start: n, end: r } = S(t?.in, e), i = +n > +r, a = i ? +n : +r, o = i ? r : n;
32
+ function w(e, t) {
33
+ let { start: n, end: r } = C(t?.in, e), i = +n > +r, a = i ? +n : +r, o = i ? r : n;
23
34
  o.setHours(0, 0, 0, 0);
24
35
  let s = t?.step ?? 1;
25
36
  if (!s) return [];
@@ -30,22 +41,11 @@ function C(e, t) {
30
41
  }
31
42
  //#endregion
32
43
  //#region ../../node_modules/date-fns/getISODay.js
33
- function w(e, t) {
44
+ function T(e, t) {
34
45
  let n = b(e, t?.in).getDay();
35
46
  return n === 0 ? 7 : n;
36
47
  }
37
48
  //#endregion
38
- //#region ../../shared-types/calendar.ts
39
- var T = {
40
- multiple: !1,
41
- maxMultiple: 0,
42
- range: !1,
43
- earliest: null,
44
- latest: null,
45
- weeknumbers: !1,
46
- withcontrols: !1
47
- };
48
- //#endregion
49
49
  //#region ../../shared-utils/calendar/date-validation.ts
50
50
  function E(e, t) {
51
51
  let n = (t.excludedates ?? []).map((e) => typeof e == "string" ? e : l(e));
@@ -88,7 +88,7 @@ function N(e) {
88
88
  return typeof e == "string" && (e = e.split(",")), e.length === 1 && e[0] === "" ? [] : e.map((e) => h(e));
89
89
  }
90
90
  function P(e, t) {
91
- let n = C({
91
+ let n = w({
92
92
  start: e,
93
93
  end: t
94
94
  }), r = {};
@@ -100,14 +100,14 @@ function P(e, t) {
100
100
  }
101
101
  function F(e, t, n, r) {
102
102
  if (t.length !== 1) return !0;
103
- let i = C({
103
+ let i = w({
104
104
  start: t[0],
105
105
  end: e
106
106
  });
107
107
  if (!Array.isArray(i) || !i.length) return !0;
108
108
  for (let a = 0; a < i.length; a++) {
109
109
  for (let r of n ?? []) if (r > t[0] && r < e) return !1;
110
- if ((r ?? []).includes(w(i[a]).toString())) return !1;
110
+ if ((r ?? []).includes(T(i[a]).toString())) return !1;
111
111
  }
112
112
  return !0;
113
113
  }
@@ -143,10 +143,10 @@ function V(e) {
143
143
  return t === "INPUT" || t === "SELECT" || t === "BUTTON" && !e.dataset?.date;
144
144
  }
145
145
  function H(e, t, n) {
146
- let r = x(e, t);
146
+ let r = S(e, t);
147
147
  if (!r) return null;
148
148
  let i = n(`button[data-date="${l(r)}"]`);
149
- for (; i instanceof HTMLButtonElement && i.dataset.disabled;) if (r = x(r, t), i = n(`button[data-date="${l(r)}"]`), !i) return null;
149
+ for (; i instanceof HTMLButtonElement && i.dataset.disabled;) if (r = S(r, t), i = n(`button[data-date="${l(r)}"]`), !i) return null;
150
150
  return r;
151
151
  }
152
152
  function U(e) {
@@ -156,7 +156,7 @@ function U(e) {
156
156
  //#region src/components/calendar/calendar.ts
157
157
  var W = class extends a {
158
158
  constructor(...e) {
159
- super(...e), this.selected = [], this.multiple = T.multiple, this.maxMultiple = T.maxMultiple, this.range = T.range, this.earliest = T.earliest, this.latest = T.latest, this.excludedates = [], this.excludeweekdays = [], this.weeknumbers = T.weeknumbers, this.withcontrols = T.withcontrols, this.currentmonth = null, this.today = null, this._selected = [], this.inRange = {}, this.rangeHovered = null, this.year = 0, this.month = 0, this.week = 0, this.currentmonthtouched = !1, this.focusedDate = null, this.selectableDates = [], this.tabIndexSet = 0;
159
+ super(...e), this.selected = [], this.multiple = x.multiple, this.maxMultiple = x.maxMultiple, this.range = x.range, this.earliest = x.earliest, this.latest = x.latest, this.excludedates = [], this.excludeweekdays = [], this.weeknumbers = x.weeknumbers, this.withcontrols = x.withcontrols, this.currentmonth = null, this.today = null, this._selected = [], this.inRange = {}, this.rangeHovered = null, this.year = 0, this.month = 0, this.week = 0, this.currentmonthtouched = !1, this.focusedDate = null, this.selectableDates = [], this.tabIndexSet = 0;
160
160
  }
161
161
  get calendarStrings() {
162
162
  let e = this.pktStrings.get("dates"), t = this.pktStrings.get("calendar");
@@ -10,7 +10,7 @@ import { t as f } from "./repeat-DntD73oB.js";
10
10
  import { a as p, c as m, i as h, l as g, o as _, r as v, s as y } from "./listbox-7pQ0UjKV.js";
11
11
  import { t as b } from "./input-element-BTzuDh4h.js";
12
12
  import { t as x } from "./pkt-options-controller-v2bPM9iU.js";
13
- import { r as S } from "./input-wrapper-CvFMiqIt.js";
13
+ import { r as S } from "./input-wrapper-B5GdwzAM.js";
14
14
  //#region ../../shared-utils/combobox/input-utils.ts
15
15
  var C = (e, t, n) => {
16
16
  switch (e) {
@@ -113,6 +113,7 @@ var C = (e, t, n) => {
113
113
  "css-class": "pkt-combobox",
114
114
  isElement: !0,
115
115
  isPureReact: !0,
116
+ "dark-mode": !0,
116
117
  props: {
117
118
  name: {
118
119
  type: "string",
@@ -319,7 +320,7 @@ var C = (e, t, n) => {
319
320
  attribute: "default-options",
320
321
  name: "Initielle valg (default options)",
321
322
  description: "Liste over valg som kan velges, om options sendes inn som array med objekter (denne vil ikke modifiseres ved endring innad i komponenten)",
322
- type: "array",
323
+ type: "IPktComboboxOption[]",
323
324
  default: [],
324
325
  previewDefault: [
325
326
  {
@@ -387,7 +388,7 @@ var C = (e, t, n) => {
387
388
  },
388
389
  options: {
389
390
  name: "Valg",
390
- type: "array",
391
+ type: "IPktComboboxOption[]",
391
392
  description: "Liste over valg som kan velges, om options sendes inn som array med objekter",
392
393
  default: [],
393
394
  items: {
@@ -0,0 +1,139 @@
1
+ const e=require("./element-CewjrA4g.cjs"),t=require("./class-map-B0FX3YsK.cjs"),n=require("./if-defined-CjRKmMQs.cjs"),r=require("./format-B8meU8Tm.cjs"),i=require("./element-with-slot-MCvSBwUv.cjs");require("./icon-Clz68-Kz.cjs");const a=require("./ref-HT6KRjxp.cjs");require("./tag-CQEyjF32.cjs");const o=require("./repeat-Ddge5HTp.cjs"),s=require("./listbox-3fi7wQz4.cjs"),c=require("./input-element-BdIWsDl-.cjs"),l=require("./pkt-options-controller-BClk341e.cjs"),u=require("./input-wrapper-BmPdpY4N.cjs");var d=(e,t,n)=>{switch(e){case`,`:return n?`addValue`:null;case`Enter`:return`addValue`;case`Tab`:case`ArrowDown`:return t?null:`focusListbox`;case`Escape`:return`closeOptions`;default:return null}},f=(e,t,n,r,i)=>{if(!e)return{action:`none`,value:null};let a=s.i(n,e);return!t.includes(e)&&!a?r?{action:`addUserValue`,value:e}:i?{action:`none`,value:null}:{action:`removeValue`,value:t[0]}:a&&!t.includes(a.value)?{action:`selectOption`,value:a.value}:{action:`none`,value:null}},p=(e,t,n,r,i)=>e.trim().toLowerCase()?{...s.c(e,t,n,r),shouldRemoveValue:!1,shouldResetInput:!1}:{addValueText:null,userInfoMessage:``,shouldRemoveValue:!i&&!!t[0],shouldResetInput:!0},m=(e,t,n)=>{let r=s.i(t,e);return n===`label`&&r?.label?r.label:e},h={markOptionSelected(e,t){if(t){for(let n of e)if(n.value===t){n.selected=!0;break}}},markOptionDeselected(e,t){if(t){for(let n of e)if(n.value===t){n.selected=!1;break}}},markAllSelected(e){for(let t of e)t.selected=!0},markAllDeselected(e){for(let t of e)t.selected=!1},removeUserAddedOptions(e){return e.filter(e=>!e.userAdded)}},g={parseOptionsFromSlot(e){let t=[];return e.forEach(e=>{if(!e.textContent&&!e.getAttribute(`value`))return;let n={value:e.getAttribute(`value`)||e.textContent||``,label:e.textContent||e.getAttribute(`value`)||``};e.getAttribute(`data-prefix`)&&(n.prefix=e.getAttribute(`data-prefix`)||void 0),e.getAttribute(`tagskincolor`)&&(n.tagSkinColor=e.getAttribute(`tagskincolor`)),e.getAttribute(`description`)&&(n.description=e.getAttribute(`description`)||void 0),n.fulltext=s.r(n),t.push(n)}),t}},_={cloneOptions(e){return Array.isArray(e)?e.map(e=>({...e})):[]},syncOptionsWithValues(e,t){let n=[...t];return e.forEach(e=>{e.value&&!e.label&&(e.label=e.value),e.selected&&!n.includes(e.value)&&n.push(e.value),e.fulltext=s.r(e),e.selected=e.selected||n.includes(e.value)}),{options:e,newValues:n}},mergeWithUserAdded(e,t,n){return[...t.filter(e=>e?.userAdded&&n.includes(e.value)).filter(t=>!(Array.isArray(e)?e:[]).some(e=>e.value===t.value)),...e]}},v={name:`pkt-combobox`,react:`PktCombobox`,"css-class":`pkt-combobox`,isElement:!0,isPureReact:!0,"dark-mode":!0,props:{name:{type:`string`,name:`Navn`,description:`Navn som brukes i skjema ved innsending`,category:`tech`},form:{name:`Skjema`,description:`ID-en til skjemaet feltet hører til, når feltet ligger utenfor skjemaet`,type:`string`,required:!1,category:`tech`},id:{type:`string`,name:`ID`,description:`Unik ID for feltet`,category:`tech`},label:{type:`string`,name:`Etikett/label`,description:`Tekst som vises over feltet`,category:`contents`},placeholder:{name:`Hint`,description:`Spesifiserer en kort hint som beskriver forventet verdi av feltet.`,type:`string`,category:`contents`,required:!1},multiple:{type:`boolean`,name:`Flervalg`,default:!1,description:`Mulighet for å velge flere valg`,category:`functionality`},tagPlacement:{attribute:`tag-placement`,type:[`inside`,`outside`],name:`Plassering av tags i flervalg`,description:`Plassering av valgte verdier i feltet ved flervalg`,category:`functionality`,showIf:{multiple:!0}},maxlength:{type:`number`,name:`Maks antall i flervalg`,description:`Maks antall valg dersom flervalg er aktivert`,category:`functionality`,showIf:{multiple:!0}},typeahead:{type:`boolean`,name:`Typeahead`,default:!1,description:`Mulighet for automatisk utfylling av feltet fra listen over valg`,category:`functionality`},includeSearch:{attribute:`include-search`,type:`boolean`,name:`Inkluder søk`,description:`Mulighet for å søke etter valg inni dropdown`,category:`functionality`},allowUserInput:{attribute:`allow-user-input`,type:`boolean`,name:`Brukervalgte verdier`,description:`Mulighet for å skrive inn egne verdier`,category:`functionality`},searchPlaceholder:{attribute:`search-placeholder`,type:`string`,name:`Søke-plassholder`,description:`Plassholdertekst for søkefeltet i dropdown`,category:`contents`,showIf:{includeSearch:!0}},displayValueAs:{attribute:`display-value-as`,type:[`label`,`value`,`prefixAndValue`],name:`Visning av valgt verdi`,description:`Hvordan valgt verdi vises i feltet`,default:`label`,category:`ui`},inputSize:{name:`Størrelse`,description:`Visuell størrelse via input-wrapper. small: kompakt wrapper og felt (42px). xsmall: samme wrapper som small, felt 36px.`,attribute:`input-size`,type:[`small`,`medium`,`xsmall`],default:`medium`,category:`ui`},value:{name:`Verdi`,type:`string`,description:`Valgt verdi. Streng ved enkelt valg, array av strenger ved flervalg.`,category:`tech`},helptext:{type:`string`,name:`Hjelpetekst`,description:`Hjelpetekst som vises over feltet`,category:`contents`},helptextDropdown:{attribute:`helptextdropdown`,type:`string`,name:`Utvidet hjelpetekst`,description:`Hjelpetekst som vises i en lukket boks man kan åpne`,category:`contents`},helptextDropdownButton:{attribute:`helptextdropdownbutton`,type:`string`,name:`Knappetekst for hjelpetekst`,description:`Tekst som vises på knappen for å åpne/lukke utvidet hjelpetekst`,category:`contents`,default:`Les mer`},disabled:{type:`boolean`,name:`Deaktivert`,description:`Feltet er deaktivert`,category:`tech`},hasError:{attribute:`haserror`,type:`boolean`,name:`Feil`,description:`Feltet har en feil`,category:`ui`},errorMessage:{attribute:`errormessage`,type:`string`,name:`Feilmelding`,description:`Tekst som vises under feltet ved feil`,category:`contents`},required:{type:`boolean`,name:`Påkrevd`,description:`Feltet må fylles ut`,category:`tech`},requiredTag:{attribute:`requiredtag`,type:`boolean`,name:`Påkrevd-merking`,description:`Viser en merking som indikerer at feltet er påkrevd`,category:`ui`},requiredText:{attribute:`requiredtext`,type:`string`,name:`Påkrevd-tekst`,description:`Tekst som vises i påkrevd-merkingen`,category:`contents`},optionalTag:{attribute:`optionaltag`,type:`boolean`,name:`Valgfritt-merking`,description:`Viser en merking som indikerer at feltet er valgfritt`,category:`ui`},optionalText:{attribute:`optionaltext`,type:`string`,name:`Valgfritt-tekst`,description:`Tekst som vises i valgfritt-merkingen`,category:`contents`},tagText:{attribute:`tagtext`,type:`string`,name:`Tag-tekst`,description:`Tekst som vises i en tag ved siden av label`,category:`ui`},fullwidth:{type:`boolean`,name:`Full bredde`,description:`Skal feltet ta opp hele bredden?`,category:`ui`},defaultOptions:{attribute:`default-options`,name:`Initielle valg (default options)`,description:`Liste over valg som kan velges, om options sendes inn som array med objekter (denne vil ikke modifiseres ved endring innad i komponenten)`,type:`IPktComboboxOption[]`,default:[],previewDefault:[{value:`bfr`,label:`Frogner`},{value:`bgo`,label:`Gamle Oslo`},{value:`bgr`,label:`Grorud`},{value:`bxx`,label:`Andre bydeler`}],items:{type:`object`,properties:{value:{type:`string`,description:`Verdi som sendes ved valg`},label:{type:`string`,description:`Tekst som vises for valget`},prefix:{type:`string`,description:`Tekst som vises før valget`},description:{type:`string`,description:`Beskrivelse av valget`},disabled:{type:`boolean`,description:`Valget er deaktivert`},selected:{type:`boolean`,description:`Valget er valgt`},tagSkinColor:{type:[`blue`,`blue-dark`,`blue-light`,`green`,`red`,`yellow`,`beige`,`gray`,`grey`],description:`Farge på tag`}},required:[`value`]},category:`contents`},options:{name:`Valg`,type:`IPktComboboxOption[]`,description:`Liste over valg som kan velges, om options sendes inn som array med objekter`,default:[],items:{type:`object`,properties:{value:{type:`string`,description:`Verdi som sendes ved valg`},label:{type:`string`,description:`Tekst som vises for valget`},prefix:{type:`string`,description:`Tekst som vises før valget`},description:{type:`string`,description:`Beskrivelse av valget`},disabled:{type:`boolean`,description:`Valget er deaktivert`},selected:{type:`boolean`,description:`Valget er valgt`},tagSkinColor:{type:[`blue`,`blue-dark`,`blue-light`,`green`,`red`,`yellow`,`beige`,`gray`,`grey`],description:`Farge på tag`}},required:[`value`]},category:`contents`},inline:{name:`Inline`,type:`boolean`,required:!1,default:!1,description:`Angir om feltet skal flyte med teksten`,category:`ui`},useWrapper:{attribute:`usewrapper`,name:`Bruk wrapper`,type:`boolean`,required:!1,displayAsFalse:!0,default:!0,description:`Indikerer om skjemaelementet skal bruke en wrapper`,category:`ui`},hasFieldset:{attribute:`hasfieldset`,name:`Bruk fieldset`,type:`boolean`,required:!1,default:null,description:`Bruk fieldset og legend i stedet for label. Utledes automatisk når feltet ikke har en input.`,category:`ui`},counter:{name:`Teller`,type:`boolean`,required:!1,default:null,description:`Viser teller under feltet. Slås på av seg selv når det finnes en grense å telle mot; sett til false for å skru den av.`,category:`ui`},defaultValue:{attribute:`defaultvalue`,type:`string | string[]`,name:`Standardverdi`,description:`Verdien feltet får ved oppstart og ved nullstilling av skjemaet`,category:`functionality`}},events:{change:{type:`Event`,description:`Returnerer valgt verdi som streng. Ved flervalg returneres kommaseparerte verdier.`},"value-change":{type:`CustomEvent`,description:`Returnerer valgt verdi. Ved enkeltvalg en streng, ved flervalg en <code>string[]</code>.`},search:{type:`CustomEvent`,description:`Returnerer søketeksten som streng i <code>event.detail</code> når brukeren skriver i søkefeltet`},toggleHelpText:{type:`CustomEvent`,description:`Returnerer <code>event.detail { isOpen: true }</code> eller <code>event.detail { isOpen: false }</code> når hjelpeteksten åpnes eller lukkes`}}},y=class extends c.t{constructor(){super(),this.value=``,this.options=[],this.defaultOptions=[],this.allowUserInput=!1,this.typeahead=!1,this.includeSearch=!1,this.searchPlaceholder=null,this.multiple=!1,this.maxlength=null,this.displayValueAs=v.props.displayValueAs.default,this.tagPlacement=null,this.isOpen=!1,this._options=[],this._value=[],this._isOptionsOpen=!1,this._userInfoMessage=``,this._messageValue=null,this._addValueText=null,this._maxIsReached=!1,this._search=``,this._inputFocus=!1,this._skipInputTab=!1,this._optionsFromSlot=!1,this._lastSlotGeneration=0,this._suppressNextOpen=!1,this.inputRef=a.t(),this.triggerRef=a.t(),this.listboxRef=a.t(),this._pendingDispatchFrom=null,this.optionsController=new l.t(this)}get _hasTextInput(){return this.typeahead||this.allowUserInput}get _selectionDescription(){if(!(!this.multiple||this._value.length===0))return`${this._value.length} valgt`}focusTrigger(){this._hasTextInput?this.inputRef.value?.focus():this.triggerRef.value?.focus()}focusAfterCommit(){this._skipInputTab=!0;let e=this.inputRef.value;e&&e.type!==`hidden`&&e.setAttribute(`tabindex`,`-1`),this.triggerRef.value?.focus()}restoreInputTab(){this._skipInputTab=!1}parseValue(){return this.parseToValues(this.value)}parseToValues(e){return Array.isArray(e)?this.multiple?e:e.length>0?[e[0]]:[]:e&&this.multiple?e.split(`,`):e?[e]:[]}updateMaxReached(){this._maxIsReached=s.l(this._value.length,this.maxlength)}syncPublicValue(){let e=this.multiple?this._value.join(`,`):this._value[0]||``;e!==(Array.isArray(this.value)?this.value.join(`,`):String(this.value||``))&&(this.value=e)}dispatchValueChange(e){let t=this._value;if(e?.join(`,`)!==t.join(`,`)){let e=this.multiple?[...t]:t[0]||``;this.onChange(e)}else t.length===0&&e&&e.length>0&&this.clearInputValue()}onChange(e){this.touched=!0,super.onChange(e)}valueChanged(){}};e.n([e.u({type:String,reflect:!0})],y.prototype,`value`,void 0),e.n([e.u({type:Array})],y.prototype,`options`,void 0),e.n([e.u({type:Array,attribute:`default-options`})],y.prototype,`defaultOptions`,void 0),e.n([e.u({type:Boolean,attribute:`allow-user-input`})],y.prototype,`allowUserInput`,void 0),e.n([e.u({type:Boolean})],y.prototype,`typeahead`,void 0),e.n([e.u({type:Boolean,attribute:`include-search`})],y.prototype,`includeSearch`,void 0),e.n([e.u({type:String,attribute:`search-placeholder`})],y.prototype,`searchPlaceholder`,void 0),e.n([e.u({type:Boolean})],y.prototype,`multiple`,void 0),e.n([e.u({type:Number})],y.prototype,`maxlength`,void 0),e.n([e.u({type:String,attribute:`display-value-as`})],y.prototype,`displayValueAs`,void 0),e.n([e.u({type:String,attribute:`tag-placement`})],y.prototype,`tagPlacement`,void 0),e.n([e.u({type:Boolean,attribute:`open`})],y.prototype,`isOpen`,void 0),e.n([e.l()],y.prototype,`_options`,void 0),e.n([e.l()],y.prototype,`_value`,void 0),e.n([e.l()],y.prototype,`_isOptionsOpen`,void 0),e.n([e.l()],y.prototype,`_userInfoMessage`,void 0),e.n([e.l()],y.prototype,`_messageValue`,void 0),e.n([e.l()],y.prototype,`_addValueText`,void 0),e.n([e.l()],y.prototype,`_maxIsReached`,void 0),e.n([e.l()],y.prototype,`_search`,void 0),e.n([e.l()],y.prototype,`_inputFocus`,void 0),e.n([e.l()],y.prototype,`_skipInputTab`,void 0);var b=class extends y{toggleValue(e){if(this.disabled)return;this.touched=!0,this._userInfoMessage=``,this._addValueText=null;let t=s.i(this.options,e)?.value||null,n=this._value.includes(e||t||``),r=!!t,i=this._options.find(t=>t.value===e)?.disabled||!1,a=!e?.trim(),o=!this.multiple,c=this.multiple,l=s.l(this._value.length,this.maxlength),u=!1,d=!0,f=``,p=null,h=``;i||(!r&&this.allowUserInput&&!a?(this.addNewUserValue(e),f=`valueAdded`,u=c):!r&&!this.allowUserInput?(o&&this._value[0]&&this.removeValue(this._value[0]),d=!1,u=!0,f=`noResults`):n?(this.removeValue(t),u=!0,o&&this._hasTextInput&&this.inputRef.value&&this.inputRef.value.type!==`hidden`&&(this.inputRef.value.value=``)):a&&o?(this.removeAllSelected(),u=!0):o?(this._value[0]&&this.removeSelected(this._value[0]),this.setSelected(t),u=!1,f=`valueSelected`,p=this._hasTextInput?m(t||``,this.options,this.displayValueAs):s.s(s.i(this.options,t),this.displayValueAs)):c&&!l?(this.setSelected(t),u=!0):c&&l?(f=`maxSelected`,d=!1,h=e):(o&&this.removeAllSelected(),f=`noValidValue`,d=!1,u=!0,h=e),this._isOptionsOpen=u,u||window.setTimeout(()=>{this.focusAfterCommit()},0),this._search=h||``,this.resetComboboxInput(d),this._userInfoMessage=f,this._messageValue=p,c&&this.updateMaxReached())}setSelected(e){if(!this._value.includes(e)){if(this.multiple&&s.l(this._value.length,this.maxlength)){this._userInfoMessage=`maxSelected`;return}!this.multiple&&this.removeAllSelected(),this._value=e?[...this._value,e]:this._value,h.markOptionSelected(this._options,e),this.resetComboboxInput(!0)}}removeSelected(e){if(!e)return;this._value=this._value.filter(t=>t!==e);let t=s.i(this.options,e);t&&(h.markOptionDeselected(this.options,e),t.userAdded?(this._options=[...this._options.filter(t=>t.value!==e)],this.options=[...this.options.filter(t=>t.value!==e)]):this._options.some(t=>t.value===e)?this.refreshOptionsFromValue():this._options=[...this._options,t])}addAllOptions(){if(this.multiple){if(this.maxlength&&this._options.length>this.maxlength){this._userInfoMessage=`tooManySelected`;return}this._value=this._options.map(e=>e.value),h.markAllSelected(this._options),this.requestUpdate()}}removeAllSelected(){this._value=[],h.markAllDeselected(this._options),this._options=h.removeUserAddedOptions(this._options),this.requestUpdate()}addValue(){let e=this.inputRef.value?.value.trim()||``;if(this._search=e,e&&this._value.includes(e)){this.resetComboboxInput(!0),this._userInfoMessage=`alreadySelected`;return}this.toggleValue(e)}removeValue(e){this._value=this.multiple?this._value.filter(t=>t!==e):[],this.removeSelected(e)}addNewUserValue(e){if(!e||e.trim()===``)return;if(!this.multiple)this._value[0]&&this.removeSelected(this._value[0]),this._value=[e];else if(!s.i(this.options,e)){if(s.l(this._value.length,this.maxlength))return;this._value=[...this._value,e]}let t={value:e,label:e,userAdded:!0,selected:!0};this.options=[t,...this.options],this._options=[t,...this._options],this.resetComboboxInput(!0),this.multiple||(this._isOptionsOpen=!1,window.setTimeout(()=>{this.focusAfterCommit()},0)),this.requestUpdate()}refreshOptionsFromValue(){let e=_.cloneOptions(this.options);e.forEach(e=>e.selected=this._value.includes(e.value)),this._options=_.syncOptionsWithValues(e,this._value).options}resetComboboxInput(e=!0){this._addValueText=null,this.inputRef.value&&this.inputRef.value.type!==`hidden`&&e&&(this._search=``,this.multiple?this.inputRef.value.value=``:(this.inputRef.value.value=this._value[0]?m(this._value[0],this.options,this.displayValueAs):``,this._userInfoMessage=``)),this.refreshOptionsFromValue()}removeLastValue(e){if(this._value.length===0)return;e.preventDefault();let t=this._value[this._value.length-1];t&&this.removeSelected(t),this.updateMaxReached()}},x=class extends b{handleInput(e){if(e.stopPropagation(),e.stopImmediatePropagation(),this.disabled)return;this.touched=!0;let t=e.target;if(this._search=t.value,this.checkForMatches(),this.typeahead){if(this._search){let{filtered:n,suggestion:r}=s.o(this.options,this._search);this._options=n,e.inputType!==`deleteContentBackward`&&r?.label&&this.inputRef.value&&this.inputRef.value.type!==`hidden`&&(t.value=r.label,window.setTimeout(()=>t.setSelectionRange(this._search.length,t.value.length),0),t.selectionDirection=`backward`)}else this.refreshOptionsFromValue()}}handleFocus(){if(!this.disabled){if(this._skipInputTab=!1,this._suppressNextOpen){this._suppressNextOpen=!1,this._inputFocus=!0,this.requestUpdate();return}!this.multiple&&this._value[0]&&this.inputRef.value&&this.inputRef.value.type!==`hidden`&&(this.inputRef.value.value=m(this._value[0],this.options,this.displayValueAs)),this._inputFocus=!0,this._search=``,this.refreshOptionsFromValue(),this._isOptionsOpen=!0,this.onFocus(),this.requestUpdate()}}handleCloseOptions(){this._isOptionsOpen=!1,this._hasTextInput&&(this._suppressNextOpen=!0),this.focusTrigger()}handleFocusOut(e){if(this.disabled||!this._isOptionsOpen)return;let t=e.relatedTarget;t?.closest(`pkt-combobox`)?.id===this.id||e.target?.classList?.contains(`pkt-combobox__value`)||t===this.inputRef.value||t===this.triggerRef.value||this.closeAndProcessInput()}closeAndProcessInput(){if(this._inputFocus=!1,this._addValueText=null,this._userInfoMessage=``,this._search=``,this.inputRef.value&&this.inputRef.value.type!==`hidden`){let e=this.inputRef.value.value;if(!this.multiple){if(!e)this._value[0]&&this.removeSelected(this._value[0]);else{let t=s.i(this.options,e);t&&t.value!==this._value[0]?(this._value[0]&&this.removeSelected(this._value[0]),this.setSelected(t.value)):!t&&this.allowUserInput&&(this._value[0]&&this.removeSelected(this._value[0]),this.addNewUserValue(e))}}else if(e!==``){let{action:t,value:n}=f(e,this._value,this.options,this.allowUserInput,this.multiple);switch(t){case`addUserValue`:this.addNewUserValue(n);break;case`selectOption`:this.setSelected(n);break;case`removeValue`:this.removeValue(n)}}!this.multiple&&this._value[0]?this.inputRef.value.value=m(this._value[0],this.options,this.displayValueAs):this.inputRef.value.value=``}this._isOptionsOpen=!1,this.onBlur()}handleBlur(){this._inputFocus=!1,this.onBlur()}handleInputClick(e){if(this.disabled){e.preventDefault(),e.stopImmediatePropagation();return}this._hasTextInput?(this.inputRef.value?.focus(),this.requestUpdate()):(e.stopImmediatePropagation(),e.preventDefault(),this._isOptionsOpen=!this._isOptionsOpen,this._isOptionsOpen&&this.listboxRef.value?.focusFirstOrSelectedOption())}handlePlaceholderClick(e){this.disabled||(e.stopPropagation(),this._hasTextInput&&this.inputRef.value?(this.inputRef.value.focus(),this._inputFocus=!0,this.requestUpdate()):(this._isOptionsOpen=!this._isOptionsOpen,this.requestUpdate()))}handleSelectOnlyKeydown(e){if(!this.disabled)switch(e.key){case`Enter`:case` `:case`ArrowDown`:case`ArrowUp`:e.preventDefault(),this._isOptionsOpen?this._isOptionsOpen=!1:(this._isOptionsOpen=!0,this.listboxRef.value?.focusFirstOrSelectedOption());break;case`Escape`:this._isOptionsOpen&&=(e.preventDefault(),!1);break;case`Home`:case`End`:e.preventDefault(),this._isOptionsOpen||=!0,this.listboxRef.value?.focusFirstOrSelectedOption();break;case`ArrowLeft`:this.multiple&&this._value.length>0&&(e.preventDefault(),this.focusTag(this._value.length-1));break;case`Backspace`:case`Delete`:this.multiple&&this._value.length>0&&(e.preventDefault(),this.removeSelected(this._value[this._value.length-1]))}}handleOptionToggled(e){this.toggleValue(e.detail)}handleSearch(e){e.stopPropagation(),this._search=e.detail.toLowerCase(),this.checkForMatches()}handleInputKeydown(e){if(e.key===`Backspace`){let t=!this.inputRef.value?.value;!this._search&&t&&this.multiple&&this._value.length>0&&this.removeLastValue(e);return}if(e.key===`ArrowLeft`&&this.multiple&&this._value.length>0){let t=this.inputRef.value;if(t&&t.selectionStart===0&&!t.value){e.preventDefault(),this.focusTag(this._value.length-1);return}}let t=d(e.key,e.shiftKey,this.multiple);if(t&&!(e.key===`Tab`&&!this._isOptionsOpen)){if(t===`focusListbox`&&e.key===`Tab`&&!this.listboxRef.value?.querySelector(`[role="option"]:not([data-disabled]), [data-type="new-option"]`)){this.closeAndProcessInput();return}switch(e.preventDefault(),t){case`addValue`:this.addValue();break;case`focusListbox`:this.listboxRef.value?.focusFirstOrSelectedOption();break;case`closeOptions`:this._isOptionsOpen=!1}}}handleTagRemove(e){this.removeSelected(e),this._hasTextInput&&this.inputRef.value&&(this._inputFocus=!0,this.inputRef.value.focus(),this.requestUpdate())}getInsideTags(){return Array.from(this.querySelectorAll(`.pkt-combobox__input .pkt-combobox__tag-list pkt-tag`))}focusTag(e){let t=this.getInsideTags();t.forEach((t,n)=>{t.buttonTabindex=n===e?0:-1}),(t[e]?.querySelector(`button`))?.focus()}resetTagTabindices(){this.getInsideTags().forEach(e=>{e.buttonTabindex=-1})}handleTagKeydown(e,t){e.stopPropagation();let n=()=>{this.resetTagTabindices(),this._hasTextInput&&this.inputRef.value?this.inputRef.value.focus():this.triggerRef.value?.focus()};switch(e.key){case`ArrowLeft`:e.preventDefault(),t>0&&this.focusTag(t-1);break;case`ArrowRight`:e.preventDefault(),t<this._value.length-1?this.focusTag(t+1):n();break;case`Backspace`:case`Delete`:e.preventDefault();{let e=this._value[t],r=t>=this._value.length-1?t-1:t;this.removeSelected(e),r>=0?(this.requestUpdate(),this.updateComplete.then(()=>this.focusTag(r))):n()}break;case`Tab`:this.resetTagTabindices();break;case`Escape`:e.preventDefault(),n()}}checkForMatches(){let e=p(this.inputRef.value?.value||this._search||``,this._value,this.options,this.allowUserInput,this.multiple);if(e.shouldRemoveValue&&this.removeValue(this._value[0]),e.shouldResetInput){this.resetComboboxInput(!1);return}this._addValueText=e.addValueText,this._userInfoMessage=e.userInfoMessage}},S=class extends x{constructor(...e){super(...e),this.handleBodyClick=e=>{this._isOptionsOpen&&!this.contains(e.target)&&this.closeAndProcessInput()}}connectedCallback(){if(super.connectedCallback(),document?.body.addEventListener(`click`,this.handleBodyClick),this._options=[],this.defaultOptions&&this.defaultOptions.length){let e=this.options?.filter(e=>e.userAdded)||[];this.options=[...e,...JSON.parse(JSON.stringify(this.defaultOptions))],this._options=_.cloneOptions(this.options)}if(this.optionsController?.nodes&&this.optionsController.nodes.length){let e=g.parseOptionsFromSlot(this.optionsController.nodes);e.length&&(this.options=[...e],this._options=[...e],this._optionsFromSlot=!0,this._lastSlotGeneration=this.optionsController.generation)}}disconnectedCallback(){super.disconnectedCallback(),document?.body.removeEventListener(`click`,this.handleBodyClick)}firstUpdated(e){this.defaultValue!==null&&!this.value&&(this.value=this.defaultValue),super.firstUpdated(e)}willUpdate(e){if(this._optionsFromSlot&&this.optionsController){let e=this.optionsController.generation;if(e!==this._lastSlotGeneration){this._lastSlotGeneration=e;let t=g.parseOptionsFromSlot(this.optionsController.nodes),n=this._options.filter(e=>e.userAdded);this.options=[...n,...t]}}if(super.willUpdate(e),e.has(`isOpen`)&&(this._isOptionsOpen=this.isOpen),e.has(`defaultOptions`)&&this.defaultOptions.length){let e=(Array.isArray(this.options)?this.options:[]).filter(e=>e.userAdded)||[];this.options=[...e,...JSON.parse(JSON.stringify(this.defaultOptions))],this._options=_.cloneOptions(this.options)}let t=e.has(`value`),n=e.has(`_value`);if(t){let e=[...this._value],t=this.parseValue();t.join(`,`)!==this._value.join(`,`)&&(this._value=t,this._options.forEach(e=>e.selected=t.includes(e.value)),this._options=[...this._options]),this._pendingDispatchFrom??=e}else n&&(this._pendingDispatchFrom??=e.get(`_value`)??[]);if(e.has(`defaultValue`)&&this.defaultValue!=null&&!this._value.length){let e=this.parseToValues(this.defaultValue);e.length&&(this._pendingDispatchFrom??=[...this._value],this._value=e,this._options.forEach(t=>t.selected=e.includes(t.value)),this._options=[...this._options])}if(e.has(`options`)){let t=e.get(`options`)||this._options||[],n=_.mergeWithUserAdded(_.cloneOptions(this.options),t,this._value);this._options=n,n.length>this.options.length&&(this.options=n);let r=_.syncOptionsWithValues(this._options,this._value);this._options=r.options,r.newValues.length>this._value.length&&(this._pendingDispatchFrom??=[...this._value],this._value=r.newValues)}(t||n||e.has(`options`)||e.has(`defaultValue`))&&this.updateMaxReached(),this._pendingDispatchFrom&&this.syncPublicValue()}updated(e){if(this._pendingDispatchFrom){let e=this._pendingDispatchFrom;this._pendingDispatchFrom=null,this.dispatchValueChange(e)}if(e.has(`_search`)&&this.dispatchEvent(new CustomEvent(`search`,{detail:this._search,bubbles:!1})),!this._isOptionsOpen&&this._hasTextInput&&this.inputRef.value&&this.inputRef.value.type!==`hidden`){let e=!this.multiple&&this._value[0]?m(this._value[0],this.options,this.displayValueAs):``;this.inputRef.value.value!==e&&(this.inputRef.value.value=e)}this.classList.add(`pkt-combobox-component`),this.classList.toggle(`pkt-combobox-component--fullwidth`,!!this.fullwidth),super.updated(e)}formResetCallback(){this.touched=!1;let e=this.defaultValue||(this.multiple,``);this.value=e,this._value=this.parseValue(),this._options=this._options.filter(e=>!e.userAdded).map(e=>({...e,selected:this._value.includes(e.value)})),this.options=this.options.filter(e=>!e.userAdded).map(e=>({...e,selected:this._value.includes(e.value)})),this._search=``,this._isOptionsOpen=!1,this._userInfoMessage=``,this._addValueText=null,this._inputFocus=!1,this.updateMaxReached(),this.inputRef.value&&this.inputRef.value.type!==`hidden`&&(this.inputRef.value.value=``),this.internals.setFormValue(``),this.internals.ariaInvalid=`false`,this.requestUpdate()}attributeChangedCallback(e,t,n){if(e===`options`){this._options=_.cloneOptions(this.options);let e=_.syncOptionsWithValues(this._options,this._value);this._options=e.options,e.newValues.length>this._value.length&&(this._value=e.newValues),this._search=``}super.attributeChangedCallback(e,t,n)}render(){return e._`
2
+ <pkt-input-wrapper
3
+ .strings=${this.strings}
4
+ .size=${this.inputSize}
5
+ .label=${this.label}
6
+ .helptext=${this.helptext}
7
+ .helptextDropdown=${n.t(this.helptextDropdown)}
8
+ .helptextDropdownButton=${n.t(this.helptextDropdownButton)}
9
+ ?fullwidth=${this.fullwidth}
10
+ ?counter=${this.effectiveCounter(!!this.multiple&&this.maxlength!=null)}
11
+ .counterCurrent=${this._value.length}
12
+ .counterMaxLength=${this.maxlength??0}
13
+ ?hasError=${this.hasError}
14
+ ?inline=${this.inline}
15
+ ?disabled=${this.disabled}
16
+ .errorMessage=${this.errorMessage}
17
+ ?optionalTag=${this.optionalTag}
18
+ .optionalText=${this.optionalText}
19
+ ?requiredTag=${this.requiredTag}
20
+ .requiredText=${this.requiredText}
21
+ .tagText=${this.tagText}
22
+ useWrapper=${this.useWrapper}
23
+ .forId=${this._hasTextInput?this.id+`-input`:this.id+`-combobox`}
24
+ ?hasFieldset=${this.effectiveHasFieldset(!this._hasTextInput)}
25
+ class="pkt-combobox__wrapper"
26
+ @labelClick=${this.handleInputClick}
27
+ >
28
+ <div class="pkt-contents" slot="helptext">${i.r(this,`helptext`)}</div>
29
+ <div class="pkt-combobox" @focusout=${this.handleFocusOut}>
30
+ <div
31
+ class=${t.t({"pkt-combobox__input":!0,[`pkt-combobox__input--${this.inputSize}`]:!0,"pkt-combobox__input--fullwidth":this.fullwidth,"pkt-combobox__input--open":this._isOptionsOpen,"pkt-combobox__input--error":this.hasError,"pkt-combobox__input--disabled":this.disabled})}
32
+ id=${n.t(this._hasTextInput?void 0:`${this.id}-combobox`)}
33
+ role=${n.t(this._hasTextInput?void 0:`combobox`)}
34
+ aria-expanded=${n.t(this._hasTextInput?void 0:this._isOptionsOpen?`true`:`false`)}
35
+ aria-controls=${n.t(this._hasTextInput?void 0:`${this.id}-listbox`)}
36
+ aria-haspopup=${n.t(this._hasTextInput?void 0:`listbox`)}
37
+ aria-describedby=${n.t(this._hasTextInput?void 0:this._describedBy())}
38
+ aria-labelledby=${n.t(this._hasTextInput?void 0:`${this.id}-combobox-label`)}
39
+ aria-activedescendant=${n.t(!this._hasTextInput&&this._isOptionsOpen&&this._value[0]&&s.i(this.options,this._value[0])?`${this.id}-listbox-${s.a(this._options,this._value[0])}`:void 0)}
40
+ aria-description=${n.t(this._selectionDescription||void 0)}
41
+ tabindex=${this._hasTextInput||this.disabled?`-1`:`0`}
42
+ @click=${this.handleInputClick}
43
+ @keydown=${this._hasTextInput?e.h:this.handleSelectOnlyKeydown}
44
+ @blur=${this.restoreInputTab}
45
+ ${a.n(this.triggerRef)}
46
+ >
47
+ ${!this._hasTextInput&&this.placeholder&&(!this._value.length||this.multiple&&this.tagPlacement==`outside`)&&!this._inputFocus?e._`<span class="pkt-combobox__placeholder" @click=${this.handlePlaceholderClick}
48
+ >${this.placeholder}</span
49
+ >`:this.tagPlacement===`outside`?e.h:this.renderSingleOrMultipleValues()}
50
+ ${this.renderInputField()}
51
+ <pkt-icon
52
+ class=${t.t({"pkt-combobox__arrow-icon":!0,"pkt-combobox__arrow-icon--open":this._isOptionsOpen})}
53
+ name="chevron-thin-down"
54
+ aria-hidden="true"
55
+ ></pkt-icon>
56
+ </div>
57
+
58
+ <pkt-listbox
59
+ id="${this.id}-listbox"
60
+ .options=${this._options}
61
+ .isOpen=${this._isOptionsOpen}
62
+ .searchPlaceholder=${this.searchPlaceholder}
63
+ .label="Liste: ${this.label||``}"
64
+ ?disabled=${this.disabled}
65
+ ?include-search=${this.includeSearch}
66
+ ?is-multi-select=${this.multiple}
67
+ ?allow-user-input=${this.allowUserInput&&!this._maxIsReached}
68
+ ?max-is-reached=${this._maxIsReached}
69
+ .customUserInput=${n.t(this._addValueText)}
70
+ .userMessage=${this._userInfoMessage?r.t(this.pktStrings.get(`combobox`)[this._userInfoMessage],{value:this._messageValue??``}):``}
71
+ @search=${this.handleSearch}
72
+ @option-toggle=${this.handleOptionToggled}
73
+ @select-all=${this.addAllOptions}
74
+ @close-options=${this.handleCloseOptions}
75
+ @tab-close=${()=>this.closeAndProcessInput()}
76
+ .searchValue=${this._search||null}
77
+ .maxLength=${this.maxlength||0}
78
+ ${a.n(this.listboxRef)}
79
+ ></pkt-listbox>
80
+ </div>
81
+
82
+ ${this.tagPlacement===`outside`&&this.multiple?e._`<div class="pkt-combobox__tags-outside">
83
+ ${this.renderSingleOrMultipleValues()}
84
+ </div>`:e.h}
85
+ </pkt-input-wrapper>
86
+ `}_describedBy(){return u.r({id:this._hasTextInput?`${this.id}-input`:`${this.id}-combobox`,hasHelptext:!!this.helptext,ariaDescribedby:this.ariaDescribedby})}renderInputField(){return this.typeahead||this.allowUserInput?e._`
87
+ <div class="pkt-combobox__input-div combobox__input">
88
+ <input
89
+ type="text"
90
+ id="${this.id}-input"
91
+ name=${(this.name||this.id)+`-input`}
92
+ placeholder=${n.t(!this._value.length||this.multiple&&this.tagPlacement===`outside`?this.placeholder:void 0)}
93
+ @input=${this.handleInput}
94
+ @change=${e=>{e.stopPropagation(),e.stopImmediatePropagation()}}
95
+ tabindex=${n.t(this._skipInputTab?`-1`:void 0)}
96
+ @keydown=${this.handleInputKeydown}
97
+ @focus=${this.handleFocus}
98
+ @blur=${this.handleBlur}
99
+ autocomplete="off"
100
+ role="combobox"
101
+ aria-expanded=${this._isOptionsOpen?`true`:`false`}
102
+ aria-label=${n.t(this.label)}
103
+ aria-describedby=${n.t(this._describedBy())}
104
+ aria-autocomplete=${this.typeahead?`both`:this.allowUserInput?`list`:`none`}
105
+ aria-controls="${this.id}-listbox"
106
+ aria-activedescendant=${n.t(this._isOptionsOpen&&this._value[0]&&s.i(this.options,this._value[0])?`${this.id}-listbox-${s.a(this._options,this._value[0])}`:void 0)}
107
+ aria-description=${n.t(this._selectionDescription||void 0)}
108
+ ${a.n(this.inputRef)}
109
+ />
110
+ </div>
111
+ `:e._`
112
+ <input
113
+ type="hidden"
114
+ id="${this.id}-input"
115
+ name=${(this.name||this.id)+`-input`}
116
+ .value=${this._value.join(`,`)}
117
+ ${a.n(this.inputRef)}
118
+ />
119
+ `}renderSingleOrMultipleValues(){if(!this.multiple&&this._hasTextInput)return e.h;let t=!this.multiple,n=this.renderValueTag(s.i(this.options,this._value[0])),r=this.tagPlacement===`outside`,i=e._`
120
+ <ul role="list" class="pkt-combobox__tag-list">
121
+ ${o.t(this._value,e=>e,(t,n)=>{let i=s.i(this.options,t),a=i?.tagSkinColor;return e._`
122
+ <li
123
+ role="listitem"
124
+ @click=${r?e.h:e=>e.stopPropagation()}
125
+ @mousedown=${r?e.h:e=>e.preventDefault()}
126
+ >
127
+ <pkt-tag
128
+ skin=${a||`blue-dark`}
129
+ ?closeTag=${!this.disabled}
130
+ .buttonTabindex=${r?void 0:-1}
131
+ @close=${()=>this.handleTagRemove(t)}
132
+ @keydown=${r?e.h:e=>this.handleTagKeydown(e,n)}
133
+ >
134
+ ${this.renderValueTag(i)}
135
+ </pkt-tag>
136
+ </li>
137
+ `})}
138
+ </ul>
139
+ `;return!t&&this._value.length===0?e.h:t?n:i}renderValueTag(t){if(!t)return``;switch(this.displayValueAs){case`prefixAndValue`:return e._`<span class="pkt-combobox__value">${t.prefix||``} ${t.value}</span>`;case`value`:return e._`<span class="pkt-combobox__value">${t.value}</span>`;default:return e._`<span class="pkt-combobox__value">${t.label||t.value}</span>`}}};try{e.d(`pkt-combobox`)(S)}catch{console.warn(`Forsøker å definere <pkt-combobox>, men den er allerede definert`)}var C=S;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return C}});
@@ -18,7 +18,7 @@ export interface IPktAlert extends IPktStringsProps<'alert' | 'generic'> {
18
18
  }
19
19
  export declare class PktAlert extends PktElementWithSlot<IPktAlert> implements IPktAlert {
20
20
  constructor();
21
- compact: boolean;
21
+ compact: false;
22
22
  title: string;
23
23
  skin: TAlertSkin;
24
24
  ariaLive: TAriaLive;
@@ -2,15 +2,15 @@ import { _ as e, d as t, h as n, l as r, n as i, s as a, t as o, u as s } from "
2
2
  import { t as c } from "./class-map-D5GHsely.js";
3
3
  import { t as l } from "./if-defined-BNXGXCwT.js";
4
4
  import { r as ee } from "./element-with-slot-D_OKDlYo.js";
5
+ import "./calendar-DWSW_GeN.js";
5
6
  import "./icon-B2v30QUk.js";
6
7
  import { n as u, t as d } from "./ref-37-yxmc4.js";
7
8
  import { a as f, c as p, d as m, h, i as g, m as _, n as v, r as y, s as b, t as x, u as S } from "./converters-CkjLSYpa.js";
8
- import "./calendar-KUQ1dFeX.js";
9
9
  import "./tag-DoUC99hn.js";
10
10
  import { t as C } from "./repeat-DntD73oB.js";
11
11
  import { n as w, t as T } from "./utils-BwF4QSrq.js";
12
12
  import { t as E } from "./input-element-BTzuDh4h.js";
13
- import "./input-wrapper-CvFMiqIt.js";
13
+ import "./input-wrapper-B5GdwzAM.js";
14
14
  //#region src/components/datepicker/date-tags.ts
15
15
  var D = class extends o {
16
16
  constructor(...e) {
@@ -1,4 +1,4 @@
1
- const e=require("./element-CewjrA4g.cjs"),t=require("./class-map-B0FX3YsK.cjs"),n=require("./if-defined-CjRKmMQs.cjs"),r=require("./element-with-slot-MCvSBwUv.cjs");require("./icon-Clz68-Kz.cjs");const i=require("./ref-HT6KRjxp.cjs"),a=require("./converters-BJ9Fe0kW.cjs");require("./calendar-BuSfyUR9.cjs"),require("./tag-CQEyjF32.cjs");const o=require("./repeat-Ddge5HTp.cjs"),s=require("./utils-63cRpWut.cjs"),c=require("./input-element-BdIWsDl-.cjs");require("./input-wrapper-BIrQijWT.cjs");var l=class extends e.t{constructor(...e){super(...e),this.dates=[],this.dateformat=`dd.MM.yyyy`,this.className=`pkt-datepicker__tags`,this.idBase=s.n()}render(){return this.classes={"pkt-date-tags":!0,[this.className]:!0},e._`
1
+ const e=require("./element-CewjrA4g.cjs"),t=require("./class-map-B0FX3YsK.cjs"),n=require("./if-defined-CjRKmMQs.cjs"),r=require("./element-with-slot-MCvSBwUv.cjs");require("./calendar-CtfdBqJN.cjs"),require("./icon-Clz68-Kz.cjs");const i=require("./ref-HT6KRjxp.cjs"),a=require("./converters-BJ9Fe0kW.cjs");require("./tag-CQEyjF32.cjs");const o=require("./repeat-Ddge5HTp.cjs"),s=require("./utils-63cRpWut.cjs"),c=require("./input-element-BdIWsDl-.cjs");require("./input-wrapper-BmPdpY4N.cjs");var l=class extends e.t{constructor(...e){super(...e),this.dates=[],this.dateformat=`dd.MM.yyyy`,this.className=`pkt-datepicker__tags`,this.idBase=s.n()}render(){return this.classes={"pkt-date-tags":!0,[this.className]:!0},e._`
2
2
  <div class=${t.t(this.classes)} aria-live="polite">
3
3
  ${Array.isArray(this.dates)&&this.dates[0]?o.t(a.h((this.dates??[]).filter(Boolean)),e=>e,t=>e._` <pkt-tag
4
4
  id=${this.idBase+t+`-tag`}