@sondor-technology/sondor-components 1.0.1-develop.12 → 1.0.1-develop.14

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 (226) hide show
  1. package/dist/components/alert/alert.constants.d.ts +3 -0
  2. package/dist/components/alert/alert.constants.d.ts.map +1 -0
  3. package/dist/components/alert/alert.constants.js +2 -0
  4. package/dist/components/alert/alert.constants.js.map +1 -0
  5. package/dist/components/alert/alert.d.ts +4 -3
  6. package/dist/components/alert/alert.d.ts.map +1 -1
  7. package/dist/components/alert/alert.js +21 -11
  8. package/dist/components/alert/alert.js.map +1 -0
  9. package/dist/components/badge/badge.constants.d.ts +3 -0
  10. package/dist/components/badge/badge.constants.d.ts.map +1 -0
  11. package/dist/components/badge/badge.constants.js +2 -0
  12. package/dist/components/badge/badge.constants.js.map +1 -0
  13. package/dist/components/badge/badge.d.ts +1 -1
  14. package/dist/components/badge/badge.d.ts.map +1 -1
  15. package/dist/components/badge/badge.js +3 -2
  16. package/dist/components/badge/badge.js.map +1 -0
  17. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  18. package/dist/components/breadcrumb/breadcrumb.js +2 -1
  19. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  20. package/dist/components/button/button.constants.d.ts +7 -0
  21. package/dist/components/button/button.constants.d.ts.map +1 -0
  22. package/dist/components/button/button.constants.js +4 -0
  23. package/dist/components/button/button.constants.js.map +1 -0
  24. package/dist/components/button/button.d.ts +8 -4
  25. package/dist/components/button/button.d.ts.map +1 -1
  26. package/dist/components/button/button.js +181 -137
  27. package/dist/components/button/button.js.map +1 -0
  28. package/dist/components/button-group/button-group.d.ts +1 -0
  29. package/dist/components/button-group/button-group.d.ts.map +1 -1
  30. package/dist/components/button-group/button-group.js +17 -21
  31. package/dist/components/button-group/button-group.js.map +1 -0
  32. package/dist/components/checkbox/checkbox.constants.d.ts +3 -0
  33. package/dist/components/checkbox/checkbox.constants.d.ts.map +1 -0
  34. package/dist/components/checkbox/checkbox.constants.js +2 -0
  35. package/dist/components/checkbox/checkbox.constants.js.map +1 -0
  36. package/dist/components/checkbox/checkbox.d.ts +5 -1
  37. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  38. package/dist/components/checkbox/checkbox.js +21 -5
  39. package/dist/components/checkbox/checkbox.js.map +1 -0
  40. package/dist/components/code-block/code-block.d.ts +7 -7
  41. package/dist/components/code-block/code-block.d.ts.map +1 -1
  42. package/dist/components/code-block/code-block.js +130 -66
  43. package/dist/components/code-block/code-block.js.map +1 -0
  44. package/dist/components/content-card/content-card.d.ts.map +1 -1
  45. package/dist/components/content-card/content-card.js +10 -15
  46. package/dist/components/content-card/content-card.js.map +1 -0
  47. package/dist/components/divider/divider.constants.d.ts +5 -0
  48. package/dist/components/divider/divider.constants.d.ts.map +1 -0
  49. package/dist/components/divider/divider.constants.js +3 -0
  50. package/dist/components/divider/divider.constants.js.map +1 -0
  51. package/dist/components/divider/divider.d.ts +4 -2
  52. package/dist/components/divider/divider.d.ts.map +1 -1
  53. package/dist/components/divider/divider.js +18 -9
  54. package/dist/components/divider/divider.js.map +1 -0
  55. package/dist/components/drawer/drawer.d.ts +7 -4
  56. package/dist/components/drawer/drawer.d.ts.map +1 -1
  57. package/dist/components/drawer/drawer.js +73 -30
  58. package/dist/components/drawer/drawer.js.map +1 -0
  59. package/dist/components/field/field.d.ts +2 -2
  60. package/dist/components/field/field.d.ts.map +1 -1
  61. package/dist/components/field/field.js +8 -9
  62. package/dist/components/field/field.js.map +1 -0
  63. package/dist/components/footer/footer.d.ts +8 -1
  64. package/dist/components/footer/footer.d.ts.map +1 -1
  65. package/dist/components/footer/footer.js +42 -12
  66. package/dist/components/footer/footer.js.map +1 -0
  67. package/dist/components/form/form-step.js +1 -0
  68. package/dist/components/form/form-step.js.map +1 -0
  69. package/dist/components/form/form.d.ts +3 -0
  70. package/dist/components/form/form.d.ts.map +1 -1
  71. package/dist/components/form/form.js +109 -69
  72. package/dist/components/form/form.js.map +1 -0
  73. package/dist/components/grid/grid-row.d.ts +3 -3
  74. package/dist/components/grid/grid-row.d.ts.map +1 -1
  75. package/dist/components/grid/grid-row.js +36 -22
  76. package/dist/components/grid/grid-row.js.map +1 -0
  77. package/dist/components/grid/grid.d.ts +2 -2
  78. package/dist/components/grid/grid.d.ts.map +1 -1
  79. package/dist/components/grid/grid.js +5 -2
  80. package/dist/components/grid/grid.js.map +1 -0
  81. package/dist/components/icon/icon-paths.d.ts +161 -86
  82. package/dist/components/icon/icon-paths.d.ts.map +1 -1
  83. package/dist/components/icon/icon-paths.js +176 -106
  84. package/dist/components/icon/icon-paths.js.map +1 -0
  85. package/dist/components/icon/icon.d.ts +1 -1
  86. package/dist/components/icon/icon.d.ts.map +1 -1
  87. package/dist/components/icon/icon.js +6 -5
  88. package/dist/components/icon/icon.js.map +1 -0
  89. package/dist/components/input/input.d.ts +9 -0
  90. package/dist/components/input/input.d.ts.map +1 -1
  91. package/dist/components/input/input.js +30 -37
  92. package/dist/components/input/input.js.map +1 -0
  93. package/dist/components/link/link.d.ts +6 -6
  94. package/dist/components/link/link.d.ts.map +1 -1
  95. package/dist/components/link/link.js +42 -19
  96. package/dist/components/link/link.js.map +1 -0
  97. package/dist/components/metadata/metadata.d.ts +3 -3
  98. package/dist/components/metadata/metadata.d.ts.map +1 -1
  99. package/dist/components/metadata/metadata.js +23 -20
  100. package/dist/components/metadata/metadata.js.map +1 -0
  101. package/dist/components/modal/modal.d.ts +4 -16
  102. package/dist/components/modal/modal.d.ts.map +1 -1
  103. package/dist/components/modal/modal.js +99 -62
  104. package/dist/components/modal/modal.js.map +1 -0
  105. package/dist/components/page-layout/page-layout.d.ts +4 -3
  106. package/dist/components/page-layout/page-layout.d.ts.map +1 -1
  107. package/dist/components/page-layout/page-layout.js +95 -68
  108. package/dist/components/page-layout/page-layout.js.map +1 -0
  109. package/dist/components/radio/radio.d.ts +8 -0
  110. package/dist/components/radio/radio.d.ts.map +1 -1
  111. package/dist/components/radio/radio.js +8 -12
  112. package/dist/components/radio/radio.js.map +1 -0
  113. package/dist/components/radio-group/radio-group.d.ts +6 -1
  114. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  115. package/dist/components/radio-group/radio-group.js +44 -18
  116. package/dist/components/radio-group/radio-group.js.map +1 -0
  117. package/dist/components/router/router.d.ts +5 -7
  118. package/dist/components/router/router.d.ts.map +1 -1
  119. package/dist/components/router/router.js +54 -38
  120. package/dist/components/router/router.js.map +1 -0
  121. package/dist/components/select/select.d.ts +6 -3
  122. package/dist/components/select/select.d.ts.map +1 -1
  123. package/dist/components/select/select.js +14 -5
  124. package/dist/components/select/select.js.map +1 -0
  125. package/dist/components/skeleton/skeleton.d.ts +3 -2
  126. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  127. package/dist/components/skeleton/skeleton.js +10 -13
  128. package/dist/components/skeleton/skeleton.js.map +1 -0
  129. package/dist/components/switch/switch.d.ts +12 -0
  130. package/dist/components/switch/switch.d.ts.map +1 -1
  131. package/dist/components/switch/switch.js +28 -22
  132. package/dist/components/switch/switch.js.map +1 -0
  133. package/dist/components/table/data-table.d.ts +3 -25
  134. package/dist/components/table/data-table.d.ts.map +1 -1
  135. package/dist/components/table/data-table.js +211 -146
  136. package/dist/components/table/data-table.js.map +1 -0
  137. package/dist/components/table/table.d.ts +3 -3
  138. package/dist/components/table/table.d.ts.map +1 -1
  139. package/dist/components/table/table.js +39 -20
  140. package/dist/components/table/table.js.map +1 -0
  141. package/dist/components/tabs/tab-panel.d.ts +3 -1
  142. package/dist/components/tabs/tab-panel.d.ts.map +1 -1
  143. package/dist/components/tabs/tab-panel.js +21 -11
  144. package/dist/components/tabs/tab-panel.js.map +1 -0
  145. package/dist/components/tabs/tab.d.ts +5 -1
  146. package/dist/components/tabs/tab.d.ts.map +1 -1
  147. package/dist/components/tabs/tab.js +46 -28
  148. package/dist/components/tabs/tab.js.map +1 -0
  149. package/dist/components/tabs/tabs.d.ts +4 -0
  150. package/dist/components/tabs/tabs.d.ts.map +1 -1
  151. package/dist/components/tabs/tabs.js +76 -13
  152. package/dist/components/tabs/tabs.js.map +1 -0
  153. package/dist/components/textarea/textarea.d.ts +13 -0
  154. package/dist/components/textarea/textarea.d.ts.map +1 -1
  155. package/dist/components/textarea/textarea.js +59 -13
  156. package/dist/components/textarea/textarea.js.map +1 -0
  157. package/dist/components/theme-toggle/theme-toggle.constants.d.ts +3 -0
  158. package/dist/components/theme-toggle/theme-toggle.constants.d.ts.map +1 -0
  159. package/dist/components/theme-toggle/theme-toggle.constants.js +2 -0
  160. package/dist/components/theme-toggle/theme-toggle.constants.js.map +1 -0
  161. package/dist/components/theme-toggle/theme-toggle.d.ts +3 -2
  162. package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -1
  163. package/dist/components/theme-toggle/theme-toggle.js +46 -19
  164. package/dist/components/theme-toggle/theme-toggle.js.map +1 -0
  165. package/dist/components/vertical-nav/vertical-nav-group.d.ts +5 -2
  166. package/dist/components/vertical-nav/vertical-nav-group.d.ts.map +1 -1
  167. package/dist/components/vertical-nav/vertical-nav-group.js +50 -14
  168. package/dist/components/vertical-nav/vertical-nav-group.js.map +1 -0
  169. package/dist/components/vertical-nav/vertical-nav-item.d.ts +3 -2
  170. package/dist/components/vertical-nav/vertical-nav-item.d.ts.map +1 -1
  171. package/dist/components/vertical-nav/vertical-nav-item.js +30 -8
  172. package/dist/components/vertical-nav/vertical-nav-item.js.map +1 -0
  173. package/dist/styles/index.css +48 -17
  174. package/dist/styles/reset.js +1 -0
  175. package/dist/styles/reset.js.map +1 -0
  176. package/package.json +2 -1
  177. package/src/components/alert/alert.constants.ts +2 -0
  178. package/src/components/alert/alert.ts +24 -15
  179. package/src/components/badge/badge.constants.ts +2 -0
  180. package/src/components/badge/badge.ts +3 -4
  181. package/src/components/breadcrumb/breadcrumb.ts +2 -2
  182. package/src/components/button/button.constants.ts +8 -0
  183. package/src/components/button/button.ts +184 -144
  184. package/src/components/button-group/button-group.ts +18 -22
  185. package/src/components/checkbox/checkbox.constants.ts +2 -0
  186. package/src/components/checkbox/checkbox.ts +33 -18
  187. package/src/components/code-block/code-block.ts +151 -84
  188. package/src/components/content-card/content-card.ts +10 -16
  189. package/src/components/divider/divider.constants.ts +5 -0
  190. package/src/components/divider/divider.ts +22 -11
  191. package/src/components/drawer/drawer.ts +79 -34
  192. package/src/components/field/field.ts +9 -11
  193. package/src/components/footer/footer.ts +43 -12
  194. package/src/components/form/form.ts +121 -84
  195. package/src/components/grid/grid-row.ts +45 -32
  196. package/src/components/grid/grid.ts +7 -4
  197. package/src/components/icon/icon-paths.ts +175 -106
  198. package/src/components/icon/icon.ts +6 -6
  199. package/src/components/input/input.ts +32 -42
  200. package/src/components/link/link.ts +45 -21
  201. package/src/components/metadata/metadata.ts +26 -24
  202. package/src/components/modal/modal.ts +108 -74
  203. package/src/components/page-layout/page-layout.ts +97 -72
  204. package/src/components/radio/radio.ts +8 -13
  205. package/src/components/radio-group/radio-group.ts +45 -21
  206. package/src/components/router/router.ts +73 -50
  207. package/src/components/select/select.ts +23 -18
  208. package/src/components/skeleton/skeleton.ts +14 -14
  209. package/src/components/switch/switch.ts +31 -25
  210. package/src/components/table/data-table.ts +248 -177
  211. package/src/components/table/table.ts +52 -29
  212. package/src/components/tabs/tab-panel.ts +25 -13
  213. package/src/components/tabs/tab.ts +58 -33
  214. package/src/components/tabs/tabs.ts +77 -15
  215. package/src/components/textarea/textarea.ts +63 -15
  216. package/src/components/theme-toggle/theme-toggle.constants.ts +2 -0
  217. package/src/components/theme-toggle/theme-toggle.ts +47 -22
  218. package/src/components/vertical-nav/vertical-nav-group.ts +57 -18
  219. package/src/components/vertical-nav/vertical-nav-item.ts +35 -12
  220. package/src/styles/globals.css +27 -4
  221. package/src/styles/theme.css +38 -32
  222. package/tsconfig.json +2 -1
  223. package/dist/components/card/card.d.ts +0 -11
  224. package/dist/components/card/card.d.ts.map +0 -1
  225. package/dist/components/card/card.js +0 -54
  226. package/src/components/card/card.ts +0 -53
