@mono-lit/helper 0.0.8 → 0.0.10
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/accordion-core-DaNyPWRr.js +277 -0
- package/dist/alert-core-DWtHbX_-.js +134 -0
- package/dist/breadcrumb-list-core-Dh68T8Cf.js +747 -0
- package/dist/{mono-button-CLkHg3WW.js → button-core-DerXg84Q.js} +3 -276
- package/dist/button-dropdown-core-DKYEOyjy.js +654 -0
- package/dist/button-utils-D5-66M02.js +63 -0
- package/dist/card-utils-l80qAmrN.js +312 -0
- package/dist/chart-core-DV7hD3ZY.js +801 -0
- package/dist/checkbox-utils-DKdrhAzF.js +337 -0
- package/dist/chip-utils-DpRrd7Zj.js +403 -0
- package/dist/{data-source-controller-C6C4ej_M.js → data-source-controller-DS_JLrmS.js} +1 -1
- package/dist/{data-source-options-fxT5QIX4.js → data-source-options-DJUNU26C.js} +6 -6
- package/dist/{data-source-read-BL266IW0.js → data-source-read-uKJpRAzx.js} +2 -2
- package/dist/date-core-CyuSyvvG.js +734 -0
- package/dist/drawer-core-DbFWvNln.js +759 -0
- package/dist/dropdown-core-BCH1pK14.js +511 -0
- package/dist/dropdown-table-core-SfHUJVFq.js +1342 -0
- package/dist/export.js +1 -1
- package/dist/{field-path-BabiMrrA.js → field-path-DK2VBWHl.js} +1 -1
- package/dist/field-tooltip.css_raw-DVblekCl.js +5 -0
- package/dist/{field-validation.css_raw-Cx6SGrfP.js → field-validation.css_raw-BU7C6173.js} +1 -170
- package/dist/file-upload-core-Cz_dBQMx.js +624 -0
- package/dist/filter-builder-core-DyWjbBP7.js +381 -0
- package/dist/{filter-builder-B6Y2mmbM.js → filter-builder-vbqIuPhX.js} +1 -1
- package/dist/{filter-eval-ChDSaAUH.js → filter-eval-CqeBnMYh.js} +1 -1
- package/dist/{filter-odata-Bi27XUpQ.js → filter-odata-GsczYKNC.js} +1 -1
- package/dist/{hydration-flush-BaE9gN3C.js → hydration-flush-Volt9X7Q.js} +2 -1071
- package/dist/index.js +11 -11
- package/dist/{index.node-CLqE8F8P.js → index.node-Csy9zrr1.js} +4 -4
- package/dist/index.node.js +11 -11
- package/dist/input-utils-BglY-k0H.js +1145 -0
- package/dist/menu-core-DkAYuCZ2.js +831 -0
- package/dist/modal-core-CSBSPN_m.js +844 -0
- package/dist/mono-button-DVvZ03P-.js +280 -0
- package/dist/{mono-button.shadow-DqZMpcqY.js → mono-button.shadow-BANxMGln.js} +6 -594
- package/dist/{mono-data-chart-NKPdAgVq.js → mono-data-chart-ChF4J9RT.js} +6 -6
- package/dist/{mono-data-dropdown-DUXo_jxd.js → mono-data-dropdown-Bgj2PDfm.js} +1 -1
- package/dist/{mono-data-grid-Bb00QM72.js → mono-data-grid-DJkp96N-.js} +346 -51
- package/dist/{mono-event-BPku9HpS.js → mono-event-CAZf0F_k.js} +14 -9
- package/dist/{mono-form-controller-BrA10erm.js → mono-form-controller-DxZLvyg6.js} +2 -1
- package/dist/mono-table-checkbox-core-BKOMx8R5.js +5288 -0
- package/dist/nav-core-B5qU2dzn.js +225 -0
- package/dist/{normalize-error-D93O4q8g.js → normalize-error-BEcd1tmS.js} +2 -2
- package/dist/otp-core-DXg3vFLh.js +758 -0
- package/dist/radio-utils-Dk9Tl1jz.js +319 -0
- package/dist/rich-text-editor-core-Ddd_QaLn.js +1280 -0
- package/dist/select-utils-BgArYHk8.js +2140 -0
- package/dist/sidebar-core-CD6txDo3.js +583 -0
- package/dist/slider-core-vcWr321-.js +1014 -0
- package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +2 -2
- package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +1 -1
- package/dist/src/components/dropdown-table/index.d.ts +1 -1
- package/dist/src/components/dropdown-table/index.shadow.d.ts +1 -1
- package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +1 -1
- package/dist/src/components/form/form-types.d.ts +9 -3
- package/dist/src/components/input/input-core.d.ts +1 -1
- package/dist/src/components/input/input-types.d.ts +1 -1
- package/dist/src/components/otp/otp-core.d.ts +1 -1
- package/dist/src/components/select/select-core.d.ts +1 -1
- package/dist/src/components/select/select-types.d.ts +1 -1
- package/dist/src/components/slider/slider-core.d.ts +1 -1
- package/dist/src/components/slider/slider-types.d.ts +1 -1
- package/dist/src/components/table/filter-suggestion.d.ts +171 -0
- package/dist/src/components/table/index.d.ts +5 -4
- package/dist/src/components/table/index.shadow.d.ts +5 -4
- package/dist/src/components/table/mono-data-grid.d.ts +58 -3
- package/dist/src/components/table/mono-table-empty-core.d.ts +37 -0
- package/dist/src/components/table/mono-table-search-core.d.ts +22 -3
- package/dist/src/components/table/table-types.d.ts +74 -4
- package/dist/src/components/tag-input/tag-input-core.d.ts +1 -1
- package/dist/src/components/tag-input/tag-input-types.d.ts +1 -1
- package/dist/src/components/textarea/textarea-core.d.ts +1 -1
- package/dist/src/composables/mono-event.d.ts +7 -1
- package/dist/src/entries/index.d.ts +8 -6
- package/dist/src/entries/index.node.d.ts +8 -6
- package/dist/src/search/index.d.ts +1 -1
- package/dist/src/utils/group-count.d.ts +36 -0
- package/dist/switch-utils-CTZ4id2V.js +338 -0
- package/dist/tabs-core-r5-B8k_N.js +317 -0
- package/dist/tag-input-utils-D2JA90DQ.js +3060 -0
- package/dist/textarea-utils-VU1KeXm8.js +821 -0
- package/dist/ui/accordion.js +2 -274
- package/dist/ui/alert.js +2 -131
- package/dist/ui/breadcrumb.js +4 -745
- package/dist/ui/button-dropdown.js +4 -652
- package/dist/ui/button.js +2 -63
- package/dist/ui/card.js +2 -310
- package/dist/ui/chart.js +4 -800
- package/dist/ui/checkbox.js +4 -335
- package/dist/ui/chip.js +4 -402
- package/dist/ui/date.js +3 -732
- package/dist/ui/drawer.js +3 -757
- package/dist/ui/dropdown-table.js +5 -1341
- package/dist/ui/dropdown.js +4 -509
- package/dist/ui/file-upload.js +3 -622
- package/dist/ui/filter.js +5 -380
- package/dist/ui/form.js +1 -1
- package/dist/ui/index.css +130 -5
- package/dist/ui/input.js +3 -1141
- package/dist/ui/menu.js +4 -828
- package/dist/ui/modal.js +4 -843
- package/dist/ui/nav.js +4 -223
- package/dist/ui/otp.js +4 -756
- package/dist/ui/radio.js +4 -317
- package/dist/ui/rich-text-editor.js +4 -1278
- package/dist/ui/select.js +5 -2138
- package/dist/ui/shadow/accordion.js +4 -273
- package/dist/ui/shadow/alert.js +4 -130
- package/dist/ui/shadow/breadcrumb.js +5 -744
- package/dist/ui/shadow/button-dropdown.js +6 -652
- package/dist/ui/shadow/button.js +3 -63
- package/dist/ui/shadow/card.js +4 -309
- package/dist/ui/shadow/chart.js +6 -1576
- package/dist/ui/shadow/checkbox.js +4 -334
- package/dist/ui/shadow/chip.js +4 -396
- package/dist/ui/shadow/date.js +7 -731
- package/dist/ui/shadow/drawer.js +4 -756
- package/dist/ui/shadow/dropdown-table.js +8 -1762
- package/dist/ui/shadow/dropdown.js +4 -508
- package/dist/ui/shadow/file-upload.js +4 -620
- package/dist/ui/shadow/filter.js +7 -379
- package/dist/ui/shadow/input.js +6 -1140
- package/dist/ui/shadow/menu.js +5 -828
- package/dist/ui/shadow/modal.js +6 -1063
- package/dist/ui/shadow/nav.js +5 -223
- package/dist/ui/shadow/otp.js +6 -754
- package/dist/ui/shadow/radio.js +4 -316
- package/dist/ui/shadow/rich-text-editor.js +4 -1276
- package/dist/ui/shadow/select.js +6 -2136
- package/dist/ui/shadow/sidebar.js +5 -581
- package/dist/ui/shadow/slider.js +5 -1010
- package/dist/ui/shadow/switch.js +4 -335
- package/dist/ui/shadow/table.js +10 -4501
- package/dist/ui/shadow/tabs.js +6 -315
- package/dist/ui/shadow/tag-input.js +7 -3057
- package/dist/ui/shadow/textarea.js +6 -817
- package/dist/ui/sidebar.js +3 -581
- package/dist/ui/slider.js +4 -1012
- package/dist/ui/switch.js +4 -336
- package/dist/ui/table.js +9 -4502
- package/dist/ui/tabs.js +4 -315
- package/dist/ui/tag-input.js +5 -3058
- package/dist/ui/textarea.js +4 -819
- package/dist/vue.d.ts +3 -2
- package/package.json +3 -3
- package/dist/chip-strip-bNfLn52Z.js +0 -215
- package/dist/data-source-controller-Dx6IQ2CN.js +0 -243
- package/dist/data-source-options-BM4r4PRw.js +0 -558
- package/dist/data-source-read-HyBCRg1t.js +0 -242
- package/dist/excel-BXzr3uI1.js +0 -784
- package/dist/export-ixRdCS2y.js +0 -2388
- package/dist/field-tooltip-addon-CWCp19mJ.js +0 -702
- package/dist/field-tooltip.css_raw-U5UeTa2d.js +0 -269
- package/dist/filter-builder-C0T3pMx2.js +0 -208
- package/dist/form-control-core-BbiACMtL.js +0 -226
- package/dist/icon-ClxnYhBG.js +0 -19
- package/dist/import-Dc4eXC02.js +0 -612
- package/dist/light-slots-_no0r2Z-.js +0 -246
- package/dist/markdown-uGlE_OfJ.js +0 -20191
- package/dist/mono-data-grid-Bkr-e1-i.js +0 -4043
- package/dist/normalize-error-BmLbgANw.js +0 -1048
package/dist/ui/shadow/radio.js
CHANGED
|
@@ -1,279 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as
|
|
3
|
-
import { t as
|
|
1
|
+
import { t as customElement } from "../../mono-element-CKcT0rwv.js";
|
|
2
|
+
import { t as __decorate } from "../../decorate-DbYFpi8R.js";
|
|
3
|
+
import { n as validateRadioProps, r as MonoRadioCore, t as generateRadioAttributes } from "../../radio-utils-Dk9Tl1jz.js";
|
|
4
|
+
import { i as withShadowUtilityStyles, r as toShadowCss, t as flushSsrHydration } from "../../hydration-flush-Volt9X7Q.js";
|
|
4
5
|
import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
|
|
5
|
-
import { property, state } from "lit/decorators.js";
|
|
6
|
-
import { ifDefined } from "lit/directives/if-defined.js";
|
|
7
6
|
|
|
8
|
-
//#region src/components/radio/radio-core.ts
|
|
9
|
-
/**
|
|
10
|
-
* `MonoRadioCore` — all render-mode-agnostic logic for `mono-radio`: reactive
|
|
11
|
-
* props (incl. SSR `disabled` coercion), hybrid aliases (incl. the
|
|
12
|
-
* `ariaLabel`/`aria-label`/`arialabel` → `ariaLabelText` getters), camelCase
|
|
13
|
-
* attribute fallbacks, class computation, the `mno-change` interactivity, and the
|
|
14
|
-
* shared `<label><input><circle><dot></circle><labelBlock></label>` `render()`
|
|
15
|
-
* (the radio dot is pure CSS — no icons). Only the label/description region is a
|
|
16
|
-
* hook (`_renderLabelBlock`) — the light build uses `data-mono-slot`, the shadow
|
|
17
|
-
* build native `<slot>` (mirrors `mono-checkbox`).
|
|
18
|
-
*
|
|
19
|
-
* SSR-safe: no `document`/`window` access; `focus`/`blur` query `this.renderRoot`.
|
|
20
|
-
*/
|
|
21
|
-
const MonoRadioCore = (superClass) => {
|
|
22
|
-
class MonoRadioCoreClass extends MonoFormControlCore(superClass) {
|
|
23
|
-
constructor(...args) {
|
|
24
|
-
super(...args);
|
|
25
|
-
this.size = "md";
|
|
26
|
-
this.color = "primary";
|
|
27
|
-
this.value = "";
|
|
28
|
-
this.modelValue = "";
|
|
29
|
-
this.disabled = false;
|
|
30
|
-
this.label = "";
|
|
31
|
-
this.sublabel = "";
|
|
32
|
-
this.cssClass = {};
|
|
33
|
-
this.cssClassName = "";
|
|
34
|
-
this._hasLabelSlotState = false;
|
|
35
|
-
this._hasDescriptionSlotState = false;
|
|
36
|
-
defineHybridPropAliases(this, [
|
|
37
|
-
"modelValue",
|
|
38
|
-
"ariaLabelText",
|
|
39
|
-
"cssClass"
|
|
40
|
-
]);
|
|
41
|
-
defineHybridPropAlias(this, "description", "sublabel");
|
|
42
|
-
Object.defineProperty(this, "css-class", {
|
|
43
|
-
get: () => this.cssClass,
|
|
44
|
-
set: (value) => this._setCssClass(value),
|
|
45
|
-
configurable: true,
|
|
46
|
-
enumerable: false
|
|
47
|
-
});
|
|
48
|
-
Object.defineProperty(this, "cssclass", {
|
|
49
|
-
get: () => this.cssClass,
|
|
50
|
-
set: (value) => this._setCssClass(value),
|
|
51
|
-
configurable: true,
|
|
52
|
-
enumerable: false
|
|
53
|
-
});
|
|
54
|
-
for (const name of [
|
|
55
|
-
"ariaLabel",
|
|
56
|
-
"aria-label",
|
|
57
|
-
"arialabel"
|
|
58
|
-
]) Object.defineProperty(this, name, {
|
|
59
|
-
get: () => this.ariaLabelText,
|
|
60
|
-
set: (value) => {
|
|
61
|
-
this.ariaLabelText = value == null ? void 0 : String(value);
|
|
62
|
-
},
|
|
63
|
-
configurable: true,
|
|
64
|
-
enumerable: false
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
static get observedAttributes() {
|
|
68
|
-
return [
|
|
69
|
-
...super.observedAttributes ?? [],
|
|
70
|
-
"modelvalue",
|
|
71
|
-
"arialabeltext",
|
|
72
|
-
"description",
|
|
73
|
-
"arialabel",
|
|
74
|
-
"css-class",
|
|
75
|
-
"cssclass"
|
|
76
|
-
];
|
|
77
|
-
}
|
|
78
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
79
|
-
super.attributeChangedCallback(name, oldValue, newValue);
|
|
80
|
-
if (oldValue === newValue) return;
|
|
81
|
-
if (name === "modelvalue") {
|
|
82
|
-
this.modelValue = this._toRadioValue(newValue);
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
if (name === "arialabeltext" || name === "arialabel") {
|
|
86
|
-
this.ariaLabelText = newValue ?? void 0;
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
if (name === "description") {
|
|
90
|
-
this.sublabel = newValue ?? "";
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
if (name === "css-class" || name === "cssclass") this._setCssClass(newValue);
|
|
94
|
-
}
|
|
95
|
-
willUpdate(changed) {
|
|
96
|
-
if (typeof this.disabled === "string") {
|
|
97
|
-
const normalized = this.disabled.toLowerCase().trim();
|
|
98
|
-
this.disabled = normalized === "" || normalized === "true";
|
|
99
|
-
}
|
|
100
|
-
super.willUpdate?.(changed);
|
|
101
|
-
}
|
|
102
|
-
_setCssClass(value) {
|
|
103
|
-
if (value == null) {
|
|
104
|
-
this.cssClass = {};
|
|
105
|
-
this.cssClassName = "";
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
if (typeof value === "object") {
|
|
109
|
-
this.cssClass = value;
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (typeof value === "string") {
|
|
113
|
-
const trimmed = value.trim();
|
|
114
|
-
if (!trimmed) {
|
|
115
|
-
this.cssClass = {};
|
|
116
|
-
this.cssClassName = "";
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
if (trimmed.startsWith("{") && trimmed.endsWith("}")) try {
|
|
120
|
-
this.cssClass = JSON.parse(trimmed);
|
|
121
|
-
return;
|
|
122
|
-
} catch {}
|
|
123
|
-
this.cssClassName = trimmed;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
_toRadioValue(value) {
|
|
127
|
-
if (value === void 0 || value === null) return "";
|
|
128
|
-
if (typeof value === "boolean") return value;
|
|
129
|
-
if (typeof value === "number") return value;
|
|
130
|
-
return String(value);
|
|
131
|
-
}
|
|
132
|
-
_cls(base, key) {
|
|
133
|
-
const extra = this.cssClass?.[key];
|
|
134
|
-
return extra ? `${base} ${extra}` : base;
|
|
135
|
-
}
|
|
136
|
-
get _checked() {
|
|
137
|
-
return this.modelValue === this.value;
|
|
138
|
-
}
|
|
139
|
-
get _wrapperClasses() {
|
|
140
|
-
return [
|
|
141
|
-
"mono-radio",
|
|
142
|
-
this.size,
|
|
143
|
-
this.color,
|
|
144
|
-
this.disabled ? "disabled" : "",
|
|
145
|
-
this._checked ? "mono-radio-checked" : "",
|
|
146
|
-
this.cssClassName,
|
|
147
|
-
this.cssClass?.root
|
|
148
|
-
].filter(Boolean).join(" ");
|
|
149
|
-
}
|
|
150
|
-
get _inputClasses() {
|
|
151
|
-
return this._cls("mono-radio-input", "input");
|
|
152
|
-
}
|
|
153
|
-
get _circleClasses() {
|
|
154
|
-
return [this._cls("mono-radio-circle", "circle"), this.size].filter(Boolean).join(" ");
|
|
155
|
-
}
|
|
156
|
-
get _dotClasses() {
|
|
157
|
-
return [this._cls("mono-radio-dot", "dot"), this.size].filter(Boolean).join(" ");
|
|
158
|
-
}
|
|
159
|
-
_hasLabelContent() {
|
|
160
|
-
return Boolean(this.label) || this._hasLabelSlotState;
|
|
161
|
-
}
|
|
162
|
-
_hasDescriptionContent() {
|
|
163
|
-
return Boolean(this.sublabel) || this._hasDescriptionSlotState;
|
|
164
|
-
}
|
|
165
|
-
_createModelDetail(args) {
|
|
166
|
-
return {
|
|
167
|
-
modelValue: args.modelValue,
|
|
168
|
-
currentValue: args.modelValue,
|
|
169
|
-
oldValue: args.oldValue,
|
|
170
|
-
value: this.value,
|
|
171
|
-
checked: args.modelValue === this.value,
|
|
172
|
-
sourceEvent: args.sourceEvent
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
_emitChange(detail) {
|
|
176
|
-
dispatchMonoEvent(this, "change", detail);
|
|
177
|
-
}
|
|
178
|
-
_handleChange(event) {
|
|
179
|
-
if (this.disabled) return;
|
|
180
|
-
if (!event.currentTarget.checked) return;
|
|
181
|
-
const oldValue = this.modelValue;
|
|
182
|
-
const nextValue = this.value;
|
|
183
|
-
this.modelValue = nextValue;
|
|
184
|
-
const detail = this._createModelDetail({
|
|
185
|
-
modelValue: nextValue,
|
|
186
|
-
oldValue,
|
|
187
|
-
sourceEvent: event
|
|
188
|
-
});
|
|
189
|
-
this._emitChange(detail);
|
|
190
|
-
}
|
|
191
|
-
/** Light-DOM label block (data-mono-slot). Shadow build overrides with `<slot>`. */
|
|
192
|
-
_renderLabelBlock() {
|
|
193
|
-
if (!this._hasLabelContent() && !this._hasDescriptionContent()) return nothing;
|
|
194
|
-
return html`
|
|
195
|
-
<span class=${this._cls("mono-radio-label", "label")} mono-label>
|
|
196
|
-
${this._hasLabelContent() ? html`
|
|
197
|
-
<span class=${this._cls("mono-radio-label-text", "labelText")} mono-label-text>
|
|
198
|
-
${this._hasLabelSlotState ? html`<span data-mono-slot="label"></span>` : this.label}
|
|
199
|
-
</span>
|
|
200
|
-
` : nothing}
|
|
201
|
-
|
|
202
|
-
${this._hasDescriptionContent() ? html`
|
|
203
|
-
<span class=${this._cls("mono-radio-label-description", "description")} mono-description>
|
|
204
|
-
${this._hasDescriptionSlotState ? html`<span data-mono-slot="description"></span>` : this.sublabel}
|
|
205
|
-
</span>
|
|
206
|
-
` : nothing}
|
|
207
|
-
</span>
|
|
208
|
-
`;
|
|
209
|
-
}
|
|
210
|
-
render() {
|
|
211
|
-
const ariaLabel = this.ariaLabelText || this.label || (this._hasLabelSlotState ? "Radio option" : void 0);
|
|
212
|
-
return html`
|
|
213
|
-
<label
|
|
214
|
-
class=${this._wrapperClasses}
|
|
215
|
-
mono-radio
|
|
216
|
-
mono-size=${this.size === "md" ? nothing : this.size}
|
|
217
|
-
mono-color=${this.color === "primary" ? nothing : this.color}
|
|
218
|
-
?mono-checked=${this._checked}
|
|
219
|
-
?mono-disabled=${this.disabled}
|
|
220
|
-
>
|
|
221
|
-
<input
|
|
222
|
-
class=${this._inputClasses}
|
|
223
|
-
mono-input
|
|
224
|
-
type="radio"
|
|
225
|
-
.checked=${this._checked}
|
|
226
|
-
.value=${String(this.value ?? "")}
|
|
227
|
-
?disabled=${this.disabled}
|
|
228
|
-
aria-checked=${String(this._checked)}
|
|
229
|
-
aria-label=${ifDefined(ariaLabel)}
|
|
230
|
-
@change=${this._handleChange}
|
|
231
|
-
/>
|
|
232
|
-
|
|
233
|
-
<span class=${this._circleClasses} mono-circle aria-hidden="true">
|
|
234
|
-
<span class=${this._dotClasses} mono-dot></span>
|
|
235
|
-
</span>
|
|
236
|
-
|
|
237
|
-
${this._renderLabelBlock()}
|
|
238
|
-
</label>
|
|
239
|
-
`;
|
|
240
|
-
}
|
|
241
|
-
focus(options) {
|
|
242
|
-
this.renderRoot.querySelector(".mono-radio-input")?.focus(options);
|
|
243
|
-
}
|
|
244
|
-
blur() {
|
|
245
|
-
this.renderRoot.querySelector(".mono-radio-input")?.blur();
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
__decorate([property({ type: String })], MonoRadioCoreClass.prototype, "size", void 0);
|
|
249
|
-
__decorate([property({ type: String })], MonoRadioCoreClass.prototype, "color", void 0);
|
|
250
|
-
__decorate([property({ type: String })], MonoRadioCoreClass.prototype, "value", void 0);
|
|
251
|
-
__decorate([property({
|
|
252
|
-
type: String,
|
|
253
|
-
attribute: "model-value",
|
|
254
|
-
reflect: true
|
|
255
|
-
})], MonoRadioCoreClass.prototype, "modelValue", void 0);
|
|
256
|
-
__decorate([property({
|
|
257
|
-
reflect: true,
|
|
258
|
-
converter: booleanStringConverter
|
|
259
|
-
})], MonoRadioCoreClass.prototype, "disabled", void 0);
|
|
260
|
-
__decorate([property({ type: String })], MonoRadioCoreClass.prototype, "label", void 0);
|
|
261
|
-
__decorate([property({ type: String })], MonoRadioCoreClass.prototype, "sublabel", void 0);
|
|
262
|
-
__decorate([property({
|
|
263
|
-
type: String,
|
|
264
|
-
attribute: "aria-label"
|
|
265
|
-
})], MonoRadioCoreClass.prototype, "ariaLabelText", void 0);
|
|
266
|
-
__decorate([property({ attribute: false })], MonoRadioCoreClass.prototype, "cssClass", void 0);
|
|
267
|
-
__decorate([property({
|
|
268
|
-
type: String,
|
|
269
|
-
attribute: false
|
|
270
|
-
})], MonoRadioCoreClass.prototype, "cssClassName", void 0);
|
|
271
|
-
__decorate([state()], MonoRadioCoreClass.prototype, "_hasLabelSlotState", void 0);
|
|
272
|
-
__decorate([state()], MonoRadioCoreClass.prototype, "_hasDescriptionSlotState", void 0);
|
|
273
|
-
return MonoRadioCoreClass;
|
|
274
|
-
};
|
|
275
|
-
|
|
276
|
-
//#endregion
|
|
277
7
|
//#region \0raw:C:\Users\VCT-DEV\Desktop\libs\packages\helper\src\components\radio\radio.css?raw.js
|
|
278
8
|
var radio_css_raw_default = "/* =========================================================================\r\n mono-radio — a port of Basecoat's `.input[type='radio']` and the `.label`\r\n beside it (basecoat-css@1.0.2, vega style).\r\n\r\n Styled by ATTRIBUTE, like Basecoat — and the attributes mirror the element's\r\n props one for one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-radio size=\"sm\" color=\"danger\" label=\"Email\" value=\"email\" model-value=\"email\">\r\n <label mono-radio mono-size=\"sm\" mono-color=\"danger\">\r\n <input mono-input type=\"radio\" name=\"contact\" value=\"email\" checked />\r\n <span mono-circle aria-hidden=\"true\"></span>\r\n <span mono-label><span mono-label-text>Email</span></span>\r\n </label>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary). The element renders these attributes on its\r\n root <label> (both builds) plus the STATE `mono-checked`; hand-written markup\r\n may rely on the native input's `:checked` instead — every state rule reads\r\n both. The old classes (`.mono-radio.sm.mono-radio-checked`) are still emitted\r\n as inert hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-radio] ≡ .label (flex gap-2 text-sm font-medium leading-snug select-none)\r\n [mono-radio] > [mono-circle] ≡ .input[type='radio'] (size-4 rounded-full border-input; the real input is visually hidden)\r\n [mono-checked] / [mono-input]:checked ≡ :checked (bg-primary border-primary) + :checked:before (size-2 bg-primary-foreground)\r\n [mono-circle] > [mono-dot] / ::before ≡ :checked:before — the element renders the dot, raw markup may omit it\r\n [mono-input]:focus-visible + [mono-circle] ≡ focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\r\n [mono-invalid] / [mono-input][aria-invalid] ≡ aria-invalid:border-destructive aria-invalid:ring-destructive/20\r\n [mono-disabled] / [mono-input]:disabled ≡ disabled:cursor-not-allowed disabled:opacity-50\r\n [mono-label-text] ≡ .label text\r\n [mono-description] ≡ .field > p (text-sm text-muted-foreground)\r\n [mono-size=\"xs|sm|lg|xl|xxl\"] ≡ EXTENSION — the circle is 4/9 of the --mono-control-height-* step\r\n (16px at vega md), label / description / gap step with it\r\n [mono-color=\"…\"] ≡ EXTENSION (the checked fill in the role's colour)\r\n\r\n Every metric here is checkbox.css's: the two controls sit side by side in a\r\n form, so circle ≡ box, gap ≡ gap, label ≡ label at every step, and the\r\n pairing spec asserts it.\r\n\r\n Specificity contract (same as the pre-port class sheet): a part's RESTING rule\r\n is exactly one attribute strong — `:where([mono-radio]) [mono-circle]` =\r\n (0,1,0) — so a utility class handed in through `cssClass` wins by source\r\n order, while state rules (checked / focus / invalid / disabled, keyed on the\r\n root or the native input) stay heavier and win over it, as they always did.\r\n\r\n Inner parts: [mono-input], [mono-circle] > [mono-dot], [mono-label] >\r\n [mono-label-text] / [mono-description]. The shadow build marks an unassigned\r\n slot wrapper [mono-empty].\r\n\r\n The circle sits on the label's CAP BAND (see `--_mono-radio-line-offset`):\r\n mono's own alignment rule, kept — Basecoat centres a lone radio on its line\r\n box with `items-center`, which is the same thing for a one-line label and\r\n drifts for a described one.\r\n\r\n FLAVORS set `--mono-radio-{radius,shadow,ring-width,ring-alpha,bg,border-color,\r\n checked-bg,dot-color,size-md}` (the per-style `.input[type='radio']` deltas); every\r\n fallback here is vega's value (`node scripts/basecoat-styles.mjs --varying\r\n \"input\\[type='radio'\\]\"`).\r\n ========================================================================= */\r\n\r\nmono-radio {\r\n display: inline-block;\r\n}\r\n\r\n[mono-radio] {\r\n /* ── palette: each slot is a public knob over a Basecoat token ─────────── */\r\n --_mono-radio-text: var(--mono-radio-text, var(--foreground));\r\n --_mono-radio-description: var(--mono-radio-description, var(--muted-foreground));\r\n --_mono-radio-primary: var(--mono-radio-primary, var(--primary));\r\n --_mono-radio-primary-foreground: var(--mono-radio-primary-foreground, var(--primary-foreground));\r\n --_mono-radio-accent: var(--mono-radio-accent, var(--_mono-radio-accent-preset, var(--_mono-radio-primary)));\r\n --_mono-radio-dot-color: var(--mono-radio-dot-color, var(--_mono-radio-dot-preset, var(--_mono-radio-primary-foreground)));\r\n --_mono-radio-border-color: var(--mono-radio-border, var(--mono-radio-border-color, var(--input)));\r\n --_mono-radio-bg: var(--mono-radio-bg, var(--mono-mode-surface));\r\n /* the radio is the one control Basecoat leaves shadowless (the checkbox has\r\n shadow-xs) — the slot stays so a flavor or a consumer can put one back */\r\n --_mono-radio-shadow: var(--mono-radio-shadow, 0 0 #0000);\r\n --_mono-radio-radius: var(--mono-radio-radius, var(--mono-radius-full));\r\n --_mono-radio-border-width: var(--mono-radio-border-width, var(--mono-border-width));\r\n --_mono-radio-ring-color: var(--mono-radio-ring-color, var(--ring));\r\n --_mono-radio-ring-width: var(--mono-radio-ring-width, var(--mono-ring-width));\r\n --_mono-radio-ring-alpha: var(--mono-radio-ring-alpha, var(--mono-ring-alpha));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .input[type='radio'] — size-4 (= 4/9 of the\r\n h-9 control); .field > label, .label — gap-2 text-sm leading-snug */\r\n --_mono-radio-control: var(--mono-radio-size-md, calc(var(--mono-control-height-md) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-md, calc(var(--mono-spacing) * 2)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-md, var(--mono-text-sm));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-md, 0.8125rem);\r\n /* :checked:before — size-2 on a size-4 circle */\r\n --_mono-radio-dot: var(--mono-radio-dot, 50%);\r\n\r\n /* ── whole pixels ────────────────────────────────────────────────────────\r\n The circle is a ratio of the control step, so it lands on a fraction (18.39px,\r\n 17.77px…). A fractional round shape is antialiased on every edge — the\r\n switch thumb, which parks flush against the track's cap, picked up a dark\r\n rim that changed with the flavor and the screen's pixel ratio. Snap the\r\n derived size to 1px; `round()` has the same browser floor as `color-mix()`\r\n and `:has()`, which this sheet already requires. Snapping happens HERE, at\r\n one place per value, so the per-size blocks stay plain arithmetic. */\r\n --_mono-radio-control-px: round(nearest, var(--_mono-radio-control), 1px);\r\n\r\n /* ── alignment with the label ────────────────────────────────────────────\r\n The circle is centred on the label's CAP BAND — the ink the eye reads, not\r\n the line box. Every number is checkbox.css's; the two controls sit side by\r\n side in a form and any divergence shows. */\r\n --_mono-radio-label-line-height: var(--mono-radio-label-line-height, var(--mono-leading-snug));\r\n --_mono-radio-optical-shift: 0.045;\r\n --_mono-radio-optical-nudge: 0px;\r\n --_mono-radio-line-offset: calc(\r\n (var(--_mono-radio-label-font) * var(--_mono-radio-label-line-height) - var(--_mono-radio-control-px)) / 2 +\r\n var(--_mono-radio-label-font) * var(--_mono-radio-optical-shift) + var(--_mono-radio-optical-nudge)\r\n );\r\n\r\n /* The element build nests this root inside its host, so it is never itself a\r\n grid or flex item and shrink-wraps its content. Hand-written markup usually\r\n IS the item (a radio in a `display: grid` list), and an item blockifies —\r\n `inline-flex` becomes `flex` and the row stretches to the widest sibling,\r\n wrapping its label at a different point than the element's. `fit-content`\r\n keeps both shapes shrink-wrapped; a consumer who wants a full-width row\r\n still sets a width. */\r\n width: fit-content;\r\n display: inline-flex;\r\n align-items: flex-start;\r\n gap: var(--_mono-radio-gap);\r\n position: relative;\r\n vertical-align: top;\r\n cursor: pointer;\r\n user-select: none;\r\n font-family: inherit;\r\n color: var(--_mono-radio-text);\r\n}\r\n\r\n[mono-radio],\r\n:where([mono-radio]) *,\r\n:where([mono-radio]) *::before,\r\n:where([mono-radio]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n:where([mono-radio]) :is([mono-label], [mono-label-text], [mono-description])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* the circle seats on the first line of a label that is actually there; a bare\r\n circle stays flush at the top */\r\n[mono-radio]:has([mono-label-text]:not([mono-empty])) > [mono-circle] {\r\n margin-top: var(--_mono-radio-line-offset, 0px);\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: the circle is 4/9 of the control step (vega md: 36 × 4/9 =\r\n 16px), label, description and gap step with it (md = Basecoat's text-sm / gap-2)\r\n ========================================= */\r\n\r\n[mono-radio][mono-size=\"xs\"] {\r\n --_mono-radio-control: var(--mono-radio-size-xs, calc(var(--mono-control-height-xs) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-xs, calc(var(--mono-spacing) * 1.25)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-xs, var(--mono-text-xs));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-xs, 0.6875rem);\r\n}\r\n\r\n[mono-radio][mono-size=\"sm\"] {\r\n --_mono-radio-control: var(--mono-radio-size-sm, calc(var(--mono-control-height-sm) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-sm, calc(var(--mono-spacing) * 1.5)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-sm, 0.8125rem);\r\n --_mono-radio-description-font: var(--mono-radio-description-font-sm, var(--mono-text-xs));\r\n}\r\n\r\n[mono-radio][mono-size=\"lg\"] {\r\n --_mono-radio-control: var(--mono-radio-size-lg, calc(var(--mono-control-height-lg) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-lg, calc(var(--mono-spacing) * 2.5)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-lg, var(--mono-text-base));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-lg, var(--mono-text-sm));\r\n /* 16px text rounds its ascent such that the circle lands ~0.35px low */\r\n --_mono-radio-optical-nudge: -0.35px;\r\n}\r\n\r\n[mono-radio][mono-size=\"xl\"] {\r\n --_mono-radio-control: var(--mono-radio-size-xl, calc(var(--mono-control-height-xl) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-xl, calc(var(--mono-spacing) * 3)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-xl, var(--mono-text-lg));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-xl, var(--mono-text-base));\r\n}\r\n\r\n[mono-radio][mono-size=\"xxl\"] {\r\n --_mono-radio-control: var(--mono-radio-size-xxl, calc(var(--mono-control-height-xxl) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-xxl, calc(var(--mono-spacing) * 3.5)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-xxl, var(--mono-text-xl));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-xxl, var(--mono-text-lg));\r\n /* 20px text rounds the other way, leaving the circle ~1.1px high */\r\n --_mono-radio-optical-nudge: 1.1px;\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the checked fill in the role's colour\r\n ========================================= */\r\n\r\n[mono-radio]:is(:not([mono-color]), [mono-color=\"primary\"]) {\r\n --_mono-radio-accent-preset: var(--_mono-radio-primary);\r\n --_mono-radio-dot-preset: var(--_mono-radio-primary-foreground);\r\n}\r\n[mono-radio][mono-color=\"secondary\"] {\r\n --_mono-radio-accent-preset: var(--secondary-foreground);\r\n --_mono-radio-dot-preset: var(--secondary);\r\n}\r\n[mono-radio][mono-color=\"success\"] {\r\n --_mono-radio-accent-preset: var(--success);\r\n --_mono-radio-dot-preset: var(--success-foreground);\r\n}\r\n[mono-radio][mono-color=\"danger\"] {\r\n --_mono-radio-accent-preset: var(--destructive);\r\n --_mono-radio-dot-preset: var(--destructive-foreground);\r\n}\r\n[mono-radio][mono-color=\"warning\"] {\r\n --_mono-radio-accent-preset: var(--warning);\r\n --_mono-radio-dot-preset: var(--warning-foreground);\r\n}\r\n[mono-radio][mono-color=\"info\"] {\r\n --_mono-radio-accent-preset: var(--info);\r\n --_mono-radio-dot-preset: var(--info-foreground);\r\n}\r\n[mono-radio][mono-color=\"teal\"] {\r\n --_mono-radio-accent-preset: var(--teal);\r\n --_mono-radio-dot-preset: var(--teal-foreground);\r\n}\r\n[mono-radio][mono-color=\"purple\"] {\r\n --_mono-radio-accent-preset: var(--purple);\r\n --_mono-radio-dot-preset: var(--purple-foreground);\r\n}\r\n[mono-radio][mono-color=\"neutral\"] {\r\n --_mono-radio-accent-preset: var(--neutral);\r\n --_mono-radio-dot-preset: var(--neutral-foreground);\r\n}\r\n[mono-radio][mono-color=\"dark\"] {\r\n --_mono-radio-accent-preset: var(--dark);\r\n --_mono-radio-dot-preset: var(--dark-foreground);\r\n}\r\n\r\n/* =========================================\r\n States on the root\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/radio.css .field > input[type='radio'], .input[type='radio']\r\n — disabled:cursor-not-allowed disabled:opacity-50 */\r\n[mono-radio][mono-disabled],\r\n[mono-radio]:has(> [mono-input]:disabled) {\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n pointer-events: none;\r\n}\r\n\r\n/* the native input is the accessible control; the circle is its painted twin */\r\n:where([mono-radio]) [mono-input] {\r\n position: absolute;\r\n opacity: 0;\r\n pointer-events: none;\r\n width: 1px;\r\n height: 1px;\r\n margin: 0;\r\n /* the UA gives an <input> its own font; inside a shadow root nothing resets it,\r\n so the hidden control ended up with a different computed font in the two\r\n builds. It paints nothing either way — this just keeps them identical. */\r\n font: inherit;\r\n color: inherit;\r\n}\r\n\r\n/* =========================================\r\n The circle\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/radio.css .field > input[type='radio'], .input[type='radio']\r\n — relative shrink-0 appearance-none border outline-none */\r\n/* basecoat@1.0.2 styles/vega.css .field > input[type='radio'], .input[type='radio']\r\n — flex size-4 rounded-full border-input (dark:bg-input/30 via --mono-mode-surface);\r\n checked:bg-primary checked:border-primary checked:text-primary-foreground;\r\n mono: `--tw-ring-*` flattened to the ring + shadow slots */\r\n:where([mono-radio]) > [mono-circle] {\r\n --_mono-radio-ring: 0 0 #0000;\r\n position: relative;\r\n flex: 0 0 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-radio-control-px);\r\n height: var(--_mono-radio-control-px);\r\n border: var(--_mono-radio-border-width) solid var(--_mono-radio-border-color);\r\n border-radius: var(--_mono-radio-radius);\r\n background-color: var(--_mono-radio-bg);\r\n box-shadow: var(--_mono-radio-ring), var(--_mono-radio-shadow);\r\n /* the circle's own ink is the ACCENT — a flavor that leaves the checked circle\r\n hollow (sera) then sets `--mono-radio-dot-color: currentColor` to paint the\r\n dot in the role colour, using public knobs alone */\r\n color: var(--_mono-radio-accent);\r\n transition-property: box-shadow, background-color, border-color;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n/* focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 */\r\n:where([mono-radio]) > [mono-input]:focus-visible + [mono-circle] {\r\n border-color: var(--_mono-radio-ring-color);\r\n --_mono-radio-ring: 0 0 0 var(--_mono-radio-ring-width) color-mix(in oklab, var(--_mono-radio-ring-color) var(--_mono-radio-ring-alpha), transparent);\r\n}\r\n\r\n/* aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20\r\n (dark: /50, /40 via the mode tokens) */\r\n[mono-radio][mono-invalid] > [mono-circle],\r\n:where([mono-radio]) > [mono-input][aria-invalid=\"true\"] + [mono-circle] {\r\n border-color: var(--mono-mode-invalid-border);\r\n --_mono-radio-ring: 0 0 0 var(--_mono-radio-ring-width) var(--mono-mode-invalid-ring);\r\n}\r\n\r\n/* checked:bg-primary checked:border-primary — generalised per hue.\r\n `--mono-radio-checked-bg` is the flavor slot: sera keeps the circle hollow. */\r\n[mono-radio][mono-checked] > [mono-circle],\r\n:where([mono-radio]) > [mono-input]:checked + [mono-circle] {\r\n border-color: var(--_mono-radio-accent);\r\n background-color: var(--mono-radio-checked-bg, var(--_mono-radio-accent));\r\n}\r\n\r\n/* aria-invalid:checked:border-primary — a chosen option is not the error */\r\n[mono-radio][mono-invalid][mono-checked] > [mono-circle],\r\n:where([mono-radio]) > [mono-input][aria-invalid=\"true\"]:checked + [mono-circle] {\r\n border-color: var(--_mono-radio-accent);\r\n}\r\n\r\n/* =========================================\r\n The dot — `:checked:before` upstream. The element renders [mono-dot] (it is a\r\n `cssClass` slot); hand-written markup may leave the circle empty and take the\r\n pseudo-element instead. Both are out of flow (`inset: 0; margin: auto`) so the\r\n circle keeps a stable synthesised baseline.\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/radio.css .field > input[type='radio'], .input[type='radio'] >> &:checked:before\r\n — absolute top-1/2 left-1/2 content-[''] -translate-x/y-1/2 rounded-full */\r\n/* basecoat@1.0.2 styles/vega.css :is(.field > input[type='radio'], .input[type='radio']):checked:before\r\n — size-2 bg-primary-foreground (mono: that share of the box, so it tracks every step) */\r\n:where([mono-radio]) > [mono-circle] > [mono-dot],\r\n:where([mono-radio]) > [mono-circle]:not(:has([mono-dot]))::before {\r\n content: \"\";\r\n position: absolute;\r\n inset: 0;\r\n margin: auto;\r\n width: var(--_mono-radio-dot);\r\n height: var(--_mono-radio-dot);\r\n border-radius: var(--mono-radio-dot-radius, var(--mono-radius-full));\r\n background-color: var(--_mono-radio-dot-color);\r\n transform: scale(0);\r\n opacity: 0;\r\n transition-property: transform, opacity, background-color;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n[mono-radio][mono-checked] > [mono-circle] > [mono-dot],\r\n[mono-radio][mono-checked] > [mono-circle]:not(:has([mono-dot]))::before,\r\n:where([mono-radio]) > [mono-input]:checked + [mono-circle] > [mono-dot],\r\n:where([mono-radio]) > [mono-input]:checked + [mono-circle]:not(:has([mono-dot]))::before {\r\n transform: scale(1);\r\n opacity: 1;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n :where([mono-radio]) > [mono-circle],\r\n :where([mono-radio]) > [mono-circle] > [mono-dot],\r\n :where([mono-radio]) > [mono-circle]::before {\r\n transition: none;\r\n }\r\n}\r\n\r\n/* =========================================\r\n Label\r\n ========================================= */\r\n\r\n:where([mono-radio]) > [mono-label] {\r\n min-width: 0;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > label, .label — text-sm leading-snug font-medium;\r\n `block` so the first line box is exactly font × line-height */\r\n:where([mono-radio]) [mono-label-text] {\r\n display: block;\r\n font-size: var(--_mono-radio-label-font);\r\n line-height: var(--_mono-radio-label-line-height);\r\n font-weight: var(--mono-radio-label-font-weight, var(--mono-label-font-weight, var(--mono-font-weight-medium)));\r\n color: var(--_mono-radio-text);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .fieldset legend + p, .field > p, .field section > p\r\n — text-sm text-muted-foreground leading-normal font-normal; EXTENSION: one step\r\n under the label per size */\r\n:where([mono-radio]) [mono-description] {\r\n display: block;\r\n margin-top: calc(var(--mono-spacing) * 0.5);\r\n font-size: var(--_mono-radio-description-font);\r\n line-height: var(--mono-leading-normal);\r\n font-weight: var(--mono-font-weight-normal);\r\n color: var(--_mono-radio-description);\r\n}\r\n";
|
|
279
9
|
|
|
@@ -367,47 +97,5 @@ let MonoRadioShadow = class MonoRadioShadow extends withShadowUtilityStyles(Mono
|
|
|
367
97
|
};
|
|
368
98
|
MonoRadioShadow = __decorate([customElement("mono-shadow-radio")], MonoRadioShadow);
|
|
369
99
|
|
|
370
|
-
//#endregion
|
|
371
|
-
//#region src/components/radio/radio-utils.ts
|
|
372
|
-
/**
|
|
373
|
-
* Validate radio props
|
|
374
|
-
*/
|
|
375
|
-
function validateRadioProps(props) {
|
|
376
|
-
const validSizes = [
|
|
377
|
-
"xs",
|
|
378
|
-
"sm",
|
|
379
|
-
"md",
|
|
380
|
-
"lg",
|
|
381
|
-
"xl",
|
|
382
|
-
"xxl"
|
|
383
|
-
];
|
|
384
|
-
const validColors = [
|
|
385
|
-
"primary",
|
|
386
|
-
"secondary",
|
|
387
|
-
"success",
|
|
388
|
-
"danger",
|
|
389
|
-
"warning",
|
|
390
|
-
"info",
|
|
391
|
-
"teal",
|
|
392
|
-
"purple",
|
|
393
|
-
"neutral",
|
|
394
|
-
"dark"
|
|
395
|
-
];
|
|
396
|
-
if (props.size && !validSizes.includes(props.size)) return false;
|
|
397
|
-
if (props.color && !validColors.includes(props.color)) return false;
|
|
398
|
-
return true;
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* Generate ARIA attributes for accessibility
|
|
402
|
-
*/
|
|
403
|
-
function generateRadioAttributes(disabled, checked, label) {
|
|
404
|
-
return {
|
|
405
|
-
"aria-disabled": disabled ? "true" : void 0,
|
|
406
|
-
"aria-checked": String(checked),
|
|
407
|
-
"role": "radio",
|
|
408
|
-
"aria-label": label || void 0
|
|
409
|
-
};
|
|
410
|
-
}
|
|
411
|
-
|
|
412
100
|
//#endregion
|
|
413
101
|
export { MonoRadioCore, MonoRadioShadow, generateRadioAttributes, validateRadioProps };
|