@swiftwc/ui 0.0.0-dev.115 → 0.0.0-dev.117

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 (111) hide show
  1. package/generated/client/index.js +2 -2
  2. package/generated/components/content-unavailable.d.ts +1 -1
  3. package/generated/components/content-unavailable.js +1 -1
  4. package/generated/components/labeled-content.d.ts +1 -1
  5. package/generated/components/labeled-content.js +1 -1
  6. package/generated/components/menu-view.d.ts +1 -1
  7. package/generated/components/menu-view.js +1 -1
  8. package/generated/components/picker-view.d.ts +1 -1
  9. package/generated/components/picker-view.js +1 -1
  10. package/generated/components/progress-view.d.ts +1 -1
  11. package/generated/components/progress-view.js +1 -1
  12. package/generated/components/scroll-view.d.ts +1 -1
  13. package/generated/components/scroll-view.js +1 -1
  14. package/generated/components/section-view.d.ts +1 -1
  15. package/generated/components/section-view.js +1 -1
  16. package/generated/components/tab-view.js +6 -1
  17. package/generated/components/table-view.d.ts +1 -1
  18. package/generated/components/table-view.js +1 -1
  19. package/generated/css/index.css +114 -112
  20. package/generated/internal/utils/debug.js +2 -2
  21. package/html-data/en.json +8 -8
  22. package/package.json +4 -6
  23. package/scss/_vars.scss +1 -0
  24. package/scss/base/_layout.scss +1 -1
  25. package/scss/base/_reboot.scss +4 -2
  26. package/scss/base/_root.scss +1 -1
  27. package/scss/colors/_index.scss +1 -1
  28. package/scss/components/_alert-dialog.scss +3 -3
  29. package/scss/components/_bordered-button.scss +2 -2
  30. package/scss/components/_bordered-prominent-button.scss +3 -3
  31. package/scss/components/_borderless-button.scss +2 -2
  32. package/scss/components/_confirmation-dialog.scss +1 -1
  33. package/scss/components/_content-unavailable.scss +1 -1
  34. package/scss/components/_content-view.scss +1 -1
  35. package/scss/components/_date-picker.scss +1 -1
  36. package/scss/components/_detail-placeholder.scss +1 -1
  37. package/scss/components/_disclosure-group.scss +2 -2
  38. package/scss/components/_fine-tooltip.scss +1 -1
  39. package/scss/components/_form-view.scss +1 -1
  40. package/scss/components/_full-screen.scss +1 -1
  41. package/scss/components/_glass-button.scss +2 -2
  42. package/scss/components/_glass-prominent-button.scss +3 -3
  43. package/scss/components/_group-box.scss +1 -1
  44. package/scss/components/_h-divider.scss +1 -1
  45. package/scss/components/_h-flex-stack.scss +1 -1
  46. package/scss/components/_h-stack.scss +1 -1
  47. package/scss/components/_image-view.scss +1 -1
  48. package/scss/components/_index.scss +3 -3
  49. package/scss/components/_label-view.scss +1 -1
  50. package/scss/components/_labeled-content.scss +1 -1
  51. package/scss/components/_list-view.scss +1 -1
  52. package/scss/components/_menu-view.scss +3 -3
  53. package/scss/components/_navigation-large-title.scss +1 -1
  54. package/scss/components/_navigation-split-view.scss +2 -2
  55. package/scss/components/_navigation-stack.scss +1 -1
  56. package/scss/components/_navigation-title.scss +1 -1
  57. package/scss/components/_picker-view.scss +2 -2
  58. package/scss/components/_plain-button.scss +2 -2
  59. package/scss/components/_progress-view.scss +1 -1
  60. package/scss/components/_scroll-view-proxy.scss +1 -1
  61. package/scss/components/_scroll-view-toolbars.scss +1 -1
  62. package/scss/components/_scroll-view.scss +1 -1
  63. package/scss/components/_search-view.scss +1 -1
  64. package/scss/components/_section-view.scss +1 -1
  65. package/scss/components/_sheet-view.scss +1 -1
  66. package/scss/components/_sidebar-toggle.scss +1 -1
  67. package/scss/components/_sidebar-view.scss +2 -2
  68. package/scss/components/_sticky-container.scss +1 -1
  69. package/scss/components/_tab-bar.scss +1 -1
  70. package/scss/components/_tab-item.scss +1 -1
  71. package/scss/components/_tab-view.scss +2 -2
  72. package/scss/components/_table-column.scss +1 -1
  73. package/scss/components/_table-row.scss +1 -1
  74. package/scss/components/_table-view.scss +1 -1
  75. package/scss/components/_text-field.scss +1 -1
  76. package/scss/components/_text-view.scss +1 -1
  77. package/scss/components/_toggle-view.scss +1 -1
  78. package/scss/components/_tool-bar-item-group.scss +1 -1
  79. package/scss/components/_tool-bar-item.scss +2 -2
  80. package/scss/components/_tool-bar.scss +2 -2
  81. package/scss/components/_v-divider.scss +1 -1
  82. package/scss/components/_v-flex-stack.scss +1 -1
  83. package/scss/components/_v-keyboard.scss +1 -1
  84. package/scss/components/_v-stack.scss +1 -1
  85. package/scss/final/_touch-glass.scss +1 -1
  86. package/scss/placeholders/_buttons.scss +5 -5
  87. package/scss/placeholders/_lists.scss +3 -3
  88. package/scss/transitions/_alert-dialog.scss +1 -1
  89. package/scss/transitions/_bwd.navbar.scss +1 -1
  90. package/scss/transitions/_bwd.scss +1 -1
  91. package/scss/transitions/_confirmation-dialog.scss +1 -1
  92. package/scss/transitions/_disclosure-group.scss +1 -1
  93. package/scss/transitions/_fine-tooltip.scss +1 -1
  94. package/scss/transitions/_fwd.navbar.scss +1 -1
  95. package/scss/transitions/_fwd.scss +1 -1
  96. package/scss/transitions/_glass-button.scss +1 -1
  97. package/scss/transitions/_glass-prominent-button.scss +1 -1
  98. package/scss/transitions/_index.scss +1 -1
  99. package/scss/transitions/_menu-view.scss +1 -1
  100. package/scss/transitions/_navigation-split-view.scss +1 -1
  101. package/scss/transitions/_progress-view.scss +1 -1
  102. package/scss/transitions/_sheet-view.scss +1 -1
  103. package/scss/transitions/_sidebar-view.scss +1 -1
  104. package/scss/transitions/_tab-bar.scss +1 -1
  105. package/scss/utils/_background.scss +1 -1
  106. package/scss/utils/_frame.scss +2 -2
  107. package/scss/utils/_index.scss +1 -1
  108. package/scss/utils/_spacing.scss +1 -1
  109. package/scss/utils/_stacks.scss +2 -2
  110. /package/generated/internal/{flags.d.ts → dev-flags.d.ts} +0 -0
  111. /package/generated/internal/{flags.js → dev-flags.js} +0 -0
