@vonage/vivid 5.5.0 → 5.7.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 (345) hide show
  1. package/LICENSE.md +201 -0
  2. package/accordion/definition.cjs +5 -0
  3. package/accordion/definition.js +5 -0
  4. package/accordion/index.cjs +1 -1
  5. package/accordion/index.js +14 -3
  6. package/accordion-item/definition.cjs +1 -1
  7. package/accordion-item/definition.js +1 -1
  8. package/alert/definition.cjs +4 -12
  9. package/alert/definition.js +5 -13
  10. package/alert/index.cjs +11 -11
  11. package/alert/index.js +33 -37
  12. package/audio-player/definition.cjs +4 -0
  13. package/audio-player/definition.js +4 -0
  14. package/audio-player/index.cjs +1 -1
  15. package/audio-player/index.js +8 -2
  16. package/avatar/definition.cjs +1 -1
  17. package/avatar/definition.js +1 -1
  18. package/avatar/index.cjs +1 -1
  19. package/avatar/index.js +4 -4
  20. package/banner/definition.cjs +2 -4
  21. package/banner/definition.js +2 -4
  22. package/banner/index.cjs +2 -2
  23. package/banner/index.js +1 -1
  24. package/breadcrumb/definition.cjs +1 -0
  25. package/breadcrumb/definition.js +1 -0
  26. package/breadcrumb/index.cjs +1 -1
  27. package/breadcrumb/index.js +1 -0
  28. package/breadcrumb-item/definition.cjs +1 -1
  29. package/breadcrumb-item/definition.js +1 -1
  30. package/breadcrumb-item/index.cjs +4 -4
  31. package/breadcrumb-item/index.js +4 -4
  32. package/bundled/affix.js +1 -1
  33. package/bundled/anchored.cjs +1 -1
  34. package/bundled/anchored.js +6 -6
  35. package/bundled/attribute-binding-behaviour.cjs +1 -1
  36. package/bundled/attribute-binding-behaviour.js +3 -1
  37. package/bundled/base-color-picker.cjs +1 -1
  38. package/bundled/base-color-picker.js +9 -3
  39. package/bundled/base-progress.cjs +1 -1
  40. package/bundled/base-progress.js +3 -0
  41. package/bundled/button.cjs +1 -1
  42. package/bundled/button.js +14 -10
  43. package/bundled/calendar-picker.template.cjs +1 -1
  44. package/bundled/calendar-picker.template.js +3 -1
  45. package/bundled/definition.cjs +1 -1
  46. package/bundled/definition.js +21 -21
  47. package/bundled/definition10.cjs +7 -7
  48. package/bundled/definition10.js +27 -17
  49. package/bundled/definition11.cjs +2 -2
  50. package/bundled/definition11.js +5 -5
  51. package/bundled/definition12.cjs +3 -3
  52. package/bundled/definition12.js +2 -1
  53. package/bundled/definition13.cjs +1 -1
  54. package/bundled/definition13.js +1 -1
  55. package/bundled/definition17.cjs +1 -1
  56. package/bundled/definition17.js +4 -1
  57. package/bundled/definition18.cjs +1 -1
  58. package/bundled/definition18.js +18 -7
  59. package/bundled/definition19.cjs +6 -6
  60. package/bundled/definition19.js +103 -68
  61. package/bundled/definition2.cjs +8 -9
  62. package/bundled/definition2.js +67 -75
  63. package/bundled/definition20.cjs +1 -1
  64. package/bundled/definition20.js +4 -4
  65. package/bundled/definition22.cjs +1 -1
  66. package/bundled/definition22.js +2 -1
  67. package/bundled/definition3.cjs +2 -2
  68. package/bundled/definition3.js +2 -1
  69. package/bundled/definition5.cjs +1 -1
  70. package/bundled/definition5.js +10 -4
  71. package/bundled/definition6.cjs +2 -2
  72. package/bundled/definition6.js +2 -1
  73. package/bundled/definition7.cjs +1 -1
  74. package/bundled/definition7.js +8 -5
  75. package/bundled/definition8.cjs +1 -1
  76. package/bundled/definition8.js +6 -5
  77. package/bundled/definition9.cjs +6 -6
  78. package/bundled/definition9.js +545 -488
  79. package/bundled/delegates-aria.cjs +1 -1
  80. package/bundled/delegates-aria.js +3 -1
  81. package/bundled/form-associated.cjs +1 -1
  82. package/bundled/form-associated.js +11 -3
  83. package/bundled/host-semantics.js +4 -4
  84. package/bundled/listbox.cjs +1 -1
  85. package/bundled/listbox.js +21 -3
  86. package/bundled/localized.cjs +1 -1
  87. package/bundled/localized.js +137 -67
  88. package/bundled/mixins.cjs +4 -4
  89. package/bundled/mixins.js +10 -7
  90. package/bundled/picker-field.template.cjs +1 -1
  91. package/bundled/picker-field.template.js +1 -0
  92. package/bundled/scrollIntoView.cjs +1 -1
  93. package/bundled/scrollIntoView.js +4 -1
  94. package/bundled/text-field.cjs +1 -1
  95. package/bundled/text-field.js +1 -1
  96. package/bundled/time-selection-picker.template.cjs +11 -11
  97. package/bundled/time-selection-picker.template.js +4 -1
  98. package/bundled/vivid-element.cjs +4 -4
  99. package/bundled/vivid-element.js +529 -492
  100. package/calendar/definition.cjs +2 -0
  101. package/calendar/definition.js +2 -0
  102. package/calendar/index.cjs +1 -1
  103. package/calendar/index.js +2 -0
  104. package/calendar-event/definition.cjs +1 -1
  105. package/calendar-event/definition.js +1 -1
  106. package/calendar-event/index.cjs +2 -2
  107. package/calendar-event/index.js +5 -5
  108. package/card/definition.cjs +1 -1
  109. package/card/definition.js +1 -1
  110. package/card/index.cjs +1 -1
  111. package/card/index.js +1 -1
  112. package/checkbox/definition.cjs +2 -1
  113. package/checkbox/definition.js +2 -1
  114. package/color-picker/definition.cjs +6 -1
  115. package/color-picker/definition.js +6 -1
  116. package/color-picker/index.cjs +1 -1
  117. package/color-picker/index.js +6 -1
  118. package/combobox/definition.cjs +17 -6
  119. package/combobox/definition.js +17 -6
  120. package/combobox/index.cjs +14 -9
  121. package/combobox/index.js +48 -36
  122. package/contextual-help/definition.cjs +1 -1
  123. package/contextual-help/definition.js +1 -1
  124. package/custom-elements.json +6985 -542
  125. package/data-grid/definition.cjs +106 -8
  126. package/data-grid/definition.js +106 -8
  127. package/data-grid/index.cjs +52 -38
  128. package/data-grid/index.js +313 -242
  129. package/date-range-picker/definition.cjs +2 -0
  130. package/date-range-picker/definition.js +2 -0
  131. package/date-range-picker/index.cjs +1 -1
  132. package/date-range-picker/index.js +5 -1
  133. package/dial-pad/definition.cjs +10 -1
  134. package/dial-pad/definition.js +10 -1
  135. package/dial-pad/index.cjs +2 -2
  136. package/dial-pad/index.js +37 -13
  137. package/dialog/definition.cjs +2 -1
  138. package/dialog/definition.js +2 -1
  139. package/dialog/index.cjs +1 -1
  140. package/dialog/index.js +2 -1
  141. package/fab/definition.cjs +2 -1
  142. package/fab/definition.js +2 -1
  143. package/fab/index.cjs +1 -1
  144. package/fab/index.js +6 -5
  145. package/file-picker/definition.cjs +7 -2
  146. package/file-picker/definition.js +7 -2
  147. package/file-picker/index.cjs +6 -6
  148. package/file-picker/index.js +82 -73
  149. package/icon/definition.cjs +12 -21
  150. package/icon/definition.js +13 -22
  151. package/index.cjs +21 -0
  152. package/index.js +1 -1
  153. package/lib/data-grid/locale.d.ts +5 -0
  154. package/lib/date-picker/date-picker.d.ts +38 -38
  155. package/lib/date-range-picker/date-range-picker.d.ts +20 -20
  156. package/lib/date-time-picker/date-time-picker.d.ts +40 -40
  157. package/lib/icon/icon.d.ts +0 -1
  158. package/lib/menu/menu.d.ts +4 -4
  159. package/lib/rich-text-editor/definition.d.ts +3 -2
  160. package/lib/rich-text-editor/locale.d.ts +29 -3
  161. package/lib/rich-text-editor/popover.d.ts +19 -0
  162. package/lib/rich-text-editor/rich-text-editor.d.ts +16 -45
  163. package/lib/rich-text-editor/rich-text-editor.template.d.ts +2 -2
  164. package/lib/rich-text-editor/rte/config.d.ts +18 -0
  165. package/lib/rich-text-editor/rte/document.d.ts +28 -0
  166. package/lib/rich-text-editor/rte/exports.d.ts +23 -0
  167. package/lib/rich-text-editor/rte/feature.d.ts +46 -0
  168. package/lib/rich-text-editor/rte/features/internal/basic-text-blocks.d.ts +33 -0
  169. package/lib/rich-text-editor/rte/features/internal/foreign-html.d.ts +11 -0
  170. package/lib/rich-text-editor/rte/features/internal/history.d.ts +10 -0
  171. package/lib/rich-text-editor/rte/features/internal/text-style.d.ts +18 -0
  172. package/lib/rich-text-editor/rte/html-parser.d.ts +24 -0
  173. package/lib/rich-text-editor/rte/html-serializer.d.ts +30 -0
  174. package/lib/rich-text-editor/rte/instance.d.ts +57 -0
  175. package/lib/rich-text-editor/rte/utils/default-textblock.d.ts +2 -0
  176. package/lib/rich-text-editor/rte/utils/impl.d.ts +1 -0
  177. package/lib/rich-text-editor/rte/utils/textblock-attrs.d.ts +29 -0
  178. package/lib/rich-text-editor/rte/utils/textblock-marks.d.ts +10 -0
  179. package/lib/rich-text-editor/rte/utils/ui.d.ts +109 -0
  180. package/lib/simple-color-picker/simple-color-picker.d.ts +4 -4
  181. package/lib/text-area/text-area.d.ts +1 -1
  182. package/lib/text-field/text-field.d.ts +1 -1
  183. package/lib/time-picker/time-picker.d.ts +20 -20
  184. package/lib/toggletip/toggletip.d.ts +4 -4
  185. package/lib/tooltip/tooltip.d.ts +4 -4
  186. package/locales/de-DE.cjs +42 -4
  187. package/locales/de-DE.js +42 -4
  188. package/locales/en-GB.cjs +43 -5
  189. package/locales/en-GB.js +43 -5
  190. package/locales/en-US.cjs +43 -5
  191. package/locales/en-US.js +43 -5
  192. package/locales/ja-JP.cjs +43 -5
  193. package/locales/ja-JP.js +43 -5
  194. package/locales/zh-CN.cjs +43 -5
  195. package/locales/zh-CN.js +43 -5
  196. package/menu/definition.cjs +2 -1
  197. package/menu/definition.js +2 -1
  198. package/nav-disclosure/definition.cjs +1 -1
  199. package/nav-disclosure/definition.js +1 -1
  200. package/nav-disclosure/index.cjs +1 -1
  201. package/nav-disclosure/index.js +1 -1
  202. package/nav-item/definition.cjs +1 -1
  203. package/nav-item/definition.js +1 -1
  204. package/nav-item/index.cjs +1 -1
  205. package/nav-item/index.js +5 -5
  206. package/number-field/definition.cjs +5 -3
  207. package/number-field/definition.js +5 -3
  208. package/number-field/index.cjs +5 -3
  209. package/number-field/index.js +34 -32
  210. package/package.json +76 -62
  211. package/pagination/definition.cjs +2 -0
  212. package/pagination/definition.js +2 -0
  213. package/pagination/index.cjs +1 -1
  214. package/pagination/index.js +2 -0
  215. package/radio/definition.cjs +5 -1
  216. package/radio/definition.js +5 -1
  217. package/range-slider/definition.cjs +3 -2
  218. package/range-slider/definition.js +3 -2
  219. package/range-slider/index.cjs +1 -1
  220. package/range-slider/index.js +4 -2
  221. package/rich-text-editor/definition.cjs +17942 -1074
  222. package/rich-text-editor/definition.js +17926 -1079
  223. package/rich-text-editor/index.cjs +29 -130
  224. package/rich-text-editor/index.js +5565 -2474
  225. package/searchable-select/definition.cjs +7 -3
  226. package/searchable-select/definition.js +7 -3
  227. package/searchable-select/index.cjs +5 -5
  228. package/searchable-select/index.js +11 -7
  229. package/select/definition.cjs +17 -2
  230. package/select/definition.js +17 -2
  231. package/selectable-box/definition.cjs +1 -1
  232. package/selectable-box/definition.js +1 -1
  233. package/selectable-box/index.cjs +3 -3
  234. package/selectable-box/index.js +1 -1
  235. package/shared/patterns/anchored.d.ts +8 -8
  236. package/shared/patterns/char-count/char-count.d.ts +1 -1
  237. package/shared/patterns/localized.d.ts +386 -0
  238. package/shared/picker-field/mixins/calendar-picker.d.ts +10 -10
  239. package/shared/picker-field/mixins/calendar-picker.template.d.ts +10 -10
  240. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +20 -20
  241. package/shared/picker-field/mixins/single-date-picker.d.ts +28 -28
  242. package/shared/picker-field/mixins/single-value-picker.d.ts +8 -8
  243. package/shared/picker-field/mixins/time-selection-picker.d.ts +20 -20
  244. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +20 -20
  245. package/shared/utils/promise.d.ts +7 -0
  246. package/simple-color-picker/definition.cjs +4 -1
  247. package/simple-color-picker/definition.js +4 -1
  248. package/simple-color-picker/index.cjs +3 -3
  249. package/simple-color-picker/index.js +4 -1
  250. package/slider/definition.cjs +8 -2
  251. package/slider/definition.js +8 -2
  252. package/split-button/definition.cjs +1 -1
  253. package/split-button/definition.js +1 -1
  254. package/split-button/index.cjs +1 -1
  255. package/split-button/index.js +1 -1
  256. package/styles/core/all.css +5 -1
  257. package/styles/core/theme.css +5 -1
  258. package/styles/core/typography.css +1 -1
  259. package/styles/tokens/theme-dark.css +4 -4
  260. package/styles/tokens/theme-light.css +4 -4
  261. package/styles/tokens/vivid-2-compat.css +1 -1
  262. package/switch/definition.cjs +2 -1
  263. package/switch/definition.js +2 -1
  264. package/switch/index.cjs +2 -2
  265. package/switch/index.js +11 -10
  266. package/tab/definition.cjs +1 -1
  267. package/tab/definition.js +1 -1
  268. package/tabs/definition.cjs +2 -0
  269. package/tabs/definition.js +2 -0
  270. package/tabs/index.cjs +1 -1
  271. package/tabs/index.js +2 -0
  272. package/tag/definition.cjs +1 -1
  273. package/tag/definition.js +1 -1
  274. package/tag/index.cjs +1 -1
  275. package/tag/index.js +1 -1
  276. package/text-area/definition.cjs +13 -7
  277. package/text-area/definition.js +13 -7
  278. package/text-area/index.cjs +6 -6
  279. package/text-area/index.js +20 -14
  280. package/text-field/definition.cjs +16 -6
  281. package/text-field/definition.js +16 -6
  282. package/toggletip/definition.cjs +5 -1
  283. package/toggletip/definition.js +5 -1
  284. package/tooltip/definition.cjs +4 -1
  285. package/tooltip/definition.js +4 -1
  286. package/tree-view/definition.cjs +28 -6
  287. package/tree-view/definition.js +28 -6
  288. package/tree-view/index.cjs +1 -1
  289. package/tree-view/index.js +28 -6
  290. package/unbundled/_commonjsHelpers.cjs +0 -26
  291. package/unbundled/_commonjsHelpers.js +1 -26
  292. package/unbundled/attribute-binding-behaviour.cjs +1 -0
  293. package/unbundled/attribute-binding-behaviour.js +1 -0
  294. package/unbundled/base-color-picker.cjs +9 -3
  295. package/unbundled/base-color-picker.js +9 -3
  296. package/unbundled/base-progress.cjs +3 -0
  297. package/unbundled/base-progress.js +3 -0
  298. package/unbundled/button.cjs +14 -10
  299. package/unbundled/button.js +14 -10
  300. package/unbundled/calendar-picker.template.cjs +3 -1
  301. package/unbundled/calendar-picker.template.js +3 -1
  302. package/unbundled/definition.cjs +2 -1
  303. package/unbundled/definition.js +2 -1
  304. package/unbundled/definition2.cjs +5 -2
  305. package/unbundled/definition2.js +5 -2
  306. package/unbundled/definition3.cjs +2 -1
  307. package/unbundled/definition3.js +2 -1
  308. package/unbundled/definition4.cjs +2 -1
  309. package/unbundled/definition4.js +2 -1
  310. package/unbundled/definition5.cjs +3 -2
  311. package/unbundled/definition5.js +4 -3
  312. package/unbundled/delegates-aria.cjs +1 -0
  313. package/unbundled/delegates-aria.js +1 -0
  314. package/unbundled/form-associated.cjs +4 -0
  315. package/unbundled/form-associated.js +4 -0
  316. package/unbundled/listbox.cjs +16 -1
  317. package/unbundled/listbox.js +16 -1
  318. package/unbundled/localized.cjs +36 -0
  319. package/unbundled/localized.js +37 -2
  320. package/unbundled/mixins.cjs +2 -0
  321. package/unbundled/mixins.js +2 -0
  322. package/unbundled/picker-field.template.cjs +1 -0
  323. package/unbundled/picker-field.template.js +1 -0
  324. package/unbundled/scrollIntoView.cjs +1 -0
  325. package/unbundled/scrollIntoView.js +1 -0
  326. package/unbundled/text-field.cjs +1 -1
  327. package/unbundled/text-field.js +1 -1
  328. package/unbundled/time-selection-picker.template.cjs +4 -1
  329. package/unbundled/time-selection-picker.template.js +4 -1
  330. package/unbundled/vivid-element.cjs +1 -1
  331. package/unbundled/vivid-element.js +1 -1
  332. package/video-player/definition.cjs +54 -44
  333. package/video-player/definition.js +51 -41
  334. package/video-player/index.cjs +28 -28
  335. package/video-player/index.js +1449 -1443
  336. package/vivid.api.json +6463 -6099
  337. package/lib/rich-text-editor/facades/prose-mirror-vivid.schema.d.ts +0 -4
  338. package/lib/rich-text-editor/facades/vivid-prose-mirror.facade.d.ts +0 -18
  339. package/lib/rich-text-editor/image-placeholder/definition.d.ts +0 -2
  340. package/lib/rich-text-editor/image-placeholder/image-placeholder.d.ts +0 -7
  341. package/lib/rich-text-editor/image-placeholder/image-placeholder.template.d.ts +0 -4
  342. package/lib/rich-text-editor/menubar/consts.d.ts +0 -18
  343. package/lib/rich-text-editor/menubar/definition.d.ts +0 -2
  344. package/lib/rich-text-editor/menubar/menubar.d.ts +0 -386
  345. package/lib/rich-text-editor/menubar/menubar.template.d.ts +0 -4
