vintage-frames 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +58 -2
- package/dist/components/vf-checkbox.d.ts +5 -0
- package/dist/components/vf-checkbox.js +18 -10
- package/dist/components/vf-radio.d.ts +5 -0
- package/dist/components/vf-radio.js +16 -11
- package/dist/styles/recipes/toggle.js +8 -0
- package/editor/vscode.html-custom-data.json +2 -2
- package/editor/web-types.json +5 -5
- package/package.json +1 -1
package/custom-elements.json
CHANGED
|
@@ -1144,7 +1144,7 @@
|
|
|
1144
1144
|
],
|
|
1145
1145
|
"slots": [
|
|
1146
1146
|
{
|
|
1147
|
-
"description": "The label, rendered to the right of the box with a 6px gap.",
|
|
1147
|
+
"description": "The label, rendered to the right of the box with a 6px gap. Left empty, the label and its gap collapse: the control is the bare 13×13 box.",
|
|
1148
1148
|
"name": ""
|
|
1149
1149
|
}
|
|
1150
1150
|
],
|
|
@@ -1185,6 +1185,16 @@
|
|
|
1185
1185
|
"description": "Value submitted with the form while checked.",
|
|
1186
1186
|
"attribute": "value"
|
|
1187
1187
|
},
|
|
1188
|
+
{
|
|
1189
|
+
"kind": "field",
|
|
1190
|
+
"name": "_hasLabel",
|
|
1191
|
+
"type": {
|
|
1192
|
+
"text": "boolean"
|
|
1193
|
+
},
|
|
1194
|
+
"privacy": "private",
|
|
1195
|
+
"default": "false",
|
|
1196
|
+
"description": "Whether the slot holds non-whitespace content; gates the label row."
|
|
1197
|
+
},
|
|
1188
1198
|
{
|
|
1189
1199
|
"kind": "field",
|
|
1190
1200
|
"name": "valueMissing",
|
|
@@ -1241,6 +1251,24 @@
|
|
|
1241
1251
|
"module": "src/toggle-control.ts"
|
|
1242
1252
|
}
|
|
1243
1253
|
},
|
|
1254
|
+
{
|
|
1255
|
+
"kind": "method",
|
|
1256
|
+
"name": "#onLabelSlotChange",
|
|
1257
|
+
"privacy": "private",
|
|
1258
|
+
"return": {
|
|
1259
|
+
"type": {
|
|
1260
|
+
"text": "void"
|
|
1261
|
+
}
|
|
1262
|
+
},
|
|
1263
|
+
"parameters": [
|
|
1264
|
+
{
|
|
1265
|
+
"name": "event",
|
|
1266
|
+
"type": {
|
|
1267
|
+
"text": "Event"
|
|
1268
|
+
}
|
|
1269
|
+
}
|
|
1270
|
+
]
|
|
1271
|
+
},
|
|
1244
1272
|
{
|
|
1245
1273
|
"kind": "method",
|
|
1246
1274
|
"name": "formResetCallback",
|
|
@@ -9966,7 +9994,7 @@
|
|
|
9966
9994
|
],
|
|
9967
9995
|
"slots": [
|
|
9968
9996
|
{
|
|
9969
|
-
"description": "The label, rendered to the right of the circle with a 6px gap.",
|
|
9997
|
+
"description": "The label, rendered to the right of the circle with a 6px gap. Left empty, the label and its gap collapse: the control is the bare 13×13 circle.",
|
|
9970
9998
|
"name": ""
|
|
9971
9999
|
}
|
|
9972
10000
|
],
|
|
@@ -10016,6 +10044,16 @@
|
|
|
10016
10044
|
"default": "false",
|
|
10017
10045
|
"description": "True while the containing `vf-radio-group` is disabled. Managed by the\ngroup — not intended to be set by consumers."
|
|
10018
10046
|
},
|
|
10047
|
+
{
|
|
10048
|
+
"kind": "field",
|
|
10049
|
+
"name": "_hasLabel",
|
|
10050
|
+
"type": {
|
|
10051
|
+
"text": "boolean"
|
|
10052
|
+
},
|
|
10053
|
+
"privacy": "private",
|
|
10054
|
+
"default": "false",
|
|
10055
|
+
"description": "Whether the slot holds non-whitespace content; gates the label row."
|
|
10056
|
+
},
|
|
10019
10057
|
{
|
|
10020
10058
|
"kind": "field",
|
|
10021
10059
|
"name": "internals",
|
|
@@ -10067,6 +10105,24 @@
|
|
|
10067
10105
|
"module": "src/toggle-control.ts"
|
|
10068
10106
|
}
|
|
10069
10107
|
},
|
|
10108
|
+
{
|
|
10109
|
+
"kind": "method",
|
|
10110
|
+
"name": "#onLabelSlotChange",
|
|
10111
|
+
"privacy": "private",
|
|
10112
|
+
"return": {
|
|
10113
|
+
"type": {
|
|
10114
|
+
"text": "void"
|
|
10115
|
+
}
|
|
10116
|
+
},
|
|
10117
|
+
"parameters": [
|
|
10118
|
+
{
|
|
10119
|
+
"name": "event",
|
|
10120
|
+
"type": {
|
|
10121
|
+
"text": "Event"
|
|
10122
|
+
}
|
|
10123
|
+
}
|
|
10124
|
+
]
|
|
10125
|
+
},
|
|
10070
10126
|
{
|
|
10071
10127
|
"kind": "method",
|
|
10072
10128
|
"name": "activate",
|
|
@@ -12,6 +12,8 @@ declare const VfCheckbox_base: (new (...args: any[]) => import("../position.js")
|
|
|
12
12
|
* click and Space.
|
|
13
13
|
*
|
|
14
14
|
* @slot - The label, rendered to the right of the box with a 6px gap.
|
|
15
|
+
* Left empty, the label and its gap collapse: the control is the bare
|
|
16
|
+
* 13×13 box.
|
|
15
17
|
* @csspart box - The 13×13 checkbox square.
|
|
16
18
|
* @csspart label - The label wrapper around the slot.
|
|
17
19
|
* @fires vf-change - When toggled by user interaction. `detail: { checked: boolean }`.
|
|
@@ -22,6 +24,7 @@ declare const VfCheckbox_base: (new (...args: any[]) => import("../position.js")
|
|
|
22
24
|
* form delegation and framework bindings hear it.
|
|
23
25
|
*/
|
|
24
26
|
export declare class VfCheckbox extends VfCheckbox_base {
|
|
27
|
+
#private;
|
|
25
28
|
static styles: import("lit").CSSResult[];
|
|
26
29
|
/** Whether the checkbox is checked. */
|
|
27
30
|
checked: boolean;
|
|
@@ -29,6 +32,8 @@ export declare class VfCheckbox extends VfCheckbox_base {
|
|
|
29
32
|
name: string;
|
|
30
33
|
/** Value submitted with the form while checked. */
|
|
31
34
|
value: string;
|
|
35
|
+
/** Whether the slot holds non-whitespace content; gates the label row. */
|
|
36
|
+
private _hasLabel;
|
|
32
37
|
/** `required` on a checkbox means it must be checked, as on a native one. */
|
|
33
38
|
protected get valueMissing(): boolean;
|
|
34
39
|
/** The message a native `<input type="checkbox" required>` reports. */
|
|
@@ -10,10 +10,10 @@ import { CHECKBOX_X as l, glyphSvg as u } from "../glyphs.js";
|
|
|
10
10
|
import { VfFormControl as d } from "../form-control.js";
|
|
11
11
|
import { VfToggleControl as f } from "../toggle-control.js";
|
|
12
12
|
import { css as p, html as m } from "lit";
|
|
13
|
-
import { property as h } from "lit/decorators.js";
|
|
14
|
-
import { classMap as
|
|
13
|
+
import { property as h, state as g } from "lit/decorators.js";
|
|
14
|
+
import { classMap as _ } from "lit/directives/class-map.js";
|
|
15
15
|
//#region src/components/vf-checkbox.ts
|
|
16
|
-
var
|
|
16
|
+
var v = class extends n(f(d)) {
|
|
17
17
|
static {
|
|
18
18
|
this.styles = [
|
|
19
19
|
i,
|
|
@@ -80,7 +80,7 @@ var _ = class extends n(f(d)) {
|
|
|
80
80
|
return "Please check this box if you want to proceed.";
|
|
81
81
|
}
|
|
82
82
|
constructor() {
|
|
83
|
-
super(), this.checked = !1, this.name = "", this.value = "on", this.internals.role = "checkbox";
|
|
83
|
+
super(), this.checked = !1, this.name = "", this.value = "on", this._hasLabel = !1, this.internals.role = "checkbox";
|
|
84
84
|
}
|
|
85
85
|
connectedCallback() {
|
|
86
86
|
super.connectedCallback(), this.latchFormDefault(this.checked);
|
|
@@ -95,7 +95,7 @@ var _ = class extends n(f(d)) {
|
|
|
95
95
|
let e = this.isDisabled;
|
|
96
96
|
return m`
|
|
97
97
|
<span
|
|
98
|
-
class=${
|
|
98
|
+
class=${_({
|
|
99
99
|
box: !0,
|
|
100
100
|
dim: e,
|
|
101
101
|
"vf-snap": !0
|
|
@@ -105,15 +105,23 @@ var _ = class extends n(f(d)) {
|
|
|
105
105
|
>
|
|
106
106
|
${u(l, "check")}
|
|
107
107
|
</span>
|
|
108
|
-
<span
|
|
108
|
+
<span
|
|
109
|
+
class=${_({
|
|
109
110
|
label: !0,
|
|
110
111
|
dim: e,
|
|
112
|
+
empty: !this._hasLabel,
|
|
111
113
|
"vf-snap": !0
|
|
112
|
-
})}
|
|
113
|
-
|
|
114
|
+
})}
|
|
115
|
+
part="label"
|
|
116
|
+
>
|
|
117
|
+
<slot @slotchange=${this.#e}></slot>
|
|
114
118
|
</span>
|
|
115
119
|
`;
|
|
116
120
|
}
|
|
121
|
+
#e(e) {
|
|
122
|
+
let t = e.target;
|
|
123
|
+
this._hasLabel = t.assignedNodes({ flatten: !0 }).some((e) => e.nodeType === Node.ELEMENT_NODE || !!e.textContent?.trim());
|
|
124
|
+
}
|
|
117
125
|
updated(e) {
|
|
118
126
|
super.updated(e), (e.has("checked") || e.has("value") || this.disabledChanged(e)) && this.syncFormValue(this.checked ? this.value : null);
|
|
119
127
|
}
|
|
@@ -130,6 +138,6 @@ var _ = class extends n(f(d)) {
|
|
|
130
138
|
t([h({
|
|
131
139
|
type: Boolean,
|
|
132
140
|
reflect: !0
|
|
133
|
-
})],
|
|
141
|
+
})], v.prototype, "checked", void 0), t([h({ reflect: !0 })], v.prototype, "name", void 0), t([h()], v.prototype, "value", void 0), t([g()], v.prototype, "_hasLabel", void 0), v = t([e("vf-checkbox")], v);
|
|
134
142
|
//#endregion
|
|
135
|
-
export {
|
|
143
|
+
export { v as VfCheckbox };
|
|
@@ -13,11 +13,14 @@ declare const VfRadio_base: (new (...args: any[]) => import("../position.js").Vf
|
|
|
13
13
|
* unselects its siblings.
|
|
14
14
|
*
|
|
15
15
|
* @slot - The label, rendered to the right of the circle with a 6px gap.
|
|
16
|
+
* Left empty, the label and its gap collapse: the control is the bare
|
|
17
|
+
* 13×13 circle.
|
|
16
18
|
* @csspart circle - The 13×13 radio circle.
|
|
17
19
|
* @csspart label - The label wrapper around the slot.
|
|
18
20
|
* @fires vf-change - When selected by user interaction. `detail: { value: string }`.
|
|
19
21
|
*/
|
|
20
22
|
export declare class VfRadio extends VfRadio_base {
|
|
23
|
+
#private;
|
|
21
24
|
static styles: import("lit").CSSResult[];
|
|
22
25
|
/** Whether this radio is selected. Managed by the containing group. */
|
|
23
26
|
checked: boolean;
|
|
@@ -30,6 +33,8 @@ export declare class VfRadio extends VfRadio_base {
|
|
|
30
33
|
* group — not intended to be set by consumers.
|
|
31
34
|
*/
|
|
32
35
|
groupDisabled: boolean;
|
|
36
|
+
/** Whether the slot holds non-whitespace content; gates the label row. */
|
|
37
|
+
private _hasLabel;
|
|
33
38
|
private readonly internals;
|
|
34
39
|
constructor();
|
|
35
40
|
/**
|
|
@@ -9,10 +9,10 @@ import { emit as s } from "../events.js";
|
|
|
9
9
|
import { RADIO_DOT as c, RADIO_FACE as l, RADIO_RING as u, RADIO_RING_PRESSED as d } from "../glyphs.js";
|
|
10
10
|
import { VfToggleControl as f } from "../toggle-control.js";
|
|
11
11
|
import { LitElement as p, css as m, html as h } from "lit";
|
|
12
|
-
import { property as g } from "lit/decorators.js";
|
|
13
|
-
import { classMap as
|
|
12
|
+
import { property as g, state as _ } from "lit/decorators.js";
|
|
13
|
+
import { classMap as v } from "lit/directives/class-map.js";
|
|
14
14
|
//#region src/components/vf-radio.ts
|
|
15
|
-
var
|
|
15
|
+
var y = class extends n(f(p)) {
|
|
16
16
|
static {
|
|
17
17
|
this.styles = [
|
|
18
18
|
i,
|
|
@@ -82,7 +82,7 @@ var v = class extends n(f(p)) {
|
|
|
82
82
|
];
|
|
83
83
|
}
|
|
84
84
|
constructor() {
|
|
85
|
-
super(), this.checked = !1, this.disabled = !1, this.value = "", this.groupDisabled = !1, this.internals = this.attachInternals(), this.internals.role = "radio";
|
|
85
|
+
super(), this.checked = !1, this.disabled = !1, this.value = "", this.groupDisabled = !1, this._hasLabel = !1, this.internals = this.attachInternals(), this.internals.role = "radio";
|
|
86
86
|
}
|
|
87
87
|
get toggleInternals() {
|
|
88
88
|
return this.internals;
|
|
@@ -97,7 +97,7 @@ var v = class extends n(f(p)) {
|
|
|
97
97
|
let e = this.toggleDisabled;
|
|
98
98
|
return h`
|
|
99
99
|
<span
|
|
100
|
-
class=${
|
|
100
|
+
class=${v({
|
|
101
101
|
circle: !0,
|
|
102
102
|
dim: e,
|
|
103
103
|
"vf-snap": !0
|
|
@@ -112,14 +112,19 @@ var v = class extends n(f(p)) {
|
|
|
112
112
|
<path class="dot" d=${c.d}></path>
|
|
113
113
|
</svg>
|
|
114
114
|
</span>
|
|
115
|
-
<span class=${
|
|
115
|
+
<span class=${v({
|
|
116
116
|
label: !0,
|
|
117
|
-
dim: e
|
|
117
|
+
dim: e,
|
|
118
|
+
empty: !this._hasLabel
|
|
118
119
|
})} part="label">
|
|
119
|
-
<slot></slot>
|
|
120
|
+
<slot @slotchange=${this.#e}></slot>
|
|
120
121
|
</span>
|
|
121
122
|
`;
|
|
122
123
|
}
|
|
124
|
+
#e(e) {
|
|
125
|
+
let t = e.target;
|
|
126
|
+
this._hasLabel = t.assignedNodes({ flatten: !0 }).some((e) => e.nodeType === Node.ELEMENT_NODE || !!e.textContent?.trim());
|
|
127
|
+
}
|
|
123
128
|
activate() {
|
|
124
129
|
this.checked || (this.externallyCoordinated || (this.checked = !0), this.focus(), s(this, "vf-change", { value: this.value }));
|
|
125
130
|
}
|
|
@@ -127,9 +132,9 @@ var v = class extends n(f(p)) {
|
|
|
127
132
|
t([g({
|
|
128
133
|
type: Boolean,
|
|
129
134
|
reflect: !0
|
|
130
|
-
})],
|
|
135
|
+
})], y.prototype, "checked", void 0), t([g({
|
|
131
136
|
type: Boolean,
|
|
132
137
|
reflect: !0
|
|
133
|
-
})],
|
|
138
|
+
})], y.prototype, "disabled", void 0), t([g()], y.prototype, "value", void 0), t([g({ attribute: !1 })], y.prototype, "groupDisabled", void 0), t([_()], y.prototype, "_hasLabel", void 0), y = t([e("vf-radio")], y);
|
|
134
139
|
//#endregion
|
|
135
|
-
export {
|
|
140
|
+
export { y as VfRadio };
|
|
@@ -27,6 +27,14 @@ var t = e`
|
|
|
27
27
|
:host(:focus-visible) {
|
|
28
28
|
outline: none;
|
|
29
29
|
}
|
|
30
|
+
/* An empty slot still generates the label flex item, and the host gap with
|
|
31
|
+
it — a bare (label-less) control would carry 6px of phantom trailing
|
|
32
|
+
width. Each control marks the wrapper from its slotchange; display: none
|
|
33
|
+
removes the item from the gap math. The slot stays in the DOM so content
|
|
34
|
+
added later still assigns and re-fires slotchange. */
|
|
35
|
+
.label.empty {
|
|
36
|
+
display: none;
|
|
37
|
+
}
|
|
30
38
|
/* Disabled dims the label only; the box/circle glyphs stay solid black. */
|
|
31
39
|
.label.dim {
|
|
32
40
|
color: var(--vf-disabled, #c0c0c0);
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
"name": "vf-checkbox",
|
|
115
|
-
"description": "The classic System 7 checkbox: a 13×13 white square with a 1px black\nborder whose checked state is the corner-to-corner ✕ glyph — the pixel-exact\ncross traced from the Classic Macintosh UI Kit sprite. The border \"thickens\"\nwhile pressed, exactly like the original control.\n\nForm-associated: submits `value` under `name` when checked (like a native\ncheckbox) and restores its initial checked state on form reset. Toggles on\nclick and Space.\n---\n\n\n### **Events:**\n - **vf-change** - When toggled by user interaction. `detail: { checked: boolean }`.\n- **input** - Native event, dispatched from the host per user toggle (with `change`, the pair a native checkbox fires). A programmatic `checked` set fires nothing, as on a native checkbox.\n- **change** - Native event, dispatched from the host per user toggle so form delegation and framework bindings hear it.\n\n### **Slots:**\n - _default_ - The label, rendered to the right of the box with a 6px gap.\n\n### **CSS Parts:**\n - **box** - The 13×13 checkbox square.\n- **label** - The label wrapper around the slot.",
|
|
115
|
+
"description": "The classic System 7 checkbox: a 13×13 white square with a 1px black\nborder whose checked state is the corner-to-corner ✕ glyph — the pixel-exact\ncross traced from the Classic Macintosh UI Kit sprite. The border \"thickens\"\nwhile pressed, exactly like the original control.\n\nForm-associated: submits `value` under `name` when checked (like a native\ncheckbox) and restores its initial checked state on form reset. Toggles on\nclick and Space.\n---\n\n\n### **Events:**\n - **vf-change** - When toggled by user interaction. `detail: { checked: boolean }`.\n- **input** - Native event, dispatched from the host per user toggle (with `change`, the pair a native checkbox fires). A programmatic `checked` set fires nothing, as on a native checkbox.\n- **change** - Native event, dispatched from the host per user toggle so form delegation and framework bindings hear it.\n\n### **Slots:**\n - _default_ - The label, rendered to the right of the box with a 6px gap. Left empty, the label and its gap collapse: the control is the bare 13×13 box.\n\n### **CSS Parts:**\n - **box** - The 13×13 checkbox square.\n- **label** - The label wrapper around the slot.",
|
|
116
116
|
"attributes": [
|
|
117
117
|
{
|
|
118
118
|
"name": "checked",
|
|
@@ -865,7 +865,7 @@
|
|
|
865
865
|
},
|
|
866
866
|
{
|
|
867
867
|
"name": "vf-radio",
|
|
868
|
-
"description": "A single System 7 radio button: a 13×13 white circle with the pixel-exact\n1-bit ring and centered dot traced from the Classic Macintosh UI Kit sprite\n(replacing the anti-aliased `border-radius` rendering). The ring thickens\nwhile pressed, exactly like the original control.\n\nRadios are meant to live inside a `vf-radio-group`, which owns selection\nstate, the form value and the roving tabindex. A `vf-radio` is NOT itself\nform-associated. Clicking (or pressing Space on) an unselected radio\ndispatches `vf-change`; the containing group listens, selects it and\nunselects its siblings.\n---\n\n\n### **Events:**\n - **vf-change** - When selected by user interaction. `detail: { value: string }`.\n\n### **Slots:**\n - _default_ - The label, rendered to the right of the circle with a 6px gap.\n\n### **CSS Parts:**\n - **circle** - The 13×13 radio circle.\n- **label** - The label wrapper around the slot.",
|
|
868
|
+
"description": "A single System 7 radio button: a 13×13 white circle with the pixel-exact\n1-bit ring and centered dot traced from the Classic Macintosh UI Kit sprite\n(replacing the anti-aliased `border-radius` rendering). The ring thickens\nwhile pressed, exactly like the original control.\n\nRadios are meant to live inside a `vf-radio-group`, which owns selection\nstate, the form value and the roving tabindex. A `vf-radio` is NOT itself\nform-associated. Clicking (or pressing Space on) an unselected radio\ndispatches `vf-change`; the containing group listens, selects it and\nunselects its siblings.\n---\n\n\n### **Events:**\n - **vf-change** - When selected by user interaction. `detail: { value: string }`.\n\n### **Slots:**\n - _default_ - The label, rendered to the right of the circle with a 6px gap. Left empty, the label and its gap collapse: the control is the bare 13×13 circle.\n\n### **CSS Parts:**\n - **circle** - The 13×13 radio circle.\n- **label** - The label wrapper around the slot.",
|
|
869
869
|
"attributes": [
|
|
870
870
|
{
|
|
871
871
|
"name": "checked",
|
package/editor/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
3
|
"name": "vintage-frames",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.1",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -242,7 +242,7 @@
|
|
|
242
242
|
},
|
|
243
243
|
{
|
|
244
244
|
"name": "vf-checkbox",
|
|
245
|
-
"description": "The classic System 7 checkbox: a 13×13 white square with a 1px black\nborder whose checked state is the corner-to-corner ✕ glyph — the pixel-exact\ncross traced from the Classic Macintosh UI Kit sprite. The border \"thickens\"\nwhile pressed, exactly like the original control.\n\nForm-associated: submits `value` under `name` when checked (like a native\ncheckbox) and restores its initial checked state on form reset. Toggles on\nclick and Space.\n---\n\n\n### **Events:**\n - **vf-change** - When toggled by user interaction. `detail: { checked: boolean }`.\n- **input** - Native event, dispatched from the host per user toggle (with `change`, the pair a native checkbox fires). A programmatic `checked` set fires nothing, as on a native checkbox.\n- **change** - Native event, dispatched from the host per user toggle so form delegation and framework bindings hear it.\n\n### **Slots:**\n - _default_ - The label, rendered to the right of the box with a 6px gap.\n\n### **CSS Parts:**\n - **box** - The 13×13 checkbox square.\n- **label** - The label wrapper around the slot.",
|
|
245
|
+
"description": "The classic System 7 checkbox: a 13×13 white square with a 1px black\nborder whose checked state is the corner-to-corner ✕ glyph — the pixel-exact\ncross traced from the Classic Macintosh UI Kit sprite. The border \"thickens\"\nwhile pressed, exactly like the original control.\n\nForm-associated: submits `value` under `name` when checked (like a native\ncheckbox) and restores its initial checked state on form reset. Toggles on\nclick and Space.\n---\n\n\n### **Events:**\n - **vf-change** - When toggled by user interaction. `detail: { checked: boolean }`.\n- **input** - Native event, dispatched from the host per user toggle (with `change`, the pair a native checkbox fires). A programmatic `checked` set fires nothing, as on a native checkbox.\n- **change** - Native event, dispatched from the host per user toggle so form delegation and framework bindings hear it.\n\n### **Slots:**\n - _default_ - The label, rendered to the right of the box with a 6px gap. Left empty, the label and its gap collapse: the control is the bare 13×13 box.\n\n### **CSS Parts:**\n - **box** - The 13×13 checkbox square.\n- **label** - The label wrapper around the slot.",
|
|
246
246
|
"doc-url": "",
|
|
247
247
|
"attributes": [
|
|
248
248
|
{
|
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
"slots": [
|
|
285
285
|
{
|
|
286
286
|
"name": "",
|
|
287
|
-
"description": "The label, rendered to the right of the box with a 6px gap."
|
|
287
|
+
"description": "The label, rendered to the right of the box with a 6px gap. Left empty, the label and its gap collapse: the control is the bare 13×13 box."
|
|
288
288
|
}
|
|
289
289
|
],
|
|
290
290
|
"events": [
|
|
@@ -2066,7 +2066,7 @@
|
|
|
2066
2066
|
},
|
|
2067
2067
|
{
|
|
2068
2068
|
"name": "vf-radio",
|
|
2069
|
-
"description": "A single System 7 radio button: a 13×13 white circle with the pixel-exact\n1-bit ring and centered dot traced from the Classic Macintosh UI Kit sprite\n(replacing the anti-aliased `border-radius` rendering). The ring thickens\nwhile pressed, exactly like the original control.\n\nRadios are meant to live inside a `vf-radio-group`, which owns selection\nstate, the form value and the roving tabindex. A `vf-radio` is NOT itself\nform-associated. Clicking (or pressing Space on) an unselected radio\ndispatches `vf-change`; the containing group listens, selects it and\nunselects its siblings.\n---\n\n\n### **Events:**\n - **vf-change** - When selected by user interaction. `detail: { value: string }`.\n\n### **Slots:**\n - _default_ - The label, rendered to the right of the circle with a 6px gap.\n\n### **CSS Parts:**\n - **circle** - The 13×13 radio circle.\n- **label** - The label wrapper around the slot.",
|
|
2069
|
+
"description": "A single System 7 radio button: a 13×13 white circle with the pixel-exact\n1-bit ring and centered dot traced from the Classic Macintosh UI Kit sprite\n(replacing the anti-aliased `border-radius` rendering). The ring thickens\nwhile pressed, exactly like the original control.\n\nRadios are meant to live inside a `vf-radio-group`, which owns selection\nstate, the form value and the roving tabindex. A `vf-radio` is NOT itself\nform-associated. Clicking (or pressing Space on) an unselected radio\ndispatches `vf-change`; the containing group listens, selects it and\nunselects its siblings.\n---\n\n\n### **Events:**\n - **vf-change** - When selected by user interaction. `detail: { value: string }`.\n\n### **Slots:**\n - _default_ - The label, rendered to the right of the circle with a 6px gap. Left empty, the label and its gap collapse: the control is the bare 13×13 circle.\n\n### **CSS Parts:**\n - **circle** - The 13×13 radio circle.\n- **label** - The label wrapper around the slot.",
|
|
2070
2070
|
"doc-url": "",
|
|
2071
2071
|
"attributes": [
|
|
2072
2072
|
{
|
|
@@ -2098,7 +2098,7 @@
|
|
|
2098
2098
|
"slots": [
|
|
2099
2099
|
{
|
|
2100
2100
|
"name": "",
|
|
2101
|
-
"description": "The label, rendered to the right of the circle with a 6px gap."
|
|
2101
|
+
"description": "The label, rendered to the right of the circle with a 6px gap. Left empty, the label and its gap collapse: the control is the bare 13×13 circle."
|
|
2102
2102
|
}
|
|
2103
2103
|
],
|
|
2104
2104
|
"events": [
|