@@ -1,4 +1,4 @@
1
- import flags from '../flags';
1
+ import devFlags from '../dev-flags';
2
2
  export default function (...args) {
3
- flags.DEBUG && self.console.debug(...args);
3
+ devFlags.DEBUG && self.console.debug(...args);
4
4
  }
package/html-data/en.json CHANGED
@@ -129,7 +129,7 @@
129
129
  "name": "search"
130
130
  }
131
131
  ],
132
- "description": "A message with a title and extra information that you show when part of your app can’t be used.\n---\n\n```ts\ninterface ContentUnavailableSignature {\n Attributes: {\n search?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot.\n description: HTMLElement[]\n actions: HTMLElement[]\n }\n}\n\nclass ContentUnavailable extends HTMLElement<ContentUnavailableSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'content-unavailable': ContentUnavailable // <content-unavailable></content-unavailable>\n }\n}\n\n```\n\n### **Examples:**\n**Example:**\n```html\n<content-unavailable search></content-unavailable>\n\n```\n**Example:**\n```html\n<content-unavailable search=\"foo\"></content-unavailable>\n\n```\n**Example:**\n```html\n<content-unavailable padding>\n <label-view title=\"No Mail\">\n <i class=\"ph ph-tray\" slot=\"icon\" foreground=\"secondary\"></i>\n </label-view>\n <label-view\n title=\"New mails you receive will appear here.\"\n foreground=\"secondary\"\n slot=\"description\"\n ></label-view>\n <button is=\"borderless-button\" type=\"button\" tabindex=\"0\" slot=\"actions\">\n <label-view title=\"Switch Account\"></label-view>\n </button>\n</content-unavailable>\n\n```\n**Example:**\n```html\n<content-unavailable padding>\n <label-view title=\"No Mail\">\n <svg slot=\"icon\" foreground=\"secondary\" ...>...</svg>\n </label-view>\n <label-view\n title=\"New mails you receive will appear here.\"\n foreground=\"secondary\"\n slot=\"description\"\n ></label-view>\n <button is=\"borderless-button\" type=\"button\" tabindex=\"0\" slot=\"actions\">\n <label-view title=\"Switch Account\"></label-view>\n </button>\n</content-unavailable>\n\n```\n"
132
+ "description": "A message with a title and extra information that you show when part of your app can’t be used.\n---\n\n```ts\ninterface ContentUnavailableSignature {\n Attributes: {\n search?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot\n description: HTMLElement[]\n actions: HTMLElement[]\n }\n}\n\nclass ContentUnavailable extends HTMLElement<ContentUnavailableSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'content-unavailable': ContentUnavailable // <content-unavailable></content-unavailable>\n }\n}\n\n```\n\n### **Examples:**\n**Example:**\n```html\n<content-unavailable search></content-unavailable>\n\n```\n**Example:**\n```html\n<content-unavailable search=\"foo\"></content-unavailable>\n\n```\n**Example:**\n```html\n<content-unavailable padding>\n <label-view title=\"No Mail\">\n <i class=\"ph ph-tray\" slot=\"icon\" foreground=\"secondary\"></i>\n </label-view>\n <label-view\n title=\"New mails you receive will appear here.\"\n foreground=\"secondary\"\n slot=\"description\"\n ></label-view>\n <button is=\"borderless-button\" type=\"button\" tabindex=\"0\" slot=\"actions\">\n <label-view title=\"Switch Account\"></label-view>\n </button>\n</content-unavailable>\n\n```\n**Example:**\n```html\n<content-unavailable padding>\n <label-view title=\"No Mail\">\n <svg slot=\"icon\" foreground=\"secondary\" ...>...</svg>\n </label-view>\n <label-view\n title=\"New mails you receive will appear here.\"\n foreground=\"secondary\"\n slot=\"description\"\n ></label-view>\n <button is=\"borderless-button\" type=\"button\" tabindex=\"0\" slot=\"actions\">\n <label-view title=\"Switch Account\"></label-view>\n </button>\n</content-unavailable>\n\n```\n"
133
133
  },
