@vonage/vivid 3.0.0-next.13 → 3.0.0-next.131

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 (296) hide show
  1. package/README.md +160 -33
  2. package/accordion/index.js +4 -60
  3. package/accordion-item/index.js +14 -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 -218
  8. package/breadcrumb/index.js +7 -96
  9. package/breadcrumb-item/index.js +15 -46
  10. package/button/index.js +19 -763
  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 +33 -0
  16. package/custom-elements.json +5570 -0
  17. package/dialog/index.js +24 -0
  18. package/divider/index.js +6 -0
  19. package/elevation/index.js +4 -30
  20. package/fab/index.js +22 -0
  21. package/focus/index.js +4 -2
  22. package/header/index.js +6 -0
  23. package/icon/index.js +8 -36
  24. package/index.js +70 -26
  25. package/layout/index.js +4 -52
  26. package/lib/accordion/definition.d.ts +1 -0
  27. package/lib/accordion/index.d.ts +1 -2
  28. package/lib/accordion-item/definition.d.ts +1 -0
  29. package/lib/accordion-item/index.d.ts +1 -3
  30. package/lib/action-group/action-group.d.ts +10 -0
  31. package/lib/{sidenav-item/sidenav-item.template.d.ts → action-group/action-group.template.d.ts} +2 -2
  32. package/lib/action-group/definition.d.ts +1 -0
  33. package/lib/action-group/index.d.ts +1 -0
  34. package/lib/avatar/avatar.d.ts +15 -0
  35. package/lib/avatar/avatar.template.d.ts +4 -0
  36. package/lib/avatar/definition.d.ts +1 -0
  37. package/lib/avatar/index.d.ts +1 -0
  38. package/lib/badge/badge.d.ts +2 -4
  39. package/lib/badge/definition.d.ts +3 -0
  40. package/lib/badge/index.d.ts +1 -3
  41. package/lib/banner/banner.d.ts +1 -1
  42. package/lib/banner/banner.template.d.ts +0 -2
  43. package/lib/banner/definition.d.ts +1 -0
  44. package/lib/banner/index.d.ts +1 -2
  45. package/lib/breadcrumb/breadcrumb.template.d.ts +4 -0
  46. package/lib/breadcrumb/definition.d.ts +1 -0
  47. package/lib/breadcrumb/index.d.ts +1 -2
  48. package/lib/breadcrumb-item/definition.d.ts +1 -0
  49. package/lib/breadcrumb-item/index.d.ts +1 -3
  50. package/lib/button/button.d.ts +3 -3
  51. package/lib/button/definition.d.ts +1 -0
  52. package/lib/button/index.d.ts +1 -21
  53. package/lib/calendar/calendar.d.ts +3 -1
  54. package/lib/calendar/definition.d.ts +1 -0
  55. package/lib/calendar/index.d.ts +1 -3
  56. package/lib/calendar-event/calendar-event.d.ts +14 -0
  57. package/lib/calendar-event/calendar-event.template.d.ts +4 -0
  58. package/lib/calendar-event/definition.d.ts +1 -0
  59. package/lib/calendar-event/index.d.ts +1 -0
  60. package/lib/card/card.d.ts +2 -2
  61. package/lib/card/definition.d.ts +1 -0
  62. package/lib/card/index.d.ts +1 -5
  63. package/lib/checkbox/checkbox.d.ts +5 -0
  64. package/lib/checkbox/checkbox.template.d.ts +4 -0
  65. package/lib/checkbox/definition.d.ts +1 -0
  66. package/lib/checkbox/index.d.ts +1 -0
  67. package/lib/combobox/combobox.d.ts +14 -0
  68. package/lib/combobox/combobox.template.d.ts +4 -0
  69. package/lib/combobox/definition.d.ts +3 -0
  70. package/lib/combobox/index.d.ts +1 -0
  71. package/lib/components.d.ts +40 -16
  72. package/lib/dialog/definition.d.ts +1 -0
  73. package/lib/dialog/dialog.d.ts +23 -0
  74. package/lib/dialog/dialog.template.d.ts +4 -0
  75. package/lib/dialog/index.d.ts +1 -0
  76. package/lib/divider/definition.d.ts +1 -0
  77. package/lib/divider/divider.d.ts +3 -0
  78. package/lib/divider/divider.template.d.ts +4 -0
  79. package/lib/divider/index.d.ts +1 -0
  80. package/lib/elevation/definition.d.ts +1 -0
  81. package/lib/elevation/elevation.d.ts +1 -0
  82. package/lib/elevation/index.d.ts +1 -2
  83. package/lib/enums.d.ts +14 -6
  84. package/lib/fab/definition.d.ts +3 -0
  85. package/lib/fab/fab.d.ts +13 -0
  86. package/lib/fab/fab.template.d.ts +4 -0
  87. package/lib/fab/index.d.ts +1 -0
  88. package/lib/focus/definition.d.ts +3 -0
  89. package/lib/focus/index.d.ts +1 -2
  90. package/lib/{sidenav-item/index.d.ts → header/definition.d.ts} +2 -2
  91. package/lib/header/header.d.ts +5 -0
  92. package/lib/header/header.template.d.ts +4 -0
  93. package/lib/header/index.d.ts +1 -0
  94. package/lib/icon/definition.d.ts +3 -0
  95. package/lib/icon/icon.d.ts +5 -7
  96. package/lib/icon/index.d.ts +1 -2
  97. package/lib/layout/definition.d.ts +3 -0
  98. package/lib/layout/index.d.ts +1 -2
  99. package/lib/layout/layout.d.ts +4 -4
  100. package/lib/listbox/definition.d.ts +3 -0
  101. package/lib/listbox/index.d.ts +1 -0
  102. package/lib/listbox/listbox.d.ts +6 -0
  103. package/lib/listbox/listbox.template.d.ts +4 -0
  104. package/lib/menu/definition.d.ts +11 -0
  105. package/lib/menu/index.d.ts +1 -0
  106. package/lib/menu/menu.d.ts +10 -0
  107. package/lib/menu/menu.template.d.ts +3 -0
  108. package/lib/menu-item/definition.d.ts +3 -0
  109. package/lib/menu-item/index.d.ts +1 -0
  110. package/lib/menu-item/menu-item.d.ts +7 -0
  111. package/lib/menu-item/menu-item.template.d.ts +5 -0
  112. package/lib/nav/definition.d.ts +3 -0
  113. package/lib/nav/index.d.ts +1 -0
  114. package/lib/nav/nav.d.ts +3 -0
  115. package/lib/nav/nav.template.d.ts +4 -0
  116. package/lib/nav-disclosure/definition.d.ts +3 -0
  117. package/lib/nav-disclosure/index.d.ts +1 -0
  118. package/lib/nav-disclosure/nav-disclosure.d.ts +10 -0
  119. package/lib/nav-disclosure/nav-disclosure.template.d.ts +4 -0
  120. package/lib/nav-item/definition.d.ts +3 -0
  121. package/lib/nav-item/index.d.ts +1 -0
  122. package/lib/{sidenav-item/sidenav-item.d.ts → nav-item/nav-item.d.ts} +2 -2
  123. package/lib/nav-item/nav-item.template.d.ts +4 -0
  124. package/lib/note/definition.d.ts +3 -0
  125. package/lib/note/index.d.ts +1 -0
  126. package/lib/note/note.d.ts +10 -0
  127. package/lib/{text/text.template.d.ts → note/note.template.d.ts} +2 -2
  128. package/lib/number-field/definition.d.ts +4 -0
  129. package/lib/number-field/index.d.ts +1 -0
  130. package/lib/number-field/number-field.d.ts +14 -0
  131. package/lib/number-field/number-field.template.d.ts +4 -0
  132. package/lib/option/definition.d.ts +3 -0
  133. package/lib/option/index.d.ts +1 -0
  134. package/lib/option/option.d.ts +9 -0
  135. package/lib/option/option.template.d.ts +4 -0
  136. package/lib/popup/definition.d.ts +4 -0
  137. package/lib/popup/index.d.ts +1 -4
  138. package/lib/popup/popup.d.ts +8 -4
  139. package/lib/progress/definition.d.ts +3 -0
  140. package/lib/progress/index.d.ts +1 -2
  141. package/lib/progress/progress.d.ts +1 -1
  142. package/lib/progress-ring/definition.d.ts +3 -0
  143. package/lib/progress-ring/index.d.ts +1 -2
  144. package/lib/progress-ring/progress-ring.d.ts +2 -1
  145. package/lib/radio/definition.d.ts +3 -0
  146. package/lib/radio/index.d.ts +1 -0
  147. package/lib/radio/radio.d.ts +4 -0
  148. package/lib/radio/radio.template.d.ts +4 -0
  149. package/lib/radio-group/definition.d.ts +11 -0
  150. package/lib/radio-group/index.d.ts +1 -0
  151. package/lib/radio-group/radio-group.d.ts +4 -0
  152. package/lib/radio-group/radio-group.template.d.ts +4 -0
  153. package/lib/side-drawer/definition.d.ts +3 -0
  154. package/lib/side-drawer/index.d.ts +1 -2
  155. package/lib/side-drawer/side-drawer.d.ts +3 -2
  156. package/lib/slider/definition.d.ts +3 -0
  157. package/lib/slider/index.d.ts +1 -0
  158. package/lib/slider/slider.d.ts +4 -0
  159. package/lib/slider/slider.template.d.ts +4 -0
  160. package/lib/switch/definition.d.ts +3 -0
  161. package/lib/switch/index.d.ts +1 -0
  162. package/lib/switch/switch.d.ts +7 -0
  163. package/lib/switch/switch.template.d.ts +4 -0
  164. package/lib/text-anchor/definition.d.ts +3 -0
  165. package/lib/text-anchor/index.d.ts +1 -2
  166. package/lib/text-area/definition.d.ts +3 -0
  167. package/lib/text-area/index.d.ts +1 -0
  168. package/lib/text-area/text-area.d.ts +9 -0
  169. package/lib/text-area/text-area.template.d.ts +4 -0
  170. package/lib/text-field/definition.d.ts +3 -0
  171. package/lib/text-field/index.d.ts +1 -0
  172. package/lib/text-field/text-field.d.ts +14 -0
  173. package/lib/text-field/text-field.template.d.ts +4 -0
  174. package/lib/tooltip/definition.d.ts +3 -0
  175. package/lib/tooltip/index.d.ts +1 -3
  176. package/lib/tooltip/tooltip.d.ts +6 -6
  177. package/listbox/index.js +25 -0
  178. package/menu/index.js +30 -0
  179. package/menu-item/index.js +20 -0
  180. package/nav/index.js +4 -0
  181. package/nav-disclosure/index.js +17 -0
  182. package/nav-item/index.js +22 -0
  183. package/note/index.js +15 -0
  184. package/number-field/index.js +459 -0
  185. package/option/index.js +20 -0
  186. package/package.json +22 -11
  187. package/popup/index.js +21 -2062
  188. package/progress/index.js +6 -98
  189. package/progress-ring/index.js +6 -75
  190. package/radio/index.js +12 -0
  191. package/radio-group/index.js +11 -0
  192. package/shared/affix.js +2 -8
  193. package/shared/anchor.js +11 -3
  194. package/shared/apply-mixins.js +5 -4
  195. package/shared/aria-global.js +2 -86
  196. package/shared/aria.js +9 -0
  197. package/shared/base-progress.js +6 -1
  198. package/shared/breadcrumb-item.js +2 -2
  199. package/shared/button.js +200 -0
  200. package/shared/calendar-event.js +19 -0
  201. package/shared/definition.js +53 -0
  202. package/shared/definition10.js +99 -0
  203. package/shared/definition11.js +48 -0
  204. package/shared/definition12.js +1523 -0
  205. package/shared/definition13.js +111 -0
  206. package/shared/definition14.js +114 -0
  207. package/shared/definition15.js +32 -0
  208. package/shared/definition16.js +172 -0
  209. package/shared/definition17.js +734 -0
  210. package/shared/definition18.js +1644 -0
  211. package/shared/definition19.js +261 -0
  212. package/shared/definition2.js +106 -0
  213. package/shared/definition20.js +223 -0
  214. package/shared/definition21.js +78 -0
  215. package/shared/definition22.js +87 -0
  216. package/shared/definition23.js +58 -0
  217. package/shared/definition24.js +44 -0
  218. package/shared/definition25.js +58 -0
  219. package/shared/definition26.js +348 -0
  220. package/shared/definition27.js +351 -0
  221. package/shared/definition28.js +21 -0
  222. package/shared/definition29.js +75 -0
  223. package/shared/definition3.js +29 -0
  224. package/shared/definition30.js +31 -0
  225. package/shared/definition31.js +56 -0
  226. package/shared/definition32.js +94 -0
  227. package/shared/definition33.js +77 -0
  228. package/shared/definition34.js +45 -0
  229. package/shared/definition35.js +435 -0
  230. package/shared/definition36.js +86 -0
  231. package/shared/definition37.js +592 -0
  232. package/shared/definition38.js +147 -0
  233. package/shared/definition39.js +280 -0
  234. package/shared/definition4.js +19 -0
  235. package/shared/definition40.js +119 -0
  236. package/shared/definition41.js +77 -0
  237. package/shared/definition5.js +38 -0
  238. package/shared/definition6.js +60 -0
  239. package/shared/definition7.js +45 -0
  240. package/shared/definition8.js +113 -0
  241. package/shared/definition9.js +107 -0
  242. package/shared/design-system/index.d.ts +1 -1
  243. package/shared/dialog-polyfill.esm.js +858 -0
  244. package/shared/direction.js +20 -0
  245. package/shared/dom.js +8 -0
  246. package/shared/enums.js +70 -0
  247. package/shared/es.object.assign.js +2 -3
  248. package/shared/es.regexp.to-string.js +59 -0
  249. package/shared/focus.js +5 -0
  250. package/shared/focus2.js +11 -0
  251. package/shared/form-associated.js +466 -0
  252. package/shared/form-elements.js +121 -0
  253. package/shared/icon.js +538 -567
  254. package/shared/index.js +1664 -83
  255. package/shared/key-codes.js +97 -0
  256. package/shared/listbox.js +1002 -0
  257. package/shared/numbers.js +25 -0
  258. package/shared/patterns/affix.d.ts +1 -1
  259. package/shared/patterns/focus.d.ts +3 -0
  260. package/shared/patterns/form-elements/form-elements.d.ts +31 -0
  261. package/shared/patterns/form-elements/index.d.ts +1 -0
  262. package/shared/patterns/index.d.ts +2 -0
  263. package/shared/radio.js +127 -0
  264. package/shared/ref.js +41 -0
  265. package/shared/slotted.js +1 -1
  266. package/shared/start-end.js +50 -0
  267. package/shared/string-trim.js +40 -0
  268. package/shared/text-anchor.js +0 -2
  269. package/shared/text-anchor.template.js +6 -5
  270. package/shared/text-field.js +3 -0
  271. package/shared/text-field2.js +225 -0
  272. package/shared/to-string.js +51 -0
  273. package/side-drawer/index.js +5 -81
  274. package/slider/index.js +17 -0
  275. package/styles/core/all.css +83 -0
  276. package/styles/core/theme.css +11 -0
  277. package/styles/core/typography.css +77 -0
  278. package/styles/tokens/theme-dark.css +228 -0
  279. package/styles/tokens/theme-light.css +228 -0
  280. package/switch/index.js +17 -0
  281. package/text-anchor/index.js +11 -6
  282. package/text-area/index.js +23 -0
  283. package/text-field/index.js +24 -0
  284. package/tooltip/index.js +18 -55
  285. package/vivid.api.json +3275 -0
  286. package/lib/text/index.d.ts +0 -2
  287. package/lib/text/text.d.ts +0 -10
  288. package/shared/index2.js +0 -21
  289. package/shared/object-set-prototype-of.js +0 -1009
  290. package/shared/style-inject.es.js +0 -28
  291. package/shared/web.dom-collections.iterator.js +0 -473
  292. package/sidenav-item/index.js +0 -39
  293. package/styles/fonts/spezia.css +0 -23
  294. package/styles/themes/dark.css +0 -205
  295. package/styles/themes/light.css +0 -205
  296. package/text/index.js +0 -46
