@vonage/vivid 5.24.0 → 5.25.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 (331) hide show
  1. package/README.md +1 -1
  2. package/avatar/index.cjs +10 -10
  3. package/avatar/index.js +4 -3
  4. package/breadcrumb-item/index.cjs +9 -5
  5. package/breadcrumb-item/index.js +11 -6
  6. package/bundled/affix.cjs +1 -1
  7. package/bundled/affix.js +1 -1
  8. package/bundled/definition10.cjs +2 -1
  9. package/bundled/definition10.js +3 -2
  10. package/bundled/definition11.cjs +4 -4
  11. package/bundled/definition11.js +4 -3
  12. package/bundled/definition12.cjs +1 -1
  13. package/bundled/definition12.js +1 -0
  14. package/bundled/definition15.cjs +5 -5
  15. package/bundled/definition15.js +4 -3
  16. package/bundled/definition17.cjs +7 -7
  17. package/bundled/definition17.js +22 -109
  18. package/bundled/definition18.cjs +3 -3
  19. package/bundled/definition18.js +9 -31
  20. package/bundled/definition19.cjs +19 -19
  21. package/bundled/definition19.js +3 -2
  22. package/bundled/definition21.cjs +8 -8
  23. package/bundled/definition21.js +5 -4
  24. package/bundled/definition22.cjs +2 -2
  25. package/bundled/definition22.js +2 -2
  26. package/bundled/definition24.cjs +4 -4
  27. package/bundled/definition24.js +4 -3
  28. package/bundled/definition25.cjs +3 -3
  29. package/bundled/definition25.js +32 -28
  30. package/bundled/definition3.cjs +5 -5
  31. package/bundled/definition3.js +10 -40
  32. package/bundled/definition4.cjs +6 -6
  33. package/bundled/definition4.js +4 -3
  34. package/bundled/definition6.cjs +11 -11
  35. package/bundled/definition6.js +4 -3
  36. package/bundled/definition9.cjs +12 -6
  37. package/bundled/definition9.js +66 -43
  38. package/bundled/extractOptions.cjs +1 -1
  39. package/bundled/extractOptions.js +2 -2
  40. package/bundled/icon.cjs +1 -0
  41. package/bundled/icon.js +34 -0
  42. package/bundled/listbox.cjs +1 -1
  43. package/bundled/listbox.js +5 -2
  44. package/bundled/mixins.cjs +8 -8
  45. package/bundled/mixins.js +4 -3
  46. package/bundled/optgroup.cjs +1 -0
  47. package/bundled/optgroup.js +27 -0
  48. package/bundled/option.cjs +1 -0
  49. package/bundled/option.js +93 -0
  50. package/bundled/vivid-element.cjs +1 -1
  51. package/bundled/vivid-element.js +1 -1
  52. package/card/index.cjs +22 -22
  53. package/card/index.js +4 -3
  54. package/color-picker/index.cjs +18 -18
  55. package/color-picker/index.js +4 -3
  56. package/combobox/index.cjs +7 -7
  57. package/combobox/index.js +4 -2
  58. package/custom-elements.json +4159 -3847
  59. package/data-grid/index.cjs +24 -24
  60. package/data-grid/index.js +4 -3
  61. package/dial-pad/index.cjs +21 -21
  62. package/dial-pad/index.js +4 -3
  63. package/dialog/index.cjs +14 -14
  64. package/dialog/index.js +4 -3
  65. package/empty-state/index.cjs +3 -3
  66. package/empty-state/index.js +4 -3
  67. package/file-picker/index.cjs +7 -7
  68. package/file-picker/index.js +4 -3
  69. package/icon/definition.cjs +2 -1
  70. package/icon/definition.js +2 -1
  71. package/index.cjs +148 -141
  72. package/index.js +41 -37
  73. package/lib/accordion-item/accordion-item.d.ts +1 -0
  74. package/lib/combobox/combobox.d.ts +1 -1
  75. package/lib/components.d.ts +1 -0
  76. package/lib/dial-pad/dial-pad.d.ts +0 -1
  77. package/lib/listbox/definition.d.ts +3 -0
  78. package/lib/listbox/index.d.ts +1 -0
  79. package/lib/listbox/listbox.d.ts +1302 -0
  80. package/lib/listbox/listbox.template.d.ts +3 -0
  81. package/lib/listbox/variations.browser-spec.d.ts +1 -0
  82. package/lib/menu/menu.d.ts +0 -1
  83. package/lib/number-field/number-field.d.ts +0 -1
  84. package/lib/rich-text-editor/rte/features/base.d.ts +1 -0
  85. package/lib/rich-text-editor/rte/utils/default-textblock.d.ts +2 -2
  86. package/lib/tag-name-map.d.ts +2 -1
  87. package/lib/text-field/text-field.d.ts +1 -0
  88. package/lib/toggletip/toggletip.d.ts +1 -0
  89. package/lib/tooltip/tooltip.d.ts +1 -0
  90. package/listbox/definition.cjs +5 -0
  91. package/listbox/definition.js +2 -0
  92. package/listbox/index.cjs +11 -0
  93. package/listbox/index.js +540 -0
  94. package/nav/definition.cjs +1 -1
  95. package/nav/definition.js +1 -1
  96. package/nav-disclosure/definition.cjs +1 -1
  97. package/nav-disclosure/definition.js +1 -1
  98. package/nav-disclosure/index.cjs +4 -4
  99. package/nav-disclosure/index.js +4 -3
  100. package/nav-item/definition.cjs +1 -1
  101. package/nav-item/definition.js +1 -1
  102. package/note/definition.cjs +1 -1
  103. package/note/definition.js +1 -1
  104. package/number-field/definition.cjs +1 -1
  105. package/number-field/definition.js +1 -1
  106. package/optgroup/definition.cjs +2 -1
  107. package/optgroup/definition.js +2 -1
  108. package/option/definition.cjs +2 -1
  109. package/option/definition.js +2 -1
  110. package/package.json +8 -7
  111. package/pagination/definition.cjs +1 -1
  112. package/pagination/definition.js +1 -1
  113. package/platform-switch/definition.cjs +1 -1
  114. package/platform-switch/definition.js +1 -1
  115. package/popover/definition.cjs +1 -1
  116. package/popover/definition.js +1 -1
  117. package/popover/index.cjs +5 -5
  118. package/popover/index.js +4 -3
  119. package/progress/definition.cjs +1 -1
  120. package/progress/definition.js +1 -1
  121. package/radio/definition.cjs +1 -1
  122. package/radio/definition.js +1 -1
  123. package/radio-group/definition.cjs +1 -1
  124. package/radio-group/definition.js +1 -1
  125. package/range-slider/definition.cjs +1 -1
  126. package/range-slider/definition.js +1 -1
  127. package/rich-text-editor/definition.cjs +1 -1
  128. package/rich-text-editor/definition.js +1 -1
  129. package/rich-text-editor/index.cjs +13 -13
  130. package/rich-text-editor/index.js +22 -19
  131. package/rich-text-view/definition.cjs +1 -1
  132. package/rich-text-view/definition.js +1 -1
  133. package/searchable-select/definition.cjs +1 -1
  134. package/searchable-select/definition.js +1 -1
  135. package/searchable-select/index.cjs +23 -23
  136. package/searchable-select/index.js +10 -7
  137. package/select/definition.cjs +1 -1
  138. package/select/definition.js +1 -1
  139. package/selectable-box/definition.cjs +1 -1
  140. package/selectable-box/definition.js +1 -1
  141. package/shared/listbox/commands.d.ts +17 -0
  142. package/shared/listbox/move.d.ts +6 -0
  143. package/shared/listbox/options.d.ts +12 -0
  144. package/shared/listbox/selection.d.ts +28 -0
  145. package/shared/listbox/state.d.ts +26 -0
  146. package/shared/listbox/typeahead.d.ts +8 -0
  147. package/shared/listbox/with-options-filter.d.ts +440 -0
  148. package/shared/listbox/with-options.d.ts +862 -0
  149. package/side-drawer/definition.cjs +1 -1
  150. package/side-drawer/definition.js +1 -1
  151. package/simple-color-picker/definition.cjs +1 -1
  152. package/simple-color-picker/definition.js +1 -1
  153. package/simple-color-picker/index.cjs +6 -6
  154. package/simple-color-picker/index.js +4 -3
  155. package/split-button/definition.cjs +1 -1
  156. package/split-button/definition.js +1 -1
  157. package/status/definition.cjs +1 -1
  158. package/status/definition.js +1 -1
  159. package/switch/definition.cjs +1 -1
  160. package/switch/definition.js +1 -1
  161. package/tab/definition.cjs +1 -1
  162. package/tab/definition.js +1 -1
  163. package/tab-panel/definition.cjs +1 -1
  164. package/tab-panel/definition.js +1 -1
  165. package/table/definition.cjs +1 -1
  166. package/table/definition.js +1 -1
  167. package/table/index.cjs +13 -13
  168. package/table/index.js +4 -3
  169. package/tabs/definition.cjs +1 -1
  170. package/tabs/definition.js +1 -1
  171. package/tag/definition.cjs +1 -1
  172. package/tag/definition.js +1 -1
  173. package/tag/index.cjs +11 -11
  174. package/tag/index.js +4 -3
  175. package/tag-group/definition.cjs +1 -1
  176. package/tag-group/definition.js +1 -1
  177. package/text-area/definition.cjs +1 -1
  178. package/text-area/definition.js +1 -1
  179. package/time-picker/definition.cjs +1 -1
  180. package/time-picker/definition.js +1 -1
  181. package/tree-item/definition.cjs +1 -1
  182. package/tree-item/definition.js +1 -1
  183. package/tree-view/definition.cjs +1 -1
  184. package/tree-view/definition.js +1 -1
  185. package/unbundled/affix.cjs +2 -2
  186. package/unbundled/affix.js +1 -1
  187. package/unbundled/base-progress.cjs +1 -1
  188. package/unbundled/base-progress.js +1 -1
  189. package/unbundled/button.cjs +2 -2
  190. package/unbundled/button.js +2 -2
  191. package/unbundled/definition.cjs +2 -65
  192. package/unbundled/definition.js +4 -61
  193. package/unbundled/definition11.cjs +4 -3
  194. package/unbundled/definition11.js +3 -2
  195. package/unbundled/definition12.cjs +3 -2
  196. package/unbundled/definition12.js +3 -2
  197. package/unbundled/definition14.cjs +2 -1
  198. package/unbundled/definition14.js +2 -1
  199. package/unbundled/definition17.cjs +9 -4
  200. package/unbundled/definition17.js +9 -4
  201. package/unbundled/definition2.cjs +7 -2
  202. package/unbundled/definition2.js +8 -3
  203. package/unbundled/definition21.cjs +2 -1
  204. package/unbundled/definition21.js +2 -1
  205. package/unbundled/definition23.cjs +2 -1
  206. package/unbundled/definition23.js +2 -1
  207. package/unbundled/definition24.cjs +6 -4
  208. package/unbundled/definition24.js +6 -4
  209. package/unbundled/definition25.cjs +2 -1
  210. package/unbundled/definition25.js +2 -1
  211. package/unbundled/definition26.cjs +7 -4
  212. package/unbundled/definition26.js +7 -4
  213. package/unbundled/definition27.cjs +39 -5
  214. package/unbundled/definition27.js +40 -6
  215. package/unbundled/definition28.cjs +4 -3
  216. package/unbundled/definition28.js +4 -3
  217. package/unbundled/definition29.cjs +5 -168
  218. package/unbundled/definition29.js +11 -162
  219. package/unbundled/definition30.cjs +2 -63
  220. package/unbundled/definition30.js +5 -54
  221. package/unbundled/definition31.cjs +5 -3
  222. package/unbundled/definition31.js +5 -3
  223. package/unbundled/definition32.cjs +2 -1
  224. package/unbundled/definition32.js +2 -1
  225. package/unbundled/definition35.cjs +2 -1
  226. package/unbundled/definition35.js +2 -1
  227. package/unbundled/definition37.cjs +1 -1
  228. package/unbundled/definition37.js +1 -1
  229. package/unbundled/definition39.cjs +1 -1
  230. package/unbundled/definition39.js +1 -1
  231. package/unbundled/definition40.cjs +4 -2
  232. package/unbundled/definition40.js +4 -2
  233. package/unbundled/definition41.cjs +11 -6
  234. package/unbundled/definition41.js +11 -6
  235. package/unbundled/definition42.cjs +5 -4
  236. package/unbundled/definition42.js +5 -4
  237. package/unbundled/definition44.cjs +3 -2
  238. package/unbundled/definition44.js +3 -2
  239. package/unbundled/definition45.cjs +2 -2
  240. package/unbundled/definition45.js +2 -2
  241. package/unbundled/definition49.cjs +583 -79
  242. package/unbundled/definition49.js +579 -76
  243. package/unbundled/definition50.cjs +71 -33
  244. package/unbundled/definition50.js +67 -29
  245. package/unbundled/definition51.cjs +54 -23
  246. package/unbundled/definition51.js +52 -18
  247. package/unbundled/definition52.cjs +23 -39
  248. package/unbundled/definition52.js +17 -36
  249. package/unbundled/definition53.cjs +29 -314
  250. package/unbundled/definition53.js +27 -312
  251. package/unbundled/definition54.cjs +302 -195
  252. package/unbundled/definition54.js +298 -191
  253. package/unbundled/definition55.cjs +210 -40
  254. package/unbundled/definition55.js +206 -36
  255. package/unbundled/definition56.cjs +42 -266
  256. package/unbundled/definition56.js +38 -262
  257. package/unbundled/definition57.cjs +270 -50
  258. package/unbundled/definition57.js +267 -46
  259. package/unbundled/definition58.cjs +48 -146
  260. package/unbundled/definition58.js +47 -143
  261. package/unbundled/definition59.cjs +127 -225
  262. package/unbundled/definition59.js +122 -223
  263. package/unbundled/definition6.cjs +2 -1
  264. package/unbundled/definition6.js +2 -1
  265. package/unbundled/definition60.cjs +199 -418
  266. package/unbundled/definition60.js +196 -415
  267. package/unbundled/definition61.cjs +442 -3738
  268. package/unbundled/definition61.js +432 -3565
  269. package/unbundled/definition62.cjs +3717 -730
  270. package/unbundled/definition62.js +3544 -720
  271. package/unbundled/definition63.cjs +770 -97
  272. package/unbundled/definition63.js +767 -94
  273. package/unbundled/definition64.cjs +100 -999
  274. package/unbundled/definition64.js +98 -994
  275. package/unbundled/definition65.cjs +991 -93
  276. package/unbundled/definition65.js +985 -90
  277. package/unbundled/definition66.cjs +109 -73
  278. package/unbundled/definition66.js +105 -63
  279. package/unbundled/definition67.cjs +69 -155
  280. package/unbundled/definition67.js +60 -152
  281. package/unbundled/definition68.cjs +155 -119
  282. package/unbundled/definition68.js +151 -115
  283. package/unbundled/definition69.cjs +124 -49
  284. package/unbundled/definition69.js +120 -45
  285. package/unbundled/definition70.cjs +51 -85
  286. package/unbundled/definition70.js +50 -81
  287. package/unbundled/definition71.cjs +91 -19
  288. package/unbundled/definition71.js +86 -14
  289. package/unbundled/definition72.cjs +20 -87
  290. package/unbundled/definition72.js +14 -84
  291. package/unbundled/definition73.cjs +77 -294
  292. package/unbundled/definition73.js +72 -217
  293. package/unbundled/definition74.cjs +289 -311
  294. package/unbundled/definition74.js +219 -306
  295. package/unbundled/definition75.cjs +326 -26
  296. package/unbundled/definition75.js +317 -23
  297. package/unbundled/definition76.cjs +27 -122
  298. package/unbundled/definition76.js +22 -118
  299. package/unbundled/definition77.cjs +105 -232
  300. package/unbundled/definition77.js +101 -228
  301. package/unbundled/definition78.cjs +259 -26
  302. package/unbundled/definition78.js +249 -23
  303. package/unbundled/definition79.cjs +29 -148
  304. package/unbundled/definition79.js +27 -133
  305. package/unbundled/definition80.cjs +118 -173
  306. package/unbundled/definition80.js +109 -169
  307. package/unbundled/definition81.cjs +181 -477
  308. package/unbundled/definition81.js +176 -471
  309. package/unbundled/definition82.cjs +517 -0
  310. package/unbundled/definition82.js +497 -0
  311. package/unbundled/extractOptions.cjs +5 -5
  312. package/unbundled/extractOptions.js +2 -2
  313. package/unbundled/icon.cjs +67 -0
  314. package/unbundled/icon.js +61 -0
  315. package/unbundled/linkable.cjs +1 -1
  316. package/unbundled/linkable.js +1 -1
  317. package/unbundled/listbox.cjs +8 -3
  318. package/unbundled/listbox.js +7 -2
  319. package/unbundled/mixins.cjs +2 -1
  320. package/unbundled/mixins.js +2 -1
  321. package/unbundled/optgroup.cjs +66 -0
  322. package/unbundled/optgroup.js +54 -0
  323. package/unbundled/option.cjs +176 -0
  324. package/unbundled/option.js +164 -0
  325. package/unbundled/time-selection-picker.template.cjs +1 -1
  326. package/unbundled/time-selection-picker.template.js +1 -1
  327. package/unbundled/vivid-element.cjs +1 -1
  328. package/unbundled/vivid-element.js +1 -1
  329. package/video-player/definition.cjs +1 -1
  330. package/video-player/definition.js +1 -1
  331. package/vivid.api.json +336 -193
