@vonage/vivid 5.24.0 → 5.25.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 (331) hide show
  1. package/README.md +1 -1
  2. package/avatar/index.cjs +10 -10
  3. package/avatar/index.js +4 -3
  4. package/breadcrumb-item/index.cjs +9 -5
  5. package/breadcrumb-item/index.js +11 -6
  6. package/bundled/affix.cjs +1 -1
  7. package/bundled/affix.js +1 -1
  8. package/bundled/definition10.cjs +2 -1
  9. package/bundled/definition10.js +3 -2
  10. package/bundled/definition11.cjs +4 -4
  11. package/bundled/definition11.js +4 -3
  12. package/bundled/definition12.cjs +1 -1
  13. package/bundled/definition12.js +1 -0
  14. package/bundled/definition15.cjs +5 -5
  15. package/bundled/definition15.js +4 -3
  16. package/bundled/definition17.cjs +7 -7
  17. package/bundled/definition17.js +22 -109
  18. package/bundled/definition18.cjs +3 -3
  19. package/bundled/definition18.js +9 -31
  20. package/bundled/definition19.cjs +19 -19
  21. package/bundled/definition19.js +3 -2
  22. package/bundled/definition21.cjs +8 -8
  23. package/bundled/definition21.js +5 -4
  24. package/bundled/definition22.cjs +2 -2
  25. package/bundled/definition22.js +2 -2
  26. package/bundled/definition24.cjs +4 -4
  27. package/bundled/definition24.js +4 -3
  28. package/bundled/definition25.cjs +3 -3
  29. package/bundled/definition25.js +32 -28
  30. package/bundled/definition3.cjs +5 -5
  31. package/bundled/definition3.js +10 -40
  32. package/bundled/definition4.cjs +6 -6
  33. package/bundled/definition4.js +4 -3
  34. package/bundled/definition6.cjs +11 -11
  35. package/bundled/definition6.js +4 -3
  36. package/bundled/definition9.cjs +12 -6
  37. package/bundled/definition9.js +66 -43
  38. package/bundled/extractOptions.cjs +1 -1
  39. package/bundled/extractOptions.js +2 -2
  40. package/bundled/icon.cjs +1 -0
  41. package/bundled/icon.js +34 -0
  42. package/bundled/listbox.cjs +1 -1
  43. package/bundled/listbox.js +5 -2
  44. package/bundled/mixins.cjs +8 -8
  45. package/bundled/mixins.js +4 -3
  46. package/bundled/optgroup.cjs +1 -0
  47. package/bundled/optgroup.js +27 -0
  48. package/bundled/option.cjs +1 -0
  49. package/bundled/option.js +93 -0
  50. package/bundled/vivid-element.cjs +1 -1
  51. package/bundled/vivid-element.js +1 -1
  52. package/card/index.cjs +22 -22
  53. package/card/index.js +4 -3
  54. package/color-picker/index.cjs +18 -18
  55. package/color-picker/index.js +4 -3
  56. package/combobox/index.cjs +7 -7
  57. package/combobox/index.js +4 -2
  58. package/custom-elements.json +4159 -3847
  59. package/data-grid/index.cjs +24 -24
  60. package/data-grid/index.js +4 -3
  61. package/dial-pad/index.cjs +21 -21
  62. package/dial-pad/index.js +4 -3
  63. package/dialog/index.cjs +14 -14
  64. package/dialog/index.js +4 -3
  65. package/empty-state/index.cjs +3 -3
  66. package/empty-state/index.js +4 -3
  67. package/file-picker/index.cjs +7 -7
  68. package/file-picker/index.js +4 -3
  69. package/icon/definition.cjs +2 -1
  70. package/icon/definition.js +2 -1
  71. package/index.cjs +148 -141
  72. package/index.js +41 -37
  73. package/lib/accordion-item/accordion-item.d.ts +1 -0
  74. package/lib/combobox/combobox.d.ts +1 -1
  75. package/lib/components.d.ts +1 -0
  76. package/lib/dial-pad/dial-pad.d.ts +0 -1
  77. package/lib/listbox/definition.d.ts +3 -0
  78. package/lib/listbox/index.d.ts +1 -0
  79. package/lib/listbox/listbox.d.ts +1302 -0
  80. package/lib/listbox/listbox.template.d.ts +3 -0
  81. package/lib/listbox/variations.browser-spec.d.ts +1 -0
  82. package/lib/menu/menu.d.ts +0 -1
  83. package/lib/number-field/number-field.d.ts +0 -1
  84. package/lib/rich-text-editor/rte/features/base.d.ts +1 -0
  85. package/lib/rich-text-editor/rte/utils/default-textblock.d.ts +2 -2
  86. package/lib/tag-name-map.d.ts +2 -1
  87. package/lib/text-field/text-field.d.ts +1 -0
  88. package/lib/toggletip/toggletip.d.ts +1 -0
  89. package/lib/tooltip/tooltip.d.ts +1 -0
  90. package/listbox/definition.cjs +5 -0
  91. package/listbox/definition.js +2 -0
  92. package/listbox/index.cjs +11 -0
  93. package/listbox/index.js +540 -0
  94. package/nav/definition.cjs +1 -1
  95. package/nav/definition.js +1 -1
  96. package/nav-disclosure/definition.cjs +1 -1
  97. package/nav-disclosure/definition.js +1 -1
  98. package/nav-disclosure/index.cjs +4 -4
  99. package/nav-disclosure/index.js +4 -3
  100. package/nav-item/definition.cjs +1 -1
  101. package/nav-item/definition.js +1 -1
  102. package/note/definition.cjs +1 -1
  103. package/note/definition.js +1 -1
  104. package/number-field/definition.cjs +1 -1
  105. package/number-field/definition.js +1 -1
  106. package/optgroup/definition.cjs +2 -1
  107. package/optgroup/definition.js +2 -1
  108. package/option/definition.cjs +2 -1
  109. package/option/definition.js +2 -1
  110. package/package.json +8 -7
  111. package/pagination/definition.cjs +1 -1
  112. package/pagination/definition.js +1 -1
  113. package/platform-switch/definition.cjs +1 -1
  114. package/platform-switch/definition.js +1 -1
  115. package/popover/definition.cjs +1 -1
  116. package/popover/definition.js +1 -1
  117. package/popover/index.cjs +5 -5
  118. package/popover/index.js +4 -3
  119. package/progress/definition.cjs +1 -1
  120. package/progress/definition.js +1 -1
  121. package/radio/definition.cjs +1 -1
  122. package/radio/definition.js +1 -1
  123. package/radio-group/definition.cjs +1 -1
  124. package/radio-group/definition.js +1 -1
  125. package/range-slider/definition.cjs +1 -1
  126. package/range-slider/definition.js +1 -1
  127. package/rich-text-editor/definition.cjs +1 -1
  128. package/rich-text-editor/definition.js +1 -1
  129. package/rich-text-editor/index.cjs +13 -13
  130. package/rich-text-editor/index.js +22 -19
  131. package/rich-text-view/definition.cjs +1 -1
  132. package/rich-text-view/definition.js +1 -1
  133. package/searchable-select/definition.cjs +1 -1
  134. package/searchable-select/definition.js +1 -1
  135. package/searchable-select/index.cjs +23 -23
  136. package/searchable-select/index.js +10 -7
  137. package/select/definition.cjs +1 -1
  138. package/select/definition.js +1 -1
  139. package/selectable-box/definition.cjs +1 -1
  140. package/selectable-box/definition.js +1 -1
  141. package/shared/listbox/commands.d.ts +17 -0
  142. package/shared/listbox/move.d.ts +6 -0
  143. package/shared/listbox/options.d.ts +12 -0
  144. package/shared/listbox/selection.d.ts +28 -0
  145. package/shared/listbox/state.d.ts +26 -0
  146. package/shared/listbox/typeahead.d.ts +8 -0
  147. package/shared/listbox/with-options-filter.d.ts +440 -0
  148. package/shared/listbox/with-options.d.ts +862 -0
  149. package/side-drawer/definition.cjs +1 -1
  150. package/side-drawer/definition.js +1 -1
  151. package/simple-color-picker/definition.cjs +1 -1
  152. package/simple-color-picker/definition.js +1 -1
  153. package/simple-color-picker/index.cjs +6 -6
  154. package/simple-color-picker/index.js +4 -3
  155. package/split-button/definition.cjs +1 -1
  156. package/split-button/definition.js +1 -1
  157. package/status/definition.cjs +1 -1
  158. package/status/definition.js +1 -1
  159. package/switch/definition.cjs +1 -1
  160. package/switch/definition.js +1 -1
  161. package/tab/definition.cjs +1 -1
  162. package/tab/definition.js +1 -1
  163. package/tab-panel/definition.cjs +1 -1
  164. package/tab-panel/definition.js +1 -1
  165. package/table/definition.cjs +1 -1
  166. package/table/definition.js +1 -1
  167. package/table/index.cjs +13 -13
  168. package/table/index.js +4 -3
  169. package/tabs/definition.cjs +1 -1
  170. package/tabs/definition.js +1 -1
  171. package/tag/definition.cjs +1 -1
  172. package/tag/definition.js +1 -1
  173. package/tag/index.cjs +11 -11
  174. package/tag/index.js +4 -3
  175. package/tag-group/definition.cjs +1 -1
  176. package/tag-group/definition.js +1 -1
  177. package/text-area/definition.cjs +1 -1
  178. package/text-area/definition.js +1 -1
  179. package/time-picker/definition.cjs +1 -1
  180. package/time-picker/definition.js +1 -1
  181. package/tree-item/definition.cjs +1 -1
  182. package/tree-item/definition.js +1 -1
  183. package/tree-view/definition.cjs +1 -1
  184. package/tree-view/definition.js +1 -1
  185. package/unbundled/affix.cjs +2 -2
  186. package/unbundled/affix.js +1 -1
  187. package/unbundled/base-progress.cjs +1 -1
  188. package/unbundled/base-progress.js +1 -1
  189. package/unbundled/button.cjs +2 -2
  190. package/unbundled/button.js +2 -2
  191. package/unbundled/definition.cjs +2 -65
  192. package/unbundled/definition.js +4 -61
  193. package/unbundled/definition11.cjs +4 -3
  194. package/unbundled/definition11.js +3 -2
  195. package/unbundled/definition12.cjs +3 -2
  196. package/unbundled/definition12.js +3 -2
  197. package/unbundled/definition14.cjs +2 -1
  198. package/unbundled/definition14.js +2 -1
  199. package/unbundled/definition17.cjs +9 -4
  200. package/unbundled/definition17.js +9 -4
  201. package/unbundled/definition2.cjs +7 -2
  202. package/unbundled/definition2.js +8 -3
  203. package/unbundled/definition21.cjs +2 -1
  204. package/unbundled/definition21.js +2 -1
  205. package/unbundled/definition23.cjs +2 -1
  206. package/unbundled/definition23.js +2 -1
  207. package/unbundled/definition24.cjs +6 -4
  208. package/unbundled/definition24.js +6 -4
  209. package/unbundled/definition25.cjs +2 -1
  210. package/unbundled/definition25.js +2 -1
  211. package/unbundled/definition26.cjs +7 -4
  212. package/unbundled/definition26.js +7 -4
  213. package/unbundled/definition27.cjs +39 -5
  214. package/unbundled/definition27.js +40 -6
  215. package/unbundled/definition28.cjs +4 -3
  216. package/unbundled/definition28.js +4 -3
  217. package/unbundled/definition29.cjs +5 -168
  218. package/unbundled/definition29.js +11 -162
  219. package/unbundled/definition30.cjs +2 -63
  220. package/unbundled/definition30.js +5 -54
  221. package/unbundled/definition31.cjs +5 -3
  222. package/unbundled/definition31.js +5 -3
  223. package/unbundled/definition32.cjs +2 -1
  224. package/unbundled/definition32.js +2 -1
  225. package/unbundled/definition35.cjs +2 -1
  226. package/unbundled/definition35.js +2 -1
  227. package/unbundled/definition37.cjs +1 -1
  228. package/unbundled/definition37.js +1 -1
  229. package/unbundled/definition39.cjs +1 -1
  230. package/unbundled/definition39.js +1 -1
  231. package/unbundled/definition40.cjs +4 -2
  232. package/unbundled/definition40.js +4 -2
  233. package/unbundled/definition41.cjs +11 -6
  234. package/unbundled/definition41.js +11 -6
  235. package/unbundled/definition42.cjs +5 -4
  236. package/unbundled/definition42.js +5 -4
  237. package/unbundled/definition44.cjs +3 -2
  238. package/unbundled/definition44.js +3 -2
  239. package/unbundled/definition45.cjs +2 -2
  240. package/unbundled/definition45.js +2 -2
  241. package/unbundled/definition49.cjs +583 -79
  242. package/unbundled/definition49.js +579 -76
  243. package/unbundled/definition50.cjs +71 -33
  244. package/unbundled/definition50.js +67 -29
  245. package/unbundled/definition51.cjs +54 -23
  246. package/unbundled/definition51.js +52 -18
  247. package/unbundled/definition52.cjs +23 -39
  248. package/unbundled/definition52.js +17 -36
  249. package/unbundled/definition53.cjs +29 -314
  250. package/unbundled/definition53.js +27 -312
  251. package/unbundled/definition54.cjs +302 -195
  252. package/unbundled/definition54.js +298 -191
  253. package/unbundled/definition55.cjs +210 -40
  254. package/unbundled/definition55.js +206 -36
  255. package/unbundled/definition56.cjs +42 -266
  256. package/unbundled/definition56.js +38 -262
  257. package/unbundled/definition57.cjs +270 -50
  258. package/unbundled/definition57.js +267 -46
  259. package/unbundled/definition58.cjs +48 -146
  260. package/unbundled/definition58.js +47 -143
  261. package/unbundled/definition59.cjs +127 -225
  262. package/unbundled/definition59.js +122 -223
  263. package/unbundled/definition6.cjs +2 -1
  264. package/unbundled/definition6.js +2 -1
  265. package/unbundled/definition60.cjs +199 -418
  266. package/unbundled/definition60.js +196 -415
  267. package/unbundled/definition61.cjs +442 -3738
  268. package/unbundled/definition61.js +432 -3565
  269. package/unbundled/definition62.cjs +3717 -730
  270. package/unbundled/definition62.js +3544 -720
  271. package/unbundled/definition63.cjs +770 -97
  272. package/unbundled/definition63.js +767 -94
  273. package/unbundled/definition64.cjs +100 -999
  274. package/unbundled/definition64.js +98 -994
  275. package/unbundled/definition65.cjs +991 -93
  276. package/unbundled/definition65.js +985 -90
  277. package/unbundled/definition66.cjs +109 -73
  278. package/unbundled/definition66.js +105 -63
  279. package/unbundled/definition67.cjs +69 -155
  280. package/unbundled/definition67.js +60 -152
  281. package/unbundled/definition68.cjs +155 -119
  282. package/unbundled/definition68.js +151 -115
  283. package/unbundled/definition69.cjs +124 -49
  284. package/unbundled/definition69.js +120 -45
  285. package/unbundled/definition70.cjs +51 -85
  286. package/unbundled/definition70.js +50 -81
  287. package/unbundled/definition71.cjs +91 -19
  288. package/unbundled/definition71.js +86 -14
  289. package/unbundled/definition72.cjs +20 -87
  290. package/unbundled/definition72.js +14 -84
  291. package/unbundled/definition73.cjs +77 -294
  292. package/unbundled/definition73.js +72 -217
  293. package/unbundled/definition74.cjs +289 -311
  294. package/unbundled/definition74.js +219 -306
  295. package/unbundled/definition75.cjs +326 -26
  296. package/unbundled/definition75.js +317 -23
  297. package/unbundled/definition76.cjs +27 -122
  298. package/unbundled/definition76.js +22 -118
  299. package/unbundled/definition77.cjs +105 -232
  300. package/unbundled/definition77.js +101 -228
  301. package/unbundled/definition78.cjs +259 -26
  302. package/unbundled/definition78.js +249 -23
  303. package/unbundled/definition79.cjs +29 -148
  304. package/unbundled/definition79.js +27 -133
  305. package/unbundled/definition80.cjs +118 -173
  306. package/unbundled/definition80.js +109 -169
  307. package/unbundled/definition81.cjs +181 -477
  308. package/unbundled/definition81.js +176 -471
  309. package/unbundled/definition82.cjs +517 -0
  310. package/unbundled/definition82.js +497 -0
  311. package/unbundled/extractOptions.cjs +5 -5
  312. package/unbundled/extractOptions.js +2 -2
  313. package/unbundled/icon.cjs +67 -0
  314. package/unbundled/icon.js +61 -0
  315. package/unbundled/linkable.cjs +1 -1
  316. package/unbundled/linkable.js +1 -1
  317. package/unbundled/listbox.cjs +8 -3
  318. package/unbundled/listbox.js +7 -2
  319. package/unbundled/mixins.cjs +2 -1
  320. package/unbundled/mixins.js +2 -1
  321. package/unbundled/optgroup.cjs +66 -0
  322. package/unbundled/optgroup.js +54 -0
  323. package/unbundled/option.cjs +176 -0
  324. package/unbundled/option.js +164 -0
  325. package/unbundled/time-selection-picker.template.cjs +1 -1
  326. package/unbundled/time-selection-picker.template.js +1 -1
  327. package/unbundled/vivid-element.cjs +1 -1
  328. package/unbundled/vivid-element.js +1 -1
  329. package/video-player/definition.cjs +1 -1
  330. package/video-player/definition.js +1 -1
  331. package/vivid.api.json +336 -193
