@fabric-msft/fabric-web 7.0.0 → 7.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/dts/components/card/card.d.ts +0 -5
  2. package/dts/components/card/card.d.ts.map +1 -1
  3. package/dts/components/carousel/carousel.d.ts +6 -42
  4. package/dts/components/carousel/carousel.d.ts.map +1 -1
  5. package/dts/components/carousel/carousel.styles.d.ts.map +1 -1
  6. package/dts/components/carousel/carousel.template.d.ts.map +1 -1
  7. package/dts/components/carousel/define.d.ts.map +1 -1
  8. package/dts/components/carousel-nav/carousel-nav.d.ts +10 -0
  9. package/dts/components/carousel-nav/carousel-nav.d.ts.map +1 -1
  10. package/dts/components/carousel-nav/carousel-nav.template.d.ts.map +1 -1
  11. package/dts/components/carousel-viewport/carousel-viewport.d.ts +34 -0
  12. package/dts/components/carousel-viewport/carousel-viewport.d.ts.map +1 -0
  13. package/dts/components/carousel-viewport/carousel-viewport.definition.d.ts +9 -0
  14. package/dts/components/carousel-viewport/carousel-viewport.definition.d.ts.map +1 -0
  15. package/dts/components/carousel-viewport/carousel-viewport.styles.d.ts +7 -0
  16. package/dts/components/carousel-viewport/carousel-viewport.styles.d.ts.map +1 -0
  17. package/dts/components/carousel-viewport/carousel-viewport.template.d.ts +9 -0
  18. package/dts/components/carousel-viewport/carousel-viewport.template.d.ts.map +1 -0
  19. package/dts/components/carousel-viewport/define.d.ts +2 -0
  20. package/dts/components/carousel-viewport/define.d.ts.map +1 -0
  21. package/dts/components/carousel-viewport/index.d.ts +5 -0
  22. package/dts/components/carousel-viewport/index.d.ts.map +1 -0
  23. package/dts/components/dynamic-tab/define.d.ts +2 -0
  24. package/dts/components/dynamic-tab/define.d.ts.map +1 -0
  25. package/dts/components/dynamic-tab/dynamic-tab.d.ts +142 -0
  26. package/dts/components/dynamic-tab/dynamic-tab.d.ts.map +1 -0
  27. package/dts/components/dynamic-tab/dynamic-tab.definition.d.ts +10 -0
  28. package/dts/components/dynamic-tab/dynamic-tab.definition.d.ts.map +1 -0
  29. package/dts/components/dynamic-tab/dynamic-tab.options.d.ts +10 -0
  30. package/dts/components/dynamic-tab/dynamic-tab.options.d.ts.map +1 -0
  31. package/dts/components/dynamic-tab/dynamic-tab.styles.d.ts +6 -0
  32. package/dts/components/dynamic-tab/dynamic-tab.styles.d.ts.map +1 -0
  33. package/dts/components/dynamic-tab/dynamic-tab.template.d.ts +13 -0
  34. package/dts/components/dynamic-tab/dynamic-tab.template.d.ts.map +1 -0
  35. package/dts/components/dynamic-tab/index.d.ts +6 -0
  36. package/dts/components/dynamic-tab/index.d.ts.map +1 -0
  37. package/dts/components/dynamic-tab-list/define.d.ts +2 -0
  38. package/dts/components/dynamic-tab-list/define.d.ts.map +1 -0
  39. package/dts/components/dynamic-tab-list/dynamic-tab-list.d.ts +360 -0
  40. package/dts/components/dynamic-tab-list/dynamic-tab-list.d.ts.map +1 -0
  41. package/dts/components/dynamic-tab-list/dynamic-tab-list.definition.d.ts +7 -0
  42. package/dts/components/dynamic-tab-list/dynamic-tab-list.definition.d.ts.map +1 -0
  43. package/dts/components/dynamic-tab-list/dynamic-tab-list.options.d.ts +24 -0
  44. package/dts/components/dynamic-tab-list/dynamic-tab-list.options.d.ts.map +1 -0
  45. package/dts/components/dynamic-tab-list/dynamic-tab-list.styles.d.ts +6 -0
  46. package/dts/components/dynamic-tab-list/dynamic-tab-list.styles.d.ts.map +1 -0
  47. package/dts/components/dynamic-tab-list/dynamic-tab-list.template.d.ts +13 -0
  48. package/dts/components/dynamic-tab-list/dynamic-tab-list.template.d.ts.map +1 -0
  49. package/dts/components/dynamic-tab-list/index.d.ts +7 -0
  50. package/dts/components/dynamic-tab-list/index.d.ts.map +1 -0
  51. package/dts/components/empty-state/define.d.ts +2 -0
  52. package/dts/components/empty-state/define.d.ts.map +1 -0
  53. package/dts/components/empty-state/empty-state.d.ts +32 -0
  54. package/dts/components/empty-state/empty-state.d.ts.map +1 -0
  55. package/dts/components/empty-state/empty-state.definition.d.ts +10 -0
  56. package/dts/components/empty-state/empty-state.definition.d.ts.map +1 -0
  57. package/dts/components/empty-state/empty-state.styles.d.ts +6 -0
  58. package/dts/components/empty-state/empty-state.styles.d.ts.map +1 -0
  59. package/dts/components/empty-state/empty-state.template.d.ts +9 -0
  60. package/dts/components/empty-state/empty-state.template.d.ts.map +1 -0
  61. package/dts/components/empty-state/index.d.ts +5 -0
  62. package/dts/components/empty-state/index.d.ts.map +1 -0
  63. package/dts/components/field/field.d.ts +44 -3
  64. package/dts/components/field/field.d.ts.map +1 -1
  65. package/dts/components/menu/index.d.ts +2 -2
  66. package/dts/components/menu/index.d.ts.map +1 -1
  67. package/dts/components/menu/menu.d.ts +17 -1
  68. package/dts/components/menu/menu.d.ts.map +1 -1
  69. package/dts/components/menu/menu.options.d.ts +15 -0
  70. package/dts/components/menu/menu.options.d.ts.map +1 -1
  71. package/dts/components/menu/menu.positioning.d.ts +8 -2
  72. package/dts/components/menu/menu.positioning.d.ts.map +1 -1
  73. package/dts/components/menu/menu.styles.d.ts.map +1 -1
  74. package/dts/components/menu-button/menu-button.d.ts +2 -2
  75. package/dts/components/menu-button/menu-button.definition.d.ts.map +1 -1
  76. package/dts/components/menu-button/menu-button.styles.d.ts +11 -0
  77. package/dts/components/menu-button/menu-button.styles.d.ts.map +1 -0
  78. package/dts/components/menu-item/menu-item.styles.d.ts.map +1 -1
  79. package/dts/components/menu-list/menu-list.styles.d.ts.map +1 -1
  80. package/dts/components/modal/define.d.ts +4 -0
  81. package/dts/components/modal/define.d.ts.map +1 -0
  82. package/dts/components/modal/index.d.ts +9 -0
  83. package/dts/components/modal/index.d.ts.map +1 -0
  84. package/dts/components/modal/modal.d.ts +209 -0
  85. package/dts/components/modal/modal.d.ts.map +1 -0
  86. package/dts/components/modal/modal.definition.d.ts +9 -0
  87. package/dts/components/modal/modal.definition.d.ts.map +1 -0
  88. package/dts/components/modal/modal.events.d.ts +26 -0
  89. package/dts/components/modal/modal.events.d.ts.map +1 -0
  90. package/dts/components/modal/modal.options.d.ts +15 -0
  91. package/dts/components/modal/modal.options.d.ts.map +1 -0
  92. package/dts/components/modal/modal.styles.d.ts +10 -0
  93. package/dts/components/modal/modal.styles.d.ts.map +1 -0
  94. package/dts/components/modal/modal.template.d.ts +12 -0
  95. package/dts/components/modal/modal.template.d.ts.map +1 -0
  96. package/dts/components/modal-fre-item/define.d.ts +2 -0
  97. package/dts/components/modal-fre-item/define.d.ts.map +1 -0
  98. package/dts/components/modal-fre-item/index.d.ts +3 -0
  99. package/dts/components/modal-fre-item/index.d.ts.map +1 -0
  100. package/dts/components/modal-fre-item/modal-fre-item.d.ts +65 -0
  101. package/dts/components/modal-fre-item/modal-fre-item.d.ts.map +1 -0
  102. package/dts/components/modal-fre-item/modal-fre-item.definition.d.ts +10 -0
  103. package/dts/components/modal-fre-item/modal-fre-item.definition.d.ts.map +1 -0
  104. package/dts/components/modal-fre-item/modal-fre-item.styles.d.ts +7 -0
  105. package/dts/components/modal-fre-item/modal-fre-item.styles.d.ts.map +1 -0
  106. package/dts/components/modal-fre-item/modal-fre-item.template.d.ts +11 -0
  107. package/dts/components/modal-fre-item/modal-fre-item.template.d.ts.map +1 -0
  108. package/dts/components/radio-group/radio-group.d.ts +15 -0
  109. package/dts/components/radio-group/radio-group.d.ts.map +1 -1
  110. package/dts/components/slider/slider.d.ts +2 -0
  111. package/dts/components/slider/slider.d.ts.map +1 -1
  112. package/dts/components/slider/slider.definition.d.ts.map +1 -1
  113. package/dts/components/slider/slider.styles.d.ts +10 -0
  114. package/dts/components/slider/slider.styles.d.ts.map +1 -0
  115. package/dts/components/slider/slider.template.d.ts +4 -0
  116. package/dts/components/slider/slider.template.d.ts.map +1 -0
  117. package/dts/components/styles/patterns/patterns.d.ts +8 -0
  118. package/dts/components/styles/patterns/patterns.d.ts.map +1 -0
  119. package/dts/index.d.ts +7 -0
  120. package/dts/index.d.ts.map +1 -1
  121. package/dts/util/a11y-playwright-utils.d.ts +7 -0
  122. package/dts/util/a11y-playwright-utils.d.ts.map +1 -0
  123. package/dts/util/carousel-controller.d.ts +120 -0
  124. package/dts/util/carousel-controller.d.ts.map +1 -0
  125. package/dts/util/icons.d.ts +15 -0
  126. package/dts/util/icons.d.ts.map +1 -1
  127. package/dts/util/index.d.ts +1 -0
  128. package/dts/util/index.d.ts.map +1 -1
  129. package/esm/components/accordion-menu-panel/accordion-menu-panel.styles.js +1 -1
  130. package/esm/components/card/card.js +0 -5
  131. package/esm/components/card/card.js.map +1 -1
  132. package/esm/components/card-header/card-header.styles.js +2 -2
  133. package/esm/components/card-header/card-header.styles.js.map +1 -1
  134. package/esm/components/carousel/carousel.js +30 -98
  135. package/esm/components/carousel/carousel.js.map +1 -1
  136. package/esm/components/carousel/carousel.styles.js +2 -2
  137. package/esm/components/carousel/carousel.styles.js.map +1 -1
  138. package/esm/components/carousel/carousel.template.js +3 -3
  139. package/esm/components/carousel/carousel.template.js.map +1 -1
  140. package/esm/components/carousel/define.js +5 -3
  141. package/esm/components/carousel/define.js.map +1 -1
  142. package/esm/components/carousel-item/carousel-item.template.js +1 -1
  143. package/esm/components/carousel-item/carousel-item.template.js.map +1 -1
  144. package/esm/components/carousel-nav/carousel-nav.js +12 -0
  145. package/esm/components/carousel-nav/carousel-nav.js.map +1 -1
  146. package/esm/components/carousel-nav/carousel-nav.styles.js +1 -0
  147. package/esm/components/carousel-nav/carousel-nav.template.js +4 -3
  148. package/esm/components/carousel-nav/carousel-nav.template.js.map +1 -1
  149. package/esm/components/carousel-nav-item/carousel-nav-item.styles.js +1 -0
  150. package/esm/components/carousel-viewport/carousel-viewport.definition.js +21 -0
  151. package/esm/components/carousel-viewport/carousel-viewport.definition.js.map +1 -0
  152. package/esm/components/carousel-viewport/carousel-viewport.js +37 -0
  153. package/esm/components/carousel-viewport/carousel-viewport.js.map +1 -0
  154. package/esm/components/carousel-viewport/carousel-viewport.styles.js +11 -0
  155. package/esm/components/carousel-viewport/carousel-viewport.styles.js.map +1 -0
  156. package/esm/components/carousel-viewport/carousel-viewport.template.js +15 -0
  157. package/esm/components/carousel-viewport/carousel-viewport.template.js.map +1 -0
  158. package/esm/components/carousel-viewport/define.js +4 -0
  159. package/esm/components/carousel-viewport/define.js.map +1 -0
  160. package/esm/components/carousel-viewport/index.js +5 -0
  161. package/esm/components/carousel-viewport/index.js.map +1 -0
  162. package/esm/components/dynamic-tab/define.js +4 -0
  163. package/esm/components/dynamic-tab/define.js.map +1 -0
  164. package/esm/components/dynamic-tab/dynamic-tab.definition.js +27 -0
  165. package/esm/components/dynamic-tab/dynamic-tab.definition.js.map +1 -0
  166. package/esm/components/dynamic-tab/dynamic-tab.js +232 -0
  167. package/esm/components/dynamic-tab/dynamic-tab.js.map +1 -0
  168. package/esm/components/dynamic-tab/dynamic-tab.options.js +11 -0
  169. package/esm/components/dynamic-tab/dynamic-tab.options.js.map +1 -0
  170. package/esm/components/dynamic-tab/dynamic-tab.styles.js +13 -0
  171. package/esm/components/dynamic-tab/dynamic-tab.styles.js.map +1 -0
  172. package/esm/components/dynamic-tab/dynamic-tab.template.js +18 -0
  173. package/esm/components/dynamic-tab/dynamic-tab.template.js.map +1 -0
  174. package/esm/components/dynamic-tab/index.js +6 -0
  175. package/esm/components/dynamic-tab/index.js.map +1 -0
  176. package/esm/components/dynamic-tab-list/define.js +12 -0
  177. package/esm/components/dynamic-tab-list/define.js.map +1 -0
  178. package/esm/components/dynamic-tab-list/dynamic-tab-list.definition.js +19 -0
  179. package/esm/components/dynamic-tab-list/dynamic-tab-list.definition.js.map +1 -0
  180. package/esm/components/dynamic-tab-list/dynamic-tab-list.js +788 -0
  181. package/esm/components/dynamic-tab-list/dynamic-tab-list.js.map +1 -0
  182. package/esm/components/dynamic-tab-list/dynamic-tab-list.options.js +19 -0
  183. package/esm/components/dynamic-tab-list/dynamic-tab-list.options.js.map +1 -0
  184. package/esm/components/dynamic-tab-list/dynamic-tab-list.styles.js +11 -0
  185. package/esm/components/dynamic-tab-list/dynamic-tab-list.styles.js.map +1 -0
  186. package/esm/components/dynamic-tab-list/dynamic-tab-list.template.js +41 -0
  187. package/esm/components/dynamic-tab-list/dynamic-tab-list.template.js.map +1 -0
  188. package/esm/components/dynamic-tab-list/index.js +6 -0
  189. package/esm/components/dynamic-tab-list/index.js.map +1 -0
  190. package/esm/components/empty-state/define.js +4 -0
  191. package/esm/components/empty-state/define.js.map +1 -0
  192. package/esm/components/empty-state/empty-state.definition.js +22 -0
  193. package/esm/components/empty-state/empty-state.definition.js.map +1 -0
  194. package/esm/components/empty-state/empty-state.js +33 -0
  195. package/esm/components/empty-state/empty-state.js.map +1 -0
  196. package/esm/components/empty-state/empty-state.styles.js +11 -0
  197. package/esm/components/empty-state/empty-state.styles.js.map +1 -0
  198. package/esm/components/empty-state/empty-state.template.js +12 -0
  199. package/esm/components/empty-state/empty-state.template.js.map +1 -0
  200. package/esm/components/empty-state/index.js +5 -0
  201. package/esm/components/empty-state/index.js.map +1 -0
  202. package/esm/components/field/field.js +91 -5
  203. package/esm/components/field/field.js.map +1 -1
  204. package/esm/components/filter-pill/filter-pill.styles.js +1 -0
  205. package/esm/components/menu/index.js +1 -1
  206. package/esm/components/menu/index.js.map +1 -1
  207. package/esm/components/menu/menu.js +30 -2
  208. package/esm/components/menu/menu.js.map +1 -1
  209. package/esm/components/menu/menu.options.js +11 -1
  210. package/esm/components/menu/menu.options.js.map +1 -1
  211. package/esm/components/menu/menu.positioning.js +32 -30
  212. package/esm/components/menu/menu.positioning.js.map +1 -1
  213. package/esm/components/menu/menu.styles.js +2 -1
  214. package/esm/components/menu/menu.styles.js.map +1 -1
  215. package/esm/components/menu-button/menu-button.definition.js +5 -2
  216. package/esm/components/menu-button/menu-button.definition.js.map +1 -1
  217. package/esm/components/menu-button/menu-button.js +2 -2
  218. package/esm/components/menu-button/menu-button.styles.js +18 -0
  219. package/esm/components/menu-button/menu-button.styles.js.map +1 -0
  220. package/esm/components/menu-item/menu-item.styles.js +1 -1
  221. package/esm/components/menu-item/menu-item.styles.js.map +1 -1
  222. package/esm/components/menu-list/menu-list.styles.js +2 -2
  223. package/esm/components/menu-list/menu-list.styles.js.map +1 -1
  224. package/esm/components/modal/define.js +9 -0
  225. package/esm/components/modal/define.js.map +1 -0
  226. package/esm/components/modal/index.js +7 -0
  227. package/esm/components/modal/index.js.map +1 -0
  228. package/esm/components/modal/modal.definition.js +29 -0
  229. package/esm/components/modal/modal.definition.js.map +1 -0
  230. package/esm/components/modal/modal.events.js +11 -0
  231. package/esm/components/modal/modal.events.js.map +1 -0
  232. package/esm/components/modal/modal.js +369 -0
  233. package/esm/components/modal/modal.js.map +1 -0
  234. package/esm/components/modal/modal.options.js +10 -0
  235. package/esm/components/modal/modal.options.js.map +1 -0
  236. package/esm/components/modal/modal.styles.js +14 -0
  237. package/esm/components/modal/modal.styles.js.map +1 -0
  238. package/esm/components/modal/modal.template.js +23 -0
  239. package/esm/components/modal/modal.template.js.map +1 -0
  240. package/esm/components/modal-fre-item/define.js +4 -0
  241. package/esm/components/modal-fre-item/define.js.map +1 -0
  242. package/esm/components/modal-fre-item/index.js +3 -0
  243. package/esm/components/modal-fre-item/index.js.map +1 -0
  244. package/esm/components/modal-fre-item/modal-fre-item.definition.js +27 -0
  245. package/esm/components/modal-fre-item/modal-fre-item.definition.js.map +1 -0
  246. package/esm/components/modal-fre-item/modal-fre-item.js +72 -0
  247. package/esm/components/modal-fre-item/modal-fre-item.js.map +1 -0
  248. package/esm/components/modal-fre-item/modal-fre-item.styles.js +11 -0
  249. package/esm/components/modal-fre-item/modal-fre-item.styles.js.map +1 -0
  250. package/esm/components/modal-fre-item/modal-fre-item.template.js +16 -0
  251. package/esm/components/modal-fre-item/modal-fre-item.template.js.map +1 -0
  252. package/esm/components/radio-group/radio-group.js +20 -1
  253. package/esm/components/radio-group/radio-group.js.map +1 -1
  254. package/esm/components/simple-table/simple-table.styles.js +1 -0
  255. package/esm/components/slider/slider.definition.js +4 -3
  256. package/esm/components/slider/slider.definition.js.map +1 -1
  257. package/esm/components/slider/slider.js +2 -0
  258. package/esm/components/slider/slider.js.map +1 -1
  259. package/esm/components/slider/slider.styles.js +24 -0
  260. package/esm/components/slider/slider.styles.js.map +1 -0
  261. package/esm/components/slider/slider.template.js +17 -0
  262. package/esm/components/slider/slider.template.js.map +1 -0
  263. package/esm/components/styles/patterns/patterns.js +11 -0
  264. package/esm/components/styles/patterns/patterns.js.map +1 -0
  265. package/esm/index.js +25 -0
  266. package/esm/index.js.map +1 -1
  267. package/esm/util/a11y-playwright-utils.js +11 -0
  268. package/esm/util/a11y-playwright-utils.js.map +1 -0
  269. package/esm/util/carousel-controller.js +153 -0
  270. package/esm/util/carousel-controller.js.map +1 -0
  271. package/esm/util/icons.js +16 -1
  272. package/esm/util/icons.js.map +1 -1
  273. package/esm/util/index.js +1 -0
  274. package/esm/util/index.js.map +1 -1
  275. package/index.d.ts +2125 -957
  276. package/index.d.ts.map +1 -1
  277. package/index.js +6812 -4700
  278. package/index.js.map +1 -1
  279. package/index.min.js +108 -88
  280. package/index.min.js.map +1 -1
  281. package/package.json +2 -2