@@ -1,355 +1,333 @@
1
1
  require("./chunk.cjs");
2
2
  const require_vivid_element = require("./vivid-element.cjs");
3
+ const require_definition = require("./definition.cjs");
3
4
  const require_decorate = require("./decorate.cjs");
4
- const require_key_codes = require("./key-codes.cjs");
5
- const require_definition = require("./definition71.cjs");
6
- const require_definition$1 = require("./definition72.cjs");
5
+ const require_icon = require("./icon.cjs");
6
+ const require_delegates_aria = require("./delegates-aria.cjs");
7
+ const require_host_semantics = require("./host-semantics.cjs");
8
+ const require_data_grid_options = require("./data-grid.options.cjs");
7
9
  let _microsoft_fast_element = require("@microsoft/fast-element");
8
- let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
9
- //#region src/lib/tabs/tabs.scss?inline
10
- var tabs_default = ":host{display:block}.base{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.connotation-cta{--_connotation-color-firm:var(--vvd-tabs-cta-firm,var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-firm:var(--vvd-tabs-accent-firm,var(--vvd-color-canvas-text))}.base{--_tabs-tablist-gutter:8px;--_tabs-active-indicator-stroke-width:2px;box-sizing:border-box;display:grid}.base.orientation-vertical{block-size:inherit;grid-template-rows:1fr;grid-template-columns:auto 1fr;overflow:hidden}.base:not(.orientation-vertical){block-size:var(--tabs-block-size,auto);grid-template-rows:auto 1fr;grid-template-columns:1fr;max-block-size:100%}.base.layout-stretch .scroll-shadow{flex:1}.base:not(.orientation-vertical) .scroll-shadow{isolation:isolate;position:relative;overflow:hidden}.base:not(.orientation-vertical) .scroll-shadow.start-scroll:before,.base:not(.orientation-vertical) .scroll-shadow.start-scroll:after,.base:not(.orientation-vertical) .scroll-shadow.end-scroll:before,.base:not(.orientation-vertical) .scroll-shadow.end-scroll:after{content:\"\";opacity:0;inline-size:10px;transition:opacity .1s;position:absolute;inset-block:0}.base:not(.orientation-vertical) .scroll-shadow.start-scroll:before{z-index:1;box-shadow:inset 7px 1px 5px -3px var(--vvd-color-neutral-950);opacity:.2;inset-inline-start:0}.base:not(.orientation-vertical) .scroll-shadow.end-scroll:after{box-shadow:inset -7px 1px 5px -3px var(--vvd-color-neutral-950);opacity:.2;inset-inline-end:0}.tabs{display:flex;overflow:hidden}.base.orientation-vertical .tabs{box-shadow:1px 0 0 0 var(--vvd-color-neutral-300);flex-direction:column}.base.orientation-horizontal .tabs{border-bottom:1px solid var(--vvd-color-neutral-300);flex-direction:row}.tablist{box-sizing:border-box;color:var(--_appearance-color-text);display:grid;position:relative;overflow:hidden}.base.layout-stretch .tablist{--_tab-justify-content:center;--_tabs-tablist-column:1fr}.tablist .base:not(.layout-stretch){--_tabs-tablist-column:auto}.base.orientation-vertical .tablist{padding:var(--_tabs-tablist-gutter);place-self:flex-start end;row-gap:var(--_tabs-tablist-gutter);grid-row:1/2;grid-template-rows:auto;grid-template-columns:auto 1fr;block-size:fit-content;min-block-size:100%;inline-size:100%}.base:not(.orientation-vertical) .tablist{justify-content:flex-start;column-gap:var(--_tabs-tablist-gutter);grid-auto-columns:var(--_tabs-tablist-column);inline-size:fit-content;min-inline-size:100%;padding-inline:var(--_tabs-tablist-gutter);grid-template-rows:auto auto;grid-auto-flow:column}.base.has-action-items.orientation-vertical .tablist{padding-block-end:0}.base.has-action-items:not(.orientation-vertical) .tablist{padding-inline-end:0}.tablist-wrapper{--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in sRGB, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.tablist-wrapper ::-webkit-scrollbar{width:4px}.tablist-wrapper ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.tablist-wrapper ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.base:not(.orientation-vertical) .tablist-wrapper{align-self:end;inline-size:100%;overflow:auto hidden}.base.orientation-vertical .tablist-wrapper{block-size:100%;overflow:hidden auto}.tablist-wrapper::-webkit-scrollbar{display:none}slot[name=action-items]{display:flex}.base.has-action-items.orientation-horizontal slot[name=action-items]{margin-inline:var(--_tabs-tablist-gutter);align-items:center}.base.has-action-items.orientation-vertical slot[name=action-items]{margin-block:var(--_tabs-tablist-gutter)}.tabpanel{box-sizing:border-box;block-size:100%;min-block-size:0;min-inline-size:0}.base.scroll .tabpanel{--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in sRGB, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin;overflow-y:auto}.base.scroll .tabpanel ::-webkit-scrollbar{width:4px}.base.scroll .tabpanel ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.base.scroll .tabpanel ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.base.gutters-small .tabpanel{padding:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)))}.active-indicator{background:currentColor;margin-inline-start:calc(var(--_tabs-tablist-gutter) * -1)}.base.orientation-vertical .active-indicator{block-size:80%;inline-size:var(--_tabs-active-indicator-stroke-width);border-radius:2px;grid-area:1/1;align-self:center}.base:not(.orientation-vertical) .active-indicator{z-index:1;block-size:var(--_tabs-active-indicator-stroke-width);inline-size:calc(var(--_tabs-active-tab-inline-size));border-radius:2px;grid-area:2/1;position:absolute;inset-block-end:0;inset-inline-start:8px}.activeIndicatorTransition{transition:transform .2s ease-out,inline-size .2s ease-out}@media (prefers-reduced-motion:reduce){.activeIndicatorTransition{transition-duration:.01ms}}";
10
+ //#region src/lib/table/table.scss?inline
11
+ var table_default = ":host{border-collapse:collapse;border-spacing:0;inline-size:100%}.table-inner-container{--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in sRGB, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.table-inner-container ::-webkit-scrollbar{width:4px}.table-inner-container ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.table-inner-container ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.table-inner-container{inline-size:100%;display:block;overflow-x:auto}.table-content{inline-size:100%;display:table;overflow-x:auto}";
11
12
  //#endregion