@@ -1,46 +1,279 @@
1
+ require("./chunk.cjs");
1
2
  const require_vivid_element = require("./vivid-element.cjs");
2
- const require_definition = require("./definition6.cjs");
3
- const require_definition$1 = require("./definition9.cjs");
4
- const require_definition$2 = require("./definition22.cjs");
5
- const require_definition$3 = require("./definition26.cjs");
6
- const require_picker_field_template = require("./picker-field.template.cjs");
7
- const require_time_selection_picker_template = require("./time-selection-picker.template.cjs");
8
- //#region src/lib/time-picker/time-picker.template.ts
9
- var TimePickerTemplate = (context) => {
10
- return require_picker_field_template.PickerFieldTemplate(context, require_time_selection_picker_template.TimeSelectionPickerTemplate(context, 6), {
11
- withSeparator: true,
12
- padded: false
13
- });
3
+ const require_decorate = require("./decorate.cjs");
4
+ const require_delegates_aria = require("./delegates-aria.cjs");
5
+ const require_form_associated = require("./form-associated.cjs");
6
+ const require_definition = require("./definition22.cjs");
7
+ const require_mixins = require("./mixins.cjs");
8
+ const require_form_element = require("./form-element.cjs");
9
+ const require_with_error_text = require("./with-error-text.cjs");
10
+ const require_with_success_text = require("./with-success-text.cjs");
11
+ const require_definition$1 = require("./definition25.cjs");
12
+ const require_char_count = require("./char-count.cjs");
13
+ const require_with_contextual_help = require("./with-contextual-help.cjs");
14
+ let _microsoft_fast_element = require("@microsoft/fast-element");
15
+ let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
16
+ //#region src/lib/text-area/text-area.scss?inline
17
+ var text_area_default = ".label-wrapper{align-items:center;gap:var(--label-wrapper-gap,4px);flex-direction:row;display:flex}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 auto}:host{display:inline-block}.base{--_appearance-color-text:var(--vvd-color-canvas-text);--_appearance-color-fill:var(--vvd-color-canvas);--_appearance-color-outline:var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){.base: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(--vvd-color-neutral-700)}.base: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.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(--vvd-color-neutral-700)}.base.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:disabled{--_appearance-color-text:var(--vvd-color-neutral-600);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:var(--vvd-color-neutral-300)}.base:disabled.appearance-ghost{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-600);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:var(--vvd-color-neutral-300)}.base.disabled.appearance-ghost{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.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.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text:var(--vvd-color-neutral-600);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.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.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text:notset;--_appearance-color-fill:var(--vvd-color-alert-50);--_appearance-color-outline:transparent}.base.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.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))}.base{user-select:none;grid-template-columns:1fr max-content;row-gap:4px;inline-size:100%;display:inline-grid}.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);font:var(--vvd-typography-base);line-height:20px}.label-wrapper{grid-area:1/1/auto/2}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base);grid-column:2/-1}.control{--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in sRGB, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.control ::-webkit-scrollbar{width:4px}.control ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.control ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.control{box-sizing:border-box;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);min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8));resize:none;border:0;border-radius:8px;grid-column:1/-1;padding:8px 16px;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:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}:host([resize=both]) .control{resize:both}:host([resize=horizontal]) .control{resize:horizontal}:host([resize=vertical]) .control{resize:vertical}";
18
+ //#endregion
19
+ //#region src/shared/utils/Reflector.ts
20
+ /** Reflects observable properties of the source object to the target, either as attributes or as properties. */
21
+ var Reflector = class {
22
+ #reflectedProperties = /* @__PURE__ */ new Map();
23
+ #source;
24
+ #target;
25
+ constructor(source, target) {
26
+ this.#source = source;
27
+ this.#target = target;
28
+ }
29
+ attribute(propertyName, attributeName) {
30
+ this.#addReflectedProperty(propertyName, {
31
+ type: "attribute",
32
+ destination: attributeName
33
+ });
34
+ }
35
+ booleanAttribute(propertyName, attributeName) {
36
+ this.#addReflectedProperty(propertyName, {
37
+ type: "boolean-attribute",
38
+ destination: attributeName
39
+ });
40
+ }
41
+ property(propertyName, targetProperty, skipIfEqual = false) {
42
+ this.#addReflectedProperty(propertyName, {
43
+ type: "property",
44
+ destination: targetProperty,
45
+ skipIfEqual
46
+ });
47
+ }
48
+ destroy() {
49
+ const notifier = _microsoft_fast_element.Observable.getNotifier(this.#source);
50
+ for (const prop of this.#reflectedProperties.keys()) notifier.unsubscribe(this.#propertyChangeHandler, prop);
51
+ this.#reflectedProperties.clear();
52
+ }
53
+ #addReflectedProperty(name, reflected) {
54
+ this.#reflectedProperties.set(name, reflected);
55
+ _microsoft_fast_element.Observable.getNotifier(this.#source).subscribe(this.#propertyChangeHandler, name);
56
+ this.#propertyChangeHandler.handleChange(this.#source, name);
57
+ }
58
+ #propertyChangeHandler = { handleChange: (source, propertyName) => {
59
+ const reflectedProperty = this.#reflectedProperties.get(propertyName);
60
+ const value = source[propertyName];
61
+ switch (reflectedProperty.type) {
62
+ case "boolean-attribute":
63
+ _microsoft_fast_element.DOM.setBooleanAttribute(this.#target, reflectedProperty.destination, Boolean(value));
64
+ break;
65
+ case "attribute":
66
+ _microsoft_fast_element.DOM.setAttribute(this.#target, reflectedProperty.destination, value);
67
+ break;
68
+ case "property":
69
+ if (reflectedProperty.skipIfEqual && this.#target[reflectedProperty.destination] === value) return;
70
+ this.#target[reflectedProperty.destination] = value;
71
+ break;
72
+ }
73
+ } };
14
74
  };
15
75
  //#endregion
16
- //#region src/lib/time-picker/definition.ts
76
+ //#region src/lib/text-area/text-area.ts
77
+ /** Resize mode for a TextArea */
78
+ var TextAreaResize = {
79
+ /** No resize. */
80
+ none: "none",
81
+ /** Resize vertically and horizontally. */
82
+ both: "both",
83
+ /** Resize horizontally. */
84
+ horizontal: "horizontal",
85
+ /** Resize vertically. */
86
+ vertical: "vertical"
87
+ };
88
+ /**
89
+ * @public
90
+ * @component text-area
91
+ * @slot helper-text - Describes how to use the Text Area. Alternative to the `helper-text` attribute.
92
+ * @event {CustomEvent<undefined>} change - Emits a custom 'change' event when the textarea emits a change event
93
+ * @event {Event} input - Fires when the value of the element changes.
94
+ * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
95
+ * @testAction fill fill #control
96
+ * @testAction clear clear #control
97
+ * @testRef control shadow .control
98
+ */
99
+ var TextArea = class extends require_with_contextual_help.WithContextualHelp(require_mixins.WithFeedback(require_char_count.WithCharCount(require_with_error_text.WithErrorText(require_with_success_text.WithSuccessText(require_form_element.FormElement(require_delegates_aria.DelegatesAria(require_form_associated.FormAssociated(require_vivid_element.VividElement)))))))) {
100
+ constructor(..._args) {
101
+ super(..._args);
102
+ this.proxy = document.createElement("textarea");
103
+ this.resize = TextAreaResize.none;
104
+ this.cols = 20;
105
+ this.handleTextInput = () => {
106
+ this.value = this.control.value;
107
+ };
108
+ }
109
+ /** @internal */
110
+ readOnlyChanged() {
111
+ /* v8 ignore if -- @preserve */
112
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.readOnly = this.readOnly;
113
+ }
114
+ /** @internal */
115
+ autofocusChanged() {
116
+ /* v8 ignore if -- @preserve */
117
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.autofocus = this.autofocus;
118
+ }
119
+ /** @internal */
120
+ listChanged() {
121
+ /* v8 ignore if -- @preserve */
122
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.setAttribute("list", this.list);
123
+ }
124
+ /** @internal */
125
+ maxlengthChanged() {
126
+ /* v8 ignore if -- @preserve */
127
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.maxLength = this.maxlength;
128
+ }
129
+ /** @internal */
130
+ minlengthChanged() {
131
+ /* v8 ignore if -- @preserve */
132
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.minLength = this.minlength;
133
+ }
134
+ /** @internal */
135
+ spellcheckChanged() {
136
+ /* v8 ignore if -- @preserve */
137
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.spellcheck = this.spellcheck;
138
+ }
139
+ /** Selects all the text in the text area */
140
+ select() {
141
+ this.control.select();
142
+ }
143
+ /** @internal */
144
+ valueChanged(previous, next) {
145
+ super.valueChanged(previous, next);
146
+ if (this.charCount && this.maxlength) this._updateCharCountRemaining();
147
+ }
148
+ /**
149
+ * Change event handler for inner control.
150
+ * @remarks
151
+ * "Change" events are not `composable` so they will not
152
+ * permeate the shadow DOM boundary. This fn effectively proxies
153
+ * the change event, emitting a `change` event whenever the internal
154
+ * control emits a `change` event
155
+ * @internal
156
+ */
157
+ handleChange() {
158
+ this.$emit("change");
159
+ }
160
+ /** Validates the Text Area against its constraints (e.g. `maxlength`, `required`) and updates its validity state. */
161
+ validate() {
162
+ super.validate(this.control);
163
+ }
164
+ #reflectToTextArea;
165
+ connectedCallback() {
166
+ super.connectedCallback();
167
+ this.#reflectToTextArea = new Reflector(this, this.control);
168
+ this.#reflectToTextArea.property("value", "value", true);
169
+ this._renderCharCountRemaining();
170
+ }
171
+ disconnectedCallback() {
172
+ super.disconnectedCallback();
173
+ this.#reflectToTextArea.destroy();
174
+ }
175
+ };
176
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], TextArea.prototype, "readOnly", void 0);
177
+ require_decorate.__decorate([_microsoft_fast_element.attr], TextArea.prototype, "resize", void 0);
178
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], TextArea.prototype, "autofocus", void 0);
179
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "form" })], TextArea.prototype, "formId", void 0);
180
+ require_decorate.__decorate([_microsoft_fast_element.attr], TextArea.prototype, "list", void 0);
181
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], TextArea.prototype, "maxlength", void 0);
182
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], TextArea.prototype, "minlength", void 0);
183
+ require_decorate.__decorate([_microsoft_fast_element.attr], TextArea.prototype, "placeholder", void 0);
184
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
185
+ converter: _microsoft_fast_element.nullableNumberConverter,
186
+ mode: "fromView"
187
+ })], TextArea.prototype, "cols", void 0);
188
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
189
+ converter: _microsoft_fast_element.nullableNumberConverter,
190
+ mode: "fromView"
191
+ })], TextArea.prototype, "rows", void 0);
192
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], TextArea.prototype, "spellcheck", void 0);
193
+ require_decorate.__decorate([_microsoft_fast_element.observable], TextArea.prototype, "defaultSlottedNodes", void 0);
194
+ require_decorate.__decorate([_microsoft_fast_element.attr], TextArea.prototype, "wrap", void 0);
195
+ //#endregion
196
+ //#region src/lib/text-area/text-area.template.ts
197
+ function renderLabel() {
198
+ return _microsoft_fast_element.html` <label for="control" class="label">
199
+ ${(x) => x.label}
200
+ </label>`;
201
+ }
202
+ var TextAreaTemplate = (context) => {
203
+ return _microsoft_fast_element.html`
204
+ <div
205
+ class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("base", ["readonly", x.readOnly], ["placeholder", Boolean(x.placeholder)], ["disabled", x.disabled], ["error", Boolean(x.errorValidationMessage)], ["has-value", Boolean(x.value)], ["success", !!x.successText])}"
206
+ >
207
+ ${(0, _microsoft_fast_element.when)((x) => x.charCount && x.maxlength, (x) => x._getCharCountTemplate(context))}
208
+ <div
209
+ class="label-wrapper"
210
+ ?hidden=${(x) => !x.label && !x._hasContextualHelp}
211
+ >
212
+ ${(0, _microsoft_fast_element.when)((x) => x.label, renderLabel())}
213
+ <slot
214
+ name="contextual-help"
215
+ ${(0, _microsoft_fast_element.slotted)("_contextualHelpSlottedContent")}
216
+ ></slot>
217
+ </div>
218
+ <textarea
219
+ class="control"
220
+ id="control"
221
+ ?autofocus="${(x) => x.autofocus}"
222
+ placeholder="${(x) => x.placeholder ? x.placeholder : null}"
223
+ name="${(x) => x.name ? x.name : null}"
224
+ list="${(x) => x.list}"
225
+ minlength="${(x) => x.minlength ? x.minlength : null}"
226
+ maxlength="${(x) => x.maxlength ? x.maxlength : null}"
227
+ rows="${(x) => x.rows ? x.rows : null}"
228
+ cols="${(x) => x.cols ? x.cols : null}"
229
+ wrap="${(x) => x.wrap ? x.wrap : null}"
230
+ ?readonly="${(x) => x.readOnly}"
231
+ ?disabled="${(x) => x.disabled}"
232
+ ?required="${(x) => x.required}"
233
+ ?spellcheck="${(x) => x.spellcheck}"
234
+ ${require_delegates_aria.delegateAria({ ariaDescribedBy: (x) => `${x._feedbackDescribedBy} ${x.charCount && x.maxlength ? x._charCountDescribedBy : null}` })}
235
+ @input="${(x) => x.handleTextInput()}"
236
+ @change="${(x) => x.handleChange()}"
237
+ ${(0, _microsoft_fast_element.ref)("control")}
238
+ >
239
+ </textarea>
240
+ ${(x) => x._getFeedbackTemplate(context)}
241
+ </div>
242
+ `;
243
+ };
244
+ //#endregion
245
+ //#region src/lib/text-area/definition.ts
17
246
  /** @internal */
