@vonage/vivid 3.51.0 → 3.53.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 (340) hide show
  1. package/README.md +1 -1
  2. package/accordion/index.cjs +1 -1
  3. package/accordion/index.js +1 -1
  4. package/accordion-item/index.cjs +1 -1
  5. package/accordion-item/index.js +1 -1
  6. package/alert/index.cjs +3 -3
  7. package/alert/index.js +3 -3
  8. package/appearance-ui/index.cjs +19 -11
  9. package/appearance-ui/index.js +19 -11
  10. package/audio-player/index.cjs +4 -3
  11. package/audio-player/index.js +4 -3
  12. package/avatar/index.cjs +1 -1
  13. package/avatar/index.js +1 -1
  14. package/badge/index.cjs +1 -1
  15. package/badge/index.js +1 -1
  16. package/banner/index.cjs +2 -2
  17. package/banner/index.js +2 -2
  18. package/breadcrumb-item/index.cjs +1 -1
  19. package/breadcrumb-item/index.js +1 -1
  20. package/button/index.cjs +2 -2
  21. package/button/index.js +2 -2
  22. package/card/index.cjs +2 -2
  23. package/card/index.js +2 -2
  24. package/checkbox/index.cjs +3 -2
  25. package/checkbox/index.js +3 -2
  26. package/combobox/index.cjs +5 -8
  27. package/combobox/index.js +5 -8
  28. package/custom-elements.json +2310 -769
  29. package/data-grid/index.cjs +1 -1
  30. package/data-grid/index.js +1 -1
  31. package/date-picker/index.cjs +7 -9
  32. package/date-picker/index.js +7 -9
  33. package/date-range-picker/index.cjs +7 -9
  34. package/date-range-picker/index.js +7 -9
  35. package/dial-pad/index.cjs +33 -0
  36. package/dial-pad/index.js +31 -0
  37. package/dialog/index.cjs +4 -4
  38. package/dialog/index.js +4 -4
  39. package/divider/index.cjs +1 -1
  40. package/divider/index.js +1 -1
  41. package/elevation/index.cjs +1 -1
  42. package/elevation/index.js +1 -1
  43. package/empty-state/index.cjs +2 -2
  44. package/empty-state/index.js +2 -2
  45. package/fab/index.cjs +2 -2
  46. package/fab/index.js +2 -2
  47. package/file-picker/index.cjs +4 -5
  48. package/file-picker/index.js +4 -5
  49. package/header/index.cjs +2 -2
  50. package/header/index.js +2 -2
  51. package/icon/index.cjs +1 -1
  52. package/icon/index.js +1 -1
  53. package/index.cjs +135 -123
  54. package/index.js +48 -46
  55. package/layout/index.cjs +1 -1
  56. package/layout/index.js +1 -1
  57. package/lib/avatar/definition.d.ts +1 -1
  58. package/lib/button/button.d.ts +1 -0
  59. package/lib/button/definition.d.ts +1 -1
  60. package/lib/calendar-event/definition.d.ts +1 -1
  61. package/lib/components.d.ts +3 -0
  62. package/lib/dial-pad/definition.d.ts +3 -0
  63. package/lib/dial-pad/dial-pad.d.ts +14 -0
  64. package/lib/dial-pad/dial-pad.template.d.ts +4 -0
  65. package/lib/dial-pad/locale.d.ts +18 -0
  66. package/lib/enums.d.ts +6 -0
  67. package/lib/layout/definition.d.ts +1 -1
  68. package/lib/menu-item/menu-item.d.ts +3 -0
  69. package/lib/range-slider/definition.d.ts +3 -0
  70. package/lib/range-slider/locale.d.ts +4 -0
  71. package/lib/range-slider/range-slider.d.ts +32 -0
  72. package/lib/range-slider/range-slider.form-associated.d.ts +10 -0
  73. package/lib/range-slider/range-slider.template.d.ts +4 -0
  74. package/lib/range-slider/utils/lerp.d.ts +2 -0
  75. package/lib/range-slider/utils/roundToStepValue.d.ts +1 -0
  76. package/lib/slider/slider.template.d.ts +1 -0
  77. package/lib/split-button/definition.d.ts +1 -1
  78. package/lib/text-anchor/definition.d.ts +1 -0
  79. package/lib/text-anchor/text-anchor.d.ts +5 -0
  80. package/lib/video-player/definition.d.ts +3 -0
  81. package/lib/video-player/locale.d.ts +1 -0
  82. package/lib/video-player/video-player.d.ts +17 -0
  83. package/lib/video-player/video-player.template.d.ts +4 -0
  84. package/listbox/index.cjs +25 -24
  85. package/listbox/index.js +25 -24
  86. package/locales/en-GB.cjs +34 -0
  87. package/locales/en-GB.js +34 -0
  88. package/locales/en-US.cjs +202 -0
  89. package/locales/en-US.js +202 -0
  90. package/locales/ja-JP.cjs +202 -1
  91. package/locales/ja-JP.js +202 -1
  92. package/locales/zh-CN.cjs +203 -0
  93. package/locales/zh-CN.js +203 -0
  94. package/menu/index.cjs +7 -7
  95. package/menu/index.js +7 -7
  96. package/menu-item/index.cjs +4 -4
  97. package/menu-item/index.js +4 -4
  98. package/nav/index.cjs +1 -1
  99. package/nav/index.js +1 -1
  100. package/nav-disclosure/index.cjs +2 -2
  101. package/nav-disclosure/index.js +2 -2
  102. package/nav-item/index.cjs +2 -2
  103. package/nav-item/index.js +2 -2
  104. package/note/index.cjs +2 -2
  105. package/note/index.js +2 -2
  106. package/number-field/index.cjs +5 -6
  107. package/number-field/index.js +5 -6
  108. package/option/index.cjs +2 -2
  109. package/option/index.js +2 -2
  110. package/package.json +34 -34
  111. package/pagination/index.cjs +3 -3
  112. package/pagination/index.js +3 -3
  113. package/popup/index.cjs +4 -4
  114. package/popup/index.js +4 -4
  115. package/progress/index.cjs +1 -1
  116. package/progress/index.js +1 -1
  117. package/progress-ring/index.cjs +1 -1
  118. package/progress-ring/index.js +1 -1
  119. package/radio/index.cjs +1 -1
  120. package/radio/index.js +1 -1
  121. package/radio-group/index.cjs +1 -1
  122. package/radio-group/index.js +1 -1
  123. package/range-slider/index.cjs +22 -0
  124. package/range-slider/index.js +20 -0
  125. package/select/index.cjs +7 -6
  126. package/select/index.js +7 -6
  127. package/selectable-box/index.cjs +5 -4
  128. package/selectable-box/index.js +5 -4
  129. package/shared/Reflector.cjs +5 -1
  130. package/shared/Reflector.js +5 -1
  131. package/shared/affix.cjs +11 -4
  132. package/shared/affix.js +12 -4
  133. package/shared/anchored.cjs +8 -2
  134. package/shared/anchored.js +8 -2
  135. package/shared/applyMixinsWithObservables.cjs +15 -0
  136. package/shared/applyMixinsWithObservables.js +13 -0
  137. package/shared/definition.cjs +9 -4
  138. package/shared/definition.js +9 -4
  139. package/shared/definition10.cjs +5 -5
  140. package/shared/definition10.js +5 -5
  141. package/shared/definition11.cjs +77 -49
  142. package/shared/definition11.js +78 -50
  143. package/shared/definition12.cjs +12 -14
  144. package/shared/definition12.js +12 -14
  145. package/shared/definition13.cjs +118 -75
  146. package/shared/definition13.js +118 -75
  147. package/shared/definition14.cjs +34 -33
  148. package/shared/definition14.js +34 -33
  149. package/shared/definition15.cjs +24 -12
  150. package/shared/definition15.js +24 -12
  151. package/shared/definition16.cjs +38 -43
  152. package/shared/definition16.js +38 -43
  153. package/shared/definition17.cjs +126 -66
  154. package/shared/definition17.js +127 -67
  155. package/shared/definition18.cjs +31 -15
  156. package/shared/definition18.js +31 -15
  157. package/shared/definition19.cjs +117 -81
  158. package/shared/definition19.js +117 -81
  159. package/shared/definition2.cjs +10 -5
  160. package/shared/definition2.js +10 -5
  161. package/shared/definition20.cjs +187 -227
  162. package/shared/definition20.js +183 -223
  163. package/shared/definition21.cjs +262 -69
  164. package/shared/definition21.js +261 -67
  165. package/shared/definition22.cjs +66 -61
  166. package/shared/definition22.js +64 -60
  167. package/shared/definition23.cjs +42 -77
  168. package/shared/definition23.js +41 -76
  169. package/shared/definition24.cjs +65 -2350
  170. package/shared/definition24.js +64 -2349
  171. package/shared/definition25.cjs +2402 -48
  172. package/shared/definition25.js +2401 -47
  173. package/shared/definition26.cjs +62 -28
  174. package/shared/definition26.js +61 -27
  175. package/shared/definition27.cjs +28 -54
  176. package/shared/definition27.js +27 -53
  177. package/shared/definition28.cjs +39 -819
  178. package/shared/definition28.js +38 -817
  179. package/shared/definition29.cjs +893 -54
  180. package/shared/definition29.js +893 -55
  181. package/shared/definition3.cjs +7 -10
  182. package/shared/definition3.js +7 -10
  183. package/shared/definition30.cjs +69 -85
  184. package/shared/definition30.js +68 -84
  185. package/shared/definition31.cjs +86 -23
  186. package/shared/definition31.js +86 -23
  187. package/shared/definition32.cjs +24 -14
  188. package/shared/definition32.js +23 -13
  189. package/shared/definition33.cjs +11 -53
  190. package/shared/definition33.js +10 -52
  191. package/shared/definition34.cjs +28 -500
  192. package/shared/definition34.js +28 -500
  193. package/shared/definition35.cjs +447 -194
  194. package/shared/definition35.js +447 -192
  195. package/shared/definition36.cjs +258 -188
  196. package/shared/definition36.js +255 -187
  197. package/shared/definition37.cjs +204 -78
  198. package/shared/definition37.js +203 -76
  199. package/shared/definition38.cjs +55 -51
  200. package/shared/definition38.js +52 -49
  201. package/shared/definition39.cjs +65 -423
  202. package/shared/definition39.js +64 -422
  203. package/shared/definition4.cjs +24 -12
  204. package/shared/definition4.js +24 -12
  205. package/shared/definition40.cjs +447 -35
  206. package/shared/definition40.js +444 -32
  207. package/shared/definition41.cjs +35 -678
  208. package/shared/definition41.js +34 -677
  209. package/shared/definition42.cjs +544 -99
  210. package/shared/definition42.js +543 -98
  211. package/shared/definition43.cjs +696 -77
  212. package/shared/definition43.js +695 -76
  213. package/shared/definition44.cjs +113 -563
  214. package/shared/definition44.js +112 -561
  215. package/shared/definition45.cjs +77 -117
  216. package/shared/definition45.js +75 -115
  217. package/shared/definition46.cjs +474 -86
  218. package/shared/definition46.js +474 -87
  219. package/shared/definition47.cjs +140 -23
  220. package/shared/definition47.js +139 -22
  221. package/shared/definition48.cjs +132 -57
  222. package/shared/definition48.js +131 -56
  223. package/shared/definition49.cjs +18 -524
  224. package/shared/definition49.js +17 -523
  225. package/shared/definition5.cjs +20 -17
  226. package/shared/definition5.js +20 -17
  227. package/shared/definition50.cjs +73 -25
  228. package/shared/definition50.js +72 -24
  229. package/shared/definition51.cjs +506 -99
  230. package/shared/definition51.js +505 -99
  231. package/shared/definition52.cjs +29 -277
  232. package/shared/definition52.js +28 -276
  233. package/shared/definition53.cjs +97 -256
  234. package/shared/definition53.js +97 -255
  235. package/shared/definition54.cjs +287 -769
  236. package/shared/definition54.js +287 -769
  237. package/shared/definition55.cjs +305 -105
  238. package/shared/definition55.js +304 -104
  239. package/shared/definition56.cjs +841 -81
  240. package/shared/definition56.js +840 -80
  241. package/shared/definition57.cjs +153 -69
  242. package/shared/definition57.js +152 -68
  243. package/shared/definition58.cjs +138 -299
  244. package/shared/definition58.js +137 -298
  245. package/shared/definition59.cjs +72 -27
  246. package/shared/definition59.js +71 -26
  247. package/shared/definition6.cjs +4 -5
  248. package/shared/definition6.js +4 -5
  249. package/shared/definition60.cjs +279 -1780
  250. package/shared/definition60.js +278 -1779
  251. package/shared/definition61.cjs +65870 -11
  252. package/shared/definition61.js +65869 -11
  253. package/shared/definition62.cjs +50 -0
  254. package/shared/definition62.js +46 -0
  255. package/shared/definition63.cjs +1828 -0
  256. package/shared/definition63.js +1824 -0
  257. package/shared/definition7.cjs +8 -6
  258. package/shared/definition7.js +8 -6
  259. package/shared/definition8.cjs +27 -20
  260. package/shared/definition8.js +27 -20
  261. package/shared/definition9.cjs +7 -10
  262. package/shared/definition9.js +7 -10
  263. package/shared/enums.cjs +8 -0
  264. package/shared/enums.js +8 -1
  265. package/shared/icon.cjs +7 -2
  266. package/shared/icon.js +7 -2
  267. package/shared/index2.cjs +67 -38
  268. package/shared/index2.js +67 -38
  269. package/shared/key-codes2.cjs +8 -0
  270. package/shared/key-codes2.js +5 -1
  271. package/shared/listbox.cjs +1 -1
  272. package/shared/listbox.js +1 -1
  273. package/shared/localization/Locale.d.ts +6 -0
  274. package/shared/patterns/form-elements/form-elements.d.ts +2 -3
  275. package/shared/patterns/index.d.ts +0 -1
  276. package/shared/presentationDate.cjs +140 -81
  277. package/shared/presentationDate.js +140 -81
  278. package/shared/slider.template.cjs +71 -0
  279. package/shared/slider.template.js +67 -0
  280. package/shared/text-anchor.cjs +6 -0
  281. package/shared/text-anchor.js +6 -0
  282. package/shared/text-anchor.template.cjs +33 -33
  283. package/shared/text-anchor.template.js +33 -33
  284. package/shared/text-field.cjs +1 -1
  285. package/shared/text-field.js +1 -1
  286. package/shared/utils/applyMixinsWithObservables.d.ts +1 -0
  287. package/side-drawer/index.cjs +1 -1
  288. package/side-drawer/index.js +1 -1
  289. package/slider/index.cjs +2 -1
  290. package/slider/index.js +2 -1
  291. package/split-button/index.cjs +2 -2
  292. package/split-button/index.js +2 -2
  293. package/style.css +1 -0
  294. package/styles/core/all.css +1 -1
  295. package/styles/core/theme.css +1 -1
  296. package/styles/core/typography.css +1 -1
  297. package/styles/fonts/spezia-variable.css +39 -13
  298. package/styles/tokens/theme-dark.css +4 -4
  299. package/styles/tokens/theme-light.css +4 -4
  300. package/styles/tokens/vivid-2-compat.css +4 -2
  301. package/switch/index.cjs +2 -2
  302. package/switch/index.js +2 -2
  303. package/tab/index.cjs +2 -2
  304. package/tab/index.js +2 -2
  305. package/tab-panel/index.cjs +1 -1
  306. package/tab-panel/index.js +1 -1
  307. package/tabs/index.cjs +4 -4
  308. package/tabs/index.js +4 -4
  309. package/tag/index.cjs +2 -2
  310. package/tag/index.js +2 -2
  311. package/tag-group/index.cjs +1 -1
  312. package/tag-group/index.js +1 -1
  313. package/text-area/index.cjs +4 -3
  314. package/text-area/index.js +4 -3
  315. package/text-field/index.cjs +4 -6
  316. package/text-field/index.js +4 -6
  317. package/time-picker/index.cjs +8 -10
  318. package/time-picker/index.js +8 -10
  319. package/toggletip/index.cjs +5 -5
  320. package/toggletip/index.js +5 -5
  321. package/tooltip/index.cjs +5 -5
  322. package/tooltip/index.js +5 -5
  323. package/tree-item/index.cjs +2 -2
  324. package/tree-item/index.js +2 -2
  325. package/tree-view/index.cjs +1 -1
  326. package/tree-view/index.js +1 -1
  327. package/video-player/index.cjs +17 -0
  328. package/video-player/index.js +15 -0
  329. package/vivid.api.json +428 -1
  330. package/focus/index.cjs +0 -7
  331. package/focus/index.js +0 -5
  332. package/lib/focus/definition.d.ts +0 -3
  333. package/lib/focus/focus.d.ts +0 -3
  334. package/lib/focus/focus.template.d.ts +0 -4
  335. package/lib/popup/popup.d.ts +0 -21
  336. package/shared/focus.cjs +0 -8
  337. package/shared/focus.js +0 -6
  338. package/shared/focus2.cjs +0 -11
  339. package/shared/focus2.js +0 -9
  340. package/shared/patterns/focus.d.ts +0 -3