@@ -14,36 +14,40 @@ let StRadioGroup = class StRadioGroup extends LitElement {
14
14
  this.value = "";
15
15
  this.label = "";
16
16
  this.helpText = "";
17
+ this.layout = "vertical";
18
+ this.required = false;
17
19
  this.disabled = false;
18
20
  this.invalid = false;
21
+ this._handleRadioSelect = (e) => {
22
+ if (this.disabled)
23
+ return;
24
+ const customEvent = e;
25
+ this.value = customEvent.detail.value;
26
+ // 🚀 THE FIX: Clear the invalid visual state as soon as the user makes a selection
27
+ if (this.invalid) {
28
+ this.invalid = false;
29
+ }
30
+ this.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
31
+ };
19
32
  this._internals = this.attachInternals();
20
- // 1. Trigger error state if the user clicks away and the field is invalid
33
+ this._internals.role = "radiogroup";
21
34
  this.addEventListener("change", () => {
22
35
  this.invalid = !this._internals.validity.valid;
23
36
  });
24
- // 2. Trigger error state if the st-form tries to submit and fails
25
37
  this.addEventListener("invalid", () => {
26
38
  this.invalid = true;
27
39
  });
28
40
  }
29
41
  connectedCallback() {
30
42
  super.connectedCallback();
31
- // Listen for selections from child radios
32
43
  this.addEventListener("st-radio-select", this._handleRadioSelect);
33
44
  }
