@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,261 +1,134 @@
1
1
  import { d as createRegisterFunction, t as VividElement, u as defineVividComponent } from "./vivid-element.js";
2
+ import { t as iconDefinition } from "./definition.js";
2
3
  import { t as __decorate } from "./decorate.js";
4
+ import { t as Icon } from "./icon.js";
5
+ import { a as affixIconTemplateFactory, i as IconWrapper, t as AffixIcon } from "./affix.js";
3
6
  import { n as delegateAria, t as DelegatesAria } from "./delegates-aria.js";
4
- import { n as FormAssociated } from "./form-associated.js";
5
- import { n as visuallyHiddenDefinition } from "./definition22.js";
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";
7
+ import { t as Localized } from "./localized.js";
8
+ import { attr, html, when } from "@microsoft/fast-element";
14
9
  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
- };
10
+ //#region src/lib/tag/tag.ts
87
11
  /**
88
12
  * @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
13
+ * @component tag
14
+ * @slot icon - The preferred way to add an icon to the component.
15
+ * @event {CustomEvent<undefined>} selected-change - Fires when the selected state changes
16
+ * @event {CustomEvent<undefined>} removed - Fires when the tag is removed
17
+ * @testSelector byLabel byLabel
18
+ * @testAction click click #base
19
+ * @testAction remove click #dismissButton
20
+ * @testAction select toggleTag true
21
+ * @testAction unselect toggleTag false
22
+ * @testQuery selected selected true
23
+ * @testQuery unselected selected false
24
+ * @testQuery disabled disabled true
25
+ * @testQuery !disabled disabled false
26
+ * @testRef base shadow .base
27
+ * @testRef dismissButton shadow .dismiss-button
97
28
  */
