@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,47 +1,119 @@
1
1
  require("./chunk.cjs");
2
2
  const require_vivid_element = require("./vivid-element.cjs");
3
- const require_host_semantics = require("./host-semantics.cjs");
3
+ const require_definition = require("./definition.cjs");
4
+ const require_decorate = require("./decorate.cjs");
5
+ const require_delegates_aria = require("./delegates-aria.cjs");
6
+ const require_form_associated = require("./form-associated.cjs");
4
7
  let _microsoft_fast_element = require("@microsoft/fast-element");
5
- //#region src/lib/tab-panel/tab-panel.ts
8
+ let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
9
+ //#region src/lib/switch/switch.scss?inline
10
+ var switch_default = ":host(.disabled){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary-text:var(--vvd-switch-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-cta-primary,var(--vvd-color-cta-500));--_connotation-color-primary-increment:var(--vvd-switch-cta-primary-increment,var(--vvd-color-cta-600));--_connotation-color-firm:var(--vvd-switch-cta-firm,var(--vvd-color-cta-600));--_connotation-color-intermediate:var(--vvd-switch-cta-intermediate,var(--vvd-color-cta-500));--_connotation-color-fierce:var(--vvd-switch-cta-fierce,var(--vvd-color-cta-700))}.control.connotation-alert{--_connotation-color-primary-text:var(--vvd-switch-alert-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-alert-primary,var(--vvd-color-alert-500));--_connotation-color-primary-increment:var(--vvd-switch-alert-primary-increment,var(--vvd-color-alert-600));--_connotation-color-firm:var(--vvd-switch-alert-firm,var(--vvd-color-alert-600));--_connotation-color-intermediate:var(--vvd-switch-alert-intermediate,var(--vvd-color-alert-500));--_connotation-color-fierce:var(--vvd-switch-alert-fierce,var(--vvd-color-alert-700))}.control.connotation-success{--_connotation-color-primary-text:var(--vvd-switch-success-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-success-primary,var(--vvd-color-success-500));--_connotation-color-primary-increment:var(--vvd-switch-success-primary-increment,var(--vvd-color-success-600));--_connotation-color-firm:var(--vvd-switch-success-firm,var(--vvd-color-success-600));--_connotation-color-intermediate:var(--vvd-switch-success-intermediate,var(--vvd-color-success-500));--_connotation-color-fierce:var(--vvd-switch-success-fierce,var(--vvd-color-success-700))}.control.connotation-announcement{--_connotation-color-primary-text:var(--vvd-switch-announcement-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-announcement-primary,var(--vvd-color-announcement-500));--_connotation-color-primary-increment:var(--vvd-switch-announcement-primary-increment,var(--vvd-color-announcement-600));--_connotation-color-firm:var(--vvd-switch-announcement-firm,var(--vvd-color-announcement-600));--_connotation-color-intermediate:var(--vvd-switch-announcement-intermediate,var(--vvd-color-announcement-500));--_connotation-color-fierce:var(--vvd-switch-announcement-fierce,var(--vvd-color-announcement-700))}.control:not(.connotation-cta,.connotation-alert,.connotation-success,.connotation-announcement){--_connotation-color-primary-text:var(--vvd-switch-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-primary-increment:var(--vvd-switch-accent-primary-increment,var(--vvd-color-neutral-800));--_connotation-color-firm:var(--vvd-switch-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-intermediate:var(--vvd-switch-accent-intermediate,var(--vvd-color-neutral-500));--_connotation-color-fierce:var(--vvd-switch-accent-fierce,var(--vvd-color-neutral-700))}.control{--_appearance-color-text:var(--vvd-color-canvas-text);--_appearance-color-fill:var(--vvd-color-canvas);--_appearance-color-outline:var(--vvd-color-neutral-500)}.control.appearance-filled{--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary);--_appearance-color-outline:transparent}@media (hover:hover){.control: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)}.control:hover:where(:not(.disabled,:disabled,.readonly)).appearance-filled{--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary-increment);--_appearance-color-outline:transparent}}.control.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)}.control.hover:where(:not(.disabled,:disabled,.readonly)).appearance-filled{--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary-increment);--_appearance-color-outline:transparent}.control: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)}.control:disabled.appearance-filled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:transparent}.control.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)}.control.disabled.appearance-filled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:transparent}.control.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)}.control.readonly:where(:not(.disabled,:disabled)).appearance-filled{--_appearance-color-text:var(--vvd-color-neutral-800);--_appearance-color-fill:var(--vvd-color-neutral-500);--_appearance-color-outline:transparent}.control{user-select:none;border-radius:16px;outline:none;gap:8px;display:inline-flex}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.switch{--_switch-inline-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20)) * 1.8);box-sizing:border-box;background-color:var(--_appearance-color-fill);block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20));box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:var(--_switch-inline-size);border-radius:40px;flex-shrink:0;align-items:center;transition:all .2s ease-in-out;display:flex}.control:focus-visible .switch{position:relative}.control:focus-visible .switch:after{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));border-radius:var(--focus-border-radius,inherit);block-size:calc(100% + var(--focus-block-size-addition,4px));content:\"\";inline-size:calc(100% + var(--focus-block-size-addition,4px));--focus-stroke-gap-color:transparent;--focus-block-size-addition:6px;display:block;position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.checked-indicator{--_switch-checked-indicator-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20)) / 1.6667);--_switch-gutter:calc(var(--_switch-checked-indicator-size) / 3);border-radius:inherit;block-size:var(--_switch-checked-indicator-size);inline-size:var(--_switch-checked-indicator-size);margin-inline-start:auto}@media (prefers-reduced-motion:no-preference){.checked-indicator{transition:all .2s ease-in-out}}.control:not(.appearance-filled) .checked-indicator{background-color:var(--_appearance-color-outline)}.control:not(.appearance-filled):where(.readonly) .checked-indicator{background-color:var(--vvd-color-neutral-600)}.control.appearance-filled .checked-indicator{background-color:var(--vvd-color-neutral-100)}.control:not(.checked) .checked-indicator{transform:translateX(calc(-1 * var(--_switch-inline-size) + var(--_switch-checked-indicator-size) + var(--_switch-gutter)))}.control.checked .checked-indicator{transform:translateX(calc(-1 * var(--_switch-gutter)))}.control.appearance-filled.disabled .checked-indicator{background-color:var(--_appearance-color-text)}.control.appearance-filled.readonly .checked-indicator{background-color:var(--vvd-color-neutral-50)}.label{color:var(--vvd-color-canvas-text);cursor:pointer;font:var(--vvd-typography-base)}";
11
+ //#endregion
12
+ //#region src/lib/switch/switch.ts
6
13
  /**
7
14
  * @public
8
- * @component tab-panel
9
- * @slot - Default slot.
15
+ * @component switch
16
+ * @event {CustomEvent<undefined>} change - Emits a custom change event when the checked state changes
17
+ * @vueModel modelValue checked change `event.currentTarget.checked`
18
+ * @testSelector byLabel byLabel
19
+ * @testAction check click #switch
20
+ * @testAction uncheck click #switch
21
+ * @testQuery checked checked true
22
+ * @testQuery unchecked checked false
23
+ * @testRef switch shadow .switch
10
24
  */