@@ -1,539 +1,33 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, o as observable, h as html, r as registerFactory } from './index.js';
2
- import { a as tabRegistries } from './definition48.js';
3
- import { a as tabPanelRegistries } from './definition47.js';
4
- import { S as StartEnd } from './start-end.js';
5
- import { a as applyMixins } from './apply-mixins.js';
6
- import { h as keyArrowRight, i as keyArrowLeft, f as keyArrowDown, e as keyArrowUp, d as keyEnd, g as keyHome } from './key-codes.js';
7
- import { u as uniqueId } from './strings.js';
8
- import { l as limit } from './numbers.js';
9
- import { r as ref } from './ref.js';
10
- import { s as slotted } from './slotted.js';
11
- import { w as when } from './when.js';
12
- import { c as classNames } from './class-names.js';
1
+ import { F as FoundationElement, h as html, r as registerFactory } from './index.js';
13
2
 
14
3
  /**
15
- * The orientation of the {@link @microsoft/fast-foundation#(Tabs:class)} component
16
- * @public
17
- */
18
- const TabsOrientation = {
19
- vertical: "vertical",
20
- horizontal: "horizontal",
21
- };
22
- /**
23
- * A Tabs Custom HTML Element.
24
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#tablist | ARIA tablist }.
4
+ * A TabPanel Component to be used with {@link @microsoft/fast-foundation#(Tabs:class)}
25
5
  *
26
- * @slot start - Content which can be provided before the tablist element
27
- * @slot end - Content which can be provided after the tablist element
28
- * @slot tab - The slot for tabs
29
- * @slot tabpanel - The slot for tabpanels
30
- * @csspart tablist - The element wrapping for the tabs
31
- * @csspart tab - The tab slot
32
- * @csspart activeIndicator - The visual indicator
33
- * @csspart tabpanel - The tabpanel slot
34
- * @fires change - Fires a custom 'change' event when a tab is clicked or during keyboard navigation
6
+ * @slot - The default slot for the tabpanel content
35
7
  *
36
8
  * @public
37
9
  */