@@ -16,7 +16,7 @@ const dataGridStyles = ":host{display:block}:host([generate-header=sticky]){max-
16
16
 
17
17
  const dataGridRowStyles = ".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{display:grid;width:100%;box-sizing:border-box;color:var(--vvd-color-canvas-text)}:host([row-type=sticky-header]) .base{position:sticky;z-index:9;top:0;background:var(--data-grid-row-background, var(--vvd-color-canvas))}:host([row-type=hidden-header]) .base{display:none}:host(:is([selected]):not([row-type*=header])) .base{background-color:var(--_appearance-color-fill)}";
18
18
 
19
- const dataGridCellStyles = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}:host([data-fixed]){position:sticky;z-index:5;background:var(--data-grid-cell-background, var(--vvd-color-surface-2dp))}:host([data-fixed]):before{position:absolute;z-index:1;top:0;right:0;width:1px;block-size:100%;box-shadow:4px 0 4px #0000001a,2px 0 2px #0000000d,1px 0 1px #0000000d;content:\"\";pointer-events:none}.base.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))}.base: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))}.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{display:flex;box-sizing:border-box;align-items:center;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size, var(--_data-grid-cell-default-block-size));color:var(--_appearance-color-text);font:var(--vvd-typography-base);min-block-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:13px 14px;padding-inline:12px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_data-grid-cell-default-white-space: nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size: 100%;--_data-grid-cell-default-white-space: normal}:host(:is([selected]):not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}slot{display:block;overflow:hidden;text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space, var(--_data-grid-cell-default-white-space))}:host(:not([cell-type=columnheader][aria-sort])) slot{inline-size:100%}.header-icon{margin-inline-start:16px}";
19
+ const dataGridCellStyles = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}:host([data-fixed]){position:sticky;z-index:5;background:var(--data-grid-cell-background, var(--vvd-color-surface-2dp))}:host([data-fixed]):before{position:absolute;z-index:1;top:0;right:0;width:1px;block-size:100%;box-shadow:4px 0 4px #0000001a,2px 0 2px #0000000d,1px 0 1px #0000000d;content:\"\";pointer-events:none}.base.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))}.base: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))}.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{display:flex;box-sizing:border-box;align-items:center;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size, var(--_data-grid-cell-default-block-size));color:var(--_appearance-color-text);font:var(--vvd-typography-base);min-block-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:13px 14px;padding-inline:12px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_data-grid-cell-default-white-space: nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size: 100%;--_data-grid-cell-default-white-space: normal}:host(:is([selected]):not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}slot{display:block;overflow:hidden;text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space, var(--_data-grid-cell-default-white-space))}:host(:not([cell-type=columnheader][aria-sort])) slot{inline-size:100%}.header-icon{margin-inline-start:16px}";
20
20
 
21
21
  let kernelMode;
22
22
  const kernelAttr = "fast-kernel";
@@ -106,6 +106,39 @@ const noop = () => void 0;
106
106
  result.globalThis = result;
107
107
  }
