@swiftwc/ui 0.0.0-dev.100 → 0.0.0-dev.101

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.
@@ -0,0 +1,11 @@
1
+ export declare class DetailPlaceholder extends HTMLElement {
2
+ constructor();
3
+ connectedCallback(): void;
4
+ disconnectedCallback(): void;
5
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
6
+ }
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'detail-placeholder': DetailPlaceholder;
10
+ }
11
+ }
@@ -0,0 +1,19 @@
1
+ import { devFlags } from '../internal/utils';
2
+ export class DetailPlaceholder extends HTMLElement {
3
+ constructor() {
4
+ super();
5
+ }
6
+ connectedCallback() {
7
+ if (devFlags.debug)
8
+ console.debug(`${DetailPlaceholder.name} ⚡️ connect`);
9
+ }
10
+ disconnectedCallback() {
11
+ if (devFlags.debug)
12
+ console.debug(`${DetailPlaceholder.name} ⚡️ disconnect`);
13
+ }
14
+ attributeChangedCallback(name, oldValue, newValue) {
15
+ if (devFlags.debug)
16
+ console.debug(`${DetailPlaceholder.name} ⚡️ attr-change [${name}]`);
17
+ //
18
+ }
19
+ }
@@ -7,6 +7,7 @@ export * from './color-scheme';
7
7
  export * from './confirmation-dialog';
8
8
  export * from './content-unavailable';
9
9
  export * from './date-picker';
10
+ export * from './detail-placeholder';
10
11
  export * from './disclosure-group';
11
12
  export * from './fine-tooltip';
12
13
  export * from './form-view';
@@ -39,6 +40,7 @@ export * from './tab-item';
39
40
  export * from './tab-view';
40
41
  export * from './table-view';
41
42
  export * from './text-field';
43
+ export * from './text-view';
42
44
  export * from './toggle-view';
43
45
  export * from './tool-bar-item-group';
44
46
  export * from './tool-bar-item';
@@ -7,6 +7,7 @@ export * from './color-scheme';
7
7
  export * from './confirmation-dialog';
8
8
  export * from './content-unavailable';
9
9
  export * from './date-picker';
10
+ export * from './detail-placeholder';
10
11
  export * from './disclosure-group';
11
12
  export * from './fine-tooltip';
12
13
  export * from './form-view';
@@ -39,6 +40,7 @@ export * from './tab-item';
39
40
  export * from './tab-view';
40
41
  export * from './table-view';
41
42
  export * from './text-field';
43
+ export * from './text-view';
42
44
  export * from './toggle-view';
43
45
  export * from './tool-bar-item-group';
44
46
  export * from './tool-bar-item';
@@ -11,9 +11,9 @@
11
11
  * @slot — Any children without a `slot` attribute are placed in the title block.
12
12
  * @slot icon — Use the `slot="icon"` attribute to place childen in the icon block.
13
13
  *
14
- * @cssprop --label-gap — The gap between the icon and the title.
14
+ * @cssprop {length} --label-gap — The gap between the icon and the title.
15
15
  * @cssprop {number} --label-image-size — The size of the icon.
16
- * @cssprop --label-padding-inline — The padding inline of the label.
16
+ * @cssprop {length}--label-padding-inline — The padding inline of the label.
17
17
  *
18
18
  */