11
- var TabPanel = class extends require_host_semantics.HostSemantics(require_vivid_element.VividElement) {};
25
+ var Switch = class extends require_delegates_aria.DelegatesAria(require_form_associated.CheckableFormAssociated(require_vivid_element.VividElement)) {
26
+ /** @internal */
27
+ readOnlyChanged() {
28
+ /* v8 ignore if -- @preserve */
29
+ if (this.proxy instanceof HTMLInputElement) this.proxy.readOnly = this.readOnly;
30
+ if (this.readOnly) this.classList.add("readonly");
31
+ else this.classList.remove("readonly");
32
+ }
33
+ /** @internal */
34
+ connectedCallback() {
35
+ super.connectedCallback();
36
+ this.proxy.setAttribute("type", "checkbox");
37
+ this.updateForm();
38
+ }
39
+ constructor() {
40
+ super();
41
+ this.proxy = document.createElement("input");
42
+ this.initialValue = "on";
43
+ this.keypressHandler = (e) => {
44
+ if (e.key === _microsoft_fast_web_utilities.keySpace || e.key === _microsoft_fast_web_utilities.keyEnter) this.checked = !this.checked;
45
+ };
46
+ this.clickHandler = () => {
47
+ if (!this.disabled && !this.readOnly) this.checked = !this.checked;
48
+ };
49
+ this.checked = this.defaultChecked;
50
+ }
51
+ /** @internal */
52
+ updateForm() {
53
+ const value = this.checked ? this.value : null;
54
+ this.setFormValue(value, value);
55
+ }
56
+ };
57
+ require_decorate.__decorate([_microsoft_fast_element.attr], Switch.prototype, "label", void 0);
58
+ require_decorate.__decorate([_microsoft_fast_element.attr], Switch.prototype, "connotation", void 0);
59
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
60
+ attribute: "readonly",
61
+ mode: "boolean"
62
+ })], Switch.prototype, "readOnly", void 0);
63
+ require_decorate.__decorate([_microsoft_fast_element.observable], Switch.prototype, "defaultSlottedNodes", void 0);
12
64
  //#endregion
13
- //#region src/lib/tab-panel/tab-panel.template.ts
14
- var TabPanelTemplate = _microsoft_fast_element.html`
15
- <template slot="tabpanel" ${require_host_semantics.applyHostSemantics({ role: "tabpanel" })}>
16
- <slot></slot>
65
+ //#region src/lib/switch/switch.template.ts
66
+ var SwitchTemplate = _microsoft_fast_element.html`
67
+ <template>
68
+ <div
69
+ ${(0, _microsoft_fast_element.ref)("control")}
70
+ class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("control", ["appearance-filled", x.checked], ["checked", x.checked], ["disabled", x.disabled], ["readonly", x.readOnly], [`connotation-${x.connotation}`, x.checked && Boolean(x.connotation)])}"
71
+ ${require_delegates_aria.delegateAria({
72
+ role: "switch",
73
+ ariaChecked: (x) => x.checked,
74
+ ariaDisabled: (x) => x.disabled,
75
+ ariaReadOnly: (x) => x.readOnly
76
+ })}
77
+ tabindex="${(x) => x.disabled ? null : 0}"
78
+ @keypress="${(x, c) => x.keypressHandler(c.event)}"
79
+ @click="${(x) => x.clickHandler()}"
80
+ >
81
+ <div class="switch">
82
+ <span class="checked-indicator"></span>
83
+ </div>
84
+ ${(0, _microsoft_fast_element.when)((x) => x.label, _microsoft_fast_element.html`<div class="label">${(x) => x.label}</div>`)}
85
+ </div>
17
86
  </template>
