@quartzds/core 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/README.md +136 -0
  2. package/components/floating-ui.dom.esm.js +1402 -0
  3. package/components/floating-ui.dom.esm.js.map +1 -0
  4. package/components/helpers.js +174 -0
  5. package/components/helpers.js.map +1 -0
  6. package/components/icon.js +175 -0
  7. package/components/icon.js.map +1 -0
  8. package/components/index.d.ts +52 -0
  9. package/components/index.js +117 -0
  10. package/components/index.js.map +1 -0
  11. package/components/label.js +55 -0
  12. package/components/label.js.map +1 -0
  13. package/components/qds-button.d.ts +11 -0
  14. package/components/qds-button.js +148 -0
  15. package/components/qds-button.js.map +1 -0
  16. package/components/qds-checkbox.d.ts +11 -0
  17. package/components/qds-checkbox.js +156 -0
  18. package/components/qds-checkbox.js.map +1 -0
  19. package/components/qds-dropdown.d.ts +11 -0
  20. package/components/qds-dropdown.js +259 -0
  21. package/components/qds-dropdown.js.map +1 -0
  22. package/components/qds-icon.d.ts +11 -0
  23. package/components/qds-icon.js +13 -0
  24. package/components/qds-icon.js.map +1 -0
  25. package/components/qds-inline-link.d.ts +11 -0
  26. package/components/qds-inline-link.js +89 -0
  27. package/components/qds-inline-link.js.map +1 -0
  28. package/components/qds-input.d.ts +11 -0
  29. package/components/qds-input.js +244 -0
  30. package/components/qds-input.js.map +1 -0
  31. package/components/qds-label.d.ts +11 -0
  32. package/components/qds-label.js +13 -0
  33. package/components/qds-label.js.map +1 -0
  34. package/components/qds-radio.d.ts +11 -0
  35. package/components/qds-radio.js +109 -0
  36. package/components/qds-radio.js.map +1 -0
  37. package/components/qds-switch.d.ts +11 -0
  38. package/components/qds-switch.js +119 -0
  39. package/components/qds-switch.js.map +1 -0
  40. package/components/qds-title.d.ts +11 -0
  41. package/components/qds-title.js +94 -0
  42. package/components/qds-title.js.map +1 -0
  43. package/components/qds-tooltip.d.ts +11 -0
  44. package/components/qds-tooltip.js +325 -0
  45. package/components/qds-tooltip.js.map +1 -0
  46. package/dist/cjs/floating-ui.dom.esm-71fa96af.js +1410 -0
  47. package/dist/cjs/floating-ui.dom.esm-71fa96af.js.map +1 -0
  48. package/dist/cjs/helpers-0b23af3f.js +184 -0
  49. package/dist/cjs/helpers-0b23af3f.js.map +1 -0
  50. package/dist/cjs/index-f19b2823.js +2030 -0
  51. package/dist/cjs/index-f19b2823.js.map +1 -0
  52. package/dist/cjs/index.cjs.js +115 -0
  53. package/dist/cjs/index.cjs.js.map +1 -0
  54. package/dist/cjs/library-4803c801.js +62 -0
  55. package/dist/cjs/library-4803c801.js.map +1 -0
  56. package/dist/cjs/loader.cjs.js +29 -0
  57. package/dist/cjs/loader.cjs.js.map +1 -0
  58. package/dist/cjs/qds-button.cjs.entry.js +110 -0
  59. package/dist/cjs/qds-button.cjs.entry.js.map +1 -0
  60. package/dist/cjs/qds-checkbox.cjs.entry.js +116 -0
  61. package/dist/cjs/qds-checkbox.cjs.entry.js.map +1 -0
  62. package/dist/cjs/qds-dropdown.cjs.entry.js +227 -0
  63. package/dist/cjs/qds-dropdown.cjs.entry.js.map +1 -0
  64. package/dist/cjs/qds-icon.cjs.entry.js +113 -0
  65. package/dist/cjs/qds-icon.cjs.entry.js.map +1 -0
  66. package/dist/cjs/qds-inline-link.cjs.entry.js +61 -0
  67. package/dist/cjs/qds-inline-link.cjs.entry.js.map +1 -0
  68. package/dist/cjs/qds-input.cjs.entry.js +200 -0
  69. package/dist/cjs/qds-input.cjs.entry.js.map +1 -0
  70. package/dist/cjs/qds-label.cjs.entry.js +39 -0
  71. package/dist/cjs/qds-label.cjs.entry.js.map +1 -0
  72. package/dist/cjs/qds-radio.cjs.entry.js +74 -0
  73. package/dist/cjs/qds-radio.cjs.entry.js.map +1 -0
  74. package/dist/cjs/qds-switch.cjs.entry.js +79 -0
  75. package/dist/cjs/qds-switch.cjs.entry.js.map +1 -0
  76. package/dist/cjs/qds-title.cjs.entry.js +66 -0
  77. package/dist/cjs/qds-title.cjs.entry.js.map +1 -0
  78. package/dist/cjs/qds-tooltip.cjs.entry.js +284 -0
  79. package/dist/cjs/qds-tooltip.cjs.entry.js.map +1 -0
  80. package/dist/cjs/qds.cjs.js +33 -0
  81. package/dist/cjs/qds.cjs.js.map +1 -0
  82. package/dist/custom-elements.json +3976 -0
  83. package/dist/docs.d.ts +148 -0
  84. package/dist/docs.json +3918 -0
  85. package/dist/esm/floating-ui.dom.esm-f96ac766.js +1402 -0
  86. package/dist/esm/floating-ui.dom.esm-f96ac766.js.map +1 -0
  87. package/dist/esm/helpers-5c189a19.js +174 -0
  88. package/dist/esm/helpers-5c189a19.js.map +1 -0
  89. package/dist/esm/index-1bc8e218.js +2000 -0
  90. package/dist/esm/index-1bc8e218.js.map +1 -0
  91. package/dist/esm/index.js +106 -0
  92. package/dist/esm/index.js.map +1 -0
  93. package/dist/esm/library-aa6893c0.js +58 -0
  94. package/dist/esm/library-aa6893c0.js.map +1 -0
  95. package/dist/esm/loader.js +25 -0
  96. package/dist/esm/loader.js.map +1 -0
  97. package/dist/esm/polyfills/core-js.js +11 -0
  98. package/dist/esm/polyfills/css-shim.js +1 -0
  99. package/dist/esm/polyfills/dom.js +79 -0
  100. package/dist/esm/polyfills/es5-html-element.js +1 -0
  101. package/dist/esm/polyfills/index.js +34 -0
  102. package/dist/esm/polyfills/system.js +6 -0
  103. package/dist/esm/qds-button.entry.js +106 -0
  104. package/dist/esm/qds-button.entry.js.map +1 -0
  105. package/dist/esm/qds-checkbox.entry.js +112 -0
  106. package/dist/esm/qds-checkbox.entry.js.map +1 -0
  107. package/dist/esm/qds-dropdown.entry.js +223 -0
  108. package/dist/esm/qds-dropdown.entry.js.map +1 -0
  109. package/dist/esm/qds-icon.entry.js +109 -0
  110. package/dist/esm/qds-icon.entry.js.map +1 -0
  111. package/dist/esm/qds-inline-link.entry.js +57 -0
  112. package/dist/esm/qds-inline-link.entry.js.map +1 -0
  113. package/dist/esm/qds-input.entry.js +196 -0
  114. package/dist/esm/qds-input.entry.js.map +1 -0
  115. package/dist/esm/qds-label.entry.js +35 -0
  116. package/dist/esm/qds-label.entry.js.map +1 -0
  117. package/dist/esm/qds-radio.entry.js +70 -0
  118. package/dist/esm/qds-radio.entry.js.map +1 -0
  119. package/dist/esm/qds-switch.entry.js +75 -0
  120. package/dist/esm/qds-switch.entry.js.map +1 -0
  121. package/dist/esm/qds-title.entry.js +62 -0
  122. package/dist/esm/qds-title.entry.js.map +1 -0
  123. package/dist/esm/qds-tooltip.entry.js +280 -0
  124. package/dist/esm/qds-tooltip.entry.js.map +1 -0
  125. package/dist/esm/qds.js +28 -0
  126. package/dist/esm/qds.js.map +1 -0
  127. package/dist/types/components/button/button.d.ts +209 -0
  128. package/dist/types/components/checkbox/checkbox.d.ts +136 -0
  129. package/dist/types/components/create-story.d.ts +5 -0
  130. package/dist/types/components/dropdown/dropdown.d.ts +135 -0
  131. package/dist/types/components/icon/default-library.d.ts +4 -0
  132. package/dist/types/components/icon/icon.d.ts +31 -0
  133. package/dist/types/components/icon/library.d.ts +19 -0
  134. package/dist/types/components/icon/request.d.ts +12 -0
  135. package/dist/types/components/icon/system-library.d.ts +4 -0
  136. package/dist/types/components/inline-link/inline-link.d.ts +208 -0
  137. package/dist/types/components/input/input.d.ts +386 -0
  138. package/dist/types/components/label/label.d.ts +33 -0
  139. package/dist/types/components/radio/radio.d.ts +110 -0
  140. package/dist/types/components/switch/switch.d.ts +115 -0
  141. package/dist/types/components/title/title.d.ts +42 -0
  142. package/dist/types/components/tooltip/tooltip.d.ts +147 -0
  143. package/dist/types/components.d.ts +1692 -0
  144. package/dist/types/helpers.d.ts +49 -0
  145. package/dist/types/index.d.ts +4 -0
  146. package/dist/types/qds-test.d.ts +18 -0
  147. package/dist/types/stencil-public-runtime.d.ts +1638 -0
  148. package/dist/types/utils.d.ts +65 -0
  149. package/dist/vscode.html-custom-data.json +947 -0
  150. package/hydrate/index.d.ts +218 -0
  151. package/hydrate/index.js +9690 -0
  152. package/hydrate/package.json +6 -0
  153. package/loader/cdn.js +7 -0
  154. package/loader/index.cjs.js +7 -0
  155. package/loader/index.d.ts +21 -0
  156. package/loader/index.es2017.js +7 -0
  157. package/loader/index.js +8 -0
  158. package/loader/package.json +11 -0
  159. package/package.json +231 -0
  160. package/styles/core.css +379 -0