19
19
  export declare class LabelView extends HTMLElement {
@@ -14,9 +14,9 @@ import { html } from '../tpl';
14
14
  * @slot — Any children without a `slot` attribute are placed in the title block.
15
15
  * @slot icon — Use the `slot="icon"` attribute to place childen in the icon block.
16
16
  *
17
- * @cssprop --label-gap — The gap between the icon and the title.
17
+ * @cssprop {length} --label-gap — The gap between the icon and the title.
18
18
  * @cssprop {number} --label-image-size — The size of the icon.
19
- * @cssprop --label-padding-inline — The padding inline of the label.
19
+ * @cssprop {length}--label-padding-inline — The padding inline of the label.
20
20
  *
21
21
  */
22
22
  export class LabelView extends HTMLElement {
@@ -28,6 +28,8 @@ export class LabeledContent extends HTMLElement {
28
28
  'header',
29
29
  'footer',
30
30
  /**
31
+ * Use this to force a specific style.
32
+ *
31
33
  * @type {vertical|horizontal}
32
34
  */
33
35
  'labeled-content-style',
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * @summary A container view that arranges rows of data in a single column, optionally letting the user select one or more of them.
3
3
  *
4
- * @attr {hidden} navigation-link-indicator-visibility — Hides accessories like right-arrow-chevron on NavigationLink buttons inside.
4
+ * @attr {hidden} navigation-link-indicator-visibility — Hides accessories like right-arrow-chevron on NavigationLink buttons inside
5
+ *
6
+ * @cssprop {length} --list-row-gap — The gap between rows
7
+ * @cssprop {length} --list--media-inner-padding-inline-start — The inline paddint start for each row
5
8
  */
6
9
  export declare class ListView extends HTMLElement {
7
10
  constructor();
@@ -3,7 +3,10 @@ import { devFlags, listActive, onoff } from '../internal/utils';
3
3
  /**
4
4
  * @summary A container view that arranges rows of data in a single column, optionally letting the user select one or more of them.
5
5
  *
6
- * @attr {hidden} navigation-link-indicator-visibility — Hides accessories like right-arrow-chevron on NavigationLink buttons inside.
6
+ * @attr {hidden} navigation-link-indicator-visibility — Hides accessories like right-arrow-chevron on NavigationLink buttons inside
7
+ *
8
+ * @cssprop {length} --list-row-gap — The gap between rows
9
+ * @cssprop {length} --list--media-inner-padding-inline-start — The inline paddint start for each row
7
10
  */
8
11
  export class ListView extends HTMLElement {
9
12
  constructor() {
@@ -0,0 +1,11 @@
1
+ export declare class TextView extends HTMLElement {
2
+ constructor();
3
+ connectedCallback(): void;
4
+ disconnectedCallback(): void;
5
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
6
+ }
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'text-view': TextView;
10
+ }
11
+ }
@@ -0,0 +1,19 @@
1
+ import { devFlags } from '../internal/utils';
2
+ export class TextView extends HTMLElement {
3
+ constructor() {
4
+ super();
5
+ }
6
+ connectedCallback() {
7
+ if (devFlags.debug)
8
+ console.debug(`${TextView.name} ⚡️ connect`);
9
+ }
10
+ disconnectedCallback() {
11
+ if (devFlags.debug)
12
+ console.debug(`${TextView.name} ⚡️ disconnect`);
13
+ }
14
+ attributeChangedCallback(name, oldValue, newValue) {
15
+ if (devFlags.debug)
16
+ console.debug(`${TextView.name} ⚡️ attr-change [${name}]`);
17
+ //
18
+ }
19
+ }
@@ -1112,23 +1112,6 @@
1112
1112
  body-view:not([hidden]),
1113
1113
  tab-view:not([hidden]),
1114
1114
  image-view:not([hidden]),
1115
- [is=search-view]:not([hidden]),
1116
- [is=sidebar-view]:not([hidden]),
1117
- [is=tab-bar]:not([hidden]),
1118
- [is=full-screen]:not([hidden]),
1119
- [is=confirmation-dialog]:not([hidden]),
1120
- [is=alert-dialog]:not([hidden]),
1121
- [is=sheet-view]:not([hidden]),
1122
- [is=form-view]:not([hidden]),
1123
- [is=disclosure-group]:not([hidden]),
1124
- [is=table-row]:not([hidden]),
1125
- [is=table-column]:not([hidden]),
1126
- [is=borderless-button]:not([hidden]),
1127
- [is=bordered-button]:not([hidden]),
1128
- [is=bordered-prominent-button]:not([hidden]),
1129
- [is=plain-button]:not([hidden]),
1130
- [is=glass-button]:not([hidden]),
1131
- [is=glass-prominent-button]:not([hidden]),
1132
1115
  list-view:not([hidden]),
1133
1116
  table-view:not([hidden]),
1134
1117
  content-unavailable:not([hidden]),
@@ -1137,7 +1120,6 @@
1137
1120
  tool-bar-item-group:not([hidden]),
1138
1121
  fine-tooltip:not([hidden]),
1139
1122
  sidebar-toggle:not([hidden]),
1140
- [is=form-view]:not([hidden]),
1141
1123
  v-stack:not([hidden]),
1142
1124
  h-stack:not([hidden]),
1143
1125
  group-box:not([hidden]),
@@ -1153,6 +1135,112 @@
1153
1135
  picker-view:not([hidden])) {
1154
1136
  display: grid;
1155
1137
  }
1138
+ :where(tab-view:has(navigation-stack:not(:defined),
1139
+ navigation-split-view:not(:defined),
1140
+ navigation-large-title:not(:defined),
1141
+ navigation-title:not(:defined),
1142
+ scroll-view:not(:defined),
1143
+ body-view:not(:defined),
1144
+ tab-view:not(:defined),
1145
+ image-view:not(:defined),
1146
+ list-view:not(:defined),
1147
+ table-view:not(:defined),
1148
+ content-unavailable:not(:defined),
1149
+ progress-view:not(:defined),
1150
+ tool-bar-item:not(:defined),
1151
+ tool-bar-item-group:not(:defined),
1152
+ fine-tooltip:not(:defined),
1153
+ sidebar-toggle:not(:defined),
1154
+ v-stack:not(:defined),
1155
+ h-stack:not(:defined),
1156
+ group-box:not(:defined),
1157
+ tool-bar:not(:defined),
1158
+ label-view:not(:defined),
1159
+ text-view:not(:defined),
1160
+ labeled-content:not(:defined),
1161
+ menu-view:not(:defined),
1162
+ section-view:not(:defined),
1163
+ text-field:not(:defined),
1164
+ detail-placeholder:not(:defined),
1165
+ sticky-container:not(:defined),
1166
+ picker-view:not(:defined)), navigation-split-view:has(navigation-stack:not(:defined),
1167
+ navigation-split-view:not(:defined),
1168
+ navigation-large-title:not(:defined),
1169
+ navigation-title:not(:defined),
1170
+ scroll-view:not(:defined),
1171
+ body-view:not(:defined),
1172
+ tab-view:not(:defined),
1173
+ image-view:not(:defined),
1174
+ list-view:not(:defined),
1175
+ table-view:not(:defined),
1176
+ content-unavailable:not(:defined),
1177
+ progress-view:not(:defined),
1178
+ tool-bar-item:not(:defined),
1179
+ tool-bar-item-group:not(:defined),
1180
+ fine-tooltip:not(:defined),
1181
+ sidebar-toggle:not(:defined),
1182
+ v-stack:not(:defined),
1183
+ h-stack:not(:defined),
1184
+ group-box:not(:defined),
1185
+ tool-bar:not(:defined),
1186
+ label-view:not(:defined),
1187
+ text-view:not(:defined),
1188
+ labeled-content:not(:defined),
1189
+ menu-view:not(:defined),
1190
+ section-view:not(:defined),
1191
+ text-field:not(:defined),
1192
+ detail-placeholder:not(:defined),
1193
+ sticky-container:not(:defined),
1194
+ picker-view:not(:defined)), navigation-stack:has(navigation-stack:not(:defined),
1195
+ navigation-split-view:not(:defined),
1196
+ navigation-large-title:not(:defined),
1197
+ navigation-title:not(:defined),
1198
+ scroll-view:not(:defined),
1199
+ body-view:not(:defined),
1200
+ tab-view:not(:defined),
1201
+ image-view:not(:defined),
1202
+ list-view:not(:defined),
1203
+ table-view:not(:defined),
1204
+ content-unavailable:not(:defined),
1205
+ progress-view:not(:defined),
1206
+ tool-bar-item:not(:defined),
1207
+ tool-bar-item-group:not(:defined),
1208
+ fine-tooltip:not(:defined),
1209
+ sidebar-toggle:not(:defined),
1210
+ v-stack:not(:defined),
1211
+ h-stack:not(:defined),
1212
+ group-box:not(:defined),
1213
+ tool-bar:not(:defined),
1214
+ label-view:not(:defined),
1215
+ text-view:not(:defined),
1216
+ labeled-content:not(:defined),
1217
+ menu-view:not(:defined),
1218
+ section-view:not(:defined),
1219
+ text-field:not(:defined),
1220
+ detail-placeholder:not(:defined),
1221
+ sticky-container:not(:defined),
1222
+ picker-view:not(:defined))) {
1223
+ visibility: hidden;
1224
+ }
1225
+ :where([is=search-view]:not([hidden]),
1226
+ [is=sidebar-view]:not([hidden]),
1227
+ [is=tab-bar]:not([hidden]),
1228
+ [is=full-screen]:not([hidden]),
1229
+ [is=confirmation-dialog]:not([hidden]),
1230
+ [is=alert-dialog]:not([hidden]),
1231
+ [is=sheet-view]:not([hidden]),
1232
+ [is=form-view]:not([hidden]),
1233
+ [is=disclosure-group]:not([hidden]),
1234
+ [is=table-row]:not([hidden]),
1235
+ [is=table-column]:not([hidden]),
1236
+ [is=borderless-button]:not([hidden]),
1237
+ [is=bordered-button]:not([hidden]),
1238
+ [is=bordered-prominent-button]:not([hidden]),
1239
+ [is=plain-button]:not([hidden]),
1240
+ [is=glass-button]:not([hidden]),
1241
+ [is=glass-prominent-button]:not([hidden])) {
1242
+ display: grid;
1243
+ }
1156
1244
  :where(labeled-content)::part(labeled-content-container),
1157
1245
  :where(labeled-content)::part(labeled-content-container),
1158
1246
  :where(labeled-content)::part(labeled-content-label-stack),
@@ -3574,7 +3662,7 @@
3574
3662
  --labeled-content--value-stack-justify-items: flex-start;
3575
3663
  }
3576
3664
  :where(labeled-content)[labeled-content-style=horizontal] {
3577
- --labeled-content--value-stack-flex-flow: row wrap;
3665
+ --labeled-content--value-stack-flex-flow: row no-wrap;
3578
3666
  --labeled-content--value-stack-justify-items: flex-end;
3579
3667
  }
3580
3668
  :where(labeled-content > :nth-child(n+2 of [slot=label]),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swiftwc/ui",
3
- "version": "0.0.0-dev.100",
3
+ "version": "0.0.0-dev.101",
4
4
  "description": "Elegant SwiftUI-inspired web components for standalone web apps and web extensions.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -12,23 +12,6 @@
12
12
  body-view,
13
13
  tab-view,
14
14
  image-view,
15
- [is='search-view'],
16
- [is='sidebar-view'],
17
- [is='tab-bar'],
18
- [is='full-screen'],
19
- [is='confirmation-dialog'],
20
- [is='alert-dialog'],
21
- [is='sheet-view'],
22
- [is='form-view'],
23
- [is='disclosure-group'],
24
- [is='table-row'],
25
- [is='table-column'],
26
- [is='borderless-button'],
27
- [is='bordered-button'],
28
- [is='bordered-prominent-button'],
29
- [is='plain-button'],
30
- [is='glass-button'],
31
- [is='glass-prominent-button'],
32
15
  list-view,
33
16
  table-view,
34
17
  content-unavailable,
@@ -37,7 +20,6 @@
37
20
  tool-bar-item-group,
38
21
  fine-tooltip,
39
22
  sidebar-toggle,
40
- [is='form-view'],
41
23
  v-stack,
42
24
  h-stack,
43
25
  group-box,
@@ -54,6 +36,32 @@
54
36
  :where(&:not([hidden])) {
55
37
  display: grid;
56
38
  }
39
+
40
+ :where(tab-view:has(&:not(:defined)), navigation-split-view:has(&:not(:defined)), navigation-stack:has(&:not(:defined))) {
41
+ visibility: hidden;
42
+ }
43
+ }
44
+
45
+ [is='search-view'],
46
+ [is='sidebar-view'],
47
+ [is='tab-bar'],
48
+ [is='full-screen'],
49
+ [is='confirmation-dialog'],
50
+ [is='alert-dialog'],
51
+ [is='sheet-view'],
52
+ [is='form-view'],
53
+ [is='disclosure-group'],
54
+ [is='table-row'],
55
+ [is='table-column'],
56
+ [is='borderless-button'],
57
+ [is='bordered-button'],
58
+ [is='bordered-prominent-button'],
59
+ [is='plain-button'],
60
+ [is='glass-button'],
61
+ [is='glass-prominent-button'] {
62
+ :where(&:not([hidden])) {
63
+ display: grid;
64
+ }
57
65
  }
58
66
 
59
67
  :where(labeled-content)::part(labeled-content-container),
@@ -52,7 +52,7 @@
52
52
  }
53
53
 
54
54
  &[labeled-content-style='horizontal'] {
55
- --labeled-content--value-stack-flex-flow: row wrap;
55
+ --labeled-content--value-stack-flex-flow: row no-wrap;
56
56
 
57
57
  --labeled-content--value-stack-justify-items: flex-end;
58
58
  }
@@ -90,6 +90,14 @@
90
90
  // }
91
91
  // }
92
92
 
93
+ // &:not(:defined),
94
+ // &:has(label-view:not(:defined)) {
95
+ // :where(&) {
96
+ // visibility: hidden;
97
+ // // background-color: green;
98
+ // }
99
+ // }
100
+
93
101
  :where(&) {
94
102
  grid-template-columns: subgrid; // inherits columns from container
95
103
  grid-template-rows: subgrid; // inherits rows if needed
@@ -200,6 +200,10 @@
200
200
  ],
201
201
  "description": "A control that selects an absolute date.\n---\n\n```ts\ninterface DatePickerSignature {\n Attributes: {\n 'date-picker-style'?: 'graphical' | 'field' | 'automatic' // The style of this element\n required?: boolean\n prompt?: string\n label?: string\n name?: string\n selection?: string\n disabled?: boolean\n minimum?: string\n maximum?: string\n }\n}\n\nclass DatePicker extends HTMLElement<DatePickerSignature> {\n static formAssociated = true\n\n readonly template: DocumentFragment\n readonly datePickerStyle: 'graphical' | 'field' | 'automatic'\n readonly name: string // Form participation property\n readonly value: { year: string; month: string; day: string }\n readonly valueAsDate: Date | null // Returns the value as a Date object.\n readonly minimum: { year: string; month: string; day: string } | null\n readonly maximum: { year: string; month: string; day: string } | null\n\n setValidity(): void\n setCustomValidity(): void\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'date-picker': DatePicker // <date-picker></date-picker>\n }\n}\n\n```\n"
202
202
  },
