@swiftwc/ui 0.0.0-dev.44 → 0.0.0-dev.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/generated/client/index.d.ts +1 -1
  2. package/generated/client/index.js +6 -21
  3. package/generated/components/bordered-button.d.ts +4 -0
  4. package/generated/components/bordered-button.js +12 -1
  5. package/generated/components/bordered-prominent-button.d.ts +4 -0
  6. package/generated/components/bordered-prominent-button.js +12 -1
  7. package/generated/components/borderless-button.d.ts +4 -0
  8. package/generated/components/borderless-button.js +12 -1
  9. package/generated/components/disclosure-group.d.ts +5 -0
  10. package/generated/components/disclosure-group.js +5 -0
  11. package/generated/components/form-view.d.ts +3 -0
  12. package/generated/components/form-view.js +3 -0
  13. package/generated/components/glass-button.d.ts +4 -0
  14. package/generated/components/glass-button.js +12 -1
  15. package/generated/components/glass-prominent-button.d.ts +4 -0
  16. package/generated/components/glass-prominent-button.js +12 -1
  17. package/generated/components/index.d.ts +1 -0
  18. package/generated/components/index.js +1 -0
  19. package/generated/components/list-view.d.ts +3 -0
  20. package/generated/components/list-view.js +3 -0
  21. package/generated/components/menu-view.d.ts +3 -0
  22. package/generated/components/menu-view.js +3 -0
  23. package/generated/components/navigation-link.d.ts +10 -0
  24. package/generated/components/navigation-link.js +25 -0
  25. package/generated/components/picker-view.js +1 -1
  26. package/generated/components/progress-view.d.ts +1 -1
  27. package/generated/components/progress-view.js +1 -1
  28. package/generated/components/search-view.d.ts +0 -1
  29. package/generated/components/search-view.js +3 -3
  30. package/generated/components/table-view.d.ts +3 -0
  31. package/generated/components/table-view.js +3 -0
  32. package/package.json +1 -1
  33. package/web-components.html-data/en.json +91 -23