34
45
  disconnectedCallback() {
35
46
  super.disconnectedCallback();
36
47
  this.removeEventListener("st-radio-select", this._handleRadioSelect);
37
48
  }
38
- _handleRadioSelect(e) {
39
- if (this.disabled)
40
- return;
41
- this.value = e.detail.value;
42
- this.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
43
- }
44
49
  updated(changedProperties) {
45
50
  super.updated(changedProperties);
46
- // When the group's value changes, sync the form and update all child radios
47
51
  if (changedProperties.has("value")) {
48
52
  this._internals.setFormValue(this.value);
49
53
  this._syncRadios();
@@ -51,8 +55,18 @@ let StRadioGroup = class StRadioGroup extends LitElement {
51
55
  if (changedProperties.has("disabled")) {
52
56
  this._syncRadios();
53
57
  }
58
+ if (changedProperties.has("value") || changedProperties.has("required")) {
59
+ this._syncValidity();
60
+ }
61
+ }
62
+ _syncValidity() {
63
+ if (this.required && !this.value) {
64
+ this._internals.setValidity({ valueMissing: true }, "Please select an option.");
65
+ }
66
+ else {
67
+ this._internals.setValidity({});
68
+ }
54
69
  }
55
- // Loops through children and unchecks/checks them based on the group's current value
56
70
  _syncRadios() {
57
71
  if (!this._radios)
58
72
  return;
@@ -63,11 +77,19 @@ let StRadioGroup = class StRadioGroup extends LitElement {
63
77
  }
64
78
  });
65
79
  }