203
+ {
204
+ "name": "detail-placeholder",
205
+ "description": "undefined\n\n```ts\ninterface DetailPlaceholderSignature {}\n\nclass DetailPlaceholder extends HTMLElement<DetailPlaceholderSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'detail-placeholder': DetailPlaceholder // <detail-placeholder></detail-placeholder>\n }\n}\n\n```\n"
206
+ },
203
207
  {
204
208
  "name": "disclosure-group",
205
209
  "references": [
@@ -384,7 +388,7 @@
384
388
  "description": "Value Type: \"tail\""
385
389
  }
386
390
  ],
387
- "description": "A view that labels items with an icon and a title.\n---\n\n```ts\ninterface LabelViewSignature {\n Attributes: {\n font?: Font // Sets the default font for text in this view.\n 'system-image'?: string\n title?: string\n 'line-limit'?: string\n 'truncation-mode'?: 'tail'\n }\n\n Slots: {\n default: HTMLElement[] // Any children without a `slot` attribute are placed in the title block.\n icon: HTMLElement[] // Use the `slot=\"icon\"` attribute to place childen in the icon block.\n }\n\n CSSProperties: {\n '--label-gap'?: string // The gap between the icon and the title.\n '--label-image-size'?: number // The size of the icon.\n '--label-padding-inline'?: string // The padding inline of the label.\n }\n}\n\nclass LabelView extends HTMLElement<LabelViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'label-view': LabelView // <label-view></label-view>\n }\n}\n\n```\n\n### **Examples:**\n**Creating a label using a `span` element:**\n```html\n<label-view><span>Hello world!</span></label-view>\n\n```\n**Creating a label using the `title` attribute:**\n```html\n<label-view title=\"Hello world!\"></label-view>\n\n```\n**Creating a label with an icon and a title using the `system-image` attribute:**\n```html\n<label-view system-image=\"hand-waving\"><span>Hello world!</span></label-view>\n\n```\n**Creating a label with an icon and a title using the `icon` slot:**\n```html\n<label-view>\n <i slot=\"icon\" class=\"ph ph-duotone ph-hand-waving\"></i>\n <span>Hello world!</span>\n</label-view>\n\n```\n"
391
+ "description": "A view that labels items with an icon and a title.\n---\n\n```ts\ninterface LabelViewSignature {\n Attributes: {\n font?: Font // Sets the default font for text in this view.\n 'system-image'?: string\n title?: string\n 'line-limit'?: string\n 'truncation-mode'?: 'tail'\n }\n\n Slots: {\n default: HTMLElement[] // Any children without a `slot` attribute are placed in the title block.\n icon: HTMLElement[] // Use the `slot=\"icon\"` attribute to place childen in the icon block.\n }\n\n CSSProperties: {\n '--label-gap'?: length // The gap between the icon and the title.\n '--label-image-size'?: number // The size of the icon.\n '--label-padding-inline'?: length // The padding inline of the label.\n }\n}\n\nclass LabelView extends HTMLElement<LabelViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'label-view': LabelView // <label-view></label-view>\n }\n}\n\n```\n\n### **Examples:**\n**Creating a label using a `span` element:**\n```html\n<label-view><span>Hello world!</span></label-view>\n\n```\n**Creating a label using the `title` attribute:**\n```html\n<label-view title=\"Hello world!\"></label-view>\n\n```\n**Creating a label with an icon and a title using the `system-image` attribute:**\n```html\n<label-view system-image=\"hand-waving\"><span>Hello world!</span></label-view>\n\n```\n**Creating a label with an icon and a title using the `icon` slot:**\n```html\n<label-view>\n <i slot=\"icon\" class=\"ph ph-duotone ph-hand-waving\"></i>\n <span>Hello world!</span>\n</label-view>\n\n```\n"
388
392
  },
