@vonage/vivid 4.13.0 → 4.14.1

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 (512) hide show
  1. package/custom-elements.json +3088 -1610
  2. package/elevation/index.cjs +1 -1
  3. package/elevation/index.js +1 -1
  4. package/index.cjs +70 -136
  5. package/index.d.ts +0 -1
  6. package/index.js +60 -62
  7. package/lib/accordion/accordion.d.ts +2 -2
  8. package/lib/accordion/accordion.template.d.ts +1 -2
  9. package/lib/accordion/definition.d.ts +1 -1
  10. package/lib/accordion-item/accordion-item.d.ts +2 -2
  11. package/lib/accordion-item/accordion-item.template.d.ts +2 -3
  12. package/lib/accordion-item/definition.d.ts +1 -1
  13. package/lib/action-group/action-group.d.ts +2 -2
  14. package/lib/action-group/action-group.template.d.ts +1 -3
  15. package/lib/action-group/definition.d.ts +1 -1
  16. package/lib/alert/alert.d.ts +2 -2
  17. package/lib/alert/alert.template.d.ts +2 -3
  18. package/lib/alert/definition.d.ts +1 -1
  19. package/lib/audio-player/audio-player.d.ts +2 -2
  20. package/lib/audio-player/audio-player.template.d.ts +2 -3
  21. package/lib/audio-player/definition.d.ts +1 -3
  22. package/lib/avatar/avatar.d.ts +2 -2
  23. package/lib/avatar/avatar.template.d.ts +2 -3
  24. package/lib/avatar/definition.d.ts +1 -1
  25. package/lib/badge/badge.d.ts +2 -2
  26. package/lib/badge/badge.template.d.ts +2 -3
  27. package/lib/badge/definition.d.ts +1 -3
  28. package/lib/banner/banner.d.ts +2 -2
  29. package/lib/banner/banner.template.d.ts +2 -3
  30. package/lib/banner/definition.d.ts +1 -1
  31. package/lib/breadcrumb/breadcrumb.d.ts +2 -2
  32. package/lib/breadcrumb/breadcrumb.template.d.ts +3 -4
  33. package/lib/breadcrumb/definition.d.ts +1 -1
  34. package/lib/breadcrumb-item/breadcrumb-item.d.ts +2 -2
  35. package/lib/breadcrumb-item/breadcrumb-item.template.d.ts +2 -3
  36. package/lib/breadcrumb-item/definition.d.ts +1 -1
  37. package/lib/button/button.d.ts +2 -2
  38. package/lib/button/button.template.d.ts +2 -4
  39. package/lib/button/definition.d.ts +1 -1
  40. package/lib/calendar/calendar.d.ts +2 -2
  41. package/lib/calendar/calendar.template.d.ts +1 -3
  42. package/lib/calendar/definition.d.ts +1 -1
  43. package/lib/calendar-event/calendar-event.d.ts +2 -2
  44. package/lib/calendar-event/calendar-event.template.d.ts +1 -3
  45. package/lib/calendar-event/definition.d.ts +1 -1
  46. package/lib/card/card.d.ts +2 -2
  47. package/lib/card/card.template.d.ts +2 -3
  48. package/lib/card/definition.d.ts +1 -1
  49. package/lib/checkbox/checkbox.form-associated.d.ts +3 -2
  50. package/lib/checkbox/checkbox.template.d.ts +2 -3
  51. package/lib/checkbox/definition.d.ts +1 -1
  52. package/lib/combobox/combobox.d.ts +17 -2
  53. package/lib/combobox/combobox.options.d.ts +7 -0
  54. package/lib/combobox/combobox.template.d.ts +2 -3
  55. package/lib/combobox/definition.d.ts +1 -2
  56. package/lib/data-grid/data-grid-cell.d.ts +16 -13
  57. package/lib/data-grid/data-grid-cell.template.d.ts +2 -3
  58. package/lib/data-grid/data-grid-row.d.ts +19 -2
  59. package/lib/data-grid/data-grid-row.template.d.ts +2 -2
  60. package/lib/data-grid/data-grid.d.ts +45 -4
  61. package/lib/data-grid/data-grid.template.d.ts +2 -2
  62. package/lib/data-grid/definition.d.ts +1 -6
  63. package/lib/date-picker/definition.d.ts +1 -3
  64. package/lib/date-range-picker/definition.d.ts +1 -3
  65. package/lib/dial-pad/definition.d.ts +1 -3
  66. package/lib/dial-pad/dial-pad.d.ts +2 -2
  67. package/lib/dial-pad/dial-pad.template.d.ts +2 -3
  68. package/lib/dialog/definition.d.ts +1 -1
  69. package/lib/dialog/dialog.d.ts +2 -2
  70. package/lib/dialog/dialog.template.d.ts +2 -3
  71. package/lib/divider/definition.d.ts +1 -1
  72. package/lib/divider/divider.d.ts +2 -2
  73. package/lib/divider/divider.template.d.ts +1 -3
  74. package/lib/elevation/definition.d.ts +1 -1
  75. package/lib/elevation/elevation.d.ts +3 -2
  76. package/lib/elevation/elevation.template.d.ts +1 -3
  77. package/lib/empty-state/definition.d.ts +1 -3
  78. package/lib/empty-state/empty-state.d.ts +2 -2
  79. package/lib/empty-state/empty-state.template.d.ts +2 -3
  80. package/lib/fab/definition.d.ts +1 -3
  81. package/lib/fab/fab.template.d.ts +2 -3
  82. package/lib/file-picker/definition.d.ts +1 -3
  83. package/lib/file-picker/file-picker.form-associated.d.ts +3 -2
  84. package/lib/file-picker/file-picker.template.d.ts +2 -3
  85. package/lib/header/definition.d.ts +1 -3
  86. package/lib/header/header.d.ts +2 -2
  87. package/lib/header/header.template.d.ts +2 -3
  88. package/lib/icon/definition.d.ts +1 -3
  89. package/lib/icon/icon.d.ts +2 -2
  90. package/lib/icon/icon.template.d.ts +1 -3
  91. package/lib/layout/definition.d.ts +1 -3
  92. package/lib/layout/layout.d.ts +2 -2
  93. package/lib/layout/layout.template.d.ts +1 -3
  94. package/lib/listbox/definition.d.ts +1 -3
  95. package/lib/listbox/listbox.template.d.ts +1 -3
  96. package/lib/menu/definition.d.ts +1 -11
  97. package/lib/menu/menu.d.ts +2 -2
  98. package/lib/menu/menu.template.d.ts +3 -3
  99. package/lib/menu-item/definition.d.ts +1 -3
  100. package/lib/menu-item/menu-item.d.ts +2 -2
  101. package/lib/menu-item/menu-item.template.d.ts +2 -3
  102. package/lib/nav/definition.d.ts +1 -3
  103. package/lib/nav/nav.d.ts +2 -2
  104. package/lib/nav/nav.template.d.ts +1 -3
  105. package/lib/nav-disclosure/definition.d.ts +1 -3
  106. package/lib/nav-disclosure/nav-disclosure.d.ts +2 -2
  107. package/lib/nav-disclosure/nav-disclosure.template.d.ts +2 -3
  108. package/lib/nav-item/definition.d.ts +1 -3
  109. package/lib/nav-item/nav-item.template.d.ts +2 -3
  110. package/lib/note/definition.d.ts +1 -3
  111. package/lib/note/note.d.ts +2 -2
  112. package/lib/note/note.template.d.ts +2 -3
  113. package/lib/number-field/definition.d.ts +1 -4
  114. package/lib/number-field/number-field.form-associated.d.ts +3 -2
  115. package/lib/number-field/number-field.template.d.ts +2 -3
  116. package/lib/option/definition.d.ts +1 -3
  117. package/lib/option/option.d.ts +3 -2
  118. package/lib/option/option.template.d.ts +2 -3
  119. package/lib/pagination/definition.d.ts +1 -3
  120. package/lib/pagination/pagination.d.ts +2 -2
  121. package/lib/pagination/pagination.template.d.ts +2 -3
  122. package/lib/popup/definition.d.ts +1 -3
  123. package/lib/popup/popup.template.d.ts +2 -3
  124. package/lib/progress/definition.d.ts +1 -3
  125. package/lib/progress/progress.d.ts +1 -1
  126. package/lib/progress/progress.template.d.ts +1 -4
  127. package/lib/progress-ring/definition.d.ts +1 -3
  128. package/lib/progress-ring/progress-ring.d.ts +1 -1
  129. package/lib/progress-ring/progress-ring.template.d.ts +1 -3
  130. package/lib/radio/definition.d.ts +1 -3
  131. package/lib/radio/radio.form-associated.d.ts +5 -2
  132. package/lib/radio/radio.template.d.ts +1 -3
  133. package/lib/radio-group/definition.d.ts +1 -11
  134. package/lib/radio-group/radio-group.d.ts +2 -2
  135. package/lib/radio-group/radio-group.template.d.ts +2 -3
  136. package/lib/range-slider/definition.d.ts +1 -3
  137. package/lib/range-slider/range-slider.form-associated.d.ts +3 -2
  138. package/lib/range-slider/range-slider.template.d.ts +2 -3
  139. package/lib/searchable-select/definition.d.ts +1 -4
  140. package/lib/searchable-select/option-tag.template.d.ts +2 -3
  141. package/lib/searchable-select/searchable-select.form-associated.d.ts +3 -2
  142. package/lib/searchable-select/searchable-select.template.d.ts +2 -3
  143. package/lib/select/definition.d.ts +1 -3
  144. package/lib/select/select.d.ts +14 -4
  145. package/lib/select/select.form-associated.d.ts +11 -0
  146. package/lib/select/select.template.d.ts +2 -3
  147. package/lib/selectable-box/definition.d.ts +1 -3
  148. package/lib/selectable-box/selectable-box.d.ts +2 -2
  149. package/lib/selectable-box/selectable-box.template.d.ts +2 -3
  150. package/lib/side-drawer/definition.d.ts +1 -3
  151. package/lib/side-drawer/side-drawer.d.ts +2 -2
  152. package/lib/side-drawer/side-drawer.template.d.ts +1 -3
  153. package/lib/slider/definition.d.ts +1 -3
  154. package/lib/slider/slider.form-associated.d.ts +3 -2
  155. package/lib/slider/slider.template.d.ts +3 -4
  156. package/lib/split-button/definition.d.ts +1 -1
  157. package/lib/split-button/split-button.d.ts +2 -2
  158. package/lib/split-button/split-button.template.d.ts +2 -3
  159. package/lib/switch/definition.d.ts +1 -3
  160. package/lib/switch/switch.form-associated.d.ts +3 -2
  161. package/lib/switch/switch.template.d.ts +1 -3
  162. package/lib/tab/definition.d.ts +1 -3
  163. package/lib/tab/tab.d.ts +2 -2
  164. package/lib/tab/tab.template.d.ts +2 -2
  165. package/lib/tab-panel/definition.d.ts +1 -3
  166. package/lib/tab-panel/tab-panel.d.ts +2 -2
  167. package/lib/tab-panel/tab-panel.template.d.ts +1 -1
  168. package/lib/tabs/definition.d.ts +1 -3
  169. package/lib/tabs/tabs.d.ts +3 -7
  170. package/lib/tabs/tabs.template.d.ts +1 -1
  171. package/lib/tag/definition.d.ts +1 -4
  172. package/lib/tag/tag.d.ts +2 -2
  173. package/lib/tag/tag.template.d.ts +2 -3
  174. package/lib/tag-group/definition.d.ts +1 -3
  175. package/lib/tag-group/tag-group.d.ts +2 -2
  176. package/lib/tag-group/tag-group.template.d.ts +1 -3
  177. package/lib/text-anchor/definition.d.ts +1 -3
  178. package/lib/text-anchor/text-anchor.d.ts +4 -3
  179. package/lib/text-anchor/text-anchor.template.d.ts +2 -3
  180. package/lib/text-area/definition.d.ts +1 -3
  181. package/lib/text-area/text-area.d.ts +1 -1
  182. package/lib/text-area/{text-field.form-associated.d.ts → text-area.form-associated.d.ts} +3 -2
  183. package/lib/text-area/text-area.template.d.ts +2 -3
  184. package/lib/text-field/definition.d.ts +1 -3
  185. package/lib/text-field/text-field.form-associated.d.ts +3 -2
  186. package/lib/text-field/text-field.template.d.ts +2 -3
  187. package/lib/time-picker/definition.d.ts +1 -3
  188. package/lib/time-picker/time-picker.form-associated.d.ts +3 -2
  189. package/lib/time-picker/time-picker.template.d.ts +2 -2
  190. package/lib/toggletip/definition.d.ts +1 -3
  191. package/lib/toggletip/toggletip.d.ts +2 -2
  192. package/lib/toggletip/toggletip.template.d.ts +2 -3
  193. package/lib/tooltip/definition.d.ts +1 -3
  194. package/lib/tooltip/tooltip.d.ts +2 -2
  195. package/lib/tooltip/tooltip.template.d.ts +2 -3
  196. package/lib/tree-item/definition.d.ts +1 -3
  197. package/lib/tree-item/tree-item.d.ts +11 -2
  198. package/lib/tree-item/tree-item.template.d.ts +3 -3
  199. package/lib/tree-view/definition.d.ts +1 -3
  200. package/lib/tree-view/tree-view.d.ts +16 -2
  201. package/lib/tree-view/tree-view.template.d.ts +1 -1
  202. package/lib/video-player/definition.d.ts +1 -3
  203. package/lib/video-player/video-player.d.ts +2 -2
  204. package/lib/video-player/video-player.template.d.ts +1 -3
  205. package/listbox/index.cjs +37 -39
  206. package/listbox/index.js +37 -39
  207. package/menu/index.cjs +1 -1
  208. package/menu/index.js +1 -1
  209. package/nav/index.cjs +1 -1
  210. package/nav/index.js +1 -1
  211. package/nav-disclosure/index.cjs +1 -1
  212. package/nav-disclosure/index.js +1 -1
  213. package/nav-item/index.cjs +1 -1
  214. package/nav-item/index.js +1 -1
  215. package/note/index.cjs +1 -1
  216. package/note/index.js +1 -1
  217. package/number-field/index.cjs +1 -1
  218. package/number-field/index.js +1 -1
  219. package/option/index.cjs +1 -1
  220. package/option/index.js +1 -1
  221. package/package.json +1 -1
  222. package/pagination/index.cjs +1 -1
  223. package/pagination/index.js +1 -1
  224. package/popup/index.cjs +1 -1
  225. package/popup/index.js +1 -1
  226. package/progress/index.cjs +1 -1
  227. package/progress/index.js +1 -1
  228. package/progress-ring/index.cjs +1 -1
  229. package/progress-ring/index.js +1 -1
  230. package/radio/index.cjs +1 -1
  231. package/radio/index.js +1 -1
  232. package/radio-group/index.cjs +1 -1
  233. package/radio-group/index.js +1 -1
  234. package/range-slider/index.cjs +1 -1
  235. package/range-slider/index.js +1 -1
  236. package/searchable-select/index.cjs +1 -1
  237. package/searchable-select/index.js +1 -1
  238. package/select/index.cjs +1 -1
  239. package/select/index.js +1 -1
  240. package/selectable-box/index.cjs +1 -1
  241. package/selectable-box/index.js +1 -1
  242. package/shared/affix.cjs +10 -10
  243. package/shared/affix.js +2 -2
  244. package/shared/anchor.cjs +59 -0
  245. package/shared/anchor.js +57 -0
  246. package/shared/anchored.cjs +6 -6
  247. package/shared/anchored.js +2 -2
  248. package/shared/apply-mixins.cjs +15 -17
  249. package/shared/apply-mixins.js +15 -17
  250. package/shared/apply-mixins2.cjs +25 -0
  251. package/shared/apply-mixins2.js +23 -0
  252. package/shared/applyMixinsWithObservables.cjs +4 -4
  253. package/shared/applyMixinsWithObservables.js +2 -2
  254. package/shared/aria-global.cjs +86 -67
  255. package/shared/aria-global.js +86 -67
  256. package/shared/aria-global2.cjs +68 -86
  257. package/shared/aria-global2.js +68 -86
  258. package/shared/base-progress.cjs +69 -63
  259. package/shared/base-progress.js +69 -63
  260. package/shared/breadcrumb-item.cjs +6 -58
  261. package/shared/breadcrumb-item.js +3 -55
  262. package/shared/button.cjs +177 -0
  263. package/shared/button.js +175 -0
  264. package/shared/calendar-event.cjs +9 -9
  265. package/shared/calendar-event.js +2 -2
  266. package/shared/children.cjs +2 -2
  267. package/shared/children.js +1 -1
  268. package/shared/date-picker/date-picker-base.form-associated.d.ts +3 -2
  269. package/shared/date-picker/date-picker-base.template.d.ts +2 -3
  270. package/shared/definition.cjs +25 -24
  271. package/shared/definition.js +16 -14
  272. package/shared/definition10.cjs +14 -12
  273. package/shared/definition10.js +14 -11
  274. package/shared/definition11.cjs +52 -248
  275. package/shared/definition11.js +24 -218
  276. package/shared/definition12.cjs +18 -14
  277. package/shared/definition12.js +17 -12
  278. package/shared/definition13.cjs +19 -19
  279. package/shared/definition13.js +10 -9
  280. package/shared/definition14.cjs +35 -38
  281. package/shared/definition14.js +15 -17
  282. package/shared/definition15.cjs +27 -26
  283. package/shared/definition15.js +16 -14
  284. package/shared/definition16.cjs +480 -612
  285. package/shared/definition16.js +473 -604
  286. package/shared/definition17.cjs +933 -1113
  287. package/shared/definition17.js +911 -1090
  288. package/shared/definition18.cjs +16 -20
  289. package/shared/definition18.js +19 -22
  290. package/shared/definition19.cjs +26 -30
  291. package/shared/definition19.js +21 -24
  292. package/shared/definition2.cjs +19 -22
  293. package/shared/definition2.js +20 -22
  294. package/shared/definition20.cjs +50 -52
  295. package/shared/definition20.js +34 -35
  296. package/shared/definition21.cjs +43 -47
  297. package/shared/definition21.js +19 -22
  298. package/shared/definition22.cjs +15 -13
  299. package/shared/definition22.js +14 -11
  300. package/shared/definition23.cjs +21 -20
  301. package/shared/definition23.js +14 -12
  302. package/shared/definition24.cjs +21 -173
  303. package/shared/definition24.js +18 -169
  304. package/shared/definition25.cjs +26 -28
  305. package/shared/definition25.js +18 -19
  306. package/shared/definition26.cjs +16 -14
  307. package/shared/definition26.js +14 -11
  308. package/shared/definition27.cjs +264 -12
  309. package/shared/definition27.js +261 -10
  310. package/shared/definition28.cjs +19 -17
  311. package/shared/definition28.js +15 -12
  312. package/shared/definition29.cjs +142 -68
  313. package/shared/definition29.js +101 -29
  314. package/shared/definition3.cjs +20 -16
  315. package/shared/definition3.js +16 -11
  316. package/shared/definition30.cjs +98 -76
  317. package/shared/definition30.js +97 -74
  318. package/shared/definition31.cjs +24 -97
  319. package/shared/definition31.js +25 -97
  320. package/shared/definition32.cjs +9 -25
  321. package/shared/definition32.js +8 -23
  322. package/shared/definition33.cjs +52 -14
  323. package/shared/definition33.js +51 -12
  324. package/shared/definition34.cjs +639 -34
  325. package/shared/definition34.js +636 -30
  326. package/shared/definition35.cjs +203 -596
  327. package/shared/definition35.js +197 -591
  328. package/shared/definition36.cjs +197 -233
  329. package/shared/definition36.js +192 -226
  330. package/shared/definition37.cjs +79 -206
  331. package/shared/definition37.js +75 -202
  332. package/shared/definition38.cjs +50 -56
  333. package/shared/definition38.js +48 -52
  334. package/shared/definition39.cjs +259 -56
  335. package/shared/definition39.js +258 -54
  336. package/shared/definition4.cjs +32 -35
  337. package/shared/definition4.js +19 -21
  338. package/shared/definition40.cjs +156 -225
  339. package/shared/definition40.js +152 -221
  340. package/shared/definition41.cjs +626 -36
  341. package/shared/definition41.js +625 -34
  342. package/shared/definition42.cjs +974 -487
  343. package/shared/definition42.js +971 -482
  344. package/shared/definition43.cjs +725 -932
  345. package/shared/definition43.js +713 -918
  346. package/shared/definition44.cjs +115 -734
  347. package/shared/definition44.js +113 -731
  348. package/shared/definition45.cjs +92 -116
  349. package/shared/definition45.js +92 -115
  350. package/shared/definition46.cjs +468 -89
  351. package/shared/definition46.js +465 -86
  352. package/shared/definition47.cjs +118 -470
  353. package/shared/definition47.js +115 -465
  354. package/shared/definition48.cjs +113 -120
  355. package/shared/definition48.js +111 -117
  356. package/shared/definition49.cjs +16 -134
  357. package/shared/definition49.js +15 -132
  358. package/shared/definition5.cjs +47 -49
  359. package/shared/definition5.js +18 -19
  360. package/shared/definition50.cjs +111 -15
  361. package/shared/definition50.js +109 -12
  362. package/shared/definition51.cjs +862 -84
  363. package/shared/definition51.js +858 -79
  364. package/shared/definition52.cjs +30 -873
  365. package/shared/definition52.js +28 -870
  366. package/shared/definition53.cjs +125 -28
  367. package/shared/definition53.js +123 -25
  368. package/shared/definition54.cjs +267 -107
  369. package/shared/definition54.js +261 -100
  370. package/shared/definition55.cjs +63 -278
  371. package/shared/definition55.js +61 -275
  372. package/shared/definition56.cjs +867 -76
  373. package/shared/definition56.js +866 -74
  374. package/shared/definition57.cjs +107 -826
  375. package/shared/definition57.js +105 -823
  376. package/shared/definition58.cjs +73 -100
  377. package/shared/definition58.js +69 -95
  378. package/shared/definition59.cjs +180 -106
  379. package/shared/definition59.js +174 -101
  380. package/shared/definition6.cjs +22 -21
  381. package/shared/definition6.js +14 -12
  382. package/shared/definition60.cjs +272 -70
  383. package/shared/definition60.js +272 -69
  384. package/shared/definition61.cjs +66154 -271
  385. package/shared/definition61.js +66153 -269
  386. package/shared/definition62.cjs +38 -66173
  387. package/shared/definition62.js +35 -66170
  388. package/shared/definition63.cjs +2153 -27
  389. package/shared/definition63.js +2150 -25
  390. package/shared/definition7.cjs +18 -15
  391. package/shared/definition7.js +13 -10
  392. package/shared/definition8.cjs +25 -27
  393. package/shared/definition8.js +16 -17
  394. package/shared/definition9.cjs +21 -21
  395. package/shared/definition9.js +18 -17
  396. package/shared/design-system/createRegisterFunction.d.ts +2 -0
  397. package/shared/design-system/defineVividComponent.d.ts +15 -0
  398. package/shared/{localization.js → direction.js} +11 -11
  399. package/shared/dom.cjs +0 -13
  400. package/shared/dom.js +1 -13
  401. package/shared/form-associated.cjs +422 -457
  402. package/shared/form-associated.js +422 -457
  403. package/shared/form-associated2.cjs +383 -0
  404. package/shared/form-associated2.js +381 -0
  405. package/shared/form-elements.cjs +15 -42
  406. package/shared/form-elements.js +2 -29
  407. package/shared/foundation/anchor/anchor.d.ts +1 -0
  408. package/shared/foundation/button/button.d.ts +3 -2
  409. package/shared/foundation/button/button.template.d.ts +2 -4
  410. package/shared/foundation/form-associated/form-associated.d.ts +51 -0
  411. package/shared/foundation/listbox/listbox.d.ts +22 -0
  412. package/shared/foundation/progress/base-progress.d.ts +9 -0
  413. package/shared/foundation/utilities/apply-mixins.d.ts +1 -0
  414. package/shared/foundation/vivid-element/vivid-element.d.ts +3 -0
  415. package/shared/index.cjs +7 -5097
  416. package/shared/index.js +7 -5079
  417. package/shared/key-codes.cjs +10 -0
  418. package/shared/key-codes.js +6 -1
  419. package/shared/key-codes2.cjs +1463 -6
  420. package/shared/key-codes2.js +1461 -4
  421. package/shared/listbox.cjs +427 -1195
  422. package/shared/listbox.js +411 -1176
  423. package/shared/listbox2.cjs +1267 -0
  424. package/shared/listbox2.js +1264 -0
  425. package/shared/localized.cjs +2 -2
  426. package/shared/localized.js +1 -1
  427. package/shared/numbers.cjs +12 -0
  428. package/shared/numbers.js +12 -1
  429. package/shared/patterns/affix.d.ts +2 -2
  430. package/shared/patterns/chevron.d.ts +2 -2
  431. package/shared/patterns/form-elements/form-elements.d.ts +2 -2
  432. package/shared/presentationDate.cjs +49 -49
  433. package/shared/presentationDate.js +6 -6
  434. package/shared/ref.cjs +2 -2
  435. package/shared/ref.js +1 -1
  436. package/shared/repeat.cjs +22 -22
  437. package/shared/repeat.js +1 -1
  438. package/shared/slider.template.cjs +5 -5
  439. package/shared/slider.template.js +2 -2
  440. package/shared/slotted.cjs +4 -4
  441. package/shared/slotted.js +1 -1
  442. package/shared/strings.cjs +0 -26
  443. package/shared/strings.js +1 -25
  444. package/shared/strings2.cjs +37 -0
  445. package/shared/strings2.js +33 -0
  446. package/shared/text-anchor.cjs +7 -89
  447. package/shared/text-anchor.js +4 -86
  448. package/shared/text-anchor.template.cjs +2 -2
  449. package/shared/text-anchor.template.js +1 -1
  450. package/shared/text-field2.cjs +28 -28
  451. package/shared/text-field2.js +5 -5
  452. package/shared/vivid-element.cjs +2616 -0
  453. package/shared/vivid-element.js +2595 -0
  454. package/side-drawer/index.cjs +1 -1
  455. package/side-drawer/index.js +1 -1
  456. package/slider/index.cjs +1 -1
  457. package/slider/index.js +1 -1
  458. package/split-button/index.cjs +1 -1
  459. package/split-button/index.js +1 -1
  460. package/styles/core/all.css +40 -1
  461. package/styles/core/theme.css +40 -1
  462. package/styles/core/typography.css +1 -1
  463. package/styles/tokens/theme-dark.css +25 -4
  464. package/styles/tokens/theme-light.css +25 -4
  465. package/styles/tokens/vivid-2-compat.css +1 -1
  466. package/switch/index.cjs +1 -1
  467. package/switch/index.js +1 -1
  468. package/tab/index.cjs +1 -1
  469. package/tab/index.js +1 -1
  470. package/tab-panel/index.cjs +1 -1
  471. package/tab-panel/index.js +1 -1
  472. package/tabs/index.cjs +1 -1
  473. package/tabs/index.js +1 -1
  474. package/tag/index.cjs +1 -1
  475. package/tag/index.js +1 -1
  476. package/tag-group/index.cjs +1 -1
  477. package/tag-group/index.js +1 -1
  478. package/text-anchor/index.cjs +10 -7
  479. package/text-anchor/index.js +10 -7
  480. package/text-area/index.cjs +1 -1
  481. package/text-area/index.js +1 -1
  482. package/text-field/index.cjs +1 -1
  483. package/text-field/index.js +1 -1
  484. package/time-picker/index.cjs +1 -1
  485. package/time-picker/index.js +1 -1
  486. package/toggletip/index.cjs +1 -1
  487. package/toggletip/index.js +1 -1
  488. package/tooltip/index.cjs +1 -1
  489. package/tooltip/index.js +1 -1
  490. package/tree-item/index.cjs +1 -1
  491. package/tree-item/index.js +1 -1
  492. package/tree-view/index.cjs +1 -1
  493. package/tree-view/index.js +1 -1
  494. package/video-player/index.cjs +1 -1
  495. package/video-player/index.js +1 -1
  496. package/vivid.api.json +2846 -7860
  497. package/shared/definition64.cjs +0 -2175
  498. package/shared/definition64.js +0 -2170
  499. package/shared/design-system/index.d.ts +0 -3
  500. package/shared/icon.cjs +0 -261
  501. package/shared/icon.js +0 -258
  502. package/shared/index2.cjs +0 -11
  503. package/shared/index2.js +0 -9
  504. package/shared/radio.cjs +0 -126
  505. package/shared/radio.js +0 -124
  506. package/shared/select.options.cjs +0 -12
  507. package/shared/select.options.js +0 -10
  508. package/shared/start-end.cjs +0 -52
  509. package/shared/start-end.js +0 -50
  510. package/shared/tree-item.cjs +0 -154
  511. package/shared/tree-item.js +0 -151
  512. package/shared/{localization.cjs → direction.cjs} +9 -9
