@vonage/vivid 3.32.0 → 3.34.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 (218) hide show
  1. package/accordion/index.js +5 -5
  2. package/accordion-item/index.js +4 -4
  3. package/action-group/index.js +1 -1
  4. package/alert/index.js +6 -6
  5. package/avatar/index.js +2 -2
  6. package/badge/index.js +2 -2
  7. package/banner/index.js +5 -5
  8. package/breadcrumb/index.js +1 -1
  9. package/breadcrumb-item/index.js +3 -3
  10. package/button/index.js +4 -4
  11. package/calendar/index.js +1 -1
  12. package/calendar-event/index.js +1 -1
  13. package/card/index.js +3 -3
  14. package/checkbox/index.js +5 -3
  15. package/combobox/index.js +8 -8
  16. package/custom-elements.json +246 -16
  17. package/data-grid/index.js +2 -2
  18. package/date-picker/index.js +9 -9
  19. package/dialog/index.js +6 -6
  20. package/divider/index.js +1 -1
  21. package/elevation/index.js +1 -1
  22. package/empty-state/index.js +2 -2
  23. package/fab/index.js +4 -4
  24. package/file-picker/index.js +5 -5
  25. package/focus/index.js +1 -1
  26. package/header/index.js +2 -2
  27. package/icon/index.js +1 -1
  28. package/index.js +59 -59
  29. package/layout/index.js +1 -1
  30. package/lib/calendar/calendar.d.ts +1 -1
  31. package/lib/date-picker/calendar/dateStr.d.ts +1 -0
  32. package/lib/date-picker/calendar/month.d.ts +1 -0
  33. package/lib/date-picker/calendar/year.d.ts +2 -0
  34. package/lib/date-picker/date-picker.d.ts +2 -0
  35. package/lib/icon/icon.d.ts +0 -1
  36. package/lib/listbox/listbox.d.ts +9 -1
  37. package/lib/text-field/text-field.d.ts +1 -0
  38. package/listbox/index.js +20 -16
  39. package/locales/en-GB.js +48 -14
  40. package/locales/en-US.js +48 -14
  41. package/locales/ja-JP.js +48 -14
  42. package/locales/zh-CN.js +48 -14
  43. package/menu/index.js +8 -8
  44. package/menu-item/index.js +4 -4
  45. package/nav/index.js +1 -1
  46. package/nav-disclosure/index.js +3 -3
  47. package/nav-item/index.js +3 -3
  48. package/note/index.js +2 -3
  49. package/number-field/index.js +6 -6
  50. package/option/index.js +3 -3
  51. package/package.json +2 -16
  52. package/pagination/index.js +5 -5
  53. package/popup/index.js +6 -6
  54. package/progress/index.js +1 -1
  55. package/progress-ring/index.js +1 -1
  56. package/radio/index.js +2 -2
  57. package/radio-group/index.js +1 -1
  58. package/select/index.js +8 -8
  59. package/shared/affix.js +25 -9
  60. package/shared/apply-mixins.js +1 -1
  61. package/shared/breadcrumb-item.js +5 -5
  62. package/shared/button.js +13 -13
  63. package/shared/calendar-event.js +36 -16
  64. package/shared/definition.js +133 -194
  65. package/shared/definition10.js +225 -40
  66. package/shared/definition11.js +36 -32
  67. package/shared/definition12.js +763 -98
  68. package/shared/definition13.js +125 -89
  69. package/shared/definition14.js +207 -27
  70. package/shared/definition15.js +710 -731
  71. package/shared/definition16.js +1289 -47
  72. package/shared/definition17.js +6113 -93
  73. package/shared/definition18.js +242 -164
  74. package/shared/definition19.js +47 -692
  75. package/shared/definition2.js +199 -117
  76. package/shared/definition20.js +59 -1671
  77. package/shared/definition21.js +95 -255
  78. package/shared/definition22.js +2218 -1167
  79. package/shared/definition23.js +61 -5784
  80. package/shared/definition24.js +28 -117
  81. package/shared/definition25.js +52 -66
  82. package/shared/definition26.js +391 -214
  83. package/shared/definition27.js +441 -34
  84. package/shared/definition28.js +85 -73
  85. package/shared/definition29.js +21 -2283
  86. package/shared/definition3.js +61 -24
  87. package/shared/definition30.js +13 -49
  88. package/shared/definition31.js +54 -39
  89. package/shared/definition32.js +413 -375
  90. package/shared/definition33.js +223 -304
  91. package/shared/definition34.js +197 -13
  92. package/shared/definition35.js +88 -73
  93. package/shared/definition36.js +75 -25
  94. package/shared/definition37.js +434 -34
  95. package/shared/definition38.js +32 -432
  96. package/shared/definition39.js +677 -187
  97. package/shared/definition4.js +157 -12
  98. package/shared/definition40.js +95 -48
  99. package/shared/definition41.js +577 -31
  100. package/shared/definition42.js +126 -424
  101. package/shared/definition43.js +114 -618
  102. package/shared/definition44.js +24 -80
  103. package/shared/definition45.js +71 -543
  104. package/shared/definition46.js +499 -92
  105. package/shared/definition47.js +19 -133
  106. package/shared/definition48.js +129 -52
  107. package/shared/definition49.js +281 -17
  108. package/shared/definition5.js +71 -36
  109. package/shared/definition50.js +153 -484
  110. package/shared/definition51.js +131 -98
  111. package/shared/definition52.js +131 -16
  112. package/shared/definition53.js +80 -264
  113. package/shared/definition54.js +293 -118
  114. package/shared/definition55.js +12 -117
  115. package/shared/definition56.js +39 -68
  116. package/shared/definition57.js +166 -288
  117. package/shared/definition6.js +56 -111
  118. package/shared/definition7.js +120 -195
  119. package/shared/definition8.js +58 -23
  120. package/shared/definition9.js +92 -66
  121. package/shared/focus.js +2 -1
  122. package/shared/focus2.js +1 -1
  123. package/shared/form-associated.js +2 -2
  124. package/shared/icon.js +48 -27
  125. package/shared/index.js +7 -27
  126. package/shared/index2.js +108 -80
  127. package/shared/key-codes.js +1 -1
  128. package/shared/listbox.js +88 -11
  129. package/shared/patterns/form-elements/form-elements.d.ts +4 -4
  130. package/shared/radio.js +23 -7
  131. package/shared/repeat.js +1 -1
  132. package/shared/text-anchor.js +21 -4
  133. package/shared/text-anchor.template.js +37 -40
  134. package/shared/text-field.js +2 -2
  135. package/shared/text-field2.js +15 -15
  136. package/shared/tree-item.js +12 -12
  137. package/side-drawer/index.js +1 -1
  138. package/slider/index.js +2 -2
  139. package/split-button/index.js +3 -3
  140. package/style.css +6097 -0
  141. package/styles/core/all.css +1 -1
  142. package/styles/core/theme.css +1 -1
  143. package/styles/core/typography.css +1 -1
  144. package/styles/tokens/theme-dark.css +4 -4
  145. package/styles/tokens/theme-light.css +4 -4
  146. package/styles/tokens/vivid-2-compat.css +1 -1
  147. package/switch/index.js +3 -3
  148. package/tab/index.js +3 -3
  149. package/tab-panel/index.js +1 -1
  150. package/tabs/index.js +5 -5
  151. package/tag/index.js +3 -3
  152. package/tag-group/index.js +1 -1
  153. package/text-anchor/index.js +1 -1
  154. package/text-area/index.js +3 -3
  155. package/text-field/index.js +3 -3
  156. package/toggletip/index.js +7 -7
  157. package/tooltip/index.js +7 -7
  158. package/tree-item/index.js +3 -3
  159. package/tree-view/index.js +1 -1
  160. package/lib/accordion/index.d.ts +0 -1
  161. package/lib/accordion-item/index.d.ts +0 -1
  162. package/lib/action-group/index.d.ts +0 -1
  163. package/lib/alert/index.d.ts +0 -1
  164. package/lib/avatar/index.d.ts +0 -1
  165. package/lib/badge/index.d.ts +0 -1
  166. package/lib/banner/index.d.ts +0 -1
  167. package/lib/breadcrumb/index.d.ts +0 -1
  168. package/lib/breadcrumb-item/index.d.ts +0 -1
  169. package/lib/button/index.d.ts +0 -1
  170. package/lib/calendar/index.d.ts +0 -1
  171. package/lib/calendar-event/index.d.ts +0 -1
  172. package/lib/card/index.d.ts +0 -1
  173. package/lib/checkbox/index.d.ts +0 -1
  174. package/lib/combobox/index.d.ts +0 -1
  175. package/lib/data-grid/index.d.ts +0 -1
  176. package/lib/date-picker/index.d.ts +0 -1
  177. package/lib/dialog/index.d.ts +0 -1
  178. package/lib/divider/index.d.ts +0 -1
  179. package/lib/elevation/index.d.ts +0 -1
  180. package/lib/empty-state/index.d.ts +0 -1
  181. package/lib/fab/index.d.ts +0 -1
  182. package/lib/file-picker/index.d.ts +0 -1
  183. package/lib/focus/index.d.ts +0 -1
  184. package/lib/header/index.d.ts +0 -1
  185. package/lib/icon/index.d.ts +0 -1
  186. package/lib/layout/index.d.ts +0 -1
  187. package/lib/listbox/index.d.ts +0 -1
  188. package/lib/menu/index.d.ts +0 -1
  189. package/lib/menu-item/index.d.ts +0 -1
  190. package/lib/nav/index.d.ts +0 -1
  191. package/lib/nav-disclosure/index.d.ts +0 -1
  192. package/lib/nav-item/index.d.ts +0 -1
  193. package/lib/note/index.d.ts +0 -1
  194. package/lib/number-field/index.d.ts +0 -1
  195. package/lib/option/index.d.ts +0 -1
  196. package/lib/pagination/index.d.ts +0 -1
  197. package/lib/popup/index.d.ts +0 -1
  198. package/lib/progress/index.d.ts +0 -1
  199. package/lib/progress-ring/index.d.ts +0 -1
  200. package/lib/radio/index.d.ts +0 -1
  201. package/lib/radio-group/index.d.ts +0 -1
  202. package/lib/select/index.d.ts +0 -1
  203. package/lib/side-drawer/index.d.ts +0 -1
  204. package/lib/slider/index.d.ts +0 -1
  205. package/lib/split-button/index.d.ts +0 -1
  206. package/lib/switch/index.d.ts +0 -1
  207. package/lib/tab/index.d.ts +0 -1
  208. package/lib/tab-panel/index.d.ts +0 -1
  209. package/lib/tabs/index.d.ts +0 -1
  210. package/lib/tag/index.d.ts +0 -1
  211. package/lib/tag-group/index.d.ts +0 -1
  212. package/lib/text-anchor/index.d.ts +0 -1
  213. package/lib/text-area/index.d.ts +0 -1
  214. package/lib/text-field/index.d.ts +0 -1
  215. package/lib/toggletip/index.d.ts +0 -1
  216. package/lib/tooltip/index.d.ts +0 -1
  217. package/lib/tree-item/index.d.ts +0 -1
  218. package/lib/tree-view/index.d.ts +0 -1
