@oslokommune/punkt-elements 12.27.0 → 12.27.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/alert.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
package/dist/card.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
package/dist/icon.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { LitElement } from 'lit';
2
+ import { PktIconName } from '@oslokommune/punkt-assets/dist/icons/icon';
2
3
  import { PropertyValues } from 'lit';
3
4
  import { ReactiveController } from 'lit';
4
5
  import { ReactiveControllerHost } from 'lit';
@@ -312,13 +313,13 @@ export declare class PktHelptext extends PktElement {
312
313
 
313
314
  export declare class PktIcon extends PktElement {
314
315
  path: string | undefined;
315
- name: string;
316
+ name: PktIconName;
316
317
  private icon;
317
318
  private _updatedProps;
318
319
  connectedCallback(): void;
319
320
  attributeChangedCallback(name: string, _old: string | null, value: string | null): Promise<void>;
320
321
  protected updated(_changedProperties: PropertyValues): Promise<void>;
321
- protected getIcon(name?: string): Promise<void>;
322
+ protected getIcon(name?: PktIconName): Promise<void>;
322
323
  render(): TemplateResult<1>;
323
324
  }
324
325
 
@@ -647,6 +648,13 @@ export declare type TTagType = 'button' | 'reset' | 'submit';
647
648
  export { }
648
649
 
649
650
 
651
+ declare global {
652
+ interface HTMLElementTagNameMap {
653
+ 'pkt-icon': PktIcon;
654
+ }
655
+ }
656
+
657
+
650
658
  declare global {
651
659
  interface Window {
652
660
  pktTz: string;
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
package/dist/link.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,8 +1,8 @@
1
1
  import { e as c } from "./class-map-CQzsZCwS.js";
2
- import { P as f, x as p, E as m, n as a, t as g } from "./element-BKrU5soj.js";
2
+ import { P as f, x as p, E as k, n as d, t as g } from "./element-BKrU5soj.js";
3
3
  import { r as v } from "./state-C36ZmZgt.js";
4
4
  import { P as b } from "./pkt-slot-controller-Clbye6cM.js";
5
- import { e as k, n as h } from "./ref-D5qG7OFB.js";
5
+ import { e as m, n as h } from "./ref-D5qG7OFB.js";
6
6
  import "./icon-Bsb0MB2h.js";
7
7
  const y = "pkt-modal", _ = !0, C = {
8
8
  "background-click": {
@@ -48,7 +48,7 @@ const y = "pkt-modal", _ = !0, C = {
48
48
  ],
49
49
  default: "medium"
50
50
  }
51
- }, E = {
51
+ }, w = {
52
52
  default: {
53
53
  description: "Innholdet i meldingen. Her tilbyr vi støtteklasser for å style 1-3 knapper i modalen."
54
54
  }
@@ -58,92 +58,91 @@ const y = "pkt-modal", _ = !0, C = {
58
58
  isElements: _,
59
59
  events: C,
60
60
  props: B,
61
- slots: E
61
+ slots: w
62
62
  };
63
- var w = Object.defineProperty, S = Object.getOwnPropertyDescriptor, l = (e, t, o, n) => {
64
- for (var s = n > 1 ? void 0 : n ? S(t, o) : t, d = e.length - 1, r; d >= 0; d--)
65
- (r = e[d]) && (s = (n ? r(t, o, s) : r(s)) || s);
66
- return n && s && w(t, o, s), s;
63
+ var E = Object.defineProperty, S = Object.getOwnPropertyDescriptor, l = (t, e, o, s) => {
64
+ for (var n = s > 1 ? void 0 : s ? S(e, o) : e, r = t.length - 1, a; r >= 0; r--)
65
+ (a = t[r]) && (n = (s ? a(e, o, n) : a(n)) || n);
66
+ return s && n && E(e, o, n), n;
67
67
  };
68
68
  let i = class extends f {
69
69
  constructor() {
70
- super(), this.headingText = "", this.removePadding = !1, this.hideCloseButton = u.props.hideCloseButton.default, this.closeOnBackdropClick = u.props.closeOnBackdropClick.default, this.closeButtonSkin = "blue", this.size = u.props.size.default, this.defaultSlot = k(), this.dialogRef = k(), this._isOpen = !1, this.close = (e, t = !1) => {
70
+ super(), this.headingText = "", this.removePadding = !1, this.hideCloseButton = u.props.hideCloseButton.default, this.closeOnBackdropClick = u.props.closeOnBackdropClick.default, this.closeButtonSkin = "blue", this.size = u.props.size.default, this.defaultSlot = m(), this.dialogRef = m(), this._isOpen = !1, this.close = (t, e = !1) => {
71
71
  var s;
72
- this._isOpen = !1, t || (s = this.dialogRef.value) == null || s.close();
72
+ if (!this._isOpen) return;
73
+ this._isOpen = !1, document.body.classList.remove("pkt-modal--open");
73
74
  const o = document.activeElement;
74
75
  o && !this.isElementInViewport(o) && o.scrollIntoView({ behavior: "smooth", block: "nearest" }), this.dispatchEvent(
75
- new CustomEvent("close", { detail: { origin: e }, bubbles: !0, composed: !0 })
76
- ), document.querySelector(".pkt-modal") && document.body.classList.remove("pkt-modal--open"), this.requestUpdate();
77
- }, this.showModal = (e) => {
76
+ new CustomEvent("close", { detail: { origin: t }, bubbles: !0, composed: !0 })
77
+ ), e || (s = this.dialogRef.value) == null || s.close(), this.requestUpdate();
78
+ }, this.showModal = (t) => {
78
79
  var o;
79
80
  this._isOpen = !0, (o = this.dialogRef.value) == null || o.showModal();
80
- const t = document.querySelector(".pkt-modal");
81
+ const e = document.querySelector(".pkt-modal");
81
82
  requestAnimationFrame(() => {
82
- var n;
83
- this.dialogRef.value && ((n = this.dialogRef.value) == null || n.focus());
84
- }), t && document.body.classList.add("pkt-modal--open"), this.dispatchEvent(
85
- new CustomEvent("showModal", { detail: { origin: e }, bubbles: !0, composed: !0 })
83
+ var s;
84
+ this.dialogRef.value && ((s = this.dialogRef.value) == null || s.focus());
85
+ }), e && document.body.classList.add("pkt-modal--open"), this.dispatchEvent(
86
+ new CustomEvent("showModal", { detail: { origin: t }, bubbles: !0, composed: !0 })
86
87
  ), this.requestUpdate();
87
88
  }, this.slotController = new b(this, this.defaultSlot), this._isOpen = !1;
88
89
  }
89
90
  async connectedCallback() {
90
- var e;
91
- super.connectedCallback(), document.addEventListener("keydown", this.handleKeyDown.bind(this)), document.addEventListener("click", this.handleBackdropClick.bind(this)), (e = this.dialogRef.value) == null || e.addEventListener("submit", (t) => this.close(t, !0));
91
+ super.connectedCallback(), document.addEventListener("keydown", this.handleKeyDown), document.addEventListener("click", this.handleBackdropClick);
92
92
  }
93
93
  disconnectedCallback() {
94
- var e;
95
- super.disconnectedCallback(), document.removeEventListener("keydown", this.handleKeyDown.bind(this)), document.removeEventListener("click", this.handleBackdropClick.bind(this)), (e = this.dialogRef.value) == null || e.removeEventListener("submit", (t) => this.close(t, !0));
94
+ super.disconnectedCallback(), document.removeEventListener("keydown", this.handleKeyDown), document.removeEventListener("click", this.handleBackdropClick);
96
95
  }
97
96
  // P R I V A T E M E T H O D S
98
- handleKeyDown(e) {
99
- e.key === "Escape" && this.close(e);
97
+ handleKeyDown(t) {
98
+ t.key === "Escape" && this.close(t);
100
99
  }
101
- handleBackdropClick(e) {
102
- var t;
103
- this.closeOnBackdropClick && e.target === ((t = this.dialogRef) == null ? void 0 : t.value) && this.close(e);
100
+ handleBackdropClick(t) {
101
+ var e;
102
+ this.closeOnBackdropClick && t.target === ((e = this.dialogRef) == null ? void 0 : e.value) && this.close(t);
104
103
  }
105
- isElementInViewport(e) {
106
- const t = e.getBoundingClientRect();
107
- return t.top >= 0 && t.left >= 0 && t.bottom <= (window.innerHeight || document.documentElement.clientHeight) && t.right <= (window.innerWidth || document.documentElement.clientWidth);
104
+ isElementInViewport(t) {
105
+ const e = t.getBoundingClientRect();
106
+ return e.top >= 0 && e.left >= 0 && e.bottom <= (window.innerHeight || document.documentElement.clientHeight) && e.right <= (window.innerWidth || document.documentElement.clientWidth);
108
107
  }
109
108
  render() {
110
- const e = {
109
+ const t = {
111
110
  "pkt-modal": !0,
112
111
  "pkt-modal--removePadding": this.removePadding ?? !1,
113
112
  "pkt-modal--noHeadingText": this.headingText === "" || this.headingText === void 0,
114
113
  [`pkt-modal--${this.size}`]: this.size !== void 0
115
- }, t = {
114
+ }, e = {
116
115
  "pkt-modal__headingText": !0,
117
116
  "pkt-txt-24": !0
118
117
  }, o = {
119
118
  "pkt-modal__content": !0,
120
119
  "pkt-txt-18-light": !0
121
- }, n = this.closeButtonSkin === "blue", s = {
120
+ }, s = this.closeButtonSkin === "blue", n = {
122
121
  "pkt-modal__closeButton": !0,
123
122
  [`pkt-modal__closeButton--${this.closeButtonSkin}`]: !0
124
- }, d = {
123
+ }, r = {
125
124
  "pkt-btn": !0,
126
- [`pkt-btn--${n ? "tertiary" : "primary"}`]: !0,
125
+ [`pkt-btn--${s ? "tertiary" : "primary"}`]: !0,
127
126
  "pkt-btn--icon-only": !0,
128
127
  "pkt-btn--medium": !0
129
128
  };
130
129
  return p`
131
130
  <dialog
132
- class=${c(e)}
133
- aria-modal=${this._isOpen}
131
+ class=${c(t)}
134
132
  ${h(this.dialogRef)}
135
133
  aria-labelledby="pkt-modal__headingText"
136
134
  aria-describedby="pkt-modal__content"
135
+ @close=${(a) => this.close(a, !0)}
137
136
  >
138
137
  <div class="pkt-modal__header">
139
138
  <div class="pkt-modal__header-background"></div>
140
- ${this.headingText ? p`<h1 id="pkt-modal__headingText" class=${c(t)}>
139
+ ${this.headingText ? p`<h1 id="pkt-modal__headingText" class=${c(e)}>
141
140
  ${this.headingText}
142
- </h1>` : m}
143
- ${this.hideCloseButton ? m : p`<div class="${c(s)}">
141
+ </h1>` : k}
142
+ ${this.hideCloseButton ? k : p`<div class="${c(n)}">
144
143
  <button
145
- @click=${(r) => this.close(r)}
146
- class=${c(d)}
144
+ @click=${(a) => this.close(a)}
145
+ class=${c(r)}
147
146
  aria-label="close"
148
147
  >
149
148
  <pkt-icon name="close" class="pkt-link__icon"></pkt-icon>
@@ -162,22 +161,22 @@ let i = class extends f {
162
161
  }
163
162
  };
164
163
  l([
165
- a({ type: String, reflect: !0 })
164
+ d({ type: String, reflect: !0 })
166
165
  ], i.prototype, "headingText", 2);
167
166
  l([
168
- a({ type: Boolean, reflect: !0 })
167
+ d({ type: Boolean, reflect: !0 })
169
168
  ], i.prototype, "removePadding", 2);
170
169
  l([
171
- a({ type: Boolean, reflect: !0 })
170
+ d({ type: Boolean, reflect: !0 })
172
171
  ], i.prototype, "hideCloseButton", 2);
173
172
  l([
174
- a({ type: Boolean, reflect: !0 })
173
+ d({ type: Boolean, reflect: !0 })
175
174
  ], i.prototype, "closeOnBackdropClick", 2);
176
175
  l([
177
- a({ type: String, reflect: !0 })
176
+ d({ type: String, reflect: !0 })
178
177
  ], i.prototype, "closeButtonSkin", 2);
179
178
  l([
180
- a({ type: String, reflect: !0 })
179
+ d({ type: String, reflect: !0 })
181
180
  ], i.prototype, "size", 2);
182
181
  l([
183
182
  v()
@@ -0,0 +1,32 @@
1
+ "use strict";const d=require("./class-map-aeZWY44S.cjs"),s=require("./element-B0UgldHm.cjs"),k=require("./state-CG-binsl.cjs"),m=require("./pkt-slot-controller-Oc32unDk.cjs"),r=require("./ref-DDYBJ4EB.cjs");require("./icon-PWn7rnfg.cjs");const h="pkt-modal",g=!0,f={"background-click":{description:"Event som trigges når bakgrunnen trykkes på"},close:{description:"Event som trigges når meldingsboksen lukkes"}},v={headingText:{name:"Heading text",description:"Heading tekst på modalen",type:"string"},hideCloseButton:{name:"Gjem 'Lukk'-knapp",description:"Gjemmer lukkeknappen. Dersom denne er satt til true, vil ikke lukkeknappen vises, og dermed er det viktig at man tilbyr en annen måte som f.eks. en knapp for å lukke modalen på.",type:"boolean",default:!1},closeOnBackdropClick:{name:"Lukk modalen når bakgrunnen trykkes på",description:"Lukk modalen når bakgrunnen trykkes på",type:"boolean",default:!1},closeButtonSkin:{name:"Stil på lukkeknappen",description:"Stil på lukkeknappen",type:["blue","yellow-filled"],default:"blue"},size:{name:"Størrelse",description:"Størrelsen på modalen",type:["small","medium","large"],default:"medium"}},b={default:{description:"Innholdet i meldingen. Her tilbyr vi støtteklasser for å style 1-3 knapper i modalen."}},u={name:h,"css-class":"pkt-modal",isElements:g,events:f,props:v,slots:b};var y=Object.defineProperty,_=Object.getOwnPropertyDescriptor,l=(c,e,t,n)=>{for(var o=n>1?void 0:n?_(e,t):e,i=c.length-1,a;i>=0;i--)(a=c[i])&&(o=(n?a(e,t,o):a(o))||o);return n&&o&&y(e,t,o),o};exports.PktModal=class extends s.PktElement{constructor(){super(),this.headingText="",this.removePadding=!1,this.hideCloseButton=u.props.hideCloseButton.default,this.closeOnBackdropClick=u.props.closeOnBackdropClick.default,this.closeButtonSkin="blue",this.size=u.props.size.default,this.defaultSlot=r.e(),this.dialogRef=r.e(),this._isOpen=!1,this.close=(e,t=!1)=>{var o;if(!this._isOpen)return;this._isOpen=!1,document.body.classList.remove("pkt-modal--open");const n=document.activeElement;n&&!this.isElementInViewport(n)&&n.scrollIntoView({behavior:"smooth",block:"nearest"}),this.dispatchEvent(new CustomEvent("close",{detail:{origin:e},bubbles:!0,composed:!0})),t||(o=this.dialogRef.value)==null||o.close(),this.requestUpdate()},this.showModal=e=>{var n;this._isOpen=!0,(n=this.dialogRef.value)==null||n.showModal();const t=document.querySelector(".pkt-modal");requestAnimationFrame(()=>{var o;this.dialogRef.value&&((o=this.dialogRef.value)==null||o.focus())}),t&&document.body.classList.add("pkt-modal--open"),this.dispatchEvent(new CustomEvent("showModal",{detail:{origin:e},bubbles:!0,composed:!0})),this.requestUpdate()},this.slotController=new m.PktSlotController(this,this.defaultSlot),this._isOpen=!1}async connectedCallback(){super.connectedCallback(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleBackdropClick)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("click",this.handleBackdropClick)}handleKeyDown(e){e.key==="Escape"&&this.close(e)}handleBackdropClick(e){var t;this.closeOnBackdropClick&&e.target===((t=this.dialogRef)==null?void 0:t.value)&&this.close(e)}isElementInViewport(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}render(){const e={"pkt-modal":!0,"pkt-modal--removePadding":this.removePadding??!1,"pkt-modal--noHeadingText":this.headingText===""||this.headingText===void 0,[`pkt-modal--${this.size}`]:this.size!==void 0},t={"pkt-modal__headingText":!0,"pkt-txt-24":!0},n={"pkt-modal__content":!0,"pkt-txt-18-light":!0},o=this.closeButtonSkin==="blue",i={"pkt-modal__closeButton":!0,[`pkt-modal__closeButton--${this.closeButtonSkin}`]:!0},a={"pkt-btn":!0,[`pkt-btn--${o?"tertiary":"primary"}`]:!0,"pkt-btn--icon-only":!0,"pkt-btn--medium":!0};return s.x`
2
+ <dialog
3
+ class=${d.e(e)}
4
+ ${r.n(this.dialogRef)}
5
+ aria-labelledby="pkt-modal__headingText"
6
+ aria-describedby="pkt-modal__content"
7
+ @close=${p=>this.close(p,!0)}
8
+ >
9
+ <div class="pkt-modal__header">
10
+ <div class="pkt-modal__header-background"></div>
11
+ ${this.headingText?s.x`<h1 id="pkt-modal__headingText" class=${d.e(t)}>
12
+ ${this.headingText}
13
+ </h1>`:s.E}
14
+ ${this.hideCloseButton?s.E:s.x`<div class="${d.e(i)}">
15
+ <button
16
+ @click=${p=>this.close(p)}
17
+ class=${d.e(a)}
18
+ aria-label="close"
19
+ >
20
+ <pkt-icon name="close" class="pkt-link__icon"></pkt-icon>
21
+ </button>
22
+ </div>`}
23
+ </div>
24
+ <div class="pkt-modal__container">
25
+ <div
26
+ id="pkt-modal__content"
27
+ class=${d.e(n)}
28
+ ${r.n(this.defaultSlot)}
29
+ ></div>
30
+ </div>
31
+ </dialog>
32
+ `}};l([s.n({type:String,reflect:!0})],exports.PktModal.prototype,"headingText",2);l([s.n({type:Boolean,reflect:!0})],exports.PktModal.prototype,"removePadding",2);l([s.n({type:Boolean,reflect:!0})],exports.PktModal.prototype,"hideCloseButton",2);l([s.n({type:Boolean,reflect:!0})],exports.PktModal.prototype,"closeOnBackdropClick",2);l([s.n({type:String,reflect:!0})],exports.PktModal.prototype,"closeButtonSkin",2);l([s.n({type:String,reflect:!0})],exports.PktModal.prototype,"size",2);l([k.r()],exports.PktModal.prototype,"_isOpen",2);exports.PktModal=l([s.t("pkt-modal")],exports.PktModal);
package/dist/modal.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./alert-uNzcOJR9.cjs"),p=require("./calendar-CPEJ1enc.cjs"),d=require("./card-BaxqXP-k.cjs"),t=require("./element-B0UgldHm.cjs"),P=require("./pkt-slot-controller-Oc32unDk.cjs"),i=require("./ref-DDYBJ4EB.cjs"),k=require("./class-map-aeZWY44S.cjs"),b=require("./datepicker-BC0e34ws.cjs"),g=require("./helptext-xUdEGuNQ.cjs"),m=require("./icon-PWn7rnfg.cjs"),h=require("./input-wrapper-DeCY6nta.cjs"),f=require("./link-I_LKEBVK.cjs"),y=require("./linkcard-ClXGVwdJ.cjs"),v=require("./messagebox-CC3j63Wp.cjs"),x=require("./modal-BkchlKkL.cjs"),C=require("./progressbar-CkaLjQYa.cjs"),O=require("./radiobutton-HmicLshI.cjs"),j=require("./tag-DGywzHJ5.cjs"),q=require("./textarea-WWRAA1LV.cjs"),S=require("./textinput-CE5AzOur.cjs"),$=require("./select-DFlu7Eq6.cjs");var _=Object.defineProperty,T=Object.getOwnPropertyDescriptor,o=(a,e,r,s)=>{for(var n=s>1?void 0:s?T(e,r):e,l=a.length-1,u;l>=0;l--)(u=a[l])&&(n=(s?u(e,r,n):u(n))||n);return s&&n&&_(e,r,n),n};exports.PktComponent=class extends t.PktElement{constructor(){super(),this.string="",this.strings=[],this.darkmode=!1,this._list=[],this.defaultSlot=i.e(),this.namedSlot=i.e(),this.slotController=new P.PktSlotController(this,this.defaultSlot,this.namedSlot)}connectedCallback(){this.strings.length&&this.strings.forEach(e=>{this._list.push(e.toUpperCase())}),super.connectedCallback()}render(){const e={"pkt-component":!0,"pkt-component--has-list":this.strings.length>0,"pkt-darkmode":this.darkmode};return t.x`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./alert-uNzcOJR9.cjs"),p=require("./calendar-CPEJ1enc.cjs"),d=require("./card-BaxqXP-k.cjs"),t=require("./element-B0UgldHm.cjs"),P=require("./pkt-slot-controller-Oc32unDk.cjs"),i=require("./ref-DDYBJ4EB.cjs"),k=require("./class-map-aeZWY44S.cjs"),b=require("./datepicker-BC0e34ws.cjs"),g=require("./helptext-xUdEGuNQ.cjs"),m=require("./icon-PWn7rnfg.cjs"),h=require("./input-wrapper-DeCY6nta.cjs"),f=require("./link-I_LKEBVK.cjs"),y=require("./linkcard-ClXGVwdJ.cjs"),v=require("./messagebox-CC3j63Wp.cjs"),x=require("./modal-KxnVxEio.cjs"),C=require("./progressbar-CkaLjQYa.cjs"),O=require("./radiobutton-HmicLshI.cjs"),j=require("./tag-DGywzHJ5.cjs"),q=require("./textarea-WWRAA1LV.cjs"),S=require("./textinput-CE5AzOur.cjs"),$=require("./select-DFlu7Eq6.cjs");var _=Object.defineProperty,T=Object.getOwnPropertyDescriptor,o=(a,e,r,s)=>{for(var n=s>1?void 0:s?T(e,r):e,l=a.length-1,u;l>=0;l--)(u=a[l])&&(n=(s?u(e,r,n):u(n))||n);return s&&n&&_(e,r,n),n};exports.PktComponent=class extends t.PktElement{constructor(){super(),this.string="",this.strings=[],this.darkmode=!1,this._list=[],this.defaultSlot=i.e(),this.namedSlot=i.e(),this.slotController=new P.PktSlotController(this,this.defaultSlot,this.namedSlot)}connectedCallback(){this.strings.length&&this.strings.forEach(e=>{this._list.push(e.toUpperCase())}),super.connectedCallback()}render(){const e={"pkt-component":!0,"pkt-component--has-list":this.strings.length>0,"pkt-darkmode":this.darkmode};return t.x`
2
2
  <div class="${k.e(e)}">
3
3
  <h1 class="pkt-txt-28">${this.string}</h1>
4
4
 
package/dist/pkt-index.js CHANGED
@@ -13,7 +13,7 @@ import { P as M } from "./input-wrapper-Df18_PvD.js";
13
13
  import { P as N } from "./link-0N9wG5l8.js";
14
14
  import { P as W } from "./linkcard-BJeRbpq_.js";
15
15
  import { P as z } from "./messagebox-C5M56R8f.js";
16
- import { P as J } from "./modal-PKDnp91S.js";
16
+ import { P as J } from "./modal-8ATPiGdr.js";
17
17
  import { P as V } from "./progressbar-DETyIwXf.js";
18
18
  import { P as Y } from "./radiobutton-BhQCBJ0I.js";
19
19
  import { P as tt } from "./tag-W9Lf1doW.js";
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./modal-BkchlKkL.cjs"),t=e.PktModal;Object.defineProperty(exports,"PktModal",{enumerable:!0,get:()=>e.PktModal});exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./modal-KxnVxEio.cjs"),t=e.PktModal;Object.defineProperty(exports,"PktModal",{enumerable:!0,get:()=>e.PktModal});exports.default=t;
package/dist/pkt-modal.js CHANGED
@@ -1,4 +1,4 @@
1
- import { P as a } from "./modal-PKDnp91S.js";
1
+ import { P as a } from "./modal-8ATPiGdr.js";
2
2
  const t = a;
3
3
  export {
4
4
  a as PktModal,
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
package/dist/select.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
package/dist/tag.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
@@ -1,6 +1,13 @@
1
1
  export { }
2
2
 
3
3
 
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'pkt-icon': PktIcon;
7
+ }
8
+ }
9
+
10
+
4
11
  declare global {
5
12
  interface Window {
6
13
  pktTz: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oslokommune/punkt-elements",
3
- "version": "12.27.0",
3
+ "version": "12.27.3",
4
4
  "description": "Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo",
5
5
  "homepage": "https://punkt.oslo.kommune.no",
6
6
  "author": "Team Designsystem, Oslo Origo",
@@ -29,8 +29,8 @@
29
29
  "urlpattern-polyfill": "^10.0.0"
30
30
  },
31
31
  "devDependencies": {
32
- "@oslokommune/punkt-assets": "^12.23.0",
33
- "@oslokommune/punkt-css": "^12.27.0",
32
+ "@oslokommune/punkt-assets": "^12.27.1",
33
+ "@oslokommune/punkt-css": "^12.27.1",
34
34
  "sass": "^1.78.0",
35
35
  "typescript": "^5.6.2",
36
36
  "vite": "^5.4.4",
@@ -57,5 +57,5 @@
57
57
  "url": "https://github.com/oslokommune/punkt/issues"
58
58
  },
59
59
  "license": "MIT",
60
- "gitHead": "3f9b61a0e5d35866d6bc44088e4793798632d0e0"
60
+ "gitHead": "a022d4e96f1e77e5284d04166f680d6952d3ae1d"
61
61
  }
@@ -1,4 +1,5 @@
1
1
  import { PktElement } from '@/base-elements/element'
2
+ import { PktIconName } from '@oslokommune/punkt-assets/dist/icons/icon'
2
3
  import { html, PropertyValues } from 'lit'
3
4
  import { customElement, property } from 'lit/decorators.js'
4
5
  import { unsafeSVG } from 'lit/directives/unsafe-svg.js'
@@ -12,7 +13,7 @@ const errorSvg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"></
12
13
  const dlStatus: { [key: string]: string } = {}
13
14
 
14
15
  const downloadIconOrGetFromCache = async (
15
- name: string,
16
+ name: PktIconName,
16
17
  path: string | undefined,
17
18
  ): Promise<string | null> => {
18
19
  let i = 0
@@ -55,7 +56,7 @@ export class PktIcon extends PktElement {
55
56
  path: string | undefined = window.pktIconPath
56
57
 
57
58
  @property({ type: String, reflect: true })
58
- name: string = ''
59
+ name: PktIconName = ''
59
60
 
60
61
  @property({ type: SVGElement })
61
62
  private icon: any = unsafeSVG(errorSvg)
@@ -79,7 +80,7 @@ export class PktIcon extends PktElement {
79
80
  }
80
81
  }
81
82
 
82
- protected async getIcon(name = '') {
83
+ protected async getIcon(name: PktIconName = '') {
83
84
  if (this._updatedProps.length > 0) {
84
85
  if (!this.path) this.path === window.pktIconPath
85
86
  this.icon = unsafeSVG(
@@ -97,3 +98,9 @@ export class PktIcon extends PktElement {
97
98
  return html`${this.name && this.icon}`
98
99
  }
99
100
  }
101
+
102
+ declare global {
103
+ interface HTMLElementTagNameMap {
104
+ 'pkt-icon': PktIcon
105
+ }
106
+ }
@@ -43,16 +43,14 @@ export class PktModal extends PktElement implements IPktModal {
43
43
 
44
44
  async connectedCallback(): Promise<void> {
45
45
  super.connectedCallback()
46
- document.addEventListener('keydown', this.handleKeyDown.bind(this))
47
- document.addEventListener('click', this.handleBackdropClick.bind(this))
48
- this.dialogRef.value?.addEventListener('submit', (e) => this.close(e, true))
46
+ document.addEventListener('keydown', this.handleKeyDown)
47
+ document.addEventListener('click', this.handleBackdropClick)
49
48
  }
50
49
 
51
50
  disconnectedCallback(): void {
52
51
  super.disconnectedCallback()
53
- document.removeEventListener('keydown', this.handleKeyDown.bind(this))
54
- document.removeEventListener('click', this.handleBackdropClick.bind(this))
55
- this.dialogRef.value?.removeEventListener('submit', (e) => this.close(e, true))
52
+ document.removeEventListener('keydown', this.handleKeyDown)
53
+ document.removeEventListener('click', this.handleBackdropClick)
56
54
  }
57
55
 
58
56
  // P R I V A T E M E T H O D S
@@ -80,8 +78,10 @@ export class PktModal extends PktElement implements IPktModal {
80
78
 
81
79
  // P U B L I C M E T H O D S
82
80
  public close = (event: Event, bypassNativeClose: boolean = false) => {
81
+ if (!this._isOpen) return
83
82
  this._isOpen = false
84
- if (!bypassNativeClose) this.dialogRef.value?.close()
83
+
84
+ document.body.classList.remove('pkt-modal--open')
85
85
 
86
86
  // Scroll to the opener element if it's not in the viewport
87
87
  const openerElement = document.activeElement as HTMLElement
@@ -92,11 +92,8 @@ export class PktModal extends PktElement implements IPktModal {
92
92
  this.dispatchEvent(
93
93
  new CustomEvent('close', { detail: { origin: event }, bubbles: true, composed: true }),
94
94
  )
95
+ if (!bypassNativeClose) this.dialogRef.value?.close()
95
96
 
96
- const modal = document.querySelector('.pkt-modal')
97
- if (modal) {
98
- document.body.classList.remove('pkt-modal--open')
99
- }
100
97
  this.requestUpdate()
101
98
  }
102
99
 
@@ -155,10 +152,10 @@ export class PktModal extends PktElement implements IPktModal {
155
152
  return html`
156
153
  <dialog
157
154
  class=${classMap(classes)}
158
- aria-modal=${this._isOpen}
159
155
  ${ref(this.dialogRef)}
160
156
  aria-labelledby="pkt-modal__headingText"
161
157
  aria-describedby="pkt-modal__content"
158
+ @close=${(event: Event) => this.close(event, true)}
162
159
  >
163
160
  <div class="pkt-modal__header">
164
161
  <div class="pkt-modal__header-background"></div>
@@ -1,32 +0,0 @@
1
- "use strict";const d=require("./class-map-aeZWY44S.cjs"),s=require("./element-B0UgldHm.cjs"),k=require("./state-CG-binsl.cjs"),m=require("./pkt-slot-controller-Oc32unDk.cjs"),r=require("./ref-DDYBJ4EB.cjs");require("./icon-PWn7rnfg.cjs");const h="pkt-modal",g=!0,f={"background-click":{description:"Event som trigges når bakgrunnen trykkes på"},close:{description:"Event som trigges når meldingsboksen lukkes"}},v={headingText:{name:"Heading text",description:"Heading tekst på modalen",type:"string"},hideCloseButton:{name:"Gjem 'Lukk'-knapp",description:"Gjemmer lukkeknappen. Dersom denne er satt til true, vil ikke lukkeknappen vises, og dermed er det viktig at man tilbyr en annen måte som f.eks. en knapp for å lukke modalen på.",type:"boolean",default:!1},closeOnBackdropClick:{name:"Lukk modalen når bakgrunnen trykkes på",description:"Lukk modalen når bakgrunnen trykkes på",type:"boolean",default:!1},closeButtonSkin:{name:"Stil på lukkeknappen",description:"Stil på lukkeknappen",type:["blue","yellow-filled"],default:"blue"},size:{name:"Størrelse",description:"Størrelsen på modalen",type:["small","medium","large"],default:"medium"}},b={default:{description:"Innholdet i meldingen. Her tilbyr vi støtteklasser for å style 1-3 knapper i modalen."}},p={name:h,"css-class":"pkt-modal",isElements:g,events:f,props:v,slots:b};var y=Object.defineProperty,_=Object.getOwnPropertyDescriptor,l=(c,e,t,o)=>{for(var n=o>1?void 0:o?_(e,t):e,i=c.length-1,a;i>=0;i--)(a=c[i])&&(n=(o?a(e,t,n):a(n))||n);return o&&n&&y(e,t,n),n};exports.PktModal=class extends s.PktElement{constructor(){super(),this.headingText="",this.removePadding=!1,this.hideCloseButton=p.props.hideCloseButton.default,this.closeOnBackdropClick=p.props.closeOnBackdropClick.default,this.closeButtonSkin="blue",this.size=p.props.size.default,this.defaultSlot=r.e(),this.dialogRef=r.e(),this._isOpen=!1,this.close=(e,t=!1)=>{var i;this._isOpen=!1,t||(i=this.dialogRef.value)==null||i.close();const o=document.activeElement;o&&!this.isElementInViewport(o)&&o.scrollIntoView({behavior:"smooth",block:"nearest"}),this.dispatchEvent(new CustomEvent("close",{detail:{origin:e},bubbles:!0,composed:!0})),document.querySelector(".pkt-modal")&&document.body.classList.remove("pkt-modal--open"),this.requestUpdate()},this.showModal=e=>{var o;this._isOpen=!0,(o=this.dialogRef.value)==null||o.showModal();const t=document.querySelector(".pkt-modal");requestAnimationFrame(()=>{var n;this.dialogRef.value&&((n=this.dialogRef.value)==null||n.focus())}),t&&document.body.classList.add("pkt-modal--open"),this.dispatchEvent(new CustomEvent("showModal",{detail:{origin:e},bubbles:!0,composed:!0})),this.requestUpdate()},this.slotController=new m.PktSlotController(this,this.defaultSlot),this._isOpen=!1}async connectedCallback(){var e;super.connectedCallback(),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("click",this.handleBackdropClick.bind(this)),(e=this.dialogRef.value)==null||e.addEventListener("submit",t=>this.close(t,!0))}disconnectedCallback(){var e;super.disconnectedCallback(),document.removeEventListener("keydown",this.handleKeyDown.bind(this)),document.removeEventListener("click",this.handleBackdropClick.bind(this)),(e=this.dialogRef.value)==null||e.removeEventListener("submit",t=>this.close(t,!0))}handleKeyDown(e){e.key==="Escape"&&this.close(e)}handleBackdropClick(e){var t;this.closeOnBackdropClick&&e.target===((t=this.dialogRef)==null?void 0:t.value)&&this.close(e)}isElementInViewport(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}render(){const e={"pkt-modal":!0,"pkt-modal--removePadding":this.removePadding??!1,"pkt-modal--noHeadingText":this.headingText===""||this.headingText===void 0,[`pkt-modal--${this.size}`]:this.size!==void 0},t={"pkt-modal__headingText":!0,"pkt-txt-24":!0},o={"pkt-modal__content":!0,"pkt-txt-18-light":!0},n=this.closeButtonSkin==="blue",i={"pkt-modal__closeButton":!0,[`pkt-modal__closeButton--${this.closeButtonSkin}`]:!0},a={"pkt-btn":!0,[`pkt-btn--${n?"tertiary":"primary"}`]:!0,"pkt-btn--icon-only":!0,"pkt-btn--medium":!0};return s.x`
2
- <dialog
3
- class=${d.e(e)}
4
- aria-modal=${this._isOpen}
5
- ${r.n(this.dialogRef)}
6
- aria-labelledby="pkt-modal__headingText"
7
- aria-describedby="pkt-modal__content"
8
- >
9
- <div class="pkt-modal__header">
10
- <div class="pkt-modal__header-background"></div>
11
- ${this.headingText?s.x`<h1 id="pkt-modal__headingText" class=${d.e(t)}>
12
- ${this.headingText}
13
- </h1>`:s.E}
14
- ${this.hideCloseButton?s.E:s.x`<div class="${d.e(i)}">
15
- <button
16
- @click=${u=>this.close(u)}
17
- class=${d.e(a)}
18
- aria-label="close"
19
- >
20
- <pkt-icon name="close" class="pkt-link__icon"></pkt-icon>
21
- </button>
22
- </div>`}
23
- </div>
24
- <div class="pkt-modal__container">
25
- <div
26
- id="pkt-modal__content"
27
- class=${d.e(o)}
28
- ${r.n(this.defaultSlot)}
29
- ></div>
30
- </div>
31
- </dialog>
32
- `}};l([s.n({type:String,reflect:!0})],exports.PktModal.prototype,"headingText",2);l([s.n({type:Boolean,reflect:!0})],exports.PktModal.prototype,"removePadding",2);l([s.n({type:Boolean,reflect:!0})],exports.PktModal.prototype,"hideCloseButton",2);l([s.n({type:Boolean,reflect:!0})],exports.PktModal.prototype,"closeOnBackdropClick",2);l([s.n({type:String,reflect:!0})],exports.PktModal.prototype,"closeButtonSkin",2);l([s.n({type:String,reflect:!0})],exports.PktModal.prototype,"size",2);l([k.r()],exports.PktModal.prototype,"_isOpen",2);exports.PktModal=l([s.t("pkt-modal")],exports.PktModal);