@vonage/vivid 5.23.1 → 5.24.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 (406) hide show
  1. package/accordion/index.cjs +1 -1
  2. package/accordion/index.js +1 -1
  3. package/accordion-item/index.cjs +1 -1
  4. package/accordion-item/index.js +1 -1
  5. package/audio-player/index.cjs +2 -2
  6. package/audio-player/index.js +3 -3
  7. package/badge/index.cjs +1 -1
  8. package/badge/index.js +1 -1
  9. package/bundled/definition15.cjs +8 -7
  10. package/bundled/definition15.js +26 -24
  11. package/bundled/definition17.cjs +2 -2
  12. package/bundled/definition17.js +2 -2
  13. package/bundled/definition18.cjs +12 -83
  14. package/bundled/definition18.js +35 -419
  15. package/bundled/definition19.cjs +87 -7
  16. package/bundled/definition19.js +432 -16
  17. package/bundled/definition20.cjs +7 -37
  18. package/bundled/definition20.js +17 -172
  19. package/bundled/definition21.cjs +35 -27
  20. package/bundled/definition21.js +154 -154
  21. package/bundled/definition22.cjs +29 -6
  22. package/bundled/definition22.js +172 -20
  23. package/bundled/definition23.cjs +6 -12
  24. package/bundled/definition23.js +17 -32
  25. package/bundled/definition24.cjs +12 -39
  26. package/bundled/definition24.js +32 -67
  27. package/bundled/definition25.cjs +44 -0
  28. package/bundled/definition25.js +77 -0
  29. package/bundled/extractOptions.cjs +1 -0
  30. package/bundled/extractOptions.js +11 -0
  31. package/bundled/listbox.cjs +1 -1
  32. package/bundled/listbox.js +24 -11
  33. package/bundled/render-in-light-dom.cjs +1 -1
  34. package/bundled/render-in-light-dom.js +16 -19
  35. package/bundled/vivid-element.cjs +1 -1
  36. package/bundled/vivid-element.js +9 -1
  37. package/combobox/definition.cjs +1 -1
  38. package/combobox/definition.js +1 -1
  39. package/combobox/index.cjs +7 -7
  40. package/combobox/index.js +29 -21
  41. package/country/definition.cjs +1 -1
  42. package/country/definition.js +1 -1
  43. package/country/index.cjs +1 -1
  44. package/country/index.js +1 -1
  45. package/country-group/definition.cjs +1 -1
  46. package/country-group/definition.js +1 -1
  47. package/country-group/index.cjs +1 -1
  48. package/country-group/index.js +2 -2
  49. package/custom-elements.json +3102 -2842
  50. package/data-grid/definition.cjs +1 -1
  51. package/data-grid/definition.js +1 -1
  52. package/data-grid/index.cjs +4 -4
  53. package/data-grid/index.js +5 -5
  54. package/date-picker/definition.cjs +1 -1
  55. package/date-picker/definition.js +1 -1
  56. package/date-picker/index.cjs +1 -1
  57. package/date-picker/index.js +1 -1
  58. package/date-range-picker/definition.cjs +1 -1
  59. package/date-range-picker/definition.js +1 -1
  60. package/date-range-picker/index.cjs +1 -1
  61. package/date-range-picker/index.js +1 -1
  62. package/date-time-picker/definition.cjs +1 -1
  63. package/date-time-picker/definition.js +1 -1
  64. package/date-time-picker/index.cjs +1 -1
  65. package/date-time-picker/index.js +1 -1
  66. package/dial-pad/definition.cjs +1 -1
  67. package/dial-pad/definition.js +1 -1
  68. package/dial-pad/index.cjs +24 -24
  69. package/dial-pad/index.js +120 -51
  70. package/dialog/definition.cjs +1 -1
  71. package/dialog/definition.js +1 -1
  72. package/divider/definition.cjs +1 -1
  73. package/divider/definition.js +1 -1
  74. package/divider/index.cjs +1 -1
  75. package/divider/index.js +1 -1
  76. package/empty-state/definition.cjs +1 -1
  77. package/empty-state/definition.js +1 -1
  78. package/fab/definition.cjs +1 -1
  79. package/fab/definition.js +1 -1
  80. package/file-picker/definition.cjs +1 -1
  81. package/file-picker/definition.js +1 -1
  82. package/flag/definition.cjs +1 -1
  83. package/flag/definition.js +1 -1
  84. package/header/definition.cjs +1 -1
  85. package/header/definition.js +1 -1
  86. package/header/index.cjs +3 -3
  87. package/header/index.js +3 -3
  88. package/index.cjs +200 -196
  89. package/index.js +53 -52
  90. package/kbd-key/definition.cjs +1 -1
  91. package/kbd-key/definition.js +1 -1
  92. package/kbd-shortcut/definition.cjs +1 -1
  93. package/kbd-shortcut/definition.js +1 -1
  94. package/layout/definition.cjs +1 -1
  95. package/layout/definition.js +1 -1
  96. package/lib/accordion-item/accordion-item.d.ts +2 -1
  97. package/lib/action-group/action-group.d.ts +1 -1
  98. package/lib/alert/alert.d.ts +2 -2
  99. package/lib/audio-player/audio-player.d.ts +1 -1
  100. package/lib/avatar/avatar.d.ts +1 -1
  101. package/lib/badge/badge.d.ts +1 -1
  102. package/lib/banner/banner.d.ts +3 -3
  103. package/lib/breadcrumb/breadcrumb.d.ts +1 -1
  104. package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
  105. package/lib/button/button.d.ts +3 -3
  106. package/lib/calendar-event/calendar-event.d.ts +1 -1
  107. package/lib/card/card.d.ts +1 -1
  108. package/lib/checkbox/checkbox.d.ts +6 -6
  109. package/lib/color-picker/color-picker.d.ts +7 -7
  110. package/lib/combobox/combobox.d.ts +7 -7
  111. package/lib/components.d.ts +1 -0
  112. package/lib/country-group/country-group.d.ts +2 -2
  113. package/lib/data-grid/data-grid-cell.d.ts +4 -3
  114. package/lib/data-grid/data-grid-row.d.ts +3 -2
  115. package/lib/data-grid/data-grid.options.d.ts +5 -0
  116. package/lib/date-picker/date-picker.d.ts +8 -8
  117. package/lib/date-range-picker/date-range-picker.d.ts +4 -4
  118. package/lib/date-time-picker/date-time-picker.d.ts +8 -8
  119. package/lib/dial-pad/dial-pad.d.ts +2 -1
  120. package/lib/dialog/dialog.d.ts +2 -2
  121. package/lib/divider/divider.d.ts +1 -1
  122. package/lib/fab/fab.d.ts +1 -1
  123. package/lib/file-picker/file-picker.d.ts +7 -7
  124. package/lib/header/header.d.ts +1 -1
  125. package/lib/menu/menu.d.ts +2 -2
  126. package/lib/menu-item/menu-item.d.ts +3 -3
  127. package/lib/nav/nav.d.ts +1 -1
  128. package/lib/nav-disclosure/nav-disclosure.d.ts +2 -2
  129. package/lib/nav-item/nav-item.d.ts +2 -2
  130. package/lib/note/note.d.ts +1 -1
  131. package/lib/number-field/number-field.d.ts +9 -9
  132. package/lib/optgroup/definition.d.ts +3 -0
  133. package/lib/optgroup/index.d.ts +1 -0
  134. package/lib/optgroup/optgroup.d.ts +430 -0
  135. package/lib/optgroup/optgroup.template.d.ts +2 -0
  136. package/lib/optgroup/variations.browser-spec.d.ts +1 -0
  137. package/lib/option/option.d.ts +2 -2
  138. package/lib/pagination/pagination.d.ts +1 -1
  139. package/lib/popover/popover.d.ts +2 -2
  140. package/lib/progress/progress.d.ts +1 -1
  141. package/lib/progress-ring/progress-ring.d.ts +1 -1
  142. package/lib/radio/radio.d.ts +3 -3
  143. package/lib/radio-group/radio-group.d.ts +1 -1
  144. package/lib/range-slider/range-slider.d.ts +3 -3
  145. package/lib/rich-text-editor/rich-text-editor.d.ts +1 -1
  146. package/lib/searchable-select/option-tag.d.ts +1 -1
  147. package/lib/searchable-select/searchable-select.d.ts +47 -47
  148. package/lib/select/select.d.ts +9 -9
  149. package/lib/selectable-box/selectable-box.d.ts +1 -1
  150. package/lib/simple-color-picker/simple-color-picker.d.ts +2 -2
  151. package/lib/slider/slider.d.ts +3 -3
  152. package/lib/split-button/split-button.d.ts +3 -3
  153. package/lib/status/status.d.ts +1 -1
  154. package/lib/switch/switch.d.ts +2 -2
  155. package/lib/tab/tab.d.ts +3 -3
  156. package/lib/tab-panel/tab-panel.d.ts +1 -1
  157. package/lib/table/table-cell.d.ts +1 -1
  158. package/lib/table/table-header-cell.d.ts +1 -1
  159. package/lib/table/table-row.d.ts +1 -1
  160. package/lib/table/table-sorting-button.d.ts +1 -1
  161. package/lib/tag/tag.d.ts +3 -3
  162. package/lib/tag-group/tag-group.d.ts +1 -1
  163. package/lib/tag-name-map.d.ts +2 -1
  164. package/lib/text-area/text-area.d.ts +8 -8
  165. package/lib/text-field/text-field.d.ts +9 -9
  166. package/lib/time-picker/time-picker.d.ts +4 -4
  167. package/lib/toggletip/toggletip.d.ts +2 -2
  168. package/lib/tooltip/tooltip.d.ts +2 -2
  169. package/lib/tree-item/tree-item.d.ts +2 -2
  170. package/lib/tree-view/tree-view.d.ts +1 -1
  171. package/lib/video-player/video-player.d.ts +1 -1
  172. package/menu/index.cjs +1 -1
  173. package/menu/index.js +1 -1
  174. package/menu-item/index.cjs +1 -1
  175. package/menu-item/index.js +1 -1
  176. package/nav/definition.cjs +1 -1
  177. package/nav/definition.js +1 -1
  178. package/nav-disclosure/definition.cjs +1 -1
  179. package/nav-disclosure/definition.js +1 -1
  180. package/nav-item/definition.cjs +1 -1
  181. package/nav-item/definition.js +1 -1
  182. package/note/definition.cjs +1 -1
  183. package/note/definition.js +1 -1
  184. package/number-field/definition.cjs +1 -1
  185. package/number-field/definition.js +1 -1
  186. package/number-field/index.cjs +1 -1
  187. package/number-field/index.js +1 -1
  188. package/optgroup/definition.cjs +5 -0
  189. package/optgroup/definition.js +2 -0
  190. package/optgroup/index.cjs +1 -0
  191. package/optgroup/index.js +4 -0
  192. package/package.json +6 -6
  193. package/pagination/definition.cjs +1 -1
  194. package/pagination/definition.js +1 -1
  195. package/platform-switch/definition.cjs +1 -1
  196. package/platform-switch/definition.js +1 -1
  197. package/popover/definition.cjs +1 -1
  198. package/popover/definition.js +1 -1
  199. package/progress/definition.cjs +1 -1
  200. package/progress/definition.js +1 -1
  201. package/radio/definition.cjs +1 -1
  202. package/radio/definition.js +1 -1
  203. package/radio-group/definition.cjs +1 -1
  204. package/radio-group/definition.js +1 -1
  205. package/range-slider/definition.cjs +1 -1
  206. package/range-slider/definition.js +1 -1
  207. package/rich-text-editor/definition.cjs +1 -1
  208. package/rich-text-editor/definition.js +1 -1
  209. package/rich-text-editor/index.cjs +1 -1
  210. package/rich-text-editor/index.js +4 -4
  211. package/rich-text-view/definition.cjs +1 -1
  212. package/rich-text-view/definition.js +1 -1
  213. package/searchable-select/definition.cjs +1 -1
  214. package/searchable-select/definition.js +1 -1
  215. package/searchable-select/index.cjs +19 -19
  216. package/searchable-select/index.js +60 -45
  217. package/select/definition.cjs +1 -1
  218. package/select/definition.js +1 -1
  219. package/select/index.cjs +1 -1
  220. package/select/index.js +1 -1
  221. package/selectable-box/definition.cjs +1 -1
  222. package/selectable-box/definition.js +1 -1
  223. package/shared/aria/delegates-aria.d.ts +1 -1
  224. package/shared/aria/host-semantics.d.ts +1 -1
  225. package/shared/color-picker/base-color-picker.d.ts +1 -1
  226. package/shared/feedback/feedback-message.d.ts +1 -1
  227. package/shared/feedback/mixins.d.ts +2 -2
  228. package/shared/foundation/button/button.d.ts +2 -2
  229. package/shared/foundation/form-associated/form-associated.d.ts +2 -2
  230. package/shared/foundation/listbox/extractOptions.d.ts +2 -0
  231. package/shared/foundation/listbox/listbox.d.ts +2 -0
  232. package/shared/patterns/affix.d.ts +2 -2
  233. package/shared/patterns/anchored.d.ts +2 -2
  234. package/shared/patterns/char-count/char-count.d.ts +1 -1
  235. package/shared/patterns/form-elements/form-element.d.ts +1 -1
  236. package/shared/patterns/form-elements/with-contextual-help.d.ts +1 -1
  237. package/shared/patterns/form-elements/with-error-text.d.ts +1 -1
  238. package/shared/patterns/form-elements/with-success-text.d.ts +1 -1
  239. package/shared/patterns/kbd-shortcut.d.ts +1 -1
  240. package/shared/patterns/linkable.d.ts +1 -1
  241. package/shared/patterns/localized.d.ts +2 -2
  242. package/shared/patterns/trapped-focus.d.ts +1 -1
  243. package/shared/picker-field/mixins/calendar-picker.d.ts +2 -2
  244. package/shared/picker-field/mixins/calendar-picker.template.d.ts +2 -2
  245. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -1
  246. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +2 -2
  247. package/shared/picker-field/mixins/single-date-picker.d.ts +2 -2
  248. package/shared/picker-field/mixins/single-value-picker.d.ts +2 -2
  249. package/shared/picker-field/mixins/time-selection-picker.d.ts +2 -2
  250. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +4 -4
  251. package/shared/picker-field/picker-field.d.ts +7 -7
  252. package/side-drawer/definition.cjs +1 -1
  253. package/side-drawer/definition.js +1 -1
  254. package/simple-color-picker/definition.cjs +1 -1
  255. package/simple-color-picker/definition.js +1 -1
  256. package/split-button/definition.cjs +1 -1
  257. package/split-button/definition.js +1 -1
  258. package/split-button/index.cjs +1 -0
  259. package/split-button/index.js +1 -0
  260. package/status/definition.cjs +1 -1
  261. package/status/definition.js +1 -1
  262. package/switch/definition.cjs +1 -1
  263. package/switch/definition.js +1 -1
  264. package/switch/index.cjs +6 -5
  265. package/switch/index.js +16 -14
  266. package/tab/definition.cjs +1 -1
  267. package/tab/definition.js +1 -1
  268. package/tab-panel/definition.cjs +1 -1
  269. package/tab-panel/definition.js +1 -1
  270. package/table/definition.cjs +1 -1
  271. package/table/definition.js +1 -1
  272. package/tabs/definition.cjs +1 -1
  273. package/tabs/definition.js +1 -1
  274. package/tag/definition.cjs +1 -1
  275. package/tag/definition.js +1 -1
  276. package/tag-group/definition.cjs +1 -1
  277. package/tag-group/definition.js +1 -1
  278. package/text-area/definition.cjs +1 -1
  279. package/text-area/definition.js +1 -1
  280. package/time-picker/definition.cjs +1 -1
  281. package/time-picker/definition.js +1 -1
  282. package/tree-item/definition.cjs +1 -1
  283. package/tree-item/definition.js +1 -1
  284. package/tree-view/definition.cjs +1 -1
  285. package/tree-view/definition.js +1 -1
  286. package/unbundled/definition13.cjs +1 -1
  287. package/unbundled/definition13.js +1 -1
  288. package/unbundled/definition2.cjs +9 -3
  289. package/unbundled/definition2.js +9 -3
  290. package/unbundled/definition23.cjs +1 -0
  291. package/unbundled/definition23.js +2 -1
  292. package/unbundled/definition29.cjs +2 -2
  293. package/unbundled/definition29.js +2 -2
  294. package/unbundled/definition30.cjs +65 -484
  295. package/unbundled/definition30.js +57 -482
  296. package/unbundled/definition31.cjs +501 -39
  297. package/unbundled/definition31.js +499 -37
  298. package/unbundled/definition32.cjs +38 -239
  299. package/unbundled/definition32.js +35 -236
  300. package/unbundled/definition33.cjs +236 -74
  301. package/unbundled/definition33.js +233 -71
  302. package/unbundled/definition34.cjs +74 -1968
  303. package/unbundled/definition34.js +70 -1940
  304. package/unbundled/definition35.cjs +1992 -26
  305. package/unbundled/definition35.js +1964 -27
  306. package/unbundled/definition36.cjs +26 -111
  307. package/unbundled/definition36.js +23 -103
  308. package/unbundled/definition37.cjs +53 -294
  309. package/unbundled/definition37.js +50 -291
  310. package/unbundled/definition38.cjs +282 -132
  311. package/unbundled/definition38.js +279 -129
  312. package/unbundled/definition39.cjs +165 -339
  313. package/unbundled/definition39.js +163 -337
  314. package/unbundled/definition40.cjs +394 -228
  315. package/unbundled/definition40.js +391 -225
  316. package/unbundled/definition41.cjs +263 -46
  317. package/unbundled/definition41.js +258 -41
  318. package/unbundled/definition42.cjs +47 -67
  319. package/unbundled/definition42.js +45 -65
  320. package/unbundled/definition43.cjs +56 -383
  321. package/unbundled/definition43.js +55 -382
  322. package/unbundled/definition44.cjs +386 -44
  323. package/unbundled/definition44.js +382 -40
  324. package/unbundled/definition45.cjs +53 -45
  325. package/unbundled/definition45.js +49 -41
  326. package/unbundled/definition46.cjs +40 -164
  327. package/unbundled/definition46.js +36 -160
  328. package/unbundled/definition47.cjs +171 -31
  329. package/unbundled/definition47.js +168 -22
  330. package/unbundled/definition48.cjs +30 -89
  331. package/unbundled/definition48.js +22 -87
  332. package/unbundled/definition49.cjs +70 -33
  333. package/unbundled/definition49.js +67 -30
  334. package/unbundled/definition50.cjs +54 -23
  335. package/unbundled/definition50.js +52 -18
  336. package/unbundled/definition51.cjs +23 -39
  337. package/unbundled/definition51.js +17 -36
  338. package/unbundled/definition52.cjs +29 -314
  339. package/unbundled/definition52.js +27 -312
  340. package/unbundled/definition53.cjs +301 -195
  341. package/unbundled/definition53.js +297 -191
  342. package/unbundled/definition54.cjs +210 -40
  343. package/unbundled/definition54.js +206 -36
  344. package/unbundled/definition55.cjs +42 -266
  345. package/unbundled/definition55.js +38 -262
  346. package/unbundled/definition56.cjs +266 -50
  347. package/unbundled/definition56.js +263 -46
  348. package/unbundled/definition57.cjs +48 -146
  349. package/unbundled/definition57.js +47 -143
  350. package/unbundled/definition58.cjs +127 -225
  351. package/unbundled/definition58.js +122 -223
  352. package/unbundled/definition59.cjs +199 -418
  353. package/unbundled/definition59.js +196 -415
  354. package/unbundled/definition60.cjs +441 -3738
  355. package/unbundled/definition60.js +431 -3565
  356. package/unbundled/definition61.cjs +3712 -728
  357. package/unbundled/definition61.js +3538 -717
  358. package/unbundled/definition62.cjs +769 -97
  359. package/unbundled/definition62.js +766 -94
  360. package/unbundled/definition63.cjs +100 -981
  361. package/unbundled/definition63.js +98 -976
  362. package/unbundled/definition64.cjs +988 -93
  363. package/unbundled/definition64.js +982 -90
  364. package/unbundled/definition65.cjs +109 -73
  365. package/unbundled/definition65.js +105 -63
  366. package/unbundled/definition66.cjs +69 -155
  367. package/unbundled/definition66.js +60 -152
  368. package/unbundled/definition67.cjs +154 -118
  369. package/unbundled/definition67.js +151 -115
  370. package/unbundled/definition68.cjs +124 -49
  371. package/unbundled/definition68.js +120 -45
  372. package/unbundled/definition69.cjs +51 -84
  373. package/unbundled/definition69.js +50 -80
  374. package/unbundled/definition70.cjs +91 -19
  375. package/unbundled/definition70.js +86 -14
  376. package/unbundled/definition71.cjs +20 -87
  377. package/unbundled/definition71.js +14 -84
  378. package/unbundled/definition72.cjs +76 -294
  379. package/unbundled/definition72.js +71 -217
  380. package/unbundled/definition73.cjs +288 -311
  381. package/unbundled/definition73.js +218 -306
  382. package/unbundled/definition74.cjs +326 -26
  383. package/unbundled/definition74.js +317 -23
  384. package/unbundled/definition75.cjs +27 -122
  385. package/unbundled/definition75.js +22 -118
  386. package/unbundled/definition76.cjs +103 -232
  387. package/unbundled/definition76.js +99 -228
  388. package/unbundled/definition77.cjs +259 -26
  389. package/unbundled/definition77.js +249 -23
  390. package/unbundled/definition78.cjs +29 -148
  391. package/unbundled/definition78.js +27 -133
  392. package/unbundled/definition79.cjs +117 -173
  393. package/unbundled/definition79.js +108 -169
  394. package/unbundled/definition80.cjs +181 -477
  395. package/unbundled/definition80.js +176 -471
  396. package/unbundled/definition81.cjs +517 -0
  397. package/unbundled/definition81.js +497 -0
  398. package/unbundled/extractOptions.cjs +21 -0
  399. package/unbundled/extractOptions.js +16 -0
  400. package/unbundled/listbox.cjs +23 -6
  401. package/unbundled/listbox.js +23 -6
  402. package/unbundled/vivid-element.cjs +10 -1
  403. package/unbundled/vivid-element.js +10 -1
  404. package/video-player/definition.cjs +1 -1
  405. package/video-player/definition.js +1 -1
  406. package/vivid.api.json +194 -0
