@vonage/vivid 4.31.0 → 5.1.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 (676) hide show
  1. package/{shared/definition2.cjs → accordion/definition.cjs} +20 -20
  2. package/{shared/definition2.js → accordion/definition.js} +5 -7
  3. package/accordion/index.cjs +5 -5
  4. package/accordion/index.js +129 -3
  5. package/accordion-item/definition.cjs +145 -0
  6. package/accordion-item/definition.js +139 -0
  7. package/accordion-item/index.cjs +1 -5
  8. package/accordion-item/index.js +2 -3
  9. package/{shared/definition3.cjs → action-group/definition.cjs} +12 -9
  10. package/{shared/definition3.js → action-group/definition.js} +5 -4
  11. package/action-group/index.cjs +6 -5
  12. package/action-group/index.js +49 -3
  13. package/{shared/definition4.cjs → alert/definition.cjs} +33 -31
  14. package/{shared/definition4.js → alert/definition.js} +11 -11
  15. package/alert/index.cjs +30 -5
  16. package/alert/index.js +158 -3
  17. package/{shared/definition5.cjs → audio-player/definition.cjs} +58 -57
  18. package/{shared/definition5.js → audio-player/definition.js} +11 -12
  19. package/audio-player/index.cjs +68 -4
  20. package/audio-player/index.js +309 -2
  21. package/{shared/definition6.cjs → avatar/definition.cjs} +28 -26
  22. package/{shared/definition6.js → avatar/definition.js} +7 -7
  23. package/avatar/index.cjs +18 -5
  24. package/avatar/index.js +93 -3
  25. package/{shared/definition7.cjs → badge/definition.cjs} +18 -16
  26. package/{shared/definition7.js → badge/definition.js} +6 -6
  27. package/badge/index.cjs +4 -5
  28. package/badge/index.js +66 -3
  29. package/{shared/definition8.cjs → banner/definition.cjs} +26 -25
  30. package/{shared/definition8.js → banner/definition.js} +10 -11
  31. package/banner/index.cjs +29 -4
  32. package/banner/index.js +128 -2
  33. package/{shared/definition10.cjs → breadcrumb/definition.cjs} +11 -9
  34. package/{shared/definition10.js → breadcrumb/definition.js} +5 -5
  35. package/breadcrumb/index.cjs +12 -5
  36. package/breadcrumb/index.js +69 -3
  37. package/{shared/definition9.cjs → breadcrumb-item/definition.cjs} +18 -15
  38. package/{shared/definition9.js → breadcrumb-item/definition.js} +7 -7
  39. package/breadcrumb-item/index.cjs +5 -5
  40. package/breadcrumb-item/index.js +33 -3
  41. package/bundled/_has.cjs +1 -0
  42. package/bundled/_has.js +34 -0
  43. package/bundled/affix.cjs +13 -0
  44. package/bundled/affix.js +63 -0
  45. package/bundled/anchored.cjs +4 -0
  46. package/bundled/anchored.js +67 -0
  47. package/bundled/aria.cjs +1 -0
  48. package/bundled/aria.js +7 -0
  49. package/bundled/attribute-binding-behaviour.cjs +1 -0
  50. package/bundled/attribute-binding-behaviour.js +27 -0
  51. package/bundled/base-progress.cjs +1 -0
  52. package/bundled/base-progress.js +57 -0
  53. package/bundled/breadcrumb-item.cjs +1 -0
  54. package/bundled/breadcrumb-item.js +21 -0
  55. package/bundled/button.cjs +1 -0
  56. package/bundled/button.js +106 -0
  57. package/bundled/calendar-event.cjs +1 -0
  58. package/bundled/calendar-event.js +34 -0
  59. package/bundled/calendar-picker.template.cjs +148 -0
  60. package/bundled/calendar-picker.template.js +3371 -0
  61. package/bundled/char-count.cjs +13 -0
  62. package/bundled/char-count.js +54 -0
  63. package/bundled/children.cjs +1 -0
  64. package/bundled/children.js +38 -0
  65. package/bundled/class-names.cjs +1 -0
  66. package/bundled/class-names.js +9 -0
  67. package/bundled/definition.cjs +39 -0
  68. package/bundled/definition.js +122 -0
  69. package/bundled/definition10.cjs +19 -0
  70. package/bundled/definition10.js +73 -0
  71. package/bundled/definition11.cjs +10 -0
  72. package/bundled/definition11.js +44 -0
  73. package/bundled/definition12.cjs +1 -0
  74. package/bundled/definition12.js +20 -0
  75. package/bundled/definition13.cjs +73 -0
  76. package/bundled/definition13.js +359 -0
  77. package/bundled/definition14.cjs +5 -0
  78. package/bundled/definition14.js +29 -0
  79. package/bundled/definition15.cjs +30 -0
  80. package/bundled/definition15.js +80 -0
  81. package/bundled/definition16.cjs +19 -0
  82. package/bundled/definition16.js +103 -0
  83. package/bundled/definition17.cjs +13 -0
  84. package/bundled/definition17.js +137 -0
  85. package/bundled/definition18.cjs +12 -0
  86. package/bundled/definition18.js +94 -0
  87. package/bundled/definition19.cjs +67 -0
  88. package/bundled/definition19.js +666 -0
  89. package/bundled/definition2.cjs +20 -0
  90. package/bundled/definition2.js +180 -0
  91. package/bundled/definition20.cjs +20 -0
  92. package/bundled/definition20.js +106 -0
  93. package/bundled/definition21.cjs +5 -0
  94. package/bundled/definition21.js +19 -0
  95. package/bundled/definition22.cjs +24 -0
  96. package/bundled/definition22.js +151 -0
  97. package/bundled/definition3.cjs +29 -0
  98. package/bundled/definition3.js +195 -0
  99. package/bundled/definition4.cjs +6 -0
  100. package/bundled/definition4.js +42 -0
  101. package/bundled/definition5.cjs +1 -0
  102. package/bundled/definition5.js +345 -0
  103. package/bundled/definition6.cjs +31 -0
  104. package/bundled/definition6.js +265 -0
  105. package/bundled/definition7.cjs +30 -0
  106. package/bundled/definition7.js +288 -0
  107. package/bundled/definition8.cjs +19 -0
  108. package/bundled/definition8.js +145 -0
  109. package/bundled/definition9.cjs +14 -0
  110. package/bundled/definition9.js +1406 -0
  111. package/bundled/delegates-aria.cjs +1 -0
  112. package/bundled/delegates-aria.js +77 -0
  113. package/bundled/divider.cjs +1 -0
  114. package/bundled/divider.js +34 -0
  115. package/bundled/dom.cjs +1 -0
  116. package/bundled/dom.js +6 -0
  117. package/bundled/enums.cjs +1 -0
  118. package/bundled/enums.js +9 -0
  119. package/bundled/form-associated.cjs +1 -0
  120. package/bundled/form-associated.js +320 -0
  121. package/bundled/form-element.cjs +1 -0
  122. package/bundled/form-element.js +56 -0
  123. package/bundled/host-semantics.cjs +1 -0
  124. package/bundled/host-semantics.js +57 -0
  125. package/bundled/index.cjs +1 -0
  126. package/bundled/index.js +6 -0
  127. package/bundled/key-codes.cjs +1 -0
  128. package/bundled/key-codes.js +16 -0
  129. package/bundled/linkable.cjs +15 -0
  130. package/bundled/linkable.js +49 -0
  131. package/bundled/listbox.cjs +1 -0
  132. package/bundled/listbox.js +345 -0
  133. package/bundled/localized.cjs +1 -0
  134. package/bundled/localized.js +459 -0
  135. package/bundled/mixins.cjs +33 -0
  136. package/bundled/mixins.js +226 -0
  137. package/bundled/numbers.cjs +1 -0
  138. package/bundled/numbers.js +14 -0
  139. package/bundled/option.cjs +1 -0
  140. package/bundled/option.js +158 -0
  141. package/bundled/picker-field.template.cjs +62 -0
  142. package/bundled/picker-field.template.js +234 -0
  143. package/bundled/playbackRates.cjs +1 -0
  144. package/bundled/playbackRates.js +11 -0
  145. package/bundled/ref.cjs +1 -0
  146. package/bundled/ref.js +32 -0
  147. package/bundled/repeat.cjs +1 -0
  148. package/bundled/repeat.js +341 -0
  149. package/bundled/scrollIntoView.cjs +1 -0
  150. package/bundled/scrollIntoView.js +33 -0
  151. package/bundled/single-date-picker.cjs +1 -0
  152. package/bundled/single-date-picker.js +39 -0
  153. package/bundled/single-value-picker.cjs +1 -0
  154. package/bundled/single-value-picker.js +87 -0
  155. package/bundled/slider.template.cjs +41 -0
  156. package/bundled/slider.template.js +100 -0
  157. package/bundled/slotted.cjs +1 -0
  158. package/bundled/slotted.js +81 -0
  159. package/bundled/strings.cjs +1 -0
  160. package/bundled/strings.js +7 -0
  161. package/bundled/text-field.cjs +1 -0
  162. package/bundled/text-field.js +4 -0
  163. package/bundled/time-selection-picker.template.cjs +46 -0
  164. package/bundled/time-selection-picker.template.js +575 -0
  165. package/bundled/vivid-element.cjs +1 -0
  166. package/bundled/vivid-element.js +1761 -0
  167. package/bundled/when.cjs +1 -0
  168. package/bundled/when.js +11 -0
  169. package/bundled/with-contextual-help.cjs +1 -0
  170. package/bundled/with-contextual-help.js +22 -0
  171. package/bundled/with-error-text.cjs +1 -0
  172. package/bundled/with-error-text.js +39 -0
  173. package/bundled/with-success-text.cjs +1 -0
  174. package/bundled/with-success-text.js +16 -0
  175. package/button/definition.cjs +14 -0
  176. package/button/definition.js +4 -0
  177. package/button/index.cjs +1 -5
  178. package/button/index.js +2 -3
  179. package/{shared/definition13.cjs → calendar/definition.cjs} +27 -449
  180. package/{shared/definition13.js → calendar/definition.js} +7 -431
  181. package/calendar/index.cjs +53 -5
  182. package/calendar/index.js +431 -3
  183. package/{shared/definition12.cjs → calendar-event/definition.cjs} +12 -9
  184. package/{shared/definition12.js → calendar-event/definition.js} +6 -6
  185. package/calendar-event/index.cjs +9 -5
  186. package/calendar-event/index.js +43 -3
  187. package/card/definition.cjs +186 -0
  188. package/{shared/definition14.js → card/definition.js} +10 -11
  189. package/card/index.cjs +47 -5
  190. package/card/index.js +163 -3
  191. package/{shared/definition15.cjs → checkbox/definition.cjs} +35 -30
  192. package/{shared/definition15.js → checkbox/definition.js} +17 -14
  193. package/checkbox/index.cjs +1 -5
  194. package/checkbox/index.js +2 -3
  195. package/{shared/definition16.cjs → combobox/definition.cjs} +50 -52
  196. package/{shared/definition16.js → combobox/definition.js} +19 -23
  197. package/combobox/index.cjs +65 -5
  198. package/combobox/index.js +512 -3
  199. package/contextual-help/definition.cjs +62 -0
  200. package/contextual-help/definition.js +57 -0
  201. package/contextual-help/index.cjs +1 -0
  202. package/contextual-help/index.js +2 -0
  203. package/custom-elements.json +2735 -711
  204. package/{shared/definition17.cjs → data-grid/definition.cjs} +169 -196
  205. package/{shared/definition17.js → data-grid/definition.js} +71 -100
  206. package/data-grid/index.cjs +81 -5
  207. package/data-grid/index.js +1011 -3
  208. package/{shared/definition18.cjs → date-picker/definition.cjs} +20 -17
  209. package/{shared/definition18.js → date-picker/definition.js} +12 -11
  210. package/date-picker/index.cjs +1 -5
  211. package/date-picker/index.js +115 -3
  212. package/{shared/definition19.cjs → date-range-picker/definition.cjs} +26 -23
  213. package/{shared/definition19.js → date-range-picker/definition.js} +10 -9
  214. package/date-range-picker/index.cjs +1 -5
  215. package/date-range-picker/index.js +335 -3
  216. package/{shared/definition20.cjs → date-time-picker/definition.cjs} +27 -24
  217. package/{shared/definition20.js → date-time-picker/definition.js} +13 -12
  218. package/date-time-picker/index.cjs +8 -5
  219. package/date-time-picker/index.js +216 -3
  220. package/{shared/definition21.cjs → dial-pad/definition.cjs} +39 -40
  221. package/{shared/definition21.js → dial-pad/definition.js} +9 -12
  222. package/dial-pad/index.cjs +54 -5
  223. package/dial-pad/index.js +214 -3
  224. package/{shared/definition22.cjs → dialog/definition.cjs} +48 -47
  225. package/{shared/definition22.js → dialog/definition.js} +10 -11
  226. package/dialog/index.cjs +44 -5
  227. package/dialog/index.js +257 -3
  228. package/{shared/definition23.cjs → divider/definition.cjs} +10 -6
  229. package/{shared/definition23.js → divider/definition.js} +6 -5
  230. package/divider/index.cjs +1 -5
  231. package/divider/index.js +2 -3
  232. package/elevation/definition.cjs +11 -0
  233. package/elevation/definition.js +2 -0
  234. package/elevation/index.cjs +1 -5
  235. package/elevation/index.js +2 -3
  236. package/empty-state/definition.cjs +81 -0
  237. package/empty-state/definition.js +75 -0
  238. package/empty-state/index.cjs +14 -5
  239. package/empty-state/index.js +64 -3
  240. package/fab/definition.cjs +105 -0
  241. package/fab/definition.js +99 -0
  242. package/fab/index.cjs +20 -5
  243. package/fab/index.js +86 -3
  244. package/file-picker/definition.cjs +510 -0
  245. package/file-picker/definition.js +504 -0
  246. package/file-picker/index.cjs +58 -5
  247. package/file-picker/index.js +381 -3
  248. package/{shared/definition27.cjs → header/definition.cjs} +14 -11
  249. package/{shared/definition27.js → header/definition.js} +6 -5
  250. package/header/index.cjs +19 -5
  251. package/header/index.js +57 -3
  252. package/{shared/definition28.cjs → icon/definition.cjs} +25 -149
  253. package/{shared/definition28.js → icon/definition.js} +6 -132
  254. package/icon/index.cjs +1 -5
  255. package/icon/index.js +2 -3
  256. package/index.cjs +268 -264
  257. package/index.js +72 -71
  258. package/{shared/definition29.cjs → layout/definition.cjs} +13 -10
  259. package/{shared/definition29.js → layout/definition.js} +4 -3
  260. package/layout/index.cjs +3 -5
  261. package/layout/index.js +52 -3
  262. package/lib/accordion-item/accordion-item.d.ts +42 -2
  263. package/lib/action-group/action-group.d.ts +42 -2
  264. package/lib/alert/alert.d.ts +84 -4
  265. package/lib/audio-player/audio-player.d.ts +42 -2
  266. package/lib/avatar/avatar.d.ts +42 -2
  267. package/lib/badge/badge.d.ts +42 -2
  268. package/lib/banner/banner.d.ts +126 -6
  269. package/lib/breadcrumb/breadcrumb.d.ts +42 -2
  270. package/lib/breadcrumb-item/breadcrumb-item.d.ts +42 -2
  271. package/lib/button/button.d.ts +127 -6
  272. package/lib/calendar-event/calendar-event.d.ts +42 -2
  273. package/lib/card/card.d.ts +42 -2
  274. package/lib/checkbox/checkbox.d.ts +252 -13
  275. package/lib/combobox/combobox.d.ts +252 -12
  276. package/lib/components.d.ts +1 -0
  277. package/lib/contextual-help/contextual-help.d.ts +5 -0
  278. package/lib/contextual-help/contextual-help.template.d.ts +3 -0
  279. package/lib/contextual-help/definition.d.ts +1 -0
  280. package/lib/data-grid/data-grid-cell.d.ts +418 -3
  281. package/lib/data-grid/data-grid-row.d.ts +379 -1
  282. package/lib/date-picker/date-picker.d.ts +374 -54
  283. package/lib/date-range-picker/date-range-picker.d.ts +188 -28
  284. package/lib/date-time-picker/date-time-picker.d.ts +376 -56
  285. package/lib/dial-pad/dial-pad.d.ts +42 -2
  286. package/lib/dialog/dialog.d.ts +84 -4
  287. package/lib/divider/divider.d.ts +42 -2
  288. package/lib/fab/fab.d.ts +43 -2
  289. package/lib/file-picker/accept.d.ts +1 -0
  290. package/lib/file-picker/data-transfer.d.ts +1 -0
  291. package/lib/file-picker/file-picker.d.ts +259 -31
  292. package/lib/file-picker/locale.d.ts +1 -0
  293. package/lib/header/header.d.ts +42 -2
  294. package/lib/menu/menu.d.ts +84 -4
  295. package/lib/menu-item/menu-item.d.ts +84 -4
  296. package/lib/nav/nav.d.ts +42 -2
  297. package/lib/nav-disclosure/nav-disclosure.d.ts +84 -4
  298. package/lib/nav-item/nav-item.d.ts +84 -4
  299. package/lib/note/note.d.ts +42 -2
  300. package/lib/number-field/number-field.d.ts +840 -104
  301. package/lib/option/option.d.ts +85 -4
  302. package/lib/pagination/pagination.d.ts +42 -2
  303. package/lib/progress/progress.d.ts +42 -2
  304. package/lib/progress-ring/progress-ring.d.ts +42 -2
  305. package/lib/radio/radio.d.ts +126 -7
  306. package/lib/radio-group/radio-group.d.ts +42 -2
  307. package/lib/range-slider/range-slider.d.ts +126 -6
  308. package/lib/rich-text-editor/menubar/menubar.d.ts +42 -2
  309. package/lib/rich-text-editor/rich-text-editor.d.ts +42 -2
  310. package/lib/searchable-select/option-tag.d.ts +42 -2
  311. package/lib/searchable-select/searchable-select.d.ts +336 -16
  312. package/lib/select/select.d.ts +294 -14
  313. package/lib/selectable-box/selectable-box.d.ts +42 -3
  314. package/lib/simple-color-picker/definition.d.ts +4 -0
  315. package/lib/simple-color-picker/locale.d.ts +4 -0
  316. package/lib/simple-color-picker/simple-color-picker.d.ts +1600 -0
  317. package/lib/simple-color-picker/simple-color-picker.template.d.ts +3 -0
  318. package/lib/slider/slider.d.ts +126 -6
  319. package/lib/split-button/split-button.d.ts +128 -6
  320. package/lib/switch/switch.d.ts +84 -4
  321. package/lib/tab/tab.d.ts +126 -6
  322. package/lib/tab-panel/tab-panel.d.ts +42 -2
  323. package/lib/tag/tag.d.ts +126 -6
  324. package/lib/tag-group/tag-group.d.ts +42 -2
  325. package/lib/tag-name-map.d.ts +2 -1
  326. package/lib/text-area/text-area.d.ts +787 -91
  327. package/lib/text-field/text-field.d.ts +840 -104
  328. package/lib/time-picker/time-picker.d.ts +188 -28
  329. package/lib/toggletip/toggletip.d.ts +84 -4
  330. package/lib/tooltip/tooltip.d.ts +42 -2
  331. package/lib/tree-item/tree-item.d.ts +84 -4
  332. package/lib/tree-view/tree-view.d.ts +42 -2
  333. package/lib/video-player/video-player.d.ts +42 -2
  334. package/locales/de-DE.cjs +13 -1
  335. package/locales/de-DE.js +13 -1
  336. package/locales/en-GB.cjs +13 -1
  337. package/locales/en-GB.js +13 -1
  338. package/locales/en-US.cjs +13 -1
  339. package/locales/en-US.js +13 -1
  340. package/locales/ja-JP.cjs +13 -1
  341. package/locales/ja-JP.js +13 -1
  342. package/locales/zh-CN.cjs +13 -1
  343. package/locales/zh-CN.js +13 -1
  344. package/{shared/definition31.cjs → menu/definition.cjs} +46 -46
  345. package/{shared/definition31.js → menu/definition.js} +16 -18
  346. package/menu/index.cjs +1 -5
  347. package/menu/index.js +2 -3
  348. package/menu-item/definition.cjs +14 -0
  349. package/menu-item/definition.js +3 -0
  350. package/menu-item/index.cjs +1 -5
  351. package/menu-item/index.js +2 -3
  352. package/{shared/definition34.cjs → nav/definition.cjs} +7 -4
  353. package/{shared/definition34.js → nav/definition.js} +4 -3
  354. package/nav/index.cjs +5 -5
  355. package/nav/index.js +13 -3
  356. package/nav-disclosure/definition.cjs +122 -0
  357. package/nav-disclosure/definition.js +116 -0
  358. package/nav-disclosure/index.cjs +16 -5
  359. package/nav-disclosure/index.js +96 -3
  360. package/{shared/definition33.cjs → nav-item/definition.cjs} +19 -16
  361. package/{shared/definition33.js → nav-item/definition.js} +9 -8
  362. package/nav-item/index.cjs +2 -5
  363. package/nav-item/index.js +59 -3
  364. package/{shared/definition35.cjs → note/definition.cjs} +15 -13
  365. package/{shared/definition35.js → note/definition.js} +6 -6
  366. package/note/index.cjs +9 -5
  367. package/note/index.js +44 -3
  368. package/number-field/definition.cjs +438 -0
  369. package/{shared/definition36.js → number-field/definition.js} +31 -27
  370. package/number-field/index.cjs +60 -5
  371. package/number-field/index.js +369 -3
  372. package/option/definition.cjs +84 -0
  373. package/option/definition.js +78 -0
  374. package/option/index.cjs +1 -5
  375. package/option/index.js +2 -3
  376. package/package.json +15 -4
  377. package/{shared/definition38.cjs → pagination/definition.cjs} +31 -33
  378. package/{shared/definition38.js → pagination/definition.js} +7 -11
  379. package/pagination/index.cjs +43 -5
  380. package/pagination/index.js +194 -3
  381. package/popup/definition.cjs +13 -0
  382. package/popup/definition.js +4 -0
  383. package/popup/index.cjs +1 -5
  384. package/popup/index.js +2 -3
  385. package/{shared/definition40.cjs → progress/definition.cjs} +17 -15
  386. package/{shared/definition40.js → progress/definition.js} +6 -6
  387. package/progress/index.cjs +17 -5
  388. package/progress/index.js +69 -3
  389. package/{shared/definition39.cjs → progress-ring/definition.cjs} +17 -15
  390. package/{shared/definition39.js → progress-ring/definition.js} +7 -7
  391. package/progress-ring/index.cjs +1 -5
  392. package/progress-ring/index.js +2 -3
  393. package/{shared/definition42.cjs → radio/definition.cjs} +20 -23
  394. package/{shared/definition42.js → radio/definition.js} +8 -13
  395. package/radio/index.cjs +1 -5
  396. package/radio/index.js +2 -3
  397. package/{shared/definition41.cjs → radio-group/definition.cjs} +31 -30
  398. package/{shared/definition41.js → radio-group/definition.js} +8 -9
  399. package/radio-group/index.cjs +23 -5
  400. package/radio-group/index.js +255 -3
  401. package/{shared/definition43.cjs → range-slider/definition.cjs} +62 -61
  402. package/{shared/definition43.js → range-slider/definition.js} +13 -14
  403. package/range-slider/index.cjs +68 -5
  404. package/range-slider/index.js +456 -3
  405. package/rich-text-editor/definition.cjs +1206 -0
  406. package/rich-text-editor/definition.js +1200 -0
  407. package/rich-text-editor/index.cjs +133 -4
  408. package/rich-text-editor/index.js +10386 -2
  409. package/{shared/definition45.cjs → searchable-select/definition.cjs} +119 -116
  410. package/{shared/definition45.js → searchable-select/definition.js} +25 -24
  411. package/searchable-select/index.cjs +164 -5
  412. package/searchable-select/index.js +1025 -3
  413. package/{shared/definition46.cjs → select/definition.cjs} +80 -83
  414. package/{shared/definition46.js → select/definition.js} +19 -24
  415. package/select/index.cjs +1 -5
  416. package/select/index.js +2 -3
  417. package/{shared/definition47.cjs → selectable-box/definition.cjs} +26 -32
  418. package/{shared/definition47.js → selectable-box/definition.js} +9 -17
  419. package/selectable-box/index.cjs +28 -5
  420. package/selectable-box/index.js +136 -3
  421. package/shared/aria/aria-mixin.d.ts +43 -3
  422. package/shared/aria/attribute-removal.d.ts +3 -0
  423. package/shared/aria/delegate-aria-behavior.d.ts +0 -3
  424. package/shared/aria/delegates-aria.d.ts +42 -2
  425. package/shared/aria/host-semantics.d.ts +42 -2
  426. package/shared/color-picker/index.d.ts +2 -0
  427. package/shared/color-picker/types.d.ts +4 -0
  428. package/shared/color-picker/utils.d.ts +3 -0
  429. package/shared/feedback/feedback-message.d.ts +42 -2
  430. package/shared/feedback/mixins.d.ts +84 -4
  431. package/shared/foundation/button/button.d.ts +84 -4
  432. package/shared/foundation/form-associated/form-associated.d.ts +84 -4
  433. package/shared/foundation/vivid-element/vivid-element.d.ts +43 -3
  434. package/shared/localization/Locale.d.ts +2 -0
  435. package/shared/patterns/affix.d.ts +84 -4
  436. package/shared/patterns/anchored.d.ts +84 -4
  437. package/shared/patterns/char-count/char-count.d.ts +42 -2
  438. package/shared/patterns/form-elements/form-element.d.ts +84 -4
  439. package/shared/patterns/form-elements/with-contextual-help.d.ts +1238 -0
  440. package/shared/patterns/form-elements/with-error-text.d.ts +126 -6
  441. package/shared/patterns/form-elements/with-success-text.d.ts +42 -2
  442. package/shared/patterns/linkable.d.ts +42 -2
  443. package/shared/patterns/localized.d.ts +42 -2
  444. package/shared/patterns/trapped-focus.d.ts +42 -2
  445. package/shared/picker-field/mixins/calendar-picker.d.ts +94 -14
  446. package/shared/picker-field/mixins/calendar-picker.template.d.ts +94 -14
  447. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +42 -2
  448. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +188 -28
  449. package/shared/picker-field/mixins/single-date-picker.d.ts +280 -40
  450. package/shared/picker-field/mixins/single-value-picker.d.ts +92 -12
  451. package/shared/picker-field/mixins/time-selection-picker.d.ts +188 -28
  452. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +188 -28
  453. package/shared/picker-field/picker-field.d.ts +252 -12
  454. package/{shared/definition48.cjs → side-drawer/definition.cjs} +16 -14
  455. package/{shared/definition48.js → side-drawer/definition.js} +5 -5
  456. package/side-drawer/index.cjs +17 -3
  457. package/side-drawer/index.js +100 -2
  458. package/simple-color-picker/definition.cjs +398 -0
  459. package/simple-color-picker/definition.js +392 -0
  460. package/simple-color-picker/index.cjs +31 -0
  461. package/simple-color-picker/index.js +250 -0
  462. package/{shared/definition49.cjs → slider/definition.cjs} +46 -53
  463. package/{shared/definition49.js → slider/definition.js} +11 -20
  464. package/slider/index.cjs +1 -5
  465. package/slider/index.js +2 -3
  466. package/split-button/definition.cjs +176 -0
  467. package/split-button/definition.js +170 -0
  468. package/split-button/index.cjs +26 -5
  469. package/split-button/index.js +149 -3
  470. package/styles/core/all.css +1 -1
  471. package/styles/core/theme.css +1 -1
  472. package/styles/core/typography.css +1 -1
  473. package/styles/tokens/theme-dark.css +4 -4
  474. package/styles/tokens/theme-light.css +4 -4
  475. package/styles/tokens/vivid-2-compat.css +1 -1
  476. package/{shared/definition51.cjs → switch/definition.cjs} +20 -19
  477. package/{shared/definition51.js → switch/definition.js} +8 -9
  478. package/switch/index.cjs +16 -5
  479. package/switch/index.js +102 -3
  480. package/tab/definition.cjs +127 -0
  481. package/tab/definition.js +121 -0
  482. package/tab/index.cjs +1 -5
  483. package/tab/index.js +2 -3
  484. package/{shared/definition52.cjs → tab-panel/definition.cjs} +7 -4
  485. package/{shared/definition52.js → tab-panel/definition.js} +4 -3
  486. package/tab-panel/index.cjs +1 -5
  487. package/tab-panel/index.js +2 -3
  488. package/{shared/definition54.cjs → tabs/definition.cjs} +47 -40
  489. package/{shared/definition54.js → tabs/definition.js} +19 -14
  490. package/tabs/index.cjs +31 -5
  491. package/tabs/index.js +321 -3
  492. package/tag/definition.cjs +156 -0
  493. package/tag/definition.js +150 -0
  494. package/tag/index.cjs +19 -5
  495. package/tag/index.js +118 -3
  496. package/{shared/definition55.cjs → tag-group/definition.cjs} +9 -6
  497. package/{shared/definition55.js → tag-group/definition.js} +5 -4
  498. package/tag-group/index.cjs +8 -5
  499. package/tag-group/index.js +26 -3
  500. package/text-area/definition.cjs +355 -0
  501. package/text-area/definition.js +349 -0
  502. package/text-area/index.cjs +41 -5
  503. package/text-area/index.js +293 -3
  504. package/{shared/definition58.cjs → text-field/definition.cjs} +70 -52
  505. package/{shared/definition58.js → text-field/definition.js} +40 -24
  506. package/text-field/index.cjs +1 -5
  507. package/text-field/index.js +2 -3
  508. package/time-picker/definition.cjs +43 -0
  509. package/{shared/definition59.js → time-picker/definition.js} +9 -8
  510. package/time-picker/index.cjs +1 -5
  511. package/time-picker/index.js +29 -3
  512. package/{shared/definition60.cjs → toggletip/definition.cjs} +20 -18
  513. package/{shared/definition60.js → toggletip/definition.js} +8 -8
  514. package/toggletip/index.cjs +1 -5
  515. package/toggletip/index.js +2 -3
  516. package/{shared/definition61.cjs → tooltip/definition.cjs} +16 -13
  517. package/{shared/definition61.js → tooltip/definition.js} +7 -6
  518. package/tooltip/index.cjs +1 -5
  519. package/tooltip/index.js +2 -3
  520. package/tree-item/definition.cjs +13 -0
  521. package/tree-item/definition.js +3 -0
  522. package/tree-item/index.cjs +1 -5
  523. package/tree-item/index.js +2 -3
  524. package/{shared/definition63.cjs → tree-view/definition.cjs} +42 -44
  525. package/{shared/definition63.js → tree-view/definition.js} +7 -11
  526. package/tree-view/index.cjs +13 -5
  527. package/tree-view/index.js +171 -3
  528. package/{shared → unbundled}/affix.cjs +10 -11
  529. package/{shared → unbundled}/affix.js +2 -3
  530. package/{shared → unbundled}/anchored.cjs +7 -8
  531. package/{shared → unbundled}/anchored.js +1 -2
  532. package/{shared → unbundled}/attribute-binding-behaviour.cjs +3 -3
  533. package/{shared → unbundled}/attribute-binding-behaviour.js +1 -1
  534. package/{shared → unbundled}/base-progress.cjs +6 -5
  535. package/{shared → unbundled}/base-progress.js +2 -1
  536. package/{shared → unbundled}/breadcrumb-item.cjs +3 -2
  537. package/{shared → unbundled}/breadcrumb-item.js +2 -1
  538. package/{shared → unbundled}/button.cjs +10 -9
  539. package/{shared → unbundled}/button.js +2 -1
  540. package/{shared → unbundled}/calendar-event.cjs +8 -7
  541. package/{shared → unbundled}/calendar-event.js +2 -1
  542. package/unbundled/calendar-picker.template.cjs +917 -0
  543. package/unbundled/calendar-picker.template.js +906 -0
  544. package/{shared → unbundled}/char-count.cjs +6 -7
  545. package/{shared → unbundled}/char-count.js +2 -3
  546. package/unbundled/definition.cjs +225 -0
  547. package/unbundled/definition.js +220 -0
  548. package/{shared/definition30.cjs → unbundled/definition2.cjs} +49 -46
  549. package/{shared/definition30.js → unbundled/definition2.js} +14 -11
  550. package/unbundled/definition3.cjs +207 -0
  551. package/{shared/definition62.js → unbundled/definition3.js} +6 -10
  552. package/unbundled/definition4.cjs +298 -0
  553. package/unbundled/definition4.js +293 -0
  554. package/{shared/definition65.cjs → unbundled/definition5.cjs} +7 -6
  555. package/{shared/definition65.js → unbundled/definition5.js} +3 -2
  556. package/{shared → unbundled}/delegates-aria.cjs +8 -28
  557. package/{shared → unbundled}/delegates-aria.js +6 -26
  558. package/{shared → unbundled}/divider.cjs +13 -7
  559. package/{shared → unbundled}/divider.js +11 -5
  560. package/{shared → unbundled}/form-associated.cjs +13 -13
  561. package/{shared → unbundled}/form-associated.js +2 -2
  562. package/{shared → unbundled}/form-element.cjs +3 -3
  563. package/{shared → unbundled}/form-element.js +1 -1
  564. package/{shared → unbundled}/host-semantics.cjs +2 -1
  565. package/{shared → unbundled}/host-semantics.js +2 -1
  566. package/unbundled/key-codes.cjs +10 -0
  567. package/unbundled/key-codes.js +7 -0
  568. package/{shared → unbundled}/linkable.cjs +11 -12
  569. package/{shared → unbundled}/linkable.js +1 -2
  570. package/{shared → unbundled}/listbox.cjs +22 -38
  571. package/{shared → unbundled}/listbox.js +4 -20
  572. package/{shared → unbundled}/localized.cjs +2 -2
  573. package/{shared → unbundled}/localized.js +1 -1
  574. package/{shared → unbundled}/mixins.cjs +27 -83
  575. package/{shared → unbundled}/mixins.js +6 -62
  576. package/{shared → unbundled}/option.cjs +42 -17
  577. package/{shared → unbundled}/option.js +29 -4
  578. package/{shared → unbundled}/picker-field.template.cjs +21 -21
  579. package/{shared → unbundled}/picker-field.template.js +7 -7
  580. package/{shared → unbundled}/slider.template.cjs +15 -19
  581. package/{shared → unbundled}/slider.template.js +3 -7
  582. package/unbundled/text-field.cjs +5 -0
  583. package/unbundled/text-field.js +3 -0
  584. package/{shared → unbundled}/time-selection-picker.template.cjs +28 -30
  585. package/{shared → unbundled}/time-selection-picker.template.js +4 -6
  586. package/unbundled/vivid-element.cjs +283 -0
  587. package/unbundled/vivid-element.js +274 -0
  588. package/unbundled/with-contextual-help.cjs +29 -0
  589. package/unbundled/with-contextual-help.js +27 -0
  590. package/{shared → unbundled}/with-error-text.cjs +2 -2
  591. package/{shared → unbundled}/with-error-text.js +1 -1
  592. package/{shared → unbundled}/with-success-text.cjs +2 -2
  593. package/{shared → unbundled}/with-success-text.js +1 -1
  594. package/video-player/definition.cjs +536 -0
  595. package/video-player/definition.js +530 -0
  596. package/video-player/index.cjs +536 -3
  597. package/video-player/index.js +35912 -2
  598. package/{shared/definition66.cjs → visually-hidden/definition.cjs} +6 -3
  599. package/{shared/definition66.js → visually-hidden/definition.js} +3 -2
  600. package/visually-hidden/index.cjs +1 -5
  601. package/visually-hidden/index.js +2 -3
  602. package/vivid.api.json +716 -914
  603. package/shared/_has.cjs +0 -58
  604. package/shared/_has.js +0 -54
  605. package/shared/aria.cjs +0 -11
  606. package/shared/aria.js +0 -9
  607. package/shared/calendar-picker.template.cjs +0 -6377
  608. package/shared/calendar-picker.template.js +0 -6366
  609. package/shared/children.cjs +0 -61
  610. package/shared/children.js +0 -59
  611. package/shared/class-names.cjs +0 -17
  612. package/shared/class-names.js +0 -15
  613. package/shared/definition.cjs +0 -145
  614. package/shared/definition.js +0 -141
  615. package/shared/definition11.cjs +0 -220
  616. package/shared/definition11.js +0 -215
  617. package/shared/definition14.cjs +0 -185
  618. package/shared/definition24.cjs +0 -80
  619. package/shared/definition24.js +0 -76
  620. package/shared/definition25.cjs +0 -90
  621. package/shared/definition25.js +0 -86
  622. package/shared/definition26.cjs +0 -2514
  623. package/shared/definition26.js +0 -2510
  624. package/shared/definition32.cjs +0 -120
  625. package/shared/definition32.js +0 -116
  626. package/shared/definition36.cjs +0 -432
  627. package/shared/definition37.cjs +0 -71
  628. package/shared/definition37.js +0 -68
  629. package/shared/definition44.cjs +0 -14666
  630. package/shared/definition44.js +0 -14662
  631. package/shared/definition50.cjs +0 -148
  632. package/shared/definition50.js +0 -144
  633. package/shared/definition53.cjs +0 -124
  634. package/shared/definition53.js +0 -120
  635. package/shared/definition56.cjs +0 -154
  636. package/shared/definition56.js +0 -150
  637. package/shared/definition57.cjs +0 -335
  638. package/shared/definition57.js +0 -331
  639. package/shared/definition59.cjs +0 -39
  640. package/shared/definition62.cjs +0 -211
  641. package/shared/definition64.cjs +0 -69579
  642. package/shared/definition64.js +0 -69575
  643. package/shared/definition67.cjs +0 -2227
  644. package/shared/definition67.js +0 -2222
  645. package/shared/dom.cjs +0 -10
  646. package/shared/dom.js +0 -8
  647. package/shared/key-codes.cjs +0 -32
  648. package/shared/key-codes.js +0 -18
  649. package/shared/numbers.cjs +0 -38
  650. package/shared/numbers.js +0 -34
  651. package/shared/ref.cjs +0 -43
  652. package/shared/ref.js +0 -41
  653. package/shared/repeat.cjs +0 -767
  654. package/shared/repeat.js +0 -764
  655. package/shared/slotted.cjs +0 -123
  656. package/shared/slotted.js +0 -119
  657. package/shared/strings.cjs +0 -11
  658. package/shared/strings.js +0 -9
  659. package/shared/text-field.cjs +0 -5
  660. package/shared/text-field.js +0 -3
  661. package/shared/vivid-element.cjs +0 -2771
  662. package/shared/vivid-element.js +0 -2748
  663. package/shared/when.cjs +0 -31
  664. package/shared/when.js +0 -29
  665. /package/{shared → unbundled}/enums.cjs +0 -0
  666. /package/{shared → unbundled}/enums.js +0 -0
  667. /package/{shared → unbundled}/index.cjs +0 -0
  668. /package/{shared → unbundled}/index.js +0 -0
  669. /package/{shared → unbundled}/playbackRates.cjs +0 -0
  670. /package/{shared → unbundled}/playbackRates.js +0 -0
  671. /package/{shared → unbundled}/scrollIntoView.cjs +0 -0
  672. /package/{shared → unbundled}/scrollIntoView.js +0 -0
  673. /package/{shared → unbundled}/single-date-picker.cjs +0 -0
  674. /package/{shared → unbundled}/single-date-picker.js +0 -0
  675. /package/{shared → unbundled}/single-value-picker.cjs +0 -0
  676. /package/{shared → unbundled}/single-value-picker.js +0 -0