108
108
  })();
109
+ (function requestIdleCallbackPolyfill() {
110
+ if ("requestIdleCallback" in globalThis) {
111
+ return;
112
+ }
113
+ /**
114
+ * A polyfill for requestIdleCallback that falls back to setTimeout.
115
+ *
116
+ * @param callback - The function to call when the browser is idle.
117
+ * @param options - Options object that may contain a timeout property.
118
+ * @returns An ID that can be used to cancel the callback.
119
+ * @public
120
+ */
121
+ globalThis.requestIdleCallback = function requestIdleCallback(callback, options) {
122
+ const start = Date.now();
123
+ return setTimeout(() => {
124
+ callback({
125
+ didTimeout: (options === null || options === void 0 ? void 0 : options.timeout)
126
+ ? Date.now() - start >= options.timeout
127
+ : false,
128
+ timeRemaining: () => 0,
129
+ });
130
+ }, 1);
131
+ };
132
+ /**
133
+ * A polyfill for cancelIdleCallback that falls back to clearTimeout.
134
+ *
135
+ * @param id - The ID of the callback to cancel.
136
+ * @public
137
+ */
138
+ globalThis.cancelIdleCallback = function cancelIdleCallback(id) {
139
+ clearTimeout(id);
140
+ };
141
+ })();
109
142
 