12
- //#region src/lib/tabs/tabs.ts
13
- var ACTIVE_TAB_WIDTH = "--_tabs-active-tab-inline-size";
14
- var TabsGutters = {
15
- None: "none",
16
- Small: "small"
13
+ //#region src/lib/table/table-sorting-button.scss?inline
14
+ var table_sorting_button_default = "button{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:8px}button:focus-visible{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}";
15
+ //#endregion
16
+ //#region src/lib/table/table-head.scss?inline
17
+ var table_head_default = ":host{display:table-header-group}";
18
+ //#endregion
19
+ //#region src/lib/table/table-body.scss?inline
20
+ var table_body_default = ":host{display:table-row-group}";
21
+ //#endregion
22
+ //#region src/lib/table/table-row.scss?inline
23
+ var table_row_default = ":host{display:table-row}@media (hover:hover){:host:hover{background-color:var(--vvd-color-neutral-200)}}:host[selected]{background-color:var(--_appearance-color-fill)}.base.connotation-cta{--_connotation-color-primary:var(--vvd-data-grid-row-cta-primary,var(--vvd-color-cta-500));--_connotation-color-primary-text:var(--vvd-data-grid-row-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-data-grid-row-cta-primary-increment,var(--vvd-color-cta-600));--_connotation-color-firm:var(--vvd-data-grid-row-cta-firm,var(--vvd-color-cta-600));--_connotation-color-faint:var(--vvd-data-grid-row-cta-faint,var(--vvd-color-cta-50));--_connotation-color-soft:var(--vvd-data-grid-row-cta-soft,var(--vvd-color-cta-100));--_connotation-color-pale:var(--vvd-data-grid-row-cta-pale,var(--vvd-color-cta-300));--_connotation-color-dim:var(--vvd-data-grid-row-cta-dim,var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary:var(--vvd-data-grid-row-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-primary-text:var(--vvd-data-grid-row-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-data-grid-row-accent-primary-increment,var(--vvd-color-neutral-800));--_connotation-color-firm:var(--vvd-data-grid-row-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-faint:var(--vvd-data-grid-row-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-soft:var(--vvd-data-grid-row-accent-soft,var(--vvd-color-neutral-100));--_connotation-color-pale:var(--vvd-data-grid-row-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-dim:var(--vvd-data-grid-row-accent-dim,var(--vvd-color-neutral-200))}.base{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}@media (hover:hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}.base{box-sizing:border-box;width:100%;color:var(--vvd-color-canvas-text);display:contents}";
24
+ //#endregion
25
+ //#region src/lib/table/table-header-cell.scss?inline
26
+ var table_header_cell_default = ":host{border-bottom:1px solid var(--vvd-color-neutral-300);vertical-align:middle;display:table-cell}:host.connotation-cta{--_connotation-color-primary:var(--vvd-data-grid-cell-cta-primary,var(--vvd-color-cta-500));--_connotation-color-primary-text:var(--vvd-data-grid-cell-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-data-grid-cell-cta-primary-increment,var(--vvd-color-cta-600));--_connotation-color-firm:var(--vvd-data-grid-cell-cta-firm,var(--vvd-color-cta-600));--_connotation-color-soft:var(--vvd-data-grid-cell-cta-soft,var(--vvd-color-cta-100));--_connotation-color-faint:var(--vvd-data-grid-cell-cta-faint,var(--vvd-color-cta-50));--_connotation-color-pale:var(--vvd-data-grid-cell-cta-pale,var(--vvd-color-cta-300));--_connotation-color-dim:var(--vvd-data-grid-cell-cta-dim,var(--vvd-color-cta-200))}:host:not(.connotation-cta){--_connotation-color-primary:var(--vvd-data-grid-cell-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-primary-text:var(--vvd-data-grid-cell-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-data-grid-cell-accent-primary-increment,var(--vvd-color-neutral-800));--_connotation-color-firm:var(--vvd-data-grid-cell-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-soft:var(--vvd-data-grid-cell-accent-soft,var(--vvd-color-neutral-100));--_connotation-color-faint:var(--vvd-data-grid-cell-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-pale:var(--vvd-data-grid-cell-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-dim:var(--vvd-data-grid-cell-accent-dim,var(--vvd-color-neutral-200))}:host{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){:host:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}:host.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}:host.selected:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}@media (hover:hover){:host.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}}:host.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}:host{--_table-cell-default-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));--_table-cell-default-white-space:nowrap}:host([role=columnheader]){border-bottom-color:var(--vvd-color-canvas-text)}:host(:focus-visible){outline:none}.base{box-sizing:border-box;block-size:100%;color:var(--_appearance-color-text);font:var(--vvd-typography-base-bold);min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));padding:0;flex-direction:column;justify-content:center;padding-block:4px;padding-inline:12px;display:flex;overflow:hidden}:host(:focus-visible) .base{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}slot{text-overflow:ellipsis;inline-size:100%;white-space:var(--table-cell-white-space,var(--_table-cell-default-white-space));flex:none;display:block;overflow:hidden}";
27
+ //#endregion
28
+ //#region src/lib/table/table-cell.scss?inline
29
+ var table_cell_default = ":host{border-bottom:1px solid var(--vvd-color-neutral-300);vertical-align:middle;display:table-cell}:host.connotation-cta{--_connotation-color-primary:var(--vvd-data-grid-cell-cta-primary,var(--vvd-color-cta-500));--_connotation-color-primary-text:var(--vvd-data-grid-cell-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-data-grid-cell-cta-primary-increment,var(--vvd-color-cta-600));--_connotation-color-firm:var(--vvd-data-grid-cell-cta-firm,var(--vvd-color-cta-600));--_connotation-color-soft:var(--vvd-data-grid-cell-cta-soft,var(--vvd-color-cta-100));--_connotation-color-faint:var(--vvd-data-grid-cell-cta-faint,var(--vvd-color-cta-50));--_connotation-color-pale:var(--vvd-data-grid-cell-cta-pale,var(--vvd-color-cta-300));--_connotation-color-dim:var(--vvd-data-grid-cell-cta-dim,var(--vvd-color-cta-200))}:host:not(.connotation-cta){--_connotation-color-primary:var(--vvd-data-grid-cell-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-primary-text:var(--vvd-data-grid-cell-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-data-grid-cell-accent-primary-increment,var(--vvd-color-neutral-800));--_connotation-color-firm:var(--vvd-data-grid-cell-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-soft:var(--vvd-data-grid-cell-accent-soft,var(--vvd-color-neutral-100));--_connotation-color-faint:var(--vvd-data-grid-cell-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-pale:var(--vvd-data-grid-cell-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-dim:var(--vvd-data-grid-cell-accent-dim,var(--vvd-color-neutral-200))}:host{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){:host:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}:host.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}:host.selected:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}@media (hover:hover){:host.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}}:host.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}:host:not([cell-type=columnheader]){--_table-cell-default-block-size:100%;--_table-cell-default-white-space:normal}:host[selected]{background-color:var(--_appearance-color-fill)}:host(:focus-visible){outline:none}.base{box-sizing:border-box;block-size:100%;color:var(--_appearance-color-text);font:var(--vvd-typography-base);min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));flex-direction:column;justify-content:center;padding-block:4px;padding-inline:12px;display:flex;overflow:hidden}:host(:focus-visible) .base{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}slot{flex:none;inline-size:100%;display:block}";
30
+ //#endregion
31
+ //#region src/lib/table/table.ts
32
+ /**
33
+ * @public
34
+ * @component table
35
+ * @slot - Holds Table Head and Table Body elements.
36
+ */
37
+ var Table = class extends require_vivid_element.VividElement {};
38
+ //#endregion
39
+ //#region src/lib/table/table.template.ts
40
+ var TableTemplate = () => {
41
+ return _microsoft_fast_element.html`
42
+ <template role="table">
43
+ <div part="inner-container" class="table-inner-container">
44
+ <div part="content" class="table-content">
45
+ <slot></slot>
46
+ </div>
47
+ </div>
48
+ </template>
49
+ `;
17
50
  };
18
- var TabsOrientation = {
19
- vertical: "vertical",
20
- horizontal: "horizontal"
51
+ //#endregion
52
+ //#region src/lib/table/table-head.ts
53
+ var tableHeadName = "table-head";
54
+ /**
55
+ * @public
56
+ * @component table-head
57
+ * @slot - Holds Table Row elements that make up the table's header.
58
+ */
59
+ var TableHead = class extends require_vivid_element.VividElement {};
60
+ //#endregion
61
+ //#region src/lib/table/table-head.template.ts
62
+ var TableHeadTemplate = () => {
63
+ return _microsoft_fast_element.html`
64
+ <template>
65
+ <slot></slot>
66
+ </template>
67
+ `;
21
68
  };
22
- var oppositeOrientation = (orientation) => orientation === TabsOrientation.horizontal ? TabsOrientation.vertical : TabsOrientation.horizontal;
23
- var gridProperty = (orientation) => orientation === TabsOrientation.horizontal ? "gridColumn" : "gridRow";
24
- var translateProperty = (orientation) => orientation === TabsOrientation.horizontal ? "translateX" : "translateY";
25
- var offsetProperty = (orientation) => orientation === TabsOrientation.horizontal ? "offsetLeft" : "offsetTop";
26
- var isFocusableElement = (el) => el.getAttribute("aria-disabled") !== "true" && !el.disabled && !el.hasAttribute("hidden");
27
- var arrayShallowEquals = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);
69
+ //#endregion
70
+ //#region src/lib/table/table-body.ts
28
71
  /**
29
72
  * @public
30
- * @component tabs
31
- * @slot - Default slot for tab and tab-panel elements.
32
- * @slot action-items - Slot for action items such as buttons or controls.
33
- * @event {CustomEvent<HTMLElement>} change - Fires a custom 'change' event when a tab is clicked or during keyboard navigation
73
+ * @component table-body
74
+ * @slot - Holds Table Row elements that make up the table's data.
34
75
  */
35
- var Tabs = class extends require_vivid_element.VividElement {
36
- constructor(..._args) {
37
- super(..._args);
38
- this.orientation = TabsOrientation.horizontal;
39
- this.tabs = [];
40
- this.tabpanels = [];
41
- this.#isTabsChangeQueued = false;
42
- this.#lastActiveId = void 0;
43
- this.#onTabClick = (event) => {
44
- const selectedTab = event.currentTarget;
45
- if (this._validTabs.includes(selectedTab)) this.#setActiveTabDueToUserInteraction(selectedTab);
46
- };
47
- this.#onTabKeyDown = (event) => {
48
- const tabs = this._validTabs;
49
- const activeTab = this.activetab;
50
- if (!activeTab) return;
51
- const [arrowKeyPrev, arrowKeyNext] = this.orientation === TabsOrientation.horizontal ? [require_key_codes.keyArrowLeft, require_key_codes.keyArrowRight] : [_microsoft_fast_web_utilities.keyArrowUp, _microsoft_fast_web_utilities.keyArrowDown];
52
- const keyToNextTab = {
53
- [arrowKeyPrev]: () => tabs[(tabs.indexOf(activeTab) - 1 + tabs.length) % tabs.length],
54
- [arrowKeyNext]: () => tabs[(tabs.indexOf(activeTab) + 1) % tabs.length],
55
- [_microsoft_fast_web_utilities.keyHome]: () => tabs[0],
56
- [_microsoft_fast_web_utilities.keyEnd]: () => tabs[tabs.length - 1]
57
- };
58
- if (keyToNextTab[event.key]) {
59
- event.preventDefault();
60
- this.#setActiveTabDueToUserInteraction(keyToNextTab[event.key]());
61
- }
62
- };
63
- this.#isTransitioningTransform = false;
64
- this.scrollablePanel = false;
65
- this._actionItemsSlottedContent = [];
66
- this.activeindicator = true;
67
- }
68
- /** @internal */
69
- orientationChanged() {
70
- this._registerTabsChange();
71
- if (this.$fastController.isConnected) _microsoft_fast_element.Updates.enqueue(() => this.#moveActiveIndicator(false));
72
- }
73
- /** @internal */
74
- tabsChanged() {
75
- for (const tab of this.tabs) {
76
- if (!tab.id) tab.id = `tab-${(0, _microsoft_fast_web_utilities.uniqueId)()}`;
77
- tab.addEventListener("click", this.#onTabClick);
78
- tab.addEventListener("keydown", this.#onTabKeyDown);
79
- }
80
- this._registerTabsChange();
81
- }
82
- /** @internal */
83
- tabpanelsChanged() {
84
- for (const panel of this.tabpanels) if (!panel.id) panel.id = `panel-${(0, _microsoft_fast_web_utilities.uniqueId)()}`;
85
- this._registerTabsChange();
86
- }
87
- #areSlotsSynced() {
88
- return arrayShallowEquals(this.tabs, this._tabsSlot.assignedNodes()) && arrayShallowEquals(this.tabpanels, this._tabPanelsSlot.assignedNodes());
89
- }
90
- /** Tabs that are paired with a tabpanel. Ignore any excess tabs or panels. */
91
- get _pairedTabs() {
92
- return this.tabs.slice(0, Math.min(this.tabs.length, this.tabpanels.length));
93
- }
94
- /** Tabs that are eligible to become active. */
95
- get _validTabs() {
96
- return this._pairedTabs.filter(isFocusableElement);
97
- }
98
- /** @internal */
99
- activeidChanged() {
100
- this._registerTabsChange();
101
- }
102
- /** A reference to the active tab */
103
- get activetab() {
104
- return this._validTabs.find((tab) => tab.id === this.activeid) ?? null;
105
- }
106
- #setActiveTabDueToUserInteraction(tab) {
107
- this.activeid = tab.id;
108
- tab.focus();
109
- this.$emit("change", tab);
110
- }
111
- #isTabsChangeQueued;
112
- /**
113
- * Defer actual processing of changes into a microtask to wait for all DOM changes to complete. E.g. when tabs and
114
- * active id are updated at the same time.
115
- */
116
- _registerTabsChange() {
117
- if (this.#isTabsChangeQueued) return;
118
- this.#isTabsChangeQueued = true;
119
- window.queueMicrotask(() => {
120
- if (this.$fastController.isConnected && this.#areSlotsSynced()) this.#handleTabsChange();
121
- this.#isTabsChangeQueued = false;
122
- });
123
- }
124
- #lastActiveId;
125
- #handleTabsChange() {
126
- const validTabs = this._validTabs;
127
- let newActiveId = this.activeid;
128
- if (!validTabs.length || newActiveId && !validTabs.find((t) => t.id === newActiveId)) newActiveId = void 0;
129
- if (!newActiveId && validTabs.length) newActiveId = validTabs[0].id;
130
- if (this.activeid !== newActiveId) {
131
- this.activeid = newActiveId;
132
- this.$emit("change", this.activetab);
133
- }
134
- this.#updateSlottedChildren();
135
- if (this.activeid !== this.#lastActiveId) {
136
- if (this.activetab) {
137
- const shouldAnimate = this.#lastActiveId !== void 0;
138
- this.#scrollToTab(this.activetab, shouldAnimate);
139
- this.#moveActiveIndicator(shouldAnimate);
140
- }
141
- this.#lastActiveId = this.activeid;
142
- } else this.#moveActiveIndicator(this.#isTransitioningTransform);
143
- }
144
- /** Updates the tabs and their panels according to the current state of the component. */
145
- #updateSlottedChildren() {
146
- for (const [index, tab] of this._pairedTabs.entries()) {
147
- const panel = this.tabpanels[index];
148
- const isActiveTab = tab.id === this.activeid;
149
- /* v8 ignore else -- @preserve */
150
- if (tab instanceof require_definition$1.Tab) tab.active = isActiveTab;
151
- tab.setAttribute("aria-controls", panel.id);
152
- tab.setAttribute("tabindex", isActiveTab ? "0" : "-1");
153
- if (isActiveTab && this.connotation) tab.setAttribute("connotation", this.connotation);
154
- else tab.removeAttribute("connotation");
155
- tab.classList.toggle("vertical", this.orientation === TabsOrientation.vertical);
156
- tab.style[gridProperty(oppositeOrientation(this.orientation))] = "";
157
- tab.style[gridProperty(this.orientation)] = `${index + 1}`;
158
- panel.setAttribute("aria-labelledby", tab.id);
159
- panel.hidden = !isActiveTab;
160
- }
161
- }
162
- #onTabClick;
163
- #onTabKeyDown;
164
- /**
165
- * Adjusts the active index by numerical increments.
166
- * Only enabled tabs are considered.
167
- */
168
- adjust(adjustment) {
169
- const focusableTabs = this._validTabs;
170
- const currentActiveTabIndex = focusableTabs.findIndex((t) => t.id === this.activeid);
171
- if (currentActiveTabIndex === -1) return;
172
- const nextTabIndex = (0, _microsoft_fast_web_utilities.limit)(0, focusableTabs.length - 1, currentActiveTabIndex + adjustment);
173
- this.#setActiveTabDueToUserInteraction(focusableTabs[nextTabIndex]);
174
- }
175
- #isTransitioningTransform;
176
- /** @internal */
177
- _onActiveIndicatorTransitionend(event) {
178
- /* v8 ignore else -- @preserve */
179
- if (event.propertyName === "transform") this.#isTransitioningTransform = false;
180
- }
181
- #cancelAnimationIfNeeded() {
182
- this.#isTransitioningTransform = false;
183
- this.activeIndicatorRef.classList.remove("activeIndicatorTransition");
184
- }
185
- #moveActiveIndicator(shouldAnimate) {
186
- const activeTabIndex = this._pairedTabs.findIndex((tab) => tab.id === this.activeid);
187
- if (activeTabIndex === -1) return;
188
- const indicatorEl = this.activeIndicatorRef;
189
- const currentOffset = indicatorEl[offsetProperty(this.orientation)];
190
- indicatorEl.style[gridProperty(this.orientation)] = `${activeTabIndex + 1}`;
191
- const targetOffset = indicatorEl[offsetProperty(this.orientation)];
192
- indicatorEl.style[gridProperty(this.orientation)] = "";
193
- const relativeOffset = targetOffset - currentOffset;
194
- const currentTransform = indicatorEl.style.transform;
195
- const targetTransform = `${translateProperty(this.orientation)}(${relativeOffset}px)`;
196
- if (shouldAnimate) {
197
- indicatorEl.classList.add("activeIndicatorTransition");
198
- if (currentTransform !== targetTransform) this.#isTransitioningTransform = true;
199
- } else this.#cancelAnimationIfNeeded();
200
- indicatorEl.style.transform = targetTransform;
201
- indicatorEl.style.setProperty(ACTIVE_TAB_WIDTH, `${this.tabs[activeTabIndex].getBoundingClientRect().width}px`);
202
- }
203
- /** @internal */
204
- connotationChanged() {
205
- this._registerTabsChange();
206
- }
207
- #updateScrollStatus() {
208
- this.#tabListScrollWrapper.dispatchEvent(new Event("scroll"));
209
- }
210
- #resizeObserver;
76
+ var TableBody = class extends require_vivid_element.VividElement {};
77
+ //#endregion
78
+ //#region src/lib/table/table-body.template.ts
79
+ var TableBodyTemplate = () => {
80
+ return _microsoft_fast_element.html`
81
+ <template>
82
+ <slot></slot>
83
+ </template>
84
+ `;
85
+ };
86
+ //#endregion
87
+ //#region src/lib/table/table-row.ts
88
+ /**
89
+ * @public
90
+ * @component table-row
91
+ * @slot - Holds Table Cell and Table Header Cell elements.
92
+ */
93
+ var TableRow = class extends require_host_semantics.HostSemantics(require_vivid_element.VividElement) {};
94
+ //#endregion
95
+ //#region src/lib/table/table-row.template.ts
96
+ var TableRowTemplate = () => {
97
+ return _microsoft_fast_element.html`
98
+ <template
99
+ ${require_host_semantics.applyHostSemantics({ role: "row" })}
100
+ >
101
+ <div class="base">
102
+ <slot></slot>
103
+ </div>
104
+ </template>
105
+ `;
106
+ };
107
+ //#endregion
108
+ //#region src/lib/table/table-header-cell.ts
109
+ /**
110
+ * @public
111
+ * @component table-header-cell
112
+ * @slot - Holds the header cell's content.
113
+ * @event {CustomEvent<HTMLElement>} cell-focused - Fires when the cell or its contents receive focus
114
+ */
115
+ var TableHeaderCell = class extends require_host_semantics.HostSemantics(require_vivid_element.VividElement) {
211
116
  connectedCallback() {
212
117
  super.connectedCallback();
213
- this._registerTabsChange();
214
- requestAnimationFrame(() => this.#updateScrollStatus());
215
- this.#resizeObserver = new ResizeObserver(() => {
216
- this.#moveActiveIndicator(this.#isTransitioningTransform);
217
- this.#updateScrollStatus();
218
- });
219
- this.#resizeObserver.observe(this.#tabListScrollWrapper);
220
- this.#resizeObserver.observe(this.tablist);
118
+ this.addEventListener("sort", this.#sortHandler);
119
+ }
120
+ #sortHandler(event) {
121
+ const direction = event.detail;
122
+ if (direction === "asc") this.setAttribute("aria-sort", "ascending");
123
+ else if (direction === "desc") this.setAttribute("aria-sort", "descending");
124
+ else if (direction === "none") this.setAttribute("aria-sort", "none");
125
+ else this.removeAttribute("aria-sort");
221
126
  }