@@ -1,299 +1,75 @@
1
1
  require("./chunk.cjs");
2
2
  const require_vivid_element = require("./vivid-element.cjs");
3
- const require_definition = require("./definition.cjs");
4
3
  const require_decorate = require("./decorate.cjs");
5
- const require_delegates_aria = require("./delegates-aria.cjs");
6
- const require_localized = require("./localized.cjs");
7
- const require_definition$1 = require("./definition6.cjs");
8
- const require_definition$2 = require("./definition7.cjs");
4
+ const require_platform = require("./platform.cjs");
9
5
  let _microsoft_fast_element = require("@microsoft/fast-element");
10
- let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
11
- let _floating_ui_dom = require("@floating-ui/dom");
12
- //#region src/lib/popover/popover.scss?inline
13
- var popover_default = ":host{display:inline-block}.base{white-space:initial;--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in sRGB, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.base ::-webkit-scrollbar{width:4px}.base ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.base ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.base{border:none;border-radius:8px;inline-size:max-content;min-inline-size:fit-content;margin:0;padding:0;position:fixed;overflow:visible}.base:focus-visible{outline:none}.base::backdrop{background-color:var(--popover-backdrop-bg,transparent)}.control{padding:var(--popover-padding,24px);border-radius:inherit;background:var(--vvd-color-surface-4dp);color:var(--vvd-color-canvas-text);gap:var(--popover-gap,24px);flex-direction:column;display:flex}.control:not(.open){display:none}.control.condensed{--popover-padding:12px;--popover-gap:12px}.control.manual{padding-block-start:40px}.arrow{z-index:-1;background:var(--vvd-color-surface-4dp);width:8px;height:8px;position:absolute;transform:rotate(45deg)}.dismiss-button{position:absolute;inset-block-start:4px;inset-inline-end:4px}";
6
+ //#region src/lib/platform-switch/platform-switch.scss?inline
7
+ var platform_switch_default = ":host{display:contents}";
14
8
  //#endregion