389
393
  {
390
394
  "name": "labeled-content",
@@ -409,7 +413,7 @@
409
413
  },
410
414
  {
411
415
  "name": "labeled-content-style",
412
- "description": "Value Type: “vertical” | “horizontal”",
416
+ "description": "Value Type: “vertical” | “horizontal”\nDescription: Use this to force a specific style.",
413
417
  "values": [
414
418
  {
415
419
  "name": "vertical"
@@ -424,7 +428,7 @@
424
428
  "description": "Value Type: \"<format-type>:<locale?>:<format-options?>\"\nDescription: Use this to format the text inside the value attribute. For example `format=\"currency::currency=USD\" value=\"1234.5\"` produces a value of `$1,234.50`."
425
429
  }
426
430
  ],
427
- "description": "A container view that pairs a label with a value.\n---\n\n```ts\ninterface LabeledContentSignature {\n Attributes: {\n value?: string\n label?: string\n header?: string\n footer?: string\n 'labeled-content-style'?: 'vertical' | 'horizontal'\n format?: '<format-type>:<locale?>:<format-options?>' // Use this to format the text inside the value attribute. For example `format=\"currency::currency=USD\" value=\"1234.5\"` produces a value of `$1,234.50`.\n }\n\n Slots: {\n default: HTMLElement[] // The default slot.\n label: HTMLElement[] // Use the `slot=\"label\"` attribute to place childen in the label block.\n header: HTMLElement[]\n footer: HTMLElement[]\n }\n\n Parts: {\n 'labeled-content-container': never\n 'labeled-content-stack': never\n 'labeled-content-label-stack': never\n 'labeled-content-value-stack': never\n }\n}\n\nclass LabeledContent extends HTMLElement<LabeledContentSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'labeled-content': LabeledContent // <labeled-content></labeled-content>\n }\n}\n\n```\n\n### **Examples:**\n**Creates a standard labeled element, with a view that conveys the value of the element and a label:**\n```html\n<labeled-content label=\"Label\" value=\"Content\"></labeled-content>\n\n```\n**Creates a labeled element from a formatted value:**\n```html\n<labeled-content\n label=\"Height\"\n value=\"6\"\n format=\"unit::unit=foot\"\n></labeled-content>\n\n```\n**Creates a labeled element that displays a custom label and a custom subtitle to the label:**\n```html\n<labeled-content value=\"Content\">\n <label-view slot=\"label\" title=\"Custom Value\"></label-view>\n <label-view slot=\"label\" title=\"Custom Subtitle Value\"></label-view>\n</labeled-content>\n\n```\n"
431
+ "description": "A container view that pairs a label with a value.\n---\n\n```ts\ninterface LabeledContentSignature {\n Attributes: {\n value?: string\n label?: string\n header?: string\n footer?: string\n 'labeled-content-style'?: 'vertical' | 'horizontal' // Use this to force a specific style.\n format?: '<format-type>:<locale?>:<format-options?>' // Use this to format the text inside the value attribute. For example `format=\"currency::currency=USD\" value=\"1234.5\"` produces a value of `$1,234.50`.\n }\n\n Slots: {\n default: HTMLElement[] // The default slot.\n label: HTMLElement[] // Use the `slot=\"label\"` attribute to place childen in the label block.\n header: HTMLElement[]\n footer: HTMLElement[]\n }\n\n Parts: {\n 'labeled-content-container': never\n 'labeled-content-stack': never\n 'labeled-content-label-stack': never\n 'labeled-content-value-stack': never\n }\n}\n\nclass LabeledContent extends HTMLElement<LabeledContentSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'labeled-content': LabeledContent // <labeled-content></labeled-content>\n }\n}\n\n```\n\n### **Examples:**\n**Creates a standard labeled element, with a view that conveys the value of the element and a label:**\n```html\n<labeled-content label=\"Label\" value=\"Content\"></labeled-content>\n\n```\n**Creates a labeled element from a formatted value:**\n```html\n<labeled-content\n label=\"Height\"\n value=\"6\"\n format=\"unit::unit=foot\"\n></labeled-content>\n\n```\n**Creates a labeled element that displays a custom label and a custom subtitle to the label:**\n```html\n<labeled-content value=\"Content\">\n <label-view slot=\"label\" title=\"Custom Value\"></label-view>\n <label-view slot=\"label\" title=\"Custom Subtitle Value\"></label-view>\n</labeled-content>\n\n```\n"
428
432
  },
