@vonage/vivid 4.4.0 → 4.6.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 (235) hide show
  1. package/custom-elements.json +7181 -6876
  2. package/elevation/index.cjs +1 -1
  3. package/elevation/index.js +1 -1
  4. package/index.cjs +80 -74
  5. package/index.js +23 -22
  6. package/lib/components.d.ts +1 -0
  7. package/lib/fab/fab.d.ts +1 -1
  8. package/lib/icon/icon.d.ts +1 -1
  9. package/lib/menu/menu.d.ts +2 -1
  10. package/lib/number-field/number-field.d.ts +3 -1
  11. package/lib/searchable-select/definition.d.ts +4 -0
  12. package/lib/searchable-select/locale.d.ts +6 -0
  13. package/lib/searchable-select/option-tag.d.ts +14 -0
  14. package/lib/searchable-select/option-tag.template.d.ts +4 -0
  15. package/lib/searchable-select/searchable-select.d.ts +29 -0
  16. package/lib/searchable-select/searchable-select.form-associated.d.ts +10 -0
  17. package/lib/searchable-select/searchable-select.template.d.ts +4 -0
  18. package/lib/select/select.d.ts +4 -1
  19. package/lib/tab/locale.d.ts +3 -0
  20. package/lib/tab/tab.d.ts +5 -1
  21. package/lib/tabs/tabs.d.ts +2 -0
  22. package/lib/tag/definition.d.ts +1 -0
  23. package/lib/text-field/text-field.d.ts +3 -1
  24. package/lib/video-player/video-player.d.ts +0 -1
  25. package/listbox/index.cjs +1 -1
  26. package/listbox/index.js +1 -1
  27. package/locales/de-DE.cjs +12 -0
  28. package/locales/de-DE.js +12 -0
  29. package/locales/en-GB.cjs +12 -0
  30. package/locales/en-GB.js +12 -0
  31. package/locales/en-US.cjs +12 -0
  32. package/locales/en-US.js +12 -0
  33. package/locales/ja-JP.cjs +12 -0
  34. package/locales/ja-JP.js +12 -0
  35. package/locales/zh-CN.cjs +12 -0
  36. package/locales/zh-CN.js +12 -0
  37. package/package.json +6 -1
  38. package/popup/index.cjs +1 -1
  39. package/popup/index.js +1 -1
  40. package/searchable-select/index.cjs +5 -0
  41. package/searchable-select/index.js +3 -0
  42. package/select/index.cjs +1 -1
  43. package/select/index.js +1 -1
  44. package/selectable-box/index.cjs +1 -1
  45. package/selectable-box/index.js +1 -1
  46. package/shared/anchored.js +1 -1
  47. package/shared/calendar-event.js +1 -1
  48. package/shared/definition.cjs +2 -2
  49. package/shared/definition.js +2 -2
  50. package/shared/definition11.cjs +1 -1
  51. package/shared/definition11.js +1 -1
  52. package/shared/definition12.cjs +1 -1
  53. package/shared/definition12.js +1 -1
  54. package/shared/definition13.js +1 -1
  55. package/shared/definition14.cjs +1 -1
  56. package/shared/definition14.js +1 -1
  57. package/shared/definition15.cjs +7 -8
  58. package/shared/definition15.js +2 -3
  59. package/shared/definition16.cjs +11 -7
  60. package/shared/definition16.js +10 -6
  61. package/shared/definition17.cjs +2 -2
  62. package/shared/definition17.js +2 -2
  63. package/shared/definition18.cjs +5 -6
  64. package/shared/definition18.js +3 -4
  65. package/shared/definition19.cjs +5 -6
  66. package/shared/definition19.js +3 -4
  67. package/shared/definition20.cjs +16 -38
  68. package/shared/definition20.js +17 -39
  69. package/shared/definition21.cjs +7 -6
  70. package/shared/definition21.js +8 -7
  71. package/shared/definition23.cjs +1 -1
  72. package/shared/definition23.js +2 -2
  73. package/shared/definition24.cjs +2 -2
  74. package/shared/definition24.js +2 -2
  75. package/shared/definition25.cjs +6 -7
  76. package/shared/definition25.js +2 -3
  77. package/shared/definition26.cjs +1 -1
  78. package/shared/definition26.js +2 -2
  79. package/shared/definition27.cjs +1 -1
  80. package/shared/definition27.js +1 -1
  81. package/shared/definition28.js +1 -1
  82. package/shared/definition29.cjs +8 -4
  83. package/shared/definition29.js +8 -4
  84. package/shared/definition3.cjs +1 -1
  85. package/shared/definition3.js +2 -2
  86. package/shared/definition30.cjs +4 -2
  87. package/shared/definition30.js +4 -2
  88. package/shared/definition31.cjs +1 -1
  89. package/shared/definition31.js +2 -2
  90. package/shared/definition32.cjs +1 -1
  91. package/shared/definition32.js +1 -1
  92. package/shared/definition34.cjs +2 -3
  93. package/shared/definition34.js +2 -3
  94. package/shared/definition35.cjs +21 -16
  95. package/shared/definition35.js +16 -11
  96. package/shared/definition36.cjs +50 -207
  97. package/shared/definition36.js +51 -207
  98. package/shared/definition37.js +1 -1
  99. package/shared/definition38.cjs +1 -1
  100. package/shared/definition38.js +1 -1
  101. package/shared/definition4.cjs +6 -4
  102. package/shared/definition4.js +7 -5
  103. package/shared/definition41.cjs +1 -1
  104. package/shared/definition41.js +1 -1
  105. package/shared/definition42.cjs +6 -7
  106. package/shared/definition42.js +6 -7
  107. package/shared/definition43.cjs +998 -643
  108. package/shared/definition43.js +992 -638
  109. package/shared/definition44.cjs +723 -112
  110. package/shared/definition44.js +722 -111
  111. package/shared/definition45.cjs +121 -79
  112. package/shared/definition45.js +120 -78
  113. package/shared/definition46.cjs +81 -616
  114. package/shared/definition46.js +80 -614
  115. package/shared/definition47.cjs +609 -116
  116. package/shared/definition47.js +607 -115
  117. package/shared/definition48.cjs +116 -134
  118. package/shared/definition48.js +115 -133
  119. package/shared/definition49.cjs +149 -19
  120. package/shared/definition49.js +148 -18
  121. package/shared/definition5.cjs +5 -6
  122. package/shared/definition5.js +5 -6
  123. package/shared/definition50.cjs +21 -82
  124. package/shared/definition50.js +20 -81
  125. package/shared/definition51.cjs +78 -494
  126. package/shared/definition51.js +77 -493
  127. package/shared/definition52.cjs +568 -28
  128. package/shared/definition52.js +567 -27
  129. package/shared/definition53.cjs +28 -123
  130. package/shared/definition53.js +27 -123
  131. package/shared/definition54.cjs +115 -296
  132. package/shared/definition54.js +114 -295
  133. package/shared/definition55.cjs +258 -318
  134. package/shared/definition55.js +252 -312
  135. package/shared/definition56.cjs +303 -784
  136. package/shared/definition56.js +298 -779
  137. package/shared/definition57.cjs +802 -95
  138. package/shared/definition57.js +801 -94
  139. package/shared/definition58.cjs +95 -60
  140. package/shared/definition58.js +94 -59
  141. package/shared/definition59.cjs +117 -75
  142. package/shared/definition59.js +116 -74
  143. package/shared/definition6.cjs +1 -1
  144. package/shared/definition6.js +1 -1
  145. package/shared/definition60.cjs +70 -285
  146. package/shared/definition60.js +71 -286
  147. package/shared/definition61.cjs +296 -325
  148. package/shared/definition61.js +295 -324
  149. package/shared/definition62.cjs +66160 -27
  150. package/shared/definition62.js +66159 -26
  151. package/shared/definition63.cjs +24 -1952
  152. package/shared/definition63.js +23 -1950
  153. package/shared/definition64.cjs +1976 -0
  154. package/shared/definition64.js +1971 -0
  155. package/shared/definition7.cjs +1 -1
  156. package/shared/definition7.js +1 -1
  157. package/shared/definition8.cjs +2 -3
  158. package/shared/definition8.js +3 -4
  159. package/shared/definition9.cjs +1 -1
  160. package/shared/definition9.js +1 -1
  161. package/shared/dialog/index.d.ts +1 -0
  162. package/shared/form-elements.cjs +236 -0
  163. package/shared/form-elements.js +229 -0
  164. package/shared/icon.js +1 -1
  165. package/shared/index2.cjs +6 -256
  166. package/shared/index2.js +6 -249
  167. package/shared/listbox-option.cjs +204 -0
  168. package/shared/listbox-option.js +201 -0
  169. package/shared/listbox.cjs +3 -3
  170. package/shared/listbox.js +1 -1
  171. package/shared/localization/Locale.d.ts +4 -0
  172. package/shared/localized.cjs +26 -2
  173. package/shared/localized.js +25 -2
  174. package/shared/playbackRates.cjs +13 -0
  175. package/shared/playbackRates.js +11 -0
  176. package/shared/presentationDate.cjs +11 -11
  177. package/shared/presentationDate.js +11 -11
  178. package/shared/scrollIntoView.cjs +51 -0
  179. package/shared/scrollIntoView.js +49 -0
  180. package/shared/slider.template.cjs +1 -1
  181. package/shared/slider.template.js +1 -1
  182. package/shared/text-anchor.cjs +1 -1
  183. package/shared/text-anchor.js +1 -1
  184. package/shared/text-field.cjs +1 -1
  185. package/shared/text-field.js +1 -1
  186. package/shared/utils/playbackRates.d.ts +1 -0
  187. package/shared/utils/scrollIntoView.d.ts +1 -0
  188. package/side-drawer/index.cjs +1 -1
  189. package/side-drawer/index.js +1 -1
  190. package/slider/index.cjs +1 -1
  191. package/slider/index.js +1 -1
  192. package/split-button/index.cjs +1 -1
  193. package/split-button/index.js +1 -1
  194. package/styles/core/all.css +1 -1
  195. package/styles/core/theme.css +1 -1
  196. package/styles/core/typography.css +1 -1
  197. package/styles/tokens/theme-dark.css +4 -4
  198. package/styles/tokens/theme-light.css +4 -4
  199. package/styles/tokens/vivid-2-compat.css +1 -1
  200. package/switch/index.cjs +1 -1
  201. package/switch/index.js +1 -1
  202. package/tab/index.cjs +1 -1
  203. package/tab/index.js +1 -1
  204. package/tab-panel/index.cjs +1 -1
  205. package/tab-panel/index.js +1 -1
  206. package/tabs/index.cjs +1 -1
  207. package/tabs/index.js +1 -1
  208. package/tag/index.cjs +1 -1
  209. package/tag/index.js +1 -1
  210. package/tag-group/index.cjs +1 -1
  211. package/tag-group/index.js +1 -1
  212. package/text-area/index.cjs +1 -1
  213. package/text-area/index.js +1 -1
  214. package/text-field/index.cjs +1 -1
  215. package/text-field/index.js +1 -1
  216. package/time-picker/index.cjs +1 -1
  217. package/time-picker/index.js +1 -1
  218. package/toggletip/index.cjs +1 -1
  219. package/toggletip/index.js +1 -1
  220. package/tooltip/index.cjs +1 -1
  221. package/tooltip/index.js +1 -1
  222. package/tree-item/index.cjs +1 -1
  223. package/tree-item/index.js +1 -1
  224. package/tree-view/index.cjs +1 -1
  225. package/tree-view/index.js +1 -1
  226. package/video-player/index.cjs +1 -1
  227. package/video-player/index.js +1 -1
  228. package/vivid.api.json +312 -8
  229. package/appearance-ui/index.cjs +0 -102
  230. package/appearance-ui/index.js +0 -100
  231. package/lib/appearance-ui/appearance-ui.d.ts +0 -12
  232. package/lib/appearance-ui/appearance-ui.template.d.ts +0 -4
  233. package/lib/appearance-ui/definition.d.ts +0 -3
  234. package/shared/video-player.cjs +0 -65860
  235. package/shared/video-player.js +0 -65857