134
134
  {
135
135
  "name": "content-view",
@@ -449,7 +449,7 @@
449
449
  "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`."
450
450
  }
451
451
  ],
452
- "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"
452
+ "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"
453
453
  },
454
454
  {
455
455
  "name": "list-view",
@@ -500,7 +500,7 @@
500
500
  "name": "label"
501
501
  }
502
502
  ],
503
- "description": "A control that opens a menu of actions.\n---\n\n```ts\ninterface MenuViewSignature {\n Attributes: {\n open?: string\n closing?: string\n label?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot.\n label: HTMLElement[]\n }\n}\n\nclass MenuView extends HTMLElement<MenuViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'menu-view': MenuView // <menu-view></menu-view>\n }\n}\n\n```\n"
503
+ "description": "A control that opens a menu of actions.\n---\n\n```ts\ninterface MenuViewSignature {\n Attributes: {\n open?: string\n closing?: string\n label?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot\n label: HTMLElement[]\n }\n}\n\nclass MenuView extends HTMLElement<MenuViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'menu-view': MenuView // <menu-view></menu-view>\n }\n}\n\n```\n"
504
504
  },
505
505
  {
506
506
  "name": "navigation-large-title",
@@ -657,7 +657,7 @@
657
657
  "description": "Value Type: boolean"
658
658
  }
659
659
  ],
660
- "description": "A control that selects one value from a set of options.\n---\n\n```ts\ninterface PickerViewSignature {\n Attributes: {\n 'label-value-placement'?: 'vertical' | 'horizontal' | 'auto'\n 'horizontal-radio-group-layout'?: boolean\n prompt?: string\n 'prompt-icon'?: string\n label?: string\n name?: string\n 'picker-style'?:\n | 'menu'\n | 'inline'\n | 'navigation-link'\n | 'sheet'\n | 'automatic'\n selection?: string\n searchable?: boolean\n 'current-value-label'?: string\n 'current-value-icon'?: string\n help?: string // Adds a help tooltip to the trigger of the picker, if style supports one\n dictionary?: Array<DictEntry> // Renders all options using this array\n required?: boolean\n }\n\n Slots: {\n default: HTMLElement[] // The default slot.\n label: HTMLElement[]\n list: HTMLElement[]\n 'validity-options': HTMLOptionElement[]\n }\n}\n\nclass PickerView extends HTMLElement<PickerViewSignature> {\n static formAssociated = true\n\n selection: string\n readonly template: DocumentFragment\n readonly pickerStyle:\n | 'automatic'\n | 'menu'\n | 'inline'\n | 'navigation-link'\n | 'sheet'\n | 'radio-group'\n readonly name: string // Form participation property\n\n setValidity(): void\n setCustomValidity(): void\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'picker-view': PickerView // <picker-view></picker-view>\n }\n}\n\n```\n"
660
+ "description": "A control that selects one value from a set of options.\n---\n\n```ts\ninterface PickerViewSignature {\n Attributes: {\n 'label-value-placement'?: 'vertical' | 'horizontal' | 'auto'\n 'horizontal-radio-group-layout'?: boolean\n prompt?: string\n 'prompt-icon'?: string\n label?: string\n name?: string\n 'picker-style'?:\n | 'menu'\n | 'inline'\n | 'navigation-link'\n | 'sheet'\n | 'automatic'\n selection?: string\n searchable?: boolean\n 'current-value-label'?: string\n 'current-value-icon'?: string\n help?: string // Adds a help tooltip to the trigger of the picker, if style supports one\n dictionary?: Array<DictEntry> // Renders all options using this array\n required?: boolean\n }\n\n Slots: {\n default: HTMLElement[] // The default slot\n label: HTMLElement[]\n list: HTMLElement[]\n 'validity-options': HTMLOptionElement[]\n }\n}\n\nclass PickerView extends HTMLElement<PickerViewSignature> {\n static formAssociated = true\n\n selection: string\n readonly template: DocumentFragment\n readonly pickerStyle:\n | 'automatic'\n | 'menu'\n | 'inline'\n | 'navigation-link'\n | 'sheet'\n | 'radio-group'\n readonly name: string // Form participation property\n\n setValidity(): void\n setCustomValidity(): void\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'picker-view': PickerView // <picker-view></picker-view>\n }\n}\n\n```\n"
661
661
  },
