@vonage/vivid 3.52.0 → 3.53.0

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 (289) hide show
  1. package/README.md +1 -1
  2. package/accordion/index.cjs +1 -1
  3. package/accordion/index.js +1 -1
  4. package/accordion-item/index.cjs +1 -1
  5. package/accordion-item/index.js +1 -1
  6. package/alert/index.cjs +3 -3
  7. package/alert/index.js +3 -3
  8. package/audio-player/index.cjs +3 -3
  9. package/audio-player/index.js +3 -3
  10. package/avatar/index.cjs +1 -1
  11. package/avatar/index.js +1 -1
  12. package/badge/index.cjs +1 -1
  13. package/badge/index.js +1 -1
  14. package/banner/index.cjs +2 -2
  15. package/banner/index.js +2 -2
  16. package/breadcrumb-item/index.cjs +1 -1
  17. package/breadcrumb-item/index.js +1 -1
  18. package/button/index.cjs +2 -2
  19. package/button/index.js +2 -2
  20. package/card/index.cjs +2 -2
  21. package/card/index.js +2 -2
  22. package/checkbox/index.cjs +3 -2
  23. package/checkbox/index.js +3 -2
  24. package/combobox/index.cjs +5 -5
  25. package/combobox/index.js +5 -5
  26. package/custom-elements.json +717 -4
  27. package/data-grid/index.cjs +1 -1
  28. package/data-grid/index.js +1 -1
  29. package/date-picker/index.cjs +7 -6
  30. package/date-picker/index.js +7 -6
  31. package/date-range-picker/index.cjs +7 -6
  32. package/date-range-picker/index.js +7 -6
  33. package/dial-pad/index.cjs +33 -0
  34. package/dial-pad/index.js +31 -0
  35. package/dialog/index.cjs +4 -4
  36. package/dialog/index.js +4 -4
  37. package/divider/index.cjs +1 -1
  38. package/divider/index.js +1 -1
  39. package/elevation/index.cjs +1 -1
  40. package/elevation/index.js +1 -1
  41. package/empty-state/index.cjs +2 -2
  42. package/empty-state/index.js +2 -2
  43. package/fab/index.cjs +2 -2
  44. package/fab/index.js +2 -2
  45. package/file-picker/index.cjs +4 -3
  46. package/file-picker/index.js +4 -3
  47. package/header/index.cjs +2 -2
  48. package/header/index.js +2 -2
  49. package/icon/index.cjs +1 -1
  50. package/icon/index.js +1 -1
  51. package/index.cjs +132 -122
  52. package/index.js +46 -43
  53. package/layout/index.cjs +1 -1
  54. package/layout/index.js +1 -1
  55. package/lib/components.d.ts +2 -0
  56. package/lib/dial-pad/definition.d.ts +3 -0
  57. package/lib/dial-pad/dial-pad.d.ts +14 -0
  58. package/lib/dial-pad/dial-pad.template.d.ts +4 -0
  59. package/lib/dial-pad/locale.d.ts +18 -0
  60. package/lib/enums.d.ts +6 -0
  61. package/lib/text-anchor/definition.d.ts +1 -0
  62. package/lib/text-anchor/text-anchor.d.ts +5 -0
  63. package/lib/video-player/definition.d.ts +3 -0
  64. package/lib/video-player/locale.d.ts +1 -0
  65. package/lib/video-player/video-player.d.ts +17 -0
  66. package/lib/video-player/video-player.template.d.ts +4 -0
  67. package/listbox/index.cjs +2 -2
  68. package/listbox/index.js +2 -2
  69. package/locales/en-GB.cjs +30 -0
  70. package/locales/en-GB.js +30 -0
  71. package/locales/en-US.cjs +198 -0
  72. package/locales/en-US.js +198 -0
  73. package/locales/ja-JP.cjs +197 -0
  74. package/locales/ja-JP.js +197 -0
  75. package/locales/zh-CN.cjs +199 -0
  76. package/locales/zh-CN.js +199 -0
  77. package/menu/index.cjs +6 -6
  78. package/menu/index.js +6 -6
  79. package/menu-item/index.cjs +2 -2
  80. package/menu-item/index.js +2 -2
  81. package/nav/index.cjs +1 -1
  82. package/nav/index.js +1 -1
  83. package/nav-disclosure/index.cjs +2 -2
  84. package/nav-disclosure/index.js +2 -2
  85. package/nav-item/index.cjs +2 -2
  86. package/nav-item/index.js +2 -2
  87. package/note/index.cjs +2 -2
  88. package/note/index.js +2 -2
  89. package/number-field/index.cjs +5 -4
  90. package/number-field/index.js +5 -4
  91. package/option/index.cjs +2 -2
  92. package/option/index.js +2 -2
  93. package/package.json +1 -1
  94. package/pagination/index.cjs +3 -3
  95. package/pagination/index.js +3 -3
  96. package/popup/index.cjs +4 -4
  97. package/popup/index.js +4 -4
  98. package/progress/index.cjs +1 -1
  99. package/progress/index.js +1 -1
  100. package/progress-ring/index.cjs +1 -1
  101. package/progress-ring/index.js +1 -1
  102. package/radio/index.cjs +1 -1
  103. package/radio/index.js +1 -1
  104. package/radio-group/index.cjs +1 -1
  105. package/radio-group/index.js +1 -1
  106. package/range-slider/index.cjs +2 -2
  107. package/range-slider/index.js +2 -2
  108. package/select/index.cjs +7 -6
  109. package/select/index.js +7 -6
  110. package/selectable-box/index.cjs +5 -4
  111. package/selectable-box/index.js +5 -4
  112. package/shared/applyMixinsWithObservables.cjs +15 -0
  113. package/shared/applyMixinsWithObservables.js +13 -0
  114. package/shared/definition.cjs +1 -1
  115. package/shared/definition.js +1 -1
  116. package/shared/definition11.cjs +3 -3
  117. package/shared/definition11.js +3 -3
  118. package/shared/definition14.cjs +2 -2
  119. package/shared/definition14.js +2 -2
  120. package/shared/definition15.cjs +8 -9
  121. package/shared/definition15.js +8 -9
  122. package/shared/definition16.cjs +3 -3
  123. package/shared/definition16.js +3 -3
  124. package/shared/definition17.cjs +2 -2
  125. package/shared/definition17.js +3 -3
  126. package/shared/definition18.cjs +3 -3
  127. package/shared/definition18.js +3 -3
  128. package/shared/definition19.cjs +3 -3
  129. package/shared/definition19.js +3 -3
  130. package/shared/definition20.cjs +186 -227
  131. package/shared/definition20.js +181 -222
  132. package/shared/definition21.cjs +264 -67
  133. package/shared/definition21.js +263 -65
  134. package/shared/definition22.cjs +66 -57
  135. package/shared/definition22.js +64 -56
  136. package/shared/definition23.cjs +42 -76
  137. package/shared/definition23.js +41 -75
  138. package/shared/definition24.cjs +70 -2402
  139. package/shared/definition24.js +69 -2401
  140. package/shared/definition25.cjs +2402 -46
  141. package/shared/definition25.js +2401 -45
  142. package/shared/definition26.cjs +63 -30
  143. package/shared/definition26.js +62 -29
  144. package/shared/definition27.cjs +28 -56
  145. package/shared/definition27.js +27 -55
  146. package/shared/definition28.cjs +35 -881
  147. package/shared/definition28.js +34 -879
  148. package/shared/definition29.cjs +893 -60
  149. package/shared/definition29.js +893 -61
  150. package/shared/definition30.cjs +68 -86
  151. package/shared/definition30.js +67 -85
  152. package/shared/definition31.cjs +86 -21
  153. package/shared/definition31.js +86 -21
  154. package/shared/definition32.cjs +24 -12
  155. package/shared/definition32.js +23 -11
  156. package/shared/definition33.cjs +11 -50
  157. package/shared/definition33.js +10 -49
  158. package/shared/definition34.cjs +26 -515
  159. package/shared/definition34.js +26 -515
  160. package/shared/definition35.cjs +448 -194
  161. package/shared/definition35.js +448 -192
  162. package/shared/definition36.cjs +256 -202
  163. package/shared/definition36.js +253 -201
  164. package/shared/definition37.cjs +204 -65
  165. package/shared/definition37.js +203 -63
  166. package/shared/definition38.cjs +63 -57
  167. package/shared/definition38.js +60 -55
  168. package/shared/definition39.cjs +65 -432
  169. package/shared/definition39.js +64 -431
  170. package/shared/definition4.cjs +2 -2
  171. package/shared/definition4.js +2 -2
  172. package/shared/definition40.cjs +441 -34
  173. package/shared/definition40.js +438 -31
  174. package/shared/definition41.cjs +34 -576
  175. package/shared/definition41.js +33 -575
  176. package/shared/definition42.cjs +531 -654
  177. package/shared/definition42.js +531 -654
  178. package/shared/definition43.cjs +690 -114
  179. package/shared/definition43.js +689 -113
  180. package/shared/definition44.cjs +124 -79
  181. package/shared/definition44.js +122 -77
  182. package/shared/definition45.cjs +78 -520
  183. package/shared/definition45.js +77 -518
  184. package/shared/definition46.cjs +520 -119
  185. package/shared/definition46.js +518 -118
  186. package/shared/definition47.cjs +118 -135
  187. package/shared/definition47.js +117 -134
  188. package/shared/definition48.cjs +151 -19
  189. package/shared/definition48.js +150 -18
  190. package/shared/definition49.cjs +21 -84
  191. package/shared/definition49.js +20 -83
  192. package/shared/definition5.cjs +1 -1
  193. package/shared/definition5.js +1 -1
  194. package/shared/definition50.cjs +52 -505
  195. package/shared/definition50.js +51 -504
  196. package/shared/definition51.cjs +526 -28
  197. package/shared/definition51.js +525 -27
  198. package/shared/definition52.cjs +28 -123
  199. package/shared/definition52.js +26 -122
  200. package/shared/definition53.cjs +110 -309
  201. package/shared/definition53.js +110 -308
  202. package/shared/definition54.cjs +255 -271
  203. package/shared/definition54.js +255 -271
  204. package/shared/definition55.cjs +262 -791
  205. package/shared/definition55.js +261 -790
  206. package/shared/definition56.cjs +818 -107
  207. package/shared/definition56.js +817 -106
  208. package/shared/definition57.cjs +85 -55
  209. package/shared/definition57.js +84 -54
  210. package/shared/definition58.cjs +125 -72
  211. package/shared/definition58.js +124 -71
  212. package/shared/definition59.cjs +72 -285
  213. package/shared/definition59.js +73 -286
  214. package/shared/definition6.cjs +1 -1
  215. package/shared/definition6.js +1 -1
  216. package/shared/definition60.cjs +298 -39
  217. package/shared/definition60.js +297 -38
  218. package/shared/definition61.cjs +65739 -1688
  219. package/shared/definition61.js +65738 -1687
  220. package/shared/definition62.cjs +50 -0
  221. package/shared/definition62.js +46 -0
  222. package/shared/definition63.cjs +1828 -0
  223. package/shared/definition63.js +1824 -0
  224. package/shared/definition7.cjs +2 -2
  225. package/shared/definition7.js +2 -2
  226. package/shared/definition8.cjs +2 -2
  227. package/shared/definition8.js +2 -2
  228. package/shared/definition9.cjs +1 -1
  229. package/shared/definition9.js +1 -1
  230. package/shared/enums.cjs +8 -0
  231. package/shared/enums.js +8 -1
  232. package/shared/index2.cjs +66 -37
  233. package/shared/index2.js +66 -37
  234. package/shared/key-codes2.js +1 -1
  235. package/shared/listbox.cjs +1 -1
  236. package/shared/listbox.js +1 -1
  237. package/shared/localization/Locale.d.ts +4 -0
  238. package/shared/patterns/form-elements/form-elements.d.ts +2 -3
  239. package/shared/presentationDate.cjs +16 -5
  240. package/shared/presentationDate.js +16 -5
  241. package/shared/text-anchor.cjs +6 -0
  242. package/shared/text-anchor.js +6 -0
  243. package/shared/text-anchor.template.cjs +6 -1
  244. package/shared/text-anchor.template.js +6 -1
  245. package/shared/text-field.cjs +1 -1
  246. package/shared/text-field.js +1 -1
  247. package/shared/utils/applyMixinsWithObservables.d.ts +1 -0
  248. package/side-drawer/index.cjs +1 -1
  249. package/side-drawer/index.js +1 -1
  250. package/slider/index.cjs +1 -1
  251. package/slider/index.js +1 -1
  252. package/split-button/index.cjs +2 -2
  253. package/split-button/index.js +2 -2
  254. package/style.css +1 -0
  255. package/styles/core/all.css +1 -1
  256. package/styles/core/theme.css +1 -1
  257. package/styles/core/typography.css +1 -1
  258. package/styles/tokens/theme-dark.css +4 -4
  259. package/styles/tokens/theme-light.css +4 -4
  260. package/styles/tokens/vivid-2-compat.css +1 -1
  261. package/switch/index.cjs +2 -2
  262. package/switch/index.js +2 -2
  263. package/tab/index.cjs +2 -2
  264. package/tab/index.js +2 -2
  265. package/tab-panel/index.cjs +1 -1
  266. package/tab-panel/index.js +1 -1
  267. package/tabs/index.cjs +4 -4
  268. package/tabs/index.js +4 -4
  269. package/tag/index.cjs +2 -2
  270. package/tag/index.js +2 -2
  271. package/tag-group/index.cjs +1 -1
  272. package/tag-group/index.js +1 -1
  273. package/text-area/index.cjs +4 -3
  274. package/text-area/index.js +4 -3
  275. package/text-field/index.cjs +4 -3
  276. package/text-field/index.js +4 -3
  277. package/time-picker/index.cjs +8 -7
  278. package/time-picker/index.js +8 -7
  279. package/toggletip/index.cjs +5 -5
  280. package/toggletip/index.js +5 -5
  281. package/tooltip/index.cjs +5 -5
  282. package/tooltip/index.js +5 -5
  283. package/tree-item/index.cjs +2 -2
  284. package/tree-item/index.js +2 -2
  285. package/tree-view/index.cjs +1 -1
  286. package/tree-view/index.js +1 -1
  287. package/video-player/index.cjs +17 -0
  288. package/video-player/index.js +15 -0
  289. package/vivid.api.json +311 -0