@@ -0,0 +1,345 @@
1
+ import { p as v } from "./definition9.js";
2
+ import { V as b, a, o as s, n as m, v as g, c as k, d as f } from "./vivid-element.js";
3
+ import { a as y, k as _, b as z, h as x, c as w, g as M } from "./key-codes.js";
4
+ import { i as d, l as T, r as D, d as O, S as L } from "./slider.template.js";
5
+ import { D as C } from "./delegates-aria.js";
6
+ import { F as E } from "./form-associated.js";
7
+ import { O as u } from "./aria.js";
8
+ import { L as V } from "./localized.js";
9
+ import { l as N } from "./numbers.js";
10
+ var c;
11
+ (function(l) {
12
+ l.ltr = "ltr", l.rtl = "rtl";
13
+ })(c || (c = {}));
14
+ const F = ':host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,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));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}@media (hover: hover){.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:"";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:"";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}:host([internal-part]) .thumb-container{opacity:0;transition:opacity .2s ease}:host([internal-part]) .control.horizontal .track{top:16px;block-size:4px;overflow:hidden}:host([internal-part]) .control:focus .thumb-container{opacity:1}@media (hover: hover){:host([internal-part]) .control:hover .thumb-container{opacity:1}}', S = (l) => {
15
+ const t = l.closest("[dir]");
16
+ return t !== null && t.dir === "rtl" ? c.rtl : c.ltr;
17
+ };
18
+ var P = Object.defineProperty, W = Object.getOwnPropertyDescriptor, o = (l, t, i, r) => {
19
+ for (var n = r > 1 ? void 0 : r ? W(t, i) : t, h = l.length - 1, p; h >= 0; h--)
20
+ (p = l[h]) && (n = (r ? p(t, i, n) : p(n)) || n);
21
+ return r && n && P(t, i, n), n;
22
+ };
23
+ const $ = {
24
+ singleValue: "single-value"
25
+ };
26
+ class e extends V(
27
+ C(E(b))
28
+ ) {
29
+ constructor() {
30
+ super(...arguments), this.proxy = document.createElement("input"), this.direction = c.ltr, this.isDragging = !1, this.trackWidth = 0, this.trackMinWidth = 0, this.trackHeight = 0, this.trackLeft = 0, this.trackMinHeight = 0, this.valueTextFormatter = (t) => parseFloat(t).toLocaleString(this.locale.lang), this.min = 0, this.max = 10, this.step = 1, this.orientation = u.horizontal, this.mode = $.singleValue, this.keypressHandler = (t) => {
31
+ if (this._focusVisible = !0, !this.readOnly) {
32
+ if (t.key === y)
33
+ t.preventDefault(), this.value = `${this.min}`;
34
+ else if (t.key === _)
35
+ t.preventDefault(), this.value = `${this.max}`;
36
+ else if (!t.shiftKey)
37
+ switch (t.key) {
38
+ case M:
39
+ case w:
40
+ t.preventDefault(), this.increment();
41
+ break;
42
+ case x:
43
+ case z:
44
+ t.preventDefault(), this.decrement();
45
+ break;
46
+ }
47
+ }
48
+ }, this.setupTrackConstraints = () => {
49
+ const t = this.track.getBoundingClientRect();
50
+ this.trackWidth = this.track.clientWidth, this.trackMinWidth = this.track.clientLeft, this.trackHeight = t.bottom, this.trackMinHeight = t.top, this.trackLeft = this.getBoundingClientRect().left, this.trackWidth === 0 && (this.trackWidth = 1);
51
+ }, this.setupListeners = (t = !1) => {
52
+ const i = t ? "removeEventListener" : "addEventListener";
53
+ this[i]("keydown", this.keypressHandler), this[i]("mousedown", this.handleMouseDown), this.thumb[i](
54
+ "mousedown",
55
+ this.handleThumbMouseDown,
56
+ {
57
+ passive: !0
58
+ }
59
+ ), this.thumb[i](
60
+ "touchstart",
61
+ this.handleThumbMouseDown,
62
+ {
63
+ passive: !0
64
+ }
65
+ ), t && (this.handleMouseDown(null), this.handleThumbMouseDown(null));
66
+ }, this.initialValue = "", this.handleThumbMouseDown = (t) => {
67
+ if (t) {
68
+ if (this.readOnly || this.disabled || t.defaultPrevented)
69
+ return;
70
+ this.#i = !0, t.target.focus(), this.#i = !1;
71
+ }
72
+ const i = t !== null ? "addEventListener" : "removeEventListener";
73
+ window[i]("mouseup", this.handleWindowMouseUp), window[i]("mousemove", this.handleMouseMove, {
74
+ passive: !0
75
+ }), window[i]("touchmove", this.handleMouseMove, {
76
+ passive: !0
77
+ }), window[i]("touchend", this.handleWindowMouseUp), this.isDragging = t !== null;
78
+ }, this.handleMouseMove = (t) => {
79
+ if (this.readOnly || this.disabled || t.defaultPrevented)
80
+ return;
81
+ const i = "TouchEvent" in window && t instanceof TouchEvent ? t.touches[0] : t, r = this.#r(i);
82
+ this.value = `${this.#t(r)}`;
83
+ }, this.handleWindowMouseUp = (t) => {
84
+ this.stopDragging();
85
+ }, this.stopDragging = () => {
86
+ this.isDragging = !1, this.handleMouseDown(null), this.handleThumbMouseDown(null);
87
+ }, this.handleMouseDown = (t) => {
88
+ const i = t !== null ? "addEventListener" : "removeEventListener";
89
+ if ((t === null || !this.disabled && !this.readOnly) && (window[i]("mouseup", this.handleWindowMouseUp), window.document[i](
90
+ "mouseleave",
91
+ this.handleWindowMouseUp
92
+ ), window[i]("mousemove", this.handleMouseMove), t)) {
93
+ t.preventDefault(), this.setupTrackConstraints(), this.#i = !0, t.target.focus(), this.#i = !1;
94
+ const r = this.#r(t);
95
+ this.value = `${this.#t(r)}`, this.isDragging = !0;
96
+ }
97
+ }, this.markers = !1, this.pin = !1, this._focusVisible = !1, this._hoveringOnThumb = !1, this.#i = !1, this._onFocusIn = () => {
98
+ this.#i || (this._focusVisible = !0);
99
+ }, this._onFocusOut = () => {
100
+ this._focusVisible = !1;
101
+ }, this.#e = () => {
102
+ this._hoveringOnThumb = !0;
103
+ }, this.#o = () => {
104
+ this._hoveringOnThumb = !1;
105
+ };
106
+ }
107
+ // Map to proxy element
108
+ /**
109
+ * @internal
110
+ */
111
+ readOnlyChanged() {
112
+ this.proxy instanceof HTMLInputElement && (this.proxy.readOnly = this.readOnly);
113
+ }
114
+ /**
115
+ * The value property, typed as a number.
116
+ *
117
+ * @public
118
+ */
119
+ get valueAsNumber() {
120
+ return parseFloat(this.value);
121
+ }
122
+ set valueAsNumber(t) {
123
+ this.value = t.toString();
124
+ }
125
+ /**
126
+ * @internal
127
+ */
128
+ valueChanged(t, i) {
129
+ if (super.valueChanged(t, i), this.$fastController.isConnected) {
130
+ const r = parseFloat(i), n = this.#t(r).toString();
131
+ if (n !== i) {
132
+ this.value = n;
133
+ return;
134
+ }
135
+ this.setThumbPositionForOrientation(this.direction), this.$emit("change");
136
+ }
137
+ }
138
+ // Map to proxy element.
139
+ /**
140
+ * @internal
141
+ */
142
+ minChanged() {
143
+ this.proxy instanceof HTMLInputElement && (this.proxy.min = `${this.min}`), this.validate();
144
+ }
145
+ // Map to proxy element.
146
+ /**
147
+ * @internal
148
+ */
149
+ maxChanged() {
150
+ this.proxy instanceof HTMLInputElement && (this.proxy.max = `${this.max}`), this.validate();
151
+ }
152
+ // Map to proxy element.
153
+ /**
154
+ * @internal
155
+ */
156
+ stepChanged() {
157
+ this.proxy instanceof HTMLInputElement && (this.proxy.step = `${this.step}`), this.updateStepMultiplier(), this.validate();
158
+ }
159
+ /**
160
+ * @internal
161
+ */
162
+ orientationChanged() {
163
+ this.$fastController.isConnected && this.setThumbPositionForOrientation(this.direction);
164
+ }
165
+ /**
166
+ * @internal
167
+ */
168
+ connectedCallback() {
169
+ super.connectedCallback(), this.proxy.setAttribute("type", "range"), this.direction = S(this), this.updateStepMultiplier(), this.setupTrackConstraints(), this.setupListeners(), this.setupDefaultValue(), this.setThumbPositionForOrientation(this.direction), this.#s();
170
+ }
171
+ /**
172
+ * @internal
173
+ */
174
+ disconnectedCallback() {
175
+ this.setupListeners(!0), this.#a();
176
+ }
177
+ /**
178
+ * Increment the value by the step
179
+ *
180
+ * @public
181
+ */
182
+ increment() {
183
+ const t = this.direction !== c.rtl && this.orientation !== u.vertical ? Number(this.value) + Number(this.step) : Number(this.value) - Number(this.step);
184
+ this.value = this.#t(t).toString();
185
+ }
186
+ /**
187
+ * Decrement the value by the step
188
+ *
189
+ * @public
190
+ */
191
+ decrement() {
192
+ const t = this.direction !== c.rtl && this.orientation !== u.vertical ? Number(this.value) - Number(this.step) : Number(this.value) + Number(this.step);
193
+ this.value = this.#t(t).toString();
194
+ }
195
+ /**
196
+ * Places the thumb based on the current value
197
+ *
198
+ * @public
199
+ * @param direction - writing mode
200
+ */
201
+ setThumbPositionForOrientation(t) {
202
+ const i = this.#n(this.valueAsNumber);
203
+ this.orientation === u.horizontal ? this.position = this.isDragging ? `right: ${i}%; transition: none;` : `right: ${i}%; transition: right 0.2s ease;` : this.position = this.isDragging ? `bottom: ${i}%; transition: none;` : `bottom: ${i}%; transition: bottom 0.2s ease;`;
204
+ }
205
+ #n(t) {
206
+ return (1 - d(this.min, this.max, t)) * 100;
207
+ }
208
+ /**
209
+ * Update the step multiplier used to ensure rounding errors from steps that
210
+ * are not whole numbers
211
+ */
212
+ updateStepMultiplier() {
213
+ const t = this.step + "", i = this.step % 1 ? t.length - t.indexOf(".") - 1 : 0;
214
+ this.stepMultiplier = Math.pow(10, i);
215
+ }
216
+ get midpoint() {
217
+ return `${this.#t((this.max + this.min) / 2)}`;
218
+ }
219
+ setupDefaultValue() {
220
+ if (typeof this.value == "string")
221
+ if (this.value.length === 0)
222
+ this.initialValue = this.midpoint;
223
+ else {
224
+ const t = parseFloat(this.value);
225
+ !Number.isNaN(t) && (t < this.min || t > this.max) && (this.value = this.midpoint);
226
+ }
227
+ }
228
+ #r(t) {
229
+ const i = this.track.getBoundingClientRect(), [r, n, h] = this.orientation === u.horizontal ? [
230
+ this.track.clientLeft,
231
+ this.track.clientWidth,
232
+ t.pageX - document.documentElement.scrollLeft - this.getBoundingClientRect().left
233
+ ] : [
234
+ i.top,
235
+ i.bottom,
236
+ t.pageY - document.documentElement.scrollTop
237
+ ];
238
+ return T(this.min, this.max, d(r, n, h));
239
+ }
240
+ #t(t) {
241
+ return N(
242
+ this.min,
243
+ this.max,
244
+ D(t - this.min, this.step) + this.min
245
+ );
246
+ }
247
+ get _isThumbPopupOpen() {
248
+ return this._focusVisible || this._hoveringOnThumb || this.isDragging;
249
+ }
250
+ #i;
251
+ #s() {
252
+ this.thumb.addEventListener("mouseover", this.#e, {
253
+ passive: !0
254
+ }), this.thumb.addEventListener("mouseout", this.#o, {
255
+ passive: !0
256
+ });
257
+ }
258
+ #a() {
259
+ this.thumb.removeEventListener("mouseover", this.#e), this.thumb.removeEventListener("mouseout", this.#o);
260
+ }
261
+ #e;
262
+ #o;
263
+ }
264
+ o([
265
+ a({ attribute: "readonly", mode: "boolean" })
266
+ ], e.prototype, "readOnly", 2);
267
+ o([
268
+ s
269
+ ], e.prototype, "direction", 2);
270
+ o([
271
+ s
272
+ ], e.prototype, "isDragging", 2);
273
+ o([
274
+ s
275
+ ], e.prototype, "position", 2);
276
+ o([
277
+ s
278
+ ], e.prototype, "trackWidth", 2);
279
+ o([
280
+ s
281
+ ], e.prototype, "trackMinWidth", 2);
282
+ o([
283
+ s
284
+ ], e.prototype, "trackHeight", 2);
285
+ o([
286
+ s
287
+ ], e.prototype, "trackLeft", 2);
288
+ o([
289
+ s
290
+ ], e.prototype, "trackMinHeight", 2);
291
+ o([
292
+ s
293
+ ], e.prototype, "valueTextFormatter", 2);
294
+ o([
295
+ a({ converter: m })
296
+ ], e.prototype, "min", 2);
297
+ o([
298
+ a({ converter: m })
299
+ ], e.prototype, "max", 2);
300
+ o([
301
+ a({ converter: O })
302
+ ], e.prototype, "step", 2);
303
+ o([
304
+ a
305
+ ], e.prototype, "orientation", 2);
306
+ o([
307
+ a
308
+ ], e.prototype, "mode", 2);
309
+ o([
310
+ a({
311
+ mode: "boolean"
312
+ })
313
+ ], e.prototype, "markers", 2);
314
+ o([
315
+ a({ mode: "boolean" })
316
+ ], e.prototype, "pin", 2);
317
+ o([
318
+ a
319
+ ], e.prototype, "connotation", 2);
320
+ o([
321
+ s
322
+ ], e.prototype, "_focusVisible", 2);
323
+ o([
324
+ s
325
+ ], e.prototype, "_hoveringOnThumb", 2);
326
+ o([
327
+ g
328
+ ], e.prototype, "_isThumbPopupOpen", 1);
329
+ const A = f(
330
+ "slider",
331
+ e,
332
+ L,
333
+ [v],
334
+ {
335
+ styles: F,
336
+ shadowOptions: {
337
+ delegatesFocus: !0
338
+ }
339
+ }
340
+ ), q = k(A);
341
+ export {
342
+ e as S,
343
+ q as r,
344
+ A as s
345
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";const f=require("./definition9.cjs"),c=require("./definition7.cjs"),i=require("./vivid-element.cjs"),x=require("./anchored.cjs"),v=require("./delegates-aria.cjs"),I=require("./divider.cjs"),u=require("./key-codes.cjs"),b=require("./index.cjs"),y=require("./ref.cjs"),E=require("./class-names.cjs"),h=require("./slotted.cjs"),k=":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;padding:4px;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);min-inline-size:var(--menu-min-inline-size)}@media not all and (width >= 600px){.base{max-inline-size:var(--menu-max-inline-size, 300px)}}@media (width >= 600px){.base{max-inline-size:var(--menu-max-inline-size)}}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[data-vvd-component=menuitem]:focus-visible){box-shadow:0 0 0 4px color-mix(in srgb,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));--focus-stroke-gap-color: transparent;display:block}.header{padding-block-start:4px;padding-inline:8px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";var C=Object.defineProperty,d=(o,e,n,a)=>{for(var t=void 0,s=o.length-1,l;s>=0;s--)(l=o[s])&&(t=l(e,n,t)||t);return t&&C(e,n,t),t};const $=o=>o instanceof c.MenuItem&&o.controlType==="checkbox",p=o=>o instanceof c.MenuItem&&o.controlType==="radio",m=o=>o instanceof I.Divider?!0:o.role==="separator",_=o=>o instanceof c.MenuItem?!0:!!(o.role&&o.role in c.MenuItemRole);class r extends x.Anchored(v.DelegatesAria(i.VividElement)){constructor(){super(...arguments),this.expandedItem=null,this.focusIndex=-1,this.handleFocusOut=e=>{!this.contains(e.relatedTarget)&&this.menuItems!==void 0&&this.menuItems.length&&(this.collapseExpandedItem(),this.menuItems[this.focusIndex].setAttribute("tabindex","-1"),this.menuItems[0].setAttribute("tabindex","0"),this.focusIndex=0)},this.handleItemFocus=e=>{const n=e.target;this.menuItems!==void 0&&n!==this.menuItems[this.focusIndex]&&(this.menuItems[this.focusIndex].setAttribute("tabindex","-1"),this.focusIndex=this.menuItems.indexOf(n),n.setAttribute("tabindex","0"))},this.handleExpandedChanged=e=>{const n=e.target;this.expandedItem!==null&&n===this.expandedItem&&n.expanded===!1&&(this.expandedItem=null),n.expanded&&(this.expandedItem=n)},this.removeItemListeners=()=>{this.menuItems!==void 0&&this.menuItems.forEach(e=>{e.removeEventListener("expanded-change",this.handleExpandedChanged),e.removeEventListener("focus",this.handleItemFocus)})},this.setItems=()=>{const e=this.domChildren();this.removeItemListeners(),this.menuItems=e.filter(_),this.menuItems.length&&(this.focusIndex=0),this.menuItems.forEach((n,a)=>{n instanceof c.MenuItem&&(n._isPresentational=!1),n.setAttribute("tabindex",a===0?"0":"-1"),n.addEventListener("expanded-change",this.handleExpandedChanged),n.addEventListener("focus",this.handleItemFocus)})},this.placement="bottom",this.autoDismiss=!1,this.positionStrategy="fixed",this.open=!1,this.#t=()=>{if(this.#e==="off"||this.#e==="legacy"&&this.open)return;const e=!this.open;i.DOM.queueUpdate(()=>this.open=e)},this._onFocusout=e=>{const n=e.relatedTarget,a=!this.contains(n)&&!this._anchorEl?.contains(n);this.autoDismiss&&a&&(this.open=!1)}}itemsChanged(){this.$fastController.isConnected&&this.menuItems!==void 0&&this.setItems()}connectedCallback(){super.connectedCallback(),i.DOM.queueUpdate(()=>{this.setItems()})}disconnectedCallback(){super.disconnectedCallback(),this.removeItemListeners(),this.menuItems=void 0}focus(){const e=this.querySelector('[autofocus]:not([slot="anchor"])');e instanceof HTMLElement?e.focus():this.setFocus(0)}collapseExpandedItem(){this.expandedItem!==null&&(this.expandedItem.expanded=!1,this.expandedItem=null)}handleMenuKeyDown(e){if(!(e.defaultPrevented||this.menuItems===void 0))switch(e.key){case u.keyArrowDown:this.setFocus(this.focusIndex+1);return;case u.keyArrowUp:this.setFocus(this.focusIndex-1);return;case u.keyEnd:this.setFocus(this.menuItems.length-1);return;case u.keyHome:this.setFocus(0);return;default:return!0}}domChildren(){return Array.from(this.children).filter(e=>!e.hasAttribute("hidden")).filter(e=>!e.hasAttribute("slot"))}setFocus(e){if(this.menuItems!==void 0&&e>=0&&e<this.menuItems.length){const n=this.menuItems[e];this.focusIndex>-1&&this.menuItems.length>=this.focusIndex-1&&this.menuItems[this.focusIndex].setAttribute("tabindex","-1"),this.focusIndex=e,n.setAttribute("tabindex","0"),n.focus()}}get#e(){return this.trigger??"auto"}openChanged(e,n){n&&this._popupEl?.show().then(()=>this.focus()),n?this.$emit("open",void 0,{bubbles:!1}):this.$emit("close",void 0,{bubbles:!1}),this._anchorEl&&this.#n(this._anchorEl)}_anchorElChanged(e,n){e&&this.#o(e),n&&this.#s(n)}#s(e){e.addEventListener("click",this.#t,!0),e.addEventListener("focusout",this._onFocusout),e.ariaHasPopup="menu",this.#n(e)}#n(e){e.ariaExpanded=this.open.toString(),e.dataset.expanded=this.open.toString()}#o(e){e.removeEventListener("click",this.#t,!0),e.removeEventListener("focusout",this._onFocusout),e.ariaHasPopup=null,e.ariaExpanded=null,delete e.dataset.expanded}#t;_onChange(e){if(this.menuItems===void 0||!(e.target instanceof Element))return;this.#e==="auto"&&!$(e.target)&&(this.open=!1);const n=this.domChildren(),a=n.indexOf(e.target);if(a!==-1){if(p(e.target)&&e.target.checked){for(let t=a-1;t>=0;--t){const s=n[t];if(p(s)&&(s.checked=!1),m(s))break}for(let t=a+1;t<=n.length-1;++t){const s=n[t];if(p(s)&&(s.checked=!1),m(s))break}}return!0}}}d([i.observable],r.prototype,"items");d([i.attr({mode:"fromView"})],r.prototype,"placement");d([i.attr],r.prototype,"trigger");d([i.attr({mode:"boolean",attribute:"auto-dismiss"})],r.prototype,"autoDismiss");d([i.attr({mode:"fromView",attribute:"position-strategy"})],r.prototype,"positionStrategy");d([i.attr({mode:"boolean"})],r.prototype,"open");d([i.observable],r.prototype,"headerSlottedContent");d([i.observable],r.prototype,"actionItemsSlottedContent");d([i.observable],r.prototype,"_popupOffset");const A=({headerSlottedContent:o,actionItemsSlottedContent:e,items:n})=>E.classNames("base",["hide-header",!o?.length],["hide-actions",!e?.length],["hide-body",n&&!n.length]);function w(o,e){return o.open&&b.handleEscapeKeyAndStopPropogation(e)&&(o.open=!1),!0}const F=o=>{const e=o.tagFor(f.Popup),n=x.anchorSlotTemplateFactory();function a(t,s,l){s.stopPropagation(),t.open=l}return i.html`
2
+ <template @change="${(t,s)=>t._onChange(s.event)}"
3
+ @focusout="${(t,s)=>t._onFocusout(s.event)}">
4
+ ${n}
5
+ <${e}
6
+ ${y.ref("_popupEl")}
7
+ :placement=${t=>t.placement}
8
+ :open=${t=>t.open}
9
+ :anchor=${t=>t._anchorEl}
10
+ :strategy="${t=>t.positionStrategy}"
11
+ :offset=${t=>t._popupOffset}
12
+ @keydown="${(t,s)=>w(t,s.event)}"
13
+ @vwc-popup:open="${(t,s)=>a(t,s.event,!0)}"
14
+ @vwc-popup:close="${(t,s)=>a(t,s.event,!1)}"
15
+ >
16
+ <div class="${A}">
17
+ <div class="header">
18
+ <slot name="header" ${h.slotted("headerSlottedContent")}></slot>
19
+ </div>
20
+ <div
21
+ class="body"
22
+ ${v.delegateAria({role:"menu"})}
23
+ @keydown="${(t,s)=>t.handleMenuKeyDown(s.event)}"
24
+ @focusout="${(t,s)=>t.handleFocusOut(s.event)}"
25
+ >
26
+ <slot ${h.slotted("items")}></slot>
27
+ </div>
28
+ <footer class="action-items"><slot name="action-items" ${h.slotted("actionItemsSlottedContent")}></slot></footer>
29
+ </div>
30
+ </${e}>
31
+ </template>`},g=i.defineVividComponent(c.menuName,r,F,[f.popupDefinition,c.menuItemDefinition],{styles:k}),M=i.createRegisterFunction(g);exports.Menu=r;exports.menuDefinition=g;exports.registerMenu=M;
@@ -0,0 +1,265 @@
1
+ import { P as x, p as v } from "./definition9.js";
2
+ import { M as l, a as g, m as I, b } from "./definition7.js";
3
+ import { D as m, V as y, o as h, a as d, h as E, c as k, d as C } from "./vivid-element.js";
4
+ import { A as $, a as _ } from "./anchored.js";
5
+ import { D as A, d as w } from "./delegates-aria.js";
6
+ import { D as F } from "./divider.js";
7
+ import { a as D, k as S, c as M, b as L } from "./key-codes.js";
8
+ import { h as P } from "./index.js";
9
+ import { r as z } from "./ref.js";
10
+ import { c as T } from "./class-names.js";
11
+ import { s as u } from "./slotted.js";
12
+ const O = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;padding:4px;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);min-inline-size:var(--menu-min-inline-size)}@media not all and (width >= 600px){.base{max-inline-size:var(--menu-max-inline-size, 300px)}}@media (width >= 600px){.base{max-inline-size:var(--menu-max-inline-size)}}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[data-vvd-component=menuitem]:focus-visible){box-shadow:0 0 0 4px color-mix(in srgb,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));--focus-stroke-gap-color: transparent;display:block}.header{padding-block-start:4px;padding-inline:8px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
13
+ var H = Object.defineProperty, r = (o, e, s, i) => {
14
+ for (var t = void 0, n = o.length - 1, c; n >= 0; n--)
15
+ (c = o[n]) && (t = c(e, s, t) || t);
16
+ return t && H(e, s, t), t;
17
+ };
18
+ const K = (o) => o instanceof l && o.controlType === "checkbox", p = (o) => o instanceof l && o.controlType === "radio", f = (o) => o instanceof F ? !0 : o.role === "separator", q = (o) => o instanceof l ? !0 : !!(o.role && o.role in g);
19
+ class a extends $(A(y)) {
20
+ constructor() {
21
+ super(...arguments), this.expandedItem = null, this.focusIndex = -1, this.handleFocusOut = (e) => {
22
+ !this.contains(e.relatedTarget) && this.menuItems !== void 0 && this.menuItems.length && (this.collapseExpandedItem(), this.menuItems[this.focusIndex].setAttribute("tabindex", "-1"), this.menuItems[0].setAttribute("tabindex", "0"), this.focusIndex = 0);
23
+ }, this.handleItemFocus = (e) => {
24
+ const s = e.target;
25
+ this.menuItems !== void 0 && s !== this.menuItems[this.focusIndex] && (this.menuItems[this.focusIndex].setAttribute("tabindex", "-1"), this.focusIndex = this.menuItems.indexOf(s), s.setAttribute("tabindex", "0"));
26
+ }, this.handleExpandedChanged = (e) => {
27
+ const s = e.target;
28
+ this.expandedItem !== null && s === this.expandedItem && s.expanded === !1 && (this.expandedItem = null), s.expanded && (this.expandedItem = s);
29
+ }, this.removeItemListeners = () => {
30
+ this.menuItems !== void 0 && this.menuItems.forEach((e) => {
31
+ e.removeEventListener("expanded-change", this.handleExpandedChanged), e.removeEventListener(
32
+ "focus",
33
+ this.handleItemFocus
34
+ );
35
+ });
36
+ }, this.setItems = () => {
37
+ const e = this.domChildren();
38
+ this.removeItemListeners(), this.menuItems = e.filter(q), this.menuItems.length && (this.focusIndex = 0), this.menuItems.forEach((s, i) => {
39
+ s instanceof l && (s._isPresentational = !1), s.setAttribute("tabindex", i === 0 ? "0" : "-1"), s.addEventListener("expanded-change", this.handleExpandedChanged), s.addEventListener("focus", this.handleItemFocus);
40
+ });
41
+ }, this.placement = "bottom", this.autoDismiss = !1, this.positionStrategy = "fixed", this.open = !1, this.#t = () => {
42
+ if (this.#e === "off" || this.#e === "legacy" && this.open)
43
+ return;
44
+ const e = !this.open;
45
+ m.queueUpdate(() => this.open = e);
46
+ }, this._onFocusout = (e) => {
47
+ const s = e.relatedTarget, i = !this.contains(s) && !this._anchorEl?.contains(s);
48
+ this.autoDismiss && i && (this.open = !1);
49
+ };
50
+ }
51
+ /**
52
+ * @internal
53
+ */
54
+ itemsChanged() {
55
+ this.$fastController.isConnected && this.menuItems !== void 0 && this.setItems();
56
+ }
57
+ /**
58
+ * @internal
59
+ */
60
+ connectedCallback() {
61
+ super.connectedCallback(), m.queueUpdate(() => {
62
+ this.setItems();
63
+ });
64
+ }
65
+ /**
66
+ * @internal
67
+ */
68
+ disconnectedCallback() {
69
+ super.disconnectedCallback(), this.removeItemListeners(), this.menuItems = void 0;
70
+ }
71
+ /**
72
+ * Moves focus into the menu. If there is a child with the `autofocus` attribute, it will be focused.
73
+ * Otherwise, the first focusable child will be focused.
74
+ *
75
+ * @public
76
+ */
77
+ focus() {
78
+ const e = this.querySelector(
79
+ '[autofocus]:not([slot="anchor"])'
80
+ );
81
+ e instanceof HTMLElement ? e.focus() : this.setFocus(0);
82
+ }
83
+ /**
84
+ * Collapses any expanded Menu Items.
85
+ *
86
+ * @public
87
+ */
88
+ collapseExpandedItem() {
89
+ this.expandedItem !== null && (this.expandedItem.expanded = !1, this.expandedItem = null);
90
+ }
91
+ /**
92
+ * @internal
93
+ */
94
+ handleMenuKeyDown(e) {
95
+ if (!(e.defaultPrevented || this.menuItems === void 0))
96
+ switch (e.key) {
97
+ case L:
98
+ this.setFocus(this.focusIndex + 1);
99
+ return;
100
+ case M:
101
+ this.setFocus(this.focusIndex - 1);
102
+ return;
103
+ case S:
104
+ this.setFocus(this.menuItems.length - 1);
105
+ return;
106
+ case D:
107
+ this.setFocus(0);
108
+ return;
109
+ default:
110
+ return !0;
111
+ }
112
+ }
113
+ /**
114
+ * get an array of valid DOM children
115
+ */
116
+ domChildren() {
117
+ return Array.from(this.children).filter((e) => !e.hasAttribute("hidden")).filter((e) => !e.hasAttribute("slot"));
118
+ }
119
+ setFocus(e) {
120
+ if (this.menuItems !== void 0 && e >= 0 && e < this.menuItems.length) {
121
+ const s = this.menuItems[e];
122
+ this.focusIndex > -1 && this.menuItems.length >= this.focusIndex - 1 && this.menuItems[this.focusIndex].setAttribute("tabindex", "-1"), this.focusIndex = e, s.setAttribute("tabindex", "0"), s.focus();
123
+ }
124
+ }
125
+ get #e() {
126
+ return this.trigger ?? "auto";
127
+ }
128
+ openChanged(e, s) {
129
+ s && this._popupEl?.show().then(() => this.focus()), s ? this.$emit("open", void 0, { bubbles: !1 }) : this.$emit("close", void 0, { bubbles: !1 }), this._anchorEl && this.#s(this._anchorEl);
130
+ }
131
+ /**
132
+ * @internal
133
+ */
134
+ _anchorElChanged(e, s) {
135
+ e && this.#o(e), s && this.#n(s);
136
+ }
137
+ #n(e) {
138
+ e.addEventListener("click", this.#t, !0), e.addEventListener("focusout", this._onFocusout), e.ariaHasPopup = "menu", this.#s(e);
139
+ }
140
+ #s(e) {
141
+ e.ariaExpanded = this.open.toString(), e.dataset.expanded = this.open.toString();
142
+ }
143
+ #o(e) {
144
+ e.removeEventListener("click", this.#t, !0), e.removeEventListener("focusout", this._onFocusout), e.ariaHasPopup = null, e.ariaExpanded = null, delete e.dataset.expanded;
145
+ }
146
+ #t;
147
+ /**
148
+ * @internal
149
+ */
150
+ _onChange(e) {
151
+ if (this.menuItems === void 0 || !(e.target instanceof Element))
152
+ return;
153
+ this.#e === "auto" && !K(e.target) && (this.open = !1);
154
+ const s = this.domChildren(), i = s.indexOf(e.target);
155
+ if (i !== -1) {
156
+ if (p(e.target) && e.target.checked) {
157
+ for (let t = i - 1; t >= 0; --t) {
158
+ const n = s[t];
159
+ if (p(n) && (n.checked = !1), f(n))
160
+ break;
161
+ }
162
+ for (let t = i + 1; t <= s.length - 1; ++t) {
163
+ const n = s[t];
164
+ if (p(n) && (n.checked = !1), f(n))
165
+ break;
166
+ }
167
+ }
168
+ return !0;
169
+ }
170
+ }
171
+ }
172
+ r([
173
+ h
174
+ ], a.prototype, "items");
175
+ r([
176
+ d({ mode: "fromView" })
177
+ ], a.prototype, "placement");
178
+ r([
179
+ d
180
+ ], a.prototype, "trigger");
181
+ r([
182
+ d({ mode: "boolean", attribute: "auto-dismiss" })
183
+ ], a.prototype, "autoDismiss");
184
+ r([
185
+ d({ mode: "fromView", attribute: "position-strategy" })
186
+ ], a.prototype, "positionStrategy");
187
+ r([
188
+ d({ mode: "boolean" })
189
+ ], a.prototype, "open");
190
+ r([
191
+ h
192
+ ], a.prototype, "headerSlottedContent");
193
+ r([
194
+ h
195
+ ], a.prototype, "actionItemsSlottedContent");
196
+ r([
197
+ h
198
+ ], a.prototype, "_popupOffset");
199
+ const R = ({
200
+ headerSlottedContent: o,
201
+ actionItemsSlottedContent: e,
202
+ items: s
203
+ }) => T(
204
+ "base",
205
+ ["hide-header", !o?.length],
206
+ ["hide-actions", !e?.length],
207
+ ["hide-body", s && !s.length]
208
+ );
209
+ function U(o, e) {
210
+ return o.open && P(e) && (o.open = !1), !0;
211
+ }
212
+ const V = (o) => {
213
+ const e = o.tagFor(x), s = _();
214
+ function i(t, n, c) {
215
+ n.stopPropagation(), t.open = c;
216
+ }
217
+ return E`
218
+ <template @change="${(t, n) => t._onChange(n.event)}"
219
+ @focusout="${(t, n) => t._onFocusout(n.event)}">
220
+ ${s}
221
+ <${e}
222
+ ${z("_popupEl")}
223
+ :placement=${(t) => t.placement}
224
+ :open=${(t) => t.open}
225
+ :anchor=${(t) => t._anchorEl}
226
+ :strategy="${(t) => t.positionStrategy}"
227
+ :offset=${(t) => t._popupOffset}
228
+ @keydown="${(t, n) => U(t, n.event)}"
229
+ @vwc-popup:open="${(t, n) => i(t, n.event, !0)}"
230
+ @vwc-popup:close="${(t, n) => i(t, n.event, !1)}"
231
+ >
232
+ <div class="${R}">
233
+ <div class="header">
234
+ <slot name="header" ${u("headerSlottedContent")}></slot>
235
+ </div>
236
+ <div
237
+ class="body"
238
+ ${w({
239
+ role: "menu"
240
+ })}
241
+ @keydown="${(t, n) => t.handleMenuKeyDown(n.event)}"
242
+ @focusout="${(t, n) => t.handleFocusOut(n.event)}"
243
+ >
244
+ <slot ${u("items")}></slot>
245
+ </div>
246
+ <footer class="action-items"><slot name="action-items" ${u(
247
+ "actionItemsSlottedContent"
248
+ )}></slot></footer>
249
+ </div>
250
+ </${e}>
251
+ </template>`;
252
+ }, j = C(
253
+ b,
254
+ a,
255
+ V,
256
+ [v, I],
257
+ {
258
+ styles: O
259
+ }
260
+ ), se = k(j);
261
+ export {
262
+ a as M,
263
+ j as m,
264
+ se as r
265
+ };