@skf-design-system/ui-components 1.0.2-beta.5 → 1.0.2-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 (124) hide show
  1. package/README.md +18 -0
  2. package/dist/components/accordion/accordion.component.d.ts +1 -1
  3. package/dist/components/accordion/accordion.component.js +2 -2
  4. package/dist/components/alert/alert.component.d.ts +3 -2
  5. package/dist/components/alert/alert.component.js +39 -33
  6. package/dist/components/button/button.styles.js +3 -3
  7. package/dist/components/checkbox/checkbox.component.d.ts +4 -2
  8. package/dist/components/checkbox/checkbox.component.js +73 -65
  9. package/dist/components/checkbox/checkbox.styles.js +1 -1
  10. package/dist/components/datepicker/datepicker-calendar.component.d.ts +4 -0
  11. package/dist/components/datepicker/datepicker-calendar.component.js +134 -127
  12. package/dist/components/datepicker/datepicker-popup.component.d.ts +4 -0
  13. package/dist/components/datepicker/datepicker-popup.component.js +100 -88
  14. package/dist/components/datepicker/datepicker.component.d.ts +4 -2
  15. package/dist/components/datepicker/datepicker.component.js +151 -140
  16. package/dist/components/dialog/dialog.component.d.ts +3 -2
  17. package/dist/components/dialog/dialog.component.js +39 -37
  18. package/dist/components/divider/divider.component.d.ts +3 -0
  19. package/dist/components/divider/divider.component.js +43 -22
  20. package/dist/components/divider/divider.styles.js +9 -9
  21. package/dist/components/drawer/drawer.component.d.ts +11 -4
  22. package/dist/components/drawer/drawer.component.js +77 -55
  23. package/dist/components/drawer/drawer.styles.js +47 -40
  24. package/dist/components/header/header.component.d.ts +4 -2
  25. package/dist/components/header/header.component.js +66 -57
  26. package/dist/components/header/header.styles.js +2 -2
  27. package/dist/components/icon/icon.component.js +7 -7
  28. package/dist/components/icon/icon.styles.js +2 -2
  29. package/dist/components/input/input.component.d.ts +4 -8
  30. package/dist/components/input/input.component.js +147 -147
  31. package/dist/components/input/input.controllers.d.ts +0 -1
  32. package/dist/components/input/input.controllers.js +12 -12
  33. package/dist/components/link/link.component.d.ts +15 -18
  34. package/dist/components/link/link.component.js +105 -107
  35. package/dist/components/link/link.styles.js +53 -45
  36. package/dist/components/loader/loader.component.d.ts +5 -3
  37. package/dist/components/loader/loader.component.js +39 -28
  38. package/dist/components/loader/loader.styles.js +6 -10
  39. package/dist/components/menu/menu-item.component.d.ts +1 -1
  40. package/dist/components/menu/menu-item.component.js +8 -8
  41. package/dist/components/menu/menu-item.styles.js +13 -9
  42. package/dist/components/menu/menu.component.d.ts +5 -2
  43. package/dist/components/menu/menu.component.js +8 -8
  44. package/dist/components/nav/nav-item.component.d.ts +4 -0
  45. package/dist/components/nav/nav-item.component.js +44 -25
  46. package/dist/components/nav/nav-item.styles.js +29 -25
  47. package/dist/components/nav/nav.component.d.ts +9 -0
  48. package/dist/components/nav/nav.component.js +47 -21
  49. package/dist/components/nav/nav.styles.js +15 -9
  50. package/dist/components/popover/popover.component.d.ts +10 -3
  51. package/dist/components/popover/popover.component.js +30 -22
  52. package/dist/components/progress/progress.component.d.ts +2 -0
  53. package/dist/components/progress/progress.component.js +38 -29
  54. package/dist/components/progress/progress.styles.js +4 -4
  55. package/dist/components/radio/radio.component.d.ts +4 -2
  56. package/dist/components/radio/radio.component.js +91 -83
  57. package/dist/components/radio/radio.styles.js +1 -1
  58. package/dist/components/segmented-button/segmented-button-item.component.js +1 -1
  59. package/dist/components/segmented-button/segmented-button-item.styles.js +1 -1
  60. package/dist/components/select/select-option-group.component.d.ts +4 -0
  61. package/dist/components/select/select-option-group.component.js +37 -18
  62. package/dist/components/select/select-option-group.style.js +12 -6
  63. package/dist/components/select/select-option.component.d.ts +7 -2
  64. package/dist/components/select/select-option.component.js +70 -53
  65. package/dist/components/select/select-option.styles.js +43 -31
  66. package/dist/components/select/select.component.d.ts +18 -10
  67. package/dist/components/select/select.component.js +175 -132
  68. package/dist/components/select/select.controllers.js +2 -1
  69. package/dist/components/select/select.styles.js +8 -2
  70. package/dist/components/stepper/stepper-item.component.d.ts +1 -1
  71. package/dist/components/stepper/stepper-item.component.js +26 -23
  72. package/dist/components/stepper/stepper-item.styles.js +4 -4
  73. package/dist/components/switch/switch.component.d.ts +4 -2
  74. package/dist/components/switch/switch.component.js +64 -56
  75. package/dist/components/switch/switch.styles.js +1 -1
  76. package/dist/components/tabs/tab-panel.component.d.ts +1 -1
  77. package/dist/components/tabs/tab-panel.component.js +19 -16
  78. package/dist/components/tabs/tab.component.d.ts +1 -1
  79. package/dist/components/tabs/tab.component.js +17 -14
  80. package/dist/components/tabs/tab.styles.js +2 -2
  81. package/dist/components/tag/tag.component.d.ts +3 -0
  82. package/dist/components/tag/tag.component.js +50 -41
  83. package/dist/components/textarea/textarea.component.d.ts +4 -2
  84. package/dist/components/textarea/textarea.component.js +127 -118
  85. package/dist/components/toast/toast-item.styles.js +13 -10
  86. package/dist/components/toast/toast.component.js +9 -9
  87. package/dist/components/toast/toast.singleton.d.ts +1 -1
  88. package/dist/components/toast/toast.singleton.js +18 -18
  89. package/dist/components/tooltip/tooltip.component.d.ts +9 -2
  90. package/dist/components/tooltip/tooltip.component.js +13 -7
  91. package/dist/custom-elements.json +1305 -946
  92. package/dist/index.d.ts +2 -2
  93. package/dist/index.js +20 -20
  94. package/dist/internal/base-classes/popover/popover.base.d.ts +24 -5
  95. package/dist/internal/base-classes/popover/popover.base.js +28 -29
  96. package/dist/internal/base-classes/popover/popover.styles.js +4 -5
  97. package/dist/internal/components/hint/hint.component.d.ts +4 -0
  98. package/dist/internal/components/hint/hint.component.js +47 -20
  99. package/dist/internal/components/hint/hint.styles.js +29 -25
  100. package/dist/internal/controllers/popover.controller.d.ts +2 -0
  101. package/dist/internal/helpers/uuid.d.ts +8 -10
  102. package/dist/internal/helpers/uuid.js +4 -11
  103. package/dist/internal/helpers/watch.d.ts +1 -1
  104. package/dist/internal/templates/asterisk.d.ts +1 -1
  105. package/dist/internal/templates/asterisk.js +4 -4
  106. package/dist/internal/types.d.ts +4 -0
  107. package/dist/styles/global-alt.css +1 -1
  108. package/dist/styles/global.css +1 -1
  109. package/dist/translations/en.d.ts +3 -0
  110. package/dist/translations/en.js +27 -0
  111. package/dist/translations/es.d.ts +3 -0
  112. package/dist/translations/es.js +27 -0
  113. package/dist/translations/index.d.ts +4 -0
  114. package/dist/translations/pt.d.ts +3 -0
  115. package/dist/translations/pt.js +27 -0
  116. package/dist/translations/sv.d.ts +3 -0
  117. package/dist/translations/sv.js +27 -0
  118. package/dist/types/jsx/custom-element-jsx.d.ts +243 -128
  119. package/dist/types/vue/index.d.ts +136 -127
  120. package/dist/utilities/localize.d.ts +28 -0
  121. package/dist/utilities/localize.js +13 -0
  122. package/dist/vscode.html-custom-data.json +168 -177
  123. package/dist/web-types.json +411 -381
  124. package/package.json +34 -41
