scb-wc-test 0.1.1

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 (178) hide show
  1. package/README.md +130 -0
  2. package/all.js +54 -0
  3. package/dummy.png +0 -0
  4. package/index.d.ts +54 -0
  5. package/index.js +108 -0
  6. package/mvc/components/all.js +53 -0
  7. package/mvc/components/scb-accordion/scb-accordion-item.js +194 -0
  8. package/mvc/components/scb-accordion/scb-accordion.js +5 -0
  9. package/mvc/components/scb-app-bar/scb-app-bar.js +144 -0
  10. package/mvc/components/scb-avatar/scb-avatar.js +99 -0
  11. package/mvc/components/scb-breadcrumb/scb-breadcrumb-item.js +17 -0
  12. package/mvc/components/scb-breadcrumb/scb-breadcrumb.js +52 -0
  13. package/mvc/components/scb-button/scb-button.js +121 -0
  14. package/mvc/components/scb-calendar-card/scb-calendar-card.js +140 -0
  15. package/mvc/components/scb-card/scb-card.js +256 -0
  16. package/mvc/components/scb-checkbox/scb-checkbox-group.js +33 -0
  17. package/mvc/components/scb-checkbox/scb-checkbox.js +99 -0
  18. package/mvc/components/scb-chips/scb-chip.js +46 -0
  19. package/mvc/components/scb-dialog/scb-dialog.js +158 -0
  20. package/mvc/components/scb-divider/scb-divider.js +53 -0
  21. package/mvc/components/scb-drawer/scb-drawer-item.js +114 -0
  22. package/mvc/components/scb-drawer/scb-drawer-section.js +19 -0
  23. package/mvc/components/scb-drawer/scb-drawer.js +79 -0
  24. package/mvc/components/scb-drawer/scb-sub-drawer.js +10 -0
  25. package/mvc/components/scb-fact-card/scb-fact-card-content.js +44 -0
  26. package/mvc/components/scb-fact-card/scb-fact-card.js +66 -0
  27. package/mvc/components/scb-footer/scb-footer-section.js +3 -0
  28. package/mvc/components/scb-footer/scb-footer.js +205 -0
  29. package/mvc/components/scb-grid/scb-grid-item.js +9 -0
  30. package/mvc/components/scb-grid/scb-grid.js +81 -0
  31. package/mvc/components/scb-grid/scb-stack.js +16 -0
  32. package/mvc/components/scb-header/scb-header-drawer-group.js +1 -0
  33. package/mvc/components/scb-header/scb-header-drawer-item.js +1 -0
  34. package/mvc/components/scb-header/scb-header-tab.js +1 -0
  35. package/mvc/components/scb-header/scb-header-utility.js +1 -0
  36. package/mvc/components/scb-header/scb-header.js +240 -0
  37. package/mvc/components/scb-icon-button/scb-icon-button.js +95 -0
  38. package/mvc/components/scb-keyfigure-card/scb-keyfigure-card.js +69 -0
  39. package/mvc/components/scb-link/scb-link.js +31 -0
  40. package/mvc/components/scb-list/scb-list-item.js +38 -0
  41. package/mvc/components/scb-list/scb-list.js +10 -0
  42. package/mvc/components/scb-menu/scb-menu-item.js +44 -0
  43. package/mvc/components/scb-menu/scb-menu.js +17 -0
  44. package/mvc/components/scb-menu/scb-sub-menu.js +29 -0
  45. package/mvc/components/scb-notification/scb-notification.js +120 -0
  46. package/mvc/components/scb-progress-indicator/scb-progress-indicator.js +84 -0
  47. package/mvc/components/scb-radio-button/scb-radio-button.js +95 -0
  48. package/mvc/components/scb-radio-button/scb-radio-group.js +28 -0
  49. package/mvc/components/scb-search/scb-search.js +211 -0
  50. package/mvc/components/scb-snackbar/scb-snackbar.js +83 -0
  51. package/mvc/components/scb-status-pill/scb-status-pill.js +31 -0
  52. package/mvc/components/scb-switch/scb-switch.js +54 -0
  53. package/mvc/components/scb-tabs/scb-primary-tab.js +7 -0
  54. package/mvc/components/scb-tabs/scb-secondary-tab.js +7 -0
  55. package/mvc/components/scb-tabs/scb-tabs.js +23 -0
  56. package/mvc/components/scb-textfield/scb-textfield.js +135 -0
  57. package/mvc/components/scb-toc/scb-toc-item.js +84 -0
  58. package/mvc/components/scb-toc/scb-toc.js +6 -0
  59. package/mvc/components/scb-tooltip/scb-tooltip.js +216 -0
  60. package/mvc/scb-logo.svg +21 -0
  61. package/mvc/scb-wc-test.css +1 -0
  62. package/mvc/scb.svg +14 -0
  63. package/mvc/vendor/preload-helper.js +1 -0
  64. package/mvc/vendor/vendor-lit.js +1 -0
  65. package/mvc/vendor/vendor-material.js +764 -0
  66. package/mvc/vendor/vendor.js +68 -0
  67. package/package.json +248 -0
  68. package/scb-accordion/scb-accordion-item.d.ts +37 -0
  69. package/scb-accordion/scb-accordion-item.js +343 -0
  70. package/scb-accordion/scb-accordion.d.ts +6 -0
  71. package/scb-accordion/scb-accordion.js +33 -0
  72. package/scb-app-bar/scb-app-bar.d.ts +10 -0
  73. package/scb-app-bar/scb-app-bar.js +192 -0
  74. package/scb-avatar/scb-avatar.d.ts +30 -0
  75. package/scb-avatar/scb-avatar.js +169 -0
  76. package/scb-breadcrumb/scb-breadcrumb-item.d.ts +9 -0
  77. package/scb-breadcrumb/scb-breadcrumb-item.js +54 -0
  78. package/scb-breadcrumb/scb-breadcrumb.d.ts +16 -0
  79. package/scb-breadcrumb/scb-breadcrumb.js +105 -0
  80. package/scb-button/scb-button.d.ts +26 -0
  81. package/scb-button/scb-button.js +247 -0
  82. package/scb-calendar-card/scb-calendar-card.d.ts +20 -0
  83. package/scb-calendar-card/scb-calendar-card.js +191 -0
  84. package/scb-card/scb-card.d.ts +24 -0
  85. package/scb-card/scb-card.js +345 -0
  86. package/scb-checkbox/scb-checkbox-group.d.ts +17 -0
  87. package/scb-checkbox/scb-checkbox-group.js +80 -0
  88. package/scb-checkbox/scb-checkbox.d.ts +20 -0
  89. package/scb-checkbox/scb-checkbox.js +157 -0
  90. package/scb-chips/scb-chip.d.ts +24 -0
  91. package/scb-chips/scb-chip.js +150 -0
  92. package/scb-dialog/scb-dialog.d.ts +58 -0
  93. package/scb-dialog/scb-dialog.js +390 -0
  94. package/scb-divider/scb-divider.d.ts +9 -0
  95. package/scb-divider/scb-divider.js +85 -0
  96. package/scb-drawer/scb-drawer-item.d.ts +61 -0
  97. package/scb-drawer/scb-drawer-item.js +220 -0
  98. package/scb-drawer/scb-drawer-section.d.ts +7 -0
  99. package/scb-drawer/scb-drawer-section.js +44 -0
  100. package/scb-drawer/scb-drawer.d.ts +97 -0
  101. package/scb-drawer/scb-drawer.js +258 -0
  102. package/scb-drawer/scb-sub-drawer.d.ts +10 -0
  103. package/scb-drawer/scb-sub-drawer.js +43 -0
  104. package/scb-fact-card/scb-fact-card-content.d.ts +10 -0
  105. package/scb-fact-card/scb-fact-card-content.js +83 -0
  106. package/scb-fact-card/scb-fact-card.d.ts +15 -0
  107. package/scb-fact-card/scb-fact-card.js +110 -0
  108. package/scb-footer/scb-footer-section.d.ts +21 -0
  109. package/scb-footer/scb-footer-section.js +28 -0
  110. package/scb-footer/scb-footer.d.ts +27 -0
  111. package/scb-footer/scb-footer.js +326 -0
  112. package/scb-grid/scb-grid-item.d.ts +28 -0
  113. package/scb-grid/scb-grid-item.js +66 -0
  114. package/scb-grid/scb-grid.d.ts +33 -0
  115. package/scb-grid/scb-grid.js +152 -0
  116. package/scb-grid/scb-stack.d.ts +29 -0
  117. package/scb-grid/scb-stack.js +82 -0
  118. package/scb-header/scb-header-drawer-group.d.ts +13 -0
  119. package/scb-header/scb-header-drawer-group.js +28 -0
  120. package/scb-header/scb-header-drawer-item.d.ts +14 -0
  121. package/scb-header/scb-header-drawer-item.js +31 -0
  122. package/scb-header/scb-header-tab.d.ts +13 -0
  123. package/scb-header/scb-header-tab.js +28 -0
  124. package/scb-header/scb-header-utility.d.ts +14 -0
  125. package/scb-header/scb-header-utility.js +31 -0
  126. package/scb-header/scb-header.d.ts +105 -0
  127. package/scb-header/scb-header.js +618 -0
  128. package/scb-icon-button/scb-icon-button.d.ts +31 -0
  129. package/scb-icon-button/scb-icon-button.js +208 -0
  130. package/scb-keyfigure-card/scb-keyfigure-card.d.ts +13 -0
  131. package/scb-keyfigure-card/scb-keyfigure-card.js +119 -0
  132. package/scb-link/scb-link.d.ts +17 -0
  133. package/scb-link/scb-link.js +74 -0
  134. package/scb-list/scb-list-item.d.ts +32 -0
  135. package/scb-list/scb-list-item.js +144 -0
  136. package/scb-list/scb-list.d.ts +8 -0
  137. package/scb-list/scb-list.js +39 -0
  138. package/scb-logo.svg +21 -0
  139. package/scb-menu/scb-menu-item.d.ts +22 -0
  140. package/scb-menu/scb-menu-item.js +107 -0
  141. package/scb-menu/scb-menu.d.ts +21 -0
  142. package/scb-menu/scb-menu.js +98 -0
  143. package/scb-menu/scb-sub-menu.d.ts +12 -0
  144. package/scb-menu/scb-sub-menu.js +69 -0
  145. package/scb-notification/scb-notification.d.ts +16 -0
  146. package/scb-notification/scb-notification.js +187 -0
  147. package/scb-progress-indicator/scb-progress-indicator.d.ts +11 -0
  148. package/scb-progress-indicator/scb-progress-indicator.js +122 -0
  149. package/scb-radio-button/scb-radio-button.d.ts +19 -0
  150. package/scb-radio-button/scb-radio-button.js +176 -0
  151. package/scb-radio-button/scb-radio-group.d.ts +20 -0
  152. package/scb-radio-button/scb-radio-group.js +81 -0
  153. package/scb-search/scb-search.d.ts +45 -0
  154. package/scb-search/scb-search.js +410 -0
  155. package/scb-snackbar/scb-snackbar.d.ts +17 -0
  156. package/scb-snackbar/scb-snackbar.js +140 -0
  157. package/scb-status-pill/scb-status-pill.d.ts +9 -0
  158. package/scb-status-pill/scb-status-pill.js +62 -0
  159. package/scb-switch/scb-switch.d.ts +21 -0
  160. package/scb-switch/scb-switch.js +111 -0
  161. package/scb-tabs/scb-primary-tab.d.ts +17 -0
  162. package/scb-tabs/scb-primary-tab.js +93 -0
  163. package/scb-tabs/scb-secondary-tab.d.ts +17 -0
  164. package/scb-tabs/scb-secondary-tab.js +97 -0
  165. package/scb-tabs/scb-tabs.d.ts +10 -0
  166. package/scb-tabs/scb-tabs.js +66 -0
  167. package/scb-textfield/scb-textfield.d.ts +41 -0
  168. package/scb-textfield/scb-textfield.js +258 -0
  169. package/scb-toc/scb-toc-item.d.ts +21 -0
  170. package/scb-toc/scb-toc-item.js +196 -0
  171. package/scb-toc/scb-toc.d.ts +6 -0
  172. package/scb-toc/scb-toc.js +27 -0
  173. package/scb-tooltip/scb-tooltip.d.ts +32 -0
  174. package/scb-tooltip/scb-tooltip.js +329 -0
  175. package/scb-wc-test.bundle.js +5429 -0
  176. package/scb-wc-test.css +1 -0
  177. package/scb-wc-test.d.ts +106 -0
  178. package/scb.svg +14 -0
