@ukic/web-components 2.1.0-beta.2 → 2.1.0-beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (343) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-alert.cjs.entry.js +2 -0
  3. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-button_3.cjs.entry.js +25 -9
  5. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-checkbox.cjs.entry.js +2 -0
  9. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-chip.cjs.entry.js +66 -0
  11. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -0
  12. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +16 -16
  21. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  26. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-radio-option.cjs.entry.js +10 -0
  30. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-select.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-step.cjs.entry.js +101 -13
  37. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-stepper.cjs.entry.js +161 -40
  39. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-tab-context.cjs.entry.js +6 -1
  41. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  45. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  47. package/dist/cjs/index-3ef30d9d.js +4 -0
  48. package/dist/cjs/loader.cjs.js +1 -1
  49. package/dist/collection/assets/dismiss-icon.svg +3 -0
  50. package/dist/collection/assets/warning-icon-outline.svg +3 -0
  51. package/dist/collection/collection-manifest.json +1 -0
  52. package/dist/collection/components/ic-alert/ic-alert.js +20 -1
  53. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  54. package/dist/collection/components/ic-button/ic-button.js +2 -2
  55. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  56. package/dist/collection/components/ic-card/ic-card.js +2 -2
  57. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  58. package/dist/collection/components/ic-checkbox/ic-checkbox.js +20 -1
  59. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  60. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +1 -1
  61. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  62. package/dist/collection/components/ic-chip/ic-chip.css +595 -0
  63. package/dist/collection/components/ic-chip/ic-chip.js +199 -0
  64. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -0
  65. package/dist/collection/components/ic-chip/ic-chip.test.a11y.js +11 -0
  66. package/dist/collection/components/ic-chip/ic-chip.test.a11y.js.map +1 -0
  67. package/dist/collection/components/ic-chip/ic-chip.types.js +2 -0
  68. package/dist/collection/components/ic-chip/ic-chip.types.js.map +1 -0
  69. package/dist/collection/components/ic-data-row/ic-data-row.css +12 -0
  70. package/dist/collection/components/ic-divider/ic-divider.js +1 -1
  71. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  72. package/dist/collection/components/ic-footer/ic-footer.js +9 -6
  73. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  74. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  75. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  76. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +2 -2
  77. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  78. package/dist/collection/components/ic-hero/ic-hero.js +1 -1
  79. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  80. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +0 -2
  81. package/dist/collection/components/ic-link/ic-link.js +1 -1
  82. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  83. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +38 -2
  84. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +39 -5
  85. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  86. package/dist/collection/components/ic-menu/ic-menu.js +23 -20
  87. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  88. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +1 -1
  89. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  90. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +2 -2
  91. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  92. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +4 -4
  93. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  94. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +1 -1
  95. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  96. package/dist/collection/components/ic-radio-group/ic-radio-group.js +1 -1
  97. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  98. package/dist/collection/components/ic-radio-option/ic-radio-option.js +32 -0
  99. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  100. package/dist/collection/components/ic-search-bar/ic-search-bar.js +12 -6
  101. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  102. package/dist/collection/components/ic-select/ic-select.css +1 -1
  103. package/dist/collection/components/ic-select/ic-select.js +1 -1
  104. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  105. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +6 -3
  106. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  107. package/dist/collection/components/ic-step/ic-step.css +120 -24
  108. package/dist/collection/components/ic-step/ic-step.js +268 -27
  109. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  110. package/dist/collection/components/ic-step/ic-step.types.js.map +1 -1
  111. package/dist/collection/components/ic-stepper/ic-stepper-test-examples.js +74 -0
  112. package/dist/collection/components/ic-stepper/ic-stepper-test-examples.js.map +1 -0
  113. package/dist/collection/components/ic-stepper/ic-stepper.css +15 -1
  114. package/dist/collection/components/ic-stepper/ic-stepper.js +206 -39
  115. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  116. package/dist/collection/components/ic-stepper/ic-stepper.test.a11y.js +13 -1
  117. package/dist/collection/components/ic-stepper/ic-stepper.test.a11y.js.map +1 -1
  118. package/dist/collection/components/ic-tab/ic-tab.js +5 -2
  119. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  120. package/dist/collection/components/ic-tab-context/ic-tab-context.js +29 -2
  121. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  122. package/dist/collection/components/ic-text-field/ic-text-field.js +2 -2
  123. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  124. package/dist/collection/components/ic-theme/ic-theme.js +8 -5
  125. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  126. package/dist/collection/components/ic-tooltip/ic-tooltip.css +1 -1
  127. package/dist/collection/components/ic-tooltip/ic-tooltip.js +22 -1
  128. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  129. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +1 -1
  130. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +1 -1
  131. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  132. package/dist/collection/testspec.setup.js +8 -0
  133. package/dist/collection/testspec.setup.js.map +1 -1
  134. package/dist/components/ic-alert.js +3 -1
  135. package/dist/components/ic-alert.js.map +1 -1
  136. package/dist/components/ic-button2.js +2 -2
  137. package/dist/components/ic-button2.js.map +1 -1
  138. package/dist/components/ic-card.js +1 -1
  139. package/dist/components/ic-card.js.map +1 -1
  140. package/dist/components/ic-checkbox-group.js +1 -1
  141. package/dist/components/ic-checkbox-group.js.map +1 -1
  142. package/dist/components/ic-checkbox.js +2 -0
  143. package/dist/components/ic-checkbox.js.map +1 -1
  144. package/dist/components/ic-chip.d.ts +11 -0
  145. package/dist/components/ic-chip.js +99 -0
  146. package/dist/components/ic-chip.js.map +1 -0
  147. package/dist/components/ic-data-row.js +1 -1
  148. package/dist/components/ic-data-row.js.map +1 -1
  149. package/dist/components/ic-divider2.js +1 -1
  150. package/dist/components/ic-divider2.js.map +1 -1
  151. package/dist/components/ic-footer-link-group.js +1 -1
  152. package/dist/components/ic-footer-link-group.js.map +1 -1
  153. package/dist/components/ic-footer-link.js +1 -1
  154. package/dist/components/ic-footer-link.js.map +1 -1
  155. package/dist/components/ic-footer.js +3 -3
  156. package/dist/components/ic-footer.js.map +1 -1
  157. package/dist/components/ic-hero.js +1 -1
  158. package/dist/components/ic-hero.js.map +1 -1
  159. package/dist/components/ic-input-component-container2.js +1 -1
  160. package/dist/components/ic-input-component-container2.js.map +1 -1
  161. package/dist/components/ic-link2.js +1 -1
  162. package/dist/components/ic-link2.js.map +1 -1
  163. package/dist/components/ic-loading-indicator2.js +21 -6
  164. package/dist/components/ic-loading-indicator2.js.map +1 -1
  165. package/dist/components/ic-menu2.js +15 -15
  166. package/dist/components/ic-menu2.js.map +1 -1
  167. package/dist/components/ic-navigation-button.js +1 -1
  168. package/dist/components/ic-navigation-button.js.map +1 -1
  169. package/dist/components/ic-navigation-group.js +1 -1
  170. package/dist/components/ic-navigation-group.js.map +1 -1
  171. package/dist/components/ic-navigation-item.js +3 -3
  172. package/dist/components/ic-navigation-item.js.map +1 -1
  173. package/dist/components/ic-navigation-menu2.js +1 -1
  174. package/dist/components/ic-navigation-menu2.js.map +1 -1
  175. package/dist/components/ic-radio-group.js +1 -1
  176. package/dist/components/ic-radio-group.js.map +1 -1
  177. package/dist/components/ic-radio-option.js +10 -0
  178. package/dist/components/ic-radio-option.js.map +1 -1
  179. package/dist/components/ic-search-bar.js +2 -2
  180. package/dist/components/ic-search-bar.js.map +1 -1
  181. package/dist/components/ic-select.js +2 -2
  182. package/dist/components/ic-select.js.map +1 -1
  183. package/dist/components/ic-side-navigation.js +1 -1
  184. package/dist/components/ic-side-navigation.js.map +1 -1
  185. package/dist/components/ic-step.js +117 -16
  186. package/dist/components/ic-step.js.map +1 -1
  187. package/dist/components/ic-stepper.js +169 -41
  188. package/dist/components/ic-stepper.js.map +1 -1
  189. package/dist/components/ic-tab-context.js +6 -1
  190. package/dist/components/ic-tab-context.js.map +1 -1
  191. package/dist/components/ic-tab.js.map +1 -1
  192. package/dist/components/ic-text-field2.js +2 -2
  193. package/dist/components/ic-text-field2.js.map +1 -1
  194. package/dist/components/ic-theme.js +2 -2
  195. package/dist/components/ic-theme.js.map +1 -1
  196. package/dist/components/ic-tooltip2.js +7 -3
  197. package/dist/components/ic-tooltip2.js.map +1 -1
  198. package/dist/components/ic-top-navigation.js +1 -1
  199. package/dist/components/ic-top-navigation.js.map +1 -1
  200. package/dist/components/index.d.ts +2 -1
  201. package/dist/components/index.js +1 -0
  202. package/dist/components/index.js.map +1 -1
  203. package/dist/core/core.esm.js +1 -1
  204. package/dist/core/core.esm.js.map +1 -1
  205. package/dist/core/p-0d77bd0c.entry.js +2 -0
  206. package/dist/core/p-0d77bd0c.entry.js.map +1 -0
  207. package/dist/core/p-2b5c9143.entry.js.map +1 -1
  208. package/dist/core/p-31a8595f.entry.js.map +1 -1
  209. package/dist/core/{p-7b39977f.entry.js → p-3a068a45.entry.js} +2 -2
  210. package/dist/core/p-3a068a45.entry.js.map +1 -0
  211. package/dist/core/p-5831bb8e.entry.js.map +1 -1
  212. package/dist/core/p-5d76bbad.entry.js +2 -0
  213. package/dist/core/p-5d76bbad.entry.js.map +1 -0
  214. package/dist/core/p-60ffb73e.entry.js.map +1 -1
  215. package/dist/core/p-6308f1f2.entry.js +2 -0
  216. package/dist/core/p-6308f1f2.entry.js.map +1 -0
  217. package/dist/core/{p-c6dd4f47.entry.js → p-66f3f02b.entry.js} +2 -2
  218. package/dist/core/p-66f3f02b.entry.js.map +1 -0
  219. package/dist/core/p-69650186.entry.js.map +1 -1
  220. package/dist/core/p-6b34d98f.entry.js.map +1 -1
  221. package/dist/core/p-6f6bd657.entry.js.map +1 -1
  222. package/dist/core/{p-558552f8.entry.js → p-7881b94e.entry.js} +2 -2
  223. package/dist/core/p-7881b94e.entry.js.map +1 -0
  224. package/dist/core/p-7f632414.entry.js.map +1 -1
  225. package/dist/core/p-80cd0a2d.entry.js +2 -0
  226. package/dist/core/p-80cd0a2d.entry.js.map +1 -0
  227. package/dist/core/{p-e4551421.entry.js → p-8144e941.entry.js} +2 -2
  228. package/dist/core/p-8144e941.entry.js.map +1 -0
  229. package/dist/core/p-9cd04875.entry.js.map +1 -1
  230. package/dist/core/p-9e684c58.entry.js +2 -0
  231. package/dist/core/p-9e684c58.entry.js.map +1 -0
  232. package/dist/core/p-b24145f7.entry.js +2 -0
  233. package/dist/core/p-b24145f7.entry.js.map +1 -0
  234. package/dist/core/p-b3dec76d.entry.js.map +1 -1
  235. package/dist/core/{p-347ec49e.entry.js → p-bf89bcd3.entry.js} +2 -2
  236. package/dist/core/p-bf89bcd3.entry.js.map +1 -0
  237. package/dist/core/p-c4d3c18c.entry.js.map +1 -1
  238. package/dist/core/p-c85689e3.entry.js +2 -0
  239. package/dist/core/p-c85689e3.entry.js.map +1 -0
  240. package/dist/core/p-c8ce6147.entry.js +2 -0
  241. package/dist/core/p-c8ce6147.entry.js.map +1 -0
  242. package/dist/core/p-cadb531f.entry.js.map +1 -1
  243. package/dist/core/p-cc83692e.entry.js.map +1 -1
  244. package/dist/core/p-dd3c3e3c.entry.js.map +1 -1
  245. package/dist/core/p-ecfb2e6b.entry.js.map +1 -1
  246. package/dist/core/{p-001651fc.entry.js → p-fa7bc907.entry.js} +2 -2
  247. package/dist/core/p-fa7bc907.entry.js.map +1 -0
  248. package/dist/core/p-fbde8a26.entry.js +2 -0
  249. package/dist/core/p-fbde8a26.entry.js.map +1 -0
  250. package/dist/esm/core.js +1 -1
  251. package/dist/esm/ic-alert.entry.js +2 -0
  252. package/dist/esm/ic-alert.entry.js.map +1 -1
  253. package/dist/esm/ic-button_3.entry.js +25 -9
  254. package/dist/esm/ic-button_3.entry.js.map +1 -1
  255. package/dist/esm/ic-card.entry.js.map +1 -1
  256. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  257. package/dist/esm/ic-checkbox.entry.js +2 -0
  258. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  259. package/dist/esm/ic-chip.entry.js +62 -0
  260. package/dist/esm/ic-chip.entry.js.map +1 -0
  261. package/dist/esm/ic-data-row.entry.js +1 -1
  262. package/dist/esm/ic-data-row.entry.js.map +1 -1
  263. package/dist/esm/ic-divider.entry.js.map +1 -1
  264. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  265. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  266. package/dist/esm/ic-footer.entry.js +2 -2
  267. package/dist/esm/ic-footer.entry.js.map +1 -1
  268. package/dist/esm/ic-hero.entry.js.map +1 -1
  269. package/dist/esm/ic-input-component-container_3.entry.js +16 -16
  270. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  271. package/dist/esm/ic-link.entry.js.map +1 -1
  272. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  273. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  274. package/dist/esm/ic-navigation-item.entry.js +2 -2
  275. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  276. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  277. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  278. package/dist/esm/ic-radio-option.entry.js +10 -0
  279. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  280. package/dist/esm/ic-search-bar.entry.js +1 -1
  281. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  282. package/dist/esm/ic-select.entry.js +2 -2
  283. package/dist/esm/ic-select.entry.js.map +1 -1
  284. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  285. package/dist/esm/ic-step.entry.js +101 -13
  286. package/dist/esm/ic-step.entry.js.map +1 -1
  287. package/dist/esm/ic-stepper.entry.js +161 -40
  288. package/dist/esm/ic-stepper.entry.js.map +1 -1
  289. package/dist/esm/ic-tab-context.entry.js +6 -1
  290. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  291. package/dist/esm/ic-tab.entry.js.map +1 -1
  292. package/dist/esm/ic-text-field.entry.js.map +1 -1
  293. package/dist/esm/ic-theme.entry.js +2 -2
  294. package/dist/esm/ic-theme.entry.js.map +1 -1
  295. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  296. package/dist/esm/index-1500de1f.js +4 -0
  297. package/dist/esm/loader.js +1 -1
  298. package/dist/types/components/ic-alert/ic-alert.d.ts +5 -1
  299. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +5 -1
  300. package/dist/types/components/ic-chip/ic-chip.d.ts +40 -0
  301. package/dist/types/components/ic-chip/ic-chip.test.a11y.d.ts +1 -0
  302. package/dist/types/components/ic-chip/ic-chip.types.d.ts +2 -0
  303. package/dist/types/components/ic-footer/ic-footer.d.ts +2 -2
  304. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +5 -0
  305. package/dist/types/components/ic-menu/ic-menu.d.ts +4 -4
  306. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +1 -1
  307. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +5 -1
  308. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +2 -2
  309. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +1 -1
  310. package/dist/types/components/ic-step/ic-step.d.ts +35 -6
  311. package/dist/types/components/ic-step/ic-step.types.d.ts +2 -0
  312. package/dist/types/components/ic-stepper/ic-stepper-test-examples.d.ts +4 -0
  313. package/dist/types/components/ic-stepper/ic-stepper.d.ts +23 -6
  314. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -1
  315. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +6 -2
  316. package/dist/types/components/ic-theme/ic-theme.d.ts +2 -2
  317. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +4 -0
  318. package/dist/types/components.d.ts +134 -40
  319. package/dist/types/testspec.setup.d.ts +1 -0
  320. package/hydrate/index.js +512 -176
  321. package/package.json +3 -3
  322. package/dist/core/p-001651fc.entry.js.map +0 -1
  323. package/dist/core/p-2e9f3011.entry.js +0 -2
  324. package/dist/core/p-2e9f3011.entry.js.map +0 -1
  325. package/dist/core/p-347ec49e.entry.js.map +0 -1
  326. package/dist/core/p-39ae284e.entry.js +0 -2
  327. package/dist/core/p-39ae284e.entry.js.map +0 -1
  328. package/dist/core/p-558552f8.entry.js.map +0 -1
  329. package/dist/core/p-7093d214.entry.js +0 -2
  330. package/dist/core/p-7093d214.entry.js.map +0 -1
  331. package/dist/core/p-7577c6a3.entry.js +0 -2
  332. package/dist/core/p-7577c6a3.entry.js.map +0 -1
  333. package/dist/core/p-7b39977f.entry.js.map +0 -1
  334. package/dist/core/p-88b15005.entry.js +0 -2
  335. package/dist/core/p-88b15005.entry.js.map +0 -1
  336. package/dist/core/p-898607d0.entry.js +0 -2
  337. package/dist/core/p-898607d0.entry.js.map +0 -1
  338. package/dist/core/p-ac43322e.entry.js +0 -2
  339. package/dist/core/p-ac43322e.entry.js.map +0 -1
  340. package/dist/core/p-c6dd4f47.entry.js.map +0 -1
  341. package/dist/core/p-cf5e8a55.entry.js +0 -2
  342. package/dist/core/p-cf5e8a55.entry.js.map +0 -1
  343. package/dist/core/p-e4551421.entry.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukic/web-components",
3
- "version": "2.1.0-beta.2",
3
+ "version": "2.1.0-beta.3",
4
4
  "description": "A web component UI library compiled with StencilJS",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "./dist/index.js",
@@ -40,7 +40,7 @@
40
40
  "dependencies": {
41
41
  "@popperjs/core": "^2.11.2",
42
42
  "@stencil/core": "^2.16.1",
43
- "@ukic/fonts": "^2.1.0-beta.2"
43
+ "@ukic/fonts": "^2.1.0-beta.3"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@babel/core": "^7.16.0",
@@ -74,5 +74,5 @@
74
74
  "webpack": "^5.75.0"
75
75
  },
76
76
  "license": "MIT",