429
433
  {
430
434
  "name": "list-view",
@@ -437,7 +441,7 @@
437
441
  "attributes": [
438
442
  {
439
443
  "name": "navigation-link-indicator-visibility",
440
- "description": "Value Type: “hidden”\n\nDescription: Hides accessories like right-arrow-chevron on NavigationLink buttons inside.",
444
+ "description": "Value Type: “hidden”\n\nDescription: Hides accessories like right-arrow-chevron on NavigationLink buttons inside",
441
445
  "values": [
442
446
  {
443
447
  "name": "hidden"
@@ -445,7 +449,7 @@
445
449
  ]
446
450
  }
447
451
  ],
448
- "description": "A container view that arranges rows of data in a single column, optionally letting the user select one or more of them.\n---\n\n```ts\ninterface ListViewSignature {\n Attributes: {\n 'navigation-link-indicator-visibility'?: 'hidden' // Hides accessories like right-arrow-chevron on NavigationLink buttons inside.\n }\n}\n\nclass ListView extends HTMLElement<ListViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'list-view': ListView // <list-view></list-view>\n }\n}\n\n```\n"
452
+ "description": "A container view that arranges rows of data in a single column, optionally letting the user select one or more of them.\n---\n\n```ts\ninterface ListViewSignature {\n Attributes: {\n 'navigation-link-indicator-visibility'?: 'hidden' // Hides accessories like right-arrow-chevron on NavigationLink buttons inside\n }\n\n CSSProperties: {\n '--list-row-gap'?: length // The gap between rows\n '--list--media-inner-padding-inline-start'?: length // The inline paddint start for each row\n }\n}\n\nclass ListView extends HTMLElement<ListViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'list-view': ListView // <list-view></list-view>\n }\n}\n\n```\n"
449
453
  },
450
454
  {
451
455
  "name": "menu-view",
@@ -861,6 +865,10 @@
861
865
  ],
862
866
  "description": "A control that displays an editable text area.\n---\n\n```ts\ninterface TextFieldSignature {\n Attributes: {\n prompt?: string\n minimum?: string\n maximum?: string\n 'min-length'?: string\n 'max-length'?: string\n label?: string\n name?: string\n text?: string\n 'text-input-autocapitalization'?: string\n 'disable-autocorrection'?: boolean\n 'keyboard-type'?: 'decimal-pad' | 'number-pad' | 'default'\n required?: boolean\n disabled?: boolean\n }\n\n Slots: {\n label: HTMLElement[]\n 'validity-options': HTMLOptionElement[]\n }\n}\n\nclass TextField extends HTMLElement<TextFieldSignature> {\n static formAssociated = true\n\n readonly keyboardType: 'decimal-pad' | 'number-pad' | 'default'\n text: string\n readonly name: string // Form participation property\n readonly value: string\n readonly valueAsNumber: number | ''\n readonly negativeNumbersAllowed: boolean\n\n setValidity(): void\n setCustomValidity(): void\n}\n\ninterface GlobalEventMap<\n Targets = HTMLElementEventMap | DocumentEventMap | WindowEventMap,\n> {\n commit: CustomEvent<{ detail: { text: string } }> // Triggered when user interacts with the input area\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'text-field': TextField // <text-field></text-field>\n }\n}\n\n```\n"
863
867
  },
868
+ {
869
+ "name": "text-view",
870
+ "description": "undefined\n\n```ts\ninterface TextViewSignature {}\n\nclass TextView extends HTMLElement<TextViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'text-view': TextView // <text-view></text-view>\n }\n}\n\n```\n"
871
+ },
864
872
  {
865
873
  "name": "toggle-view",
866
874
  "references": [