@@ -1,30 +1,294 @@
1
- import { F as FoundationElement, h as html, r as registerFactory } from './index.js';
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 './definition24.js';
3
+ import { f as focusRegistries } from './definition55.js';
4
+ import './affix.js';
5
+ import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './index2.js';
6
+ import { D as DelegatesARIATextbox } from './text-field2.js';
7
+ import { a as applyMixins } from './apply-mixins.js';
8
+ import { F as FormAssociated } from './form-associated.js';
9
+ import { w as when } from './when.js';
10
+ import { r as ref } from './ref.js';
11
+ import { c as classNames } from './class-names.js';
2
12
 
13
+ class _TextArea extends FoundationElement {
14
+ }
3
15
  /**
4
- * A TabPanel Component to be used with {@link @microsoft/fast-foundation#(Tabs:class)}
16
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
5
17
  *
6
- * @slot - The default slot for the tabpanel content
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
7
59
  *
8
60
  * @public
9
61
  */
10
- class TabPanel$1 extends FoundationElement {
11
- }
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 = "/**\n * Do not edit directly\n * Generated on Mon, 04 Sep 2023 12:44:18 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n display: inline-grid;\n grid-template-columns: 1fr max-content;\n inline-size: 100%;\n row-gap: 4px;\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-300);\n --_appearance-color-fill: var(--vvd-color-neutral-100);\n --_appearance-color-outline: var(--vvd-color-neutral-300);\n}\n.base:where(:disabled, .disabled).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-300);\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-200);\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-600);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base.connotation-success {\n /* @cssprop [--vvd-text-area-success-primary=var(--vvd-color-success-500)] */\n --_connotation-color-primary: var(--vvd-text-area-success-primary, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-area-success-backdrop=var(--vvd-color-success-50)] */\n --_connotation-color-backdrop: var(--vvd-text-area-success-backdrop, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-area-success-intermediate=var(--vvd-color-success-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-success-intermediate, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-area-success-firm=var(--vvd-color-success-600)] */\n --_connotation-color-firm: var(--vvd-text-area-success-firm, var(--vvd-color-success-600));\n /* @cssprop [--vvd-text-area-success-faint=var(--vvd-color-success-50)] */\n --_connotation-color-faint: var(--vvd-text-area-success-faint, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-area-success-soft=var(--vvd-color-success-100)] */\n --_connotation-color-soft: var(--vvd-text-area-success-soft, var(--vvd-color-success-100));\n}\n.base.connotation-alert {\n /* @cssprop [--vvd-text-area-alert-primary=var(--vvd-color-alert-500)] */\n --_connotation-color-primary: var(--vvd-text-area-alert-primary, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-area-alert-backdrop=var(--vvd-color-alert-50)] */\n --_connotation-color-backdrop: var(--vvd-text-area-alert-backdrop, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-area-alert-intermediate=var(--vvd-color-alert-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-alert-intermediate, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-area-alert-firm=var(--vvd-color-alert-600)] */\n --_connotation-color-firm: var(--vvd-text-area-alert-firm, var(--vvd-color-alert-600));\n /* @cssprop [--vvd-text-area-alert-faint=var(--vvd-color-alert-50)] */\n --_connotation-color-faint: var(--vvd-text-area-alert-faint, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-area-alert-soft=var(--vvd-color-alert-100)] */\n --_connotation-color-soft: var(--vvd-text-area-alert-soft, var(--vvd-color-alert-100));\n}\n.base:not(.connotation-success, .connotation-alert) {\n /* @cssprop [--vvd-text-area-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-text-area-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-area-accent-backdrop=var(--vvd-color-canvas)] */\n --_connotation-color-backdrop: var(--vvd-text-area-accent-backdrop, var(--vvd-color-canvas));\n /* @cssprop [--vvd-text-area-accent-intermediate=var(--vvd-color-neutral-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-accent-intermediate, var(--vvd-color-neutral-500));\n /* @cssprop [--vvd-text-area-accent-firm=var(--vvd-color-canvas-text)] */\n --_connotation-color-firm: var(--vvd-text-area-accent-firm, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-area-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-text-area-accent-faint, var(--vvd-color-neutral-50));\n /* @cssprop [--vvd-text-area-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-text-area-accent-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/2;\n grid-row: 1;\n line-height: 20px;\n}\n\n.char-count {\n color: var(--_low-ink-color);\n font: var(--vvd-typography-base);\n grid-column: 2/-1;\n}\n\n.control {\n padding: 8px 16px;\n border: 0 none;\n appearance: none; /* for box-shadow visibility on IOS */\n background-color: var(--_appearance-color-fill);\n border-radius: 6px;\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 grid-column: 1/-1;\n min-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n resize: none;\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 pointer-events: none;\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 pointer-events: none;\n -webkit-text-fill-color: var(--_low-ink-color); /* 1. sets text fill to current `color` for safari */\n}\n.control:focus {\n outline: 2px solid var(--focus-stroke-color, currentColor);\n outline-offset: -2px;\n}\n:host([resize=both]) .control {\n resize: both;\n}\n:host([resize=horizontal]) .control {\n resize: horizontal;\n}\n:host([resize=vertical]) .control {\n resize: vertical;\n}";
12
191
 