222
127
  disconnectedCallback() {
223
128
  super.disconnectedCallback();
224
- this.#resizeObserver.disconnect();
225
- }
226
- get #tabListWrapper() {
227
- return this.shadowRoot.querySelector(".tablist-wrapper");
228
- }
229
- get #tabListScrollWrapper() {
230
- return this.tablist.parentElement;
231
- }
232
- #scrollToTab(tab, shouldAnimate = true) {
233
- const index = this.tabs.findIndex((t) => t === tab);
234
- let left = 0;
235
- let top = 0;
236
- if (this.orientation === TabsOrientation.vertical) {
237
- if (index === this.tabs.length - 1) top = this.#tabListWrapper.scrollHeight;
238
- if (index > 0 && index < this.tabs.length - 1) top = tab.offsetTop - this.#tabListWrapper.offsetHeight / 2 + tab.offsetHeight / 2;
239
- } else {
240
- if (index === this.tabs.length - 1) left = this.#tabListWrapper.scrollWidth;
241
- if (index > 0 && index < this.tabs.length - 1) left = tab.offsetLeft - this.#tabListWrapper.offsetWidth / 2 + tab.offsetWidth / 2;
242
- }
243
- this.#tabListWrapper.scrollTo({
244
- top,
245
- left,
246
- behavior: shouldAnimate ? "smooth" : "instant"
247
- });
129
+ this.removeEventListener("sort", this.#sortHandler);
248
130
  }