@@ -1,16 +1,19 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index.cjs');
3
+ const definition$1 = require('./definition63.cjs');
4
4
  const definition = require('./definition27.cjs');
5
+ const vividElement = require('./vivid-element.cjs');
5
6
  const keyCodes = require('./key-codes.cjs');
6
7
  const affix = require('./affix.cjs');
7
- const applyMixins = require('./apply-mixins.cjs');
8
- const localization = require('./localization.cjs');
9
- const icon = require('./icon.cjs');
8
+ const applyMixins = require('./apply-mixins2.cjs');
9
+ const direction = require('./direction.cjs');
10
10
  const anchored = require('./anchored.cjs');
11
+ const dom = require('./dom.cjs');
12
+ const index = require('./index.cjs');
13
+ const ref = require('./ref.cjs');
11
14
  const slotted = require('./slotted.cjs');
12
- const when = require('./when.cjs');
13
15
  const classNames = require('./class-names.cjs');
16
+ const when = require('./when.cjs');
14
17
 
15
18
  /**
16
19
  * Menu items roles.
@@ -39,14 +42,7 @@ const roleForMenuItem = {
39
42
  [MenuItemRole$1.menuitemradio]: "menuitemradio",
40
43
  };
41
44
 
42
- /**
43
- * A test that ensures that all arguments are HTML Elements
44
- */
45
- function isHTMLElement(...args) {
46
- return args.every((arg) => arg instanceof HTMLElement);
47
- }
48
-
49
- const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,: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:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
45
+ const styles$1 = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,: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:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
50
46
 