18
87
  `;
19
88
  //#endregion
20
- //#region src/lib/tab-panel/definition.ts
89
+ //#region src/lib/switch/definition.ts
21
90
  /** @internal */
22
- var tabPanelDefinition = require_vivid_element.defineVividComponent("tab-panel", TabPanel, TabPanelTemplate, [], {});
91
+ var switchDefinition = require_vivid_element.defineVividComponent("switch", Switch, SwitchTemplate, [require_definition.iconDefinition], {
92
+ styles: switch_default,
93
+ shadowOptions: { delegatesFocus: true }
94
+ });
23
95
  /**
24
- * Registers the tab-panel elements with the design system.
96
+ * Registers the switch elements with the design system.
25
97
  *
26
98
  * @param prefix - the prefix to use for the component name
27
99
  */
28
- var registerTabPanel = require_vivid_element.createRegisterFunction(tabPanelDefinition);
100
+ var registerSwitch = require_vivid_element.createRegisterFunction(switchDefinition);
29
101
  //#endregion
30
- Object.defineProperty(exports, "TabPanel", {
102
+ Object.defineProperty(exports, "Switch", {
31
103
  enumerable: true,
32
104
  get: function() {
33
- return TabPanel;
105
+ return Switch;
34
106
  }
35
107
  });
36
- Object.defineProperty(exports, "registerTabPanel", {
108
+ Object.defineProperty(exports, "registerSwitch", {
37
109
  enumerable: true,
38
110
  get: function() {
39
- return registerTabPanel;
111
+ return registerSwitch;
40
112
  }
41
113
  });
42
- Object.defineProperty(exports, "tabPanelDefinition", {
114
+ Object.defineProperty(exports, "switchDefinition", {
43
115
  enumerable: true,
44
116
  get: function() {
45
- return tabPanelDefinition;
117
+ return switchDefinition;
46
118
  }
47
119
  });
@@ -1,26 +1,98 @@
1
1
  import { d as createRegisterFunction, t as VividElement, u as defineVividComponent } from "./vivid-element.js";
2
- import { n as applyHostSemantics, t as HostSemantics } from "./host-semantics.js";
3
- import { html } from "@microsoft/fast-element";
4
- //#region src/lib/tab-panel/tab-panel.ts
2
+ import { t as iconDefinition } from "./definition.js";
3
+ import { t as __decorate } from "./decorate.js";
4
+ import { n as delegateAria, t as DelegatesAria } from "./delegates-aria.js";
5
+ import { t as CheckableFormAssociated } from "./form-associated.js";
6
+ import { attr, html, observable, ref, when } from "@microsoft/fast-element";
7
+ import { classNames, keyEnter, keySpace } from "@microsoft/fast-web-utilities";
8
+ //#region src/lib/switch/switch.scss?inline
9
+ var switch_default = ":host(.disabled){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary-text:var(--vvd-switch-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-cta-primary,var(--vvd-color-cta-500));--_connotation-color-primary-increment:var(--vvd-switch-cta-primary-increment,var(--vvd-color-cta-600));--_connotation-color-firm:var(--vvd-switch-cta-firm,var(--vvd-color-cta-600));--_connotation-color-intermediate:var(--vvd-switch-cta-intermediate,var(--vvd-color-cta-500));--_connotation-color-fierce:var(--vvd-switch-cta-fierce,var(--vvd-color-cta-700))}.control.connotation-alert{--_connotation-color-primary-text:var(--vvd-switch-alert-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-alert-primary,var(--vvd-color-alert-500));--_connotation-color-primary-increment:var(--vvd-switch-alert-primary-increment,var(--vvd-color-alert-600));--_connotation-color-firm:var(--vvd-switch-alert-firm,var(--vvd-color-alert-600));--_connotation-color-intermediate:var(--vvd-switch-alert-intermediate,var(--vvd-color-alert-500));--_connotation-color-fierce:var(--vvd-switch-alert-fierce,var(--vvd-color-alert-700))}.control.connotation-success{--_connotation-color-primary-text:var(--vvd-switch-success-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-success-primary,var(--vvd-color-success-500));--_connotation-color-primary-increment:var(--vvd-switch-success-primary-increment,var(--vvd-color-success-600));--_connotation-color-firm:var(--vvd-switch-success-firm,var(--vvd-color-success-600));--_connotation-color-intermediate:var(--vvd-switch-success-intermediate,var(--vvd-color-success-500));--_connotation-color-fierce:var(--vvd-switch-success-fierce,var(--vvd-color-success-700))}.control.connotation-announcement{--_connotation-color-primary-text:var(--vvd-switch-announcement-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-announcement-primary,var(--vvd-color-announcement-500));--_connotation-color-primary-increment:var(--vvd-switch-announcement-primary-increment,var(--vvd-color-announcement-600));--_connotation-color-firm:var(--vvd-switch-announcement-firm,var(--vvd-color-announcement-600));--_connotation-color-intermediate:var(--vvd-switch-announcement-intermediate,var(--vvd-color-announcement-500));--_connotation-color-fierce:var(--vvd-switch-announcement-fierce,var(--vvd-color-announcement-700))}.control:not(.connotation-cta,.connotation-alert,.connotation-success,.connotation-announcement){--_connotation-color-primary-text:var(--vvd-switch-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-primary:var(--vvd-switch-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-primary-increment:var(--vvd-switch-accent-primary-increment,var(--vvd-color-neutral-800));--_connotation-color-firm:var(--vvd-switch-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-intermediate:var(--vvd-switch-accent-intermediate,var(--vvd-color-neutral-500));--_connotation-color-fierce:var(--vvd-switch-accent-fierce,var(--vvd-color-neutral-700))}.control{--_appearance-color-text:var(--vvd-color-canvas-text);--_appearance-color-fill:var(--vvd-color-canvas);--_appearance-color-outline:var(--vvd-color-neutral-500)}.control.appearance-filled{--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary);--_appearance-color-outline:transparent}@media (hover:hover){.control: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)}.control:hover:where(:not(.disabled,:disabled,.readonly)).appearance-filled{--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary-increment);--_appearance-color-outline:transparent}}.control.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)}.control.hover:where(:not(.disabled,:disabled,.readonly)).appearance-filled{--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary-increment);--_appearance-color-outline:transparent}.control: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)}.control:disabled.appearance-filled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:transparent}.control.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)}.control.disabled.appearance-filled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:transparent}.control.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)}.control.readonly:where(:not(.disabled,:disabled)).appearance-filled{--_appearance-color-text:var(--vvd-color-neutral-800);--_appearance-color-fill:var(--vvd-color-neutral-500);--_appearance-color-outline:transparent}.control{user-select:none;border-radius:16px;outline:none;gap:8px;display:inline-flex}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.switch{--_switch-inline-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20)) * 1.8);box-sizing:border-box;background-color:var(--_appearance-color-fill);block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20));box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:var(--_switch-inline-size);border-radius:40px;flex-shrink:0;align-items:center;transition:all .2s ease-in-out;display:flex}.control:focus-visible .switch{position:relative}.control:focus-visible .switch:after{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));border-radius:var(--focus-border-radius,inherit);block-size:calc(100% + var(--focus-block-size-addition,4px));content:\"\";inline-size:calc(100% + var(--focus-block-size-addition,4px));--focus-stroke-gap-color:transparent;--focus-block-size-addition:6px;display:block;position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.checked-indicator{--_switch-checked-indicator-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20)) / 1.6667);--_switch-gutter:calc(var(--_switch-checked-indicator-size) / 3);border-radius:inherit;block-size:var(--_switch-checked-indicator-size);inline-size:var(--_switch-checked-indicator-size);margin-inline-start:auto}@media (prefers-reduced-motion:no-preference){.checked-indicator{transition:all .2s ease-in-out}}.control:not(.appearance-filled) .checked-indicator{background-color:var(--_appearance-color-outline)}.control:not(.appearance-filled):where(.readonly) .checked-indicator{background-color:var(--vvd-color-neutral-600)}.control.appearance-filled .checked-indicator{background-color:var(--vvd-color-neutral-100)}.control:not(.checked) .checked-indicator{transform:translateX(calc(-1 * var(--_switch-inline-size) + var(--_switch-checked-indicator-size) + var(--_switch-gutter)))}.control.checked .checked-indicator{transform:translateX(calc(-1 * var(--_switch-gutter)))}.control.appearance-filled.disabled .checked-indicator{background-color:var(--_appearance-color-text)}.control.appearance-filled.readonly .checked-indicator{background-color:var(--vvd-color-neutral-50)}.label{color:var(--vvd-color-canvas-text);cursor:pointer;font:var(--vvd-typography-base)}";
10
+ //#endregion
11
+ //#region src/lib/switch/switch.ts
5
12
  /**
6
13
  * @public
7
- * @component tab-panel
8
- * @slot - Default slot.
14
+ * @component switch
15
+ * @event {CustomEvent<undefined>} change - Emits a custom change event when the checked state changes
16
+ * @vueModel modelValue checked change `event.currentTarget.checked`
17
+ * @testSelector byLabel byLabel
18
+ * @testAction check click #switch
19
+ * @testAction uncheck click #switch
20
+ * @testQuery checked checked true
21
+ * @testQuery unchecked checked false
22
+ * @testRef switch shadow .switch
9
23
  */
10
- var TabPanel = class extends HostSemantics(VividElement) {};
24
+ var Switch = class extends DelegatesAria(CheckableFormAssociated(VividElement)) {
25
+ /** @internal */
26
+ readOnlyChanged() {
27
+ /* v8 ignore if -- @preserve */
28
+ if (this.proxy instanceof HTMLInputElement) this.proxy.readOnly = this.readOnly;
29
+ if (this.readOnly) this.classList.add("readonly");
30
+ else this.classList.remove("readonly");
31
+ }
32
+ /** @internal */
33
+ connectedCallback() {
34
+ super.connectedCallback();
35
+ this.proxy.setAttribute("type", "checkbox");
36
+ this.updateForm();
37
+ }
38
+ constructor() {
39
+ super();
40
+ this.proxy = document.createElement("input");
41
+ this.initialValue = "on";
42
+ this.keypressHandler = (e) => {
43
+ if (e.key === keySpace || e.key === keyEnter) this.checked = !this.checked;
44
+ };
45
+ this.clickHandler = () => {
46
+ if (!this.disabled && !this.readOnly) this.checked = !this.checked;
47
+ };
48
+ this.checked = this.defaultChecked;
49
+ }
50
+ /** @internal */
51
+ updateForm() {
52
+ const value = this.checked ? this.value : null;
53
+ this.setFormValue(value, value);
54
+ }
55
+ };
56
+ __decorate([attr], Switch.prototype, "label", void 0);
57
+ __decorate([attr], Switch.prototype, "connotation", void 0);
58
+ __decorate([attr({
59
+ attribute: "readonly",
60
+ mode: "boolean"
61
+ })], Switch.prototype, "readOnly", void 0);
62
+ __decorate([observable], Switch.prototype, "defaultSlottedNodes", void 0);
11
63
  //#endregion
12
- //#region src/lib/tab-panel/definition.ts
64
+ //#region src/lib/switch/definition.ts
13
65
  /** @internal */
14
- var tabPanelDefinition = defineVividComponent("tab-panel", TabPanel, html`
15
- <template slot="tabpanel" ${applyHostSemantics({ role: "tabpanel" })}>
16
- <slot></slot>
66
+ var switchDefinition = defineVividComponent("switch", Switch, html`
67
+ <template>
68
+ <div
69
+ ${ref("control")}
70
+ class="${(x) => classNames("control", ["appearance-filled", x.checked], ["checked", x.checked], ["disabled", x.disabled], ["readonly", x.readOnly], [`connotation-${x.connotation}`, x.checked && Boolean(x.connotation)])}"
71
+ ${delegateAria({
72
+ role: "switch",
73
+ ariaChecked: (x) => x.checked,
74
+ ariaDisabled: (x) => x.disabled,
75
+ ariaReadOnly: (x) => x.readOnly
76
+ })}
77
+ tabindex="${(x) => x.disabled ? null : 0}"
78
+ @keypress="${(x, c) => x.keypressHandler(c.event)}"
79
+ @click="${(x) => x.clickHandler()}"
80
+ >
81
+ <div class="switch">
82
+ <span class="checked-indicator"></span>
83
+ </div>
84
+ ${when((x) => x.label, html`<div class="label">${(x) => x.label}</div>`)}
85
+ </div>
17
86
  </template>
18
- `, [], {});
87
+ `, [iconDefinition], {
88
+ styles: switch_default,
89
+ shadowOptions: { delegatesFocus: true }
90
+ });
19
91
  /**
20
- * Registers the tab-panel elements with the design system.
92
+ * Registers the switch elements with the design system.
21
93
  *
22
94
  * @param prefix - the prefix to use for the component name
23
95
  */
24
- var registerTabPanel = createRegisterFunction(tabPanelDefinition);
96
+ var registerSwitch = createRegisterFunction(switchDefinition);
25
97
  //#endregion
26
- export { tabPanelDefinition as n, TabPanel as r, registerTabPanel as t };
98
+ export { switchDefinition as n, Switch as r, registerSwitch as t };
@@ -1,114 +1,47 @@
1
1
  require("./chunk.cjs");
2
2
  const require_vivid_element = require("./vivid-element.cjs");
3
- const require_definition = require("./definition.cjs");
4
- const require_decorate = require("./decorate.cjs");
5
- const require_affix = require("./affix.cjs");
6
- const require_localized = require("./localized.cjs");
7
3
  const require_host_semantics = require("./host-semantics.cjs");
8
4
  let _microsoft_fast_element = require("@microsoft/fast-element");
9
- let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
10
- //#region src/lib/tab/tab.scss?inline
11
- var tab_default = ":host{--_vvd-tab-accent-firm-wrapper:var(--vvd-tab-accent-firm);--_vvd-tab-cta-firm-wrapper:var(--vvd-tab-cta-firm)}.base{--vvd-tab-accent-firm:var(--_vvd-tab-accent-firm-wrapper,var(--vvd-tab-accent-primary));--vvd-tab-cta-firm:var(--_vvd-tab-cta-firm-wrapper,var(--vvd-tab-cta-primary))}:host(.vertical){grid-column:1;justify-content:end}:host([disabled]){cursor:not-allowed}:host([removable]){position:relative}:host(:focus-visible){outline:none}.base{--_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(--_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(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.base:disabled,.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base:active:where(:not(.disabled,:disabled)),.base.active:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}.base.connotation-cta{--_connotation-color-primary-text:var(--vvd-tab-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-firm:var(--vvd-tab-cta-firm,var(--vvd-color-cta-600));--_connotation-color-faint:var(--vvd-tab-cta-faint,var(--vvd-color-cta-50));--_connotation-color-fierce:var(--vvd-tab-cta-fierce,var(--vvd-color-cta-700));--_connotation-color-pale:var(--vvd-tab-cta-pale,var(--vvd-color-cta-300));--_connotation-color-soft:var(--vvd-tab-cta-soft,var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-primary-text:var(--vvd-tab-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-firm:var(--vvd-tab-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-faint:var(--vvd-tab-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-fierce:var(--vvd-tab-accent-fierce,var(--vvd-color-neutral-700));--_connotation-color-pale:var(--vvd-tab-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-soft:var(--vvd-tab-accent-soft,var(--vvd-color-neutral-100))}.base{box-sizing:border-box;align-items:center;justify-content:var(--_tab-justify-content);padding:var(--_tabs-tablist-gutter);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-bold);gap:var(--_tabs-tablist-gutter);vertical-align:middle;white-space:nowrap;user-select:none;min-block-size:40px;display:flex;position:relative}.base:not(.shape-sharp){border-radius:8px}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.base.removable{padding-inline-end:40px}:host(:focus-visible) .base{--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(.vertical) .base{margin-inline-start:var(--_tabs-active-indicator-stroke-width)}slot[name=icon]{font-size:20px;line-height:1}.icon-trailing slot[name=icon]{order:1;margin-inline-start:auto;display:inline-block}.close{background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;block-size:24px;inline-size:24px;display:flex;position:absolute;inset-block-start:50%;inset-inline-end:4px;transform:translateY(-50%)}.close: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))}.close vwc-icon{font-size:12px}.close .icon{justify-content:center;align-items:center;display:flex}";
12
- //#endregion
13
- //#region src/lib/tab/tab.ts
5
+ //#region src/lib/tab-panel/tab-panel.ts
14
6
  /**
15
7
  * @public
16
- * @component tab
17
- * @slot icon - The preferred way to add an icon to the component.
18
- * @testSelector byLabel byLabel
19
- * @testAction select click #base
20
- * @testQuery active active true
21
- * @testQuery inactive active false
22
- * @testRef base shadow .base
8
+ * @component tab-panel
9
+ * @slot - Holds the content associated with a Tab.
23
10
  */
24
- var Tab = class extends require_host_semantics.HostSemantics(require_affix.AffixIconWithTrailing(require_localized.Localized(require_vivid_element.VividElement))) {
25
- constructor(..._args) {
26
- super(..._args);
27
- this.removable = false;
28
- this.tabIndex = "-1";
29
- this.active = false;
30
- }
31
- /** @internal */
32
- _handleCloseClick(e) {
33
- e.stopImmediatePropagation();
34
- this.$emit("close");
35
- }
36
- /** @internal */
37
- _onKeyDown(e) {
38
- if (!this.removable || e.key !== "Delete") return true;
39
- e.stopImmediatePropagation();
40
- this.$emit("close");
41
- return false;
42
- }
43
- };
44
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Tab.prototype, "disabled", void 0);
45
- require_decorate.__decorate([_microsoft_fast_element.attr], Tab.prototype, "connotation", void 0);
46
- require_decorate.__decorate([_microsoft_fast_element.attr], Tab.prototype, "shape", void 0);
47
- require_decorate.__decorate([_microsoft_fast_element.attr], Tab.prototype, "label", void 0);
48
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Tab.prototype, "removable", void 0);
49
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "fromView" })], Tab.prototype, "tabIndex", void 0);
50
- require_decorate.__decorate([_microsoft_fast_element.observable], Tab.prototype, "active", void 0);
11
+ var TabPanel = class extends require_host_semantics.HostSemantics(require_vivid_element.VividElement) {};
51
12
  //#endregion
52
- //#region src/lib/tab/tab.template.ts
53
- function renderDismissButton(context) {
54
- const affixIconTemplate = require_affix.affixIconTemplateFactory(context);
55
- return _microsoft_fast_element.html`<button
56
- aria-label="${(x) => x.locale.tab.dismissButtonLabel}"
57
- class="close"
58
- id="close-btn"
59
- @click="${(x, c) => x._handleCloseClick(c.event)}"
60
- >
61
- ${() => affixIconTemplate("close-line", require_affix.IconWrapper.Span)}
62
- </button>`;
63
- }
64
- var TabTemplate = (context) => {
65
- const affixIconTemplate = require_affix.affixIconTemplateFactory(context);
66
- return _microsoft_fast_element.html`
67
- <template
68
- slot="tab"
69
- ?active="${(x) => x.active}"
70
- ${require_host_semantics.applyHostSemantics({
71
- role: "tab",
72
- ariaDisabled: (x) => x.disabled,
73
- ariaSelected: (x) => x.active
74
- })}
75
- @keydown="${(x, c) => x._onKeyDown(c.event)}"
76
- >
77
- <div
78
- class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("base", [`connotation-${x.connotation}`, Boolean(x.connotation) && x.active], [`shape-${x.shape}`, Boolean(x.shape)], ["disabled", x.disabled], ["selected", x.active], ["icon-trailing", x.iconTrailing], ["removable", x.removable])}"
79
- >
80
- ${(x) => affixIconTemplate(x.icon, require_affix.IconWrapper.Slot)} ${(x) => x.label}
81
- ${(x) => x.removable ? renderDismissButton(context) : null}
82
- </div>
83
- </template>
84
- `;
85
- };
13
+ //#region src/lib/tab-panel/tab-panel.template.ts
14
+ var TabPanelTemplate = _microsoft_fast_element.html`
15
+ <template slot="tabpanel" ${require_host_semantics.applyHostSemantics({ role: "tabpanel" })}>
16
+ <slot></slot>
17
+ </template>
18
+ `;
86
19
  //#endregion
87
- //#region src/lib/tab/definition.ts
20
+ //#region src/lib/tab-panel/definition.ts
88
21
  /** @internal */
89
- var tabDefinition = require_vivid_element.defineVividComponent("tab", Tab, TabTemplate, [require_definition.iconDefinition], { styles: tab_default });
22
+ var tabPanelDefinition = require_vivid_element.defineVividComponent("tab-panel", TabPanel, TabPanelTemplate, [], {});
90
23
  /**
91
- * Registers the tab elements with the design system.
24
+ * Registers the tab-panel elements with the design system.
92
25
  *
93
26
  * @param prefix - the prefix to use for the component name
94
27
  */
95
- var registerTab = require_vivid_element.createRegisterFunction(tabDefinition);
28
+ var registerTabPanel = require_vivid_element.createRegisterFunction(tabPanelDefinition);
96
29
  //#endregion
97
- Object.defineProperty(exports, "Tab", {
30
+ Object.defineProperty(exports, "TabPanel", {
98
31
  enumerable: true,
99
32
  get: function() {
100
- return Tab;
33
+ return TabPanel;
101
34
  }
102
35
  });
103
- Object.defineProperty(exports, "registerTab", {
36
+ Object.defineProperty(exports, "registerTabPanel", {
104
37
  enumerable: true,
105
38
  get: function() {
106
- return registerTab;
39
+ return registerTabPanel;
107
40
  }
108
41
  });
109
- Object.defineProperty(exports, "tabDefinition", {
42
+ Object.defineProperty(exports, "tabPanelDefinition", {
110
43
  enumerable: true,
111
44
  get: function() {
112
- return tabDefinition;
45
+ return tabPanelDefinition;
113
46
  }
114
47
  });
@@ -1,96 +1,26 @@
1
1
  import { d as createRegisterFunction, t as VividElement, u as defineVividComponent } from "./vivid-element.js";
2
- import { t as iconDefinition } from "./definition.js";
3
- import { t as __decorate } from "./decorate.js";
4
- import { a as affixIconTemplateFactory, i as IconWrapper, n as AffixIconWithTrailing } from "./affix.js";
5
- import { t as Localized } from "./localized.js";
6
2
  import { n as applyHostSemantics, t as HostSemantics } from "./host-semantics.js";
7
- import { attr, html, observable } from "@microsoft/fast-element";
8
- import { classNames } from "@microsoft/fast-web-utilities";
9
- //#region src/lib/tab/tab.scss?inline
10
- var tab_default = ":host{--_vvd-tab-accent-firm-wrapper:var(--vvd-tab-accent-firm);--_vvd-tab-cta-firm-wrapper:var(--vvd-tab-cta-firm)}.base{--vvd-tab-accent-firm:var(--_vvd-tab-accent-firm-wrapper,var(--vvd-tab-accent-primary));--vvd-tab-cta-firm:var(--_vvd-tab-cta-firm-wrapper,var(--vvd-tab-cta-primary))}:host(.vertical){grid-column:1;justify-content:end}:host([disabled]){cursor:not-allowed}:host([removable]){position:relative}:host(:focus-visible){outline:none}.base{--_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(--_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(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.base:disabled,.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base:active:where(:not(.disabled,:disabled)),.base.active:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}.base.connotation-cta{--_connotation-color-primary-text:var(--vvd-tab-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-firm:var(--vvd-tab-cta-firm,var(--vvd-color-cta-600));--_connotation-color-faint:var(--vvd-tab-cta-faint,var(--vvd-color-cta-50));--_connotation-color-fierce:var(--vvd-tab-cta-fierce,var(--vvd-color-cta-700));--_connotation-color-pale:var(--vvd-tab-cta-pale,var(--vvd-color-cta-300));--_connotation-color-soft:var(--vvd-tab-cta-soft,var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-primary-text:var(--vvd-tab-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-firm:var(--vvd-tab-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-faint:var(--vvd-tab-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-fierce:var(--vvd-tab-accent-fierce,var(--vvd-color-neutral-700));--_connotation-color-pale:var(--vvd-tab-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-soft:var(--vvd-tab-accent-soft,var(--vvd-color-neutral-100))}.base{box-sizing:border-box;align-items:center;justify-content:var(--_tab-justify-content);padding:var(--_tabs-tablist-gutter);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-bold);gap:var(--_tabs-tablist-gutter);vertical-align:middle;white-space:nowrap;user-select:none;min-block-size:40px;display:flex;position:relative}.base:not(.shape-sharp){border-radius:8px}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.base.removable{padding-inline-end:40px}:host(:focus-visible) .base{--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(.vertical) .base{margin-inline-start:var(--_tabs-active-indicator-stroke-width)}slot[name=icon]{font-size:20px;line-height:1}.icon-trailing slot[name=icon]{order:1;margin-inline-start:auto;display:inline-block}.close{background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;block-size:24px;inline-size:24px;display:flex;position:absolute;inset-block-start:50%;inset-inline-end:4px;transform:translateY(-50%)}.close: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))}.close vwc-icon{font-size:12px}.close .icon{justify-content:center;align-items:center;display:flex}";
11
- //#endregion
12
- //#region src/lib/tab/tab.ts
3
+ import { html } from "@microsoft/fast-element";
4
+ //#region src/lib/tab-panel/tab-panel.ts
13
5
  /**
14
6
  * @public
15
- * @component tab
16
- * @slot icon - The preferred way to add an icon to the component.
17
- * @testSelector byLabel byLabel
18
- * @testAction select click #base
19
- * @testQuery active active true
20
- * @testQuery inactive active false
21
- * @testRef base shadow .base
7
+ * @component tab-panel
8
+ * @slot - Holds the content associated with a Tab.
22
9
  */
23
- var Tab = class extends HostSemantics(AffixIconWithTrailing(Localized(VividElement))) {
24
- constructor(..._args) {
25
- super(..._args);
26
- this.removable = false;
27
- this.tabIndex = "-1";
28
- this.active = false;
29
- }
30
- /** @internal */
31
- _handleCloseClick(e) {
32
- e.stopImmediatePropagation();
33
- this.$emit("close");
34
- }
35
- /** @internal */
36
- _onKeyDown(e) {
37
- if (!this.removable || e.key !== "Delete") return true;
38
- e.stopImmediatePropagation();
39
- this.$emit("close");
40
- return false;
41
- }
42
- };
43
- __decorate([attr({ mode: "boolean" })], Tab.prototype, "disabled", void 0);
44
- __decorate([attr], Tab.prototype, "connotation", void 0);
45
- __decorate([attr], Tab.prototype, "shape", void 0);
46
- __decorate([attr], Tab.prototype, "label", void 0);
47
- __decorate([attr({ mode: "boolean" })], Tab.prototype, "removable", void 0);
48
- __decorate([attr({ mode: "fromView" })], Tab.prototype, "tabIndex", void 0);
49
- __decorate([observable], Tab.prototype, "active", void 0);
50
- //#endregion
51
- //#region src/lib/tab/tab.template.ts
52
- function renderDismissButton(context) {
53
- const affixIconTemplate = affixIconTemplateFactory(context);
54
- return html`<button
55
- aria-label="${(x) => x.locale.tab.dismissButtonLabel}"
56
- class="close"
57
- id="close-btn"
58
- @click="${(x, c) => x._handleCloseClick(c.event)}"
59
- >
60
- ${() => affixIconTemplate("close-line", IconWrapper.Span)}
61
- </button>`;
62
- }
63
- var TabTemplate = (context) => {
64
- const affixIconTemplate = affixIconTemplateFactory(context);
65
- return html`
66
- <template
67
- slot="tab"
68
- ?active="${(x) => x.active}"
69
- ${applyHostSemantics({
70
- role: "tab",
71
- ariaDisabled: (x) => x.disabled,
72
- ariaSelected: (x) => x.active
73
- })}
74
- @keydown="${(x, c) => x._onKeyDown(c.event)}"
75
- >
76
- <div
77
- class="${(x) => classNames("base", [`connotation-${x.connotation}`, Boolean(x.connotation) && x.active], [`shape-${x.shape}`, Boolean(x.shape)], ["disabled", x.disabled], ["selected", x.active], ["icon-trailing", x.iconTrailing], ["removable", x.removable])}"
78
- >
79
- ${(x) => affixIconTemplate(x.icon, IconWrapper.Slot)} ${(x) => x.label}
80
- ${(x) => x.removable ? renderDismissButton(context) : null}
81
- </div>
82
- </template>
83
- `;
84
- };
10
+ var TabPanel = class extends HostSemantics(VividElement) {};
85
11
  //#endregion
86
- //#region src/lib/tab/definition.ts
12
+ //#region src/lib/tab-panel/definition.ts
87
13
  /** @internal */
88
- var tabDefinition = defineVividComponent("tab", Tab, TabTemplate, [iconDefinition], { styles: tab_default });
14
+ var tabPanelDefinition = defineVividComponent("tab-panel", TabPanel, html`
15
+ <template slot="tabpanel" ${applyHostSemantics({ role: "tabpanel" })}>
16
+ <slot></slot>
17
+ </template>
18
+ `, [], {});
89
19
  /**
90
- * Registers the tab elements with the design system.
20
+ * Registers the tab-panel elements with the design system.
91
21
  *
92
22
  * @param prefix - the prefix to use for the component name
93
23
  */
94
- var registerTab = createRegisterFunction(tabDefinition);
24
+ var registerTabPanel = createRegisterFunction(tabPanelDefinition);
95
25
  //#endregion
96
- export { tabDefinition as n, Tab as r, registerTab as t };
26
+ export { tabPanelDefinition as n, TabPanel as r, registerTabPanel as t };