249
131
  };
250
- require_decorate.__decorate([_microsoft_fast_element.attr], Tabs.prototype, "orientation", void 0);
251
- require_decorate.__decorate([_microsoft_fast_element.observable], Tabs.prototype, "tabs", void 0);
252
- require_decorate.__decorate([_microsoft_fast_element.observable], Tabs.prototype, "tabpanels", void 0);
253
- require_decorate.__decorate([_microsoft_fast_element.attr], Tabs.prototype, "activeid", void 0);
254
- require_decorate.__decorate([_microsoft_fast_element.observable], Tabs.prototype, "activeIndicatorRef", void 0);
255
- require_decorate.__decorate([_microsoft_fast_element.observable], Tabs.prototype, "tablist", void 0);
256
- require_decorate.__decorate([_microsoft_fast_element.attr], Tabs.prototype, "connotation", void 0);
257
- require_decorate.__decorate([_microsoft_fast_element.attr], Tabs.prototype, "gutters", void 0);
258
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
259
- mode: "boolean",
260
- attribute: "scrollable-panel"
261
- })], Tabs.prototype, "scrollablePanel", void 0);
262
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "tabs-layout" })], Tabs.prototype, "tabsLayout", void 0);
263
- require_decorate.__decorate([_microsoft_fast_element.observable], Tabs.prototype, "_actionItemsSlottedContent", void 0);
264
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Tabs.prototype, "activeindicator", void 0);
265
132
  //#endregion
