@ukic/canary-web-components 3.0.0-canary.25 → 3.0.0-canary.26

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 (526) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-56717660.js → helpers-b55826ba.js} +22 -22
  3. package/dist/cjs/{helpers-56717660.js.map → helpers-b55826ba.js.map} +1 -1
  4. package/dist/cjs/helpers-da852478.js.map +1 -1
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-action-chip.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js +24 -18
  15. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -3
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox_3.cjs.entry.js +6 -6
  20. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  25. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-date-input.cjs.entry.js +6 -6
  27. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-dialog.cjs.entry.js +6 -4
  29. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  33. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  36. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  38. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +27 -14
  40. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-layout-grid-item.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-layout-grid.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-menu.cjs.entry.js +6 -6
  51. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  54. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  57. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  59. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-pagination_4.cjs.entry.js +43 -35
  61. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  63. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
  65. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  67. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-search-bar.cjs.entry.js +10 -10
  69. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-side-navigation.cjs.entry.js +5 -5
  73. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  75. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  77. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  79. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  81. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  83. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-switch.cjs.entry.js +5 -5
  85. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-tab-context.cjs.entry.js +10 -2
  87. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  89. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  91. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  93. package/dist/cjs/ic-table-of-contents.cjs.entry.js +363 -0
  94. package/dist/cjs/ic-table-of-contents.cjs.entry.js.map +1 -0
  95. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  96. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-time-input.cjs.entry.js +7 -7
  98. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  99. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  100. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  102. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  104. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  106. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  108. package/dist/cjs/ic-tree-item.cjs.entry.js +2 -2
  109. package/dist/cjs/ic-tree-view.cjs.entry.js +3 -3
  110. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  111. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  112. package/dist/cjs/index-d337cd8a.js +4 -0
  113. package/dist/cjs/loader.cjs.js +1 -1
  114. package/dist/collection/assets/error-icon.svg +4 -4
  115. package/dist/collection/assets/info-icon.svg +4 -4
  116. package/dist/collection/assets/neutral-icon.svg +4 -4
  117. package/dist/collection/assets/success-icon.svg +4 -4
  118. package/dist/collection/assets/warning-icon.svg +4 -4
  119. package/dist/collection/collection-manifest.json +1 -0
  120. package/dist/collection/components/ic-data-table/ic-data-table.stories.js +1 -1
  121. package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
  122. package/dist/collection/components/ic-data-table/story-data.js +82 -54
  123. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  124. package/dist/collection/components/ic-date-input/ic-date-input.js +6 -6
  125. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  126. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents-item.js +28 -0
  127. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents-item.js.map +1 -0
  128. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.css +145 -0
  129. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js +526 -0
  130. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js.map +1 -0
  131. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.stories.js +291 -0
  132. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.stories.js.map +1 -0
  133. package/dist/collection/components/ic-table-of-contents/test/a11y/ic-table-of-contents.test.a11y.js +13 -0
  134. package/dist/collection/components/ic-table-of-contents/test/a11y/ic-table-of-contents.test.a11y.js.map +1 -0
  135. package/dist/collection/components/ic-time-input/ic-time-input.js +7 -7
  136. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  137. package/dist/collection/components/ic-tree-item/ic-tree-item.js +2 -2
  138. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -3
  139. package/dist/collection/utils/types.js.map +1 -1
  140. package/dist/components/helpers.js +22 -22
  141. package/dist/components/helpers2.js.map +1 -1
  142. package/dist/components/ic-alert.js +1 -1
  143. package/dist/components/ic-alert.js.map +1 -1
  144. package/dist/components/ic-button2.js +15 -10
  145. package/dist/components/ic-button2.js.map +1 -1
  146. package/dist/components/ic-checkbox-group.js +2 -2
  147. package/dist/components/ic-checkbox-group.js.map +1 -1
  148. package/dist/components/ic-checkbox2.js +3 -3
  149. package/dist/components/ic-checkbox2.js.map +1 -1
  150. package/dist/components/ic-data-list.js +2 -2
  151. package/dist/components/ic-data-list.js.map +1 -1
  152. package/dist/components/ic-data-row.js +2 -2
  153. package/dist/components/ic-data-row.js.map +1 -1
  154. package/dist/components/ic-date-input2.js +6 -6
  155. package/dist/components/ic-date-input2.js.map +1 -1
  156. package/dist/components/ic-dialog.js +5 -3
  157. package/dist/components/ic-dialog.js.map +1 -1
  158. package/dist/components/ic-empty-state2.js +2 -2
  159. package/dist/components/ic-empty-state2.js.map +1 -1
  160. package/dist/components/ic-footer-link.js +2 -2
  161. package/dist/components/ic-footer-link.js.map +1 -1
  162. package/dist/components/ic-hero.js +4 -4
  163. package/dist/components/ic-hero.js.map +1 -1
  164. package/dist/components/ic-horizontal-scroll2.js +5 -5
  165. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  166. package/dist/components/ic-input-component-container2.js +3 -3
  167. package/dist/components/ic-input-component-container2.js.map +1 -1
  168. package/dist/components/ic-input-container2.js +2 -2
  169. package/dist/components/ic-input-container2.js.map +1 -1
  170. package/dist/components/ic-input-label2.js +2 -2
  171. package/dist/components/ic-input-label2.js.map +1 -1
  172. package/dist/components/ic-input-validation2.js +21 -6
  173. package/dist/components/ic-input-validation2.js.map +1 -1
  174. package/dist/components/ic-layout-grid-item.js +2 -2
  175. package/dist/components/ic-layout-grid-item.js.map +1 -1
  176. package/dist/components/ic-layout-grid.js +2 -2
  177. package/dist/components/ic-layout-grid.js.map +1 -1
  178. package/dist/components/ic-link2.js +1 -1
  179. package/dist/components/ic-link2.js.map +1 -1
  180. package/dist/components/ic-loading-indicator2.js +5 -5
  181. package/dist/components/ic-loading-indicator2.js.map +1 -1
  182. package/dist/components/ic-menu-group.js +1 -1
  183. package/dist/components/ic-menu-group.js.map +1 -1
  184. package/dist/components/ic-menu2.js +5 -5
  185. package/dist/components/ic-menu2.js.map +1 -1
  186. package/dist/components/ic-navigation-group.js +1 -1
  187. package/dist/components/ic-navigation-group.js.map +1 -1
  188. package/dist/components/ic-navigation-menu2.js +4 -4
  189. package/dist/components/ic-navigation-menu2.js.map +1 -1
  190. package/dist/components/ic-page-header.js +6 -6
  191. package/dist/components/ic-page-header.js.map +1 -1
  192. package/dist/components/ic-pagination-item2.js +1 -1
  193. package/dist/components/ic-pagination-item2.js.map +1 -1
  194. package/dist/components/ic-pagination2.js +4 -4
  195. package/dist/components/ic-pagination2.js.map +1 -1
  196. package/dist/components/ic-popover-menu.js +4 -4
  197. package/dist/components/ic-popover-menu.js.map +1 -1
  198. package/dist/components/ic-radio-group.js +4 -4
  199. package/dist/components/ic-radio-group.js.map +1 -1
  200. package/dist/components/ic-radio-option.js +4 -4
  201. package/dist/components/ic-radio-option.js.map +1 -1
  202. package/dist/components/ic-search-bar.js +10 -10
  203. package/dist/components/ic-search-bar.js.map +1 -1
  204. package/dist/components/ic-section-container2.js +2 -2
  205. package/dist/components/ic-section-container2.js.map +1 -1
  206. package/dist/components/ic-select2.js +9 -9
  207. package/dist/components/ic-select2.js.map +1 -1
  208. package/dist/components/ic-side-navigation.js +5 -5
  209. package/dist/components/ic-side-navigation.js.map +1 -1
  210. package/dist/components/ic-skeleton.js +2 -2
  211. package/dist/components/ic-skeleton.js.map +1 -1
  212. package/dist/components/ic-skip-link.js +2 -2
  213. package/dist/components/ic-skip-link.js.map +1 -1
  214. package/dist/components/ic-status-tag.js +2 -2
  215. package/dist/components/ic-status-tag.js.map +1 -1
  216. package/dist/components/ic-step.js +13 -13
  217. package/dist/components/ic-step.js.map +1 -1
  218. package/dist/components/ic-stepper.js +2 -2
  219. package/dist/components/ic-stepper.js.map +1 -1
  220. package/dist/components/ic-switch.js +4 -4
  221. package/dist/components/ic-switch.js.map +1 -1
  222. package/dist/components/ic-tab-context.js +11 -2
  223. package/dist/components/ic-tab-context.js.map +1 -1
  224. package/dist/components/ic-tab-group.js +2 -2
  225. package/dist/components/ic-tab-group.js.map +1 -1
  226. package/dist/components/ic-tab-panel.js +2 -2
  227. package/dist/components/ic-tab-panel.js.map +1 -1
  228. package/dist/components/ic-table-of-contents.d.ts +11 -0
  229. package/dist/components/ic-table-of-contents.js +408 -0
  230. package/dist/components/ic-table-of-contents.js.map +1 -0
  231. package/dist/components/ic-text-field2.js +30 -21
  232. package/dist/components/ic-text-field2.js.map +1 -1
  233. package/dist/components/ic-theme.js +1 -1
  234. package/dist/components/ic-theme.js.map +1 -1
  235. package/dist/components/ic-time-input.js +7 -7
  236. package/dist/components/ic-time-input.js.map +1 -1
  237. package/dist/components/ic-toast-region.js +1 -1
  238. package/dist/components/ic-toast-region.js.map +1 -1
  239. package/dist/components/ic-toast.js +3 -3
  240. package/dist/components/ic-toast.js.map +1 -1
  241. package/dist/components/ic-toggle-button-group.js +2 -2
  242. package/dist/components/ic-toggle-button-group.js.map +1 -1
  243. package/dist/components/ic-toggle-button.js +2 -2
  244. package/dist/components/ic-toggle-button.js.map +1 -1
  245. package/dist/components/ic-tooltip2.js +6 -4
  246. package/dist/components/ic-tooltip2.js.map +1 -1
  247. package/dist/components/ic-top-navigation.js +1 -1
  248. package/dist/components/ic-tree-item.js +2 -2
  249. package/dist/components/ic-tree-view.js +3 -3
  250. package/dist/components/ic-typography2.js +2 -2
  251. package/dist/components/ic-typography2.js.map +1 -1
  252. package/dist/core/core.css +32 -4
  253. package/dist/core/core.esm.js +1 -1
  254. package/dist/core/core.esm.js.map +1 -1
  255. package/dist/core/{p-3f241d71.entry.js → p-09c0961a.entry.js} +2 -2
  256. package/dist/core/{p-3f241d71.entry.js.map → p-09c0961a.entry.js.map} +1 -1
  257. package/dist/core/p-0f22f41e.js.map +1 -1
  258. package/dist/core/{p-d13a066e.entry.js → p-0fffe635.entry.js} +2 -2
  259. package/dist/core/{p-d13a066e.entry.js.map → p-0fffe635.entry.js.map} +1 -1
  260. package/dist/core/{p-aa94c4b0.entry.js → p-17423822.entry.js} +2 -2
  261. package/dist/core/{p-aa94c4b0.entry.js.map → p-17423822.entry.js.map} +1 -1
  262. package/dist/core/{p-d47e200c.entry.js → p-20f248be.entry.js} +2 -2
  263. package/dist/core/{p-be5df6a9.entry.js → p-25d21dbd.entry.js} +2 -2
  264. package/dist/core/{p-be5df6a9.entry.js.map → p-25d21dbd.entry.js.map} +1 -1
  265. package/dist/core/{p-9fe5e2eb.entry.js → p-30a2abe9.entry.js} +2 -2
  266. package/dist/core/{p-c067e62c.entry.js → p-318c6a4c.entry.js} +2 -2
  267. package/dist/core/{p-364cc350.entry.js → p-3414247d.entry.js} +2 -2
  268. package/dist/core/{p-287e5c17.entry.js → p-37d217b5.entry.js} +2 -2
  269. package/dist/core/{p-287e5c17.entry.js.map → p-37d217b5.entry.js.map} +1 -1
  270. package/dist/core/{p-df88ff5b.entry.js → p-37daa8fe.entry.js} +2 -2
  271. package/dist/core/{p-df88ff5b.entry.js.map → p-37daa8fe.entry.js.map} +1 -1
  272. package/dist/core/p-3bb4ea35.entry.js +2 -0
  273. package/dist/core/p-3bb4ea35.entry.js.map +1 -0
  274. package/dist/core/{p-d41b0da0.entry.js → p-3bee8f39.entry.js} +2 -2
  275. package/dist/core/{p-d41b0da0.entry.js.map → p-3bee8f39.entry.js.map} +1 -1
  276. package/dist/core/{p-fb8c47ce.entry.js → p-4479c7e7.entry.js} +2 -2
  277. package/dist/core/{p-fb8c47ce.entry.js.map → p-4479c7e7.entry.js.map} +1 -1
  278. package/dist/core/{p-45dd12ee.entry.js → p-4747c39f.entry.js} +2 -2
  279. package/dist/core/p-4747c39f.entry.js.map +1 -0
  280. package/dist/core/{p-ffac41d6.entry.js → p-492fcb51.entry.js} +2 -2
  281. package/dist/core/{p-ffac41d6.entry.js.map → p-492fcb51.entry.js.map} +1 -1
  282. package/dist/core/{p-3a73a9b7.entry.js → p-4eb74281.entry.js} +2 -2
  283. package/dist/core/p-4eb74281.entry.js.map +1 -0
  284. package/dist/core/{p-9863a070.entry.js → p-4fa1a80f.entry.js} +2 -2
  285. package/dist/core/{p-6796acff.entry.js → p-514c4401.entry.js} +2 -2
  286. package/dist/core/{p-b93e8ecb.entry.js → p-5534bb37.entry.js} +2 -2
  287. package/dist/core/{p-d7217588.entry.js → p-55934942.entry.js} +2 -2
  288. package/dist/core/{p-d7217588.entry.js.map → p-55934942.entry.js.map} +1 -1
  289. package/dist/core/{p-43285eeb.entry.js → p-570ff466.entry.js} +2 -2
  290. package/dist/core/{p-43285eeb.entry.js.map → p-570ff466.entry.js.map} +1 -1
  291. package/dist/core/{p-6e8ef73c.entry.js → p-57721431.entry.js} +2 -2
  292. package/dist/core/{p-6e8ef73c.entry.js.map → p-57721431.entry.js.map} +1 -1
  293. package/dist/core/{p-bc7d730d.entry.js → p-587d704d.entry.js} +2 -2
  294. package/dist/core/p-587d704d.entry.js.map +1 -0
  295. package/dist/core/{p-5fbc8e62.entry.js → p-5fcfcfb6.entry.js} +2 -2
  296. package/dist/core/{p-5fbc8e62.entry.js.map → p-5fcfcfb6.entry.js.map} +1 -1
  297. package/dist/core/{p-4bddb866.entry.js → p-6a884eef.entry.js} +2 -2
  298. package/dist/core/{p-4bddb866.entry.js.map → p-6a884eef.entry.js.map} +1 -1
  299. package/dist/core/p-6d2fa004.entry.js +2 -0
  300. package/dist/core/p-6d2fa004.entry.js.map +1 -0
  301. package/dist/core/{p-9fffb01e.entry.js → p-7821c7dc.entry.js} +2 -2
  302. package/dist/core/{p-608a8a4d.entry.js → p-8bb49790.entry.js} +2 -2
  303. package/dist/core/{p-5c7c7205.entry.js → p-92f199b0.entry.js} +2 -2
  304. package/dist/core/p-9810080e.entry.js +2 -0
  305. package/dist/core/p-9810080e.entry.js.map +1 -0
  306. package/dist/core/{p-518a8e87.entry.js → p-98286c35.entry.js} +2 -2
  307. package/dist/core/{p-518a8e87.entry.js.map → p-98286c35.entry.js.map} +1 -1
  308. package/dist/core/{p-ea061ccf.entry.js → p-9a8bcb78.entry.js} +2 -2
  309. package/dist/core/{p-ea061ccf.entry.js.map → p-9a8bcb78.entry.js.map} +1 -1
  310. package/dist/core/{p-812a0246.entry.js → p-9ad64b6f.entry.js} +2 -2
  311. package/dist/core/{p-b87e4485.entry.js → p-9c491db1.entry.js} +2 -2
  312. package/dist/core/{p-1a5efa3e.entry.js → p-9c8070a1.entry.js} +2 -2
  313. package/dist/core/{p-8b5022bc.entry.js → p-9cf6ccfd.entry.js} +2 -2
  314. package/dist/core/{p-8b5022bc.entry.js.map → p-9cf6ccfd.entry.js.map} +1 -1
  315. package/dist/core/p-9f5a1473.entry.js +2 -0
  316. package/dist/core/p-9f5a1473.entry.js.map +1 -0
  317. package/dist/core/{p-59048c2a.entry.js → p-a0c361ec.entry.js} +2 -2
  318. package/dist/core/p-a0c361ec.entry.js.map +1 -0
  319. package/dist/core/{p-51e2de77.entry.js → p-a7bc9a19.entry.js} +2 -2
  320. package/dist/core/{p-51e2de77.entry.js.map → p-a7bc9a19.entry.js.map} +1 -1
  321. package/dist/core/{p-588a331f.entry.js → p-a8d934fe.entry.js} +2 -2
  322. package/dist/core/{p-588a331f.entry.js.map → p-a8d934fe.entry.js.map} +1 -1
  323. package/dist/core/{p-145c0245.entry.js → p-aaa6d8e1.entry.js} +2 -2
  324. package/dist/core/{p-145c0245.entry.js.map → p-aaa6d8e1.entry.js.map} +1 -1
  325. package/dist/core/{p-f7d746d7.entry.js → p-b12c4643.entry.js} +2 -2
  326. package/dist/core/{p-f7d746d7.entry.js.map → p-b12c4643.entry.js.map} +1 -1
  327. package/dist/core/{p-31d6d587.entry.js → p-b2c49dfd.entry.js} +2 -2
  328. package/dist/core/p-b2c49dfd.entry.js.map +1 -0
  329. package/dist/core/{p-999f0a5d.entry.js → p-b4a2f6fa.entry.js} +2 -2
  330. package/dist/core/{p-999f0a5d.entry.js.map → p-b4a2f6fa.entry.js.map} +1 -1
  331. package/dist/core/p-b5dd226f.entry.js +2 -0
  332. package/dist/core/{p-20374e30.entry.js.map → p-b5dd226f.entry.js.map} +1 -1
  333. package/dist/core/{p-8051e61b.entry.js → p-b8cb867c.entry.js} +2 -2
  334. package/dist/core/{p-f517f412.entry.js → p-b95d99c7.entry.js} +2 -2
  335. package/dist/core/p-c039a175.entry.js +2 -0
  336. package/dist/core/{p-ad48c77c.entry.js.map → p-c039a175.entry.js.map} +1 -1
  337. package/dist/core/p-c08ea34d.entry.js +2 -0
  338. package/dist/core/p-c08ea34d.entry.js.map +1 -0
  339. package/dist/core/{p-fecef807.entry.js → p-c7a97221.entry.js} +2 -2
  340. package/dist/core/{p-91646e38.entry.js → p-c95be271.entry.js} +2 -2
  341. package/dist/core/p-c95be271.entry.js.map +1 -0
  342. package/dist/core/p-cd3f12ad.entry.js +2 -0
  343. package/dist/core/p-cd3f12ad.entry.js.map +1 -0
  344. package/dist/core/{p-40743d97.entry.js → p-d143aa70.entry.js} +2 -2
  345. package/dist/core/{p-40743d97.entry.js.map → p-d143aa70.entry.js.map} +1 -1
  346. package/dist/core/{p-c3fe54ab.entry.js → p-d3b9c04b.entry.js} +2 -2
  347. package/dist/core/{p-c3fe54ab.entry.js.map → p-d3b9c04b.entry.js.map} +1 -1
  348. package/dist/core/{p-cb4522ed.entry.js → p-d3eb3356.entry.js} +2 -2
  349. package/dist/core/{p-66ae9eb3.entry.js → p-d6a1b39c.entry.js} +2 -2
  350. package/dist/core/{p-66ae9eb3.entry.js.map → p-d6a1b39c.entry.js.map} +1 -1
  351. package/dist/core/{p-efe2fbd7.entry.js → p-d7c44cce.entry.js} +2 -2
  352. package/dist/core/p-d7c44cce.entry.js.map +1 -0
  353. package/dist/core/{p-e543f2e7.entry.js → p-e435052b.entry.js} +2 -2
  354. package/dist/core/{p-e543f2e7.entry.js.map → p-e435052b.entry.js.map} +1 -1
  355. package/dist/core/{p-b8938f93.entry.js → p-e4f1d72b.entry.js} +2 -2
  356. package/dist/core/p-ee95905f.js +2 -0
  357. package/dist/core/{p-efa95979.js.map → p-ee95905f.js.map} +1 -1
  358. package/dist/core/{p-2fe31f66.entry.js → p-f4b08cdb.entry.js} +2 -2
  359. package/dist/core/{p-2fe31f66.entry.js.map → p-f4b08cdb.entry.js.map} +1 -1
  360. package/dist/core/{p-5976d13e.entry.js → p-f5cc4e94.entry.js} +2 -2
  361. package/dist/core/{p-5976d13e.entry.js.map → p-f5cc4e94.entry.js.map} +1 -1
  362. package/dist/core/{p-558936fb.entry.js → p-f6772530.entry.js} +2 -2
  363. package/dist/core/{p-0fad83d8.entry.js → p-fc125ca6.entry.js} +2 -2
  364. package/dist/core/{p-0fad83d8.entry.js.map → p-fc125ca6.entry.js.map} +1 -1
  365. package/dist/esm/core.js +1 -1
  366. package/dist/esm/helpers-89cb996d.js.map +1 -1
  367. package/dist/esm/{helpers-f3928d01.js → helpers-fee7d348.js} +22 -22
  368. package/dist/esm/{helpers-f3928d01.js.map → helpers-fee7d348.js.map} +1 -1
  369. package/dist/esm/ic-accordion-group.entry.js +1 -1
  370. package/dist/esm/ic-accordion.entry.js +1 -1
  371. package/dist/esm/ic-action-chip.entry.js +1 -1
  372. package/dist/esm/ic-alert.entry.js +2 -2
  373. package/dist/esm/ic-alert.entry.js.map +1 -1
  374. package/dist/esm/ic-back-to-top.entry.js +1 -1
  375. package/dist/esm/ic-badge.entry.js +1 -1
  376. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  377. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  378. package/dist/esm/ic-button_3.entry.js +24 -18
  379. package/dist/esm/ic-button_3.entry.js.map +1 -1
  380. package/dist/esm/ic-card-vertical.entry.js +1 -1
  381. package/dist/esm/ic-checkbox-group.entry.js +3 -3
  382. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  383. package/dist/esm/ic-checkbox_3.entry.js +6 -6
  384. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  385. package/dist/esm/ic-chip.entry.js +1 -1
  386. package/dist/esm/ic-data-list.entry.js +2 -2
  387. package/dist/esm/ic-data-list.entry.js.map +1 -1
  388. package/dist/esm/ic-data-row.entry.js +3 -3
  389. package/dist/esm/ic-data-row.entry.js.map +1 -1
  390. package/dist/esm/ic-date-input.entry.js +6 -6
  391. package/dist/esm/ic-date-input.entry.js.map +1 -1
  392. package/dist/esm/ic-dialog.entry.js +6 -4
  393. package/dist/esm/ic-dialog.entry.js.map +1 -1
  394. package/dist/esm/ic-divider.entry.js +1 -1
  395. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  396. package/dist/esm/ic-footer-link.entry.js +3 -3
  397. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  398. package/dist/esm/ic-footer.entry.js +1 -1
  399. package/dist/esm/ic-hero.entry.js +5 -5
  400. package/dist/esm/ic-hero.entry.js.map +1 -1
  401. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  402. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  403. package/dist/esm/ic-input-component-container_4.entry.js +27 -14
  404. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  405. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  406. package/dist/esm/ic-layout-grid-item.entry.js.map +1 -1
  407. package/dist/esm/ic-layout-grid.entry.js +2 -2
  408. package/dist/esm/ic-layout-grid.entry.js.map +1 -1
  409. package/dist/esm/ic-link.entry.js +2 -2
  410. package/dist/esm/ic-link.entry.js.map +1 -1
  411. package/dist/esm/ic-menu-group.entry.js +2 -2
  412. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  413. package/dist/esm/ic-menu-item.entry.js +1 -1
  414. package/dist/esm/ic-menu.entry.js +6 -6
  415. package/dist/esm/ic-menu.entry.js.map +1 -1
  416. package/dist/esm/ic-navigation-button.entry.js +1 -1
  417. package/dist/esm/ic-navigation-group.entry.js +2 -2
  418. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  419. package/dist/esm/ic-navigation-item.entry.js +1 -1
  420. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  421. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  422. package/dist/esm/ic-page-header.entry.js +7 -7
  423. package/dist/esm/ic-page-header.entry.js.map +1 -1
  424. package/dist/esm/ic-pagination_4.entry.js +43 -35
  425. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  426. package/dist/esm/ic-popover-menu.entry.js +5 -5
  427. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  428. package/dist/esm/ic-radio-group.entry.js +5 -5
  429. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  430. package/dist/esm/ic-radio-option.entry.js +5 -5
  431. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  432. package/dist/esm/ic-search-bar.entry.js +10 -10
  433. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  434. package/dist/esm/ic-section-container.entry.js +2 -2
  435. package/dist/esm/ic-section-container.entry.js.map +1 -1
  436. package/dist/esm/ic-side-navigation.entry.js +5 -5
  437. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  438. package/dist/esm/ic-skeleton.entry.js +2 -2
  439. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  440. package/dist/esm/ic-skip-link.entry.js +2 -2
  441. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  442. package/dist/esm/ic-status-tag.entry.js +3 -3
  443. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  444. package/dist/esm/ic-step.entry.js +14 -14
  445. package/dist/esm/ic-step.entry.js.map +1 -1
  446. package/dist/esm/ic-stepper.entry.js +3 -3
  447. package/dist/esm/ic-stepper.entry.js.map +1 -1
  448. package/dist/esm/ic-switch.entry.js +5 -5
  449. package/dist/esm/ic-switch.entry.js.map +1 -1
  450. package/dist/esm/ic-tab-context.entry.js +10 -2
  451. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  452. package/dist/esm/ic-tab-group.entry.js +3 -3
  453. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  454. package/dist/esm/ic-tab-panel.entry.js +2 -2
  455. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  456. package/dist/esm/ic-tab.entry.js +1 -1
  457. package/dist/esm/ic-table-of-contents.entry.js +359 -0
  458. package/dist/esm/ic-table-of-contents.entry.js.map +1 -0
  459. package/dist/esm/ic-theme.entry.js +2 -2
  460. package/dist/esm/ic-theme.entry.js.map +1 -1
  461. package/dist/esm/ic-time-input.entry.js +7 -7
  462. package/dist/esm/ic-time-input.entry.js.map +1 -1
  463. package/dist/esm/ic-toast-region.entry.js +1 -1
  464. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  465. package/dist/esm/ic-toast.entry.js +4 -4
  466. package/dist/esm/ic-toast.entry.js.map +1 -1
  467. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  468. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  469. package/dist/esm/ic-toggle-button.entry.js +3 -3
  470. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  471. package/dist/esm/ic-top-navigation.entry.js +1 -1
  472. package/dist/esm/ic-tree-item.entry.js +2 -2
  473. package/dist/esm/ic-tree-view.entry.js +3 -3
  474. package/dist/esm/ic-typography.entry.js +3 -3
  475. package/dist/esm/ic-typography.entry.js.map +1 -1
  476. package/dist/esm/index-a7a720e7.js +4 -0
  477. package/dist/esm/loader.js +1 -1
  478. package/dist/types/components/ic-data-table/story-data.d.ts +2 -2
  479. package/dist/types/components/ic-table-of-contents/ic-table-of-contents-item.d.ts +14 -0
  480. package/dist/types/components/ic-table-of-contents/ic-table-of-contents.d.ts +83 -0
  481. package/dist/types/components/ic-table-of-contents/ic-table-of-contents.stories.d.ts +90 -0
  482. package/dist/types/components/ic-table-of-contents/test/a11y/ic-table-of-contents.test.a11y.d.ts +1 -0
  483. package/dist/types/components.d.ts +79 -2
  484. package/dist/types/utils/types.d.ts +1 -0
  485. package/hydrate/index.js +633 -221
  486. package/hydrate/index.mjs +633 -221
  487. package/package.json +4 -4
  488. package/dist/core/p-20374e30.entry.js +0 -2
  489. package/dist/core/p-2f4f4aea.entry.js +0 -2
  490. package/dist/core/p-2f4f4aea.entry.js.map +0 -1
  491. package/dist/core/p-31d6d587.entry.js.map +0 -1
  492. package/dist/core/p-3a73a9b7.entry.js.map +0 -1
  493. package/dist/core/p-45dd12ee.entry.js.map +0 -1
  494. package/dist/core/p-59048c2a.entry.js.map +0 -1
  495. package/dist/core/p-5ac30e1f.entry.js +0 -2
  496. package/dist/core/p-5ac30e1f.entry.js.map +0 -1
  497. package/dist/core/p-7d2d067f.entry.js +0 -2
  498. package/dist/core/p-7d2d067f.entry.js.map +0 -1
  499. package/dist/core/p-91646e38.entry.js.map +0 -1
  500. package/dist/core/p-ad48c77c.entry.js +0 -2
  501. package/dist/core/p-afece95e.entry.js +0 -2
  502. package/dist/core/p-afece95e.entry.js.map +0 -1
  503. package/dist/core/p-bc7d730d.entry.js.map +0 -1
  504. package/dist/core/p-efa95979.js +0 -2
  505. package/dist/core/p-efe2fbd7.entry.js.map +0 -1
  506. package/dist/core/p-f3201a0b.entry.js +0 -2
  507. package/dist/core/p-f3201a0b.entry.js.map +0 -1
  508. /package/dist/core/{p-d47e200c.entry.js.map → p-20f248be.entry.js.map} +0 -0
  509. /package/dist/core/{p-9fe5e2eb.entry.js.map → p-30a2abe9.entry.js.map} +0 -0
  510. /package/dist/core/{p-c067e62c.entry.js.map → p-318c6a4c.entry.js.map} +0 -0
  511. /package/dist/core/{p-364cc350.entry.js.map → p-3414247d.entry.js.map} +0 -0
  512. /package/dist/core/{p-9863a070.entry.js.map → p-4fa1a80f.entry.js.map} +0 -0
  513. /package/dist/core/{p-6796acff.entry.js.map → p-514c4401.entry.js.map} +0 -0
  514. /package/dist/core/{p-b93e8ecb.entry.js.map → p-5534bb37.entry.js.map} +0 -0
  515. /package/dist/core/{p-9fffb01e.entry.js.map → p-7821c7dc.entry.js.map} +0 -0
  516. /package/dist/core/{p-608a8a4d.entry.js.map → p-8bb49790.entry.js.map} +0 -0
  517. /package/dist/core/{p-5c7c7205.entry.js.map → p-92f199b0.entry.js.map} +0 -0
  518. /package/dist/core/{p-812a0246.entry.js.map → p-9ad64b6f.entry.js.map} +0 -0
  519. /package/dist/core/{p-b87e4485.entry.js.map → p-9c491db1.entry.js.map} +0 -0
  520. /package/dist/core/{p-1a5efa3e.entry.js.map → p-9c8070a1.entry.js.map} +0 -0
  521. /package/dist/core/{p-8051e61b.entry.js.map → p-b8cb867c.entry.js.map} +0 -0
  522. /package/dist/core/{p-f517f412.entry.js.map → p-b95d99c7.entry.js.map} +0 -0
  523. /package/dist/core/{p-fecef807.entry.js.map → p-c7a97221.entry.js.map} +0 -0
  524. /package/dist/core/{p-cb4522ed.entry.js.map → p-d3eb3356.entry.js.map} +0 -0
  525. /package/dist/core/{p-b8938f93.entry.js.map → p-e4f1d72b.entry.js.map} +0 -0
  526. /package/dist/core/{p-558936fb.entry.js.map → p-f6772530.entry.js.map} +0 -0