@@ -1,194 +1,11 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, n as nullableNumberConverter, o as observable, h as html, r as registerFactory } from './index.js';
2
- import { a as iconRegistries } from './definition26.js';
3
- import './affix.js';
4
- import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './index2.js';
5
- import { R as Reflector } from './Reflector.js';
6
- import { D as DelegatesARIATextbox } from './text-field2.js';
1
+ import { a as attr, F as FoundationElement, h as html, r as registerFactory } from './index.js';
2
+ import { a as iconRegistries } from './definition27.js';
3
+ import { A as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
7
4
  import { a as applyMixins } from './apply-mixins.js';
8
- import { F as FormAssociated } from './form-associated.js';
5
+ import { I as Icon } from './icon.js';
9
6
  import { w as when } from './when.js';
10
- import { r as ref } from './ref.js';
11
7
  import { c as classNames } from './class-names.js';
12
8
 
13
- class _TextArea extends FoundationElement {
14
- }
15
- /**
16
- * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
17
- *
18
- * @internal
19
- */
20
- class FormAssociatedTextArea extends FormAssociated(_TextArea) {
21
- constructor() {
22
- super(...arguments);
23
- this.proxy = document.createElement("textarea");
24
- }
25
- }
26
-
27
- /**
28
- * Resize mode for a TextArea
29
- * @public
30
- */
31
- const TextAreaResize = {
32
- /**
33
- * No resize.
34
- */
35
- none: "none",
36
- /**
37
- * Resize vertically and horizontally.
38
- */
39
- both: "both",
40
- /**
41
- * Resize horizontally.
42
- */
43
- horizontal: "horizontal",
44
- /**
45
- * Resize vertically.
46
- */
47
- vertical: "vertical",
48
- };
49
-
50
- /**
51
- * A Text Area Custom HTML Element.
52
- * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | <textarea> element }.
53
- *
54
- * @slot - The default slot for the label
55
- * @csspart label - The label
56
- * @csspart root - The element wrapping the control
57
- * @csspart control - The textarea element
58
- * @fires change - Emits a custom 'change' event when the textarea emits a change event
59
- *
60
- * @public
61
- */
62
- let TextArea$1 = class TextArea extends FormAssociatedTextArea {
63
- constructor() {
64
- super(...arguments);
65
- /**
66
- * The resize mode of the element.
67
- * @public
68
- * @remarks
69
- * HTML Attribute: resize
70
- */
71
- this.resize = TextAreaResize.none;
72
- /**
73
- * Sizes the element horizontally by a number of character columns.
74
- *
75
- * @public
76
- * @remarks
77
- * HTML Attribute: cols
78
- */
79
- this.cols = 20;
80
- /**
81
- * @internal
82
- */
83
- this.handleTextInput = () => {
84
- this.value = this.control.value;
85
- };
86
- }
87
- readOnlyChanged() {
88
- if (this.proxy instanceof HTMLTextAreaElement) {
89
- this.proxy.readOnly = this.readOnly;
90
- }
91
- }
92
- autofocusChanged() {
93
- if (this.proxy instanceof HTMLTextAreaElement) {
94
- this.proxy.autofocus = this.autofocus;
95
- }
96
- }
97
- listChanged() {
98
- if (this.proxy instanceof HTMLTextAreaElement) {
99
- this.proxy.setAttribute("list", this.list);
100
- }
101
- }
102
- maxlengthChanged() {
103
- if (this.proxy instanceof HTMLTextAreaElement) {
104
- this.proxy.maxLength = this.maxlength;
105
- }
106
- }
107
- minlengthChanged() {
108
- if (this.proxy instanceof HTMLTextAreaElement) {
109
- this.proxy.minLength = this.minlength;
110
- }
111
- }
112
- spellcheckChanged() {
113
- if (this.proxy instanceof HTMLTextAreaElement) {
114
- this.proxy.spellcheck = this.spellcheck;
115
- }
116
- }
117
- /**
118
- * Selects all the text in the text area
119
- *
120
- * @public
121
- */
122
- select() {
123
- this.control.select();
124
- /**
125
- * The select event does not permeate the shadow DOM boundary.
126
- * This fn effectively proxies the select event,
127
- * emitting a `select` event whenever the internal
128
- * control emits a `select` event
129
- */
130
- this.$emit("select");
131
- }
132
- /**
133
- * Change event handler for inner control.
134
- * @remarks
135
- * "Change" events are not `composable` so they will not
136
- * permeate the shadow DOM boundary. This fn effectively proxies
137
- * the change event, emitting a `change` event whenever the internal
138
- * control emits a `change` event
139
- * @internal
140
- */
141
- handleChange() {
142
- this.$emit("change");
143
- }
144
- /** {@inheritDoc (FormAssociated:interface).validate} */
145
- validate() {
146
- super.validate(this.control);
147
- }
148
- };
149
- __decorate([
150
- attr({ mode: "boolean" })
151
- ], TextArea$1.prototype, "readOnly", void 0);
152
- __decorate([
153
- attr
154
- ], TextArea$1.prototype, "resize", void 0);
155
- __decorate([
156
- attr({ mode: "boolean" })
157
- ], TextArea$1.prototype, "autofocus", void 0);
158
- __decorate([
159
- attr({ attribute: "form" })
160
- ], TextArea$1.prototype, "formId", void 0);
161
- __decorate([
162
- attr
163
- ], TextArea$1.prototype, "list", void 0);
164
- __decorate([
165
- attr({ converter: nullableNumberConverter })
166
- ], TextArea$1.prototype, "maxlength", void 0);
167
- __decorate([
168
- attr({ converter: nullableNumberConverter })
169
- ], TextArea$1.prototype, "minlength", void 0);
170
- __decorate([
171
- attr
172
- ], TextArea$1.prototype, "name", void 0);
173
- __decorate([
174
- attr
175
- ], TextArea$1.prototype, "placeholder", void 0);
176
- __decorate([
177
- attr({ converter: nullableNumberConverter, mode: "fromView" })
178
- ], TextArea$1.prototype, "cols", void 0);
179
- __decorate([
180
- attr({ converter: nullableNumberConverter, mode: "fromView" })
181
- ], TextArea$1.prototype, "rows", void 0);
182
- __decorate([
183
- attr({ mode: "boolean" })
184
- ], TextArea$1.prototype, "spellcheck", void 0);
185
- __decorate([
186
- observable
187
- ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
188
- applyMixins(TextArea$1, DelegatesARIATextbox);
189
-
190
- const styles = ":host{display:inline-block}.base{display:inline-grid;grid-template-columns:1fr max-content;inline-size:100%;row-gap:4px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-primary);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-primary);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base.connotation-success{--_connotation-color-primary: var(--vvd-text-area-success-primary, var(--vvd-color-success-500));--_connotation-color-primary-text: var(--vvd-text-area-success-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-text-area-success-primary-increment, var(--vvd-color-success-600));--_connotation-color-intermediate: var(--vvd-text-area-success-intermediate, var(--vvd-color-success-500));--_connotation-color-firm: var(--vvd-text-area-success-firm, var(--vvd-color-success-600));--_connotation-color-fierce: var(--vvd-text-area-success-fierce, var(--vvd-color-success-700));--_connotation-color-faint: var(--vvd-text-area-success-faint, var(--vvd-color-success-50));--_connotation-color-soft: var(--vvd-text-area-success-soft, var(--vvd-color-success-100))}.base.connotation-alert{--_connotation-color-primary: var(--vvd-text-area-alert-primary, var(--vvd-color-alert-500));--_connotation-color-primary-text: var(--vvd-text-area-alert-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-text-area-alert-primary-increment, var(--vvd-color-alert-600));--_connotation-color-intermediate: var(--vvd-text-area-alert-intermediate, var(--vvd-color-alert-500));--_connotation-color-firm: var(--vvd-text-area-alert-firm, var(--vvd-color-alert-600));--_connotation-color-fierce: var(--vvd-text-area-alert-fierce, var(--vvd-color-alert-700));--_connotation-color-faint: var(--vvd-text-area-alert-faint, var(--vvd-color-alert-50));--_connotation-color-soft: var(--vvd-text-area-alert-soft, var(--vvd-color-alert-100))}.base:not(.connotation-success,.connotation-alert){--_connotation-color-primary: var(--vvd-text-area-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-text-area-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-text-area-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-text-area-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-text-area-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-text-area-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-text-area-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-text-area-accent-soft, var(--vvd-color-neutral-100))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){--_low-ink-color: var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color: var(--_appearance-color-text);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);contain:inline-size;font:var(--vvd-typography-base);grid-column:1/2;grid-row:1;line-height:20px}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base);grid-column:2/-1}.control{padding:8px 16px;border:0 none;border-radius:8px;appearance:none;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);grid-column:1/-1;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));resize:none;transition:box-shadow .2s,background-color .2s,color .2s}@supports selector(::-webkit-resizer){.control::-webkit-resizer{background-image:linear-gradient(315deg,transparent 0,transparent 2px,var(--vvd-color-canvas-text) 2px,var(--vvd-color-canvas-text) 3px,transparent 3px,transparent 5px,var(--vvd-color-canvas-text) 5px,var(--vvd-color-canvas-text) 6px,transparent 6px,transparent 8px,transparent 100%);background-repeat:no-repeat;background-size:10px 10px;block-size:10px;inline-size:10px}}.control:disabled{opacity:1;pointer-events:none;-webkit-text-fill-color:var(--_appearance-color-text)}.control::placeholder,.control:disabled::placeholder{opacity:1;pointer-events:none;-webkit-text-fill-color:var(--_low-ink-color)}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}:host([resize=both]) .control{resize:both}:host([resize=horizontal]) .control{resize:horizontal}:host([resize=vertical]) .control{resize:vertical}\n";
191
-
192
9
  var __defProp = Object.defineProperty;
193
10
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
194
11
  var __decorateClass = (decorators, target, key, kind) => {
@@ -200,146 +17,131 @@ var __decorateClass = (decorators, target, key, kind) => {
200
17
  __defProp(target, key, result);
201
18
  return result;
202
19
  };
203
- var __accessCheck = (obj, member, msg) => {
204
- if (!member.has(obj))
205
- throw TypeError("Cannot " + msg);
206
- };
207
- var __privateGet = (obj, member, getter) => {
208
- __accessCheck(obj, member, "read from private field");
209
- return getter ? getter.call(obj) : member.get(obj);
210
- };
211
- var __privateAdd = (obj, member, value) => {
212
- if (member.has(obj))
213
- throw TypeError("Cannot add the same private member more than once");
214
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
215
- };
216
- var __privateSet = (obj, member, value, setter) => {
217
- __accessCheck(obj, member, "write to private field");
218
- setter ? setter.call(obj, value) : member.set(obj, value);
219
- return value;
220
- };
221
- var _reflectToTextArea;
222
- let TextArea = class extends TextArea$1 {
20
+ class Tag extends FoundationElement {
223
21
  constructor() {
224
22
  super(...arguments);
225
- __privateAdd(this, _reflectToTextArea, void 0);
23
+ this.removable = false;
24
+ this.disabled = false;
25
+ this.selectable = false;
26
+ this.selected = false;
27
+ this.#select = () => {
28
+ if (!this.selectable || this.disabled) {
29
+ return;
30
+ }
31
+ this.selected = !this.selected;
32
+ this.$emit("selected-change");
33
+ };
226
34
  }
227
- connectedCallback() {
228
- super.connectedCallback();
229
- __privateSet(this, _reflectToTextArea, new Reflector(this, this.control));
230
- __privateGet(this, _reflectToTextArea).property("value", "value", true);
35
+ remove() {
36
+ if (!this.removable || this.selectable) {
37
+ return;
38
+ }
39
+ this.$emit("removed");
40
+ this.parentElement && this.parentElement.removeChild(this);
41
+ }
42
+ #select;
43
+ handleKeydown(e) {
44
+ if (e.key === "Enter") {
45
+ this.#select();
46
+ }
47
+ if (e.key === "Delete" || e.key === "Backspace") {
48
+ this.remove();
49
+ }
50
+ return true;
231
51
  }
232
- disconnectedCallback() {
233
- super.disconnectedCallback();
234
- __privateGet(this, _reflectToTextArea).destroy();
52
+ handleClick() {
53
+ this.#select();
235
54
  }
236
- };
237
- _reflectToTextArea = new WeakMap();
55
+ }
238
56
  __decorateClass([
239
57
  attr
240
- ], TextArea.prototype, "wrap", 2);
241
- TextArea = __decorateClass([
242
- errorText,
243
- formElements
244
- ], TextArea);
245
- applyMixins(
246
- TextArea,
247
- FormElementCharCount,
248
- FormElementHelperText,
249
- FormElementSuccessText
250
- );
58
+ ], Tag.prototype, "connotation", 2);
59
+ __decorateClass([
60
+ attr
61
+ ], Tag.prototype, "shape", 2);
62
+ __decorateClass([
63
+ attr
64
+ ], Tag.prototype, "appearance", 2);
65
+ __decorateClass([
66
+ attr
67
+ ], Tag.prototype, "label", 2);
68
+ __decorateClass([
69
+ attr({ mode: "boolean" })
70
+ ], Tag.prototype, "removable", 2);
71
+ __decorateClass([
72
+ attr({ mode: "boolean" })
73
+ ], Tag.prototype, "disabled", 2);
74
+ __decorateClass([
75
+ attr({ mode: "boolean" })
76
+ ], Tag.prototype, "selectable", 2);
77
+ __decorateClass([
78
+ attr({ mode: "boolean" })
79
+ ], Tag.prototype, "selected", 2);
80
+ applyMixins(Tag, AffixIcon);
81
+
82
+ const styles = ".base{--tag-block-size:calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2)));position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;vertical-align:middle}.base.connotation-cta{--_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm-all: var(--vvd-tag-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));--_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm-all: var(--vvd-tag-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled).appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{display:flex;align-items:center;border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer}\n";
251
83
 
252
84
  const getClasses = ({
253
- value,
254
- errorValidationMessage,
85
+ connotation,
86
+ appearance,
87
+ shape,
255
88
  disabled,
256
- placeholder,
257
- readOnly,
258
- successText
89
+ selectable,
90
+ removable,
91
+ selected
259
92
  }) => classNames(
260
93
  "base",
261
- ["readonly", readOnly],
262
- ["placeholder", Boolean(placeholder)],
263
94
  ["disabled", disabled],
264
- ["error", Boolean(errorValidationMessage)],
265
- ["has-value", Boolean(value)],
266
- ["success", !!successText]
95
+ ["selectable", selectable],
96
+ ["selected", selectable && selected],
97
+ ["removable", removable && !selectable],
98
+ [`connotation-${connotation}`, Boolean(connotation)],
99
+ [`appearance-${appearance}`, Boolean(appearance)],
100
+ [`shape-${shape}`, Boolean(shape)]
267
101
  );
268
- function renderLabel() {
269
- return html` <label for="control" class="label">
270
- ${(x) => x.label}
271
- </label>`;
272
- }
273
- function renderCharCount() {
102
+ function renderDismissButton(iconTag) {
274
103
  return html`
275
- <span class="char-count"
276
- >${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span
277
- >
278
- `;
104
+ <span
105
+ aria-hidden="true"
106
+ class="dismiss-button"
107
+ @click="${(x) => x.remove()}">
108
+ <${iconTag} name="close-line"></${iconTag}>
109
+ </span>`;
279
110
  }
280
- const TextAreaTemplate = (context) => {
281
- return html`
282
- <div class="${getClasses}">
283
- ${when((x) => x.charCount && x.maxlength, renderCharCount())}
284
- ${when((x) => x.label, renderLabel())}
285
- <textarea
286
- class="control"
287
- id="control"
288
- ?autofocus="${(x) => x.autofocus}"
289
- placeholder="${(x) => x.placeholder ? x.placeholder : null}"
290
- name="${(x) => x.name ? x.name : null}"
291
- minlength="${(x) => x.minlength ? x.minlength : null}"
292
- maxlength="${(x) => x.maxlength ? x.maxlength : null}"
293
- rows="${(x) => x.rows ? x.rows : null}"
294
- cols="${(x) => x.cols ? x.cols : null}"
295
- wrap="${(x) => x.wrap ? x.wrap : null}"
296
- ?readonly="${(x) => x.readOnly}"
297
- ?disabled="${(x) => x.disabled}"
298
- ?required="${(x) => x.required}"
299
- ?spellcheck="${(x) => x.spellcheck}"
300
- aria-atomic="${(x) => x.ariaAtomic}"
301
- aria-busy="${(x) => x.ariaBusy}"
302
- aria-current="${(x) => x.ariaCurrent}"
303
- aria-details="${(x) => x.ariaDetails}"
304
- aria-disabled="${(x) => x.ariaDisabled}"
305
- aria-errormessage="${(x) => x.ariaErrormessage}"
306
- aria-haspopup="${(x) => x.ariaHaspopup}"
307
- aria-hidden="${(x) => x.ariaHidden}"
308
- aria-invalid="${(x) => x.ariaInvalid}"
309
- aria-keyshortcuts="${(x) => x.ariaKeyshortcuts}"
310
- aria-label="${(x) => x.ariaLabel}"
311
- aria-live="${(x) => x.ariaLive}"
312
- aria-relevant="${(x) => x.ariaRelevant}"
313
- aria-roledescription="${(x) => x.ariaRoledescription}"
314
- @input="${(x) => x.handleTextInput()}"
315
- @change="${(x) => x.handleChange()}"
316
- ${ref("control")}
317
- >
318
- </textarea>
319
- ${when(
320
- (x) => !x.successText && !x.errorValidationMessage && x.helperText?.length,
321
- getFeedbackTemplate("helper", context)
111
+ const tagTemplate = (context) => {
112
+ const affixIconTemplate = affixIconTemplateFactory(context);
113
+ const iconTag = context.tagFor(Icon);
114
+ return html` <span
115
+ class="${getClasses}"
116
+ role="option"
117
+ aria-disabled="${(x) => x.disabled}"
118
+ aria-selected="${(x) => x.selectable}"
119
+ tabindex="${(x) => x.disabled ? null : 0}"
120
+ @keydown="${(x, c) => x.handleKeydown(c.event)}"
121
+ @click="${(x) => x.handleClick()}"
122
+ >
123
+ ${(x) => affixIconTemplate(x.icon, IconWrapper.Slot)}
124
+ ${when(
125
+ (x) => x.label,
126
+ (x) => html`<span class="label">${x.label}</span>`
322
127
  )}
323
- ${when(
324
- (x) => !x.successText && x.errorValidationMessage,
325
- getFeedbackTemplate("error", context)
128
+ ${when((x) => x.removable && !x.selectable, renderDismissButton(iconTag))}
129
+ ${when(
130
+ (x) => x.selectable && x.selected,
131
+ html`<${iconTag} class="selectable-icon" name="check-circle-solid"></${iconTag}>`
326
132
  )}
327
- ${when((x) => x.successText, getFeedbackTemplate("success", context))}
328
- </div>
329
- `;
133
+ </span>`;
330
134
  };
331
135
 
332
- const textAreaDefinition = TextArea.compose(
333
- {
334
- baseName: "text-area",
335
- template: TextAreaTemplate,
336
- styles,
337
- shadowOptions: {
338
- delegatesFocus: true
339
- }
136
+ const tagDefinition = Tag.compose({
137
+ baseName: "tag",
138
+ template: tagTemplate,
139
+ styles,
140
+ shadowOptions: {
141
+ delegatesFocus: true
340
142
  }
341
- );
342
- const textAreaRegistries = [textAreaDefinition(), ...iconRegistries];
343
- const registerTextArea = registerFactory(textAreaRegistries);
143
+ });
144
+ const tagRegistries = [tagDefinition(), ...iconRegistries];
145
+ const registerTag = registerFactory(tagRegistries);
344
146
 
345
- export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };
147
+ export { registerTag as r, tagDefinition as t };