package/dist/index.d.ts CHANGED
@@ -28,8 +28,8 @@ export { default as SkfProgress } from './components/progress/progress.js';
28
28
  export { default as SkfRadio } from './components/radio/radio.js';
29
29
  export { default as SkfSegmentedButtonItem } from './components/segmented-button/segmented-button-item.js';
30
30
  export { default as SkfSegmentedButton } from './components/segmented-button/segmented-button.js';
31
- export { default as SkfOptionGroup } from './components/select/select-option-group.js';
32
- export { default as SkfOption } from './components/select/select-option.js';
31
+ export { default as SkfSelectOptionGroup } from './components/select/select-option-group.js';
32
+ export { default as SkfSelectOption } from './components/select/select-option.js';
33
33
  export { default as SkfSelect } from './components/select/select.js';
34
34
  export { default as SkfStepperItem } from './components/stepper/stepper-item.js';
35
35
  export { default as SkfStepper } from './components/stepper/stepper.js';
package/dist/index.js CHANGED
@@ -56,14 +56,14 @@ import { SkfDatepickerPopup as ao } from "./components/datepicker/datepicker-pop
56
56
  import { SkfDatepicker as co } from "./components/datepicker/datepicker.component.js";
57
57
  import { SkfDialog as Io } from "./components/dialog/dialog.component.js";
58
58
  import { SkfDivider as lo } from "./components/divider/divider.component.js";
59
- import { SkfDrawer as go } from "./components/drawer/drawer.component.js";
59
+ import { SkfDrawer as bo } from "./components/drawer/drawer.component.js";
60
60
  import { SkfHeader as Do } from "./components/header/header.component.js";
61
61
  import { SkfHeading as vo } from "./components/heading/heading.component.js";
62
- import { SkfIcon as Oo } from "./components/icon/icon.component.js";
63
- import { SkfInput as Co } from "./components/input/input.component.js";
64
- import { SkfLink as ho } from "./components/link/link.component.js";
65
- import { SkfLoader as Go } from "./components/loader/loader.component.js";
66
- import { SkfLogo as Mo } from "./components/logo/logo.component.js";
62
+ import { SkfIcon as Po } from "./components/icon/icon.component.js";
63
+ import { SkfInput as Lo } from "./components/input/input.component.js";
64
+ import { SkfLink as wo } from "./components/link/link.component.js";
65
+ import { SkfLoader as Mo } from "./components/loader/loader.component.js";
66
+ import { SkfLogo as Oo } from "./components/logo/logo.component.js";
67
67
  import { SkfMenuItem as Ro } from "./components/menu/menu-item.component.js";
68
68
  import { SkfMenu as jo } from "./components/menu/menu.component.js";
69
69
  import { SkfNavItem as yo } from "./components/nav/nav-item.component.js";
@@ -83,11 +83,11 @@ import { SkfTabPanel as nr } from "./components/tabs/tab-panel.component.js";
83
83
  import { SkfTab as dr } from "./components/tabs/tab.component.js";
84
84
  import { SkfTabs as Ir } from "./components/tabs/tabs.component.js";
85
85
  import { SkfTag as lr } from "./components/tag/tag.component.js";
86
- import { SkfTextArea as gr } from "./components/textarea/textarea.component.js";
86
+ import { SkfTextArea as br } from "./components/textarea/textarea.component.js";
87
87
  import { SkfToastItem as Dr } from "./components/toast/toast-item.component.js";
88
88
  import { SkfToastWrapper as vr } from "./components/toast/toast-wrapper.component.js";
