@oslokommune/punkt-elements 13.4.1 → 13.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/calendar-32W9p9uc.cjs +115 -0
  3. package/dist/{calendar-DevQhOup.js → calendar-CJSxvwAq.js} +353 -340
  4. package/dist/{card-uccD6Pnv.cjs → card-BUITGoqX.cjs} +10 -10
  5. package/dist/{card-BI1NZONj.js → card-Dtw26f7i.js} +96 -76
  6. package/dist/checkbox-Gn7Wtk9h.cjs +31 -0
  7. package/dist/checkbox-ym7z6cpt.js +142 -0
  8. package/dist/{combobox-BhcqC30d.cjs → combobox-DjO0RMUB.cjs} +1 -1
  9. package/dist/{combobox-D9dGKWuZ.js → combobox-yE4aYhTi.js} +1 -1
  10. package/dist/{datepicker-CYOn3tRm.js → datepicker-BJKJBoy_.js} +102 -59
  11. package/dist/datepicker-CmTrG5GE.cjs +164 -0
  12. package/dist/index.d.ts +9 -2
  13. package/dist/pkt-calendar.cjs +1 -1
  14. package/dist/pkt-calendar.js +1 -1
  15. package/dist/pkt-card.cjs +1 -1
  16. package/dist/pkt-card.js +1 -1
  17. package/dist/pkt-checkbox.cjs +1 -1
  18. package/dist/pkt-checkbox.js +1 -1
  19. package/dist/pkt-combobox.cjs +1 -1
  20. package/dist/pkt-combobox.js +1 -1
  21. package/dist/pkt-datepicker.cjs +1 -1
  22. package/dist/pkt-datepicker.js +1 -1
  23. package/dist/pkt-index.cjs +1 -1
  24. package/dist/pkt-index.js +6 -6
  25. package/package.json +3 -3
  26. package/src/components/calendar/calendar.accessibility.test.ts +111 -0
  27. package/src/components/calendar/calendar.constraints.test.ts +110 -0
  28. package/src/components/calendar/calendar.core.test.ts +367 -0
  29. package/src/components/calendar/calendar.interaction.test.ts +139 -0
  30. package/src/components/calendar/calendar.selection.test.ts +273 -0
  31. package/src/components/calendar/calendar.ts +74 -42
  32. package/src/components/card/card.test.ts +606 -0
  33. package/src/components/card/card.ts +24 -1
  34. package/src/components/checkbox/checkbox.test.ts +535 -0
  35. package/src/components/checkbox/checkbox.ts +44 -1
  36. package/src/components/combobox/combobox.test.ts +737 -0
  37. package/src/components/combobox/combobox.ts +1 -1
  38. package/src/components/datepicker/datepicker.accessibility.test.ts +193 -0
  39. package/src/components/datepicker/datepicker.core.test.ts +322 -0
  40. package/src/components/datepicker/datepicker.input.test.ts +268 -0
  41. package/src/components/datepicker/datepicker.selection.test.ts +286 -0
  42. package/src/components/datepicker/datepicker.ts +121 -19
  43. package/src/components/datepicker/datepicker.validation.test.ts +176 -0
  44. package/dist/calendar-BZe2D4Sr.cjs +0 -108
  45. package/dist/checkbox-CTRbpbye.js +0 -120
  46. package/dist/checkbox-wJ26voZd.cjs +0 -30
  47. package/dist/datepicker-B9rhz_AF.cjs +0 -154