38
- let Tabs$1 = class Tabs extends FoundationElement {
39
- constructor() {
40
- super(...arguments);
41
- /**
42
- * The orientation
43
- * @public
44
- * @remarks
45
- * HTML Attribute: orientation
46
- */
47
- this.orientation = TabsOrientation.horizontal;
48
- /**
49
- * Whether or not to show the active indicator
50
- * @public
51
- * @remarks
52
- * HTML Attribute: activeindicator
53
- */
54
- this.activeindicator = true;
55
- /**
56
- * @internal
57
- */
58
- this.showActiveIndicator = true;
59
- this.prevActiveTabIndex = 0;
60
- this.activeTabIndex = 0;
61
- this.ticking = false;
62
- this.change = () => {
63
- this.$emit("change", this.activetab);
64
- };
65
- this.isDisabledElement = (el) => {
66
- return el.getAttribute("aria-disabled") === "true";
67
- };
68
- this.isHiddenElement = (el) => {
69
- return el.hasAttribute("hidden");
70
- };
71
- this.isFocusableElement = (el) => {
72
- return !this.isDisabledElement(el) && !this.isHiddenElement(el);
73
- };
74
- this.setTabs = () => {
75
- const gridHorizontalProperty = "gridColumn";
76
- const gridVerticalProperty = "gridRow";
77
- const gridProperty = this.isHorizontal()
78
- ? gridHorizontalProperty
79
- : gridVerticalProperty;
80
- this.activeTabIndex = this.getActiveIndex();
81
- this.showActiveIndicator = false;
82
- this.tabs.forEach((tab, index) => {
83
- if (tab.slot === "tab") {
84
- const isActiveTab = this.activeTabIndex === index && this.isFocusableElement(tab);
85
- if (this.activeindicator && this.isFocusableElement(tab)) {
86
- this.showActiveIndicator = true;
87
- }
88
- const tabId = this.tabIds[index];
89
- const tabpanelId = this.tabpanelIds[index];
90
- tab.setAttribute("id", tabId);
91
- tab.setAttribute("aria-selected", isActiveTab ? "true" : "false");
92
- tab.setAttribute("aria-controls", tabpanelId);
93
- tab.addEventListener("click", this.handleTabClick);
94
- tab.addEventListener("keydown", this.handleTabKeyDown);
95
- tab.setAttribute("tabindex", isActiveTab ? "0" : "-1");
96
- if (isActiveTab) {
97
- this.activetab = tab;
98
- this.activeid = tabId;
99
- }
100
- }
101
- // If the original property isn't emptied out,
102
- // the next set will morph into a grid-area style setting that is not what we want
103
- tab.style[gridHorizontalProperty] = "";
104
- tab.style[gridVerticalProperty] = "";
105
- tab.style[gridProperty] = `${index + 1}`;
106
- !this.isHorizontal()
107
- ? tab.classList.add("vertical")
108
- : tab.classList.remove("vertical");
109
- });
110
- };
111
- this.setTabPanels = () => {
112
- this.tabpanels.forEach((tabpanel, index) => {
113
- const tabId = this.tabIds[index];
114
- const tabpanelId = this.tabpanelIds[index];
115
- tabpanel.setAttribute("id", tabpanelId);
116
- tabpanel.setAttribute("aria-labelledby", tabId);
117
- this.activeTabIndex !== index
118
- ? tabpanel.setAttribute("hidden", "")
119
- : tabpanel.removeAttribute("hidden");
120
- });
121
- };
122
- this.handleTabClick = (event) => {
123
- const selectedTab = event.currentTarget;
124
- if (selectedTab.nodeType === 1 && this.isFocusableElement(selectedTab)) {
125
- this.prevActiveTabIndex = this.activeTabIndex;
126
- this.activeTabIndex = this.tabs.indexOf(selectedTab);
127
- this.setComponent();
128
- }
129
- };
130
- this.handleTabKeyDown = (event) => {
131
- if (this.isHorizontal()) {
132
- switch (event.key) {
133
- case keyArrowLeft:
134
- event.preventDefault();
135
- this.adjustBackward(event);
136
- break;
137
- case keyArrowRight:
138
- event.preventDefault();
139
- this.adjustForward(event);
140
- break;
141
- }
142
- }
143
- else {
144
- switch (event.key) {
145
- case keyArrowUp:
146
- event.preventDefault();
147
- this.adjustBackward(event);
148
- break;
149
- case keyArrowDown:
150
- event.preventDefault();
151
- this.adjustForward(event);
152
- break;
153
- }
154
- }
155
- switch (event.key) {
156
- case keyHome:
157
- event.preventDefault();
158
- this.adjust(-this.activeTabIndex);
159
- break;
160
- case keyEnd:
161
- event.preventDefault();
162
- this.adjust(this.tabs.length - this.activeTabIndex - 1);
163
- break;
164
- }
165
- };
166
- this.adjustForward = (e) => {
167
- const group = this.tabs;
168
- let index = 0;
169
- index = this.activetab ? group.indexOf(this.activetab) + 1 : 1;
170
- if (index === group.length) {
171
- index = 0;
172
- }
173
- while (index < group.length && group.length > 1) {
174
- if (this.isFocusableElement(group[index])) {
175
- this.moveToTabByIndex(group, index);
176
- break;
177
- }
178
- else if (this.activetab && index === group.indexOf(this.activetab)) {
179
- break;
180
- }
181
- else if (index + 1 >= group.length) {
182
- index = 0;
183
- }
184
- else {
185
- index += 1;
186
- }
187
- }
188
- };
189
- this.adjustBackward = (e) => {
190
- const group = this.tabs;
191
- let index = 0;
192
- index = this.activetab ? group.indexOf(this.activetab) - 1 : 0;
193
- index = index < 0 ? group.length - 1 : index;
194
- while (index >= 0 && group.length > 1) {
195
- if (this.isFocusableElement(group[index])) {
196
- this.moveToTabByIndex(group, index);
197
- break;
198
- }
199
- else if (index - 1 < 0) {
200
- index = group.length - 1;
201
- }
202
- else {
203
- index -= 1;
204
- }
205
- }
206
- };
207
- this.moveToTabByIndex = (group, index) => {
208
- const tab = group[index];
209
- this.activetab = tab;
210
- this.prevActiveTabIndex = this.activeTabIndex;
211
- this.activeTabIndex = index;
212
- tab.focus();
213
- this.setComponent();
214
- };
215
- }
216
- /**
217
- * @internal
218
- */
219
- orientationChanged() {
220
- if (this.$fastController.isConnected) {
221
- this.setTabs();
222
- this.setTabPanels();
223
- this.handleActiveIndicatorPosition();
224
- }
225
- }
226
- /**
227
- * @internal
228
- */
229
- activeidChanged(oldValue, newValue) {
230
- if (this.$fastController.isConnected &&
231
- this.tabs.length <= this.tabpanels.length) {
232
- this.prevActiveTabIndex = this.tabs.findIndex((item) => item.id === oldValue);
233
- this.setTabs();
234
- this.setTabPanels();
235
- this.handleActiveIndicatorPosition();
236
- }
237
- }
238
- /**
239
- * @internal
240
- */
241
- tabsChanged() {
242
- if (this.$fastController.isConnected &&
243
- this.tabs.length <= this.tabpanels.length) {
244
- this.tabIds = this.getTabIds();
245
- this.tabpanelIds = this.getTabPanelIds();
246
- this.setTabs();
247
- this.setTabPanels();
248
- this.handleActiveIndicatorPosition();
249
- }
250
- }
251
- /**
252
- * @internal
253
- */
254
- tabpanelsChanged() {
255
- if (this.$fastController.isConnected &&
256
- this.tabpanels.length <= this.tabs.length) {
257
- this.tabIds = this.getTabIds();
258
- this.tabpanelIds = this.getTabPanelIds();
259
- this.setTabs();
260
- this.setTabPanels();
261
- this.handleActiveIndicatorPosition();
262
- }
263
- }
264
- getActiveIndex() {
265
- const id = this.activeid;
266
- if (id !== undefined) {
267
- return this.tabIds.indexOf(this.activeid) === -1
268
- ? 0
269
- : this.tabIds.indexOf(this.activeid);
270
- }
271
- else {
272
- return 0;
273
- }
274
- }
275
- getTabIds() {
276
- return this.tabs.map((tab) => {
277
- var _a;
278
- return (_a = tab.getAttribute("id")) !== null && _a !== void 0 ? _a : `tab-${uniqueId()}`;
279
- });
280
- }
281
- getTabPanelIds() {
282
- return this.tabpanels.map((tabPanel) => {
283
- var _a;
284
- return (_a = tabPanel.getAttribute("id")) !== null && _a !== void 0 ? _a : `panel-${uniqueId()}`;
285
- });
286
- }
287
- setComponent() {
288
- if (this.activeTabIndex !== this.prevActiveTabIndex) {
289
- this.activeid = this.tabIds[this.activeTabIndex];
290
- this.focusTab();
291
- this.change();
292
- }
293
- }
294
- isHorizontal() {
295
- return this.orientation === TabsOrientation.horizontal;
296
- }
297
- handleActiveIndicatorPosition() {
298
- // Ignore if we click twice on the same tab
299
- if (this.showActiveIndicator &&
300
- this.activeindicator &&
301
- this.activeTabIndex !== this.prevActiveTabIndex) {
302
- if (this.ticking) {
303
- this.ticking = false;
304
- }
305
- else {
306
- this.ticking = true;
307
- this.animateActiveIndicator();
308
- }
309
- }
310
- }
311
- animateActiveIndicator() {
312
- this.ticking = true;
313
- const gridProperty = this.isHorizontal() ? "gridColumn" : "gridRow";
314
- const translateProperty = this.isHorizontal()
315
- ? "translateX"
316
- : "translateY";
317
- const offsetProperty = this.isHorizontal() ? "offsetLeft" : "offsetTop";
318
- const prev = this.activeIndicatorRef[offsetProperty];
319
- this.activeIndicatorRef.style[gridProperty] = `${this.activeTabIndex + 1}`;
320
- const next = this.activeIndicatorRef[offsetProperty];
321
- this.activeIndicatorRef.style[gridProperty] = `${this.prevActiveTabIndex + 1}`;
322
- const dif = next - prev;
323
- this.activeIndicatorRef.style.transform = `${translateProperty}(${dif}px)`;
324
- this.activeIndicatorRef.classList.add("activeIndicatorTransition");
325
- this.activeIndicatorRef.addEventListener("transitionend", () => {
326
- this.ticking = false;
327
- this.activeIndicatorRef.style[gridProperty] = `${this.activeTabIndex + 1}`;
328
- this.activeIndicatorRef.style.transform = `${translateProperty}(0px)`;
329
- this.activeIndicatorRef.classList.remove("activeIndicatorTransition");
330
- });
331
- }
332
- /**
333
- * The adjust method for FASTTabs
334
- * @public
335
- * @remarks
336
- * This method allows the active index to be adjusted by numerical increments
337
- */
338
- adjust(adjustment) {
339
- const focusableTabs = this.tabs.filter(t => this.isFocusableElement(t));
340
- const currentActiveTabIndex = focusableTabs.indexOf(this.activetab);
341
- const nextTabIndex = limit(0, focusableTabs.length - 1, currentActiveTabIndex + adjustment);
342
- // the index of the next focusable tab within the context of all available tabs
343
- const nextIndex = this.tabs.indexOf(focusableTabs[nextTabIndex]);
344
- if (nextIndex > -1) {
345
- this.moveToTabByIndex(this.tabs, nextIndex);
346
- }
347
- }
348
- focusTab() {
349
- this.tabs[this.activeTabIndex].focus();
350
- }
351
- /**
352
- * @internal
353
- */
354
- connectedCallback() {
355
- super.connectedCallback();
356
- this.tabIds = this.getTabIds();
357
- this.tabpanelIds = this.getTabPanelIds();
358
- this.activeTabIndex = this.getActiveIndex();
359
- }
10
+ let TabPanel$1 = class TabPanel extends FoundationElement {
360
11
  };
361
- __decorate([
362
- attr
363
- ], Tabs$1.prototype, "orientation", void 0);
364
- __decorate([
365
- attr
366
- ], Tabs$1.prototype, "activeid", void 0);
367
- __decorate([
368
- observable
369
- ], Tabs$1.prototype, "tabs", void 0);
370
- __decorate([
371
- observable
372
- ], Tabs$1.prototype, "tabpanels", void 0);
373
- __decorate([
374
- attr({ mode: "boolean" })
375
- ], Tabs$1.prototype, "activeindicator", void 0);
376
- __decorate([
377
- observable
378
- ], Tabs$1.prototype, "activeIndicatorRef", void 0);
379
- __decorate([
380
- observable
381
- ], Tabs$1.prototype, "showActiveIndicator", void 0);
382
- applyMixins(Tabs$1, StartEnd);
383
-
384
- const styles = ":host{display:block}.base{display:grid;box-sizing:border-box}.base{--_appearance-color-text: var(--_connotation-color-primary);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-tabs-cta-primary, var(--vvd-color-cta-500))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-tabs-accent-primary, var(--vvd-color-canvas-text))}.base.orientation-vertical{overflow:hidden;block-size:inherit;grid-template-columns:auto 1fr;grid-template-rows:1fr}.base:not(.orientation-vertical){grid-template-columns:1fr;grid-template-rows:auto 1fr;max-block-size:100%}.tablist{--_tabs-tablist-gutter: 8px;--_tabs-active-indicator-stroke-width: 2px;position:relative;display:grid;box-sizing:border-box;color:var(--_appearance-color-text)}.base.orientation-vertical .tablist{padding:var(--_tabs-tablist-gutter);grid-row:1/2;grid-template-columns:auto 1fr;grid-template-rows:auto;inline-size:100%;place-self:flex-start end;row-gap:var(--_tabs-tablist-gutter)}.base:not(.orientation-vertical) .tablist{justify-content:flex-start;column-gap:var(--_tabs-tablist-gutter);grid-auto-flow:column;grid-template-columns:auto;grid-template-rows:auto auto;inline-size:100%;padding-inline:var(--_tabs-tablist-gutter)}.base:not(.orientation-vertical) .tablist-wrapper{align-self:end;border-bottom:1px solid var(--vvd-color-neutral-300);inline-size:100%;overflow-x:auto;overflow-y:hidden}.base.orientation-vertical .tablist-wrapper{block-size:100%;box-shadow:1px 0 0 0 var(--vvd-color-neutral-300);overflow-x:hidden;overflow-y:auto}.tablist-wrapper::-webkit-scrollbar{display:none}.tabpanel{box-sizing:border-box;block-size:100%;min-block-size:0;min-inline-size:0}.base.scroll .tabpanel{overflow-y:auto}.base.gutters-small .tabpanel{padding:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) - (1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))))}.active-indicator{background:currentColor;margin-inline-start:calc(var(--_tabs-tablist-gutter) * -1)}.base.orientation-vertical .active-indicator{align-self:center;block-size:80%;border-radius:2px;grid-area:1/1/auto/auto;inline-size:var(--_tabs-active-indicator-stroke-width)}.base:not(.orientation-vertical) .active-indicator{position:absolute;z-index:1;block-size:var(--_tabs-active-indicator-stroke-width);grid-column:1/auto;inline-size:calc(var(--_tabs-active-tab-inline-size) - 32px);inset-block-end:0;inset-inline-start:8px;justify-self:center;padding-inline:var(--_tabs-tablist-gutter)}.activeIndicatorTransition{transition:transform .2s ease-out 0s,inline-size .2s ease-out 0s}.base:not(.orientation-vertical) .active-indicator:not(.activeIndicatorTransition){opacity:0}\n";
385
12
 
386
- var __defProp = Object.defineProperty;
387
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
388
- var __decorateClass = (decorators, target, key, kind) => {
389
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
390
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
391
- if (decorator = decorators[i])
392
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
393
- if (kind && result)
394
- __defProp(target, key, result);
395
- return result;
396
- };
397
- const ACTIVE_TAB_WIDTH = "--_tabs-active-tab-inline-size";
398
- class Tabs extends Tabs$1 {
399
- constructor() {
400
- super(...arguments);
401
- this.scrollablePanel = false;
402
- }
403
- connotationChanged() {
404
- this.#updateTabsConnotation();
405
- }
406
- orientationChanged() {
407
- super.orientationChanged();
408
- this.patchIndicatorStyleTransition();
409
- if (!this.activeIndicatorRef)
410
- return;
411
- if (this.orientation === TabsOrientation.vertical) {
412
- this.activeIndicatorRef.style.removeProperty(ACTIVE_TAB_WIDTH);
413
- }
414
- this.#patchActiveID();
415
- }
416
- activeidChanged(oldValue, newValue) {
417
- super.activeidChanged(oldValue, newValue);
418
- this.patchIndicatorStyleTransition();
419
- this.#patchActiveID();
420
- }
421
- tabsChanged() {
422
- super.tabsChanged();
423
- this.patchIndicatorStyleTransition();
424
- this.#patchActiveID();
425
- }
426
- tabpanelsChanged() {
427
- super.tabpanelsChanged();
428
- this.patchIndicatorStyleTransition();
429
- this.#patchActiveID();
430
- }
431
- patchIndicatorStyleTransition() {
432
- if (!this.activetab || !this.activeIndicatorRef)
433
- return;
434
- if (this.orientation === TabsOrientation.vertical || !this.showActiveIndicator)
435
- return;
436
- const width = this.activetab.getBoundingClientRect().width;
437
- this.activeIndicatorRef.style.setProperty(ACTIVE_TAB_WIDTH, `${width}px`);
438
- }
439
- #updateTabsConnotation() {
440
- if (this.tabs) {
441
- this.tabs.forEach((tab) => {
442
- if (tab.getAttribute("aria-selected") === "true") {
443
- tab.setAttribute("connotation", this.connotation);
444
- } else {
445
- tab.removeAttribute("connotation");
446
- }
447
- });
448
- }
449
- }
450
- get #tabListWrapper() {
451
- return this.shadowRoot.querySelector(".tablist-wrapper");
452
- }
453
- #scrollToIndex(index) {
454
- const tab = this.tabs[index];
455
- if (!tab)
456
- return;
457
- let left = 0;
458
- let top = 0;
459
- if (this.orientation === TabsOrientation.vertical) {
460
- if (index === this.tabs.length - 1) {
461
- top = this.#tabListWrapper.scrollHeight;
462
- }
463
- if (index > 0 && index < this.tabs.length - 1) {
464
- top = tab.offsetTop - this.#tabListWrapper.offsetHeight / 2 + tab.offsetHeight / 2;
465
- }
466
- } else {
467
- if (index === this.tabs.length - 1) {
468
- left = this.#tabListWrapper.scrollWidth;
469
- }
470
- if (index > 0 && index < this.tabs.length - 1) {
471
- left = tab.offsetLeft - this.#tabListWrapper.offsetWidth / 2 + tab.offsetWidth / 2;
472
- }
473
- }
474
- this.#tabListWrapper.scrollTo({ top, left, behavior: "smooth" });
475
- }
476
- // adapted FAST fix https://github.com/microsoft/fast/pull/6606
477
- #patchActiveID() {
478
- if (!this.activetab)
479
- return;
480
- const idx = this.tabs.indexOf(this.activetab);
481
- this.activeid = this["tabIds"][idx];
482
- this.#updateTabsConnotation();
483
- this.#scrollToIndex(idx);
484
- }
13
+ class TabPanel extends TabPanel$1 {
485
14
  }
