@vonage/vivid 5.16.0 → 5.17.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 (317) 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/action-group/index.cjs +3 -3
  6. package/action-group/index.js +5 -5
  7. package/alert/index.cjs +3 -3
  8. package/alert/index.js +17 -17
  9. package/audio-player/index.cjs +16 -16
  10. package/audio-player/index.js +27 -27
  11. package/avatar/index.cjs +2 -2
  12. package/avatar/index.js +6 -6
  13. package/badge/index.cjs +2 -2
  14. package/badge/index.js +6 -6
  15. package/banner/index.cjs +3 -3
  16. package/banner/index.js +15 -15
  17. package/bundled/base-color-picker.cjs +2 -2
  18. package/bundled/base-color-picker.js +5 -5
  19. package/bundled/button.cjs +1 -1
  20. package/bundled/button.js +2 -2
  21. package/bundled/calendar-picker.template.cjs +2 -2
  22. package/bundled/calendar-picker.template.js +498 -498
  23. package/bundled/definition10.cjs +18 -30
  24. package/bundled/definition10.js +53 -155
  25. package/bundled/definition11.cjs +10 -19
  26. package/bundled/definition11.js +25 -74
  27. package/bundled/definition12.cjs +72 -18
  28. package/bundled/definition12.js +171 -107
  29. package/bundled/definition13.cjs +18 -17
  30. package/bundled/definition13.js +45 -65
  31. package/bundled/definition14.cjs +5 -10
  32. package/bundled/definition14.js +9 -27
  33. package/bundled/definition15.cjs +17 -71
  34. package/bundled/definition15.js +64 -181
  35. package/bundled/definition16.cjs +12 -4
  36. package/bundled/definition16.js +79 -14
  37. package/bundled/definition17.cjs +19 -13
  38. package/bundled/definition17.js +119 -70
  39. package/bundled/definition18.cjs +87 -12
  40. package/bundled/definition18.js +409 -52
  41. package/bundled/definition19.cjs +5 -87
  42. package/bundled/definition19.js +14 -422
  43. package/bundled/definition2.cjs +3 -3
  44. package/bundled/definition2.js +27 -27
  45. package/bundled/definition20.cjs +30 -5
  46. package/bundled/definition20.js +159 -9
  47. package/bundled/definition21.cjs +28 -19
  48. package/bundled/definition21.js +164 -47
  49. package/bundled/definition22.cjs +38 -23
  50. package/bundled/definition22.js +64 -82
  51. package/bundled/definition3.cjs +1 -1
  52. package/bundled/definition3.js +15 -15
  53. package/bundled/definition4.cjs +23 -38
  54. package/bundled/definition4.js +82 -64
  55. package/bundled/definition5.cjs +2 -2
  56. package/bundled/definition5.js +5 -5
  57. package/bundled/definition6.cjs +2 -2
  58. package/bundled/definition6.js +24 -24
  59. package/bundled/definition9.cjs +12 -30
  60. package/bundled/definition9.js +55 -148
  61. package/bundled/divider.cjs +1 -1
  62. package/bundled/divider.js +5 -5
  63. package/bundled/listbox.cjs +1 -1
  64. package/bundled/listbox.js +1 -1
  65. package/bundled/mixins.cjs +4 -4
  66. package/bundled/mixins.js +43 -43
  67. package/bundled/picker-field.template.cjs +7 -7
  68. package/bundled/picker-field.template.js +14 -14
  69. package/bundled/slider.template.cjs +7 -7
  70. package/bundled/slider.template.js +12 -12
  71. package/bundled/slottable-request.cjs +1 -1
  72. package/bundled/slottable-request.js +8 -38
  73. package/bundled/time-selection-picker.template.cjs +4 -4
  74. package/bundled/time-selection-picker.template.js +35 -35
  75. package/bundled/vivid-element.cjs +1 -1
  76. package/bundled/vivid-element.js +1 -1
  77. package/calendar/index.cjs +11 -11
  78. package/calendar/index.js +30 -237
  79. package/calendar-event/index.cjs +3 -3
  80. package/calendar-event/index.js +4 -4
  81. package/card/index.cjs +14 -11
  82. package/card/index.js +16 -13
  83. package/checkbox/index.cjs +1 -1
  84. package/checkbox/index.js +1 -1
  85. package/color-picker/definition.cjs +1 -1
  86. package/color-picker/definition.js +1 -1
  87. package/color-picker/index.cjs +6 -6
  88. package/color-picker/index.js +24 -24
  89. package/combobox/definition.cjs +1 -1
  90. package/combobox/definition.js +1 -1
  91. package/combobox/index.cjs +9 -8
  92. package/combobox/index.js +32 -28
  93. package/contextual-help/definition.cjs +1 -1
  94. package/contextual-help/definition.js +1 -1
  95. package/contextual-help/index.cjs +1 -1
  96. package/contextual-help/index.js +1 -1
  97. package/custom-elements.json +1027 -615
  98. package/data-grid/definition.js +1 -1
  99. package/data-grid/index.cjs +17 -17
  100. package/data-grid/index.js +261 -264
  101. package/date-picker/index.cjs +1 -1
  102. package/date-picker/index.js +12 -12
  103. package/date-range-picker/index.cjs +1 -1
  104. package/date-range-picker/index.js +7 -7
  105. package/date-time-picker/index.cjs +4 -4
  106. package/date-time-picker/index.js +24 -24
  107. package/dial-pad/index.cjs +3 -2
  108. package/dial-pad/index.js +6 -5
  109. package/dialog/index.cjs +4 -4
  110. package/dialog/index.js +5 -5
  111. package/divider/index.cjs +1 -1
  112. package/divider/index.js +1 -1
  113. package/fab/index.cjs +3 -3
  114. package/fab/index.js +8 -8
  115. package/file-picker/index.cjs +16 -13
  116. package/file-picker/index.js +31 -28
  117. package/header/index.cjs +4 -4
  118. package/header/index.js +5 -5
  119. package/index.cjs +24 -21
  120. package/index.js +11 -11
  121. package/lib/combobox/combobox.d.ts +0 -3
  122. package/lib/date-time-picker/date-time-picker.d.ts +0 -4
  123. package/lib/dial-pad/dial-pad.d.ts +6 -2
  124. package/lib/dialog/dialog.d.ts +0 -1
  125. package/lib/menu/menu.d.ts +0 -1
  126. package/lib/option/option.d.ts +0 -1
  127. package/lib/rich-text-editor/rte/exports.d.ts +1 -0
  128. package/lib/rich-text-editor/rte/features/alignment.d.ts +1 -1
  129. package/lib/rich-text-editor/rte/features/character-count.d.ts +21 -0
  130. package/lib/rich-text-editor/rte/features/font-size-picker.d.ts +1 -1
  131. package/lib/rich-text-editor/rte/features/internal/basic-text-blocks.d.ts +1 -1
  132. package/lib/rich-text-editor/rte/features/keyboard-shortcuts.d.ts +1 -1
  133. package/lib/rich-text-editor/rte/features/text-color-picker.d.ts +1 -1
  134. package/lib/rich-text-editor/rte/public-interface.d.ts +6 -0
  135. package/lib/searchable-select/option-tag.d.ts +0 -1
  136. package/lib/table/definition.d.ts +2 -1
  137. package/lib/table/table-header-cell.d.ts +3 -0
  138. package/lib/table/table-sorting-button.d.ts +415 -0
  139. package/lib/table/table-sorting-button.template.d.ts +3 -0
  140. package/locales/de-DE.cjs +4 -178
  141. package/locales/de-DE.js +2 -179
  142. package/locales/en-GB.cjs +4 -9
  143. package/locales/en-GB.js +2 -10
  144. package/locales/en-US.cjs +268 -2
  145. package/locales/en-US.js +265 -1
  146. package/locales/ja-JP.cjs +4 -171
  147. package/locales/ja-JP.js +2 -172
  148. package/locales/zh-CN.cjs +4 -172
  149. package/locales/zh-CN.js +2 -173
  150. package/menu/index.cjs +1 -1
  151. package/menu/index.js +1 -1
  152. package/menu-item/index.cjs +1 -1
  153. package/menu-item/index.js +1 -1
  154. package/nav-disclosure/index.cjs +3 -3
  155. package/nav-disclosure/index.js +8 -8
  156. package/nav-item/index.cjs +1 -1
  157. package/nav-item/index.js +7 -7
  158. package/note/index.cjs +2 -2
  159. package/note/index.js +6 -6
  160. package/number-field/index.cjs +4 -4
  161. package/number-field/index.js +31 -31
  162. package/option/definition.cjs +1 -1
  163. package/option/definition.js +1 -1
  164. package/option/index.cjs +1 -1
  165. package/option/index.js +1 -1
  166. package/package.json +7 -8
  167. package/pagination/index.cjs +3 -3
  168. package/pagination/index.js +15 -15
  169. package/popover/index.cjs +4 -4
  170. package/popover/index.js +5 -5
  171. package/progress/index.cjs +2 -2
  172. package/progress/index.js +5 -5
  173. package/radio/index.cjs +1 -1
  174. package/radio/index.js +1 -1
  175. package/radio-group/index.cjs +4 -4
  176. package/radio-group/index.js +10 -10
  177. package/range-slider/index.cjs +4 -4
  178. package/range-slider/index.js +17 -17
  179. package/rich-text-editor/definition.cjs +1 -0
  180. package/rich-text-editor/definition.js +2 -2
  181. package/rich-text-editor/index.cjs +13 -13
  182. package/rich-text-editor/index.js +1886 -1829
  183. package/rich-text-view/index.cjs +1 -1
  184. package/rich-text-view/index.js +8 -8
  185. package/searchable-select/index.cjs +12 -12
  186. package/searchable-select/index.js +25 -25
  187. package/select/index.cjs +1 -1
  188. package/select/index.js +1 -1
  189. package/selectable-box/index.cjs +7 -7
  190. package/selectable-box/index.js +11 -11
  191. package/shared/foundation/test-utilities/fixture.d.ts +1 -1
  192. package/shared/patterns/linkable.d.ts +1 -1
  193. package/simple-color-picker/index.cjs +3 -3
  194. package/simple-color-picker/index.js +10 -10
  195. package/split-button/index.cjs +5 -5
  196. package/split-button/index.js +10 -10
  197. package/status/index.cjs +2 -2
  198. package/status/index.js +12 -12
  199. package/switch/index.cjs +3 -3
  200. package/switch/index.js +5 -5
  201. package/tab/index.cjs +1 -1
  202. package/tab/index.js +1 -1
  203. package/tab-panel/index.cjs +1 -1
  204. package/tab-panel/index.js +1 -1
  205. package/table/definition.cjs +17 -14
  206. package/table/definition.js +3 -2
  207. package/table/index.cjs +19 -10
  208. package/table/index.js +69 -21
  209. package/tabs/index.cjs +2 -2
  210. package/tabs/index.js +4 -4
  211. package/tag/index.cjs +7 -7
  212. package/tag/index.js +9 -9
  213. package/tag-group/index.cjs +3 -3
  214. package/tag-group/index.js +5 -5
  215. package/text-area/index.cjs +2 -2
  216. package/text-area/index.js +12 -12
  217. package/text-field/definition.cjs +1 -1
  218. package/text-field/definition.js +1 -1
  219. package/text-field/index.cjs +1 -1
  220. package/text-field/index.js +1 -1
  221. package/time-picker/index.cjs +1 -1
  222. package/time-picker/index.js +1 -1
  223. package/toggletip/definition.cjs +1 -1
  224. package/toggletip/definition.js +1 -1
  225. package/toggletip/index.cjs +1 -1
  226. package/toggletip/index.js +1 -1
  227. package/tooltip/definition.cjs +1 -1
  228. package/tooltip/definition.js +1 -1
  229. package/tooltip/index.cjs +1 -1
  230. package/tooltip/index.js +1 -1
  231. package/tree-item/index.cjs +1 -1
  232. package/tree-item/index.js +1 -1
  233. package/tree-view/index.cjs +3 -3
  234. package/tree-view/index.js +17 -17
  235. package/unbundled/button.cjs +2 -2
  236. package/unbundled/button.js +2 -2
  237. package/unbundled/calendar-picker.template.cjs +4347 -9
  238. package/unbundled/calendar-picker.template.js +4345 -7
  239. package/unbundled/chunk.cjs +0 -22
  240. package/unbundled/definition13.cjs +1 -8
  241. package/unbundled/definition13.js +1 -8
  242. package/unbundled/definition14.cjs +2 -2
  243. package/unbundled/definition14.js +2 -2
  244. package/unbundled/definition2.cjs +1 -1
  245. package/unbundled/definition2.js +1 -1
  246. package/unbundled/definition21.cjs +1 -2
  247. package/unbundled/definition21.js +1 -2
  248. package/unbundled/definition22.cjs +7 -2
  249. package/unbundled/definition22.js +7 -2
  250. package/unbundled/definition24.cjs +98 -979
  251. package/unbundled/definition24.js +93 -974
  252. package/unbundled/definition25.cjs +37 -322
  253. package/unbundled/definition25.js +33 -318
  254. package/unbundled/definition26.cjs +317 -91
  255. package/unbundled/definition26.js +313 -87
  256. package/unbundled/definition27.cjs +94 -192
  257. package/unbundled/definition27.js +91 -183
  258. package/unbundled/definition28.cjs +387 -395
  259. package/unbundled/definition28.js +387 -395
  260. package/unbundled/definition29.cjs +189 -110
  261. package/unbundled/definition29.js +180 -107
  262. package/unbundled/definition30.cjs +520 -36
  263. package/unbundled/definition30.js +519 -35
  264. package/unbundled/definition32.cjs +477 -477
  265. package/unbundled/definition32.js +475 -475
  266. package/unbundled/definition33.cjs +87 -2
  267. package/unbundled/definition33.js +77 -4
  268. package/unbundled/definition35.cjs +2 -2
  269. package/unbundled/definition35.js +2 -2
  270. package/unbundled/definition36.cjs +1 -1
  271. package/unbundled/definition36.js +1 -1
  272. package/unbundled/definition37.cjs +6 -2
  273. package/unbundled/definition37.js +6 -2
  274. package/unbundled/definition38.cjs +7 -5
  275. package/unbundled/definition38.js +7 -5
  276. package/unbundled/definition39.cjs +1 -0
  277. package/unbundled/definition39.js +1 -0
  278. package/unbundled/definition42.cjs +22 -11
  279. package/unbundled/definition42.js +22 -11
  280. package/unbundled/definition49.cjs +3 -3
  281. package/unbundled/definition49.js +3 -3
  282. package/unbundled/definition56.cjs +437 -9506
  283. package/unbundled/definition56.js +340 -9415
  284. package/unbundled/definition57.cjs +5 -5
  285. package/unbundled/definition57.js +5 -5
  286. package/unbundled/definition58.cjs +4 -3
  287. package/unbundled/definition58.js +2 -1
  288. package/unbundled/definition59.cjs +4 -3
  289. package/unbundled/definition59.js +4 -3
  290. package/unbundled/definition62.cjs +2 -2
  291. package/unbundled/definition62.js +2 -2
  292. package/unbundled/definition64.cjs +1 -1
  293. package/unbundled/definition64.js +1 -1
  294. package/unbundled/definition71.cjs +2 -2
  295. package/unbundled/definition71.js +2 -2
  296. package/unbundled/definition72.cjs +1 -2
  297. package/unbundled/definition72.js +1 -2
  298. package/unbundled/definition75.cjs +3 -51711
  299. package/unbundled/definition75.js +1 -51711
  300. package/unbundled/listbox.cjs +1 -1
  301. package/unbundled/listbox.js +1 -1
  302. package/unbundled/localized.cjs +2 -2
  303. package/unbundled/localized.js +1 -1
  304. package/unbundled/picker-field.template.cjs +1 -1
  305. package/unbundled/picker-field.template.js +1 -1
  306. package/unbundled/slottable-request.cjs +2 -3168
  307. package/unbundled/slottable-request.js +3 -3097
  308. package/unbundled/time-selection-picker.template.cjs +1 -1
  309. package/unbundled/time-selection-picker.template.js +1 -1
  310. package/unbundled/vivid-element.cjs +1 -1
  311. package/unbundled/vivid-element.js +1 -1
  312. package/video-player/index.cjs +3 -3
  313. package/video-player/index.js +9 -9
  314. package/vivid.api.json +220 -282
  315. package/unbundled/chunk.js +0 -33
  316. package/unbundled/en-US.cjs +0 -447
  317. package/unbundled/en-US.js +0 -443