@@ -1,7 +1,7 @@
1
- "use strict";const l=require("./class-map-BBG2gMX4.cjs"),p=require("./if-defined-Cni-RHLS.cjs"),t=require("./element-6DBpyGQm.cjs"),g=require("./pkt-slot-controller-BzddBp7z.cjs"),c=require("./ref-iJtiv3o2.cjs");require("./icon-B_ryAy4Q.cjs");require("./tag-Bbs0U_Au.cjs");const k={layout:{default:"vertical"},skin:{default:"outlined"},padding:{default:"default"}},h={props:k};var u=Object.defineProperty,m=Object.getOwnPropertyDescriptor,e=(d,a,i,s)=>{for(var r=s>1?void 0:s?m(a,i):a,n=d.length-1,o;n>=0;n--)(o=d[n])&&(r=(s?o(a,i,r):o(r))||r);return s&&r&&u(a,i,r),r};exports.PktCard=class extends t.PktElement{constructor(){super(),this.defaultSlot=c.e(),this.ariaLabel="",this.metaLead=null,this.borderOnHover=!0,this.clickCardLink=null,this.metaTrail=null,this.layout=h.props.layout.default,this.heading="",this.headinglevel=3,this.image={src:"",alt:""},this.imageShape="square",this.openLinkInNewTab=!1,this.padding=h.props.padding.default,this.skin=h.props.skin.default,this.subheading="",this.tagPosition="top",this.tags=[],this.slotController=new g.PktSlotController(this,this.defaultSlot)}connectedCallback(){super.connectedCallback()}render(){var r,n;const a={"pkt-card":!0,[`pkt-card--${this.skin}`]:this.skin,[`pkt-card--${this.layout}`]:this.layout,[`pkt-card--padding-${this.padding}`]:this.padding,"pkt-card--border-on-hover":this.borderOnHover},i=((r=this.ariaLabel)==null?void 0:r.trim())||(this.heading?`${this.heading} lenkekort`:"lenkekort"),s=((n=this.ariaLabel)==null?void 0:n.trim())||(this.heading?this.heading:"kort");return t.x`
1
+ "use strict";const p=require("./class-map-BBG2gMX4.cjs"),h=require("./if-defined-Cni-RHLS.cjs"),t=require("./element-6DBpyGQm.cjs"),g=require("./pkt-slot-controller-BzddBp7z.cjs"),c=require("./ref-iJtiv3o2.cjs");require("./icon-B_ryAy4Q.cjs");require("./tag-Bbs0U_Au.cjs");require("./heading-BRE_iFtR.cjs");const k={layout:{default:"vertical"},skin:{type:["outlined","outlined-beige","gray","blue","beige","green"],default:"outlined"},padding:{default:"default"}},o={props:k};var u=Object.defineProperty,m=Object.getOwnPropertyDescriptor,e=(i,a,s,n)=>{for(var r=n>1?void 0:n?m(a,s):a,d=i.length-1,l;d>=0;d--)(l=i[d])&&(r=(n?l(a,s,r):l(r))||r);return n&&r&&u(a,s,r),r};exports.PktCard=class extends t.PktElement{constructor(){super(),this.defaultSlot=c.e(),this.ariaLabel="",this.metaLead=null,this.borderOnHover=!0,this.clickCardLink=null,this.metaTrail=null,this.layout=o.props.layout.default,this.heading="",this.headinglevel=3,this.image={src:"",alt:""},this.imageShape="square",this.openLinkInNewTab=!1,this.padding=o.props.padding.default,this.skin=o.props.skin.default,this.subheading="",this.tagPosition="top",this.tags=[],this.slotController=new g.PktSlotController(this,this.defaultSlot)}connectedCallback(){super.connectedCallback()}render(){var r,d;const a={"pkt-card":!0,[`pkt-card--${this.skin}`]:this.skin,[`pkt-card--${this.layout}`]:this.layout,[`pkt-card--padding-${this.padding}`]:this.padding,"pkt-card--border-on-hover":this.borderOnHover},s=((r=this.ariaLabel)==null?void 0:r.trim())||(this.heading?`${this.heading} lenkekort`:"lenkekort"),n=((d=this.ariaLabel)==null?void 0:d.trim())||(this.heading?this.heading:"kort");return t.x`
2
2
  <article
3
- class=${l.e(a)}
4
- aria-label=${p.o(this.clickCardLink?i:s)}
3
+ class=${p.e(a)}
4
+ aria-label=${h.o(this.clickCardLink?s:n)}
5
5
  >
6
6
  ${this.renderImage()}
7
7
  <div class="pkt-card__wrapper">
@@ -14,7 +14,7 @@
14
14
  </article>
15
15
  `}renderImage(){const a={"pkt-card__image":!0,[`pkt-card__image-${this.imageShape}`]:this.imageShape};return t.x`
16
16
  ${this.image.src&&t.x`
17
- <div class=${l.e(a)}>
17
+ <div class=${p.e(a)}>
18
18
  <img src=${this.image.src} alt=${this.image.alt||""} />
19
19
  </div>
20
20
  `}
@@ -58,19 +58,19 @@
58
58
  `}renderTags(){const a={"pkt-card__tags":!0,[`pkt-card__tags-${this.tagPosition}`]:this.tagPosition};return t.x`
59
59
  ${this.tags.length>0?t.x`
60
60
  <div
61
- class=${l.e(a)}
61
+ class=${p.e(a)}
62
62
  role="list"
63
63
  aria-label=${this.tags.length>1?"merkelapper":"merkelapp"}
64
64
  >
65
- ${this.tags.map(i=>t.x`
65
+ ${this.tags.map(s=>t.x`
66
66
  <pkt-tag
67
67
  role="listitem"
68
68
  textStyle="normal-text"
69
69
  size="medium"
70
- skin=${p.o(i.skin)}
71
- iconName=${p.o(i.iconName)}
70
+ skin=${h.o(s.skin)}
71
+ iconName=${h.o(s.iconName)}
72
72
  >
73
- <span>${i.text}</span>
73
+ <span>${s.text}</span>
74
74
  </pkt-tag>
75
75
  `)}
76
76
  </div>
@@ -84,4 +84,4 @@
84
84
  ${this.metaTrail?t.x`<span class="pkt-card__metadata-trail">${this.metaTrail}</span>`:t.E}
85
85
  </footer>
86
86
  `:t.E}
87
- `}};e([t.n({type:String})],exports.PktCard.prototype,"ariaLabel",2);e([t.n({type:String})],exports.PktCard.prototype,"metaLead",2);e([t.n({type:Boolean})],exports.PktCard.prototype,"borderOnHover",2);e([t.n({type:String,reflect:!0})],exports.PktCard.prototype,"clickCardLink",2);e([t.n({type:String})],exports.PktCard.prototype,"metaTrail",2);e([t.n({type:String})],exports.PktCard.prototype,"layout",2);e([t.n({type:String})],exports.PktCard.prototype,"heading",2);e([t.n({type:Number})],exports.PktCard.prototype,"headinglevel",2);e([t.n({type:Object})],exports.PktCard.prototype,"image",2);e([t.n({type:String})],exports.PktCard.prototype,"imageShape",2);e([t.n({type:Boolean})],exports.PktCard.prototype,"openLinkInNewTab",2);e([t.n({type:String})],exports.PktCard.prototype,"padding",2);e([t.n({type:String})],exports.PktCard.prototype,"skin",2);e([t.n({type:String})],exports.PktCard.prototype,"subheading",2);e([t.n({type:String})],exports.PktCard.prototype,"tagPosition",2);e([t.n({type:Array})],exports.PktCard.prototype,"tags",2);exports.PktCard=e([t.t("pkt-card")],exports.PktCard);
87
+ `}};e([t.n({type:String})],exports.PktCard.prototype,"ariaLabel",2);e([t.n({type:String})],exports.PktCard.prototype,"metaLead",2);e([t.n({type:Boolean})],exports.PktCard.prototype,"borderOnHover",2);e([t.n({type:String,reflect:!0})],exports.PktCard.prototype,"clickCardLink",2);e([t.n({type:String})],exports.PktCard.prototype,"metaTrail",2);e([t.n({type:String})],exports.PktCard.prototype,"layout",2);e([t.n({type:String})],exports.PktCard.prototype,"heading",2);e([t.n({type:Number})],exports.PktCard.prototype,"headinglevel",2);e([t.n({type:Object})],exports.PktCard.prototype,"image",2);e([t.n({type:String})],exports.PktCard.prototype,"imageShape",2);e([t.n({type:Boolean})],exports.PktCard.prototype,"openLinkInNewTab",2);e([t.n({type:String})],exports.PktCard.prototype,"padding",2);e([t.n({type:String,converter:{fromAttribute:i=>{const a=o.props.skin.type;return i&&a.includes(i)?i:(i&&!a.includes(i)&&console.warn(`Invalid skin value "${i}". Using default skin "${o.props.skin.default}".`),o.props.skin.default)},toAttribute:i=>i}})],exports.PktCard.prototype,"skin",2);e([t.n({type:String})],exports.PktCard.prototype,"subheading",2);e([t.n({type:String})],exports.PktCard.prototype,"tagPosition",2);e([t.n({type:Array})],exports.PktCard.prototype,"tags",2);exports.PktCard=e([t.t("pkt-card")],exports.PktCard);
@@ -1,35 +1,44 @@
1
- import { e as g } from "./class-map-BpTj9gtz.js";
2
- import { o as c } from "./if-defined-CmuO4Vz9.js";
3
- import { P as m, E as d, x as t, n as i, a as u } from "./element-CgEWt74-.js";
1
+ import { e as c } from "./class-map-BpTj9gtz.js";
2
+ import { o as k } from "./if-defined-CmuO4Vz9.js";
3
+ import { P as u, E as d, x as t, n as r, a as m } from "./element-CgEWt74-.js";
4
4
  import { P as $ } from "./pkt-slot-controller-BPGj-LC5.js";
5
5
  import { e as y, n as _ } from "./ref-BBYSqgeW.js";
6
6
  import "./icon-CC1js8eR.js";
7
7
  import "./tag-DyXzTY68.js";
8
+ import "./heading-D6jXE_Mz.js";
8
9
  const b = {
9
10
  layout: {
10
11
  default: "vertical"
11
12
  },
12
13
  skin: {
14
+ type: [
15
+ "outlined",
16
+ "outlined-beige",
17
+ "gray",
18
+ "blue",
19
+ "beige",
20
+ "green"
21
+ ],
13
22
  default: "outlined"
14
23
  },
15
24
  padding: {
16
25
  default: "default"
17
26
  }
18
- }, k = {
27
+ }, p = {
19
28
  props: b
20
29
  };
21
- var f = Object.defineProperty, S = Object.getOwnPropertyDescriptor, a = (r, s, o, p) => {
22
- for (var n = p > 1 ? void 0 : p ? S(s, o) : s, l = r.length - 1, h; l >= 0; l--)
23
- (h = r[l]) && (n = (p ? h(s, o, n) : h(n)) || n);
24
- return p && n && f(s, o, n), n;
30
+ var f = Object.defineProperty, S = Object.getOwnPropertyDescriptor, i = (e, s, l, o) => {
31
+ for (var n = o > 1 ? void 0 : o ? S(s, l) : s, h = e.length - 1, g; h >= 0; h--)
32
+ (g = e[h]) && (n = (o ? g(s, l, n) : g(n)) || n);
33
+ return o && n && f(s, l, n), n;
25
34
  };
26
- let e = class extends m {
35
+ let a = class extends u {
27
36
  //Constructor
28
37
  constructor() {
29
- super(), this.defaultSlot = y(), this.ariaLabel = "", this.metaLead = null, this.borderOnHover = !0, this.clickCardLink = null, this.metaTrail = null, this.layout = k.props.layout.default, this.heading = "", this.headinglevel = 3, this.image = {
38
+ super(), this.defaultSlot = y(), this.ariaLabel = "", this.metaLead = null, this.borderOnHover = !0, this.clickCardLink = null, this.metaTrail = null, this.layout = p.props.layout.default, this.heading = "", this.headinglevel = 3, this.image = {
30
39
  src: "",
31
40
  alt: ""
32
- }, this.imageShape = "square", this.openLinkInNewTab = !1, this.padding = k.props.padding.default, this.skin = k.props.skin.default, this.subheading = "", this.tagPosition = "top", this.tags = [], this.slotController = new $(this, this.defaultSlot);
41
+ }, this.imageShape = "square", this.openLinkInNewTab = !1, this.padding = p.props.padding.default, this.skin = p.props.skin.default, this.subheading = "", this.tagPosition = "top", this.tags = [], this.slotController = new $(this, this.defaultSlot);
33
42
  }
34
43
  connectedCallback() {
35
44
  super.connectedCallback();
@@ -38,18 +47,18 @@ let e = class extends m {
38
47
  // Main render method
39
48
  // prettier-ignore
40
49
  render() {
41
- var p, n;
42
- const r = {
50
+ var o, n;
51
+ const e = {
43
52
  "pkt-card": !0,
44
53
  [`pkt-card--${this.skin}`]: this.skin,
45
54
  [`pkt-card--${this.layout}`]: this.layout,
46
55
  [`pkt-card--padding-${this.padding}`]: this.padding,
47
56
  "pkt-card--border-on-hover": this.borderOnHover
48
- }, s = ((p = this.ariaLabel) == null ? void 0 : p.trim()) || (this.heading ? `${this.heading} lenkekort` : "lenkekort"), o = ((n = this.ariaLabel) == null ? void 0 : n.trim()) || (this.heading ? this.heading : "kort");
57
+ }, s = ((o = this.ariaLabel) == null ? void 0 : o.trim()) || (this.heading ? `${this.heading} lenkekort` : "lenkekort"), l = ((n = this.ariaLabel) == null ? void 0 : n.trim()) || (this.heading ? this.heading : "kort");
49
58
  return t`
50
59
  <article
51
- class=${g(r)}
52
- aria-label=${c(this.clickCardLink ? s : o)}
60
+ class=${c(e)}
61
+ aria-label=${k(this.clickCardLink ? s : l)}
53
62
  >
54
63
  ${this.renderImage()}
55
64
  <div class="pkt-card__wrapper">
@@ -64,13 +73,13 @@ let e = class extends m {
64
73
  }
65
74
  // Render methods for different parts of the card
66
75
  renderImage() {
67
- const r = {
76
+ const e = {
68
77
  "pkt-card__image": !0,
69
78
  [`pkt-card__image-${this.imageShape}`]: this.imageShape
70
79
  };
71
80
  return t`
72
81
  ${this.image.src && t`
73
- <div class=${g(r)}>
82
+ <div class=${c(e)}>
74
83
  <img src=${this.image.src} alt=${this.image.alt || ""} />
75
84
  </div>
76
85
  `}
@@ -119,9 +128,9 @@ let e = class extends m {
119
128
  // Render header
120
129
  // prettier-ignore
121
130
  renderHeader() {
122
- const r = !!this.heading || !!this.subheading;
131
+ const e = !!this.heading || !!this.subheading;
123
132
  return t`
124
- ${r ? t`
133
+ ${e ? t`
125
134
  <header class="pkt-card__header">
126
135
  ${this.renderHeading()}
127
136
  ${this.renderLinkHeading()}
@@ -131,14 +140,14 @@ let e = class extends m {
131
140
  `;
132
141
  }
133
142
  renderTags() {
134
- const r = {
143
+ const e = {
135
144
  "pkt-card__tags": !0,
136
145
  [`pkt-card__tags-${this.tagPosition}`]: this.tagPosition
137
146
  };
138
147
  return t`
139
148
  ${this.tags.length > 0 ? t`
140
149
  <div
141
- class=${g(r)}
150
+ class=${c(e)}
142
151
  role="list"
143
152
  aria-label=${this.tags.length > 1 ? "merkelapper" : "merkelapp"}
144
153
  >
@@ -148,8 +157,8 @@ let e = class extends m {
148
157
  role="listitem"
149
158
  textStyle="normal-text"
150
159
  size="medium"
151
- skin=${c(s.skin)}
152
- iconName=${c(s.iconName)}
160
+ skin=${k(s.skin)}
161
+ iconName=${k(s.iconName)}
153
162
  >
154
163
  <span>${s.text}</span>
155
164
  </pkt-tag>
@@ -175,57 +184,68 @@ let e = class extends m {
175
184
  `;
176
185
  }
177
186
  };
178
- a([
179
- i({ type: String })
180
- ], e.prototype, "ariaLabel", 2);
181
- a([
182
- i({ type: String })
183
- ], e.prototype, "metaLead", 2);
184
- a([
185
- i({ type: Boolean })
186
- ], e.prototype, "borderOnHover", 2);
187
- a([
188
- i({ type: String, reflect: !0 })
189
- ], e.prototype, "clickCardLink", 2);
190
- a([
191
- i({ type: String })
192
- ], e.prototype, "metaTrail", 2);
193
- a([
194
- i({ type: String })
195
- ], e.prototype, "layout", 2);
196
- a([
197
- i({ type: String })
198
- ], e.prototype, "heading", 2);
199
- a([
200
- i({ type: Number })
201
- ], e.prototype, "headinglevel", 2);
202
- a([
203
- i({ type: Object })
204
- ], e.prototype, "image", 2);
205
- a([
206
- i({ type: String })
207
- ], e.prototype, "imageShape", 2);
208
- a([
209
- i({ type: Boolean })
210
- ], e.prototype, "openLinkInNewTab", 2);
211
- a([
212
- i({ type: String })
213
- ], e.prototype, "padding", 2);
214
- a([
215
- i({ type: String })
216
- ], e.prototype, "skin", 2);
217
- a([
218
- i({ type: String })
219
- ], e.prototype, "subheading", 2);
220
- a([
221
- i({ type: String })
222
- ], e.prototype, "tagPosition", 2);
223
- a([
224
- i({ type: Array })
225
- ], e.prototype, "tags", 2);
226
- e = a([
227
- u("pkt-card")
228
- ], e);
187
+ i([
188
+ r({ type: String })
189
+ ], a.prototype, "ariaLabel", 2);
190
+ i([
191
+ r({ type: String })
192
+ ], a.prototype, "metaLead", 2);
193
+ i([
194
+ r({ type: Boolean })
195
+ ], a.prototype, "borderOnHover", 2);
196
+ i([
197
+ r({ type: String, reflect: !0 })
198
+ ], a.prototype, "clickCardLink", 2);
199
+ i([
200
+ r({ type: String })
201
+ ], a.prototype, "metaTrail", 2);
202
+ i([
203
+ r({ type: String })
204
+ ], a.prototype, "layout", 2);
205
+ i([
206
+ r({ type: String })
207
+ ], a.prototype, "heading", 2);
208
+ i([
209
+ r({ type: Number })
210
+ ], a.prototype, "headinglevel", 2);
211
+ i([
212
+ r({ type: Object })
213
+ ], a.prototype, "image", 2);
214
+ i([
215
+ r({ type: String })
216
+ ], a.prototype, "imageShape", 2);
217
+ i([
218
+ r({ type: Boolean })
219
+ ], a.prototype, "openLinkInNewTab", 2);
220
+ i([
221
+ r({ type: String })
222
+ ], a.prototype, "padding", 2);
223
+ i([
224
+ r({
225
+ type: String,
226
+ converter: {
227
+ fromAttribute: (e) => {
228
+ const s = p.props.skin.type;
229
+ return e && s.includes(e) ? e : (e && !s.includes(e) && console.warn(
230
+ `Invalid skin value "${e}". Using default skin "${p.props.skin.default}".`
231
+ ), p.props.skin.default);
232
+ },
233
+ toAttribute: (e) => e
234
+ }
235
+ })
236
+ ], a.prototype, "skin", 2);
237
+ i([
238
+ r({ type: String })
239
+ ], a.prototype, "subheading", 2);
240
+ i([
241
+ r({ type: String })
242
+ ], a.prototype, "tagPosition", 2);
243
+ i([
244
+ r({ type: Array })
245
+ ], a.prototype, "tags", 2);
246
+ a = i([
247
+ m("pkt-card")
248
+ ], a);
229
249
  export {
230
- e as P
250
+ a as P
231
251
  };
@@ -0,0 +1,31 @@
1
+ "use strict";const e=require("./element-6DBpyGQm.cjs"),r=require("./input-element-C4xJoM-X.cjs"),o=require("./ref-iJtiv3o2.cjs"),n=require("./class-map-BBG2gMX4.cjs");var k=Object.defineProperty,u=Object.getOwnPropertyDescriptor,i=(p,t,h,a)=>{for(var s=a>1?void 0:a?u(t,h):t,c=p.length-1,l;c>=0;c--)(l=p[c])&&(s=(a?l(t,h,s):l(s))||s);return a&&s&&k(t,h,s),s};exports.PktCheckbox=class extends r.PktInputElement{constructor(){super(...arguments),this.inputRef=o.e(),this.value="",this.checkHelptext=null,this.defaultChecked=!1,this.hasTile=!1,this.isSwitch=!1,this.labelPosition="right",this.hideLabel=!1,this.checked=null,this.type="checkbox",this.tagText=null,this.optionalTag=!1,this.optionalText="Valgfritt",this.requiredTag=!1,this.requiredText="Må fylles ut"}connectedCallback(){super.connectedCallback()}attributeChangedCallback(t,h,a){t==="defaultChecked"&&!this.checked&&(this.checked=this.defaultChecked),t==="checked"&&(this.checked=this.checked===""||this.checked==="true"||this.checked===!0),super.attributeChangedCallback(t,h,a)}firstUpdated(t){t.has("defaultChecked")&&!this.checked&&(this.checked=this.defaultChecked),super.firstUpdated(t)}updated(t){t.has("defaultChecked")&&!this.checked&&(this.checked=this.defaultChecked),super.updated(t)}render(){const t=n.e({"pkt-input-check__input":!0,"pkt-input-check__input--tile":this.hasTile,"pkt-input-check__input--tile-disabled":this.disabled&&this.hasTile}),h=n.e({"pkt-input-check__input-checkbox":!0,"pkt-input-check__input-checkbox--error":this.hasError}),a=n.e({"pkt-input-check__input-label":!0,"pkt-input-check__input-label--disabled":this.disabled,"pkt-input-check__input-label--left":this.labelPosition==="left","pkt-input-check__input-label--right":this.labelPosition==="right","pkt-sr-only":this.hideLabel}),s="pkt-tag pkt-tag--small pkt-tag--thin-text",c=()=>e.x`
2
+ ${this.tagText?e.x`<span class=${s+" pkt-tag--gray"}>${this.tagText}</span>`:e.E}
3
+ ${this.optionalTag?e.x`<span class=${s+" pkt-tag--blue-light"}>${this.optionalText}</span>`:e.E}
4
+ ${this.requiredTag?e.x`<span class=${s+" pkt-tag--beige"}>${this.requiredText}</span>`:e.E}
5
+ `,l=()=>e.x`
6
+ <label class=${a} for=${this.id+"-internal"}>
7
+ ${this.label} ${c()}
8
+ ${this.checkHelptext?e.x`<div class="pkt-input-check__input-helptext">${this.checkHelptext}</div>`:e.E}
9
+ </label>
10
+ `;return e.x`
11
+ <div class="pkt-input-check">
12
+ <div class=${t}>
13
+ ${this.labelPosition==="left"?l():e.E}
14
+ <input
15
+ id=${this.id+"-internal"}
16
+ class=${h}
17
+ type="checkbox"
18
+ ?disabled=${this.disabled}
19
+ name=${this.name+"-internal"}
20
+ ${o.n(this.inputRef)}
21
+ @change=${this.handleChange}
22
+ @click=${this.handleClick}
23
+ @blur=${this.onBlur}
24
+ @focus=${this.onFocus}
25
+ ?checked=${this.checked}
26
+ role=${this.isSwitch?"switch":"checkbox"}
27
+ />
28
+ ${this.labelPosition==="right"?l():e.E}
29
+ </div>
30
+ </div>
31
+ `}handleClick(t){if(this.disabled)return t.preventDefault(),t.stopImmediatePropagation(),!1}handleChange(t){if(this.disabled)return t.preventDefault(),t.stopImmediatePropagation(),!1;this.toggleChecked(t)}toggleChecked(t){if(this.disabled){t.preventDefault(),t.stopImmediatePropagation();return}const h=t.target;if(h&&h.disabled){t.preventDefault(),t.stopImmediatePropagation();return}t.stopImmediatePropagation(),this.touched=!0,this.inputRef.value&&(this.checked=this.inputRef.value.matches(":checked"),this.valueChecked(this.checked))}};i([e.n({type:String,reflect:!0})],exports.PktCheckbox.prototype,"value",2);i([e.n({type:String})],exports.PktCheckbox.prototype,"checkHelptext",2);i([e.n({type:Boolean})],exports.PktCheckbox.prototype,"defaultChecked",2);i([e.n({type:Boolean})],exports.PktCheckbox.prototype,"hasTile",2);i([e.n({type:Boolean})],exports.PktCheckbox.prototype,"isSwitch",2);i([e.n({type:String})],exports.PktCheckbox.prototype,"labelPosition",2);i([e.n({type:Boolean})],exports.PktCheckbox.prototype,"hideLabel",2);i([e.n({type:Boolean,reflect:!0})],exports.PktCheckbox.prototype,"checked",2);i([e.n({type:String,reflect:!0})],exports.PktCheckbox.prototype,"type",2);i([e.n({type:String})],exports.PktCheckbox.prototype,"tagText",2);i([e.n({type:Boolean})],exports.PktCheckbox.prototype,"optionalTag",2);i([e.n({type:String})],exports.PktCheckbox.prototype,"optionalText",2);i([e.n({type:Boolean})],exports.PktCheckbox.prototype,"requiredTag",2);i([e.n({type:String})],exports.PktCheckbox.prototype,"requiredText",2);exports.PktCheckbox=i([e.t("pkt-checkbox")],exports.PktCheckbox);
@@ -0,0 +1,142 @@
1
+ import { E as n, x as c, n as s, a as u } from "./element-CgEWt74-.js";
2
+ import { P as k } from "./input-element-NnrDmp4r.js";
3
+ import { e as f, n as g } from "./ref-BBYSqgeW.js";
4
+ import { e as d } from "./class-map-BpTj9gtz.js";
5
+ var b = Object.defineProperty, y = Object.getOwnPropertyDescriptor, i = (t, a, p, h) => {
6
+ for (var l = h > 1 ? void 0 : h ? y(a, p) : a, o = t.length - 1, r; o >= 0; o--)
7
+ (r = t[o]) && (l = (h ? r(a, p, l) : r(l)) || l);
8
+ return h && l && b(a, p, l), l;
9
+ };
10
+ let e = class extends k {
11
+ constructor() {
12
+ super(...arguments), this.inputRef = f(), this.value = "", this.checkHelptext = null, this.defaultChecked = !1, this.hasTile = !1, this.isSwitch = !1, this.labelPosition = "right", this.hideLabel = !1, this.checked = null, this.type = "checkbox", this.tagText = null, this.optionalTag = !1, this.optionalText = "Valgfritt", this.requiredTag = !1, this.requiredText = "Må fylles ut";
13
+ }
14
+ connectedCallback() {
15
+ super.connectedCallback();
16
+ }
17
+ attributeChangedCallback(t, a, p) {
18
+ t === "defaultChecked" && !this.checked && (this.checked = this.defaultChecked), t === "checked" && (this.checked = this.checked === "" || this.checked === "true" || this.checked === !0), super.attributeChangedCallback(t, a, p);
19
+ }
20
+ firstUpdated(t) {
21
+ t.has("defaultChecked") && !this.checked && (this.checked = this.defaultChecked), super.firstUpdated(t);
22
+ }
23
+ updated(t) {
24
+ t.has("defaultChecked") && !this.checked && (this.checked = this.defaultChecked), super.updated(t);
25
+ }
26
+ render() {
27
+ const t = d({
28
+ "pkt-input-check__input": !0,
29
+ "pkt-input-check__input--tile": this.hasTile,
30
+ "pkt-input-check__input--tile-disabled": this.disabled && this.hasTile
31
+ }), a = d({
32
+ "pkt-input-check__input-checkbox": !0,
33
+ "pkt-input-check__input-checkbox--error": this.hasError
34
+ }), p = d({
35
+ "pkt-input-check__input-label": !0,
36
+ "pkt-input-check__input-label--disabled": this.disabled,
37
+ "pkt-input-check__input-label--left": this.labelPosition === "left",
38
+ "pkt-input-check__input-label--right": this.labelPosition === "right",
39
+ "pkt-sr-only": this.hideLabel
40
+ }), h = "pkt-tag pkt-tag--small pkt-tag--thin-text", l = () => c`
41
+ ${this.tagText ? c`<span class=${h + " pkt-tag--gray"}>${this.tagText}</span>` : n}
42
+ ${this.optionalTag ? c`<span class=${h + " pkt-tag--blue-light"}>${this.optionalText}</span>` : n}
43
+ ${this.requiredTag ? c`<span class=${h + " pkt-tag--beige"}>${this.requiredText}</span>` : n}
44
+ `, o = () => c`
45
+ <label class=${p} for=${this.id + "-internal"}>
46
+ ${this.label} ${l()}
47
+ ${this.checkHelptext ? c`<div class="pkt-input-check__input-helptext">${this.checkHelptext}</div>` : n}
48
+ </label>
49
+ `;
50
+ return c`
51
+ <div class="pkt-input-check">
52
+ <div class=${t}>
53
+ ${this.labelPosition === "left" ? o() : n}
54
+ <input
55
+ id=${this.id + "-internal"}
56
+ class=${a}
57
+ type="checkbox"
58
+ ?disabled=${this.disabled}
59
+ name=${this.name + "-internal"}
60
+ ${g(this.inputRef)}
61
+ @change=${this.handleChange}
62
+ @click=${this.handleClick}
63
+ @blur=${this.onBlur}
64
+ @focus=${this.onFocus}
65
+ ?checked=${this.checked}
66
+ role=${this.isSwitch ? "switch" : "checkbox"}
67
+ />
68
+ ${this.labelPosition === "right" ? o() : n}
69
+ </div>
70
+ </div>
71
+ `;
72
+ }
73
+ handleClick(t) {
74
+ if (this.disabled)
75
+ return t.preventDefault(), t.stopImmediatePropagation(), !1;
76
+ }
77
+ handleChange(t) {
78
+ if (this.disabled)
79
+ return t.preventDefault(), t.stopImmediatePropagation(), !1;
80
+ this.toggleChecked(t);
81
+ }
82
+ toggleChecked(t) {
83
+ if (this.disabled) {
84
+ t.preventDefault(), t.stopImmediatePropagation();
85
+ return;
86
+ }
87
+ const a = t.target;
88
+ if (a && a.disabled) {
89
+ t.preventDefault(), t.stopImmediatePropagation();
90
+ return;
91
+ }
92
+ t.stopImmediatePropagation(), this.touched = !0, this.inputRef.value && (this.checked = this.inputRef.value.matches(":checked"), this.valueChecked(this.checked));
93
+ }
94
+ };
95
+ i([
96
+ s({ type: String, reflect: !0 })
97
+ ], e.prototype, "value", 2);
98
+ i([
99
+ s({ type: String })
100
+ ], e.prototype, "checkHelptext", 2);
101
+ i([
102
+ s({ type: Boolean })
103
+ ], e.prototype, "defaultChecked", 2);
104
+ i([
105
+ s({ type: Boolean })
106
+ ], e.prototype, "hasTile", 2);
107
+ i([
108
+ s({ type: Boolean })
109
+ ], e.prototype, "isSwitch", 2);
110
+ i([
111
+ s({ type: String })
112
+ ], e.prototype, "labelPosition", 2);
113
+ i([
114
+ s({ type: Boolean })
115
+ ], e.prototype, "hideLabel", 2);
116
+ i([
117
+ s({ type: Boolean, reflect: !0 })
118
+ ], e.prototype, "checked", 2);
119
+ i([
120
+ s({ type: String, reflect: !0 })
121
+ ], e.prototype, "type", 2);
122
+ i([
123
+ s({ type: String })
124
+ ], e.prototype, "tagText", 2);
125
+ i([
126
+ s({ type: Boolean })
127
+ ], e.prototype, "optionalTag", 2);
128
+ i([
129
+ s({ type: String })
130
+ ], e.prototype, "optionalText", 2);
131
+ i([
132
+ s({ type: Boolean })
133
+ ], e.prototype, "requiredTag", 2);
134
+ i([
135
+ s({ type: String })
136
+ ], e.prototype, "requiredText", 2);
137
+ e = i([
138
+ u("pkt-checkbox")
139
+ ], e);
140
+ export {
141
+ e as P
142
+ };
@@ -1,4 +1,4 @@
1
- "use strict";const a=require("./element-6DBpyGQm.cjs"),c=require("./if-defined-Cni-RHLS.cjs"),d=require("./state-DPobt-Yz.cjs"),r=require("./ref-iJtiv3o2.cjs"),O=require("./class-map-BBG2gMX4.cjs"),$=require("./repeat-CDsZqct8.cjs"),I=require("./input-element-C4xJoM-X.cjs"),y=require("./pkt-options-controller-CiuBG6Lt.cjs"),w=require("./pkt-slot-controller-BzddBp7z.cjs");require("./input-wrapper-CZ-a00V7.cjs");require("./icon-B_ryAy4Q.cjs");require("./tag-Bbs0U_Au.cjs");require("./listbox-C4supLfR.cjs");const C={displayValueAs:{default:"label"}},V={props:C};var R=Object.defineProperty,S=Object.getOwnPropertyDescriptor,o=(v,e,t,i)=>{for(var s=i>1?void 0:i?S(e,t):e,l=v.length-1,h;l>=0;l--)(h=v[l])&&(s=(i?h(e,t,s):h(s))||s);return i&&s&&R(e,t,s),s};exports.PktCombobox=class extends I.PktInputElement{constructor(){super(),this.helptextSlot=r.e(),this.value="",this.options=[],this.defaultOptions=[],this.allowUserInput=!1,this.typeahead=!1,this.includeSearch=!1,this.searchPlaceholder="",this.multiple=!1,this.maxlength=null,this.displayValueAs=V.props.displayValueAs.default,this.tagPlacement=null,this._options=[],this._isOptionsOpen=!1,this._value=[],this._userInfoMessage="",this._addValueText=null,this._maxIsReached=!1,this._search="",this._inputFocus=!1,this._editingSingleValue=!1,this.inputRef=r.e(),this.arrowRef=r.e(),this.listboxRef=r.e(),this.focusRef=r.e(),this.optionTagRef=r.e(),this.optionsController=new y.PktOptionsSlotController(this),this.slotController=new w.PktSlotController(this,this.helptextSlot),this.slotController.skipOptions=!0}connectedCallback(){var e;if(super.connectedCallback(),document&&document.body.addEventListener("click",t=>{this._isOptionsOpen&&!this.contains(t.target)&&this.handleFocusOut(t)}),this._options=[],this.defaultOptions&&this.defaultOptions.length){const t=((e=this.options)==null?void 0:e.filter(i=>i.userAdded))||[];this.options=[...t,...JSON.parse(JSON.stringify(this.defaultOptions))],this._options=[...this.options]}if(this.optionsController.nodes.length){const t=[];this.optionsController.nodes.forEach(i=>{if(!i.textContent&&!i.getAttribute("value"))return null;const s={value:i.getAttribute("value")||i.textContent||"",label:i.textContent||i.getAttribute("value")||""};i.getAttribute("data-prefix")&&(s.prefix=i.getAttribute("data-prefix")||void 0),i.getAttribute("tagskincolor")&&(s.tagSkinColor=i.getAttribute("tagskincolor")),i.getAttribute("description")&&(s.description=i.getAttribute("description")||void 0),s.fulltext=s.value+s.label+(s.prefix||""),t.push(s)}),t.length&&(this.options=[...t],this._options=[...t])}}updated(e){var t;if(e.has("_value")&&this.valueChanged(this._value,e.get("_value")),e.has("value")&&(Array.isArray(this.value)?this._value=this.value:this.value&&this.multiple?this._value=this.value.split(","):this.value?this._value=[this.value]:this._value=[],!this.multiple&&this._value.length>1&&(this._value=[this._value[0]]),this.isMaxItemsReached()),e.has("defaultOptions")&&this.defaultOptions.length){const i=((t=this.options)==null?void 0:t.filter(s=>s.userAdded))||[];this.options=[...i,...JSON.parse(JSON.stringify(this.defaultOptions))],this._options=[...this.options]}if(e.has("options")&&this.options.length){const s=this._options.filter(l=>l.userAdded).filter(l=>!this.options.some(h=>h.value===l.value));this._options=[...s,...this.options],this._options.forEach(l=>{if(l.value&&!l.label&&(l.label=l.value),l.selected&&!this._value.includes(l.value)){const h=[...this._value];this._value=[...this._value,l.value],this.valueChanged(this._value,h)}l.fulltext=l.value+l.label+(l.prefix||""),l.selected=l.selected||this._value.includes(l.value)})}e.has("_search")&&this.dispatchEvent(new CustomEvent("search",{detail:this._search,bubbles:!1})),super.updated(e)}attributeChangedCallback(e,t,i){e==="value"&&(Array.isArray(this.value)?this._value=this.value:this.value&&this.multiple?this._value=this.value.split(","):this.value?this._value=[this.value]:this._value=[],!this.multiple&&this._value.length>1&&(this._value=[this._value[0]])),e==="options"&&(this._options=this.options,this._options.forEach(s=>{s.value&&!s.label&&(s.label=s.value),s.selected&&!this._value.includes(s.value)&&(this._value=[...this._value,s.value]),s.fulltext=s.value+s.label+(s.prefix||"")}),this._search=""),super.attributeChangedCallback(e,t,i)}render(){return a.x`
1
+ "use strict";const a=require("./element-6DBpyGQm.cjs"),c=require("./if-defined-Cni-RHLS.cjs"),d=require("./state-DPobt-Yz.cjs"),r=require("./ref-iJtiv3o2.cjs"),O=require("./class-map-BBG2gMX4.cjs"),$=require("./repeat-CDsZqct8.cjs"),I=require("./input-element-C4xJoM-X.cjs"),y=require("./pkt-options-controller-CiuBG6Lt.cjs"),w=require("./pkt-slot-controller-BzddBp7z.cjs");require("./input-wrapper-CZ-a00V7.cjs");require("./icon-B_ryAy4Q.cjs");require("./tag-Bbs0U_Au.cjs");require("./listbox-C4supLfR.cjs");const C={displayValueAs:{default:"label"}},V={props:C};var R=Object.defineProperty,S=Object.getOwnPropertyDescriptor,o=(v,e,t,i)=>{for(var s=i>1?void 0:i?S(e,t):e,l=v.length-1,h;l>=0;l--)(h=v[l])&&(s=(i?h(e,t,s):h(s))||s);return i&&s&&R(e,t,s),s};exports.PktCombobox=class extends I.PktInputElement{constructor(){super(),this.helptextSlot=r.e(),this.value="",this.options=[],this.defaultOptions=[],this.allowUserInput=!1,this.typeahead=!1,this.includeSearch=!1,this.searchPlaceholder="",this.multiple=!1,this.maxlength=null,this.displayValueAs=V.props.displayValueAs.default,this.tagPlacement=null,this._options=[],this._isOptionsOpen=!1,this._value=[],this._userInfoMessage="",this._addValueText=null,this._maxIsReached=!1,this._search="",this._inputFocus=!1,this._editingSingleValue=!1,this.inputRef=r.e(),this.arrowRef=r.e(),this.listboxRef=r.e(),this.focusRef=r.e(),this.optionTagRef=r.e(),this.optionsController=new y.PktOptionsSlotController(this),this.slotController=new w.PktSlotController(this,this.helptextSlot),this.slotController.skipOptions=!0}connectedCallback(){var e;if(super.connectedCallback(),document&&document.body.addEventListener("click",t=>{this._isOptionsOpen&&!this.contains(t.target)&&this.handleFocusOut(t)}),this._options=[],this.defaultOptions&&this.defaultOptions.length){const t=((e=this.options)==null?void 0:e.filter(i=>i.userAdded))||[];this.options=[...t,...JSON.parse(JSON.stringify(this.defaultOptions))],this._options=[...this.options]}if(this.optionsController.nodes.length){const t=[];this.optionsController.nodes.forEach(i=>{if(!i.textContent&&!i.getAttribute("value"))return null;const s={value:i.getAttribute("value")||i.textContent||"",label:i.textContent||i.getAttribute("value")||""};i.getAttribute("data-prefix")&&(s.prefix=i.getAttribute("data-prefix")||void 0),i.getAttribute("tagskincolor")&&(s.tagSkinColor=i.getAttribute("tagskincolor")),i.getAttribute("description")&&(s.description=i.getAttribute("description")||void 0),s.fulltext=s.value+s.label+(s.prefix||""),t.push(s)}),t.length&&(this.options=[...t],this._options=[...t])}}updated(e){var t;if(e.has("_value")&&this.valueChanged(this._value,e.get("_value")),e.has("value")&&(Array.isArray(this.value)?this._value=this.value:this.value&&this.multiple?this._value=this.value.split(","):this.value?this._value=[this.value]:this._value=[],!this.multiple&&this._value.length>1&&(this._value=[this._value[0]]),this.isMaxItemsReached()),e.has("defaultOptions")&&this.defaultOptions.length){const i=((t=this.options)==null?void 0:t.filter(s=>s.userAdded))||[];this.options=[...i,...JSON.parse(JSON.stringify(this.defaultOptions))],this._options=[...this.options]}if(e.has("options")){const s=this._options.filter(l=>l.userAdded).filter(l=>!this.options.some(h=>h.value===l.value));this._options=[...s,...this.options],this._options.forEach(l=>{if(l.value&&!l.label&&(l.label=l.value),l.selected&&!this._value.includes(l.value)){const h=[...this._value];this._value=[...this._value,l.value],this.valueChanged(this._value,h)}l.fulltext=l.value+l.label+(l.prefix||""),l.selected=l.selected||this._value.includes(l.value)})}e.has("_search")&&this.dispatchEvent(new CustomEvent("search",{detail:this._search,bubbles:!1})),super.updated(e)}attributeChangedCallback(e,t,i){e==="value"&&(Array.isArray(this.value)?this._value=this.value:this.value&&this.multiple?this._value=this.value.split(","):this.value?this._value=[this.value]:this._value=[],!this.multiple&&this._value.length>1&&(this._value=[this._value[0]])),e==="options"&&(this._options=this.options,this._options.forEach(s=>{s.value&&!s.label&&(s.label=s.value),s.selected&&!this._value.includes(s.value)&&(this._value=[...this._value,s.value]),s.fulltext=s.value+s.label+(s.prefix||"")}),this._search=""),super.attributeChangedCallback(e,t,i)}render(){return a.x`
2
2
  <pkt-input-wrapper
3
3
  .label=${this.label}
4
4
  .helptext=${this.helptext}
@@ -54,7 +54,7 @@ let h = class extends R {
54
54
  const i = ((t = this.options) == null ? void 0 : t.filter((s) => s.userAdded)) || [];
55
55
  this.options = [...i, ...JSON.parse(JSON.stringify(this.defaultOptions))], this._options = [...this.options];
56
56
  }
57
- if (e.has("options") && this.options.length) {
57
+ if (e.has("options")) {
58
58
  const s = this._options.filter((l) => l.userAdded).filter(
59
59
  (l) => !this.options.some((n) => n.value === l.value)
60
60
  );