662
662
  {
663
663
  "name": "plain-button",
@@ -682,7 +682,7 @@
682
682
  "name": "value"
683
683
  }
684
684
  ],
685
- "description": "A view that shows how far along a task is.\n---\n\n```ts\ninterface ProgressViewSignature {\n Attributes: {\n label?: string\n 'current-value-label'?: string\n value?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot.\n 'current-value': HTMLElement[]\n }\n}\n\nclass ProgressView extends HTMLElement<ProgressViewSignature> {\n readonly progressViewStyle: 'circular' | 'linear'\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'progress-view': ProgressView // <progress-view></progress-view>\n }\n}\n\n```\n"
685
+ "description": "A view that shows how far along a task is.\n---\n\n```ts\ninterface ProgressViewSignature {\n Attributes: {\n label?: string\n 'current-value-label'?: string\n value?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot\n 'current-value': HTMLElement[]\n }\n}\n\nclass ProgressView extends HTMLElement<ProgressViewSignature> {\n readonly progressViewStyle: 'circular' | 'linear'\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'progress-view': ProgressView // <progress-view></progress-view>\n }\n}\n\n```\n"
686
686
  },
687
687
  {
688
688
  "name": "screen-view",
@@ -724,7 +724,7 @@
724
724
  "name": "navigation-bar-title-display-mode"
725
725
  }
726
726
  ],
727
- "description": "A view that scrolls its content when it doesn’t fit the screen.\n---\n\n```ts\ninterface ScrollViewSignature {\n Attributes: {\n 'navigation-title'?: string // Configures the view’s title for purposes of navigation. Shorthand for `<v-stack spacing=\"0\" alignment=\"fill\" slot=\"top-bar-principal\"><label-view line-limit=\"1\" truncation-mode=\"tail\" font=\"headline\"><span>Navigation Title</span></label-view></v-stack>`\n 'navigation-inline-title'?: string\n 'navigation-inline-subtitle'?: string\n 'navigation-icon'?: string\n 'navigation-bar-title-display-mode'?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot.\n 'top-bar-principal': HTMLElement[]\n 'bottom-bar-principal': HTMLElement[]\n }\n}\n\nclass ScrollView extends HTMLElement<ScrollViewSignature> {\n centerScrollToElement(): void\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'scroll-view': ScrollView // <scroll-view></scroll-view>\n }\n}\n\n```\n"
727
+ "description": "A view that scrolls its content when it doesn’t fit the screen.\n---\n\n```ts\ninterface ScrollViewSignature {\n Attributes: {\n 'navigation-title'?: string // Configures the view’s title for purposes of navigation. Shorthand for `<v-stack spacing=\"0\" alignment=\"fill\" slot=\"top-bar-principal\"><label-view line-limit=\"1\" truncation-mode=\"tail\" font=\"headline\"><span>Navigation Title</span></label-view></v-stack>`\n 'navigation-inline-title'?: string\n 'navigation-inline-subtitle'?: string\n 'navigation-icon'?: string\n 'navigation-bar-title-display-mode'?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot\n 'top-bar-principal': HTMLElement[]\n 'bottom-bar-principal': HTMLElement[]\n }\n}\n\nclass ScrollView extends HTMLElement<ScrollViewSignature> {\n centerScrollToElement(): void\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'scroll-view': ScrollView // <scroll-view></scroll-view>\n }\n}\n\n```\n"
728
728
  },
729
729
  {
730
730
  "name": "search-view",
@@ -746,7 +746,7 @@
746
746
  "name": "footer"
747
747
  }
748
748
  ],
749
- "description": "A container view that groups related content together.\n---\n\n```ts\ninterface SectionViewSignature {\n Attributes: {\n header?: string\n footer?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot.\n header: HTMLElement[]\n footer: HTMLElement[]\n }\n}\n\nclass SectionView extends HTMLElement<SectionViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'section-view': SectionView // <section-view></section-view>\n }\n}\n\n```\n"
749
+ "description": "A container view that groups related content together.\n---\n\n```ts\ninterface SectionViewSignature {\n Attributes: {\n header?: string\n footer?: string\n }\n\n Slots: {\n default: HTMLElement[] // The default slot\n header: HTMLElement[]\n footer: HTMLElement[]\n }\n}\n\nclass SectionView extends HTMLElement<SectionViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'section-view': SectionView // <section-view></section-view>\n }\n}\n\n```\n"
750
750
  },