@@ -1,5 +1,30 @@
1
- const e=require(`./vivid-element.cjs`),t=require(`./host-semantics.cjs`);var n=class extends t.t(e.t){},r=e.d`
2
- <template slot="tabpanel" ${t.n({role:`tabpanel`})}>
3
- <slot></slot>
4
- </template>
5
- `,i=e.o(`tab-panel`,n,r,[],{}),a=e.s(i);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
1
+ const e=require(`./vivid-element.cjs`),t=require(`./when.cjs`),n=require(`./slotted.cjs`),r=require(`./definition2.cjs`),i=require(`./decorate.cjs`),a=require(`./affix.cjs`),o=require(`./class-names.cjs`),s=require(`./key-codes.cjs`),c=require(`./host-semantics.cjs`);var l=`: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}@media (hover:hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.base:disabled,.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base:active:where(:not(.disabled,:disabled)),.base.active:where(:not(.disabled,:disabled)),.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}@media (hover:hover){.base.selected: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.selected.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{--_menu-item-padding-inline:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);box-sizing:border-box;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);border-radius:8px;align-items:center;inline-size:100%;display:flex}.base:not(.two-lines){min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)));padding-block:8px;padding-inline:var(--_menu-item-padding-inline);gap:12px}.base.two-lines{min-block-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)));padding-block:12px;padding-inline:var(--_menu-item-padding-inline);gap:16px}@supports (user-select:none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent}.icon{font-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2);flex-shrink:0;line-height:1}.action,.decorative{place-content:center;display:flex}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[checked],[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{flex-direction:column;gap:4px;margin-inline-end:auto;display:flex;overflow:hidden}.text-primary,.text-secondary{font:var(--vvd-typography-base);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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)}:host([internal-part]) .text-primary{font:var(--_text-primary-custom-size,var--vvd-typography-base)}`,u={menuitem:`menuitem`,menuitemcheckbox:`menuitemcheckbox`,menuitemradio:`menuitemradio`,presentation:`presentation`},d=class extends c.t(a.t(e.t)){expandedChanged(){this.$fastController.isConnected&&(this.submenu&&!this.expanded&&this.submenu.collapseExpandedItem(),this.$emit(`expanded-change`,this,{bubbles:!1}))}#e(){this._isPresentational?this.role===`menuitem`&&(this.role=`presentation`):this.role===`presentation`&&(this.role=u.menuitem)}_isPresentationalChanged(){this.$fastController.isConnected&&this.#e()}checkedChanged(){this.$fastController.isConnected&&this.$emit(`change`)}connectedCallback(){super.connectedCallback(),e.O.enqueue(()=>{this._isPresentational=this._isPresentational??!0,this.#e()})}slottedSubmenuChanged(){this.submenu&&(this.submenu.anchor=this,this.submenu.placement=`right-start`,this.submenu.collapseExpandedItem=()=>this.#t(),this.submenu._popupOffset=5)}get submenu(){return this.slottedSubmenu?.length?this.slottedSubmenu[0]:null}get hasSubmenu(){return this.submenu!==null}constructor(){super(),this.role=u.menuitem,this.checked=!1,this.handleMenuItemClick=e=>this._isSyntheticClickEvent(e)?!0:(this.invoke(),!!this._isPresentational),this.handleMouseOver=e=>(this.disabled||!this.submenu||this.expanded||(this.expanded=!0),!1),this.handleMouseOut=e=>(!this.expanded||this.contains(document.activeElement)||(this.expanded=!1),!1),this.invoke=()=>{if(!(this.disabled||this._isPresentational))switch(this.controlType){case`checkbox`:this.checked=!this.checked;break;case`radio`:this.checked||=!0;break;default:this.submenu?this.expanded=!0:this.$emit(`change`);break}},this.checkTrailing=!1,this.handleMenuItemKeyDown=e=>{if(e.defaultPrevented)return!1;switch(e.key){case s.a:case` `:return this.invoke(),this.disabled||this.#i(),!1;case s.r:return this.submenu&&(this.expanded=!0,this.#i()),!1;case s.n:if(this.expanded)return this.#i(),this.expanded=!1,this.focus(),!1}return!0},this.addEventListener(`expanded-change`,this.#n)}#t(){this.expanded=!1}#n(){this.submenu&&(this.submenu.open=this.expanded)}#r=new WeakSet;_isSyntheticClickEvent(e){return this.#r.has(e)}#i(){let e=new MouseEvent(`click`,{bubbles:!0,composed:!0});this.#r.add(e),this.dispatchEvent(e)}};i.t([e.l({mode:`boolean`})],d.prototype,`disabled`,void 0),i.t([e.l({mode:`boolean`})],d.prototype,`expanded`,void 0),i.t([e.T],d.prototype,`_isPresentational`,void 0),i.t([e.n({deprecatedPropertyName:`role`,fromDeprecated:e=>{switch(e){case`menuitemcheckbox`:return`checkbox`;case`menuitemradio`:return`radio`;default:return}},toDeprecated:e=>{switch(e){case`checkbox`:return`menuitemcheckbox`;case`radio`:return`menuitemradio`;default:return`menuitem`}}}),e.l({attribute:`control-type`})],d.prototype,`controlType`,void 0),i.t([e.l({mode:`boolean`})],d.prototype,`checked`,void 0),i.t([e.l],d.prototype,`text`,void 0),i.t([e.l({attribute:`text-secondary`})],d.prototype,`textSecondary`,void 0),i.t([e.l],d.prototype,`connotation`,void 0),i.t([e.l({mode:`boolean`,attribute:`check-trailing`})],d.prototype,`checkTrailing`,void 0),i.t([e.l({attribute:`check-appearance`})],d.prototype,`checkedAppearance`,void 0),i.t([e.T],d.prototype,`metaSlottedContent`,void 0),i.t([e.T],d.prototype,`trailingMetaSlottedContent`,void 0),i.t([e.T],d.prototype,`slottedSubmenu`,void 0);var f=`menu`,p=e=>e.checkedAppearance===`tick-only`?e.checked?`check-line`:``:`${e.controlType===`checkbox`?`checkbox`:`radio`}-${e.checked?`checked`:`unchecked`}-2-line`,m=({connotation:e,disabled:t,checked:n,controlType:r,text:i,textSecondary:a,icon:s,metaSlottedContent:c,checkTrailing:l})=>o.t(`base`,[`connotation-${e}`,!!e],[`disabled`,!!t],[`selected`,!!(r&&n)],[`trailing`,!!(r&&(l||s))],[`item-checkbox`,r===`checkbox`],[`item-radio`,r===`radio`],[`two-lines`,!!i?.length&&!!a?.length],[`has-meta`,!!c?.length]);function h(n){let i=n.tagFor(r.r);return e.d`${t.t(e=>!!e.controlType,e.d`<span class="action"><${i} class="icon" name="${e=>p(e)}"></${i}></span>`)}`}function g(){return e.d`${t.t(e=>e.text||e.textSecondary,e.d`<span class="text">
2
+ ${t.t(e=>e.text,e.d`<span class="text-primary">${e=>e.text}</span>`)}
3
+ ${t.t(e=>e.textSecondary,e.d`<span class="text-secondary">${e=>e.textSecondary}</span>`)}
4
+ </span>`)}`}var _=e.o(`menu-item`,d,i=>{let o=a.a(i),s=i.tagFor(r.r);return e.d`
5
+ <template
6
+ ${c.n({role:u.menuitem,ariaHasPopup:e=>e.hasSubmenu?`menu`:void 0,ariaChecked:e=>e.controlType?e.checked:void 0,ariaDisabled:e=>e.disabled,ariaExpanded:e=>e.expanded})}
7
+ @keydown="${(e,t)=>e.handleMenuItemKeyDown(t.event)}"
8
+ @click="${(e,t)=>e.handleMenuItemClick(t.event)}"
9
+ @mouseover="${(e,t)=>e.handleMouseOver(t.event)}"
10
+ @mouseout="${(e,t)=>e.handleMouseOut(t.event)}"
11
+ >
12
+ <div class="${m}">
13
+ <slot name="meta" ${n.t(`metaSlottedContent`)}></slot>
14
+ ${h(i)}
15
+ ${t.t(e=>e.icon,e.d`<span class="decorative"
16
+ >${e=>o(e.icon)}</span
17
+ >`)}
18
+ ${g()}
19
+ <slot
20
+ name="trailing-meta"
21
+ ${n.t(`trailingMetaSlottedContent`)}
22
+ ></slot>
23
+ ${t.t(e=>e.hasSubmenu,e.d`<${s} class="chevron" name="chevron-right-line"></${s}>`)}
24
+ </div>
25
+ <slot
26
+ name="submenu"
27
+ ${n.t({property:`slottedSubmenu`,filter:n.r(i.tagForNonDependency(f))})}
28
+ ></slot>
29
+ </template>
30
+ `},[r.t],{styles:l}),v=e.s(_);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return _}});
@@ -1,11 +1,161 @@
1
- import { d as e, o as t, s as n, t as r } from "./vivid-element.js";
2
- import { n as i, t as a } from "./host-semantics.js";
1
+ import { O as e, T as t, d as n, l as r, n as i, o as a, s as o, t as s } from "./vivid-element.js";
2
+ import { t as c } from "./when.js";
3
+ import { r as l, t as u } from "./slotted.js";
4
+ import { r as d, t as f } from "./definition2.js";
5
+ import { t as p } from "./decorate.js";
6
+ import { a as m, t as h } from "./affix.js";
7
+ import { t as g } from "./class-names.js";
8
+ import { a as _, n as v, r as y } from "./key-codes.js";
9
+ import { n as b, t as x } from "./host-semantics.js";
10
+ //#region src/lib/menu-item/menu-item.scss?inline
11
+ var S = ":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}@media (hover:hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.base:disabled,.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base:active:where(:not(.disabled,:disabled)),.base.active:where(:not(.disabled,:disabled)),.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}@media (hover:hover){.base.selected: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.selected.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{--_menu-item-padding-inline:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);box-sizing:border-box;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);border-radius:8px;align-items:center;inline-size:100%;display:flex}.base:not(.two-lines){min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)));padding-block:8px;padding-inline:var(--_menu-item-padding-inline);gap:12px}.base.two-lines{min-block-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)));padding-block:12px;padding-inline:var(--_menu-item-padding-inline);gap:16px}@supports (user-select:none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent}.icon{font-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2);flex-shrink:0;line-height:1}.action,.decorative{place-content:center;display:flex}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[checked],[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{flex-direction:column;gap:4px;margin-inline-end:auto;display:flex;overflow:hidden}.text-primary,.text-secondary{font:var(--vvd-typography-base);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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)}:host([internal-part]) .text-primary{font:var(--_text-primary-custom-size,var--vvd-typography-base)}", C = {
12
+ menuitem: "menuitem",
13
+ menuitemcheckbox: "menuitemcheckbox",
14
+ menuitemradio: "menuitemradio",
15
+ presentation: "presentation"
16
+ }, w = class extends x(h(s)) {
17
+ expandedChanged() {
18
+ /* v8 ignore if -- @preserve */
19
+ this.$fastController.isConnected && (this.submenu && !this.expanded && this.submenu.collapseExpandedItem(), this.$emit("expanded-change", this, { bubbles: !1 }));
20
+ }
21
+ #e() {
22
+ this._isPresentational ? this.role === "menuitem" && (this.role = "presentation") : this.role === "presentation" && (this.role = C.menuitem);
23
+ }
24
+ _isPresentationalChanged() {
25
+ this.$fastController.isConnected && this.#e();
26
+ }
27
+ checkedChanged() {
28
+ this.$fastController.isConnected && this.$emit("change");
29
+ }
30
+ connectedCallback() {
31
+ super.connectedCallback(), e.enqueue(() => {
32
+ this._isPresentational = this._isPresentational ?? !0, this.#e();
33
+ });
34
+ }
35
+ slottedSubmenuChanged() {
36
+ this.submenu && (this.submenu.anchor = this, this.submenu.placement = "right-start", this.submenu.collapseExpandedItem = () => this.#t(), this.submenu._popupOffset = 5);
37
+ }
38
+ get submenu() {
39
+ return this.slottedSubmenu?.length ? this.slottedSubmenu[0] : null;
40
+ }
41
+ get hasSubmenu() {
42
+ return this.submenu !== null;
43
+ }
44
+ constructor() {
45
+ super(), this.role = C.menuitem, this.checked = !1, this.handleMenuItemClick = (e) => this._isSyntheticClickEvent(e) ? !0 : (this.invoke(), !!this._isPresentational), this.handleMouseOver = (e) => (this.disabled || !this.submenu || this.expanded || (this.expanded = !0), !1), this.handleMouseOut = (e) => (!this.expanded || this.contains(document.activeElement) || (this.expanded = !1), !1), this.invoke = () => {
46
+ if (!(this.disabled || this._isPresentational)) switch (this.controlType) {
47
+ case "checkbox":
48
+ this.checked = !this.checked;
49
+ break;
50
+ case "radio":
51
+ this.checked ||= !0;
52
+ break;
53
+ default:
54
+ this.submenu ? this.expanded = !0 : this.$emit("change");
55
+ break;
56
+ }
57
+ }, this.checkTrailing = !1, this.handleMenuItemKeyDown = (e) => {
58
+ if (e.defaultPrevented) return !1;
59
+ switch (e.key) {
60
+ case _:
61
+ case " ": return this.invoke(), this.disabled || this.#i(), !1;
62
+ case y: return this.submenu && (this.expanded = !0, this.#i()), !1;
63
+ case v: if (this.expanded) return this.#i(), this.expanded = !1, this.focus(), !1;
64
+ }
65
+ return !0;
66
+ }, this.addEventListener("expanded-change", this.#n);
67
+ }
68
+ #t() {
69
+ this.expanded = !1;
70
+ }
71
+ #n() {
72
+ this.submenu && (this.submenu.open = this.expanded);
73
+ }
74
+ #r = /* @__PURE__ */ new WeakSet();
75
+ _isSyntheticClickEvent(e) {
76
+ return this.#r.has(e);
77
+ }
78
+ #i() {
79
+ let e = new MouseEvent("click", {
80
+ bubbles: !0,
81
+ composed: !0
82
+ });
83
+ this.#r.add(e), this.dispatchEvent(e);
84
+ }
85
+ };
86
+ p([r({ mode: "boolean" })], w.prototype, "disabled", void 0), p([r({ mode: "boolean" })], w.prototype, "expanded", void 0), p([t], w.prototype, "_isPresentational", void 0), p([i({
87
+ deprecatedPropertyName: "role",
88
+ fromDeprecated: (e) => {
89
+ switch (e) {
90
+ case "menuitemcheckbox": return "checkbox";
91
+ case "menuitemradio": return "radio";
92
+ default: return;
93
+ }
94
+ },
95
+ toDeprecated: (e) => {
96
+ switch (e) {
97
+ case "checkbox": return "menuitemcheckbox";
98
+ case "radio": return "menuitemradio";
99
+ default: return "menuitem";
100
+ }
101
+ }
102
+ }), r({ attribute: "control-type" })], w.prototype, "controlType", void 0), p([r({ mode: "boolean" })], w.prototype, "checked", void 0), p([r], w.prototype, "text", void 0), p([r({ attribute: "text-secondary" })], w.prototype, "textSecondary", void 0), p([r], w.prototype, "connotation", void 0), p([r({
103
+ mode: "boolean",
104
+ attribute: "check-trailing"
105
+ })], w.prototype, "checkTrailing", void 0), p([r({ attribute: "check-appearance" })], w.prototype, "checkedAppearance", void 0), p([t], w.prototype, "metaSlottedContent", void 0), p([t], w.prototype, "trailingMetaSlottedContent", void 0), p([t], w.prototype, "slottedSubmenu", void 0);
3
106
  //#endregion
