@oslokommune/punkt-elements 16.2.0 → 16.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/index.d.ts +3 -0
- package/dist/{modal-p1rvuP8e.js → modal-D3u6ueP5.js} +64 -63
- package/dist/modal-mWn5pjs8.cjs +36 -0
- package/dist/pkt-index.cjs +1 -1
- package/dist/pkt-index.js +1 -1
- package/dist/pkt-modal.cjs +1 -1
- package/dist/pkt-modal.js +1 -1
- package/package.json +3 -3
- package/src/components/modal/modal.ts +18 -13
- package/dist/modal-Bfk_ncLQ.cjs +0 -36
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,23 @@ og skriver commits ca etter [Conventional Commits](https://conventionalcommits.o
|
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
## [16.3.0](https://github.com/oslokommune/punkt/compare/16.2.0...16.3.0) (2026-03-24)
|
|
9
|
+
|
|
10
|
+
### ⚠ BREAKING CHANGES
|
|
11
|
+
Ingen
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
Ingen
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
Ingen
|
|
18
|
+
|
|
19
|
+
### Chores
|
|
20
|
+
Ingen
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
|
|
8
25
|
## [16.1.0](https://github.com/oslokommune/punkt/compare/16.0.5...16.1.0) (2026-03-18)
|
|
9
26
|
|
|
10
27
|
### ⚠ BREAKING CHANGES
|
package/dist/index.d.ts
CHANGED
|
@@ -421,6 +421,7 @@ declare interface IPktMessagebox {
|
|
|
421
421
|
}
|
|
422
422
|
|
|
423
423
|
declare interface IPktModal {
|
|
424
|
+
open?: boolean;
|
|
424
425
|
headingText?: string;
|
|
425
426
|
removePadding?: boolean;
|
|
426
427
|
hideCloseButton?: boolean;
|
|
@@ -1439,6 +1440,7 @@ export declare class PktMessagebox extends PktElementWithSlot implements IPktMes
|
|
|
1439
1440
|
}
|
|
1440
1441
|
|
|
1441
1442
|
export declare class PktModal extends PktElementWithSlot implements IPktModal {
|
|
1443
|
+
open?: boolean;
|
|
1442
1444
|
headingText?: string;
|
|
1443
1445
|
removePadding?: boolean;
|
|
1444
1446
|
hideCloseButton?: boolean;
|
|
@@ -1453,6 +1455,7 @@ export declare class PktModal extends PktElementWithSlot implements IPktModal {
|
|
|
1453
1455
|
constructor();
|
|
1454
1456
|
connectedCallback(): Promise<void>;
|
|
1455
1457
|
disconnectedCallback(): void;
|
|
1458
|
+
protected updated(changedProperties: PropertyValues): void;
|
|
1456
1459
|
protected firstUpdated(_changedProperties: PropertyValues): Promise<void>;
|
|
1457
1460
|
private handleKeyDown;
|
|
1458
1461
|
private handleBackdropClick;
|
|
@@ -1,35 +1,30 @@
|
|
|
1
|
-
import { e as
|
|
2
|
-
import { A as u, b as r, n
|
|
1
|
+
import { e as p } from "./class-map-3ADKve8g.js";
|
|
2
|
+
import { A as u, b as r, n, t as m } from "./element-CV9utnHJ.js";
|
|
3
3
|
import { r as k } from "./state-l4hGZdFJ.js";
|
|
4
|
-
import { P as
|
|
4
|
+
import { P as f, s as v } from "./element-with-slot-1djk8KXi.js";
|
|
5
5
|
import { e as g, n as _ } from "./ref-DBGHvw2G.js";
|
|
6
6
|
import "./icon-D0IQAVwS.js";
|
|
7
7
|
const y = { hideCloseButton: { default: !1 }, closeOnBackdropClick: { default: !1 }, size: { default: "medium" } }, h = {
|
|
8
8
|
props: y
|
|
9
9
|
};
|
|
10
|
-
var w = Object.defineProperty, B = Object.getOwnPropertyDescriptor,
|
|
11
|
-
for (var
|
|
12
|
-
(
|
|
13
|
-
return
|
|
10
|
+
var w = Object.defineProperty, B = Object.getOwnPropertyDescriptor, i = (e, t, s, a) => {
|
|
11
|
+
for (var l = a > 1 ? void 0 : a ? B(t, s) : t, d = e.length - 1, c; d >= 0; d--)
|
|
12
|
+
(c = e[d]) && (l = (a ? c(t, s, l) : c(l)) || l);
|
|
13
|
+
return a && l && w(t, s, l), l;
|
|
14
14
|
};
|
|
15
|
-
let
|
|
15
|
+
let o = class extends f {
|
|
16
16
|
constructor() {
|
|
17
|
-
super(), this.headingText = "", this.removePadding = !1, this.hideCloseButton = h.props.hideCloseButton.default, this.closeOnBackdropClick = h.props.closeOnBackdropClick.default, this.closeButtonSkin = "blue", this.size = h.props.size.default, this.variant = "dialog", this.drawerPosition = "right", this.transparentBackdrop = !1, this.dialogRef = g(), this._isOpen = !1, this.close = (e, t = !1) => {
|
|
18
|
-
var
|
|
17
|
+
super(), this.open = !1, this.headingText = "", this.removePadding = !1, this.hideCloseButton = h.props.hideCloseButton.default, this.closeOnBackdropClick = h.props.closeOnBackdropClick.default, this.closeButtonSkin = "blue", this.size = h.props.size.default, this.variant = "dialog", this.drawerPosition = "right", this.transparentBackdrop = !1, this.dialogRef = g(), this._isOpen = !1, this.close = (e, t = !1) => {
|
|
18
|
+
var a;
|
|
19
19
|
if (!this._isOpen) return;
|
|
20
|
-
this._isOpen = !1, document.body.classList.remove("pkt-modal--open");
|
|
21
|
-
const
|
|
22
|
-
|
|
20
|
+
this._isOpen = !1, this.open = !1, document.body.classList.remove("pkt-modal--open");
|
|
21
|
+
const s = document.activeElement;
|
|
22
|
+
s && !this.isElementInViewport(s) && s.scrollIntoView({ behavior: "smooth", block: "nearest" }), this.dispatchEvent(
|
|
23
23
|
new CustomEvent("close", { detail: { origin: e }, bubbles: !0, composed: !0 })
|
|
24
|
-
), t || (
|
|
24
|
+
), t || (a = this.dialogRef.value) == null || a.close(), this.requestUpdate();
|
|
25
25
|
}, this.showModal = (e = null) => {
|
|
26
|
-
var
|
|
27
|
-
this._isOpen = !0, (
|
|
28
|
-
const t = document.querySelector(".pkt-modal");
|
|
29
|
-
requestAnimationFrame(() => {
|
|
30
|
-
var i;
|
|
31
|
-
this.dialogRef.value && ((i = this.dialogRef.value) == null || i.focus());
|
|
32
|
-
}), t && document.body.classList.add("pkt-modal--open"), this.dispatchEvent(
|
|
26
|
+
var t;
|
|
27
|
+
this._isOpen = !0, this.open = !0, (t = this.dialogRef.value) == null || t.showModal(), document.body.classList.add("pkt-modal--open"), this.dispatchEvent(
|
|
33
28
|
new CustomEvent("showModal", { detail: { origin: e }, bubbles: !0, composed: !0 })
|
|
34
29
|
), this.requestUpdate();
|
|
35
30
|
}, this._isOpen = !1;
|
|
@@ -40,8 +35,11 @@ let s = class extends v {
|
|
|
40
35
|
disconnectedCallback() {
|
|
41
36
|
super.disconnectedCallback(), document.removeEventListener("keydown", this.handleKeyDown), document.removeEventListener("click", this.handleBackdropClick);
|
|
42
37
|
}
|
|
38
|
+
updated(e) {
|
|
39
|
+
super.updated(e), e.has("open") && (this.open && !this._isOpen ? this.showModal() : !this.open && this._isOpen && this.close(new Event("close"), !1));
|
|
40
|
+
}
|
|
43
41
|
async firstUpdated(e) {
|
|
44
|
-
super.firstUpdated(e), this.dialogRef.value && !window.HTMLDialogElement && !this.dialogRef.value.showModal && ("document" in window && "createElement" in document && (await import("./dialog-polyfill.esm-CbjBMXAG.js").then((
|
|
42
|
+
super.firstUpdated(e), this.dialogRef.value && !window.HTMLDialogElement && !this.dialogRef.value.showModal && ("document" in window && "createElement" in document && (await import("./dialog-polyfill.esm-CbjBMXAG.js").then((s) => s.default)).registerDialog(this.dialogRef.value), this.dialogRef.value.addEventListener("close", () => {
|
|
45
43
|
this.close(new Event("close"), !0);
|
|
46
44
|
}));
|
|
47
45
|
}
|
|
@@ -70,35 +68,35 @@ let s = class extends v {
|
|
|
70
68
|
}, t = {
|
|
71
69
|
"pkt-modal__headingText": !0,
|
|
72
70
|
"pkt-txt-24": !0
|
|
73
|
-
},
|
|
71
|
+
}, s = {
|
|
74
72
|
"pkt-modal__content": !0,
|
|
75
73
|
"pkt-txt-18-light": !0
|
|
76
|
-
},
|
|
74
|
+
}, a = this.closeButtonSkin === "blue", l = {
|
|
77
75
|
"pkt-modal__closeButton": !0,
|
|
78
76
|
[`pkt-modal__closeButton--${this.closeButtonSkin}`]: !0
|
|
79
77
|
};
|
|
80
78
|
return r`
|
|
81
79
|
<dialog
|
|
82
|
-
class=${
|
|
80
|
+
class=${p(e)}
|
|
83
81
|
${_(this.dialogRef)}
|
|
84
|
-
aria-labelledby
|
|
82
|
+
aria-labelledby=${this.headingText ? "pkt-modal__headingText" : u}
|
|
85
83
|
aria-describedby="pkt-modal__content"
|
|
86
84
|
@close=${(d) => this.close(d, !0)}
|
|
87
85
|
>
|
|
88
86
|
<div class="pkt-modal__wrapper">
|
|
89
87
|
${this.headingText || !this.hideCloseButton ? r`<div class="pkt-modal__header">
|
|
90
88
|
<div class="pkt-modal__header-background"></div>
|
|
91
|
-
${this.headingText ? r`<h1 id="pkt-modal__headingText" class=${
|
|
89
|
+
${this.headingText ? r`<h1 id="pkt-modal__headingText" class=${p(t)}>
|
|
92
90
|
${this.headingText}
|
|
93
91
|
</h1>` : r`<div class="pkt-modal__headingText"></div>`}
|
|
94
|
-
${this.hideCloseButton ? r`<div class="pkt-modal__noCloseButton"></div>` : r`<div class="${
|
|
92
|
+
${this.hideCloseButton ? r`<div class="pkt-modal__noCloseButton"></div>` : r`<div class="${p(l)}">
|
|
95
93
|
<pkt-button
|
|
96
94
|
@click=${(d) => this.close(d)}
|
|
97
95
|
aria-label="close"
|
|
98
96
|
iconname="close"
|
|
99
97
|
variant="icon-only"
|
|
100
98
|
size="medium"
|
|
101
|
-
skin=${
|
|
99
|
+
skin=${a ? "tertiary" : "primary"}
|
|
102
100
|
>
|
|
103
101
|
Lukk
|
|
104
102
|
</pkt-button>
|
|
@@ -107,47 +105,50 @@ let s = class extends v {
|
|
|
107
105
|
<div class="pkt-modal__container">
|
|
108
106
|
<div
|
|
109
107
|
id="pkt-modal__content"
|
|
110
|
-
class=${
|
|
111
|
-
>${
|
|
108
|
+
class=${p(s)}
|
|
109
|
+
>${v(this)}</div>
|
|
112
110
|
</div>
|
|
113
111
|
</div>
|
|
114
112
|
</dialog>
|
|
115
113
|
`;
|
|
116
114
|
}
|
|
117
115
|
};
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
],
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
],
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
],
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
],
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
],
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
],
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
],
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
],
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
],
|
|
145
|
-
|
|
116
|
+
i([
|
|
117
|
+
n({ type: Boolean, reflect: !0 })
|
|
118
|
+
], o.prototype, "open", 2);
|
|
119
|
+
i([
|
|
120
|
+
n({ type: String })
|
|
121
|
+
], o.prototype, "headingText", 2);
|
|
122
|
+
i([
|
|
123
|
+
n({ type: Boolean })
|
|
124
|
+
], o.prototype, "removePadding", 2);
|
|
125
|
+
i([
|
|
126
|
+
n({ type: Boolean })
|
|
127
|
+
], o.prototype, "hideCloseButton", 2);
|
|
128
|
+
i([
|
|
129
|
+
n({ type: Boolean })
|
|
130
|
+
], o.prototype, "closeOnBackdropClick", 2);
|
|
131
|
+
i([
|
|
132
|
+
n({ type: String })
|
|
133
|
+
], o.prototype, "closeButtonSkin", 2);
|
|
134
|
+
i([
|
|
135
|
+
n({ type: String })
|
|
136
|
+
], o.prototype, "size", 2);
|
|
137
|
+
i([
|
|
138
|
+
n({ type: String })
|
|
139
|
+
], o.prototype, "variant", 2);
|
|
140
|
+
i([
|
|
141
|
+
n({ type: String })
|
|
142
|
+
], o.prototype, "drawerPosition", 2);
|
|
143
|
+
i([
|
|
144
|
+
n({ type: Boolean })
|
|
145
|
+
], o.prototype, "transparentBackdrop", 2);
|
|
146
|
+
i([
|
|
146
147
|
k()
|
|
147
|
-
],
|
|
148
|
-
|
|
148
|
+
], o.prototype, "_isOpen", 2);
|
|
149
|
+
o = i([
|
|
149
150
|
m("pkt-modal")
|
|
150
|
-
],
|
|
151
|
+
], o);
|
|
151
152
|
export {
|
|
152
|
-
|
|
153
|
+
o as P
|
|
153
154
|
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";const d=require("./class-map-Bokp1SoS.cjs"),o=require("./element-CMTfByxQ.cjs"),u=require("./state-BNgpvY-A.cjs"),p=require("./element-with-slot-yT8k1Z37.cjs"),h=require("./ref-DahIePMT.cjs");require("./icon-Dj0oZZSa.cjs");const k={hideCloseButton:{default:!1},closeOnBackdropClick:{default:!1},size:{default:"medium"}},c={props:k};var m=Object.defineProperty,v=Object.getOwnPropertyDescriptor,n=(r,e,t,i)=>{for(var s=i>1?void 0:i?v(e,t):e,l=r.length-1,a;l>=0;l--)(a=r[l])&&(s=(i?a(e,t,s):a(s))||s);return i&&s&&m(e,t,s),s};exports.PktModal=class extends p.PktElementWithSlot{constructor(){super(),this.open=!1,this.headingText="",this.removePadding=!1,this.hideCloseButton=c.props.hideCloseButton.default,this.closeOnBackdropClick=c.props.closeOnBackdropClick.default,this.closeButtonSkin="blue",this.size=c.props.size.default,this.variant="dialog",this.drawerPosition="right",this.transparentBackdrop=!1,this.dialogRef=h.e(),this._isOpen=!1,this.close=(e,t=!1)=>{var s;if(!this._isOpen)return;this._isOpen=!1,this.open=!1,document.body.classList.remove("pkt-modal--open");const i=document.activeElement;i&&!this.isElementInViewport(i)&&i.scrollIntoView({behavior:"smooth",block:"nearest"}),this.dispatchEvent(new CustomEvent("close",{detail:{origin:e},bubbles:!0,composed:!0})),t||(s=this.dialogRef.value)==null||s.close(),this.requestUpdate()},this.showModal=(e=null)=>{var t;this._isOpen=!0,this.open=!0,(t=this.dialogRef.value)==null||t.showModal(),document.body.classList.add("pkt-modal--open"),this.dispatchEvent(new CustomEvent("showModal",{detail:{origin:e},bubbles:!0,composed:!0})),this.requestUpdate()},this._isOpen=!1}async connectedCallback(){super.connectedCallback(),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("click",this.handleBackdropClick.bind(this))}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("click",this.handleBackdropClick)}updated(e){super.updated(e),e.has("open")&&(this.open&&!this._isOpen?this.showModal():!this.open&&this._isOpen&&this.close(new Event("close"),!1))}async firstUpdated(e){super.firstUpdated(e),this.dialogRef.value&&!window.HTMLDialogElement&&!this.dialogRef.value.showModal&&("document"in window&&"createElement"in document&&(await Promise.resolve().then(()=>require("./dialog-polyfill.esm-CPKZe7AL.cjs")).then(i=>i.default)).registerDialog(this.dialogRef.value),this.dialogRef.value.addEventListener("close",()=>{this.close(new Event("close"),!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--noShadow":this.closeButtonSkin==="yellow-filled","pkt-modal--transparentBackdrop":this.transparentBackdrop??!1,[`pkt-modal--${this.size}`]:this.size!==void 0,[`pkt-modal__${this.variant}`]:this.variant!==void 0,[`pkt-modal__drawer--${this.drawerPosition}`]:this.variant==="drawer"},t={"pkt-modal__headingText":!0,"pkt-txt-24":!0},i={"pkt-modal__content":!0,"pkt-txt-18-light":!0},s=this.closeButtonSkin==="blue",l={"pkt-modal__closeButton":!0,[`pkt-modal__closeButton--${this.closeButtonSkin}`]:!0};return o.b`
|
|
2
|
+
<dialog
|
|
3
|
+
class=${d.e(e)}
|
|
4
|
+
${h.n(this.dialogRef)}
|
|
5
|
+
aria-labelledby=${this.headingText?"pkt-modal__headingText":o.A}
|
|
6
|
+
aria-describedby="pkt-modal__content"
|
|
7
|
+
@close=${a=>this.close(a,!0)}
|
|
8
|
+
>
|
|
9
|
+
<div class="pkt-modal__wrapper">
|
|
10
|
+
${this.headingText||!this.hideCloseButton?o.b`<div class="pkt-modal__header">
|
|
11
|
+
<div class="pkt-modal__header-background"></div>
|
|
12
|
+
${this.headingText?o.b`<h1 id="pkt-modal__headingText" class=${d.e(t)}>
|
|
13
|
+
${this.headingText}
|
|
14
|
+
</h1>`:o.b`<div class="pkt-modal__headingText"></div>`}
|
|
15
|
+
${this.hideCloseButton?o.b`<div class="pkt-modal__noCloseButton"></div>`:o.b`<div class="${d.e(l)}">
|
|
16
|
+
<pkt-button
|
|
17
|
+
@click=${a=>this.close(a)}
|
|
18
|
+
aria-label="close"
|
|
19
|
+
iconname="close"
|
|
20
|
+
variant="icon-only"
|
|
21
|
+
size="medium"
|
|
22
|
+
skin=${s?"tertiary":"primary"}
|
|
23
|
+
>
|
|
24
|
+
Lukk
|
|
25
|
+
</pkt-button>
|
|
26
|
+
</div>`}
|
|
27
|
+
</div>`:o.A}
|
|
28
|
+
<div class="pkt-modal__container">
|
|
29
|
+
<div
|
|
30
|
+
id="pkt-modal__content"
|
|
31
|
+
class=${d.e(i)}
|
|
32
|
+
>${p.slotContent(this)}</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</dialog>
|
|
36
|
+
`}};n([o.n({type:Boolean,reflect:!0})],exports.PktModal.prototype,"open",2);n([o.n({type:String})],exports.PktModal.prototype,"headingText",2);n([o.n({type:Boolean})],exports.PktModal.prototype,"removePadding",2);n([o.n({type:Boolean})],exports.PktModal.prototype,"hideCloseButton",2);n([o.n({type:Boolean})],exports.PktModal.prototype,"closeOnBackdropClick",2);n([o.n({type:String})],exports.PktModal.prototype,"closeButtonSkin",2);n([o.n({type:String})],exports.PktModal.prototype,"size",2);n([o.n({type:String})],exports.PktModal.prototype,"variant",2);n([o.n({type:String})],exports.PktModal.prototype,"drawerPosition",2);n([o.n({type:Boolean})],exports.PktModal.prototype,"transparentBackdrop",2);n([u.r()],exports.PktModal.prototype,"_isOpen",2);exports.PktModal=n([o.t("pkt-modal")],exports.PktModal);
|
package/dist/pkt-index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./alert-C95U_RZ0.cjs"),t=require("./accordionitem-D7sWqDM_.cjs"),a=require("./backlink-CQoNgoa-.cjs"),P=require("./button-BXN_JPaH.cjs"),i=require("./calendar-43Y_6FD8.cjs"),c=require("./card-DfHo45CG.cjs"),b=require("./combobox-TKL44xnV.cjs"),k=require("./consent-CIhFwuFO.cjs"),d=require("./checkbox-mmn3v9ry.cjs"),r=require("./datepicker-oN9L0Wnm.cjs"),e=require("./pkt-header.cjs"),l=require("./helptext-B366oeR9.cjs"),s=require("./heading-B0XRE0lq.cjs"),p=require("./icon-Dj0oZZSa.cjs"),g=require("./input-wrapper-BdFdJU-k.cjs"),m=require("./link-DLjXMpvi.cjs"),f=require("./linkcard-C20WC6Nw.cjs"),y=require("./loader-DxAGCcNF.cjs"),j=require("./messagebox-B8LW0PSQ.cjs"),O=require("./modal-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./alert-C95U_RZ0.cjs"),t=require("./accordionitem-D7sWqDM_.cjs"),a=require("./backlink-CQoNgoa-.cjs"),P=require("./button-BXN_JPaH.cjs"),i=require("./calendar-43Y_6FD8.cjs"),c=require("./card-DfHo45CG.cjs"),b=require("./combobox-TKL44xnV.cjs"),k=require("./consent-CIhFwuFO.cjs"),d=require("./checkbox-mmn3v9ry.cjs"),r=require("./datepicker-oN9L0Wnm.cjs"),e=require("./pkt-header.cjs"),l=require("./helptext-B366oeR9.cjs"),s=require("./heading-B0XRE0lq.cjs"),p=require("./icon-Dj0oZZSa.cjs"),g=require("./input-wrapper-BdFdJU-k.cjs"),m=require("./link-DLjXMpvi.cjs"),f=require("./linkcard-C20WC6Nw.cjs"),y=require("./loader-DxAGCcNF.cjs"),j=require("./messagebox-B8LW0PSQ.cjs"),O=require("./modal-mWn5pjs8.cjs"),q=require("./progressbar-CC9Qr82_.cjs"),n=require("./radiobutton-BUDQYAH-.cjs"),x=require("./tag-DeE1OpmF.cjs"),o=require("./tabitem-Jenus4Qd.cjs"),T=require("./textarea-DtiYQWjy.cjs"),C=require("./textinput-cKrjvbJW.cjs"),H=require("./select-PuEeK4jQ.cjs");Object.defineProperty(exports,"PktAlert",{enumerable:!0,get:()=>u.PktAlert});exports.PktAccordion=t.PktAccordion;exports.PktAccordionItem=t.PktAccordionItem_default;Object.defineProperty(exports,"PktBackLink",{enumerable:!0,get:()=>a.PktBackLink});Object.defineProperty(exports,"PktButton",{enumerable:!0,get:()=>P.PktButton});Object.defineProperty(exports,"PktCalendar",{enumerable:!0,get:()=>i.PktCalendar});Object.defineProperty(exports,"PktCard",{enumerable:!0,get:()=>c.PktCard});Object.defineProperty(exports,"PktCombobox",{enumerable:!0,get:()=>b.PktCombobox});Object.defineProperty(exports,"PktConsent",{enumerable:!0,get:()=>k.PktConsent});Object.defineProperty(exports,"PktCheckbox",{enumerable:!0,get:()=>d.PktCheckbox});Object.defineProperty(exports,"PktDateTags",{enumerable:!0,get:()=>r.PktDateTags});Object.defineProperty(exports,"PktDatepicker",{enumerable:!0,get:()=>r.PktDatepicker});Object.defineProperty(exports,"PktHeader",{enumerable:!0,get:()=>e.PktHeader});Object.defineProperty(exports,"PktHeaderService",{enumerable:!0,get:()=>e.PktHeaderService});Object.defineProperty(exports,"PktHeaderUserMenu",{enumerable:!0,get:()=>e.PktHeaderUserMenu});Object.defineProperty(exports,"PktHelptext",{enumerable:!0,get:()=>l.PktHelptext});Object.defineProperty(exports,"PktHeading",{enumerable:!0,get:()=>s.PktHeading});Object.defineProperty(exports,"PktIcon",{enumerable:!0,get:()=>p.PktIcon});Object.defineProperty(exports,"PktInputWrapper",{enumerable:!0,get:()=>g.PktInputWrapper});Object.defineProperty(exports,"PktLink",{enumerable:!0,get:()=>m.PktLink});Object.defineProperty(exports,"PktLinkCard",{enumerable:!0,get:()=>f.PktLinkCard});Object.defineProperty(exports,"PktLoader",{enumerable:!0,get:()=>y.PktLoader});Object.defineProperty(exports,"PktMessagebox",{enumerable:!0,get:()=>j.PktMessagebox});Object.defineProperty(exports,"PktModal",{enumerable:!0,get:()=>O.PktModal});Object.defineProperty(exports,"PktProgressbar",{enumerable:!0,get:()=>q.PktProgressbar});Object.defineProperty(exports,"PktRadioButton",{enumerable:!0,get:()=>n.PktRadioButton});Object.defineProperty(exports,"PktRadiobutton",{enumerable:!0,get:()=>n.PktRadioButton});Object.defineProperty(exports,"PktTag",{enumerable:!0,get:()=>x.PktTag});exports.PktTabItem=o.PktTabItem_default;exports.PktTabs=o.PktTabs;Object.defineProperty(exports,"PktTextarea",{enumerable:!0,get:()=>T.PktTextarea});Object.defineProperty(exports,"PktTextinput",{enumerable:!0,get:()=>C.PktTextinput});Object.defineProperty(exports,"PktSelect",{enumerable:!0,get:()=>H.PktSelect});
|
package/dist/pkt-index.js
CHANGED
|
@@ -17,7 +17,7 @@ import { P as q } from "./link-oGYvBLYL.js";
|
|
|
17
17
|
import { P as y } from "./linkcard-BhVIc18n.js";
|
|
18
18
|
import { P as E } from "./loader-BHt9i5Xp.js";
|
|
19
19
|
import { P as G } from "./messagebox-DkspcMQg.js";
|
|
20
|
-
import { P as K } from "./modal-
|
|
20
|
+
import { P as K } from "./modal-D3u6ueP5.js";
|
|
21
21
|
import { P as O } from "./progressbar-CcX-xiPI.js";
|
|
22
22
|
import { P as V, P as X } from "./radiobutton-RW3h0tJj.js";
|
|
23
23
|
import { P as Z } from "./tag-CIWBLpjv.js";
|
package/dist/pkt-modal.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./modal-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./modal-mWn5pjs8.cjs"),t=e.PktModal;Object.defineProperty(exports,"PktModal",{enumerable:!0,get:()=>e.PktModal});exports.default=t;
|
package/dist/pkt-modal.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oslokommune/punkt-elements",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.4.0",
|
|
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",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@babel/preset-env": "^7.28.3",
|
|
43
43
|
"@babel/preset-typescript": "^7.25.9",
|
|
44
44
|
"@oslokommune/punkt-assets": "^16.0.0",
|
|
45
|
-
"@oslokommune/punkt-css": "^16.
|
|
45
|
+
"@oslokommune/punkt-css": "^16.4.0",
|
|
46
46
|
"@testing-library/jest-dom": "^6.6.3",
|
|
47
47
|
"@typescript-eslint/eslint-plugin": "^8.46.0",
|
|
48
48
|
"@typescript-eslint/parser": "^8.46.0",
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"url": "https://github.com/oslokommune/punkt/issues"
|
|
80
80
|
},
|
|
81
81
|
"license": "MIT",
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "7ea157177224bb319ade35eb479b90e10940fdc6"
|
|
83
83
|
}
|
|
@@ -10,6 +10,7 @@ import specs from 'componentSpecs/modal.json'
|
|
|
10
10
|
import '@/components/icon'
|
|
11
11
|
|
|
12
12
|
export interface IPktModal {
|
|
13
|
+
open?: boolean
|
|
13
14
|
headingText?: string
|
|
14
15
|
removePadding?: boolean
|
|
15
16
|
hideCloseButton?: boolean
|
|
@@ -23,7 +24,8 @@ export interface IPktModal {
|
|
|
23
24
|
|
|
24
25
|
@customElement('pkt-modal')
|
|
25
26
|
export class PktModal extends PktElementWithSlot implements IPktModal {
|
|
26
|
-
// Public properties
|
|
27
|
+
// Public properties
|
|
28
|
+
@property({ type: Boolean, reflect: true }) open?: boolean = false
|
|
27
29
|
@property({ type: String }) headingText?: string = ''
|
|
28
30
|
@property({ type: Boolean }) removePadding?: boolean = false
|
|
29
31
|
@property({ type: Boolean }) hideCloseButton?: boolean = specs.props.hideCloseButton.default
|
|
@@ -56,6 +58,17 @@ export class PktModal extends PktElementWithSlot implements IPktModal {
|
|
|
56
58
|
document.removeEventListener('click', this.handleBackdropClick)
|
|
57
59
|
}
|
|
58
60
|
|
|
61
|
+
protected updated(changedProperties: PropertyValues): void {
|
|
62
|
+
super.updated(changedProperties)
|
|
63
|
+
if (changedProperties.has('open')) {
|
|
64
|
+
if (this.open && !this._isOpen) {
|
|
65
|
+
this.showModal()
|
|
66
|
+
} else if (!this.open && this._isOpen) {
|
|
67
|
+
this.close(new Event('close'), false)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
59
72
|
protected async firstUpdated(_changedProperties: PropertyValues): Promise<void> {
|
|
60
73
|
super.firstUpdated(_changedProperties)
|
|
61
74
|
if (this.dialogRef.value && !window.HTMLDialogElement && !this.dialogRef.value.showModal) {
|
|
@@ -96,6 +109,7 @@ export class PktModal extends PktElementWithSlot implements IPktModal {
|
|
|
96
109
|
public close = (event: Event, bypassNativeClose: boolean = false) => {
|
|
97
110
|
if (!this._isOpen) return
|
|
98
111
|
this._isOpen = false
|
|
112
|
+
this.open = false
|
|
99
113
|
|
|
100
114
|
document.body.classList.remove('pkt-modal--open')
|
|
101
115
|
|
|
@@ -115,19 +129,10 @@ export class PktModal extends PktElementWithSlot implements IPktModal {
|
|
|
115
129
|
|
|
116
130
|
public showModal = (event: Event | null = null) => {
|
|
117
131
|
this._isOpen = true
|
|
132
|
+
this.open = true
|
|
118
133
|
this.dialogRef.value?.showModal()
|
|
119
|
-
const modal = document.querySelector('.pkt-modal')
|
|
120
134
|
|
|
121
|
-
|
|
122
|
-
requestAnimationFrame(() => {
|
|
123
|
-
if (this.dialogRef.value) {
|
|
124
|
-
this.dialogRef.value?.focus()
|
|
125
|
-
}
|
|
126
|
-
})
|
|
127
|
-
|
|
128
|
-
if (modal) {
|
|
129
|
-
document.body.classList.add('pkt-modal--open')
|
|
130
|
-
}
|
|
135
|
+
document.body.classList.add('pkt-modal--open')
|
|
131
136
|
this.dispatchEvent(
|
|
132
137
|
new CustomEvent('showModal', { detail: { origin: event }, bubbles: true, composed: true }),
|
|
133
138
|
)
|
|
@@ -166,7 +171,7 @@ export class PktModal extends PktElementWithSlot implements IPktModal {
|
|
|
166
171
|
<dialog
|
|
167
172
|
class=${classMap(classes)}
|
|
168
173
|
${ref(this.dialogRef)}
|
|
169
|
-
aria-labelledby
|
|
174
|
+
aria-labelledby=${this.headingText ? 'pkt-modal__headingText' : nothing}
|
|
170
175
|
aria-describedby="pkt-modal__content"
|
|
171
176
|
@close=${(event: Event) => this.close(event, true)}
|
|
172
177
|
>
|
package/dist/modal-Bfk_ncLQ.cjs
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";const d=require("./class-map-Bokp1SoS.cjs"),o=require("./element-CMTfByxQ.cjs"),u=require("./state-BNgpvY-A.cjs"),p=require("./element-with-slot-yT8k1Z37.cjs"),h=require("./ref-DahIePMT.cjs");require("./icon-Dj0oZZSa.cjs");const k={hideCloseButton:{default:!1},closeOnBackdropClick:{default:!1},size:{default:"medium"}},c={props:k};var m=Object.defineProperty,v=Object.getOwnPropertyDescriptor,n=(r,e,t,i)=>{for(var s=i>1?void 0:i?v(e,t):e,l=r.length-1,a;l>=0;l--)(a=r[l])&&(s=(i?a(e,t,s):a(s))||s);return i&&s&&m(e,t,s),s};exports.PktModal=class extends p.PktElementWithSlot{constructor(){super(),this.headingText="",this.removePadding=!1,this.hideCloseButton=c.props.hideCloseButton.default,this.closeOnBackdropClick=c.props.closeOnBackdropClick.default,this.closeButtonSkin="blue",this.size=c.props.size.default,this.variant="dialog",this.drawerPosition="right",this.transparentBackdrop=!1,this.dialogRef=h.e(),this._isOpen=!1,this.close=(e,t=!1)=>{var s;if(!this._isOpen)return;this._isOpen=!1,document.body.classList.remove("pkt-modal--open");const i=document.activeElement;i&&!this.isElementInViewport(i)&&i.scrollIntoView({behavior:"smooth",block:"nearest"}),this.dispatchEvent(new CustomEvent("close",{detail:{origin:e},bubbles:!0,composed:!0})),t||(s=this.dialogRef.value)==null||s.close(),this.requestUpdate()},this.showModal=(e=null)=>{var i;this._isOpen=!0,(i=this.dialogRef.value)==null||i.showModal();const t=document.querySelector(".pkt-modal");requestAnimationFrame(()=>{var s;this.dialogRef.value&&((s=this.dialogRef.value)==null||s.focus())}),t&&document.body.classList.add("pkt-modal--open"),this.dispatchEvent(new CustomEvent("showModal",{detail:{origin:e},bubbles:!0,composed:!0})),this.requestUpdate()},this._isOpen=!1}async connectedCallback(){super.connectedCallback(),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("click",this.handleBackdropClick.bind(this))}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("click",this.handleBackdropClick)}async firstUpdated(e){super.firstUpdated(e),this.dialogRef.value&&!window.HTMLDialogElement&&!this.dialogRef.value.showModal&&("document"in window&&"createElement"in document&&(await Promise.resolve().then(()=>require("./dialog-polyfill.esm-CPKZe7AL.cjs")).then(i=>i.default)).registerDialog(this.dialogRef.value),this.dialogRef.value.addEventListener("close",()=>{this.close(new Event("close"),!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--noShadow":this.closeButtonSkin==="yellow-filled","pkt-modal--transparentBackdrop":this.transparentBackdrop??!1,[`pkt-modal--${this.size}`]:this.size!==void 0,[`pkt-modal__${this.variant}`]:this.variant!==void 0,[`pkt-modal__drawer--${this.drawerPosition}`]:this.variant==="drawer"},t={"pkt-modal__headingText":!0,"pkt-txt-24":!0},i={"pkt-modal__content":!0,"pkt-txt-18-light":!0},s=this.closeButtonSkin==="blue",l={"pkt-modal__closeButton":!0,[`pkt-modal__closeButton--${this.closeButtonSkin}`]:!0};return o.b`
|
|
2
|
-
<dialog
|
|
3
|
-
class=${d.e(e)}
|
|
4
|
-
${h.n(this.dialogRef)}
|
|
5
|
-
aria-labelledby="pkt-modal__headingText"
|
|
6
|
-
aria-describedby="pkt-modal__content"
|
|
7
|
-
@close=${a=>this.close(a,!0)}
|
|
8
|
-
>
|
|
9
|
-
<div class="pkt-modal__wrapper">
|
|
10
|
-
${this.headingText||!this.hideCloseButton?o.b`<div class="pkt-modal__header">
|
|
11
|
-
<div class="pkt-modal__header-background"></div>
|
|
12
|
-
${this.headingText?o.b`<h1 id="pkt-modal__headingText" class=${d.e(t)}>
|
|
13
|
-
${this.headingText}
|
|
14
|
-
</h1>`:o.b`<div class="pkt-modal__headingText"></div>`}
|
|
15
|
-
${this.hideCloseButton?o.b`<div class="pkt-modal__noCloseButton"></div>`:o.b`<div class="${d.e(l)}">
|
|
16
|
-
<pkt-button
|
|
17
|
-
@click=${a=>this.close(a)}
|
|
18
|
-
aria-label="close"
|
|
19
|
-
iconname="close"
|
|
20
|
-
variant="icon-only"
|
|
21
|
-
size="medium"
|
|
22
|
-
skin=${s?"tertiary":"primary"}
|
|
23
|
-
>
|
|
24
|
-
Lukk
|
|
25
|
-
</pkt-button>
|
|
26
|
-
</div>`}
|
|
27
|
-
</div>`:o.A}
|
|
28
|
-
<div class="pkt-modal__container">
|
|
29
|
-
<div
|
|
30
|
-
id="pkt-modal__content"
|
|
31
|
-
class=${d.e(i)}
|
|
32
|
-
>${p.slotContent(this)}</div>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
</dialog>
|
|
36
|
-
`}};n([o.n({type:String})],exports.PktModal.prototype,"headingText",2);n([o.n({type:Boolean})],exports.PktModal.prototype,"removePadding",2);n([o.n({type:Boolean})],exports.PktModal.prototype,"hideCloseButton",2);n([o.n({type:Boolean})],exports.PktModal.prototype,"closeOnBackdropClick",2);n([o.n({type:String})],exports.PktModal.prototype,"closeButtonSkin",2);n([o.n({type:String})],exports.PktModal.prototype,"size",2);n([o.n({type:String})],exports.PktModal.prototype,"variant",2);n([o.n({type:String})],exports.PktModal.prototype,"drawerPosition",2);n([o.n({type:Boolean})],exports.PktModal.prototype,"transparentBackdrop",2);n([u.r()],exports.PktModal.prototype,"_isOpen",2);exports.PktModal=n([o.t("pkt-modal")],exports.PktModal);
|