@vonage/vivid 3.0.0 → 3.0.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 (323) hide show
  1. package/README.md +176 -4
  2. package/accordion/index.js +22 -61
  3. package/accordion-item/index.js +16 -118
  4. package/action-group/index.js +5 -0
  5. package/avatar/index.js +11 -0
  6. package/badge/index.js +9 -53
  7. package/banner/index.js +20 -210
  8. package/breadcrumb/index.js +7 -96
  9. package/breadcrumb-item/index.js +15 -46
  10. package/button/index.js +19 -751
  11. package/calendar/index.js +5 -1520
  12. package/calendar-event/index.js +9 -0
  13. package/card/index.js +10 -133
  14. package/checkbox/index.js +16 -0
  15. package/combobox/index.js +35 -0
  16. package/dialog/index.js +24 -0
  17. package/divider/index.js +6 -0
  18. package/elevation/index.js +4 -30
  19. package/fab/index.js +22 -0
  20. package/focus/index.js +4 -2
  21. package/header/index.js +6 -0
  22. package/icon/index.js +8 -36
  23. package/index.js +76 -26
  24. package/layout/index.js +4 -52
  25. package/lib/accordion/accordion.d.ts +3 -7
  26. package/lib/accordion/accordion.template.d.ts +1 -2
  27. package/lib/accordion/definition.d.ts +1 -0
  28. package/lib/accordion/index.d.ts +1 -2
  29. package/lib/accordion-item/accordion-item.d.ts +2 -6
  30. package/lib/accordion-item/accordion-item.template.d.ts +4 -4
  31. package/lib/accordion-item/definition.d.ts +1 -0
  32. package/lib/accordion-item/index.d.ts +1 -3
  33. package/lib/action-group/action-group.d.ts +10 -0
  34. package/lib/{sidenav-item/sidenav-item.template.d.ts → action-group/action-group.template.d.ts} +2 -2
  35. package/lib/action-group/definition.d.ts +1 -0
  36. package/lib/action-group/index.d.ts +1 -0
  37. package/lib/avatar/avatar.d.ts +15 -0
  38. package/lib/avatar/avatar.template.d.ts +4 -0
  39. package/lib/avatar/definition.d.ts +1 -0
  40. package/lib/avatar/index.d.ts +1 -0
  41. package/lib/badge/badge.d.ts +2 -4
  42. package/lib/badge/definition.d.ts +3 -0
  43. package/lib/badge/index.d.ts +1 -3
  44. package/lib/banner/banner.d.ts +1 -1
  45. package/lib/banner/banner.template.d.ts +0 -2
  46. package/lib/banner/definition.d.ts +1 -0
  47. package/lib/banner/index.d.ts +1 -2
  48. package/lib/breadcrumb/breadcrumb.template.d.ts +4 -0
  49. package/lib/breadcrumb/definition.d.ts +1 -0
  50. package/lib/breadcrumb/index.d.ts +1 -2
  51. package/lib/breadcrumb-item/definition.d.ts +1 -0
  52. package/lib/breadcrumb-item/index.d.ts +1 -3
  53. package/lib/button/button.d.ts +3 -2
  54. package/lib/button/definition.d.ts +1 -0
  55. package/lib/button/index.d.ts +1 -21
  56. package/lib/calendar/calendar.d.ts +3 -1
  57. package/lib/calendar/definition.d.ts +1 -0
  58. package/lib/calendar/index.d.ts +1 -3
  59. package/lib/calendar-event/calendar-event.d.ts +14 -0
  60. package/lib/calendar-event/calendar-event.template.d.ts +4 -0
  61. package/lib/calendar-event/definition.d.ts +1 -0
  62. package/lib/calendar-event/index.d.ts +1 -0
  63. package/lib/card/card.d.ts +2 -2
  64. package/lib/card/definition.d.ts +1 -0
  65. package/lib/card/index.d.ts +1 -5
  66. package/lib/checkbox/checkbox.d.ts +5 -0
  67. package/lib/checkbox/checkbox.template.d.ts +4 -0
  68. package/lib/checkbox/definition.d.ts +1 -0
  69. package/lib/checkbox/index.d.ts +1 -0
  70. package/lib/combobox/combobox.d.ts +14 -0
  71. package/lib/combobox/combobox.template.d.ts +4 -0
  72. package/lib/combobox/definition.d.ts +3 -0
  73. package/lib/combobox/index.d.ts +1 -0
  74. package/lib/components.d.ts +44 -16
  75. package/lib/dialog/definition.d.ts +1 -0
  76. package/lib/dialog/dialog.d.ts +23 -0
  77. package/lib/dialog/dialog.template.d.ts +4 -0
  78. package/lib/dialog/index.d.ts +1 -0
  79. package/lib/divider/definition.d.ts +1 -0
  80. package/lib/divider/divider.d.ts +3 -0
  81. package/lib/divider/divider.template.d.ts +4 -0
  82. package/lib/divider/index.d.ts +1 -0
  83. package/lib/elevation/definition.d.ts +1 -0
  84. package/lib/elevation/elevation.d.ts +1 -0
  85. package/lib/elevation/index.d.ts +1 -2
  86. package/lib/enums.d.ts +19 -6
  87. package/lib/fab/definition.d.ts +3 -0
  88. package/lib/fab/fab.d.ts +13 -0
  89. package/lib/fab/fab.template.d.ts +4 -0
  90. package/lib/fab/index.d.ts +1 -0
  91. package/lib/focus/definition.d.ts +3 -0
  92. package/lib/focus/index.d.ts +1 -2
  93. package/lib/{sidenav-item/index.d.ts → header/definition.d.ts} +2 -2
  94. package/lib/header/header.d.ts +5 -0
  95. package/lib/header/header.template.d.ts +4 -0
  96. package/lib/header/index.d.ts +1 -0
  97. package/lib/icon/definition.d.ts +3 -0
  98. package/lib/icon/icon.d.ts +5 -6
  99. package/lib/icon/index.d.ts +1 -2
  100. package/lib/layout/definition.d.ts +3 -0
  101. package/lib/layout/index.d.ts +1 -2
  102. package/lib/layout/layout.d.ts +4 -4
  103. package/lib/listbox/definition.d.ts +3 -0
  104. package/lib/listbox/index.d.ts +1 -0
  105. package/lib/listbox/listbox.d.ts +6 -0
  106. package/lib/listbox/listbox.template.d.ts +4 -0
  107. package/lib/menu/definition.d.ts +11 -0
  108. package/lib/menu/index.d.ts +1 -0
  109. package/lib/menu/menu.d.ts +10 -0
  110. package/lib/menu/menu.template.d.ts +3 -0
  111. package/lib/menu-item/definition.d.ts +3 -0
  112. package/lib/menu-item/index.d.ts +1 -0
  113. package/lib/menu-item/menu-item.d.ts +8 -0
  114. package/lib/menu-item/menu-item.template.d.ts +5 -0
  115. package/lib/nav/definition.d.ts +3 -0
  116. package/lib/nav/index.d.ts +1 -0
  117. package/lib/nav/nav.d.ts +3 -0
  118. package/lib/nav/nav.template.d.ts +4 -0
  119. package/lib/nav-disclosure/definition.d.ts +3 -0
  120. package/lib/nav-disclosure/index.d.ts +1 -0
  121. package/lib/nav-disclosure/nav-disclosure.d.ts +10 -0
  122. package/lib/nav-disclosure/nav-disclosure.template.d.ts +4 -0
  123. package/lib/nav-item/definition.d.ts +3 -0
  124. package/lib/nav-item/index.d.ts +1 -0
  125. package/lib/{sidenav-item/sidenav-item.d.ts → nav-item/nav-item.d.ts} +2 -2
  126. package/lib/nav-item/nav-item.template.d.ts +4 -0
  127. package/lib/note/definition.d.ts +3 -0
  128. package/lib/note/index.d.ts +1 -0
  129. package/lib/note/note.d.ts +10 -0
  130. package/lib/{text/text.template.d.ts → note/note.template.d.ts} +2 -2
  131. package/lib/number-field/definition.d.ts +4 -0
  132. package/lib/number-field/index.d.ts +1 -0
  133. package/lib/number-field/number-field.d.ts +14 -0
  134. package/lib/number-field/number-field.template.d.ts +4 -0
  135. package/lib/option/definition.d.ts +3 -0
  136. package/lib/option/index.d.ts +1 -0
  137. package/lib/option/option.d.ts +9 -0
  138. package/lib/option/option.template.d.ts +4 -0
  139. package/lib/popup/definition.d.ts +4 -0
  140. package/lib/popup/index.d.ts +1 -4
  141. package/lib/popup/popup.d.ts +8 -4
  142. package/lib/progress/definition.d.ts +3 -0
  143. package/lib/progress/index.d.ts +1 -2
  144. package/lib/progress/progress.d.ts +1 -1
  145. package/lib/progress-ring/definition.d.ts +3 -0
  146. package/lib/progress-ring/index.d.ts +1 -2
  147. package/lib/progress-ring/progress-ring.d.ts +2 -1
  148. package/lib/radio/definition.d.ts +3 -0
  149. package/lib/radio/index.d.ts +1 -0
  150. package/lib/radio/radio.d.ts +4 -0
  151. package/lib/radio/radio.template.d.ts +4 -0
  152. package/lib/radio-group/definition.d.ts +11 -0
  153. package/lib/radio-group/index.d.ts +1 -0
  154. package/lib/radio-group/radio-group.d.ts +4 -0
  155. package/lib/radio-group/radio-group.template.d.ts +4 -0
  156. package/lib/select/definition.d.ts +3 -0
  157. package/lib/select/index.d.ts +1 -0
  158. package/lib/select/select.d.ts +17 -0
  159. package/lib/select/select.template.d.ts +4 -0
  160. package/lib/side-drawer/definition.d.ts +3 -0
  161. package/lib/side-drawer/index.d.ts +1 -2
  162. package/lib/side-drawer/side-drawer.d.ts +3 -2
  163. package/lib/slider/definition.d.ts +3 -0
  164. package/lib/slider/index.d.ts +1 -0
  165. package/lib/slider/slider.d.ts +4 -0
  166. package/lib/slider/slider.template.d.ts +4 -0
  167. package/lib/switch/definition.d.ts +3 -0
  168. package/lib/switch/index.d.ts +1 -0
  169. package/lib/switch/switch.d.ts +7 -0
  170. package/lib/switch/switch.template.d.ts +4 -0
  171. package/lib/tab/definition.d.ts +3 -0
  172. package/lib/tab/index.d.ts +1 -0
  173. package/lib/tab/tab.d.ts +9 -0
  174. package/lib/tab/tab.template.d.ts +3 -0
  175. package/lib/tab-panel/definition.d.ts +3 -0
  176. package/lib/tab-panel/index.d.ts +1 -0
  177. package/lib/tab-panel/tab-panel.d.ts +3 -0
  178. package/lib/tab-panel/tab-panel.template.d.ts +2 -0
  179. package/lib/tabs/definition.d.ts +3 -0
  180. package/lib/tabs/index.d.ts +1 -0
  181. package/lib/tabs/tabs.d.ts +10 -0
  182. package/lib/tabs/tabs.template.d.ts +2 -0
  183. package/lib/text-anchor/definition.d.ts +3 -0
  184. package/lib/text-anchor/index.d.ts +1 -2
  185. package/lib/text-area/definition.d.ts +3 -0
  186. package/lib/text-area/index.d.ts +1 -0
  187. package/lib/text-area/text-area.d.ts +9 -0
  188. package/lib/text-area/text-area.template.d.ts +4 -0
  189. package/lib/text-field/definition.d.ts +3 -0
  190. package/lib/text-field/index.d.ts +1 -0
  191. package/lib/text-field/text-field.d.ts +14 -0
  192. package/lib/text-field/text-field.template.d.ts +4 -0
  193. package/lib/tooltip/definition.d.ts +3 -0
  194. package/lib/tooltip/index.d.ts +1 -3
  195. package/lib/tooltip/tooltip.d.ts +6 -6
  196. package/listbox/index.js +27 -0
  197. package/menu/index.js +30 -0
  198. package/menu-item/index.js +20 -0
  199. package/nav/index.js +4 -0
  200. package/nav-disclosure/index.js +17 -0
  201. package/nav-item/index.js +22 -0
  202. package/note/index.js +15 -0
  203. package/number-field/index.js +459 -0
  204. package/option/index.js +21 -0
  205. package/package.json +29 -18
  206. package/popup/index.js +21 -2062
  207. package/progress/index.js +6 -98
  208. package/progress-ring/index.js +6 -75
  209. package/radio/index.js +12 -0
  210. package/radio-group/index.js +11 -0
  211. package/select/index.js +34 -0
  212. package/shared/affix.js +2 -8
  213. package/shared/anchor.js +10 -2
  214. package/shared/apply-mixins.js +5 -4
  215. package/shared/aria-global.js +2 -86
  216. package/shared/aria.js +9 -0
  217. package/shared/base-progress.js +5 -0
  218. package/shared/breadcrumb-item.js +1 -1
  219. package/shared/button.js +200 -0
  220. package/shared/calendar-event.js +19 -0
  221. package/shared/definition.js +225 -0
  222. package/shared/definition10.js +99 -0
  223. package/shared/definition11.js +48 -0
  224. package/shared/definition12.js +1523 -0
  225. package/shared/definition13.js +111 -0
  226. package/shared/definition14.js +114 -0
  227. package/shared/definition15.js +32 -0
  228. package/shared/definition16.js +172 -0
  229. package/shared/definition17.js +727 -0
  230. package/shared/definition18.js +1842 -0
  231. package/shared/definition19.js +261 -0
  232. package/shared/definition2.js +150 -0
  233. package/shared/definition20.js +221 -0
  234. package/shared/definition21.js +78 -0
  235. package/shared/definition22.js +87 -0
  236. package/shared/definition23.js +58 -0
  237. package/shared/definition24.js +44 -0
  238. package/shared/definition25.js +58 -0
  239. package/shared/definition26.js +348 -0
  240. package/shared/definition27.js +363 -0
  241. package/shared/definition28.js +21 -0
  242. package/shared/definition29.js +75 -0
  243. package/shared/definition3.js +29 -0
  244. package/shared/definition30.js +31 -0
  245. package/shared/definition31.js +49 -0
  246. package/shared/definition32.js +94 -0
  247. package/shared/definition33.js +77 -0
  248. package/shared/definition34.js +45 -0
  249. package/shared/definition35.js +435 -0
  250. package/shared/definition36.js +634 -0
  251. package/shared/definition37.js +86 -0
  252. package/shared/definition38.js +592 -0
  253. package/shared/definition39.js +147 -0
  254. package/shared/definition4.js +19 -0
  255. package/shared/definition40.js +67 -0
  256. package/shared/definition41.js +32 -0
  257. package/shared/definition42.js +440 -0
  258. package/shared/definition43.js +282 -0
  259. package/shared/definition44.js +119 -0
  260. package/shared/definition45.js +77 -0
  261. package/shared/definition5.js +38 -0
  262. package/shared/definition6.js +60 -0
  263. package/shared/definition7.js +45 -0
  264. package/shared/definition8.js +113 -0
  265. package/shared/definition9.js +107 -0
  266. package/shared/design-system/index.d.ts +1 -1
  267. package/shared/dialog-polyfill.esm.js +858 -0
  268. package/shared/direction.js +20 -0
  269. package/shared/dom.js +8 -0
  270. package/shared/enums.js +70 -0
  271. package/shared/es.object.assign.js +2 -3
  272. package/shared/es.regexp.to-string.js +59 -0
  273. package/shared/focus.js +5 -0
  274. package/shared/focus2.js +11 -0
  275. package/shared/form-associated.js +466 -0
  276. package/shared/form-elements.js +127 -0
  277. package/shared/icon.js +538 -567
  278. package/shared/index.js +1664 -83
  279. package/shared/key-codes.js +97 -0
  280. package/shared/listbox.js +995 -0
  281. package/shared/numbers.js +34 -0
  282. package/shared/patterns/affix.d.ts +1 -1
  283. package/shared/patterns/focus.d.ts +3 -0
  284. package/shared/patterns/form-elements/form-elements.d.ts +43 -0
  285. package/shared/patterns/form-elements/index.d.ts +1 -0
  286. package/shared/patterns/index.d.ts +2 -0
  287. package/shared/radio.js +127 -0
  288. package/shared/ref.js +41 -0
  289. package/shared/select.options.js +10 -0
  290. package/shared/start-end.js +50 -0
  291. package/shared/string-trim.js +40 -0
  292. package/shared/strings.js +9 -0
  293. package/shared/text-anchor.js +0 -2
  294. package/shared/text-anchor.template.js +6 -5
  295. package/shared/text-field.js +3 -0
  296. package/shared/text-field2.js +225 -0
  297. package/shared/to-string.js +51 -0
  298. package/side-drawer/index.js +5 -81
  299. package/slider/index.js +17 -0
  300. package/styles/core/all.css +83 -0
  301. package/styles/core/theme.css +11 -0
  302. package/styles/core/typography.css +77 -0
  303. package/styles/tokens/theme-dark.css +228 -0
  304. package/styles/tokens/theme-light.css +228 -0
  305. package/switch/index.js +18 -0
  306. package/tab/index.js +16 -0
  307. package/tab-panel/index.js +4 -0
  308. package/tabs/index.js +24 -0
  309. package/text-anchor/index.js +11 -6
  310. package/text-area/index.js +23 -0
  311. package/text-field/index.js +24 -0
  312. package/tooltip/index.js +18 -55
  313. package/lib/text/index.d.ts +0 -2
  314. package/lib/text/text.d.ts +0 -10
  315. package/shared/index2.js +0 -21
  316. package/shared/object-set-prototype-of.js +0 -1009
  317. package/shared/style-inject.es.js +0 -28
  318. package/shared/web.dom-collections.iterator.js +0 -473
  319. package/sidenav-item/index.js +0 -39
  320. package/styles/fonts/spezia.css +0 -23
  321. package/styles/themes/dark.css +0 -205
  322. package/styles/themes/light.css +0 -205
  323. package/text/index.js +0 -46