18
- var timePickerDefinition = require_vivid_element.defineVividComponent("time-picker", require_time_selection_picker_template.TimePicker, TimePickerTemplate, [
19
- require_definition$3.textFieldDefinition,
20
- require_definition$1.popupDefinition,
21
- require_definition.buttonDefinition,
22
- require_time_selection_picker_template.inlineTimePickerDefinition,
23
- require_definition$2.visuallyHiddenDefinition
247
+ var textAreaDefinition = require_vivid_element.defineVividComponent("text-area", TextArea, TextAreaTemplate, [
248
+ require_mixins.feedbackMessageDefinition,
249
+ require_definition.visuallyHiddenDefinition,
250
+ require_definition$1.contextualHelpDefinition
24
251
  ], {
25
- styles: require_picker_field_template.picker_field_default,
252
+ styles: text_area_default,
26
253
  shadowOptions: { delegatesFocus: true }
27
254
  });
28
255
  /**
29
- * Registers the time-picker element with the design system.
256
+ * Registers the text-field elements with the design system.
30
257
  *
31
258
  * @param prefix - the prefix to use for the component name
32
259
  */
33
- var registerTimePicker = require_vivid_element.createRegisterFunction(timePickerDefinition);
260
+ var registerTextArea = require_vivid_element.createRegisterFunction(textAreaDefinition);
34
261
  //#endregion
35
- Object.defineProperty(exports, "registerTimePicker", {
262
+ Object.defineProperty(exports, "TextArea", {
263
+ enumerable: true,
264
+ get: function() {
265
+ return TextArea;
266
+ }
267
+ });
268
+ Object.defineProperty(exports, "registerTextArea", {
36
269
  enumerable: true,
37
270
  get: function() {
38
- return registerTimePicker;
271
+ return registerTextArea;
39
272
  }
40
273
  });
41
- Object.defineProperty(exports, "timePickerDefinition", {
274
+ Object.defineProperty(exports, "textAreaDefinition", {
42
275
  enumerable: true,
43
276
  get: function() {
44
- return timePickerDefinition;
277
+ return textAreaDefinition;
45
278
  }
46
279
  });
@@ -1,35 +1,261 @@
1
- import { d as createRegisterFunction, u as defineVividComponent } from "./vivid-element.js";
2
- import { t as buttonDefinition } from "./definition6.js";
3
- import { t as popupDefinition } from "./definition9.js";
1
+ import { d as createRegisterFunction, t as VividElement, u as defineVividComponent } from "./vivid-element.js";
2
+ import { t as __decorate } from "./decorate.js";
3
+ import { n as delegateAria, t as DelegatesAria } from "./delegates-aria.js";
4
+ import { n as FormAssociated } from "./form-associated.js";
4
5
  import { n as visuallyHiddenDefinition } from "./definition22.js";
5
- import { n as textFieldDefinition } from "./definition26.js";
6
- import { r as picker_field_default, t as PickerFieldTemplate } from "./picker-field.template.js";
7
- import { n as TimePicker, s as inlineTimePickerDefinition, t as TimeSelectionPickerTemplate } from "./time-selection-picker.template.js";
8
- //#region src/lib/time-picker/time-picker.template.ts
9
- var TimePickerTemplate = (context) => {
10
- return PickerFieldTemplate(context, TimeSelectionPickerTemplate(context, 6), {
11
- withSeparator: true,
12
- padded: false
13
- });
6
+ import { r as feedbackMessageDefinition, t as WithFeedback } from "./mixins.js";
7
+ import { t as FormElement } from "./form-element.js";
8
+ import { t as WithErrorText } from "./with-error-text.js";
9
+ import { t as WithSuccessText } from "./with-success-text.js";
10
+ import { t as contextualHelpDefinition } from "./definition25.js";
11
+ import { t as WithCharCount } from "./char-count.js";
12
+ import { t as WithContextualHelp } from "./with-contextual-help.js";
13
+ import { DOM, Observable, attr, html, nullableNumberConverter, observable, ref, slotted, when } from "@microsoft/fast-element";
14
+ import { classNames } from "@microsoft/fast-web-utilities";
15
+ //#region src/lib/text-area/text-area.scss?inline
16
+ var text_area_default = ".label-wrapper{align-items:center;gap:var(--label-wrapper-gap,4px);flex-direction:row;display:flex}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 auto}:host{display:inline-block}.base{--_appearance-color-text:var(--vvd-color-canvas-text);--_appearance-color-fill:var(--vvd-color-canvas);--_appearance-color-outline:var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){.base: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(--vvd-color-neutral-700)}.base: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.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(--vvd-color-neutral-700)}.base.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:disabled{--_appearance-color-text:var(--vvd-color-neutral-600);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:var(--vvd-color-neutral-300)}.base:disabled.appearance-ghost{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-600);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:var(--vvd-color-neutral-300)}.base.disabled.appearance-ghost{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.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.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text:var(--vvd-color-neutral-600);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.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.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text:notset;--_appearance-color-fill:var(--vvd-color-alert-50);--_appearance-color-outline:transparent}.base.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.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))}.base{user-select:none;grid-template-columns:1fr max-content;row-gap:4px;inline-size:100%;display:inline-grid}.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);font:var(--vvd-typography-base);line-height:20px}.label-wrapper{grid-area:1/1/auto/2}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base);grid-column:2/-1}.control{--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in sRGB, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.control ::-webkit-scrollbar{width:4px}.control ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.control ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.control{box-sizing:border-box;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);min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8));resize:none;border:0;border-radius:8px;grid-column:1/-1;padding:8px 16px;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:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}:host([resize=both]) .control{resize:both}:host([resize=horizontal]) .control{resize:horizontal}:host([resize=vertical]) .control{resize:vertical}";
17
+ //#endregion
18
+ //#region src/shared/utils/Reflector.ts
19
+ /** Reflects observable properties of the source object to the target, either as attributes or as properties. */
20
+ var Reflector = class {
21
+ #reflectedProperties = /* @__PURE__ */ new Map();
22
+ #source;
23
+ #target;
24
+ constructor(source, target) {
25
+ this.#source = source;
26
+ this.#target = target;
27
+ }
28
+ attribute(propertyName, attributeName) {
29
+ this.#addReflectedProperty(propertyName, {
30
+ type: "attribute",
31
+ destination: attributeName
32
+ });
33
+ }
34
+ booleanAttribute(propertyName, attributeName) {
35
+ this.#addReflectedProperty(propertyName, {
36
+ type: "boolean-attribute",
37
+ destination: attributeName
38
+ });
39
+ }
40
+ property(propertyName, targetProperty, skipIfEqual = false) {
41
+ this.#addReflectedProperty(propertyName, {
42
+ type: "property",
43
+ destination: targetProperty,
44
+ skipIfEqual
45
+ });
46
+ }
47
+ destroy() {
48
+ const notifier = Observable.getNotifier(this.#source);
49
+ for (const prop of this.#reflectedProperties.keys()) notifier.unsubscribe(this.#propertyChangeHandler, prop);
50
+ this.#reflectedProperties.clear();
51
+ }
52
+ #addReflectedProperty(name, reflected) {
53
+ this.#reflectedProperties.set(name, reflected);
54
+ Observable.getNotifier(this.#source).subscribe(this.#propertyChangeHandler, name);
55
+ this.#propertyChangeHandler.handleChange(this.#source, name);
56
+ }
57
+ #propertyChangeHandler = { handleChange: (source, propertyName) => {
58
+ const reflectedProperty = this.#reflectedProperties.get(propertyName);
59
+ const value = source[propertyName];
60
+ switch (reflectedProperty.type) {
61
+ case "boolean-attribute":
62
+ DOM.setBooleanAttribute(this.#target, reflectedProperty.destination, Boolean(value));
63
+ break;
64
+ case "attribute":
65
+ DOM.setAttribute(this.#target, reflectedProperty.destination, value);
66
+ break;
67
+ case "property":
68
+ if (reflectedProperty.skipIfEqual && this.#target[reflectedProperty.destination] === value) return;
69
+ this.#target[reflectedProperty.destination] = value;
70
+ break;
71
+ }
72
+ } };
73
+ };
74
+ //#endregion
75
+ //#region src/lib/text-area/text-area.ts
76
+ /** Resize mode for a TextArea */
77
+ var TextAreaResize = {
78
+ /** No resize. */
79
+ none: "none",
80
+ /** Resize vertically and horizontally. */
81
+ both: "both",
82
+ /** Resize horizontally. */
83
+ horizontal: "horizontal",
84
+ /** Resize vertically. */
85
+ vertical: "vertical"
86
+ };
87
+ /**
88
+ * @public
89
+ * @component text-area
90
+ * @slot helper-text - Describes how to use the Text Area. Alternative to the `helper-text` attribute.
91
+ * @event {CustomEvent<undefined>} change - Emits a custom 'change' event when the textarea emits a change event
92
+ * @event {Event} input - Fires when the value of the element changes.
93
+ * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
94
+ * @testAction fill fill #control
95
+ * @testAction clear clear #control
96
+ * @testRef control shadow .control
97
+ */
98
+ var TextArea = class extends WithContextualHelp(WithFeedback(WithCharCount(WithErrorText(WithSuccessText(FormElement(DelegatesAria(FormAssociated(VividElement)))))))) {
99
+ constructor(..._args) {
100
+ super(..._args);
101
+ this.proxy = document.createElement("textarea");
102
+ this.resize = TextAreaResize.none;
103
+ this.cols = 20;
104
+ this.handleTextInput = () => {
105
+ this.value = this.control.value;
106
+ };
107
+ }
108
+ /** @internal */
109
+ readOnlyChanged() {
110
+ /* v8 ignore if -- @preserve */
111
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.readOnly = this.readOnly;
112
+ }
113
+ /** @internal */
114
+ autofocusChanged() {
115
+ /* v8 ignore if -- @preserve */
116
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.autofocus = this.autofocus;
117
+ }
118
+ /** @internal */
119
+ listChanged() {
120
+ /* v8 ignore if -- @preserve */
121
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.setAttribute("list", this.list);
122
+ }
123
+ /** @internal */
124
+ maxlengthChanged() {
125
+ /* v8 ignore if -- @preserve */
126
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.maxLength = this.maxlength;
127
+ }
128
+ /** @internal */
129
+ minlengthChanged() {
130
+ /* v8 ignore if -- @preserve */
131
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.minLength = this.minlength;
132
+ }
133
+ /** @internal */
134
+ spellcheckChanged() {
135
+ /* v8 ignore if -- @preserve */
136
+ if (this.proxy instanceof HTMLTextAreaElement) this.proxy.spellcheck = this.spellcheck;
137
+ }
138
+ /** Selects all the text in the text area */
139
+ select() {
140
+ this.control.select();
141
+ }
142
+ /** @internal */
143
+ valueChanged(previous, next) {
144
+ super.valueChanged(previous, next);
145
+ if (this.charCount && this.maxlength) this._updateCharCountRemaining();
146
+ }
147
+ /**
148
+ * Change event handler for inner control.
149
+ * @remarks
150
+ * "Change" events are not `composable` so they will not
151
+ * permeate the shadow DOM boundary. This fn effectively proxies
152
+ * the change event, emitting a `change` event whenever the internal
153
+ * control emits a `change` event
154
+ * @internal
155
+ */
156
+ handleChange() {
157
+ this.$emit("change");
158
+ }
159
+ /** Validates the Text Area against its constraints (e.g. `maxlength`, `required`) and updates its validity state. */
160
+ validate() {
161
+ super.validate(this.control);
162
+ }
163
+ #reflectToTextArea;
164
+ connectedCallback() {
165
+ super.connectedCallback();
166
+ this.#reflectToTextArea = new Reflector(this, this.control);
167
+ this.#reflectToTextArea.property("value", "value", true);
168
+ this._renderCharCountRemaining();
169
+ }
170
+ disconnectedCallback() {
171
+ super.disconnectedCallback();
172
+ this.#reflectToTextArea.destroy();
173
+ }
174
+ };
175
+ __decorate([attr({ mode: "boolean" })], TextArea.prototype, "readOnly", void 0);
176
+ __decorate([attr], TextArea.prototype, "resize", void 0);
177
+ __decorate([attr({ mode: "boolean" })], TextArea.prototype, "autofocus", void 0);
178
+ __decorate([attr({ attribute: "form" })], TextArea.prototype, "formId", void 0);
179
+ __decorate([attr], TextArea.prototype, "list", void 0);
180
+ __decorate([attr({ converter: nullableNumberConverter })], TextArea.prototype, "maxlength", void 0);
181
+ __decorate([attr({ converter: nullableNumberConverter })], TextArea.prototype, "minlength", void 0);
182
+ __decorate([attr], TextArea.prototype, "placeholder", void 0);
183
+ __decorate([attr({
184
+ converter: nullableNumberConverter,
185
+ mode: "fromView"
186
+ })], TextArea.prototype, "cols", void 0);
187
+ __decorate([attr({
188
+ converter: nullableNumberConverter,
189
+ mode: "fromView"
190
+ })], TextArea.prototype, "rows", void 0);
191
+ __decorate([attr({ mode: "boolean" })], TextArea.prototype, "spellcheck", void 0);
192
+ __decorate([observable], TextArea.prototype, "defaultSlottedNodes", void 0);
193
+ __decorate([attr], TextArea.prototype, "wrap", void 0);
194
+ //#endregion
195
+ //#region src/lib/text-area/text-area.template.ts
196
+ function renderLabel() {
197
+ return html` <label for="control" class="label">
198
+ ${(x) => x.label}
199
+ </label>`;
200
+ }
201
+ var TextAreaTemplate = (context) => {
202
+ return html`
203
+ <div
204
+ class="${(x) => classNames("base", ["readonly", x.readOnly], ["placeholder", Boolean(x.placeholder)], ["disabled", x.disabled], ["error", Boolean(x.errorValidationMessage)], ["has-value", Boolean(x.value)], ["success", !!x.successText])}"
205
+ >
206
+ ${when((x) => x.charCount && x.maxlength, (x) => x._getCharCountTemplate(context))}
207
+ <div
208
+ class="label-wrapper"
209
+ ?hidden=${(x) => !x.label && !x._hasContextualHelp}
210
+ >
211
+ ${when((x) => x.label, renderLabel())}
212
+ <slot
213
+ name="contextual-help"
214
+ ${slotted("_contextualHelpSlottedContent")}
215
+ ></slot>
216
+ </div>
217
+ <textarea
218
+ class="control"
219
+ id="control"
220
+ ?autofocus="${(x) => x.autofocus}"
221
+ placeholder="${(x) => x.placeholder ? x.placeholder : null}"
222
+ name="${(x) => x.name ? x.name : null}"
223
+ list="${(x) => x.list}"
224
+ minlength="${(x) => x.minlength ? x.minlength : null}"
225
+ maxlength="${(x) => x.maxlength ? x.maxlength : null}"
226
+ rows="${(x) => x.rows ? x.rows : null}"
227
+ cols="${(x) => x.cols ? x.cols : null}"
228
+ wrap="${(x) => x.wrap ? x.wrap : null}"
229
+ ?readonly="${(x) => x.readOnly}"
230
+ ?disabled="${(x) => x.disabled}"
231
+ ?required="${(x) => x.required}"
232
+ ?spellcheck="${(x) => x.spellcheck}"
233
+ ${delegateAria({ ariaDescribedBy: (x) => `${x._feedbackDescribedBy} ${x.charCount && x.maxlength ? x._charCountDescribedBy : null}` })}
234
+ @input="${(x) => x.handleTextInput()}"
235
+ @change="${(x) => x.handleChange()}"
236
+ ${ref("control")}
237
+ >
238
+ </textarea>
239
+ ${(x) => x._getFeedbackTemplate(context)}
240
+ </div>
241
+ `;
14
242
  };
15
243
  //#endregion
16
- //#region src/lib/time-picker/definition.ts
244
+ //#region src/lib/text-area/definition.ts
17
245
  /** @internal */
18
- var timePickerDefinition = defineVividComponent("time-picker", TimePicker, TimePickerTemplate, [
19
- textFieldDefinition,
20
- popupDefinition,
21
- buttonDefinition,
22
- inlineTimePickerDefinition,
23
- visuallyHiddenDefinition
246
+ var textAreaDefinition = defineVividComponent("text-area", TextArea, TextAreaTemplate, [
247
+ feedbackMessageDefinition,
248
+ visuallyHiddenDefinition,
249
+ contextualHelpDefinition
24
250
  ], {
25
- styles: picker_field_default,
251
+ styles: text_area_default,
26
252
  shadowOptions: { delegatesFocus: true }
27
253
  });
28
254
  /**
29
- * Registers the time-picker element with the design system.
255
+ * Registers the text-field elements with the design system.
30
256
  *
31
257
  * @param prefix - the prefix to use for the component name
32
258
  */
33
- var registerTimePicker = createRegisterFunction(timePickerDefinition);
259
+ var registerTextArea = createRegisterFunction(textAreaDefinition);
34
260
  //#endregion
35
- export { timePickerDefinition as n, registerTimePicker as t };
261
+ export { textAreaDefinition as n, TextArea as r, registerTextArea as t };