51
47
  var __defProp$1 = Object.defineProperty;
52
48
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -66,7 +62,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
66
62
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
67
63
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
68
64
  var _Menu_instances, triggerBehaviour_get, setupAnchor_fn, updateAnchor_fn, cleanupAnchor_fn, _onAnchorClick;
69
- exports.Menu = class Menu extends index.FoundationElement {
65
+ exports.Menu = class Menu extends vividElement.VividElement {
70
66
  constructor() {
71
67
  super(...arguments);
72
68
  __privateAdd(this, _Menu_instances);
@@ -137,7 +133,7 @@ exports.Menu = class Menu extends index.FoundationElement {
137
133
  * check if the item is a menu item
138
134
  */
139
135
  this.isMenuItemElement = (el) => {
140
- return isHTMLElement(el) && Object.prototype.hasOwnProperty.call(
136
+ return dom.isHTMLElement(el) && Object.prototype.hasOwnProperty.call(
141
137
  exports.Menu.focusableElementRoles,
142
138
  el.getAttribute("role")
143
139
  );
@@ -161,7 +157,7 @@ exports.Menu = class Menu extends index.FoundationElement {
161
157
  return;
162
158
  }
163
159
  const newValue = !this.open;
164
- index.DOM.queueUpdate(() => this.open = newValue);
160
+ vividElement.DOM.queueUpdate(() => this.open = newValue);
165
161
  });
166
162
  this._onFocusout = (e) => {
167
163
  const focusTarget = e.relatedTarget;
@@ -184,7 +180,7 @@ exports.Menu = class Menu extends index.FoundationElement {
184
180
  */
185
181
  connectedCallback() {
186
182
  super.connectedCallback();
187
- index.DOM.queueUpdate(() => {
183
+ vividElement.DOM.queueUpdate(() => {
188
184
  this.setItems();
189
185
  });
190
186
  }
@@ -349,31 +345,31 @@ cleanupAnchor_fn = function(a) {
349
345
  _onAnchorClick = new WeakMap();
350
346
  exports.Menu.focusableElementRoles = roleForMenuItem;
351
347
  __decorateClass$1([
352
- index.observable
348
+ vividElement.observable
353
349
  ], exports.Menu.prototype, "items", 2);
354
350
  __decorateClass$1([
355
- index.attr({ attribute: "aria-label" })
351
+ vividElement.attr({ attribute: "aria-label" })
356
352
  ], exports.Menu.prototype, "ariaLabel", 2);
357
353
  __decorateClass$1([
358
- index.attr({ mode: "fromView" })
354
+ vividElement.attr({ mode: "fromView" })
359
355
  ], exports.Menu.prototype, "placement", 2);
360
356
  __decorateClass$1([
361
- index.attr
357
+ vividElement.attr
362
358
  ], exports.Menu.prototype, "trigger", 2);
363
359
  __decorateClass$1([
364
- index.attr({ mode: "boolean", attribute: "auto-dismiss" })
360
+ vividElement.attr({ mode: "boolean", attribute: "auto-dismiss" })
365
361
  ], exports.Menu.prototype, "autoDismiss", 2);
366
362
  __decorateClass$1([
367
- index.attr({ mode: "fromView", attribute: "position-strategy" })
363
+ vividElement.attr({ mode: "fromView", attribute: "position-strategy" })
368
364
  ], exports.Menu.prototype, "positionStrategy", 2);
369
365
  __decorateClass$1([
370
- index.attr({ mode: "boolean" })
366
+ vividElement.attr({ mode: "boolean" })
371
367
  ], exports.Menu.prototype, "open", 2);
372
368
  __decorateClass$1([
373
- index.observable
369
+ vividElement.observable
374
370
  ], exports.Menu.prototype, "headerSlottedContent", 2);
375
371
  __decorateClass$1([
376
- index.observable
372
+ vividElement.observable
377
373
  ], exports.Menu.prototype, "actionItemsSlottedContent", 2);
378
374
  exports.Menu = __decorateClass$1([
379
375
  anchored.anchored
@@ -397,13 +393,13 @@ var CheckAppearance = /* @__PURE__ */ ((CheckAppearance2) => {
397
393
  CheckAppearance2["TickOnly"] = "tick-only";
398
394
  return CheckAppearance2;
399
395
  })(CheckAppearance || {});
400
- class MenuItem extends index.FoundationElement {
396
+ class MenuItem extends vividElement.VividElement {
401
397
  constructor() {
402
398
  super();
403
399
  // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
404
400
  this.role = MenuItemRole.menuitem;
405
401
  this.hasSubmenu = false;
406
- this.currentDirection = localization.Direction.ltr;
402
+ this.currentDirection = direction.Direction.ltr;
407
403
  /**
408
404
  * @internal
409
405
  */
@@ -504,7 +500,7 @@ class MenuItem extends index.FoundationElement {
504
500
  if (this.expanded === false) {
505
501
  this.submenu.collapseExpandedItem();
506
502
  } else {
507
- this.currentDirection = localization.getDirection(this);
503
+ this.currentDirection = direction.getDirection(this);
508
504
  }
509
505
  this.$emit("expanded-change", this, { bubbles: false });
510
506
  }
@@ -522,7 +518,7 @@ class MenuItem extends index.FoundationElement {
522
518
  */
523
519
  connectedCallback() {
524
520
  super.connectedCallback();
525
- index.DOM.queueUpdate(() => {
521
+ vividElement.DOM.queueUpdate(() => {
526
522
  this.updateSubmenu();
527
523
  });
528
524
  this.observer = new MutationObserver(this.updateSubmenu);
@@ -581,52 +577,52 @@ class MenuItem extends index.FoundationElement {
581
577
  }
582
578
  }
583
579
  __decorateClass([
584
- index.attr({ mode: "boolean" })
580
+ vividElement.attr({ mode: "boolean" })
585
581
  ], MenuItem.prototype, "disabled");
586
582
  __decorateClass([
587
- index.attr({ mode: "boolean" })
583
+ vividElement.attr({ mode: "boolean" })
588
584
  ], MenuItem.prototype, "expanded");
589
585
  __decorateClass([
590
- index.attr
586
+ vividElement.attr
591
587
  ], MenuItem.prototype, "role");
592
588
  __decorateClass([
593
- index.attr({ mode: "boolean" })
589
+ vividElement.attr({ mode: "boolean" })
594
590
  ], MenuItem.prototype, "checked");
595
591
  __decorateClass([
596
- index.observable
592
+ vividElement.observable
597
593
  ], MenuItem.prototype, "submenuRegion");
598
594
  __decorateClass([
599
- index.observable
595
+ vividElement.observable
600
596
  ], MenuItem.prototype, "hasSubmenu");
601
597
  __decorateClass([
602
- index.observable
598
+ vividElement.observable
603
599
  ], MenuItem.prototype, "currentDirection");
604
600
  __decorateClass([
605
- index.observable
601
+ vividElement.observable
606
602
  ], MenuItem.prototype, "submenu");
607
603
  __decorateClass([
608
- index.attr
604
+ vividElement.attr
609
605
  ], MenuItem.prototype, "text");
610
606
  __decorateClass([
611
- index.attr({ attribute: "text-secondary" })
607
+ vividElement.attr({ attribute: "text-secondary" })
612
608
  ], MenuItem.prototype, "textSecondary");
613
609
  __decorateClass([
614
- index.attr
610
+ vividElement.attr
615
611
  ], MenuItem.prototype, "connotation");
616
612
  __decorateClass([
617
- index.attr({ mode: "boolean", attribute: "check-trailing" })
613
+ vividElement.attr({ mode: "boolean", attribute: "check-trailing" })
618
614
  ], MenuItem.prototype, "checkTrailing");
619
615
  __decorateClass([
620
- index.attr({ attribute: "check-appearance" })
616
+ vividElement.attr({ attribute: "check-appearance" })
621
617
  ], MenuItem.prototype, "checkedAppearance");
622
618
  __decorateClass([
623
- index.observable
619
+ vividElement.observable
624
620
  ], MenuItem.prototype, "metaSlottedContent");
625
621
  __decorateClass([
626
- index.observable
622
+ vividElement.observable
627
623
  ], MenuItem.prototype, "trailingMetaSlottedContent");
628
624
  __decorateClass([
629
- index.observable
625
+ vividElement.observable
630
626
  ], MenuItem.prototype, "slottedSubmenu");
631
627
  applyMixins.applyMixins(MenuItem, affix.AffixIcon);
632
628
 
@@ -638,7 +634,7 @@ const getIndicatorIcon = (x) => {
638
634
  const iconStatus = x.checked ? "checked" : "unchecked";
639
635
  return `${iconType}-${iconStatus}-2-line`;
640
636
  };
641
- const getClasses = ({
637
+ const getClasses$1 = ({
642
638
  connotation,
643
639
  disabled,
644
640
  checked,
@@ -670,31 +666,31 @@ function handleClick(x, { event }) {
670
666
  return x.role === MenuItemRole.presentation;
671
667
  }
672
668
  function checkIndicator(context) {
673
- const iconTag = context.tagFor(icon.Icon);
674
- return index.html`${when.when(
669
+ const iconTag = context.tagFor(definition.Icon);
670
+ return vividElement.html`${when.when(
675
671
  (x) => x.role === MenuItemRole.menuitemcheckbox || x.role === MenuItemRole.menuitemradio,
676
- index.html`<span class="action"><${iconTag} class="icon" name="${(x) => getIndicatorIcon(x)}"></${iconTag}></span>`
672
+ vividElement.html`<span class="action"><${iconTag} class="icon" name="${(x) => getIndicatorIcon(x)}"></${iconTag}></span>`
677
673
  )}`;
678
674
  }
679
675
  function text() {
680
- return index.html`${when.when(
676
+ return vividElement.html`${when.when(
681
677
  (x) => x.text || x.textSecondary,
682
- index.html`<span class="text">
678
+ vividElement.html`<span class="text">
683
679
  ${when.when(
684
680
  (x) => x.text,
685
- index.html`<span class="text-primary">${(x) => x.text}</span>`
681
+ vividElement.html`<span class="text-primary">${(x) => x.text}</span>`
686
682
  )}
687
683
  ${when.when(
688
684
  (x) => x.textSecondary,
689
- index.html`<span class="text-secondary">${(x) => x.textSecondary}</span>`
685
+ vividElement.html`<span class="text-secondary">${(x) => x.textSecondary}</span>`
690
686
  )}
691
687
  </span>`
692
688
  )}`;
693
689
  }
694
690
  const MenuItemTemplate = (context) => {
695
691
  const affixIconTemplate = affix.affixIconTemplateFactory(context);
696
- const iconTag = context.tagFor(icon.Icon);
697
- return index.html`
692
+ const iconTag = context.tagFor(definition.Icon);
693
+ return vividElement.html`
698
694
  <template
699
695
  role="${(x) => x.role ? x.role : MenuItemRole.menuitem}"
700
696
  aria-haspopup="${(x) => x.hasSubmenu ? "menu" : void 0}"
@@ -706,12 +702,12 @@ const MenuItemTemplate = (context) => {
706
702
  @mouseover="${(x, c) => x.handleMouseOver(c.event)}"
707
703
  @mouseout="${(x, c) => x.handleMouseOut(c.event)}"
708
704
  >
709
- <div class="${getClasses}">
705
+ <div class="${getClasses$1}">
710
706
  <slot name="meta" ${slotted.slotted("metaSlottedContent")}></slot>
711
707
  ${checkIndicator(context)}
712
708
  ${when.when(
713
709
  (x) => x.icon,
714
- index.html`<span class="decorative"
710
+ vividElement.html`<span class="decorative"
715
711
  >${(x) => affixIconTemplate(x.icon)}</span
716
712
  >`
717
713
  )}
@@ -722,30 +718,108 @@ const MenuItemTemplate = (context) => {
722
718
  ></slot>
723
719
  ${when.when(
724
720
  (x) => x.hasSubmenu,
725
- index.html`<${iconTag} class="chevron" name="chevron-right-line"></${iconTag}>`
721
+ vividElement.html`<${iconTag} class="chevron" name="chevron-right-line"></${iconTag}>`
726
722
  )}
727
723
  </div>
728
724
  <slot
729
725
  name="submenu"
730
726
  ${slotted.slotted({
731
727
  property: "slottedSubmenu",
732
- filter: slotted.elements(context.tagFor(exports.Menu))
728
+ filter: slotted.elements(context.tagForNonDependency(menuName))
733
729
  })}
734
730
  ></slot>
735
731
  </template>
736
732
  `;
737
733
  };
738
734
 
739
- const menuItemDefinition = MenuItem.compose({
740
- baseName: "menu-item",
741
- template: MenuItemTemplate,
742
- styles
743
- });
744
- const menuItemRegistries = [menuItemDefinition(), ...definition.iconRegistries];
745
- const registerMenuItem = index.registerFactory(menuItemRegistries);
735
+ const menuItemDefinition = vividElement.defineVividComponent(
736
+ "menu-item",
737
+ MenuItem,
738
+ MenuItemTemplate,
739
+ [definition.iconDefinition],
740
+ {
741
+ styles: styles$1
742
+ }
743
+ );
744
+ const registerMenuItem = vividElement.createRegisterFunction(menuItemDefinition);
745
+
746
+ const styles = ":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;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);min-inline-size:var(--menu-min-inline-size);padding-block:8px}@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[role=menuitem]:focus-visible){box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;display:block}.header{padding-block-start:4px;padding-inline:12px}.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}";
747
+
748
+ const getClasses = ({
749
+ headerSlottedContent,
750
+ actionItemsSlottedContent,
751
+ items
752
+ }) => classNames.classNames(
753
+ "base",
754
+ ["hide-header", !headerSlottedContent?.length],
755
+ ["hide-actions", !actionItemsSlottedContent?.length],
756
+ ["hide-body", items && !items.length]
757
+ );
758
+ function handleEscapeKey(menu, event) {
759
+ if (menu.open && index.handleEscapeKeyAndStopPropogation(event)) {
760
+ menu.open = false;
761
+ }
762
+ return true;
763
+ }
764
+ const MenuTemplate = (context) => {
765
+ const popupTag = context.tagFor(definition$1.Popup);
766
+ const anchorSlotTemplate = anchored.anchorSlotTemplateFactory();
767
+ function handlePopupEvents(x, e, state) {
768
+ e.stopPropagation();
769
+ x.open = state;
770
+ }
771
+ return vividElement.html`
772
+ <template role="presentation"
773
+ @change="${(x, c) => x._onChange(c.event)}"
774
+ @focusout="${(x, c) => x._onFocusout(c.event)}">
775
+ ${anchorSlotTemplate}
776
+ <${popupTag}
777
+ ${ref.ref("_popupEl")}
778
+ :placement=${(x) => x.placement}
779
+ :open=${(x) => x.open}
780
+ :anchor=${(x) => x._anchorEl}
781
+ :strategy="${(x) => x.positionStrategy}"
782
+ @keydown="${(x, c) => handleEscapeKey(x, c.event)}"
783
+ @vwc-popup:open="${(x, c) => handlePopupEvents(x, c.event, true)}"
784
+ @vwc-popup:close="${(x, c) => handlePopupEvents(x, c.event, false)}"
785
+ >
786
+ <div class="${getClasses}">
787
+ <div class="header">
788
+ <slot name="header" ${slotted.slotted("headerSlottedContent")}></slot>
789
+ </div>
790
+ <div
791
+ class="body"
792
+ role="menu"
793
+ aria-label="${(x) => x.ariaLabel}"
794
+ @keydown="${(x, c) => x.handleMenuKeyDown(c.event)}"
795
+ @focusout="${(x, c) => x.handleFocusOut(c.event)}"
796
+ >
797
+ <slot ${slotted.slotted("items")}></slot>
798
+ </div>
799
+ <footer class="action-items"><slot name="action-items" ${slotted.slotted(
800
+ "actionItemsSlottedContent"
801
+ )}></slot></footer>
802
+ </div>
803
+ </${popupTag}>
804
+ </template>`;
805
+ };
806
+
807
+ const menuName = "menu";
808
+ const menuDefinition = vividElement.defineVividComponent(
809
+ menuName,
810
+ exports.Menu,
811
+ MenuTemplate,
812
+ [definition$1.popupDefinition, menuItemDefinition],
813
+ {
814
+ styles
815
+ }
816
+ );
817
+ const registerMenu = vividElement.createRegisterFunction(menuDefinition);
746
818
 
747
819
  exports.MenuItem = MenuItem;
748
820
  exports.MenuItemRole = MenuItemRole;
821
+ exports.menuDefinition = menuDefinition;
749
822
  exports.menuItemDefinition = menuItemDefinition;
750
- exports.menuItemRegistries = menuItemRegistries;
823
+ exports.menuName = menuName;
824
+ exports.registerMenu = registerMenu;
751
825
  exports.registerMenuItem = registerMenuItem;
@@ -1,14 +1,17 @@
1
- import { F as FoundationElement, D as DOM, o as observable, a as attr, h as html, r as registerFactory } from './index.js';
2
- import { a as iconRegistries } from './definition27.js';
3
- import { b as keyHome, a as keyEnd, d as keyArrowUp, c as keyArrowDown, e as keyArrowLeft, f as keyArrowRight, k as keySpace, g as keyEnter } from './key-codes.js';
1
+ import { P as Popup, p as popupDefinition } from './definition63.js';
2
+ import { I as Icon, i as iconDefinition } from './definition27.js';
3
+ import { V as VividElement, D as DOM, o as observable, a as attr, h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
4
+ import { g as keyHome, d as keyEnd, e as keyArrowUp, f as keyArrowDown, h as keyArrowLeft, i as keyArrowRight, a as keySpace, k as keyEnter } from './key-codes.js';
4
5
  import { A as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
5
- import { a as applyMixins } from './apply-mixins.js';
6
- import { D as Direction, g as getDirection } from './localization.js';
7
- import { I as Icon } from './icon.js';
8
- import { b as anchored } from './anchored.js';
6
+ import { a as applyMixins } from './apply-mixins2.js';
7
+ import { D as Direction, g as getDirection } from './direction.js';
8
+ import { a as anchored, b as anchorSlotTemplateFactory } from './anchored.js';
9
+ import { i as isHTMLElement } from './dom.js';
10
+ import { h as handleEscapeKeyAndStopPropogation } from './index.js';
11
+ import { r as ref } from './ref.js';
9
12
  import { s as slotted, e as elements } from './slotted.js';
10
- import { w as when } from './when.js';
11
13
  import { c as classNames } from './class-names.js';
14
+ import { w as when } from './when.js';
12
15
 
13
16
  /**
14
17
  * Menu items roles.
@@ -37,14 +40,7 @@ const roleForMenuItem = {
37
40
  [MenuItemRole$1.menuitemradio]: "menuitemradio",
38
41
  };
39
42
 
40
- /**
41
- * A test that ensures that all arguments are HTML Elements
42
- */
43
- function isHTMLElement(...args) {
44
- return args.every((arg) => arg instanceof HTMLElement);
45
- }
46
-
47
- const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,: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:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
43
+ const styles$1 = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,: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:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
48
44
 
49
45
  var __defProp$1 = Object.defineProperty;
50
46
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -64,7 +60,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
64
60
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
65
61
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
66
62
  var _Menu_instances, triggerBehaviour_get, setupAnchor_fn, updateAnchor_fn, cleanupAnchor_fn, _onAnchorClick;
67
- let Menu = class extends FoundationElement {
63
+ let Menu = class extends VividElement {
68
64
  constructor() {
69
65
  super(...arguments);
70
66
  __privateAdd(this, _Menu_instances);
@@ -395,7 +391,7 @@ var CheckAppearance = /* @__PURE__ */ ((CheckAppearance2) => {
395
391
  CheckAppearance2["TickOnly"] = "tick-only";
396
392
  return CheckAppearance2;
397
393
  })(CheckAppearance || {});
398
- class MenuItem extends FoundationElement {
394
+ class MenuItem extends VividElement {
399
395
  constructor() {
400
396
  super();
401
397
  // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
@@ -636,7 +632,7 @@ const getIndicatorIcon = (x) => {
636
632
  const iconStatus = x.checked ? "checked" : "unchecked";
637
633
  return `${iconType}-${iconStatus}-2-line`;
638
634
  };
639
- const getClasses = ({
635
+ const getClasses$1 = ({
640
636
  connotation,
641
637
  disabled,
642
638
  checked,
@@ -704,7 +700,7 @@ const MenuItemTemplate = (context) => {
704
700
  @mouseover="${(x, c) => x.handleMouseOver(c.event)}"
705
701
  @mouseout="${(x, c) => x.handleMouseOut(c.event)}"
706
702
  >
707
- <div class="${getClasses}">
703
+ <div class="${getClasses$1}">
708
704
  <slot name="meta" ${slotted("metaSlottedContent")}></slot>
709
705
  ${checkIndicator(context)}
710
706
  ${when(
@@ -727,19 +723,95 @@ const MenuItemTemplate = (context) => {
727
723
  name="submenu"
728
724
  ${slotted({
729
725
  property: "slottedSubmenu",
730
- filter: elements(context.tagFor(Menu))
726
+ filter: elements(context.tagForNonDependency(menuName))
731
727
  })}
732
728
  ></slot>
733
729
  </template>
734
730
  `;
735
731
  };
736
732
 
737
- const menuItemDefinition = MenuItem.compose({
738
- baseName: "menu-item",
739
- template: MenuItemTemplate,
740
- styles
741
- });
742
- const menuItemRegistries = [menuItemDefinition(), ...iconRegistries];
743
- const registerMenuItem = registerFactory(menuItemRegistries);
733
+ const menuItemDefinition = defineVividComponent(
734
+ "menu-item",
735
+ MenuItem,
736
+ MenuItemTemplate,
737
+ [iconDefinition],
738
+ {
739
+ styles: styles$1
740
+ }
741
+ );
742
+ const registerMenuItem = createRegisterFunction(menuItemDefinition);
743
+
744
+ const styles = ":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;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);min-inline-size:var(--menu-min-inline-size);padding-block:8px}@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[role=menuitem]:focus-visible){box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;display:block}.header{padding-block-start:4px;padding-inline:12px}.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}";
745
+
746
+ const getClasses = ({
747
+ headerSlottedContent,
748
+ actionItemsSlottedContent,
749
+ items
750
+ }) => classNames(
751
+ "base",
752
+ ["hide-header", !headerSlottedContent?.length],
753
+ ["hide-actions", !actionItemsSlottedContent?.length],
754
+ ["hide-body", items && !items.length]
755
+ );
756
+ function handleEscapeKey(menu, event) {
757
+ if (menu.open && handleEscapeKeyAndStopPropogation(event)) {
758
+ menu.open = false;
759
+ }
760
+ return true;
761
+ }
762
+ const MenuTemplate = (context) => {
763
+ const popupTag = context.tagFor(Popup);
764
+ const anchorSlotTemplate = anchorSlotTemplateFactory();
765
+ function handlePopupEvents(x, e, state) {
766
+ e.stopPropagation();
767
+ x.open = state;
768
+ }
769
+ return html`
770
+ <template role="presentation"
771
+ @change="${(x, c) => x._onChange(c.event)}"
772
+ @focusout="${(x, c) => x._onFocusout(c.event)}">
773
+ ${anchorSlotTemplate}
774
+ <${popupTag}
775
+ ${ref("_popupEl")}
776
+ :placement=${(x) => x.placement}
777
+ :open=${(x) => x.open}
778
+ :anchor=${(x) => x._anchorEl}
779
+ :strategy="${(x) => x.positionStrategy}"
780
+ @keydown="${(x, c) => handleEscapeKey(x, c.event)}"
781
+ @vwc-popup:open="${(x, c) => handlePopupEvents(x, c.event, true)}"
782
+ @vwc-popup:close="${(x, c) => handlePopupEvents(x, c.event, false)}"
783
+ >
784
+ <div class="${getClasses}">
785
+ <div class="header">
786
+ <slot name="header" ${slotted("headerSlottedContent")}></slot>
787
+ </div>
788
+ <div
789
+ class="body"
790
+ role="menu"
791
+ aria-label="${(x) => x.ariaLabel}"
792
+ @keydown="${(x, c) => x.handleMenuKeyDown(c.event)}"
793
+ @focusout="${(x, c) => x.handleFocusOut(c.event)}"
794
+ >
795
+ <slot ${slotted("items")}></slot>
796
+ </div>
797
+ <footer class="action-items"><slot name="action-items" ${slotted(
798
+ "actionItemsSlottedContent"
799
+ )}></slot></footer>
800
+ </div>
801
+ </${popupTag}>
802
+ </template>`;
803
+ };
804
+
805
+ const menuName = "menu";
806
+ const menuDefinition = defineVividComponent(
807
+ menuName,
808
+ Menu,
809
+ MenuTemplate,
810
+ [popupDefinition, menuItemDefinition],
811
+ {
812
+ styles
813
+ }
814
+ );
815
+ const registerMenu = createRegisterFunction(menuDefinition);
744
816
 
745
- export { MenuItemRole as M, menuItemRegistries as a, Menu as b, MenuItem as c, menuItemDefinition as m, registerMenuItem as r };
817
+ export { MenuItemRole as M, menuName as a, menuDefinition as b, registerMenu as c, Menu as d, MenuItem as e, menuItemDefinition as m, registerMenuItem as r };