@@ -11,7 +11,7 @@ export declare const alert: (title?: string, message?: string, actions?: {
11
11
  role?: string;
12
12
  }[], options?: {
13
13
  titleVisibility?: boolean;
14
- }) => Promise<void>;
14
+ }) => Promise<string>;
15
15
  export declare const confirmationDialog: (trigger: HTMLElement, title: string, message?: string, actions?: {
16
16
  label?: string;
17
17
  image?: string;
@@ -171,7 +171,7 @@ if (mediaQueryList.matches)
171
171
  document.addEventListener(k, v, { passive: true });
172
172
  //#region fns
173
173
  export const alert = async (title, message, actions, options) => {
174
- await navigator.locks.request('alert:', async () => {
174
+ return await navigator.locks.request('alert:', async () => {
175
175
  const dialog = $(`<dialog is="alert-dialog"></dialog>`, '>1'), vStack = dialog.querySelector(':scope>v-stack') ?? dialog.appendChild($(`<v-stack spacing="1" alignment="fill"></v-stack>`, '>1'));
176
176
  if (title) {
177
177
  const label = $(`<label-view font="headline"></label-view>`, '>1');
@@ -205,8 +205,9 @@ export const alert = async (title, message, actions, options) => {
205
205
  document.body.insertAdjacentElement('beforeend', dialog);
206
206
  dialog.showModal();
207
207
  const { promise, resolve } = Promise.withResolvers(), off = onoff('alert:return', (evt) => {
208
+ const { detail } = evt;
208
209
  off();
209
- resolve(evt.detail.returnValue);
210
+ resolve(detail.returnValue);
210
211
  }, alertDialog, { once: true }).on();
211
212
  return promise;
212
213
  });
@@ -243,30 +244,14 @@ export const confirmationDialog = async (trigger, title, message, actions, optio
243
244
  }
244
245
  trigger.closest('body-view,dialog')?.insertAdjacentElement('beforeend', dialog); // dialog.showModal()
245
246
  const { promise, resolve } = Promise.withResolvers(), off = onoff('confirmation:return', (evt) => {
247
+ const { detail } = evt;
246
248
  off();
247
- resolve(evt.detail.returnValue);
249
+ resolve(detail.returnValue);
248
250
  }, confirmationDialogBus, { once: true }).on();
249
251
  return promise;
250
- // return await new Promise((resolve, reject) => {
251
- // const onClose = (evt: any) => {
252
- // off()
253
- // resolve(evt.detail.returnValue)
254
- // },
255
- // off = onoff('return', onClose, ConfirmationDialog, { once: true }).on()
256
- // // const onAbort = () => {
257
- // // cleanup()
258
- // // reject(new DOMException('aborted', 'AbortError'))
259
- // // }
260
- // // const cleanup = () => {
261
- // // ConfirmationDialog.removeEventListener('close', onClose)
262
- // // // controller.signal.removeEventListener('abort', onAbort)
263
- // // }
264
- // // ConfirmationDialog.addEventListener('close', onClose, { once: true })
265
- // // controller.signal.addEventListener('abort', onAbort, { once: true })
266
- // })
267
252
  };
268
253
  //#endregion
269
- void Snapshot.waitReady; // void Snapshot.setOwnConfig()
254
+ void Snapshot.waitReady;
270
255
  //#region exports
271
256
  export { I18n, lifecycleObserver, NavigationPath, queryInsertPosition, Snapshot, startViewTransition };
272
257
  //#endregion
@@ -1,5 +1,9 @@
1
1
  import { ButtonBase } from '../namespace-browser/base';
2
2
  /**
3
+ * @summary A button that applies standard border artwork based on the button’s context.
4
+ *
5
+ * @example <button is="bordered-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
6
+ *
3
7
  * @slot overlay
4
8
  *
5
9
  */
@@ -3,12 +3,23 @@ import { devFlags, ensurePlaceholder, onoff } from '../internal/utils';
3
3
  import { ButtonBase } from '../namespace-browser/base';
4
4
  import { Snapshot } from '../snapshot';
5
5
  /**
6
+ * @summary A button that applies standard border artwork based on the button’s context.
7
+ *
8
+ * @example <button is="bordered-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
9
+ *
6
10
  * @slot overlay
7
11
  *
8
12
  */
9
13
  export class BorderedButton extends ButtonBase {
10
14
  static get observedAttributes() {
11
- return ['role', 'title-key'];
15
+ return [
16
+ /**
17
+ * A value that describes the purpose of a button
18
+ * @type {destructive|confirm}
19
+ */
20
+ 'role',
21
+ 'title-key',
22
+ ];
12
23
  }
13
24
  constructor() {
14
25
  super();
@@ -1,5 +1,9 @@
1
1
  import { ButtonBase } from '../namespace-browser/base';
2
2
  /**
3
+ * @summary A button that applies standard border prominent artwork based on the button’s context.
4
+ *
5
+ * @example <button is="bordered-prominent-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
6
+ *
3
7
  * @slot overlay
4
8
  *
5
9
  */
@@ -3,12 +3,23 @@ import { devFlags, ensurePlaceholder, onoff } from '../internal/utils';
3
3
  import { ButtonBase } from '../namespace-browser/base';
4
4
  import { Snapshot } from '../snapshot';
5
5
  /**
6
+ * @summary A button that applies standard border prominent artwork based on the button’s context.
7
+ *
8
+ * @example <button is="bordered-prominent-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
9
+ *
6
10
  * @slot overlay
7
11
  *
8
12
  */
9
13
  export class BorderedProminentButton extends ButtonBase {
10
14
  static get observedAttributes() {
11
- return ['role', 'title-key'];
15
+ return [
16
+ /**
17
+ * A value that describes the purpose of a button
18
+ * @type {destructive|confirm}
19
+ */
20
+ 'role',
21
+ 'title-key',
22
+ ];
12
23
  }
13
24
  constructor() {
14
25
  super();
@@ -1,5 +1,9 @@
1
1
  import { ButtonBase } from '../namespace-browser/base';
2
2
  /**
3
+ * @summary A button that doesn’t apply a border.
4
+ *
5
+ * @example <button is="borderless-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
6
+ *
3
7
  * @slot overlay
4
8
  *
5
9
  */
@@ -3,12 +3,23 @@ import { devFlags, ensurePlaceholder, onoff } from '../internal/utils';
3
3
  import { ButtonBase } from '../namespace-browser/base';
4
4
  import { Snapshot } from '../snapshot';
5
5
  /**
6
+ * @summary A button that doesn’t apply a border.
7
+ *
8
+ * @example <button is="borderless-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
9
+ *
6
10
  * @slot overlay
7
11
  *
8
12
  */
9
13
  export class BorderlessButton extends ButtonBase {
10
14
  static get observedAttributes() {
11
- return ['role', 'title-key'];
15
+ return [
16
+ /**
17
+ * A value that describes the purpose of a button
18
+ * @type {destructive|confirm}
19
+ */
20
+ 'role',
21
+ 'title-key',
22
+ ];
12
23
  }
13
24
  constructor() {
14
25
  super();
@@ -1,4 +1,9 @@
1
1
  import { DetailsBase } from '../namespace-browser/base';
2
+ /**
3
+ * @summary A view that shows or hides another content view, based on the state of a disclosure control.
4
+ *
5
+ * @example <details is="disclosure-group"><summary><label-view title="Items"></label-view></summary><label-view title="Item 1"></label-view><label-view title="Item 2"></label-view><details is="disclosure-group"><summary><label-view title="Sub-items"></label-view></summary><label-view title="Sub-item 1"></label-view></details></details>
6
+ */
2
7
  export declare class DisclosureGroup extends DetailsBase {
3
8
  #private;
4
9
  static get observedAttributes(): string[];
@@ -2,6 +2,11 @@ import { CleanupRegistry } from '../internal/class/cleanup-registry';
2
2
  import { cssTime, devFlags, onoff, timeout } from '../internal/utils';
3
3
  import { DetailsBase } from '../namespace-browser/base';
4
4
  const toggleTimers = new WeakMap();
5
+ /**
6
+ * @summary A view that shows or hides another content view, based on the state of a disclosure control.
7
+ *
8
+ * @example <details is="disclosure-group"><summary><label-view title="Items"></label-view></summary><label-view title="Item 1"></label-view><label-view title="Item 2"></label-view><details is="disclosure-group"><summary><label-view title="Sub-items"></label-view></summary><label-view title="Sub-item 1"></label-view></details></details>
9
+ */
5
10
  export class DisclosureGroup extends DetailsBase {
6
11
  static get observedAttributes() {
7
12
  return [
@@ -1,4 +1,7 @@
1
1
  import { FormBase } from '../namespace-browser/base';
2
+ /**
3
+ * @attr {hidden} navigation-link-indicator-visibility - Hides accessories like right-arrow-chevron on NavigationLink buttons inside.
4
+ */
2
5
  export declare class FormView extends FormBase {
3
6
  constructor();
4
7
  static polyfillDisconnectedCallback(el: HTMLFormElement): void;
@@ -1,6 +1,9 @@
1
1
  import { CleanupRegistry } from '../internal/class/cleanup-registry';
2
2
  import { devFlags, listActive, onoff } from '../internal/utils';
3
3
  import { FormBase } from '../namespace-browser/base';
4
+ /**
5
+ * @attr {hidden} navigation-link-indicator-visibility - Hides accessories like right-arrow-chevron on NavigationLink buttons inside.
6
+ */
4
7
  export class FormView extends FormBase {
5
8
  constructor() {
6
9
  super();
@@ -1,5 +1,9 @@
1
1
  import { ButtonBase } from '../namespace-browser/base';
2
2
  /**
3
+ * @summary A button that applies glass border artwork based on the button’s context.
4
+ *
5
+ * @example <button is="glass-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
6
+ *
3
7
  * @slot overlay
4
8
  *
5
9
  */
@@ -3,12 +3,23 @@ import { devFlags, ensurePlaceholder, onoff, touchGlass } from '../internal/util
3
3
  import { ButtonBase } from '../namespace-browser/base';
4
4
  import { Snapshot } from '../snapshot';
5
5
  /**
6
+ * @summary A button that applies glass border artwork based on the button’s context.
7
+ *
8
+ * @example <button is="glass-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
9
+ *
6
10
  * @slot overlay
7
11
  *
8
12
  */
9
13
  export class GlassButton extends ButtonBase {
10
14
  static get observedAttributes() {
11
- return ['role', 'title-key'];
15
+ return [
16
+ /**
17
+ * A value that describes the purpose of a button
18
+ * @type {destructive|confirm}
19
+ */
20
+ 'role',
21
+ 'title-key',
22
+ ];
12
23
  }
13
24
  constructor() {
14
25
  super();
@@ -1,5 +1,9 @@
1
1
  import { ButtonBase } from '../namespace-browser/base';
2
2
  /**
3
+ * @summary A button that applies prominent glass border artwork based on the button’s context.
4
+ *
5
+ * @example <button is="glass-prominent-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
6
+ *
3
7
  * @slot overlay
4
8
  *
5
9
  */
@@ -3,12 +3,23 @@ import { devFlags, ensurePlaceholder, onoff, touchGlass } from '../internal/util
3
3
  import { ButtonBase } from '../namespace-browser/base';
4
4
  import { Snapshot } from '../snapshot';
5
5
  /**
6
+ * @summary A button that applies prominent glass border artwork based on the button’s context.
7
+ *
8
+ * @example <button is="glass-prominent-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button>
9
+ *
6
10
  * @slot overlay
7
11
  *
8
12
  */
9
13
  export class GlassProminentButton extends ButtonBase {
10
14
  static get observedAttributes() {
11
- return ['role', 'title-key'];
15
+ return [
16
+ /**
17
+ * A value that describes the purpose of a button
18
+ * @type {destructive|confirm}
19
+ */
20
+ 'role',
21
+ 'title-key',
22
+ ];
12
23
  }
13
24
  constructor() {
14
25
  super();
@@ -15,6 +15,7 @@ export * from './label-view';
15
15
  export * from './list-view';
16
16
  export * from './menu-view';
17
17
  export * from './navigation-large-title';
18
+ export * from './navigation-link';
18
19
  export * from './navigation-split-view';
19
20
  export * from './navigation-stack';
20
21
  export * from './navigation-title';
@@ -15,6 +15,7 @@ export * from './label-view';
15
15
  export * from './list-view';
16
16
  export * from './menu-view';
17
17
  export * from './navigation-large-title';
18
+ export * from './navigation-link';
18
19
  export * from './navigation-split-view';
19
20
  export * from './navigation-stack';
20
21
  export * from './navigation-title';
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @attr {hidden} navigation-link-indicator-visibility - Hides accessories like right-arrow-chevron on NavigationLink buttons inside.
3
+ */
1
4
  export declare class ListView extends HTMLElement {
2
5
  constructor();
3
6
  disconnectedCallback(): void;
@@ -1,5 +1,8 @@
1
1
  import { CleanupRegistry } from '../internal/class/cleanup-registry';
2
2
  import { devFlags, listActive, onoff } from '../internal/utils';
3
+ /**
4
+ * @attr {hidden} navigation-link-indicator-visibility - Hides accessories like right-arrow-chevron on NavigationLink buttons inside.
5
+ */
3
6
  export class ListView extends HTMLElement {
4
7
  // static #template: DocumentFragment
5
8
  // static get template() {
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @summary A control for presenting a menu of actions.
3
+ */
1
4
  export declare class MenuView extends HTMLElement {
2
5
  #private;
3
6
  static get observedAttributes(): string[];
@@ -1,6 +1,9 @@
1
1
  var _a;
2
2
  import { CleanupRegistry } from '../internal/class/cleanup-registry';
3
3
  import { $, devFlags, onoff, touchGlass } from '../internal/utils';
4
+ /**
5
+ * @summary A control for presenting a menu of actions.
6
+ */
4
7
  export class MenuView extends HTMLElement {
5
8
  static get observedAttributes() {
6
9
  return ['open', 'closing', 'label'];
@@ -0,0 +1,10 @@
1
+ import { ButtonBase } from '../namespace-browser/base';
2
+ /**
3
+ * @summary A button that controls a navigation presentation.
4
+ */
5
+ export declare class NavigationLink extends ButtonBase {
6
+ #private;
7
+ constructor();
8
+ static polyfillDisconnectedCallback(el: NavigationLink): void;
9
+ static polyfillConnectedCallback(el: NavigationLink): void;
10
+ }
@@ -0,0 +1,25 @@
1
+ import { CleanupRegistry } from '../internal/class/cleanup-registry';
2
+ import { devFlags, onoff } from '../internal/utils';
3
+ import { ButtonBase } from '../namespace-browser/base';
4
+ /**
5
+ * @summary A button that controls a navigation presentation.
6
+ */
7
+ export class NavigationLink extends ButtonBase {
8
+ constructor() {
9
+ super();
10
+ }
11
+ static polyfillDisconnectedCallback(el) {
12
+ if (devFlags.debug)
13
+ console.debug(`${NavigationLink.name} ⚡️ disconnect`);
14
+ CleanupRegistry.unregister(el);
15
+ }
16
+ static polyfillConnectedCallback(el) {
17
+ if (devFlags.debug)
18
+ console.debug(`${NavigationLink.name} ⚡️ connect`);
19
+ el.tabIndex = 0;
20
+ CleanupRegistry.register(el, onoff('click', NavigationLink.#handleClick, el).on());
21
+ }
22
+ static #handleClick = async (evt) => {
23
+ // alert(99)
24
+ };
25
+ }
@@ -530,7 +530,7 @@ export class PickerView extends FormAssociatedBase {
530
530
  this.#renderSlotted([]);
531
531
  };
532
532
  static #wrapOptionTag(node) {
533
- const btn = $(`<button type="button" tabindex="0"><h-stack template="auto spacer"><label-view system-image="check"></label-view></h-stack></button>`, '>1'), hStack = btn.querySelector(':scope>h-stack');
533
+ const btn = $(`<button type="button" tabindex="0"><h-stack distribution="leading" template="auto spacer"><label-view system-image="check"></label-view></h-stack></button>`, '>1'), hStack = btn.querySelector(':scope>h-stack');
534
534
  // chevron = hStack?.querySelector<HTMLElement>(':scope>label-view')
535
535
  btn.setAttribute('value', extractTagFromOption(node));
536
536
  // if (selection !== btn.getAttribute('value')) chevron?.style.setProperty('visibility', 'hidden')
@@ -1,5 +1,5 @@
1
1
  /**
2
- *
2
+ * @summary A view that shows the progress toward completion of a task.
3
3
  */
4
4
  export declare class ProgressView extends HTMLElement {
5
5
  #private;
@@ -5,7 +5,7 @@ import { $, devFlags } from '../internal/utils';
5
5
  import { Snapshot } from '../snapshot';
6
6
  const progressViewStyles = ['circular', 'linear'];
7
7
  /**
8
- *
8
+ * @summary A view that shows the progress toward completion of a task.
9
9
  */
10
10
  export class ProgressView extends HTMLElement {
11
11
  static get observedAttributes() {
@@ -1,6 +1,5 @@
1
1
  import { InputBase } from '../namespace-browser/base';
2
2
  export declare class SearchView extends InputBase {
3
- static get observedAttributes(): string[];
4
3
  constructor();
5
4
  static polyfillDisconnectedCallback(el: InputBase): void;
6
5
  static polyfillConnectedCallback(el: InputBase): void;
@@ -2,9 +2,9 @@ import { CleanupRegistry } from '../internal/class/cleanup-registry';
2
2
  import { devFlags, onoff, touchGlass } from '../internal/utils';
3
3
  import { InputBase } from '../namespace-browser/base';
4
4
  export class SearchView extends InputBase {
5
- static get observedAttributes() {
6
- return ['role', 'title-key'];
7
- }
5
+ // static get observedAttributes() {
6
+ // return ['role', 'title-key']
7
+ // }
8
8
  constructor() {
9
9
  super();
10
10
  }
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @summary Display selectable, sortable data arranged in rows and columns.
3
+ */
1
4
  export declare class TableView extends HTMLElement {
2
5
  #private;
3
6
  static get template(): DocumentFragment;
@@ -4,6 +4,9 @@ import { CSSStyleObserver } from '../internal/class/css-style-observer';
4
4
  import { MutationObserverSet } from '../internal/class/mutation-observer-set';
5
5
  import { $, devFlags, listActive, onoff } from '../internal/utils';
6
6
  import { Snapshot } from '../snapshot';
7
+ /**
8
+ * @summary Display selectable, sortable data arranged in rows and columns.
9
+ */
7
10
  export class TableView extends HTMLElement {
8
11
  #styleObserver;
9
12
  #compactToolbarItem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swiftwc/ui",
3
- "version": "0.0.0-dev.44",
3
+ "version": "0.0.0-dev.45",
4
4
  "description": "Elegant SwiftUI-inspired web components for standalone web apps and web extensions.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -9,10 +9,12 @@
9
9
  },
10
10
  {
11
11
  "name": "bordered-button",
12
- "description": "",
12
+ "description": "A button that applies standard border artwork based on the button’s context.",
13
13
  "attributes": [
14
14
  {
15
- "name": "role"
15
+ "name": "role",
16
+ "description": "Value Type: “”\nDescription: A value that describes the purpose of a button",
17
+ "values": []
16
18
  },
17
19
  {
18
20
  "name": "title-key"
@@ -21,10 +23,12 @@
21
23
  },
22
24
  {
23
25
  "name": "bordered-prominent-button",
24
- "description": "",
26
+ "description": "A button that applies standard border prominent artwork based on the button’s context.",
25
27
  "attributes": [
26
28
  {
27
- "name": "role"
29
+ "name": "role",
30
+ "description": "Value Type: “”\nDescription: A value that describes the purpose of a button",
31
+ "values": []
28
32
  },
29
33
  {
30
34
  "name": "title-key"
@@ -33,10 +37,12 @@
33
37
  },
34
38
  {
35
39
  "name": "borderless-button",
36
- "description": "",
40
+ "description": "A button that doesn’t apply a border.",
37
41
  "attributes": [
38
42
  {
39
- "name": "role"
43
+ "name": "role",
44
+ "description": "Value Type: “”\nDescription: A value that describes the purpose of a button",
45
+ "values": []
40
46
  },
41
47
  {
42
48
  "name": "title-key"
@@ -106,6 +112,7 @@
106
112
  },
107
113
  {
108
114
  "name": "disclosure-group",
115
+ "description": "A view that shows or hides another content view, based on the state of a disclosure control.",
109
116
  "attributes": [
110
117
  {
111
118
  "name": "open",
@@ -117,14 +124,28 @@
117
124
  "name": "fine-tooltip"
118
125
  },
119
126
  {
120
- "name": "form-view"
127
+ "name": "form-view",
128
+ "description": "",
129
+ "attributes": [
130
+ {
131
+ "name": "navigation-link-indicator-visibility - Hides accessories like right-arrow",
132
+ "description": "Value Type: “hidden”\n\nDescription: chevron on NavigationLink buttons inside.",
133
+ "values": [
134
+ {
135
+ "name": "hidden"
136
+ }
137
+ ]
138
+ }
139
+ ]
121
140
  },
122
141
  {
123
142
  "name": "glass-button",
124
- "description": "",
143
+ "description": "A button that applies glass border artwork based on the button’s context.",
125
144
  "attributes": [
126
145
  {
127
- "name": "role"
146
+ "name": "role",
147
+ "description": "Value Type: “”\nDescription: A value that describes the purpose of a button",
148
+ "values": []
128
149
  },
129
150
  {
130
151
  "name": "title-key"
@@ -133,10 +154,12 @@
133
154
  },
134
155
  {
135
156
  "name": "glass-prominent-button",
136
- "description": "",
157
+ "description": "A button that applies prominent glass border artwork based on the button’s context.",
137
158
  "attributes": [
138
159
  {
139
- "name": "role"
160
+ "name": "role",
161
+ "description": "Value Type: “”\nDescription: A value that describes the purpose of a button",
162
+ "values": []
140
163
  },
141
164
  {
142
165
  "name": "title-key"
@@ -161,10 +184,23 @@
161
184
  ]
162
185
  },
163
186
  {
164
- "name": "list-view"
187
+ "name": "list-view",
188
+ "description": "",
189
+ "attributes": [
190
+ {
191
+ "name": "navigation-link-indicator-visibility - Hides accessories like right-arrow",
192
+ "description": "Value Type: “hidden”\n\nDescription: chevron on NavigationLink buttons inside.",
193
+ "values": [
194
+ {
195
+ "name": "hidden"
196
+ }
197
+ ]
198
+ }
199
+ ]
165
200
  },
166
201
  {
167
202
  "name": "menu-view",
203
+ "description": "A control for presenting a menu of actions.",
168
204
  "attributes": [
169
205
  {
170
206
  "name": "open"
@@ -180,6 +216,10 @@
180
216
  {
181
217
  "name": "navigation-large-title"
182
218
  },
219
+ {
220
+ "name": "navigation-link",
221
+ "description": "A button that controls a navigation presentation."
222
+ },
183
223
  {
184
224
  "name": "navigation-split-view",
185
225
  "description": "A view with two or three side-by-side sections, where what you choose in the left section changes what appears in the next section."
@@ -207,7 +247,7 @@
207
247
  },
208
248
  {
209
249
  "name": "progress-view",
210
- "description": "",
250
+ "description": "A view that shows the progress toward completion of a task.",
211
251
  "attributes": [
212
252
  {
213
253
  "name": "label"
@@ -245,15 +285,7 @@
245
285
  ]
246
286
  },
247
287
  {
248
- "name": "search-view",
249
- "attributes": [
250
- {
251
- "name": "role"
252
- },
253
- {
254
- "name": "title-key"
255
- }
256
- ]
288
+ "name": "search-view"
257
289
  },
258
290
  {
259
291
  "name": "section-view",
@@ -290,7 +322,8 @@
290
322
  "description": ""
291
323
  },
292
324
  {
293
- "name": "table-view"
325
+ "name": "table-view",
326
+ "description": "Display selectable, sortable data arranged in rows and columns."
294
327
  },
295
328
  {
296
329
  "name": "text-field",
@@ -425,6 +458,16 @@
425
458
  "description": "Sets accent color",
426
459
  "valueSet": "tintSet"
427
460
  },
461
+ {
462
+ "name": "list-item-tint",
463
+ "description": "Sets accent color on list items",
464
+ "valueSet": "tintSet"
465
+ },
466
+ {
467
+ "name": "foreground",
468
+ "description": "Sets foreground color",
469
+ "valueSet": "foregroundSet"
470
+ },
428
471
  {
429
472
  "name": "frame:width",
430
473
  "description": "Sets inline-size",
@@ -451,6 +494,31 @@
451
494
  {
452
495
  "name": "blue",
453
496
  "description": "system blue color"
497
+ },
498
+ {
499
+ "name": "green",
500
+ "description": "system green color"
501
+ },
502
+ {
503
+ "name": "orange",
504
+ "description": "system orange color"
505
+ }
506
+ ]
507
+ },
508
+ {
509
+ "name": "foregroundSet",
510
+ "values": [
511
+ {
512
+ "name": "secondary",
513
+ "description": "system secondary color"
514
+ },
515
+ {
516
+ "name": "blue",
517
+ "description": "system blue color"
518
+ },
519
+ {
520
+ "name": "blue.secondary",
521
+ "description": "system secondary blue color"
454
522
  }
455
523
  ]
456
524
  },