266
- //#region src/lib/tabs/tabs.template.ts
267
- function setNoScrollState(scrollShadow, scrollWrapper) {
268
- if (scrollWrapper.scrollWidth <= scrollWrapper.clientWidth) {
269
- scrollShadow.classList.toggle("start-scroll", false);
270
- scrollShadow.classList.toggle("end-scroll", false);
271
- return true;
272
- }
273
- return false;
274
- }
275
- function addStartShadow(scrollShadow, scrollWrapper) {
276
- scrollShadow.classList.toggle("start-scroll", scrollWrapper.scrollLeft > 0);
277
- }
278
- function addEndShadow(scrollShadow, scrollWrapper) {
279
- scrollShadow.classList.toggle("end-scroll", scrollWrapper.scrollLeft + 1 < scrollWrapper.scrollWidth - scrollWrapper.clientWidth);
280
- }
281
- function setShadowWhenScrollTabs(_, { event }) {
282
- const scrollWrapper = event.currentTarget;
283
- const scrollShadow = scrollWrapper.parentElement;
284
- if (setNoScrollState(scrollShadow, scrollWrapper)) return;
285
- addStartShadow(scrollShadow, scrollWrapper);
286
- addEndShadow(scrollShadow, scrollWrapper);
287
- }
288
- var TabsTemplate = _microsoft_fast_element.html`
289
- <template>
290
- <div
291
- class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("base", `layout-${x.tabsLayout ?? "align-start"}`, [`connotation-${x.connotation}`, Boolean(x.connotation)], [`orientation-${x.orientation}`, Boolean(x.orientation)], `gutters-${x.gutters ?? "small"}`, ["scroll", x.scrollablePanel], ["has-action-items", Boolean(x._actionItemsSlottedContent.length)])}"
133
+ //#region src/lib/table/table-header-cell.template.ts
134
+ var TableHeaderCellTemplate = (context) => {
135
+ const tableHeadTag = context.tagForNonDependency(tableHeadName);
136
+ return _microsoft_fast_element.html`
137
+ <template
138
+ ${require_host_semantics.applyHostSemantics({ role: (x) => x.closest(tableHeadTag) !== null ? require_data_grid_options.DataGridCellRole.columnheader : require_data_grid_options.DataGridCellRole.rowheader })}
292
139
  >