15
- //#region src/lib/popover/popover.ts
9
+ //#region src/lib/platform-switch/platform-switch.ts
16
10
  /**
17
11
  * @public
18
- * @component popover
19
- * @slot - Default slot for the popover content.
20
- * @slot anchor - Slot for the trigger element.
21
- * @slot footer - Use the footer slot in order to add action buttons or other contents to the bottom of the dialog.
22
- * @event {CustomEvent} open - Fired when the popover opens.
23
- * @event {CustomEvent} close - Fired when the popover closes.
12
+ * @component platform-switch
13
+ * @slot - Default slot accepts children with optional platform constraints.
24
14
  */
25
- var Popover = class extends require_localized.Localized(require_delegates_aria.DelegatesAria(require_vivid_element.VividElement)) {
26
- constructor(..._args) {
27
- super(..._args);
28
- this.placement = "bottom";
29
- this.manual = false;
30
- this.layout = "default";
31
- this.offset = 8;
32
- this.alternate = false;
33
- this.dismissButtonAriaLabel = null;
34
- this.arrow = false;
35
- this.open = false;
36
- this.#currentAnchor = null;
37
- this.#manualToggle = () => {
38
- this._popoverEl.togglePopover();
39
- };
40
- this.#autoUpdateCallback = () => {
41
- this.#lastPositionUpdate = this.updatePosition();
42
- };
43
- this.#handleNativeToggle = (e) => {
44
- const isOpen = e.newState ? e.newState === "open" : this._popoverEl.matches(":popover-open");
45
- if (this.open !== isOpen) this.open = isOpen;
46
- this.$emit(isOpen ? "open" : "close", void 0, { bubbles: false });
47
- };
48
- }
49
- /** @internal */
50
- placementChanged() {
51
- this.#updateAutoUpdate();
52
- }
53
- /** @internal */
54
- arrowChanged() {
55
- this.#updateAutoUpdate();
56
- }
57
- /** @internal */
58
- openChanged(_oldValue, newValue) {
59
- if (!this._popoverEl) return;
60
- const isOpen = this._popoverEl.matches(":popover-open");
61
- if (newValue && !isOpen) this._popoverEl.showPopover();
62
- else if (!newValue && isOpen) this._popoverEl.hidePopover();
63
- this.#updateAutoUpdate();
64
- }
65
- /** @internal */
66
- anchorChanged() {
67
- this.#updateAnchor();
68
- }
69
- /** @internal */
70
- _slottedAnchorChanged() {
71
- this.#updateAnchor();
72
- }
73
- /** @internal */
74
- #currentAnchor;
75
- /** @internal */
76
- #updateAnchor() {
77
- if (!this._popoverEl) return;
78
- const newAnchor = this.anchor || this._slottedAnchor?.[0] || null;
79
- if (this.#currentAnchor === newAnchor) return;
80
- if (this.#currentAnchor) this.#unbindTrigger(this.#currentAnchor);
81
- this.#currentAnchor = newAnchor;
82
- if (this.#currentAnchor && this._popoverEl) {
83
- this.#bindTrigger(this.#currentAnchor);
84
- this.#updateAutoUpdate();
85
- }
86
- }
87
- /** @internal */
88
- #bindTrigger(anchor) {
89
- anchor.setAttribute("aria-haspopup", "dialog");
90
- if (anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement) anchor.popoverTargetElement = this._popoverEl;
91
- else anchor.addEventListener("click", this.#manualToggle);
92
- }
93
- /** @internal */
94
- #unbindTrigger(anchor) {
95
- anchor.removeAttribute("aria-haspopup");
96
- if (anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement) anchor.popoverTargetElement = null;
97
- else anchor.removeEventListener("click", this.#manualToggle);
98
- }
99
- /** @internal */
100
- #manualToggle;
101
- /** @internal */
102
- get #middleware() {
103
- let middleware = [
104
- (0, _floating_ui_dom.inline)(),
105
- (0, _floating_ui_dom.flip)(),
106
- (0, _floating_ui_dom.shift)(),
107
- (0, _floating_ui_dom.hide)()
108
- ];
109
- /* v8 ignore next -- @preserve */
110
- let offsetValue = this.offset ?? 0;
111
- if (this.arrow && this._arrowEl) {
112
- offsetValue = 12;
113
- middleware = [...middleware, (0, _floating_ui_dom.arrow)({
114
- element: this._arrowEl,
115
- padding: 10
116
- })];
117
- }
118
- /* v8 ignore else -- @preserve */
119
- if (offsetValue > 0) middleware.unshift((0, _floating_ui_dom.offset)(offsetValue));
120
- return middleware;
121
- }
122
- /** @internal */
123
- #cleanup;
124
- /** @internal */
125
- #updateAutoUpdate() {
126
- this.#cleanup?.();
127
- if (this.open && this.#currentAnchor && this._popoverEl) this.#cleanup = (0, _floating_ui_dom.autoUpdate)(this.#currentAnchor, this._popoverEl, this.#autoUpdateCallback);
128
- }
129
- /**
130
- * Tracks the promise of the last position update.
131
- * @internal
132
- */
133
- #lastPositionUpdate;
134
- /** @internal */
135
- #autoUpdateCallback;
136
- /** Updates the position of the popover */
137
- async updatePosition() {
138
- /* v8 ignore if -- @preserve */
139
- if (!this.open || !this.#currentAnchor || !this._popoverEl) return;
140
- const positionData = await (0, _floating_ui_dom.computePosition)(this.#currentAnchor, this._popoverEl, {
141
- placement: this.placement,
142
- strategy: "fixed",
143
- middleware: this.#middleware
144
- });
145
- /* v8 ignore if -- @preserve */
146
- if (!this.open) return;
147
- this.#assignPopoverPosition(positionData);
148
- if (this.arrow && this._arrowEl) this.#assignArrowPosition(positionData);
149
- }
150
- /** @internal */
151
- #assignPopoverPosition(data) {
152
- const { x, y } = data;
153
- Object.assign(this._popoverEl.style, {
154
- left: `${x}px`,
155
- top: `${y}px`,
156
- visibility: data.middlewareData.hide?.referenceHidden ? "hidden" : "visible"
157
- });
158
- }
159
- /** @internal */
160
- #assignArrowPosition(data) {
161
- /* v8 ignore if -- @preserve */
162
- if (!this._arrowEl) return;
163
- const { x: arrowX, y: arrowY } = data.middlewareData.arrow;
164
- const styles = {
165
- left: "calc(100% - 4px)",
166
- right: "-4px",
167
- top: "calc(100% - 4px)",
168
- bottom: "-4px"
169
- };
170
- const staticAxis = data.placement.split("-")[0];
171
- Object.assign(this._arrowEl.style, {
172
- left: arrowX ? `${arrowX}px` : styles[staticAxis],
173
- top: arrowY ? `${arrowY}px` : styles[staticAxis]
174
- });
175
- }
176
- /**
177
- * Syncs native toggle state (Esc key, light dismiss) back to the 'open' attribute.
178
- * @internal
179
- */
180
- #handleNativeToggle;
181
- connectedCallback() {
182
- super.connectedCallback();
183
- this.#updateAnchor();
184
- /* v8 ignore else -- @preserve */
185
- if (this._popoverEl) {
186
- this._popoverEl.addEventListener("toggle", this.#handleNativeToggle);
187
- if (this.open && !this._popoverEl.matches(":popover-open")) {
188
- this._popoverEl.showPopover();
189
- this.#updateAutoUpdate();
15
+ var PlatformSwitch = class extends require_vivid_element.VividElement {
16
+ /** @internal */
17
+ slottedContentChanged() {
18
+ this.#updateVisibility();
19
+ }
20
+ #updateVisibility() {
21
+ const children = this.slottedContent.filter((n) => n instanceof HTMLElement);
22
+ let matched = false;
23
+ for (const child of children) {
24
+ if (matched) {
25
+ child.hidden = true;
26
+ continue;
190
27
  }
28
+ if (this.#matches(child)) {
29
+ child.hidden = false;
30
+ matched = true;
31
+ } else child.hidden = true;
191
32
  }
192
33
  }
193
- disconnectedCallback() {
194
- super.disconnectedCallback();
195
- this.#cleanup?.();
196
- if (this.#currentAnchor) {
197
- this.#unbindTrigger(this.#currentAnchor);
198
- this.#currentAnchor = null;
199
- }
200
- /* v8 ignore else -- @preserve */
201
- if (this._popoverEl) this._popoverEl.removeEventListener("toggle", this.#handleNativeToggle);
202
- }
203
- show() {
204
- this.open = true;
205
- return this.#lastPositionUpdate ?? Promise.resolve();
206
- }
207
- hide() {
208
- this.open = false;
209
- }
210
- toggle() {
211
- this.open = !this.open;
34
+ #matches(el) {
35
+ const keyboard = require_platform.isApplePlatform() ? "apple" : "standard";
36
+ const keyboardConstraint = el.dataset.keyboard;
37
+ if (keyboardConstraint === void 0) return true;
38
+ return keyboardConstraint === keyboard;
212
39
  }
213
40
  };
214
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "fromView" })], Popover.prototype, "placement", void 0);
215
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Popover.prototype, "manual", void 0);
216
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "fromView" })], Popover.prototype, "layout", void 0);
217
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
218
- attribute: "offset",
219
- mode: "fromView",
220
- converter: _microsoft_fast_element.nullableNumberConverter
221
- })], Popover.prototype, "offset", void 0);
222
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Popover.prototype, "alternate", void 0);
223
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "dismiss-button-aria-label" })], Popover.prototype, "dismissButtonAriaLabel", void 0);
224
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Popover.prototype, "arrow", void 0);
225
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Popover.prototype, "open", void 0);
226
- require_decorate.__decorate([_microsoft_fast_element.observable], Popover.prototype, "anchor", void 0);
227
- require_decorate.__decorate([_microsoft_fast_element.observable], Popover.prototype, "_slottedAnchor", void 0);
41
+ require_decorate.__decorate([_microsoft_fast_element.observable], PlatformSwitch.prototype, "slottedContent", void 0);
228
42
  //#endregion