751
751
  {
752
752
  "name": "sheet-view",
@@ -840,7 +840,7 @@
840
840
  ]
841
841
  }
842
842
  ],
843
- "description": "A container view that arranges data in rows and columns, optionally letting the user select one or more of them.\n---\n\n```ts\ninterface TableViewSignature {\n Attributes: {\n 'preferred-compact-template'?:\n | 'title:trailing:subtitle'\n | 'trailing:title:subtitle'\n | 'title:subtitle:trailing'\n | '*' // Sets the template areas when the table is in compact mode\n }\n\n Slots: {\n default: HTMLElement[] // The default slot.\n 'header-leading': HTMLElement[]\n 'header-principal': HTMLElement[]\n 'header-trailing': HTMLElement[]\n column: HTMLElement[]\n 'footer-leading': HTMLElement[]\n 'footer-principal': HTMLElement[]\n 'footer-trailing': HTMLElement[]\n }\n}\n\nclass TableView extends HTMLElement<TableViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'table-view': TableView // <table-view></table-view>\n }\n}\n\n```\n"
843
+ "description": "A container view that arranges data in rows and columns, optionally letting the user select one or more of them.\n---\n\n```ts\ninterface TableViewSignature {\n Attributes: {\n 'preferred-compact-template'?:\n | 'title:trailing:subtitle'\n | 'trailing:title:subtitle'\n | 'title:subtitle:trailing'\n | '*' // Sets the template areas when the table is in compact mode\n }\n\n Slots: {\n default: HTMLElement[] // The default slot\n 'header-leading': HTMLElement[]\n 'header-principal': HTMLElement[]\n 'header-trailing': HTMLElement[]\n column: HTMLElement[]\n 'footer-leading': HTMLElement[]\n 'footer-principal': HTMLElement[]\n 'footer-trailing': HTMLElement[]\n }\n}\n\nclass TableView extends HTMLElement<TableViewSignature> {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'table-view': TableView // <table-view></table-view>\n }\n}\n\n```\n"
844
844
  },
845
845
  {
846
846
  "name": "text-field",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swiftwc/ui",
3
- "version": "0.0.0-dev.115",
3
+ "version": "0.0.0-dev.117",
4
4
  "description": "Elegant SwiftUI-inspired web components for standalone web apps and web extensions.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -79,11 +79,9 @@
79
79
  "format:write": "prettier . --write",
80
80
  "lint:scripts": "tsc -p tsconfig.scripts.json --noEmit",
81
81
  "test": "vitest --dom",
82
- "prepackage": "rm -rf generated && npm run debug:off",
83
- "package": "npm run build:ts && npm run build:scss ; npm run debug:reset",
84
- "postpublish": "git checkout dev",
85
- "debug:off": "node -e \"const fs=require('node:fs');const f='./js/internal/flags.ts';const s=fs.readFileSync(f,'utf8');fs.writeFileSync(f,s.replace(/DEBUG:\\s*(true|false)/, 'DEBUG: false'))\"",
86
- "debug:reset": "git checkout -- ./js/internal/flags.ts",
82
+ "prepackage": "rm -rf generated",
83
+ "package": "npm run build:ts && npm run build:scss && npm run debug:off",
84
+ "debug:off": "node -e \"const fs=require('node:fs');const f='./generated/internal/dev-flags.js';const s=fs.readFileSync(f,'utf8');fs.writeFileSync(f,s.replace(/DEBUG:\\s*(true|false)/, 'DEBUG: false'))\"",
87
85
  "version:pkg": "npm version $npm_config_bump --no-git-tag-version --preid=dev"
88
86
  },
89
87
  "devDependencies": {
package/scss/_vars.scss CHANGED
@@ -1,6 +1,7 @@
1
1
  @use 'sass:math';
2
2
  @use 'functions';
3
3
 
4
+ $framework-layer: sw !default;
4
5
  $base-layer: sw-base !default;
5
6
  $components-layer: sw-components !default;
6
7
  $list-components-layer: sw-list-components !default;
@@ -2,7 +2,7 @@
2
2
  @use '../mixins';
3
3
  @use '../placeholders';
4
4
 
5
- @layer #{vars.$components-layer} {
5
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
6
6
  content-view,
7
7
  navigation-stack,
8
8
  navigation-split-view,
@@ -1,9 +1,11 @@
1
1
  @use '../vars';
2
2
  @use '../functions';
3
3
 
4
- @layer #{vars.$base-layer}, #{vars.$components-layer}, #{vars.$nav-components-layer}, #{vars.$list-components-layer}, #{vars.$tab-components-layer}, #{vars.$utils-layer}, #{vars.$colors-layer}, #{vars.$ui-layer}, #{vars.$transitions-layer}, #{vars.$final-layer};
4
+ @layer #{vars.$framework-layer} {
5
+ @layer #{vars.$base-layer}, #{vars.$components-layer}, #{vars.$nav-components-layer}, #{vars.$list-components-layer}, #{vars.$tab-components-layer}, #{vars.$utils-layer}, #{vars.$colors-layer}, #{vars.$ui-layer}, #{vars.$transitions-layer}, #{vars.$final-layer};
6
+ }
5
7
 