13
- class TabPanel extends TabPanel$1 {}
192
+ var __defProp = Object.defineProperty;
193
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
194
+ var __decorateClass = (decorators, target, key, kind) => {
195
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
196
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
197
+ if (decorator = decorators[i])
198
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
199
+ if (kind && result)
200
+ __defProp(target, key, result);
201
+ return result;
202
+ };
203
+ let TextArea = class extends TextArea$1 {
204
+ };
205
+ __decorateClass([
206
+ attr
207
+ ], TextArea.prototype, "wrap", 2);
208
+ TextArea = __decorateClass([
209
+ errorText,
210
+ formElements
211
+ ], TextArea);
212
+ applyMixins(TextArea, FormElementCharCount, FormElementHelperText, FormElementSuccessText);
14
213
 
15
- function TabPanelTemplate() {
214
+ const getClasses = ({ value, errorValidationMessage, disabled, placeholder, readOnly, successText }) => classNames(
215
+ "base",
216
+ ["readonly", readOnly],
217
+ ["placeholder", Boolean(placeholder)],
218
+ ["disabled", disabled],
219
+ ["error connotation-alert", Boolean(errorValidationMessage)],
220
+ ["has-value", Boolean(value)],
221
+ ["success connotation-success", !!successText]
222
+ );
223
+ function renderLabel() {
16
224
  return html`
17
- <template slot="tabpanel" role="tabpanel">
18
- <slot></slot>
19
- </template>
20
- `;
225
+ <label for="control" class="label">
226
+ ${(x) => x.label}
227
+ </label>`;
21
228
  }
229
+ function renderCharCount() {
230
+ return html`
231
+ <span class="char-count">${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span>
232
+ `;
233
+ }
234
+ const TextAreaTemplate = (context) => {
235
+ return html`
236
+ <div class="${getClasses}">
237
+ ${when((x) => x.charCount && x.maxlength, renderCharCount())}
238
+ ${when((x) => x.label, renderLabel())}
239
+ <textarea class="control"
240
+ ?autofocus="${(x) => x.autofocus}"
241
+ placeholder="${(x) => x.placeholder ? x.placeholder : null}"
242
+ name="${(x) => x.name ? x.name : null}"
243
+ maxlength="${(x) => x.maxlength ? x.maxlength : null}"
244
+ rows="${(x) => x.rows ? x.rows : null}"
245
+ cols="${(x) => x.cols ? x.cols : null}"
246
+ wrap="${(x) => x.wrap ? x.wrap : null}"
247
+ ?readonly="${(x) => x.readOnly}"
248
+ ?disabled="${(x) => x.disabled}"
249
+ ?required="${(x) => x.required}"
250
+ ?spellcheck="${(x) => x.spellcheck}"
251
+ :value="${(x) => x.value}"
252
+ aria-atomic="${(x) => x.ariaAtomic}"
253
+ aria-busy="${(x) => x.ariaBusy}"
254
+ aria-controls="${(x) => x.ariaControls}"
255
+ aria-current="${(x) => x.ariaCurrent}"
256
+ aria-describedby="${(x) => x.ariaDescribedby}"
257
+ aria-details="${(x) => x.ariaDetails}"
258
+ aria-disabled="${(x) => x.ariaDisabled}"
259
+ aria-errormessage="${(x) => x.ariaErrormessage}"
260
+ aria-flowto="${(x) => x.ariaFlowto}"
261
+ aria-haspopup="${(x) => x.ariaHaspopup}"
262
+ aria-hidden="${(x) => x.ariaHidden}"
263
+ aria-invalid="${(x) => x.ariaInvalid}"
264
+ aria-keyshortcuts="${(x) => x.ariaKeyshortcuts}"
265
+ aria-label="${(x) => x.ariaLabel}"
266
+ aria-labelledby="${(x) => x.ariaLabelledby}"
267
+ aria-live="${(x) => x.ariaLive}"
268
+ aria-owns="${(x) => x.ariaOwns}"
269
+ aria-relevant="${(x) => x.ariaRelevant}"
270
+ aria-roledescription="${(x) => x.ariaRoledescription}"
271
+ @input="${(x) => x.handleTextInput()}"
272
+ @change="${(x) => x.handleChange()}"
273
+ ${ref("control")}
274
+ >
275
+ </textarea>
276
+ ${when((x) => !x.successText && !x.errorValidationMessage && x.helperText?.length, getFeedbackTemplate("helper", context))}
277
+ ${when((x) => !x.successText && x.errorValidationMessage, getFeedbackTemplate("error", context))}
278
+ ${when((x) => x.successText, getFeedbackTemplate("success", context))}
279
+ </div>
280
+ `;
281
+ };
22
282
 
23
- const tabPanelDefinition = TabPanel.compose({
24
- baseName: 'tab-panel',
25
- template: TabPanelTemplate
283
+ const textAreaDefinition = TextArea.compose({
284
+ baseName: "text-area",
285
+ template: TextAreaTemplate,
286
+ styles,
287
+ shadowOptions: {
288
+ delegatesFocus: true
289
+ }
26
290
  });
27
- const tabPanelRegistries = [tabPanelDefinition()];
28
- const registerTabPanel = registerFactory(tabPanelRegistries);
291
+ const textAreaRegistries = [textAreaDefinition(), ...iconRegistries, ...focusRegistries];
292
+ const registerTextArea = registerFactory(textAreaRegistries);
29
293
 
30
- export { tabPanelDefinition as a, registerTabPanel as r, tabPanelRegistries as t };
294
+ export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };
@@ -1,44 +1,79 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
1
+ import { F as FoundationElement, a as attr, h as html, r as registerFactory } from './index.js';
2
+ import { a as iconRegistries } from './definition24.js';
3
+ import { I as Icon } from './icon.js';
4
+ import { w as when } from './when.js';
2
5
  import { c as classNames } from './class-names.js';
3
6
 
4
- var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 22 Aug 2023 13:37:39 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n position: relative;\n display: flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n inline-size: inherit;\n vertical-align: middle;\n}\n.base {\n /* @cssprop [--vvd-action-group-accent-backdrop=var(--vvd-color-canvas)] */\n --_connotation-color-backdrop: var(--vvd-action-group-accent-backdrop, var(--vvd-color-canvas));\n /* @cssprop [--vvd-action-group-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-action-group-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-action-group-accent-intermediate=var(--vvd-color-neutral-500)] */\n --_connotation-color-intermediate: var(--vvd-action-group-accent-intermediate, var(--vvd-color-neutral-500));\n /* @cssprop [--vvd-action-group-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-action-group-accent-faint, var(--vvd-color-neutral-50));\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::before {\n position: absolute;\n z-index: 1;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n content: \"\";\n inset: 0;\n pointer-events: none;\n}\n.base:not(.tight) {\n padding: 4px;\n column-gap: 4px;\n}\n\n/* Shape */\n.base:not(.shape-pill) {\n border-radius: 6px;\n}\n\n.base.shape-pill {\n border-radius: 24px;\n}\n\n/* Separator */\n::slotted([role=separator]) {\n align-self: stretch;\n margin-block: 4px;\n}";
7
+ const styles = "/**\n * Do not edit directly\n * Generated on Mon, 04 Sep 2023 12:44:18 GMT\n */\n.base {\n display: inline-flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n background-color: var(--_appearance-color-fill);\n block-size: var(--_size);\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n inline-size: var(--_size);\n vertical-align: middle;\n}\n.base.connotation-cta {\n /* @cssprop [--vvd-avatar-cta-primary=var(--vvd-color-cta-500)] */\n --_connotation-color-primary: var(--vvd-avatar-cta-primary, var(--vvd-color-cta-500));\n /* @cssprop [--vvd-avatar-cta-primary-text=var(--vvd-color-canvas)] */\n --_connotation-color-primary-text: var(--vvd-avatar-cta-primary-text, var(--vvd-color-canvas));\n /* @cssprop [--vvd-avatar-cta-firm=var(--vvd-color-cta-600)] */\n --_connotation-color-firm: var(--vvd-avatar-cta-firm, var(--vvd-color-cta-600));\n /* @cssprop [--vvd-avatar-cta-fierce=var(--vvd-color-cta-700)] */\n --_connotation-color-fierce: var(--vvd-avatar-cta-fierce, var(--vvd-color-cta-700));\n /* @cssprop [--vvd-avatar-cta-pale=var(--vvd-color-cta-300)] */\n --_connotation-color-pale: var(--vvd-avatar-cta-pale, var(--vvd-color-cta-300));\n}\n.base:not(.connotation-cta) {\n /* @cssprop [--vvd-avatar-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-avatar-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-avatar-accent-primary-text=var(--vvd-color-canvas)] */\n --_connotation-color-primary-text: var(--vvd-avatar-accent-primary-text, var(--vvd-color-canvas));\n /* @cssprop [--vvd-avatar-accent-firm=var(--vvd-color-canvas-text)] */\n --_connotation-color-firm: var(--vvd-avatar-accent-firm, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-avatar-accent-fierce=var(--vvd-color-neutral-700)] */\n --_connotation-color-fierce: var(--vvd-avatar-accent-fierce, var(--vvd-color-neutral-700));\n /* @cssprop [--vvd-avatar-accent-pale=var(--vvd-color-neutral-300)] */\n --_connotation-color-pale: var(--vvd-avatar-accent-pale, var(--vvd-color-neutral-300));\n}\n.base {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transparent;\n}\n.base.appearance-outlined {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base.appearance-duotone {\n --_appearance-color-text: var(--_connotation-color-fierce);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: var(--_connotation-color-pale);\n}\n.base.size-condensed {\n --_size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8));\n}\n.base.size-condensed .initials {\n font: var(--vvd-typography-base-condensed-bold);\n}\n.base.size-condensed .icon {\n font-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)) / 2);\n line-height: 1;\n}\n.base.size-expanded {\n --_size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) + 8));\n}\n.base.size-expanded .initials {\n font: var(--vvd-typography-heading-4);\n}\n.base.size-expanded .icon {\n font-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) + 8)) / 2);\n line-height: 1;\n}\n.base:not(.size-condensed, .size-expanded) {\n --_size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n}\n.base:not(.size-condensed, .size-expanded) .initials {\n font: var(--vvd-typography-base-extended-bold);\n}\n.base:not(.size-condensed, .size-expanded) .icon {\n font-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) / 2);\n line-height: 1;\n}\n.base:not(.shape-pill) {\n border-radius: 6px;\n}\n.base.shape-pill {\n border-radius: 50%;\n}\n.base .initials {\n text-transform: uppercase;\n}\n.base ::slotted(*) {\n block-size: 100%;\n inline-size: 100%;\n object-fit: cover;\n}";
5
8
 
6
- class ActionGroup extends FoundationElement {
7
- constructor() {
8
- super(...arguments);
9
- this.tight = false;
10
- this.role = null;
11
- this.ariaLabel = null;
12
- }
9
+ var __defProp = Object.defineProperty;
10
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __decorateClass = (decorators, target, key, kind) => {
12
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
13
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
14
+ if (decorator = decorators[i])
15
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
16
+ if (kind && result)
17
+ __defProp(target, key, result);
18
+ return result;
19
+ };
20
+ class Avatar extends FoundationElement {
13
21
  }
14
- __decorate([attr, __metadata("design:type", String)], ActionGroup.prototype, "shape", void 0);
15
- __decorate([attr, __metadata("design:type", String)], ActionGroup.prototype, "appearance", void 0);
16
- __decorate([attr({
17
- mode: 'boolean'
18
- }), __metadata("design:type", Object)], ActionGroup.prototype, "tight", void 0);
19
- __decorate([attr(), __metadata("design:type", Object)], ActionGroup.prototype, "role", void 0);
20
- __decorate([attr({
21
- attribute: 'aria-label'
22
- }), __metadata("design:type", Object)], ActionGroup.prototype, "ariaLabel", void 0);
22
+ __decorateClass([
23
+ attr
24
+ ], Avatar.prototype, "connotation", 2);
25
+ __decorateClass([
26
+ attr
27
+ ], Avatar.prototype, "shape", 2);
28
+ __decorateClass([
29
+ attr
30
+ ], Avatar.prototype, "appearance", 2);
31
+ __decorateClass([
32
+ attr
33
+ ], Avatar.prototype, "size", 2);
34
+ __decorateClass([
35
+ attr
36
+ ], Avatar.prototype, "icon", 2);
37
+ __decorateClass([
38
+ attr
39
+ ], Avatar.prototype, "initials", 2);
23
40
 
24
- const getClasses = ({
25
- appearance,
26
- shape,
27
- tight
28
- }) => classNames('base', [`appearance-${appearance}`, Boolean(appearance)], [`shape-${shape}`, Boolean(shape)], ['tight', tight]);
29
- const ActionGroupTemplate = () => html`
30
- <div class="${getClasses}"
31
- role="${x => x.role ? x.role : 'group'}"
32
- aria-label="${x => x.ariaLabel}">
33
- <slot></slot>
34
- </div>`;
41
+ const getClasses = ({ appearance, connotation, shape, size }) => classNames(
42
+ "base",
43
+ [`connotation-${connotation}`, Boolean(connotation)],
44
+ [`appearance-${appearance}`, Boolean(appearance)],
45
+ [`shape-${shape}`, Boolean(shape)],
46
+ [`size-${size}`, Boolean(size)]
47
+ );
48
+ function renderIcon(iconTag) {
49
+ return html`
50
+ <span class="icon">
51
+ <${iconTag} name="${(x) => x.icon ? `${x.icon}` : "user-line"}"></${iconTag}>
52
+ </span>
53
+ `;
54
+ }
55
+ function renderInitials() {
56
+ return html`
57
+ <span class="initials">${({ initials }) => initials.substring(0, 2)}</span>
58
+ `;
59
+ }
60
+ const AvatarTemplate = (context) => {
61
+ const iconTag = context.tagFor(Icon);
62
+ return html`
63
+ <span class="${getClasses}">
64
+ <slot name="graphic">
65
+ ${when((x) => x.initials, renderInitials())}
66
+ ${when((x) => !x.initials, renderIcon(iconTag))}
67
+ </slot>
68
+ </span>`;
69
+ };
35
70
 
36
- const actionGroupDefinition = ActionGroup.compose({
37
- baseName: 'action-group',
38
- template: ActionGroupTemplate,
39
- styles: css_248z
71
+ const avatarDefinition = Avatar.compose({
72
+ baseName: "avatar",
73
+ template: AvatarTemplate,
74
+ styles
40
75
  });
41
- const actionGroupRegistries = [actionGroupDefinition()];
42
- const registerActionGroup = registerFactory(actionGroupRegistries);
76
+ const avatarRegistries = [avatarDefinition(), ...iconRegistries];
77
+ const registerAvatar = registerFactory(avatarRegistries);
43
78
 
44
- export { actionGroupDefinition as a, actionGroupRegistries as b, registerActionGroup as r };
79
+ export { avatarDefinition as a, avatarRegistries as b, registerAvatar as r };