98
- var TextArea = class extends WithContextualHelp(WithFeedback(WithCharCount(WithErrorText(WithSuccessText(FormElement(DelegatesAria(FormAssociated(VividElement)))))))) {
29
+ var Tag = class extends Localized(DelegatesAria(AffixIcon(VividElement))) {
99
30
  constructor(..._args) {
100
31
  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;
32
+ this.removable = false;
33
+ this.disabled = false;
34
+ this.selectable = false;
35
+ this.selected = false;
36
+ this.#select = () => {
37
+ if (!this.selectable || this.disabled) return;
38
+ this.selected = !this.selected;
39
+ this.$emit("selected-change");
106
40
  };
107
41
  }
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;
42
+ /** Removes the Tag from its Tag Group and fires the `removed` event. */
43
+ remove() {
44
+ if (!this.removable || this.selectable) return;
45
+ this.$emit("removed");
46
+ this.parentElement?.removeChild(this);
132
47
  }
48
+ #select;
133
49
  /** @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();
50
+ handleKeydown(e) {
51
+ if (e.key === "Enter" || e.key === " ") {
52
+ e.preventDefault();
53
+ this.#select();
54
+ }
55
+ if (e.key === "Delete" || e.key === "Backspace") {
56
+ e.preventDefault();
57
+ this.remove();
58
+ }
59
+ return true;
141
60
  }
142
61
  /** @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
- /** {@inheritDoc (FormAssociated:interface).validate} */
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();
62
+ handleClick() {
63
+ this.#select();
173
64
  }
174
65
  };
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);
66
+ __decorate([attr], Tag.prototype, "connotation", void 0);
67
+ __decorate([attr], Tag.prototype, "shape", void 0);
68
+ __decorate([attr], Tag.prototype, "appearance", void 0);
69
+ __decorate([attr], Tag.prototype, "label", void 0);
70
+ __decorate([attr({ mode: "boolean" })], Tag.prototype, "removable", void 0);
71
+ __decorate([attr({ mode: "boolean" })], Tag.prototype, "disabled", void 0);
72
+ __decorate([attr({ mode: "boolean" })], Tag.prototype, "selectable", void 0);
73
+ __decorate([attr({ mode: "boolean" })], Tag.prototype, "selected", void 0);
74
+ //#endregion
75
+ //#region src/lib/tag/tag.scss?inline
76
+ var tag_default = ".base.connotation-cta{--_connotation-color-primary:var(--vvd-tag-cta-primary,var(--vvd-color-cta-500));--_connotation-color-primary-text:var(--vvd-tag-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-soft:var(--vvd-tag-cta-soft,var(--vvd-color-cta-100));--_connotation-color-contrast:var(--vvd-tag-cta-contrast,var(--vvd-color-cta-800));--_connotation-color-pale:var(--vvd-tag-cta-pale,var(--vvd-color-cta-300));--_connotation-color-fierce:var(--vvd-tag-cta-fierce,var(--vvd-color-cta-700));--_connotation-color-firm:var(--vvd-tag-cta-firm,var(--vvd-color-cta-600));--_connotation-color-firm-all:var(--vvd-tag-cta-firm-all,var(--vvd-color-cta-600));--_connotation-color-faint:var(--vvd-tag-cta-faint,var(--vvd-color-cta-50));--_connotation-color-dim:var(--vvd-tag-cta-dim,var(--vvd-color-cta-200))}.base.connotation-success{--_connotation-color-primary:var(--vvd-tag-success-primary,var(--vvd-color-success-500));--_connotation-color-primary-text:var(--vvd-tag-success-primary-text,var(--vvd-color-canvas));--_connotation-color-soft:var(--vvd-tag-success-soft,var(--vvd-color-success-100));--_connotation-color-contrast:var(--vvd-tag-success-contrast,var(--vvd-color-success-800));--_connotation-color-pale:var(--vvd-tag-success-pale,var(--vvd-color-success-300));--_connotation-color-fierce:var(--vvd-tag-success-fierce,var(--vvd-color-success-700));--_connotation-color-firm:var(--vvd-tag-success-firm,var(--vvd-color-success-600));--_connotation-color-firm-all:var(--vvd-tag-success-firm-all,var(--vvd-color-success-600));--_connotation-color-faint:var(--vvd-tag-success-faint,var(--vvd-color-success-50));--_connotation-color-dim:var(--vvd-tag-success-dim,var(--vvd-color-success-200))}.base.connotation-alert{--_connotation-color-primary:var(--vvd-tag-alert-primary,var(--vvd-color-alert-500));--_connotation-color-primary-text:var(--vvd-tag-alert-primary-text,var(--vvd-color-canvas));--_connotation-color-soft:var(--vvd-tag-alert-soft,var(--vvd-color-alert-100));--_connotation-color-contrast:var(--vvd-tag-alert-contrast,var(--vvd-color-alert-800));--_connotation-color-pale:var(--vvd-tag-alert-pale,var(--vvd-color-alert-300));--_connotation-color-fierce:var(--vvd-tag-alert-fierce,var(--vvd-color-alert-700));--_connotation-color-firm:var(--vvd-tag-alert-firm,var(--vvd-color-alert-600));--_connotation-color-firm-all:var(--vvd-tag-alert-firm-all,var(--vvd-color-alert-600));--_connotation-color-faint:var(--vvd-tag-alert-faint,var(--vvd-color-alert-50));--_connotation-color-dim:var(--vvd-tag-alert-dim,var(--vvd-color-alert-200))}.base.connotation-warning{--_connotation-color-primary:var(--vvd-tag-warning-primary,var(--vvd-color-warning-300));--_connotation-color-primary-text:var(--vvd-tag-warning-primary-text,var(--vvd-color-canvas-text));--_connotation-color-soft:var(--vvd-tag-warning-soft,var(--vvd-color-warning-100));--_connotation-color-contrast:var(--vvd-tag-warning-contrast,var(--vvd-color-warning-800));--_connotation-color-pale:var(--vvd-tag-warning-pale,var(--vvd-color-warning-300));--_connotation-color-fierce:var(--vvd-tag-warning-fierce,var(--vvd-color-warning-700));--_connotation-color-firm:var(--vvd-tag-warning-firm,var(--vvd-color-warning-600));--_connotation-color-firm-all:var(--vvd-tag-warning-firm-all,var(--vvd-color-warning-600));--_connotation-color-faint:var(--vvd-tag-warning-faint,var(--vvd-color-warning-50));--_connotation-color-dim:var(--vvd-tag-warning-dim,var(--vvd-color-warning-200))}.base.connotation-information{--_connotation-color-primary:var(--vvd-tag-information-primary,var(--vvd-color-information-500));--_connotation-color-primary-text:var(--vvd-tag-information-primary-text,var(--vvd-color-canvas));--_connotation-color-soft:var(--vvd-tag-information-soft,var(--vvd-color-information-100));--_connotation-color-contrast:var(--vvd-tag-information-contrast,var(--vvd-color-information-800));--_connotation-color-pale:var(--vvd-tag-information-pale,var(--vvd-color-information-300));--_connotation-color-fierce:var(--vvd-tag-information-fierce,var(--vvd-color-information-700));--_connotation-color-firm:var(--vvd-tag-information-firm,var(--vvd-color-information-600));--_connotation-color-firm-all:var(--vvd-tag-information-firm-all,var(--vvd-color-information-600));--_connotation-color-faint:var(--vvd-tag-information-faint,var(--vvd-color-information-50));--_connotation-color-dim:var(--vvd-tag-information-dim,var(--vvd-color-information-200))}.base.connotation-announcement{--_connotation-color-primary:var(--vvd-tag-announcement-primary,var(--vvd-color-announcement-500));--_connotation-color-primary-text:var(--vvd-tag-announcement-primary-text,var(--vvd-color-canvas));--_connotation-color-soft:var(--vvd-tag-announcement-soft,var(--vvd-color-announcement-100));--_connotation-color-contrast:var(--vvd-tag-announcement-contrast,var(--vvd-color-announcement-800));--_connotation-color-pale:var(--vvd-tag-announcement-pale,var(--vvd-color-announcement-300));--_connotation-color-fierce:var(--vvd-tag-announcement-fierce,var(--vvd-color-announcement-700));--_connotation-color-firm:var(--vvd-tag-announcement-firm,var(--vvd-color-announcement-600));--_connotation-color-firm-all:var(--vvd-tag-announcement-firm-all,var(--vvd-color-announcement-600));--_connotation-color-faint:var(--vvd-tag-announcement-faint,var(--vvd-color-announcement-50));--_connotation-color-dim:var(--vvd-tag-announcement-dim,var(--vvd-color-announcement-200))}.base:not(.connotation-cta,.connotation-success,.connotation-alert,.connotation-warning,.connotation-information,.connotation-announcement){--_connotation-color-primary:var(--vvd-tag-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-primary-text:var(--vvd-tag-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-soft:var(--vvd-tag-accent-soft,var(--vvd-color-neutral-100));--_connotation-color-contrast:var(--vvd-tag-accent-contrast,var(--vvd-color-neutral-800));--_connotation-color-pale:var(--vvd-tag-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-fierce:var(--vvd-tag-accent-fierce,var(--vvd-color-neutral-700));--_connotation-color-firm:var(--vvd-tag-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-firm-all:var(--vvd-tag-accent-firm-all,var(--vvd-color-neutral-600));--_connotation-color-faint:var(--vvd-tag-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-dim:var(--vvd-tag-accent-dim,var(--vvd-color-neutral-200))}.base{--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}.base.appearance-duotone{--_appearance-color-text:var(--_connotation-color-firm-all);--_appearance-color-fill:transparent;--_appearance-color-outline:var(--_connotation-color-pale)}.base.appearance-subtle-light{--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:color-mix(in sRGB, var(--_connotation-color-primary), transparent 85%);--_appearance-color-outline:transparent}@media (hover:hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}.base:hover:where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text:var(--_connotation-color-firm-all);--_appearance-color-fill:transparent;--_appearance-color-outline:var(--_connotation-color-firm-all)}.base:hover:where(:not(.disabled,:disabled,.readonly)).appearance-subtle-light{--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:color-mix(in sRGB, var(--_connotation-color-primary), transparent 75%);--_appearance-color-outline:transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}.base.hover:where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text:var(--_connotation-color-firm-all);--_appearance-color-fill:transparent;--_appearance-color-outline:var(--_connotation-color-firm-all)}.base.hover:where(:not(.disabled,:disabled,.readonly)).appearance-subtle-light{--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:color-mix(in sRGB, var(--_connotation-color-primary), transparent 75%);--_appearance-color-outline:transparent}.base:active:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:var(--_connotation-color-pale);--_appearance-color-outline:transparent}.base:active:where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text:var(--_connotation-color-firm-all);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:var(--_connotation-color-pale)}.base:active:where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:color-mix(in sRGB, var(--_connotation-color-primary), transparent 65%);--_appearance-color-outline:transparent}.base.active:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:var(--_connotation-color-pale);--_appearance-color-outline:transparent}.base.active:where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text:var(--_connotation-color-firm-all);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:var(--_connotation-color-pale)}.base.active:where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text:var(--_connotation-color-contrast);--_appearance-color-fill:color-mix(in sRGB, var(--_connotation-color-primary), transparent 65%);--_appearance-color-outline:transparent}.base:disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:transparent}.base:disabled.appearance-duotone{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:var(--vvd-color-neutral-100)}.base:disabled.appearance-subtle-light,.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:transparent}.base.disabled.appearance-duotone{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:var(--vvd-color-neutral-100)}.base.disabled.appearance-subtle-light{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:transparent}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary);--_appearance-color-outline:transparent}.base.selected:where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text:var(--_connotation-color-firm-all);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:var(--_connotation-color-pale)}.base.selected:where(:not(.disabled,:disabled)).appearance-subtle-light{--_appearance-color-text:var(--vvd-color-canvas);--_appearance-color-fill:var(--_connotation-color-firm);--_appearance-color-outline:transparent}.base{--tag-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16));box-sizing:border-box;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base-bold);vertical-align:middle;border:none;align-items:center;column-gap:8px;max-inline-size:100%;padding-inline:8px;display:inline-flex;position:relative}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base: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))}.base{user-select:none}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto;padding-inline:8px 1px}.label{text-overflow:ellipsis;white-space:nowrap;max-inline-size:100%;overflow:hidden}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer;border:none;align-items:center;padding:4px;display:flex;position:relative;inset-inline-start:-4px}.dismiss-button: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))}";
194
77
  //#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>`;