@@ -0,0 +1,122 @@
1
+ import { css as d, LitElement as f, html as i } from "lit";
2
+ import { property as s, customElement as h } from "lit/decorators.js";
3
+ var g = Object.defineProperty, u = Object.getOwnPropertyDescriptor, t = (p, o, c, a) => {
4
+ for (var e = a > 1 ? void 0 : a ? u(o, c) : o, l = p.length - 1, n; l >= 0; l--)
5
+ (n = p[l]) && (e = (a ? n(o, c, e) : n(e)) || e);
6
+ return a && e && g(o, c, e), e;
7
+ };
8
+ let r = class extends f {
9
+ constructor() {
10
+ super(...arguments), this.label = "", this.type = "circular", this.color = "#1f44ff", this.progress = 25, this.isStatic = !0;
11
+ }
12
+ render() {
13
+ return console.log("scb-progress-indicator isStatic:", this.isStatic), i`
14
+ <div class="scb-progress-indicator">
15
+ ${this.type === "circular" ? i`
16
+ <div class="circular">
17
+ <svg class="circular-spin" viewBox="0 0 40 40">
18
+ <circle class="circular-bg" cx="20" cy="20" r="16" fill="none" stroke-width="4" />
19
+ <circle
20
+ class="circular-fg"
21
+ cx="20" cy="20" r="16" fill="none" stroke-width="4"
22
+ stroke="${this.color}"
23
+ stroke-dasharray="${2 * Math.PI * 16}"
24
+ stroke-dashoffset="${(1 - this.progress / 100) * 2 * Math.PI * 16}"
25
+ />
26
+ </svg>
27
+ </div>
28
+ ` : i`
29
+ <div class="linear">
30
+ ${this.isStatic ? i`<div class="linear-static" style="width: ${this.progress}%; background: ${this.color};"></div>` : i`<div class="linear-loader" style="background: ${this.color};"></div>`}
31
+ </div>
32
+ `}
33
+ </div>
34
+ `;
35
+ }
36
+ };
37
+ r.styles = [
38
+ d`
39
+ :host {
40
+ display: block;
41
+ font-family: var(--brand-font, sans-serif);
42
+ color: var(--md-sys-color-on-surface, #222);
43
+ }
44
+ .circular {
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+ width: 46px;
49
+ height: 46px;
50
+ position: relative;
51
+ }
52
+ .circular-spin {
53
+ animation: spin 1s linear infinite;
54
+ width: 46px;
55
+ height: 46px;
56
+ position: relative;
57
+ z-index: 1;
58
+ }
59
+ @keyframes spin {
60
+ 0% { transform: rotate(0deg); }
61
+ 100% { transform: rotate(360deg); }
62
+ }
63
+ .circular-bg {
64
+ stroke: #eee;
65
+ }
66
+ .circular-fg {
67
+ transition: stroke-dashoffset 0.3s ease;
68
+ }
69
+ .circular-bg {
70
+ stroke: #eee;
71
+ }
72
+ .circular-fg {
73
+ transition: stroke-dashoffset 0.3s ease;
74
+ }
75
+ .linear {
76
+ width: 100%;
77
+ height: 6px;
78
+ background: #eee;
79
+ border-radius: 3px;
80
+ overflow: hidden;
81
+ position: relative;
82
+ }
83
+ .linear-loader {
84
+ height: 100%;
85
+ width: 40%;
86
+ background: var(--p-40, #1f44ff);
87
+ border-radius: 3px;
88
+ animation: linear-progress 1.2s cubic-bezier(.4,0,.2,1) infinite;
89
+ }
90
+ .linear-static {
91
+ height: 100%;
92
+ border-radius: 3px;
93
+ transition: width 0.3s ease;
94
+ }
95
+ @keyframes linear-progress {
96
+ 0% { margin-left: -40%; width: 40%; }
97
+ 50% { margin-left: 30%; width: 60%; }
98
+ 100% { margin-left: 100%; width: 40%; }
99
+ }
100
+ `
101
+ ];
102
+ t([
103
+ s({ type: String })
104
+ ], r.prototype, "label", 2);
105
+ t([
106
+ s({ type: String, reflect: !0 })
107
+ ], r.prototype, "type", 2);
108
+ t([
109
+ s({ type: String, reflect: !0 })
110
+ ], r.prototype, "color", 2);
111
+ t([
112
+ s({ type: Number, reflect: !0 })
113
+ ], r.prototype, "progress", 2);
114
+ t([
115
+ s({ type: Boolean, reflect: !0 })
116
+ ], r.prototype, "isStatic", 2);
117
+ r = t([
118
+ h("scb-progress-indicator")
119
+ ], r);
120
+ export {
121
+ r as ScbProgressIndicator
122
+ };
@@ -0,0 +1,19 @@
1
+ import { LitElement, TemplateResult, PropertyValues } from 'lit';
2
+
3
+ export declare class ScbRadioButton extends LitElement {
4
+ disabled: boolean;
5
+ checked: boolean;
6
+ name: string;
7
+ value: string;
8
+ label: string;
9
+ supportingText: string;
10
+ private _radioId;
11
+ connectedCallback(): void;
12
+ disconnectedCallback(): void;
13
+ private _onMdRadioChange;
14
+ private _onRadioChange;
15
+ protected firstUpdated(): void;
16
+ protected updated(changed: PropertyValues): void;
17
+ static styles: import('lit').CSSResult;
18
+ render(): TemplateResult;
19
+ }
@@ -0,0 +1,176 @@
1
+ import { LitElement as c, html as p, css as h } from "lit";
2
+ import { property as s, customElement as u } from "lit/decorators.js";
3
+ import "@material/web/radio/radio.js";
4
+ var b = Object.defineProperty, g = Object.getOwnPropertyDescriptor, a = (e, t, n, o) => {
5
+ for (var i = o > 1 ? void 0 : o ? g(t, n) : t, d = e.length - 1, l; d >= 0; d--)
6
+ (l = e[d]) && (i = (o ? l(t, n, i) : l(i)) || i);
7
+ return o && i && b(t, n, i), i;
8
+ };
9
+ let r = class extends c {
10
+ constructor() {
11
+ super(...arguments), this.disabled = !1, this.checked = !1, this.name = "", this.value = "", this.label = "", this.supportingText = "", this._radioId = "", this._onMdRadioChange = (e) => {
12
+ if (this.disabled) return;
13
+ const t = e.target;
14
+ t && t.checked && (this.checked = !0, this.dispatchEvent(
15
+ new CustomEvent("scb-radio-change", {
16
+ detail: { name: this.name, source: this },
17
+ bubbles: !0,
18
+ composed: !0
19
+ })
20
+ ), this.dispatchEvent(
21
+ new CustomEvent("change", {
22
+ detail: { checked: this.checked, value: this.value },
23
+ bubbles: !0,
24
+ composed: !0
25
+ })
26
+ ));
27
+ }, this._onRadioChange = (e) => {
28
+ e.detail.name === this.name && e.detail.source !== this && (this.checked = !1);
29
+ };
30
+ }
31
+ connectedCallback() {
32
+ super.connectedCallback(), this._radioId = this.id || `scb-radio-${Math.random().toString(36).substr(2, 9)}`, document.addEventListener(
33
+ "scb-radio-change",
34
+ this._onRadioChange
35
+ );
36
+ }
37
+ disconnectedCallback() {
38
+ super.disconnectedCallback(), document.removeEventListener(
39
+ "scb-radio-change",
40
+ this._onRadioChange
41
+ );
42
+ }
43
+ firstUpdated() {
44
+ var t;
45
+ const e = (t = this.shadowRoot) == null ? void 0 : t.querySelector("md-radio");
46
+ e && e.addEventListener("input", () => {
47
+ this.dispatchEvent(new Event("input", { bubbles: !0, composed: !0 }));
48
+ });
49
+ }
50
+ updated(e) {
51
+ super.updated(e), e.has("disabled") && this.toggleAttribute("aria-disabled", this.disabled);
52
+ }
53
+ render() {
54
+ const e = this.supportingText ? `${this._radioId}-supporting-text` : void 0;
55
+ return p`
56
+ <label class="wrap">
57
+ <div class="radio-wrap">
58
+ <md-radio
59
+ id="${this._radioId}"
60
+ ?disabled=${this.disabled}
61
+ ?checked=${this.checked}
62
+ name="${this.name}"
63
+ value="${this.value}"
64
+ aria-describedby=${e}
65
+ @change=${this._onMdRadioChange}
66
+ ></md-radio>
67
+ </div>
68
+ ${this.label ? p`<span class="lbl">${this.label}</span>` : ""}
69
+ </label>
70
+ ${this.supportingText ? p`<div
71
+ id="${this._radioId}-supporting-text"
72
+ class="supporting-text"
73
+ >
74
+ ${this.supportingText}
75
+ </div>` : ""}
76
+ <slot></slot>
77
+ `;
78
+ }
79
+ };
80
+ r.styles = h`
81
+ /* layout med inline-grid */
82
+ :host {
83
+ display: inline-grid;
84
+ grid-template-columns: auto;
85
+ grid-template-rows: auto auto;
86
+ row-gap: 4px;
87
+ font-family: var(--brand-font, 'Inter', sans-serif);
88
+ }
89
+
90
+ /* Wrapper för md-radio + label */
91
+ .wrap {
92
+ display: inline-flex;
93
+ align-items: center;
94
+ gap: 12px;
95
+ cursor: pointer;
96
+ /* låt ripple/state-layer synas */
97
+ overflow: visible;
98
+ }
99
+ :host([disabled]) .wrap {
100
+ cursor: default;
101
+ }
102
+
103
+ /* Hit-yta runt md-radio (styr via variabel) */
104
+ .radio-wrap {
105
+ height: var(--scb-radio-target, 48px);
106
+ width: var(--scb-radio-target, 48px);
107
+ align-items: center;
108
+ display: flex;
109
+ justify-content: center;
110
+ overflow: visible;
111
+ }
112
+
113
+ /* Nollställ md-radio marginal */
114
+ md-radio {
115
+ margin: 0;
116
+ }
117
+
118
+ /* Label-styling */
119
+ .lbl {
120
+ color: var(--md-sys-color-on-surface);
121
+ line-height: 1.2;
122
+ margin-top: 2px;
123
+ }
124
+ :host([disabled]) .lbl {
125
+ color: var(--n-60);
126
+ }
127
+
128
+ /* Supporting text styling */
129
+ .supporting-text {
130
+ color: var(--md-sys-color-on-surface-variant);
131
+ line-height: 1.2;
132
+ /* 12px gap + wrapperbredd (inte ikonstorlek) så texten linjerar med labeln */
133
+ margin-left: calc(12px + var(--scb-radio-target, 48px));
134
+ }
135
+ :host([disabled]) .supporting-text {
136
+ color: var(--n-60);
137
+ }
138
+
139
+ :host([orientation="horizontal"]) {
140
+ margin-inline-end: var(--scb-radio-gap, 24px); /* tweakable */
141
+ }
142
+
143
+ /* Anpassning för mörkt läge */
144
+ @media (prefers-color-scheme: dark) {
145
+ .lbl {
146
+ color: var(--md-sys-color-on-surface);
147
+ }
148
+ .supporting-text {
149
+ color: var(--md-sys-color-on-surface-variant);
150
+ }
151
+ }
152
+ `;
153
+ a([
154
+ s({ type: Boolean, reflect: !0 })
155
+ ], r.prototype, "disabled", 2);
156
+ a([
157
+ s({ type: Boolean, reflect: !0 })
158
+ ], r.prototype, "checked", 2);
159
+ a([
160
+ s({ type: String, reflect: !0 })
161
+ ], r.prototype, "name", 2);
162
+ a([
163
+ s({ type: String, reflect: !0 })
164
+ ], r.prototype, "value", 2);
165
+ a([
166
+ s({ type: String })
167
+ ], r.prototype, "label", 2);
168
+ a([
169
+ s({ type: String, attribute: "supporting-text" })
170
+ ], r.prototype, "supportingText", 2);
171
+ r = a([
172
+ u("scb-radio-button")
173
+ ], r);
174
+ export {
175
+ r as ScbRadioButton
176
+ };
@@ -0,0 +1,20 @@
1
+ import { LitElement } from 'lit';
2
+
3
+ export declare class ScbRadioGroup extends LitElement {
4
+ #private;
5
+ name: string;
6
+ orientation: 'vertical' | 'horizontal';
7
+ disabled: boolean;
8
+ ariaLabel: string | null;
9
+ /** "item" (default) = radios äger spacing; "group" = gruppen äger spacing */
10
+ spacing: 'item' | 'group';
11
+ static styles: import('lit').CSSResult;
12
+ render(): import('lit-html').TemplateResult<1>;
13
+ firstUpdated(): void;
14
+ updated(changed: Map<string, unknown>): void;
15
+ }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'scb-radio-group': ScbRadioGroup;
19
+ }
20
+ }
@@ -0,0 +1,81 @@
1
+ import { css as g, LitElement as u, html as f } from "lit";
2
+ import { property as l, customElement as b } from "lit/decorators.js";
3
+ var v = Object.defineProperty, y = Object.getOwnPropertyDescriptor, h = (t) => {
4
+ throw TypeError(t);
5
+ }, o = (t, e, a, r) => {
6
+ for (var s = r > 1 ? void 0 : r ? y(e, a) : e, p = t.length - 1, d; p >= 0; p--)
7
+ (d = t[p]) && (s = (r ? d(e, a, s) : d(s)) || s);
8
+ return r && s && v(e, a, s), s;
9
+ }, m = (t, e, a) => e.has(t) || h("Cannot " + a), c = (t, e, a) => (m(t, e, "read from private field"), a ? a.call(t) : e.get(t)), _ = (t, e, a) => e.has(t) ? h("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, a), n;
10
+ let i = class extends u {
11
+ constructor() {
12
+ super(...arguments), this.name = "", this.orientation = "vertical", this.disabled = !1, this.ariaLabel = null, this.spacing = "item", _(this, n, () => {
13
+ var a;
14
+ const t = (a = this.shadowRoot) == null ? void 0 : a.querySelector("slot");
15
+ if (!t) return;
16
+ const e = t.assignedElements({ flatten: !0 }).filter((r) => r.tagName.toLowerCase() === "scb-radio-button");
17
+ for (const r of e)
18
+ this.name && r.setAttribute("name", this.name), this.disabled ? r.setAttribute("disabled", "") : r.removeAttribute("disabled"), this.orientation === "horizontal" ? r.setAttribute("orientation", "horizontal") : r.removeAttribute("orientation"), this.spacing === "group" ? r.style.setProperty("--scb-radio-gap", "0") : r.style.removeProperty("--scb-radio-gap");
19
+ });
20
+ }
21
+ render() {
22
+ const t = this.orientation === "horizontal" ? "row" : "column";
23
+ return f`
24
+ <div
25
+ class="g"
26
+ role="radiogroup"
27
+ aria-disabled=${String(this.disabled)}
28
+ aria-label=${this.ariaLabel ?? ""}
29
+ style=${`--_dir:${t}`}
30
+ >
31
+ <slot @slotchange=${c(this, n)}></slot>
32
+ </div>
33
+ `;
34
+ }
35
+ firstUpdated() {
36
+ c(this, n).call(this);
37
+ }
38
+ updated(t) {
39
+ (t.has("name") || t.has("disabled") || t.has("orientation")) && c(this, n).call(this);
40
+ }
41
+ };
42
+ n = /* @__PURE__ */ new WeakMap();
43
+ i.styles = g`
44
+ :host { display: block; }
45
+
46
+ .g {
47
+ display: flex;
48
+ flex-direction: var(--_dir, column);
49
+ gap: 0; /* default: inget extra gap */
50
+ align-items: flex-start;
51
+ }
52
+
53
+ /* Om gruppen ska äga spacing: använder gap och nollar radios egen syskonmarginal */
54
+ :host([spacing="group"]) .g {
55
+ gap: var(--scb-radio-gap, 12px);
56
+ }
57
+ :host([spacing="group"]) ::slotted(scb-radio-button) {
58
+ --scb-radio-gap: 0;
59
+ }
60
+ `;
61
+ o([
62
+ l({ type: String })
63
+ ], i.prototype, "name", 2);
64
+ o([
65
+ l({ type: String, reflect: !0 })
66
+ ], i.prototype, "orientation", 2);
67
+ o([
68
+ l({ type: Boolean, reflect: !0 })
69
+ ], i.prototype, "disabled", 2);
70
+ o([
71
+ l({ type: String, attribute: "aria-label" })
72
+ ], i.prototype, "ariaLabel", 2);
73
+ o([
74
+ l({ type: String, reflect: !0 })
75
+ ], i.prototype, "spacing", 2);
76
+ i = o([
77
+ b("scb-radio-group")
78
+ ], i);
79
+ export {
80
+ i as ScbRadioGroup
81
+ };
@@ -0,0 +1,45 @@
1
+ import { LitElement, TemplateResult } from 'lit';
2
+
3
+ export declare class ScbSearch extends LitElement {
4
+ trailingIcon?: string;
5
+ supportingText: string;
6
+ value: string;
7
+ size: 'default' | 'compact';
8
+ fullScreen: boolean;
9
+ private _inputFocused;
10
+ private _visibleSuggestions;
11
+ private _activeIndex;
12
+ private _listboxId;
13
+ private _boundNativeKeydown?;
14
+ private _kbMode;
15
+ static styles: import('lit').CSSResult;
16
+ connectedCallback(): void;
17
+ disconnectedCallback(): void;
18
+ firstUpdated(): void;
19
+ updated(): void;
20
+ render(): TemplateResult;
21
+ submit(): void;
22
+ private get _hasSuggestions();
23
+ private _onSlotChange;
24
+ private _onInput;
25
+ private _onFocus;
26
+ private _onBlur;
27
+ private _handleKey;
28
+ private _clearInput;
29
+ private _filterSuggestions;
30
+ private _inputEl;
31
+ private _listEl;
32
+ private _getVisibleItems;
33
+ private _getActiveItem;
34
+ private _moveActive;
35
+ private _scrollActiveIntoView;
36
+ private _itemPayload;
37
+ private _ensureListboxA11y;
38
+ private _ensureOptionA11y;
39
+ private _updateComboboxA11y;
40
+ }
41
+ declare global {
42
+ interface HTMLElementTagNameMap {
43
+ 'scb-search': ScbSearch;
44
+ }
45
+ }