@skf-design-system/ui-components 1.0.0-beta.5 → 1.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/components/accordion/accordion-item.d.ts +1 -1
  2. package/dist/components/accordion/accordion.component.d.ts +4 -4
  3. package/dist/components/accordion/accordion.component.js +18 -17
  4. package/dist/components/accordion/accordion.styles.d.ts +1 -2
  5. package/dist/components/accordion/accordion.styles.js +5 -4
  6. package/dist/components/alert/alert.component.d.ts +3 -3
  7. package/dist/components/alert/alert.component.js +44 -33
  8. package/dist/components/alert/alert.styles.d.ts +1 -2
  9. package/dist/components/alert/alert.styles.js +29 -24
  10. package/dist/components/button/button.component.d.ts +26 -4
  11. package/dist/components/button/button.component.js +78 -54
  12. package/dist/components/button/button.styles.js +1 -0
  13. package/dist/components/card/card.component.d.ts +4 -4
  14. package/dist/components/card/card.component.js +35 -24
  15. package/dist/components/card/card.styles.d.ts +1 -2
  16. package/dist/components/card/card.styles.js +14 -12
  17. package/dist/components/checkbox/checkbox.component.d.ts +11 -12
  18. package/dist/components/checkbox/checkbox.component.js +95 -89
  19. package/dist/components/collapse/collapse.component.d.ts +8 -8
  20. package/dist/components/collapse/collapse.component.js +42 -34
  21. package/dist/components/collapse/collapse.styles.js +15 -14
  22. package/dist/components/dialog/dialog.component.d.ts +75 -0
  23. package/dist/components/dialog/dialog.component.js +189 -0
  24. package/dist/components/dialog/dialog.d.ts +8 -0
  25. package/dist/components/dialog/dialog.js +6 -0
  26. package/dist/components/dialog/dialog.styles.js +91 -0
  27. package/dist/components/divider/divider.component.d.ts +3 -3
  28. package/dist/components/divider/divider.component.js +39 -27
  29. package/dist/components/divider/divider.styles.d.ts +1 -2
  30. package/dist/components/divider/divider.styles.js +26 -26
  31. package/dist/components/heading/heading.component.d.ts +2 -2
  32. package/dist/components/icon/icon.component.d.ts +1 -1
  33. package/dist/components/input/input.component.d.ts +12 -11
  34. package/dist/components/input/input.component.js +88 -89
  35. package/dist/components/link/link.component.d.ts +6 -6
  36. package/dist/components/link/link.component.js +20 -14
  37. package/dist/components/link/link.styles.js +36 -40
  38. package/dist/components/loader/loader.component.d.ts +2 -2
  39. package/dist/components/loader/loader.component.js +32 -25
  40. package/dist/components/loader/loader.styles.js +11 -10
  41. package/dist/components/logo/logo.component.d.ts +3 -3
  42. package/dist/components/logo/logo.component.js +25 -14
  43. package/dist/components/logo/logo.styles.d.ts +1 -2
  44. package/dist/components/logo/logo.styles.js +11 -9
  45. package/dist/components/progress/progress.component.d.ts +22 -0
  46. package/dist/components/progress/progress.component.js +49 -0
  47. package/dist/components/progress/progress.d.ts +8 -0
  48. package/dist/components/progress/progress.js +6 -0
  49. package/dist/components/progress/progress.styles.js +48 -0
  50. package/dist/components/radio/radio.component.d.ts +7 -9
  51. package/dist/components/radio/radio.component.js +93 -77
  52. package/dist/components/select/select.component.d.ts +2 -2
  53. package/dist/components/select/select.component.js +16 -13
  54. package/dist/components/select/select.controllers.d.ts +1 -1
  55. package/dist/components/select-option/select-option.component.d.ts +1 -1
  56. package/dist/components/select-option/select-option.controllers.d.ts +1 -1
  57. package/dist/components/select-option-group/select-option-group.component.d.ts +1 -1
  58. package/dist/components/switch/switch.component.d.ts +2 -2
  59. package/dist/components/switch/switch.component.js +17 -7
  60. package/dist/components/switch/switch.styles.js +16 -13
  61. package/dist/components/tab/tab.component.d.ts +29 -0
  62. package/dist/components/tab/tab.component.js +57 -0
  63. package/dist/components/tab/tab.d.ts +8 -0
  64. package/dist/components/tab/tab.js +6 -0
  65. package/dist/components/tab/tab.styles.d.ts +1 -0
  66. package/dist/components/tab/tab.styles.js +123 -0
  67. package/dist/components/tab-group/tab-group.component.d.ts +43 -0
  68. package/dist/components/tab-group/tab-group.component.js +98 -0
  69. package/dist/components/tab-group/tab-group.d.ts +8 -0
  70. package/dist/components/tab-group/tab-group.js +6 -0
  71. package/dist/components/tab-group/tab-group.styles.d.ts +1 -0
  72. package/dist/components/tab-group/tab-group.styles.js +75 -0
  73. package/dist/components/tab-panel/tab-panel.component.d.ts +19 -0
  74. package/dist/components/tab-panel/tab-panel.component.js +36 -0
  75. package/dist/components/tab-panel/tab-panel.d.ts +8 -0
  76. package/dist/components/tab-panel/tab-panel.js +6 -0
  77. package/dist/components/tab-panel/tab-panel.styles.d.ts +1 -0
  78. package/dist/components/tab-panel/tab-panel.styles.js +13 -0
  79. package/dist/components/tag/tag.component.d.ts +2 -2
  80. package/dist/components/tag/tag.component.js +61 -45
  81. package/dist/components/tag/tag.styles.js +30 -28
  82. package/dist/components/textarea/textarea.component.d.ts +4 -4
  83. package/dist/components/textarea/textarea.component.js +5 -5
  84. package/dist/components/toast/toast.component.d.ts +1 -1
  85. package/dist/components/toast/toast.component.js +13 -13
  86. package/dist/components/toast/toast.singleton.d.ts +3 -3
  87. package/dist/components/toast/toast.styles.d.ts +1 -0
  88. package/dist/components/toast-item/toast-item.component.d.ts +1 -1
  89. package/dist/components/toast-item/toast-item.component.js +1 -1
  90. package/dist/components/toast-wrapper/toast-wrapper.component.d.ts +2 -2
  91. package/dist/components/toast-wrapper/toast-wrapper.component.js +1 -1
  92. package/dist/components/toast-wrapper/toast-wrapper.styles.d.ts +1 -0
  93. package/dist/custom-elements.json +1170 -511
  94. package/dist/index.d.ts +5 -0
  95. package/dist/index.js +59 -44
  96. package/dist/internal/components/formBase.d.ts +1 -0
  97. package/dist/internal/components/formBase.js +11 -11
  98. package/dist/internal/components/hint/hint.component.d.ts +2 -2
  99. package/dist/internal/components/skf-element.js +26 -25
  100. package/dist/internal/helpers/hintSeverity.d.ts +1 -1
  101. package/dist/internal/helpers/watch.d.ts +27 -0
  102. package/dist/internal/helpers/watch.js +28 -0
  103. package/dist/internal/templates/asterisk.d.ts +1 -1
  104. package/dist/internal/templates/asterisk.js +7 -6
  105. package/dist/react/index.d.ts +7 -2
  106. package/dist/react/index.js +7 -2
  107. package/dist/react/skf-button/index.d.ts +7 -1
  108. package/dist/react/skf-button/index.js +5 -1
  109. package/dist/react/skf-dialog/index.d.ts +15 -0
  110. package/dist/react/skf-dialog/index.js +19 -0
  111. package/dist/react/skf-progress/index.d.ts +3 -0
  112. package/dist/react/skf-progress/index.js +13 -0
  113. package/dist/react/skf-tab/index.d.ts +12 -0
  114. package/dist/react/skf-tab/index.js +18 -0
  115. package/dist/react/skf-tab-group/index.d.ts +3 -0
  116. package/dist/react/skf-tab-group/index.js +13 -0
  117. package/dist/react/skf-tab-panel/index.d.ts +3 -0
  118. package/dist/react/skf-tab-panel/index.js +13 -0
  119. package/dist/styles/component.styles.js +15 -2
  120. package/dist/types/jsx/custom-element-jsx.d.ts +246 -101
  121. package/dist/types/vue/index.d.ts +215 -65
  122. package/dist/vscode.html-custom-data.json +276 -182
  123. package/dist/web-types.json +556 -248
  124. package/package.json +33 -32
  125. /package/dist/components/{toast-wrapper/toast-wrapper.style.d.ts → dialog/dialog.styles.d.ts} +0 -0
  126. /package/dist/components/{toast/toast.style.d.ts → progress/progress.styles.d.ts} +0 -0
  127. /package/dist/components/toast/{toast.style.js → toast.styles.js} +0 -0
  128. /package/dist/components/toast-item/{toast-item.style.d.ts → toast-item.styles.d.ts} +0 -0
  129. /package/dist/components/toast-item/{toast-item.style.js → toast-item.styles.js} +0 -0
  130. /package/dist/components/toast-wrapper/{toast-wrapper.style.js → toast-wrapper.styles.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { SkfCollapse } from '@components/collapse/collapse.component.js';
1
+ import { SkfCollapse } from '../collapse/collapse.component.js';
2
2
  export declare class SkfAccordionItem extends SkfCollapse {
3
3
  }
4
4
  declare global {
@@ -1,6 +1,6 @@
1
- import '@components/collapse/collapse.js';
2
- import { SkfElement } from '@internal/components/skf-element.js';
3
- import type { HeadingType } from '@internal/constants/heading.js';
1
+ import '../collapse/collapse.js';
2
+ import { SkfElement } from '../../internal/components/skf-element.js';
3
+ import type { HeadingType } from '../../internal/constants/heading.js';
4
4
  import { type CSSResultGroup, type PropertyValues } from 'lit';
5
5
  /**
6
6
  * The `<skf-accordion>` component consists of multiple `<skf-collapse>`, working together.
@@ -21,7 +21,7 @@ export declare class SkfAccordion extends SkfElement {
21
21
  */
22
22
  headingAs: Exclude<HeadingType, 'h1'>;
23
23
  /** If true, adds a gap between each item */
24
- gap?: boolean;
24
+ gap: boolean;
25
25
  /** If true, allowes multiple accordion items to open */
26
26
  multiple?: boolean;
27
27
  /** If true, renders the small version */
@@ -1,17 +1,18 @@
1
1
  import "../collapse/collapse.js";
2
- import { SkfElement as p } from "../../internal/components/skf-element.js";
2
+ import { SkfElement as h } from "../../internal/components/skf-element.js";
3
3
  import m from "../../styles/component.styles.js";
4
4
  import { html as f } from "lit";
5
5
  import { property as a, queryAssignedNodes as d } from "lit/decorators.js";
6
- import c from "./accordion.styles.js";
7
- var g = Object.defineProperty, r = (u, t, i, o) => {
8
- for (var s = void 0, l = u.length - 1, h; l >= 0; l--)
9
- (h = u[l]) && (s = h(t, i, s) || s);
10
- return s && g(t, i, s), s;
6
+ import { classMap as c } from "lit/directives/class-map.js";
7
+ import { styles as g } from "./accordion.styles.js";
8
+ var y = Object.defineProperty, s = (p, t, i, o) => {
9
+ for (var r = void 0, l = p.length - 1, u; l >= 0; l--)
10
+ (u = p[l]) && (r = u(t, i, r) || r);
11
+ return r && y(t, i, r), r;
11
12
  };
12
- const n = class n extends p {
13
+ const n = class n extends h {
13
14
  constructor() {
14
- super(...arguments), this.headingAs = "h2", this._setItemAttributes = () => {
15
+ super(...arguments), this.headingAs = "h2", this.gap = !1, this._setItemAttributes = () => {
15
16
  this.items.forEach((t) => {
16
17
  t.setAttribute("heading-as", this.headingAs), this.animated ? t.setAttribute("animated", "") : t.hasAttribute("animated") && t.removeAttribute("animated"), this.small ? t.setAttribute("small", "") : t.hasAttribute("small") && t.removeAttribute("small"), this.truncate ? t.setAttribute("truncate", "") : t.hasAttribute("truncate") && t.removeAttribute("truncate");
17
18
  });
@@ -33,7 +34,7 @@ const n = class n extends p {
33
34
  }
34
35
  render() {
35
36
  return f`
36
- <div id="root">
37
+ <div class=${c({ "accordion--gap": this.gap })}>
37
38
  <slot
38
39
  @skf-collapse-toggle=${(t) => {
39
40
  this._onChildToggle(t);
@@ -44,27 +45,27 @@ const n = class n extends p {
44
45
  `;
45
46
  }
46
47
  };
47
- n.styles = [c, m];
48
+ n.styles = [g, m];
48
49
  let e = n;
49
- r([
50
+ s([
50
51
  a({ type: Boolean, reflect: !0 })
51
52
  ], e.prototype, "animated");
52
- r([
53
+ s([
53
54
  a({ attribute: "heading-as" })
54
55
  ], e.prototype, "headingAs");
55
- r([
56
+ s([
56
57
  a({ type: Boolean, reflect: !0 })
57
58
  ], e.prototype, "gap");
58
- r([
59
+ s([
59
60
  a({ type: Boolean })
60
61
  ], e.prototype, "multiple");
61
- r([
62
+ s([
62
63
  a({ type: Boolean, reflect: !0 })
63
64
  ], e.prototype, "small");
64
- r([
65
+ s([
65
66
  a({ type: Boolean, reflect: !0 })
66
67
  ], e.prototype, "truncate");
67
- r([
68
+ s([
68
69
  d()
69
70
  ], e.prototype, "$accordionItems");
70
71
  export {
@@ -1,2 +1 @@
1
- declare const _default: import("lit").CSSResult;
2
- export default _default;
1
+ export declare const styles: import("lit").CSSResult;
@@ -1,7 +1,8 @@
1
- import { css as o } from "lit";
2
- const t = o`
1
+ import { css as s } from "lit";
2
+ const l = s`
3
+ /* stylelint-disable selector-class-pattern */
3
4
  @layer components {
4
- :host([gap]) #root {
5
+ .accordion--gap {
5
6
  display: flex;
6
7
  flex-direction: column;
7
8
  gap: var(--skf-spacing-300);
@@ -9,5 +10,5 @@ const t = o`
9
10
  }
10
11
  `;
11
12
  export {
12
- t as default
13
+ l as styles
13
14
  };
@@ -1,6 +1,6 @@
1
- import type { SkfIcon } from '@components/icon/icon.component.js';
2
- import '@components/icon/icon.js';
3
- import { SkfElement } from '@internal/components/skf-element.js';
1
+ import type { SkfIcon } from '../icon/icon.component.js';
2
+ import '../icon/icon.js';
3
+ import { SkfElement } from '../../internal/components/skf-element.js';
4
4
  import type { SeverityFgColor } from '@skf-design-system/ui-assets';
5
5
  import { type CSSResultGroup } from 'lit';
6
6
  /**
@@ -1,16 +1,17 @@
1
1
  import "../icon/icon.js";
2
- import { SkfElement as d } from "../../internal/components/skf-element.js";
2
+ import { SkfElement as y } from "../../internal/components/skf-element.js";
3
3
  import b from "../../styles/component.styles.js";
4
4
  import { html as p, nothing as f } from "lit";
5
- import { property as o } from "lit/decorators.js";
6
- import { ifDefined as s } from "lit/directives/if-defined.js";
7
- import u from "./alert.styles.js";
8
- var h = Object.defineProperty, i = (n, a, m, y) => {
9
- for (var t = void 0, r = n.length - 1, c; r >= 0; r--)
10
- (c = n[r]) && (t = c(a, m, t) || t);
11
- return t && h(a, m, t), t;
5
+ import { property as r } from "lit/decorators.js";
6
+ import { classMap as h } from "lit/directives/class-map.js";
7
+ import { ifDefined as o } from "lit/directives/if-defined.js";
8
+ import { styles as v } from "./alert.styles.js";
9
+ var u = Object.defineProperty, s = (a, n, c, d) => {
10
+ for (var e = void 0, i = a.length - 1, m; i >= 0; i--)
11
+ (m = a[i]) && (e = m(n, c, e) || e);
12
+ return e && u(n, c, e), e;
12
13
  };
13
- const l = class l extends d {
14
+ const l = class l extends y {
14
15
  constructor() {
15
16
  super(...arguments), this.buttonLabel = "Close", this._handleClose = () => {
16
17
  this.emit("skf-alert-close");
@@ -19,24 +20,34 @@ const l = class l extends d {
19
20
  render() {
20
21
  return p`
21
22
  <div
22
- id="root"
23
23
  aria-describedby="main"
24
- aria-modal=${s(this.closeable && "true")}
24
+ aria-modal=${o(this.closeable && "true")}
25
+ class=${h({
26
+ alert: !0,
27
+ "alert--severity-alert": this.severity === "alert",
28
+ "alert--severity-error": this.severity === "error",
29
+ "alert--severity-info": this.severity === "info",
30
+ "alert--severity-success": this.severity === "success",
31
+ "alert--severity-warning": this.severity === "warning"
32
+ })}
25
33
  role=${this.closeable ? "alertdialog" : "alert"}
26
34
  >
27
35
  <skf-icon
28
- color=${s(this.severity ?? "secondary")}
29
- name=${s(this.icon)}
36
+ color=${o(this.severity ?? "secondary")}
37
+ name=${o(this.icon)}
30
38
  size="sm"
31
39
  ></skf-icon>
32
- <div id="body">
33
- <div id="main">
34
- <slot></slot>
35
- </div>
40
+ <div class="alert__body">
41
+ <slot class="alert__main" id="main"></slot>
36
42
  <slot name="link"></slot>
37
43
  </div>
38
44
  ${this.closeable ? p`
39
- <button @click="${this._handleClose}" aria-label=${this.buttonLabel} type="button">
45
+ <button
46
+ @click="${this._handleClose}"
47
+ aria-label=${this.buttonLabel}
48
+ class="alert__btn"
49
+ type="button"
50
+ >
40
51
  <skf-icon name="close" size="sm"></skf-icon>
41
52
  </button>
42
53
  ` : f}
@@ -44,20 +55,20 @@ const l = class l extends d {
44
55
  `;
45
56
  }
46
57
  };
47
- l.styles = [b, u];
48
- let e = l;
49
- i([
50
- o({ type: Boolean, reflect: !0 })
51
- ], e.prototype, "closeable");
52
- i([
53
- o({ attribute: "button-label" })
54
- ], e.prototype, "buttonLabel");
55
- i([
56
- o()
57
- ], e.prototype, "icon");
58
- i([
59
- o({ reflect: !0 })
60
- ], e.prototype, "severity");
58
+ l.styles = [b, v];
59
+ let t = l;
60
+ s([
61
+ r({ type: Boolean, reflect: !0 })
62
+ ], t.prototype, "closeable");
63
+ s([
64
+ r({ attribute: "button-label" })
65
+ ], t.prototype, "buttonLabel");
66
+ s([
67
+ r()
68
+ ], t.prototype, "icon");
69
+ s([
70
+ r({ reflect: !0 })
71
+ ], t.prototype, "severity");
61
72
  export {
62
- e as SkfAlert
73
+ t as SkfAlert
63
74
  };
@@ -1,2 +1 @@
1
- declare const _default: import("lit").CSSResult;
2
- export default _default;
1
+ export declare const styles: import("lit").CSSResult;
@@ -1,11 +1,12 @@
1
1
  import { css as r } from "lit";
2
2
  const s = r`
3
+ /* stylelint-disable selector-class-pattern */
3
4
  @layer components {
4
5
  :host {
5
6
  contain: layout;
6
7
  }
7
8
 
8
- #root {
9
+ .alert {
9
10
  background-color: var(--_skf-alert-bg-color, var(--skf-bg-color-neutral-2));
10
11
  border: var(--skf-border-width-sm) solid
11
12
  var(--_skf-alert-border-color, var(--skf-border-color-primary));
@@ -16,34 +17,34 @@ const s = r`
16
17
  gap: var(--skf-spacing-50);
17
18
  padding-block: var(--skf-spacing-75);
18
19
  padding-inline: var(--skf-spacing-50);
20
+ }
19
21
 
20
- :host([severity='alert']) & {
21
- --_skf-alert-bg-color: var(--skf-severity-bg-color-alert);
22
- --_skf-alert-border-color: var(--skf-severity-fg-color-alert);
23
- }
22
+ .alert--severity-alert {
23
+ --_skf-alert-bg-color: var(--skf-severity-bg-color-alert);
24
+ --_skf-alert-border-color: var(--skf-severity-fg-color-alert);
25
+ }
24
26
 
25
- :host([severity='error']) & {
26
- --_skf-alert-bg-color: var(--skf-severity-bg-color-error);
27
- --_skf-alert-border-color: var(--skf-severity-fg-color-error);
28
- }
27
+ .alert--severity-error {
28
+ --_skf-alert-bg-color: var(--skf-severity-bg-color-error);
29
+ --_skf-alert-border-color: var(--skf-severity-fg-color-error);
30
+ }
29
31
 
30
- :host([severity='info']) & {
31
- --_skf-alert-bg-color: var(--skf-severity-bg-color-info);
32
- --_skf-alert-border-color: var(--skf-severity-fg-color-info);
33
- }
32
+ .alert--severity-info {
33
+ --_skf-alert-bg-color: var(--skf-severity-bg-color-info);
34
+ --_skf-alert-border-color: var(--skf-severity-fg-color-info);
35
+ }
34
36
 
35
- :host([severity='success']) & {
36
- --_skf-alert-bg-color: var(--skf-severity-bg-color-success);
37
- --_skf-alert-border-color: var(--skf-severity-fg-color-success);
38
- }
37
+ .alert--severity-success {
38
+ --_skf-alert-bg-color: var(--skf-severity-bg-color-success);
39
+ --_skf-alert-border-color: var(--skf-severity-fg-color-success);
40
+ }
39
41
 
40
- :host([severity='warning']) & {
41
- --_skf-alert-bg-color: var(--skf-severity-bg-color-warning);
42
- --_skf-alert-border-color: var(--skf-severity-fg-color-warning);
43
- }
42
+ .alert--severity-warning {
43
+ --_skf-alert-bg-color: var(--skf-severity-bg-color-warning);
44
+ --_skf-alert-border-color: var(--skf-severity-fg-color-warning);
44
45
  }
45
46
 
46
- #body {
47
+ .alert__body {
47
48
  display: flex;
48
49
  flex: auto;
49
50
  flex-wrap: wrap;
@@ -51,16 +52,20 @@ const s = r`
51
52
  justify-content: space-between;
52
53
  }
53
54
 
55
+ .alert__main {
56
+ display: block;
57
+ }
58
+
54
59
  ::slotted(skf-link) {
55
60
  text-transform: uppercase;
56
61
  }
57
62
 
58
- button {
63
+ .alert__btn {
59
64
  cursor: pointer;
60
65
  display: inline-flex;
61
66
  }
62
67
  }
63
68
  `;
64
69
  export {
65
- s as default
70
+ s as styles
66
71
  };
@@ -1,16 +1,25 @@
1
- import type { SkfIcon } from '@components/icon/icon.component.js';
2
- import '@components/icon/icon.js';
3
- import '@components/loader/loader.js';
4
- import { SkfElement } from '@internal/components/skf-element.js';
1
+ import type { SkfIcon } from '../icon/icon.component.js';
2
+ import '../icon/icon.js';
3
+ import '../loader/loader.js';
4
+ import { SkfElement } from '../../internal/components/skf-element.js';
5
5
  import { type CSSResultGroup, type PropertyValues } from 'lit';
6
6
  /**
7
7
  * Component to be used in forms or for interactivity
8
8
  *
9
9
  * @slot - The Primary content
10
10
  *
11
+ * @event click - Fires when the button is clicked
12
+ *
11
13
  * @tagname skf-button
12
14
  */
13
15
  export declare class SkfButton extends SkfElement {
16
+ static formAssociated: boolean;
17
+ static shadowRootOptions: {
18
+ delegatesFocus: boolean;
19
+ mode: ShadowRootMode;
20
+ serializable?: boolean;
21
+ slotAssignment?: SlotAssignmentMode;
22
+ };
14
23
  static styles: CSSResultGroup;
15
24
  /** @internal */
16
25
  private _transitionOptions;
@@ -26,6 +35,7 @@ export declare class SkfButton extends SkfElement {
26
35
  iconPosition?: 'left' | 'right';
27
36
  /** If true, hides text & icon and shows loading indicator. **Notice!** Only applicable if `variant` is `primary`. */
28
37
  loading: boolean;
38
+ noValidate: boolean;
29
39
  /** If provided, displays an alternative size */
30
40
  size: 'sm' | 'md' | 'lg';
31
41
  /** If provided, changes the button type */
@@ -39,10 +49,22 @@ export declare class SkfButton extends SkfElement {
39
49
  private $loader?;
40
50
  /** @internal */
41
51
  private $body?;
52
+ /** @internal */
53
+ private $button?;
42
54
  constructor();
43
55
  protected firstUpdated(_changedProperties: PropertyValues): void;
44
56
  attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
57
+ /** @internal */
58
+ _handleClick: (e: MouseEvent) => void;
59
+ /** @internal */
60
+ _submitForm: () => void;
61
+ /** @internal */
62
+ _resetForm: () => void;
63
+ /** Simulates a click on the button. */
64
+ click(): void;
65
+ /** @internal */
45
66
  private _showLoader;
67
+ /** @internal */
46
68
  private _hideLoader;
47
69
  /** @internal */
48
70
  private _renderIcon;
@@ -1,48 +1,66 @@
1
1
  import "../icon/icon.js";
2
2
  import "../loader/loader.js";
3
- import { SkfElement as c } from "../../internal/components/skf-element.js";
3
+ import { SkfElement as f } from "../../internal/components/skf-element.js";
4
4
  import b from "../../styles/component.styles.js";
5
- import { html as d } from "lit";
6
- import { property as e, state as m, query as f } from "lit/decorators.js";
5
+ import { html as h, LitElement as m } from "lit";
6
+ import { property as s, state as u, query as p } from "lit/decorators.js";
7
7
  import { ifDefined as y } from "lit/directives/if-defined.js";
8
- import u from "./button.styles.js";
9
- var _ = Object.defineProperty, i = (h, o, r, a) => {
10
- for (var s = void 0, n = h.length - 1, p; n >= 0; n--)
11
- (p = h[n]) && (s = p(o, r, s) || s);
12
- return s && _(o, r, s), s;
8
+ import _ from "./button.styles.js";
9
+ var $ = Object.defineProperty, o = (c, t, r, n) => {
10
+ for (var e = void 0, a = c.length - 1, l; a >= 0; a--)
11
+ (l = c[a]) && (e = l(t, r, e) || e);
12
+ return e && $(t, r, e), e;
13
13
  };
14
- const l = class l extends c {
14
+ const d = class d extends f {
15
15
  constructor() {
16
16
  super(), this._transitionOptions = {
17
17
  duration: 200,
18
18
  fill: "forwards"
19
- }, this.destructive = !1, this.disabled = !1, this.iconPosition = "left", this.loading = !1, this.size = "md", this.type = "button", this.variant = "primary", this._loaderVisible = !1, this._renderIcon = () => d`<skf-icon class="skf-icon-host" name=${y(this.icon)}></skf-icon>`, this._internals = this.attachInternals();
19
+ }, this.destructive = !1, this.disabled = !1, this.iconPosition = "left", this.loading = !1, this.noValidate = !1, this.size = "md", this.type = "button", this.variant = "primary", this._loaderVisible = !1, this._handleClick = (t) => {
20
+ t.preventDefault(), t.stopPropagation(), !(this.disabled || this.loading) && (this.dispatchEvent(new CustomEvent("click", { bubbles: !0, composed: !0, detail: t })), this.type === "submit" && this._submitForm(), this.type === "reset" && this._resetForm());
21
+ }, this._submitForm = () => {
22
+ var e, a, l;
23
+ const t = !((e = this._internals.form) != null && e.reportValidity()), r = !this.noValidate, n = !((a = this._internals.form) != null && a.hasAttribute("no-validate"));
24
+ (r || n) && t || (l = this._internals.form) == null || l.submit();
25
+ }, this._resetForm = () => {
26
+ var t;
27
+ (t = this._internals.form) == null || t.reset();
28
+ }, this._renderIcon = () => h`<skf-icon class="skf-icon-host" name=${y(this.icon)}></skf-icon>`, this._internals = this.attachInternals();
20
29
  }
21
- firstUpdated(o) {
22
- if (o.has("loading") && this.loading) {
30
+ firstUpdated(t) {
31
+ if (t.has("loading") && this.loading) {
23
32
  if (!this.$body || !this.$loader) return;
24
33
  this._loaderVisible = !0, this.$body.style.opacity = "0", this.$loader.style.opacity = "1";
25
34
  }
26
35
  }
27
- attributeChangedCallback(o, r, a) {
28
- super.attributeChangedCallback(o, r, a), o === "loading" && (a !== null ? this._showLoader() : this._hideLoader());
36
+ attributeChangedCallback(t, r, n) {
37
+ super.attributeChangedCallback(t, r, n), t === "loading" && (n !== null ? this._showLoader() : this._hideLoader());
29
38
  }
39
+ /** Simulates a click on the button. */
40
+ click() {
41
+ var t;
42
+ (t = this.$button) == null || t.click();
43
+ }
44
+ /** @internal */
30
45
  async _showLoader() {
31
- var o;
32
- this._loaderVisible = !0, await ((o = this.$body) == null ? void 0 : o.animate({ opacity: 0 }, this._transitionOptions).finished), !(!this.$body || !this.$loader) && this.$loader.animate({ opacity: 1 }, this._transitionOptions);
46
+ var t;
47
+ this._loaderVisible = !0, await ((t = this.$body) == null ? void 0 : t.animate({ opacity: 0 }, this._transitionOptions).finished), !(!this.$body || !this.$loader) && this.$loader.animate({ opacity: 1 }, this._transitionOptions);
33
48
  }
49
+ /** @internal */
34
50
  async _hideLoader() {
35
51
  !this.$body || !this.$loader || (await this.$loader.animate({ opacity: 0 }, this._transitionOptions).finished, this._loaderVisible = !1, this.$body.animate({ opacity: 1 }, this._transitionOptions));
36
52
  }
37
53
  render() {
38
- return d`
54
+ return h`
39
55
  <button
40
56
  ?disabled=${this.disabled || this.loading}
41
57
  aria-busy=${this.loading}
42
58
  id="root"
43
59
  type=${y(this.type)}
60
+ @click=${this._handleClick}
61
+ title=${this.title}
44
62
  >
45
- ${this.variant === "primary" && this._loaderVisible ? d`<skf-loader invert size="sm"></skf-loader>` : ""}
63
+ ${this.variant === "primary" && this._loaderVisible ? h`<skf-loader invert size="sm"></skf-loader>` : ""}
46
64
  <div id="body">
47
65
  ${this.icon && this.iconPosition === "left" ? this._renderIcon() : ""}
48
66
  <div id="label">
@@ -54,41 +72,47 @@ const l = class l extends c {
54
72
  `;
55
73
  }
56
74
  };
57
- l.styles = [b, u];
58
- let t = l;
59
- i([
60
- e({ type: Boolean })
61
- ], t.prototype, "destructive");
62
- i([
63
- e({ type: Boolean })
64
- ], t.prototype, "disabled");
65
- i([
66
- e()
67
- ], t.prototype, "icon");
68
- i([
69
- e({ attribute: "icon-position" })
70
- ], t.prototype, "iconPosition");
71
- i([
72
- e({ type: Boolean })
73
- ], t.prototype, "loading");
74
- i([
75
- e({ reflect: !0 })
76
- ], t.prototype, "size");
77
- i([
78
- e()
79
- ], t.prototype, "type");
80
- i([
81
- e({ reflect: !0 })
82
- ], t.prototype, "variant");
83
- i([
84
- m()
85
- ], t.prototype, "_loaderVisible");
86
- i([
87
- f("skf-loader")
88
- ], t.prototype, "$loader");
89
- i([
90
- f("#body")
91
- ], t.prototype, "$body");
75
+ d.formAssociated = !0, d.shadowRootOptions = { ...m.shadowRootOptions, delegatesFocus: !0 }, d.styles = [b, _];
76
+ let i = d;
77
+ o([
78
+ s({ type: Boolean })
79
+ ], i.prototype, "destructive");
80
+ o([
81
+ s({ type: Boolean })
82
+ ], i.prototype, "disabled");
83
+ o([
84
+ s()
85
+ ], i.prototype, "icon");
86
+ o([
87
+ s({ attribute: "icon-position" })
88
+ ], i.prototype, "iconPosition");
89
+ o([
90
+ s({ type: Boolean })
91
+ ], i.prototype, "loading");
92
+ o([
93
+ s({ type: Boolean, attribute: "no-validate" })
94
+ ], i.prototype, "noValidate");
95
+ o([
96
+ s({ reflect: !0 })
97
+ ], i.prototype, "size");
98
+ o([
99
+ s()
100
+ ], i.prototype, "type");
101
+ o([
102
+ s({ reflect: !0 })
103
+ ], i.prototype, "variant");
104
+ o([
105
+ u()
106
+ ], i.prototype, "_loaderVisible");
107
+ o([
108
+ p("skf-loader")
109
+ ], i.prototype, "$loader");
110
+ o([
111
+ p("#body")
112
+ ], i.prototype, "$body");
113
+ o([
114
+ p("button")
115
+ ], i.prototype, "$button");
92
116
  export {
93
- t as SkfButton
117
+ i as SkfButton
94
118
  };
@@ -3,6 +3,7 @@ const r = o`
3
3
  @layer components {
4
4
  :host {
5
5
  contain: initial;
6
+ display: inline-flex;
6
7
  }
7
8
 
8
9
  #root {
@@ -1,4 +1,4 @@
1
- import { SkfElement } from '@internal/components/skf-element.js';
1
+ import { SkfElement } from '../../internal/components/skf-element.js';
2
2
  import { type CSSResultGroup } from 'lit';
3
3
  /**
4
4
  * The `<skf-card>` can be used to group related subjects in a container
@@ -12,10 +12,10 @@ import { type CSSResultGroup } from 'lit';
12
12
  export declare class SkfCard extends SkfElement {
13
13
  static styles: CSSResultGroup;
14
14
  /** If true, removes border */
15
- noBorder?: boolean;
15
+ noBorder: boolean;
16
16
  /** If true, removes padding */
17
- noPadding?: boolean;
17
+ noPadding: boolean;
18
18
  /** If true, the Card fills the parent element height */
19
- stretch?: boolean;
19
+ stretch: boolean;
20
20
  render(): import("lit").TemplateResult<1>;
21
21
  }