@sondor-technology/sondor-components 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/alert/alert.constants.d.ts +3 -0
- package/dist/components/alert/alert.constants.d.ts.map +1 -0
- package/dist/components/alert/alert.constants.js +2 -0
- package/dist/components/alert/alert.constants.js.map +1 -0
- package/dist/components/alert/alert.d.ts +4 -3
- package/dist/components/alert/alert.d.ts.map +1 -1
- package/dist/components/alert/alert.js +21 -11
- package/dist/components/alert/alert.js.map +1 -0
- package/dist/components/badge/badge.constants.d.ts +3 -0
- package/dist/components/badge/badge.constants.d.ts.map +1 -0
- package/dist/components/badge/badge.constants.js +2 -0
- package/dist/components/badge/badge.constants.js.map +1 -0
- package/dist/components/badge/badge.d.ts +1 -1
- package/dist/components/badge/badge.d.ts.map +1 -1
- package/dist/components/badge/badge.js +3 -2
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +2 -1
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/button/button.constants.d.ts +7 -0
- package/dist/components/button/button.constants.d.ts.map +1 -0
- package/dist/components/button/button.constants.js +4 -0
- package/dist/components/button/button.constants.js.map +1 -0
- package/dist/components/button/button.d.ts +8 -4
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/button.js +181 -137
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button-group/button-group.d.ts +6 -0
- package/dist/components/button-group/button-group.d.ts.map +1 -1
- package/dist/components/button-group/button-group.js +17 -21
- package/dist/components/button-group/button-group.js.map +1 -0
- package/dist/components/checkbox/checkbox.constants.d.ts +3 -0
- package/dist/components/checkbox/checkbox.constants.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.constants.js +2 -0
- package/dist/components/checkbox/checkbox.constants.js.map +1 -0
- package/dist/components/checkbox/checkbox.d.ts +5 -1
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.js +21 -5
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/code-block/code-block.d.ts +12 -7
- package/dist/components/code-block/code-block.d.ts.map +1 -1
- package/dist/components/code-block/code-block.js +130 -66
- package/dist/components/code-block/code-block.js.map +1 -0
- package/dist/components/content-card/content-card.d.ts.map +1 -1
- package/dist/components/content-card/content-card.js +10 -15
- package/dist/components/content-card/content-card.js.map +1 -0
- package/dist/components/divider/divider.constants.d.ts +5 -0
- package/dist/components/divider/divider.constants.d.ts.map +1 -0
- package/dist/components/divider/divider.constants.js +3 -0
- package/dist/components/divider/divider.constants.js.map +1 -0
- package/dist/components/divider/divider.d.ts +4 -2
- package/dist/components/divider/divider.d.ts.map +1 -1
- package/dist/components/divider/divider.js +18 -9
- package/dist/components/divider/divider.js.map +1 -0
- package/dist/components/drawer/drawer.d.ts +7 -4
- package/dist/components/drawer/drawer.d.ts.map +1 -1
- package/dist/components/drawer/drawer.js +73 -30
- package/dist/components/drawer/drawer.js.map +1 -0
- package/dist/components/field/field.d.ts +2 -2
- package/dist/components/field/field.d.ts.map +1 -1
- package/dist/components/field/field.js +8 -9
- package/dist/components/field/field.js.map +1 -0
- package/dist/components/footer/footer.d.ts +8 -1
- package/dist/components/footer/footer.d.ts.map +1 -1
- package/dist/components/footer/footer.js +42 -12
- package/dist/components/footer/footer.js.map +1 -0
- package/dist/components/form/form-step.js +1 -0
- package/dist/components/form/form-step.js.map +1 -0
- package/dist/components/form/form.d.ts +3 -0
- package/dist/components/form/form.d.ts.map +1 -1
- package/dist/components/form/form.js +107 -67
- package/dist/components/form/form.js.map +1 -0
- package/dist/components/grid/grid-row.d.ts +3 -3
- package/dist/components/grid/grid-row.d.ts.map +1 -1
- package/dist/components/grid/grid-row.js +36 -22
- package/dist/components/grid/grid-row.js.map +1 -0
- package/dist/components/grid/grid.d.ts +2 -2
- package/dist/components/grid/grid.d.ts.map +1 -1
- package/dist/components/grid/grid.js +5 -2
- package/dist/components/grid/grid.js.map +1 -0
- package/dist/components/icon/icon-paths.js +1 -0
- package/dist/components/icon/icon-paths.js.map +1 -0
- package/dist/components/icon/icon.js +1 -0
- package/dist/components/icon/icon.js.map +1 -0
- package/dist/components/input/input.d.ts +14 -0
- package/dist/components/input/input.d.ts.map +1 -1
- package/dist/components/input/input.js +30 -37
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/link/link.d.ts +6 -6
- package/dist/components/link/link.d.ts.map +1 -1
- package/dist/components/link/link.js +42 -19
- package/dist/components/link/link.js.map +1 -0
- package/dist/components/metadata/metadata.d.ts +3 -3
- package/dist/components/metadata/metadata.d.ts.map +1 -1
- package/dist/components/metadata/metadata.js +23 -20
- package/dist/components/metadata/metadata.js.map +1 -0
- package/dist/components/modal/modal.d.ts +4 -16
- package/dist/components/modal/modal.d.ts.map +1 -1
- package/dist/components/modal/modal.js +99 -62
- package/dist/components/modal/modal.js.map +1 -0
- package/dist/components/page-layout/page-layout.d.ts +4 -3
- package/dist/components/page-layout/page-layout.d.ts.map +1 -1
- package/dist/components/page-layout/page-layout.js +96 -69
- package/dist/components/page-layout/page-layout.js.map +1 -0
- package/dist/components/radio/radio.d.ts +8 -0
- package/dist/components/radio/radio.d.ts.map +1 -1
- package/dist/components/radio/radio.js +8 -12
- package/dist/components/radio/radio.js.map +1 -0
- package/dist/components/radio-group/radio-group.d.ts +6 -1
- package/dist/components/radio-group/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group/radio-group.js +44 -18
- package/dist/components/radio-group/radio-group.js.map +1 -0
- package/dist/components/router/router.d.ts +5 -7
- package/dist/components/router/router.d.ts.map +1 -1
- package/dist/components/router/router.js +54 -38
- package/dist/components/router/router.js.map +1 -0
- package/dist/components/select/select.d.ts +41 -7
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +467 -150
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/skeleton/skeleton.d.ts +3 -2
- package/dist/components/skeleton/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton/skeleton.js +10 -13
- package/dist/components/skeleton/skeleton.js.map +1 -0
- package/dist/components/switch/switch.d.ts +12 -0
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch/switch.js +28 -22
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/table/data-table.d.ts +3 -25
- package/dist/components/table/data-table.d.ts.map +1 -1
- package/dist/components/table/data-table.js +211 -146
- package/dist/components/table/data-table.js.map +1 -0
- package/dist/components/table/table.d.ts +3 -3
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/table/table.js +39 -20
- package/dist/components/table/table.js.map +1 -0
- package/dist/components/tabs/tab-panel.d.ts +8 -1
- package/dist/components/tabs/tab-panel.d.ts.map +1 -1
- package/dist/components/tabs/tab-panel.js +21 -11
- package/dist/components/tabs/tab-panel.js.map +1 -0
- package/dist/components/tabs/tab.d.ts +10 -1
- package/dist/components/tabs/tab.d.ts.map +1 -1
- package/dist/components/tabs/tab.js +46 -28
- package/dist/components/tabs/tab.js.map +1 -0
- package/dist/components/tabs/tabs.d.ts +9 -0
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tabs/tabs.js +76 -13
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/textarea/textarea.d.ts +13 -0
- package/dist/components/textarea/textarea.d.ts.map +1 -1
- package/dist/components/textarea/textarea.js +59 -13
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/theme-toggle/theme-toggle.constants.d.ts +3 -0
- package/dist/components/theme-toggle/theme-toggle.constants.d.ts.map +1 -0
- package/dist/components/theme-toggle/theme-toggle.constants.js +2 -0
- package/dist/components/theme-toggle/theme-toggle.constants.js.map +1 -0
- package/dist/components/theme-toggle/theme-toggle.d.ts +3 -2
- package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -1
- package/dist/components/theme-toggle/theme-toggle.js +46 -19
- package/dist/components/theme-toggle/theme-toggle.js.map +1 -0
- package/dist/components/vertical-nav/vertical-nav-group.d.ts +5 -2
- package/dist/components/vertical-nav/vertical-nav-group.d.ts.map +1 -1
- package/dist/components/vertical-nav/vertical-nav-group.js +50 -14
- package/dist/components/vertical-nav/vertical-nav-group.js.map +1 -0
- package/dist/components/vertical-nav/vertical-nav-item.d.ts +3 -2
- package/dist/components/vertical-nav/vertical-nav-item.d.ts.map +1 -1
- package/dist/components/vertical-nav/vertical-nav-item.js +30 -8
- package/dist/components/vertical-nav/vertical-nav-item.js.map +1 -0
- package/dist/styles/index.css +50 -17
- package/dist/styles/reset.js +1 -0
- package/dist/styles/reset.js.map +1 -0
- package/package.json +2 -1
- package/src/components/alert/alert.constants.ts +2 -0
- package/src/components/alert/alert.ts +24 -15
- package/src/components/badge/badge.constants.ts +2 -0
- package/src/components/badge/badge.ts +3 -4
- package/src/components/breadcrumb/breadcrumb.ts +2 -2
- package/src/components/button/button.constants.ts +8 -0
- package/src/components/button/button.ts +184 -144
- package/src/components/button-group/button-group.ts +23 -21
- package/src/components/checkbox/checkbox.constants.ts +2 -0
- package/src/components/checkbox/checkbox.ts +33 -18
- package/src/components/code-block/code-block.ts +157 -84
- package/src/components/content-card/content-card.ts +10 -16
- package/src/components/divider/divider.constants.ts +5 -0
- package/src/components/divider/divider.ts +22 -11
- package/src/components/drawer/drawer.ts +79 -34
- package/src/components/field/field.ts +9 -11
- package/src/components/footer/footer.ts +43 -12
- package/src/components/form/form.ts +120 -83
- package/src/components/grid/grid-row.ts +45 -32
- package/src/components/grid/grid.ts +7 -4
- package/src/components/input/input.ts +37 -41
- package/src/components/link/link.ts +45 -21
- package/src/components/metadata/metadata.ts +26 -24
- package/src/components/modal/modal.ts +108 -74
- package/src/components/page-layout/page-layout.ts +98 -73
- package/src/components/radio/radio.ts +8 -13
- package/src/components/radio-group/radio-group.ts +45 -21
- package/src/components/router/router.ts +73 -50
- package/src/components/select/select.ts +502 -131
- package/src/components/skeleton/skeleton.ts +14 -14
- package/src/components/switch/switch.ts +31 -25
- package/src/components/table/data-table.ts +248 -177
- package/src/components/table/table.ts +52 -29
- package/src/components/tabs/tab-panel.ts +30 -13
- package/src/components/tabs/tab.ts +64 -33
- package/src/components/tabs/tabs.ts +82 -14
- package/src/components/textarea/textarea.ts +63 -15
- package/src/components/theme-toggle/theme-toggle.constants.ts +2 -0
- package/src/components/theme-toggle/theme-toggle.ts +47 -22
- package/src/components/vertical-nav/vertical-nav-group.ts +57 -18
- package/src/components/vertical-nav/vertical-nav-item.ts +35 -12
- package/src/styles/globals.css +27 -4
- package/src/styles/theme.css +39 -31
- package/tsconfig.json +2 -1
- package/dist/components/card/card.d.ts +0 -11
- package/dist/components/card/card.d.ts.map +0 -1
- package/dist/components/card/card.js +0 -54
- 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
|
-
|
|
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.
|
|
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
|
-
*
|
|
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;
|
|
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(
|
|
2
|
+
const segments = pattern.split("/").filter(Boolean);
|
|
3
3
|
return segments.reduce((weight, seg) => {
|
|
4
|
-
return weight + (seg.startsWith(
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
102
|
+
window.dispatchEvent(new CustomEvent("route-changed", {
|
|
87
103
|
detail: {
|
|
88
104
|
path: currentPath,
|
|
89
|
-
component: match ? match.component :
|
|
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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"}
|
|
@@ -1,16 +1,50 @@
|
|
|
1
|
-
import { LitElement } from
|
|
1
|
+
import { LitElement, PropertyValues } from "lit";
|
|
2
|
+
export interface SelectOption {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
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 & {});
|
|
2
7
|
export declare class StSelect extends LitElement {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
8
|
+
static formAssociated: boolean;
|
|
9
|
+
private internals;
|
|
10
|
+
name: string;
|
|
11
|
+
label: string;
|
|
12
|
+
value: string;
|
|
13
|
+
required: boolean;
|
|
14
|
+
multiple: boolean;
|
|
15
|
+
searchable: boolean;
|
|
16
|
+
options: SelectOption[];
|
|
17
|
+
error: string;
|
|
18
|
+
disabled: boolean;
|
|
19
|
+
invalid: boolean;
|
|
20
|
+
autocomplete: SelectAutocomplete;
|
|
21
|
+
private open;
|
|
22
|
+
private filterText;
|
|
23
|
+
private nativeError;
|
|
24
|
+
private touched;
|
|
25
|
+
private buttonElement;
|
|
26
|
+
private searchInputEl?;
|
|
27
|
+
static styles: import("lit").CSSResult;
|
|
7
28
|
constructor();
|
|
8
|
-
|
|
29
|
+
checkValidity(): boolean;
|
|
30
|
+
reportValidity(): boolean;
|
|
31
|
+
focus(options?: FocusOptions): void;
|
|
32
|
+
connectedCallback(): void;
|
|
33
|
+
disconnectedCallback(): void;
|
|
34
|
+
willUpdate(changedProperties: PropertyValues): void;
|
|
35
|
+
private get selectedValues();
|
|
36
|
+
private validate;
|
|
37
|
+
formResetCallback(): void;
|
|
38
|
+
private handleClickOutside;
|
|
39
|
+
private toggleOpen;
|
|
40
|
+
private handleOptionClick;
|
|
41
|
+
private handleSearchInput;
|
|
42
|
+
private handleButtonKeydown;
|
|
9
43
|
render(): import("lit-html").TemplateResult<1>;
|
|
10
44
|
}
|
|
11
45
|
declare global {
|
|
12
46
|
interface HTMLElementTagNameMap {
|
|
13
|
-
|
|
47
|
+
"st-select": StSelect;
|
|
14
48
|
}
|
|
15
49
|
}
|
|
16
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,
|
|
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"}
|