6
- @layer #{vars.$base-layer} {
8
+ @layer #{vars.$framework-layer}.#{vars.$base-layer} {
7
9
  // html,
8
10
  // body {
9
11
  // overflow: auto;
@@ -10,7 +10,7 @@
10
10
  initial-value: 16;
11
11
  }
12
12
 
13
- @layer #{vars.$components-layer} {
13
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
14
14
  :root {
15
15
  color-scheme: light dark;
16
16
 
@@ -599,7 +599,7 @@ $colors: map.merge(
599
599
  inherits: true;
600
600
  }
601
601
 
602
- @layer #{vars.$colors-layer} {
602
+ @layer #{vars.$framework-layer}.#{vars.$colors-layer} {
603
603
  :root {
604
604
  // --background: light-dark(oklch(1 0 0), oklch(0 0 0)); // ✅
605
605
 
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  [is='alert-dialog'] {
6
6
  :where(&) {
7
7
  @include mixins.reset-dialog;
@@ -86,7 +86,7 @@
86
86
  }
87
87
  }
88
88
 
89
- // @layer #{vars.$colors-layer} {
89
+ // @layer #{vars.$framework-layer}.#{vars.$colors-layer} {
90
90
  // // SECTION: componentize
91
91
  // [is='alert-dialog'] {
92
92
  // > button {
@@ -98,7 +98,7 @@
98
98
  // }
99
99
  // }
100
100
 
101
- // @layer #{vars.$ui-layer} {
101
+ // @layer #{vars.$framework-layer}.#{vars.$ui-layer} {
102
102
  // // SECTION: componentize
103
103
  // [is='alert-dialog'] {
104
104
  // > button {
@@ -3,7 +3,7 @@
3
3
  @use '../mixins';
4
4
  @use '../placeholders';
5
5
 
6
- @layer #{vars.$components-layer} {
6
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
7
7
  [is='bordered-button'] {
8
8
  @extend %button;
9
9
 
@@ -50,7 +50,7 @@
50
50
  }
51
51
  }
52
52
 
53
- @layer #{vars.$utils-layer} {
53
+ @layer #{vars.$framework-layer}.#{vars.$utils-layer} {
54
54
  [is='bordered-button'] {
55
55
  :where(&) {
56
56
  text-align: center;
@@ -3,7 +3,7 @@
3
3
  @use '../mixins';
4
4
  @use '../placeholders';
5
5
 
6
- @layer #{vars.$components-layer} {
6
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
7
7
  [is='bordered-prominent-button'] {
8
8
  @extend %button;
9
9
 
@@ -46,7 +46,7 @@
46
46
  }
47
47
  }
48
48
 
49
- @layer #{vars.$colors-layer} {
49
+ @layer #{vars.$framework-layer}.#{vars.$colors-layer} {
50
50
  [is='bordered-prominent-button'] > * {
51
51
  :where(&) {
52
52
  @include mixins.takeover-color-vars(btn);
@@ -56,7 +56,7 @@
56
56
  }
57
57
  }
58
58
 
59
- @layer #{vars.$utils-layer} {
59
+ @layer #{vars.$framework-layer}.#{vars.$utils-layer} {
60
60
  [is='bordered-prominent-button'] {
61
61
  :where(&) {
62
62
  text-align: center;
@@ -2,7 +2,7 @@
2
2
  @use '../mixins';
3
3
  @use '../placeholders';
4
4
 
5
- @layer #{vars.$components-layer} {
5
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
6
6
  [is='borderless-button'] {
7
7
  @extend %button;
8
8
 
@@ -36,7 +36,7 @@
36
36
  }
37
37
  }
38
38
 
39
- @layer #{vars.$utils-layer} {
39
+ @layer #{vars.$framework-layer}.#{vars.$utils-layer} {
40
40
  [is='borderless-button'] {
41
41
  :where(&) {
42
42
  text-align: center;
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  [is='confirmation-dialog'] {
6
6
  :where(&) {
7
7
  @include mixins.reset-dialog;
@@ -2,7 +2,7 @@
2
2
  @use '../mixins';
3
3
  @use '../placeholders';
4
4
 
5
- @layer #{vars.$components-layer} {
5
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
6
6
  content-unavailable {
7
7
  :where(&) {
8
8
  place-content: center;
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  // content-view {
6
6
  // :where(&) {
7
7
  // }
@@ -1,6 +1,6 @@
1
1
  @use '../vars';
2
2
 
3
- @layer #{vars.$components-layer} {
3
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
4
4
  date-picker {
5
5
  :where(&) {
6
6
  grid-template-columns: minmax(0, 1fr);
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  detail-placeholder {
6
6
  :where(&) {
7
7
  pointer-events: none;
@@ -2,7 +2,7 @@
2
2
  @use '../vars';
3
3
  @use '../mixins';
4
4
 
5
- @layer #{vars.$components-layer} {
5
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
6
6
  [is='disclosure-group'] {
7
7
  :where(&) {
8
8
  overflow: clip;
@@ -135,7 +135,7 @@
135
135
  }
136
136
  }
137
137
 
138
- @layer #{vars.$utils-layer} {
138
+ @layer #{vars.$framework-layer}.#{vars.$utils-layer} {
139
139
  [is='disclosure-group'] {
140
140
  @supports (x: #{string.unquote('attr(x type(*))')}) {
141
141
  :where(&) {
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$tab-components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$tab-components-layer} {
5
5
  fine-tooltip {
6
6
  :where(&) {
7
7
  color: var(--text,);
@@ -107,7 +107,7 @@ $form-elses: (
107
107
  --list--accessories-display: grid,
108
108
  );
109
109
 
110
- @layer #{vars.$list-components-layer} {
110
+ @layer #{vars.$framework-layer}.#{vars.$list-components-layer} {
111
111
  [is='form-view'] {
112
112
  &:not(& &, list-view &, table-view &, [is='tab-bar'] > &) {
113
113
  @extend %list;
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  [is='full-screen'] {
6
6
  :where(&) {
7
7
  @include mixins.reset-dialog;
@@ -3,7 +3,7 @@
3
3
  @use '../mixins';
4
4
  @use '../placeholders';
5
5
 
6
- @layer #{vars.$components-layer} {
6
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
7
7
  [is='glass-button'] {
8
8
  @extend %button;
9
9
 
@@ -52,7 +52,7 @@
52
52
  }
53
53
  }
54
54
 
55
- @layer #{vars.$utils-layer} {
55
+ @layer #{vars.$framework-layer}.#{vars.$utils-layer} {
56
56
  [is='glass-button'] {
57
57
  :where(&) {
58
58
  text-align: center;
@@ -3,7 +3,7 @@
3
3
  @use '../mixins';
4
4
  @use '../placeholders';
5
5
 
6
- @layer #{vars.$components-layer} {
6
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
7
7
  [is='glass-prominent-button'] {
8
8
  @extend %button;
9
9
 
@@ -52,7 +52,7 @@
52
52
  }
53
53
  }
54
54
 
55
- @layer #{vars.$colors-layer} {
55
+ @layer #{vars.$framework-layer}.#{vars.$colors-layer} {
56
56
  [is='glass-prominent-button'] > * {
57
57
  :where(&) {
58
58
  @include mixins.takeover-color-vars(btn);
@@ -62,7 +62,7 @@
62
62
  }
63
63
  }
64
64
 
65
- @layer #{vars.$utils-layer} {
65
+ @layer #{vars.$framework-layer}.#{vars.$utils-layer} {
66
66
  [is='glass-prominent-button'] {
67
67
  :where(&) {
68
68
  text-align: center;
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  group-box {
6
6
  :where(&) {
7
7
  background: var(--groupbox--background);
@@ -1,6 +1,6 @@
1
1
  @use '../vars';
2
2
 
3
- @layer #{vars.$components-layer} {
3
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
4
4
  h-divider {
5
5
  :where(&) {
6
6
  inline-size: 100%;
@@ -1,6 +1,6 @@
1
1
  @use '../vars';
2
2
 
3
- @layer #{vars.$components-layer} {
3
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
4
4
  h-flex-stack {
5
5
  :where(&) {
6
6
  display: flex;
@@ -4,7 +4,7 @@
4
4
  @use '../maps';
5
5
  @use '../mixins';
6
6
 
7
- @layer #{vars.$components-layer} {
7
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
8
8
  h-stack {
9
9
  :where(&) {
10
10
  grid-auto-flow: column;
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  image-view {
6
6
  :where(&) {
7
7
  // --image--fontsize: var(--label-imagestack-fontsize, calc(var(--label-image-size) * 1rem));
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  // SECTION: all is grid
6
6
 
7
7
  navigation-stack,
@@ -198,7 +198,7 @@
198
198
  }
199
199
 
200
200
  // SECTION: componentize
201
- @layer #{vars.$colors-layer} {
201
+ @layer #{vars.$framework-layer}.#{vars.$colors-layer} {
202
202
  sidebar-toggle > button,
203
203
  tool-bar-item > button,
204
204
  tool-bar-item > input,
@@ -240,7 +240,7 @@
240
240
  }
241
241
 
242
242
  // SECTION: componentize
243
- @layer #{vars.$ui-layer} {
243
+ @layer #{vars.$framework-layer}.#{vars.$ui-layer} {
244
244
  sidebar-toggle > button,
245
245
  tool-bar-item > button,
246
246
  tool-bar-item > input,
@@ -151,7 +151,7 @@ $label-line-ifs: (
151
151
  }
152
152
  }
153
153
 
154
- @layer #{vars.$components-layer} {
154
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
155
155
  label-view {
156
156
  :where(&) {
157
157
  padding-inline: var(--label-padding-inline);
@@ -2,7 +2,7 @@
2
2
  @use '../vars';
3
3
  @use '../mixins';
4
4
 
5
- @layer #{vars.$components-layer} {
5
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
6
6
  labeled-content {
7
7
  :where(&) {
8
8
  container: labeled-content / inline-size;
@@ -110,7 +110,7 @@ $list-elses: (
110
110
  --list--accessories-display: grid,
111
111
  );
112
112
 
113
- @layer #{vars.$list-components-layer} {
113
+ @layer #{vars.$framework-layer}.#{vars.$list-components-layer} {
114
114
  list-view {
115
115
  &:not(& &, [is='form-view'] &, table-view &) {
116
116
  @extend %list;
@@ -3,7 +3,7 @@
3
3
  @use '../mixins';
4
4
  @use '../placeholders';
5
5
 
6
- @layer #{vars.$components-layer} {
6
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
7
7
  menu-view {
8
8
  :where(&) {
9
9
  &::part(menu-summary) {
@@ -145,7 +145,7 @@
145
145
  }
146
146
 
147
147
  // componentize
148
- @layer #{vars.$colors-layer} {
148
+ @layer #{vars.$framework-layer}.#{vars.$colors-layer} {
149
149
  menu-view {
150
150
  @include mixins.add-focus-visible-state('::part(menu-summary)') {
151
151
  --menusummaryface: var(--menusummaryhighlightface,);
@@ -198,7 +198,7 @@
198
198
  }
199
199
 
200
200
  // componentize
201
- @layer #{vars.$ui-layer} {
201
+ @layer #{vars.$framework-layer}.#{vars.$ui-layer} {
202
202
  menu-view {
203
203
  @include mixins.add-active-state('::part(menu-summary)') {
204
204
  --menusummaryface: var(--menusummaryactiveface,);
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  navigation-large-title {
6
6
  :where(&) {
7
7
  // display: grid;
@@ -12,7 +12,7 @@
12
12
  }
13
13
  }
14
14
 
15
- @layer #{vars.$nav-components-layer} {
15
+ @layer #{vars.$framework-layer}.#{vars.$nav-components-layer} {
16
16
  navigation-split-view {
17
17
  :where(&) {
18
18
  touch-action: none;
@@ -363,7 +363,7 @@
363
363
  }
364
364
  }
365
365
 
366
- @layer #{vars.$final-layer} {
366
+ @layer #{vars.$framework-layer}.#{vars.$final-layer} {
367
367
  navigation-split-view {
368
368
  // ANCHOR transitions
369
369
 
@@ -1,6 +1,6 @@
1
1
  @use '../vars';
2
2
 
3
- @layer #{vars.$nav-components-layer} {
3
+ @layer #{vars.$framework-layer}.#{vars.$nav-components-layer} {
4
4
  navigation-stack {
5
5
  :where(&) {
6
6
  touch-action: none;
@@ -1,7 +1,7 @@
1
1
  @use '../vars';
2
2
  @use '../mixins';
3
3
 
4
- @layer #{vars.$components-layer} {
4
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
5
5
  navigation-title {
6
6
  :where(&) {
7
7
  // display: grid; //contents;
@@ -124,7 +124,7 @@ $picker-elses: (
124
124
  // }
125
125
  // }
126
126
 
127
- @layer #{vars.$components-layer} {
127
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
128
128
  picker-view {
129
129
  :where(&) {
130
130
  grid-template-columns: minmax(0, 1fr);
@@ -340,7 +340,7 @@ $picker-elses: (
340
340
  }
341
341
  }
342
342
 
343
- @layer #{vars.$final-layer} {
343
+ @layer #{vars.$framework-layer}.#{vars.$final-layer} {
344
344
  picker-view {
345
345
  //--picker-label-value-placement
346
346
  @supports not (x: #{string.unquote('attr(x type(*))')}) {
@@ -2,7 +2,7 @@
2
2
  @use '../mixins';
3
3
  @use '../placeholders';
4
4
 
5
- @layer #{vars.$components-layer} {
5
+ @layer #{vars.$framework-layer}.#{vars.$components-layer} {
6
6
  [is='plain-button'] {
7
7
  @extend %button;
8
8
 
@@ -10,7 +10,7 @@
10
10
  }
11
11
  }
12
12
  }
13
- @layer #{vars.$utils-layer} {
13
+ @layer #{vars.$framework-layer}.#{vars.$utils-layer} {
14
14
  [is='plain-button'] {
15
15
  :where(&) {
16
16
  text-align: center;