110
143
  // ensure FAST global - duplicated debug.ts
111
144
  const propConfig = {
@@ -1011,6 +1044,7 @@ class DataGridCell extends localized.Localized(hostSemantics.HostSemantics(vivid
1011
1044
  case DataGridCellTypes.columnHeader:
1012
1045
  if (this.columnDefinition !== null && this.columnDefinition.headerCellInternalFocusQueue !== true && typeof this.columnDefinition.headerCellFocusTargetCallback === "function") {
1013
1046
  const focusTarget = this.columnDefinition.headerCellFocusTargetCallback(this);
1047
+ /* v8 ignore else -- @preserve */
1014
1048
  if (focusTarget !== null) {
1015
1049
  focusTarget.focus();
1016
1050
  }
@@ -1019,6 +1053,7 @@ class DataGridCell extends localized.Localized(hostSemantics.HostSemantics(vivid
1019
1053
  default:
1020
1054
  if (this.columnDefinition !== null && this.columnDefinition.cellInternalFocusQueue !== true && typeof this.columnDefinition.cellFocusTargetCallback === "function") {
1021
1055
  const focusTarget = this.columnDefinition.cellFocusTargetCallback(this);
1056
+ /* v8 ignore else -- @preserve */
1022
1057
  if (focusTarget !== null) {
1023
1058
  focusTarget.focus();
1024
1059
  }
@@ -1029,6 +1064,7 @@ class DataGridCell extends localized.Localized(hostSemantics.HostSemantics(vivid
1029
1064
  }
1030
1065
  handleFocusout(_) {
1031
1066
  this.shadowRoot.querySelector(".base").classList.remove("active");
1067
+ /* v8 ignore else -- @preserve */
1032
1068
  if (this !== document.activeElement && !this.contains(document.activeElement)) {
1033
1069
  this.isActiveCell = false;
1034
1070
  }
@@ -1044,32 +1080,38 @@ class DataGridCell extends localized.Localized(hostSemantics.HostSemantics(vivid
1044
1080
  return;
1045
1081
  }
1046
1082
  switch (this.cellType) {
1047
- case DataGridCellTypes.columnHeader:
1083
+ case DataGridCellTypes.columnHeader: {
1048
1084
  if (this.columnDefinition.headerCellFocusTargetCallback !== void 0) {
1049
1085
  const focusTarget = this.columnDefinition.headerCellFocusTargetCallback(this);
1086
+ /* v8 ignore else -- @preserve */
1050
1087
  if (focusTarget !== null) {
1051
1088
  focusTarget.focus();
1052
1089
  }
1053
1090
  e.preventDefault();
1054
1091
  }
1055
1092
  break;
1056
- default:
1093
+ }
1094
+ default: {
1057
1095
  if (this.columnDefinition.cellFocusTargetCallback !== void 0) {
1058
1096
  const focusTarget = this.columnDefinition.cellFocusTargetCallback(this);
1097
+ /* v8 ignore else -- @preserve */
1059
1098
  if (focusTarget !== null) {
1060
1099
  focusTarget.focus();
1061
1100
  }
1062
1101
  e.preventDefault();
1063
1102
  }
1064
1103
  break;
1104
+ }
1065
1105
  }
1066
1106
  break;
1067
- case fastWebUtilities.keyEscape:
1107
+ case fastWebUtilities.keyEscape: {
1108
+ /* v8 ignore else -- @preserve */
1068
1109
  if (this.contains(document.activeElement) && document.activeElement !== this) {
1069
1110
  this.focus();
1070
1111
  e.preventDefault();
1071
1112
  }
1072
1113
  break;
1114
+ }
1073
1115
  }
1074
1116
  }
1075
1117
  updateCellView() {
@@ -1253,6 +1295,7 @@ class DataGridRow extends hostSemantics.HostSemantics(vividElement.VividElement)
1253
1295
  */
1254
1296
  connectedCallback() {
1255
1297
  super.connectedCallback();
1298
+ /* v8 ignore else -- @preserve */
1256
1299
  if (this.behaviorOrchestrator === null) {
1257
1300
  this.updateItemTemplate();
1258
1301
  this.behaviorOrchestrator = ViewBehaviorOrchestrator.create(this);
@@ -1284,6 +1327,7 @@ class DataGridRow extends hostSemantics.HostSemantics(vividElement.VividElement)
1284
1327
  this.removeEventListener(fastWebUtilities.eventKeyDown, this.handleKeydown);
1285
1328
  }
1286
1329
  handleFocusout(_) {
1330
+ /* v8 ignore else -- @preserve */
1287
1331
  if (!this.contains(document.activeElement)) {
1288
1332
  this.focusColumnIndex = 0;
1289
1333
  }
@@ -1440,6 +1484,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1440
1484
  focusTarget.focus();
1441
1485
  };
1442
1486
  this.onChildListChange = (mutations, _) => {
1487
+ /* v8 ignore else -- @preserve */
1443
1488
  if (mutations && mutations.length) {
1444
1489
  mutations.forEach((mutation) => {
1445
1490
  mutation.addedNodes.forEach((newNode) => {
@@ -1527,7 +1572,9 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1527
1572
  };
1528
1573
  this.#changeHandler = {
1529
1574
  handleChange(dataGrid, propertyName) {
1575
+ /* v8 ignore else -- @preserve */
1530
1576
  if (propertyName === "columnDefinitions") {
1577
+ /* v8 ignore else -- @preserve */
1531
1578
  if (dataGrid.$fastController.isConnected) {
1532
1579
  dataGrid.toggleGeneratedHeader();
1533
1580
  }
@@ -1610,6 +1657,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1610
1657
  * @internal
1611
1658
  */
1612
1659
  gridTemplateColumnsChanged() {
1660
+ /* v8 ignore if -- @preserve */
1613
1661
  if (this.$fastController.isConnected) {
1614
1662
  this.updateRowIndexes();
1615
1663
  if (this.fixedColumns && this.fixedColumns > 0) {
@@ -1639,6 +1687,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1639
1687
  this.generatedGridTemplateColumns = _DataGrid.generateTemplateColumns(
1640
1688
  this.columnDefinitions
1641
1689
  );
1690
+ /* v8 ignore if -- @preserve */
1642
1691
  if (this.$fastController.isConnected) {
1643
1692
  this.columnDefinitionsStale = true;
1644
1693
  this.queueRowIndexUpdate();
@@ -1648,6 +1697,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1648
1697
  * @internal
1649
1698
  */
1650
1699
  headerCellItemTemplateChanged() {
1700
+ /* v8 ignore if -- @preserve */
1651
1701
  if (this.$fastController.isConnected) {
1652
1702
  if (this.generatedHeader !== null) {
1653
1703
  this.generatedHeader.headerCellItemTemplate = this.headerCellItemTemplate;
@@ -1674,6 +1724,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1674
1724
  * @internal
1675
1725
  */
1676
1726
  fixedColumnsChanged() {
1727
+ /* v8 ignore if -- @preserve */
1677
1728
  if (this.$fastController.isConnected) {
1678
1729
  this.applyFixedColumns();
1679
1730
  this.setupResizeObserver();
@@ -1699,9 +1750,11 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1699
1750
  */
1700
1751
  connectedCallback() {
1701
1752
  super.connectedCallback();
1753
+ /* v8 ignore else -- @preserve */
1702
1754
  if (this.rowItemTemplate === void 0) {
1703
1755
  this.rowItemTemplate = this.defaultRowItemTemplate;
1704
1756
  }
1757
+ /* v8 ignore else -- @preserve */
1705
1758
  if (this.behaviorOrchestrator === null) {
1706
1759
  this.behaviorOrchestrator = ViewBehaviorOrchestrator.create(this);
1707
1760
  this.$fastController.addBehavior(this.behaviorOrchestrator);
@@ -1841,13 +1894,16 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1841
1894
  }
1842
1895
  this.focusOnCell(newFocusRowIndex, this.focusColumnIndex, false);
1843
1896
  break;
1844
- case fastWebUtilities.keyHome:
1897
+ case fastWebUtilities.keyHome: {
1898
+ /* v8 ignore else -- @preserve */
1845
1899
  if (e.ctrlKey) {
1846
1900
  e.preventDefault();
1847
1901
  this.focusOnCell(0, 0, true);
1848
1902
  }
1849
1903
  break;
1850
- case fastWebUtilities.keyEnd:
1904
+ }
1905
+ case fastWebUtilities.keyEnd: {
1906
+ /* v8 ignore else -- @preserve */
1851
1907
  if (e.ctrlKey && this.columnDefinitions !== null) {
1852
1908
  e.preventDefault();
1853
1909
  this.focusOnCell(
@@ -1857,6 +1913,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1857
1913
  );
1858
1914
  }
1859
1915
  break;
1916
+ }
1860
1917
  }
1861
1918
  }
1862
1919
  queueFocusUpdate() {
@@ -1885,6 +1942,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1885
1942
  this.generatedHeader.columnDefinitions = this.columnDefinitions;
1886
1943
  this.generatedHeader.gridTemplateColumns = this.gridTemplateColumns;
1887
1944
  this.generatedHeader.rowType = this.generateHeader === GenerateHeaderOptions.sticky ? DataGridRowTypes.stickyHeader : DataGridRowTypes.header;
1945
+ /* v8 ignore else -- @preserve */
1888
1946
  if (this.firstChild !== null) {
1889
1947
  this.insertBefore(generatedHeaderElement, this.firstChild);
1890
1948
  }
@@ -1952,8 +2010,10 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1952
2010
  '[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
1953
2011
  );
1954
2012
  this.fixedColumnsPositions.forEach((position, index) => {
2013
+ /* v8 ignore else -- @preserve */
1955
2014
  if (index < cells.length) {
1956
2015
  const gridCell = cells[index];
2016
+ /* v8 ignore else -- @preserve */
1957
2017
  if (typeof gridCell.setFixedPosition === "function") {
1958
2018
  gridCell.setFixedPosition(`${position}px`);
1959
2019
  }
@@ -1991,8 +2051,10 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
1991
2051
  '[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
1992
2052
  );
1993
2053
  this.fixedColumnsPositions.forEach((_, index) => {
2054
+ /* v8 ignore else -- @preserve */
1994
2055
  if (index < cells.length) {
1995
2056
  const gridCell = cells[index];
2057
+ /* v8 ignore else -- @preserve */
1996
2058
  if (typeof gridCell.setFixedPosition === "function") {
1997
2059
  gridCell.setFixedPosition(void 0);
1998
2060
  }
@@ -2192,6 +2254,25 @@ function renderSortIcons(c) {
2192
2254
  )}
2193
2255
  `;
2194
2256
  }
2257
+ function shouldAnnounceSortState(x) {
2258
+ return x.cellType === DataGridCellTypes.columnHeader && x.sortDirection !== void 0;
2259
+ }
2260
+ function getSortStateKey(x) {
2261
+ return x.sortDirection ?? DataGridCellSortStates.none;
2262
+ }
2263
+ function getLocalizedSortStatus(x) {
2264
+ const direction = getSortStateKey(x);
2265
+ const sortStatus = x.locale.dataGrid.cell.sortStatus;
2266
+ return sortStatus?.[direction];
2267
+ }
2268
+ function getLocalizedSortInstruction(x) {
2269
+ const direction = getSortStateKey(x);
2270
+ const sortInstruction = x.locale.dataGrid.cell.sortInstruction;
2271
+ return sortInstruction?.[direction];
2272
+ }
2273
+ function getSortAnnouncement(x) {
2274
+ return [getLocalizedSortStatus(x), getLocalizedSortInstruction(x)].filter((part) => !!part).join(" ").trim();
2275
+ }
2195
2276
  function handleKeyDown(x, e) {
2196
2277
  if (e.key === fastWebUtilities.keyEnter || e.key === fastWebUtilities.keySpace) {
2197
2278
  x._handleInteraction();
@@ -2216,12 +2297,29 @@ const DataGridCellTemplate = (context) => {
2216
2297
  class="${getBaseClasses}"
2217
2298
  role="${(x) => shouldShowSortIcons(x) ? "button" : void 0}"
2218
2299
  >
2219
- ${(x) => x.selected ? fastElement.html`<${visuallyHiddenTagName}>${(x2) => x2.locale.dataGrid.cell.selected}</${visuallyHiddenTagName}>` : null}
2300
+ ${(x) => x.selected ? fastElement.html`<${visuallyHiddenTagName}
2301
+ data-announcement="selection"
2302
+ >
2303
+ ${(x2) => x2.locale.dataGrid.cell.selected}
2304
+ </${visuallyHiddenTagName}>` : null}
2220
2305
  <slot></slot>
2221
2306
  ${fastElement.when(
2222
2307
  shouldShowSortIcons,
2223
- fastElement.html`<${visuallyHiddenTagName}>${(x) => x.locale.dataGrid.cell.button}</${visuallyHiddenTagName}>
2308
+ fastElement.html`<${visuallyHiddenTagName}
2309
+ data-announcement="button-role"
2310
+ >
2311
+ ${(x) => x.locale.dataGrid.cell.button}
2312
+ </${visuallyHiddenTagName}>
2224
2313
  `
2314
+ )}
2315
+ ${fastElement.when(
2316
+ shouldAnnounceSortState,
2317
+ fastElement.html`<${visuallyHiddenTagName}
2318
+ aria-live="polite"
2319
+ data-announcement="sort-state"
2320
+ >
2321
+ ${getSortAnnouncement}
2322
+ </${visuallyHiddenTagName}>`
2225
2323
  )}
2226
2324
  ${(_) => renderSortIcons(context)}
2227
2325
  </div>
@@ -12,7 +12,7 @@ const dataGridStyles = ":host{display:block}:host([generate-header=sticky]){max-
12
12
 
13
13
  const dataGridRowStyles = ".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{display:grid;width:100%;box-sizing:border-box;color:var(--vvd-color-canvas-text)}:host([row-type=sticky-header]) .base{position:sticky;z-index:9;top:0;background:var(--data-grid-row-background, var(--vvd-color-canvas))}:host([row-type=hidden-header]) .base{display:none}:host(:is([selected]):not([row-type*=header])) .base{background-color:var(--_appearance-color-fill)}";
14
14
 
15
- const dataGridCellStyles = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}:host([data-fixed]){position:sticky;z-index:5;background:var(--data-grid-cell-background, var(--vvd-color-surface-2dp))}:host([data-fixed]):before{position:absolute;z-index:1;top:0;right:0;width:1px;block-size:100%;box-shadow:4px 0 4px #0000001a,2px 0 2px #0000000d,1px 0 1px #0000000d;content:\"\";pointer-events:none}.base.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))}.base: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))}.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{display:flex;box-sizing:border-box;align-items:center;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size, var(--_data-grid-cell-default-block-size));color:var(--_appearance-color-text);font:var(--vvd-typography-base);min-block-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:13px 14px;padding-inline:12px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_data-grid-cell-default-white-space: nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size: 100%;--_data-grid-cell-default-white-space: normal}:host(:is([selected]):not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}slot{display:block;overflow:hidden;text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space, var(--_data-grid-cell-default-white-space))}:host(:not([cell-type=columnheader][aria-sort])) slot{inline-size:100%}.header-icon{margin-inline-start:16px}";
15
+ const dataGridCellStyles = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}:host([data-fixed]){position:sticky;z-index:5;background:var(--data-grid-cell-background, var(--vvd-color-surface-2dp))}:host([data-fixed]):before{position:absolute;z-index:1;top:0;right:0;width:1px;block-size:100%;box-shadow:4px 0 4px #0000001a,2px 0 2px #0000000d,1px 0 1px #0000000d;content:\"\";pointer-events:none}.base.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))}.base: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))}.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{display:flex;box-sizing:border-box;align-items:center;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size, var(--_data-grid-cell-default-block-size));color:var(--_appearance-color-text);font:var(--vvd-typography-base);min-block-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:13px 14px;padding-inline:12px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_data-grid-cell-default-white-space: nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size: 100%;--_data-grid-cell-default-white-space: normal}:host(:is([selected]):not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}slot{display:block;overflow:hidden;text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space, var(--_data-grid-cell-default-white-space))}:host(:not([cell-type=columnheader][aria-sort])) slot{inline-size:100%}.header-icon{margin-inline-start:16px}";
16
16
 
17
17
  let kernelMode;
18
18
  const kernelAttr = "fast-kernel";
@@ -102,6 +102,39 @@ const noop = () => void 0;
102
102
  result.globalThis = result;
103
103
  }
104
104
  })();
105
+ (function requestIdleCallbackPolyfill() {
106
+ if ("requestIdleCallback" in globalThis) {
107
+ return;
108
+ }
109
+ /**
110
+ * A polyfill for requestIdleCallback that falls back to setTimeout.
111
+ *
112
+ * @param callback - The function to call when the browser is idle.
113
+ * @param options - Options object that may contain a timeout property.
114
+ * @returns An ID that can be used to cancel the callback.
115
+ * @public
116
+ */
117
+ globalThis.requestIdleCallback = function requestIdleCallback(callback, options) {
118
+ const start = Date.now();
119
+ return setTimeout(() => {
120
+ callback({
121
+ didTimeout: (options === null || options === void 0 ? void 0 : options.timeout)
122
+ ? Date.now() - start >= options.timeout
123
+ : false,
124
+ timeRemaining: () => 0,
125
+ });
126
+ }, 1);
127
+ };
128
+ /**
129
+ * A polyfill for cancelIdleCallback that falls back to clearTimeout.
130
+ *
131
+ * @param id - The ID of the callback to cancel.
132
+ * @public
133
+ */
134
+ globalThis.cancelIdleCallback = function cancelIdleCallback(id) {
135
+ clearTimeout(id);
136
+ };
137
+ })();
105
138
 
106
139
  // ensure FAST global - duplicated debug.ts
107
140
  const propConfig = {
@@ -1007,6 +1040,7 @@ class DataGridCell extends Localized(HostSemantics(VividElement)) {
1007
1040
  case DataGridCellTypes.columnHeader:
1008
1041
  if (this.columnDefinition !== null && this.columnDefinition.headerCellInternalFocusQueue !== true && typeof this.columnDefinition.headerCellFocusTargetCallback === "function") {
1009
1042
  const focusTarget = this.columnDefinition.headerCellFocusTargetCallback(this);
1043
+ /* v8 ignore else -- @preserve */
1010
1044
  if (focusTarget !== null) {
1011
1045
  focusTarget.focus();
1012
1046
  }
@@ -1015,6 +1049,7 @@ class DataGridCell extends Localized(HostSemantics(VividElement)) {
1015
1049
  default:
1016
1050
  if (this.columnDefinition !== null && this.columnDefinition.cellInternalFocusQueue !== true && typeof this.columnDefinition.cellFocusTargetCallback === "function") {
1017
1051
  const focusTarget = this.columnDefinition.cellFocusTargetCallback(this);
1052
+ /* v8 ignore else -- @preserve */
1018
1053
  if (focusTarget !== null) {
1019
1054
  focusTarget.focus();
1020
1055
  }
@@ -1025,6 +1060,7 @@ class DataGridCell extends Localized(HostSemantics(VividElement)) {
1025
1060
  }
1026
1061
  handleFocusout(_) {
1027
1062
  this.shadowRoot.querySelector(".base").classList.remove("active");
1063
+ /* v8 ignore else -- @preserve */
1028
1064
  if (this !== document.activeElement && !this.contains(document.activeElement)) {
1029
1065
  this.isActiveCell = false;
1030
1066
  }
@@ -1040,32 +1076,38 @@ class DataGridCell extends Localized(HostSemantics(VividElement)) {
1040
1076
  return;
1041
1077
  }
1042
1078
  switch (this.cellType) {
1043
- case DataGridCellTypes.columnHeader:
1079
+ case DataGridCellTypes.columnHeader: {
1044
1080
  if (this.columnDefinition.headerCellFocusTargetCallback !== void 0) {
1045
1081
  const focusTarget = this.columnDefinition.headerCellFocusTargetCallback(this);
1082
+ /* v8 ignore else -- @preserve */
1046
1083
  if (focusTarget !== null) {
1047
1084
  focusTarget.focus();
1048
1085
  }
1049
1086
  e.preventDefault();
1050
1087
  }
1051
1088
  break;
1052
- default:
1089
+ }
1090
+ default: {
1053
1091
  if (this.columnDefinition.cellFocusTargetCallback !== void 0) {
1054
1092
  const focusTarget = this.columnDefinition.cellFocusTargetCallback(this);
1093
+ /* v8 ignore else -- @preserve */
1055
1094
  if (focusTarget !== null) {
1056
1095
  focusTarget.focus();
1057
1096
  }
1058
1097
  e.preventDefault();
1059
1098
  }
1060
1099
  break;
1100
+ }
1061
1101
  }
1062
1102
  break;
1063
- case keyEscape:
1103
+ case keyEscape: {
1104
+ /* v8 ignore else -- @preserve */
1064
1105
  if (this.contains(document.activeElement) && document.activeElement !== this) {
1065
1106
  this.focus();
1066
1107
  e.preventDefault();
1067
1108
  }
1068
1109
  break;
1110
+ }
1069
1111
  }
1070
1112
  }
1071
1113
  updateCellView() {
@@ -1249,6 +1291,7 @@ class DataGridRow extends HostSemantics(VividElement) {
1249
1291
  */
1250
1292
  connectedCallback() {
1251
1293
  super.connectedCallback();
1294
+ /* v8 ignore else -- @preserve */
1252
1295
  if (this.behaviorOrchestrator === null) {
1253
1296
  this.updateItemTemplate();
1254
1297
  this.behaviorOrchestrator = ViewBehaviorOrchestrator.create(this);
@@ -1280,6 +1323,7 @@ class DataGridRow extends HostSemantics(VividElement) {
1280
1323
  this.removeEventListener(eventKeyDown, this.handleKeydown);
1281
1324
  }
1282
1325
  handleFocusout(_) {
1326
+ /* v8 ignore else -- @preserve */
1283
1327
  if (!this.contains(document.activeElement)) {
1284
1328
  this.focusColumnIndex = 0;
1285
1329
  }
@@ -1436,6 +1480,7 @@ const _DataGrid = class _DataGrid extends VividElement {
1436
1480
  focusTarget.focus();
1437
1481
  };
1438
1482
  this.onChildListChange = (mutations, _) => {
1483
+ /* v8 ignore else -- @preserve */
1439
1484
  if (mutations && mutations.length) {
1440
1485
  mutations.forEach((mutation) => {
1441
1486
  mutation.addedNodes.forEach((newNode) => {
@@ -1523,7 +1568,9 @@ const _DataGrid = class _DataGrid extends VividElement {
1523
1568
  };
1524
1569
  this.#changeHandler = {
1525
1570
  handleChange(dataGrid, propertyName) {
1571
+ /* v8 ignore else -- @preserve */
1526
1572
  if (propertyName === "columnDefinitions") {
1573
+ /* v8 ignore else -- @preserve */
1527
1574
  if (dataGrid.$fastController.isConnected) {
1528
1575
  dataGrid.toggleGeneratedHeader();
1529
1576
  }
@@ -1606,6 +1653,7 @@ const _DataGrid = class _DataGrid extends VividElement {
1606
1653
  * @internal
1607
1654
  */
1608
1655
  gridTemplateColumnsChanged() {
1656
+ /* v8 ignore if -- @preserve */
1609
1657
  if (this.$fastController.isConnected) {
1610
1658
  this.updateRowIndexes();
1611
1659
  if (this.fixedColumns && this.fixedColumns > 0) {
@@ -1635,6 +1683,7 @@ const _DataGrid = class _DataGrid extends VividElement {
1635
1683
  this.generatedGridTemplateColumns = _DataGrid.generateTemplateColumns(
1636
1684
  this.columnDefinitions
1637
1685
  );
1686
+ /* v8 ignore if -- @preserve */
1638
1687
  if (this.$fastController.isConnected) {
1639
1688
  this.columnDefinitionsStale = true;
1640
1689
  this.queueRowIndexUpdate();
@@ -1644,6 +1693,7 @@ const _DataGrid = class _DataGrid extends VividElement {
1644
1693
  * @internal
1645
1694
  */
1646
1695
  headerCellItemTemplateChanged() {
1696
+ /* v8 ignore if -- @preserve */
1647
1697
  if (this.$fastController.isConnected) {
1648
1698
  if (this.generatedHeader !== null) {
1649
1699
  this.generatedHeader.headerCellItemTemplate = this.headerCellItemTemplate;
@@ -1670,6 +1720,7 @@ const _DataGrid = class _DataGrid extends VividElement {
1670
1720
  * @internal
1671
1721
  */
1672
1722
  fixedColumnsChanged() {
1723
+ /* v8 ignore if -- @preserve */
1673
1724
  if (this.$fastController.isConnected) {
1674
1725
  this.applyFixedColumns();
1675
1726
  this.setupResizeObserver();
@@ -1695,9 +1746,11 @@ const _DataGrid = class _DataGrid extends VividElement {
1695
1746
  */
1696
1747
  connectedCallback() {
1697
1748
  super.connectedCallback();
1749
+ /* v8 ignore else -- @preserve */
1698
1750
  if (this.rowItemTemplate === void 0) {
1699
1751
  this.rowItemTemplate = this.defaultRowItemTemplate;
1700
1752
  }
1753
+ /* v8 ignore else -- @preserve */
1701
1754
  if (this.behaviorOrchestrator === null) {
1702
1755
  this.behaviorOrchestrator = ViewBehaviorOrchestrator.create(this);
1703
1756
  this.$fastController.addBehavior(this.behaviorOrchestrator);
@@ -1837,13 +1890,16 @@ const _DataGrid = class _DataGrid extends VividElement {
1837
1890
  }
1838
1891
  this.focusOnCell(newFocusRowIndex, this.focusColumnIndex, false);
1839
1892
  break;
1840
- case keyHome:
1893
+ case keyHome: {
1894
+ /* v8 ignore else -- @preserve */
1841
1895
  if (e.ctrlKey) {
1842
1896
  e.preventDefault();
1843
1897
  this.focusOnCell(0, 0, true);
1844
1898
  }
1845
1899
  break;
1846
- case keyEnd:
1900
+ }
1901
+ case keyEnd: {
1902
+ /* v8 ignore else -- @preserve */
1847
1903
  if (e.ctrlKey && this.columnDefinitions !== null) {
1848
1904
  e.preventDefault();
1849
1905
  this.focusOnCell(
@@ -1853,6 +1909,7 @@ const _DataGrid = class _DataGrid extends VividElement {
1853
1909
  );
1854
1910
  }
1855
1911
  break;
1912
+ }
1856
1913
  }
1857
1914
  }
1858
1915
  queueFocusUpdate() {
@@ -1881,6 +1938,7 @@ const _DataGrid = class _DataGrid extends VividElement {
1881
1938
  this.generatedHeader.columnDefinitions = this.columnDefinitions;
1882
1939
  this.generatedHeader.gridTemplateColumns = this.gridTemplateColumns;
1883
1940
  this.generatedHeader.rowType = this.generateHeader === GenerateHeaderOptions.sticky ? DataGridRowTypes.stickyHeader : DataGridRowTypes.header;
1941
+ /* v8 ignore else -- @preserve */
1884
1942
  if (this.firstChild !== null) {
1885
1943
  this.insertBefore(generatedHeaderElement, this.firstChild);
1886
1944
  }
@@ -1948,8 +2006,10 @@ const _DataGrid = class _DataGrid extends VividElement {
1948
2006
  '[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
1949
2007
  );
1950
2008
  this.fixedColumnsPositions.forEach((position, index) => {
2009
+ /* v8 ignore else -- @preserve */
1951
2010
  if (index < cells.length) {
1952
2011
  const gridCell = cells[index];
2012
+ /* v8 ignore else -- @preserve */
1953
2013
  if (typeof gridCell.setFixedPosition === "function") {
1954
2014
  gridCell.setFixedPosition(`${position}px`);
1955
2015
  }
@@ -1987,8 +2047,10 @@ const _DataGrid = class _DataGrid extends VividElement {
1987
2047
  '[role="cell"], [role="gridcell"], [role="columnheader"], [cell-type="default"], [cell-type="columnheader"]'
1988
2048
  );
1989
2049
  this.fixedColumnsPositions.forEach((_, index) => {
2050
+ /* v8 ignore else -- @preserve */
1990
2051
  if (index < cells.length) {
1991
2052
  const gridCell = cells[index];
2053
+ /* v8 ignore else -- @preserve */
1992
2054
  if (typeof gridCell.setFixedPosition === "function") {
1993
2055
  gridCell.setFixedPosition(void 0);
1994
2056
  }
@@ -2188,6 +2250,25 @@ function renderSortIcons(c) {
2188
2250
  )}
2189
2251
  `;
2190
2252
  }
2253
+ function shouldAnnounceSortState(x) {
2254
+ return x.cellType === DataGridCellTypes.columnHeader && x.sortDirection !== void 0;
2255
+ }
2256
+ function getSortStateKey(x) {
2257
+ return x.sortDirection ?? DataGridCellSortStates.none;
2258
+ }
2259
+ function getLocalizedSortStatus(x) {
2260
+ const direction = getSortStateKey(x);
2261
+ const sortStatus = x.locale.dataGrid.cell.sortStatus;
2262
+ return sortStatus?.[direction];
2263
+ }
2264
+ function getLocalizedSortInstruction(x) {
2265
+ const direction = getSortStateKey(x);
2266
+ const sortInstruction = x.locale.dataGrid.cell.sortInstruction;
2267
+ return sortInstruction?.[direction];
2268
+ }
2269
+ function getSortAnnouncement(x) {
2270
+ return [getLocalizedSortStatus(x), getLocalizedSortInstruction(x)].filter((part) => !!part).join(" ").trim();
2271
+ }
2191
2272
  function handleKeyDown(x, e) {
2192
2273
  if (e.key === keyEnter || e.key === keySpace) {
2193
2274
  x._handleInteraction();
@@ -2212,12 +2293,29 @@ const DataGridCellTemplate = (context) => {
2212
2293
  class="${getBaseClasses}"
2213
2294
  role="${(x) => shouldShowSortIcons(x) ? "button" : void 0}"
2214
2295
  >
2215
- ${(x) => x.selected ? html`<${visuallyHiddenTagName}>${(x2) => x2.locale.dataGrid.cell.selected}</${visuallyHiddenTagName}>` : null}
2296
+ ${(x) => x.selected ? html`<${visuallyHiddenTagName}
2297
+ data-announcement="selection"
2298
+ >
2299
+ ${(x2) => x2.locale.dataGrid.cell.selected}
2300
+ </${visuallyHiddenTagName}>` : null}
2216
2301
  <slot></slot>
2217
2302
  ${when(
2218
2303
  shouldShowSortIcons,
2219
- html`<${visuallyHiddenTagName}>${(x) => x.locale.dataGrid.cell.button}</${visuallyHiddenTagName}>
2304
+ html`<${visuallyHiddenTagName}
2305
+ data-announcement="button-role"
2306
+ >
2307
+ ${(x) => x.locale.dataGrid.cell.button}
2308
+ </${visuallyHiddenTagName}>
2220
2309
  `
2310
+ )}
2311
+ ${when(
2312
+ shouldAnnounceSortState,
2313
+ html`<${visuallyHiddenTagName}
2314
+ aria-live="polite"
2315
+ data-announcement="sort-state"
2316
+ >
2317
+ ${getSortAnnouncement}
2318
+ </${visuallyHiddenTagName}>`
2221
2319
  )}
2222
2320
  ${(_) => renderSortIcons(context)}
2223
2321
  </div>