@@ -0,0 +1,34 @@
1
+ /**
2
+ * This method keeps a given value within the bounds of a min and max value. If the value
3
+ * is larger than the max, the minimum value will be returned. If the value is smaller than the minimum,
4
+ * the maximum will be returned. Otherwise, the value is returned un-changed.
5
+ */
6
+ function wrapInBounds(min, max, value) {
7
+ if (value < min) {
8
+ return max;
9
+ }
10
+ else if (value > max) {
11
+ return min;
12
+ }
13
+ return value;
14
+ }
15
+ /**
16
+ * Ensures that a value is between a min and max value. If value is lower than min, min will be returned.
17
+ * If value is greater than max, max will be returned.
18
+ */
19
+ function limit(min, max, value) {
20
+ return Math.min(Math.max(value, min), max);
21
+ }
22
+ /**
23
+ * Determines if a number value is within a specified range.
24
+ *
25
+ * @param value - the value to check
26
+ * @param min - the range start
27
+ * @param max - the range end
28
+ */
29
+ function inRange(value, min, max = 0) {
30
+ [min, max] = [min, max].sort((a, b) => a - b);
31
+ return min <= value && value < max;
32
+ }
33
+
34
+ export { inRange as i, limit as l, wrapInBounds as w };
@@ -6,4 +6,4 @@ export declare class AffixIcon {
6
6
  export declare class AffixIconWithTrailing extends AffixIcon {
7
7
  iconTrailing: boolean;
8
8
  }
9
- export declare const affixIconTemplateFactory: (context: ElementDefinitionContext) => (icon?: string) => ViewTemplate<AffixIcon> | null;
9
+ export declare const affixIconTemplateFactory: (context: ElementDefinitionContext) => (icon?: string, className?: string) => ViewTemplate<AffixIcon> | null;
@@ -0,0 +1,3 @@
1
+ import type { ViewTemplate } from '@microsoft/fast-element';
2
+ import type { ElementDefinitionContext } from '@microsoft/fast-foundation';
3
+ export declare const focusTemplateFactory: (context: ElementDefinitionContext) => ViewTemplate;
@@ -0,0 +1,43 @@
1
+ import type { ElementDefinitionContext } from '@microsoft/fast-foundation';
2
+ export interface FormElement {
3
+ errorValidationMessage: boolean;
4
+ label: string;
5
+ userValid: boolean;
6
+ dirtyValue: boolean;
7
+ }
8
+ export interface FormElementHelperText {
9
+ helperText?: string;
10
+ }
11
+ export interface FormElementSuccessText {
12
+ successText?: string;
13
+ }
14
+ export interface FormElementCharCount {
15
+ charCount: boolean;
16
+ }
17
+ export declare class FormElementHelperText {
18
+ helperText?: string;
19
+ }
20
+ export declare class FormElementSuccessText {
21
+ successText?: string;
22
+ }
23
+ export declare class FormElementCharCount {
24
+ charCount: boolean;
25
+ }
26
+ export declare function formElements<T extends {
27
+ new (...args: any[]): Record<string, any>;
28
+ }>(constructor: T): {
29
+ new (...args: any[]): {
30
+ [x: string]: any;
31
+ label?: string | undefined;
32
+ userValid: boolean;
33
+ "__#8081@#blurred": boolean;
34
+ readonly errorValidationMessage: any;
35
+ connectedCallback(): void;
36
+ "__#8081@#handleInvalidEvent": () => void;
37
+ disconnectedCallback(): void;
38
+ validate: () => void;
39
+ };
40
+ } & T;
41
+ declare type FeedbackType = 'error' | 'helper' | 'success';
42
+ export declare function getFeedbackTemplate(messageType: FeedbackType, context: ElementDefinitionContext): import("@microsoft/fast-element").ViewTemplate<FormElement, any>;
43
+ export {};
@@ -0,0 +1 @@
1
+ export * from './form-elements';
@@ -1 +1,3 @@
1
1
  export * from './affix';
2
+ export * from './focus';
3
+ export * from './form-elements';
@@ -0,0 +1,127 @@
1
+ import { F as FoundationElement, _ as __decorate, a as attr, o as observable, b as __metadata } from './index.js';
2
+ import { C as CheckableFormAssociated } from './form-associated.js';
3
+ import { e as keySpace } from './key-codes.js';
4
+
5
+ class _Radio extends FoundationElement {
6
+ }
7
+ /**
8
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(Radio:class)} component.
9
+ *
10
+ * @internal
11
+ */
12
+ class FormAssociatedRadio extends CheckableFormAssociated(_Radio) {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.proxy = document.createElement("input");
16
+ }
17
+ }
18
+
19
+ /**
20
+ * A Radio Custom HTML Element.
21
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#radio | ARIA radio }.
22
+ *
23
+ * @slot checked-indicator - The checked indicator
24
+ * @slot - The default slot for the label
25
+ * @csspart control - The element representing the visual radio control
26
+ * @csspart label - The label
27
+ * @fires change - Emits a custom change event when the checked state changes
28
+ *
29
+ * @public
30
+ */
31
+ class Radio$1 extends FormAssociatedRadio {
32
+ constructor() {
33
+ super();
34
+ /**
35
+ * The element's value to be included in form submission when checked.
36
+ * Default to "on" to reach parity with input[type="radio"]
37
+ *
38
+ * @internal
39
+ */
40
+ this.initialValue = "on";
41
+ /**
42
+ * @internal
43
+ */
44
+ this.keypressHandler = (e) => {
45
+ switch (e.key) {
46
+ case keySpace:
47
+ if (!this.checked && !this.readOnly) {
48
+ this.checked = true;
49
+ }
50
+ return;
51
+ }
52
+ return true;
53
+ };
54
+ this.proxy.setAttribute("type", "radio");
55
+ }
56
+ readOnlyChanged() {
57
+ if (this.proxy instanceof HTMLInputElement) {
58
+ this.proxy.readOnly = this.readOnly;
59
+ }
60
+ }
61
+ /**
62
+ * @internal
63
+ */
64
+ defaultCheckedChanged() {
65
+ var _a;
66
+ if (this.$fastController.isConnected && !this.dirtyChecked) {
67
+ // Setting this.checked will cause us to enter a dirty state,
68
+ // but if we are clean when defaultChecked is changed, we want to stay
69
+ // in a clean state, so reset this.dirtyChecked
70
+ if (!this.isInsideRadioGroup()) {
71
+ this.checked = (_a = this.defaultChecked) !== null && _a !== void 0 ? _a : false;
72
+ this.dirtyChecked = false;
73
+ }
74
+ }
75
+ }
76
+ /**
77
+ * @internal
78
+ */
79
+ connectedCallback() {
80
+ var _a, _b;
81
+ super.connectedCallback();
82
+ this.validate();
83
+ if (((_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.getAttribute("role")) !== "radiogroup" &&
84
+ this.getAttribute("tabindex") === null) {
85
+ if (!this.disabled) {
86
+ this.setAttribute("tabindex", "0");
87
+ }
88
+ }
89
+ if (this.checkedAttribute) {
90
+ if (!this.dirtyChecked) {
91
+ // Setting this.checked will cause us to enter a dirty state,
92
+ // but if we are clean when defaultChecked is changed, we want to stay
93
+ // in a clean state, so reset this.dirtyChecked
94
+ if (!this.isInsideRadioGroup()) {
95
+ this.checked = (_b = this.defaultChecked) !== null && _b !== void 0 ? _b : false;
96
+ this.dirtyChecked = false;
97
+ }
98
+ }
99
+ }
100
+ }
101
+ isInsideRadioGroup() {
102
+ const parent = this.closest("[role=radiogroup]");
103
+ return parent !== null;
104
+ }
105
+ /**
106
+ * @internal
107
+ */
108
+ clickHandler(e) {
109
+ if (!this.disabled && !this.readOnly && !this.checked) {
110
+ this.checked = true;
111
+ }
112
+ }
113
+ }
114
+ __decorate([
115
+ attr({ attribute: "readonly", mode: "boolean" })
116
+ ], Radio$1.prototype, "readOnly", void 0);
117
+ __decorate([
118
+ observable
119
+ ], Radio$1.prototype, "name", void 0);
120
+ __decorate([
121
+ observable
122
+ ], Radio$1.prototype, "defaultSlottedNodes", void 0);
123
+
124
+ class Radio extends Radio$1 {}
125
+ __decorate([attr, __metadata("design:type", String)], Radio.prototype, "label", void 0);
126
+
127
+ export { Radio as R };
package/shared/ref.js ADDED
@@ -0,0 +1,41 @@
1
+ import { A as AttachedBehaviorHTMLDirective } from './index.js';
2
+
3
+ /**
4
+ * The runtime behavior for template references.
5
+ * @public
6
+ */
7
+ class RefBehavior {
8
+ /**
9
+ * Creates an instance of RefBehavior.
10
+ * @param target - The element to reference.
11
+ * @param propertyName - The name of the property to assign the reference to.
12
+ */
13
+ constructor(target, propertyName) {
14
+ this.target = target;
15
+ this.propertyName = propertyName;
16
+ }
17
+ /**
18
+ * Bind this behavior to the source.
19
+ * @param source - The source to bind to.
20
+ * @param context - The execution context that the binding is operating within.
21
+ */
22
+ bind(source) {
23
+ source[this.propertyName] = this.target;
24
+ }
25
+ /**
26
+ * Unbinds this behavior from the source.
27
+ * @param source - The source to unbind from.
28
+ */
29
+ /* eslint-disable-next-line @typescript-eslint/no-empty-function */
30
+ unbind() { }
31
+ }
32
+ /**
33
+ * A directive that observes the updates a property with a reference to the element.
34
+ * @param propertyName - The name of the property to assign the reference to.
35
+ * @public
36
+ */
37
+ function ref(propertyName) {
38
+ return new AttachedBehaviorHTMLDirective("fast-ref", RefBehavior, propertyName);
39
+ }
40
+
41
+ export { ref as r };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Positioning directions for the listbox when a select is open.
3
+ * @public
4
+ */
5
+ const SelectPosition = {
6
+ above: "above",
7
+ below: "below",
8
+ };
9
+
10
+ export { SelectPosition as S };
@@ -0,0 +1,50 @@
1
+ import { h as html } from './index.js';
2
+ import { r as ref } from './ref.js';
3
+
4
+ /**
5
+ * A mixin class implementing start and end elements.
6
+ * These are generally used to decorate text elements with icons or other visual indicators.
7
+ * @public
8
+ */
9
+ class StartEnd {
10
+ handleStartContentChange() {
11
+ this.startContainer.classList.toggle("start", this.start.assignedNodes().length > 0);
12
+ }
13
+ handleEndContentChange() {
14
+ this.endContainer.classList.toggle("end", this.end.assignedNodes().length > 0);
15
+ }
16
+ }
17
+ /**
18
+ * The template for the end element.
19
+ * For use with {@link StartEnd}
20
+ *
21
+ * @public
22
+ * @deprecated - use endSlotTemplate
23
+ */
24
+ html `
25
+ <span part="end" ${ref("endContainer")}>
26
+ <slot
27
+ name="end"
28
+ ${ref("end")}
29
+ @slotchange="${x => x.handleEndContentChange()}"
30
+ ></slot>
31
+ </span>
32
+ `;
33
+ /**
34
+ * The template for the start element.
35
+ * For use with {@link StartEnd}
36
+ *
37
+ * @public
38
+ * @deprecated - use startSlotTemplate
39
+ */
40
+ html `
41
+ <span part="start" ${ref("startContainer")}>
42
+ <slot
43
+ name="start"
44
+ ${ref("start")}
45
+ @slotchange="${x => x.handleStartContentChange()}"
46
+ ></slot>
47
+ </span>
48
+ `;
49
+
50
+ export { StartEnd as S };
@@ -0,0 +1,40 @@
1
+ import { k as functionUncurryThis, T as requireObjectCoercible$1 } from './index.js';
2
+ import { t as toString$1 } from './to-string.js';
3
+
4
+ // a string of all valid unicode whitespaces
5
+ var whitespaces$1 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
6
+ '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
7
+
8
+ var uncurryThis = functionUncurryThis;
9
+ var requireObjectCoercible = requireObjectCoercible$1;
10
+ var toString = toString$1;
11
+ var whitespaces = whitespaces$1;
12
+
13
+ var replace = uncurryThis(''.replace);
14
+ var whitespace = '[' + whitespaces + ']';
15
+ var ltrim = RegExp('^' + whitespace + whitespace + '*');
16
+ var rtrim = RegExp(whitespace + whitespace + '*$');
17
+
18
+ // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
19
+ var createMethod = function (TYPE) {
20
+ return function ($this) {
21
+ var string = toString(requireObjectCoercible($this));
22
+ if (TYPE & 1) string = replace(string, ltrim, '');
23
+ if (TYPE & 2) string = replace(string, rtrim, '');
24
+ return string;
25
+ };
26
+ };
27
+
28
+ var stringTrim = {
29
+ // `String.prototype.{ trimLeft, trimStart }` methods
30
+ // https://tc39.es/ecma262/#sec-string.prototype.trimstart
31
+ start: createMethod(1),
32
+ // `String.prototype.{ trimRight, trimEnd }` methods
33
+ // https://tc39.es/ecma262/#sec-string.prototype.trimend
34
+ end: createMethod(2),
35
+ // `String.prototype.trim` method
36
+ // https://tc39.es/ecma262/#sec-string.prototype.trim
37
+ trim: createMethod(3)
38
+ };
39
+
40
+ export { stringTrim as s, whitespaces$1 as w };
@@ -0,0 +1,9 @@
1
+ let uniqueIdCounter = 0;
2
+ /**
3
+ * Generates a unique ID based on incrementing a counter.
4
+ */
5
+ function uniqueId(prefix = "") {
6
+ return `${prefix}${uniqueIdCounter++}`;
7
+ }
8
+
9
+ export { uniqueId as u };
@@ -4,9 +4,7 @@ import { A as Anchor } from './anchor.js';
4
4
  import { a as applyMixins } from './apply-mixins.js';
5
5
 
6
6
  class TextAnchor extends Anchor {}
7
-
8
7
  __decorate([attr, __metadata("design:type", String)], TextAnchor.prototype, "text", void 0);
9
-
10
8
  applyMixins(TextAnchor, AffixIcon);
11
9
 
12
10
  export { TextAnchor as T };
@@ -1,18 +1,18 @@
1
1
  import { a as affixIconTemplateFactory } from './affix.js';
2
+ import { f as focusTemplateFactory } from './focus2.js';
2
3
  import { h as html } from './index.js';
3
- import { r as ref } from './aria-global.js';
4
+ import { r as ref } from './ref.js';
4
5
  import { c as classNames } from './class-names.js';
5
6
 
6
7
  let _ = t => t,
7
- _t;
8
-
8
+ _t;
9
9
  const getClasses = ({
10
10
  text,
11
11
  icon
12
12
  }) => classNames('control', ['icon-only', !text && !!icon]);
13
-
14
13
  const textAnchorTemplate = context => {
15
14
  const affixIconTemplate = affixIconTemplateFactory(context);
15
+ const focusTemplate = focusTemplateFactory(context);
16
16
  return html(_t || (_t = _`<a
17
17
  class="${0}"
18
18
  download="${0}"
@@ -47,8 +47,9 @@ const textAnchorTemplate = context => {
47
47
  >
48
48
  ${0}
49
49
  ${0}
50
+ ${0}
50
51
  </a>
51
- `), getClasses, x => x.download, x => x.href, x => x.hreflang, x => x.ping, x => x.referrerpolicy, x => x.rel, x => x.target, x => x.type, x => x.ariaAtomic, x => x.ariaBusy, x => x.ariaControls, x => x.ariaCurrent, x => x.ariaDescribedby, x => x.ariaDetails, x => x.ariaDisabled, x => x.ariaErrormessage, x => x.ariaExpanded, x => x.ariaFlowto, x => x.ariaHaspopup, x => x.ariaHidden, x => x.ariaInvalid, x => x.ariaKeyshortcuts, x => x.ariaLabel, x => x.ariaLabelledby, x => x.ariaLive, x => x.ariaOwns, x => x.ariaRelevant, x => x.ariaRoledescription, ref('control'), x => affixIconTemplate(x.icon), x => x.text);
52
+ `), getClasses, x => x.download, x => x.href, x => x.hreflang, x => x.ping, x => x.referrerpolicy, x => x.rel, x => x.target, x => x.type, x => x.ariaAtomic, x => x.ariaBusy, x => x.ariaControls, x => x.ariaCurrent, x => x.ariaDescribedby, x => x.ariaDetails, x => x.ariaDisabled, x => x.ariaErrormessage, x => x.ariaExpanded, x => x.ariaFlowto, x => x.ariaHaspopup, x => x.ariaHidden, x => x.ariaInvalid, x => x.ariaKeyshortcuts, x => x.ariaLabel, x => x.ariaLabelledby, x => x.ariaLive, x => x.ariaOwns, x => x.ariaRelevant, x => x.ariaRoledescription, ref('control'), () => focusTemplate, x => affixIconTemplate(x.icon), x => x.text);
52
53
  };
53
54
 
54
55
  export { textAnchorTemplate as t };
@@ -0,0 +1,3 @@
1
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 30 Jan 2023 11:28:31 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n --_text-field-gutter: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) / 2.5);\n --_text-field-icon-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) / 2);\n display: inline-grid;\n width: 100%;\n gap: 4px;\n grid-template-columns: min-content 1fr max-content;\n}\n.base {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-intermediate);\n}\n.base.appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)).appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transparent;\n}\n.base:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: var(--vvd-color-neutral-200);\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n.base:where(:disabled, .disabled).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--vvd-color-neutral-100);\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success-500);\n --_connotation-color-backdrop: var(--vvd-color-success-50);\n --_connotation-color-intermediate: var(--vvd-color-success-500);\n --_connotation-color-firm: var(--vvd-color-success-600);\n --_connotation-color-faint: var(--vvd-color-success-50);\n --_connotation-color-soft: var(--vvd-color-success-100);\n}\n.base.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert-500);\n --_connotation-color-backdrop: var(--vvd-color-alert-50);\n --_connotation-color-intermediate: var(--vvd-color-alert-500);\n --_connotation-color-firm: var(--vvd-color-alert-600);\n --_connotation-color-faint: var(--vvd-color-alert-50);\n --_connotation-color-soft: var(--vvd-color-alert-100);\n}\n.base:not(.connotation-success, .connotation-alert) {\n --_connotation-color-primary: var(--vvd-color-canvas-text);\n --_connotation-color-backdrop: var(--vvd-color-canvas);\n --_connotation-color-intermediate: var(--vvd-color-neutral-500);\n --_connotation-color-firm: var(--vvd-color-canvas-text);\n --_connotation-color-faint: var(--vvd-color-neutral-50);\n --_connotation-color-soft: var(--vvd-color-neutral-100);\n}\n@supports (user-select: none) {\n .base {\n user-select: none;\n }\n}\n.base:not(.disabled) {\n --_low-ink-color: var(--vvd-color-neutral-600);\n}\n.base.disabled {\n --_low-ink-color: var(--_appearance-color-text);\n}\n\n.label {\n color: var(--vvd-color-canvas-text);\n contain: inline-size;\n font: var(--vvd-typography-base);\n grid-column: 1/4;\n grid-row: 1;\n}\n.char-count + .label {\n grid-column: 1/3;\n}\n\n.char-count {\n color: var(--_low-ink-color);\n font: var(--vvd-typography-base);\n grid-column: 3/4;\n}\n\n.fieldset {\n position: relative;\n display: flex;\n align-items: center;\n grid-column: 1/4;\n transition: color 0.2s;\n /* Shape */\n}\n.base > .fieldset {\n block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n}\n.base:not(.shape-pill) .fieldset {\n border-radius: 6px;\n}\n.base.shape-pill .fieldset {\n border-radius: 24px;\n}\n\n.control {\n width: 100%;\n border: 0 none;\n background-color: var(--_appearance-color-fill);\n block-size: 100%;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n font: var(--vvd-typography-base);\n padding-inline-end: var(--_text-field-gutter);\n padding-inline-start: var(--_text-field-gutter);\n transition: box-shadow 0.2s, background-color 0.2s;\n}\n.control:disabled {\n cursor: not-allowed;\n opacity: 1; /* 2. correct opacity on iOS */\n -webkit-text-fill-color: var(--_appearance-color-text); /* 1. sets text fill to current `color` for safari */\n}\n.control::placeholder, .control:disabled::placeholder {\n opacity: 1; /* 2. correct opacity on iOS */\n -webkit-text-fill-color: var(--_low-ink-color); /* 1. sets text fill to current `color` for safari */\n}\n@supports selector(:focus-visible) {\n .control:focus {\n outline: none;\n }\n}\n\n.icon {\n position: absolute;\n z-index: 1;\n color: var(--_low-ink-color);\n font-size: var(--_text-field-icon-size);\n inset-inline-start: var(--_text-field-gutter);\n line-height: 1;\n}\n.icon + .control {\n padding-inline-start: calc(var(--_text-field-icon-size) + var(--_text-field-gutter) * 2);\n}\n\n.focus-indicator {\n --focus-stroke-gap-color: transparent;\n pointer-events: none;\n}\n.fieldset:not(:focus-visible, :focus-within) > .focus-indicator {\n display: none;\n}";
2
+
3
+ export { css_248z as c };
@@ -0,0 +1,225 @@
1
+ import { F as FoundationElement, W as DOM, _ as __decorate, a as attr, n as nullableNumberConverter, o as observable } from './index.js';
2
+ import { a as applyMixins } from './apply-mixins.js';
3
+ import { F as FormAssociated } from './form-associated.js';
4
+ import { A as ARIAGlobalStatesAndProperties } from './aria-global.js';
5
+ import { S as StartEnd } from './start-end.js';
6
+
7
+ class _TextField extends FoundationElement {
8
+ }
9
+ /**
10
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(TextField:class)} component.
11
+ *
12
+ * @internal
13
+ */
14
+ class FormAssociatedTextField extends FormAssociated(_TextField) {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.proxy = document.createElement("input");
18
+ }
19
+ }
20
+
21
+ /**
22
+ * Text field sub-types
23
+ * @public
24
+ */
25
+ const TextFieldType = {
26
+ /**
27
+ * An email TextField
28
+ */
29
+ email: "email",
30
+ /**
31
+ * A password TextField
32
+ */
33
+ password: "password",
34
+ /**
35
+ * A telephone TextField
36
+ */
37
+ tel: "tel",
38
+ /**
39
+ * A text TextField
40
+ */
41
+ text: "text",
42
+ /**
43
+ * A URL TextField
44
+ */
45
+ url: "url",
46
+ };
47
+
48
+ /**
49
+ * A Text Field Custom HTML Element.
50
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text | <input type="text" /> element }.
51
+ *
52
+ * @slot start - Content which can be provided before the number field input
53
+ * @slot end - Content which can be provided after the number field input
54
+ * @slot - The default slot for the label
55
+ * @csspart label - The label
56
+ * @csspart root - The element wrapping the control, including start and end slots
57
+ * @csspart control - The text field element
58
+ * @fires change - Fires a custom 'change' event when the value has changed
59
+ *
60
+ * @public
61
+ */
62
+ class TextField extends FormAssociatedTextField {
63
+ constructor() {
64
+ super(...arguments);
65
+ /**
66
+ * Allows setting a type or mode of text.
67
+ * @public
68
+ * @remarks
69
+ * HTML Attribute: type
70
+ */
71
+ this.type = TextFieldType.text;
72
+ }
73
+ readOnlyChanged() {
74
+ if (this.proxy instanceof HTMLInputElement) {
75
+ this.proxy.readOnly = this.readOnly;
76
+ this.validate();
77
+ }
78
+ }
79
+ autofocusChanged() {
80
+ if (this.proxy instanceof HTMLInputElement) {
81
+ this.proxy.autofocus = this.autofocus;
82
+ this.validate();
83
+ }
84
+ }
85
+ placeholderChanged() {
86
+ if (this.proxy instanceof HTMLInputElement) {
87
+ this.proxy.placeholder = this.placeholder;
88
+ }
89
+ }
90
+ typeChanged() {
91
+ if (this.proxy instanceof HTMLInputElement) {
92
+ this.proxy.type = this.type;
93
+ this.validate();
94
+ }
95
+ }
96
+ listChanged() {
97
+ if (this.proxy instanceof HTMLInputElement) {
98
+ this.proxy.setAttribute("list", this.list);
99
+ this.validate();
100
+ }
101
+ }
102
+ maxlengthChanged() {
103
+ if (this.proxy instanceof HTMLInputElement) {
104
+ this.proxy.maxLength = this.maxlength;
105
+ this.validate();
106
+ }
107
+ }
108
+ minlengthChanged() {
109
+ if (this.proxy instanceof HTMLInputElement) {
110
+ this.proxy.minLength = this.minlength;
111
+ this.validate();
112
+ }
113
+ }
114
+ patternChanged() {
115
+ if (this.proxy instanceof HTMLInputElement) {
116
+ this.proxy.pattern = this.pattern;
117
+ this.validate();
118
+ }
119
+ }
120
+ sizeChanged() {
121
+ if (this.proxy instanceof HTMLInputElement) {
122
+ this.proxy.size = this.size;
123
+ }
124
+ }
125
+ spellcheckChanged() {
126
+ if (this.proxy instanceof HTMLInputElement) {
127
+ this.proxy.spellcheck = this.spellcheck;
128
+ }
129
+ }
130
+ /**
131
+ * @internal
132
+ */
133
+ connectedCallback() {
134
+ super.connectedCallback();
135
+ this.proxy.setAttribute("type", this.type);
136
+ this.validate();
137
+ if (this.autofocus) {
138
+ DOM.queueUpdate(() => {
139
+ this.focus();
140
+ });
141
+ }
142
+ }
143
+ /**
144
+ * Selects all the text in the text field
145
+ *
146
+ * @public
147
+ */
148
+ select() {
149
+ this.control.select();
150
+ /**
151
+ * The select event does not permeate the shadow DOM boundary.
152
+ * This fn effectively proxies the select event,
153
+ * emitting a `select` event whenever the internal
154
+ * control emits a `select` event
155
+ */
156
+ this.$emit("select");
157
+ }
158
+ /**
159
+ * Handles the internal control's `input` event
160
+ * @internal
161
+ */
162
+ handleTextInput() {
163
+ this.value = this.control.value;
164
+ }
165
+ /**
166
+ * Change event handler for inner control.
167
+ * @remarks
168
+ * "Change" events are not `composable` so they will not
169
+ * permeate the shadow DOM boundary. This fn effectively proxies
170
+ * the change event, emitting a `change` event whenever the internal
171
+ * control emits a `change` event
172
+ * @internal
173
+ */
174
+ handleChange() {
175
+ this.$emit("change");
176
+ }
177
+ /** {@inheritDoc (FormAssociated:interface).validate} */
178
+ validate() {
179
+ super.validate(this.control);
180
+ }
181
+ }
182
+ __decorate([
183
+ attr({ attribute: "readonly", mode: "boolean" })
184
+ ], TextField.prototype, "readOnly", void 0);
185
+ __decorate([
186
+ attr({ mode: "boolean" })
187
+ ], TextField.prototype, "autofocus", void 0);
188
+ __decorate([
189
+ attr
190
+ ], TextField.prototype, "placeholder", void 0);
191
+ __decorate([
192
+ attr
193
+ ], TextField.prototype, "type", void 0);
194
+ __decorate([
195
+ attr
196
+ ], TextField.prototype, "list", void 0);
197
+ __decorate([
198
+ attr({ converter: nullableNumberConverter })
199
+ ], TextField.prototype, "maxlength", void 0);
200
+ __decorate([
201
+ attr({ converter: nullableNumberConverter })
202
+ ], TextField.prototype, "minlength", void 0);
203
+ __decorate([
204
+ attr
205
+ ], TextField.prototype, "pattern", void 0);
206
+ __decorate([
207
+ attr({ converter: nullableNumberConverter })
208
+ ], TextField.prototype, "size", void 0);
209
+ __decorate([
210
+ attr({ mode: "boolean" })
211
+ ], TextField.prototype, "spellcheck", void 0);
212
+ __decorate([
213
+ observable
214
+ ], TextField.prototype, "defaultSlottedNodes", void 0);
215
+ /**
216
+ * Includes ARIA states and properties relating to the ARIA textbox role
217
+ *
218
+ * @public
219
+ */
220
+ class DelegatesARIATextbox {
221
+ }
222
+ applyMixins(DelegatesARIATextbox, ARIAGlobalStatesAndProperties);
223
+ applyMixins(TextField, StartEnd, DelegatesARIATextbox);
224
+
225
+ export { DelegatesARIATextbox as D, TextField as T };