229
- //#region src/lib/popover/popover.template.ts
230
- var popoverTemplate = (context) => {
231
- const elevationTag = context.tagFor(require_definition$2.Elevation);
232
- const buttonTag = context.tagFor(require_definition$1.Button);
233
- const iconTag = context.tagFor(require_definition.Icon);
234
- return _microsoft_fast_element.html`
235
- <slot name="anchor" ${(0, _microsoft_fast_element.slotted)("_slottedAnchor")}></slot>
236
- <${elevationTag}>
237
- <div class="base"
238
- ${(0, _microsoft_fast_element.ref)("_popoverEl")}
239
- popover="${(x) => x.manual ? "manual" : "auto"}"
240
- tabindex="-1"
241
- autofocus
242
- ${require_delegates_aria.delegateAria({
243
- role: "dialog",
244
- ariaModal: "false"
245
- })}
246
- >
247
- <div class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("control", ["open", x.open], ["manual", x.manual], ["condensed", x.layout === "condensed"])}"
248
- part="${(x) => x.alternate ? "vvd-theme-alternate" : ""}">
249
- <slot></slot>
250
- <slot name="footer"></slot>
251
- ${(0, _microsoft_fast_element.when)((x) => x.manual, _microsoft_fast_element.html`<${buttonTag}
252
- aria-label="${(x) => x.dismissButtonAriaLabel || x.locale.popover.dismissButtonLabel}"
253
- type="button"
254
- size="condensed"
255
- class="dismiss-button"
256
- @click="${(x) => x.hide()}">
257
- <${iconTag} name="close-line" slot="icon"></${iconTag}>
258
- </${buttonTag}>`)}
259
- ${(0, _microsoft_fast_element.when)((x) => x.arrow, _microsoft_fast_element.html`<div class="arrow" ${(0, _microsoft_fast_element.ref)("_arrowEl")}></div>`)}
260
- </div>
261
- </div>
262
- </${elevationTag}>
263
- `;
43
+ //#region src/lib/platform-switch/platform-switch.template.ts
44
+ var PlatformSwitchTemplate = () => {
45
+ return _microsoft_fast_element.html`<slot ${(0, _microsoft_fast_element.slotted)("slottedContent")}></slot>`;
264
46
  };
265
47
  //#endregion
266
- //#region src/lib/popover/definition.ts
267
- var popoverDefinition = require_vivid_element.defineVividComponent("popover", Popover, popoverTemplate, [
268
- require_definition$1.buttonDefinition,
269
- require_definition.iconDefinition,
270
- require_definition$2.elevationDefinition
271
- ], {
272
- styles: popover_default,
273
- shadowOptions: { delegatesFocus: true }
274
- });
48
+ //#region src/lib/platform-switch/definition.ts
49
+ /** @internal */
50
+ var platformSwitchDefinition = require_vivid_element.defineVividComponent("platform-switch", PlatformSwitch, PlatformSwitchTemplate, [], { styles: platform_switch_default });
275
51
  /**
276
- * Registers the popover element with the design system.
52
+ * Registers the platform-switch element with the design system.
277
53
  *
278
54
  * @param prefix - the prefix to use for the component name
279
55
  */
280
- var registerPopover = require_vivid_element.createRegisterFunction(popoverDefinition);
56
+ var registerPlatformSwitch = require_vivid_element.createRegisterFunction(platformSwitchDefinition);
281
57
  //#endregion
282
- Object.defineProperty(exports, "Popover", {
58
+ Object.defineProperty(exports, "PlatformSwitch", {
283
59
  enumerable: true,
284
60
  get: function() {
285
- return Popover;
61
+ return PlatformSwitch;
286
62
  }
287
63
  });
288
- Object.defineProperty(exports, "popoverDefinition", {
64
+ Object.defineProperty(exports, "platformSwitchDefinition", {
289
65
  enumerable: true,
290
66
  get: function() {
291
- return popoverDefinition;
67
+ return platformSwitchDefinition;
292
68
  }
293
69
  });
294
- Object.defineProperty(exports, "registerPopover", {
70
+ Object.defineProperty(exports, "registerPlatformSwitch", {
295
71
  enumerable: true,
296
72
  get: function() {
297
- return registerPopover;
73
+ return registerPlatformSwitch;
298
74
  }
299
75
  });
@@ -1,281 +1,57 @@
1
1
  import { d as createRegisterFunction, t as VividElement, u as defineVividComponent } from "./vivid-element.js";
2
- import { r as Icon, t as iconDefinition } from "./definition.js";
3
2
  import { t as __decorate } from "./decorate.js";
4
- import { n as delegateAria, t as DelegatesAria } from "./delegates-aria.js";
5
- import { t as Localized } from "./localized.js";
6
- import { i as Button, t as buttonDefinition } from "./definition6.js";
7
- import { r as Elevation, t as elevationDefinition } from "./definition7.js";
8
- import { attr, html, nullableNumberConverter, observable, ref, slotted, when } from "@microsoft/fast-element";
9
- import { classNames } from "@microsoft/fast-web-utilities";
10
- import { arrow, autoUpdate, computePosition, flip, hide, inline, offset, shift } from "@floating-ui/dom";
11
- //#region src/lib/popover/popover.scss?inline
12
- var popover_default = ":host{display:inline-block}.base{white-space:initial;--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in sRGB, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.base ::-webkit-scrollbar{width:4px}.base ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.base ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.base{border:none;border-radius:8px;inline-size:max-content;min-inline-size:fit-content;margin:0;padding:0;position:fixed;overflow:visible}.base:focus-visible{outline:none}.base::backdrop{background-color:var(--popover-backdrop-bg,transparent)}.control{padding:var(--popover-padding,24px);border-radius:inherit;background:var(--vvd-color-surface-4dp);color:var(--vvd-color-canvas-text);gap:var(--popover-gap,24px);flex-direction:column;display:flex}.control:not(.open){display:none}.control.condensed{--popover-padding:12px;--popover-gap:12px}.control.manual{padding-block-start:40px}.arrow{z-index:-1;background:var(--vvd-color-surface-4dp);width:8px;height:8px;position:absolute;transform:rotate(45deg)}.dismiss-button{position:absolute;inset-block-start:4px;inset-inline-end:4px}";
3
+ import { t as isApplePlatform } from "./platform.js";
4
+ import { html, observable, slotted } from "@microsoft/fast-element";
5
+ //#region src/lib/platform-switch/platform-switch.scss?inline
6
+ var platform_switch_default = ":host{display:contents}";
13
7
  //#endregion
14
- //#region src/lib/popover/popover.ts
8
+ //#region src/lib/platform-switch/platform-switch.ts
15
9
  /**
16
10
  * @public
17
- * @component popover
18
- * @slot - Default slot for the popover content.
19
- * @slot anchor - Slot for the trigger element.
20
- * @slot footer - Use the footer slot in order to add action buttons or other contents to the bottom of the dialog.
21
- * @event {CustomEvent} open - Fired when the popover opens.
22
- * @event {CustomEvent} close - Fired when the popover closes.
11
+ * @component platform-switch
12
+ * @slot - Default slot accepts children with optional platform constraints.
23
13
  */
24
- var Popover = class extends Localized(DelegatesAria(VividElement)) {
25
- constructor(..._args) {
26
- super(..._args);
27
- this.placement = "bottom";
28
- this.manual = false;
29
- this.layout = "default";
30
- this.offset = 8;
31
- this.alternate = false;
32
- this.dismissButtonAriaLabel = null;
33
- this.arrow = false;
34
- this.open = false;
35
- this.#currentAnchor = null;
36
- this.#manualToggle = () => {
37
- this._popoverEl.togglePopover();
38
- };
39
- this.#autoUpdateCallback = () => {
40
- this.#lastPositionUpdate = this.updatePosition();
41
- };
42
- this.#handleNativeToggle = (e) => {
43
- const isOpen = e.newState ? e.newState === "open" : this._popoverEl.matches(":popover-open");
44
- if (this.open !== isOpen) this.open = isOpen;
45
- this.$emit(isOpen ? "open" : "close", void 0, { bubbles: false });
46
- };
47
- }
48
- /** @internal */
49
- placementChanged() {
50
- this.#updateAutoUpdate();
51
- }
52
- /** @internal */
53
- arrowChanged() {
54
- this.#updateAutoUpdate();
55
- }
56
- /** @internal */
57
- openChanged(_oldValue, newValue) {
58
- if (!this._popoverEl) return;
59
- const isOpen = this._popoverEl.matches(":popover-open");
60
- if (newValue && !isOpen) this._popoverEl.showPopover();
61
- else if (!newValue && isOpen) this._popoverEl.hidePopover();
62
- this.#updateAutoUpdate();
63
- }
64
- /** @internal */
65
- anchorChanged() {
66
- this.#updateAnchor();
67
- }
68
- /** @internal */
69
- _slottedAnchorChanged() {
70
- this.#updateAnchor();
71
- }
72
- /** @internal */
73
- #currentAnchor;
74
- /** @internal */
75
- #updateAnchor() {
76
- if (!this._popoverEl) return;
77
- const newAnchor = this.anchor || this._slottedAnchor?.[0] || null;
78
- if (this.#currentAnchor === newAnchor) return;
79
- if (this.#currentAnchor) this.#unbindTrigger(this.#currentAnchor);
80
- this.#currentAnchor = newAnchor;
81
- if (this.#currentAnchor && this._popoverEl) {
82
- this.#bindTrigger(this.#currentAnchor);
83
- this.#updateAutoUpdate();
84
- }
85
- }
86
- /** @internal */
87
- #bindTrigger(anchor) {
88
- anchor.setAttribute("aria-haspopup", "dialog");
89
- if (anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement) anchor.popoverTargetElement = this._popoverEl;
90
- else anchor.addEventListener("click", this.#manualToggle);
91
- }
92
- /** @internal */
93
- #unbindTrigger(anchor) {
94
- anchor.removeAttribute("aria-haspopup");
95
- if (anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement) anchor.popoverTargetElement = null;
96
- else anchor.removeEventListener("click", this.#manualToggle);
97
- }
98
- /** @internal */
99
- #manualToggle;
100
- /** @internal */
101
- get #middleware() {
102
- let middleware = [
103
- inline(),
104
- flip(),
105
- shift(),
106
- hide()
107
- ];
108
- /* v8 ignore next -- @preserve */
109
- let offsetValue = this.offset ?? 0;
110
- if (this.arrow && this._arrowEl) {
111
- offsetValue = 12;
112
- middleware = [...middleware, arrow({
113
- element: this._arrowEl,
114
- padding: 10
115
- })];
116
- }
117
- /* v8 ignore else -- @preserve */
118
- if (offsetValue > 0) middleware.unshift(offset(offsetValue));
119
- return middleware;
120
- }
121
- /** @internal */
122
- #cleanup;
123
- /** @internal */
124
- #updateAutoUpdate() {
125
- this.#cleanup?.();
126
- if (this.open && this.#currentAnchor && this._popoverEl) this.#cleanup = autoUpdate(this.#currentAnchor, this._popoverEl, this.#autoUpdateCallback);
127
- }
128
- /**
129
- * Tracks the promise of the last position update.
130
- * @internal
131
- */
132
- #lastPositionUpdate;
133
- /** @internal */
134
- #autoUpdateCallback;
135
- /** Updates the position of the popover */
136
- async updatePosition() {
137
- /* v8 ignore if -- @preserve */
138
- if (!this.open || !this.#currentAnchor || !this._popoverEl) return;
139
- const positionData = await computePosition(this.#currentAnchor, this._popoverEl, {
140
- placement: this.placement,
141
- strategy: "fixed",
142
- middleware: this.#middleware
143
- });
144
- /* v8 ignore if -- @preserve */
145
- if (!this.open) return;
146
- this.#assignPopoverPosition(positionData);
147
- if (this.arrow && this._arrowEl) this.#assignArrowPosition(positionData);
148
- }
149
- /** @internal */
150
- #assignPopoverPosition(data) {
151
- const { x, y } = data;
152
- Object.assign(this._popoverEl.style, {
153
- left: `${x}px`,
154
- top: `${y}px`,
155
- visibility: data.middlewareData.hide?.referenceHidden ? "hidden" : "visible"
156
- });
157
- }
158
- /** @internal */
159
- #assignArrowPosition(data) {
160
- /* v8 ignore if -- @preserve */
161
- if (!this._arrowEl) return;
162
- const { x: arrowX, y: arrowY } = data.middlewareData.arrow;
163
- const styles = {
164
- left: "calc(100% - 4px)",
165
- right: "-4px",
166
- top: "calc(100% - 4px)",
167
- bottom: "-4px"
168
- };
169
- const staticAxis = data.placement.split("-")[0];
170
- Object.assign(this._arrowEl.style, {
171
- left: arrowX ? `${arrowX}px` : styles[staticAxis],
172
- top: arrowY ? `${arrowY}px` : styles[staticAxis]
173
- });
174
- }
175
- /**
176
- * Syncs native toggle state (Esc key, light dismiss) back to the 'open' attribute.
177
- * @internal
178
- */
179
- #handleNativeToggle;
180
- connectedCallback() {
181
- super.connectedCallback();
182
- this.#updateAnchor();
183
- /* v8 ignore else -- @preserve */
184
- if (this._popoverEl) {
185
- this._popoverEl.addEventListener("toggle", this.#handleNativeToggle);
186
- if (this.open && !this._popoverEl.matches(":popover-open")) {
187
- this._popoverEl.showPopover();
188
- this.#updateAutoUpdate();
14
+ var PlatformSwitch = class extends VividElement {
15
+ /** @internal */
16
+ slottedContentChanged() {
17
+ this.#updateVisibility();
18
+ }
19
+ #updateVisibility() {
20
+ const children = this.slottedContent.filter((n) => n instanceof HTMLElement);
21
+ let matched = false;
22
+ for (const child of children) {
23
+ if (matched) {
24
+ child.hidden = true;
25
+ continue;
189
26
  }
27
+ if (this.#matches(child)) {
28
+ child.hidden = false;
29
+ matched = true;
30
+ } else child.hidden = true;
190
31
  }
191
32
  }
192
- disconnectedCallback() {
193
- super.disconnectedCallback();
194
- this.#cleanup?.();
195
- if (this.#currentAnchor) {
196
- this.#unbindTrigger(this.#currentAnchor);
197
- this.#currentAnchor = null;
198
- }
199
- /* v8 ignore else -- @preserve */
200
- if (this._popoverEl) this._popoverEl.removeEventListener("toggle", this.#handleNativeToggle);
201
- }
202
- show() {
203
- this.open = true;
204
- return this.#lastPositionUpdate ?? Promise.resolve();
205
- }
206
- hide() {
207
- this.open = false;
208
- }
209
- toggle() {
210
- this.open = !this.open;
33
+ #matches(el) {
34
+ const keyboard = isApplePlatform() ? "apple" : "standard";
35
+ const keyboardConstraint = el.dataset.keyboard;
36
+ if (keyboardConstraint === void 0) return true;
37
+ return keyboardConstraint === keyboard;
211
38
  }
212
39
  };
213
- __decorate([attr({ mode: "fromView" })], Popover.prototype, "placement", void 0);
214
- __decorate([attr({ mode: "boolean" })], Popover.prototype, "manual", void 0);
215
- __decorate([attr({ mode: "fromView" })], Popover.prototype, "layout", void 0);
216
- __decorate([attr({
217
- attribute: "offset",
218
- mode: "fromView",
219
- converter: nullableNumberConverter
220
- })], Popover.prototype, "offset", void 0);
221
- __decorate([attr({ mode: "boolean" })], Popover.prototype, "alternate", void 0);
222
- __decorate([attr({ attribute: "dismiss-button-aria-label" })], Popover.prototype, "dismissButtonAriaLabel", void 0);
223
- __decorate([attr({ mode: "boolean" })], Popover.prototype, "arrow", void 0);
224
- __decorate([attr({ mode: "boolean" })], Popover.prototype, "open", void 0);
225
- __decorate([observable], Popover.prototype, "anchor", void 0);
226
- __decorate([observable], Popover.prototype, "_slottedAnchor", void 0);
40
+ __decorate([observable], PlatformSwitch.prototype, "slottedContent", void 0);
227
41
  //#endregion
228
- //#region src/lib/popover/popover.template.ts
229
- var popoverTemplate = (context) => {
230
- const elevationTag = context.tagFor(Elevation);
231
- const buttonTag = context.tagFor(Button);
232
- const iconTag = context.tagFor(Icon);
233
- return html`
234
- <slot name="anchor" ${slotted("_slottedAnchor")}></slot>
235
- <${elevationTag}>
236
- <div class="base"
237
- ${ref("_popoverEl")}
238
- popover="${(x) => x.manual ? "manual" : "auto"}"
239
- tabindex="-1"
240
- autofocus
241
- ${delegateAria({
242
- role: "dialog",
243
- ariaModal: "false"
244
- })}
245
- >
246
- <div class="${(x) => classNames("control", ["open", x.open], ["manual", x.manual], ["condensed", x.layout === "condensed"])}"
247
- part="${(x) => x.alternate ? "vvd-theme-alternate" : ""}">
248
- <slot></slot>
249
- <slot name="footer"></slot>
250
- ${when((x) => x.manual, html`<${buttonTag}
251
- aria-label="${(x) => x.dismissButtonAriaLabel || x.locale.popover.dismissButtonLabel}"
252
- type="button"
253
- size="condensed"
254
- class="dismiss-button"
255
- @click="${(x) => x.hide()}">
256
- <${iconTag} name="close-line" slot="icon"></${iconTag}>
257
- </${buttonTag}>`)}
258
- ${when((x) => x.arrow, html`<div class="arrow" ${ref("_arrowEl")}></div>`)}
259
- </div>
260
- </div>
261
- </${elevationTag}>
262
- `;
42
+ //#region src/lib/platform-switch/platform-switch.template.ts
43
+ var PlatformSwitchTemplate = () => {
44
+ return html`<slot ${slotted("slottedContent")}></slot>`;
263
45
  };
264
46
  //#endregion
265
- //#region src/lib/popover/definition.ts
266
- var popoverDefinition = defineVividComponent("popover", Popover, popoverTemplate, [
267
- buttonDefinition,
268
- iconDefinition,
269
- elevationDefinition
270
- ], {
271
- styles: popover_default,
272
- shadowOptions: { delegatesFocus: true }
273
- });
47
+ //#region src/lib/platform-switch/definition.ts
48
+ /** @internal */
49
+ var platformSwitchDefinition = defineVividComponent("platform-switch", PlatformSwitch, PlatformSwitchTemplate, [], { styles: platform_switch_default });
274
50
  /**
275
- * Registers the popover element with the design system.
51
+ * Registers the platform-switch element with the design system.
276
52
  *
277
53
  * @param prefix - the prefix to use for the component name
278
54
  */
279
- var registerPopover = createRegisterFunction(popoverDefinition);
55
+ var registerPlatformSwitch = createRegisterFunction(platformSwitchDefinition);
280
56
  //#endregion
281
- export { registerPopover as n, Popover as r, popoverDefinition as t };
57
+ export { registerPlatformSwitch as n, PlatformSwitch as r, platformSwitchDefinition as t };