@@ -2,329 +2,148 @@
2
2
 
3
3
  const index = require('./index.cjs');
4
4
  const definition = require('./definition27.cjs');
5
- require('./affix.cjs');
6
- const index$1 = require('./index2.cjs');
7
- const Reflector = require('./Reflector.cjs');
8
- const applyMixinsWithObservables = require('./applyMixinsWithObservables.cjs');
9
- const textField = require('./text-field2.cjs');
5
+ const affix = require('./affix.cjs');
10
6
  const applyMixins = require('./apply-mixins.cjs');
11
- const formAssociated = require('./form-associated.cjs');
7
+ const icon = require('./icon.cjs');
12
8
  const when = require('./when.cjs');
13
- const ref = require('./ref.cjs');
14
9
  const classNames = require('./class-names.cjs');
15
10
 
16
- class _TextArea extends index.FoundationElement {
17
- }
18
- /**
19
- * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
20
- *
21
- * @internal
22
- */
23
- class FormAssociatedTextArea extends formAssociated.FormAssociated(_TextArea) {
24
- constructor() {
25
- super(...arguments);
26
- this.proxy = document.createElement("textarea");
27
- }
28
- }
29
-
30
- /**
31
- * Resize mode for a TextArea
32
- * @public
33
- */
34
- const TextAreaResize = {
35
- /**
36
- * No resize.
37
- */
38
- none: "none",
39
- /**
40
- * Resize vertically and horizontally.
41
- */
42
- both: "both",
43
- /**
44
- * Resize horizontally.
45
- */
46
- horizontal: "horizontal",
47
- /**
48
- * Resize vertically.
49
- */
50
- vertical: "vertical",
51
- };
52
-
53
- /**
54
- * A Text Area Custom HTML Element.
55
- * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | <textarea> element }.
56
- *
57
- * @slot - The default slot for the label
58
- * @csspart label - The label
59
- * @csspart root - The element wrapping the control
60
- * @csspart control - The textarea element
61
- * @fires change - Emits a custom 'change' event when the textarea emits a change event
62
- *
63
- * @public
64
- */
65
- let TextArea$1 = class TextArea extends FormAssociatedTextArea {
66
- constructor() {
67
- super(...arguments);
68
- /**
69
- * The resize mode of the element.
70
- * @public
71
- * @remarks
72
- * HTML Attribute: resize
73
- */
74
- this.resize = TextAreaResize.none;
75
- /**
76
- * Sizes the element horizontally by a number of character columns.
77
- *
78
- * @public
79
- * @remarks
80
- * HTML Attribute: cols
81
- */
82
- this.cols = 20;
83
- /**
84
- * @internal
85
- */
86
- this.handleTextInput = () => {
87
- this.value = this.control.value;
88
- };
89
- }
90
- readOnlyChanged() {
91
- if (this.proxy instanceof HTMLTextAreaElement) {
92
- this.proxy.readOnly = this.readOnly;
93
- }
94
- }
95
- autofocusChanged() {
96
- if (this.proxy instanceof HTMLTextAreaElement) {
97
- this.proxy.autofocus = this.autofocus;
98
- }
99
- }
100
- listChanged() {
101
- if (this.proxy instanceof HTMLTextAreaElement) {
102
- this.proxy.setAttribute("list", this.list);
103
- }
104
- }
105
- maxlengthChanged() {
106
- if (this.proxy instanceof HTMLTextAreaElement) {
107
- this.proxy.maxLength = this.maxlength;
108
- }
109
- }
110
- minlengthChanged() {
111
- if (this.proxy instanceof HTMLTextAreaElement) {
112
- this.proxy.minLength = this.minlength;
113
- }
114
- }
115
- spellcheckChanged() {
116
- if (this.proxy instanceof HTMLTextAreaElement) {
117
- this.proxy.spellcheck = this.spellcheck;
118
- }
119
- }
120
- /**
121
- * Selects all the text in the text area
122
- *
123
- * @public
124
- */
125
- select() {
126
- this.control.select();
127
- /**
128
- * The select event does not permeate the shadow DOM boundary.
129
- * This fn effectively proxies the select event,
130
- * emitting a `select` event whenever the internal
131
- * control emits a `select` event
132
- */
133
- this.$emit("select");
134
- }
135
- /**
136
- * Change event handler for inner control.
137
- * @remarks
138
- * "Change" events are not `composable` so they will not
139
- * permeate the shadow DOM boundary. This fn effectively proxies
140
- * the change event, emitting a `change` event whenever the internal
141
- * control emits a `change` event
142
- * @internal
143
- */
144
- handleChange() {
145
- this.$emit("change");
146
- }
147
- /** {@inheritDoc (FormAssociated:interface).validate} */
148
- validate() {
149
- super.validate(this.control);
150
- }
151
- };
152
- index.__decorate([
153
- index.attr({ mode: "boolean" })
154
- ], TextArea$1.prototype, "readOnly", void 0);
155
- index.__decorate([
156
- index.attr
157
- ], TextArea$1.prototype, "resize", void 0);
158
- index.__decorate([
159
- index.attr({ mode: "boolean" })
160
- ], TextArea$1.prototype, "autofocus", void 0);
161
- index.__decorate([
162
- index.attr({ attribute: "form" })
163
- ], TextArea$1.prototype, "formId", void 0);
164
- index.__decorate([
165
- index.attr
166
- ], TextArea$1.prototype, "list", void 0);
167
- index.__decorate([
168
- index.attr({ converter: index.nullableNumberConverter })
169
- ], TextArea$1.prototype, "maxlength", void 0);
170
- index.__decorate([
171
- index.attr({ converter: index.nullableNumberConverter })
172
- ], TextArea$1.prototype, "minlength", void 0);
173
- index.__decorate([
174
- index.attr
175
- ], TextArea$1.prototype, "name", void 0);
176
- index.__decorate([
177
- index.attr
178
- ], TextArea$1.prototype, "placeholder", void 0);
179
- index.__decorate([
180
- index.attr({ converter: index.nullableNumberConverter, mode: "fromView" })
181
- ], TextArea$1.prototype, "cols", void 0);
182
- index.__decorate([
183
- index.attr({ converter: index.nullableNumberConverter, mode: "fromView" })
184
- ], TextArea$1.prototype, "rows", void 0);
185
- index.__decorate([
186
- index.attr({ mode: "boolean" })
187
- ], TextArea$1.prototype, "spellcheck", void 0);
188
- index.__decorate([
189
- index.observable
190
- ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
191
- applyMixins.applyMixins(TextArea$1, textField.DelegatesARIATextbox);
192
-
193
- 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-firm);--_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-firm);--_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{box-sizing:border-box;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*(32 + 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}";
194
-
195
11
  var __defProp = Object.defineProperty;
196
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
197
- var __typeError = (msg) => {
198
- throw TypeError(msg);
199
- };
200
12
  var __decorateClass = (decorators, target, key, kind) => {
201
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
13
+ var result = void 0 ;
202
14
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
203
15
  if (decorator = decorators[i])
204
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
205
- if (kind && result) __defProp(target, key, result);
16
+ result = (decorator(target, key, result) ) || result;
17
+ if (result) __defProp(target, key, result);
206
18
  return result;
207
19
  };
208
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
209
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
210
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
211
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
212
- var _reflectToTextArea;
213
- let TextArea = class extends TextArea$1 {
20
+ class Tag extends index.FoundationElement {
214
21
  constructor() {
215
22
  super(...arguments);
216
- __privateAdd(this, _reflectToTextArea);
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
+ };
34
+ }
35
+ remove() {
36
+ if (!this.removable || this.selectable) {
37
+ return;
38
+ }
39
+ this.$emit("removed");
40
+ this.parentElement && this.parentElement.removeChild(this);
217
41
  }
218
- connectedCallback() {
219
- super.connectedCallback();
220
- __privateSet(this, _reflectToTextArea, new Reflector.Reflector(this, this.control));
221
- __privateGet(this, _reflectToTextArea).property("value", "value", true);
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;
222
51
  }
223
- disconnectedCallback() {
224
- super.disconnectedCallback();
225
- __privateGet(this, _reflectToTextArea).destroy();
52
+ handleClick() {
53
+ this.#select();
226
54
  }
227
- };
228
- _reflectToTextArea = new WeakMap();
55
+ }
229
56
  __decorateClass([
230
57
  index.attr
231
- ], TextArea.prototype, "wrap", 2);
232
- TextArea = __decorateClass([
233
- index$1.errorText,
234
- index$1.formElements
235
- ], TextArea);
236
- applyMixinsWithObservables.applyMixinsWithObservables(
237
- TextArea,
238
- index$1.FormElementCharCount,
239
- index$1.FormElementHelperText,
240
- index$1.FormElementSuccessText
241
- );
58
+ ], Tag.prototype, "connotation");
59
+ __decorateClass([
60
+ index.attr
61
+ ], Tag.prototype, "shape");
62
+ __decorateClass([
63
+ index.attr
64
+ ], Tag.prototype, "appearance");
65
+ __decorateClass([
66
+ index.attr
67
+ ], Tag.prototype, "label");
68
+ __decorateClass([
69
+ index.attr({ mode: "boolean" })
70
+ ], Tag.prototype, "removable");
71
+ __decorateClass([
72
+ index.attr({ mode: "boolean" })
73
+ ], Tag.prototype, "disabled");
74
+ __decorateClass([
75
+ index.attr({ mode: "boolean" })
76
+ ], Tag.prototype, "selectable");
77
+ __decorateClass([
78
+ index.attr({ mode: "boolean" })
79
+ ], Tag.prototype, "selected");
80
+ applyMixins.applyMixins(Tag, affix.AffixIcon);
81
+
82
+ const styles = ".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{--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: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}";
242
83
 