77
- "gitHead": "5e0df20dde95a24afed14480113caa794c72126f"
77
+ "gitHead": "686f9e439d6d7a8b9ab5e7abb7c31ddfc4825e5d"
78
78
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-search-bar/ic-search-bar.css?tag=ic-search-bar&encapsulation=shadow","src/components/ic-search-bar/ic-search-bar.tsx"],"names":["icSearchBarCss","inputIds","SearchBar","this","inputId","menuId","menuCloseFromMenuChangeEvent","truncateValue","assistiveHintEl","preventSubmit","handleSubmitSearch","highlightedValue","value","undefined","icSubmitSearch","emit","form","el","closest","searchSubmitButton","handleHiddenFormButtonClick","handleSubmitSearchKeyDown","ev","key","preventDefault","onInput","target","noOptions","label","emptyOptionListText","options","length","setMenuChange","disableFilter","rawFilteredOptions","getFilteredMenuOptions","filteredOptions","showClearButton","handleShowClearButton","debounceAriaLiveUpdate","icInput","onInputBlur","nextFocus","relatedTarget","icInputBlur","onInputFocus","icInputFocus","handleClear","keyboardEvent","mouseEvent","type","code","inputEl","setFocus","icClear","handleClearBlur","icClearBlur","clearButtonFocused","handleSubmitSearchBlur","icSubmitSearchBlur","searchSubmitFocused","handleSubmitSearchFocus","handleMenuCloseFromMenuChange","handleOptionSelect","detail","icOptionSelect","handleMenuOptionHighlight","optionValue","_a","optionId","replace","handleMenuChange","open","icMenuChange","handleHostFocus","handleTruncateValue","icSearchBarFocus","handleHostBlur","menu","icSearchBarBlur","visible","handleFocusClearButton","fromEvent","truncate","renderAssistiveHintEl","input","_b","shadowRoot","querySelector","Object","keys","hasOptionsOrFilterDisabled","document","createElement","innerText","hintText","id","style","display","after","updateSearchResultAriaLive","searchResultsStatusEl","charactersUntilSuggestion","hadNoOptions","isSubmitDisabled","valueNotSet","disabled","highlightFirstOptionAfterNoResults","prevNoOption","handleSetFirstOption","prevNoOptionsList","find","filteredOption","[object Object]","icChange","debounceEvent","debounce","newOptions","newValue","getLabelFromValue","keyEv","event","handleKeyboardOpen","clearTimeout","window","setTimeout","focusInput","ariaActiveDescendant","debounceChanged","watchValueHandler","focusOnLoad","onComponentRequiredPropUndefined","prop","propName","anchorEl","remove","name","required","small","placeholder","helperText","readonly","spellcheck","fullWidth","hideLabel","autofocus","autocapitalize","autocomplete","disabledMode","describedBy","getInputDescribedByText","trim","describedById","disabledText","hasSuggestedSearch","menuOpen","expanded","renderHiddenInput","h","Host","class","onFocus","onBlur","ref","aria-label","aria-describedby","aria-owns","aria-haspopup","ariaExpanded","aria-autocomplete","role","autoFocus","inputmode","clear-button-container","clear-button-visible","slot","innerHTML","clearIcon","onClick","size","onKeyDown","variant","appearance","IcThemeForegroundEnum","Light","Dark","search-submit-button-container","search-submit-button-disabled","searchIcon","Default","menu-container","fullwidth","no-results","activationType","autoFocusOnSelected","inputLabel","onOptionSelect","onMenuChange","onMenuOptionId","parentEl","aria-live"],"mappings":"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","sourcesContent":["@import \"../../global/normalise.css\";\n\n:host(.search) {\n --divider-height: 24px;\n}\n\n:host(.search.small) {\n --divider-height: 16px;\n}\n\n:host(.fullwidth) {\n width: 100%;\n}\n\n:host(.search) .disabled:hover {\n border-color: var(--ic-architectural-200);\n}\n\n:host(.search.disabled) .disabled svg {\n color: var(--ic-architectural-200);\n}\n\n:host(.search) .disabled svg {\n color: var(--ic-architectural-400);\n}\n\n/* CLEAR */\n\n.clear-button-container {\n align-items: center;\n margin-right: 1px;\n display: none;\n visibility: hidden;\n}\n\n.clear-button {\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus {\n background-color: var(--ic-focus-blue);\n box-shadow: inset 0 0 0 2px var(--ic-focus-glow);\n border-radius: 4px;\n}\n\n.clear-button:focus * {\n fill: white;\n}\n\n.clear-button-visible {\n visibility: visible;\n display: flex;\n}\n\n.search-submit-button-container {\n display: flex;\n align-items: center;\n}\n\n.search-submit-button-disabled .ic-tooltip-container {\n display: none !important;\n}\n\n.search-submit-button:focus {\n background-color: var(--ic-focus-blue) !important;\n box-shadow: inset 0 0 0 2px var(--ic-focus-glow) !important;\n border-radius: var(--ic-space-xxs);\n height: var(--ic-space-xl);\n margin-top: var(--ic-space-xxxs);\n}\n\n.search-submit-button:focus * {\n fill: white;\n}\n\n.divider {\n width: 1px;\n background-color: var(--ic-action-dark-active);\n height: var(--divider-height);\n}\n\n:host(.dark) .divider {\n background-color: var(--ic-architectural-200);\n}\n\n.menu-container {\n width: var(--input-width, 320px);\n position: relative;\n top: var(--ic-space-xxxs);\n}\n\n.menu-container.fullwidth {\n width: 100%;\n}\n\nic-menu {\n transition: var(--ic-easing-transition-slow);\n}\n\n.no-results {\n cursor: not-allowed;\n}\n\n.search-results-status {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: 1px;\n margin-bottom: -1px;\n margin-right: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n} from \"@stencil/core\";\n\nimport {\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcThemeForegroundEnum,\n IcMenuOption,\n} from \"../../utils/types\";\nimport {\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n handleHiddenFormButtonClick,\n getLabelFromValue,\n onComponentRequiredPropUndefined,\n getFilteredMenuOptions,\n} from \"../../utils/helpers\";\nimport { IcSearchBarBlurEventDetail } from \"./ic-search-bar.types\";\nimport { IcValueEventDetail, IcBlurEventDetail } from \"../../interface\";\nimport {\n IcMenuChangeEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\n\nimport clearIcon from \"../../assets/clear-icon.svg\";\nimport searchIcon from \"../../assets/search-icon.svg\";\n\nlet inputIds = 0;\n\n@Component({\n tag: \"ic-search-bar\",\n styleUrl: \"ic-search-bar.css\",\n shadow: true,\n})\nexport class SearchBar {\n @Element() el: HTMLIcSearchBarElement;\n\n private inputId = `ic-search-bar-input-${inputIds++}`;\n private inputEl: HTMLIcTextFieldElement;\n\n private menuId = `${this.inputId}-menu`;\n private searchSubmitButton: HTMLIcButtonElement;\n private menu: HTMLIcMenuElement;\n private menuCloseFromMenuChangeEvent: boolean = false;\n\n private anchorEl: HTMLElement;\n private truncateValue = false;\n\n private assistiveHintEl: HTMLSpanElement = null;\n private preventSubmit: boolean = false;\n\n /**\n * The label for the search bar.\n */\n @Prop() label!: string;\n\n /**\n * If `true`, the search bar will require a value.\n */\n @Prop() required?: boolean = false;\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * The placeholder value to display.\n */\n @Prop() placeholder?: string = \"Search\";\n\n /**\n * Specify whether the search bar fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * Specify whether to disable the built in filtering. For example, if options will already be filtered from external source.\n * If `true`, all options provided will be displayed.\n */\n @Prop() disableFilter?: boolean = false;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the small styling will be applied to the search bar.\n */\n @Prop() small?: boolean = false;\n\n /**\n * The value of the search input.\n */\n @Prop({ reflect: true, mutable: true }) value: string = \"\";\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete?: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect?: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop({ mutable: true }) debounce?: number = 0;\n\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * If `true`, the value of the search will have its spelling and grammar checked.\n */\n @Prop() spellcheck: boolean = false;\n /**\n * The suggested search options.\n */\n @Prop() options?: IcMenuOption[] = [];\n\n @Watch(\"options\")\n watchOptionsHandler(newOptions: IcMenuOption[]): void {\n if (this.disableFilter) {\n this.filteredOptions = newOptions;\n }\n }\n\n /**\n * If `true`, the search bar will be focused when component loaded.\n */\n @Prop() focusOnLoad?: boolean = false;\n\n /**\n * The hint text for the hidden assistive description element.\n */\n @Prop() hintText?: string =\n \"When autocomplete results are available use the up and down arrows to choose and press enter to select\";\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText = \"No results found\";\n\n /**\n * The number of characters until suggestions appear.\n */\n @Prop() charactersUntilSuggestion: number = 2;\n\n @Watch(\"value\")\n watchValueHandler(newValue: string): void {\n if (\n this.inputEl &&\n this.options &&\n !!getLabelFromValue(newValue, this.options)\n ) {\n this.inputEl.value = getLabelFromValue(newValue, this.options);\n } else if (this.inputEl && this.inputEl.value !== newValue) {\n this.inputEl.value = newValue;\n }\n\n this.icChange.emit({ value: newValue });\n }\n\n /**\n * Sets focus on the native `input`\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.inputEl) {\n this.inputEl.setFocus();\n }\n }\n\n @Listen(\"icKeydown\", {})\n handleKeyDown(ev: CustomEvent): void {\n const keyEv: KeyboardEvent = ev.detail.event;\n if (this.menu && this.open) {\n this.menu.handleKeyboardOpen(keyEv);\n }\n }\n\n @Listen(\"keyup\", {})\n handleKeyUp(ev: KeyboardEvent): void {\n if (ev.key === \"Enter\") {\n if (this.preventSubmit || this.isSubmitDisabled()) {\n return;\n }\n\n this.handleSubmitSearch();\n this.setMenuChange(false);\n }\n\n if (ev.key === \"Escape\") {\n this.setMenuChange(false);\n }\n\n if (this.preventSubmit) {\n this.preventSubmit = false;\n }\n }\n\n private handleSubmitSearch = () => {\n this.highlightedValue && (this.value = this.highlightedValue);\n this.highlightedValue = undefined;\n this.icSubmitSearch.emit({ value: this.value });\n\n const form: HTMLFormElement = this.el.closest(\"FORM\");\n\n if (this.searchSubmitButton && !!form && !this.preventSubmit) {\n handleHiddenFormButtonClick(form, this.searchSubmitButton);\n }\n };\n \n private handleSubmitSearchKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === \" \") {\n ev.preventDefault();\n this.handleSubmitSearch();\n }\n };\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n\n const noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n\n if (this.options.length > 0) {\n this.setMenuChange(true);\n\n if (this.disableFilter === false) {\n const rawFilteredOptions = getFilteredMenuOptions(\n this.options,\n false,\n this.value,\n \"anywhere\"\n );\n\n this.filteredOptions =\n rawFilteredOptions.length > 0 ? rawFilteredOptions : noOptions;\n }\n } else if (this.disableFilter) {\n this.setMenuChange(true);\n this.filteredOptions = noOptions;\n }\n\n if (!this.showClearButton) {\n this.handleShowClearButton(true);\n }\n\n this.debounceAriaLiveUpdate();\n\n this.icInput.emit({ value: this.value });\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounce);\n\n this.debounce = window.setTimeout(() => {\n this.updateSearchResultAriaLive();\n }, 500);\n }\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icInputBlur: EventEmitter<IcSearchBarBlurEventDetail>;\n private onInputBlur = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n const nextFocus = (ev as FocusEvent).relatedTarget;\n\n this.icInputBlur.emit({ value: value, relatedTarget: nextFocus });\n };\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icInputFocus: EventEmitter<IcValueEventDetail>;\n private onInputFocus = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.icInputFocus.emit({ value: value });\n\n this.handleShowClearButton(true);\n };\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when value is cleared with clear button\n */\n @Event() icClear: EventEmitter<void>;\n private handleClear = (ev: Event) => {\n const keyboardEvent = ev as KeyboardEvent;\n const mouseEvent = ev as MouseEvent;\n\n if (\n mouseEvent.type === \"click\" ||\n keyboardEvent.code === \"Enter\" ||\n keyboardEvent.code === \"Space\"\n ) {\n this.value = \"\";\n this.inputEl.value = \"\";\n this.el.setFocus();\n\n this.icClear.emit();\n ev.preventDefault();\n\n this.preventSubmit = true;\n }\n };\n\n /**\n * Emitted when the search value has been submitted\n */\n @Event() icSubmitSearch: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when option is highlighted within the menu\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the state of the menu changes (i.e. open or close)\n */\n @Event() icMenuChange: EventEmitter<IcMenuChangeEventDetail>;\n /**\n * @internal - Emitted when blur is invoked from clear button\n */\n @Event() icClearBlur: EventEmitter<IcBlurEventDetail>;\n private handleClearBlur = (ev: Event) => {\n const nextFocus = (ev as FocusEvent).relatedTarget;\n\n this.icClearBlur.emit({ relatedTarget: nextFocus });\n\n this.clearButtonFocused = false;\n };\n\n /**\n * @internal - Emitted when blur is invoked from search submit button\n */\n @Event() icSubmitSearchBlur: EventEmitter<IcBlurEventDetail>;\n private handleSubmitSearchBlur = (ev: Event) => {\n const nextFocus = (ev as FocusEvent).relatedTarget;\n\n this.icSubmitSearchBlur.emit({ relatedTarget: nextFocus });\n\n this.searchSubmitFocused = false;\n };\n\n private handleSubmitSearchFocus = () => {\n this.handleMenuCloseFromMenuChange(true);\n this.searchSubmitFocused = true;\n };\n\n /**\n * Emitted when blur is invoked from ic-search-bar\n */\n @Event() icSearchBarBlur: EventEmitter<IcSearchBarBlurEventDetail>;\n\n /**\n * Emitted when focus is invoked from ic-search-bar\n */\n @Event() icSearchBarFocus: EventEmitter<void>;\n\n @State() open: boolean = false;\n @State() filteredOptions: IcMenuOption[] = [];\n @State() ariaActiveDescendant: string;\n @State() showClearButton: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() searchSubmitFocused: boolean = false;\n @State() prevNoOption: boolean = false;\n @State() highlightedValue: string;\n\n private handleOptionSelect = (ev: CustomEvent) => {\n if (ev.detail.label === this.emptyOptionListText) {\n this.el.setFocus();\n return;\n }\n\n this.value = ev.detail.value;\n this.icOptionSelect.emit({ value: this.value });\n };\n \n private handleMenuOptionHighlight = (ev: CustomEvent) => {\n const optionValue = ev.detail.optionId?.replace(`${this.menuId}-`, \"\");\n optionValue && (this.highlightedValue = optionValue);\n };\n\n private handleMenuChange = (ev: CustomEvent) => {\n this.setMenuChange(ev.detail.open);\n };\n\n private setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n this.icMenuChange.emit({ open });\n }\n };\n\n private handleHostFocus = () => {\n if (this.options && this.value && !this.menuCloseFromMenuChangeEvent) {\n this.setMenuChange(true);\n }\n this.handleTruncateValue(false);\n\n this.icSearchBarFocus.emit();\n };\n\n private handleHostBlur = (ev: Event) => {\n const nextFocus = (ev as FocusEvent).relatedTarget;\n if (this.open && this.options && nextFocus !== this.menu) {\n this.setMenuChange(false);\n }\n\n this.handleShowClearButton(false);\n this.handleMenuCloseFromMenuChange(false);\n this.handleTruncateValue(true);\n this.icSearchBarBlur.emit({ relatedTarget: nextFocus, value: this.value });\n };\n\n @Listen(\"menuChange\", {})\n onMenuClose(ev: CustomEvent): void {\n if (!ev.detail.open) {\n this.handleMenuCloseFromMenuChange(true);\n if (ev.detail.focusInput === undefined || ev.detail.focusInput) {\n this.el.setFocus();\n }\n }\n }\n\n @Listen(\"menuOptionId\")\n onMenuOptionHighlighted(ev: CustomEvent): void {\n if (ev.detail.optionId) {\n this.ariaActiveDescendant = ev.detail.optionId;\n } else {\n this.ariaActiveDescendant = undefined;\n }\n }\n\n private handleShowClearButton = (visible: boolean): void => {\n this.showClearButton = visible;\n };\n\n private handleFocusClearButton = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleMenuCloseFromMenuChange = (fromEvent: boolean): void => {\n this.menuCloseFromMenuChangeEvent = fromEvent;\n };\n\n private handleTruncateValue = (truncate: boolean): void => {\n this.truncateValue = truncate;\n };\n\n private renderAssistiveHintEl = (): void => {\n const input = this.el.shadowRoot\n .querySelector(\"ic-text-field\")\n ?.shadowRoot?.querySelector(`#${this.inputId}`);\n\n if (\n input &&\n Object.keys(input).length > 0 &&\n this.hasOptionsOrFilterDisabled()\n ) {\n this.assistiveHintEl = document.createElement(\"span\");\n this.assistiveHintEl.innerText = this.hintText;\n this.assistiveHintEl.id = `${this.inputId}-assistive-hint`;\n this.assistiveHintEl.style.display = \"none\";\n if (input.after !== undefined) {\n input.after(this.assistiveHintEl);\n }\n }\n };\n\n private updateSearchResultAriaLive = (): void => {\n const searchResultsStatusEl = this.el.shadowRoot.querySelector(\n \".search-results-status\"\n ) as HTMLParagraphElement;\n\n if (\n !this.open ||\n this.value === \"\" ||\n this.value.length < this.charactersUntilSuggestion\n ) {\n searchResultsStatusEl.innerText = \"\";\n } else if (\n this.hasOptionsOrFilterDisabled() &&\n this.filteredOptions.length > 0 &&\n this.open &&\n searchResultsStatusEl\n ) {\n if (this.hadNoOptions()) {\n searchResultsStatusEl.innerText = this.emptyOptionListText;\n } else {\n searchResultsStatusEl.innerText = `${\n this.filteredOptions.length\n } result${this.filteredOptions.length > 1 ? \"s\" : \"\"} available`;\n }\n }\n };\n\n private hasOptionsOrFilterDisabled = (): boolean =>\n this.options.length > 0 || this.disableFilter;\n\n private hadNoOptions = (): boolean =>\n this.filteredOptions.length === 1 &&\n this.filteredOptions[0].label === this.emptyOptionListText;\n\n private isSubmitDisabled = (): boolean => {\n const valueNotSet =\n this.value === undefined || this.value === null || this.value === \"\";\n return valueNotSet || this.disabled || this.hadNoOptions();\n };\n\n private highlightFirstOptionAfterNoResults = () => {\n if (this.prevNoOption && this.menu) {\n this.menu.handleSetFirstOption();\n this.prevNoOption = false;\n }\n const prevNoOptionsList = this.filteredOptions.find(\n (filteredOption) => filteredOption.label === this.emptyOptionListText\n );\n if (prevNoOptionsList) {\n this.prevNoOption = true;\n }\n };\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n componentWillRender(): void {\n this.highlightFirstOptionAfterNoResults();\n }\n\n componentWillLoad(): void {\n this.watchValueHandler(this.value);\n }\n\n componentDidLoad(): void {\n if (this.focusOnLoad) {\n this.el.setFocus();\n }\n\n if (this.hasOptionsOrFilterDisabled()) {\n this.renderAssistiveHintEl();\n if (this.disableFilter) {\n this.filteredOptions = this.options;\n }\n }\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Search Bar\"\n );\n\n this.anchorEl = this.inputEl.shadowRoot.querySelector(\n \"ic-input-component-container\"\n );\n }\n\n disconnectedCallback(): void {\n if (this.assistiveHintEl) {\n this.assistiveHintEl.remove();\n }\n }\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n small,\n placeholder,\n helperText,\n disabled,\n value,\n readonly,\n spellcheck,\n fullWidth,\n options,\n open,\n hideLabel,\n menuId,\n ariaActiveDescendant,\n truncateValue,\n autofocus,\n autocapitalize,\n autocomplete,\n filteredOptions,\n } = this;\n\n const disabledMode = readonly || disabled ? true : false;\n\n const describedBy = getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n ).trim();\n\n let describedById;\n\n if (describedBy !== \"\" && this.hasOptionsOrFilterDisabled()) {\n describedById = `${describedBy} ${this.inputId}-assistive-hint`;\n } else if (this.hasOptionsOrFilterDisabled()) {\n describedById = `${this.inputId}-assistive-hint`;\n } else if (describedBy !== \"\") {\n describedById = describedBy;\n } else {\n describedById = undefined;\n }\n\n const disabledText = disabledMode && !readonly;\n const hasSuggestedSearch = value && this.hasOptionsOrFilterDisabled();\n const menuOpen = hasSuggestedSearch && open && filteredOptions.length > 0;\n\n let expanded;\n\n if (options.length > 0) {\n if (menuOpen) {\n expanded = \"true\";\n } else {\n expanded = \"false\";\n }\n } else {\n expanded = undefined;\n }\n\n renderHiddenInput(true, this.el, name, value, disabledMode);\n\n return (\n <Host\n class={{\n [\"search\"]: true,\n [\"fullwidth\"]: fullWidth,\n [\"disabled\"]: disabled,\n [\"small\"]: small,\n }}\n onFocus={this.handleHostFocus}\n onBlur={this.handleHostBlur}\n >\n <ic-text-field\n ref={(el) => (this.inputEl = el)}\n inputId={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n small={small}\n hideLabel={hideLabel}\n fullWidth={fullWidth}\n name={name}\n truncateValue={truncateValue}\n value={\n options && !!getLabelFromValue(value, options)\n ? getLabelFromValue(value, options)\n : value\n }\n placeholder={placeholder}\n onInput={this.onInput}\n onBlur={this.onInputBlur}\n onFocus={this.onInputFocus}\n aria-label={hideLabel ? label : \"\"}\n aria-describedby={describedById}\n aria-owns={hasSuggestedSearch ? menuId : undefined}\n aria-haspopup={options.length > 0 ? \"listbox\" : undefined}\n ariaExpanded={expanded}\n ariaActiveDescendant={ariaActiveDescendant}\n aria-autocomplete={hasSuggestedSearch ? \"list\" : undefined}\n role={hasSuggestedSearch ? \"combobox\" : undefined}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n autoFocus={autofocus}\n spellcheck={spellcheck}\n inputmode=\"search\"\n >\n <div\n class={{\n \"clear-button-container\": true,\n \"clear-button-visible\":\n value && !disabledMode && this.showClearButton,\n }}\n slot=\"clear-button\"\n >\n <ic-button\n id=\"clear-button\"\n class=\"clear-button\"\n aria-label=\"Clear\"\n innerHTML={clearIcon}\n onClick={this.handleClear}\n size={small ? \"small\" : \"default\"}\n onFocus={this.handleFocusClearButton}\n onBlur={this.handleClearBlur}\n onKeyDown={this.handleClear}\n type=\"submit\"\n variant=\"icon\"\n appearance={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n <div\n class={{\n \"search-submit-button-container\": true,\n \"search-submit-button-disabled\": this.isSubmitDisabled(),\n }}\n slot=\"search-submit-button\"\n >\n <ic-button\n id=\"search-submit-button\"\n aria-label=\"Search\"\n ref={(el) => (this.searchSubmitButton = el)}\n class={{\n [\"search-submit-button\"]: true,\n [\"search-submit-button-small\"]: !!small,\n }}\n disabled={this.isSubmitDisabled()}\n innerHTML={searchIcon}\n size={small ? \"small\" : \"default\"}\n onClick={this.handleSubmitSearch}\n onBlur={this.handleSubmitSearchBlur}\n onFocus={this.handleSubmitSearchFocus}\n onKeyDown={this.handleSubmitSearchKeyDown}\n type=\"submit\"\n variant=\"icon\"\n appearance={\n this.searchSubmitFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Default\n }\n ></ic-button>\n </div>\n <div\n class={{\n \"menu-container\": true,\n fullwidth: fullWidth,\n }}\n slot=\"menu\"\n >\n {menuOpen && value.length >= this.charactersUntilSuggestion && (\n <ic-menu\n class={{\n \"no-results\": this.hadNoOptions(),\n }}\n activationType=\"manual\"\n anchorEl={this.anchorEl}\n autoFocusOnSelected={false}\n inputEl={this.inputEl}\n inputLabel={label}\n ref={(el) => (this.menu = el)}\n small={small}\n fullWidth={fullWidth}\n menuId={menuId}\n open={true}\n options={filteredOptions}\n onOptionSelect={this.handleOptionSelect}\n onMenuChange={this.handleMenuChange}\n onMenuOptionId={this.handleMenuOptionHighlight}\n parentEl={this.el}\n value={value}\n ></ic-menu>\n )}\n </div>\n </ic-text-field>\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"search-results-status\"\n ></div>\n </Host>\n );\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as a}from"./p-f9370be6.js";import{x as n,v as o,m as l,d as r,a as h,r as c,e as d,h as u,j as p,y as b,n as f}from"./p-23831891.js";import{I as v,a as m}from"./p-6f57b13c.js";const g=`<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n<path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor" />\n</svg>\n`;const x=`<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">\n<path d="M12.6666 4.27334L11.7266 3.33334L7.99998 7.06001L4.27331 3.33334L3.33331 4.27334L7.05998 8.00001L3.33331 11.7267L4.27331 12.6667L7.99998 8.94001L11.7266 12.6667L12.6666 11.7267L8.93998 8.00001L12.6666 4.27334Z" fill="currentColor" />\n</svg>\n`;const w='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}ic-input-component-container:hover{--border-color:var(--ic-action-dark-hover)}ic-input-component-container:active{--border-color:var(--ic-action-dark-active);color:var(--ic-action-dark-active)}ic-input-component-container.menu-open{--border-color:var(--ic-architectural-400);color:var(--ic-action-dark)}ic-input-validation .status-icon,ic-input-validation .statustext{visibility:visible}ic-input-validation.menu-open .status-icon,ic-input-validation.menu-open .statustext{visibility:hidden;transition:visibility 0s}ic-input-label{margin-bottom:var(--ic-space-xs) !important}select{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);color:var(--ic-color-primary-text);line-height:1.5rem;letter-spacing:0.005rem;width:100%;height:100%;padding-left:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right 6px center;background-image:url("data:image/svg+xml;utf8,<svg fill=\'black\' height=\'24\' viewBox=\'0 0 24 24\' width=\'24\' xmlns=\'http://www.w3.org/2000/svg\'><path d=\'M7 10l5 5 5-5z\'/><path d=\'M0 0h24v24H0z\' fill=\'none\'/></svg>")}select option,.select-option-selected{color:var(--ic-color-primary-text)}select:disabled{color:var(--ic-architectural-200);background-image:url("data:image/svg+xml;utf8,<svg fill=\'grey\' height=\'24\' viewBox=\'0 0 24 24\' width=\'24\' xmlns=\'http://www.w3.org/2000/svg\'><path d=\'M7 10l5 5 5-5z\'/><path d=\'M0 0h24v24H0z\' fill=\'none\'/></svg>")}select:focus{border:0;outline:0}select:not([disabled]){cursor:pointer}.select-container{width:100%;display:flex;align-items:center}.select-input{width:100%;height:100%;padding:0 6px;display:flex;cursor:pointer;align-items:center;justify-content:space-between;background:none;border:none}.select-input:focus{outline:var(--ic-hc-focus-outline)}:host(:not([disabled])) ic-input-component-container:hover .select-input{background-color:var(--ic-architectural-white)}:host([disabled]) .select-input{pointer-events:none}:host([searchable]) .select-input{cursor:auto}.searchable-select-container{align-items:center;display:flex;width:100%}.expand-icon{height:var(--ic-space-lg);padding-left:var(--ic-space-xs);color:var(--expand-icon-hover, var(--ic-architectural-400))}:host([disabled]) .expand-icon,:host([disabled]) .expand-icon>svg>path{color:var(--ic-architectural-200)}:host([searchable]) .expand-icon{padding-left:var(--ic-space-xxs);height:36px}:host([searchable]) .expand-icon>svg{height:36px;padding:0 6px}:host([searchable]:not([disabled])) .expand-icon>svg{cursor:pointer}.expand-icon-open{color:var(--ic-action-dark)}.expand-icon-filled{color:var(--ic-action-dark)}.expand-icon-open,:host([searchable]) .expand-icon-open{transform:rotateX(180deg)}:host([disabled]) .value-text,.placeholder{color:var(--ic-color-tertiary-text)}.select-input-end{display:flex;align-items:center}.clear-button-container{display:flex;gap:var(--ic-space-xxs);padding-left:38px}:host([small]) .clear-button-container{padding-left:30px}.divider{width:1px;background-color:var(--ic-architectural-400);margin:var(--ic-space-xxs) 0;border-radius:1px;height:var(--ic-space-lg)}:host([small]) .divider{height:var(--ic-space-md)}.clear-button{position:absolute;right:44px;border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition)}.clear-button:focus{background-color:var(--ic-focus-blue);box-shadow:inset 0 0 0 2px var(--ic-focus-glow);border-radius:4px}.clear-button:focus *{fill:white}.searchable-select-results-status{border:0;clip:rect(0, 0, 0, 0, 0);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}';let y=0;const k=class{constructor(e){t(this,e);this.icChange=i(this,"icChange",7);this.icFocus=i(this,"icFocus",7);this.icBlur=i(this,"icBlur",7);this.inputId=`ic-select-input-${y++}`;this.menuId=`${this.inputId}-menu`;this.inheritedAttributes={};this.isMenuEnabled=()=>(this.searchableSelectInputValue===null||this.searchableSelectInputValue==="")&&this.charactersUntilSuggestions===0||this.searchableSelectInputValue&&this.searchableSelectInputValue.length>=this.charactersUntilSuggestions;this.setOptionsValuesFromLabels=()=>{if(this.options.length>0){this.options.map((t=>{if(!t.value){t.value=t.label}}))}};this.setTextColor=()=>{if(this.nativeSelectElement.selectedIndex===0){this.nativeSelectElement.className="placeholder"}else{this.nativeSelectElement.className="select-option-selected"}};this.setMenuChange=t=>{if(this.open!==t){this.open=t}};this.getLabelFromValue=t=>n(t,this.options);this.getValueFromLabel=t=>{var i;const e=(i=this.options.find((i=>i.label===t)))===null||i===void 0?void 0:i.value;return e};this.getFilteredChildMenuOptions=t=>{let i=t.children;i=o(t.children,this.includeDescriptionsInSearch,this.searchableSelectInputValue,this.searchMatchPosition);const e=Object.assign({},t);e.children=i;return e};this.handleNativeSelectChange=()=>{this.icChange.emit({value:this.nativeSelectElement.value});this.setTextColor()};this.handleCustomSelectChange=t=>{if(this.searchable&&t.detail.label===this.emptyOptionListText){this.searchableSelectElement.focus();return}if(this.searchable){this.searchableSelectInputValue=this.getLabelFromValue(t.detail.value)}this.ariaActiveDescendant=t.detail.optionId;this.icChange.emit({value:t.detail.value})};this.handleMenuChange=t=>{this.open=t.detail.open;this.searchable&&this.handleFocusIndicatorDisplay()};this.handleFocusIndicatorDisplay=()=>{const t=this.host.shadowRoot.querySelector(".focus-indicator");if(this.open){t.classList.add("focus-indicator-enabled")}else{t.classList.remove("focus-indicator-enabled")}};this.handleMouseDown=t=>{if(!this.open){t.preventDefault()}};this.handleClick=t=>{this.noOptions=null;this.menu.options=this.options;if(t.detail!==0&&this.isMenuEnabled()){this.menu.handleClickOpen()}};this.handleExpandIconMouseDown=t=>{if(!this.disabled){t.preventDefault();this.searchableSelectElement.focus();this.handleClick(t)}};this.handleClear=t=>{t.stopPropagation();this.noOptions=null;this.icChange.emit({value:null});if(this.searchable){this.searchableSelectElement.value=null;this.searchableSelectInputValue=null;this.menu.options=this.options;this.searchableSelectElement.focus();if(!this.isMenuEnabled()){this.setMenuChange(false)}}else{this.customSelectElement.focus()}};this.handleKeyDown=t=>{t.cancelBubble=true;if(!this.open){this.noOptions=null;this.menu.options=this.options}if(this.open&&t.key==="Enter"){this.setMenuChange(false)}else{if(!((t.key==="ArrowDown"||t.key==="ArrowUp")&&this.noOptions!==null)&&this.isMenuEnabled()){this.menu.handleKeyboardOpen(t)}}};this.handleClearButtonFocus=()=>{this.clearButtonFocused=true};this.handleClearButtonBlur=()=>{this.clearButtonFocused=false};this.handleSearchableSelectInput=t=>{this.searchableSelectInputValue=t.target.value;if(this.getValueFromLabel(this.searchableSelectInputValue)===undefined){this.icChange.emit({value:null})}if(this.isMenuEnabled()){this.setMenuChange(true)}else{this.setMenuChange(false)}const i=[...this.options];let e=false;let s=[];i.map((t=>{if(t.children)e=true}));const a=o(i,this.includeDescriptionsInSearch,this.searchableSelectInputValue,this.searchMatchPosition);if(!e){s=a}else{i.map((t=>{if(this.includeGroupTitlesInSearch){if(a.indexOf(t)!==-1){s.push(t)}else{s.push(this.getFilteredChildMenuOptions(t))}}else{s.push(this.getFilteredChildMenuOptions(t))}}))}let n=false;if(e){n=true;s.map((t=>{if(t.children.length>0){n=false}}))}const l=[{label:this.emptyOptionListText,value:""}];if(s.length>0&&!n){this.noOptions=null;this.filteredOptions=s}else{this.noOptions=l;this.filteredOptions=this.noOptions}this.debounceAriaLiveUpdate()};this.updateSearchableSelectResultAriaLive=()=>{const t=this.host.shadowRoot.querySelector(".searchable-select-results-status");if(this.noOptions!==null){t.innerText=this.emptyOptionListText}else{t.innerText=""}};this.onFocus=()=>{this.icFocus.emit()};this.onBlur=t=>{if(this.searchable&&t.relatedTarget!==this.menu&&!(this.clearButton&&t.relatedTarget===this.clearButton)){this.setMenuChange(false);this.handleFocusIndicatorDisplay()}this.icBlur.emit()};this.handleFormReset=()=>{this.value=this.initialValue;if(this.searchable){this.searchableSelectInputValue=null}};this.label=undefined;this.options=[];this.required=false;this.hideLabel=false;this.disabled=false;this.readonly=false;this.placeholder="Select an option";this.helperText="";this.small=false;this.fullWidth=false;this.validationStatus="";this.validationText="";this.value=undefined;this.name=this.inputId;this.showClearButton=false;this.searchable=false;this.includeDescriptionsInSearch=false;this.includeGroupTitlesInSearch=false;this.searchMatchPosition="anywhere";this.charactersUntilSuggestions=0;this.emptyOptionListText="No results found";this.open=false;this.clearButtonFocused=false;this.searchableSelectInputValue=null;this.filteredOptions=this.options;this.ariaActiveDescendant=undefined;this.noOptions=null;this.initialValue=this.value}watchOptionsHandler(){this.setOptionsValuesFromLabels();this.filteredOptions=this.options}async setFocus(){if(this.nativeSelectElement){this.nativeSelectElement.focus()}else if(this.customSelectElement){this.customSelectElement.focus()}else if(this.searchableSelectElement){this.searchableSelectElement.focus()}}debounceAriaLiveUpdate(){clearTimeout(this.debounce);window.setTimeout((()=>{this.updateSearchableSelectResultAriaLive()}),800)}componentWillLoad(){this.inheritedAttributes=l(this.host,[...f,"tabindex","title"]);this.setOptionsValuesFromLabels();r(this.host,this.handleFormReset)}componentDidRender(){if(this.nativeSelectElement&&!this.disabled){this.setTextColor()}}componentDidLoad(){h([{prop:this.label,propName:"label"}],"Select")}disconnectedCallback(){c(this.host,this.handleFormReset)}render(){const{small:t,disabled:i,fullWidth:a,helperText:n,hideLabel:o,label:l,menuId:r,name:h,options:c,placeholder:f,readonly:w,required:y,searchable:k,showClearButton:z,validationStatus:L,validationText:M,value:C}=this;d(true,this.host,h,C,i);const B=L===m.Error?"true":"false";const H=u(this.inputId,n!=="",p(this.validationStatus,this.disabled)).trim();return e(s,null,e("ic-input-container",{readonly:w},!o&&e("ic-input-label",{for:this.inputId,label:l,helperText:n,required:y,disabled:i,readonly:w}),e("ic-input-component-container",{ref:t=>this.anchorEl=t,class:{"menu-open":this.open},small:t,fullWidth:a,disabled:i,readonly:w,validationStatus:L},w?e("ic-typography",null,e("p",null,this.getLabelFromValue(C))):b()?e("select",Object.assign({ref:t=>this.nativeSelectElement=t,disabled:i,onChange:this.handleNativeSelectChange,required:y,id:this.inputId,"aria-label":l,"aria-describedby":H,"aria-invalid":B,onBlur:this.onBlur,onFocus:this.onFocus},this.inheritedAttributes),e("option",{value:"",selected:true,disabled:!z},f),c.map((t=>{if(t.children){return e("optgroup",{label:t.label},t.children.map((t=>e("option",{value:t.value,disabled:t.disabled,selected:t.value===C},t.label))))}else{return e("option",{value:t.value,disabled:t.disabled,selected:t.value===C},t.label)}}))):k?e("div",{class:"searchable-select-container"},e("input",{class:"select-input",role:"combobox","aria-label":l,"aria-describedby":H,"aria-activedescendant":this.ariaActiveDescendant,"aria-autocomplete":"list","aria-expanded":this.open?"true":"false","aria-invalid":B,"aria-required":y?"true":"false","aria-controls":r,ref:t=>this.searchableSelectElement=t,id:this.inputId,value:this.searchableSelectInputValue,placeholder:f,disabled:i,onInput:this.handleSearchableSelectInput,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.onFocus,onBlur:this.onBlur}),this.searchableSelectInputValue&&(z||k)&&e("div",{class:"clear-button-container"},e("ic-button",{id:"clear-button",ref:t=>this.clearButton=t,"aria-label":this.searchableSelectInputValue&&C===null?"Clear input":"Clear selection",class:"clear-button",innerHTML:x,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:t?"small":"default",variant:"icon",appearance:this.clearButtonFocused?v.Light:v.Dark}),e("div",{class:"divider"})),e("span",{onMouseDown:this.handleExpandIconMouseDown,class:{"expand-icon":true,"expand-icon-open":this.open,"expand-icon-filled":!(C==null||C===""),"expand-icon-disabled":!this.isMenuEnabled()},innerHTML:g,"aria-hidden":"true"}),e("div",{"aria-live":"polite",role:"status",class:"searchable-select-results-status"})):e("div",{class:"select-container"},e("button",{class:"select-input",ref:t=>this.customSelectElement=t,id:this.inputId,"aria-label":`${l}, ${this.getLabelFromValue(C)||f}${y?", required":""}`,"aria-describedby":H,"aria-invalid":B,"aria-haspopup":"listbox","aria-expanded":this.open?"true":"false","aria-owns":r,"aria-controls":r,disabled:i,onBlur:this.onBlur,onFocus:this.onFocus,onClick:this.handleClick,onMouseDown:this.handleMouseDown,onKeyDown:this.handleKeyDown},e("ic-typography",{variant:"body",class:{"value-text":true,placeholder:this.getLabelFromValue(C)===undefined}},e("p",null,this.getLabelFromValue(C)||f)),e("div",{class:"select-input-end"},C&&z&&e("div",{class:"divider"}),e("span",{class:{"expand-icon":true,"expand-icon-open":this.open,"expand-icon-filled":!(C==null||C==="")},innerHTML:g,"aria-hidden":"true"}))),C&&z&&e("ic-button",{id:"clear-button","aria-label":"Clear selection",class:"clear-button",innerHTML:x,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:t?"small":"default",variant:"icon",appearance:this.clearButtonFocused?v.Light:v.Dark}))),!b()&&e("ic-menu",{class:{"no-results":this.noOptions!==null},ref:t=>this.menu=t,inputEl:k?this.searchableSelectElement:this.customSelectElement,inputLabel:l,anchorEl:this.anchorEl,small:t,menuId:r,open:this.open,options:k?this.filteredOptions:c,value:C,fullWidth:a,onMenuChange:this.handleMenuChange,onOptionSelect:this.handleCustomSelectChange,parentEl:this.host}),p(this.validationStatus,this.disabled)&&e("ic-input-validation",{class:{"menu-open":this.open},ariaLiveMode:"polite",status:L,message:M,for:this.inputId})))}get host(){return a(this)}static get watchers(){return{options:["watchOptionsHandler"]}}};k.style=w;export{k as ic_select};
2
- //# sourceMappingURL=p-2e9f3011.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx"],"names":["icSelectCss","inputIds","Select","this","inputId","menuId","inheritedAttributes","isMenuEnabled","searchableSelectInputValue","charactersUntilSuggestions","length","setOptionsValuesFromLabels","options","map","option","value","label","setTextColor","nativeSelectElement","selectedIndex","className","setMenuChange","open","getLabelFromValue","getValueFromLabel","_a","find","getFilteredChildMenuOptions","children","getFilteredMenuOptions","includeDescriptionsInSearch","searchMatchPosition","newOption","Object","assign","handleNativeSelectChange","icChange","emit","handleCustomSelectChange","event","searchable","detail","emptyOptionListText","searchableSelectElement","focus","ariaActiveDescendant","optionId","handleMenuChange","handleFocusIndicatorDisplay","focusIndicator","host","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","handleClick","noOptions","menu","handleClickOpen","handleExpandIconMouseDown","disabled","handleClear","stopPropagation","customSelectElement","handleKeyDown","cancelBubble","key","handleKeyboardOpen","handleClearButtonFocus","clearButtonFocused","handleClearButtonBlur","handleSearchableSelectInput","target","undefined","isGrouped","newFilteredOptions","menuOptionsFiltered","includeGroupTitlesInSearch","indexOf","push","noChildOptionsWhenFiltered","filteredOptions","debounceAriaLiveUpdate","updateSearchableSelectResultAriaLive","searchableSelectResultsStatusEl","innerText","onFocus","icFocus","onBlur","relatedTarget","clearButton","icBlur","handleFormReset","initialValue","[object Object]","clearTimeout","debounce","window","setTimeout","inheritAttributes","IC_INHERITED_ARIA","addFormResetListener","onComponentRequiredPropUndefined","prop","propName","removeFormResetListener","small","fullWidth","helperText","hideLabel","name","placeholder","readonly","required","showClearButton","validationStatus","validationText","renderHiddenInput","invalid","IcInformationStatus","Error","describedBy","getInputDescribedByText","hasValidationStatus","trim","h","Host","for","ref","el","anchorEl","class","menu-open","isMobileOrTablet","onChange","id","aria-label","aria-describedby","aria-invalid","selected","role","aria-activedescendant","aria-autocomplete","aria-expanded","aria-required","aria-controls","onInput","onClick","onKeyDown","innerHTML","Clear","size","variant","appearance","IcThemeForegroundEnum","Light","Dark","onMouseDown","expand-icon","expand-icon-open","expand-icon-filled","expand-icon-disabled","Expand","aria-hidden","aria-live","aria-haspopup","aria-owns","value-text","no-results","inputEl","inputLabel","onMenuChange","onOptionSelect","parentEl","ariaLiveMode","status","message"],"mappings":"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","sourcesContent":["@import \"../../global/normalise.css\";\n\n/**\n * @prop --input-width: Width of the input field\n*/\n\nic-input-component-container:hover {\n --border-color: var(--ic-action-dark-hover);\n}\n\nic-input-component-container:active {\n --border-color: var(--ic-action-dark-active);\n\n color: var(--ic-action-dark-active);\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-architectural-400);\n\n color: var(--ic-action-dark);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs) !important;\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n color: var(--ic-color-primary-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 6px;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 6px center;\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-color-primary-text);\n}\n\nselect:disabled {\n color: var(--ic-architectural-200);\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='grey' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-container {\n width: 100%;\n display: flex;\n align-items: center;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 6px;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n}\n\n.select-input:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(:not([disabled])) ic-input-component-container:hover .select-input {\n background-color: var(--ic-architectural-white);\n}\n\n:host([disabled]) .select-input {\n pointer-events: none;\n}\n\n:host([searchable]) .select-input {\n cursor: auto;\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xs);\n color: var(--expand-icon-hover, var(--ic-architectural-400));\n}\n\n:host([disabled]) .expand-icon,\n:host([disabled]) .expand-icon > svg > path {\n color: var(--ic-architectural-200);\n}\n\n:host([searchable]) .expand-icon {\n padding-left: var(--ic-space-xxs);\n height: 36px;\n}\n\n:host([searchable]) .expand-icon > svg {\n height: 36px;\n padding: 0 6px;\n}\n\n:host([searchable]:not([disabled])) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-action-dark);\n}\n\n.expand-icon-filled {\n color: var(--ic-action-dark);\n}\n\n.expand-icon-open,\n:host([searchable]) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n:host([disabled]) .value-text,\n.placeholder {\n color: var(--ic-color-tertiary-text);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n gap: var(--ic-space-xxs);\n padding-left: 38px;\n}\n\n:host([small]) .clear-button-container {\n padding-left: 30px;\n}\n\n.divider {\n width: 1px;\n background-color: var(--ic-architectural-400);\n margin: var(--ic-space-xxs) 0;\n border-radius: 1px;\n height: var(--ic-space-lg);\n}\n\n:host([small]) .divider {\n height: var(--ic-space-md);\n}\n\n.clear-button {\n position: absolute;\n right: 44px;\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus {\n background-color: var(--ic-focus-blue);\n box-shadow: inset 0 0 0 2px var(--ic-focus-glow);\n border-radius: 4px;\n}\n\n.clear-button:focus * {\n fill: white;\n}\n\n.searchable-select-results-status {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: 1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n getFilteredMenuOptions,\n addFormResetListener,\n removeFormResetListener,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcThemeForegroundEnum,\n IcMenuOption,\n IcSearchMatchPositions,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport { IcValueEventDetail } from \"../../interface\";\n\nlet inputIds = 0;\n\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: true,\n})\nexport class Select {\n private nativeSelectElement: HTMLSelectElement;\n private customSelectElement: HTMLButtonElement;\n private searchableSelectElement: HTMLInputElement;\n private menu: HTMLIcMenuElement;\n private anchorEl: HTMLElement;\n private clearButton: HTMLIcButtonElement;\n\n private inputId = `ic-select-input-${inputIds++}`;\n private menuId = `${this.inputId}-menu`;\n\n private inheritedAttributes: { [k: string]: unknown } = {};\n\n private debounce: number;\n\n /**\n * The label for the select.\n */\n @Prop() label!: string;\n\n /**\n * The possible selection options.\n */\n @Prop() options?: IcMenuOption[] = [];\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder?: string = \"Select an option\";\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the small styling will be applied to the select.\n */\n @Prop() small?: boolean = false;\n\n /**\n * If `true`, the select element will fill the width of the container.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * The value of the currently selected option.\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\n */\n @Prop() showClearButton?: boolean = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options.\n */\n @Prop() searchable?: boolean = false;\n\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select.\n */\n @Prop() includeDescriptionsInSearch?: boolean = false;\n\n /**\n * If `true`, group titles of grouped options will be included when filtering options in a searchable select.\n */\n @Prop() includeGroupTitlesInSearch?: boolean = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options.\n */\n @Prop() searchMatchPosition?: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * The number of characters until suggestions appear for a searchable select.\n */\n @Prop() charactersUntilSuggestions?: number = 0;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText = \"No results found\";\n\n @State() open: boolean = false;\n\n @State() clearButtonFocused: boolean = false;\n\n @State() searchableSelectInputValue: string = null;\n\n @State() filteredOptions: IcMenuOption[] = this.options;\n\n @State() ariaActiveDescendant: string;\n\n @State() noOptions: IcMenuOption[] = null;\n\n @State() initialValue = this.value;\n\n @Watch(\"options\")\n watchOptionsHandler(): void {\n this.setOptionsValuesFromLabels();\n this.filteredOptions = this.options;\n }\n\n /**\n * Emitted when a value is selected.\n */\n @Event() icChange!: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when select has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n /**\n * Emitted when select has blur.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n @Element() host!: HTMLIcSelectElement;\n\n /**\n * Sets focus on the input box.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.customSelectElement) {\n this.customSelectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n private isMenuEnabled = () => {\n return (\n ((this.searchableSelectInputValue === null ||\n this.searchableSelectInputValue === \"\") &&\n this.charactersUntilSuggestions === 0) ||\n (this.searchableSelectInputValue &&\n this.searchableSelectInputValue.length >=\n this.charactersUntilSuggestions)\n );\n };\n\n private setOptionsValuesFromLabels = (): void => {\n if (this.options.length > 0) {\n this.options.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n\n private setTextColor = (): void => {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n } else {\n this.nativeSelectElement.className = \"select-option-selected\";\n }\n };\n\n private setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n }\n };\n\n private getLabelFromValue = (value: string): string | undefined => {\n return getLabelFromValue(value, this.options);\n };\n\n private getValueFromLabel = (label: string): string | undefined => {\n const value = this.options.find((option) => option.label === label)?.value;\n return value;\n };\n\n private getFilteredChildMenuOptions = (option: IcMenuOption) => {\n let children = option.children;\n\n children = getFilteredMenuOptions(\n option.children,\n this.includeDescriptionsInSearch,\n this.searchableSelectInputValue,\n this.searchMatchPosition\n );\n\n const newOption = { ...option };\n newOption.children = children;\n return newOption;\n };\n\n private handleNativeSelectChange = (): void => {\n this.icChange.emit({ value: this.nativeSelectElement.value });\n this.setTextColor();\n };\n\n private handleCustomSelectChange = (event: CustomEvent): void => {\n if (this.searchable && event.detail.label === this.emptyOptionListText) {\n this.searchableSelectElement.focus();\n return;\n }\n\n if (this.searchable) {\n this.searchableSelectInputValue = this.getLabelFromValue(\n event.detail.value\n );\n }\n\n this.ariaActiveDescendant = event.detail.optionId;\n this.icChange.emit({ value: event.detail.value });\n };\n\n private handleMenuChange = (event: CustomEvent): void => {\n this.open = event.detail.open;\n\n this.searchable && this.handleFocusIndicatorDisplay();\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator =\n this.host.shadowRoot.querySelector(\".focus-indicator\");\n\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n };\n\n private handleMouseDown = (event: Event): void => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private handleClick = (event: MouseEvent): void => {\n this.noOptions = null;\n this.menu.options = this.options;\n\n if (event.detail !== 0 && this.isMenuEnabled()) {\n this.menu.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement.focus();\n this.handleClick(event);\n }\n };\n\n private handleClear = (event: Event): void => {\n event.stopPropagation();\n this.noOptions = null;\n this.icChange.emit({ value: null });\n\n if (this.searchable) {\n this.searchableSelectElement.value = null;\n this.searchableSelectInputValue = null;\n this.menu.options = this.options;\n this.searchableSelectElement.focus();\n\n if (!this.isMenuEnabled()) {\n this.setMenuChange(false);\n }\n } else {\n this.customSelectElement.focus();\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n event.cancelBubble = true;\n\n if (!this.open) {\n this.noOptions = null;\n this.menu.options = this.options;\n }\n\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n } else {\n if (\n !(\n (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") &&\n this.noOptions !== null\n ) &&\n this.isMenuEnabled()\n ) {\n this.menu.handleKeyboardOpen(event);\n }\n }\n };\n\n private handleClearButtonFocus = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (): void => {\n this.clearButtonFocused = false;\n };\n\n private handleSearchableSelectInput = (event: Event): void => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n\n if (this.getValueFromLabel(this.searchableSelectInputValue) === undefined) {\n this.icChange.emit({ value: null });\n }\n\n if (this.isMenuEnabled()) {\n this.setMenuChange(true);\n } else {\n this.setMenuChange(false);\n }\n\n const options = [...this.options];\n\n let isGrouped = false;\n let newFilteredOptions: IcMenuOption[] = [];\n\n options.map((option) => {\n if (option.children) isGrouped = true;\n });\n\n const menuOptionsFiltered = getFilteredMenuOptions(\n options,\n this.includeDescriptionsInSearch,\n this.searchableSelectInputValue,\n this.searchMatchPosition\n );\n\n if (!isGrouped) {\n newFilteredOptions = menuOptionsFiltered;\n } else {\n options.map((option) => {\n if (this.includeGroupTitlesInSearch) {\n if (menuOptionsFiltered.indexOf(option) !== -1) {\n newFilteredOptions.push(option);\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n });\n }\n\n let noChildOptionsWhenFiltered = false;\n\n if (isGrouped) {\n noChildOptionsWhenFiltered = true;\n newFilteredOptions.map((option) => {\n if (option.children.length > 0) {\n noChildOptionsWhenFiltered = false;\n }\n });\n }\n\n const noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n\n if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n } else {\n this.noOptions = noOptions;\n this.filteredOptions = this.noOptions;\n }\n\n this.debounceAriaLiveUpdate();\n };\n\n private updateSearchableSelectResultAriaLive = (): void => {\n const searchableSelectResultsStatusEl = this.host.shadowRoot.querySelector(\n \".searchable-select-results-status\"\n ) as HTMLDivElement;\n\n if (this.noOptions !== null) {\n searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;\n } else {\n searchableSelectResultsStatusEl.innerText = \"\";\n }\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounce);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n\n private onFocus = (): void => {\n this.icFocus.emit();\n };\n\n private onBlur = (event: FocusEvent): void => {\n if (\n this.searchable &&\n event.relatedTarget !== this.menu &&\n !(this.clearButton && event.relatedTarget === this.clearButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n if (this.searchable) {\n this.searchableSelectInputValue = null;\n }\n };\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.host, [\n ...IC_INHERITED_ARIA,\n \"tabindex\",\n \"title\",\n ]);\n\n this.setOptionsValuesFromLabels();\n\n addFormResetListener(this.host, this.handleFormReset);\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.host, this.handleFormReset);\n }\n\n render() {\n const {\n small,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n label,\n menuId,\n name,\n options,\n placeholder,\n readonly,\n required,\n searchable,\n showClearButton,\n validationStatus,\n validationText,\n value,\n } = this;\n\n renderHiddenInput(true, this.host, name, value, disabled);\n\n const invalid =\n validationStatus === IcInformationStatus.Error ? \"true\" : \"false\";\n\n const describedBy = getInputDescribedByText(\n this.inputId,\n helperText !== \"\",\n hasValidationStatus(this.validationStatus, this.disabled)\n ).trim();\n\n return (\n <Host>\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={this.inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n ></ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": this.open }}\n small={small}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {readonly ? (\n <ic-typography>\n <p>{this.getLabelFromValue(value)}</p>\n </ic-typography>\n ) : isMobileOrTablet() ? (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={this.inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n {...this.inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) => {\n if (option.children) {\n return (\n <optgroup label={option.label}>\n {option.children.map((option) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === value}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n );\n } else {\n return (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === value}\n >\n {option.label}\n </option>\n );\n }\n })}\n </select>\n ) : searchable ? (\n <div class=\"searchable-select-container\">\n <input\n class=\"select-input\"\n role=\"combobox\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-invalid={invalid}\n aria-required={required ? \"true\" : \"false\"}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={this.inputId}\n value={this.searchableSelectInputValue}\n placeholder={placeholder}\n disabled={disabled}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n ></input>\n {this.searchableSelectInputValue &&\n (showClearButton || searchable) && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el) => (this.clearButton = el)}\n aria-label={\n this.searchableSelectInputValue && value === null\n ? \"Clear input\"\n : \"Clear selection\"\n }\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={small ? \"small\" : \"default\"}\n variant=\"icon\"\n appearance={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n \"expand-icon-filled\": !(value == null || value === \"\"),\n \"expand-icon-disabled\": !this.isMenuEnabled(),\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"searchable-select-results-status\"\n ></div>\n </div>\n ) : (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={this.inputId}\n aria-label={`${label}, ${\n this.getLabelFromValue(value) || placeholder\n }${required ? \", required\" : \"\"}`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-owns={menuId}\n aria-controls={menuId}\n disabled={disabled}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.handleClick}\n onMouseDown={this.handleMouseDown}\n onKeyDown={this.handleKeyDown}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n placeholder: this.getLabelFromValue(value) === undefined,\n }}\n >\n <p>{this.getLabelFromValue(value) || placeholder}</p>\n </ic-typography>\n <div class=\"select-input-end\">\n {value && showClearButton && <div class=\"divider\"></div>}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n \"expand-icon-filled\": !(value == null || value === \"\"),\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {value && showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear selection\"\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={small ? \"small\" : \"default\"}\n variant=\"icon\"\n appearance={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {!isMobileOrTablet() && (\n <ic-menu\n class={{\n \"no-results\": this.noOptions !== null,\n }}\n ref={(el) => (this.menu = el)}\n inputEl={\n searchable\n ? this.searchableSelectElement\n : this.customSelectElement\n }\n inputLabel={label}\n anchorEl={this.anchorEl}\n small={small}\n menuId={menuId}\n open={this.open}\n options={searchable ? this.filteredOptions : options}\n value={value}\n fullWidth={fullWidth}\n onMenuChange={this.handleMenuChange}\n onOptionSelect={this.handleCustomSelectChange}\n parentEl={this.host}\n ></ic-menu>\n )}\n {hasValidationStatus(this.validationStatus, this.disabled) && (\n <ic-input-validation\n class={{ \"menu-open\": this.open }}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText}\n for={this.inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-navigation-item/ic-navigation-item.css?tag=ic-navigation-item&encapsulation=shadow","src/components/ic-navigation-item/ic-navigation-item.tsx"],"names":["icNavigationItemCss","NavigationItem","this","topNavResizedHandler","ev","newSize","detail","size","deviceSize","inTopNavSideMenu","DEVICE_SIZES","L","sideNavExpandHandler","sideNavExpanded","sideNavMobile","isSideNavMobile","handleBlur","relatedTarget","target","tagName","childBlur","emit","handleClick","icNavItemClicked","isInitialRender","displayDefaultNavigationItem","href","label","variant","isTopNavChild","tooltipId","ChevronIconComponent","expandable","h","class","svg","innerHTML","chevronIcon","IconComponent","el","querySelector","name","ref","itemEl","part","aria-labelledby","tabindex","XL","getThemeForegroundColor","[object Object]","theme","focusStyle","mode","focus","navParentDetails","getNavItemParentDetails","navigationType","navType","parentEl","parent","addEventListener","getParentElementType","getCurrentDeviceSize","navigationSlot","ariaLabel","textContent","trim","removeEventListener","selected","Host","displayNavigationTooltip","collapsedIconLabel","onBlur","onClick","aria-current","role","placement","hasAttribute"],"mappings":"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","sourcesContent":["@import \"../../global/normalise.css\";\n\n:host {\n display: block;\n}\n\n:host(:focus-within) {\n z-index: 1;\n}\n\n/* chevron */\nsvg {\n width: var(--ic-space-xl);\n fill: var(--ic-theme-text);\n}\n\nic-typography {\n flex: 1;\n}\n\n:host([expandable].navigation-item) .link,\n:host([expandable].navigation-item) ::slotted(a) {\n padding-right: 0;\n}\n\n:host(.navigation-item) .link,\n:host(.navigation-item) ::slotted(a) {\n height: 100%;\n width: fit-content;\n color: var(--ic-theme-text);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md);\n text-decoration: none;\n transition: var(--ic-easing-transition-fast);\n position: relative;\n}\n\n:host(.navigation-item) ::slotted(a) {\n font: var(--ic-font-label) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt025) !important;\n padding: 0 var(--ic-space-md) !important;\n}\n\n:host(.navigation-item-selected) .link::after,\n:host(.navigation-item-selected) ::slotted(a.active)::after,\n:host(.navigation-item-top-nav) ::slotted(a.active)::after {\n content: \"\";\n height: 4px;\n width: 100%;\n position: absolute;\n bottom: 0;\n background-color: var(--ic-theme-text);\n}\n\n:host(.navigation-item-selected.navigation-item-page-header)\n ::slotted(a.active)::after,\n:host(.navigation-item-selected.navigation-item-page-header) .link::after,\n:host(.navigation-item.navigation-item-page-header) ::slotted(a.active)::after,\n:host(.navigation-item-top-nav-child) ::slotted(a.active)::after {\n content: none;\n}\n\n:host(.navigation-item-side-menu-selected) .link,\n:host(.navigation-item-side-menu) ::slotted(a.active),\n:host(.navigation-item-top-nav-child) ::slotted(a.active) {\n box-shadow: none;\n}\n\n:host(.navigation-item) .link:hover:not(:focus) {\n background-color: var(--ic-theme-hover);\n cursor: pointer;\n}\n\n:host(.navigation-item:not(.navigation-item-page-header, .navigation-item-side-menu))\n ::slotted(a:hover:not(:focus)) {\n background-color: var(--ic-theme-hover) !important;\n}\n\n:host(.navigation-item:not(.navigation-item-top-nav-child, .navigation-item-side-menu, .navigation-item-top-nav-child-selected\n .navigation-item-side-menu-selected))\n .focus-indicator:focus-within {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.navigation-item) .link:focus,\n:host(.navigation-item) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.navigation-item-selected) .link:focus,\n:host(.navigation-item) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.navigation-item-selected.dark) .link:focus,\n:host(.navigation-item.dark) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.navigation-item) .link:active:not(:focus),\n:host(.navigation-item) ::slotted(a:active:not(:focus)) {\n background-color: var(--ic-theme-active);\n}\n\n:host(.navigation-item-side-menu) .link,\n:host(.navigation-item-side-menu) ::slotted(a) {\n height: 40px;\n width: 100%;\n color: var(--ic-color-primary-text);\n display: flex;\n align-items: center;\n justify-content: flex-start;\n text-decoration: none;\n transition: var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-side-menu) ::slotted(a) {\n font: var(--ic-font-body) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt005) !important;\n transition: box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast);\n}\n\n:host(.navigation-item-side-menu) .link:hover:not(:focus) {\n background-color: var(--ic-action-dark-bg-hover);\n}\n\n:host(.navigation-item-side-menu) ::slotted(a:hover:not(:focus)) {\n background-color: var(--ic-action-dark-bg-hover) !important;\n}\n\n:host(.navigation-item-side-menu) .focus-indicator:focus-within {\n box-shadow: none;\n}\n\n:host(.navigation-item-side-menu) .link:focus,\n:host(.navigation-item-side-menu) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-inset) !important;\n padding-right: var(--ic-space-lg);\n width: auto;\n border-radius: var(--ic-border-radius-inset) !important;\n}\n\n:host(.navigation-item-side-menu-selected) .link,\n:host(.navigation-item-side-menu-selected) ::slotted(a) {\n transition: box-shadow var(--ic-easing-transition-slow),\n background-color var(--ic-easing-transition-slow);\n}\n\n:host(.navigation-item-side-menu-selected) .link:focus,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus) {\n margin-left: var(--ic-space-xs) !important;\n padding-left: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link,\n:host(.navigation-item-top-nav-child) ::slotted(a) {\n height: 40px;\n width: fit-content;\n min-width: 145px;\n color: var(--ic-color-primary-text);\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) !important;\n text-decoration: none;\n position: relative;\n transition: box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-slow);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a) {\n font: var(--ic-font-body) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt005) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link:hover:not(:focus) {\n background-color: var(--ic-action-dark-bg-hover) !important;\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a:hover):not(:focus) {\n background-color: var(--ic-action-dark-bg-hover) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link:focus,\n:host(.navigation-item-top-nav-child) ::slotted(a:focus) {\n z-index: 1;\n outline: var(--ic-hc-focus-outline);\n border-radius: var(--ic-border-radius-inset);\n box-shadow: var(--ic-border-focus-inset);\n transition: border-radius 0s, box-shadow var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n}\n\n:host(.navigation-item-side-menu) .link:active:not(:focus) {\n background-color: var(--ic-action-dark-bg-active);\n}\n\n:host(.navigation-item-top-nav-child) .link:active:not(:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a:active):not(:focus) {\n outline: var(--ic-hc-focus-outline);\n background-color: var(--ic-action-dark-bg-active);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a:active):not(:focus),\n:host(.navigation-item-side-menu) ::slotted(a:active):not(:focus) {\n background-color: var(--ic-action-dark-bg-active) !important;\n}\n\n:host(.navigation-item-side-menu-selected) *,\n:host(.navigation-item-top-nav-child-selected) *,\n:host(.navigation-item-side-menu) ::slotted(a.active),\n:host(.navigation-item-top-nav-child) ::slotted(a.active) {\n font-weight: 700 !important;\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a.active)::before,\n:host(.navigation-item-top-nav-child-selected) .link::before,\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu) ::slotted(a.active)::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before {\n content: \"\";\n position: absolute;\n left: 0;\n width: var(--ic-space-xs);\n height: 40px;\n margin-right: 5px;\n background-color: var(--ic-action-default);\n transition: left 0s;\n}\n\n:host(.navigation-item-top-nav-child-selected) .link:focus {\n margin-left: var(--ic-space-xs);\n margin-right: calc(-1 * var(--ic-space-xs));\n padding-left: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-top-nav-child-selected) .link:focus::before {\n left: calc(-1 * var(--ic-space-xs));\n z-index: 1;\n}\n\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu) ::slotted(a.active)::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before {\n z-index: 1;\n}\n\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before,\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus)::before {\n left: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.navigation-item-side-menu-selected) .link::after {\n display: none;\n}\n\n:host(.navigation-item-side-nav-collapsed) .link {\n height: 100%;\n}\n\n:host(.navigation-item-side-nav-collapsed) ::slotted(svg),\n:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(svg) {\n margin: auto;\n pointer-events: none;\n}\n\n:host(.navigation-item-side-nav-collapsed) .icon,\n:host(.navigation-item-side-nav-collapsed-with-label) .icon,\n:host(.navigation-item-side-nav-collapsed-with-label) ic-typography {\n align-items: center;\n padding: 0;\n margin: auto 0;\n width: fit-content;\n pointer-events: none;\n}\n\n:host(.navigation-item-side-nav-collapsed-with-label) ic-typography {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 100%;\n text-align: center;\n}\n\n:host(.navigation-item-side-nav-collapsed-with-label) .link,\n:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(a) {\n display: flex;\n flex-direction: column;\n height: fit-content;\n padding: var(--ic-space-xs) !important;\n gap: var(--ic-space-xxs);\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link,\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n height: auto !important;\n gap: 0;\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n display: block;\n text-align: center;\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link\n ic-typography {\n opacity: 1;\n}\n\n:host(.navigation-item-side-nav-collapsed) svg,\n:host(.navigation-item-side-nav-collapsed-with-label) svg {\n display: none;\n}\n\n::slotted(svg) {\n fill: var(--ic-theme-text);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-md);\n}\n\n.icon {\n width: var(--ic-space-xxl);\n margin-left: calc(-1 * var(--ic-space-md));\n flex: 0 1 0%;\n}\n\n:host(.navigation-item-side-nav) .link,\n:host(.navigation-item-side-nav) ::slotted(a) {\n height: var(--navigation-item-height);\n width: var(--navigation-item-width);\n justify-content: var(--navigation-item-justify-content);\n display: flex;\n gap: var(--ic-space-xs);\n box-sizing: border-box;\n color: var(--navigation-item-child-color) !important;\n text-decoration: none !important;\n white-space: nowrap;\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a) {\n height: var(--navigation-item-child-height);\n width: var(--navigation-group-width);\n color: var(--navigation-item-child-color) !important;\n display: flex;\n gap: 10px;\n box-sizing: border-box;\n min-width: 0;\n transition: box-shadow var(--ic-easing-transition-fast);\n text-decoration: none !important;\n white-space: nowrap;\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:focus,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-dark);\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-menu) .link:active {\n background-color: var(--navigation-item-child-active);\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:active,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n ::slotted(a:active) {\n background-color: var(--navigation-item-child-active);\n}\n\n:host(.navigation-item-side-nav) a.link ic-typography,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n a.link\n ic-typography,\n.navigation-item-side-nav-slotted-text {\n opacity: var(--navigation-item-label-opacity);\n transition: opacity var(--ic-easing-transition-slow);\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link,\n:host(.navigation-item-side-nav.navigation-item) ::slotted(a.active) {\n box-shadow: inset 5px 0 0 var(--ic-theme-text);\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link::before,\n:host(.navigation-item-side-nav) ::slotted(a.active)::before {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n left: 5px;\n border-radius: 11px !important;\n bottom: 0;\n transition: var(--ic-easing-transition-slow);\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link:focus::before,\n:host(.navigation-item-side-nav) ::slotted(a.active:focus)::before {\n box-shadow: var(--ic-border-focus-inset);\n}\n\n:host(:not(.navigation-item-side-nav-collapsed).navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link {\n opacity: var(--navigation-item-label-opacity);\n height: auto;\n}\n\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n .link,\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n min-width: var(--navigation-group-item-min-width);\n padding: var(--ic-space-xs) !important;\n height: auto;\n gap: 0;\n}\n\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n display: block;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link::after,\n:host(.navigation-item-side-nav) ::slotted(a.active)::after {\n display: none;\n}\n\n:host(.navigation-item-side-nav.navigation-item) .link:focus,\n:host(.navigation-item-side-nav.navigation-item) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background-color: transparent;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link:focus,\n:host(.navigation-item-side-nav) ::slotted(a.active:focus) {\n margin: 0 auto;\n box-shadow: inset 5px 0 0 var(--ic-theme-text);\n border-radius: 0;\n}\n\n:host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus) {\n background-color: var(--ic-theme-hover) !important;\n}\n\n:host(.navigation-item-page-header).link,\n:host(.navigation-item-page-header) a,\n:host(.navigation-item-page-header) ::slotted(a) {\n height: 44px !important;\n color: var(--ic-color-primary-text) !important;\n transition: all var(--ic-easing-transition-fast) !important;\n box-shadow: rgba(23 89 188 / 0%) !important;\n}\n\n:host(.navigation-item-page-header.navigation-item-selected) .link,\n:host(.navigation-item-page-header) ::slotted(a.active) {\n box-shadow: inset 0 calc(-1 * var(--ic-space-xxs)) 0 var(--ic-action-default);\n}\n\n:host(.navigation-item-page-header) .link:hover,\n:host(.navigation-item-page-header) ::slotted(.link:hover),\n:host(.navigation-item-page-header) ::slotted(a:hover),\n:host(.navigation-item-page-header) .link:hover:not(:focus) {\n background-color: var(--ic-action-default-bg-hover) !important;\n cursor: pointer;\n}\n\n:host(.navigation-item-page-header) .link:focus,\n:host(.navigation-item-page-header) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n}\n\n:host(.navigation-item-page-header) .link:active,\n:host(.navigation-item-page-header) ::slotted(a:active) {\n background-color: var(--ic-action-default-bg-active) !important;\n}\n\n:host(.navigation-item-page-header.navigation-item-selected) .link:focus,\n:host(.navigation-item-page-header) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus),\n inset 0 calc(-1 * var(--ic-space-xxs)) 0 var(--ic-action-default);\n}\n\n:host(.navigation-item-page-header.navigation-item-selected.with-transition)\n .link,\n:host(.navigation-item-page-header.navigation-item-selected.with-transition)\n ::slotted(a.active) {\n transition: all var(--ic-easing-transition-fast),\n border-color var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-page-header) ::slotted(a.active)::before,\n:host(.navigation-item-page-header) ::slotted(a.active:focus)::before,\n:host(.navigation-item-page-header.navigation-item-selected)\n .link:focus::before {\n display: none;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Method,\n h,\n Host,\n Prop,\n State,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getThemeForegroundColor,\n getParentElementType,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport { IcNavType, IcTheme } from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\n/**\n * @part link - The `<a>` within ic-navigation-item\n */\n\n@Component({\n tag: \"ic-navigation-item\",\n styleUrl: \"ic-navigation-item.css\",\n shadow: true,\n})\nexport class NavigationItem {\n @Element() el: HTMLIcNavigationItemElement;\n\n /**\n * The label of the navigation item.\n */\n @Prop() label: string;\n\n /**\n * The destination of the navigation item.\n */\n @Prop() href: string = \"\";\n\n /**\n * If `true`, the navigation item will be set in a selected state.\n */\n @Prop() selected: boolean = false;\n\n /**\n * @internal If `true`, the navigation item will be expandable.\n */\n @Prop() expandable: boolean = false;\n /**\n * @internal If `true`, the navigation item will be displayed within a tooltip.\n */\n @Prop() displayNavigationTooltip: boolean = false;\n /**\n * @internal If `true`, the icon and label will be displayed when side navigation is collapsed.\n */\n @Prop() collapsedIconLabel: boolean = false;\n\n @State() isTopNavChild: boolean = false;\n @State() inTopNavSideMenu: boolean = false;\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() focusStyle = getThemeForegroundColor();\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement;\n @State() sideNavExpanded: boolean = false;\n @State() isSideNavMobile: boolean = false;\n\n private itemEl: HTMLElement;\n private navigationSlot: HTMLElement;\n\n /**\n * @internal - Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal - Emitted when navigation item clicked.\n */\n @Event() icNavItemClicked: EventEmitter<void>;\n\n @Listen(\"icThemeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.focusStyle = theme.mode;\n }\n\n private topNavResizedHandler = (ev: CustomEvent): void => {\n const newSize = ev.detail.size;\n if (newSize !== this.deviceSize) {\n this.deviceSize = newSize;\n this.inTopNavSideMenu = newSize <= DEVICE_SIZES.L;\n }\n };\n\n private sideNavExpandHandler = (ev: CustomEvent): void => {\n const { sideNavExpanded, sideNavMobile } = ev.detail;\n this.sideNavExpanded = sideNavExpanded;\n this.isSideNavMobile = sideNavMobile;\n };\n\n /**\n * Sets focus on the nav item\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.itemEl) {\n this.itemEl.focus();\n }\n }\n\n private handleBlur = (ev: FocusEvent) => {\n if (ev.relatedTarget !== null) {\n const target = ev.relatedTarget as HTMLElement;\n if (target.tagName === \"IC-NAVIGATION-ITEM\") {\n return;\n }\n }\n this.childBlur.emit();\n };\n\n private handleClick = () => {\n this.icNavItemClicked.emit();\n };\n\n componentWillLoad(): void {\n const navParentDetails = getNavItemParentDetails(this.el);\n this.navigationType = navParentDetails.navType;\n this.parentEl = navParentDetails.parent;\n\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n\n if (\n getParentElementType(this.el) === \"IC-NAVIGATION-GROUP\" &&\n this.navigationType === \"top\"\n ) {\n this.isTopNavChild = true;\n }\n\n this.deviceSize = getCurrentDeviceSize();\n if (this.deviceSize <= DEVICE_SIZES.L && this.navigationType === \"top\") {\n this.inTopNavSideMenu = true;\n }\n\n this.navigationSlot = this.el.querySelector('[slot=\"navigation-item\"]');\n if (this.navigationSlot) {\n this.navigationSlot.ariaLabel = this.navigationSlot.textContent.trim();\n }\n }\n\n private isInitialRender: boolean = true;\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl.removeEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.removeEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n private displayDefaultNavigationItem = (\n href: string,\n label: string\n ): HTMLElement => {\n const variant =\n this.isTopNavChild || this.inTopNavSideMenu ? \"body\" : \"label\";\n const tooltipId = \"ic-tooltip-navigation-item\";\n const ChevronIconComponent = this.expandable && (\n <div class={{ svg: true }} innerHTML={chevronIcon}></div>\n );\n const IconComponent = this.el.querySelector('[slot=\"icon\"]') && (\n <div class=\"icon\">\n {\" \"}\n <slot name=\"icon\"></slot>{\" \"}\n </div>\n );\n\n if (href !== \"\") {\n return (\n <a\n href={href}\n class=\"link\"\n ref={(el) => (this.itemEl = el)}\n part=\"link\"\n aria-labelledby={tooltipId}\n >\n {IconComponent}\n\n <ic-typography variant={variant}>{label}</ic-typography>\n {ChevronIconComponent}\n </a>\n );\n }\n\n return (\n <div\n tabindex=\"0\"\n class=\"link\"\n ref={(el) => (this.itemEl = el)}\n aria-labelledby={tooltipId}\n >\n {IconComponent}\n <ic-typography variant={variant}>{label}</ic-typography>\n {ChevronIconComponent}\n </div>\n );\n };\n\n render() {\n const {\n href,\n label,\n inTopNavSideMenu,\n isTopNavChild,\n selected,\n navigationSlot,\n } = this;\n\n return (\n <Host\n class={{\n [\"navigation-item\"]: true,\n [\"navigation-item-top-nav\"]:\n !inTopNavSideMenu && this.navigationType === \"top\",\n [\"navigation-item-top-nav-child-selected\"]:\n isTopNavChild && !inTopNavSideMenu && selected,\n [this.focusStyle]:\n (!inTopNavSideMenu && !isTopNavChild) ||\n (this.navigationType === \"side\" && isTopNavChild),\n [\"navigation-item-selected\"]: !isTopNavChild && selected,\n [\"navigation-item-side-menu\"]: inTopNavSideMenu,\n [\"navigation-item-side-menu-selected\"]: inTopNavSideMenu && selected,\n [\"navigation-item-top-nav-child\"]: isTopNavChild && !inTopNavSideMenu,\n [\"navigation-item-page-header\"]:\n this.navigationType === \"page-header\",\n [\"with-transition\"]: !this.isInitialRender,\n [\"navigation-item-side-nav\"]: this.navigationType === \"side\",\n [\"navigation-item-side-nav-collapsed\"]:\n (!this.sideNavExpanded || this.displayNavigationTooltip) &&\n this.navigationType === \"side\",\n [\"navigation-item-side-nav-collapsed-with-label\"]:\n !this.sideNavExpanded &&\n this.navigationType === \"side\" &&\n this.collapsedIconLabel &&\n !this.isSideNavMobile,\n }}\n onBlur={isTopNavChild && !inTopNavSideMenu ? this.handleBlur : null}\n onClick={this.handleClick}\n aria-current={selected ? \"page\" : null}\n role=\"listitem\"\n >\n {/* Tooltip enabled by applying navigation-item-side-nav-collapsed class to host */}\n <ic-tooltip\n label={label || navigationSlot.textContent}\n target=\"navigation-item\"\n placement=\"right\"\n class={{\n [\"tooltip-navigation-item\"]: true,\n [\"tooltip-navigation-item-side-nav-collapsed\"]:\n (!this.sideNavExpanded || this.displayNavigationTooltip) &&\n this.navigationType === \"side\",\n [\"tooltip-long-label-navigation-item-side-nav-expanded\"]:\n this.el.hasAttribute(\"[display-navigation-tooltip = 'true']\"),\n }}\n >\n {navigationSlot ? (\n <slot name=\"navigation-item\"></slot>\n ) : (\n this.displayDefaultNavigationItem(href, label)\n )}\n </ic-tooltip>\n </Host>\n );\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as t,H as i,g as s}from"./p-f9370be6.js";import{C as c}from"./p-1e7b4310.js";const r=":host{display:flex;flex:auto}:host(.last-step){flex-grow:initial}.step{display:flex;flex-direction:column;flex:1 1 0}.step-top{display:flex;width:100%;align-items:center;align-self:flex-start;height:40px}.step-icon{display:flex;justify-content:center;align-items:center;border-radius:50%}.step-icon-inner{width:var(--ic-space-xl);height:var(--ic-space-xl);display:flex;justify-content:center;align-items:center;border-radius:50%}.current{color:var(--ic-theme-primary)}.step-title-area{margin:var(--ic-space-xs) 0;padding-right:var(--ic-space-xs)}.step-title,.step-subtitle{width:-moz-fit-content;width:fit-content}.step-subtitle{color:var(--ic-color-tertiary-text)}.current .step-subtitle{color:var(--ic-color-primary-text)}.completed{color:var(--ic-status-success)}.active .step-icon-inner{box-shadow:inset var(--ic-architectural-200) 0 0 0 2px}.current .step-icon-inner{background-color:var(--ic-theme-primary);color:white}.disabled{color:var(--ic-architectural-200)}.disabled .step-icon{border:1px dashed var(--ic-architectural-200);width:calc(var(--ic-space-xl) - var(--ic-space-xxxs));height:calc(var(--ic-space-xl) - var(--ic-space-xxxs))}.disabled .step-title-area{color:var(--ic-color-tertiary-text)}.completed .step-icon-inner{background:var(--ic-status-success);box-shadow:inset var(--ic-status-success) 0 0 0 var(--ic-space-xxxs);border-radius:100%}.current .step-icon{border:var(--ic-space-xxxs) solid var(--ic-theme-primary);padding:var(--ic-space-xxxs);margin:0 calc(-1 * var(--ic-space-xxxs));}.step-connect{height:var(--ic-space-xxxs);background-color:var(--ic-architectural-200);margin:0 var(--ic-space-xs);border-radius:var(--ic-space-xxs);width:100%}.aligned-full-width.step-connect{min-width:100px;width:100%}.disabled .step-connect{height:0;background-color:rgb(0 0 0 / 0%);border-top:2px dashed var(--ic-architectural-200);border-radius:0}.completed .step-connect{background-color:var(--ic-status-success)}.step-connect-inner{width:70%;display:flex;flex:auto;height:var(--ic-space-xxxs);border-radius:var(--ic-space-xxs);background-color:var(--ic-theme-primary)}.check-icon{padding-top:var(--ic-space-xxs)}.check-icon svg{width:16px;height:16px}.check-icon>svg>path{fill:white}@media (forced-colors: active){.step-connect:not(.disabled .step-connect){border:var(--ic-hc-border)}.active .step-icon-inner,.completed .step-icon-inner,.current .step-icon-inner{forced-color-adjust:none;box-shadow:inset canvastext 0 0 0 2px;background-color:transparent;color:canvastext}.current .step-icon{padding:0;border:none}.disabled,.disabled .step-title-area{color:Graytext}.step-connect-inner,.completed .step-connect{background-color:canvastext}.check-icon>svg>path{fill:canvastext}}";const a=class{constructor(t){e(this,t);this.stepType="active";this.stepTitle=undefined;this.stepSubtitle=undefined;this.stepNum=undefined;this.lastStep=undefined}render(){let e;if(this.stepType!=="completed"){e=t("ic-typography",{variant:"subtitle-small"},t("span",{class:"step-icon-inner","aria-hidden":"true"},this.stepNum))}else{e=t("div",{class:"step-icon-inner","aria-hidden":"true"},t("span",{class:"check-icon",innerHTML:c}))}let s="";if(this.stepType==="completed"){s=". Completed step"}else if(this.stepType==="disabled"){s=". Disabled step"}const r=this.stepType==="current"&&t("div",{class:"step-connect-inner"});const a=!this.lastStep&&t("div",{class:{["step-connect"]:true,["aligned-full-width"]:this.el.parentElement.classList.contains("aligned-full-width")}},r);return t(i,{role:"listitem","aria-label":`Step ${this.stepNum}${s}`,"aria-current":this.stepType=="current"?"step":null,class:{["aligned-full-width"]:this.el.parentElement.classList.contains("aligned-full-width")}},t("div",{class:{["step"]:true,[`${this.stepType}`]:true}},t("div",{class:"step-top"},t("div",{class:"step-icon"},e),a),(this.stepTitle||this.stepSubtitle)&&t("div",{class:"step-title-area"},this.stepTitle&&t("ic-typography",{variant:"subtitle-large",class:"step-title"},this.stepTitle),this.stepSubtitle&&t("ic-typography",{variant:"caption",class:"step-subtitle"},this.stepSubtitle))))}get el(){return s(this)}};a.style=r;export{a as ic_step};
2
- //# sourceMappingURL=p-39ae284e.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-step/ic-step.css?tag=ic-step&encapsulation=shadow","src/components/ic-step/ic-step.tsx"],"names":["icStepCss","Step","[object Object]","icon","this","stepType","h","variant","class","aria-hidden","stepNum","innerHTML","checkIcon","ariaLabel","partialBar","finalStep","lastStep","el","parentElement","classList","contains","Host","role","aria-label","aria-current","stepTitle","stepSubtitle"],"mappings":"6FAAA,MAAMA,EAAY,8oFCSLC,EAAI,6CAKkB,6GAsBjCC,SACE,IAAIC,EACJ,GAAIC,KAAKC,WAAa,YAAa,CACjCF,EACEG,EAAA,gBAAA,CAAeC,QAAQ,kBACrBD,EAAA,OAAA,CAAME,MAAM,kBAAiBC,cAAa,QACvCL,KAAKM,cAIP,CACLP,EACEG,EAAA,MAAA,CAAKE,MAAM,kBAAiBC,cAAa,QACvCH,EAAA,OAAA,CAAME,MAAM,aAAaG,UAAWC,KAK1C,IAAIC,EAAY,GAEhB,GAAIT,KAAKC,WAAa,YAAa,CACjCQ,EAAY,wBACP,GAAIT,KAAKC,WAAa,WAAY,CACvCQ,EAAY,kBAGd,MAAMC,EAAaV,KAAKC,WAAa,WACnCC,EAAA,MAAA,CAAKE,MAAM,uBAEb,MAAMO,GAAaX,KAAKY,UACtBV,EAAA,MAAA,CACEE,MAAO,CACLN,CAAC,gBAAiB,KAClBA,CAAC,sBACCE,KAAKa,GAAGC,cAAcC,UAAUC,SAAS,wBAG5CN,GAIL,OACER,EAACe,EAAI,CACHC,KAAK,WAAUC,aACH,QAAQnB,KAAKM,UAAUG,IAAWW,eAChCpB,KAAKC,UAAY,UAAY,OAAS,KACpDG,MAAO,CACLN,CAAC,sBACCE,KAAKa,GAAGC,cAAcC,UAAUC,SAAS,wBAG7Cd,EAAA,MAAA,CACEE,MAAO,CACLN,CAAC,QAAS,KACVA,CAAC,GAAGE,KAAKC,YAAa,OAGxBC,EAAA,MAAA,CAAKE,MAAM,YACTF,EAAA,MAAA,CAAKE,MAAM,aAAaL,GACvBY,IAEDX,KAAKqB,WAAarB,KAAKsB,eACvBpB,EAAA,MAAA,CAAKE,MAAM,mBACRJ,KAAKqB,WACJnB,EAAA,gBAAA,CAAeC,QAAQ,iBAAiBC,MAAM,cAC3CJ,KAAKqB,WAGTrB,KAAKsB,cACJpB,EAAA,gBAAA,CAAeC,QAAQ,UAAUC,MAAM,iBACpCJ,KAAKsB","sourcesContent":[":host {\n display: flex;\n flex: auto;\n}\n\n:host(.last-step) {\n flex-grow: initial;\n}\n\n.step {\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n}\n\n.step-top {\n display: flex;\n width: 100%;\n align-items: center;\n align-self: flex-start;\n height: 40px;\n}\n\n.step-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n}\n\n.step-icon-inner {\n width: var(--ic-space-xl);\n height: var(--ic-space-xl);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n}\n\n.current {\n color: var(--ic-theme-primary);\n}\n\n.step-title-area {\n margin: var(--ic-space-xs) 0;\n padding-right: var(--ic-space-xs);\n}\n\n.step-title,\n.step-subtitle {\n width: fit-content;\n}\n\n.step-subtitle {\n color: var(--ic-color-tertiary-text);\n}\n\n.current .step-subtitle {\n color: var(--ic-color-primary-text);\n}\n\n.completed {\n color: var(--ic-status-success);\n}\n\n.active .step-icon-inner {\n box-shadow: inset var(--ic-architectural-200) 0 0 0 2px;\n}\n\n.current .step-icon-inner {\n background-color: var(--ic-theme-primary);\n color: white;\n}\n\n.disabled {\n color: var(--ic-architectural-200);\n}\n\n.disabled .step-icon {\n border: 1px dashed var(--ic-architectural-200);\n width: calc(var(--ic-space-xl) - var(--ic-space-xxxs));\n height: calc(var(--ic-space-xl) - var(--ic-space-xxxs));\n}\n\n.disabled .step-title-area {\n color: var(--ic-color-tertiary-text);\n}\n\n.completed .step-icon-inner {\n background: var(--ic-status-success);\n box-shadow: inset var(--ic-status-success) 0 0 0 var(--ic-space-xxxs);\n border-radius: 100%;\n}\n\n.current .step-icon {\n border: var(--ic-space-xxxs) solid var(--ic-theme-primary);\n padding: var(--ic-space-xxxs);\n margin: 0 calc(-1 * var(--ic-space-xxxs)); /* compensating for the circle being bigger than other steps */\n}\n\n.step-connect {\n height: var(--ic-space-xxxs);\n background-color: var(--ic-architectural-200);\n margin: 0 var(--ic-space-xs);\n border-radius: var(--ic-space-xxs);\n width: 100%;\n}\n\n.aligned-full-width.step-connect {\n min-width: 100px;\n width: 100%;\n}\n\n.disabled .step-connect {\n height: 0;\n background-color: rgb(0 0 0 / 0%);\n border-top: 2px dashed var(--ic-architectural-200);\n border-radius: 0;\n}\n\n.completed .step-connect {\n background-color: var(--ic-status-success);\n}\n\n.step-connect-inner {\n width: 70%;\n display: flex;\n flex: auto;\n height: var(--ic-space-xxxs);\n border-radius: var(--ic-space-xxs);\n background-color: var(--ic-theme-primary);\n}\n\n.check-icon {\n padding-top: var(--ic-space-xxs);\n}\n\n.check-icon svg {\n width: 16px;\n height: 16px;\n}\n\n.check-icon > svg > path {\n fill: white;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .step-connect:not(.disabled .step-connect) {\n border: var(--ic-hc-border);\n }\n\n .active .step-icon-inner,\n .completed .step-icon-inner,\n .current .step-icon-inner {\n forced-color-adjust: none;\n box-shadow: inset canvastext 0 0 0 2px;\n background-color: transparent;\n color: canvastext;\n }\n\n .current .step-icon {\n padding: 0;\n border: none;\n }\n\n .disabled,\n .disabled .step-title-area {\n color: Graytext;\n }\n\n .step-connect-inner,\n .completed .step-connect {\n background-color: canvastext;\n }\n\n .check-icon > svg > path {\n fill: canvastext;\n }\n}\n","import { Component, Host, h, Prop, Element } from \"@stencil/core\";\nimport checkIcon from \"../../assets/check-icon.svg\";\nimport { IcStepTypes } from \"./ic-step.types\";\n\n@Component({\n tag: \"ic-step\",\n styleUrl: \"ic-step.css\",\n shadow: true,\n})\nexport class Step {\n @Element() el: HTMLIcStepElement;\n /**\n * The state of the step within the stepper.\n */\n @Prop() stepType?: IcStepTypes = \"active\";\n\n /**\n * The name of the step within the stepper.\n */\n @Prop() stepTitle?: string;\n\n /**\n * The additional information about the step.\n */\n @Prop() stepSubtitle?: string;\n\n /**\n * @internal The step number, managed by ic-stepper.\n */\n @Prop() stepNum?: number;\n\n /**\n * @internal If `true`, the step will be marked as being the last one in the series. This is managed by ic-stepper.\n */\n @Prop() lastStep?: boolean;\n\n render() {\n let icon;\n if (this.stepType !== \"completed\") {\n icon = (\n <ic-typography variant=\"subtitle-small\">\n <span class=\"step-icon-inner\" aria-hidden=\"true\">\n {this.stepNum}\n </span>\n </ic-typography>\n );\n } else {\n icon = (\n <div class=\"step-icon-inner\" aria-hidden=\"true\">\n <span class=\"check-icon\" innerHTML={checkIcon}></span>\n </div>\n );\n }\n\n let ariaLabel = \"\";\n\n if (this.stepType === \"completed\") {\n ariaLabel = \". Completed step\";\n } else if (this.stepType === \"disabled\") {\n ariaLabel = \". Disabled step\";\n }\n\n const partialBar = this.stepType === \"current\" && (\n <div class=\"step-connect-inner\"></div>\n );\n const finalStep = !this.lastStep && (\n <div\n class={{\n [\"step-connect\"]: true,\n [\"aligned-full-width\"]:\n this.el.parentElement.classList.contains(\"aligned-full-width\"),\n }}\n >\n {partialBar}\n </div>\n );\n\n return (\n <Host\n role=\"listitem\"\n aria-label={`Step ${this.stepNum}${ariaLabel}`}\n aria-current={this.stepType == \"current\" ? \"step\" : null}\n class={{\n [\"aligned-full-width\"]:\n this.el.parentElement.classList.contains(\"aligned-full-width\"),\n }}\n >\n <div\n class={{\n [\"step\"]: true,\n [`${this.stepType}`]: true,\n }}\n >\n <div class=\"step-top\">\n <div class=\"step-icon\">{icon}</div>\n {finalStep}\n </div>\n {(this.stepTitle || this.stepSubtitle) && (\n <div class=\"step-title-area\">\n {this.stepTitle && (\n <ic-typography variant=\"subtitle-large\" class=\"step-title\">\n {this.stepTitle}\n </ic-typography>\n )}\n {this.stepSubtitle && (\n <ic-typography variant=\"caption\" class=\"step-subtitle\">\n {this.stepSubtitle}\n </ic-typography>\n )}\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-alert/ic-alert.css?tag=ic-alert&encapsulation=shadow","src/components/ic-alert/ic-alert.tsx"],"names":["icAlertCss","icon","neutral","neutralIcon","info","infoIcon","warning","warningIcon","error","errorIcon","success","successIcon","Alert","this","dismissAction","dismiss","emit","[object Object]","visible","titleHeight","_a","el","shadowRoot","querySelector","clientHeight","alertTitleWrap","alertTitleShouldWrap","variant","heading","message","titleAbove","dismissible","announced","h","Host","role","class","IcThemeForegroundEnum","Dark","innerHTML","name","isSlotUsed","closeIcon","onClick","appearance","title"],"mappings":"6gCAAA,MAAMA,EAAa,6qJCqBnB,MAAMC,EAAO,CACXC,QAASC,EACTC,KAAMC,EACNC,QAASC,EACTC,MAAOC,EACPC,QAASC,SAYEC,EAAK,gEAyCRC,KAAAC,cAAgB,KACtBD,KAAKE,QAAQC,qBApCqB,uBAIT,0CAQI,uBAIC,qBAIF,kBAEF,yBAEO,MAGnCC,cACEJ,KAAKK,SAAWL,KAAKK,QAWfD,6BACN,MAAME,GACJC,EAAAP,KAAKQ,GAAGC,WAAWC,cAAc,mBAAe,MAAAH,SAAA,OAAA,EAAAA,EAAEI,aACpD,GAAIL,EAAc,GAAIN,KAAKY,eAAiB,KAG9CR,mBACEJ,KAAKa,uBAGPT,SACE,MAAMU,QACJA,EAAOC,QACPA,EAAOC,QACPA,EAAOC,WACPA,EAAUC,YACVA,EAAWC,UACXA,EAASd,QACTA,GACEL,KAEJ,OACEK,GACEe,EAACC,EAAI,CACHC,KAAMH,GAAa,QACnBI,MAAO,CACLnB,CAACoB,EAAsBC,MAAO,OAGhCL,EAAA,MAAA,CACEG,MAAO,CACLnB,CAAC,aAAc,KACfA,CAAC,aAAaU,KAAY,OAG5BM,EAAA,MAAA,CAAKG,MAAM,wBACTH,EAAA,MAAA,CACEG,MAAO,CACLnB,CAAC,WAAY,KACbA,CAAC,WAAWU,KAAY,QAG5BM,EAAA,OAAA,CACEG,MAAO,CACLnB,CAAC,cAAe,KAChBA,CAAC,iBAAkB,KACnBA,CAAC,QAAQU,KAAY,MAEvBY,UAAWtC,EAAK0B,MAGpBM,EAAA,MAAA,CAAKG,MAAM,iBACTH,EAAA,MAAA,CACEG,MAAO,CACLnB,CAAC,iBAAkB,KACnBA,CAAC,6BACCa,GAAcjB,KAAKY,iBAGtBG,GACCK,EAAA,gBAAA,CACEG,MAAO,CACLnB,CAAC,eAAgB,KACjBA,CAAC,qBAAsBa,GAAcjB,KAAKY,gBAE5CE,QAAQ,kBAERM,EAAA,IAAA,KAAIL,IAGRK,EAAA,OAAA,CAAMO,KAAK,WACTP,EAAA,gBAAA,CAAeN,QAAQ,QAAQE,KAGlCY,EAAW5B,KAAKQ,GAAI,WACnBY,EAAA,MAAA,CAAKG,MAAM,0BACTH,EAAA,OAAA,CAAMO,KAAK,aAIjBP,EAAA,MAAA,CAAKG,MAAM,0BACRL,GACCE,EAAA,YAAA,CACEG,MAAO,CACLnB,CAAC,iBAAkB,KACnBA,CAAC,gBAAiB,MAEpBsB,UAAWG,EACXC,QAAS9B,KAAKC,cACda,QAAQ,OACRiB,WAAYP,EAAsBC,KAClCO,MAAM","sourcesContent":["@import \"../../global/normalise.css\";\n\n:host {\n display: block;\n}\n\n.container {\n min-height: 56px;\n border-radius: var(--ic-border-radius);\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.container-neutral {\n background-color: var(--ic-architectural-40);\n}\n\n.container-info {\n background-color: var(--ic-status-info-background);\n}\n\n.container-warning {\n background-color: var(--ic-status-warning-background);\n}\n\n.container-error {\n background-color: var(--ic-status-error-background);\n}\n\n.container-success {\n background-color: var(--ic-status-success-background);\n}\n\n.alert-icon-container {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.divider {\n height: 100%;\n width: var(--ic-space-xs);\n border-radius: var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);\n position: absolute;\n}\n\n.divider-neutral {\n background-color: var(--ic-architectural-500);\n}\n\n.divider-info {\n background-color: var(--ic-status-info);\n}\n\n.divider-warning {\n background-color: var(--ic-status-warning-mid);\n}\n\n.divider-error {\n background-color: var(--ic-status-error);\n}\n\n.divider-success {\n background-color: var(--ic-status-success);\n}\n\n.alert-icon {\n height: var(--ic-space-lg);\n width: 22px;\n margin-left: 18px;\n}\n\n.icon-neutral > svg {\n fill: var(--ic-architectural-500);\n}\n\n:host([variant=\"info\"]) .alert-icon svg {\n fill: var(--ic-status-info);\n}\n\n:host([variant=\"warning\"]) .alert-icon svg {\n fill: var(--ic-status-warning-mid);\n}\n\n:host([variant=\"error\"]) .alert-icon svg {\n fill: var(--ic-status-error);\n}\n\n:host([variant=\"success\"]) .alert-icon svg {\n fill: var(--ic-status-success);\n}\n\n.alert-content {\n display: flex;\n align-items: center;\n margin-left: 10px;\n width: 100%;\n}\n\n.alert-message {\n display: flex;\n align-items: center;\n padding: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n flex: 1;\n}\n\n.alert-message-title-above {\n display: inline;\n font-size: 0;\n}\n\n.alert-title {\n margin-right: var(--ic-space-xs);\n}\n\n.alert-title-above {\n white-space: normal;\n}\n\n.alert-action-container {\n margin-right: var(--ic-space-xs);\n display: flex;\n align-items: center;\n}\n\n.dismiss-icon {\n margin-right: var(--ic-space-xxxs);\n margin-left: -6px;\n padding: 6px;\n border: none;\n border-radius: 50%;\n background-color: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.dismiss-icon svg {\n width: 18px;\n height: 18px;\n}\n\n.dismiss-icon:hover {\n cursor: pointer;\n}\n\n@media (max-width: 628px) {\n .alert-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n .alert-message {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n font-size: 1px;\n }\n\n .alert-title {\n white-space: normal;\n }\n\n .alert-action-container {\n margin-bottom: 14px;\n }\n}\n\n@media (forced-colors: active) {\n .container {\n border: var(--ic-hc-border);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n State,\n Listen,\n Prop,\n h,\n} from \"@stencil/core\";\nimport neutralIcon from \"../../assets/neutral-icon.svg\";\nimport infoIcon from \"../../assets/info-icon.svg\";\nimport warningIcon from \"../../assets/warning-icon.svg\";\nimport errorIcon from \"../../assets/error-icon.svg\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { IcAlertVariants } from \"./ic-alert.types\";\nimport { isSlotUsed } from \"../../utils/helpers\";\nimport { IcThemeForegroundEnum } from \"../../utils/types\";\n\nconst icon = {\n neutral: neutralIcon,\n info: infoIcon,\n warning: warningIcon,\n error: errorIcon,\n success: successIcon,\n};\n\n/**\n * @slot message - Content is placed to the right of the title.\n * @slot action - Content is placed to the right of the message.\n */\n@Component({\n tag: \"ic-alert\",\n styleUrl: \"ic-alert.css\",\n shadow: true,\n})\nexport class Alert {\n @Element() el: HTMLIcAlertElement;\n\n /**\n * The variant of the alert which will be rendered.\n */\n @Prop() variant?: IcAlertVariants = \"neutral\";\n /**\n * The optional title to display at the start of the alert.\n */\n @Prop() heading?: string = \"\";\n /**\n * The main body message of the alert.\n */\n @Prop() message?: string;\n /**\n * If `true`, the title and message will appear inline instead of above and below.\n */\n @Prop() titleAbove?: boolean = false;\n /**\n * If `true`, the alert will have a close icon at the end to dismiss it.\n */\n @Prop() dismissible?: boolean = false;\n /**\n * If `true`, the alert will have the 'alert' ARIA role and will be announced to screen readers.\n */\n @Prop() announced?: boolean = true;\n\n @State() visible: boolean = true;\n\n @State() alertTitleWrap: boolean = false;\n\n @Listen(\"dismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n /**\n * Is emitted when the user dismisses the alert.\n */\n @Event() dismiss: EventEmitter<void>;\n\n private dismissAction = (): void => {\n this.dismiss.emit();\n };\n\n private alertTitleShouldWrap() {\n const titleHeight =\n this.el.shadowRoot.querySelector(\".alert-title\")?.clientHeight;\n if (titleHeight > 24) this.alertTitleWrap = true;\n }\n\n componentDidLoad(): void {\n this.alertTitleShouldWrap();\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n titleAbove,\n dismissible,\n announced,\n visible,\n } = this;\n\n return (\n visible && (\n <Host\n role={announced && \"alert\"}\n class={{\n [IcThemeForegroundEnum.Dark]: true,\n }}\n >\n <div\n class={{\n [\"container\"]: true,\n [`container-${variant}`]: true,\n }}\n >\n <div class=\"alert-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n <span\n class={{\n [\"alert-icon\"]: true,\n [\"svg-container\"]: true,\n [`icon-${variant}`]: true,\n }}\n innerHTML={icon[variant]}\n ></span>\n </div>\n <div class=\"alert-content\">\n <div\n class={{\n [\"alert-message\"]: true,\n [\"alert-message-title-above\"]:\n titleAbove || this.alertTitleWrap,\n }}\n >\n {heading && (\n <ic-typography\n class={{\n [\"alert-title\"]: true,\n [\"alert-title-above\"]: titleAbove || this.alertTitleWrap,\n }}\n variant=\"subtitle-large\"\n >\n <p>{heading}</p>\n </ic-typography>\n )}\n <slot name=\"message\">\n <ic-typography variant=\"body\">{message}</ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"alert-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n <div class=\"dismiss-icon-container\">\n {dismissible && (\n <ic-button\n class={{\n [\"svg-container\"]: true,\n [\"dismiss-icon\"]: true,\n }}\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.Dark}\n title=\"dismiss\"\n ></ic-button>\n )}\n </div>\n </div>\n </Host>\n )\n );\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as o,c as t,h as r,H as i}from"./p-f9370be6.js";import{B as s,C as e,W as c,E as h,F as a,k as n}from"./p-23831891.js";import"./p-6f57b13c.js";const l=class{constructor(r){o(this,r);this.icThemeChange=t(this,"icThemeChange",7);this.checkThemeColorContrast=()=>{if(s()<e&&s()>c){console.warn(`The theme colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`)}};this.setThemeColor=()=>{if(this.color!==null){let o=null;const t=this.color.slice(0,1);if(t==="#"){o=h(this.color)}else if(t.toLowerCase()==="r"){o=a(this.color)}this.setThemeRGBA(o)}};this.setThemeRGBA=o=>{if(o!==null){const t=document.documentElement;t.style.setProperty("--ic-theme-primary-r",o.r.toString());t.style.setProperty("--ic-theme-primary-g",o.g.toString());t.style.setProperty("--ic-theme-primary-b",o.b.toString());t.style.setProperty("--ic-theme-primary-a",o.a.toString());this.checkThemeColorContrast();const r=n();this.icThemeChange.emit({mode:r,color:o})}};this.color=null}watchColorPropHandler(){this.setThemeColor()}componentWillLoad(){this.setThemeColor()}render(){return r(i,null)}static get watchers(){return{color:["watchColorPropHandler"]}}};export{l as ic_theme};
2
- //# sourceMappingURL=p-7093d214.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-theme/ic-theme.tsx"],"names":["Theme","this","checkThemeColorContrast","getThemeColorBrightness","BLACK_MIN_COLOR_BRIGHTNESS","WHITE_MAX_COLOR_BRIGHTNESS","console","warn","setThemeColor","color","colorRGBA","firstChar","slice","hexToRgba","toLowerCase","rgbaStrToObj","setThemeRGBA","root","document","documentElement","style","setProperty","r","toString","g","b","a","foregroundColor","getThemeForegroundColor","icThemeChange","emit","mode","[object Object]","h","Host"],"mappings":"8JA0BaA,EAAK,4EAgBRC,KAAAC,wBAA0B,KAChC,GACEC,IAA4BC,GAC5BD,IAA4BE,EAC5B,CACAC,QAAQC,KACN,+TAKEN,KAAAO,cAAgB,KACtB,GAAIP,KAAKQ,QAAU,KAAM,CACvB,IAAIC,EAAY,KAChB,MAAMC,EAAYV,KAAKQ,MAAMG,MAAM,EAAG,GACtC,GAAID,IAAc,IAAK,CACrBD,EAAYG,EAAUZ,KAAKQ,YACtB,GAAIE,EAAUG,gBAAkB,IAAK,CAC1CJ,EAAYK,EAAad,KAAKQ,OAEhCR,KAAKe,aAAaN,KAIdT,KAAAe,aAAgBN,IACtB,GAAIA,IAAc,KAAM,CACtB,MAAMO,EAAOC,SAASC,gBACtBF,EAAKG,MAAMC,YAAY,uBAAwBX,EAAUY,EAAEC,YAC3DN,EAAKG,MAAMC,YAAY,uBAAwBX,EAAUc,EAAED,YAC3DN,EAAKG,MAAMC,YAAY,uBAAwBX,EAAUe,EAAEF,YAC3DN,EAAKG,MAAMC,YAAY,uBAAwBX,EAAUgB,EAAEH,YAE3DtB,KAAKC,0BAEL,MAAMyB,EAAkBC,IACxB3B,KAAK4B,cAAcC,KAAK,CAAEC,KAAMJ,EAAiBlB,MAAOC,iBA/CnC,KAGzBsB,wBACE/B,KAAKO,gBA+CPwB,oBACE/B,KAAKO,gBAGPwB,SACE,OAAOC,EAACC,EAAI","sourcesContent":["import {\n Component,\n Host,\n Event,\n EventEmitter,\n h,\n Watch,\n Prop,\n} from \"@stencil/core\";\n\nimport { IcColorRGBA, IcTheme } from \"../../utils/types\";\nimport {\n getThemeForegroundColor,\n hexToRgba,\n rgbaStrToObj,\n} from \"../../utils/helpers\";\nimport { getThemeColorBrightness } from \"../../utils/helpers\";\nimport {\n BLACK_MIN_COLOR_BRIGHTNESS,\n WHITE_MAX_COLOR_BRIGHTNESS,\n} from \"../../utils/constants\";\n\n@Component({\n tag: \"ic-theme\",\n shadow: true,\n})\nexport class Theme {\n /**\n * The theme colour. Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() color?: string = null;\n\n @Watch(\"color\")\n watchColorPropHandler(): void {\n this.setThemeColor();\n }\n\n /**\n * Emitted when the theme is changed.\n */\n @Event() icThemeChange: EventEmitter<IcTheme>;\n\n private checkThemeColorContrast = (): void => {\n if (\n getThemeColorBrightness() < BLACK_MIN_COLOR_BRIGHTNESS &&\n getThemeColorBrightness() > WHITE_MAX_COLOR_BRIGHTNESS\n ) {\n console.warn(\n `The theme colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`\n );\n }\n };\n\n private setThemeColor = () => {\n if (this.color !== null) {\n let colorRGBA = null;\n const firstChar = this.color.slice(0, 1);\n if (firstChar === \"#\") {\n colorRGBA = hexToRgba(this.color);\n } else if (firstChar.toLowerCase() === \"r\") {\n colorRGBA = rgbaStrToObj(this.color);\n }\n this.setThemeRGBA(colorRGBA);\n }\n };\n\n private setThemeRGBA = (colorRGBA: IcColorRGBA) => {\n if (colorRGBA !== null) {\n const root = document.documentElement;\n root.style.setProperty(\"--ic-theme-primary-r\", colorRGBA.r.toString());\n root.style.setProperty(\"--ic-theme-primary-g\", colorRGBA.g.toString());\n root.style.setProperty(\"--ic-theme-primary-b\", colorRGBA.b.toString());\n root.style.setProperty(\"--ic-theme-primary-a\", colorRGBA.a.toString());\n\n this.checkThemeColorContrast();\n\n const foregroundColor = getThemeForegroundColor();\n this.icThemeChange.emit({ mode: foregroundColor, color: colorRGBA });\n }\n };\n\n componentWillLoad(): void {\n this.setThemeColor();\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as s,h as i,g as h}from"./p-f9370be6.js";import{I as e}from"./p-6f57b13c.js";const a=class{constructor(i){t(this,i);this.tabSelect=s(this,"tabSelect",7);this.linkTabs=()=>{this.tabs.forEach(((t,s)=>{const i=`ic-tab-${s}-context-${this.contextId}`;const h=`ic-tab-panel-${s}-context-${this.contextId}`;const a=`ic-tab--${s}-context-${this.contextId}`;t.setAttribute("id",i);t.tabId=a;t.tabPosition=s;t.setAttribute("aria-controls",h);t.setAttribute("context-id",this.contextId);this.tabPanels[s].setAttribute("id",h);this.tabPanels[s].panelId=a;this.tabPanels[s].tabPosition=s;this.tabPanels[s].setAttribute("aria-labelledby",i);if(this.appearance===e.Light){t.appearance=this.appearance;this.tabPanels[s].appearance=this.appearance}}));if(this.appearance===e.Light){this.tabGroup.appearance=this.appearance}};this.getChildren=()=>{this.tabGroup=Array.from(this.host.querySelectorAll("ic-tab-group")).find((t=>t.contextId===this.contextId));this.tabs=Array.from(this.tabGroup.querySelectorAll("ic-tab")).filter((t=>t.contextId===this.contextId));this.enabledTabs=this.getEnabledTabs();this.tabPanels=Array.from(this.host.querySelectorAll("ic-tab-panel"))};this.attatchEventListeners=()=>{if(this.activationType==="automatic"){this.tabGroup.addEventListener("keydown",(t=>{this.handleKeyBoardNavAutomatic(t)}))}else{this.tabGroup.addEventListener("keydown",(t=>{this.handleKeyBoardNavManual(t)}))}};this.setControlledMode=()=>{if(this.selectedTabIndex!==undefined){this.controlledMode=true;this.selectedTab=this.selectedTabIndex}};this.setInitialTab=()=>{if(this.controlledMode){this.selectedTab=this.selectedTabIndex;this.focusedTabIndex=this.selectedTabIndex}else{const t=this.tabs.findIndex((t=>t.tabId===this.enabledTabs[0].tabId));this.selectedTab=t;this.focusedTabIndex=t}};this.configureTabs=()=>{this.enabledTabs.forEach((t=>{t.selected=t.tabPosition===this.selectedTab}));this.tabPanels.forEach((t=>{t.selectedTab=this.tabs[this.selectedTab].tabId}))};this.getEnabledTabs=()=>Array.from(this.tabs).filter((t=>!t.disabled));this.getIndexOfEnabledTab=t=>this.enabledTabs.findIndex((s=>s.tabId===this.tabs[t].tabId));this.keyboardSelectTab=t=>{const s=this.tabs.findIndex((s=>s.tabId===this.enabledTabs[t].tabId));this.enabledTabs[t].focus();if(!this.controlledMode){this.selectedTab=s}else{this.tabSelect.emit({tabIndex:s})}};this.keyboardFocusTab=t=>{const s=this.tabs.findIndex((s=>s.tabId===this.enabledTabs[t].tabId));this.enabledTabs[t].focus();this.focusedTabIndex=s};this.handleKeyBoardNavAutomatic=t=>{const s=t.key;const i=this.getIndexOfEnabledTab(this.selectedTab);let h=true;switch(s){case"Home":this.keyboardSelectTab(0);break;case"End":this.keyboardSelectTab(this.enabledTabs.length-1);break;case"ArrowRight":if(i<this.enabledTabs.length-1){this.keyboardSelectTab(i+1)}else{this.keyboardSelectTab(0)}break;case"ArrowLeft":if(i>0){this.keyboardSelectTab(i-1)}else{this.keyboardSelectTab(this.enabledTabs.length-1)}break;default:h=false}if(h)t.preventDefault()};this.handleKeyBoardNavManual=t=>{const s=t.key;const i=this.getIndexOfEnabledTab(this.focusedTabIndex);let h=true;switch(s){case"Home":this.keyboardFocusTab(0);break;case"End":this.keyboardFocusTab(this.enabledTabs.length-1);break;case"ArrowRight":if(i<this.enabledTabs.length-1){this.keyboardFocusTab(i+1)}else{this.keyboardFocusTab(0)}break;case"ArrowLeft":if(i>0){this.keyboardFocusTab(i-1)}else{this.keyboardFocusTab(this.enabledTabs.length-1)}break;case"Enter":this.keyboardSelectTab(this.focusedTabIndex);break;case" ":this.keyboardSelectTab(this.focusedTabIndex);break;default:h=false}if(h)t.preventDefault()};this.contextId="default";this.activationType="automatic";this.selectedTabIndex=undefined;this.appearance="dark";this.selectedTab=undefined}updateSelectedTab(t){this.selectedTab=t}tabClickHandler(t){if(this.selectedTabIndex===undefined&&t.detail.contextId===this.contextId){this.selectedTab=t.detail.position}this.tabSelect.emit({tabIndex:t.detail.position})}componentDidLoad(){this.setControlledMode();this.getChildren();this.linkTabs();this.attatchEventListeners();this.setInitialTab();this.configureTabs()}componentWillUpdate(){this.configureTabs()}disconnectedCallback(){if(this.activationType==="manual"){this.tabGroup.removeEventListener("keydown",(t=>this.handleKeyBoardNavManual(t)))}else{this.tabGroup.removeEventListener("keydown",(t=>this.handleKeyBoardNavAutomatic(t)))}}render(){return i("slot",null)}get host(){return h(this)}static get watchers(){return{selectedTabIndex:["updateSelectedTab"]}}};export{a as ic_tab_context};
2
- //# sourceMappingURL=p-7577c6a3.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-tab-context/ic-tab-context.tsx"],"names":["TabContext","this","linkTabs","tabs","forEach","tab","index","tabId","contextId","tabPanelId","shared","setAttribute","tabPosition","tabPanels","panelId","appearance","IcThemeForegroundEnum","Light","tabGroup","getChildren","Array","from","host","querySelectorAll","find","filter","enabledTabs","getEnabledTabs","attatchEventListeners","activationType","addEventListener","event","handleKeyBoardNavAutomatic","handleKeyBoardNavManual","setControlledMode","selectedTabIndex","undefined","controlledMode","selectedTab","setInitialTab","focusedTabIndex","firstEnabledTabIndex","findIndex","configureTabs","selected","tabPanel","child","disabled","getIndexOfEnabledTab","allTabsIndex","keyboardSelectTab","enabledTabIndex","newIndex","focus","tabSelect","emit","tabIndex","keyboardFocusTab","key","preventDefault","length","[object Object]","newValue","detail","position","removeEventListener","h"],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Prop,\n State,\n h,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcActivationTypes,\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nimport {\n IcTabClickEventDetail,\n IcTabSelectEventDetail,\n} from \"../ic-tab/ic-tab.types\";\n\n@Component({\n tag: \"ic-tab-context\",\n})\nexport class TabContext {\n @Element() host: HTMLIcTabContextElement;\n\n /**\n * The unique context needed if using multiple tabs inside one another i.e. rendering another set of tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * Determines whether tabs have to be manually activated (by pressing 'Enter' or 'Space') when they receive focus using keyboard navigation.\n */\n @Prop() activationType?: IcActivationTypes = \"automatic\";\n\n /**\n * The selected tab to be controlled by the user. Must be used alongside the tabSelect event to manage tab selection.\n */\n @Prop() selectedTabIndex?: number;\n\n /**\n * The appearance of the tab context, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n @State() selectedTab: number | null;\n\n @Watch(\"selectedTabIndex\")\n updateSelectedTab(newValue: number): void {\n this.selectedTab = newValue;\n }\n\n /**\n * Emitted when a user selects a tab.\n */\n @Event() tabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n @Listen(\"tabClick\")\n tabClickHandler(event: CustomEvent<IcTabClickEventDetail>): void {\n if (\n this.selectedTabIndex === undefined &&\n event.detail.contextId === this.contextId\n ) {\n this.selectedTab = event.detail.position;\n }\n this.tabSelect.emit({\n tabIndex: event.detail.position,\n });\n }\n\n private controlledMode: boolean;\n private tabs: HTMLIcTabElement[];\n private enabledTabs: HTMLIcTabElement[];\n private tabPanels: HTMLIcTabPanelElement[];\n private tabGroup: HTMLIcTabGroupElement;\n private focusedTabIndex: number;\n\n // Sets attributes to link tabs and tabpanels\n private linkTabs = () => {\n this.tabs.forEach((tab, index) => {\n const tabId = `ic-tab-${index}-context-${this.contextId}`;\n const tabPanelId = `ic-tab-panel-${index}-context-${this.contextId}`;\n const shared = `ic-tab--${index}-context-${this.contextId}`;\n tab.setAttribute(\"id\", tabId);\n tab.tabId = shared;\n tab.tabPosition = index;\n tab.setAttribute(\"aria-controls\", tabPanelId);\n tab.setAttribute(\"context-id\", this.contextId);\n this.tabPanels[index].setAttribute(\"id\", tabPanelId);\n this.tabPanels[index].panelId = shared;\n this.tabPanels[index].tabPosition = index;\n this.tabPanels[index].setAttribute(\"aria-labelledby\", tabId);\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n tab.appearance = this.appearance;\n this.tabPanels[index].appearance = this.appearance;\n }\n });\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n this.tabGroup.appearance = this.appearance;\n }\n };\n\n // Gets tabs and tabpanels with the same context ID\n private getChildren = (): void => {\n this.tabGroup = Array.from(this.host.querySelectorAll(\"ic-tab-group\")).find(\n (tabGroup) => tabGroup.contextId === this.contextId\n );\n this.tabs = Array.from(this.tabGroup.querySelectorAll(\"ic-tab\")).filter(\n (tab) => tab.contextId === this.contextId\n );\n this.enabledTabs = this.getEnabledTabs();\n this.tabPanels = Array.from(this.host.querySelectorAll(\"ic-tab-panel\"));\n };\n\n // Determines how keyboard navigation is to be handled based on the activation type\n private attatchEventListeners = (): void => {\n if (this.activationType === \"automatic\") {\n this.tabGroup.addEventListener(\"keydown\", (event) => {\n this.handleKeyBoardNavAutomatic(event);\n });\n } else {\n this.tabGroup.addEventListener(\"keydown\", (event) => {\n this.handleKeyBoardNavManual(event);\n });\n }\n };\n\n // Determines whether the selected tab is being controlled within the component\n // or by the user (via selectedTabIndex and onTabSelect)\n private setControlledMode = (): void => {\n if (this.selectedTabIndex !== undefined) {\n this.controlledMode = true;\n this.selectedTab = this.selectedTabIndex;\n }\n };\n\n // Sets the tab that is selected on initial render\n private setInitialTab = (): void => {\n if (this.controlledMode) {\n this.selectedTab = this.selectedTabIndex;\n this.focusedTabIndex = this.selectedTabIndex;\n } else {\n const firstEnabledTabIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[0].tabId\n );\n this.selectedTab = firstEnabledTabIndex;\n this.focusedTabIndex = firstEnabledTabIndex;\n }\n };\n\n // Passes the selected tab to the tab and tab panel components\n private configureTabs = () => {\n this.enabledTabs.forEach((tab) => {\n tab.selected = tab.tabPosition === this.selectedTab;\n });\n this.tabPanels.forEach((tabPanel) => {\n tabPanel.selectedTab = this.tabs[this.selectedTab].tabId;\n });\n };\n\n private getEnabledTabs = () => {\n return Array.from(this.tabs).filter((child) => !child.disabled);\n };\n\n private getIndexOfEnabledTab = (allTabsIndex: number) => {\n return this.enabledTabs.findIndex(\n (tab) => tab.tabId === this.tabs[allTabsIndex].tabId\n );\n };\n\n // Sets focus on tab and selects it\n private keyboardSelectTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n if (!this.controlledMode) {\n this.selectedTab = newIndex;\n } else {\n this.tabSelect.emit({ tabIndex: newIndex });\n }\n };\n\n // Sets focus on tab without selecting it (for manual activation)\n private keyboardFocusTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n this.focusedTabIndex = newIndex;\n };\n\n private handleKeyBoardNavAutomatic = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.selectedTab);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardSelectTab(0);\n break;\n case \"End\":\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardSelectTab(enabledTabIndex + 1);\n } else {\n this.keyboardSelectTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardSelectTab(enabledTabIndex - 1);\n } else {\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n }\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n private handleKeyBoardNavManual = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.focusedTabIndex);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardFocusTab(0);\n break;\n case \"End\":\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardFocusTab(enabledTabIndex + 1);\n } else {\n this.keyboardFocusTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardFocusTab(enabledTabIndex - 1);\n } else {\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n }\n break;\n case \"Enter\":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n case \" \":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n componentDidLoad(): void {\n this.setControlledMode();\n this.getChildren();\n this.linkTabs();\n this.attatchEventListeners();\n this.setInitialTab();\n this.configureTabs();\n }\n\n componentWillUpdate(): void {\n this.configureTabs();\n }\n\n disconnectedCallback(): void {\n if (this.activationType === \"manual\") {\n this.tabGroup.removeEventListener(\"keydown\", (event) =>\n this.handleKeyBoardNavManual(event)\n );\n } else {\n this.tabGroup.removeEventListener(\"keydown\", (event) =>\n this.handleKeyBoardNavAutomatic(event)\n );\n }\n }\n\n render() {\n return <slot></slot>;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-checkbox/ic-checkbox.css?tag=ic-checkbox&encapsulation=shadow","src/components/ic-checkbox/ic-checkbox.tsx"],"names":["icCheckboxCss","Checkbox","this","handleClick","checked","checkboxChecked","emit","handleFormReset","initiallyChecked","[object Object]","additionalFieldDisplay","textfield","host","querySelector","setAttribute","removeAttribute","additionalFieldContainer","style","display","addFormResetListener","onComponentRequiredPropUndefined","prop","label","propName","value","removeFormResetListener","id","undefined","groupLabel","replace","renderHiddenInput","name","disabled","removeHiddenInput","h","Host","class","indeterminate","width","height","xmlns","fill-rule","clip-rule","d","role","type","onClick","variant","htmlFor","isSlotUsed","ref","el","aria-live","dynamicText","additional-field-wrapper"],"mappings":"+JAAA,MAAMA,EAAgB,6xLCyBTC,EAAQ,gFAkDXC,KAAAC,YAAc,KACpBD,KAAKE,SAAWF,KAAKE,QACrBF,KAAKG,gBAAgBC,QAGfJ,KAAAK,gBAAkB,KACxBL,KAAKE,QAAUF,KAAKM,+BApDsC,oBAI/B,+GAoBC,yEAK5B,4BAI+B,4BAELN,KAAKE,QAoBjCK,qBACE,GAAIP,KAAKQ,yBAA2B,SAAU,CAC5C,MAAMC,EAAYT,KAAKU,KAAKC,cAAc,iBAC1C,IAAKX,KAAKE,QAAS,CACjBO,GAAaA,EAAUG,aAAa,WAAY,QAC3C,CACLH,GAAaA,EAAUI,gBAAgB,iBAEpC,CACL,IAAKb,KAAKE,QAAS,CACjBF,KAAKc,yBAAyBC,MAAMC,QAAU,WACzC,CACLhB,KAAKc,yBAAyBC,MAAMC,QAAU,SAKpDT,oBACEU,EAAqBjB,KAAKU,KAAMV,KAAKK,iBAGvCE,mBACEW,EACE,CACE,CAAEC,KAAMnB,KAAKoB,MAAOC,SAAU,SAC9B,CAAEF,KAAMnB,KAAKsB,MAAOD,SAAU,UAEhC,YAIJd,uBACEgB,EAAwBvB,KAAKU,KAAMV,KAAKK,iBAG1CE,SACE,IAAIiB,EAAK,eACPxB,KAAKoB,QAAUK,UAAYzB,KAAKoB,MAAQpB,KAAKsB,SAC3CtB,KAAK0B,aAETF,EAAKA,EAAGG,QAAQ,KAAM,KAEtB3B,KAAKE,QACD0B,EACE,KACA5B,KAAKU,KACLV,KAAK6B,KACL7B,KAAKE,SAAWF,KAAKsB,MACrBtB,KAAK8B,UAEPC,EAAkB/B,KAAKU,MAE3B,OACEsB,EAACC,EAAI,KACHD,EAAA,MAAA,CAAKE,MAAO,CAAE3B,CAAC,aAAc,KAAMA,CAAC,YAAaP,KAAK8B,WACnD9B,KAAKE,UAAYF,KAAKmC,eACrBH,EAAA,MAAA,CACEE,MAAM,YACNE,MAAM,KACNC,OAAO,KACPC,MAAM,6BAA4BC,YACxB,UAASC,YACT,WAEVR,EAAA,QAAA,KAAA,kBACAA,EAAA,OAAA,CAAMS,EAAE,yFAGXzC,KAAKE,SAAWF,KAAKmC,eACpBH,EAAA,MAAA,CAAKE,MAAM,yBAEbF,EAAA,QAAA,CACEU,KAAK,WACLR,MAAO,CACL3B,CAAC,YAAa,KACdA,CAAC,WAAYP,KAAKE,QAClBK,CAAC,iBAAkBP,KAAKmC,eAE1BQ,KAAK,WACLd,KAAM7B,KAAK6B,KACXL,GAAIA,EACJF,MAAOtB,KAAKsB,MACZQ,SAAU9B,KAAK8B,SAAW,KAAO,KACjC5B,QAASF,KAAKE,QACdiC,cAAenC,KAAKmC,cACpBS,QAAS5C,KAAKC,cAEhB+B,EAAA,gBAAA,CAAea,QAAQ,QACrBb,EAAA,QAAA,CAAOE,MAAM,iBAAiBY,QAAStB,GACpCxB,KAAKoB,SAIX2B,EAAW/C,KAAKU,KAAM,qBACrBsB,EAAA,MAAA,CACEE,MAAM,oBACNc,IAAMC,GAAQjD,KAAKc,yBAA2BmC,GAE7CjD,KAAKQ,yBAA2B,WAC/BwB,EAAA,MAAA,CAAKE,MAAM,kBAEbF,EAAA,MAAA,KACGhC,KAAKQ,yBAA2B,WAC/BwB,EAAA,gBAAA,CAAea,QAAQ,WACrBb,EAAA,IAAA,CAAGE,MAAM,eAAcgB,YAAW,UAC/BlD,KAAKmD,cAIZnB,EAAA,MAAA,CACEE,MAAO,CACLkB,2BACEpD,KAAKQ,yBAA2B,WAGpCwB,EAAA,OAAA,CAAMH,KAAK","sourcesContent":["@import \"../../global/normalise.css\";\n\n:host([disabled]) {\n color: var(--ic-architectural-200);\n pointer-events: none;\n}\n\n:host([small]) .container {\n margin-bottom: 10px;\n}\n\n.container {\n display: flex;\n width: fit-content;\n margin-bottom: var(--ic-space-sm);\n margin-left: var(--ic-space-xxs);\n}\n\n.checkbox {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: transparent;\n border: 1px solid var(--ic-architectural-300);\n border-radius: var(--ic-border-radius);\n outline: none;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n}\n\n.checkbox:checked {\n background-color: var(--ic-action-default);\n border: 1px solid var(--ic-action-default);\n transition: var(--ic-easing-transition-slow);\n}\n\n.checkbox:checked:disabled {\n background-color: var(--ic-architectural-200);\n}\n\n.checkbox:indeterminate,\n.checkbox.indeterminate:checked {\n background-color: transparent;\n border: 2px solid var(--ic-action-default);\n}\n\n.checkbox:checked:hover {\n background-color: var(--ic-action-default-hover);\n}\n\n.checkbox:indeterminate:hover,\n.checkbox.indeterminate:checked:hover {\n background-color: var(--ic-action-default-bg-hover);\n border: 2px solid var(--ic-action-default-hover);\n}\n\n.checkbox:checked:active {\n background-color: var(--ic-action-default-active);\n}\n\n.checkbox:indeterminate:active,\n.checkbox.indeterminate:checked:active {\n background-color: var(--ic-action-default-bg-active);\n border: 2px solid var(--ic-action-default-active);\n}\n\n.checkbox:hover {\n background-color: var(--ic-action-default-bg-hover);\n box-shadow: 0 0 0 4px var(--ic-action-default-bg-hover);\n border: 1px solid var(--ic-action-default-hover);\n}\n\n.checkbox:active {\n background-color: var(--ic-action-default-bg-active);\n box-shadow: 0 0 0 4px var(--ic-action-default-bg-active);\n border: 1px solid var(--ic-action-default-active);\n}\n\n.checkbox:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.checkbox:disabled {\n border: 1px dashed var(--ic-architectural-200);\n}\n\n.checkbox-label {\n padding-left: var(--ic-space-sm);\n}\n\n.checkbox-label:hover {\n cursor: pointer;\n}\n\n.checkmark {\n position: relative;\n right: calc(-1 * var(--ic-space-lg));\n margin-left: calc(-1 * var(--ic-space-lg));\n fill: white;\n z-index: 1;\n background-color: transparent;\n pointer-events: none;\n}\n\n.indeterminate-symbol {\n position: relative;\n width: 14px;\n height: var(--ic-space-xxxs);\n top: 11px;\n right: -19px;\n margin-left: -14px;\n z-index: 1;\n background-color: var(--ic-action-default);\n pointer-events: none;\n}\n\n.container:hover .indeterminate-symbol {\n background-color: var(--ic-action-default-hover);\n}\n\n.container:active .indeterminate-symbol {\n background-color: var(--ic-action-default-active);\n}\n\n.additional-field-wrapper {\n margin-left: 44px;\n margin-top: var(--ic-space-xs);\n}\n\n.branch-corner {\n color: var(--ic-action-default);\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 3px;\n border-bottom: 2px solid var(--ic-action-default);\n border-left: 2px solid var(--ic-action-default);\n}\n\n.dynamic-container {\n display: flex;\n position: relative;\n margin-left: 15px;\n margin-top: -6px;\n margin-bottom: var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n.dynamic-text {\n color: var(--ic-action-default);\n margin-top: 7px;\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n@media (max-width: 576px) {\n ::slotted(ic-text-field) {\n --input-width: 100%;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n .checkbox {\n appearance: revert;\n transition: none;\n }\n\n .checkbox:checked {\n transition: none;\n }\n\n .checkbox:focus-visible {\n outline: 2px solid highlight;\n }\n\n .checkbox:disabled:not(:checked) {\n appearance: none;\n border-color: GrayText;\n }\n\n .checkmark {\n fill: none;\n }\n\n .indeterminate-symbol {\n display: none;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n} from \"@stencil/core\";\nimport { IcAdditionalFieldTypes } from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n removeHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-checkbox\",\n styleUrl: \"ic-checkbox.css\",\n shadow: true,\n})\nexport class Checkbox {\n /**\n * If `true`, the checkbox will be set to the checked state.\n */\n @Prop({ reflect: true, mutable: true }) checked?: boolean = false;\n /**\n * If `true`, the checkbox will be set to the disabled state.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The label for the checkbox.\n */\n @Prop() label!: string;\n /**\n * The value for the checkbox.\n */\n @Prop() value!: string;\n /**\n * The name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\n */\n @Prop() name: string;\n /**\n * The group label for the checkbox.\n */\n @Prop() groupLabel: string;\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n /**\n * If `true`, the indeterminate state will be displayed when checked.\n */\n @Prop() indeterminate: boolean = false;\n\n @State() initiallyChecked = this.checked;\n\n @Element() host: HTMLIcCheckboxElement;\n\n /**\n * Emitted when a checkbox has been checked\n */\n @Event() checkboxChecked: EventEmitter<void>;\n\n private additionalFieldContainer: HTMLDivElement;\n\n private handleClick = () => {\n this.checked = !this.checked;\n this.checkboxChecked.emit();\n };\n\n private handleFormReset = (): void => {\n this.checked = this.initiallyChecked;\n };\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const textfield = this.host.querySelector(\"ic-text-field\");\n if (!this.checked) {\n textfield && textfield.setAttribute(\"disabled\", \"\");\n } else {\n textfield && textfield.removeAttribute(\"disabled\");\n }\n } else {\n if (!this.checked) {\n this.additionalFieldContainer.style.display = \"none\";\n } else {\n this.additionalFieldContainer.style.display = \"flex\";\n }\n }\n }\n\n componentWillLoad(): void {\n addFormResetListener(this.host, this.handleFormReset);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.value, propName: \"value\" },\n ],\n \"Checkbox\"\n );\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.host, this.handleFormReset);\n }\n\n render() {\n let id = `ic-checkbox-${\n this.label !== undefined ? this.label : this.value\n }-${this.groupLabel}`;\n\n id = id.replace(/ /g, \"-\");\n\n this.checked\n ? renderHiddenInput(\n true,\n this.host,\n this.name,\n this.checked && this.value,\n this.disabled\n )\n : removeHiddenInput(this.host);\n\n return (\n <Host>\n <div class={{ [\"container\"]: true, [\"disabled\"]: this.disabled }}>\n {this.checked && !this.indeterminate && (\n <svg\n class=\"checkmark\"\n width=\"24\"\n height=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n >\n <title>checkmark icon</title>\n <path d=\"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" />\n </svg>\n )}\n {this.checked && this.indeterminate && (\n <div class=\"indeterminate-symbol\" />\n )}\n <input\n role=\"checkbox\"\n class={{\n [\"checkbox\"]: true,\n [\"checked\"]: this.checked,\n [\"indeterminate\"]: this.indeterminate,\n }}\n type=\"checkbox\"\n name={this.name}\n id={id}\n value={this.value}\n disabled={this.disabled ? true : null}\n checked={this.checked}\n indeterminate={this.indeterminate}\n onClick={this.handleClick}\n ></input>\n <ic-typography variant=\"body\">\n <label class=\"checkbox-label\" htmlFor={id}>\n {this.label}\n </label>\n </ic-typography>\n </div>\n {isSlotUsed(this.host, \"additional-field\") && (\n <div\n class=\"dynamic-container\"\n ref={(el) => (this.additionalFieldContainer = el)}\n >\n {this.additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {this.additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\" aria-live=\"polite\">\n {this.dynamicText}\n </p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n this.additionalFieldDisplay === \"static\",\n }}\n >\n <slot name=\"additional-field\"></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as i,h as t,H as e,g as o,c as s}from"./p-f9370be6.js";import{a as n}from"./p-6f57b13c.js";import{s as a}from"./p-ae6aa67f.js";import{i as r,a as c}from"./p-23831891.js";import{C as l}from"./p-1e7b4310.js";import{c as h}from"./p-ec26fc38.js";const d="ic-input-component-container{display:flex;border:1px solid var(--border-color, var(--ic-architectural-400));border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-slow);height:40px;width:var(--input-width, 320px);padding:1px;background-color:var(--ic-architectural-white);box-sizing:border-box;position:relative;fill:var(--ic-architectural-400);outline:none}ic-input-component-container.fullwidth{width:100%}ic-input-component-container.disabled,ic-input-component-container.disabled:hover{border:1px dashed var(--ic-architectural-200)}ic-input-component-container.readonly,ic-input-component-container.readonly:hover{border:none;padding:0}ic-input-component-container.error{border:var(--ic-space-xxxs) solid var(--ic-status-error);padding:0}ic-input-component-container.warning{border:var(--ic-space-xxxs) solid var(--ic-status-warning-mid);padding:0}ic-input-component-container.success{border:var(--ic-space-xxxs) solid var(--ic-status-success);padding:0}ic-input-component-container.small{height:var(--ic-space-xl)}ic-input-component-container.multiline{height:auto}ic-input-component-container .icon-container{margin-top:var(--ic-space-xxs);margin-left:7px;display:flex;align-items:center}ic-input-component-container.multiline .icon-container,ic-input-component-container.multiline.small .icon-container{margin-top:6px;display:block}ic-input-component-container.readonly .icon-container{margin-left:-5px}ic-input-component-container.disabled ::-moz-placeholder{display:none}ic-input-component-container.disabled ::placeholder{display:none}ic-input-component-container .inline-success{margin:var(--ic-space-xs) 6px;display:flex;align-items:center}ic-input-component-container.dark:hover{--border-color:var(--ic-architectural-400)}ic-input-component-container .inline-success>svg{fill:var(--ic-status-success)}ic-input-component-container:hover{border-color:var(--ic-action-dark-hover);color:var(--ic-action-dark-hover);--expand-icon-hover:var(--ic-action-dark-hover)}.focus-indicator{display:flex;width:100%;margin:-2px;padding:2px;border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast)}.focus-indicator:focus-within,.focus-indicator-enabled{box-shadow:var(--ic-border-focus)}.focus-indicator.dark:focus-within{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){ic-input-component-container,.focus-indicator{transition:none}ic-input-component-container:focus-within{border:1px solid Highlight;outline:2px solid Highlight}ic-input-component-container.disabled,ic-input-component-container.disabled:hover{border:1px dashed GrayText}}";const p=class{constructor(t){i(this,t);this.disabled=false;this.readonly=false;this.validationStatus="";this.small=false;this.multiLine=false;this.validationInline=false;this.dark=false;this.fullWidth=false}render(){const{small:i,validationStatus:o,disabled:s,readonly:c,multiLine:l,fullWidth:h,dark:d,validationInline:p}=this;const u=this.validationStatus!==""&&!this.disabled&&!this.readonly?true:false;return t(e,{class:{["small"]:i,[o]:u,["disabled"]:s,["readonly"]:c,["multiline"]:l,["fullwidth"]:h,["dark"]:d}},t("div",{class:{"focus-indicator":true,dark:d}},r(this.host,"left-icon")&&t("div",{class:{["icon-container"]:true}},t("slot",{name:"left-icon"})),t("slot",null),p&&o===n.Success&&t("span",{class:{["inline-success"]:true},innerHTML:a})))}get host(){return o(this)}};p.style=d;const u="ic-input-container .component-container{display:flex;flex-direction:column;position:relative}";const f=class{constructor(t){i(this,t);this.disabled=false;this.readonly=false}render(){return t(e,null,t("div",{class:{["component-container"]:true,["disabled"]:this.disabled,["readonly"]:this.readonly}},t("slot",null)))}};f.style=u;const b='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){:host([open]) .menu{transition:max-height var(--ic-transition-duration-slow)}}:host{border-radius:var(--ic-border-radius);max-height:0;width:var(--input-width, 320px);color:var(--ic-color-primary-text);background-color:var(--ic-architectural-white);position:relative;z-index:var(--ic-z-index-popup-menu);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay)}:host(:not(.no-focus):focus-within){box-shadow:var(--ic-border-focus)}.menu{text-decoration:none;list-style-type:none;border:1px solid var(--ic-architectural-400);border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);visibility:hidden;max-height:0;overflow-y:hidden}.menu-scroll{overflow-y:auto}.menu:focus-visible{outline:none}:host([open]){max-height:none;display:block}:host([open]) .menu{visibility:visible;max-height:322px}:host(.full-width){width:100%}.option{padding:8px 7px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}:host([small]) .option{padding:4px 7px}.option:last-child{border-radius:0 0 1px 1px}.option:first-child{border-radius:1px 1px 0 0}.option:not(.disabled-option):hover{background-color:var(--ic-action-dark-bg-hover)}.option:not(.disabled-option):active{background-color:var(--ic-action-dark-bg-active)}.option:focus-visible{outline:var(--ic-hc-focus-outline)}.option:not(.disabled-option) .option-description{color:var(--ic-color-secondary-text)}.option-text-container{pointer-events:none}.check-icon{height:24px;margin-left:8px;pointer-events:none}.focused-option .check-icon *{fill:currentcolor}.option-group-title{padding:24px 7px 8px;color:var(--ic-color-tertiary-text)}:host([small]) .option-group-title{padding:12px 7px 4px}.last-recommended-option{border-bottom:1px solid var(--ic-architectural-400)}.disabled-option{color:var(--ic-architectural-200);cursor:default;pointer-events:none}.focused-option,.focused-option .option-description{background-color:var(--ic-focus-blue) !important;color:var(--ic-color-white-text) !important}:host(.no-results) li{cursor:no-drop}:host(.no-results) li:hover{background-color:transparent}@media (forced-colors: active){.focused-option:focus{outline:none;border:2px solid transparent}}';const m=class{constructor(e){i(this,e);this.optionSelect=s(this,"optionSelect",7);this.menuChange=s(this,"menuChange",7);this.menuOptionId=s(this,"menuOptionId",7);this.ungroupedOptions=[];this.preventClickOpen=false;this.handleMenuChange=(i,t)=>{if(!i)this.popperInstance.destroy();this.menuChange.emit({open:i,focusInput:t});if(!i&&t!==false){this.inputEl.focus();this.preventClickOpen=false}};this.setNextOptionValue=i=>{if(this.ungroupedOptions[i+1]){this.optionSelect.emit({value:this.ungroupedOptions[i+1].value,optionId:this.getOptionId(this.ungroupedOptions[i+1].value)})}else{this.optionSelect.emit({value:this.ungroupedOptions[0].value,optionId:this.getOptionId(this.ungroupedOptions[0].value)})}};this.setPreviousOptionValue=i=>{if(this.ungroupedOptions[i-1]){this.optionSelect.emit({value:this.ungroupedOptions[i-1].value,optionId:this.getOptionId(this.ungroupedOptions[i-1].value)})}else{this.optionSelect.emit({value:this.ungroupedOptions[this.ungroupedOptions.length-1].value,optionId:this.getOptionId(this.ungroupedOptions[this.ungroupedOptions.length-1].value)})}};this.arrowBehaviour=i=>{i.preventDefault();this.handleMenuChange(true)};this.setHighlightedOption=i=>{this.optionHighlighted=this.options[i].value||undefined};this.autoSetInputValueKeyboardOpen=i=>{var t;const e=this.ungroupedOptions.findIndex((i=>i.value===this.value));const o=((t=this.inputEl)===null||t===void 0?void 0:t.tagName)==="INPUT";switch(i.key){case"ArrowDown":this.keyboardNav=true;this.arrowBehaviour(i);this.setNextOptionValue(e);break;case"ArrowUp":this.keyboardNav=true;this.arrowBehaviour(i);this.setPreviousOptionValue(e);break;case" ":case"Enter":if(i.target.id!=="clear-button"){this.handleMenuChange(true)}break;case"Backspace":if(o){this.inputEl.focus()}break;default:if(o&&i.key!=="Tab"){this.inputEl.focus()}break}};this.manSetInputValueKeyboardOpen=i=>{const t=this.options.findIndex((i=>i.value===this.optionHighlighted));const e=i=>Array.from(this.host.shadowRoot.querySelectorAll("li"))[i].id;const o=this.parentEl.tagName==="IC-SEARCH-BAR";switch(i.key){case"ArrowDown":this.arrowBehaviour(i);if(t<this.options.length-1){this.setHighlightedOption(t+1);this.menuOptionId.emit({optionId:e(t+1)})}else{this.setHighlightedOption(0);this.menuOptionId.emit({optionId:e(0)})}this.preventIncorrectTabOrder=false;this.focusFromSearchKeypress=false;break;case"ArrowUp":this.arrowBehaviour(i);if(t<=0||t>this.options.length+1){this.setHighlightedOption(this.options.length-1);this.menuOptionId.emit({optionId:e(this.options.length-1)})}else{this.setHighlightedOption(t-1);this.menuOptionId.emit({optionId:e(t-1)})}this.preventIncorrectTabOrder=false;this.focusFromSearchKeypress=false;break;case"Enter":i.preventDefault();this.setInputValue(t);break;case"Escape":this.handleMenuChange(false);this.menuOptionId.emit({optionId:undefined});break;case"Shift":case"Tab":this.preventIncorrectTabOrder=true;break;case"Backspace":if(o){this.parentEl.setFocus();this.focusFromSearchKeypress=true;this.setHighlightedOption(0)}break;default:if(o&&i.key!=="Tab"){this.parentEl.setFocus();this.focusFromSearchKeypress=true;this.setHighlightedOption(0)}break}};this.setInputValue=i=>{var t;if(this.options[i]){this.optionSelect.emit({value:(t=this.options[i])===null||t===void 0?void 0:t.value});this.optionHighlighted=undefined;this.menuOptionId.emit({optionId:undefined})}this.handleMenuChange(false)};this.handleOptionClick=i=>{const{value:t,label:e}=i.target.dataset;this.optionSelect.emit({value:t,label:e});this.handleMenuChange(false)};this.handleBlur=i=>{if(i.relatedTarget!==this.inputEl){if(!this.menu.contains(i.relatedTarget)){this.handleMenuChange(false,false)}}else{this.handleMenuChange(false);this.preventClickOpen=true}};this.handleMenuKeyDown=i=>{if(this.activationType==="automatic"){this.autoSetValueOnMenuKeyDown(i)}};this.autoSetValueOnMenuKeyDown=i=>{i.cancelBubble=true;const t=this.ungroupedOptions.findIndex((i=>i.value===this.value));const e=this.inputEl.tagName==="INPUT";switch(i.key){case"ArrowUp":i.preventDefault();this.setPreviousOptionValue(t);this.keyboardNav=true;break;case"ArrowDown":i.preventDefault();this.setNextOptionValue(t);this.keyboardNav=true;break;case"Home":this.optionSelect.emit({value:this.ungroupedOptions[0].value});this.keyboardNav=true;break;case"End":this.optionSelect.emit({value:this.ungroupedOptions[this.ungroupedOptions.length-1].value});this.keyboardNav=true;break;case" ":case"Enter":case"Escape":this.handleMenuChange(false);break;case"Backspace":if(e){this.inputEl.focus()}break;case"Shift":break;default:if(e&&i.key!=="Tab"){this.inputEl.focus()}break}};this.handleMenuKeyUp=i=>{if(i.key==="Tab"&&i.shiftKey){this.preventClickOpen=false}};this.getOptionId=i=>`${this.menuId}-${i}`;this.getOptionAriaLabel=(i,t)=>{let e=i.label;if(i.description){e=`${e}, ${i.description}`}if(t){return`${e}, ${t.label} group`}else{return e}};this.getSortedOptions=i=>i.sort(((i,t)=>i.recommended&&!t.recommended?-1:0));this.isManualMode=this.activationType==="manual";this.scrollToSelected=i=>{const t=i.querySelector(".option[aria-selected]");if(t){const e=t.offsetTop+t.offsetHeight;if(e>i.scrollTop+i.offsetHeight||e<i.scrollTop+i.offsetHeight){i.scrollTop=t.offsetTop}t.focus()}};this.loadUngroupedOptions=()=>{if(this.options.length>0){this.options.map((i=>{if(i.children){i.children.map((i=>!i.disabled&&this.ungroupedOptions.push(i)))}else if(!i.disabled){this.ungroupedOptions.push(i)}}))}this.ungroupedOptions=this.getSortedOptions(this.ungroupedOptions)};this.displayOption=(i,e,o)=>{const{open:s,value:n}=this;return t("li",{id:this.getOptionId(i.value),class:{option:true,"focused-option":this.isManualMode?(this.keyboardNav||this.initialOptionsListRender)&&i.value===this.optionHighlighted:this.keyboardNav&&i.value===n,"last-recommended-option":i.recommended&&this.options[e+1]&&!this.options[e+1].recommended,"disabled-option":i.disabled},role:"option",tabindex:s&&(i.value===n||i.value===this.optionHighlighted)&&this.keyboardNav?"0":"-1","aria-label":this.getOptionAriaLabel(i,o),"aria-selected":i.value===n,"aria-disabled":i.disabled?"true":"false",onClick:this.handleOptionClick,onBlur:this.handleBlur,onMouseDown:i=>i.preventDefault(),"data-value":i.value,"data-label":i.label},t("div",{class:"option-text-container"},t("ic-typography",{variant:"body","aria-hidden":"true"},t("p",null,i.label)),i.description&&t("ic-typography",{id:`${this.getOptionId(i.value)}-description`,class:"option-description",variant:"caption","aria-hidden":"true"},t("p",null,i.description))),i.value===n&&this.parentEl.tagName!=="IC-SEARCH-BAR"&&t("span",{class:"check-icon",innerHTML:l}))};this.open=undefined;this.options=undefined;this.small=false;this.menuId=undefined;this.value=undefined;this.activationType="automatic";this.inputEl=undefined;this.parentEl=undefined;this.inputLabel=undefined;this.anchorEl=undefined;this.fullWidth=false;this.autoFocusOnSelected=true;this.keyboardNav=false;this.optionHighlighted=undefined;this.focusFromSearchKeypress=false;this.initialOptionsListRender=false;this.preventIncorrectTabOrder=false}watchOptionsHandler(){this.ungroupedOptions=[];this.loadUngroupedOptions()}handleClearListener(){this.optionHighlighted=""}handleSubmitSearch(){const i=this.options.findIndex((i=>i.value===this.optionHighlighted));this.setInputValue(i)}async handleClickOpen(){if(!this.preventClickOpen){this.menuChange.emit({open:!this.open});this.keyboardNav=false}this.preventClickOpen=false}async handleKeyboardOpen(i){this.keyboardNav=false;if(this.activationType==="automatic"){this.autoSetInputValueKeyboardOpen(i)}else{this.keyboardNav=true;this.manSetInputValueKeyboardOpen(i)}}async handleSetFirstOption(){this.setHighlightedOption(0)}connectedCallback(){var i;if(((i=this.parentEl)===null||i===void 0?void 0:i.tagName)==="IC-SEARCH-BAR"){this.setHighlightedOption(0);this.initialOptionsListRender=true}}componentWillLoad(){this.loadUngroupedOptions()}componentDidLoad(){let i=0;this.host.shadowRoot.querySelectorAll(".option").forEach((t=>i+=t.clientHeight));if(i>320){this.menu.classList.add("menu-scroll")}c([{prop:this.open,propName:"open"},{prop:this.options,propName:"options"},{prop:this.menuId,propName:"menu-id"},{prop:this.inputLabel,propName:"input-label"}],"Menu")}componentDidRender(){if(this.open){this.popperInstance=h(this.anchorEl,this.host,{placement:"bottom",modifiers:[{name:"offset",options:{offset:[0,7]}},{name:"flip",options:{fallbackPlacements:["top"],rootBoundary:"viewport"}}]})}}componentDidUpdate(){const i=this.options.some((i=>i.value===this.value));const t=this.optionHighlighted!==null&&this.optionHighlighted!==undefined&&this.optionHighlighted!=="";if(this.open&&this.options.length!==0){if(this.value&&this.keyboardNav&&i&&this.autoFocusOnSelected){this.scrollToSelected(this.menu)}else if(this.inputEl.tagName!=="IC-TEXT-FIELD"&&this.inputEl.tagName!=="INPUT"){this.menu.focus()}else if(t&&!this.focusFromSearchKeypress&&!this.preventIncorrectTabOrder){const i=this.host.shadowRoot.querySelector(`li[data-value="${this.optionHighlighted}"]`);if(i){i.focus()}}}}render(){var i,o;const{inputLabel:s,options:n,menuId:a,value:r,fullWidth:c}=this;return t(e,{class:{"full-width":c,"no-focus":((i=this.inputEl)===null||i===void 0?void 0:i.tagName)==="INPUT"}},n.length!==0&&t("ul",{id:a,class:"menu",role:"listbox","aria-label":s,"aria-activedescendant":r!=null&&r!==""?this.getOptionId(r):"",tabindex:open&&!this.keyboardNav&&((o=this.inputEl)===null||o===void 0?void 0:o.tagName)!=="INPUT"?"0":"-1",ref:i=>this.menu=i,onKeyDown:this.handleMenuKeyDown,onKeyUp:this.handleMenuKeyUp,onBlur:this.handleBlur},this.getSortedOptions(n).map(((i,e)=>{if(i.children){if(i.children.length>0){return t("div",null,t("ic-typography",{class:"option-group-title",role:"presentation",variant:"subtitle-small"},t("p",null,i.label)),i.children.map((t=>this.displayOption(t,e,i))))}else{return null}}else{return this.displayOption(i,e)}}))))}get host(){return o(this)}static get watchers(){return{options:["watchOptionsHandler"]}}};m.style=b;export{p as ic_input_component_container,f as ic_input_container,m as ic_menu};
2
- //# sourceMappingURL=p-88b15005.entry.js.map