@@ -0,0 +1,1692 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /**
4
+ * This is an autogenerated file created by the Stencil compiler.
5
+ * It contains typing information for all components that exist in this project.
6
+ */
7
+ import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
+ import { ButtonSize, ButtonTarget, ButtonType, FormMethod, Importance } from "./components/button/button";
9
+ import { LiteralUnion } from "type-fest";
10
+ import { OffsetOptions, QdsFocusEventDetail } from "./helpers";
11
+ import { CheckboxSize, CheckboxValue } from "./components/checkbox/checkbox";
12
+ import { AutoUpdateOptions, DetectOverflowOptions, FlipOptions, Placement, ReferenceElement, ShiftOptions, Strategy } from "@floating-ui/dom";
13
+ import { Target } from "./components/inline-link/inline-link";
14
+ import { AutoCapitalize, AutoComplete, EnterKeyHint, InputMode, InputSize, InputType, InputValue, QdsInputEventDetail, SelectDirection } from "./components/input/input";
15
+ import { LabelSize } from "./components/label/label";
16
+ import { RadioSize, RadioValue } from "./components/radio/radio";
17
+ import { SwitchSize, SwitchValue } from "./components/switch/switch";
18
+ import { Layer, Level, Tag } from "./components/title/title";
19
+ export { ButtonSize, ButtonTarget, ButtonType, FormMethod, Importance } from "./components/button/button";
20
+ export { LiteralUnion } from "type-fest";
21
+ export { OffsetOptions, QdsFocusEventDetail } from "./helpers";
22
+ export { CheckboxSize, CheckboxValue } from "./components/checkbox/checkbox";
23
+ export { AutoUpdateOptions, DetectOverflowOptions, FlipOptions, Placement, ReferenceElement, ShiftOptions, Strategy } from "@floating-ui/dom";
24
+ export { Target } from "./components/inline-link/inline-link";
25
+ export { AutoCapitalize, AutoComplete, EnterKeyHint, InputMode, InputSize, InputType, InputValue, QdsInputEventDetail, SelectDirection } from "./components/input/input";
26
+ export { LabelSize } from "./components/label/label";
27
+ export { RadioSize, RadioValue } from "./components/radio/radio";
28
+ export { SwitchSize, SwitchValue } from "./components/switch/switch";
29
+ export { Layer, Level, Tag } from "./components/title/title";
30
+ export namespace Components {
31
+ /**
32
+ * The `<qds-button>` element is an interactive element activated by a user
33
+ * with a mouse, keyboard, finger, voice command, or other assistive technology.
34
+ * Once activated, it then performs a programmable action, such as submitting a
35
+ * [form](https://developer.mozilla.org/docs/Learn/Forms)
36
+ * or opening a dialog.
37
+ * @see https://quartz.se.com/build/components/button
38
+ */
39
+ interface QdsButton {
40
+ /**
41
+ * Prevents the button from being interacted with: it cannot be pressed or focused.
42
+ * @webnative
43
+ */
44
+ "disabled"?: boolean;
45
+ /**
46
+ * Tells the browser to download the linked file as this filename. Only used when `href` is set.
47
+ * @webnative
48
+ */
49
+ "download"?: string;
50
+ /**
51
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the button with (its form owner). The value of this attribute must be the id of a `<form>` in the same document. If this attribute is not set, the `<button>` is associated with its ancestor `<form>` element, if any. This attribute lets you associate `<button>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
52
+ * @webnative
53
+ */
54
+ "form"?: string;
55
+ /**
56
+ * The URL that processes the information submitted by the button. Overrides the [`action`](https://developer.mozilla.org/docs/Web/HTML/Element/button#attr-formaction) attribute of the button's form owner. Does nothing if there is no form owner.
57
+ * @webnative
58
+ */
59
+ "formAction"?: string;
60
+ /**
61
+ * If the button is a submit button (it's inside/associated with a `<form>` and doesn't have `type="button"`), this attribute specifies the [HTTP method](https://developer.mozilla.org/docs/Web/HTTP/Methods) used to submit the form. Possible values: - `get`: The form data are appended to the form's action URL, with a ? as a separator, and the resulting URL is sent to the server. Use this method when the form has no side effects, like search forms. - `post`: The data from the form are included in the body of the HTTP request when sent to the server. Use when the form contains information that shouldn't be public, like login credentials. If specified, this attribute overrides the method attribute of the button's form owner.
62
+ * @webnative
63
+ */
64
+ "formMethod"?: FormMethod;
65
+ /**
66
+ * If the button is a submit button, this attribute specifies that the form is not to be [validated](https://developer.mozilla.org/docs/Learn/Forms/Form_validation) when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner.
67
+ * @webnative
68
+ */
69
+ "formNoValidate": boolean;
70
+ /**
71
+ * If the button is a submit button, this attribute is an author-defined name or standardized, underscore-prefixed keyword indicating where to display the response from submitting the form. This is the `name` of, or keyword for, a browsing context (a tab, window, or [`<iframe>`](https://developer.mozilla.org/docs/Web/HTML/Element/iframe)). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings: - `_blank`: Load the response into a new unnamed browsing context — usually a new tab or window, depending on the user's browser settings. - `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`. - `_self`: Load the response into the same browsing context as the current one. - `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.
72
+ * @webnative
73
+ */
74
+ "formTarget": LiteralUnion<ButtonTarget, string>;
75
+ /**
76
+ * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
77
+ * @webnative
78
+ */
79
+ "href"?: string;
80
+ /**
81
+ * The name of a registered icon library.
82
+ */
83
+ "iconLibrary": string;
84
+ /**
85
+ * The name of the icon to render. Available names depend on the icon library being used.
86
+ */
87
+ "iconName"?: string;
88
+ /**
89
+ * The button's importance.
90
+ */
91
+ "importance": Importance;
92
+ /**
93
+ * The name of the button, submitted as a pair with the button's `value` as part of the form data, when that button is used to submit the form. Ignored when `href` is set.
94
+ * @webnative
95
+ */
96
+ "name"?: string;
97
+ /**
98
+ * The button's size.
99
+ */
100
+ "size": ButtonSize;
101
+ /**
102
+ * Where to display the linked URL, as the name for a browsing context (a tab, window, or [`<iframe>`](https://developer.mozilla.org/docs/Web/HTML/Element/iframe). The following keywords have special meanings for where to load the URL: - `_blank`: usually a new tab, but users can configure browsers to open a new window instead. - `_parent`: the parent browsing context of the current one. If no parent, behaves as `_self`. - `_self`: the current browsing context. - `_top`: the topmost browsing context (the "highest" context that's an ancestor of the current one). If no ancestors, behaves as `_self`.
103
+ * @webnative
104
+ */
105
+ "target": LiteralUnion<ButtonTarget, string>;
106
+ /**
107
+ * The button's text.
108
+ */
109
+ "text"?: string;
110
+ /**
111
+ * The type of button. `button`: The button has no default behavior, and does nothing when pressed by default. It can have client-side scripts listen to the element's events, which are triggered when the events occur. `submit`: The button submits the form data to the server. This is the default if the attribute is not specified for buttons associated with a `<form>`, or if the attribute is an empty or invalid value. `reset`: The button resets all the controls to their initial values.
112
+ * @webnative
113
+ */
114
+ "type"?: ButtonType;
115
+ /**
116
+ * Defines the value associated with the button's `name` when it's submitted with the form data. This value is passed to the server in params when the form is submitted using this button. Ignored when `href` is set.
117
+ * @webnative
118
+ */
119
+ "value"?: string;
120
+ }
121
+ /**
122
+ * `<qds-checkbox>` elements are rendered as boxes that are checked (ticked)
123
+ * when activated, like you might see in an official government paper form. A
124
+ * checkbox allows you to select single values for submission in a form (or not).
125
+ * @see https://quartz.se.com/build/components/checkbox
126
+ */
127
+ interface QdsCheckbox {
128
+ /**
129
+ * Specify whether the checkbox should have focus when the page loads.
130
+ * @webnative
131
+ */
132
+ "autoFocus"?: boolean;
133
+ /**
134
+ * Returns whether a form will validate this checkbox when it is submitted without having to submit it.
135
+ */
136
+ "checkValidity": () => Promise<boolean>;
137
+ /**
138
+ * Sets the checkbox's state.
139
+ * @webnative
140
+ */
141
+ "checked"?: boolean;
142
+ /**
143
+ * Prevents the checkbox from being interacted with: it cannot be pressed or focused.
144
+ * @webnative
145
+ */
146
+ "disabled"?: boolean;
147
+ /**
148
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the checkbox with (its form owner). The value of this property must be the id of a `<form>` in the same document. If this property is not set, the `<qds-checkbox>` is associated with its ancestor `<form>` element, if any. This property lets you associate `<qds-checkbox>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
149
+ * @webnative
150
+ */
151
+ "form"?: string;
152
+ /**
153
+ * Sets the checkbox to an indeterminate state. This is usually applied to checkboxes that represents a "select all/none" behavior when associated checkboxes have a mix of checked and unchecked states.
154
+ * @webnative
155
+ */
156
+ "indeterminate"?: boolean;
157
+ /**
158
+ * Adds vertical margin to the checkbox for alignment. This is useful when creating inline layouts so that the first lines have the correct vertical centering.
159
+ */
160
+ "inline": boolean;
161
+ /**
162
+ * The name of the checkbox, which is submitted with the form data. An incrementing ID is used by default.
163
+ * @webnative
164
+ */
165
+ "name": string;
166
+ /**
167
+ * Returns true if the checkbox's value passes validity checks; otherwise, returns false, and (if the event isn't canceled) reports the problem to the user.
168
+ */
169
+ "reportValidity": () => Promise<boolean>;
170
+ /**
171
+ * A value must be specified for the checkbox before the owning form can be submitted. See [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation) and the [HTML attribute: `required`](https://developer.mozilla.org/docs/Web/HTML/Attributes/required) for more information.
172
+ * @webnative
173
+ */
174
+ "required"?: boolean;
175
+ /**
176
+ * Sets a custom validity message for the checkbox. If this message is not the empty string, then the checkbox is considered invalid.
177
+ */
178
+ "setCustomValidity": (message: string) => Promise<void>;
179
+ /**
180
+ * The checkbox's size.
181
+ */
182
+ "size": CheckboxSize;
183
+ /**
184
+ * The checkbox's text.
185
+ */
186
+ "text"?: string;
187
+ /**
188
+ * The value of the checkbox, submitted as a name/value pair with form data.
189
+ * @webnative
190
+ */
191
+ "value"?: CheckboxValue;
192
+ }
193
+ /**
194
+ * @experimental
195
+ * @see https://quartz.se.com/build/components/dropdown
196
+ */
197
+ interface QdsDropdown {
198
+ /**
199
+ * Options to pass to Floating UI's [`autoUpdate()` function](https://floating-ui.com/docs/autoUpdate).
200
+ * @see https://floating-ui.com/docs/autoupdate#options
201
+ */
202
+ "autoUpdateOptions"?: AutoUpdateOptions;
203
+ /**
204
+ * Close the dropdown.
205
+ */
206
+ "close": () => Promise<void>;
207
+ /**
208
+ * Prevents the dropdown from being shown by user interaction. The dropdown can still be displayed by calling the `show()` method.
209
+ */
210
+ "disabled": boolean;
211
+ /**
212
+ * Options to pass to Floating UI's [`flip` middleware](https://floating-ui.com/docs/flip). The [`crossAxis` option](https://floating-ui.com/docs/flip#crossaxis) is set to the value of the `noShift` property by default for interoperability with the [`shift` middleware](https://floating-ui.com/docs/shift).
213
+ * @see https://floating-ui.com/docs/flip#options
214
+ */
215
+ "flipOptions"?: Partial<
216
+ DetectOverflowOptions & FlipOptions
217
+ >;
218
+ /**
219
+ * Disable Floating UI's [`flip` middleware](https://floating-ui.com/docs/flip).
220
+ */
221
+ "noFlip": boolean;
222
+ /**
223
+ * Disable Floating UI's [`shift` middleware](https://floating-ui.com/docs/shift).
224
+ */
225
+ "noShift": boolean;
226
+ /**
227
+ * Options to pass to Floating UI's [`offset` middleware](https://floating-ui.com/docs/offset). The [`mainAxis` option](https://floating-ui.com/docs/offset#mainaxis) is not supported.
228
+ * @see https://floating-ui.com/docs/offset#options
229
+ */
230
+ "offsetOptions"?: OffsetOptions;
231
+ /**
232
+ * Where to place the dropdown relative to the `target`.
233
+ * @see https://floating-ui.com/docs/tutorial#placements
234
+ */
235
+ "placement": Placement;
236
+ /**
237
+ * Options to pass to Floating UI's [`shift` middleware](https://floating-ui.com/docs/shift).
238
+ * @see https://floating-ui.com/docs/shift#options
239
+ */
240
+ "shiftOptions"?: Partial<
241
+ DetectOverflowOptions & ShiftOptions
242
+ >;
243
+ /**
244
+ * Show the dropdown.
245
+ */
246
+ "show": () => Promise<void>;
247
+ /**
248
+ * The CSS position strategy to use.
249
+ * @see https://floating-ui.com/docs/computeposition#strategy
250
+ */
251
+ "strategy"?: Strategy;
252
+ /**
253
+ * The trigger element that will trigger the dropdown. The target specified can be any of the follow: - A CSS selector string - A reference to an [`Element`](https://developer.mozilla.org/docs/Web/API/Element) or [Virtual Element](https://floating-ui.com/docs/virtual-elements) - A function returning a reference to an [`Element`](https://developer.mozilla.org/docs/Web/API/Element), [Virtual Element](https://floating-ui.com/docs/virtual-elements), or a CSS selector string
254
+ */
255
+ "target": | ReferenceElement
256
+ | string
257
+ | (() => ReferenceElement | string);
258
+ /**
259
+ * Update the dropdown's middleware and position.
260
+ */
261
+ "update": () => Promise<void>;
262
+ }
263
+ /**
264
+ * @experimental
265
+ */
266
+ interface QdsIcon {
267
+ /**
268
+ * The name of a registered icon library.
269
+ */
270
+ "library": string;
271
+ /**
272
+ * The name of the icon to render. Available names depend on the icon library being used.
273
+ */
274
+ "name": string;
275
+ }
276
+ /**
277
+ * `<qds-inline-link>` elements, with their `href` property, create a hyperlink
278
+ * to web pages, files, email addresses, locations in the same page, or
279
+ * anything else a URL can address.
280
+ * Content within each `<qds-inline-link>` *should* indicate the inline link's
281
+ * destination. If the `href` property is present, pressing the enter key while
282
+ * focused on the `<qds-inline-link>` element will activate it.
283
+ * @see https://quartz.se.com/build/components/inline-link
284
+ */
285
+ interface QdsInlineLink {
286
+ /**
287
+ * Prevents the inline link from being interacted with: it cannot be pressed or focused.
288
+ */
289
+ "disabled": boolean;
290
+ /**
291
+ * Causes the browser to treat the linked URL as a download. Can be used with or without a `filename` value: - Without a value, the browser will suggest a filename/extension, generated from various sources: - The [`Content-Disposition`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Disposition) HTTP header - The final segment in the URL [path](https://developer.mozilla.org/docs/Web/API/URL/pathname) - The [media type](https://developer.mozilla.org/docs/Glossary/MIME_type) (from the [`Content-Type`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Type) header, the start of a [`data:` URL](https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), or [`Blob.type`](https://developer.mozilla.org/docs/Web/API/Blob/type) for a [`blob:` URL](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL)) - `filename`: defining a value suggests it as the filename. `/` and `\` characters are converted to underscores (`_`). Filesystems may forbid other characters in filenames, so browsers will adjust the suggested name if necessary.
292
+ * @webnative
293
+ */
294
+ "download"?: boolean | string;
295
+ /**
296
+ * The URL that the inline link points to. Inline links are not restricted to HTTP-based URLs — they can use any URL scheme supported by browsers: - Sections of a page with document fragments - Specific text portions with [text fragments](https://developer.mozilla.org/docs/Web/Text_fragments) - Pieces of media files with media fragments - Telephone numbers with `tel:` URLs - Email addresses with `mailto:` URLs - While web browsers may not support other URL schemes, websites can with [`registerProtocolHandler()`](https://developer.mozilla.org/docs/Web/API/Navigator/registerProtocolHandler)
297
+ * @webnative
298
+ */
299
+ "href"?: string;
300
+ /**
301
+ * Hints at the human language of the linked URL. No built-in functionality. Allowed values are the same as [the global `lang` attribute](https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang).
302
+ * @webnative
303
+ */
304
+ "hreflang"?: string;
305
+ /**
306
+ * How much of the [referrer](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer) to send when following the inline link. - `no-referrer`: The [`Referer`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer) header will not be sent. - `no-referrer-when-downgrade`: The [`Referer`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer) header will not be sent to [origin](https://developer.mozilla.org/docs/Glossary/Origin)s without [TLS](https://developer.mozilla.org/docs/Glossary/TLS) ([HTTPS](https://developer.mozilla.org/docs/Glossary/HTTPS)). - `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/docs/Learn/Common_questions/What_is_a_URL), [host](https://developer.mozilla.org/docs/Glossary/Host), and [port](https://developer.mozilla.org/docs/Glossary/Port). - `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path. - `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/docs/Glossary/Same-origin_policy), but cross-origin requests will contain no referrer information. - `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS→HTTPS), but don't send it to a less secure destination (HTTPS→HTTP). - `strict-origin-when-cross-origin` (default): Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS→HTTPS), and send no header to a less secure destination (HTTPS→HTTP). - `unsafe-url`: The referrer will include the origin and the path (but not the [fragment](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hash), [password](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/password), or [username](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/username)). **This value is unsafe** because it leaks origins and paths from TLS-protected resources to insecure origins.
307
+ * @webnative
308
+ */
309
+ "referrerPolicy"?: ReferrerPolicy;
310
+ /**
311
+ * The relationship of the linked URL as space-separated [link types](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel). The following list includes some of the most important existing keywords. Every keyword within a space-separated value should be unique within that value. - [`alternate`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-alternate): Alternate representations of the current document. - [`author`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-author): Author of the current document or article. - [`bookmark`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-bookmark): Permalink for the nearest ancestor section. - [`external`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-external): The referenced document is not part of the same site as the current document. An icon will be rendered next to the text if this value is specified. - [`help`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-help): Link to context-sensitive help. - [`license`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-license): Indicates that the main content of the current document is covered by the copyright license described by the referenced document. - [`me`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel/me): Indicates that the current document represents the person who owns the linked content. - [`next`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-next): Indicates that the current document is a part of a series and that the next document in the series is the referenced document. - [`nofollow`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-nofollow): Indicates that the current document's original author or publisher does not endorse the referenced document. - [`noopener`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel/noopener): Creates a top-level browsing context that is not an auxiliary browsing context if the hyperlink would create either of those, to begin with (i.e., has an appropriate `target` attribute value). - [`noreferrer`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-noreferrer): No `Referer` header will be included. Additionally, has the same effect as `noopener`. - [`opener`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-opener): Creates an auxiliary browsing context if the hyperlink would otherwise create a top-level browsing context that is not an auxiliary browsing context (i.e., has "`_blank`" as `target` attribute value). - [`prev`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-prev): Indicates that the current document is a part of a series and that the previous document in the series is the referenced document. - [`search`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-search): Gives a link to a resource that can be used to search through the current document and its related pages. - [`tag`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-tag): Gives a tag (identified by the given address) that applies to the current document.
312
+ * @webnative
313
+ */
314
+ "rel"?: string;
315
+ /**
316
+ * Where to display the linked URL, as the name for a browsing context (a tab, window, or [`<iframe>`](https://developer.mozilla.org/docs/Web/HTML/Element/iframe). The following keywords have special meanings for where to load the URL: - `_blank`: usually a new tab, but users can configure browsers to open a new window instead. - `_parent`: the parent browsing context of the current one. If no parent, behaves as `_self`. - `_self`: the current browsing context. - `_top`: the topmost browsing context (the "highest" context that's an ancestor of the current one). If no ancestors, behaves as `_self`.
317
+ * @webnative
318
+ */
319
+ "target": LiteralUnion<Target, string>;
320
+ }
321
+ /**
322
+ * The `<qds-input>` element is used to create interactive controls for
323
+ * web-based forms in order to accept data from the user; a wide variety of
324
+ * types of input data and control widgets are available, depending on the
325
+ * device and
326
+ * [user agent](https://developer.mozilla.org/docs/Glossary/User_agent).
327
+ * @see https://quartz.se.com/build/components/input
328
+ */
329
+ interface QdsInput {
330
+ /**
331
+ * Controls whether and how input is automatically capitalized as it is entered/edited by the user. Only valid for `search`, `tel`, and `text` inputs. Possible values: - `"off"` or `"none"`: No auto-capitalization is applied (all letters default to lowercase). - `"on"` or `"sentences"`: The first letter of each sentence defaults to a capital letter; all other letters default to lowercase. - `"words"`: The first letter of each word defaults to a capital letter; all other letters default to lowercase. - `"characters"`: All letters default to uppercase.
332
+ * @webnative
333
+ */
334
+ "autoCapitalize"?: AutoCapitalize;
335
+ /**
336
+ * Indicates whether the value of the input can be automatically completed by the browser.
337
+ * @webnative
338
+ */
339
+ "autoComplete"?: AutoComplete;
340
+ /**
341
+ * Specify whether the input should have focus when the page loads.
342
+ * @webnative
343
+ */
344
+ "autoFocus"?: boolean;
345
+ /**
346
+ * Prevents the input from being interacted with: it cannot be pressed or focused.
347
+ * @webnative
348
+ */
349
+ "disabled"?: boolean;
350
+ /**
351
+ * What action label (or icon) to present for the enter key on virtual keyboards. Possible values: - `"done"`: Typically meaning there is nothing more to input and the input method editor (IME) will be closed. - `"enter"`: Typically inserting a new line. - `"go"`: Typically meaning to take the user to the target of the text they typed. - `"next"`: Typically taking the user to the next field that will accept text. - `"previous"`: Typically taking the user to the previous field that will accept text. - `"search"`: Typically taking the user to the results of searching for the text they have typed. - `"send"`: Typically delivering the text to its target.
352
+ * @webnative
353
+ */
354
+ "enterkeyhint"?: EnterKeyHint;
355
+ /**
356
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the input with (its form owner). The value of this attribute must be the id of a `<form>` in the same document. If this attribute is not set, the `<qds-input>` is associated with its ancestor `<form>` element, if any. This attribute lets you associate `<qds-input>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
357
+ * @webnative
358
+ */
359
+ "form"?: string;
360
+ /**
361
+ * Provide a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents.
362
+ * @webnative
363
+ */
364
+ "inputmode"?: InputMode;
365
+ /**
366
+ * Defines if the input is in an invalid state. Validity is determined by attributes such as `type`, `pattern`, `min`, `max`, `required`, `step`, `minlength`, and `maxlength` using [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation).
367
+ */
368
+ "invalid"?: boolean;
369
+ /**
370
+ * Defines the greatest value in the range of permitted values. If the `value` entered into the input exceeds this, the input fails [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation). Only valid for `date`, `datetime-local`, `month`, `time`, and `week` inputs. If this value isn't a valid number, then the input has no maximum value.
371
+ * @webnative
372
+ */
373
+ "max"?: number | string;
374
+ /**
375
+ * The maximum number of characters (as UTF-16 code units) the user can enter into the input. This must be an non-negative integer value. If no `maxlength` is specified, or an invalid value is specified, the input has no maximum length. Only valid for `email`, `password`, `search`, `tel`, `text`, and `url` inputs. The input will fail [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation) if the length of the text entered into the field is greater than `maxlength` UTF-16 code units long. By default, browsers prevent users from entering more characters than allowed by the `maxlength` attribute. See [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation) for more information.
376
+ * @webnative
377
+ */
378
+ "maxLength"?: number;
379
+ /**
380
+ * Defines the most negative value in the range of permitted values. If the `value` entered into the input is less than this, the input fails [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation). Only valid for `date`, `datetime-local`, `month`, `time`, and `week` inputs. This value must be less than or equal to the value of the `max` attribute. If this value isn't a valid number, then the input has no minimum value.
381
+ * @webnative
382
+ */
383
+ "min"?: number | string;
384
+ /**
385
+ * The minimum number of characters (as UTF-16 code units) the user can enter into the input. This must be an non-negative integer value smaller than or equal to the value specified by `maxlength`. If no `minlength` is specified, or an invalid value is specified, the input has no minimum length. Only valid for `email`, `password`, `search`, `tel`, `text`, and `url` inputs. The input will fail [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation) if the length of the text entered into the field is fewer than `minlength` UTF-16 code units long, preventing form submission. See [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation) for more information.
386
+ * @webnative
387
+ */
388
+ "minLength"?: number;
389
+ /**
390
+ * Specifies if multiple comma-separated email addresses can be entered. Only valid for `email` inputs.
391
+ * @webnative
392
+ */
393
+ "multiple"?: boolean;
394
+ /**
395
+ * The name of the control, which is submitted with the form data. An incrementing input ID is used by default.
396
+ * @webnative
397
+ */
398
+ "name": string;
399
+ /**
400
+ * Defines a regular expression that the input's `value` must match in order for the value to pass [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation). It must be a valid JavaScript regular expression, as used by the [`RegExp`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp) type, and as documented in MDN's [guide on regular expressions](https://developer.mozilla.org/docs/Web/JavaScript/Guide/Regular_Expressions); the `'u'` flag is specified when compiling the regular expression, so that the pattern is treated as a sequence of Unicode code points, instead of as ASCII. No forward slashes should be specified around the pattern text. Only valid for `email`, `password`, `search`, `tel`, `text`, and `url` inputs. If the `pattern` is invalid, no regular expression is applied and this property is ignored. If the pattern is valid and a non-empty value does not match the pattern, constraint validation will prevent form submission.
401
+ * @webnative
402
+ */
403
+ "pattern"?: string;
404
+ /**
405
+ * Text that appears in the input when it has no value set. Only valid for `email`, `number`, `password`, `search`, `tel`, `text`, and `url` inputs.
406
+ * @webnative
407
+ */
408
+ "placeholder"?: string;
409
+ /**
410
+ * The value of the input cannot be edited. Not valid for `color` inputs.
411
+ * @webnative
412
+ */
413
+ "readOnly"?: boolean;
414
+ /**
415
+ * Returns true if the element's value passes validity checks; otherwise, returns false, fires an invalid event at the element, and (if the event isn't canceled) reports the problem to the user.
416
+ */
417
+ "reportValidity": () => Promise<boolean>;
418
+ /**
419
+ * A value must be specified for the input before the owning form can be submitted. Not valid for `color` inputs. See [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation) and the [HTML attribute: `required`](https://developer.mozilla.org/docs/Web/HTML/Attributes/required) for more information.
420
+ * @webnative
421
+ */
422
+ "required"?: boolean;
423
+ /**
424
+ * Selects the entire content of the `<qds-input>` element if the element's content is selectable.
425
+ */
426
+ "select": () => Promise<void>;
427
+ /**
428
+ * Sets a custom validity message for the input. If this message is not the empty string, then the element is considered invalid.
429
+ */
430
+ "setCustomValidity": (message: string) => Promise<void>;
431
+ /**
432
+ * Sets the contents of the specified range of characters in the input element to a given string.
433
+ * @param replacement The string to insert.
434
+ * @param start The 0-based index of the first character to replace. Defaults to the current selectionStart value (the start of the user's current selection).
435
+ * @param end The 0-based index of the character _after_ the last character to replace. Defaults to the current selectionEnd value (the end of the user's current selection).
436
+ * @param selectionMode A string defining how the selection should be set after the text has been replaced. Possible values: - `"select"` selects the newly inserted text. - `"start"` moves the selection to just before the inserted text. - `"end"` moves the selection to just after the inserted text. - `"preserve"` attempts to preserve the selection.
437
+ */
438
+ "setRangeText": (replacement: string, start: number, end: number, selectionMode?: SelectionMode) => Promise<void>;
439
+ /**
440
+ * Selects the specified range of characters within the input.
441
+ * @param start The offset into the input for the start of the selection.
442
+ * @param end The offset into the input for the end of the selection.
443
+ * @param direction The direction in which the selection is performed.
444
+ */
445
+ "setSelectionRange": (start: number | null, end: number | null, direction?: SelectDirection) => Promise<void>;
446
+ /**
447
+ * The input's size. > **_NOTE:_** The native [`size` HTML attribute](https://developer.mozilla.org/docs/Web/HTML/Attributes/size) is not supported. CSS `width` should be used instead if this functionality is needed.
448
+ */
449
+ "size": InputSize;
450
+ /**
451
+ * Defines whether the input may be checked for spelling errors.
452
+ * @webnative
453
+ */
454
+ "spellCheck"?: boolean;
455
+ /**
456
+ * Specifies the granularity that the `value` must adhere to. Only valid for `date`, `datetime-local`, `month`, `number`, `time`, and `week` inputs. The value must be a positive number—integer or float—or the special value `any`, which means no stepping is implied, and any value is allowed (barring other constraints, such as `min` and `max`). If `any` is not explicitly set, valid values for the `number` are the basis for stepping — the `min` value and increments of the step value, up to the `max` value, if specified.
457
+ * @webnative
458
+ */
459
+ "step"?: number | 'any';
460
+ /**
461
+ * Decrements the `value` by (`step` * n), where n defaults to 1 if not specified.
462
+ * @param n Amount to decrement the value by.
463
+ */
464
+ "stepDown": (n?: number) => Promise<void>;
465
+ /**
466
+ * Increments the `value` by (`step` * n), where n defaults to 1 if not specified.
467
+ * @param n Amount to increment the value by.
468
+ */
469
+ "stepUp": (n?: number) => Promise<void>;
470
+ /**
471
+ * The type of input to render: - `"date"`: An input for entering a date (year, month, and day, with no time). Opens a date picker or numeric wheels for year, month, day when active in supporting browsers. - `"datetime-local"`: An input for entering a date and time, with no time zone. Opens a date picker or numeric wheels for date and time components when active in supporting browsers. - `"email"`: An input for editing an email address. Looks like a `"text"` input, but has validation parameters and relevant keyboard in supporting browsers and devices with dynamic keyboards. - `"month"`: An input for entering a month and year, with no time zone. - `"number"`: An input for entering a number. Displays a spinner and adds default validation when supported. Displays a numeric keypad in some devices with dynamic keypads. - `"password"`: A single-line text input whose value is obscured. Will alert user if site is not secure. - `"search"`: A single-line text input for entering search strings. Line-breaks are automatically removed from the input value. May include a delete icon in supporting browsers that can be used to clear the input. Displays a search icon instead of enter key on some devices with dynamic keypads. - `"tel"`: An input for entering a telephone number. Displays a telephone keypad in some devices with dynamic keypads. - `"text"`: A single-line text input. Line-breaks are automatically removed from the input value. - `"time"`: An input for entering a time value with no time zone. - `"url"`: An input for entering a URL. Looks like a `"text"` input, but has validation parameters and relevant keyboard in supporting browsers and devices with dynamic keyboards. - `"week"`: An input for entering a date consisting of a week-year number and a week number with no time zone.
472
+ * @webnative
473
+ */
474
+ "type"?: InputType;
475
+ /**
476
+ * The value of the input.
477
+ * @webnative
478
+ */
479
+ "value"?: InputValue;
480
+ }
481
+ /**
482
+ * `<qds-label>` elements represent a caption for an item in a user interface.
483
+ * @see https://quartz.se.com/build/components/label
484
+ */
485
+ interface QdsLabel {
486
+ /**
487
+ * Adds vertical margin to the label for alignment. This is useful when creating inline layouts so that the first lines have the correct vertical centering.
488
+ */
489
+ "inline": boolean;
490
+ /**
491
+ * Specify the labelled item as required by appending a red asterisk (*).
492
+ */
493
+ "required": boolean;
494
+ /**
495
+ * The label's size.
496
+ */
497
+ "size": LabelSize;
498
+ /**
499
+ * The label's text.
500
+ */
501
+ "text"?: string;
502
+ }
503
+ /**
504
+ * `<qds-radio>` elements are rendered as circles that are filled when
505
+ * selected. They are generally used in **radio groups** — collections of radio
506
+ * buttons describing a set of related options.
507
+ * Only one radio button in a given radio group can be selected at the same
508
+ * time.
509
+ * @see https://quartz.se.com/build/components/radio
510
+ */
511
+ interface QdsRadio {
512
+ /**
513
+ * Sets the radio button's state.
514
+ * @webnative
515
+ */
516
+ "checked"?: boolean;
517
+ /**
518
+ * Prevents the radio button from being interacted with: it cannot be pressed or focused.
519
+ * @webnative
520
+ */
521
+ "disabled"?: boolean;
522
+ /**
523
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the radio button with (its form owner). The value of this property must be the id of a `<form>` in the same document. If this property is not set, the `<qds-radio>` is associated with its ancestor `<form>` element, if any. This property lets you associate `<qds-radio>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
524
+ * @webnative
525
+ */
526
+ "form"?: string;
527
+ /**
528
+ * Adds vertical margin to the radio for alignment. This is useful when creating inline layouts so that the first lines have the correct vertical centering.
529
+ */
530
+ "inline": boolean;
531
+ /**
532
+ * Specify the radio group this radio button belongs to. Once a radio group is established, selecting any radio button in that group automatically deselects any currently-selected radio button in the same group.
533
+ * @webnative
534
+ */
535
+ "name"?: string;
536
+ /**
537
+ * Specify the group the radio button belongs to as required. If any radio button in a same-named group of radio buttons has the `required` attribute, a radio button in that group must be checked, although it doesn't have to be the one with the attribute applied.
538
+ * @webnative
539
+ */
540
+ "required"?: boolean;
541
+ /**
542
+ * The radio button's size.
543
+ */
544
+ "size": RadioSize;
545
+ /**
546
+ * The radio button's text.
547
+ */
548
+ "text"?: string;
549
+ /**
550
+ * The value of the radio button, submitted as a name/value pair with form data.
551
+ * @webnative
552
+ */
553
+ "value"?: RadioValue;
554
+ }
555
+ /**
556
+ * @see https://quartz.se.com/build/components/switch
557
+ */
558
+ interface QdsSwitch {
559
+ /**
560
+ * Specify whether the switch should have focus when the page loads.
561
+ * @webnative
562
+ */
563
+ "autoFocus"?: boolean;
564
+ /**
565
+ * Sets the switch's state.
566
+ * @webnative
567
+ */
568
+ "checked"?: boolean;
569
+ /**
570
+ * Prevents the switch from being interacted with: it cannot be pressed or focused.
571
+ * @webnative
572
+ */
573
+ "disabled"?: boolean;
574
+ /**
575
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the switch with (its form owner). The value of this property must be the id of a `<form>` in the same document. If this property is not set, the `<qds-switch>` is associated with its ancestor `<form>` element, if any. This property lets you associate `<qds-switch>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
576
+ * @webnative
577
+ */
578
+ "form"?: string;
579
+ /**
580
+ * The name of a registered checked icon library.
581
+ */
582
+ "iconCheckedLibrary": string;
583
+ /**
584
+ * The name of the checked icon to render. Available names depend on the icon library being used.
585
+ */
586
+ "iconCheckedName"?: string;
587
+ /**
588
+ * The name of a registered unchecked icon library.
589
+ */
590
+ "iconUncheckedLibrary": string;
591
+ /**
592
+ * The name of the unchecked icon to render. Available names depend on the icon library being used.
593
+ */
594
+ "iconUncheckedName"?: string;
595
+ /**
596
+ * Adds vertical margin to the switch for alignment. This is useful when creating inline layouts so that the first lines have the correct vertical centering.
597
+ */
598
+ "inline": boolean;
599
+ /**
600
+ * The name of the switch, which is submitted with the form data. An incrementing ID is used by default.
601
+ * @webnative
602
+ */
603
+ "name": string;
604
+ /**
605
+ * The switches's size.
606
+ */
607
+ "size": SwitchSize;
608
+ /**
609
+ * The switch's checked text.
610
+ */
611
+ "textChecked"?: string;
612
+ /**
613
+ * The switch's unchecked text.
614
+ */
615
+ "textUnchecked"?: string;
616
+ /**
617
+ * The value of the switch, submitted as a name/value pair with form data.
618
+ * @webnative
619
+ */
620
+ "value"?: SwitchValue;
621
+ }
622
+ /**
623
+ * @see https://quartz.se.com/build/components/title
624
+ */
625
+ interface QdsTitle {
626
+ /**
627
+ * The name of a registered icon library.
628
+ */
629
+ "iconLibrary": string;
630
+ /**
631
+ * The name of the icon to render. Available names depend on the icon library being used.
632
+ */
633
+ "iconName"?: string;
634
+ /**
635
+ * Text to display for the kicker.
636
+ */
637
+ "kicker"?: string;
638
+ "layer": Layer;
639
+ "level"?: Level;
640
+ /**
641
+ * Text to display for the subtitle.
642
+ */
643
+ "subtitle"?: string;
644
+ /**
645
+ * HTML tag to use to render the title.
646
+ */
647
+ "tag": Tag;
648
+ }
649
+ /**
650
+ * @experimental
651
+ * @see https://quartz.se.com/build/components/tooltip
652
+ */
653
+ interface QdsTooltip {
654
+ /**
655
+ * Options to pass to Floating UI's [`autoUpdate()` function](https://floating-ui.com/docs/autoUpdate).
656
+ * @see https://floating-ui.com/docs/autoupdate#options
657
+ */
658
+ "autoUpdateOptions"?: AutoUpdateOptions;
659
+ /**
660
+ * Close the tooltip.
661
+ */
662
+ "close": () => Promise<void>;
663
+ /**
664
+ * Prevents the tooltip from being shown by user interaction. The tooltip can still be displayed by calling the `show()` method.
665
+ */
666
+ "disabled": boolean;
667
+ /**
668
+ * Options to pass to Floating UI's [`flip` middleware](https://floating-ui.com/docs/flip). The [`crossAxis` option](https://floating-ui.com/docs/flip#crossaxis) is set to the value of the `noShift` property by default for interoperability with the [`shift` middleware](https://floating-ui.com/docs/shift).
669
+ * @see https://floating-ui.com/docs/flip#options
670
+ */
671
+ "flipOptions"?: Partial<
672
+ DetectOverflowOptions & FlipOptions
673
+ >;
674
+ /**
675
+ * Disable Floating UI's [`flip` middleware](https://floating-ui.com/docs/flip).
676
+ */
677
+ "noFlip": boolean;
678
+ /**
679
+ * Disable Floating UI's [`shift` middleware](https://floating-ui.com/docs/shift).
680
+ */
681
+ "noShift": boolean;
682
+ /**
683
+ * Options to pass to Floating UI's [`offset` middleware](https://floating-ui.com/docs/offset). The [`mainAxis` option](https://floating-ui.com/docs/offset#mainaxis) is not supported.
684
+ * @see https://floating-ui.com/docs/offset#options
685
+ */
686
+ "offsetOptions"?: OffsetOptions;
687
+ /**
688
+ * Where to place the tooltip relative to the `target`.
689
+ * @see https://floating-ui.com/docs/tutorial#placements
690
+ */
691
+ "placement": Placement;
692
+ /**
693
+ * Options to pass to Floating UI's [`shift` middleware](https://floating-ui.com/docs/shift).
694
+ * @see https://floating-ui.com/docs/shift#options
695
+ */
696
+ "shiftOptions"?: Partial<
697
+ DetectOverflowOptions & ShiftOptions
698
+ >;
699
+ /**
700
+ * Show the tooltip.
701
+ */
702
+ "show": () => Promise<void>;
703
+ /**
704
+ * The CSS position strategy to use.
705
+ * @see https://floating-ui.com/docs/computeposition#strategy
706
+ */
707
+ "strategy"?: Strategy;
708
+ /**
709
+ * The trigger element that will trigger the tooltip. The target specified can be any of the follow: - A CSS selector string - A reference to an [`Element`](https://developer.mozilla.org/docs/Web/API/Element) or [Virtual Element](https://floating-ui.com/docs/virtual-elements) - A function returning a reference to an [`Element`](https://developer.mozilla.org/docs/Web/API/Element), [Virtual Element](https://floating-ui.com/docs/virtual-elements), or a CSS selector string
710
+ */
711
+ "target": | ReferenceElement
712
+ | string
713
+ | (() => ReferenceElement | string);
714
+ /**
715
+ * Update the tooltip's arrow. This method should typically be called when the Quartz platform was changed.
716
+ */
717
+ "updateArrow": () => Promise<void>;
718
+ }
719
+ }
720
+ export interface QdsButtonCustomEvent<T> extends CustomEvent<T> {
721
+ detail: T;
722
+ target: HTMLQdsButtonElement;
723
+ }
724
+ export interface QdsCheckboxCustomEvent<T> extends CustomEvent<T> {
725
+ detail: T;
726
+ target: HTMLQdsCheckboxElement;
727
+ }
728
+ export interface QdsDropdownCustomEvent<T> extends CustomEvent<T> {
729
+ detail: T;
730
+ target: HTMLQdsDropdownElement;
731
+ }
732
+ export interface QdsIconCustomEvent<T> extends CustomEvent<T> {
733
+ detail: T;
734
+ target: HTMLQdsIconElement;
735
+ }
736
+ export interface QdsInlineLinkCustomEvent<T> extends CustomEvent<T> {
737
+ detail: T;
738
+ target: HTMLQdsInlineLinkElement;
739
+ }
740
+ export interface QdsInputCustomEvent<T> extends CustomEvent<T> {
741
+ detail: T;
742
+ target: HTMLQdsInputElement;
743
+ }
744
+ export interface QdsRadioCustomEvent<T> extends CustomEvent<T> {
745
+ detail: T;
746
+ target: HTMLQdsRadioElement;
747
+ }
748
+ export interface QdsSwitchCustomEvent<T> extends CustomEvent<T> {
749
+ detail: T;
750
+ target: HTMLQdsSwitchElement;
751
+ }
752
+ export interface QdsTooltipCustomEvent<T> extends CustomEvent<T> {
753
+ detail: T;
754
+ target: HTMLQdsTooltipElement;
755
+ }
756
+ declare global {
757
+ /**
758
+ * The `<qds-button>` element is an interactive element activated by a user
759
+ * with a mouse, keyboard, finger, voice command, or other assistive technology.
760
+ * Once activated, it then performs a programmable action, such as submitting a
761
+ * [form](https://developer.mozilla.org/docs/Learn/Forms)
762
+ * or opening a dialog.
763
+ * @see https://quartz.se.com/build/components/button
764
+ */
765
+ interface HTMLQdsButtonElement extends Components.QdsButton, HTMLStencilElement {
766
+ }
767
+ var HTMLQdsButtonElement: {
768
+ prototype: HTMLQdsButtonElement;
769
+ new (): HTMLQdsButtonElement;
770
+ };
771
+ /**
772
+ * `<qds-checkbox>` elements are rendered as boxes that are checked (ticked)
773
+ * when activated, like you might see in an official government paper form. A
774
+ * checkbox allows you to select single values for submission in a form (or not).
775
+ * @see https://quartz.se.com/build/components/checkbox
776
+ */
777
+ interface HTMLQdsCheckboxElement extends Components.QdsCheckbox, HTMLStencilElement {
778
+ }
779
+ var HTMLQdsCheckboxElement: {
780
+ prototype: HTMLQdsCheckboxElement;
781
+ new (): HTMLQdsCheckboxElement;
782
+ };
783
+ /**
784
+ * @experimental
785
+ * @see https://quartz.se.com/build/components/dropdown
786
+ */
787
+ interface HTMLQdsDropdownElement extends Components.QdsDropdown, HTMLStencilElement {
788
+ }
789
+ var HTMLQdsDropdownElement: {
790
+ prototype: HTMLQdsDropdownElement;
791
+ new (): HTMLQdsDropdownElement;
792
+ };
793
+ /**
794
+ * @experimental
795
+ */
796
+ interface HTMLQdsIconElement extends Components.QdsIcon, HTMLStencilElement {
797
+ }
798
+ var HTMLQdsIconElement: {
799
+ prototype: HTMLQdsIconElement;
800
+ new (): HTMLQdsIconElement;
801
+ };
802
+ /**
803
+ * `<qds-inline-link>` elements, with their `href` property, create a hyperlink
804
+ * to web pages, files, email addresses, locations in the same page, or
805
+ * anything else a URL can address.
806
+ * Content within each `<qds-inline-link>` *should* indicate the inline link's
807
+ * destination. If the `href` property is present, pressing the enter key while
808
+ * focused on the `<qds-inline-link>` element will activate it.
809
+ * @see https://quartz.se.com/build/components/inline-link
810
+ */
811
+ interface HTMLQdsInlineLinkElement extends Components.QdsInlineLink, HTMLStencilElement {
812
+ }
813
+ var HTMLQdsInlineLinkElement: {
814
+ prototype: HTMLQdsInlineLinkElement;
815
+ new (): HTMLQdsInlineLinkElement;
816
+ };
817
+ /**
818
+ * The `<qds-input>` element is used to create interactive controls for
819
+ * web-based forms in order to accept data from the user; a wide variety of
820
+ * types of input data and control widgets are available, depending on the
821
+ * device and
822
+ * [user agent](https://developer.mozilla.org/docs/Glossary/User_agent).
823
+ * @see https://quartz.se.com/build/components/input
824
+ */
825
+ interface HTMLQdsInputElement extends Components.QdsInput, HTMLStencilElement {
826
+ }
827
+ var HTMLQdsInputElement: {
828
+ prototype: HTMLQdsInputElement;
829
+ new (): HTMLQdsInputElement;
830
+ };
831
+ /**
832
+ * `<qds-label>` elements represent a caption for an item in a user interface.
833
+ * @see https://quartz.se.com/build/components/label
834
+ */
835
+ interface HTMLQdsLabelElement extends Components.QdsLabel, HTMLStencilElement {
836
+ }
837
+ var HTMLQdsLabelElement: {
838
+ prototype: HTMLQdsLabelElement;
839
+ new (): HTMLQdsLabelElement;
840
+ };
841
+ /**
842
+ * `<qds-radio>` elements are rendered as circles that are filled when
843
+ * selected. They are generally used in **radio groups** — collections of radio
844
+ * buttons describing a set of related options.
845
+ * Only one radio button in a given radio group can be selected at the same
846
+ * time.
847
+ * @see https://quartz.se.com/build/components/radio
848
+ */
849
+ interface HTMLQdsRadioElement extends Components.QdsRadio, HTMLStencilElement {
850
+ }
851
+ var HTMLQdsRadioElement: {
852
+ prototype: HTMLQdsRadioElement;
853
+ new (): HTMLQdsRadioElement;
854
+ };
855
+ /**
856
+ * @see https://quartz.se.com/build/components/switch
857
+ */
858
+ interface HTMLQdsSwitchElement extends Components.QdsSwitch, HTMLStencilElement {
859
+ }
860
+ var HTMLQdsSwitchElement: {
861
+ prototype: HTMLQdsSwitchElement;
862
+ new (): HTMLQdsSwitchElement;
863
+ };
864
+ /**
865
+ * @see https://quartz.se.com/build/components/title
866
+ */
867
+ interface HTMLQdsTitleElement extends Components.QdsTitle, HTMLStencilElement {
868
+ }
869
+ var HTMLQdsTitleElement: {
870
+ prototype: HTMLQdsTitleElement;
871
+ new (): HTMLQdsTitleElement;
872
+ };
873
+ /**
874
+ * @experimental
875
+ * @see https://quartz.se.com/build/components/tooltip
876
+ */
877
+ interface HTMLQdsTooltipElement extends Components.QdsTooltip, HTMLStencilElement {
878
+ }
879
+ var HTMLQdsTooltipElement: {
880
+ prototype: HTMLQdsTooltipElement;
881
+ new (): HTMLQdsTooltipElement;
882
+ };
883
+ interface HTMLElementTagNameMap {
884
+ "qds-button": HTMLQdsButtonElement;
885
+ "qds-checkbox": HTMLQdsCheckboxElement;
886
+ "qds-dropdown": HTMLQdsDropdownElement;
887
+ "qds-icon": HTMLQdsIconElement;
888
+ "qds-inline-link": HTMLQdsInlineLinkElement;
889
+ "qds-input": HTMLQdsInputElement;
890
+ "qds-label": HTMLQdsLabelElement;
891
+ "qds-radio": HTMLQdsRadioElement;
892
+ "qds-switch": HTMLQdsSwitchElement;
893
+ "qds-title": HTMLQdsTitleElement;
894
+ "qds-tooltip": HTMLQdsTooltipElement;
895
+ }
896
+ }
897
+ declare namespace LocalJSX {
898
+ /**
899
+ * The `<qds-button>` element is an interactive element activated by a user
900
+ * with a mouse, keyboard, finger, voice command, or other assistive technology.
901
+ * Once activated, it then performs a programmable action, such as submitting a
902
+ * [form](https://developer.mozilla.org/docs/Learn/Forms)
903
+ * or opening a dialog.
904
+ * @see https://quartz.se.com/build/components/button
905
+ */
906
+ interface QdsButton {
907
+ /**
908
+ * Prevents the button from being interacted with: it cannot be pressed or focused.
909
+ * @webnative
910
+ */
911
+ "disabled"?: boolean;
912
+ /**
913
+ * Tells the browser to download the linked file as this filename. Only used when `href` is set.
914
+ * @webnative
915
+ */
916
+ "download"?: string;
917
+ /**
918
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the button with (its form owner). The value of this attribute must be the id of a `<form>` in the same document. If this attribute is not set, the `<button>` is associated with its ancestor `<form>` element, if any. This attribute lets you associate `<button>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
919
+ * @webnative
920
+ */
921
+ "form"?: string;
922
+ /**
923
+ * The URL that processes the information submitted by the button. Overrides the [`action`](https://developer.mozilla.org/docs/Web/HTML/Element/button#attr-formaction) attribute of the button's form owner. Does nothing if there is no form owner.
924
+ * @webnative
925
+ */
926
+ "formAction"?: string;
927
+ /**
928
+ * If the button is a submit button (it's inside/associated with a `<form>` and doesn't have `type="button"`), this attribute specifies the [HTTP method](https://developer.mozilla.org/docs/Web/HTTP/Methods) used to submit the form. Possible values: - `get`: The form data are appended to the form's action URL, with a ? as a separator, and the resulting URL is sent to the server. Use this method when the form has no side effects, like search forms. - `post`: The data from the form are included in the body of the HTTP request when sent to the server. Use when the form contains information that shouldn't be public, like login credentials. If specified, this attribute overrides the method attribute of the button's form owner.
929
+ * @webnative
930
+ */
931
+ "formMethod"?: FormMethod;
932
+ /**
933
+ * If the button is a submit button, this attribute specifies that the form is not to be [validated](https://developer.mozilla.org/docs/Learn/Forms/Form_validation) when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner.
934
+ * @webnative
935
+ */
936
+ "formNoValidate"?: boolean;
937
+ /**
938
+ * If the button is a submit button, this attribute is an author-defined name or standardized, underscore-prefixed keyword indicating where to display the response from submitting the form. This is the `name` of, or keyword for, a browsing context (a tab, window, or [`<iframe>`](https://developer.mozilla.org/docs/Web/HTML/Element/iframe)). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings: - `_blank`: Load the response into a new unnamed browsing context — usually a new tab or window, depending on the user's browser settings. - `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`. - `_self`: Load the response into the same browsing context as the current one. - `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.
939
+ * @webnative
940
+ */
941
+ "formTarget"?: LiteralUnion<ButtonTarget, string>;
942
+ /**
943
+ * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
944
+ * @webnative
945
+ */
946
+ "href"?: string;
947
+ /**
948
+ * The name of a registered icon library.
949
+ */
950
+ "iconLibrary"?: string;
951
+ /**
952
+ * The name of the icon to render. Available names depend on the icon library being used.
953
+ */
954
+ "iconName"?: string;
955
+ /**
956
+ * The button's importance.
957
+ */
958
+ "importance"?: Importance;
959
+ /**
960
+ * The name of the button, submitted as a pair with the button's `value` as part of the form data, when that button is used to submit the form. Ignored when `href` is set.
961
+ * @webnative
962
+ */
963
+ "name"?: string;
964
+ /**
965
+ * Emitted when the button loses focus.
966
+ */
967
+ "onQdsBlur"?: (event: QdsButtonCustomEvent<QdsFocusEventDetail>) => void;
968
+ /**
969
+ * Emitted when the button gains focus.
970
+ */
971
+ "onQdsFocus"?: (event: QdsButtonCustomEvent<QdsFocusEventDetail>) => void;
972
+ /**
973
+ * The button's size.
974
+ */
975
+ "size"?: ButtonSize;
976
+ /**
977
+ * Where to display the linked URL, as the name for a browsing context (a tab, window, or [`<iframe>`](https://developer.mozilla.org/docs/Web/HTML/Element/iframe). The following keywords have special meanings for where to load the URL: - `_blank`: usually a new tab, but users can configure browsers to open a new window instead. - `_parent`: the parent browsing context of the current one. If no parent, behaves as `_self`. - `_self`: the current browsing context. - `_top`: the topmost browsing context (the "highest" context that's an ancestor of the current one). If no ancestors, behaves as `_self`.
978
+ * @webnative
979
+ */
980
+ "target"?: LiteralUnion<ButtonTarget, string>;
981
+ /**
982
+ * The button's text.
983
+ */
984
+ "text"?: string;
985
+ /**
986
+ * The type of button. `button`: The button has no default behavior, and does nothing when pressed by default. It can have client-side scripts listen to the element's events, which are triggered when the events occur. `submit`: The button submits the form data to the server. This is the default if the attribute is not specified for buttons associated with a `<form>`, or if the attribute is an empty or invalid value. `reset`: The button resets all the controls to their initial values.
987
+ * @webnative
988
+ */
989
+ "type"?: ButtonType;
990
+ /**
991
+ * Defines the value associated with the button's `name` when it's submitted with the form data. This value is passed to the server in params when the form is submitted using this button. Ignored when `href` is set.
992
+ * @webnative
993
+ */
994
+ "value"?: string;
995
+ }
996
+ /**
997
+ * `<qds-checkbox>` elements are rendered as boxes that are checked (ticked)
998
+ * when activated, like you might see in an official government paper form. A
999
+ * checkbox allows you to select single values for submission in a form (or not).
1000
+ * @see https://quartz.se.com/build/components/checkbox
1001
+ */
1002
+ interface QdsCheckbox {
1003
+ /**
1004
+ * Specify whether the checkbox should have focus when the page loads.
1005
+ * @webnative
1006
+ */
1007
+ "autoFocus"?: boolean;
1008
+ /**
1009
+ * Sets the checkbox's state.
1010
+ * @webnative
1011
+ */
1012
+ "checked"?: boolean;
1013
+ /**
1014
+ * Prevents the checkbox from being interacted with: it cannot be pressed or focused.
1015
+ * @webnative
1016
+ */
1017
+ "disabled"?: boolean;
1018
+ /**
1019
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the checkbox with (its form owner). The value of this property must be the id of a `<form>` in the same document. If this property is not set, the `<qds-checkbox>` is associated with its ancestor `<form>` element, if any. This property lets you associate `<qds-checkbox>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
1020
+ * @webnative
1021
+ */
1022
+ "form"?: string;
1023
+ /**
1024
+ * Sets the checkbox to an indeterminate state. This is usually applied to checkboxes that represents a "select all/none" behavior when associated checkboxes have a mix of checked and unchecked states.
1025
+ * @webnative
1026
+ */
1027
+ "indeterminate"?: boolean;
1028
+ /**
1029
+ * Adds vertical margin to the checkbox for alignment. This is useful when creating inline layouts so that the first lines have the correct vertical centering.
1030
+ */
1031
+ "inline"?: boolean;
1032
+ /**
1033
+ * The name of the checkbox, which is submitted with the form data. An incrementing ID is used by default.
1034
+ * @webnative
1035
+ */
1036
+ "name"?: string;
1037
+ /**
1038
+ * Emitted when the checkbox loses focus.
1039
+ */
1040
+ "onQdsBlur"?: (event: QdsCheckboxCustomEvent<QdsFocusEventDetail>) => void;
1041
+ /**
1042
+ * Emitted when a change to the checkbox's state is committed by the user.
1043
+ */
1044
+ "onQdsChange"?: (event: QdsCheckboxCustomEvent<void>) => void;
1045
+ /**
1046
+ * Emitted when the checkbox gains focus.
1047
+ */
1048
+ "onQdsFocus"?: (event: QdsCheckboxCustomEvent<QdsFocusEventDetail>) => void;
1049
+ /**
1050
+ * A value must be specified for the checkbox before the owning form can be submitted. See [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation) and the [HTML attribute: `required`](https://developer.mozilla.org/docs/Web/HTML/Attributes/required) for more information.
1051
+ * @webnative
1052
+ */
1053
+ "required"?: boolean;
1054
+ /**
1055
+ * The checkbox's size.
1056
+ */
1057
+ "size"?: CheckboxSize;
1058
+ /**
1059
+ * The checkbox's text.
1060
+ */
1061
+ "text"?: string;
1062
+ /**
1063
+ * The value of the checkbox, submitted as a name/value pair with form data.
1064
+ * @webnative
1065
+ */
1066
+ "value"?: CheckboxValue;
1067
+ }
1068
+ /**
1069
+ * @experimental
1070
+ * @see https://quartz.se.com/build/components/dropdown
1071
+ */
1072
+ interface QdsDropdown {
1073
+ /**
1074
+ * Options to pass to Floating UI's [`autoUpdate()` function](https://floating-ui.com/docs/autoUpdate).
1075
+ * @see https://floating-ui.com/docs/autoupdate#options
1076
+ */
1077
+ "autoUpdateOptions"?: AutoUpdateOptions;
1078
+ /**
1079
+ * Prevents the dropdown from being shown by user interaction. The dropdown can still be displayed by calling the `show()` method.
1080
+ */
1081
+ "disabled"?: boolean;
1082
+ /**
1083
+ * Options to pass to Floating UI's [`flip` middleware](https://floating-ui.com/docs/flip). The [`crossAxis` option](https://floating-ui.com/docs/flip#crossaxis) is set to the value of the `noShift` property by default for interoperability with the [`shift` middleware](https://floating-ui.com/docs/shift).
1084
+ * @see https://floating-ui.com/docs/flip#options
1085
+ */
1086
+ "flipOptions"?: Partial<
1087
+ DetectOverflowOptions & FlipOptions
1088
+ >;
1089
+ /**
1090
+ * Disable Floating UI's [`flip` middleware](https://floating-ui.com/docs/flip).
1091
+ */
1092
+ "noFlip"?: boolean;
1093
+ /**
1094
+ * Disable Floating UI's [`shift` middleware](https://floating-ui.com/docs/shift).
1095
+ */
1096
+ "noShift"?: boolean;
1097
+ /**
1098
+ * Options to pass to Floating UI's [`offset` middleware](https://floating-ui.com/docs/offset). The [`mainAxis` option](https://floating-ui.com/docs/offset#mainaxis) is not supported.
1099
+ * @see https://floating-ui.com/docs/offset#options
1100
+ */
1101
+ "offsetOptions"?: OffsetOptions;
1102
+ /**
1103
+ * Emitted when the user instructs the browser that they wish to dismiss the current open dropdown by pressing the `Esc` key. When a dropdown is dismissed with the `Esc` key, both the `qdsCancel` and `qdsClose` events are emitted.
1104
+ */
1105
+ "onQdsCancel"?: (event: QdsDropdownCustomEvent<void>) => void;
1106
+ /**
1107
+ * Emitted when the dropdown is closed.
1108
+ */
1109
+ "onQdsClose"?: (event: QdsDropdownCustomEvent<void>) => void;
1110
+ /**
1111
+ * Where to place the dropdown relative to the `target`.
1112
+ * @see https://floating-ui.com/docs/tutorial#placements
1113
+ */
1114
+ "placement"?: Placement;
1115
+ /**
1116
+ * Options to pass to Floating UI's [`shift` middleware](https://floating-ui.com/docs/shift).
1117
+ * @see https://floating-ui.com/docs/shift#options
1118
+ */
1119
+ "shiftOptions"?: Partial<
1120
+ DetectOverflowOptions & ShiftOptions
1121
+ >;
1122
+ /**
1123
+ * The CSS position strategy to use.
1124
+ * @see https://floating-ui.com/docs/computeposition#strategy
1125
+ */
1126
+ "strategy"?: Strategy;
1127
+ /**
1128
+ * The trigger element that will trigger the dropdown. The target specified can be any of the follow: - A CSS selector string - A reference to an [`Element`](https://developer.mozilla.org/docs/Web/API/Element) or [Virtual Element](https://floating-ui.com/docs/virtual-elements) - A function returning a reference to an [`Element`](https://developer.mozilla.org/docs/Web/API/Element), [Virtual Element](https://floating-ui.com/docs/virtual-elements), or a CSS selector string
1129
+ */
1130
+ "target": | ReferenceElement
1131
+ | string
1132
+ | (() => ReferenceElement | string);
1133
+ }
1134
+ /**
1135
+ * @experimental
1136
+ */
1137
+ interface QdsIcon {
1138
+ /**
1139
+ * The name of a registered icon library.
1140
+ */
1141
+ "library"?: string;
1142
+ /**
1143
+ * The name of the icon to render. Available names depend on the icon library being used.
1144
+ */
1145
+ "name": string;
1146
+ /**
1147
+ * Emitted when the icon fails to load due to an error.
1148
+ */
1149
+ "onQdsError"?: (event: QdsIconCustomEvent<void>) => void;
1150
+ /**
1151
+ * Emitted when the icon has loaded.
1152
+ */
1153
+ "onQdsLoad"?: (event: QdsIconCustomEvent<void>) => void;
1154
+ }
1155
+ /**
1156
+ * `<qds-inline-link>` elements, with their `href` property, create a hyperlink
1157
+ * to web pages, files, email addresses, locations in the same page, or
1158
+ * anything else a URL can address.
1159
+ * Content within each `<qds-inline-link>` *should* indicate the inline link's
1160
+ * destination. If the `href` property is present, pressing the enter key while
1161
+ * focused on the `<qds-inline-link>` element will activate it.
1162
+ * @see https://quartz.se.com/build/components/inline-link
1163
+ */
1164
+ interface QdsInlineLink {
1165
+ /**
1166
+ * Prevents the inline link from being interacted with: it cannot be pressed or focused.
1167
+ */
1168
+ "disabled"?: boolean;
1169
+ /**
1170
+ * Causes the browser to treat the linked URL as a download. Can be used with or without a `filename` value: - Without a value, the browser will suggest a filename/extension, generated from various sources: - The [`Content-Disposition`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Disposition) HTTP header - The final segment in the URL [path](https://developer.mozilla.org/docs/Web/API/URL/pathname) - The [media type](https://developer.mozilla.org/docs/Glossary/MIME_type) (from the [`Content-Type`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Type) header, the start of a [`data:` URL](https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), or [`Blob.type`](https://developer.mozilla.org/docs/Web/API/Blob/type) for a [`blob:` URL](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL)) - `filename`: defining a value suggests it as the filename. `/` and `\` characters are converted to underscores (`_`). Filesystems may forbid other characters in filenames, so browsers will adjust the suggested name if necessary.
1171
+ * @webnative
1172
+ */
1173
+ "download"?: boolean | string;
1174
+ /**
1175
+ * The URL that the inline link points to. Inline links are not restricted to HTTP-based URLs — they can use any URL scheme supported by browsers: - Sections of a page with document fragments - Specific text portions with [text fragments](https://developer.mozilla.org/docs/Web/Text_fragments) - Pieces of media files with media fragments - Telephone numbers with `tel:` URLs - Email addresses with `mailto:` URLs - While web browsers may not support other URL schemes, websites can with [`registerProtocolHandler()`](https://developer.mozilla.org/docs/Web/API/Navigator/registerProtocolHandler)
1176
+ * @webnative
1177
+ */
1178
+ "href"?: string;
1179
+ /**
1180
+ * Hints at the human language of the linked URL. No built-in functionality. Allowed values are the same as [the global `lang` attribute](https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang).
1181
+ * @webnative
1182
+ */
1183
+ "hreflang"?: string;
1184
+ /**
1185
+ * Emitted when the inline link loses focus.
1186
+ */
1187
+ "onQdsBlur"?: (event: QdsInlineLinkCustomEvent<QdsFocusEventDetail>) => void;
1188
+ /**
1189
+ * Emitted when the inline link gains focus.
1190
+ */
1191
+ "onQdsFocus"?: (event: QdsInlineLinkCustomEvent<QdsFocusEventDetail>) => void;
1192
+ /**
1193
+ * How much of the [referrer](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer) to send when following the inline link. - `no-referrer`: The [`Referer`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer) header will not be sent. - `no-referrer-when-downgrade`: The [`Referer`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Referer) header will not be sent to [origin](https://developer.mozilla.org/docs/Glossary/Origin)s without [TLS](https://developer.mozilla.org/docs/Glossary/TLS) ([HTTPS](https://developer.mozilla.org/docs/Glossary/HTTPS)). - `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/docs/Learn/Common_questions/What_is_a_URL), [host](https://developer.mozilla.org/docs/Glossary/Host), and [port](https://developer.mozilla.org/docs/Glossary/Port). - `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path. - `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/docs/Glossary/Same-origin_policy), but cross-origin requests will contain no referrer information. - `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS→HTTPS), but don't send it to a less secure destination (HTTPS→HTTP). - `strict-origin-when-cross-origin` (default): Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS→HTTPS), and send no header to a less secure destination (HTTPS→HTTP). - `unsafe-url`: The referrer will include the origin and the path (but not the [fragment](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hash), [password](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/password), or [username](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/username)). **This value is unsafe** because it leaks origins and paths from TLS-protected resources to insecure origins.
1194
+ * @webnative
1195
+ */
1196
+ "referrerPolicy"?: ReferrerPolicy;
1197
+ /**
1198
+ * The relationship of the linked URL as space-separated [link types](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel). The following list includes some of the most important existing keywords. Every keyword within a space-separated value should be unique within that value. - [`alternate`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-alternate): Alternate representations of the current document. - [`author`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-author): Author of the current document or article. - [`bookmark`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-bookmark): Permalink for the nearest ancestor section. - [`external`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-external): The referenced document is not part of the same site as the current document. An icon will be rendered next to the text if this value is specified. - [`help`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-help): Link to context-sensitive help. - [`license`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-license): Indicates that the main content of the current document is covered by the copyright license described by the referenced document. - [`me`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel/me): Indicates that the current document represents the person who owns the linked content. - [`next`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-next): Indicates that the current document is a part of a series and that the next document in the series is the referenced document. - [`nofollow`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-nofollow): Indicates that the current document's original author or publisher does not endorse the referenced document. - [`noopener`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel/noopener): Creates a top-level browsing context that is not an auxiliary browsing context if the hyperlink would create either of those, to begin with (i.e., has an appropriate `target` attribute value). - [`noreferrer`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-noreferrer): No `Referer` header will be included. Additionally, has the same effect as `noopener`. - [`opener`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-opener): Creates an auxiliary browsing context if the hyperlink would otherwise create a top-level browsing context that is not an auxiliary browsing context (i.e., has "`_blank`" as `target` attribute value). - [`prev`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-prev): Indicates that the current document is a part of a series and that the previous document in the series is the referenced document. - [`search`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-search): Gives a link to a resource that can be used to search through the current document and its related pages. - [`tag`](https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-tag): Gives a tag (identified by the given address) that applies to the current document.
1199
+ * @webnative
1200
+ */
1201
+ "rel"?: string;
1202
+ /**
1203
+ * Where to display the linked URL, as the name for a browsing context (a tab, window, or [`<iframe>`](https://developer.mozilla.org/docs/Web/HTML/Element/iframe). The following keywords have special meanings for where to load the URL: - `_blank`: usually a new tab, but users can configure browsers to open a new window instead. - `_parent`: the parent browsing context of the current one. If no parent, behaves as `_self`. - `_self`: the current browsing context. - `_top`: the topmost browsing context (the "highest" context that's an ancestor of the current one). If no ancestors, behaves as `_self`.
1204
+ * @webnative
1205
+ */
1206
+ "target"?: LiteralUnion<Target, string>;
1207
+ }
1208
+ /**
1209
+ * The `<qds-input>` element is used to create interactive controls for
1210
+ * web-based forms in order to accept data from the user; a wide variety of
1211
+ * types of input data and control widgets are available, depending on the
1212
+ * device and
1213
+ * [user agent](https://developer.mozilla.org/docs/Glossary/User_agent).
1214
+ * @see https://quartz.se.com/build/components/input
1215
+ */
1216
+ interface QdsInput {
1217
+ /**
1218
+ * Controls whether and how input is automatically capitalized as it is entered/edited by the user. Only valid for `search`, `tel`, and `text` inputs. Possible values: - `"off"` or `"none"`: No auto-capitalization is applied (all letters default to lowercase). - `"on"` or `"sentences"`: The first letter of each sentence defaults to a capital letter; all other letters default to lowercase. - `"words"`: The first letter of each word defaults to a capital letter; all other letters default to lowercase. - `"characters"`: All letters default to uppercase.
1219
+ * @webnative
1220
+ */
1221
+ "autoCapitalize"?: AutoCapitalize;
1222
+ /**
1223
+ * Indicates whether the value of the input can be automatically completed by the browser.
1224
+ * @webnative
1225
+ */
1226
+ "autoComplete"?: AutoComplete;
1227
+ /**
1228
+ * Specify whether the input should have focus when the page loads.
1229
+ * @webnative
1230
+ */
1231
+ "autoFocus"?: boolean;
1232
+ /**
1233
+ * Prevents the input from being interacted with: it cannot be pressed or focused.
1234
+ * @webnative
1235
+ */
1236
+ "disabled"?: boolean;
1237
+ /**
1238
+ * What action label (or icon) to present for the enter key on virtual keyboards. Possible values: - `"done"`: Typically meaning there is nothing more to input and the input method editor (IME) will be closed. - `"enter"`: Typically inserting a new line. - `"go"`: Typically meaning to take the user to the target of the text they typed. - `"next"`: Typically taking the user to the next field that will accept text. - `"previous"`: Typically taking the user to the previous field that will accept text. - `"search"`: Typically taking the user to the results of searching for the text they have typed. - `"send"`: Typically delivering the text to its target.
1239
+ * @webnative
1240
+ */
1241
+ "enterkeyhint"?: EnterKeyHint;
1242
+ /**
1243
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the input with (its form owner). The value of this attribute must be the id of a `<form>` in the same document. If this attribute is not set, the `<qds-input>` is associated with its ancestor `<form>` element, if any. This attribute lets you associate `<qds-input>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
1244
+ * @webnative
1245
+ */
1246
+ "form"?: string;
1247
+ /**
1248
+ * Provide a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents.
1249
+ * @webnative
1250
+ */
1251
+ "inputmode"?: InputMode;
1252
+ /**
1253
+ * Defines if the input is in an invalid state. Validity is determined by attributes such as `type`, `pattern`, `min`, `max`, `required`, `step`, `minlength`, and `maxlength` using [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation).
1254
+ */
1255
+ "invalid"?: boolean;
1256
+ /**
1257
+ * Defines the greatest value in the range of permitted values. If the `value` entered into the input exceeds this, the input fails [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation). Only valid for `date`, `datetime-local`, `month`, `time`, and `week` inputs. If this value isn't a valid number, then the input has no maximum value.
1258
+ * @webnative
1259
+ */
1260
+ "max"?: number | string;
1261
+ /**
1262
+ * The maximum number of characters (as UTF-16 code units) the user can enter into the input. This must be an non-negative integer value. If no `maxlength` is specified, or an invalid value is specified, the input has no maximum length. Only valid for `email`, `password`, `search`, `tel`, `text`, and `url` inputs. The input will fail [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation) if the length of the text entered into the field is greater than `maxlength` UTF-16 code units long. By default, browsers prevent users from entering more characters than allowed by the `maxlength` attribute. See [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation) for more information.
1263
+ * @webnative
1264
+ */
1265
+ "maxLength"?: number;
1266
+ /**
1267
+ * Defines the most negative value in the range of permitted values. If the `value` entered into the input is less than this, the input fails [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation). Only valid for `date`, `datetime-local`, `month`, `time`, and `week` inputs. This value must be less than or equal to the value of the `max` attribute. If this value isn't a valid number, then the input has no minimum value.
1268
+ * @webnative
1269
+ */
1270
+ "min"?: number | string;
1271
+ /**
1272
+ * The minimum number of characters (as UTF-16 code units) the user can enter into the input. This must be an non-negative integer value smaller than or equal to the value specified by `maxlength`. If no `minlength` is specified, or an invalid value is specified, the input has no minimum length. Only valid for `email`, `password`, `search`, `tel`, `text`, and `url` inputs. The input will fail [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation) if the length of the text entered into the field is fewer than `minlength` UTF-16 code units long, preventing form submission. See [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation) for more information.
1273
+ * @webnative
1274
+ */
1275
+ "minLength"?: number;
1276
+ /**
1277
+ * Specifies if multiple comma-separated email addresses can be entered. Only valid for `email` inputs.
1278
+ * @webnative
1279
+ */
1280
+ "multiple"?: boolean;
1281
+ /**
1282
+ * The name of the control, which is submitted with the form data. An incrementing input ID is used by default.
1283
+ * @webnative
1284
+ */
1285
+ "name"?: string;
1286
+ /**
1287
+ * Emitted when the input loses focus.
1288
+ */
1289
+ "onQdsBlur"?: (event: QdsInputCustomEvent<QdsFocusEventDetail>) => void;
1290
+ /**
1291
+ * Emitted when an alteration to the input's value is committed by the user.
1292
+ */
1293
+ "onQdsChange"?: (event: QdsInputCustomEvent<void>) => void;
1294
+ /**
1295
+ * Emitted when the input gains focus.
1296
+ */
1297
+ "onQdsFocus"?: (event: QdsInputCustomEvent<QdsFocusEventDetail>) => void;
1298
+ /**
1299
+ * Emitted when the input's value changes.
1300
+ */
1301
+ "onQdsInput"?: (event: QdsInputCustomEvent<QdsInputEventDetail>) => void;
1302
+ /**
1303
+ * Defines a regular expression that the input's `value` must match in order for the value to pass [constraint validation](https://developer.mozilla.org/docs/Web/Guide/HTML/Constraint_validation). It must be a valid JavaScript regular expression, as used by the [`RegExp`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp) type, and as documented in MDN's [guide on regular expressions](https://developer.mozilla.org/docs/Web/JavaScript/Guide/Regular_Expressions); the `'u'` flag is specified when compiling the regular expression, so that the pattern is treated as a sequence of Unicode code points, instead of as ASCII. No forward slashes should be specified around the pattern text. Only valid for `email`, `password`, `search`, `tel`, `text`, and `url` inputs. If the `pattern` is invalid, no regular expression is applied and this property is ignored. If the pattern is valid and a non-empty value does not match the pattern, constraint validation will prevent form submission.
1304
+ * @webnative
1305
+ */
1306
+ "pattern"?: string;
1307
+ /**
1308
+ * Text that appears in the input when it has no value set. Only valid for `email`, `number`, `password`, `search`, `tel`, `text`, and `url` inputs.
1309
+ * @webnative
1310
+ */
1311
+ "placeholder"?: string;
1312
+ /**
1313
+ * The value of the input cannot be edited. Not valid for `color` inputs.
1314
+ * @webnative
1315
+ */
1316
+ "readOnly"?: boolean;
1317
+ /**
1318
+ * A value must be specified for the input before the owning form can be submitted. Not valid for `color` inputs. See [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation) and the [HTML attribute: `required`](https://developer.mozilla.org/docs/Web/HTML/Attributes/required) for more information.
1319
+ * @webnative
1320
+ */
1321
+ "required"?: boolean;
1322
+ /**
1323
+ * The input's size. > **_NOTE:_** The native [`size` HTML attribute](https://developer.mozilla.org/docs/Web/HTML/Attributes/size) is not supported. CSS `width` should be used instead if this functionality is needed.
1324
+ */
1325
+ "size"?: InputSize;
1326
+ /**
1327
+ * Defines whether the input may be checked for spelling errors.
1328
+ * @webnative
1329
+ */
1330
+ "spellCheck"?: boolean;
1331
+ /**
1332
+ * Specifies the granularity that the `value` must adhere to. Only valid for `date`, `datetime-local`, `month`, `number`, `time`, and `week` inputs. The value must be a positive number—integer or float—or the special value `any`, which means no stepping is implied, and any value is allowed (barring other constraints, such as `min` and `max`). If `any` is not explicitly set, valid values for the `number` are the basis for stepping — the `min` value and increments of the step value, up to the `max` value, if specified.
1333
+ * @webnative
1334
+ */
1335
+ "step"?: number | 'any';
1336
+ /**
1337
+ * The type of input to render: - `"date"`: An input for entering a date (year, month, and day, with no time). Opens a date picker or numeric wheels for year, month, day when active in supporting browsers. - `"datetime-local"`: An input for entering a date and time, with no time zone. Opens a date picker or numeric wheels for date and time components when active in supporting browsers. - `"email"`: An input for editing an email address. Looks like a `"text"` input, but has validation parameters and relevant keyboard in supporting browsers and devices with dynamic keyboards. - `"month"`: An input for entering a month and year, with no time zone. - `"number"`: An input for entering a number. Displays a spinner and adds default validation when supported. Displays a numeric keypad in some devices with dynamic keypads. - `"password"`: A single-line text input whose value is obscured. Will alert user if site is not secure. - `"search"`: A single-line text input for entering search strings. Line-breaks are automatically removed from the input value. May include a delete icon in supporting browsers that can be used to clear the input. Displays a search icon instead of enter key on some devices with dynamic keypads. - `"tel"`: An input for entering a telephone number. Displays a telephone keypad in some devices with dynamic keypads. - `"text"`: A single-line text input. Line-breaks are automatically removed from the input value. - `"time"`: An input for entering a time value with no time zone. - `"url"`: An input for entering a URL. Looks like a `"text"` input, but has validation parameters and relevant keyboard in supporting browsers and devices with dynamic keyboards. - `"week"`: An input for entering a date consisting of a week-year number and a week number with no time zone.
1338
+ * @webnative
1339
+ */
1340
+ "type"?: InputType;
1341
+ /**
1342
+ * The value of the input.
1343
+ * @webnative
1344
+ */
1345
+ "value"?: InputValue;
1346
+ }
1347
+ /**
1348
+ * `<qds-label>` elements represent a caption for an item in a user interface.
1349
+ * @see https://quartz.se.com/build/components/label
1350
+ */
1351
+ interface QdsLabel {
1352
+ /**
1353
+ * Adds vertical margin to the label for alignment. This is useful when creating inline layouts so that the first lines have the correct vertical centering.
1354
+ */
1355
+ "inline"?: boolean;
1356
+ /**
1357
+ * Specify the labelled item as required by appending a red asterisk (*).
1358
+ */
1359
+ "required"?: boolean;
1360
+ /**
1361
+ * The label's size.
1362
+ */
1363
+ "size"?: LabelSize;
1364
+ /**
1365
+ * The label's text.
1366
+ */
1367
+ "text"?: string;
1368
+ }
1369
+ /**
1370
+ * `<qds-radio>` elements are rendered as circles that are filled when
1371
+ * selected. They are generally used in **radio groups** — collections of radio
1372
+ * buttons describing a set of related options.
1373
+ * Only one radio button in a given radio group can be selected at the same
1374
+ * time.
1375
+ * @see https://quartz.se.com/build/components/radio
1376
+ */
1377
+ interface QdsRadio {
1378
+ /**
1379
+ * Sets the radio button's state.
1380
+ * @webnative
1381
+ */
1382
+ "checked"?: boolean;
1383
+ /**
1384
+ * Prevents the radio button from being interacted with: it cannot be pressed or focused.
1385
+ * @webnative
1386
+ */
1387
+ "disabled"?: boolean;
1388
+ /**
1389
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the radio button with (its form owner). The value of this property must be the id of a `<form>` in the same document. If this property is not set, the `<qds-radio>` is associated with its ancestor `<form>` element, if any. This property lets you associate `<qds-radio>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
1390
+ * @webnative
1391
+ */
1392
+ "form"?: string;
1393
+ /**
1394
+ * Adds vertical margin to the radio for alignment. This is useful when creating inline layouts so that the first lines have the correct vertical centering.
1395
+ */
1396
+ "inline"?: boolean;
1397
+ /**
1398
+ * Specify the radio group this radio button belongs to. Once a radio group is established, selecting any radio button in that group automatically deselects any currently-selected radio button in the same group.
1399
+ * @webnative
1400
+ */
1401
+ "name"?: string;
1402
+ /**
1403
+ * Emitted when the radio button loses focus.
1404
+ */
1405
+ "onQdsBlur"?: (event: QdsRadioCustomEvent<QdsFocusEventDetail>) => void;
1406
+ /**
1407
+ * Emitted when the radio button is checked by the user.
1408
+ */
1409
+ "onQdsChange"?: (event: QdsRadioCustomEvent<void>) => void;
1410
+ /**
1411
+ * Emitted when the radio button gains focus.
1412
+ */
1413
+ "onQdsFocus"?: (event: QdsRadioCustomEvent<QdsFocusEventDetail>) => void;
1414
+ /**
1415
+ * Specify the group the radio button belongs to as required. If any radio button in a same-named group of radio buttons has the `required` attribute, a radio button in that group must be checked, although it doesn't have to be the one with the attribute applied.
1416
+ * @webnative
1417
+ */
1418
+ "required"?: boolean;
1419
+ /**
1420
+ * The radio button's size.
1421
+ */
1422
+ "size"?: RadioSize;
1423
+ /**
1424
+ * The radio button's text.
1425
+ */
1426
+ "text"?: string;
1427
+ /**
1428
+ * The value of the radio button, submitted as a name/value pair with form data.
1429
+ * @webnative
1430
+ */
1431
+ "value"?: RadioValue;
1432
+ }
1433
+ /**
1434
+ * @see https://quartz.se.com/build/components/switch
1435
+ */
1436
+ interface QdsSwitch {
1437
+ /**
1438
+ * Specify whether the switch should have focus when the page loads.
1439
+ * @webnative
1440
+ */
1441
+ "autoFocus"?: boolean;
1442
+ /**
1443
+ * Sets the switch's state.
1444
+ * @webnative
1445
+ */
1446
+ "checked"?: boolean;
1447
+ /**
1448
+ * Prevents the switch from being interacted with: it cannot be pressed or focused.
1449
+ * @webnative
1450
+ */
1451
+ "disabled"?: boolean;
1452
+ /**
1453
+ * The [`<form>`](https://developer.mozilla.org/docs/Web/HTML/Element/form) element to associate the switch with (its form owner). The value of this property must be the id of a `<form>` in the same document. If this property is not set, the `<qds-switch>` is associated with its ancestor `<form>` element, if any. This property lets you associate `<qds-switch>` elements to `<form>`s anywhere in the document, not just inside a `<form>`. It can also override an ancestor `<form>` element.
1454
+ * @webnative
1455
+ */
1456
+ "form"?: string;
1457
+ /**
1458
+ * The name of a registered checked icon library.
1459
+ */
1460
+ "iconCheckedLibrary"?: string;
1461
+ /**
1462
+ * The name of the checked icon to render. Available names depend on the icon library being used.
1463
+ */
1464
+ "iconCheckedName"?: string;
1465
+ /**
1466
+ * The name of a registered unchecked icon library.
1467
+ */
1468
+ "iconUncheckedLibrary"?: string;
1469
+ /**
1470
+ * The name of the unchecked icon to render. Available names depend on the icon library being used.
1471
+ */
1472
+ "iconUncheckedName"?: string;
1473
+ /**
1474
+ * Adds vertical margin to the switch for alignment. This is useful when creating inline layouts so that the first lines have the correct vertical centering.
1475
+ */
1476
+ "inline"?: boolean;
1477
+ /**
1478
+ * The name of the switch, which is submitted with the form data. An incrementing ID is used by default.
1479
+ * @webnative
1480
+ */
1481
+ "name"?: string;
1482
+ /**
1483
+ * Emitted when the switch loses focus.
1484
+ */
1485
+ "onQdsBlur"?: (event: QdsSwitchCustomEvent<QdsFocusEventDetail>) => void;
1486
+ /**
1487
+ * Emitted when a change to the switch's state is committed by the user.
1488
+ */
1489
+ "onQdsChange"?: (event: QdsSwitchCustomEvent<void>) => void;
1490
+ /**
1491
+ * Emitted when the switch gains focus.
1492
+ */
1493
+ "onQdsFocus"?: (event: QdsSwitchCustomEvent<QdsFocusEventDetail>) => void;
1494
+ /**
1495
+ * The switches's size.
1496
+ */
1497
+ "size"?: SwitchSize;
1498
+ /**
1499
+ * The switch's checked text.
1500
+ */
1501
+ "textChecked"?: string;
1502
+ /**
1503
+ * The switch's unchecked text.
1504
+ */
1505
+ "textUnchecked"?: string;
1506
+ /**
1507
+ * The value of the switch, submitted as a name/value pair with form data.
1508
+ * @webnative
1509
+ */
1510
+ "value"?: SwitchValue;
1511
+ }
1512
+ /**
1513
+ * @see https://quartz.se.com/build/components/title
1514
+ */
1515
+ interface QdsTitle {
1516
+ /**
1517
+ * The name of a registered icon library.
1518
+ */
1519
+ "iconLibrary"?: string;
1520
+ /**
1521
+ * The name of the icon to render. Available names depend on the icon library being used.
1522
+ */
1523
+ "iconName"?: string;
1524
+ /**
1525
+ * Text to display for the kicker.
1526
+ */
1527
+ "kicker"?: string;
1528
+ "layer"?: Layer;
1529
+ "level"?: Level;
1530
+ /**
1531
+ * Text to display for the subtitle.
1532
+ */
1533
+ "subtitle"?: string;
1534
+ /**
1535
+ * HTML tag to use to render the title.
1536
+ */
1537
+ "tag"?: Tag;
1538
+ }
1539
+ /**
1540
+ * @experimental
1541
+ * @see https://quartz.se.com/build/components/tooltip
1542
+ */
1543
+ interface QdsTooltip {
1544
+ /**
1545
+ * Options to pass to Floating UI's [`autoUpdate()` function](https://floating-ui.com/docs/autoUpdate).
1546
+ * @see https://floating-ui.com/docs/autoupdate#options
1547
+ */
1548
+ "autoUpdateOptions"?: AutoUpdateOptions;
1549
+ /**
1550
+ * Prevents the tooltip from being shown by user interaction. The tooltip can still be displayed by calling the `show()` method.
1551
+ */
1552
+ "disabled"?: boolean;
1553
+ /**
1554
+ * Options to pass to Floating UI's [`flip` middleware](https://floating-ui.com/docs/flip). The [`crossAxis` option](https://floating-ui.com/docs/flip#crossaxis) is set to the value of the `noShift` property by default for interoperability with the [`shift` middleware](https://floating-ui.com/docs/shift).
1555
+ * @see https://floating-ui.com/docs/flip#options
1556
+ */
1557
+ "flipOptions"?: Partial<
1558
+ DetectOverflowOptions & FlipOptions
1559
+ >;
1560
+ /**
1561
+ * Disable Floating UI's [`flip` middleware](https://floating-ui.com/docs/flip).
1562
+ */
1563
+ "noFlip"?: boolean;
1564
+ /**
1565
+ * Disable Floating UI's [`shift` middleware](https://floating-ui.com/docs/shift).
1566
+ */
1567
+ "noShift"?: boolean;
1568
+ /**
1569
+ * Options to pass to Floating UI's [`offset` middleware](https://floating-ui.com/docs/offset). The [`mainAxis` option](https://floating-ui.com/docs/offset#mainaxis) is not supported.
1570
+ * @see https://floating-ui.com/docs/offset#options
1571
+ */
1572
+ "offsetOptions"?: OffsetOptions;
1573
+ /**
1574
+ * Emitted when the tooltip is closed.
1575
+ */
1576
+ "onQdsClose"?: (event: QdsTooltipCustomEvent<void>) => void;
1577
+ /**
1578
+ * Where to place the tooltip relative to the `target`.
1579
+ * @see https://floating-ui.com/docs/tutorial#placements
1580
+ */
1581
+ "placement"?: Placement;
1582
+ /**
1583
+ * Options to pass to Floating UI's [`shift` middleware](https://floating-ui.com/docs/shift).
1584
+ * @see https://floating-ui.com/docs/shift#options
1585
+ */
1586
+ "shiftOptions"?: Partial<
1587
+ DetectOverflowOptions & ShiftOptions
1588
+ >;
1589
+ /**
1590
+ * The CSS position strategy to use.
1591
+ * @see https://floating-ui.com/docs/computeposition#strategy
1592
+ */
1593
+ "strategy"?: Strategy;
1594
+ /**
1595
+ * The trigger element that will trigger the tooltip. The target specified can be any of the follow: - A CSS selector string - A reference to an [`Element`](https://developer.mozilla.org/docs/Web/API/Element) or [Virtual Element](https://floating-ui.com/docs/virtual-elements) - A function returning a reference to an [`Element`](https://developer.mozilla.org/docs/Web/API/Element), [Virtual Element](https://floating-ui.com/docs/virtual-elements), or a CSS selector string
1596
+ */
1597
+ "target": | ReferenceElement
1598
+ | string
1599
+ | (() => ReferenceElement | string);
1600
+ }
1601
+ interface IntrinsicElements {
1602
+ "qds-button": QdsButton;
1603
+ "qds-checkbox": QdsCheckbox;
1604
+ "qds-dropdown": QdsDropdown;
1605
+ "qds-icon": QdsIcon;
1606
+ "qds-inline-link": QdsInlineLink;
1607
+ "qds-input": QdsInput;
1608
+ "qds-label": QdsLabel;
1609
+ "qds-radio": QdsRadio;
1610
+ "qds-switch": QdsSwitch;
1611
+ "qds-title": QdsTitle;
1612
+ "qds-tooltip": QdsTooltip;
1613
+ }
1614
+ }
1615
+ export { LocalJSX as JSX };
1616
+ declare module "@stencil/core" {
1617
+ export namespace JSX {
1618
+ interface IntrinsicElements {
1619
+ /**
1620
+ * The `<qds-button>` element is an interactive element activated by a user
1621
+ * with a mouse, keyboard, finger, voice command, or other assistive technology.
1622
+ * Once activated, it then performs a programmable action, such as submitting a
1623
+ * [form](https://developer.mozilla.org/docs/Learn/Forms)
1624
+ * or opening a dialog.
1625
+ * @see https://quartz.se.com/build/components/button
1626
+ */
1627
+ "qds-button": LocalJSX.QdsButton & JSXBase.HTMLAttributes<HTMLQdsButtonElement>;
1628
+ /**
1629
+ * `<qds-checkbox>` elements are rendered as boxes that are checked (ticked)
1630
+ * when activated, like you might see in an official government paper form. A
1631
+ * checkbox allows you to select single values for submission in a form (or not).
1632
+ * @see https://quartz.se.com/build/components/checkbox
1633
+ */
1634
+ "qds-checkbox": LocalJSX.QdsCheckbox & JSXBase.HTMLAttributes<HTMLQdsCheckboxElement>;
1635
+ /**
1636
+ * @experimental
1637
+ * @see https://quartz.se.com/build/components/dropdown
1638
+ */
1639
+ "qds-dropdown": LocalJSX.QdsDropdown & JSXBase.HTMLAttributes<HTMLQdsDropdownElement>;
1640
+ /**
1641
+ * @experimental
1642
+ */
1643
+ "qds-icon": LocalJSX.QdsIcon & JSXBase.HTMLAttributes<HTMLQdsIconElement>;
1644
+ /**
1645
+ * `<qds-inline-link>` elements, with their `href` property, create a hyperlink
1646
+ * to web pages, files, email addresses, locations in the same page, or
1647
+ * anything else a URL can address.
1648
+ * Content within each `<qds-inline-link>` *should* indicate the inline link's
1649
+ * destination. If the `href` property is present, pressing the enter key while
1650
+ * focused on the `<qds-inline-link>` element will activate it.
1651
+ * @see https://quartz.se.com/build/components/inline-link
1652
+ */
1653
+ "qds-inline-link": LocalJSX.QdsInlineLink & JSXBase.HTMLAttributes<HTMLQdsInlineLinkElement>;
1654
+ /**
1655
+ * The `<qds-input>` element is used to create interactive controls for
1656
+ * web-based forms in order to accept data from the user; a wide variety of
1657
+ * types of input data and control widgets are available, depending on the
1658
+ * device and
1659
+ * [user agent](https://developer.mozilla.org/docs/Glossary/User_agent).
1660
+ * @see https://quartz.se.com/build/components/input
1661
+ */
1662
+ "qds-input": LocalJSX.QdsInput & JSXBase.HTMLAttributes<HTMLQdsInputElement>;
1663
+ /**
1664
+ * `<qds-label>` elements represent a caption for an item in a user interface.
1665
+ * @see https://quartz.se.com/build/components/label
1666
+ */
1667
+ "qds-label": LocalJSX.QdsLabel & JSXBase.HTMLAttributes<HTMLQdsLabelElement>;
1668
+ /**
1669
+ * `<qds-radio>` elements are rendered as circles that are filled when
1670
+ * selected. They are generally used in **radio groups** — collections of radio
1671
+ * buttons describing a set of related options.
1672
+ * Only one radio button in a given radio group can be selected at the same
1673
+ * time.
1674
+ * @see https://quartz.se.com/build/components/radio
1675
+ */
1676
+ "qds-radio": LocalJSX.QdsRadio & JSXBase.HTMLAttributes<HTMLQdsRadioElement>;
1677
+ /**
1678
+ * @see https://quartz.se.com/build/components/switch
1679
+ */
1680
+ "qds-switch": LocalJSX.QdsSwitch & JSXBase.HTMLAttributes<HTMLQdsSwitchElement>;
1681
+ /**
1682
+ * @see https://quartz.se.com/build/components/title
1683
+ */
1684
+ "qds-title": LocalJSX.QdsTitle & JSXBase.HTMLAttributes<HTMLQdsTitleElement>;
1685
+ /**
1686
+ * @experimental
1687
+ * @see https://quartz.se.com/build/components/tooltip
1688
+ */
1689
+ "qds-tooltip": LocalJSX.QdsTooltip & JSXBase.HTMLAttributes<HTMLQdsTooltipElement>;
1690
+ }
1691
+ }
1692
+ }