293
- <div class="tabs">
294
- <div class="scroll-shadow">
295
- <div class="tablist-wrapper" @scroll="${setShadowWhenScrollTabs}">
296
- <div class="tablist" role="tablist" ${(0, _microsoft_fast_element.ref)("tablist")}>
297
- <slot name="tab" ${(0, _microsoft_fast_element.ref)("_tabsSlot")} ${(0, _microsoft_fast_element.slotted)("tabs")}></slot>
298
- <div
299
- ${(0, _microsoft_fast_element.ref)("activeIndicatorRef")}
300
- class="active-indicator"
301
- @transitionend="${(x, c) => x._onActiveIndicatorTransitionend(c.event)}"
302
- ></div>
303
- </div>
304
- </div>
305
- </div>
306
- <slot
307
- name="action-items"
308
- ${(0, _microsoft_fast_element.slotted)("_actionItemsSlottedContent")}
309
- ></slot>
140
+ <div class="base">
141
+ <slot></slot>
310
142
  </div>
311
- <div class="tabpanel" part="tab-panel">
312
- <slot
313
- name="tabpanel"
314
- ${(0, _microsoft_fast_element.ref)("_tabPanelsSlot")}
315
- ${(0, _microsoft_fast_element.slotted)("tabpanels")}
316
- ></slot>
143
+ </template>
144
+ `;
145
+ };
146
+ //#endregion
147
+ //#region src/lib/table/table-cell.ts
148
+ /**
149
+ * @public
150
+ * @component table-cell
151
+ * @slot - Holds the cell's content.
152
+ * @event {CustomEvent<HTMLElement>} cell-focused - Fires when the cell or its contents receive focus
153
+ */
154
+ var TableCell = class extends require_host_semantics.HostSemantics(require_vivid_element.VividElement) {};
155
+ //#endregion
156
+ //#region src/lib/table/table-cell.template.ts
157
+ var TableCellTemplate = () => {
158
+ return _microsoft_fast_element.html`
159
+ <template
160
+ ${require_host_semantics.applyHostSemantics({ role: () => "cell" })}
161
+ >
162
+ <div class="base">
163
+ <slot></slot>
317
164
  </div>
318
- </div>
319
- </template>
320
- `;
165
+ </template>
166
+ `;
167
+ };
321
168
  //#endregion