4
- //#region src/lib/tab-panel/definition.ts
5
- var o = t("tab-panel", class extends a(r) {}, e`
6
- <template slot="tabpanel" ${i({ role: "tabpanel" })}>
7
- <slot></slot>
8
- </template>
9
- `, [], {}), s = n(o);
107
+ //#region src/lib/menu/name.ts
108
+ var T = "menu", E = (e) => e.checkedAppearance === "tick-only" ? e.checked ? "check-line" : "" : `${e.controlType === "checkbox" ? "checkbox" : "radio"}-${e.checked ? "checked" : "unchecked"}-2-line`, D = ({ connotation: e, disabled: t, checked: n, controlType: r, text: i, textSecondary: a, icon: o, metaSlottedContent: s, checkTrailing: c }) => g("base", [`connotation-${e}`, !!e], ["disabled", !!t], ["selected", !!(r && n)], ["trailing", !!(r && (c || o))], ["item-checkbox", r === "checkbox"], ["item-radio", r === "radio"], ["two-lines", !!i?.length && !!a?.length], ["has-meta", !!s?.length]);
109
+ function O(e) {
110
+ let t = e.tagFor(d);
111
+ return n`${c((e) => !!e.controlType, n`<span class="action"><${t} class="icon" name="${(e) => E(e)}"></${t}></span>`)}`;
112
+ }
113
+ function k() {
114
+ return n`${c((e) => e.text || e.textSecondary, n`<span class="text">
115
+ ${c((e) => e.text, n`<span class="text-primary">${(e) => e.text}</span>`)}
116
+ ${c((e) => e.textSecondary, n`<span class="text-secondary">${(e) => e.textSecondary}</span>`)}
117
+ </span>`)}`;
118
+ }
10
119
  //#endregion