78
+ //#region src/lib/tag/tag.template.ts
79
+ var getClasses = (x) => classNames("base", ["disabled", x.disabled], ["selectable", x.selectable], ["selected", x.selectable && x.selected], ["removable", x.removable && !x.selectable], [`connotation-${x.connotation}`, Boolean(x.connotation)], [`appearance-${x.appearance}`, Boolean(x.appearance)], [`shape-${x.shape}`, Boolean(x.shape)]);
80
+ function renderDismissButton(iconTag) {
81
+ return html`
82
+ <button
83
+ class="dismiss-button"
84
+ aria-label="${(x) => x.locale.tag.remove(x.label)}"
85
+ ?disabled="${(x) => x.disabled}"
86
+ @click="${(x) => x.remove()}">
87
+ <${iconTag} name="close-line"></${iconTag}>
88
+ </button>`;
200
89
  }
201
- var TextAreaTemplate = (context) => {
90
+ var tagTemplate = (context) => {
91
+ const affixIconTemplate = affixIconTemplateFactory(context);
92
+ const iconTag = context.tagFor(Icon);
93
+ const content = html`
94
+ ${(x) => affixIconTemplate(x.icon, IconWrapper.Slot)}
95
+ ${when((x) => x.label, (x) => html`<span class="label">${x.label}</span>`)}
96
+ ${when((x) => x.removable && !x.selectable, renderDismissButton(iconTag))}
97
+ ${when((x) => x.selectable && x.selected, html`<${iconTag} class="selectable-icon" name="check-circle-solid"></${iconTag}>`)}
98
+ `;
202
99
  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}"
100
+ ${when((x) => x.selectable, html`<button
101
+ class="${getClasses}"
102
+ ${delegateAria({ ariaPressed: (x) => x.selected })}
230
103
  ?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")}
104
+ @keydown="${(x, c) => x.handleKeydown(c.event)}"
105
+ @click="${(x) => x.handleClick()}"
106
+ >
107
+ ${content}
108
+ </button>`)}
109
+ ${when((x) => !x.selectable, html`<span
110
+ class="${getClasses}"
111
+ ${delegateAria()}
112
+ tabindex="${(x) => x.disabled || x.removable ? null : 0}"
113
+ @keydown="${(x, c) => x.handleKeydown(c.event)}"
114
+ @click="${(x) => x.handleClick()}"
237
115
  >
238
- </textarea>
239
- ${(x) => x._getFeedbackTemplate(context)}
240
- </div>
116
+ ${content}
117
+ </span>`)}
241
118
  `;
242
119
  };
243
120
  //#endregion
244
- //#region src/lib/text-area/definition.ts
121
+ //#region src/lib/tag/definition.ts
245
122
  /** @internal */
246
- var textAreaDefinition = defineVividComponent("text-area", TextArea, TextAreaTemplate, [
247
- feedbackMessageDefinition,
248
- visuallyHiddenDefinition,
249
- contextualHelpDefinition
250
- ], {
251
- styles: text_area_default,
123
+ var tagDefinition = defineVividComponent("tag", Tag, tagTemplate, [iconDefinition], {
124
+ styles: tag_default,
252
125
  shadowOptions: { delegatesFocus: true }
253
126
  });
254
127
  /**
255
- * Registers the text-field elements with the design system.
128
+ * Registers the tag elements with the design system.
256
129
  *
257
130
  * @param prefix - the prefix to use for the component name
258
131
  */
259
- var registerTextArea = createRegisterFunction(textAreaDefinition);
132
+ var registerTag = createRegisterFunction(tagDefinition);
260
133
  //#endregion
261
- export { textAreaDefinition as n, TextArea as r, registerTextArea as t };
134
+ export { tagDefinition as n, Tag as r, registerTag as t };