89
- import { SkfToast as Or } from "./components/toast/toast.component.js";
90
- import { SkfTooltip as Cr } from "./components/tooltip/tooltip.component.js";
89
+ import { SkfToast as Pr } from "./components/toast/toast.component.js";
90
+ import { SkfTooltip as Lr } from "./components/tooltip/tooltip.component.js";
91
91
  export {
92
92
  X as SkfAccordion,
93
93
  U as SkfAccordionItem,
@@ -102,26 +102,26 @@ export {
102
102
  ao as SkfDatepickerPopup,
103
103
  Io as SkfDialog,
104
104
  lo as SkfDivider,
105
- go as SkfDrawer,
105
+ bo as SkfDrawer,
106
106
  Do as SkfHeader,
107
107
  vo as SkfHeading,
108
- Oo as SkfIcon,
109
- Co as SkfInput,
110
- ho as SkfLink,
111
- Go as SkfLoader,
112
- Mo as SkfLogo,
108
+ Po as SkfIcon,
109
+ Lo as SkfInput,
110
+ wo as SkfLink,
111
+ Mo as SkfLoader,
112
+ Oo as SkfLogo,
113
113
  jo as SkfMenu,
114
114
  Ro as SkfMenuItem,
115
115
  Eo as SkfNav,
116
116
  yo as SkfNavItem,
117
- tr as SkfOption,
118
- or as SkfOptionGroup,
119
117
  Jo as SkfPopover,
120
118
  Qo as SkfProgress,
121
119
  Vo as SkfRadio,
122
120
  _o as SkfSegmentedButton,
123
121
  Yo as SkfSegmentedButtonItem,
124
122
  mr as SkfSelect,
123
+ tr as SkfSelectOption,
124
+ or as SkfSelectOptionGroup,
125
125
  Sr as SkfStepper,
126
126
  fr as SkfStepperItem,
127
127
  xr as SkfSwitch,
@@ -129,9 +129,9 @@ export {
129
129
  nr as SkfTabPanel,
130
130
  Ir as SkfTabs,
131
131
  lr as SkfTag,
132
- gr as SkfTextArea,
133
- Or as SkfToast,
132
+ br as SkfTextArea,
133
+ Pr as SkfToast,
134
134
  Dr as SkfToastItem,
135
135
  vr as SkfToastWrapper,
136
- Cr as SkfTooltip
136
+ Lr as SkfTooltip
137
137
  };
@@ -2,36 +2,55 @@ import { type Placement } from '@floating-ui/dom';
2
2
  import { SkfElement } from '../../components/skf-element.js';
3
3
  import { PopoverController } from '../../controllers/popover.controller.js';
4
4
  import { type CSSResultGroup } from 'lit';
5
+ /**
6
+ * @description - Base class for popover components.
7
+ * This class provides common functionality for popovers, such as handling open/close states, positioning, and event management.
8
+ * It should be extended by specific popover components like `SkfPopover`, `SkfTooltip`, etc.
9
+ *
10
+ * @event {CustomEvent} skf-opened - Fired when the popover is opened
11
+ * @event {CustomEvent} skf-closed - Fired when the popover is closed
12
+ *
13
+ * @slot - The popover content
14
+ */
5
15
  export declare class SkfPopoverBase extends SkfElement {
6
16
  static styles: CSSResultGroup;
7
17
  static classMap: {};
18
+ /** @internal - The popover element, aka `this` */
8
19
  $popover: this;
20
+ /** Where the popover is positioned relative to the anchor element if it fits */
9
21
  placement: Placement;
22
+ /** The variant of the popover extending this base class */
10
23
  variant: 'menu' | 'popup' | 'tooltip';
24
+ /** The id of the element the popover will be anchored to */
11
25
  anchor?: string;
26
+ /** Whether the popover is currently open */
12
27
  isOpen: boolean;
28
+ /** @internal - Gap between popover and anchor */
13
29
  offset: number;
30
+ /** @internal - Element that triggered the popover */
14
31
  $anchor?: Element | HTMLElement | null;
32
+ /** If true, displays an arrow on the popover */
15
33
  arrow: boolean;
16
- /** @internal */
34
+ /** @internal - the event that triggers the popover */
17
35
  triggerEvent: 'mouseenter' | 'click';
36
+ /** @internal - Reference to the arrow element */
18
37
  $arrow: HTMLElement;
19
38
  protected abortEventsController: AbortController;
20
39
  protected signal: AbortSignal;
21
40
  protected popoverController: PopoverController;
22
- constructor();
41
+ connectedCallback(): void;
23
42
  disconnectedCallback(): void;
24
43
  protected _toggleOpen: (newValue?: boolean) => void;
25
44
  private _handleToggle;
26
45
  handleToggleOpen: () => Promise<void>;
27
- handleAnchorEl(): void;
46
+ handleAnchorEl(): Promise<void>;
28
47
  handleAnchorChange: () => Promise<void>;
29
48
  reposition: () => Promise<void>;
30
49
  handleEscapeKey: (e: KeyboardEvent) => void;
31
- open(e: Event): void;
50
+ open: (e: Event) => void;
32
51
  /** @internal add additional open tasks here in UI component */
33
52
  openExtended(): void;
34
- close(): void;
53
+ close: () => void;
35
54
  /** @internal add additional close tasks here in UI component */
36
55
  closeExtended(): void;
37
56
  /** @internal eventlisteners here should implement abort signal */
@@ -1,13 +1,13 @@
1
- import { flip as O, offset as x, arrow as A, computePosition as C } from "@floating-ui/dom";
1
+ import { flip as O, offset as C, arrow as x, computePosition as A } from "@floating-ui/dom";
2
2
  import { SkfElement as S } from "../../components/skf-element.js";
3
3
  import { PopoverController as P } from "../../controllers/popover.controller.js";
4
4
  import { uuid as _ } from "../../helpers/uuid.js";
5
5
  import { watch as f } from "../../helpers/watch.js";
6
6
  import { componentStyles as L } from "../../../styles/component.styles.js";
7
7
  import { nothing as F, html as y } from "lit";
8
- import { property as u, state as c, query as T } from "lit/decorators.js";
9
- import { classMap as j } from "lit/directives/class-map.js";
10
- import { styles as k } from "./popover.styles.js";
8
+ import { property as u, state as c, query as k } from "lit/decorators.js";
9
+ import { classMap as T } from "lit/directives/class-map.js";
10
+ import { styles as j } from "./popover.styles.js";
11
11
  var M = Object.defineProperty, R = Object.getOwnPropertyDescriptor, r = (m, t, o, i) => {
12
12
  for (var e = i > 1 ? void 0 : i ? R(t, o) : t, n = m.length - 1, a; n >= 0; n--)
13
13
  (a = m[n]) && (e = (i ? a(t, o, e) : a(e)) || e);
@@ -15,7 +15,7 @@ var M = Object.defineProperty, R = Object.getOwnPropertyDescriptor, r = (m, t, o
15
15
  }, p;
16
16
  const s = (p = class extends S {
17
17
  constructor() {
18
- super(), this.$popover = this, this.placement = "top", this.variant = "popup", this.isOpen = !1, this.offset = 0, this.arrow = !1, this.triggerEvent = "mouseenter", this.abortEventsController = new AbortController(), this.signal = this.abortEventsController.signal, this.popoverController = new P(this), this._toggleOpen = (t) => {
18
+ super(...arguments), this.$popover = this, this.placement = "top", this.variant = "popup", this.isOpen = !1, this.offset = 0, this.arrow = !1, this.triggerEvent = "mouseenter", this.abortEventsController = new AbortController(), this.signal = this.abortEventsController.signal, this.popoverController = new P(this), this._toggleOpen = (t) => {
19
19
  this.isOpen = t ?? !this.isOpen;
20
20
  }, this._handleToggle = (t) => {
21
21
  const o = t.newState === "open";
@@ -30,9 +30,9 @@ const s = (p = class extends S {
30
30
  }, this.reposition = async () => {
31
31
  var n, a, h;
32
32
  if (!this.$anchor) return;
33
- const t = [O(), x(this.offset)];
34
- this.arrow && t.push(A({ element: this.$arrow }));
35
- const { x: o, y: i, middlewareData: e } = await C(this.$anchor, this.$popover, {
33
+ const t = [O(), C(this.offset)];
34
+ this.arrow && t.push(x({ element: this.$arrow }));
35
+ const { x: o, y: i, middlewareData: e } = await A(this.$anchor, this.$popover, {
36
36
  placement: this.placement,
37
37
  middleware: t,
38
38
  strategy: "fixed"
@@ -41,27 +41,36 @@ const s = (p = class extends S {
41
41
  left: `${String(o)}px`,
42
42
  top: `${String(i)}px`
43
43
  }), this.arrow) {
44
- const d = this.placement.split("-")[0], l = { top: "bottom", right: "left", bottom: "top", left: "right" }[d] ?? "", v = (n = e.flip) == null ? void 0 : n.index, g = (a = e.arrow) == null ? void 0 : a.x, b = (h = e.arrow) == null ? void 0 : h.y, w = typeof g == "number" ? `${String(g)}px` : "", $ = typeof b == "number" ? `${String(b)}px` : "", E = {
44
+ const d = this.placement.split("-")[0], l = { top: "bottom", right: "left", bottom: "top", left: "right" }[d] ?? "", g = (n = e.flip) == null ? void 0 : n.index, v = (a = e.arrow) == null ? void 0 : a.x, b = (h = e.arrow) == null ? void 0 : h.y, w = typeof v == "number" ? `${String(v)}px` : "", E = typeof b == "number" ? `${String(b)}px` : "", $ = {
45
45
  bottom: 45,
46
46
  right: 135,
47
47
  top: 225,
48
48
  left: 315
49
49
  };
50
50
  Object.assign(this.$arrow.style, {
51
- top: $,
51
+ top: E,
52
52
  [this.placement.includes("left") ? "right" : "left"]: w,
53
- [v ? d : l]: "calc(var(--_skf-popover-arrow-size) * -1)",
54
- rotate: `${(E[l] + (v ? 180 : 0)).toString()}deg`
53
+ [g ? d : l]: "calc(var(--_skf-popover-arrow-size) * -1)",
54
+ rotate: `${($[l] + (g ? 180 : 0)).toString()}deg`
55
55
  });
56
56
  }
57
57
  }, this.handleEscapeKey = (t) => {
58
58
  t.key === "Escape" && this.close();
59
- }, this.setAttribute("popover", "");
59
+ }, this.open = (t) => {
60
+ t.stopPropagation(), this._toggleOpen(!0), this.abortEventsController = new AbortController(), this.signal = this.abortEventsController.signal, document.addEventListener("keydown", this.handleEscapeKey, { signal: this.signal }), this.openExtended();
61
+ }, this.close = () => {
62
+ this.closeExtended(), this._toggleOpen(!1), this.abortEventsController.abort();
63
+ };
64
+ }
65
+ connectedCallback() {
66
+ super.connectedCallback(), this.setAttribute("popover", ""), this.addEventListener("toggle", (t) => {
67
+ this._handleToggle(t);
68
+ });
60
69
  }
61
70
  disconnectedCallback() {
62
71
  super.disconnectedCallback(), this.abortEventsController.abort();
63
72
  }
64
- handleAnchorEl() {
73
+ async handleAnchorEl() {
65
74
  if (!this.$anchor) return;
66
75
  const t = this._containsFocusableElement(this);
67
76
  this.$anchor.addEventListener(
@@ -78,17 +87,11 @@ const s = (p = class extends S {
78
87
  t && i || this.close();
79
88
  },
80
89
  { signal: this.signal }
81
- ), this.$popover.id = _(this.$anchor.id), ["popup", "menu"].includes(this.variant) && (this.$anchor.setAttribute("aria-haspopup", "true"), this.setAttribute("aria-labelledby", this.$anchor.id)), ["menu"].includes(this.variant) && this.$anchor.setAttribute("aria-controls", this.$popover.id), ["popup"].includes(this.variant) && t && (this.role = "dialog"), ["tooltip"].includes(this.variant) && this.$anchor.addEventListener("focusin", this.open.bind(this), { signal: this.signal });
82
- }
83
- open(t) {
84
- t.stopPropagation(), this._toggleOpen(!0), document.addEventListener("keydown", this.handleEscapeKey.bind(this), { signal: this.signal }), this.openExtended();
90
+ ), this.$popover.id = await _(this.$anchor.id), ["popup", "menu"].includes(this.variant) && (this.$anchor.setAttribute("aria-haspopup", "true"), this.setAttribute("aria-labelledby", this.$anchor.id)), ["menu"].includes(this.variant) && this.$anchor.setAttribute("aria-controls", this.$popover.id), ["popup"].includes(this.variant) && t && (this.role = "dialog"), ["tooltip"].includes(this.variant) && this.$anchor.addEventListener("focusin", this.open, { signal: this.signal });
85
91
  }
86
92
  /** @internal add additional open tasks here in UI component */
87
93
  openExtended() {
88
94
  }
89
- close() {
90
- this.closeExtended(), this._toggleOpen(!1), document.removeEventListener("keydown", this.handleEscapeKey.bind(this));
91
- }
92
95
  /** @internal add additional close tasks here in UI component */
93
96
  closeExtended() {
94
97
  }
@@ -103,13 +106,9 @@ const s = (p = class extends S {
103
106
  render() {
104
107
  var t;
105
108
  return ["popup", "menu"].includes(this.variant) && ((t = this.$anchor) == null || t.setAttribute("aria-expanded", this.isOpen ? "true" : "false")), y`
106
- <div
107
- @toggle=${this._handleToggle}
108
- class=${j({ popover: !0, ...p.classMap })}
109
- id="popover"
110
- >
109
+ <div class=${T({ popover: !0, ...p.classMap })} id="root">
111
110
  <slot></slot>
112
- ${this.arrow ? y`<div class="popover__arrow" id="arrow"></div>` : F}
111
+ ${this.arrow ? y`<div id="arrow"></div>` : F}
113
112
  </div>
114
113
  `;
115
114
  }
@@ -134,7 +133,7 @@ const s = (p = class extends S {
134
133
  return h;
135
134
  }
136
135
  }
137
- }, p.styles = [L, k], p.classMap = {}, p);
136
+ }, p.styles = [L, j], p.classMap = {}, p);
138
137
  r([
139
138
  u()
140
139
  ], s.prototype, "placement", 2);
@@ -160,7 +159,7 @@ r([
160
159
  c()
161
160
  ], s.prototype, "triggerEvent", 2);
162
161
  r([
163
- T("#arrow")
162
+ k("#arrow")
164
163
  ], s.prototype, "$arrow", 2);
165
164
  r([
166
165
  f("isOpen", { afterUpdate: !0 })
@@ -1,9 +1,7 @@
1
1
  import { css as o } from "lit";
2
2
  const e = o`
3
- /* stylelint-disable selector-class-pattern */
4
3
  @layer components {
5
4
  :host {
6
- background-color: var(--skf-bg-color-neutral-1);
7
5
  border: none;
8
6
  border-radius: var(--skf-border-radius-sm);
9
7
  box-shadow: var(--skf-shadow-md);
@@ -19,15 +17,16 @@ const e = o`
19
17
  display: none;
20
18
  }
21
19
 
22
- #popover {
20
+ #root {
21
+ background-color: var(--skf-bg-color-neutral-1);
23
22
  height: 100%;
24
23
  width: 100%;
25
24
  }
26
25
 
27
- .popover__arrow {
26
+ #arrow {
28
27
  --_skf-popover-arrow-size: calc(6px * 0.7071);
29
28
 
30
- background-color: var(--skf-bg-color-neutral-1);
29
+ background-color: inherit;
31
30
  block-size: calc(var(--_skf-popover-arrow-size) * 2);
32
31
  box-shadow: 1px 1px 2px 0 rgb(0 0 0 / 5%);
33
32
  inline-size: calc(var(--_skf-popover-arrow-size) * 2);
@@ -3,7 +3,11 @@ import { SkfElement } from '../../components/skf-element.js';
3
3
  import type { Severity } from '../../types.js';
4
4
  import { type CSSResultGroup } from 'lit';
5
5
  export declare class SkfHint extends SkfElement {
6
+ #private;
6
7
  static styles: CSSResultGroup;
8
+ disabled: boolean;
7
9
  severity?: Severity;
10
+ /** @internal */
11
+ _handleStateChange(property: string, _prev: unknown, next: unknown): void;
8
12
  render(): import("lit").TemplateResult<1>;
9
13
  }
@@ -1,21 +1,42 @@
1
+ var v = (t) => {
2
+ throw TypeError(t);
3
+ };
4
+ var d = (t, e, s) => e.has(t) || v("Cannot " + s);
5
+ var m = (t, e, s) => (d(t, e, "read from private field"), s ? s.call(t) : e.get(t)), h = (t, e, s) => e.has(t) ? v("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, s), c = (t, e, s, o) => (d(t, e, "write to private field"), o ? o.call(t, s) : e.set(t, s), s);
1
6
  import "../../../components/icon/icon.js";
2
- import { SkfElement as l } from "../skf-element.js";
3
- import { ICON_SEVERITY as n } from "../../constants/iconSeverity.js";
4
- import { componentStyles as v } from "../../../styles/component.styles.js";
5
- import { html as f } from "lit";
6
- import { property as y } from "lit/decorators.js";
7
- import { styles as d } from "./hint.styles.js";
8
- var a = Object.defineProperty, c = (s, i, m, h) => {
9
- for (var r = void 0, t = s.length - 1, p; t >= 0; t--)
10
- (p = s[t]) && (r = p(i, m, r) || r);
11
- return r && a(i, m, r), r;
7
+ import { SkfElement as O } from "../skf-element.js";
8
+ import { ICON_SEVERITY as g } from "../../constants/iconSeverity.js";
9
+ import { stateMap as w } from "../../helpers/stateMap.js";
10
+ import { watch as C } from "../../helpers/watch.js";
11
+ import { componentStyles as P } from "../../../styles/component.styles.js";
12
+ import { html as _ } from "lit";
13
+ import { property as b } from "lit/decorators.js";
14
+ import { styles as S } from "./hint.styles.js";
15
+ var j = Object.defineProperty, x = Object.getOwnPropertyDescriptor, f = (t, e, s, o) => {
16
+ for (var r = o > 1 ? void 0 : o ? x(e, s) : e, n = t.length - 1, l; n >= 0; n--)
17
+ (l = t[n]) && (r = (o ? l(e, s, r) : l(r)) || r);
18
+ return o && r && j(e, s, r), r;
19
+ };
20
+ const u = {
21
+ disabled: "disabled",
22
+ severity: ["error", "info", "success", "warning"]
12
23
  };
13
- const o = class o extends l {
24
+ var p, a;
25
+ const y = class y extends O {
26
+ constructor() {
27
+ super(...arguments);
28
+ h(this, p);
29
+ h(this, a);
30
+ c(this, p, this.attachInternals()), c(this, a, m(this, p).states), this.disabled = !1;
31
+ }
32
+ _handleStateChange(s, o, r) {
33
+ w(m(this, a), u[s]).set(r);
34
+ }
14
35
  render() {
15
- return f`
36
+ return _`
16
37
  <div id="root">
17
- ${this.severity && f`
18
- <skf-icon color=${this.severity} name="${n[this.severity]}" size="xs">
38
+ ${this.severity && _`
39
+ <skf-icon color=${this.severity} name="${g[this.severity]}" size="xs">
19
40
  </skf-icon>
20
41
  `}
21
42
  <slot></slot>
@@ -23,11 +44,17 @@ const o = class o extends l {
23
44
  `;
24
45
  }
25
46
  };
26
- o.styles = [v, d];
27
- let e = o;
28
- c([
29
- y()
30
- ], e.prototype, "severity");
47
+ p = new WeakMap(), a = new WeakMap(), y.styles = [P, S];
48
+ let i = y;
49
+ f([
50
+ b({ type: Boolean })
51
+ ], i.prototype, "disabled", 2);
52
+ f([
53
+ b({ type: String })
54
+ ], i.prototype, "severity", 2);
55
+ f([
56
+ C(Object.keys(u))
57
+ ], i.prototype, "_handleStateChange", 1);
31
58
  export {
32
- e as SkfHint
59
+ i as SkfHint
33
60
  };
@@ -1,35 +1,39 @@
1
- import { css as r } from "lit";
2
- const s = r`
3
- #root {
4
- align-items: center;
5
- color: var(--_skf-hint-color, var(--skf-text-color-secondary));
6
- display: flex;
7
- font-size: var(--skf-font-size-75);
8
- font-weight: var(--skf-font-weight-medium);
9
- gap: var(--skf-spacing-25);
1
+ import { css as o } from "lit";
2
+ const s = o`
3
+ @layer components {
4
+ @layer base {
5
+ #root {
6
+ --_skf-hint-color: var(--skf-text-color-secondary);
10
7
 
11
- :host-context(:disabled) & {
12
- color: inherit;
8
+ align-items: center;
9
+ color: var(--_skf-hint-color);
10
+ display: flex;
11
+ font-size: var(--skf-font-size-75);
12
+ font-weight: var(--skf-font-weight-medium);
13
+ gap: var(--skf-spacing-25);
14
+ }
13
15
  }
14
16
 
15
- :host([severity='alert']) & {
16
- --_skf-hint-color: var(--skf-severity-fg-color-alert);
17
- }
17
+ @layer mods {
18
+ :host(:state(disabled)) #root {
19
+ --_skf-hint-color: var(--skf-interactive-text-color-disabled);
20
+ }
18
21
 
19
- :host([severity='error']) & {
20
- --_skf-hint-color: var(--skf-severity-fg-color-error);
21
- }
22
+ :host(:not(:state(disabled)):state(error)) #root {
23
+ --_skf-hint-color: var(--skf-severity-fg-color-error);
24
+ }
22
25
 
23
- :host([severity='info']) & {
24
- --_skf-hint-color: var(--skf-severity-fg-color-info);
25
- }
26
+ :host(:not(:state(disabled)):state(info)) #root {
27
+ --_skf-hint-color: var(--skf-severity-fg-color-info);
28
+ }
26
29
 
27
- :host([severity='success']) & {
28
- --_skf-hint-color: var(--skf-severity-fg-color-success);
29
- }
30
+ :host(:not(:state(disabled)):state(success)) #root {
31
+ --_skf-hint-color: var(--skf-severity-fg-color-success);
32
+ }
30
33
 
31
- :host([severity='warning']) & {
32
- --_skf-hint-color: var(--skf-severity-fg-color-warning);
34
+ :host(:not(:state(disabled)):state(warning)) #root {
35
+ --_skf-hint-color: var(--skf-severity-fg-color-warning);
36
+ }
33
37
  }
34
38
  }
35
39
  `;
@@ -7,9 +7,11 @@ interface ControllerHostProps {
7
7
  $anchor?: Element | HTMLElement | null;
8
8
  $popover?: Element | HTMLElement | null;
9
9
  reposition: () => Promise<void>;
10
+ _toggleOpen: (open: boolean) => void;
10
11
  }
11
12
  export declare class PopoverController implements ReactiveController {
12
13
  host?: ReactiveControllerHost & Partial<ControllerHostProps>;
14
+ intersectionObserver: IntersectionObserver | undefined;
13
15
  private cleanup;
14
16
  private active;
15
17
  private autoStart;
@@ -1,15 +1,13 @@
1
1
  /**
2
- * Generate a unique id based on a string
2
+ * Generate a unique id based on a string using the Crypto API
3
3
  *
4
4
  * @param str - string to base hash on
5
- * @returns string - a unique prefixed id
6
- */
7
- export declare function uuid(str: string): string;
8
- /**
9
- * @describe - cyrb53 - A simple hash function for strings
5
+ * @returns Promise<string> - a unique prefixed id
10
6
  *
11
- * @param str - string to hash
12
- * @param seed
13
- * @returns - a 12 digit number
7
+ * @usage
8
+ * ```typescript
9
+ * const uniqueId = await uuid('my-element-id');
10
+ * console.log(uniqueId); // skf-uuid-123456789abc
11
+ * ```
14
12
  */
15
- export declare const hash: (str: string, seed?: number) => number;
13
+ export declare function uuid(str: string): Promise<string>;
@@ -1,14 +1,7 @@
1
- function r(u) {
2
- const i = n(u);
3
- return `skf-uuid-${String(i)}`;
1
+ async function c(r) {
2
+ const t = new TextEncoder().encode(r), e = await crypto.subtle.digest("SHA-256", t);
3
+ return `skf-uuid-${Array.from(new Uint8Array(e)).map((n) => n.toString(16).padStart(2, "0")).join("").slice(0, 12)}`;
4
4
  }
5
- const n = (u, i = 0) => {
6
- let t = 3735928559 ^ i, h = 1103547991 ^ i;
7
- for (let l = 0, a; l < u.length; l++)
8
- a = u.charCodeAt(l), t = Math.imul(t ^ a, 2654435761), h = Math.imul(h ^ a, 1597334677);
9
- return t = Math.imul(t ^ t >>> 16, 2246822507), t ^= Math.imul(h ^ h >>> 13, 3266489909), h = Math.imul(h ^ h >>> 16, 2246822507), h ^= Math.imul(t ^ t >>> 13, 3266489909), 4294967296 * (2097151 & h) + (t >>> 0);
10
- };
11
5
  export {
12
- n as hash,
13
- r as uuid
6
+ c as uuid
14
7
  };
@@ -1,5 +1,5 @@
1
1
  import type { LitElement } from 'lit';
2
- type UpdateHandler = (property: string, prev?: unknown, next?: unknown) => void;
2
+ type UpdateHandler = (property: string, prev?: unknown, next?: unknown) => void | Promise<void>;
3
3
  type NonUndefined<A> = A extends undefined ? never : A;
4
4
  type UpdateHandlerFunctionKeys<T extends object> = {
5
5
  [K in keyof T]-?: NonUndefined<T[K]> extends UpdateHandler ? K : never;
@@ -1 +1 @@
1
- export declare function Asterisk(label?: string, className?: string): import("lit").TemplateResult<1>;
1
+ export declare function Asterisk(label: string, className?: string): import("lit").TemplateResult<1>;
@@ -1,9 +1,9 @@
1
1
  import { html as r } from "lit";
2
- import { ifDefined as e } from "lit/directives/if-defined.js";
3
- function t(i, s) {
2
+ import { ifDefined as a } from "lit/directives/if-defined.js";
3
+ function t(s, i) {
4
4
  return r`
5
- <span class="visually-hidden">(${i ?? "Required"})</span>
6
- <span aria-hidden="true" class=${e(s)} id="asterisk">*</span>
5
+ <span class="visually-hidden">(${s})</span>
6
+ <span aria-hidden="true" class=${a(i)} id="asterisk">*</span>
7
7
  `;
8
8
  }
9
9
  export {
@@ -16,3 +16,7 @@ export type HeadingType = 'h1' | 'h2' | 'h3' | 'h4';
16
16
  * Forms
17
17
  */
18
18
  export type FormFieldSeverity = Exclude<Severity, 'error'>;
19
+ /**
20
+ * States
21
+ */
22
+ export type States<T extends string> = Record<string, T | T[]>;
@@ -1 +1 @@
1
- @charset "UTF-8";:host,:where(:root){--skf-color-green-lightest: #e5f3ecff;--skf-color-green-base: #048942ff;--skf-color-green-dark: #097c42ff;--skf-color-green-darker: #106b41ff;--skf-color-blue-lighest: #e7eefbff;--skf-color-blue-base: #4f84e0ff;--skf-color-blue-dark: #4978c8ff;--skf-color-blue-darker: #4167a8ff;--skf-color-yellow-lightest: #fff9e7ff;--skf-color-yellow-base: #ffca15ff;--skf-color-yellow-darker: #dfb31bff;--skf-color-yellow-darkest: #b49524ff;--skf-color-orange-lightest: #fff2e5ff;--skf-color-orange-base: #ff8004ff;--skf-color-orange-darker: #df740dff;--skf-color-orange-darkest: #b46518ff;--skf-color-red-lightest: #f9e5e5ff;--skf-color-red-base: #cc0000ff;--skf-color-red-darker: #b3080aff;--skf-color-red-darkest: #921217ff;--skf-color-neutral-lightest: #f6f6f6ff;--skf-color-neutral-lighter: #ebeceeff;--skf-color-neutral-light: #d5d8dcff;--skf-color-neutral-base: #c7cad0ff;--skf-color-neutral-dark: #aaafb8ff;--skf-color-neutral-darker: #808895ff;--skf-color-neutral-darkest: #676f7cff;--skf-color-neutral-black: #273342ff;--skf-color-neutral-white: #ffffffff;--skf-color-brand-base: #0f58d6ff;--skf-color-brand-lightest: #d9e4f8ff;--skf-color-brand-lighter: #c5d7f5ff;--skf-color-brand-dark: #084abdff;--skf-color-neutral-transparent: #ffffff00;--skf-color-neutral-opacity: #12111199;--skf-color-brand-darker: #0b3e96ff}:host,:where(:root){--skf-size-1: .0625rem;--skf-size-2: .125rem;--skf-size-4: .25rem;--skf-size-8: .5rem;--skf-size-12: .75rem;--skf-size-16: 1rem;--skf-size-20: 1.25rem;--skf-size-24: 1.5rem;--skf-size-32: 2rem;--skf-size-44: 2.75rem;--skf-size-48: 3rem;--skf-size-56: 3.5rem}:host,:where(:root){--skf-type-scale-10: .625rem;--skf-type-scale-12: .75rem;--skf-type-scale-14: .875rem;--skf-type-scale-16: 1rem;--skf-type-scale-18: 1.125rem;--skf-type-scale-20: 1.25rem;--skf-type-scale-22: 1.375rem;--skf-type-scale-24: 1.5rem;--skf-type-scale-28: 1.75rem;--skf-type-scale-32: 2rem;--skf-type-scale-36: 2.25rem;--skf-type-scale-40: 2.5rem;--skf-type-scale-46: 2.875rem;--skf-type-scale-50: 3.125rem;--skf-type-scale-56: 3.5rem;--skf-type-scale-64: 4rem;--skf-type-scale-72: 4.5rem;--skf-type-scale-90: 5.625rem;--skf-type-scale-124: 7.75rem}:host,:where(:root){--skf-bg-color-neutral-1: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-light) );--skf-bg-color-neutral-2: var(--skf-color-neutral-lighter);--skf-bg-color-neutral-3: var(--skf-color-neutral-light);--skf-bg-color-neutral-4: light-dark( var(--skf-color-neutral-base), var(--skf-color-neutral-base) );--skf-bg-color-neutral-5: var(--skf-color-neutral-dark);--skf-bg-color-neutral-6: var(--skf-color-neutral-darker);--skf-bg-color-neutral-7: light-dark( var(--skf-color-neutral-black), var(--skf-color-neutral-white) );--skf-bg-color-emphasised: light-dark(var(--skf-color-brand-base), var(--skf-color-brand-base))}:host,:where(:root){--skf-text-color-primary: light-dark( var(--skf-color-neutral-black), var(--skf-color-neutral-lightest) );--skf-text-color-secondary: var(--skf-color-neutral-darkest);--skf-text-color-tertiary: var(--skf-color-neutral-dark);--skf-text-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-text-color-emphasised: light-dark(var(--skf-color-brand-base), var(--skf-color-brand-base))}:host,:where(:root){--skf-icon-size-xs: var(--skf-size-16);--skf-icon-size-sm: var(--skf-size-20);--skf-icon-size-md: var(--skf-size-24);--skf-icon-size-lg: var(--skf-size-32)}:host,:where(:root){--skf-icon-color-primary: light-dark( var(--skf-color-neutral-black), var(--skf-color-neutral-black) );--skf-icon-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-icon-color-emphasised: light-dark(var(--skf-color-brand-base), var(--skf-color-brand-base));--skf-icon-color-secondary: var(--skf-color-neutral-darkest)}:host,:where(:root){--skf-border-color-emphasised: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-base) );--skf-border-color-primary: var(--skf-color-neutral-dark);--skf-border-color-secondary: light-dark( var(--skf-color-neutral-base), var(--skf-color-neutral-base) );--skf-border-color-tertiary: var(--skf-color-neutral-light);--skf-border-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) )}:host,:where(:root){--skf-border-width-md: var(--skf-size-2);--skf-border-width-lg: var(--skf-size-4);--skf-border-width-sm: var(--skf-size-1)}:host,:where(:root){--skf-border-radius-md: var(--skf-size-8);--skf-border-radius-lg: var(--skf-size-16);--skf-border-radius-sm: var(--skf-size-2)}:host,:where(:root){--skf-interactive-bg-color-primary: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-lightest) );--skf-interactive-bg-color-primary-hover: var(--skf-color-brand-dark);--skf-interactive-bg-color-primary-active: var(--skf-color-brand-darker);--skf-interactive-bg-color-secondary: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-interactive-bg-color-secondary-hover: var(--skf-color-brand-lightest);--skf-interactive-bg-color-secondary-active: var(--skf-color-brand-lighter);--skf-interactive-bg-color-tertiary: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-lightest) );--skf-interactive-bg-color-destructive: light-dark( var(--skf-color-red-base), var(--skf-color-red-base) );--skf-interactive-bg-color-destructive-hover: var(--skf-color-red-darker);--skf-interactive-bg-color-destructive-active: var(--skf-color-red-darkest);--skf-interactive-bg-color-disabled: var(--skf-color-neutral-lighter);--skf-interactive-bg-color-tertiary-hover: var(--skf-color-neutral-lighter);--skf-interactive-bg-color-tertiary-active: light-dark( var(--skf-color-neutral-base), var(--skf-color-neutral-lightest) );--skf-interactive-text-color-disabled: var(--skf-color-neutral-darker);--skf-interactive-text-color-primary: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-base) );--skf-interactive-text-color-primary-hover: var(--skf-color-brand-dark);--skf-interactive-text-color-primary-active: var(--skf-color-brand-dark);--skf-interactive-text-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-interactive-text-color-inverse-hover: var(--skf-color-neutral-lightest);--skf-interactive-text-color-inverse-active: var(--skf-color-neutral-lightest);--skf-interactive-border-color-focus: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-base) );--skf-interactive-border-color-disabled: var(--skf-color-neutral-darker);--skf-interactive-border-color-primary-hover: var(--skf-color-neutral-darkest);--skf-interactive-border-color-primary: var(--skf-color-neutral-dark);--skf-interactive-border-color-primary-active: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-base) );--skf-interactive-icon-color-primary: light-dark( var(--skf-color-neutral-black), var(--skf-color-neutral-black) );--skf-interactive-icon-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-interactive-icon-color-disabled: var(--skf-color-neutral-darker);--skf-interactive-icon-color-primary-hover: var(--skf-color-neutral-darkest);--skf-interactive-icon-color-inverse-hover: var(--skf-color-neutral-lightest)}:host,:where(:root){--skf-severity-bg-color-success: var(--skf-color-green-lightest);--skf-severity-bg-color-info: light-dark( var(--skf-color-blue-lighest), var(--skf-color-blue-lighest) );--skf-severity-bg-color-warning: var(--skf-color-orange-lightest);--skf-severity-bg-color-alert: var(--skf-color-yellow-lightest);--skf-severity-bg-color-error: var(--skf-color-red-lightest)}:host,:where(:root){--skf-severity-fg-color-success: light-dark( var(--skf-color-green-base), var(--skf-color-green-base) );--skf-severity-fg-color-info: light-dark(var(--skf-color-blue-base), var(--skf-color-blue-base));--skf-severity-fg-color-warning: light-dark( var(--skf-color-orange-base), var(--skf-color-orange-base) );--skf-severity-fg-color-error: light-dark(var(--skf-color-red-base), var(--skf-color-red-base));--skf-severity-fg-color-alert: light-dark( var(--skf-color-yellow-base), var(--skf-color-yellow-base) )}:host,:where(:root){--skf-spacing-25: var(--skf-size-4);--skf-spacing-50: var(--skf-size-8);--skf-spacing-75: var(--skf-size-12);--skf-spacing-100: var(--skf-size-16);--skf-spacing-125: var(--skf-size-20);--skf-spacing-150: var(--skf-size-24);--skf-spacing-200: var(--skf-size-32);--skf-spacing-250: var(--skf-size-44);--skf-spacing-300: var(--skf-size-48);--skf-spacing-400: var(--skf-size-56)}:host,:where(:root){--skf-font-size-25: var(--skf-type-scale-10);--skf-font-size-50: var(--skf-type-scale-12);--skf-font-size-75: var(--skf-type-scale-14);--skf-font-size-100: var(--skf-type-scale-16);--skf-font-size-200: var(--skf-type-scale-18);--skf-font-size-300: var(--skf-type-scale-20);--skf-font-size-400: var(--skf-type-scale-22);--skf-font-size-500: var(--skf-type-scale-24);--skf-font-size-600: var(--skf-type-scale-28);--skf-font-size-700: var(--skf-type-scale-32);--skf-font-size-800: var(--skf-type-scale-36);--skf-font-size-900: var(--skf-type-scale-40);--skf-font-size-1000: var(--skf-type-scale-46);--skf-font-size-1100: var(--skf-type-scale-50);--skf-font-size-1200: var(--skf-type-scale-56);--skf-font-size-1300: var(--skf-type-scale-64);--skf-font-size-1400: var(--skf-type-scale-72);--skf-font-size-1500: var(--skf-type-scale-90);--skf-font-size-1600: var(--skf-type-scale-124)}:host,:where(:root){--skf-font-weight-light: 100;--skf-font-weight-regular: 400;--skf-font-weight-medium: 500;--skf-font-weight-bold: 700}:host,:where(:root){--skf-font-family-sans: SKFSans}:host,:where(:root){--skf-line-height-25: var(--skf-type-scale-10);--skf-line-height-50: var(--skf-type-scale-12);--skf-line-height-75: var(--skf-type-scale-14);--skf-line-height-100: var(--skf-type-scale-16);--skf-line-height-200: var(--skf-type-scale-18);--skf-line-height-300: var(--skf-type-scale-20);--skf-line-height-400: var(--skf-type-scale-22);--skf-line-height-500: var(--skf-type-scale-24);--skf-line-height-600: var(--skf-type-scale-28);--skf-line-height-700: var(--skf-type-scale-32);--skf-line-height-800: var(--skf-type-scale-36);--skf-line-height-900: var(--skf-type-scale-40);--skf-line-height-1000: var(--skf-type-scale-46);--skf-line-height-1100: var(--skf-type-scale-50);--skf-line-height-1200: var(--skf-type-scale-56);--skf-line-height-1300: var(--skf-type-scale-64);--skf-line-height-1400: var(--skf-type-scale-72);--skf-line-height-1500: var(--skf-type-scale-90);--skf-line-height-size-1600: var(--skf-type-scale-124)}:host,:where(:root){--skf-motion-duration-fast: 200;--skf-motion-duration-normal: 300;--skf-motion-duration-slow: 400}:host,:where(:root){--skf-motion-easing-ease-in: ease-in;--skf-motion-easing-ease-out: ease-out}:host,:where(:root){--skf-shadow-xl: 0 10px 15px -3px #0000001a;--skf-shadow-md: 0 1px 3px 0 #0000001a;--skf-shadow-sm: 0 1px 2px 0 #0000000d;--skf-shadow-lg: 0 4px 6px -1px #0000001a}:host,:where(:root){--skf-logo-primary: light-dark(var(--skf-color-brand-base), var(--skf-color-brand-base));--skf-logo-secondary: light-dark(var(--skf-color-neutral-black), var(--skf-color-neutral-black));--skf-logo-inverse: light-dark(var(--skf-color-neutral-white), var(--skf-color-neutral-white))}body{color:var(--skf-text-color-primary);font:var(--skf-font-size-100) / var(--skf-line-height-300) var(--skf-font-family-sans);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body:has(skf-dialog[open]){overflow:hidden}
1
+ @charset "UTF-8";:host,:where(:root){--skf-color-green-lightest: #e5f3ecff;--skf-color-green-base: #048942ff;--skf-color-green-dark: #097c42ff;--skf-color-green-darker: #106b41ff;--skf-color-blue-lightest: #e7eefbff;--skf-color-blue-base: #4f84e0ff;--skf-color-blue-dark: #4978c8ff;--skf-color-blue-darker: #4167a8ff;--skf-color-yellow-lightest: #fff9e7ff;--skf-color-yellow-base: #ffca15ff;--skf-color-yellow-darker: #dfb31bff;--skf-color-yellow-darkest: #b49524ff;--skf-color-orange-lightest: #fff2e5ff;--skf-color-orange-base: #ff8004ff;--skf-color-orange-darker: #df740dff;--skf-color-orange-darkest: #b46518ff;--skf-color-red-lightest: #f9e5e5ff;--skf-color-red-base: #cc0000ff;--skf-color-red-darker: #b3080aff;--skf-color-red-darkest: #921217ff;--skf-color-neutral-lightest: #f6f6f6ff;--skf-color-neutral-lighter: #ebeceeff;--skf-color-neutral-light: #d5d8dcff;--skf-color-neutral-base: #c7cad0ff;--skf-color-neutral-dark: #aaafb8ff;--skf-color-neutral-darker: #808895ff;--skf-color-neutral-darkest: #676f7cff;--skf-color-neutral-black: #273342ff;--skf-color-neutral-white: #ffffffff;--skf-color-brand-base: #0f58d6ff;--skf-color-brand-lightest: #d9e4f8ff;--skf-color-brand-lighter: #c5d7f5ff;--skf-color-brand-dark: #084abdff;--skf-color-neutral-transparent: #ffffff00;--skf-color-neutral-opacity: #12111199;--skf-color-brand-darker: #0b3e96ff;--skf-color-purple-base: #781e93ff;--skf-color-purple-light: #f1e8f4ff}:host,:where(:root){--skf-size-1: .0625rem;--skf-size-2: .125rem;--skf-size-4: .25rem;--skf-size-8: .5rem;--skf-size-12: .75rem;--skf-size-16: 1rem;--skf-size-20: 1.25rem;--skf-size-24: 1.5rem;--skf-size-32: 2rem;--skf-size-44: 2.75rem;--skf-size-48: 3rem;--skf-size-56: 3.5rem}:host,:where(:root){--skf-type-scale-10: .625rem;--skf-type-scale-12: .75rem;--skf-type-scale-14: .875rem;--skf-type-scale-16: 1rem;--skf-type-scale-18: 1.125rem;--skf-type-scale-20: 1.25rem;--skf-type-scale-22: 1.375rem;--skf-type-scale-24: 1.5rem;--skf-type-scale-28: 1.75rem;--skf-type-scale-32: 2rem;--skf-type-scale-36: 2.25rem;--skf-type-scale-40: 2.5rem;--skf-type-scale-46: 2.875rem;--skf-type-scale-50: 3.125rem;--skf-type-scale-56: 3.5rem;--skf-type-scale-64: 4rem;--skf-type-scale-72: 4.5rem;--skf-type-scale-90: 5.625rem;--skf-type-scale-124: 7.75rem}:host,:where(:root){--skf-bg-color-neutral-1: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-light) );--skf-bg-color-neutral-2: var(--skf-color-neutral-lighter);--skf-bg-color-neutral-3: var(--skf-color-neutral-light);--skf-bg-color-neutral-4: light-dark( var(--skf-color-neutral-base), var(--skf-color-neutral-base) );--skf-bg-color-neutral-5: var(--skf-color-neutral-dark);--skf-bg-color-neutral-6: var(--skf-color-neutral-darker);--skf-bg-color-neutral-7: light-dark( var(--skf-color-neutral-black), var(--skf-color-neutral-white) );--skf-bg-color-emphasized: light-dark(var(--skf-color-brand-base), var(--skf-color-brand-base))}:host,:where(:root){--skf-text-color-primary: light-dark( var(--skf-color-neutral-black), var(--skf-color-neutral-lightest) );--skf-text-color-secondary: var(--skf-color-neutral-darkest);--skf-text-color-tertiary: var(--skf-color-neutral-dark);--skf-text-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-text-color-emphasized: light-dark(var(--skf-color-brand-base), var(--skf-color-brand-base))}:host,:where(:root){--skf-icon-size-xs: var(--skf-size-16);--skf-icon-size-sm: var(--skf-size-20);--skf-icon-size-md: var(--skf-size-24);--skf-icon-size-lg: var(--skf-size-32)}:host,:where(:root){--skf-icon-color-primary: light-dark( var(--skf-color-neutral-black), var(--skf-color-neutral-black) );--skf-icon-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-icon-color-emphasized: light-dark(var(--skf-color-brand-base), var(--skf-color-brand-base));--skf-icon-color-secondary: var(--skf-color-neutral-darkest)}:host,:where(:root){--skf-border-color-emphasized: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-base) );--skf-border-color-primary: var(--skf-color-neutral-dark);--skf-border-color-secondary: light-dark( var(--skf-color-neutral-base), var(--skf-color-neutral-base) );--skf-border-color-tertiary: var(--skf-color-neutral-light);--skf-border-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) )}:host,:where(:root){--skf-border-width-md: var(--skf-size-2);--skf-border-width-lg: var(--skf-size-4);--skf-border-width-sm: var(--skf-size-1)}:host,:where(:root){--skf-border-radius-md: var(--skf-size-8);--skf-border-radius-lg: var(--skf-size-16);--skf-border-radius-sm: var(--skf-size-2)}:host,:where(:root){--skf-interactive-bg-color-primary: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-lightest) );--skf-interactive-bg-color-primary-hover: var(--skf-color-brand-dark);--skf-interactive-bg-color-primary-active: var(--skf-color-brand-darker);--skf-interactive-bg-color-secondary: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-interactive-bg-color-secondary-hover: var(--skf-color-brand-lightest);--skf-interactive-bg-color-secondary-active: var(--skf-color-brand-lighter);--skf-interactive-bg-color-tertiary: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-lightest) );--skf-interactive-bg-color-destructive: light-dark( var(--skf-color-red-base), var(--skf-color-red-base) );--skf-interactive-bg-color-destructive-hover: var(--skf-color-red-darker);--skf-interactive-bg-color-destructive-active: var(--skf-color-red-darkest);--skf-interactive-bg-color-disabled: var(--skf-color-neutral-lighter);--skf-interactive-bg-color-tertiary-hover: var(--skf-color-neutral-lighter);--skf-interactive-bg-color-tertiary-active: light-dark( var(--skf-color-neutral-base), var(--skf-color-neutral-lightest) );--skf-interactive-text-color-disabled: var(--skf-color-neutral-darker);--skf-interactive-text-color-primary: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-base) );--skf-interactive-text-color-primary-hover: var(--skf-color-brand-dark);--skf-interactive-text-color-primary-active: var(--skf-color-brand-dark);--skf-interactive-text-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-interactive-text-color-inverse-hover: var(--skf-color-neutral-lightest);--skf-interactive-text-color-inverse-active: var(--skf-color-neutral-lightest);--skf-interactive-border-color-focus: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-base) );--skf-interactive-border-color-disabled: var(--skf-color-neutral-darker);--skf-interactive-border-color-primary-hover: var(--skf-color-neutral-darkest);--skf-interactive-border-color-primary: var(--skf-color-neutral-dark);--skf-interactive-border-color-primary-active: light-dark( var(--skf-color-brand-base), var(--skf-color-brand-base) );--skf-interactive-icon-color-primary: light-dark( var(--skf-color-neutral-black), var(--skf-color-neutral-black) );--skf-interactive-icon-color-inverse: light-dark( var(--skf-color-neutral-white), var(--skf-color-neutral-white) );--skf-interactive-icon-color-disabled: var(--skf-color-neutral-darker);--skf-interactive-icon-color-primary-hover: var(--skf-color-neutral-darkest);--skf-interactive-icon-color-inverse-hover: var(--skf-color-neutral-lightest)}:host,:where(:root){--skf-severity-bg-color-success: var(--skf-color-green-lightest);--skf-severity-bg-color-info: var(--skf-color-blue-lightest);--skf-severity-bg-color-warning: var(--skf-color-orange-lightest);--skf-severity-bg-color-alert: var(--skf-color-yellow-lightest);--skf-severity-bg-color-error: var(--skf-color-red-lightest)}:host,:where(:root){--skf-severity-fg-color-success: light-dark( var(--skf-color-green-base), var(--skf-color-green-base) );--skf-severity-fg-color-info: light-dark(var(--skf-color-blue-base), var(--skf-color-blue-base));--skf-severity-fg-color-warning: light-dark( var(--skf-color-orange-base), var(--skf-color-orange-base) );--skf-severity-fg-color-error: light-dark(var(--skf-color-red-base), var(--skf-color-red-base));--skf-severity-fg-color-alert: light-dark( var(--skf-color-yellow-base), var(--skf-color-yellow-base) )}:host,:where(:root){--skf-spacing-25: var(--skf-size-4);--skf-spacing-50: var(--skf-size-8);--skf-spacing-75: var(--skf-size-12);--skf-spacing-100: var(--skf-size-16);--skf-spacing-125: var(--skf-size-20);--skf-spacing-150: var(--skf-size-24);--skf-spacing-200: var(--skf-size-32);--skf-spacing-250: var(--skf-size-44);--skf-spacing-300: var(--skf-size-48);--skf-spacing-400: var(--skf-size-56)}:host,:where(:root){--skf-font-size-25: var(--skf-type-scale-10);--skf-font-size-50: var(--skf-type-scale-12);--skf-font-size-75: var(--skf-type-scale-14);--skf-font-size-100: var(--skf-type-scale-16);--skf-font-size-200: var(--skf-type-scale-18);--skf-font-size-300: var(--skf-type-scale-20);--skf-font-size-400: var(--skf-type-scale-22);--skf-font-size-500: var(--skf-type-scale-24);--skf-font-size-600: var(--skf-type-scale-28);--skf-font-size-700: var(--skf-type-scale-32);--skf-font-size-800: var(--skf-type-scale-36);--skf-font-size-900: var(--skf-type-scale-40);--skf-font-size-1000: var(--skf-type-scale-46);--skf-font-size-1100: var(--skf-type-scale-50);--skf-font-size-1200: var(--skf-type-scale-56);--skf-font-size-1300: var(--skf-type-scale-64);--skf-font-size-1400: var(--skf-type-scale-72);--skf-font-size-1500: var(--skf-type-scale-90);--skf-font-size-1600: var(--skf-type-scale-124)}:host,:where(:root){--skf-font-weight-light: 100;--skf-font-weight-regular: 400;--skf-font-weight-medium: 500;--skf-font-weight-bold: 700}:host,:where(:root){--skf-font-family-sans: SKFSans}:host,:where(:root){--skf-line-height-25: var(--skf-type-scale-10);--skf-line-height-50: var(--skf-type-scale-12);--skf-line-height-75: var(--skf-type-scale-14);--skf-line-height-100: var(--skf-type-scale-16);--skf-line-height-200: var(--skf-type-scale-18);--skf-line-height-300: var(--skf-type-scale-20);--skf-line-height-400: var(--skf-type-scale-22);--skf-line-height-500: var(--skf-type-scale-24);--skf-line-height-600: var(--skf-type-scale-28);--skf-line-height-700: var(--skf-type-scale-32);--skf-line-height-800: var(--skf-type-scale-36);--skf-line-height-900: var(--skf-type-scale-40);--skf-line-height-1000: var(--skf-type-scale-46);--skf-line-height-1100: var(--skf-type-scale-50);--skf-line-height-1200: var(--skf-type-scale-56);--skf-line-height-1300: var(--skf-type-scale-64);--skf-line-height-1400: var(--skf-type-scale-72);--skf-line-height-1500: var(--skf-type-scale-90);--skf-line-height-size-1600: var(--skf-type-scale-124)}:host,:where(:root){--skf-motion-duration-fast: 200;--skf-motion-duration-normal: 300;--skf-motion-duration-slow: 400}:host,:where(:root){--skf-motion-easing-ease-in: ease-in;--skf-motion-easing-ease-out: ease-out}:host,:where(:root){--skf-shadow-xl: 0 10px 15px -3px #0000001a;--skf-shadow-md: 0 1px 3px 0 #0000001a;--skf-shadow-sm: 0 1px 2px 0 #0000000d;--skf-shadow-lg: 0 4px 6px -1px #0000001a}:host,:where(:root){--skf-logo-primary: light-dark(var(--skf-color-brand-base), var(--skf-color-brand-base));--skf-logo-secondary: light-dark(var(--skf-color-neutral-black), var(--skf-color-neutral-black));--skf-logo-inverse: light-dark(var(--skf-color-neutral-white), var(--skf-color-neutral-white))}body{color:var(--skf-text-color-primary);font:var(--skf-font-size-100) / var(--skf-line-height-300) var(--skf-font-family-sans);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body:has(skf-dialog[open]){overflow:hidden}