486
- __decorateClass([
487
- observable
488
- ], Tabs.prototype, "tablist", 2);
489
- __decorateClass([
490
- attr
491
- ], Tabs.prototype, "connotation", 2);
492
- __decorateClass([
493
- attr
494
- ], Tabs.prototype, "gutters", 2);
495
- __decorateClass([
496
- attr({ mode: "boolean", attribute: "scrollable-panel" })
497
- ], Tabs.prototype, "scrollablePanel", 2);
498
15
 
499
- const getClasses = ({
500
- connotation,
501
- orientation,
502
- gutters,
503
- scrollablePanel
504
- }) => classNames(
505
- "base",
506
- [`connotation-${connotation}`, Boolean(connotation)],
507
- [`orientation-${orientation}`, Boolean(orientation)],
508
- [`gutters-${gutters}`, Boolean(gutters)],
509
- ["scroll", Boolean(scrollablePanel)]
510
- );
511
- function TabsTemplate() {
16
+ function TabPanelTemplate() {
512
17
  return html`
513
- <template>
514
- <div class="${getClasses}">
515
- <div class="tablist-wrapper">
516
- <div class="tablist" role="tablist" ${ref("tablist")}>
517
- <slot name="tab" ${slotted("tabs")}></slot>
518
- ${when((x) => x.showActiveIndicator, html`
519
- <div ${ref("activeIndicatorRef")} class="active-indicator"></div>
520
- `)}
521
- </div>
522
- </div>
523
- <div class="tabpanel">
524
- <slot name="tabpanel" ${slotted("tabpanels")}></slot>
525
- </div>
526
- </div>
18
+ <template slot="tabpanel" role="tabpanel">
19
+ <slot></slot>
527
20
  </template>
528
21
  `;
529
22
  }
530
23
 
531
- const tabsDefinition = Tabs.compose({
532
- baseName: "tabs",
533
- template: TabsTemplate,
534
- styles
535
- });
536
- const tabsRegistries = [tabsDefinition(), ...tabRegistries, ...tabPanelRegistries];
537
- const registerTabs = registerFactory(tabsRegistries);
24
+ const tabPanelDefinition = TabPanel.compose(
25
+ {
26
+ baseName: "tab-panel",
27
+ template: TabPanelTemplate
28
+ }
29
+ );
30
+ const tabPanelRegistries = [tabPanelDefinition()];
31
+ const registerTabPanel = registerFactory(tabPanelRegistries);
538
32
 
539
- export { tabsRegistries as a, registerTabs as r, tabsDefinition as t };
33
+ export { tabPanelRegistries as a, registerTabPanel as r, tabPanelDefinition as t };
@@ -2,7 +2,7 @@
2
2
 
3
3
  const index = require('./index.cjs');
4
4
  const definition = require('./definition11.cjs');
5
- const definition$1 = require('./definition44.cjs');
5
+ const definition$1 = require('./definition46.cjs');
6
6
  require('./affix.cjs');
7
7
  require('./index2.cjs');
8
8
  const localized = require('./localized.cjs');
@@ -141,9 +141,7 @@ __decorateClass([
141
141
  ], AudioPlayer.prototype, "duration", 2);
142
142
  applyMixins.applyMixins(AudioPlayer, localized.Localized);
143
143
 
144
- const getClasses = ({ disabled, duration }) => classNames.classNames(
145
- ["disabled", Boolean(disabled) || !Boolean(duration)]
146
- );
144
+ const getClasses = ({ disabled, duration }) => classNames.classNames(["disabled", Boolean(disabled) || !Boolean(duration)]);
147
145
  function renderButton(context) {
148
146
  const buttonTag = context.tagFor(definition.Button);
149
147
  return index.html`<${buttonTag} class="pause" @click="${(x) => x._togglePlay()}"
@@ -165,24 +163,25 @@ function renderSlider(context) {
165
163
  </${sliderTag}>`;
166
164
  }
167
165
  function renderTimestamp() {
168
- return index.html`
169
- <div class="time-stamp" ${ref.ref("_timeStampEl")}>
166
+ return index.html` <div class="time-stamp" ${ref.ref("_timeStampEl")}>
170
167
  <span class="current-time">0:00</span>
171
168
  <span>/</span>
172
169
  <span class="total-time">0:00</span>
173
170
  </div>`;
174
171
  }
175
172
  const AudioPlayerTemplate = (context) => {
176
- return index.html`
177
- <div class="base ${getClasses}">
178
- <div class="controls">
179
- ${renderButton(context)}
180
- ${when.when((x) => !x.notime, renderTimestamp())}
181
- ${renderSlider(context)}
182
- </div>
183
- <audio ${ref.ref("_playerEl")} src="${(x) => x.src}"
184
- @timeupdate="${(x) => x._updateProgress()}" @loadedmetadata="${(x) => x._updateTotalTime()}"></audio>
185
- </div>`;
173
+ return index.html` <div class="base ${getClasses}">
174
+ <div class="controls">
175
+ ${renderButton(context)} ${when.when((x) => !x.notime, renderTimestamp())}
176
+ ${renderSlider(context)}
177
+ </div>
178
+ <audio
179
+ ${ref.ref("_playerEl")}
180
+ src="${(x) => x.src}"
181
+ @timeupdate="${(x) => x._updateProgress()}"
182
+ @loadedmetadata="${(x) => x._updateTotalTime()}"
183
+ ></audio>
184
+ </div>`;
186
185
  };
187
186
 
188
187
  const audioPlayerDefinition = AudioPlayer.compose({
@@ -190,7 +189,11 @@ const audioPlayerDefinition = AudioPlayer.compose({
190
189
  template: AudioPlayerTemplate,
191
190
  styles
192
191
  });
193
- const audioPlayerRegistries = [audioPlayerDefinition(), ...definition.buttonRegistries, ...definition$1.sliderRegistries];
192
+ const audioPlayerRegistries = [
193
+ audioPlayerDefinition(),
194
+ ...definition.buttonRegistries,
195
+ ...definition$1.sliderRegistries
196
+ ];
194
197
  const registerAudioPlayer = index.registerFactory(audioPlayerRegistries);
195
198
 
196
199
  exports.audioPlayerDefinition = audioPlayerDefinition;