@@ -0,0 +1,145 @@
1
+ :host {
2
+ display: block;
3
+ border: none;
4
+ max-height: 100vh;
5
+ }
6
+
7
+ .table-of-contents-section-container {
8
+ display: flex;
9
+ }
10
+
11
+ .table-of-contents-content {
12
+ top: 0;
13
+ left: 0;
14
+ padding: 0 var(--ic-space-md);
15
+ font: var(--ic-color-text-primary);
16
+ max-height: 100vh;
17
+ z-index: 1;
18
+ }
19
+
20
+ :host .table-of-contents-position-top {
21
+ min-width: 10rem;
22
+ max-width: 50rem;
23
+ }
24
+
25
+ :host .table-of-contents-position-side {
26
+ min-width: 8rem;
27
+ max-width: 20rem;
28
+ width: 20rem;
29
+ position: sticky;
30
+ }
31
+
32
+ .table-of-contents-list {
33
+ display: flex;
34
+ flex-direction: row;
35
+ max-width: inherit;
36
+ }
37
+
38
+ :host ol {
39
+ list-style: none;
40
+ margin-block-start: 0;
41
+ padding-inline-start: 0;
42
+ }
43
+
44
+ .table-of-contents-list-items {
45
+ display: flex;
46
+ flex-direction: column;
47
+ width: 100%;
48
+ }
49
+
50
+ .table-of-contents-sidebar {
51
+ background-color: var(--ic-table-of-contents-banner);
52
+ height: 1.75rem;
53
+ min-width: 0.25rem;
54
+ }
55
+
56
+ .table-of-contents-sidebar-monochrome {
57
+ background-color: var(--ic-table-of-contents-banner-monochrome);
58
+ }
59
+
60
+ .table-of-contents-item {
61
+ min-height: 1.5rem;
62
+ line-height: 1.5rem;
63
+ }
64
+
65
+ .table-of-contents-item-content:hover {
66
+ background-color: var(--ic-table-of-contents-hover);
67
+ }
68
+
69
+ .table-of-contents-item-monochrome-content:hover {
70
+ background-color: var(--ic-table-of-contents-hover-monochrome);
71
+ }
72
+
73
+ .table-of-contents-item-content {
74
+ border: none;
75
+ max-width: inherit;
76
+ display: flex;
77
+ align-items: center;
78
+ text-decoration: none;
79
+ position: relative;
80
+ color: var(--ic-table-of-contents-text);
81
+ min-height: 1.5rem;
82
+
83
+ --ic-typography-color: var(--ic-table-of-contents-text);
84
+ }
85
+
86
+ .table-of-contents-item-content-default {
87
+ padding-top: var(--ic-space-xxxs);
88
+ padding-bottom: var(--ic-space-xxxs);
89
+ }
90
+
91
+ .table-of-contents-item-content:focus {
92
+ box-shadow: var(--ic-border-focus);
93
+ border-radius: var(--ic-border-radius);
94
+ transition: var(--ic-transition-duration-fast);
95
+ outline: none;
96
+ background-color: var(--ic-table-of-contents-hover);
97
+ }
98
+
99
+ .table-of-contents-item-content:active {
100
+ box-shadow: var(--ic-border-focus);
101
+ border-radius: var(--ic-border-radius);
102
+ transition: var(--ic-transition-duration-fast);
103
+ outline: none;
104
+ background-color: var(--ic-table-of-contents-pressed);
105
+ }
106
+
107
+ .truncated-item-text {
108
+ overflow: hidden;
109
+ text-overflow: ellipsis;
110
+ white-space: nowrap;
111
+ }
112
+
113
+ /* Large styles */
114
+
115
+ .table-of-contents-item-content-large {
116
+ padding-top: var(--ic-space-xxs);
117
+ padding-bottom: var(--ic-space-xxs);
118
+ }
119
+
120
+ .table-of-contents-sidebar.large {
121
+ height: 2.5rem;
122
+ }
123
+
124
+ .table-of-contents-heading.large {
125
+ padding-bottom: var(--ic-space-xs);
126
+ }
127
+
128
+ @media (prefers-reduced-motion: no-preference) {
129
+ .table-of-contents-sidebar {
130
+ transition: all 0.3s ease;
131
+ }
132
+ }
133
+
134
+ @media (prefers-reduced-motion: reduce) {
135
+ /* limit sidebar scroll animation */
136
+ .table-of-contents-sidebar {
137
+ transition: none;
138
+ }
139
+ }
140
+
141
+ @media (forced-colors: active) {
142
+ .table-of-contents-sidebar {
143
+ background-color: Highlight;
144
+ }
145
+ }
@@ -0,0 +1,526 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { TableOfContentsItem } from "./ic-table-of-contents-item";
3
+ import { DEVICE_SIZES } from "../../utils/helpers";
4
+ const TOC_CONTENT_CLASS = "table-of-contents-content";
5
+ const TOC_LIST_ITEMS_CLASS = "table-of-contents-list-items";
6
+ const TOC_ITEM_CLASS = "table-of-contents-item-content";
7
+ const TOC_CONTAINER_CLASS = "table-of-contents-section-container";
8
+ export class TableOfContents {
9
+ constructor() {
10
+ /**
11
+ * Heading text of the table of contents.
12
+ */
13
+ this.heading = "Contents";
14
+ /**
15
+ * Maximum heading level of child content that will generate an item in the table of contents. E.g. when set to '3', headings of <h4> and <h5> will not appear.
16
+ */
17
+ this.maximumHeadingLevel = 3;
18
+ /**
19
+ * If `true`, the table of contents will display as black in the light theme, and white in dark theme.
20
+ */
21
+ this.monochrome = false;
22
+ /**
23
+ * Whether the table of contents will appear on the right of or above child content on large viewport widths.
24
+ */
25
+ this.position = "right";
26
+ /**
27
+ * Vertical offset to page scroll (in percent) when table of contents item is selected, to account for other page components like headers.
28
+ */
29
+ this.setScrollHeight = 50;
30
+ /**
31
+ * The size of the table of contents items.
32
+ */
33
+ this.size = "medium";
34
+ /**
35
+ * Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
36
+ */
37
+ this.theme = "inherit";
38
+ /**
39
+ * If `true`, the table of contents item label will be truncated.
40
+ */
41
+ this.truncate = true;
42
+ this.focusedElement = 0;
43
+ // heading items
44
+ this.referenceElements = [];
45
+ // heights of heading items
46
+ this.currentTargetHeights = [];
47
+ // header height if present
48
+ this.headerHeight = 0;
49
+ // holds initial position to allow for responsive changes
50
+ this.initialPosition = this.position;
51
+ // suppress scroll listener to allow for click selection without scroll listener firing
52
+ this.suppressListener = false;
53
+ /**
54
+ * Generate a TOC Item.
55
+ * These items are wrapped in empty tooltips that will be populated by addTooltip()
56
+ * @param tocHeading heading element to refer item information from
57
+ * @param children
58
+ * @returns TocItem ready to be rendered, with nested children if applicable
59
+ */
60
+ this.createTocItem = (tocHeading, children) => {
61
+ const tocId = `toc_${tocHeading.id}`;
62
+ const tocItem = (h(TableOfContentsItem, { id: tocId, className: TOC_ITEM_CLASS, variant: tocHeading.tagName.toLowerCase(), label: tocHeading.textLabel, target: tocHeading.id, truncate: this.truncate, selected: this.focusedElement, updateSelected: this.updateOnSelection, position: tocHeading.trueIndex, size: this.size }));
63
+ const wrappedToc = this.truncate ? (h("ic-tooltip", { target: tocId, label: tocHeading.innerHTML }, tocItem)) : (tocItem);
64
+ return (h("li", { class: `table-of-contents-item ${this.monochrome && "table-of-contents-item-monochrome"}` }, wrappedToc, children ? h("ol", null, children) : null));
65
+ };
66
+ /**
67
+ * Render TocItems and recursively render children items if they exist
68
+ * @param listItem
69
+ * @returns HTML Element array to be rendered
70
+ */
71
+ this.renderTocTree = (listItem) => {
72
+ let results;
73
+ if (listItem.treeChildren.length > 0) {
74
+ const children = listItem.treeChildren.map((i) => this.renderTocTree(i));
75
+ results = this.createTocItem(listItem, children);
76
+ }
77
+ else {
78
+ results = this.createTocItem(listItem);
79
+ }
80
+ return results;
81
+ };
82
+ // list item clicked logic
83
+ this.updateOnSelection = (position) => {
84
+ this.suppressListener = true;
85
+ this.focusedElement = position;
86
+ this.sidebarTranslation(this.focusedElement);
87
+ };
88
+ // truncate text if it goes out of bounds of the container
89
+ this.truncateText = () => {
90
+ var _a, _b;
91
+ const links = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(`.${TOC_ITEM_CLASS}`);
92
+ const contentList = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(`.${TOC_LIST_ITEMS_CLASS}`);
93
+ if (contentList)
94
+ links === null || links === void 0 ? void 0 : links.forEach((item) => {
95
+ this.addTooltip(item, DEVICE_SIZES.S);
96
+ });
97
+ };
98
+ }
99
+ suppressListenerHandler() {
100
+ window.scrollTo(0, window.scrollY - this.headerHeight - 50);
101
+ }
102
+ /**
103
+ * Scrape for heading elements on the page content within TOC, down to the maximumHeadingLevel.
104
+ * From this, generate an array of Elements with lower rank headings inserted as treeChildren on top level headings.
105
+ * @returns RankedElement[] array of HTML elements with additional props for rank, trueIndex and treeChildren array
106
+ */
107
+ generateHeadingTree() {
108
+ var _a;
109
+ const resultArray = [];
110
+ const headingDepth = this.maximumHeadingLevel < 5
111
+ ? ["h2", "h3", "h4", "h5"]
112
+ .slice(0, (this.maximumHeadingLevel < 2 ? 2 : this.maximumHeadingLevel) - 1)
113
+ .join(",")
114
+ : "h2, h3, h4, h5";
115
+ const headingList = this.el.querySelectorAll(headingDepth);
116
+ if (headingList) {
117
+ const headingArray = Array.from(headingList);
118
+ headingArray.forEach((item, index) => {
119
+ this.referenceElements.push(item);
120
+ item.trueIndex = index;
121
+ item.rank = item.tagName.toLowerCase().slice(1, 2);
122
+ item.textLabel = item.textContent
123
+ ? item.textContent.trimStart().split("\n")[0]
124
+ : `${item.rank}-${index}`;
125
+ item.treeChildren = [];
126
+ });
127
+ let currentRank = ((_a = headingArray[0]) === null || _a === void 0 ? void 0 : _a.rank) || 2;
128
+ headingArray.reverse().forEach((h, i) => {
129
+ if (!h.id) {
130
+ h.setAttribute("id", h.textLabel.replace(/\s+/g, "-").toLowerCase());
131
+ }
132
+ if (h.rank > currentRank && h.trueIndex > 0) {
133
+ if (headingArray[i] && headingArray[i].rank < h.rank) {
134
+ headingArray[i].treeChildren.unshift(h);
135
+ }
136
+ else {
137
+ resultArray.push(h);
138
+ }
139
+ }
140
+ else {
141
+ currentRank = h.rank;
142
+ resultArray.push(h);
143
+ }
144
+ });
145
+ }
146
+ return resultArray.reverse();
147
+ }
148
+ //container orientation logic
149
+ containerPosition() {
150
+ var _a;
151
+ if (this.position) {
152
+ const container = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`.${TOC_CONTAINER_CLASS}`);
153
+ switch (this.position) {
154
+ case "right":
155
+ container.style.flexDirection = "row-reverse";
156
+ break;
157
+ case "top":
158
+ container.style.flexDirection = "column";
159
+ break;
160
+ }
161
+ }
162
+ }
163
+ /**
164
+ * Move the sidebar to the provided position on the page.
165
+ * Also, resize the sidebar to stretch the height of the selected heading.
166
+ * @param newPosition
167
+ */
168
+ sidebarTranslation(newPosition) {
169
+ var _a, _b, _c;
170
+ const sidebar = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".table-of-contents-sidebar");
171
+ const itemHeights = [];
172
+ let previousItemsHeight = 0;
173
+ (_c = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelectorAll(`.${TOC_ITEM_CLASS}`)) === null || _c === void 0 ? void 0 : _c.forEach((item) => {
174
+ if (item !== null)
175
+ itemHeights.push(item.offsetHeight);
176
+ });
177
+ itemHeights
178
+ .slice(0, newPosition)
179
+ .forEach((i) => (previousItemsHeight += i));
180
+ sidebar.style.transform = `translateY(${previousItemsHeight}px)`;
181
+ sidebar.style.height = `${itemHeights[newPosition]}px`;
182
+ }
183
+ // find element heights to be used to determine focused item from scroll position
184
+ findElementsHeights() {
185
+ const contentBounds = [];
186
+ this.referenceElements.forEach((element) => {
187
+ contentBounds.push(element.getBoundingClientRect().top);
188
+ });
189
+ this.currentTargetHeights = contentBounds;
190
+ }
191
+ //resize window logic
192
+ handleResizeBounds() {
193
+ if (window.innerWidth < DEVICE_SIZES.XL && this.initialPosition !== "top") {
194
+ this.position = "top";
195
+ this.containerPosition();
196
+ }
197
+ else if (window.innerWidth > DEVICE_SIZES.XL &&
198
+ this.position === "top" &&
199
+ this.initialPosition === "right") {
200
+ this.position = "right";
201
+ this.containerPosition();
202
+ }
203
+ this.findElementsHeights();
204
+ this.truncateText();
205
+ }
206
+ // scroll logic
207
+ updateSelectedItemFromScroll() {
208
+ const targetHeight = window.scrollY + window.innerHeight * (this.setScrollHeight / 100);
209
+ if (window.scrollY === 0) {
210
+ this.focusedElement = 0;
211
+ this.sidebarTranslation(this.focusedElement);
212
+ }
213
+ else if (targetHeight < this.currentTargetHeights[this.focusedElement]) {
214
+ const previousItems = this.currentTargetHeights.slice(0, this.focusedElement);
215
+ const closestItem = previousItems.reduce((newValue, curr, index) => {
216
+ if (Math.abs(curr - targetHeight) <
217
+ Math.abs(previousItems[newValue] - targetHeight))
218
+ return index;
219
+ return newValue;
220
+ }, 0);
221
+ this.focusedElement = closestItem;
222
+ this.sidebarTranslation(this.focusedElement);
223
+ }
224
+ else if (targetHeight > this.currentTargetHeights[this.focusedElement] &&
225
+ this.focusedElement !== this.currentTargetHeights.length) {
226
+ const relevantItems = this.currentTargetHeights.slice(this.focusedElement);
227
+ const closestItem = relevantItems.reduce((newValue, curr, index) => {
228
+ if (Math.abs(curr - targetHeight) <
229
+ Math.abs(relevantItems[newValue] - targetHeight) &&
230
+ curr < targetHeight)
231
+ return index;
232
+ return newValue;
233
+ }, 0);
234
+ if (closestItem + this.focusedElement !== this.focusedElement) {
235
+ this.focusedElement += closestItem;
236
+ this.sidebarTranslation(this.focusedElement);
237
+ }
238
+ }
239
+ }
240
+ // find header element height
241
+ findHeaderElement() {
242
+ const element = document.querySelector("ic-page-header");
243
+ if (element) {
244
+ return element.clientHeight;
245
+ }
246
+ const header = document.querySelector("header");
247
+ if (header) {
248
+ return header.clientHeight;
249
+ }
250
+ return 0;
251
+ }
252
+ // add margin to the list based off the header element height
253
+ addListMargin() {
254
+ var _a;
255
+ const content = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`.${TOC_CONTENT_CLASS}`);
256
+ content === null || content === void 0 ? void 0 : content.style.setProperty("top", `${this.headerHeight}px`);
257
+ }
258
+ // add tooltip to the item if it is too wide
259
+ addTooltip(item, widthBreakpoint) {
260
+ var _a;
261
+ const itemLabel = item.querySelector(".table-of-contents-item-label");
262
+ if (((_a = item.parentNode) === null || _a === void 0 ? void 0 : _a.tagName) == "IC-TOOLTIP") {
263
+ const tooltip = item.parentNode;
264
+ if ((itemLabel === null || itemLabel === void 0 ? void 0 : itemLabel.offsetWidth) < (itemLabel === null || itemLabel === void 0 ? void 0 : itemLabel.scrollWidth)) {
265
+ const tooltipPosition = window.innerWidth < widthBreakpoint
266
+ ? "bottom"
267
+ : this.position === "right"
268
+ ? "left"
269
+ : "right";
270
+ //Modify the ic-tooltip wrapped around the list item
271
+ tooltip.setAttribute("disable-click", false);
272
+ tooltip.setAttribute("disable-hover", false);
273
+ tooltip.setAttribute("placement", tooltipPosition);
274
+ tooltip.setAttribute("target", item.id);
275
+ tooltip.setAttribute("style", "overflow:hidden");
276
+ }
277
+ else {
278
+ //disable the tooltip if the item does not need to truncate
279
+ tooltip.setAttribute("disable-click", true);
280
+ tooltip.setAttribute("disable-hover", true);
281
+ }
282
+ }
283
+ }
284
+ // initialise resize observer
285
+ componentWillLoad() {
286
+ this.resizeObserver = new ResizeObserver(() => this.handleResizeBounds());
287
+ this.resizeObserver.observe(this.el);
288
+ }
289
+ // initialise scroll listener
290
+ componentDidRender() {
291
+ document.addEventListener("scroll", () => {
292
+ if (!this.suppressListener)
293
+ this.updateSelectedItemFromScroll();
294
+ else
295
+ this.suppressListener = false;
296
+ });
297
+ this.containerPosition();
298
+ this.findElementsHeights();
299
+ this.sidebarTranslation(this.focusedElement);
300
+ }
301
+ // after component has loaded modify the list based of position, size and surrounding elements
302
+ async componentDidLoad() {
303
+ this.focusedElement = 0;
304
+ this.headerHeight = this.findHeaderElement();
305
+ this.addListMargin();
306
+ this.truncateText();
307
+ this.findElementsHeights();
308
+ this.sidebarTranslation(this.focusedElement);
309
+ }
310
+ // Component is a wrapper for page contents, and will build list from heading items
311
+ render() {
312
+ const { heading, monochrome, position, size, theme } = this;
313
+ return (h(Host, { key: '251846b7b12255064f6f08dc5ed373e8ccf0326b', class: { [`ic-theme-${theme}`]: theme !== "inherit" } }, h("ic-section-container", { key: '3a178d62dfe2ce56c052e18114bb2d7c3fbd47ee', class: TOC_CONTAINER_CLASS, aligned: "full-width" }, h("div", { key: '34378cb8e4ac052d1f05cdc7b61880ab866e5c30', role: "navigation", class: `${TOC_CONTENT_CLASS} ${position === "top" && "table-of-contents-position-top"}
314
+ ${position === "right" && "table-of-contents-position-side"}` }, h("ic-typography", { key: '9c2e6cd5dcf1bdcaada2fc63035c3fbe1aff0f44', class: `table-of-contents-heading ${size}`, variant: "subtitle-large" }, heading), h("div", { key: '848fbb7b4e2923e6abc7c2b7dbe267221b0158e6', class: "table-of-contents-list" }, h("div", { key: '31324398f103b292dfdf6edec92e738fa0c49c60', class: `table-of-contents-sidebar ${monochrome && `table-of-contents-sidebar-monochrome`}
315
+ ${size}
316
+ ` }), h("ol", { key: 'b4cf6c02151d3257155a4b8e055df992b06e64e0', class: TOC_LIST_ITEMS_CLASS }, this.generateHeadingTree().map((item) => this.renderTocTree(item))))), h("slot", { key: '0a5e55adfd3eeb0ba3c502c8936557f1b5f8bd76' }))));
317
+ }
318
+ static get is() { return "ic-table-of-contents"; }
319
+ static get encapsulation() { return "shadow"; }
320
+ static get originalStyleUrls() {
321
+ return {
322
+ "$": ["ic-table-of-contents.css"]
323
+ };
324
+ }
325
+ static get styleUrls() {
326
+ return {
327
+ "$": ["ic-table-of-contents.css"]
328
+ };
329
+ }
330
+ static get properties() {
331
+ return {
332
+ "heading": {
333
+ "type": "string",
334
+ "mutable": false,
335
+ "complexType": {
336
+ "original": "string",
337
+ "resolved": "string",
338
+ "references": {}
339
+ },
340
+ "required": false,
341
+ "optional": false,
342
+ "docs": {
343
+ "tags": [],
344
+ "text": "Heading text of the table of contents."
345
+ },
346
+ "getter": false,
347
+ "setter": false,
348
+ "attribute": "heading",
349
+ "reflect": false,
350
+ "defaultValue": "\"Contents\""
351
+ },
352
+ "maximumHeadingLevel": {
353
+ "type": "number",
354
+ "mutable": false,
355
+ "complexType": {
356
+ "original": "number",
357
+ "resolved": "number",
358
+ "references": {}
359
+ },
360
+ "required": false,
361
+ "optional": false,
362
+ "docs": {
363
+ "tags": [],
364
+ "text": "Maximum heading level of child content that will generate an item in the table of contents. E.g. when set to '3', headings of <h4> and <h5> will not appear."
365
+ },
366
+ "getter": false,
367
+ "setter": false,
368
+ "attribute": "maximum-heading-level",
369
+ "reflect": false,
370
+ "defaultValue": "3"
371
+ },
372
+ "monochrome": {
373
+ "type": "boolean",
374
+ "mutable": false,
375
+ "complexType": {
376
+ "original": "boolean",
377
+ "resolved": "boolean | undefined",
378
+ "references": {}
379
+ },
380
+ "required": false,
381
+ "optional": true,
382
+ "docs": {
383
+ "tags": [],
384
+ "text": "If `true`, the table of contents will display as black in the light theme, and white in dark theme."
385
+ },
386
+ "getter": false,
387
+ "setter": false,
388
+ "attribute": "monochrome",
389
+ "reflect": false,
390
+ "defaultValue": "false"
391
+ },
392
+ "position": {
393
+ "type": "string",
394
+ "mutable": true,
395
+ "complexType": {
396
+ "original": "IcPositionTopOrRight",
397
+ "resolved": "\"right\" | \"top\"",
398
+ "references": {
399
+ "IcPositionTopOrRight": {
400
+ "location": "import",
401
+ "path": "../../utils/types",
402
+ "id": "src/utils/types.ts::IcPositionTopOrRight"
403
+ }
404
+ }
405
+ },
406
+ "required": false,
407
+ "optional": false,
408
+ "docs": {
409
+ "tags": [],
410
+ "text": "Whether the table of contents will appear on the right of or above child content on large viewport widths."
411
+ },
412
+ "getter": false,
413
+ "setter": false,
414
+ "attribute": "position",
415
+ "reflect": false,
416
+ "defaultValue": "\"right\""
417
+ },
418
+ "setScrollHeight": {
419
+ "type": "number",
420
+ "mutable": false,
421
+ "complexType": {
422
+ "original": "number",
423
+ "resolved": "number",
424
+ "references": {}
425
+ },
426
+ "required": false,
427
+ "optional": false,
428
+ "docs": {
429
+ "tags": [],
430
+ "text": "Vertical offset to page scroll (in percent) when table of contents item is selected, to account for other page components like headers."
431
+ },
432
+ "getter": false,
433
+ "setter": false,
434
+ "attribute": "set-scroll-height",
435
+ "reflect": false,
436
+ "defaultValue": "50"
437
+ },
438
+ "size": {
439
+ "type": "string",
440
+ "mutable": false,
441
+ "complexType": {
442
+ "original": "IcSizes",
443
+ "resolved": "\"large\" | \"medium\" | \"small\"",
444
+ "references": {
445
+ "IcSizes": {
446
+ "location": "import",
447
+ "path": "../../utils/types",
448
+ "id": "src/utils/types.ts::IcSizes"
449
+ }
450
+ }
451
+ },
452
+ "required": false,
453
+ "optional": false,
454
+ "docs": {
455
+ "tags": [],
456
+ "text": "The size of the table of contents items."
457
+ },
458
+ "getter": false,
459
+ "setter": false,
460
+ "attribute": "size",
461
+ "reflect": false,
462
+ "defaultValue": "\"medium\""
463
+ },
464
+ "theme": {
465
+ "type": "string",
466
+ "mutable": false,
467
+ "complexType": {
468
+ "original": "IcThemeMode",
469
+ "resolved": "\"dark\" | \"inherit\" | \"light\" | undefined",
470
+ "references": {
471
+ "IcThemeMode": {
472
+ "location": "import",
473
+ "path": "../../utils/types",
474
+ "id": "src/utils/types.ts::IcThemeMode"
475
+ }
476
+ }
477
+ },
478
+ "required": false,
479
+ "optional": true,
480
+ "docs": {
481
+ "tags": [],
482
+ "text": "Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component."
483
+ },
484
+ "getter": false,
485
+ "setter": false,
486
+ "attribute": "theme",
487
+ "reflect": false,
488
+ "defaultValue": "\"inherit\""
489
+ },
490
+ "truncate": {
491
+ "type": "boolean",
492
+ "mutable": false,
493
+ "complexType": {
494
+ "original": "boolean",
495
+ "resolved": "boolean",
496
+ "references": {}
497
+ },
498
+ "required": false,
499
+ "optional": false,
500
+ "docs": {
501
+ "tags": [],
502
+ "text": "If `true`, the table of contents item label will be truncated."
503
+ },
504
+ "getter": false,
505
+ "setter": false,
506
+ "attribute": "truncate",
507
+ "reflect": false,
508
+ "defaultValue": "true"
509
+ }
510
+ };
511
+ }
512
+ static get states() {
513
+ return {
514
+ "focusedElement": {},
515
+ "suppressListener": {}
516
+ };
517
+ }
518
+ static get elementRef() { return "el"; }
519
+ static get watchers() {
520
+ return [{
521
+ "propName": "suppressListener",
522
+ "methodName": "suppressListenerHandler"
523
+ }];
524
+ }
525
+ }
526
+ //# sourceMappingURL=ic-table-of-contents.js.map