322
- //#region src/lib/tabs/definition.ts
169
+ //#region src/lib/table/table-sorting-button.ts
170
+ /**
171
+ * @public
172
+ * @component table-sorting-button
173
+ * @event {CustomEvent<undefined>} sort - Emitted when sorting button is clicked.
174
+ */
175
+ var TableSortingButton = class extends require_delegates_aria.DelegatesAria(require_vivid_element.VividElement) {
176
+ get #nextDirection() {
177
+ if (!this.direction || this.direction === "none") return "asc";
178
+ else if (this.direction === "asc") return "desc";
179
+ else return "none";
180
+ }
181
+ /** Toggles the sort direction and emits the `sort` event. */
182
+ toggleSort() {
183
+ if (!this.$emit("sort", this.#nextDirection)) return;
184
+ this.direction = this.#nextDirection;
185
+ this.dispatchEvent(new CustomEvent("sort", {
186
+ detail: this.direction,
187
+ bubbles: true,
188
+ composed: true
189
+ }));
190
+ }
191
+ };
192
+ require_decorate.__decorate([_microsoft_fast_element.attr], TableSortingButton.prototype, "direction", void 0);
193
+ //#endregion
194
+ //#region src/lib/table/table-sorting-button.template.ts
195
+ var TableSortingButtonTemplate = (context) => {
196
+ const iconTag = context.tagFor(require_icon.Icon);
197
+ return _microsoft_fast_element.html`
198
+ <template
199
+ @click="${(x) => x.toggleSort()}"
200
+ ${require_host_semantics.applyHostSemantics({ role: "button" })}
201
+ >
202
+ <button>
203
+ ${(x) => {
204
+ switch (x.direction) {
205
+ case "asc": return _microsoft_fast_element.html`<${iconTag} name="sort-asc-line"></${iconTag}>`;
206
+ case "desc": return _microsoft_fast_element.html`<${iconTag} name="sort-desc-line"></${iconTag}>`;
207
+ default: return _microsoft_fast_element.html`<${iconTag} name="sort-line"></${iconTag}>`;
208
+ }
209
+ }}
210
+ </button>
211
+ </template>
212
+ `;
213
+ };
214
+ //#endregion
215
+ //#region src/lib/table/definition.ts
216
+ /** @internal */
217
+ var tableCellDefinition = require_vivid_element.defineVividComponent("table-cell", TableCell, TableCellTemplate, [], { styles: table_cell_default });
218
+ /** @internal */
219
+ var tableHeaderCellDefinition = require_vivid_element.defineVividComponent("table-header-cell", TableHeaderCell, TableHeaderCellTemplate, [], { styles: table_header_cell_default });
323
220
  /** @internal */
324
- var tabsDefinition = require_vivid_element.defineVividComponent("tabs", Tabs, TabsTemplate, [require_definition$1.tabDefinition, require_definition.tabPanelDefinition], { styles: tabs_default });
221
+ var tableRowDefinition = require_vivid_element.defineVividComponent("table-row", TableRow, TableRowTemplate, [], { styles: table_row_default });
222
+ /** @internal */
223
+ var tableBodyDefinition = require_vivid_element.defineVividComponent("table-body", TableBody, TableBodyTemplate, [], { styles: table_body_default });
224
+ /** @internal */
225
+ var tableHeadDefinition = require_vivid_element.defineVividComponent("table-head", TableHead, TableHeadTemplate, [], { styles: table_head_default });
226
+ /** @internal */
227
+ var tableSortingButtonDefinition = require_vivid_element.defineVividComponent("table-sorting-button", TableSortingButton, TableSortingButtonTemplate, [require_definition.iconDefinition], { styles: table_sorting_button_default });
228
+ /** @internal */
229
+ var tableDefinition = require_vivid_element.defineVividComponent("table", Table, TableTemplate, [
230
+ tableCellDefinition,
231
+ tableHeaderCellDefinition,
232
+ tableRowDefinition,
233
+ tableHeadDefinition,
234
+ tableBodyDefinition,
235
+ tableSortingButtonDefinition
236
+ ], { styles: table_default });
325
237
  /**
326
- * Registers the tabs elements with the design system.
238
+ * Registers the table element with the design system.
327
239
  *
328
240
  * @param prefix - the prefix to use for the component name
329
241
  */
330
- var registerTabs = require_vivid_element.createRegisterFunction(tabsDefinition);
242
+ var registerTable = require_vivid_element.createRegisterFunction(tableDefinition);
331
243
  //#endregion
332
- Object.defineProperty(exports, "Tabs", {
244
+ Object.defineProperty(exports, "Table", {
245
+ enumerable: true,
246
+ get: function() {
247
+ return Table;
248
+ }
249
+ });
250
+ Object.defineProperty(exports, "TableBody", {
251
+ enumerable: true,
252
+ get: function() {
253
+ return TableBody;
254
+ }
255
+ });
256
+ Object.defineProperty(exports, "TableCell", {
257
+ enumerable: true,
258
+ get: function() {
259
+ return TableCell;
260
+ }
261
+ });
262
+ Object.defineProperty(exports, "TableHead", {
263
+ enumerable: true,
264
+ get: function() {
265
+ return TableHead;
266
+ }
267
+ });
268
+ Object.defineProperty(exports, "TableHeaderCell", {
269
+ enumerable: true,
270
+ get: function() {
271
+ return TableHeaderCell;
272
+ }
273
+ });
274
+ Object.defineProperty(exports, "TableRow", {
275
+ enumerable: true,
276
+ get: function() {
277
+ return TableRow;
278
+ }
279
+ });
280
+ Object.defineProperty(exports, "TableSortingButton", {
281
+ enumerable: true,
282
+ get: function() {
283
+ return TableSortingButton;
284
+ }
285
+ });
286
+ Object.defineProperty(exports, "registerTable", {
287
+ enumerable: true,
288
+ get: function() {
289
+ return registerTable;
290
+ }
291
+ });
292
+ Object.defineProperty(exports, "tableBodyDefinition", {
293
+ enumerable: true,
294
+ get: function() {
295
+ return tableBodyDefinition;
296
+ }
297
+ });
298
+ Object.defineProperty(exports, "tableCellDefinition", {
299
+ enumerable: true,
300
+ get: function() {
301
+ return tableCellDefinition;
302
+ }
303
+ });
304
+ Object.defineProperty(exports, "tableDefinition", {
305
+ enumerable: true,
306
+ get: function() {
307
+ return tableDefinition;
308
+ }
309
+ });
310
+ Object.defineProperty(exports, "tableHeadDefinition", {
333
311
  enumerable: true,
334
312
  get: function() {
335
- return Tabs;
313
+ return tableHeadDefinition;
336
314
  }
337
315
  });
338
- Object.defineProperty(exports, "TabsGutters", {
316
+ Object.defineProperty(exports, "tableHeaderCellDefinition", {
339
317
  enumerable: true,
340
318
  get: function() {
341
- return TabsGutters;
319
+ return tableHeaderCellDefinition;
342
320
  }
343
321
  });
344
- Object.defineProperty(exports, "registerTabs", {
322
+ Object.defineProperty(exports, "tableRowDefinition", {
345
323
  enumerable: true,
346
324
  get: function() {
347
- return registerTabs;
325
+ return tableRowDefinition;
348
326
  }
349
327
  });
350
- Object.defineProperty(exports, "tabsDefinition", {
328
+ Object.defineProperty(exports, "tableSortingButtonDefinition", {
351
329
  enumerable: true,
352
330
  get: function() {
353
- return tabsDefinition;
331
+ return tableSortingButtonDefinition;
354
332
  }
355
333
  });