243
84
  const getClasses = ({
244
- value,
245
- errorValidationMessage,
85
+ connotation,
86
+ appearance,
87
+ shape,
246
88
  disabled,
247
- placeholder,
248
- readOnly,
249
- successText
89
+ selectable,
90
+ removable,
91
+ selected
250
92
  }) => classNames.classNames(
251
93
  "base",
252
- ["readonly", readOnly],
253
- ["placeholder", Boolean(placeholder)],
254
94
  ["disabled", disabled],
255
- ["error", Boolean(errorValidationMessage)],
256
- ["has-value", Boolean(value)],
257
- ["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)]
258
101
  );
259
- function renderLabel() {
260
- return index.html` <label for="control" class="label">
261
- ${(x) => x.label}
262
- </label>`;
263
- }
264
- function renderCharCount() {
102
+ function renderDismissButton(iconTag) {
265
103
  return index.html`
266
- <span class="char-count"
267
- >${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span
268
- >
269
- `;
104
+ <span
105
+ aria-hidden="true"
106
+ class="dismiss-button"
107
+ @click="${(x) => x.remove()}">
108
+ <${iconTag} name="close-line"></${iconTag}>
109
+ </span>`;
270
110
  }
271
- const TextAreaTemplate = (context) => {
272
- return index.html`
273
- <div class="${getClasses}">
274
- ${when.when((x) => x.charCount && x.maxlength, renderCharCount())}
275
- ${when.when((x) => x.label, renderLabel())}
276
- <textarea
277
- class="control"
278
- id="control"
279
- ?autofocus="${(x) => x.autofocus}"
280
- placeholder="${(x) => x.placeholder ? x.placeholder : null}"
281
- name="${(x) => x.name ? x.name : null}"
282
- minlength="${(x) => x.minlength ? x.minlength : null}"
283
- maxlength="${(x) => x.maxlength ? x.maxlength : null}"
284
- rows="${(x) => x.rows ? x.rows : null}"
285
- cols="${(x) => x.cols ? x.cols : null}"
286
- wrap="${(x) => x.wrap ? x.wrap : null}"
287
- ?readonly="${(x) => x.readOnly}"
288
- ?disabled="${(x) => x.disabled}"
289
- ?required="${(x) => x.required}"
290
- ?spellcheck="${(x) => x.spellcheck}"
291
- aria-atomic="${(x) => x.ariaAtomic}"
292
- aria-busy="${(x) => x.ariaBusy}"
293
- aria-current="${(x) => x.ariaCurrent}"
294
- aria-details="${(x) => x.ariaDetails}"
295
- aria-disabled="${(x) => x.ariaDisabled}"
296
- aria-errormessage="${(x) => x.ariaErrormessage}"
297
- aria-haspopup="${(x) => x.ariaHaspopup}"
298
- aria-hidden="${(x) => x.ariaHidden}"
299
- aria-invalid="${(x) => x.ariaInvalid}"
300
- aria-keyshortcuts="${(x) => x.ariaKeyshortcuts}"
301
- aria-label="${(x) => x.ariaLabel}"
302
- aria-live="${(x) => x.ariaLive}"
303
- aria-relevant="${(x) => x.ariaRelevant}"
304
- aria-roledescription="${(x) => x.ariaRoledescription}"
305
- @input="${(x) => x.handleTextInput()}"
306
- @change="${(x) => x.handleChange()}"
307
- ${ref.ref("control")}
308
- >
309
- </textarea>
310
- ${index$1.getFeedbackTemplate(context)}
311
- </div>
312
- `;
111
+ const tagTemplate = (context) => {
112
+ const affixIconTemplate = affix.affixIconTemplateFactory(context);
113
+ const iconTag = context.tagFor(icon.Icon);
114
+ return index.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, affix.IconWrapper.Slot)}
124
+ ${when.when(
125
+ (x) => x.label,
126
+ (x) => index.html`<span class="label">${x.label}</span>`
127
+ )}
128
+ ${when.when((x) => x.removable && !x.selectable, renderDismissButton(iconTag))}
129
+ ${when.when(
130
+ (x) => x.selectable && x.selected,
131
+ index.html`<${iconTag} class="selectable-icon" name="check-circle-solid"></${iconTag}>`
132
+ )}
133
+ </span>`;
313
134
  };
314
135
 
315
- const textAreaDefinition = TextArea.compose(
316
- {
317
- baseName: "text-area",
318
- template: TextAreaTemplate,
319
- styles,
320
- shadowOptions: {
321
- delegatesFocus: true
322
- }
136
+ const tagDefinition = Tag.compose({
137
+ baseName: "tag",
138
+ template: tagTemplate,
139
+ styles,
140
+ shadowOptions: {
141
+ delegatesFocus: true
323
142
  }
324
- );
325
- const textAreaRegistries = [textAreaDefinition(), ...definition.iconRegistries];
326
- const registerTextArea = index.registerFactory(textAreaRegistries);
143
+ });
144
+ const tagRegistries = [tagDefinition(), ...definition.iconRegistries];
145
+ const registerTag = index.registerFactory(tagRegistries);
327
146
 
328
- exports.registerTextArea = registerTextArea;
329
- exports.textAreaDefinition = textAreaDefinition;
330
- exports.textAreaRegistries = textAreaRegistries;
147
+ exports.registerTag = registerTag;
148
+ exports.tagDefinition = tagDefinition;
149
+ exports.tagRegistries = tagRegistries;