66
- // Fired natively by the browser if the parent <form> is reset
67
80
  formResetCallback() {
68
- this.value = "";
69
- this._internals.setFormValue("");
81
+ const initialValue = this.getAttribute("value") || "";
82
+ this.value = initialValue;
83
+ this._internals.setFormValue(initialValue);
70
84
  this._syncRadios();
85
+ this.updateComplete.then(() => this._syncValidity());
86
+ }
87
+ // Expose standard native methods
88
+ checkValidity() {
89
+ return this._internals.checkValidity();
90
+ }
91
+ reportValidity() {
92
+ return this._internals.reportValidity();
71
93
  }
72
94
  render() {
73
95
  return html `
@@ -114,7 +136,6 @@ StRadioGroup.styles = [
114
136
  gap: var(--st-spacing-sm);
115
137
  }
116
138
 
117
- /* Horizontal layout modifier */
118
139
  :host([layout="horizontal"]) .options {
119
140
  flex-direction: row;
120
141
  gap: var(--st-spacing-md);
@@ -126,9 +147,7 @@ StRadioGroup.styles = [
126
147
  margin: 0;
127
148
  }
128
149
 
129
- :host([invalid]) .help-text {
130
- color: var(--st-color-error);
131
- }
150
+ :host([invalid]) .help-text,
132
151
  :host([invalid]) legend {
133
152
  color: var(--st-color-error);
134
153
  }
@@ -146,6 +165,12 @@ __decorate([
146
165
  __decorate([
147
166
  property({ attribute: "help-text" })
148
167
  ], StRadioGroup.prototype, "helpText", void 0);
168
+ __decorate([
169
+ property({ type: String, reflect: true })
170
+ ], StRadioGroup.prototype, "layout", void 0);
171
+ __decorate([
172
+ property({ type: Boolean, reflect: true })
173
+ ], StRadioGroup.prototype, "required", void 0);
149
174
  __decorate([
150
175
  property({ type: Boolean, reflect: true })
151
176
  ], StRadioGroup.prototype, "disabled", void 0);
@@ -159,3 +184,4 @@ StRadioGroup = __decorate([
159
184
  customElement("st-radio-group")
160
185
  ], StRadioGroup);
161
186
  export { StRadioGroup };
187
+ //# sourceMappingURL=radio-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.ts"],"names":[],"mappings":"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"}
@@ -12,18 +12,16 @@ export interface RouteMatch {
12
12
  export declare class AppRouter {
13
13
  private _routes;
14
14
  private _initialized;
15
+ private _boundNotify;
16
+ private _boundClick;
15
17
  constructor(routes?: RouteConfig);
16
18
  /**
17
- * Register or update the route configuration for this application.
19
+ * 🚀 FIX: Removes global listeners to prevent memory leaks during testing/teardown.
18
20
  */
21
+ destroy(): void;
22
+ private _handleClick;
19
23
  setRoutes(routes: RouteConfig): void;
20
- /**
21
- * Programmatically navigate to an internal path.
22
- */
23
24
  navigate(path: string): void;
24
- /**
25
- * Matches a URL path against the registered routes.
26
- */
27
25
  matchRoute(currentPath: string): RouteMatch | null;
28
26
  private _notify;
29
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/components/router/router.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,eAAe,CAAC;CAC7B;AASD,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,YAAY,CAAS;IAE7B,YAAY,MAAM,CAAC,EAAE,WAAW,EA+B/B;IAED;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,WAAW,QAUnC;IAED;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,QAG3B;IAED;;OAEG;IACI,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA+BxD;IAED,OAAO,CAAC,OAAO;CAahB;AAGD,eAAO,MAAM,MAAM,WAAkB,CAAC"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/components/router/router.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,eAAe,CAAC;CAC7B;AASD,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,WAAW,CAA0B;IAE7C,YAAY,MAAM,CAAC,EAAE,WAAW,EAa/B;IAED;;OAEG;IACI,OAAO,SAKb;IAED,OAAO,CAAC,YAAY;IAgCb,SAAS,CAAC,MAAM,EAAE,WAAW,QAWnC;IAEM,QAAQ,CAAC,IAAI,EAAE,MAAM,QAK3B;IAEM,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA+BxD;IAED,OAAO,CAAC,OAAO;CAiBhB;AAED,eAAO,MAAM,MAAM,WAAkB,CAAC"}
@@ -1,67 +1,81 @@
1
1
  function getRouteWeight(pattern) {
2
- const segments = pattern.split('/').filter(Boolean);
2
+ const segments = pattern.split("/").filter(Boolean);
3
3
  return segments.reduce((weight, seg) => {
4
- return weight + (seg.startsWith(':') ? 1 : 10);
4
+ return weight + (seg.startsWith(":") ? 1 : 10);
5
5
  }, 0);
6
6
  }
7
7
  export class AppRouter {
8
8
  constructor(routes) {
9
9
  this._routes = {};
10
10
  this._initialized = false;
11
+ this._boundNotify = () => this._notify();
12
+ this._boundClick = (e) => this._handleClick(e);
11
13
  if (routes) {
12
14
  this.setRoutes(routes);
13
15
  }
14
- window.addEventListener('popstate', () => this._notify());
15
- document.addEventListener('click', (e) => {
16
- if (e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) {
17
- return;
18
- }
19
- const path = e.composedPath();
20
- const link = path.find((el) => el && typeof el.hasAttribute === 'function' && el.hasAttribute('href'));
21
- if (!link)
22
- return;
23
- const href = link.getAttribute('href');
24
- const target = link.getAttribute('target');
25
- if (!href || href.startsWith('http') || href.startsWith('mailto:') || target === '_blank') {
26
- return;
27
- }
28
- if (href.startsWith('/')) {
29
- e.preventDefault();
30
- this.navigate(href);
31
- }
32
- });
16
+ // 🚀 FIX: SSR Safety check. Prevents crashes during Node.js CI test imports.
17
+ if (typeof window !== "undefined") {
18
+ window.addEventListener("popstate", this._boundNotify);
19
+ document.addEventListener("click", this._boundClick);
20
+ }
33
21
  }
34
22
  /**
35
- * Register or update the route configuration for this application.
23
+ * 🚀 FIX: Removes global listeners to prevent memory leaks during testing/teardown.
36
24
  */
25
+ destroy() {
26
+ if (typeof window !== "undefined") {
27
+ window.removeEventListener("popstate", this._boundNotify);
28
+ document.removeEventListener("click", this._boundClick);
29
+ }
30
+ }
31
+ _handleClick(e) {
32
+ if (e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) {
33
+ return;
34
+ }
35
+ const path = e.composedPath();
36
+ const link = path.find((el) => el && typeof el.hasAttribute === "function" && el.hasAttribute("href"));
37
+ if (!link)
38
+ return;
39
+ const href = link.getAttribute("href");
40
+ const target = link.getAttribute("target");
41
+ // 🚀 FIX: Ignore links with the 'download' attribute so file downloads aren't hijacked
42
+ if (!href ||
43
+ href.startsWith("http") ||
44
+ href.startsWith("mailto:") ||
45
+ target === "_blank" ||
46
+ link.hasAttribute("download")) {
47
+ return;
48
+ }
49
+ if (href.startsWith("/")) {
50
+ e.preventDefault();
51
+ this.navigate(href);
52
+ }
53
+ }
37
54
  setRoutes(routes) {
38
55
  this._routes = routes;
39
- // Trigger initial route resolution once routes are registered
40
56
  if (!this._initialized) {
41
57
  this._initialized = true;
42
- setTimeout(() => this._notify(), 0);
58
+ if (typeof window !== "undefined") {
59
+ setTimeout(() => this._notify(), 0);
60
+ }
43
61
  }
44
62
  else {
45
63
  this._notify();
46
64
  }
47
65
  }
48
- /**
49
- * Programmatically navigate to an internal path.
50
- */
51
66
  navigate(path) {
52
- window.history.pushState(null, '', path);
67
+ if (typeof window !== "undefined") {
68
+ window.history.pushState(null, "", path);
69
+ }
53
70
  this._notify();
54
71
  }
55
- /**
56
- * Matches a URL path against the registered routes.
57
- */
58
72
  matchRoute(currentPath) {
59
73
  const sortedRoutes = Object.entries(this._routes).sort(([patternA], [patternB]) => getRouteWeight(patternB) - getRouteWeight(patternA));
60
74
  for (const [pattern, routeDef] of sortedRoutes) {
61
75
  const paramNames = [];
62
76
  const regexPath = pattern.replace(/:([a-zA-Z0-9_]+)/g, (_, paramName) => {
63
77
  paramNames.push(paramName);
64
- return '([^/]+)';
78
+ return "([^/]+)";
65
79
  });
66
80
  const regex = new RegExp(`^${regexPath}$`);
67
81
  const match = currentPath.match(regex);
@@ -74,24 +88,26 @@ export class AppRouter {
74
88
  path: currentPath,
75
89
  component: routeDef.component,
76
90
  params,
77
- definition: routeDef
91
+ definition: routeDef,
78
92
  };
79
93
  }
80
94
  }
81
95
  return null;
82
96
  }
83
97
  _notify() {
98
+ if (typeof window === "undefined")
99
+ return;
84
100
  const currentPath = window.location.pathname;
85
101
  const match = this.matchRoute(currentPath);
86
- window.dispatchEvent(new CustomEvent('route-changed', {
102
+ window.dispatchEvent(new CustomEvent("route-changed", {
87
103
  detail: {
88
104
  path: currentPath,
89
- component: match ? match.component : 'not-found-page',
105
+ component: match ? match.component : "not-found-page",
90
106
  params: match ? match.params : {},
91
- definition: match ? match.definition : null
92
- }
107
+ definition: match ? match.definition : null,
108
+ },
93
109
  }));
94
110
  }
95
111
  }
96
- // Export a singleton instance for standard app-wide use
97
112
  export const router = new AppRouter();
113
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/components/router/router.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,6 @@ export interface SelectOption {
3
3
  label: string;
4
4
  value: string;
5
5
  }
6
- /**
7
- * Standard WHATWG Autocomplete tokens.
8
- */
9
6
  export type SelectAutocomplete = "on" | "off" | "name" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "email" | "username" | "new-password" | "current-password" | "one-time-code" | "organization" | "organization-title" | "url" | "photo" | "webauthn" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level1" | "address-level2" | "address-level3" | "address-level4" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "language" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-local-prefix" | "tel-local-suffix" | "tel-extension" | "impp" | (string & {});
10
7
  export declare class StSelect extends LitElement {
11
8
  static formAssociated: boolean;
@@ -37,6 +34,7 @@ export declare class StSelect extends LitElement {
37
34
  willUpdate(changedProperties: PropertyValues): void;
38
35
  private get selectedValues();
39
36
  private validate;
37
+ formResetCallback(): void;
40
38
  private handleClickOutside;
41
39
  private toggleOpen;
42
40
  private handleOptionClick;
@@ -44,4 +42,9 @@ export declare class StSelect extends LitElement {
44
42
  private handleButtonKeydown;
45
43
  render(): import("lit-html").TemplateResult<1>;
46
44
  }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ "st-select": StSelect;
48
+ }
49
+ }
47
50
  //# sourceMappingURL=select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/select/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAa,cAAc,EAAC,MAAM,KAAK,CAAC;AAI1D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,IAAI,GACJ,KAAK,GAEL,MAAM,GACN,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,UAAU,GAEV,OAAO,GACP,UAAU,GACV,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,oBAAoB,GACpB,KAAK,GACL,OAAO,GACP,UAAU,GAEV,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,cAAc,GACd,aAAa,GAEb,SAAS,GACT,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,cAAc,GACd,aAAa,GACb,QAAQ,GACR,SAAS,GACT,sBAAsB,GACtB,oBAAoB,GAEpB,UAAU,GACV,MAAM,GACN,UAAU,GACV,YAAY,GACZ,WAAW,GACX,KAAK,GAEL,KAAK,GACL,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,kBAAkB,GAClB,eAAe,GACf,MAAM,GAEN,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,SAAS,CAAmB;IAEV,IAAI,SAAM;IACV,KAAK,SAAM;IACX,KAAK,SAAM;IACV,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACjB,UAAU,UAAS;IACrB,OAAO,EAAE,YAAY,EAAE,CAAM;IAC5B,KAAK,SAAM;IAEK,QAAQ,UAAS;IACjB,OAAO,UAAS;IAChC,YAAY,EAAE,kBAAkB,CAAS;IAE1D,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,OAAO,CAAS;IAEb,OAAO,CAAC,aAAa,CAAe;IAChC,OAAO,CAAC,aAAa,CAAC,CAAmB;IAEjE,MAAM,CAAC,MAAM,0BAyJX;IAEF,cAIC;IAGM,aAAa,IAAI,OAAO,CAE9B;IAEM,cAAc,IAAI,OAAO,CAK/B;IAGe,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,QAE3C;IAED,iBAAiB,SAQhB;IAED,oBAAoB,SAGnB;IAEQ,UAAU,CAAC,iBAAiB,EAAE,cAAc,QAQpD;IAED,OAAO,KAAK,cAAc,GAMzB;IAED,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAS3B,MAAM,yCA0HL;CACF"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/select/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAa,cAAc,EAAC,MAAM,KAAK,CAAC;AAI1D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAC1B,IAAI,GACJ,KAAK,GACL,MAAM,GACN,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,UAAU,GACV,OAAO,GACP,UAAU,GACV,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,oBAAoB,GACpB,KAAK,GACL,OAAO,GACP,UAAU,GACV,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,cAAc,GACd,aAAa,GACb,SAAS,GACT,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,cAAc,GACd,aAAa,GACb,QAAQ,GACR,SAAS,GACT,sBAAsB,GACtB,oBAAoB,GACpB,UAAU,GACV,MAAM,GACN,UAAU,GACV,YAAY,GACZ,WAAW,GACX,KAAK,GACL,KAAK,GACL,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,kBAAkB,GAClB,eAAe,GACf,MAAM,GACN,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,SAAS,CAAmB;IAEV,IAAI,SAAM;IACV,KAAK,SAAM;IACX,KAAK,SAAM;IACV,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACjB,UAAU,UAAS;IACrB,OAAO,EAAE,YAAY,EAAE,CAAM;IAC5B,KAAK,SAAM;IAEK,QAAQ,UAAS;IACjB,OAAO,UAAS;IAChC,YAAY,EAAE,kBAAkB,CAAS;IAE1D,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,OAAO,CAAS;IAEb,OAAO,CAAC,aAAa,CAAe;IAChC,OAAO,CAAC,aAAa,CAAC,CAAmB;IAEjE,MAAM,CAAC,MAAM,0BAyJX;IAEF,cAIC;IAEM,aAAa,IAAI,OAAO,CAE9B;IAEM,cAAc,IAAI,OAAO,CAK/B;IAEe,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,QAE3C;IAED,iBAAiB,SAQhB;IAED,oBAAoB,SAGnB;IAEQ,UAAU,CAAC,iBAAiB,EAAE,cAAc,QASpD;IAED,OAAO,KAAK,cAAc,GAMzB;IAED,OAAO,CAAC,QAAQ;IAmBhB,iBAAiB,SAKhB;IAED,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAS3B,MAAM,yCA6HL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -28,17 +28,15 @@ let StSelect = class StSelect extends LitElement {
28
28
  this.internals = this.attachInternals();
29
29
  this.handleClickOutside = this.handleClickOutside.bind(this);
30
30
  }
31
- // 2. Public API methods expected by st-form
32
31
  checkValidity() {
33
32
  return this.internals.checkValidity();
34
33
  }
35
34
  reportValidity() {
36
35
  const isValid = this.checkValidity();
37
- this.touched = true; // Force UI to reveal the error
36
+ this.touched = true;
38
37
  this.invalid = !isValid;
39
38
  return isValid;
40
39
  }
41
- // 3. Override native focus to target the internal combobox button
42
40
  focus(options) {
43
41
  this.buttonElement?.focus(options);
44
42
  }
@@ -55,6 +53,7 @@ let StSelect = class StSelect extends LitElement {
55
53
  super.disconnectedCallback();
56
54
  }
57
55
  willUpdate(changedProperties) {
56
+ super.willUpdate(changedProperties);
58
57
  if (changedProperties.has("value") ||
59
58
  changedProperties.has("required") ||
60
59
  changedProperties.has("error")) {
@@ -87,6 +86,12 @@ let StSelect = class StSelect extends LitElement {
87
86
  this.invalid = false;
88
87
  }
89
88
  }
89
+ formResetCallback() {
90
+ const initialValue = this.getAttribute("value") || "";
91
+ this.value = initialValue;
92
+ this.touched = false;
93
+ this.validate();
94
+ }
90
95
  handleClickOutside(e) {
91
96
  const path = e.composedPath();
92
97
  if (!path.includes(this)) {
@@ -155,7 +160,6 @@ let StSelect = class StSelect extends LitElement {
155
160
  render() {
156
161
  const currentValues = this.selectedValues;
157
162
  const selectedOptions = this.options.filter((opt) => currentValues.includes(opt.value));
158
- // 4. Update isInvalid to also respect the new property fallback
159
163
  const isInvalid = this.invalid || (this.touched && !this.internals.validity.valid) || !!this.error;
160
164
  const displayError = isInvalid ? this.error || this.nativeError : "";
161
165
  const filteredOptions = this.searchable
@@ -209,6 +213,8 @@ let StSelect = class StSelect extends LitElement {
209
213
  class="search-input"
210
214
  placeholder="Search options..."
211
215
  autocomplete="off"
216
+ spellcheck="false"
217
+ autocapitalize="none"
212
218
  .value=${this.filterText}
213
219
  @input=${this.handleSearchInput}
214
220
  />
@@ -239,6 +245,8 @@ let StSelect = class StSelect extends LitElement {
239
245
  })
240
246
  : html `<li
241
247
  class="option"
248
+ role="option"
249
+ aria-disabled="true"
242
250
  style="color:var(--st-color-text-muted); cursor:default;"
243
251
  >
244
252
  No options found
@@ -350,7 +358,7 @@ StSelect.styles = css `
350
358
  top: calc(100% + 4px);
351
359
  left: 0;
352
360
  right: 0;
353
- z-index: 1;
361
+ z-index: 10;
354
362
  background: var(--st-color-surface);
355
363
  border: 1px solid var(--st-color-border);
356
364
  border-radius: var(--st-radius-md);
@@ -478,3 +486,4 @@ StSelect = __decorate([
478
486
  customElement("st-select")
479
487
  ], StSelect);
480
488
  export { StSelect };
489
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, PropertyValues } from 'lit';
2
2
  export declare class StSkeleton extends LitElement {
3
3
  variant: 'text' | 'circular' | 'rectangular';
4
4
  animation: 'shimmer' | 'pulse' | 'none';
5
5
  width: string;
6
6
  height: string;
7
- updated(changedProperties: Map<string | number | symbol, unknown>): void;
7
+ constructor();
8
+ updated(changedProperties: PropertyValues<this>): void;
8
9
  static styles: import("lit").CSSResult[];
9
10
  render(): import("lit-html").TemplateResult<1>;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,UAAW,SAAQ,UAAU;IACG,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAU;IACtD,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAa;IACnE,KAAK,SAAM;IACX,MAAM,SAAM;IAGxC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,QAkBhE;IAED,MAAM,CAAC,MAAM,4BAyFX;IAEF,MAAM,yCAIL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAI5D,qBACa,UAAW,SAAQ,UAAU;IACG,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAU;IACtD,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAa;IACnE,KAAK,SAAM;IACX,MAAM,SAAM;IAExC,cAKC;IAEQ,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,QAkBvD;IAED,MAAM,CAAC,MAAM,4BAmFX;IAEF,MAAM,yCAIL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
@@ -9,13 +9,15 @@ import { customElement, property } from 'lit/decorators.js';
9
9
  import { resetStyles } from '../../styles/reset.js';
10
10
  let StSkeleton = class StSkeleton extends LitElement {
11
11
  constructor() {
12
- super(...arguments);
12
+ super();
13
13
  this.variant = 'text';
14
14
  this.animation = 'shimmer';
15
15
  this.width = '';
16
16
  this.height = '';
17
+ this.setAttribute('role', 'status');
18
+ this.setAttribute('aria-label', 'Loading');
19
+ this.setAttribute('aria-busy', 'true');
17
20
  }
18
- // Apply properties directly to the :host as CSS variables when they change
19
21
  updated(changedProperties) {
20
22
  super.updated(changedProperties);
21
23
  if (changedProperties.has('width')) {
@@ -47,22 +49,20 @@ StSkeleton.styles = [
47
49
  :host {
48
50
  display: block;
49
51
 
50
- /* Define base sizing variables that can be overridden by props */
51
52
  --_width: var(--st-skeleton-width, 100%);
52
53
  --_height: var(--st-skeleton-height, 1em);
53
54
 
54
- /*
55
- CRITICAL FIX: Apply sizing directly to the host.
56
- This allows external classes and styles (like margin: auto) to work perfectly.
57
- */
58
55
  width: var(--_width);
59
56
  height: var(--_height);
60
57
 
61
- /* Expose radius as a token for external theme overrides */
62
58
  --st-skeleton-radius: var(--st-radius-sm, 0.25rem);
63
59
  }
64
60
 
65
- /* Shape Variants adjust the host's sizing variables */
61
+ :host([variant="text"]) {
62
+ display: inline-block;
63
+ vertical-align: middle;
64
+ }
65
+
66
66
  :host([variant="circular"]) {
67
67
  --_width: var(--st-skeleton-width, 2.5rem);
68
68
  --_height: var(--st-skeleton-height, 2.5rem);
@@ -73,7 +73,6 @@ StSkeleton.styles = [
73
73
  }
74
74
 
75
75
  .skeleton {
76
- /* The inner element simply fills the host */
77
76
  display: block;
78
77
  width: 100%;
79
78
  height: 100%;
@@ -87,7 +86,6 @@ StSkeleton.styles = [
87
86
  background-size: 400% 100%;
88
87
  border-radius: var(--st-skeleton-radius);
89
88
 
90
- /* Prevent accidental selection */
91
89
  user-select: none;
92
90
  pointer-events: none;
93
91
  }
@@ -96,7 +94,6 @@ StSkeleton.styles = [
96
94
  border-radius: 50%;
97
95
  }
98
96
 
99
- /* Animations */
100
97
  :host([animation="shimmer"]) .skeleton {
101
98
  animation: st-shimmer 1.4s ease infinite;
102
99
  }
@@ -111,7 +108,6 @@ StSkeleton.styles = [
111
108
  animation: none;
112
109
  }
113
110
 
114
- /* Accessibility: Respect OS reduced motion settings */
115
111
  @media (prefers-reduced-motion: reduce) {
116
112
  .skeleton {
117
113
  animation: none !important;
@@ -147,3 +143,4 @@ StSkeleton = __decorate([
147
143
  customElement('st-skeleton')
148
144
  ], StSkeleton);
149
145
  export { StSkeleton };
146
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../../src/components/skeleton/skeleton.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAkB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG7C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAMxC;QACE,KAAK,EAAE,CAAC;QANiC,YAAO,GAAwC,MAAM,CAAC;QACtD,cAAS,GAAiC,SAAS,CAAC;QACnE,UAAK,GAAG,EAAE,CAAC;QACX,WAAM,GAAG,EAAE,CAAC;QAItC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAEQ,OAAO,CAAC,iBAAuC;QACtD,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEjC,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAuFD,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;CACF,CAAA;AA1FQ,iBAAM,GAAG;IACd,WAAW;IACX,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgFF;CACF,AAnFY,CAmFX;AAnHyC;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAAuD;AACtD;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAqD;AACnE;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAAY;AACX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAa;AAJ7B,UAAU;IADtB,aAAa,CAAC,aAAa,CAAC;GAChB,UAAU,CA2HtB"}
@@ -2,6 +2,14 @@ import { LitElement, PropertyValues } from "lit";
2
2
  export declare class StSwitch extends LitElement {
3
3
  static formAssociated: boolean;
4
4
  private _internals;
5
+ static shadowRootOptions: {
6
+ clonable?: boolean;
7
+ customElementRegistry?: CustomElementRegistry | null;
8
+ mode: ShadowRootMode;
9
+ serializable?: boolean;
10
+ slotAssignment?: SlotAssignmentMode;
11
+ delegatesFocus: boolean;
12
+ };
5
13
  private _inputEl;
6
14
  name: string;
7
15
  value: string;
@@ -9,10 +17,14 @@ export declare class StSwitch extends LitElement {
9
17
  disabled: boolean;
10
18
  required: boolean;
11
19
  ariaLabel: string;
20
+ private _defaultChecked;
12
21
  constructor();
13
22
  static styles: import("lit").CSSResult[];
23
+ firstUpdated(changedProperties: PropertyValues): void;
14
24
  updated(changedProperties: PropertyValues<this>): void;
15
25
  private _syncValidity;
26
+ checkValidity(): boolean;
27
+ reportValidity(): boolean;
16
28
  formResetCallback(): void;
17
29
  private _handleChange;
18
30
  render(): import("lit-html").TemplateResult<1>;
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAa,cAAc,EAAC,MAAM,KAAK,CAAC;AAI1D,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,UAAU,CAAmB;IAErB,OAAO,CAAC,QAAQ,CAAoB;IAEX,IAAI,SAAM;IACzB,KAAK,SAAQ;IAEG,OAAO,UAAS;IAChB,QAAQ,UAAS;IACjB,QAAQ,UAAS;IAEtB,SAAS,SAAM;IAEpD,cAGC;IAED,MAAM,CAAC,MAAM,4BAyFX;IAEO,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,QAWvD;IAED,OAAO,CAAC,aAAa;IASrB,iBAAiB,SAIhB;IAED,OAAO,CAAC,aAAa;IASrB,MAAM,yCAoBL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAa,cAAc,EAAC,MAAM,KAAK,CAAC;AAK1D,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,UAAU,CAAmB;IACrC,MAAM,CAAC,iBAAiB;;;;;;;MAA2D;IAEnE,OAAO,CAAC,QAAQ,CAAoB;IAEX,IAAI,SAAM;IACzB,KAAK,SAAQ;IACG,OAAO,UAAS;IAChB,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACtB,SAAS,SAAM;IAEpD,OAAO,CAAC,eAAe,CAAS;IAEhC,cAGC;IAED,MAAM,CAAC,MAAM,4BAiFX;IAEO,YAAY,CAAC,iBAAiB,EAAE,cAAc,QAGtD;IAEQ,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,QAWvD;IAED,OAAO,CAAC,aAAa;IASd,aAAa,YAEnB;IAEM,cAAc,YAEpB;IAED,iBAAiB,SAIhB;IAED,OAAO,CAAC,aAAa;IAQrB,MAAM,yCAoBL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}