@skf-design-system/ui-components 1.0.1-beta.0 → 1.0.2-beta.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/README.md +1 -18
- package/dist/components/accordion/accordion.component.d.ts +4 -4
- package/dist/components/accordion/accordion.component.js +8 -8
- package/dist/components/alert/alert.component.d.ts +8 -9
- package/dist/components/alert/alert.component.js +14 -14
- package/dist/components/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/dist/components/button/button.component.d.ts +3 -3
- package/dist/components/button/button.component.js +59 -55
- package/dist/components/card/card.component.js +18 -30
- package/dist/components/card/card.styles.js +25 -28
- package/dist/components/checkbox/checkbox.component.d.ts +9 -7
- package/dist/components/checkbox/checkbox.component.js +71 -58
- package/dist/components/collapse/collapse.component.js +1 -1
- package/dist/components/date-picker/datepicker.calendar.component.d.ts +77 -0
- package/dist/components/date-picker/datepicker.calendar.component.js +415 -0
- package/dist/components/date-picker/datepicker.calendar.styles.d.ts +1 -0
- package/dist/components/date-picker/datepicker.calendar.styles.js +202 -0
- package/dist/components/date-picker/datepicker.component.d.ts +79 -0
- package/dist/components/date-picker/datepicker.component.js +261 -0
- package/dist/components/date-picker/datepicker.d.ts +10 -0
- package/dist/components/date-picker/datepicker.helpers.d.ts +41 -0
- package/dist/components/date-picker/datepicker.helpers.js +76 -0
- package/dist/components/date-picker/datepicker.js +8 -0
- package/dist/components/date-picker/datepicker.styles.d.ts +1 -0
- package/dist/components/date-picker/datepicker.styles.js +87 -0
- package/dist/components/date-picker-input/datepicker-input.component.d.ts +115 -0
- package/dist/components/date-picker-input/datepicker-input.component.js +441 -0
- package/dist/components/date-picker-input/datepicker-input.d.ts +8 -0
- package/dist/components/date-picker-input/datepicker-input.helpers.d.ts +38 -0
- package/dist/components/date-picker-input/datepicker-input.helpers.js +31 -0
- package/dist/components/date-picker-input/datepicker-input.js +6 -0
- package/dist/components/date-picker-input/datepicker-input.styles.d.ts +1 -0
- package/dist/components/date-picker-input/datepicker-input.styles.js +18 -0
- package/dist/components/dialog/dialog.component.d.ts +18 -28
- package/dist/components/dialog/dialog.component.js +94 -84
- package/dist/components/divider/divider.component.d.ts +4 -8
- package/dist/components/divider/divider.component.js +24 -46
- package/dist/components/divider/divider.styles.js +34 -30
- package/dist/components/drawer/drawer.component.d.ts +57 -0
- package/dist/components/drawer/drawer.component.js +124 -0
- package/dist/components/drawer/drawer.d.ts +8 -0
- package/dist/components/drawer/drawer.js +6 -0
- package/dist/components/drawer/drawer.styles.d.ts +1 -0
- package/dist/components/drawer/drawer.styles.js +71 -0
- package/dist/components/header/header.component.d.ts +45 -0
- package/dist/components/header/header.component.js +110 -0
- package/dist/components/header/header.d.ts +8 -0
- package/dist/components/header/header.js +6 -0
- package/dist/components/header/header.styles.d.ts +1 -0
- package/dist/components/header/header.styles.js +68 -0
- package/dist/components/heading/heading.component.d.ts +6 -12
- package/dist/components/heading/heading.component.js +17 -17
- package/dist/components/heading/heading.styles.d.ts +1 -2
- package/dist/components/heading/heading.styles.js +1 -1
- package/dist/components/icon/icon.component.d.ts +1 -1
- package/dist/components/icon/icon.component.js +19 -19
- package/dist/components/input/input.component.d.ts +3 -2
- package/dist/components/input/input.component.js +89 -82
- package/dist/components/input/input.controllers.d.ts +20 -6
- package/dist/components/input/input.controllers.js +14 -10
- package/dist/components/link/link.component.js +29 -28
- package/dist/components/link/link.styles.js +24 -20
- package/dist/components/loader/loader.component.js +19 -19
- package/dist/components/logo/logo.component.js +6 -6
- package/dist/components/menu/menu.component.d.ts +4 -5
- package/dist/components/menu/menu.component.js +1 -1
- package/dist/components/nav/nav.component.d.ts +17 -0
- package/dist/components/nav/nav.component.js +34 -0
- package/dist/components/nav/nav.d.ts +8 -0
- package/dist/components/nav/nav.js +6 -0
- package/dist/components/nav/nav.styles.d.ts +1 -0
- package/dist/components/nav/nav.styles.js +17 -0
- package/dist/components/nav-item/nav-item.component.d.ts +20 -0
- package/dist/components/nav-item/nav-item.component.js +38 -0
- package/dist/components/nav-item/nav-item.d.ts +8 -0
- package/dist/components/nav-item/nav-item.js +6 -0
- package/dist/components/nav-item/nav-item.styles.d.ts +1 -0
- package/dist/components/nav-item/nav-item.styles.js +39 -0
- package/dist/components/popover/popover.component.d.ts +5 -6
- package/dist/components/popover/popover.component.js +24 -24
- package/dist/components/progress/progress.component.js +7 -7
- package/dist/components/radio/radio.component.d.ts +10 -6
- package/dist/components/radio/radio.component.js +14 -14
- package/dist/components/radio/radio.styles.d.ts +1 -2
- package/dist/components/radio/radio.styles.js +1 -1
- package/dist/components/segmented-button/segmented-button.component.d.ts +32 -0
- package/dist/components/segmented-button/segmented-button.d.ts +8 -0
- package/dist/components/segmented-button/segmented-button.styles.d.ts +1 -0
- package/dist/components/segmented-button-item/segmented-button-item.component.d.ts +36 -0
- package/dist/components/segmented-button-item/segmented-button-item.d.ts +8 -0
- package/dist/components/segmented-button-item/segmented-button-item.styles.d.ts +1 -0
- package/dist/components/select/select.component.js +2 -2
- package/dist/components/select/select.controllers.d.ts +20 -9
- package/dist/components/select/select.controllers.js +27 -22
- package/dist/components/select-option/select-option.controllers.d.ts +11 -5
- package/dist/components/select-option-group/select-option-group.component.js +9 -9
- package/dist/components/stepper/stepper.component.d.ts +2 -1
- package/dist/components/stepper/stepper.component.js +9 -9
- package/dist/components/stepper/stepper.helpers.js +5 -5
- package/dist/components/stepper-item/stepper-item.component.js +25 -25
- package/dist/components/switch/switch.component.d.ts +7 -6
- package/dist/components/switch/switch.component.js +7 -7
- package/dist/components/tab/tab.component.js +4 -4
- package/dist/components/tab-panel/tab-panel.component.js +12 -12
- package/dist/components/tag/tag.component.d.ts +4 -2
- package/dist/components/tag/tag.component.js +14 -14
- package/dist/components/textarea/textarea.component.js +10 -10
- package/dist/components/toast/toast.component.d.ts +1 -1
- package/dist/components/toast/toast.component.js +13 -13
- package/dist/components/toast-wrapper/toast-wrapper.component.js +10 -10
- package/dist/components/tooltip/tooltip.component.d.ts +5 -6
- package/dist/components/tooltip/tooltip.component.js +11 -11
- package/dist/custom-elements.json +3702 -2190
- package/dist/index.d.ts +6 -0
- package/dist/index.js +84 -66
- package/dist/internal/base-classes/popover/popover.base.d.ts +17 -7
- package/dist/internal/base-classes/popover/popover.base.js +119 -75
- package/dist/internal/base-classes/popover/popover.styles.js +14 -1
- package/dist/internal/components/hint/hint.component.js +13 -13
- package/dist/internal/controllers/elementOverflowController.d.ts +13 -0
- package/dist/internal/controllers/popover.controller.d.ts +12 -6
- package/dist/internal/controllers/popover.controller.js +9 -14
- package/dist/internal/helpers/dateFormatter.d.ts +2 -0
- package/dist/internal/helpers/utilityTypes.d.ts +22 -0
- package/dist/internal/helpers/uuid.d.ts +15 -0
- package/dist/internal/helpers/uuid.js +14 -0
- package/dist/internal/storybook/styles.d.ts +1 -0
- package/dist/styles/form-field.styles.js +11 -6
- package/dist/styles/global.css +1 -1
- package/dist/types/jsx/custom-element-jsx.d.ts +663 -1240
- package/dist/types/vue/index.d.ts +453 -255
- package/dist/vscode.html-custom-data.json +821 -503
- package/dist/web-types.json +1005 -633
- package/package.json +43 -52
- package/dist/react/index.d.ts +0 -35
- package/dist/react/index.js +0 -35
- package/dist/react/skf-accordion/index.d.ts +0 -3
- package/dist/react/skf-accordion/index.js +0 -13
- package/dist/react/skf-alert/index.d.ts +0 -9
- package/dist/react/skf-alert/index.js +0 -17
- package/dist/react/skf-breadcrumb/index.d.ts +0 -9
- package/dist/react/skf-breadcrumb/index.js +0 -17
- package/dist/react/skf-breadcrumb-item/index.d.ts +0 -3
- package/dist/react/skf-breadcrumb-item/index.js +0 -13
- package/dist/react/skf-button/index.d.ts +0 -9
- package/dist/react/skf-button/index.js +0 -17
- package/dist/react/skf-card/index.d.ts +0 -3
- package/dist/react/skf-card/index.js +0 -13
- package/dist/react/skf-checkbox/index.d.ts +0 -9
- package/dist/react/skf-checkbox/index.js +0 -17
- package/dist/react/skf-collapse/index.d.ts +0 -9
- package/dist/react/skf-collapse/index.js +0 -17
- package/dist/react/skf-dialog/index.d.ts +0 -15
- package/dist/react/skf-dialog/index.js +0 -19
- package/dist/react/skf-divider/index.d.ts +0 -3
- package/dist/react/skf-divider/index.js +0 -13
- package/dist/react/skf-heading/index.d.ts +0 -3
- package/dist/react/skf-heading/index.js +0 -13
- package/dist/react/skf-icon/index.d.ts +0 -3
- package/dist/react/skf-icon/index.js +0 -13
- package/dist/react/skf-input/index.d.ts +0 -12
- package/dist/react/skf-input/index.js +0 -18
- package/dist/react/skf-link/index.d.ts +0 -3
- package/dist/react/skf-link/index.js +0 -13
- package/dist/react/skf-loader/index.d.ts +0 -3
- package/dist/react/skf-loader/index.js +0 -13
- package/dist/react/skf-logo/index.d.ts +0 -3
- package/dist/react/skf-logo/index.js +0 -13
- package/dist/react/skf-menu/index.d.ts +0 -12
- package/dist/react/skf-menu/index.js +0 -18
- package/dist/react/skf-menu-item/index.d.ts +0 -27
- package/dist/react/skf-menu-item/index.js +0 -23
- package/dist/react/skf-popover/index.d.ts +0 -12
- package/dist/react/skf-popover/index.js +0 -18
- package/dist/react/skf-progress/index.d.ts +0 -3
- package/dist/react/skf-progress/index.js +0 -13
- package/dist/react/skf-radio/index.d.ts +0 -9
- package/dist/react/skf-radio/index.js +0 -17
- package/dist/react/skf-select/index.d.ts +0 -21
- package/dist/react/skf-select/index.js +0 -21
- package/dist/react/skf-select-option/index.d.ts +0 -9
- package/dist/react/skf-select-option/index.js +0 -17
- package/dist/react/skf-select-option-group/index.d.ts +0 -3
- package/dist/react/skf-select-option-group/index.js +0 -13
- package/dist/react/skf-stepper/index.d.ts +0 -9
- package/dist/react/skf-stepper/index.js +0 -17
- package/dist/react/skf-stepper-item/index.d.ts +0 -9
- package/dist/react/skf-stepper-item/index.js +0 -17
- package/dist/react/skf-switch/index.d.ts +0 -3
- package/dist/react/skf-switch/index.js +0 -13
- package/dist/react/skf-tab/index.d.ts +0 -12
- package/dist/react/skf-tab/index.js +0 -18
- package/dist/react/skf-tab-group/index.d.ts +0 -3
- package/dist/react/skf-tab-group/index.js +0 -13
- package/dist/react/skf-tab-panel/index.d.ts +0 -3
- package/dist/react/skf-tab-panel/index.js +0 -13
- package/dist/react/skf-tag/index.d.ts +0 -3
- package/dist/react/skf-tag/index.js +0 -13
- package/dist/react/skf-textarea/index.d.ts +0 -12
- package/dist/react/skf-textarea/index.js +0 -18
- package/dist/react/skf-toast/index.d.ts +0 -3
- package/dist/react/skf-toast/index.js +0 -13
- package/dist/react/skf-toast-wrapper/index.d.ts +0 -3
- package/dist/react/skf-toast-wrapper/index.js +0 -13
- package/dist/react/skf-tooltip/index.d.ts +0 -12
- package/dist/react/skf-tooltip/index.js +0 -18
@@ -1,66 +1,61 @@
|
|
1
|
-
var
|
2
|
-
throw TypeError(
|
1
|
+
var m = (e) => {
|
2
|
+
throw TypeError(e);
|
3
3
|
};
|
4
|
-
var
|
5
|
-
var
|
4
|
+
var _ = (e, i, o) => i.has(e) || m("Cannot " + o);
|
5
|
+
var h = (e, i, o) => (_(e, i, "read from private field"), o ? o.call(e) : i.get(e)), g = (e, i, o) => i.has(e) ? m("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(e) : i.set(e, o), c = (e, i, o, t) => (_(e, i, "write to private field"), t ? t.call(e, o) : i.set(e, o), o);
|
6
6
|
import "../button/button.js";
|
7
7
|
import "../heading/heading.js";
|
8
8
|
import "../icon/icon.js";
|
9
|
-
import { SkfElement as
|
10
|
-
import { watch as
|
9
|
+
import { SkfElement as C } from "../../internal/components/skf-element.js";
|
10
|
+
import { watch as v } from "../../internal/helpers/watch.js";
|
11
11
|
import B from "../../styles/component.styles.js";
|
12
|
-
import {
|
13
|
-
import { property as
|
14
|
-
import { classMap as
|
12
|
+
import { nothing as k, html as $ } from "lit";
|
13
|
+
import { property as p, state as b, query as P, queryAssignedElements as E } from "lit/decorators.js";
|
14
|
+
import { classMap as w } from "lit/directives/class-map.js";
|
15
15
|
import { styles as O } from "./dialog.styles.js";
|
16
|
-
var
|
17
|
-
for (var
|
18
|
-
(
|
19
|
-
return
|
20
|
-
},
|
21
|
-
const y = class y extends
|
16
|
+
var x = Object.defineProperty, A = Object.getOwnPropertyDescriptor, n = (e, i, o, t) => {
|
17
|
+
for (var l = t > 1 ? void 0 : t ? A(i, o) : i, a = e.length - 1, d; a >= 0; a--)
|
18
|
+
(d = e[a]) && (l = (t ? d(i, o, l) : d(l)) || l);
|
19
|
+
return t && l && x(i, o, l), l;
|
20
|
+
}, f, u, r;
|
21
|
+
const y = class y extends C {
|
22
22
|
constructor() {
|
23
23
|
super(...arguments);
|
24
|
-
g(this,
|
24
|
+
g(this, f);
|
25
25
|
g(this, u);
|
26
|
-
g(this,
|
27
|
-
|
28
|
-
|
29
|
-
}, this._handleClose = (
|
30
|
-
console.log("Handle close reached"), this.onClose && this.onClose(
|
31
|
-
}, this.
|
26
|
+
g(this, r);
|
27
|
+
c(this, f, 0), c(this, u, 20), c(this, r, !1), this.fullscreen = !1, this.noCloseButton = !1, this.noPadding = !1, this.open = !1, this.onClose = null, this.renderFoot = !1, this._handleBackdropClick = (o) => {
|
28
|
+
o.target === this.$dialog && this.close();
|
29
|
+
}, this._handleClose = (o) => {
|
30
|
+
console.log("Handle close reached"), this.onClose && this.onClose(o), this.close();
|
31
|
+
}, this._handleKeyDown = (o) => {
|
32
|
+
o.preventDefault(), o.key === "Escape" && this.close();
|
33
|
+
};
|
34
|
+
}
|
35
|
+
handleOpenChange() {
|
36
|
+
var o;
|
37
|
+
this.open ? this.showModal() : this.close(), this.open && (this.renderFoot = !!((o = this.footerEls) != null && o.length));
|
32
38
|
}
|
33
39
|
firstUpdated() {
|
34
|
-
this.$dialog.addEventListener("close", (
|
35
|
-
|
40
|
+
this.$dialog && this.$dialog.addEventListener("close", (o) => {
|
41
|
+
o.stopPropagation(), this.emit("skf-dialog-closed");
|
36
42
|
});
|
37
43
|
}
|
38
|
-
handleOpenChange() {
|
39
|
-
var t;
|
40
|
-
switch (!0) {
|
41
|
-
case (this.open === !0 && !!this.modal):
|
42
|
-
this.showModal();
|
43
|
-
break;
|
44
|
-
case (this.open === !0 && !this.modal):
|
45
|
-
this.show();
|
46
|
-
break;
|
47
|
-
case this.open === !1:
|
48
|
-
this.close();
|
49
|
-
break;
|
50
|
-
}
|
51
|
-
this.open && (this.renderFoot = !!((t = this.footerEls) != null && t.length));
|
52
|
-
}
|
53
44
|
/** @internal */
|
54
45
|
_transition() {
|
55
|
-
const
|
56
|
-
translate: `${String(
|
46
|
+
const o = this.fullscreen ? {} : {
|
47
|
+
translate: `${String(h(this, f))} ${String(h(this, u))}px`
|
57
48
|
};
|
58
|
-
return { entry: () => new Promise((
|
59
|
-
|
49
|
+
return { entry: () => new Promise((a) => {
|
50
|
+
if (!this.$dialog) {
|
51
|
+
a("no dialog found");
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
const d = this.$dialog.animate(
|
60
55
|
[
|
61
56
|
{
|
62
57
|
opacity: 0,
|
63
|
-
...
|
58
|
+
...o
|
64
59
|
},
|
65
60
|
{ opacity: 1, translate: "0 0" }
|
66
61
|
],
|
@@ -74,16 +69,20 @@ const y = class y extends v {
|
|
74
69
|
duration: 200,
|
75
70
|
fill: "forwards",
|
76
71
|
pseudoElement: "::backdrop"
|
77
|
-
}),
|
78
|
-
|
72
|
+
}), d.onfinish = () => {
|
73
|
+
a("opened");
|
79
74
|
};
|
80
|
-
}), exit: () => new Promise((
|
81
|
-
|
75
|
+
}), exit: () => new Promise((a) => {
|
76
|
+
if (!this.$dialog) {
|
77
|
+
a("no dialog found");
|
78
|
+
return;
|
79
|
+
}
|
80
|
+
const d = this.$dialog.animate(
|
82
81
|
[
|
83
82
|
{ opacity: 1, translate: "0 0" },
|
84
83
|
{
|
85
84
|
opacity: 0,
|
86
|
-
...
|
85
|
+
...o
|
87
86
|
}
|
88
87
|
],
|
89
88
|
{
|
@@ -96,23 +95,37 @@ const y = class y extends v {
|
|
96
95
|
duration: 200,
|
97
96
|
fill: "forwards",
|
98
97
|
pseudoElement: "::backdrop"
|
99
|
-
}),
|
100
|
-
|
98
|
+
}), d.onfinish = () => {
|
99
|
+
a("closed");
|
101
100
|
};
|
102
101
|
}) };
|
103
102
|
}
|
104
|
-
/**
|
105
|
-
|
106
|
-
|
103
|
+
/** Method that opens the dialog in modal state */
|
104
|
+
async showModal() {
|
105
|
+
async function o(t) {
|
106
|
+
return t.$dialog ? (t.$dialog.showModal(), await t._transition().entry(), t.emit("skf-dialog-opened"), !0) : !1;
|
107
|
+
}
|
108
|
+
return await o(this);
|
109
|
+
}
|
110
|
+
/** Method that closes the dialog */
|
111
|
+
async close() {
|
112
|
+
if (console.log("close reached", h(this, r)), h(this, r) || !this.open) return;
|
113
|
+
c(this, r, !0);
|
114
|
+
async function o(t) {
|
115
|
+
return t.$dialog ? (t.emit("skf-dialog-closing"), await t._transition().exit(), t.$dialog.close(), t.open = !1, c(t, r, !1), !0) : !1;
|
116
|
+
}
|
117
|
+
return await o(this);
|
107
118
|
}
|
108
119
|
render() {
|
109
|
-
return
|
120
|
+
return $`
|
110
121
|
<dialog
|
111
122
|
@close=${this._handleClose}
|
112
123
|
@mousedown=${this._handleBackdropClick}
|
113
124
|
@touchstart=${this._handleBackdropClick}
|
125
|
+
@keydown=${this._handleKeyDown}
|
126
|
+
aria-modal="true"
|
114
127
|
autofocus
|
115
|
-
class=${
|
128
|
+
class=${w({
|
116
129
|
dialog: !0,
|
117
130
|
"dialog--fullscreen": this.fullscreen,
|
118
131
|
"dialog--no-padding": this.noPadding
|
@@ -120,7 +133,7 @@ const y = class y extends v {
|
|
120
133
|
>
|
121
134
|
<div class="dialog__head">
|
122
135
|
<h2 class="dialog__heading">${this.heading}</h2>
|
123
|
-
${this.noCloseButton ? k :
|
136
|
+
${this.noCloseButton ? k : $`
|
124
137
|
<button
|
125
138
|
@click=${this._handleClose}
|
126
139
|
aria-label=${this.closeButtonAriaLabel ?? "Close dialog"}
|
@@ -133,7 +146,7 @@ const y = class y extends v {
|
|
133
146
|
<div class="dialog__body">
|
134
147
|
<slot class="dialog__main"></slot>
|
135
148
|
<slot
|
136
|
-
class=${
|
149
|
+
class=${w({
|
137
150
|
dialog__foot: !0,
|
138
151
|
"dialog__foot--hidden": !this.renderFoot
|
139
152
|
})}
|
@@ -144,43 +157,40 @@ const y = class y extends v {
|
|
144
157
|
`;
|
145
158
|
}
|
146
159
|
};
|
147
|
-
|
160
|
+
f = new WeakMap(), u = new WeakMap(), r = new WeakMap(), y.styles = [B, O];
|
148
161
|
let s = y;
|
149
|
-
|
150
|
-
|
162
|
+
n([
|
163
|
+
p({ attribute: "close-button-aria-label" })
|
151
164
|
], s.prototype, "closeButtonAriaLabel", 2);
|
152
|
-
|
153
|
-
|
165
|
+
n([
|
166
|
+
p()
|
154
167
|
], s.prototype, "heading", 2);
|
155
|
-
|
156
|
-
|
168
|
+
n([
|
169
|
+
p({ type: Boolean })
|
157
170
|
], s.prototype, "fullscreen", 2);
|
158
|
-
|
159
|
-
|
171
|
+
n([
|
172
|
+
p({ type: Boolean, attribute: "no-close-button" })
|
160
173
|
], s.prototype, "noCloseButton", 2);
|
161
|
-
|
162
|
-
|
174
|
+
n([
|
175
|
+
p({ type: Boolean, attribute: "no-padding" })
|
163
176
|
], s.prototype, "noPadding", 2);
|
164
|
-
|
165
|
-
|
177
|
+
n([
|
178
|
+
p({ type: Boolean, reflect: !0 })
|
166
179
|
], s.prototype, "open", 2);
|
167
|
-
|
168
|
-
|
180
|
+
n([
|
181
|
+
b()
|
169
182
|
], s.prototype, "onClose", 2);
|
170
|
-
|
183
|
+
n([
|
184
|
+
b()
|
185
|
+
], s.prototype, "renderFoot", 2);
|
186
|
+
n([
|
171
187
|
P("dialog")
|
172
188
|
], s.prototype, "$dialog", 2);
|
173
|
-
|
174
|
-
|
189
|
+
n([
|
190
|
+
E({ slot: "footer" })
|
175
191
|
], s.prototype, "footerEls", 2);
|
176
|
-
|
177
|
-
|
178
|
-
], s.prototype, "modal", 2);
|
179
|
-
i([
|
180
|
-
m()
|
181
|
-
], s.prototype, "renderFoot", 2);
|
182
|
-
i([
|
183
|
-
C("open")
|
192
|
+
n([
|
193
|
+
v("open")
|
184
194
|
], s.prototype, "handleOpenChange", 1);
|
185
195
|
export {
|
186
196
|
s as SkfDialog
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { SkfElement } from '../../internal/components/skf-element.js';
|
2
2
|
import type { BorderColor } from '@skf-design-system/ui-assets';
|
3
3
|
import { type CSSResultGroup } from 'lit';
|
4
|
+
type SkfDividerColor = BorderColor;
|
4
5
|
/**
|
5
6
|
* The `<Divider>` component can separate items from each other, to visually emphasize their lack of a relationship between groups of information
|
6
7
|
*
|
@@ -12,18 +13,13 @@ import { type CSSResultGroup } from 'lit';
|
|
12
13
|
* @tagname skf-divider
|
13
14
|
*/
|
14
15
|
export declare class SkfDivider extends SkfElement {
|
15
|
-
#private;
|
16
16
|
static styles: CSSResultGroup;
|
17
|
-
/**
|
18
|
-
|
19
|
-
* @type { "emphasised" | "primary" | "secondary" | "tertiary" | "inverse" }
|
20
|
-
*/
|
21
|
-
color: BorderColor;
|
17
|
+
/** Defines the Divider color */
|
18
|
+
color: SkfDividerColor;
|
22
19
|
/** If true, renders a div for presentational purpose instead of the semantic hr-element */
|
23
20
|
decorative: boolean;
|
24
21
|
/** If true, renders the divider vertically */
|
25
22
|
vertical: boolean;
|
26
|
-
constructor();
|
27
23
|
connectedCallback(): void;
|
28
|
-
render(): import("lit").TemplateResult<1>;
|
29
24
|
}
|
25
|
+
export {};
|
@@ -1,54 +1,32 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
import { SkfElement as n } from "../../internal/components/skf-element.js";
|
2
|
+
import m from "../../styles/component.styles.js";
|
3
|
+
import "lit";
|
4
|
+
import { property as o } from "lit/decorators.js";
|
5
|
+
import { styles as f } from "./divider.styles.js";
|
6
|
+
var h = Object.defineProperty, a = (l, s, c, v) => {
|
7
|
+
for (var t = void 0, r = l.length - 1, p; r >= 0; r--)
|
8
|
+
(p = l[r]) && (t = p(s, c, t) || t);
|
9
|
+
return t && h(s, c, t), t;
|
3
10
|
};
|
4
|
-
|
5
|
-
var c = (r, e, t) => (m(r, e, "read from private field"), t ? t.call(r) : e.get(r)), f = (r, e, t) => e.has(r) ? v("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(r) : e.set(r, t), y = (r, e, t, a) => (m(r, e, "write to private field"), a ? a.call(r, t) : e.set(r, t), t);
|
6
|
-
import { SkfElement as u } from "../../internal/components/skf-element.js";
|
7
|
-
import b from "../../styles/component.styles.js";
|
8
|
-
import { html as C } from "lit";
|
9
|
-
import { property as n } from "lit/decorators.js";
|
10
|
-
import { classMap as _ } from "lit/directives/class-map.js";
|
11
|
-
import { styles as x } from "./divider.styles.js";
|
12
|
-
var B = Object.defineProperty, d = (r, e, t, a) => {
|
13
|
-
for (var o = void 0, l = r.length - 1, h; l >= 0; l--)
|
14
|
-
(h = r[l]) && (o = h(e, t, o) || o);
|
15
|
-
return o && B(e, t, o), o;
|
16
|
-
}, i;
|
17
|
-
const p = class p extends u {
|
11
|
+
const i = class i extends n {
|
18
12
|
constructor() {
|
19
|
-
super();
|
20
|
-
f(this, i);
|
21
|
-
this.color = "primary", this.decorative = !1, this.vertical = !1, y(this, i, this.attachInternals());
|
13
|
+
super(...arguments), this.color = "primary", this.decorative = !1, this.vertical = !1;
|
22
14
|
}
|
23
15
|
connectedCallback() {
|
24
|
-
super.connectedCallback(),
|
25
|
-
}
|
26
|
-
render() {
|
27
|
-
return C`
|
28
|
-
<div
|
29
|
-
class=${_({
|
30
|
-
divider: !0,
|
31
|
-
"divider--color-emphasised": this.color === "emphasised",
|
32
|
-
"divider--color-inverse": this.color === "inverse",
|
33
|
-
"divider--color-secondary": this.color === "secondary",
|
34
|
-
"divider--color-tertiary": this.color === "tertiary",
|
35
|
-
"divider--vertical": this.vertical
|
36
|
-
})}
|
37
|
-
></div>
|
38
|
-
`;
|
16
|
+
super.connectedCallback(), this.role = this.decorative ? "generic" : "separator", this.ariaOrientation = this.vertical ? "vertical" : "horizontal";
|
39
17
|
}
|
40
18
|
};
|
41
|
-
i
|
42
|
-
let
|
43
|
-
|
44
|
-
|
45
|
-
],
|
46
|
-
|
47
|
-
|
48
|
-
],
|
49
|
-
|
50
|
-
|
51
|
-
],
|
19
|
+
i.styles = [m, f];
|
20
|
+
let e = i;
|
21
|
+
a([
|
22
|
+
o({ reflect: !0 })
|
23
|
+
], e.prototype, "color");
|
24
|
+
a([
|
25
|
+
o({ type: Boolean })
|
26
|
+
], e.prototype, "decorative");
|
27
|
+
a([
|
28
|
+
o({ type: Boolean, reflect: !0 })
|
29
|
+
], e.prototype, "vertical");
|
52
30
|
export {
|
53
|
-
|
31
|
+
e as SkfDivider
|
54
32
|
};
|
@@ -1,43 +1,47 @@
|
|
1
1
|
import { css as r } from "lit";
|
2
|
-
const
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
const e = r`
|
3
|
+
@layer components {
|
4
|
+
@layer base {
|
5
|
+
:host {
|
6
|
+
--_skf-divider-border: var(--skf-border-width-sm) solid
|
7
|
+
var(--_skf-divider-border-color, var(--skf-border-color-primary));
|
7
8
|
|
8
|
-
|
9
|
+
display: block;
|
10
|
+
}
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
12
|
+
:host(:not([vertical])) {
|
13
|
+
border-top: var(--_skf-divider-border);
|
14
|
+
margin-block: var(--skf-divider-spacing, var(--skf-spacing-100));
|
15
|
+
margin-inline: var(--skf-divider-inset, 0);
|
16
|
+
}
|
14
17
|
}
|
15
|
-
}
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
@layer mods {
|
20
|
+
:host([vertical]) {
|
21
|
+
block-size: 100%;
|
22
|
+
border-left: var(--_skf-divider-border);
|
23
|
+
margin-block: var(--skf-divider-inset, 0);
|
24
|
+
margin-inline: var(--skf-divider-spacing, var(--skf-spacing-100));
|
25
|
+
}
|
23
26
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
}
|
27
|
+
:host([color='emphasised']) {
|
28
|
+
--_skf-divider-border-color: var(--skf-border-color-emphasised);
|
29
|
+
}
|
28
30
|
|
29
|
-
|
30
|
-
|
31
|
-
|
31
|
+
:host([color='inverse']) {
|
32
|
+
--_skf-divider-border-color: var(--skf-border-color-inverse);
|
33
|
+
}
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
:host([color='secondary']) {
|
36
|
+
--_skf-divider-border-color: var(--skf-border-color-secondary);
|
37
|
+
}
|
36
38
|
|
37
|
-
|
38
|
-
|
39
|
+
:host([color='tertiary']) {
|
40
|
+
--_skf-divider-border-color: var(--skf-border-color-tertiary);
|
41
|
+
}
|
42
|
+
}
|
39
43
|
}
|
40
44
|
`;
|
41
45
|
export {
|
42
|
-
|
46
|
+
e as styles
|
43
47
|
};
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import '../icon/icon.js';
|
2
|
+
import { SkfElement } from '../../internal/components/skf-element';
|
3
|
+
import { type CSSResultGroup } from 'lit';
|
4
|
+
/**
|
5
|
+
* TODO:
|
6
|
+
*
|
7
|
+
* - Fix drag outside closes the drawer
|
8
|
+
* - add tests
|
9
|
+
* - add documentation
|
10
|
+
*/
|
11
|
+
/**
|
12
|
+
* The `<skf-drawer>` is a modal component that displays content and toggle by sliding from left/right viewport edge.
|
13
|
+
*
|
14
|
+
* @documentation See [zeroheight](https://zeroheight.com/853e936c9/p/0789c4-drawer) for design principles
|
15
|
+
*
|
16
|
+
* @event skf-drawer-opened - Fires when the drawer is opened (after transitioned in)
|
17
|
+
* @event skf-drawer-closing - Fires when the drawer is closed (before transitioned out)
|
18
|
+
* @event skf-drawer-closed - Fires when the drawer is closed (after transitioned out)
|
19
|
+
*
|
20
|
+
* @slot - The Drawer's main content
|
21
|
+
*
|
22
|
+
* @tagname skf-drawer
|
23
|
+
*/
|
24
|
+
export declare class SkfDrawer extends SkfElement {
|
25
|
+
static styles: CSSResultGroup;
|
26
|
+
/** @internal */
|
27
|
+
private _abortController?;
|
28
|
+
/** @internal */
|
29
|
+
private _signal?;
|
30
|
+
/** If defined, sets the aria-label for the close button */
|
31
|
+
closeButtonAriaLabel: string;
|
32
|
+
/** Heading for the Drawer */
|
33
|
+
heading?: string;
|
34
|
+
/** Sets the max-width */
|
35
|
+
size: 'sm' | 'md' | 'lg';
|
36
|
+
/** If true, Drawer is open */
|
37
|
+
open: boolean;
|
38
|
+
/** Placement of the Drawer */
|
39
|
+
placement: 'left' | 'right';
|
40
|
+
/** @internal */
|
41
|
+
$dialog: HTMLDialogElement;
|
42
|
+
disconnectedCallback(): void;
|
43
|
+
/** @internal */
|
44
|
+
_placementChanged: () => void;
|
45
|
+
/** @internal */
|
46
|
+
_openChanged(): Promise<void>;
|
47
|
+
/** @internal */
|
48
|
+
private _startListeners;
|
49
|
+
clickIsInsideElement(event: MouseEvent, el: HTMLElement): boolean;
|
50
|
+
/** @internal */
|
51
|
+
private _animateDrawer;
|
52
|
+
_clickstartInDialog: boolean;
|
53
|
+
_handleMouseDown: (event: MouseEvent) => void;
|
54
|
+
_handleMouseUp: () => void;
|
55
|
+
close(): void;
|
56
|
+
render(): import("lit").TemplateResult<1>;
|
57
|
+
}
|
@@ -0,0 +1,124 @@
|
|
1
|
+
import "../icon/icon.js";
|
2
|
+
import { SkfElement as m } from "../../internal/components/skf-element.js";
|
3
|
+
import { watch as d } from "../../internal/helpers/watch.js";
|
4
|
+
import { MOTION_DURATIONS as p } from "@skf-design-system/ui-assets";
|
5
|
+
import f from "../../styles/component.styles.js";
|
6
|
+
import { html as g } from "lit";
|
7
|
+
import { property as r, query as u } from "lit/decorators.js";
|
8
|
+
import { styles as _ } from "./drawer.styles.js";
|
9
|
+
var b = Object.defineProperty, w = Object.getOwnPropertyDescriptor, a = (h, t, i, e) => {
|
10
|
+
for (var o = e > 1 ? void 0 : e ? w(t, i) : t, n = h.length - 1, l; n >= 0; n--)
|
11
|
+
(l = h[n]) && (o = (e ? l(t, i, o) : l(o)) || o);
|
12
|
+
return e && o && b(t, i, o), o;
|
13
|
+
};
|
14
|
+
const c = class c extends m {
|
15
|
+
constructor() {
|
16
|
+
super(...arguments), this.closeButtonAriaLabel = "Close dialog", this.size = "md", this.open = !1, this.placement = "right", this._placementChanged = () => {
|
17
|
+
this.$dialog.getAnimations().forEach((i) => {
|
18
|
+
i.cancel();
|
19
|
+
});
|
20
|
+
}, this._clickstartInDialog = !1, this._handleMouseDown = (t) => {
|
21
|
+
this.clickIsInsideElement(t, this.$dialog) && (this._clickstartInDialog = !0);
|
22
|
+
}, this._handleMouseUp = () => {
|
23
|
+
if (this._clickstartInDialog) {
|
24
|
+
this._clickstartInDialog = !1;
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
};
|
28
|
+
}
|
29
|
+
disconnectedCallback() {
|
30
|
+
var t;
|
31
|
+
super.disconnectedCallback(), (t = this._abortController) == null || t.abort();
|
32
|
+
}
|
33
|
+
async _openChanged() {
|
34
|
+
var t;
|
35
|
+
this.open ? (this._abortController = new AbortController(), this._signal = this._abortController.signal, this.$dialog.showModal(), this._startListeners(), await this._animateDrawer(), this.emit("skf-drawer-opened")) : ((t = this._abortController) == null || t.abort(), this.emit("skf-drawer-closing"), await this._animateDrawer(), this.emit("skf-drawer-closed"), this.$dialog.close());
|
36
|
+
}
|
37
|
+
/** @internal */
|
38
|
+
_startListeners() {
|
39
|
+
window.addEventListener(
|
40
|
+
"keydown",
|
41
|
+
(t) => {
|
42
|
+
t.key === "Escape" && (t.preventDefault(), this.close());
|
43
|
+
},
|
44
|
+
{ signal: this._signal }
|
45
|
+
), this.addEventListener("click", (t) => {
|
46
|
+
!this.clickIsInsideElement(t, this.$dialog) && !this._clickstartInDialog && this.close();
|
47
|
+
});
|
48
|
+
}
|
49
|
+
clickIsInsideElement(t, i) {
|
50
|
+
const e = i.getBoundingClientRect();
|
51
|
+
return e.top <= t.clientY && t.clientY <= e.top + e.height && e.left <= t.clientX && t.clientX <= e.left + e.width;
|
52
|
+
}
|
53
|
+
/** @internal */
|
54
|
+
_animateDrawer() {
|
55
|
+
const t = this.open ? [{ opacity: 0 }, { opacity: 0.4 }] : [{ opacity: 0 }], i = this.open ? [{ translate: "0" }] : [{ translate: this.placement === "right" ? "100%" : "-100%" }];
|
56
|
+
return new Promise((e) => {
|
57
|
+
requestAnimationFrame(() => {
|
58
|
+
const o = this.$dialog.animate(t, {
|
59
|
+
duration: p.normal,
|
60
|
+
fill: "forwards",
|
61
|
+
pseudoElement: "::backdrop"
|
62
|
+
}), n = this.$dialog.animate(i, {
|
63
|
+
duration: p.normal,
|
64
|
+
easing: "ease-out",
|
65
|
+
fill: "forwards"
|
66
|
+
});
|
67
|
+
Promise.all([o.finished, n.finished]).then(() => {
|
68
|
+
e("Animations finished");
|
69
|
+
}).catch(() => {
|
70
|
+
throw new Error("Animation failed");
|
71
|
+
});
|
72
|
+
});
|
73
|
+
});
|
74
|
+
}
|
75
|
+
close() {
|
76
|
+
this.open = !1;
|
77
|
+
}
|
78
|
+
render() {
|
79
|
+
return g`
|
80
|
+
<dialog @mousedown="${this._handleMouseDown}" @mouseup="${this._handleMouseUp}">
|
81
|
+
<header>
|
82
|
+
<h2>${this.heading}</h2>
|
83
|
+
<button
|
84
|
+
aria-label=${this.closeButtonAriaLabel}
|
85
|
+
id="close-button"
|
86
|
+
@click="${() => this.open = !1}"
|
87
|
+
>
|
88
|
+
<skf-icon name="close" color="inverse"></skf-icon>
|
89
|
+
</button>
|
90
|
+
</header>
|
91
|
+
<slot id="body" part="body">${this.slot}</slot>
|
92
|
+
</dialog>
|
93
|
+
`;
|
94
|
+
}
|
95
|
+
};
|
96
|
+
c.styles = [f, _];
|
97
|
+
let s = c;
|
98
|
+
a([
|
99
|
+
r({ attribute: "close-button-aria-label" })
|
100
|
+
], s.prototype, "closeButtonAriaLabel", 2);
|
101
|
+
a([
|
102
|
+
r()
|
103
|
+
], s.prototype, "heading", 2);
|
104
|
+
a([
|
105
|
+
r({ reflect: !0 })
|
106
|
+
], s.prototype, "size", 2);
|
107
|
+
a([
|
108
|
+
r({ type: Boolean, reflect: !0 })
|
109
|
+
], s.prototype, "open", 2);
|
110
|
+
a([
|
111
|
+
r({ reflect: !0 })
|
112
|
+
], s.prototype, "placement", 2);
|
113
|
+
a([
|
114
|
+
u("dialog")
|
115
|
+
], s.prototype, "$dialog", 2);
|
116
|
+
a([
|
117
|
+
d("placement", { waitUntilFirstUpdate: !0 })
|
118
|
+
], s.prototype, "_placementChanged", 2);
|
119
|
+
a([
|
120
|
+
d("open", { waitUntilFirstUpdate: !0, afterUpdate: !0 })
|
121
|
+
], s.prototype, "_openChanged", 1);
|
122
|
+
export {
|
123
|
+
s as SkfDrawer
|
124
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|