@@ -1,15 +1,8 @@
1
1
  import { attr, observable, FASTElement } from '@microsoft/fast-element';
2
2
  import { CarouselNavPositions } from './carousel.options.js';
3
3
  import { CarouselEventNames } from './carousel.events.js';
4
- import '../carousel-nav/carousel-nav.js';
4
+ import { CarouselController } from '../../util/carousel-controller.js';
5
5
  import { CarouselNavButtonPlacements } from '../carousel-nav/carousel-nav.options.js';
6
- import { definition } from '../carousel-nav/carousel-nav.definition.js';
7
- import '../carousel-nav/carousel-nav.styles.js';
8
- import '../carousel-nav/carousel-nav.template.js';
9
- import '../carousel-nav-item/carousel-nav-item.js';
10
- import { definition as definition$1 } from '../carousel-nav-item/carousel-nav-item.definition.js';
11
- import '../carousel-nav-item/carousel-nav-item.styles.js';
12
- import '../carousel-nav-item/carousel-nav-item.template.js';
13
6
 
14
7
  var __decorate = globalThis && globalThis.__decorate || function (decorators, target, key, desc) {
15
8
  var c = arguments.length,
@@ -55,11 +48,10 @@ class Carousel extends FASTElement {
55
48
  constructor() {
56
49
  super(...arguments);
57
50
  /**
58
- * Unique ID for this carousel instance.
59
- * Used to generate unique IDs for tabs and panels.
51
+ * Internal carousel controller that manages state and navigation.
60
52
  * @internal
61
53
  */
62
- this.carouselId = `carousel-${Carousel.idCounter++}`;
54
+ this.controller = new CarouselController();
63
55
  /**
64
56
  * Nav position relative to content.
65
57
  * @public
@@ -70,11 +62,6 @@ class Carousel extends FASTElement {
70
62
  * @public
71
63
  */
72
64
  this.navButtonPlacement = CarouselNavButtonPlacements.grouped;
73
- /**
74
- * Index of the currently visible item.
75
- * @public
76
- */
77
- this.currentIndex = 0;
78
65
  /**
79
66
  * Slotted carousel items.
80
67
  * @internal
@@ -82,48 +69,42 @@ class Carousel extends FASTElement {
82
69
  this.slottedItems = [];
83
70
  }
84
71
  /**
85
- * Total number of carousel items.
72
+ * Index of the currently visible item.
86
73
  * @public
87
- * @readonly
88
- */
89
- get totalItems() {
90
- return this.slottedItems.length;
91
- }
92
- /**
93
- * Callback when generatedNav changes.
94
- * @internal
95
74
  */
96
- generatedNavChanged(_oldValue, newValue) {
97
- var _a;
98
- (_a = this.eventListenerAbortController) === null || _a === void 0 ? void 0 : _a.abort();
99
- if (newValue) {
100
- this.setupNavListeners(newValue);
75
+ get currentIndex() {
76
+ return this.controller.currentIndex;
77
+ }
78
+ set currentIndex(value) {
79
+ const previousIndex = this.controller.currentIndex;
80
+ if (value !== previousIndex) {
81
+ this.controller.currentIndex = value;
82
+ this.emitChange(value, previousIndex);
101
83
  }
102
84
  }
103
85
  /**
104
- * Callback when currentIndex changes.
105
- * @internal
86
+ * Total number of carousel items.
87
+ * @public
88
+ * @readonly
106
89
  */
107
- currentIndexChanged(oldValue, newValue) {
108
- this.updateActiveStates();
109
- if (oldValue !== undefined) {
110
- this.emitChange(newValue, oldValue);
111
- }
90
+ get totalItems() {
91
+ return this.controller.totalItems;
112
92
  }
113
93
  /**
114
94
  * Callback when slotted items change.
115
95
  * @internal
116
96
  */
117
97
  slottedItemsChanged() {
118
- this.updateActiveStates();
98
+ this.controller.items = this.slottedItems;
99
+ this.controller.updateActiveStates();
119
100
  }
120
101
  /**
121
102
  * Advances carousel to the next item.
122
103
  * @public
123
104
  */
124
105
  next() {
125
- if (this.currentIndex < this.totalItems - 1) {
126
- this.currentIndex++;
106
+ if (this.controller.currentIndex < this.totalItems - 1) {
107
+ this.currentIndex = this.controller.currentIndex + 1;
127
108
  }
128
109
  }
129
110
  /**
@@ -131,8 +112,8 @@ class Carousel extends FASTElement {
131
112
  * @public
132
113
  */
133
114
  prev() {
134
- if (this.currentIndex > 0) {
135
- this.currentIndex--;
115
+ if (this.controller.currentIndex > 0) {
116
+ this.currentIndex = this.controller.currentIndex - 1;
136
117
  }
137
118
  }
138
119
  /**
@@ -144,34 +125,19 @@ class Carousel extends FASTElement {
144
125
  this.currentIndex = index;
145
126
  }
146
127
  }
147
- /**
148
- * Updates active states on carousel items.
149
- * @internal
150
- */
151
- updateActiveStates() {
152
- var _a, _b;
153
- if ((_a = this.slottedItems) === null || _a === void 0 ? void 0 : _a.length) {
154
- this.currentIndex = Math.min(this.currentIndex, this.slottedItems.length - 1);
155
- }
156
- (_b = this.slottedItems) === null || _b === void 0 ? void 0 : _b.forEach((item, index) => {
157
- item.active = index === this.currentIndex;
158
- item.panelId = `${this.carouselId}-panel-${index}`;
159
- item.tabId = `${this.carouselId}-tab-${index}`;
160
- });
161
- }
162
128
  /**
163
129
  * Gets the tab ID for a given index.
164
130
  * @internal
165
131
  */
166
132
  getTabId(index) {
167
- return `${this.carouselId}-tab-${index}`;
133
+ return this.controller.getTabId(index);
168
134
  }
169
135
  /**
170
136
  * Gets the panel ID for a given index.
171
137
  * @internal
172
138
  */
173
139
  getPanelId(index) {
174
- return `${this.carouselId}-panel-${index}`;
140
+ return this.controller.getPanelId(index);
175
141
  }
176
142
  /**
177
143
  * Gets the tab label for a given index.
@@ -179,28 +145,12 @@ class Carousel extends FASTElement {
179
145
  * @internal
180
146
  */
181
147
  getTabLabel(index) {
182
- var _a, _b;
183
- const item = (_a = this.slottedItems) === null || _a === void 0 ? void 0 : _a[index];
184
- return (_b = item === null || item === void 0 ? void 0 : item.label) !== null && _b !== void 0 ? _b : `Slide ${index + 1}`;
148
+ return this.controller.getTabLabel(index);
185
149
  }
186
- /**
187
- * Sets up event listeners on nav element.
188
- * @internal
189
- */
190
- setupNavListeners(nav) {
191
- this.eventListenerAbortController = new AbortController();
192
- const {
193
- signal
194
- } = this.eventListenerAbortController;
195
- nav.addEventListener("select", e => this.scrollToIndex(e.detail.index), {
196
- signal
197
- });
198
- nav.addEventListener("previous", () => this.prev(), {
199
- signal
200
- });
201
- nav.addEventListener("next", () => this.next(), {
202
- signal
203
- });
150
+ connectedCallback() {
151
+ super.connectedCallback();
152
+ this.controller.items = this.slottedItems;
153
+ this.controller.updateActiveStates();
204
154
  }
205
155
  /**
206
156
  * Emits change event.
@@ -216,31 +166,13 @@ class Carousel extends FASTElement {
216
166
  composed: true
217
167
  }));
218
168
  }
219
- connectedCallback() {
220
- super.connectedCallback();
221
- definition.define(customElements);
222
- definition$1.define(customElements);
223
- this.updateActiveStates();
224
- }
225
- disconnectedCallback() {
226
- var _a;
227
- super.disconnectedCallback();
228
- (_a = this.eventListenerAbortController) === null || _a === void 0 ? void 0 : _a.abort();
229
- }
230
169
  }
231
- /**
232
- * Counter for generating unique carousel IDs.
233
- * @internal
234
- */
235
- Carousel.idCounter = 0;
236
170
  __decorate([attr({
237
171
  attribute: "nav-position"
238
172
  })], Carousel.prototype, "navPosition", void 0);
239
173
  __decorate([attr({
240
174
  attribute: "nav-button-placement"
241
175
  })], Carousel.prototype, "navButtonPlacement", void 0);
242
- __decorate([observable], Carousel.prototype, "currentIndex", void 0);
243
176
  __decorate([observable], Carousel.prototype, "slottedItems", void 0);
244
- __decorate([observable], Carousel.prototype, "generatedNav", void 0);
245
177
 
246
178
  export { Carousel };
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../../src/components/carousel/carousel.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAG5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,QAAS,SAAQ,WAAW;IAAzC;;QAOE;;;;WAIG;QACM,eAAU,GAAG,YAAY,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;QAEzD;;;WAGG;QAEH,gBAAW,GAAwB,oBAAoB,CAAC,cAAc,CAAC;QAEvE;;;WAGG;QAEH,uBAAkB,GAChB,2BAA2B,CAAC,OAAO,CAAC;QAEtC;;;WAGG;QAEH,iBAAY,GAAW,CAAC,CAAC;QAEzB;;;WAGG;QAEH,iBAAY,GAAmB,EAAE,CAAC;IA8KpC,CAAC;IA/JC;;;;OAIG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,mBAAmB,CACjB,SAAkC,EAClC,QAAiC;;QAEjC,MAAA,IAAI,CAAC,4BAA4B,0CAAE,KAAK,EAAE,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,QAAgB,EAAE,QAAgB;QACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,KAAa;QACzB,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB;;QACxB,IAAI,MAAA,IAAI,CAAC,YAAY,0CAAE,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAC1B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAC;QACJ,CAAC;QACD,MAAA,IAAI,CAAC,YAAY,0CAAE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,UAAU,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,UAAU,QAAQ,KAAK,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAa;QACpB,OAAO,GAAG,IAAI,CAAC,UAAU,QAAQ,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,KAAa;QACtB,OAAO,GAAG,IAAI,CAAC,UAAU,UAAU,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAa;;QACvB,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,YAAY,0CAAG,KAAK,CAAC,CAAC;QACxC,OAAO,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,GAAgB;QACxC,IAAI,CAAC,4BAA4B,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,4BAA4B,CAAC;QAErD,GAAG,CAAC,gBAAgB,CAClB,QAAQ,EACR,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,aAAa,CAAE,CAAoC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxE,EAAE,MAAM,EAAE,CACX,CAAC;QACF,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,KAAa,EAAE,aAAqB;QACrD,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,kBAAkB,CAAC,MAAM,EAAE;YACzC,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;YAChC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CACH,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7C,yBAAyB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,oBAAoB;;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,MAAA,IAAI,CAAC,4BAA4B,0CAAE,KAAK,EAAE,CAAC;IAC7C,CAAC;;AArND;;;GAGG;AACY,kBAAS,GAAG,CAAC,AAAJ,CAAK;AAc7B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;6CACmC;AAOvE;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;oDAEN;AAOtC;IADC,UAAU;8CACc;AAOzB;IADC,UAAU;8CACuB;AAOlC;IADC,UAAU;8CACgB"}
1
+ {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../../src/components/carousel/carousel.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { colorNeutralBackground1, durationNormal, curveEasyEase, spacingVerticalM } from '@fluentui/web-components';
2
+ import { colorNeutralBackground1, spacingVerticalM } from '@fluentui/web-components';
3
3
 
4
4
  /**
5
5
  * Styles for the {@link @fabric-msft/fabric-web#(Carousel:class)} component.
6
6
  * @public
7
7
  */
8
8
  const styles = css`
9
- :host{--_carousel-dir:-1;display:flex;flex-direction:column;position:relative;background:${colorNeutralBackground1}}:host(:dir(rtl)){--_carousel-dir:1}.viewport{overflow:hidden;position:relative;width:100%}.track{display:flex;transition:transform ${durationNormal} ${curveEasyEase};will-change:transform}@media (prefers-reduced-motion:reduce){.track{transition:none}}.nav-container{display:flex;justify-content:center;width:100%}:host([nav-position="outside-content"]) .nav-container{position:relative;margin-block-start:${spacingVerticalM}}:host([nav-position="over-content"]) .nav-container{position:absolute;inset-block-end:${spacingVerticalM};inset-inline:0;z-index:1}`;
9
+ :host{--_carousel-dir:-1;display:flex;flex-direction:column;position:relative;background:${colorNeutralBackground1}}:host(:dir(rtl)){--_carousel-dir:1}.nav-container{display:flex;justify-content:center;width:100%}:host([nav-position="outside-content"]) .nav-container{position:relative;margin-block-start:${spacingVerticalM}}:host([nav-position="over-content"]) .nav-container{position:absolute;inset-block-end:${spacingVerticalM};inset-inline:0;z-index:1}`;
10
10
 
11
11
  export { styles };
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.styles.js","sourceRoot":"","sources":["../../../../src/components/carousel/carousel.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAE9C,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB,GAAG,CAAA;;;;;;kBAMtB,uBAAuB;;;;;;;;;;;;;;;4BAeb,cAAc,IAAI,aAAa;;;;;;;;;;;;;;;;;;0BAkBjC,gBAAgB;;;;;uBAKnB,gBAAgB;;;;CAItC,CAAC"}
1
+ {"version":3,"file":"carousel.styles.js","sourceRoot":"","sources":["../../../../src/components/carousel/carousel.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAE9C,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB,GAAG,CAAA;;;;;;kBAMtB,uBAAuB;;;;;;;;;;;;;;;0BAef,gBAAgB;;;;;uBAKnB,gBAAgB;;;;CAItC,CAAC"}
@@ -1,14 +1,14 @@
1
- import { slotted, ref, repeat, html } from '@microsoft/fast-element';
1
+ import { slotted, repeat, html } from '@microsoft/fast-element';
2
2
 
3
3
  /**
4
4
  * The template for the {@link @fabric-msft/fabric-web#(Carousel:class)} component.
5
5
  * @public
6
6
  */
7
7
  function carouselTemplate() {
8
- return html`<template role="region" aria-roledescription="carousel" nav-position="${x => x.navPosition}" nav-button-placement="${x => x.navButtonPlacement}"><div class="viewport" aria-live="polite" aria-atomic="false"><div class="track" style="transform: translateX(calc(var(--_carousel-dir) * ${x => x.currentIndex} * 100%))"><slot ${slotted({
8
+ return html`<template role="region" aria-roledescription="carousel" nav-position="${x => x.navPosition}" nav-button-placement="${x => x.navButtonPlacement}"><fabric-carousel-viewport :controller="${x => x.controller}"><slot ${slotted({
9
9
  property: "slottedItems",
10
10
  filter: el => el.tagName === "FABRIC-CAROUSEL-ITEM"
11
- })}></slot></div></div><div class="nav-container"><fabric-carousel-nav ${ref("generatedNav")} button-placement="${x => x.navButtonPlacement}" current-index="${x => x.currentIndex}">${repeat(x => x.slottedItems, html`<fabric-carousel-nav-item :tabId="${(_item, c) => c.parent.getTabId(c.index)}" :panelId="${(_item, c) => c.parent.getPanelId(c.index)}" :tabLabel="${(_item, c) => c.parent.getTabLabel(c.index)}"></fabric-carousel-nav-item>`, {
11
+ })}></slot></fabric-carousel-viewport><div class="nav-container"><fabric-carousel-nav :controller="${x => x.controller}" button-placement="${x => x.navButtonPlacement}" current-index="${x => x.currentIndex}">${repeat(x => x.slottedItems, html`<fabric-carousel-nav-item :tabId="${(_item, c) => c.parent.getTabId(c.index)}" :panelId="${(_item, c) => c.parent.getPanelId(c.index)}" :tabLabel="${(_item, c) => c.parent.getTabLabel(c.index)}"></fabric-carousel-nav-item>`, {
12
12
  positioning: true
13
13
  })}</fabric-carousel-nav></div></template>`;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.template.js","sourceRoot":"","sources":["../../../../src/components/carousel/carousel.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKrE;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAG;;;;sBAIM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW;8BACZ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB;;;;;qEAKY,CAAC,CAAC,EAAE,EAAE,CAC/D,CAAC,CAAC,YAAY;;;cAGZ,OAAO,CAAC;QACR,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAE,EAAc,CAAC,OAAO,KAAK,sBAAsB;KACnE,CAAC;;;;;;YAMF,GAAG,CAAC,cAAc,CAAC;8BACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB;2BAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY;;YAEpC,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EACrB,IAAI,CAAwB;;0BAEd,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;4BACtC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;6BACzC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;;aAE3D,EACD,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB;;;;GAIR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAkC,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"carousel.template.js","sourceRoot":"","sources":["../../../../src/components/carousel/carousel.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKhE;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAG;;;;sBAIM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW;8BACZ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB;;+CAEV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU;;YAEtD,OAAO,CAAC;QACR,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAE,EAAc,CAAC,OAAO,KAAK,sBAAsB;KACnE,CAAC;;;;;yBAKa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU;8BACd,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB;2BAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY;;YAEpC,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EACrB,IAAI,CAAwB;;0BAEd,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;4BACtC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;6BACzC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;;aAE3D,EACD,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB;;;;GAIR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAkC,gBAAgB,EAAE,CAAC"}
@@ -1,7 +1,8 @@
1
- import { definition as definition$2 } from './carousel.definition.js';
1
+ import { definition as definition$3 } from './carousel.definition.js';
2
2
  import { DesignSystem } from '../design-system.js';
3
- import { definition } from '../carousel-nav/carousel-nav.definition.js';
4
- import { definition as definition$1 } from '../carousel-nav-item/carousel-nav-item.definition.js';
3
+ import { definition as definition$1 } from '../carousel-nav/carousel-nav.definition.js';
4
+ import { definition as definition$2 } from '../carousel-nav-item/carousel-nav-item.definition.js';
5
+ import { definition } from '../carousel-viewport/carousel-viewport.definition.js';
5
6
 
6
7
  /**
7
8
  * Registers the carousel element and all of its internal dependencies
@@ -21,6 +22,7 @@ function defineCarousel(registry = customElements) {
21
22
  definition.define(registry);
22
23
  definition$1.define(registry);
23
24
  definition$2.define(registry);
25
+ definition$3.define(registry);
24
26
  }
25
27
  defineCarousel(DesignSystem.registry);
26
28
 
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../../src/components/carousel/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACjG,OAAO,EAAE,UAAU,IAAI,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AAE/G;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAkC,cAAc;IAEhD,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../../src/components/carousel/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACjG,OAAO,EAAE,UAAU,IAAI,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AAC/G,OAAO,EAAE,UAAU,IAAI,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAEhH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAkC,cAAc;IAEhD,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC"}
@@ -6,7 +6,7 @@ import { html } from '@microsoft/fast-element';
6
6
  * @public
7
7
  */
8
8
  function carouselItemTemplate() {
9
- return html`<template role="tabpanel" id="${x => x.panelId}" aria-labelledby="${x => x.tabId}" aria-label="${x => x.label}" ?active="${x => x.active}" ?aria-hidden="${x => !x.active}" tabindex="${x => x.active ? 0 : -1}"><slot></slot></template>`;
9
+ return html`<template role="tabpanel" id="${x => x.panelId}" aria-labelledby="${x => x.tabId}" aria-label="${x => x.label}" ?active="${x => x.active}" aria-hidden="${x => !x.active ? "true" : null}" tabindex="${x => x.active ? 0 : -1}"><slot></slot></template>`;
10
10
  }
11
11
  const template = carouselItemTemplate();
12
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"carousel-item.template.js","sourceRoot":"","sources":["../../../../src/components/carousel-item/carousel-item.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAI/C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAGlC,OAAO,IAAI,CAAG;;;YAGJ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO;yBACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;oBACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;iBACjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;sBACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;kBACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;GAIzC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GACnB,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"carousel-item.template.js","sourceRoot":"","sources":["../../../../src/components/carousel-item/carousel-item.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAI/C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAGlC,OAAO,IAAI,CAAG;;;YAGJ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO;yBACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;oBACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;iBACjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;qBACX,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;kBACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;GAIzC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GACnB,oBAAoB,EAAE,CAAC"}
@@ -30,8 +30,11 @@ var __decorate = globalThis && globalThis.__decorate || function (decorators, ta
30
30
  *
31
31
  * @prop {CarouselNavButtonPlacement} buttonPlacement - Button positioning.
32
32
  * @prop {number} currentIndex - Currently selected nav item index.
33
+ * @prop {CarouselController} controller - The carousel controller to drive navigation.
33
34
  *
34
35
  * @slot default - Slot for fabric-carousel-nav-item elements.
36
+ * @slot prev-button - Custom previous button. Defaults to a chevron left button.
37
+ * @slot next-button - Custom next button. Defaults to a chevron right button.
35
38
  *
36
39
  * @fires select - Fired when a nav item is selected with detail { index }.
37
40
  * @fires previous - Fired when prev button is clicked.
@@ -128,12 +131,14 @@ class CarouselNav extends FASTElement {
128
131
  * @internal
129
132
  */
130
133
  handleIndicatorKeydown(event, index) {
134
+ var _a;
131
135
  const {
132
136
  key
133
137
  } = event;
134
138
  // Enter/Space selects the indicator
135
139
  if (key === keyEnter || key === keySpace) {
136
140
  event.preventDefault();
141
+ (_a = this.controller) === null || _a === void 0 ? void 0 : _a.scrollToIndex(index);
137
142
  this.emitSelect(index);
138
143
  return;
139
144
  }
@@ -145,6 +150,8 @@ class CarouselNav extends FASTElement {
145
150
  * @internal
146
151
  */
147
152
  handleItemClick(index) {
153
+ var _a;
154
+ (_a = this.controller) === null || _a === void 0 ? void 0 : _a.scrollToIndex(index);
148
155
  this.emitSelect(index);
149
156
  }
150
157
  /**
@@ -152,6 +159,8 @@ class CarouselNav extends FASTElement {
152
159
  * @internal
153
160
  */
154
161
  handlePrevClick() {
162
+ var _a;
163
+ (_a = this.controller) === null || _a === void 0 ? void 0 : _a.prev();
155
164
  this.dispatchEvent(new CustomEvent(CarouselNavEventNames.previous, {
156
165
  bubbles: true,
157
166
  composed: true
@@ -162,6 +171,8 @@ class CarouselNav extends FASTElement {
162
171
  * @internal
163
172
  */
164
173
  handleNextClick() {
174
+ var _a;
175
+ (_a = this.controller) === null || _a === void 0 ? void 0 : _a.next();
165
176
  this.dispatchEvent(new CustomEvent(CarouselNavEventNames.next, {
166
177
  bubbles: true,
167
178
  composed: true
@@ -192,6 +203,7 @@ __decorate([attr({
192
203
  __decorate([attr({
193
204
  attribute: "current-index"
194
205
  })], CarouselNav.prototype, "currentIndex", void 0);
206
+ __decorate([observable], CarouselNav.prototype, "controller", void 0);
195
207
  __decorate([observable], CarouselNav.prototype, "slottedNavItems", void 0);
196
208
 
197
209
  export { CarouselNav };
@@ -1 +1 @@
1
- {"version":3,"file":"carousel-nav.js","sourceRoot":"","sources":["../../../../src/components/carousel-nav/carousel-nav.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carousel-nav.js","sourceRoot":"","sources":["../../../../src/components/carousel-nav/carousel-nav.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { spacingHorizontalM, spacingHorizontalXXL, spacingHorizontalXXS, colorNeutralBackground1, colorNeutralForeground1, colorNeutralStroke1, borderRadiusSmall } from '@fluentui/web-components';
3
+ import '../../util/carousel-controller.js';
3
4
  import '../../util/debug.js';
4
5
  import '@microsoft/fast-web-utilities';
5
6
  import '../../util/support.js';
@@ -1,15 +1,16 @@
1
- import { slotted, html } from '@microsoft/fast-element';
1
+ import { oneTime, slotted, html } from '@microsoft/fast-element';
2
2
  import { chevronLeftIcon, chevronRightIcon } from '../../util/icons.js';
3
+ import { getString } from '@fabric-msft/localization';
3
4
 
4
5
  /**
5
6
  * The template for the {@link @fabric-msft/fabric-web#(CarouselNav:class)} component.
6
7
  * @public
7
8
  */
8
9
  function carouselNavTemplate() {
9
- return html`<template button-placement="${x => x.buttonPlacement}"><div class="nav-content"><button class="nav-button prev-button" aria-label="Previous" @click="${x => x.handlePrevClick()}">${chevronLeftIcon}</button><div class="indicators" role="tablist" aria-label="Choose slide to display"><slot ${slotted({
10
+ return html`<template button-placement="${x => x.buttonPlacement}"><div class="nav-content"><slot name="prev-button"><button class="nav-button prev-button" aria-label="${oneTime(() => getString("Carousel_Previous"))}" @click="${x => x.handlePrevClick()}">${chevronLeftIcon}</button></slot><div class="indicators" role="tablist" aria-label="${oneTime(() => getString("Carousel_SlideIndicators"))}"><slot ${slotted({
10
11
  property: "slottedNavItems",
11
12
  filter: el => el.tagName === "FABRIC-CAROUSEL-NAV-ITEM"
12
- })}></slot></div><button class="nav-button next-button" aria-label="Next" @click="${x => x.handleNextClick()}">${chevronRightIcon}</button></div></template>`;
13
+ })}></slot></div><slot name="next-button"><button class="nav-button next-button" aria-label="${oneTime(() => getString("Carousel_Next"))}" @click="${x => x.handleNextClick()}">${chevronRightIcon}</button></slot></div></template>`;
13
14
  }
14
15
  const template = carouselNavTemplate();
15
16
 
@@ -1 +1 @@
1
- {"version":3,"file":"carousel-nav.template.js","sourceRoot":"","sources":["../../../../src/components/carousel-nav/carousel-nav.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IAGjC,OAAO,IAAI,CAAG;kCACkB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe;;;;;oBAKtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;;YAElC,eAAe;;;;;;;;cAQb,OAAO,CAAC;QACR,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CACZ,EAAc,CAAC,OAAO,KAAK,0BAA0B;KACzD,CAAC;;;;;;oBAMM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;;YAElC,gBAAgB;;;;GAIzB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAqC,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"carousel-nav.template.js","sourceRoot":"","sources":["../../../../src/components/carousel-nav/carousel-nav.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IAGjC,OAAO,IAAI,CAAG;kCACkB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe;;;;;0BAKhC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;sBACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;;cAElC,eAAe;;;;;;wBAML,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;;;cAG9D,OAAO,CAAC;QACR,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CACZ,EAAc,CAAC,OAAO,KAAK,0BAA0B;KACzD,CAAC;;;;;;0BAMY,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;sBAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;;cAElC,gBAAgB;;;;;GAK3B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAqC,mBAAmB,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { spacingHorizontalXXL, spacingVerticalXXL, spacingHorizontalS, borderRadiusCircular, colorNeutralForeground2, durationFast, curveEasyEase, spacingHorizontalL, colorNeutralForeground1, borderRadiusSmall } from '@fluentui/web-components';
3
+ import '../../util/carousel-controller.js';
3
4
  import '../../util/debug.js';
4
5
  import '@microsoft/fast-web-utilities';
5
6
  import '../../util/support.js';
@@ -0,0 +1,21 @@
1
+ import { DesignSystem } from '../design-system.js';
2
+ import { CarouselViewport } from './carousel-viewport.js';
3
+ import { styles } from './carousel-viewport.styles.js';
4
+ import { template } from './carousel-viewport.template.js';
5
+
6
+ /**
7
+ * The CarouselViewport element definition.
8
+ * @public
9
+ * @remarks
10
+ * HTML Element: <fabric-carousel-viewport>
11
+ */
12
+ const definition = CarouselViewport.compose({
13
+ name: `${DesignSystem.prefix}-carousel-viewport`,
14
+ template,
15
+ styles,
16
+ shadowOptions: {
17
+ mode: DesignSystem.shadowRootMode
18
+ }
19
+ });
20
+
21
+ export { definition };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel-viewport.definition.js","sourceRoot":"","sources":["../../../../src/components/carousel-viewport/carousel-viewport.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACjD,IAAI,EAAE,GAAG,YAAY,CAAC,MAAM,oBAAoB;IAChD,QAAQ;IACR,MAAM;IACN,aAAa,EAAE;QACb,IAAI,EAAE,YAAY,CAAC,cAAc;KAClC;CACF,CAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { observable, FASTElement } from '@microsoft/fast-element';
2
+
3
+ var __decorate = globalThis && globalThis.__decorate || function (decorators, target, key, desc) {
4
+ var c = arguments.length,
5
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
6
+ d;
7
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9
+ };
10
+ /**
11
+ * @summary Renders the scrolling viewport for carousel items.
12
+ *
13
+ * This component is the visual container that shows one carousel item at a time
14
+ * and applies a CSS transform to slide between items. It is driven by a
15
+ * {@link CarouselController} which manages the active index and item state.
16
+ *
17
+ * The host component (e.g. fabric-carousel or fabric-modal) is responsible for
18
+ * managing the controller's items. The viewport is purely a rendering component.
19
+ *
20
+ * @example
21
+ * ```html
22
+ * <fabric-carousel-viewport>
23
+ * <fabric-carousel-item>Slide 1</fabric-carousel-item>
24
+ * <fabric-carousel-item>Slide 2</fabric-carousel-item>
25
+ * </fabric-carousel-viewport>
26
+ * ```
27
+ *
28
+ * @slot default - Slot for fabric-carousel-item elements.
29
+ *
30
+ * @extends FASTElement
31
+ * @tagname fabric-carousel-viewport
32
+ * @public
33
+ */
34
+ class CarouselViewport extends FASTElement {}
35
+ __decorate([observable], CarouselViewport.prototype, "controller", void 0);
36
+
37
+ export { CarouselViewport };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel-viewport.js","sourceRoot":"","sources":["../../../../src/components/carousel-viewport/carousel-viewport.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGlE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,gBAAiB,SAAQ,WAAW;CAOhD;AADC;IADC,UAAU;oDACqB"}
@@ -0,0 +1,11 @@
1
+ import { css } from '@microsoft/fast-element';
2
+ import { durationNormal, curveEasyEase } from '@fluentui/web-components';
3
+
4
+ /**
5
+ * Styles for the {@link @fabric-msft/fabric-web#(CarouselViewport:class)} component.
6
+ * @public
7
+ */
8
+ const styles = css`
9
+ :host{--_carousel-dir:-1;display:block;overflow:hidden;position:relative;width:100%}:host(:dir(rtl)){--_carousel-dir:1}.track{display:flex;transition:transform ${durationNormal} ${curveEasyEase};will-change:transform}@media (prefers-reduced-motion:reduce){.track{transition:none}}`;
10
+
11
+ export { styles };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel-viewport.styles.js","sourceRoot":"","sources":["../../../../src/components/carousel-viewport/carousel-viewport.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB,GAAG,CAAA;;;;;;;;;;;;;;;4BAeZ,cAAc,IAAI,aAAa;;;;;;;;;CAS1D,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { html } from '@microsoft/fast-element';
2
+
3
+ /**
4
+ * The template for the {@link @fabric-msft/fabric-web#(CarouselViewport:class)} component.
5
+ * @public
6
+ */
7
+ function carouselViewportTemplate() {
8
+ return html`<template aria-live="polite" aria-atomic="false"><div class="track" style="transform: translateX(calc(var(--_carousel-dir) * ${x => {
9
+ var _a, _b;
10
+ return (_b = (_a = x.controller) === null || _a === void 0 ? void 0 : _a.currentIndex) !== null && _b !== void 0 ? _b : 0;
11
+ }} * 100%))"><slot></slot></div></template>`;
12
+ }
13
+ const template = carouselViewportTemplate();
14
+
15
+ export { carouselViewportTemplate, template };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel-viewport.template.js","sourceRoot":"","sources":["../../../../src/components/carousel-viewport/carousel-viewport.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAI/C;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IAGtC,OAAO,IAAI,CAAG;;;;mEAImD,CAAC,CAAC,EAAE,EAAE,eAC/D,OAAA,MAAA,MAAA,CAAC,CAAC,UAAU,0CAAE,YAAY,mCAAI,CAAC,CAAA,EAAA;;;;;GAKtC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GACnB,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { definition } from "./carousel-viewport.definition.js";
2
+ import { DesignSystem } from "../design-system.js";
3
+ definition.define(DesignSystem.registry);
4
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../../src/components/carousel-viewport/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { CarouselViewport } from "./carousel-viewport.js";
2
+ export { definition as CarouselViewportDefinition } from "./carousel-viewport.definition.js";
3
+ export { styles as CarouselViewportStyles } from "./carousel-viewport.styles.js";
4
+ export { template as CarouselViewportTemplate } from "./carousel-viewport.template.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/carousel-viewport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,IAAI,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,MAAM,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,QAAQ,IAAI,wBAAwB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { DesignSystem } from "../design-system.js";
2
+ import { definition } from "./dynamic-tab.definition.js";
3
+ definition.define(DesignSystem.registry);
4
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../../src/components/dynamic-tab/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC"}