@@ -0,0 +1,147 @@
1
+ import { F as FoundationElement, _ as __decorate, a as attr, N as observable, b as __metadata, h as html, r as registerFactory } from './index.js';
2
+ import { i as iconRegistries } from './definition3.js';
3
+ import { f as focusRegistries } from './definition4.js';
4
+ import { C as CheckableFormAssociated } from './form-associated.js';
5
+ import { a as keySpace, k as keyEnter } from './key-codes.js';
6
+ import './affix.js';
7
+ import { f as focusTemplateFactory } from './focus2.js';
8
+ import './icon.js';
9
+ import { w as when } from './when.js';
10
+ import { c as classNames } from './class-names.js';
11
+
12
+ class _Switch extends FoundationElement {
13
+ }
14
+ /**
15
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(Switch:class)} component.
16
+ *
17
+ * @internal
18
+ */
19
+ class FormAssociatedSwitch extends CheckableFormAssociated(_Switch) {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.proxy = document.createElement("input");
23
+ }
24
+ }
25
+
26
+ /**
27
+ * A Switch Custom HTML Element.
28
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#switch | ARIA switch }.
29
+ *
30
+ * @slot - The deafult slot for the label
31
+ * @slot checked-message - The message when in a checked state
32
+ * @slot unchecked-message - The message when in an unchecked state
33
+ * @csspart label - The label
34
+ * @csspart switch - The element representing the switch, which wraps the indicator
35
+ * @csspart status-message - The wrapper for the status messages
36
+ * @csspart checked-message - The checked message
37
+ * @csspart unchecked-message - The unchecked message
38
+ * @fires change - Emits a custom change event when the checked state changes
39
+ *
40
+ * @public
41
+ */
42
+ class Switch$1 extends FormAssociatedSwitch {
43
+ constructor() {
44
+ super();
45
+ /**
46
+ * The element's value to be included in form submission when checked.
47
+ * Default to "on" to reach parity with input[type="checkbox"]
48
+ *
49
+ * @internal
50
+ */
51
+ this.initialValue = "on";
52
+ /**
53
+ * @internal
54
+ */
55
+ this.keypressHandler = (e) => {
56
+ if (this.readOnly) {
57
+ return;
58
+ }
59
+ switch (e.key) {
60
+ case keyEnter:
61
+ case keySpace:
62
+ this.checked = !this.checked;
63
+ break;
64
+ }
65
+ };
66
+ /**
67
+ * @internal
68
+ */
69
+ this.clickHandler = (e) => {
70
+ if (!this.disabled && !this.readOnly) {
71
+ this.checked = !this.checked;
72
+ }
73
+ };
74
+ this.proxy.setAttribute("type", "checkbox");
75
+ }
76
+ readOnlyChanged() {
77
+ if (this.proxy instanceof HTMLInputElement) {
78
+ this.proxy.readOnly = this.readOnly;
79
+ }
80
+ this.readOnly
81
+ ? this.classList.add("readonly")
82
+ : this.classList.remove("readonly");
83
+ }
84
+ /**
85
+ * @internal
86
+ */
87
+ checkedChanged(prev, next) {
88
+ super.checkedChanged(prev, next);
89
+ /**
90
+ * @deprecated - this behavior already exists in the template and should not exist in the class.
91
+ */
92
+ this.checked ? this.classList.add("checked") : this.classList.remove("checked");
93
+ }
94
+ }
95
+ __decorate([
96
+ attr({ attribute: "readonly", mode: "boolean" })
97
+ ], Switch$1.prototype, "readOnly", void 0);
98
+ __decorate([
99
+ observable
100
+ ], Switch$1.prototype, "defaultSlottedNodes", void 0);
101
+
102
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Sun, 08 Jan 2023 11:04:12 GMT\n */\n.control {\n display: inline-flex;\n gap: 8px;\n}\n.control.connotation-cta {\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-primary: var(--vvd-color-cta-500);\n --_connotation-color-primary-increment: var(--vvd-color-cta-600);\n --_connotation-color-backdrop: var(--vvd-color-cta-50);\n --_connotation-color-firm: var(--vvd-color-cta-600);\n --_connotation-color-intermediate: var(--vvd-color-cta-500);\n}\n.control.connotation-alert {\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-primary: var(--vvd-color-alert-500);\n --_connotation-color-primary-increment: var(--vvd-color-alert-600);\n --_connotation-color-backdrop: var(--vvd-color-alert-50);\n --_connotation-color-firm: var(--vvd-color-alert-600);\n --_connotation-color-intermediate: var(--vvd-color-alert-500);\n}\n.control.connotation-success {\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-primary: var(--vvd-color-success-500);\n --_connotation-color-primary-increment: var(--vvd-color-success-600);\n --_connotation-color-backdrop: var(--vvd-color-success-50);\n --_connotation-color-firm: var(--vvd-color-success-600);\n --_connotation-color-intermediate: var(--vvd-color-success-500);\n}\n.control:not(.connotation-cta, .connotation-alert, .connotation-success) {\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-primary: var(--vvd-color-canvas-text);\n --_connotation-color-primary-increment: var(--vvd-color-neutral-800);\n --_connotation-color-backdrop: var(--vvd-color-canvas);\n --_connotation-color-firm: var(--vvd-color-canvas-text);\n --_connotation-color-intermediate: var(--vvd-color-neutral-500);\n}\n.control {\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.control.appearance-filled {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transparent;\n}\n.control: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.control:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)).appearance-filled {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary-increment);\n --_appearance-color-outline: transparent;\n}\n.control: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.control:where(:disabled, .disabled).appearance-filled {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: var(--vvd-color-neutral-200);\n --_appearance-color-outline: transparent;\n}\n.control: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.control:where(.readonly):where(:not(:disabled, .disabled)).appearance-filled {\n --_appearance-color-text: var(--vvd-color-neutral-800);\n --_appearance-color-fill: var(--vvd-color-neutral-200);\n --_appearance-color-outline: transparent;\n}\n@supports selector(:focus-visible) {\n .control:focus {\n outline: none;\n }\n}\n@supports (user-select: none) {\n .control {\n user-select: none;\n }\n}\n.control:not(.disabled) {\n cursor: pointer;\n}\n.control.disabled {\n cursor: not-allowed;\n}\n\n.switch {\n --_switch-inline-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20)) * 1.8);\n position: relative;\n display: flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20));\n border-radius: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20)) / .5);\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n inline-size: var(--_switch-inline-size);\n transition: all 0.2s ease-in-out 0s;\n}\n\n.checked-indicator {\n --_switch-checked-indicator-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20)) / 1.6667);\n --_switch-gutter: calc(var(--_switch-checked-indicator-size) / 3);\n block-size: var(--_switch-checked-indicator-size);\n border-radius: inherit;\n inline-size: var(--_switch-checked-indicator-size);\n margin-inline-start: auto;\n transition: all 0.2s ease-in-out 0s;\n}\n.control.appearance-filled .checked-indicator {\n background-color: var(--vvd-color-neutral-100);\n}\n.control:not(.appearance-filled) .checked-indicator {\n background-color: var(--_appearance-color-outline);\n}\n.control:not(.checked) .checked-indicator {\n transform: translateX(calc(-1 * var(--_switch-inline-size) + var(--_switch-checked-indicator-size) + var(--_switch-gutter)));\n}\n.control.checked .checked-indicator {\n transform: translateX(calc(-1 * var(--_switch-gutter)));\n}\n\n.label {\n color: var(--vvd-color-canvas-text);\n cursor: pointer;\n font: var(--vvd-typography-base);\n}\n\n.focus-indicator {\n --focus-inset: -4px;\n --focus-stroke-gap-color: transparent;\n border-radius: 14px;\n}\n.control:not(:focus-visible) .focus-indicator {\n display: none;\n}";
103
+
104
+ class Switch extends Switch$1 {}
105
+ __decorate([attr, __metadata("design:type", String)], Switch.prototype, "label", void 0);
106
+ __decorate([attr, __metadata("design:type", String)], Switch.prototype, "connotation", void 0);
107
+
108
+ let _2 = t => t,
109
+ _t,
110
+ _t2;
111
+ const getClasses = _ => classNames('control', ['appearance-filled', _.checked && !_.disabled && !_.readOnly], ['checked', _.checked], ['disabled', _.disabled], ['readonly', _.readOnly], [`connotation-${_.connotation}`, Boolean(_.checked) && Boolean(_.connotation)]);
112
+ const SwitchTemplate = context => {
113
+ const focusTemplate = focusTemplateFactory(context);
114
+ return html(_t || (_t = _2`
115
+ <div
116
+ class="${0}"
117
+ role="switch"
118
+ aria-checked="${0}"
119
+ aria-disabled="${0}"
120
+ aria-readonly="${0}"
121
+ tabindex="${0}"
122
+ @keypress="${0}"
123
+ @click="${0}"
124
+ >
125
+ <div class="switch">
126
+ <span class="checked-indicator"></span>
127
+ ${0}
128
+ </div>
129
+ ${0}
130
+ </div>
131
+ `), getClasses, x => x.checked, x => x.disabled, x => x.readOnly, x => x.disabled ? null : 0, (x, c) => x.keypressHandler(c.event), (x, c) => x.clickHandler(c.event), () => focusTemplate, when(x => x.label, html(_t2 || (_t2 = _2`<div class="label">
132
+ ${0}
133
+ </div>`), x => x.label)));
134
+ };
135
+
136
+ const switchDefinition = Switch.compose({
137
+ baseName: 'switch',
138
+ template: SwitchTemplate,
139
+ styles: css_248z,
140
+ shadowOptions: {
141
+ delegatesFocus: true
142
+ }
143
+ });
144
+ const switchRegistries = [switchDefinition(), ...iconRegistries, ...focusRegistries];
145
+ const registerSwitch = registerFactory(switchRegistries);
146
+
147
+ export { switchRegistries as a, registerSwitch as r, switchDefinition as s };
@@ -0,0 +1,280 @@
1
+ import { F as FoundationElement, _ as __decorate, a as attr, Z as nullableNumberConverter, N as observable, b as __metadata, h as html, r as registerFactory } from './index.js';
2
+ import { i as iconRegistries } from './definition3.js';
3
+ import { f as focusRegistries } from './definition4.js';
4
+ import './affix.js';
5
+ import './focus.js';
6
+ import { f as formElements, g as getFeedbackTemplate } from './form-elements.js';
7
+ import { D as DelegatesARIATextbox } from './text-field2.js';
8
+ import { a as applyMixins } from './apply-mixins.js';
9
+ import { F as FormAssociated } from './form-associated.js';
10
+ import { f as focusTemplateFactory } from './focus2.js';
11
+ import { w as when } from './when.js';
12
+ import { r as ref } from './ref.js';
13
+ import { c as classNames } from './class-names.js';
14
+
15
+ class _TextArea extends FoundationElement {
16
+ }
17
+ /**
18
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
19
+ *
20
+ * @internal
21
+ */
22
+ class FormAssociatedTextArea extends FormAssociated(_TextArea) {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.proxy = document.createElement("textarea");
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Resize mode for a TextArea
31
+ * @public
32
+ */
33
+ const TextAreaResize = {
34
+ /**
35
+ * No resize.
36
+ */
37
+ none: "none",
38
+ /**
39
+ * Resize vertically and horizontally.
40
+ */
41
+ both: "both",
42
+ /**
43
+ * Resize horizontally.
44
+ */
45
+ horizontal: "horizontal",
46
+ /**
47
+ * Resize vertically.
48
+ */
49
+ vertical: "vertical",
50
+ };
51
+
52
+ /**
53
+ * A Text Area Custom HTML Element.
54
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | <textarea> element }.
55
+ *
56
+ * @slot - The default slot for the label
57
+ * @csspart label - The label
58
+ * @csspart root - The element wrapping the control
59
+ * @csspart control - The textarea element
60
+ * @fires change - Emits a custom 'change' event when the textarea emits a change event
61
+ *
62
+ * @public
63
+ */
64
+ class TextArea$1 extends FormAssociatedTextArea {
65
+ constructor() {
66
+ super(...arguments);
67
+ /**
68
+ * The resize mode of the element.
69
+ * @public
70
+ * @remarks
71
+ * HTML Attribute: resize
72
+ */
73
+ this.resize = TextAreaResize.none;
74
+ /**
75
+ * Sizes the element horizontally by a number of character columns.
76
+ *
77
+ * @public
78
+ * @remarks
79
+ * HTML Attribute: cols
80
+ */
81
+ this.cols = 20;
82
+ /**
83
+ * @internal
84
+ */
85
+ this.handleTextInput = () => {
86
+ this.value = this.control.value;
87
+ };
88
+ }
89
+ readOnlyChanged() {
90
+ if (this.proxy instanceof HTMLTextAreaElement) {
91
+ this.proxy.readOnly = this.readOnly;
92
+ }
93
+ }
94
+ autofocusChanged() {
95
+ if (this.proxy instanceof HTMLTextAreaElement) {
96
+ this.proxy.autofocus = this.autofocus;
97
+ }
98
+ }
99
+ listChanged() {
100
+ if (this.proxy instanceof HTMLTextAreaElement) {
101
+ this.proxy.setAttribute("list", this.list);
102
+ }
103
+ }
104
+ maxlengthChanged() {
105
+ if (this.proxy instanceof HTMLTextAreaElement) {
106
+ this.proxy.maxLength = this.maxlength;
107
+ }
108
+ }
109
+ minlengthChanged() {
110
+ if (this.proxy instanceof HTMLTextAreaElement) {
111
+ this.proxy.minLength = this.minlength;
112
+ }
113
+ }
114
+ spellcheckChanged() {
115
+ if (this.proxy instanceof HTMLTextAreaElement) {
116
+ this.proxy.spellcheck = this.spellcheck;
117
+ }
118
+ }
119
+ /**
120
+ * Selects all the text in the text area
121
+ *
122
+ * @public
123
+ */
124
+ select() {
125
+ this.control.select();
126
+ /**
127
+ * The select event does not permeate the shadow DOM boundary.
128
+ * This fn effectively proxies the select event,
129
+ * emitting a `select` event whenever the internal
130
+ * control emits a `select` event
131
+ */
132
+ this.$emit("select");
133
+ }
134
+ /**
135
+ * Change event handler for inner control.
136
+ * @remarks
137
+ * "Change" events are not `composable` so they will not
138
+ * permeate the shadow DOM boundary. This fn effectively proxies
139
+ * the change event, emitting a `change` event whenever the internal
140
+ * control emits a `change` event
141
+ * @internal
142
+ */
143
+ handleChange() {
144
+ this.$emit("change");
145
+ }
146
+ /** {@inheritDoc (FormAssociated:interface).validate} */
147
+ validate() {
148
+ super.validate(this.control);
149
+ }
150
+ }
151
+ __decorate([
152
+ attr({ mode: "boolean" })
153
+ ], TextArea$1.prototype, "readOnly", void 0);
154
+ __decorate([
155
+ attr
156
+ ], TextArea$1.prototype, "resize", void 0);
157
+ __decorate([
158
+ attr({ mode: "boolean" })
159
+ ], TextArea$1.prototype, "autofocus", void 0);
160
+ __decorate([
161
+ attr({ attribute: "form" })
162
+ ], TextArea$1.prototype, "formId", void 0);
163
+ __decorate([
164
+ attr
165
+ ], TextArea$1.prototype, "list", void 0);
166
+ __decorate([
167
+ attr({ converter: nullableNumberConverter })
168
+ ], TextArea$1.prototype, "maxlength", void 0);
169
+ __decorate([
170
+ attr({ converter: nullableNumberConverter })
171
+ ], TextArea$1.prototype, "minlength", void 0);
172
+ __decorate([
173
+ attr
174
+ ], TextArea$1.prototype, "name", void 0);
175
+ __decorate([
176
+ attr
177
+ ], TextArea$1.prototype, "placeholder", void 0);
178
+ __decorate([
179
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
180
+ ], TextArea$1.prototype, "cols", void 0);
181
+ __decorate([
182
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
183
+ ], TextArea$1.prototype, "rows", void 0);
184
+ __decorate([
185
+ attr({ mode: "boolean" })
186
+ ], TextArea$1.prototype, "spellcheck", void 0);
187
+ __decorate([
188
+ observable
189
+ ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
190
+ applyMixins(TextArea$1, DelegatesARIATextbox);
191
+
192
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Sun, 08 Jan 2023 11:04:12 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n display: inline-grid;\n width: 100%;\n gap: 4px;\n grid-template-columns: 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 pointer-events: none;\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/3;\n grid-row: 1;\n line-height: 20px;\n}\n\n.fieldset {\n position: relative;\n display: flex;\n align-items: center;\n border-radius: 6px;\n grid-column: 1/3;\n}\n\n.control {\n width: 100%;\n padding: 8px 16px;\n border: 0 none;\n background-color: var(--_appearance-color-fill);\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 min-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n transition: box-shadow 0.2s, background-color 0.2s, 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.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}";
193
+
194
+ let TextArea = class TextArea extends TextArea$1 {};
195
+ __decorate([attr, __metadata("design:type", String)], TextArea.prototype, "wrap", void 0);
196
+ TextArea = __decorate([formElements], TextArea);
197
+
198
+ let _ = t => t,
199
+ _t,
200
+ _t2;
201
+ const getClasses = ({
202
+ value,
203
+ errorValidationMessage,
204
+ disabled,
205
+ placeholder,
206
+ readOnly,
207
+ successText
208
+ }) => classNames('base', ['readonly', readOnly], ['placeholder', Boolean(placeholder)], ['disabled', disabled], ['error connotation-alert', Boolean(errorValidationMessage)], ['has-value', Boolean(value)], ['success connotation-success', !!successText]);
209
+ function renderLabel() {
210
+ return html(_t || (_t = _`
211
+ <label for="control" class="label">
212
+ ${0}
213
+ </label>`), x => x.label);
214
+ }
215
+ const TextAreaTemplate = context => {
216
+ const focusTemplate = focusTemplateFactory(context);
217
+ return html(_t2 || (_t2 = _`
218
+ <div class="${0}">
219
+ ${0}
220
+ <div class="fieldset">
221
+ <textarea class="control"
222
+ ?autofocus="${0}"
223
+ placeholder="${0}"
224
+ name="${0}"
225
+ maxlength="${0}"
226
+ rows="${0}"
227
+ cols="${0}"
228
+ wrap="${0}"
229
+ ?readonly="${0}"
230
+ ?required="${0}"
231
+ ?spellcheck="${0}"
232
+ :value="${0}"
233
+ aria-atomic="${0}"
234
+ aria-busy="${0}"
235
+ aria-controls="${0}"
236
+ aria-current="${0}"
237
+ aria-describedby="${0}"
238
+ aria-details="${0}"
239
+ aria-disabled="${0}"
240
+ aria-errormessage="${0}"
241
+ aria-flowto="${0}"
242
+ aria-haspopup="${0}"
243
+ aria-hidden="${0}"
244
+ aria-invalid="${0}"
245
+ aria-keyshortcuts="${0}"
246
+ aria-label="${0}"
247
+ aria-labelledby="${0}"
248
+ aria-live="${0}"
249
+ aria-owns="${0}"
250
+ aria-relevant="${0}"
251
+ aria-roledescription="${0}"
252
+ @input="${0}"
253
+ @change="${0}"
254
+ ${0}
255
+ >
256
+ </textarea>
257
+ ${0}
258
+ </div>
259
+ ${0}
260
+ ${0}
261
+ ${0}
262
+ </div>
263
+ `), getClasses, when(x => x.label, renderLabel()), x => x.autofocus, x => x.placeholder ? x.placeholder : null, x => x.name ? x.name : null, x => x.maxlength ? x.maxlength : null, x => x.rows ? x.rows : null, x => x.cols ? x.cols : null, x => x.wrap ? x.wrap : null, x => x.readOnly, x => x.required, x => x.spellcheck, x => x.value, 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.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, x => x.handleTextInput(), x => x.handleChange(), ref('control'), () => focusTemplate, when(x => {
264
+ var _a;
265
+ return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
266
+ }, getFeedbackTemplate('helper', context)), when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context)), when(x => x.successText, getFeedbackTemplate('success', context)));
267
+ };
268
+
269
+ const textAreaDefinition = TextArea.compose({
270
+ baseName: 'text-area',
271
+ template: TextAreaTemplate,
272
+ styles: css_248z,
273
+ shadowOptions: {
274
+ delegatesFocus: true
275
+ }
276
+ });
277
+ const textAreaRegistries = [textAreaDefinition(), ...iconRegistries, ...focusRegistries];
278
+ const registerTextArea = registerFactory(textAreaRegistries);
279
+
280
+ export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };
@@ -0,0 +1,19 @@
1
+ import { h as html, r as registerFactory } from './index.js';
2
+ import { F as Focus } from './focus.js';
3
+
4
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Sun, 08 Jan 2023 11:04:12 GMT\n */\n:host {\n display: contents;\n border-radius: inherit;\n}\n\n.control {\n position: absolute;\n z-index: 1;\n box-sizing: border-box;\n border-radius: inherit;\n box-shadow: inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);\n inset: var(--focus-inset, 0);\n outline: 2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));\n outline-offset: -2px;\n}";
5
+
6
+ let _ = t => t,
7
+ _t;
8
+ const focusTemplate = () => html(_t || (_t = _`
9
+ <span class="control"></span>`));
10
+
11
+ const focusDefinition = Focus.compose({
12
+ baseName: 'focus',
13
+ template: focusTemplate,
14
+ styles: css_248z
15
+ });
16
+ const focusRegistries = [focusDefinition()];
17
+ const registerFocus = registerFactory(focusRegistries);
18
+
19
+ export { focusRegistries as f, registerFocus as r };
@@ -0,0 +1,119 @@
1
+ import { _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
+ import { f as focusRegistries } from './definition4.js';
3
+ import { i as iconRegistries } from './definition3.js';
4
+ import { b as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
5
+ import './focus.js';
6
+ import { f as formElements, g as getFeedbackTemplate } from './form-elements.js';
7
+ import { T as TextField$1 } from './text-field2.js';
8
+ import { a as applyMixins } from './apply-mixins.js';
9
+ import { c as css_248z } from './text-field.js';
10
+ import { f as focusTemplateFactory } from './focus2.js';
11
+ import { w as when } from './when.js';
12
+ import { r as ref } from './ref.js';
13
+ import { c as classNames } from './class-names.js';
14
+
15
+ let TextField = class TextField extends TextField$1 {};
16
+ __decorate([attr, __metadata("design:type", String)], TextField.prototype, "appearance", void 0);
17
+ __decorate([attr, __metadata("design:type", String)], TextField.prototype, "shape", void 0);
18
+ __decorate([attr, __metadata("design:type", String)], TextField.prototype, "autoComplete", void 0);
19
+ TextField = __decorate([formElements], TextField);
20
+ applyMixins(TextField, AffixIcon);
21
+
22
+ let _ = t => t,
23
+ _t,
24
+ _t2,
25
+ _t3;
26
+ const getStateClasses = ({
27
+ errorValidationMessage,
28
+ disabled,
29
+ value,
30
+ readOnly,
31
+ placeholder,
32
+ appearance,
33
+ shape,
34
+ label,
35
+ successText
36
+ }) => classNames(['error connotation-alert', Boolean(errorValidationMessage)], ['disabled', disabled], ['has-value', Boolean(value)], ['readonly', readOnly], ['placeholder', Boolean(placeholder)], [`appearance-${appearance}`, Boolean(appearance)], [`shape-${shape}`, Boolean(shape)], ['no-label', !label], ['success connotation-success', Boolean(successText)]);
37
+ function renderLabel() {
38
+ return html(_t || (_t = _`
39
+ <label for="control" class="label">
40
+ ${0}
41
+ </label>`), x => x.label);
42
+ }
43
+ function renderCharCount() {
44
+ return html(_t2 || (_t2 = _`
45
+ <span class="char-count">${0} / ${0}</span>
46
+ `), x => x.value ? x.value.length : 0, x => x.maxlength);
47
+ }
48
+ const TextfieldTemplate = context => {
49
+ const affixIconTemplate = affixIconTemplateFactory(context);
50
+ const focusTemplate = focusTemplateFactory(context);
51
+ return html(_t3 || (_t3 = _`
52
+ <div class="base ${0}">
53
+ ${0}
54
+ ${0}
55
+ <div class="fieldset">
56
+ ${0}
57
+ <input class="control"
58
+ id="control"
59
+ @input="${0}"
60
+ @change="${0}"
61
+ ?autofocus="${0}"
62
+ ?disabled="${0}"
63
+ list="${0}"
64
+ maxlength="${0}"
65
+ minlength="${0}"
66
+ pattern="${0}"
67
+ placeholder="${0}"
68
+ ?readonly="${0}"
69
+ ?required="${0}"
70
+ size="${0}"
71
+ autocomplete="${0}"
72
+ name="${0}"
73
+ ?spellcheck="${0}"
74
+ :value="${0}"
75
+ type="${0}"
76
+ aria-atomic="${0}"
77
+ aria-busy="${0}"
78
+ aria-controls="${0}"
79
+ aria-current="${0}"
80
+ aria-describedby="${0}"
81
+ aria-details="${0}"
82
+ aria-disabled="${0}"
83
+ aria-errormessage="${0}"
84
+ aria-flowto="${0}"
85
+ aria-haspopup="${0}"
86
+ aria-hidden="${0}"
87
+ aria-invalid="${0}"
88
+ aria-keyshortcuts="${0}"
89
+ aria-label="${0}"
90
+ aria-labelledby="${0}"
91
+ aria-live="${0}"
92
+ aria-owns="${0}"
93
+ aria-relevant="${0}"
94
+ aria-roledescription="${0}"
95
+ ${0}
96
+ />
97
+ ${0}
98
+ </div>
99
+ ${0}
100
+ ${0}
101
+ ${0}
102
+ </div>`), getStateClasses, when(x => x.charCount && x.maxlength, renderCharCount()), when(x => x.label, renderLabel()), x => affixIconTemplate(x.icon), x => x.handleTextInput(), x => x.handleChange(), x => x.autofocus, x => x.disabled, x => x.list, x => x.maxlength, x => x.minlength, x => x.pattern, x => x.placeholder, x => x.readOnly, x => x.required, x => x.size, x => x.autoComplete, x => x.name, x => x.spellcheck, x => x.value, 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.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, when(x => {
103
+ var _a;
104
+ return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
105
+ }, getFeedbackTemplate('helper', context)), when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context)), when(x => x.successText, getFeedbackTemplate('success', context)));
106
+ };
107
+
108
+ const textFieldDefinition = TextField.compose({
109
+ baseName: 'text-field',
110
+ template: TextfieldTemplate,
111
+ styles: css_248z,
112
+ shadowOptions: {
113
+ delegatesFocus: true
114
+ }
115
+ });
116
+ const textFieldRegistries = [textFieldDefinition(), ...iconRegistries, ...focusRegistries];
117
+ const registerTextField = registerFactory(textFieldRegistries);
118
+
119
+ export { textFieldRegistries as a, registerTextField as r, textFieldDefinition as t };
@@ -0,0 +1,77 @@
1
+ import { _ as __decorate, a as attr, b as __metadata, Q as __classPrivateFieldGet, h as html, r as registerFactory } from './index.js';
2
+ import { P as Popup, p as popupRegistries } from './definition18.js';
3
+ import { c as classNames } from './class-names.js';
4
+
5
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Sun, 08 Jan 2023 11:04:12 GMT\n */\n.control {\n pointer-events: none;\n}\n\n.tooltip {\n width: var(--tooltip-inline-size, 240px);\n}\n.tooltip-text {\n padding: 8px 12px;\n color: var(--vvd-color-canvas-text);\n font: var(--vvd-typography-base-bold);\n}";
6
+
7
+ var _Tooltip_instances, _Tooltip_anchorUpdated, _Tooltip_addEventListener, _Tooltip_removeEventListener, _Tooltip_show, _Tooltip_hide;
8
+ class Tooltip extends Popup {
9
+ constructor() {
10
+ super(...arguments);
11
+ _Tooltip_instances.add(this);
12
+ _Tooltip_show.set(this, () => {
13
+ this.open = true;
14
+ });
15
+ _Tooltip_hide.set(this, () => {
16
+ this.open = false;
17
+ });
18
+ }
19
+ connectedCallback() {
20
+ super.connectedCallback();
21
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
22
+ }
23
+ disconnectedCallback() {
24
+ super.disconnectedCallback();
25
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
26
+ }
27
+ attributeChangedCallback(name, oldValue, newValue) {
28
+ super.attributeChangedCallback(name, oldValue, newValue);
29
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
30
+ }
31
+ }
32
+ _Tooltip_show = new WeakMap(), _Tooltip_hide = new WeakMap(), _Tooltip_instances = new WeakSet(), _Tooltip_anchorUpdated = function _Tooltip_anchorUpdated() {
33
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
34
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_addEventListener).call(this);
35
+ }, _Tooltip_addEventListener = function _Tooltip_addEventListener() {
36
+ var _a, _b, _c, _d;
37
+ (_a = this.anchorEl) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
38
+ (_b = this.anchorEl) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
39
+ (_c = this.anchorEl) === null || _c === void 0 ? void 0 : _c.addEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
40
+ (_d = this.anchorEl) === null || _d === void 0 ? void 0 : _d.addEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
41
+ }, _Tooltip_removeEventListener = function _Tooltip_removeEventListener() {
42
+ var _a, _b, _c, _d;
43
+ (_a = this.anchorEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
44
+ (_b = this.anchorEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
45
+ (_c = this.anchorEl) === null || _c === void 0 ? void 0 : _c.removeEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
46
+ (_d = this.anchorEl) === null || _d === void 0 ? void 0 : _d.removeEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
47
+ };
48
+ __decorate([attr, __metadata("design:type", String)], Tooltip.prototype, "text", void 0);
49
+
50
+ let _ = t => t,
51
+ _t;
52
+ const getClasses = ({
53
+ open
54
+ }) => classNames('control', ['open', Boolean(open)]);
55
+ const TooltipTemplate = context => {
56
+ const popupTag = context.tagFor(Popup);
57
+ return html(_t || (_t = _`
58
+ <${0} class="${0}" arrow alternate
59
+ placement=${0} open=${0} anchor=${0}
60
+ exportparts="vvd-theme-alternate">
61
+ <div class="tooltip" role="tooltip">
62
+ <header part="vvd-theme-alternate" class="tooltip-header">
63
+ <div class="tooltip-text">${0}</div>
64
+ </header>
65
+ </div>
66
+ </${0}>`), popupTag, getClasses, x => x.placement, x => x.open, x => x.anchor, x => x.text, popupTag);
67
+ };
68
+
69
+ const tooltipDefinition = Tooltip.compose({
70
+ baseName: 'tooltip',
71
+ template: TooltipTemplate,
72
+ styles: css_248z
73
+ });
74
+ const tooltipRegistries = [tooltipDefinition(), ...popupRegistries];
75
+ const registerTooltip = registerFactory(tooltipRegistries);
76
+
77
+ export { tooltipRegistries as a, registerTooltip as r, tooltipDefinition as t };