11
- export { o as n, s as t };
120
+ //#region src/lib/menu-item/definition.ts
121
+ var A = a("menu-item", w, (e) => {
122
+ let t = m(e), r = e.tagFor(d);
123
+ return n`
124
+ <template
125
+ ${b({
126
+ role: C.menuitem,
127
+ ariaHasPopup: (e) => e.hasSubmenu ? "menu" : void 0,
128
+ ariaChecked: (e) => e.controlType ? e.checked : void 0,
129
+ ariaDisabled: (e) => e.disabled,
130
+ ariaExpanded: (e) => e.expanded
131
+ })}
132
+ @keydown="${(e, t) => e.handleMenuItemKeyDown(t.event)}"
133
+ @click="${(e, t) => e.handleMenuItemClick(t.event)}"
134
+ @mouseover="${(e, t) => e.handleMouseOver(t.event)}"
135
+ @mouseout="${(e, t) => e.handleMouseOut(t.event)}"
136
+ >
137
+ <div class="${D}">
138
+ <slot name="meta" ${u("metaSlottedContent")}></slot>
139
+ ${O(e)}
140
+ ${c((e) => e.icon, n`<span class="decorative"
141
+ >${(e) => t(e.icon)}</span
142
+ >`)}
143
+ ${k()}
144
+ <slot
145
+ name="trailing-meta"
146
+ ${u("trailingMetaSlottedContent")}
147
+ ></slot>
148
+ ${c((e) => e.hasSubmenu, n`<${r} class="chevron" name="chevron-right-line"></${r}>`)}
149
+ </div>
150
+ <slot
151
+ name="submenu"
152
+ ${u({
153
+ property: "slottedSubmenu",
154
+ filter: l(e.tagForNonDependency(T))
155
+ })}
156
+ ></slot>
157
+ </template>
158
+ `;
159
+ }, [f], { styles: S }), j = o(A);
160
+ //#endregion
161
+ export { C as a, w as i, j as n, T as r, A as t };
@@ -1,20 +1,29 @@
1
- const e=require(`./localized.cjs`),t=require(`./vivid-element.cjs`),n=require(`./definition2.cjs`),r=require(`./decorate.cjs`),i=require(`./class-names.cjs`),a=require(`./affix.cjs`),o=require(`./host-semantics.cjs`);var s=`:host{--_vvd-tab-accent-firm-wrapper:var(--vvd-tab-accent-firm);--_vvd-tab-cta-firm-wrapper:var(--vvd-tab-cta-firm)}.base{--vvd-tab-accent-firm:var(--_vvd-tab-accent-firm-wrapper,var(--vvd-tab-accent-primary));--vvd-tab-cta-firm:var(--_vvd-tab-cta-firm-wrapper,var(--vvd-tab-cta-primary))}:host(.vertical){grid-column:1;justify-content:end}:host([disabled]){cursor:not-allowed}:host([removable]){position:relative}:host(:focus-visible){outline:none}.base{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.base:disabled,.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base:active:where(:not(.disabled,:disabled)),.base.active:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}.base.connotation-cta{--_connotation-color-primary-text:var(--vvd-tab-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-firm:var(--vvd-tab-cta-firm,var(--vvd-color-cta-600));--_connotation-color-faint:var(--vvd-tab-cta-faint,var(--vvd-color-cta-50));--_connotation-color-fierce:var(--vvd-tab-cta-fierce,var(--vvd-color-cta-700));--_connotation-color-pale:var(--vvd-tab-cta-pale,var(--vvd-color-cta-300));--_connotation-color-soft:var(--vvd-tab-cta-soft,var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-primary-text:var(--vvd-tab-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-firm:var(--vvd-tab-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-faint:var(--vvd-tab-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-fierce:var(--vvd-tab-accent-fierce,var(--vvd-color-neutral-700));--_connotation-color-pale:var(--vvd-tab-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-soft:var(--vvd-tab-accent-soft,var(--vvd-color-neutral-100))}.base{box-sizing:border-box;align-items:center;justify-content:var(--_tab-justify-content);padding:var(--_tabs-tablist-gutter);background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base-bold);gap:var(--_tabs-tablist-gutter);vertical-align:middle;white-space:nowrap;min-block-size:40px;display:flex;position:relative}@supports (user-select:none){.base{user-select:none}}.base:not(.shape-sharp){border-radius:8px}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.base.removable{padding-inline-end:40px}:host(:focus-visible) .base{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}:host(.vertical) .base{margin-inline-start:var(--_tabs-active-indicator-stroke-width)}slot[name=icon]{font-size:20px;line-height:1}.icon-trailing slot[name=icon]{order:1;margin-inline-start:auto;display:inline-block}.close{background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;block-size:24px;inline-size:24px;display:flex;position:absolute;inset-block-start:50%;inset-inline-end:4px;transform:translateY(-50%)}.close:focus-visible{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}.close vwc-icon{font-size:12px}.close .icon{justify-content:center;align-items:center;display:flex}`,c=class extends o.t(a.n(e.t(t.t))){constructor(...e){super(...e),this.removable=!1,this.tabIndex=`-1`,this.active=!1}_handleCloseClick(e){e.stopImmediatePropagation(),this.$emit(`close`)}_onKeyDown(e){return!this.removable||e.key!==`Delete`?!0:(e.stopImmediatePropagation(),this.$emit(`close`),!1)}};r.t([t.l({mode:`boolean`})],c.prototype,`disabled`,void 0),r.t([t.l],c.prototype,`connotation`,void 0),r.t([t.l],c.prototype,`shape`,void 0),r.t([t.l],c.prototype,`label`,void 0),r.t([t.l({mode:`boolean`})],c.prototype,`removable`,void 0),r.t([t.l({mode:`fromView`})],c.prototype,`tabIndex`,void 0),r.t([t.T],c.prototype,`active`,void 0);var l=({connotation:e,disabled:t,active:n,iconTrailing:r,shape:a,removable:o})=>i.t(`base`,[`connotation-${e}`,!!e&&!!n],[`shape-${a}`,!!a],[`disabled`,!!t],[`selected`,!!n],[`icon-trailing`,r],[`removable`,o]);function u(e){let n=a.a(e);return t.d`<button
2
- aria-label="${e=>e.locale.tab.dismissButtonLabel}"
3
- class="close"
4
- id="close-btn"
5
- @click="${(e,t)=>e._handleCloseClick(t.event)}"
6
- >
7
- ${()=>n(`close-line`,a.i.Span)}
8
- </button>`}var d=t.o(`tab`,c,e=>{let n=a.a(e);return t.d`
9
- <template
10
- slot="tab"
11
- ?active="${e=>e.active}"
12
- ${o.n({role:`tab`,ariaDisabled:e=>e.disabled,ariaSelected:e=>e.active})}
13
- @keydown="${(e,t)=>e._onKeyDown(t.event)}"
14
- >
15
- <div class="${l}">
16
- ${e=>n(e.icon,a.i.Slot)} ${e=>e.label}
17
- ${t=>t.removable?u(e):null}
1
+ const e=require(`./vivid-element.cjs`),t=require(`./ref.cjs`),n=require(`./slotted.cjs`),r=require(`./decorate.cjs`),i=require(`./delegates-aria.cjs`),a=require(`./class-names.cjs`),o=require(`./key-codes.cjs`),s=require(`./definition8.cjs`),c=require(`./anchored.cjs`),l=require(`./dialog.cjs`),u=require(`./divider.cjs`),d=require(`./definition20.cjs`);var f=`:host{display:var(--_popup-display,inline)}:host([slotted-anchor]){--_popup-display:contents}.base{box-sizing:border-box;inline-size:max-content;max-block-size:var(--menu-block-size,408px);min-inline-size:var(--menu-min-inline-size);flex-direction:column;gap:8px;padding:4px;display:flex;overflow:hidden auto}@media not all and (width>=600px){.base{max-inline-size:var(--menu-max-inline-size,300px)}}@media (width>=600px){.base{max-inline-size:var(--menu-max-inline-size)}}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[data-vvd-component=menuitem]:focus-visible){box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent;display:block}.header{padding:4px}.hide-header .header{display:none}.body{flex-direction:column;row-gap:1px;display:flex}.hide-body .body{display:none}.action-items{justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px;display:flex}.hide-actions .action-items{display:none}`,p=e=>e instanceof d.i&&e.controlType===`checkbox`,m=e=>e instanceof d.i&&e.controlType===`radio`,h=e=>e instanceof u.t?!0:e.role===`separator`,g=e=>e instanceof d.i?!0:!!(e.role&&e.role in d.a),_=class extends c.t(i.t(e.t)){constructor(...e){super(...e),this.offset=null,this.expandedItem=null,this.focusIndex=-1,this.handleFocusOut=e=>{!this.contains(e.relatedTarget)&&this.menuItems!==void 0&&this.menuItems.length&&(this.collapseExpandedItem(),this.menuItems[this.focusIndex].setAttribute(`tabindex`,`-1`),this.menuItems[0].setAttribute(`tabindex`,`0`),this.focusIndex=0)},this.handleItemFocus=e=>{let t=e.target;this.menuItems!==void 0&&t!==this.menuItems[this.focusIndex]&&(this.menuItems[this.focusIndex].setAttribute(`tabindex`,`-1`),this.focusIndex=this.menuItems.indexOf(t),t.setAttribute(`tabindex`,`0`))},this.handleExpandedChanged=e=>{let t=e.target;this.expandedItem!==null&&t===this.expandedItem&&t.expanded===!1&&(this.expandedItem=null),t.expanded&&(this.expandedItem=t)},this.removeItemListeners=()=>{this.menuItems!==void 0&&this.menuItems.forEach(e=>{e.removeEventListener(`expanded-change`,this.handleExpandedChanged),e.removeEventListener(`focus`,this.handleItemFocus)})},this.setItems=()=>{let e=this.domChildren();this.removeItemListeners(),this.menuItems=e.filter(g),this.menuItems.length&&(this.focusIndex=0),this.menuItems.forEach((e,t)=>{e instanceof d.i&&(e._isPresentational=!1),e.setAttribute(`tabindex`,t===0?`0`:`-1`),e.addEventListener(`expanded-change`,this.handleExpandedChanged),e.addEventListener(`focus`,this.handleItemFocus)})},this.placement=`bottom`,this.autoDismiss=!1,this.positionStrategy=`fixed`,this.open=!1,this._onFocusout=e=>{let t=e.relatedTarget,n=!this.contains(t)&&!this._anchorEl?.contains(t);this.autoDismiss&&n&&(this.open=!1)}}itemsChanged(){this.$fastController.isConnected&&this.menuItems!==void 0&&this.setItems()}connectedCallback(){super.connectedCallback(),e.O.enqueue(()=>{this.setItems()})}disconnectedCallback(){super.disconnectedCallback(),this.removeItemListeners(),this.menuItems=void 0}focus(){let e=this.querySelector(`[autofocus]:not([slot="anchor"])`);e instanceof HTMLElement?e.focus():this.setFocus(0)}collapseExpandedItem(){this.expandedItem!==null&&(this.expandedItem.expanded=!1,this.expandedItem=null)}handleMenuKeyDown(e){if(!(e.defaultPrevented||this.menuItems===void 0))switch(e.key){case o.t:this.setFocus(this.focusIndex+1);return;case o.i:this.setFocus(this.focusIndex-1);return;case`End`:this.setFocus(this.menuItems.length-1);return;case o.s:this.setFocus(0);return;default:return!0}}domChildren(){return Array.from(this.children).filter(e=>!e.hasAttribute(`hidden`)).filter(e=>!e.hasAttribute(`slot`))}setFocus(e){if(this.menuItems!==void 0&&e>=0&&e<this.menuItems.length){let t=this.menuItems[e];this.focusIndex>-1&&this.menuItems.length>=this.focusIndex-1&&this.menuItems[this.focusIndex].setAttribute(`tabindex`,`-1`),this.focusIndex=e,t.setAttribute(`tabindex`,`0`),t.focus()}}get#e(){return this.trigger??`auto`}openChanged(e,t){t&&this._popupEl?.show().then(()=>this.focus()),t?this.$emit(`open`,void 0,{bubbles:!1}):this.$emit(`close`,void 0,{bubbles:!1}),this._anchorEl&&this.#n(this._anchorEl)}_anchorElChanged(e,t){e&&this.#r(e),t&&this.#t(t)}#t(e){e.addEventListener(`click`,this.#i,!0),e.addEventListener(`focusout`,this._onFocusout),e.ariaHasPopup=`menu`,this.#n(e)}#n(e){e.ariaExpanded=this.open.toString(),e.dataset.expanded=this.open.toString()}#r(e){e.removeEventListener(`click`,this.#i,!0),e.removeEventListener(`focusout`,this._onFocusout),e.ariaHasPopup=null,e.ariaExpanded=null,delete e.dataset.expanded}#i=()=>{if(this.#e===`off`||this.#e===`legacy`&&this.open)return;let t=!this.open;e.O.enqueue(()=>this.open=t)};_onBodyChange(e){if(this.menuItems===void 0||!(e.target instanceof Element))return;this.#e===`auto`&&!p(e.target)&&(this.open=!1);let t=this.domChildren(),n=t.indexOf(e.target);if(n!==-1){if(m(e.target)&&e.target.checked){for(let e=n-1;e>=0;--e){let n=t[e];if(m(n)&&(n.checked=!1),h(n))break}for(let e=n+1;e<=t.length-1;++e){let n=t[e];if(m(n)&&(n.checked=!1),h(n))break}}return!0}}};r.t([e.l({attribute:`offset`,converter:e.u})],_.prototype,`offset`,void 0),r.t([e.T],_.prototype,`items`,void 0),r.t([e.l({mode:`fromView`})],_.prototype,`placement`,void 0),r.t([e.l],_.prototype,`trigger`,void 0),r.t([e.l({mode:`boolean`,attribute:`auto-dismiss`})],_.prototype,`autoDismiss`,void 0),r.t([e.l({mode:`fromView`,attribute:`position-strategy`})],_.prototype,`positionStrategy`,void 0),r.t([e.l({mode:`boolean`})],_.prototype,`open`,void 0),r.t([e.T],_.prototype,`headerSlottedContent`,void 0),r.t([e.T],_.prototype,`actionItemsSlottedContent`,void 0),r.t([e.T],_.prototype,`_popupOffset`,void 0);var v=({headerSlottedContent:e,actionItemsSlottedContent:t,items:n})=>a.t(`base`,[`hide-header`,!e?.length],[`hide-actions`,!t?.length],[`hide-body`,n&&!n.length]);function y(e,t){return e.open&&l.t(t)&&(e.open=!1),!0}var b=e.o(d.r,_,r=>{let a=r.tagFor(s.i);return e.d`
2
+ <template @focusout="${(e,t)=>e._onFocusout(t.event)}">
3
+ ${c.n()}
4
+ <${a}
5
+ ${t.t(`_popupEl`)}
6
+ :placement=${e=>e.placement}
7
+ :open=${e=>e.open}
8
+ :anchor=${e=>e._anchorEl}
9
+ :strategy="${e=>e.positionStrategy}"
10
+ :offset=${e=>e.offset||e._popupOffset}
11
+ @keydown="${(e,t)=>y(e,t.event)}"
12
+ >
13
+ <div class="${v}">
14
+ <div class="header">
15
+ <slot name="header" ${n.t(`headerSlottedContent`)}></slot>
16
+ </div>
17
+ <div
18
+ class="body"
19
+ ${i.n({role:`menu`})}
20
+ @change="${(e,t)=>e._onBodyChange(t.event)}"
21
+ @keydown="${(e,t)=>e.handleMenuKeyDown(t.event)}"
22
+ @focusout="${(e,t)=>e.handleFocusOut(t.event)}"
23
+ >
24
+ <slot ${n.t(`items`)}></slot>
25
+ </div>
26
+ <footer class="action-items"><slot name="action-items" ${n.t(`actionItemsSlottedContent`)}></slot></footer>
18
27
  </div>
19
- </template>
20
- `},[n.t],{styles:s}),f=t.s(d);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
28
+ </${a}>
29
+ </template>`},[s.t,d.t],{styles:f}),x=e.s(b);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});
@@ -1,58 +1,175 @@
1
- import { t as e } from "./localized.js";
2
- import { T as t, d as n, l as r, o as i, s as a, t as o } from "./vivid-element.js";
3
- import { t as s } from "./definition2.js";
4
- import { t as c } from "./decorate.js";
5
- import { t as l } from "./class-names.js";
6
- import { a as u, i as d, n as f } from "./affix.js";
7
- import { n as p, t as m } from "./host-semantics.js";
8
- //#region src/lib/tab/tab.scss?inline
9
- var h = ":host{--_vvd-tab-accent-firm-wrapper:var(--vvd-tab-accent-firm);--_vvd-tab-cta-firm-wrapper:var(--vvd-tab-cta-firm)}.base{--vvd-tab-accent-firm:var(--_vvd-tab-accent-firm-wrapper,var(--vvd-tab-accent-primary));--vvd-tab-cta-firm:var(--_vvd-tab-cta-firm-wrapper,var(--vvd-tab-cta-primary))}:host(.vertical){grid-column:1;justify-content:end}:host([disabled]){cursor:not-allowed}:host([removable]){position:relative}:host(:focus-visible){outline:none}.base{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.base:disabled,.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base:active:where(:not(.disabled,:disabled)),.base.active:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}.base.connotation-cta{--_connotation-color-primary-text:var(--vvd-tab-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-firm:var(--vvd-tab-cta-firm,var(--vvd-color-cta-600));--_connotation-color-faint:var(--vvd-tab-cta-faint,var(--vvd-color-cta-50));--_connotation-color-fierce:var(--vvd-tab-cta-fierce,var(--vvd-color-cta-700));--_connotation-color-pale:var(--vvd-tab-cta-pale,var(--vvd-color-cta-300));--_connotation-color-soft:var(--vvd-tab-cta-soft,var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-primary-text:var(--vvd-tab-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-firm:var(--vvd-tab-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-faint:var(--vvd-tab-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-fierce:var(--vvd-tab-accent-fierce,var(--vvd-color-neutral-700));--_connotation-color-pale:var(--vvd-tab-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-soft:var(--vvd-tab-accent-soft,var(--vvd-color-neutral-100))}.base{box-sizing:border-box;align-items:center;justify-content:var(--_tab-justify-content);padding:var(--_tabs-tablist-gutter);background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base-bold);gap:var(--_tabs-tablist-gutter);vertical-align:middle;white-space:nowrap;min-block-size:40px;display:flex;position:relative}@supports (user-select:none){.base{user-select:none}}.base:not(.shape-sharp){border-radius:8px}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.base.removable{padding-inline-end:40px}:host(:focus-visible) .base{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}:host(.vertical) .base{margin-inline-start:var(--_tabs-active-indicator-stroke-width)}slot[name=icon]{font-size:20px;line-height:1}.icon-trailing slot[name=icon]{order:1;margin-inline-start:auto;display:inline-block}.close{background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;block-size:24px;inline-size:24px;display:flex;position:absolute;inset-block-start:50%;inset-inline-end:4px;transform:translateY(-50%)}.close:focus-visible{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}.close vwc-icon{font-size:12px}.close .icon{justify-content:center;align-items:center;display:flex}", g = class extends m(f(e(o))) {
1
+ import { O as e, T as t, d as n, l as r, o as i, s as a, t as o, u as s } from "./vivid-element.js";
2
+ import { t as c } from "./ref.js";
3
+ import { t as l } from "./slotted.js";
4
+ import { t as u } from "./decorate.js";
5
+ import { n as d, t as f } from "./delegates-aria.js";
6
+ import { t as p } from "./class-names.js";
7
+ import { i as m, s as h, t as g } from "./key-codes.js";
8
+ import { i as _, t as v } from "./definition8.js";
9
+ import { n as y, t as b } from "./anchored.js";
10
+ import { t as x } from "./dialog.js";
11
+ import { t as S } from "./divider.js";
12
+ import { a as C, i as w, r as T, t as E } from "./definition20.js";
13
+ //#region src/lib/menu/menu.scss?inline
14
+ var D = ":host{display:var(--_popup-display,inline)}:host([slotted-anchor]){--_popup-display:contents}.base{box-sizing:border-box;inline-size:max-content;max-block-size:var(--menu-block-size,408px);min-inline-size:var(--menu-min-inline-size);flex-direction:column;gap:8px;padding:4px;display:flex;overflow:hidden auto}@media not all and (width>=600px){.base{max-inline-size:var(--menu-max-inline-size,300px)}}@media (width>=600px){.base{max-inline-size:var(--menu-max-inline-size)}}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[data-vvd-component=menuitem]:focus-visible){box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent;display:block}.header{padding:4px}.hide-header .header{display:none}.body{flex-direction:column;row-gap:1px;display:flex}.hide-body .body{display:none}.action-items{justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px;display:flex}.hide-actions .action-items{display:none}", O = (e) => e instanceof w && e.controlType === "checkbox", k = (e) => e instanceof w && e.controlType === "radio", A = (e) => e instanceof S ? !0 : e.role === "separator", j = (e) => e instanceof w ? !0 : !!(e.role && e.role in C), M = class extends b(f(o)) {
10
15
  constructor(...e) {
11
- super(...e), this.removable = !1, this.tabIndex = "-1", this.active = !1;
16
+ super(...e), this.offset = null, this.expandedItem = null, this.focusIndex = -1, this.handleFocusOut = (e) => {
17
+ !this.contains(e.relatedTarget) && this.menuItems !== void 0 && this.menuItems.length && (this.collapseExpandedItem(), this.menuItems[this.focusIndex].setAttribute("tabindex", "-1"), this.menuItems[0].setAttribute("tabindex", "0"), this.focusIndex = 0);
18
+ }, this.handleItemFocus = (e) => {
19
+ let t = e.target;
20
+ this.menuItems !== void 0 && t !== this.menuItems[this.focusIndex] && (this.menuItems[this.focusIndex].setAttribute("tabindex", "-1"), this.focusIndex = this.menuItems.indexOf(t), t.setAttribute("tabindex", "0"));
21
+ }, this.handleExpandedChanged = (e) => {
22
+ let t = e.target;
23
+ this.expandedItem !== null && t === this.expandedItem && t.expanded === !1 && (this.expandedItem = null), t.expanded && (this.expandedItem = t);
24
+ }, this.removeItemListeners = () => {
25
+ this.menuItems !== void 0 && this.menuItems.forEach((e) => {
26
+ e.removeEventListener("expanded-change", this.handleExpandedChanged), e.removeEventListener("focus", this.handleItemFocus);
27
+ });
28
+ }, this.setItems = () => {
29
+ let e = this.domChildren();
30
+ this.removeItemListeners(), this.menuItems = e.filter(j), this.menuItems.length && (this.focusIndex = 0), this.menuItems.forEach((e, t) => {
31
+ e instanceof w && (e._isPresentational = !1), e.setAttribute("tabindex", t === 0 ? "0" : "-1"), e.addEventListener("expanded-change", this.handleExpandedChanged), e.addEventListener("focus", this.handleItemFocus);
32
+ });
33
+ }, this.placement = "bottom", this.autoDismiss = !1, this.positionStrategy = "fixed", this.open = !1, this._onFocusout = (e) => {
34
+ let t = e.relatedTarget, n = !this.contains(t) && !this._anchorEl?.contains(t);
35
+ this.autoDismiss && n && (this.open = !1);
36
+ };
12
37
  }
13
- _handleCloseClick(e) {
14
- e.stopImmediatePropagation(), this.$emit("close");
38
+ itemsChanged() {
39
+ this.$fastController.isConnected && this.menuItems !== void 0 && this.setItems();
15
40
  }
16
- _onKeyDown(e) {
17
- return !this.removable || e.key !== "Delete" ? !0 : (e.stopImmediatePropagation(), this.$emit("close"), !1);
41
+ connectedCallback() {
42
+ super.connectedCallback(), e.enqueue(() => {
43
+ this.setItems();
44
+ });
45
+ }
46
+ disconnectedCallback() {
47
+ super.disconnectedCallback(), this.removeItemListeners(), this.menuItems = void 0;
48
+ }
49
+ focus() {
50
+ let e = this.querySelector("[autofocus]:not([slot=\"anchor\"])");
51
+ e instanceof HTMLElement ? e.focus() : this.setFocus(0);
52
+ }
53
+ collapseExpandedItem() {
54
+ this.expandedItem !== null && (this.expandedItem.expanded = !1, this.expandedItem = null);
55
+ }
56
+ handleMenuKeyDown(e) {
57
+ if (!(e.defaultPrevented || this.menuItems === void 0)) switch (e.key) {
58
+ case g:
59
+ this.setFocus(this.focusIndex + 1);
60
+ return;
61
+ case m:
62
+ this.setFocus(this.focusIndex - 1);
63
+ return;
64
+ case "End":
65
+ this.setFocus(this.menuItems.length - 1);
66
+ return;
67
+ case h:
68
+ this.setFocus(0);
69
+ return;
70
+ default: return !0;
71
+ }
72
+ }
73
+ domChildren() {
74
+ return Array.from(this.children).filter((e) => !e.hasAttribute("hidden")).filter((e) => !e.hasAttribute("slot"));
75
+ }
76
+ setFocus(e) {
77
+ if (this.menuItems !== void 0 && e >= 0 && e < this.menuItems.length) {
78
+ let t = this.menuItems[e];
79
+ this.focusIndex > -1 && this.menuItems.length >= this.focusIndex - 1 && this.menuItems[this.focusIndex].setAttribute("tabindex", "-1"), this.focusIndex = e, t.setAttribute("tabindex", "0"), t.focus();
80
+ }
81
+ }
82
+ get #e() {
83
+ return this.trigger ?? "auto";
84
+ }
85
+ openChanged(e, t) {
86
+ t && this._popupEl?.show().then(() => this.focus()), t ? this.$emit("open", void 0, { bubbles: !1 }) : this.$emit("close", void 0, { bubbles: !1 }), this._anchorEl && this.#n(this._anchorEl);
87
+ }
88
+ _anchorElChanged(e, t) {
89
+ e && this.#r(e), t && this.#t(t);
90
+ }
91
+ #t(e) {
92
+ e.addEventListener("click", this.#i, !0), e.addEventListener("focusout", this._onFocusout), e.ariaHasPopup = "menu", this.#n(e);
93
+ }
94
+ #n(e) {
95
+ e.ariaExpanded = this.open.toString(), e.dataset.expanded = this.open.toString();
96
+ }
97
+ #r(e) {
98
+ e.removeEventListener("click", this.#i, !0), e.removeEventListener("focusout", this._onFocusout), e.ariaHasPopup = null, e.ariaExpanded = null, delete e.dataset.expanded;
99
+ }
100
+ #i = () => {
101
+ if (this.#e === "off" || this.#e === "legacy" && this.open) return;
102
+ let t = !this.open;
103
+ e.enqueue(() => this.open = t);
104
+ };
105
+ _onBodyChange(e) {
106
+ if (this.menuItems === void 0 || !(e.target instanceof Element)) return;
107
+ this.#e === "auto" && !O(e.target) && (this.open = !1);
108
+ let t = this.domChildren(), n = t.indexOf(e.target);
109
+ if (n !== -1) {
110
+ if (k(e.target) && e.target.checked) {
111
+ for (let e = n - 1; e >= 0; --e) {
112
+ let n = t[e];
113
+ if (k(n) && (n.checked = !1), A(n)) break;
114
+ }
115
+ for (let e = n + 1; e <= t.length - 1; ++e) {
116
+ let n = t[e];
117
+ if (k(n) && (n.checked = !1), A(n)) break;
118
+ }
119
+ }
120
+ return !0;
121
+ }
18
122
  }
19
123
  };
20
- c([r({ mode: "boolean" })], g.prototype, "disabled", void 0), c([r], g.prototype, "connotation", void 0), c([r], g.prototype, "shape", void 0), c([r], g.prototype, "label", void 0), c([r({ mode: "boolean" })], g.prototype, "removable", void 0), c([r({ mode: "fromView" })], g.prototype, "tabIndex", void 0), c([t], g.prototype, "active", void 0);
124
+ u([r({
125
+ attribute: "offset",
126
+ converter: s
127
+ })], M.prototype, "offset", void 0), u([t], M.prototype, "items", void 0), u([r({ mode: "fromView" })], M.prototype, "placement", void 0), u([r], M.prototype, "trigger", void 0), u([r({
128
+ mode: "boolean",
129
+ attribute: "auto-dismiss"
130
+ })], M.prototype, "autoDismiss", void 0), u([r({
131
+ mode: "fromView",
132
+ attribute: "position-strategy"
133
+ })], M.prototype, "positionStrategy", void 0), u([r({ mode: "boolean" })], M.prototype, "open", void 0), u([t], M.prototype, "headerSlottedContent", void 0), u([t], M.prototype, "actionItemsSlottedContent", void 0), u([t], M.prototype, "_popupOffset", void 0);
21
134
  //#endregion
22
- //#region src/lib/tab/tab.template.ts
23
- var _ = ({ connotation: e, disabled: t, active: n, iconTrailing: r, shape: i, removable: a }) => l("base", [`connotation-${e}`, !!e && !!n], [`shape-${i}`, !!i], ["disabled", !!t], ["selected", !!n], ["icon-trailing", r], ["removable", a]);
24
- function v(e) {
25
- let t = u(e);
26
- return n`<button
27
- aria-label="${(e) => e.locale.tab.dismissButtonLabel}"
28
- class="close"
29
- id="close-btn"
30
- @click="${(e, t) => e._handleCloseClick(t.event)}"
31
- >
32
- ${() => t("close-line", d.Span)}
33
- </button>`;
135
+ //#region src/lib/menu/menu.template.ts
136
+ var N = ({ headerSlottedContent: e, actionItemsSlottedContent: t, items: n }) => p("base", ["hide-header", !e?.length], ["hide-actions", !t?.length], ["hide-body", n && !n.length]);
137
+ function P(e, t) {
138
+ return e.open && x(t) && (e.open = !1), !0;
34
139
  }
35
140
  //#endregion
36
- //#region src/lib/tab/definition.ts
37
- var y = i("tab", g, (e) => {
38
- let t = u(e);
141
+ //#region src/lib/menu/definition.ts
142
+ var F = i(T, M, (e) => {
143
+ let t = e.tagFor(_);
39
144
  return n`
40
- <template
41
- slot="tab"
42
- ?active="${(e) => e.active}"
43
- ${p({
44
- role: "tab",
45
- ariaDisabled: (e) => e.disabled,
46
- ariaSelected: (e) => e.active
47
- })}
48
- @keydown="${(e, t) => e._onKeyDown(t.event)}"
49
- >
50
- <div class="${_}">
51
- ${(e) => t(e.icon, d.Slot)} ${(e) => e.label}
52
- ${(t) => t.removable ? v(e) : null}
145
+ <template @focusout="${(e, t) => e._onFocusout(t.event)}">
146
+ ${y()}
147
+ <${t}
148
+ ${c("_popupEl")}
149
+ :placement=${(e) => e.placement}
150
+ :open=${(e) => e.open}
151
+ :anchor=${(e) => e._anchorEl}
152
+ :strategy="${(e) => e.positionStrategy}"
153
+ :offset=${(e) => e.offset || e._popupOffset}
154
+ @keydown="${(e, t) => P(e, t.event)}"
155
+ >
156
+ <div class="${N}">
157
+ <div class="header">
158
+ <slot name="header" ${l("headerSlottedContent")}></slot>
159
+ </div>
160
+ <div
161
+ class="body"
162
+ ${d({ role: "menu" })}
163
+ @change="${(e, t) => e._onBodyChange(t.event)}"
164
+ @keydown="${(e, t) => e.handleMenuKeyDown(t.event)}"
165
+ @focusout="${(e, t) => e.handleFocusOut(t.event)}"
166
+ >
167
+ <slot ${l("items")}></slot>
168
+ </div>
169
+ <footer class="action-items"><slot name="action-items" ${l("actionItemsSlottedContent")}></slot></footer>
53
170
  </div>
54
- </template>
55
- `;
56
- }, [s], { styles: h }), b = a(y);
171
+ </${t}>
172
+ </template>`;
173
+ }, [v, E], { styles: D }), I = a(F);
57
174
  //#endregion
58
- export { y as n, g as r, b as t };
175
+ export { I as n, M as r, F as t };