@ukic/canary-web-components 3.0.0-canary.30 → 3.0.0-canary.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/date-helpers-d7ee7b45.js.map +1 -1
  3. package/dist/cjs/{helpers-da852478.js → helpers-6f4b406b.js} +20 -20
  4. package/dist/cjs/helpers-6f4b406b.js.map +1 -0
  5. package/dist/cjs/ic-button_3.cjs.entry.js +5 -5
  6. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-calendar_2.cjs.entry.js +2354 -0
  8. package/dist/cjs/ic-calendar_2.cjs.entry.js.map +1 -0
  9. package/dist/cjs/ic-card-horizontal.cjs.entry.js +6 -6
  10. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  12. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-checkbox_3.cjs.entry.js +39 -16
  14. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +4 -4
  20. package/dist/cjs/ic-data-table.cjs.entry.js +8 -8
  21. package/dist/cjs/ic-date-picker.cjs.entry.js +98 -854
  22. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  26. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-hero.cjs.entry.js +11 -6
  28. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  30. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +10 -10
  32. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-layout-grid-item.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  36. package/dist/cjs/ic-layout-grid.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-menu.cjs.entry.js +3 -3
  42. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
  46. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-page-header.cjs.entry.js +6 -6
  48. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-pagination_4.cjs.entry.js +18 -18
  50. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js +4 -4
  52. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-radio-group.cjs.entry.js +4 -4
  54. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-radio-option.cjs.entry.js +4 -4
  56. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-search-bar.cjs.entry.js +9 -9
  58. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  60. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -4
  62. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  66. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-step.cjs.entry.js +13 -13
  70. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  72. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-switch.cjs.entry.js +4 -4
  74. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  78. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  80. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-table-of-contents.cjs.entry.js +4 -4
  82. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  83. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-time-input.cjs.entry.js +5 -5
  85. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  87. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  89. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +2 -2
  91. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
  93. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tree-item.cjs.entry.js +3 -3
  95. package/dist/cjs/ic-tree-view.cjs.entry.js +4 -4
  96. package/dist/cjs/index-d337cd8a.js +4 -4
  97. package/dist/cjs/loader.cjs.js +1 -1
  98. package/dist/collection/collection-manifest.json +1 -0
  99. package/dist/collection/components/ic-calendar/ic-calendar.css +910 -0
  100. package/dist/collection/components/ic-calendar/ic-calendar.js +1542 -0
  101. package/dist/collection/components/ic-calendar/ic-calendar.js.map +1 -0
  102. package/dist/collection/components/ic-calendar/ic-calendar.stories.js +295 -0
  103. package/dist/collection/components/ic-calendar/ic-calendar.stories.js.map +1 -0
  104. package/dist/collection/components/ic-calendar/ic-day-button.js.map +1 -0
  105. package/dist/collection/components/ic-calendar/ic-month-picker.js +35 -0
  106. package/dist/collection/components/ic-calendar/ic-month-picker.js.map +1 -0
  107. package/dist/collection/components/ic-calendar/ic-year-picker.js +57 -0
  108. package/dist/collection/components/ic-calendar/ic-year-picker.js.map +1 -0
  109. package/dist/collection/components/ic-calendar/test/a11y/ic-calendar.test.a11y.js +13 -0
  110. package/dist/collection/components/ic-calendar/test/a11y/ic-calendar.test.a11y.js.map +1 -0
  111. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +6 -6
  112. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -1
  113. package/dist/collection/components/ic-data-table/ic-data-table.js +7 -7
  114. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +3 -3
  115. package/dist/collection/components/ic-date-input/ic-date-input.js +8 -7
  116. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  117. package/dist/collection/components/ic-date-picker/ic-date-picker.css +7 -405
  118. package/dist/collection/components/ic-date-picker/ic-date-picker.js +145 -802
  119. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  120. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js +110 -0
  121. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js.map +1 -1
  122. package/dist/collection/components/ic-date-picker/story-data.js +5 -1
  123. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
  124. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +7 -7
  125. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  126. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js +3 -3
  127. package/dist/collection/components/ic-time-input/ic-time-input.js +9 -8
  128. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  129. package/dist/collection/components/ic-tree-item/ic-tree-item.js +2 -2
  130. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -3
  131. package/dist/collection/utils/date-helpers.js +3 -0
  132. package/dist/collection/utils/date-helpers.js.map +1 -1
  133. package/dist/collection/utils/types.js.map +1 -1
  134. package/dist/{esm/date-helpers-2b531c8c.js → components/date-helpers.js} +2 -2
  135. package/dist/components/date-helpers.js.map +1 -0
  136. package/dist/components/helpers2.js +20 -20
  137. package/dist/components/helpers2.js.map +1 -1
  138. package/dist/components/ic-calendar.d.ts +11 -0
  139. package/dist/components/ic-calendar.js +8 -0
  140. package/dist/components/ic-calendar.js.map +1 -0
  141. package/dist/components/ic-calendar2.js +1235 -0
  142. package/dist/components/ic-calendar2.js.map +1 -0
  143. package/dist/components/ic-card-horizontal.js +6 -6
  144. package/dist/components/ic-card-horizontal.js.map +1 -1
  145. package/dist/components/ic-checkbox-group.js +2 -2
  146. package/dist/components/ic-checkbox-group.js.map +1 -1
  147. package/dist/components/ic-checkbox2.js +31 -8
  148. package/dist/components/ic-checkbox2.js.map +1 -1
  149. package/dist/components/ic-data-list.js +2 -2
  150. package/dist/components/ic-data-list.js.map +1 -1
  151. package/dist/components/ic-data-row.js +2 -2
  152. package/dist/components/ic-data-row.js.map +1 -1
  153. package/dist/components/ic-data-table-title-bar.js +3 -3
  154. package/dist/components/ic-data-table.js +8 -8
  155. package/dist/components/ic-date-input2.js +6 -88
  156. package/dist/components/ic-date-input2.js.map +1 -1
  157. package/dist/components/ic-date-picker.js +113 -880
  158. package/dist/components/ic-date-picker.js.map +1 -1
  159. package/dist/components/ic-dialog.js +1 -1
  160. package/dist/components/ic-dialog.js.map +1 -1
  161. package/dist/components/ic-empty-state2.js +2 -2
  162. package/dist/components/ic-empty-state2.js.map +1 -1
  163. package/dist/components/ic-footer-link.js +2 -2
  164. package/dist/components/ic-footer-link.js.map +1 -1
  165. package/dist/components/ic-hero.js +12 -6
  166. package/dist/components/ic-hero.js.map +1 -1
  167. package/dist/components/ic-horizontal-scroll2.js +5 -5
  168. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  169. package/dist/components/ic-input-component-container2.js +3 -3
  170. package/dist/components/ic-input-component-container2.js.map +1 -1
  171. package/dist/components/ic-input-container2.js +2 -2
  172. package/dist/components/ic-input-container2.js.map +1 -1
  173. package/dist/components/ic-input-label2.js +2 -2
  174. package/dist/components/ic-input-label2.js.map +1 -1
  175. package/dist/components/ic-input-validation2.js +3 -3
  176. package/dist/components/ic-input-validation2.js.map +1 -1
  177. package/dist/components/ic-layout-grid-item.js +2 -2
  178. package/dist/components/ic-layout-grid-item.js.map +1 -1
  179. package/dist/components/ic-layout-grid.js +2 -2
  180. package/dist/components/ic-layout-grid.js.map +1 -1
  181. package/dist/components/ic-link2.js +1 -1
  182. package/dist/components/ic-link2.js.map +1 -1
  183. package/dist/components/ic-loading-indicator2.js +5 -5
  184. package/dist/components/ic-loading-indicator2.js.map +1 -1
  185. package/dist/components/ic-menu-group.js +1 -1
  186. package/dist/components/ic-menu-group.js.map +1 -1
  187. package/dist/components/ic-menu2.js +3 -3
  188. package/dist/components/ic-menu2.js.map +1 -1
  189. package/dist/components/ic-navigation-group.js +1 -1
  190. package/dist/components/ic-navigation-group.js.map +1 -1
  191. package/dist/components/ic-navigation-menu2.js +4 -4
  192. package/dist/components/ic-navigation-menu2.js.map +1 -1
  193. package/dist/components/ic-page-header.js +6 -6
  194. package/dist/components/ic-page-header.js.map +1 -1
  195. package/dist/components/ic-pagination-bar2.js +6 -6
  196. package/dist/components/ic-pagination-bar2.js.map +1 -1
  197. package/dist/components/ic-pagination-item2.js +1 -1
  198. package/dist/components/ic-pagination-item2.js.map +1 -1
  199. package/dist/components/ic-pagination2.js +4 -4
  200. package/dist/components/ic-pagination2.js.map +1 -1
  201. package/dist/components/ic-popover-menu.js +4 -4
  202. package/dist/components/ic-popover-menu.js.map +1 -1
  203. package/dist/components/ic-radio-group.js +4 -4
  204. package/dist/components/ic-radio-group.js.map +1 -1
  205. package/dist/components/ic-radio-option.js +4 -4
  206. package/dist/components/ic-radio-option.js.map +1 -1
  207. package/dist/components/ic-search-bar.js +9 -9
  208. package/dist/components/ic-search-bar.js.map +1 -1
  209. package/dist/components/ic-section-container2.js +2 -2
  210. package/dist/components/ic-section-container2.js.map +1 -1
  211. package/dist/components/ic-select2.js +7 -7
  212. package/dist/components/ic-select2.js.map +1 -1
  213. package/dist/components/ic-side-navigation.js +4 -4
  214. package/dist/components/ic-side-navigation.js.map +1 -1
  215. package/dist/components/ic-skeleton.js +2 -2
  216. package/dist/components/ic-skeleton.js.map +1 -1
  217. package/dist/components/ic-skip-link.js +2 -2
  218. package/dist/components/ic-skip-link.js.map +1 -1
  219. package/dist/components/ic-status-tag.js +2 -2
  220. package/dist/components/ic-status-tag.js.map +1 -1
  221. package/dist/components/ic-step.js +13 -13
  222. package/dist/components/ic-step.js.map +1 -1
  223. package/dist/components/ic-stepper.js +2 -2
  224. package/dist/components/ic-stepper.js.map +1 -1
  225. package/dist/components/ic-switch.js +4 -4
  226. package/dist/components/ic-switch.js.map +1 -1
  227. package/dist/components/ic-tab-context.js +1 -1
  228. package/dist/components/ic-tab-context.js.map +1 -1
  229. package/dist/components/ic-tab-group.js +2 -2
  230. package/dist/components/ic-tab-group.js.map +1 -1
  231. package/dist/components/ic-tab-panel.js +2 -2
  232. package/dist/components/ic-tab-panel.js.map +1 -1
  233. package/dist/components/ic-table-of-contents.js +3 -3
  234. package/dist/components/ic-text-field2.js +6 -6
  235. package/dist/components/ic-text-field2.js.map +1 -1
  236. package/dist/components/ic-theme.js +1 -1
  237. package/dist/components/ic-theme.js.map +1 -1
  238. package/dist/components/ic-time-input.js +5 -5
  239. package/dist/components/ic-time-input.js.map +1 -1
  240. package/dist/components/ic-toast-region.js +1 -1
  241. package/dist/components/ic-toast-region.js.map +1 -1
  242. package/dist/components/ic-toast.js +4 -4
  243. package/dist/components/ic-toast.js.map +1 -1
  244. package/dist/components/ic-toggle-button-group.js +2 -2
  245. package/dist/components/ic-toggle-button-group.js.map +1 -1
  246. package/dist/components/ic-toggle-button.js +2 -2
  247. package/dist/components/ic-toggle-button.js.map +1 -1
  248. package/dist/components/ic-tree-item.js +3 -3
  249. package/dist/components/ic-tree-view.js +4 -4
  250. package/dist/core/core.css +21 -9
  251. package/dist/core/core.esm.js +1 -1
  252. package/dist/core/core.esm.js.map +1 -1
  253. package/dist/core/{p-9fade6ad.entry.js → p-0043b019.entry.js} +2 -2
  254. package/dist/core/{p-9fade6ad.entry.js.map → p-0043b019.entry.js.map} +1 -1
  255. package/dist/core/{p-889bb8db.entry.js → p-04cb17d7.entry.js} +2 -2
  256. package/dist/core/{p-889bb8db.entry.js.map → p-04cb17d7.entry.js.map} +1 -1
  257. package/dist/core/{p-5ef453b6.entry.js → p-15c05eb8.entry.js} +2 -2
  258. package/dist/core/{p-5ef453b6.entry.js.map → p-15c05eb8.entry.js.map} +1 -1
  259. package/dist/core/p-1a976789.entry.js +2 -0
  260. package/dist/core/p-1a976789.entry.js.map +1 -0
  261. package/dist/core/{p-1be092cc.entry.js → p-2188b483.entry.js} +2 -2
  262. package/dist/core/{p-1be092cc.entry.js.map → p-2188b483.entry.js.map} +1 -1
  263. package/dist/core/{p-8c94541e.entry.js → p-24bac55f.entry.js} +2 -2
  264. package/dist/core/{p-8c94541e.entry.js.map → p-24bac55f.entry.js.map} +1 -1
  265. package/dist/core/{p-7f304d85.entry.js → p-2646a629.entry.js} +2 -2
  266. package/dist/core/{p-7f304d85.entry.js.map → p-2646a629.entry.js.map} +1 -1
  267. package/dist/core/{p-5cf704e3.entry.js → p-319e3d5b.entry.js} +2 -2
  268. package/dist/core/{p-5cf704e3.entry.js.map → p-319e3d5b.entry.js.map} +1 -1
  269. package/dist/core/{p-9e200827.entry.js → p-31f3fb15.entry.js} +2 -2
  270. package/dist/core/{p-9e200827.entry.js.map → p-31f3fb15.entry.js.map} +1 -1
  271. package/dist/core/{p-fd64c0e5.entry.js → p-3891ce53.entry.js} +2 -2
  272. package/dist/core/{p-fd64c0e5.entry.js.map → p-3891ce53.entry.js.map} +1 -1
  273. package/dist/core/{p-fad44bc8.entry.js → p-3ba2b455.entry.js} +2 -2
  274. package/dist/core/{p-fad44bc8.entry.js.map → p-3ba2b455.entry.js.map} +1 -1
  275. package/dist/core/{p-df220b91.entry.js → p-3ef2e98d.entry.js} +2 -2
  276. package/dist/core/{p-03ae0bc3.entry.js → p-41def410.entry.js} +2 -2
  277. package/dist/core/{p-03ae0bc3.entry.js.map → p-41def410.entry.js.map} +1 -1
  278. package/dist/core/p-4b188516.entry.js +2 -0
  279. package/dist/core/p-4b188516.entry.js.map +1 -0
  280. package/dist/core/{p-93e1ba0a.entry.js → p-5254a078.entry.js} +2 -2
  281. package/dist/core/{p-93e1ba0a.entry.js.map → p-5254a078.entry.js.map} +1 -1
  282. package/dist/core/{p-9c2e9189.entry.js → p-53740194.entry.js} +2 -2
  283. package/dist/core/{p-9c2e9189.entry.js.map → p-53740194.entry.js.map} +1 -1
  284. package/dist/core/{p-e380a54e.entry.js → p-5a4344cb.entry.js} +2 -2
  285. package/dist/core/{p-e380a54e.entry.js.map → p-5a4344cb.entry.js.map} +1 -1
  286. package/dist/core/p-5b32aaf3.entry.js +2 -0
  287. package/dist/core/p-5b32aaf3.entry.js.map +1 -0
  288. package/dist/core/{p-d8200098.entry.js → p-67c3985d.entry.js} +2 -2
  289. package/dist/core/{p-d8200098.entry.js.map → p-67c3985d.entry.js.map} +1 -1
  290. package/dist/core/{p-982a173d.entry.js → p-7332320d.entry.js} +2 -2
  291. package/dist/core/{p-982a173d.entry.js.map → p-7332320d.entry.js.map} +1 -1
  292. package/dist/core/{p-bc441e4c.js → p-75c3b882.js} +2 -2
  293. package/dist/core/{p-bc441e4c.js.map → p-75c3b882.js.map} +1 -1
  294. package/dist/core/{p-b88db5e3.entry.js → p-7a0f62c2.entry.js} +2 -2
  295. package/dist/core/{p-b88db5e3.entry.js.map → p-7a0f62c2.entry.js.map} +1 -1
  296. package/dist/core/p-81f12581.entry.js +2 -0
  297. package/dist/core/p-81f12581.entry.js.map +1 -0
  298. package/dist/core/{p-193afb53.entry.js → p-847cbb16.entry.js} +2 -2
  299. package/dist/core/{p-193afb53.entry.js.map → p-847cbb16.entry.js.map} +1 -1
  300. package/dist/core/{p-f3ccaa0b.entry.js → p-8e592393.entry.js} +2 -2
  301. package/dist/core/{p-f3ccaa0b.entry.js.map → p-8e592393.entry.js.map} +1 -1
  302. package/dist/core/p-9044539c.entry.js +2 -0
  303. package/dist/core/p-9044539c.entry.js.map +1 -0
  304. package/dist/core/{p-f4e7cae6.entry.js → p-90611726.entry.js} +2 -2
  305. package/dist/core/{p-f4e7cae6.entry.js.map → p-90611726.entry.js.map} +1 -1
  306. package/dist/core/{p-b00efb15.entry.js → p-9674b63f.entry.js} +2 -2
  307. package/dist/core/{p-b00efb15.entry.js.map → p-9674b63f.entry.js.map} +1 -1
  308. package/dist/core/{p-a27e1cee.entry.js → p-9a95f428.entry.js} +2 -2
  309. package/dist/core/{p-a27e1cee.entry.js.map → p-9a95f428.entry.js.map} +1 -1
  310. package/dist/core/{p-fb43abd6.entry.js → p-9ca147f3.entry.js} +2 -2
  311. package/dist/core/{p-fb43abd6.entry.js.map → p-9ca147f3.entry.js.map} +1 -1
  312. package/dist/core/{p-a8cc28a6.entry.js → p-9f76eed6.entry.js} +2 -2
  313. package/dist/core/{p-035dbee0.entry.js → p-a1448064.entry.js} +2 -2
  314. package/dist/core/{p-035dbee0.entry.js.map → p-a1448064.entry.js.map} +1 -1
  315. package/dist/core/{p-9ce9d39a.entry.js → p-a237af88.entry.js} +2 -2
  316. package/dist/core/{p-9ce9d39a.entry.js.map → p-a237af88.entry.js.map} +1 -1
  317. package/dist/core/{p-09c31ac6.entry.js → p-adde6c66.entry.js} +2 -2
  318. package/dist/core/{p-09c31ac6.entry.js.map → p-adde6c66.entry.js.map} +1 -1
  319. package/dist/core/{p-72b7051a.entry.js → p-af821831.entry.js} +2 -2
  320. package/dist/core/{p-72b7051a.entry.js.map → p-af821831.entry.js.map} +1 -1
  321. package/dist/core/{p-12e8dcdd.entry.js → p-afedcfdb.entry.js} +2 -2
  322. package/dist/core/{p-12e8dcdd.entry.js.map → p-afedcfdb.entry.js.map} +1 -1
  323. package/dist/core/{p-f098e531.entry.js → p-b4a2f6fa.entry.js} +2 -2
  324. package/dist/core/{p-f098e531.entry.js.map → p-b4a2f6fa.entry.js.map} +1 -1
  325. package/dist/core/p-b4bfaf8f.entry.js +2 -0
  326. package/dist/core/p-b4bfaf8f.entry.js.map +1 -0
  327. package/dist/core/{p-ea1de762.entry.js → p-b80b08ae.entry.js} +2 -2
  328. package/dist/core/p-b80b08ae.entry.js.map +1 -0
  329. package/dist/core/{p-7bf9bbde.entry.js → p-ba21f477.entry.js} +2 -2
  330. package/dist/core/{p-7bf9bbde.entry.js.map → p-ba21f477.entry.js.map} +1 -1
  331. package/dist/core/{p-63203e59.entry.js → p-ba75ed34.entry.js} +2 -2
  332. package/dist/core/{p-63203e59.entry.js.map → p-ba75ed34.entry.js.map} +1 -1
  333. package/dist/core/{p-15a81f32.entry.js → p-bd9a76d8.entry.js} +2 -2
  334. package/dist/core/{p-15a81f32.entry.js.map → p-bd9a76d8.entry.js.map} +1 -1
  335. package/dist/core/{p-10950727.entry.js → p-c3eddb99.entry.js} +2 -2
  336. package/dist/core/{p-10950727.entry.js.map → p-c3eddb99.entry.js.map} +1 -1
  337. package/dist/core/{p-a99ad459.entry.js → p-c5d65718.entry.js} +2 -2
  338. package/dist/core/{p-a99ad459.entry.js.map → p-c5d65718.entry.js.map} +1 -1
  339. package/dist/core/{p-eb958cc8.entry.js → p-c6c87e58.entry.js} +2 -2
  340. package/dist/core/{p-eb958cc8.entry.js.map → p-c6c87e58.entry.js.map} +1 -1
  341. package/dist/core/{p-c8ce7d60.entry.js → p-e00e67ff.entry.js} +2 -2
  342. package/dist/core/{p-c8ce7d60.entry.js.map → p-e00e67ff.entry.js.map} +1 -1
  343. package/dist/core/{p-069e758b.entry.js → p-e1920777.entry.js} +2 -2
  344. package/dist/core/{p-92936b49.entry.js → p-ef5b6622.entry.js} +2 -2
  345. package/dist/core/{p-0f22f41e.js → p-f48ce5f6.js} +2 -2
  346. package/dist/core/p-f48ce5f6.js.map +1 -0
  347. package/dist/core/{p-1ca62941.entry.js → p-f5cea10d.entry.js} +2 -2
  348. package/dist/esm/core.js +1 -1
  349. package/dist/esm/date-helpers-5723de08.js +86 -0
  350. package/dist/esm/{date-helpers-2b531c8c.js.map → date-helpers-5723de08.js.map} +1 -1
  351. package/dist/esm/{helpers-89cb996d.js → helpers-9f228880.js} +21 -21
  352. package/dist/esm/helpers-9f228880.js.map +1 -0
  353. package/dist/esm/ic-button_3.entry.js +5 -5
  354. package/dist/esm/ic-button_3.entry.js.map +1 -1
  355. package/dist/esm/ic-calendar_2.entry.js +2349 -0
  356. package/dist/esm/ic-calendar_2.entry.js.map +1 -0
  357. package/dist/esm/ic-card-horizontal.entry.js +6 -6
  358. package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
  359. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  360. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  361. package/dist/esm/ic-checkbox_3.entry.js +39 -16
  362. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  363. package/dist/esm/ic-data-list.entry.js +2 -2
  364. package/dist/esm/ic-data-list.entry.js.map +1 -1
  365. package/dist/esm/ic-data-row.entry.js +2 -2
  366. package/dist/esm/ic-data-row.entry.js.map +1 -1
  367. package/dist/esm/ic-data-table-title-bar.entry.js +4 -4
  368. package/dist/esm/ic-data-table.entry.js +8 -8
  369. package/dist/esm/ic-date-picker.entry.js +100 -856
  370. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  371. package/dist/esm/ic-dialog.entry.js +1 -1
  372. package/dist/esm/ic-dialog.entry.js.map +1 -1
  373. package/dist/esm/ic-footer-link.entry.js +2 -2
  374. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  375. package/dist/esm/ic-hero.entry.js +11 -6
  376. package/dist/esm/ic-hero.entry.js.map +1 -1
  377. package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
  378. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  379. package/dist/esm/ic-input-component-container_4.entry.js +10 -10
  380. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  381. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  382. package/dist/esm/ic-layout-grid-item.entry.js.map +1 -1
  383. package/dist/esm/ic-layout-grid.entry.js +2 -2
  384. package/dist/esm/ic-layout-grid.entry.js.map +1 -1
  385. package/dist/esm/ic-link.entry.js +1 -1
  386. package/dist/esm/ic-link.entry.js.map +1 -1
  387. package/dist/esm/ic-menu-group.entry.js +1 -1
  388. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  389. package/dist/esm/ic-menu.entry.js +3 -3
  390. package/dist/esm/ic-menu.entry.js.map +1 -1
  391. package/dist/esm/ic-navigation-group.entry.js +1 -1
  392. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  393. package/dist/esm/ic-navigation-menu.entry.js +4 -4
  394. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  395. package/dist/esm/ic-page-header.entry.js +6 -6
  396. package/dist/esm/ic-page-header.entry.js.map +1 -1
  397. package/dist/esm/ic-pagination_4.entry.js +18 -18
  398. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  399. package/dist/esm/ic-popover-menu.entry.js +4 -4
  400. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  401. package/dist/esm/ic-radio-group.entry.js +4 -4
  402. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  403. package/dist/esm/ic-radio-option.entry.js +4 -4
  404. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  405. package/dist/esm/ic-search-bar.entry.js +9 -9
  406. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  407. package/dist/esm/ic-section-container.entry.js +2 -2
  408. package/dist/esm/ic-section-container.entry.js.map +1 -1
  409. package/dist/esm/ic-side-navigation.entry.js +4 -4
  410. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  411. package/dist/esm/ic-skeleton.entry.js +2 -2
  412. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  413. package/dist/esm/ic-skip-link.entry.js +2 -2
  414. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  415. package/dist/esm/ic-status-tag.entry.js +2 -2
  416. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  417. package/dist/esm/ic-step.entry.js +13 -13
  418. package/dist/esm/ic-step.entry.js.map +1 -1
  419. package/dist/esm/ic-stepper.entry.js +2 -2
  420. package/dist/esm/ic-stepper.entry.js.map +1 -1
  421. package/dist/esm/ic-switch.entry.js +4 -4
  422. package/dist/esm/ic-switch.entry.js.map +1 -1
  423. package/dist/esm/ic-tab-context.entry.js +1 -1
  424. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  425. package/dist/esm/ic-tab-group.entry.js +2 -2
  426. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  427. package/dist/esm/ic-tab-panel.entry.js +2 -2
  428. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  429. package/dist/esm/ic-table-of-contents.entry.js +4 -4
  430. package/dist/esm/ic-theme.entry.js +1 -1
  431. package/dist/esm/ic-theme.entry.js.map +1 -1
  432. package/dist/esm/ic-time-input.entry.js +5 -5
  433. package/dist/esm/ic-time-input.entry.js.map +1 -1
  434. package/dist/esm/ic-toast-region.entry.js +1 -1
  435. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  436. package/dist/esm/ic-toast.entry.js +4 -4
  437. package/dist/esm/ic-toast.entry.js.map +1 -1
  438. package/dist/esm/ic-toggle-button-group.entry.js +2 -2
  439. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  440. package/dist/esm/ic-toggle-button.entry.js +2 -2
  441. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  442. package/dist/esm/ic-tree-item.entry.js +3 -3
  443. package/dist/esm/ic-tree-view.entry.js +4 -4
  444. package/dist/esm/index-a7a720e7.js +4 -4
  445. package/dist/esm/loader.js +1 -1
  446. package/dist/types/components/ic-calendar/ic-calendar.d.ts +216 -0
  447. package/dist/types/components/ic-calendar/ic-calendar.stories.d.ts +151 -0
  448. package/dist/types/components/ic-calendar/test/a11y/ic-calendar.test.a11y.d.ts +1 -0
  449. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +1 -2
  450. package/dist/types/components/ic-date-input/ic-date-input.d.ts +2 -2
  451. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +22 -105
  452. package/dist/types/components/ic-date-picker/ic-date-picker.stories.d.ts +81 -0
  453. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +1 -1
  454. package/dist/types/components/ic-time-input/ic-time-input.d.ts +2 -2
  455. package/dist/types/components.d.ts +213 -14
  456. package/dist/types/utils/date-helpers.d.ts +1 -0
  457. package/dist/types/utils/types.d.ts +1 -0
  458. package/hydrate/index.js +2085 -1639
  459. package/hydrate/index.mjs +2085 -1639
  460. package/package.json +3 -3
  461. package/dist/cjs/helpers-da852478.js.map +0 -1
  462. package/dist/cjs/ic-date-input.cjs.entry.js +0 -1214
  463. package/dist/cjs/ic-date-input.cjs.entry.js.map +0 -1
  464. package/dist/collection/components/ic-date-picker/ic-day-button.js.map +0 -1
  465. package/dist/collection/components/ic-date-picker/ic-month-picker.js +0 -29
  466. package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +0 -1
  467. package/dist/collection/components/ic-date-picker/ic-year-picker.js +0 -39
  468. package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +0 -1
  469. package/dist/core/p-0f22f41e.js.map +0 -1
  470. package/dist/core/p-13c8859b.entry.js +0 -2
  471. package/dist/core/p-13c8859b.entry.js.map +0 -1
  472. package/dist/core/p-2528ecec.entry.js +0 -2
  473. package/dist/core/p-2528ecec.entry.js.map +0 -1
  474. package/dist/core/p-402870f7.entry.js +0 -2
  475. package/dist/core/p-402870f7.entry.js.map +0 -1
  476. package/dist/core/p-bd8c2e24.entry.js +0 -2
  477. package/dist/core/p-bd8c2e24.entry.js.map +0 -1
  478. package/dist/core/p-c0d4db72.entry.js +0 -2
  479. package/dist/core/p-c0d4db72.entry.js.map +0 -1
  480. package/dist/core/p-ea1de762.entry.js.map +0 -1
  481. package/dist/core/p-f16c4210.entry.js +0 -2
  482. package/dist/core/p-f16c4210.entry.js.map +0 -1
  483. package/dist/esm/helpers-89cb996d.js.map +0 -1
  484. package/dist/esm/ic-date-input.entry.js +0 -1210
  485. package/dist/esm/ic-date-input.entry.js.map +0 -1
  486. /package/dist/collection/components/{ic-date-picker → ic-calendar}/ic-day-button.js +0 -0
  487. /package/dist/core/{p-df220b91.entry.js.map → p-3ef2e98d.entry.js.map} +0 -0
  488. /package/dist/core/{p-a8cc28a6.entry.js.map → p-9f76eed6.entry.js.map} +0 -0
  489. /package/dist/core/{p-069e758b.entry.js.map → p-e1920777.entry.js.map} +0 -0
  490. /package/dist/core/{p-92936b49.entry.js.map → p-ef5b6622.entry.js.map} +0 -0
  491. /package/dist/core/{p-1ca62941.entry.js.map → p-f5cea10d.entry.js.map} +0 -0
  492. /package/dist/types/components/{ic-date-picker → ic-calendar}/ic-day-button.d.ts +0 -0
  493. /package/dist/types/components/{ic-date-picker → ic-calendar}/ic-month-picker.d.ts +0 -0
  494. /package/dist/types/components/{ic-date-picker → ic-calendar}/ic-year-picker.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"file":"ic-calendar2.js","mappings":"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","names":[],"sources":["src/components/ic-calendar/ic-day-button.tsx","src/components/ic-calendar/ic-month-picker.tsx","src/components/ic-calendar/ic-year-picker.tsx","src/components/ic-calendar/ic-calendar.css?tag=ic-calendar&encapsulation=shadow","src/components/ic-calendar/ic-calendar.tsx"],"sourcesContent":["import { h, FunctionalComponent } from \"@stencil/core\";\nimport { stringEnumToArray } from \"../../utils/helpers\";\nimport { IcDayNames, IcDateInputMonths } from \"../../utils/types\";\n\nexport type DayButtonProps = {\n focussed: boolean;\n today: boolean;\n day: Date;\n monthInView: number;\n onFocusDay: () => void;\n onBlurDay: () => void;\n onSelectDay: (day: Date) => void;\n selected: boolean;\n focussedDayRef?: (element: HTMLButtonElement) => void;\n inRange: boolean;\n showDaysOutsideMonth?: boolean;\n disableDay?: boolean;\n};\n\nexport const DayButton: FunctionalComponent<DayButtonProps> = ({\n focussed,\n today,\n day,\n monthInView,\n onFocusDay,\n onBlurDay,\n onSelectDay,\n selected,\n focussedDayRef,\n inRange,\n showDaysOutsideMonth,\n disableDay,\n}) => {\n const handleDayClick = (): void => {\n onSelectDay(day);\n };\n\n const handleDayFocus = (): void => {\n onFocusDay();\n };\n\n const handleDayBlur = (): void => {\n onBlurDay();\n };\n\n const dayNames = stringEnumToArray(IcDayNames);\n const months = stringEnumToArray(IcDateInputMonths);\n const outsideRange = !inRange || disableDay;\n const outsideMonth = monthInView !== day.getMonth();\n const disabled = outsideRange || (outsideMonth && !showDaysOutsideMonth);\n\n return (\n <div class=\"day-button-container\">\n <button\n class={{\n \"day-button\": true,\n \"outside-month\": outsideMonth,\n \"outside-range\": !!outsideRange,\n hidden: outsideMonth && !showDaysOutsideMonth,\n disabled: disabled,\n today: today,\n selected: selected,\n focussed: focussed,\n }}\n tabIndex={focussed ? 0 : -1}\n aria-hidden={outsideMonth ? \"true\" : \"false\"}\n aria-disabled={disabled ? \"true\" : \"false\"}\n aria-current={today ? \"date\" : undefined}\n aria-label={\n disabled || outsideMonth || outsideRange\n ? undefined\n : `Choose ${dayNames[day.getDay()]}, ${day.getDate()} ${\n months[day.getMonth()]\n } ${day.getFullYear()}`\n }\n disabled={disabled}\n onClick={handleDayClick}\n onBlur={handleDayBlur}\n onFocus={handleDayFocus}\n ref={(el) => {\n if (focussed && el && focussedDayRef) {\n focussedDayRef(el);\n }\n }}\n >\n {(!outsideMonth || (outsideMonth && showDaysOutsideMonth)) && (\n <ic-typography variant=\"subtitle-small\" italic={outsideMonth}>\n {day.getDate()}\n </ic-typography>\n )}\n </button>\n </div>\n );\n};\n","import { h, FunctionalComponent } from \"@stencil/core\";\nimport {\n dateInRange,\n getMonthStart,\n getMonthEnd,\n} from \"../../utils/date-helpers\";\nimport { stringEnumToArray } from \"../../utils/helpers\";\nimport { IcSizes, IcDateInputMonths } from \"../../utils/types\";\n\nexport type MonthPickerProps = {\n focussedMonth: number;\n monthInView: number;\n yearInView: number;\n onSelectMonth: (month: number) => void;\n onKeyDown: (ev: KeyboardEvent) => void;\n focussedMonthRef: (element: HTMLIcButtonElement) => void;\n minDate: Date | null;\n maxDate: Date | null;\n size?: IcSizes;\n};\n\nexport const MonthPicker: FunctionalComponent<MonthPickerProps> = ({\n size,\n focussedMonth,\n monthInView,\n onSelectMonth,\n onKeyDown,\n focussedMonthRef,\n minDate,\n maxDate,\n yearInView,\n}) => {\n const handleMonthClick = (ev: MouseEvent): void => {\n const button = ev.target as HTMLElement;\n onSelectMonth(Number(button.getAttribute(\"data-month\")));\n };\n\n const monthNames = stringEnumToArray(IcDateInputMonths);\n\n const cols = size === \"small\" ? 2 : 3;\n const months: string[][] = [];\n for (let i = 0; i < monthNames.length; i += cols) {\n months.push(monthNames.slice(i, i + cols));\n }\n\n return (\n <div\n class={{\n \"month-picker\": true,\n }}\n role=\"grid\"\n >\n {months.map((month, monthIdx) => (\n <div class=\"month-picker-row\" key={monthIdx} role=\"row\">\n {month.map((mon, index) => {\n const correctedIndex = monthIdx * cols + index;\n const current = monthInView === correctedIndex;\n const focussed = focussedMonth === correctedIndex;\n const outsideRange = !dateInRange(\n new Date(yearInView, correctedIndex, 1),\n minDate ? getMonthStart(minDate) : null,\n maxDate ? getMonthEnd(maxDate) : null\n );\n return (\n <ic-button\n role=\"gridcell\"\n class={{\n \"month-button\": true,\n selected: current,\n focussed: focussed,\n disabled: outsideRange,\n }}\n full-width\n disabled={outsideRange}\n variant={current ? \"primary\" : \"tertiary\"}\n data-month={correctedIndex}\n size={size}\n tabIndex={focussed ? 0 : -1}\n aria-current={current ? \"true\" : \"false\"}\n aria-label={current ? \"\" : `select ${mon}`}\n onClick={handleMonthClick}\n onKeyDown={onKeyDown}\n ref={(el?: HTMLIcButtonElement) => {\n if (focussed && el) {\n focussedMonthRef(el);\n }\n }}\n >\n {mon}\n </ic-button>\n );\n })}\n </div>\n ))}\n </div>\n );\n};\n","import { h, FunctionalComponent } from \"@stencil/core\";\nimport { yearInRange } from \"../../utils/date-helpers\";\nimport { IcSizes } from \"../../utils/types\";\n\nexport type YearPickerProps = {\n decadeView: number[];\n focussedYear: number;\n yearInView: number;\n onSelectYear: (year: number) => void;\n onKeyDown: (ev: KeyboardEvent) => void;\n onFocusYear: () => void;\n onBlurYear: () => void;\n minDate: Date | null;\n maxDate: Date | null;\n focussedYearRef: (element: HTMLIcButtonElement) => void;\n size?: IcSizes;\n};\n\nexport const YearPicker: FunctionalComponent<YearPickerProps> = ({\n decadeView,\n size,\n focussedYear,\n yearInView,\n onSelectYear,\n onFocusYear,\n onBlurYear,\n onKeyDown,\n minDate,\n maxDate,\n focussedYearRef,\n}) => {\n const handleYearClick = (ev: MouseEvent): void => {\n const button = ev.target as HTMLElement;\n onSelectYear(Number(button.getAttribute(\"data-year\")));\n };\n\n const handleYearFocus = (): void => {\n onFocusYear();\n };\n\n const handleYearBlur = (): void => {\n onBlurYear();\n };\n\n const navButtonMouseDownHandler = (ev: MouseEvent): void => {\n ev.preventDefault();\n };\n\n const cols = size === \"small\" ? 2 : 3;\n const rows = size === \"small\" ? 6 : 4;\n\n const thisDecade: number[][] = [];\n for (let i = 0; i < decadeView.length; i += cols) {\n thisDecade.push(decadeView.slice(i, i + cols));\n }\n\n const renderYearButton = (yr: number, yearIdx: number, idx: number) => {\n const isPrevDecade = yearIdx === 0 && idx === 0;\n const isNextDecade = yearIdx === rows - 1 && idx === cols - 1;\n const isCurrent = yearInView === yr;\n const isFocussed = focussedYear === yr;\n\n return (\n <ic-button\n key={yr}\n role=\"gridcell\"\n id={\n isPrevDecade\n ? \"prev-decade-button\"\n : isNextDecade\n ? \"next-decade-button\"\n : undefined\n }\n class={{\n \"prev-decade\": isPrevDecade,\n \"next-decade\": isNextDecade,\n \"year-button\": true,\n selected: !isPrevDecade && !isNextDecade ? isCurrent : false,\n focussed: !isPrevDecade && !isNextDecade ? isFocussed : false,\n flip: isNextDecade,\n }}\n full-width\n disabled={!yearInRange(yr, minDate, maxDate)}\n data-year={yr}\n tabIndex={isPrevDecade || isNextDecade ? -1 : isFocussed ? 0 : -1}\n variant={\n isPrevDecade || isNextDecade\n ? \"tertiary\"\n : isCurrent\n ? \"primary\"\n : \"tertiary\"\n }\n onClick={handleYearClick}\n onMouseDown={\n isPrevDecade || isNextDecade ? navButtonMouseDownHandler : undefined\n }\n size={size}\n aria-label={\n !isPrevDecade && !isNextDecade\n ? isCurrent\n ? \"\"\n : `select ${yr}`\n : undefined\n }\n aria-current={\n !isPrevDecade && !isNextDecade\n ? isCurrent\n ? \"true\"\n : \"false\"\n : undefined\n }\n onKeyDown={!isPrevDecade && !isNextDecade ? onKeyDown : undefined}\n onFocus={!isPrevDecade && !isNextDecade ? handleYearFocus : undefined}\n onBlur={!isPrevDecade && !isNextDecade ? handleYearBlur : undefined}\n ref={\n !isPrevDecade && !isNextDecade && isFocussed\n ? (el: HTMLIcButtonElement | undefined) => el && focussedYearRef(el)\n : undefined\n }\n >\n {isPrevDecade ? `${yr - 9}s` : isNextDecade ? `${yr}s` : yr}\n {(isPrevDecade || isNextDecade) && (\n <svg\n slot={isPrevDecade ? \"left-icon\" : \"right-icon\"}\n width=\"12\"\n height=\"12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"\n fill=\"currentColor\"\n />\n </svg>\n )}\n </ic-button>\n );\n };\n\n return (\n <div class=\"year-picker\" role=\"grid\">\n {thisDecade.map((years, yearIdx) => (\n <div class=\"year-picker-row\" role=\"row\" key={yearIdx}>\n {years.map((yr, idx) => renderYearButton(yr, yearIdx, idx))}\n </div>\n ))}\n </div>\n );\n};\n","@import \"../../global/normalize.css\";\n\n/**\n*\n @prop --ic-z-index-calendar: z-index of calendar.\n*/\n:host(.ic-date-picker-above) .calendar-container {\n bottom: calc(var(--ic-space-xxl) - var(--ic-space-xxs));\n}\n\n:host(.ic-date-picker-calendar) .calendar-container {\n box-shadow: var(--ic-calendar-elevation);\n}\n\n:host .calendar-container {\n min-width: 19rem;\n max-width: 23.5rem;\n width: var(--input-width);\n display: flex;\n flex-direction: column;\n gap: var(--ic-space-xs);\n position: absolute;\n border: var(--ic-border-default);\n border-color: var(--ic-calendar-border);\n border-radius: var(--ic-border-radius);\n align-items: center;\n background-color: var(--ic-calendar-bg);\n z-index: var(--ic-z-index-calendar);\n box-sizing: border-box;\n margin-top: var(--ic-space-xxxs);\n padding: var(--ic-space-xs);\n animation: fade-in-calendar var(--ic-transition-duration-slow);\n}\n\n:host(.ic-calendar-small) .calendar-container {\n min-width: 17rem;\n max-width: 21.5rem;\n}\n\n:host(.ic-calendar-large) .calendar-container {\n min-width: 21rem;\n max-width: 25.5rem;\n}\n\n:host(.ic-calendar-large) {\n --month-button-width: 6.3125rem;\n}\n\n:host(.ic-calendar-small) {\n --month-button-width: 6.25rem;\n}\n\n:host .month-year-nav-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n}\n\n:host .month-year-nav-container.hidden {\n display: none;\n}\n\n:host .month-year-nav {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex: 1 0 0;\n}\n\n:host .month-picker,\n:host .year-picker {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 17.5rem;\n column-gap: var(--ic-space-xs);\n row-gap: var(--ic-space-xxs);\n}\n\n:host(.ic-calendar-small) .month-picker,\n:host(.ic-calendar-small) .year-picker {\n width: 13.125rem;\n}\n\n:host(.ic-calendar-large) .month-picker,\n:host(.ic-calendar-large) .year-picker {\n width: 20rem;\n}\n\n:host .month-picker .month-picker-row,\n:host .year-picker .year-picker-row {\n display: inline-grid;\n grid-template-columns: repeat(3, minmax(0px, 1fr));\n width: 100%;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-calendar-small) .month-picker .month-picker-row,\n:host(.ic-calendar-small) .year-picker .year-picker-row {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n:host .month-picker-button,\n:host .year-picker-button {\n width: 5rem;\n\n --min-width: 5rem;\n}\n\n:host .month-button,\n:host .year-button {\n width: var(--month-button-width);\n}\n\n:host .month-button.focussed,\n:host .year-button.focussed {\n z-index: 1;\n}\n\n:host .month-button::part(button),\n:host .year-button::part(button) {\n min-width: var(--month-button-width);\n padding: var(--ic-space-xs) auto;\n}\n\n:host .prev-decade.year-button svg {\n margin-right: calc(-1 * var(--ic-space-xs));\n --icon-width: var(--ic-space-md);\n --icon-height: var(--ic-space-md);\n}\n\n:host(.ic-calendar-small) .prev-decade.year-button svg {\n margin-right: calc(-1 * calc(var(--ic-space-md) + var(--ic-space-1px)));\n}\n\n:host(.ic-calendar-large) .prev-decade.year-button svg {\n margin-right: calc(-1 * calc(var(--ic-space-md) + var(--ic-space-xxs)));\n}\n\n:host .prev-decade.year-button::part(button) {\n padding-left: 0;\n padding-right: var(--ic-space-lg);\n gap: var(--ic-space-xxxs);\n display: inline-grid;\n grid-template-columns: 1.5rem 1fr;\n}\n\n:host(.ic-calendar-small) .prev-decade.year-button::part(button) {\n padding-left: 0;\n padding-right: calc(var(--ic-space-lg) + var(--ic-space-xxs));\n}\n\n:host .next-decade.year-button svg {\n margin-left: calc(-1 * var(--ic-space-lg));\n --icon-width: var(--ic-space-md);\n --icon-height: var(--ic-space-md);\n}\n\n:host(.ic-calendar-small) .next-decade.year-button svg,\n:host(.ic-calendar-large) .next-decade.year-button svg {\n margin-left: calc(\n -1 * (var(--ic-space-lg) + var(--ic-space-xs) + var(--ic-space-1px))\n );\n}\n\n:host .next-decade.year-button::part(button) {\n padding-right: 0;\n padding-left: var(--ic-space-lg);\n gap: var(--ic-space-xxxs);\n display: inline-grid;\n grid-template-columns: 1fr 1.5rem;\n}\n\n:host(.ic-calendar-small) .next-decade.year-button::part(button),\n:host(.ic-calendar-large) .next-decade.year-button::part(button) {\n padding-left: calc(var(--ic-space-xl) - var(--ic-space-xxs));\n}\n\n:host .bottom-buttons {\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n animation: fade-in-buttons var(--ic-transition-duration-slow);\n}\n\n:host .bottom-buttons.no-today {\n align-items: flex-end;\n flex-direction: column;\n}\n\n:host .bottom-buttons.hidden {\n display: none;\n}\n\n:host .calendar {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width: 15.75rem;\n animation: fade-in-buttons var(--ic-transition-duration-slow);\n}\n\n:host(.ic-calendar-large) .calendar {\n width: 19.25rem;\n}\n\n:host(.ic-calendar-small) .calendar {\n padding-bottom: var(--ic-space-xxs);\n width: 14rem;\n}\n\n:host .hidden {\n display: none;\n}\n\n:host .weekdays-container {\n display: flex;\n align-self: stretch;\n}\n\n:host .weekdays {\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: var(--ic-space-xs);\n}\n\n:host .calendar-days-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n row-gap: var(--ic-space-xs);\n padding: var(--ic-space-xxs) 0;\n min-height: 16rem;\n align-content: flex-start;\n}\n\n:host(.ic-calendar-small) .calendar-days-container {\n padding: var(--ic-space-xxxs) 0;\n min-height: 14.5rem;\n}\n\n:host(.ic-calendar-large) .calendar-days-container {\n padding: var(--ic-space-xs) 0;\n min-height: 17.5rem;\n}\n\n:host .calendar-days-container tr {\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n border-spacing: 0;\n}\n\n:host .calendar-day-header {\n display: flex;\n width: 2rem;\n padding: var(--ic-space-xxs) 0;\n justify-content: center;\n align-items: center;\n color: var(--ic-typography-color, var(--ic-color-text-primary));\n --ic-typography-color: var(--ic-calendar-label);\n text-align: center;\n font: var(--ic-font-caption);\n letter-spacing: var(--ic-font-letter-spacing-0pt0025);\n}\n\n:host(.ic-calendar-large) .calendar-day-header {\n padding: var(--ic-space-xxs);\n}\n\n:host .day-button-container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 2.25rem;\n height: 2.25rem;\n}\n\n:host(.ic-calendar-small) .day-button-container {\n width: 2rem;\n height: 2rem;\n}\n\n:host(.ic-calendar-large) .day-button-container {\n width: 2.5rem;\n height: 2.5rem;\n}\n\n:host .day-button {\n display: flex;\n position: relative;\n justify-content: center;\n align-items: center;\n border: 0;\n border-radius: 2rem;\n background-color: var(--ic-calendar-bg);\n width: 2rem;\n height: 2rem;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n z-index: 0;\n}\n\n:host .day-button.disabled {\n cursor: default;\n}\n\n:host(.ic-calendar-large) .day-button {\n width: 2.25rem;\n height: 2.25rem;\n}\n\n:host(.ic-calendar-small) .day-button {\n width: 1.75rem;\n height: 1.75rem;\n}\n\n:host .day-button ic-typography {\n width: 1.75rem;\n\n --ic-typography-color: var(--ic-calendar-date-label-default);\n}\n\n:host .day-button.outside-range ic-typography {\n --ic-typography-color: var(--ic-calendar-date-label-disabled);\n}\n\n:host .day-button.outside-month ic-typography {\n font-weight: var(--ic-font-weight-regular) !important;\n}\n\n:host\n .day-button.outside-month:not(.outside-range):not(.selected)\n ic-typography {\n --ic-typography-color: var(--ic-calendar-date-label-default);\n}\n\n:host .day-button:hover:not(.disabled) {\n background-color: var(--ic-calendar-date-default-bg-hover);\n}\n\n:host .day-button:active:not(.disabled) {\n background-color: var(--ic-calendar-date-default-bg-pressed);\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host .day-button:hover:not(.disabled):not(.focussed),\n :host .day-button:active:not(.disabled):not(.focussed) {\n transition: background-color var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host .day-button.selected:not(.hidden) {\n background-color: var(--ic-calendar-date-active-bg-default);\n}\n\n:host .day-button.selected ic-typography {\n --ic-typography-color: var(--ic-calendar-date-label-selected);\n}\n\n:host .day-button.selected:not(.hidden):hover {\n background-color: var(--ic-calendar-date-active-bg-hover);\n}\n\n:host .day-button.selected:not(.hidden):active {\n background-color: var(--ic-calendar-date-active-bg-pressed);\n}\n\n:host .day-button.focussed {\n z-index: 1;\n}\n\n:host .day-button:focus {\n outline: none;\n}\n\n:host .day-button.focussed:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n:host .day-button.today:not(.hidden)::after {\n content: \"\";\n position: absolute;\n width: 0.875rem;\n height: 0.125rem;\n bottom: 0.4rem;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-calendar-default-underline);\n}\n\n:host(.ic-calendar-small) .day-button.today::after {\n bottom: 0.35rem;\n}\n\n:host(.ic-calendar-large) .day-button.today::after {\n width: 1rem;\n}\n\n:host .day-button.today.selected::after {\n background-color: var(--ic-calendar-selected-underline);\n}\n\n:host #select-month-hint,\n:host #select-year-hint {\n display: none;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host .calendar-container,\n :host .calendar,\n :host .bottom-buttons {\n animation: none;\n }\n}\n\n@keyframes fade-in-buttons {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fade-in-calendar {\n 0% {\n display: flex;\n max-height: 0;\n }\n\n 100% {\n display: flex;\n max-height: 600px;\n }\n}\n\n@media (forced-colors: active) {\n :host .day-button.today:not(.hidden)::after {\n background-color: highlight;\n }\n\n :host .day-button.selected:not(.hidden) {\n background-color: highlight;\n }\n\n :host .day-button.focussed:focus {\n border: var(--ic-border-hc);\n }\n\n :host .month-button.selected::part(button),\n :host .year-button.selected::part(button) {\n background-color: highlight;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method,\n} from \"@stencil/core\";\n\nimport {\n IcDateFormat,\n IcDateInputMonths,\n IcDateValueFormat,\n IcShortDayNames,\n IcSizes,\n IcThemeMode,\n IcWeekDays,\n} from \"../../utils/types\";\n\nimport {\n addSixWeeks,\n clampDate,\n convertToDoubleDigits,\n createDate,\n dateInRange,\n dateMatches,\n getMonthStart,\n getMonthEnd,\n getWeekStart,\n yearInRange,\n} from \"../../utils/date-helpers\";\n\nimport chevron from \"../../assets/chevron-icon.svg\";\n\nimport { DayButton } from \"./ic-day-button\";\nimport { MonthPicker } from \"./ic-month-picker\";\nimport { YearPicker } from \"./ic-year-picker\";\nimport { removeDisabledFalse, stringEnumToArray } from \"../../utils/helpers\";\n\nconst FOCUS_TIMER = 100;\n\n@Component({\n tag: \"ic-calendar\",\n styleUrl: \"ic-calendar.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Calendar {\n private clearButtonEl: HTMLIcButtonElement | undefined;\n private daysOfWeek: string[] = [];\n private dayButtonFocussed: boolean = false;\n private dayPickerKeyboardNav: boolean = false;\n private decadeStart: number;\n private decadeEnd: number;\n private dialogDescription: string = \"\";\n private focusDay: boolean = true;\n private focussedYearEl: HTMLIcButtonElement;\n private liveRegionEl?: HTMLElement = undefined;\n private monthButtonEl: HTMLIcButtonElement | undefined;\n private monthNames: string[] = [];\n private monthInViewUpdateHandled: boolean = false;\n private parentIsDatePicker: boolean = false;\n private today = new Date();\n private todayButtonEl: HTMLIcButtonElement | undefined;\n private yearButtonEl: HTMLIcButtonElement | undefined;\n private yearButtonFocussed: boolean = false;\n\n @Element() el: HTMLIcCalendarElement;\n\n @State() clearButtonClicked: boolean = false;\n @State() currMonthView: Date[] = [];\n @State() currYearPickerView: number[] = [];\n @State() decadeView: number[] = [];\n @State() focussedDate: Date | null = null;\n @State() focussedDay: number;\n @State() focussedDayEl: HTMLButtonElement;\n @State() focussedMonth: number;\n @State() focussedMonthEl: HTMLIcButtonElement;\n @State() focussedYear: number;\n @State() maxDate: Date | null = null;\n @State() minDate: Date | null = null;\n @State() monthInView: number;\n @State() monthPickerVisible: boolean = false;\n @State() orderedDaysOfWeek: string[] = [];\n @State() selectedDate: Date | null = null;\n @State() yearInView: number;\n @State() yearPickerVisible: boolean = false;\n\n /**\n * The format in which the date will be displayed.\n */\n @Prop() dateFormat: IcDateFormat = \"DD/MM/YYYY\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n if (this.disabled) {\n this.setSelectedDate(null);\n this.clearButtonEl?.disabled;\n this.todayButtonEl?.disabled;\n } else {\n this.setOpenAtDate();\n }\n }\n\n /**\n * The days of the week to disable.\n */\n @Prop() disableDays?: IcWeekDays[] = [];\n\n /**\n * If `true`, dates in the future are not allowed.\n */\n @Prop() disableFuture?: boolean = false;\n\n @Watch(\"disableFuture\")\n watchDisableFutureHandler(): void {\n this.watchMaxHandler();\n }\n\n /**\n * If `true`, dates in the past are not allowed.\n */\n @Prop() disablePast?: boolean = false;\n\n @Watch(\"disablePast\")\n watchDisablePastHandler(): void {\n this.watchMinHandler();\n }\n\n /**\n * The latest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disableFuture` is set to `true`.\n */\n @Prop() max: string | Date = \"\";\n @Watch(\"max\")\n watchMaxHandler(): void {\n if (this.disableFuture) {\n this.maxDate = new Date();\n } else {\n this.maxDate = createDate(this.max, this.dateFormat);\n }\n }\n\n /**\n * The earliest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disablePast` is set to `true`.\n */\n @Prop() min: string | Date = \"\";\n @Watch(\"min\")\n watchMinHandler(): void {\n if (this.disablePast) {\n this.minDate = new Date();\n } else {\n this.minDate = createDate(this.min, this.dateFormat);\n }\n }\n\n /**\n * The date visible when the calendar opens. Used if no date is currently selected.\n * The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n */\n @Prop() openAtDate: string | Date = \"\";\n\n /**\n * If `true`, the `Clear` button on the calendar will be visible.\n */\n @Prop() showClearButton?: boolean = true;\n\n /**\n * If `true`, days outside the current month will be visible in the calendar.\n */\n @Prop() showDaysOutsideMonth?: boolean = true;\n\n /**\n * If `true`, the `Go to today` button on the calendar will be visible.\n */\n @Prop() showTodayButton?: boolean = true;\n\n /**\n * The size of the calendar to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The first day of the week. `0` for Sunday, `1` for Monday, etc.\n * Default is Monday.\n */\n @Prop() startOfWeek: IcWeekDays = IcWeekDays.Monday;\n\n @Watch(\"startOfWeek\")\n watchStartOfWeekHandler(): void {\n this.orderedDaysOfWeek = this.daysOfWeek\n .slice(this.startOfWeek)\n .concat(this.daysOfWeek.slice(0, this.startOfWeek));\n this.updateMonthInView();\n }\n\n /**\n * Sets the calendar to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the calendar and the date visible when the calendar opens.\n * The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true, reflect: true }) value?: IcDateValueFormat = \"\";\n\n @Watch(\"value\")\n @Watch(\"openAtDate\")\n valueChanged(\n newValue: IcDateValueFormat,\n oldValue: IcDateValueFormat,\n propName?: string\n ): void {\n if (newValue !== oldValue && this.isValidDateValue(newValue)) {\n if (propName === \"value\") {\n this.value = newValue;\n }\n this.setOpenAtDate();\n }\n }\n\n @Watch(\"focussedDate\")\n watchFocussedDateHandler(current: Date, previous: Date): void {\n if (\n previous === null ||\n !(\n previous.getFullYear() === current.getFullYear() &&\n previous.getMonth() === current.getMonth()\n )\n ) {\n this.updateMonthInView();\n }\n }\n\n @Watch(\"monthInView\")\n watchMonthInViewHandler(): void {\n this.focussedMonth = this.monthInView;\n }\n\n @Watch(\"yearInView\")\n watchYearInViewHandler(): void {\n this.setFocussedYear(this.yearInView, false);\n }\n\n @Watch(\"yearPickerVisible\")\n watchYearPickerVisibleHandler(): void {\n if (!this.yearPickerVisible) {\n this.setFocussedYear(this.yearInView);\n }\n }\n\n @Watch(\"monthPickerVisible\")\n watchMonthPickerVisibleHandler(): void {\n if (!this.monthPickerVisible) {\n this.focussedMonth = this.monthInView;\n }\n }\n\n @Watch(\"focussedDayEl\")\n watchFocussedDayEl(): void {\n if (this.focusDay) {\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n }\n this.focusDay = true;\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{\n value: Date | null;\n dateObject: {\n day: string | null;\n month: string | null;\n year: string | null;\n };\n utcValue: Date | null;\n }>;\n\n /**\n * Emitted when the clear button has been clicked.\n */\n @Event() icCalendarClearButtonClick: EventEmitter<void>;\n\n /**\n * @internal Emitted when a day is selected.\n */\n @Event() icCalendarDaySelect: EventEmitter<void>;\n\n /**\n * Emitted when a month is selected.\n */\n @Event() icCalendarMonthSelect: EventEmitter<void>;\n\n /**\n * Emitted when a year is selected.\n */\n @Event() icCalendarYearSelect: EventEmitter<void>;\n\n componentWillLoad(): void {\n const root = this.el.getRootNode();\n this.parentIsDatePicker =\n root instanceof ShadowRoot && root.host?.tagName === \"IC-DATE-PICKER\";\n this.monthNames = stringEnumToArray(IcDateInputMonths);\n this.daysOfWeek = stringEnumToArray(IcShortDayNames);\n this.watchStartOfWeekHandler();\n this.watchMaxHandler();\n this.watchMinHandler();\n this.setOpenAtDate();\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * @internal Clears the dialog description used to provide more context for screen readers.\n */\n @Method()\n async clearDialogDescription(): Promise<void> {\n this.dialogDescription = \"\";\n }\n\n private isValidDateValue = (value: IcDateValueFormat): boolean => {\n if (value == null) return true;\n\n if (value instanceof Date) {\n return !isNaN(value.getTime());\n }\n\n if (typeof value !== \"string\") return false;\n\n const iso8601Regex =\n /^\\d{4}-\\d{2}-\\d{2}(?:[T\\s]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:?\\d{2})?)?$/;\n\n if (iso8601Regex.test(value)) {\n return !isNaN(Date.parse(value));\n }\n\n const [a, b, c] = value.split(\"/\").map(Number);\n if ([a, b, c].some(isNaN)) return false;\n let day: number, month: number, year: number;\n switch (this.dateFormat) {\n case \"DD/MM/YYYY\":\n [day, month, year] = [a, b, c];\n break;\n case \"MM/DD/YYYY\":\n [month, day, year] = [a, b, c];\n break;\n case \"YYYY/MM/DD\":\n [year, month, day] = [a, b, c];\n break;\n default:\n return false;\n }\n if (month < 1 || month > 12 || day < 1 || day > 31) return false;\n\n const date = new Date(year, month - 1, day);\n return (\n date.getFullYear() === year &&\n date.getMonth() === month - 1 &&\n date.getDate() === day\n );\n };\n\n private isPresent = (prop: IcDateValueFormat) =>\n prop !== \"\" && prop !== undefined && prop !== null;\n\n private setOpenAtDate = () => {\n let openAt: Date | null = null;\n if (this.disabled) {\n openAt = new Date();\n } else {\n if (this.clearButtonClicked) {\n openAt = this.focussedDate ? this.focussedDate : new Date();\n this.clearButtonClicked = false;\n } else {\n if (\n !this.disabled &&\n this.value != null &&\n this.isValidDateValue(this.value)\n ) {\n openAt = createDate(this.value, this.dateFormat);\n }\n\n if (!!openAt && dateInRange(openAt, this.minDate, this.maxDate)) {\n const selectedDay = openAt.getDay();\n\n if (\n !!this.disableDays &&\n this.disableDays.length > 0 &&\n typeof selectedDay == \"number\" &&\n this.disableDays.includes(selectedDay)\n ) {\n openAt = createDate(this.value ?? new Date(), this.dateFormat);\n this.setSelectedDate(null);\n } else {\n this.setSelectedDate(openAt);\n }\n } else if (this.isPresent(this.openAtDate)) {\n openAt = createDate(this.openAtDate, this.dateFormat);\n } else {\n openAt = new Date();\n }\n }\n }\n this.setFocussedDate(openAt);\n\n this.updateMonthInView();\n let dialogDesc = this.getMonthInViewText();\n if (this.selectedDate === null) {\n dialogDesc += \" No date selected.\";\n }\n dialogDesc += ` Use arrow keys to change day. Press enter or space to select a date${\n this.parentIsDatePicker ? \" or press escape to close the picker\" : \"\"\n }.`;\n\n this.dialogDescription = dialogDesc;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n };\n\n /* Refs & setters */\n private setFocussedDayEl = (element: HTMLButtonElement) => {\n this.focussedDayEl = element;\n };\n\n private setFocussedMonthEl = (element: HTMLIcButtonElement) => {\n this.focussedMonthEl = element;\n };\n\n private setFocussedYearEl = (element: HTMLIcButtonElement) => {\n this.focussedYearEl = element;\n };\n\n private setFocussedYear = (newYear: number, focus = true): void => {\n const prevYear = this.focussedYear;\n this.focussedYear = newYear;\n if (this.yearPickerVisible) {\n const newDecade = Math.floor(newYear / 10) * 10;\n const oldDecade = Math.floor(prevYear / 10) * 10;\n if (newDecade !== oldDecade) {\n this.setDecadeView(newDecade);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n if (focus) {\n setTimeout(() => {\n if (this.focussedYearEl !== null) this.focussedYearEl.setFocus();\n }, FOCUS_TIMER);\n }\n } else {\n this.setDecadeView(Math.floor(newYear / 10) * 10);\n }\n };\n\n private setFocussedDate = (d: Date): void => {\n this.focussedDate = clampDate(d, this.minDate, this.maxDate);\n };\n\n private setSelectedDate = (d: Date | null, emit = true): void => {\n if (d === null || !dateMatches(d, this.selectedDate)) {\n this.selectedDate = d;\n this.value = d;\n if (emit) {\n this.icChange.emit(this.setDateChangeEventDetail(d));\n }\n }\n };\n\n private setDateChangeEventDetail = (d: Date | null) => {\n let UTCDate = null;\n let day = null;\n let month = null;\n let year = null;\n if (d !== null) {\n UTCDate = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));\n day = convertToDoubleDigits(d.getDate());\n month = convertToDoubleDigits(d.getMonth() + 1);\n year = d.getFullYear().toString();\n }\n return {\n value: d,\n dateObject: {\n day: day === \"\" ? null : day,\n month: month === \"\" ? null : month,\n year: year === \"\" ? null : year,\n },\n utcValue: UTCDate,\n };\n };\n\n private setAriaLiveRegionText = (text: string) => {\n this.liveRegionEl && (this.liveRegionEl.innerText = text);\n };\n\n /* Navigation helpers */\n private goToPreviousMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(-1);\n };\n\n private goToNextMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(1);\n };\n\n private goToPreviousYear = (focusDay = false) => {\n if (this.isPrevYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(-1);\n }\n };\n\n private goToNextYear = (focusDay = false) => {\n if (this.isNextYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(1);\n }\n };\n\n private moveDays = (numDays: number): void => {\n if (this.focussedDate) {\n const d = new Date(this.focussedDate);\n d.setDate(d.getDate() + numDays);\n this.setFocussedDate(d);\n }\n };\n\n private moveMonths = (numMonths: number): void => {\n if (this.focussedDate) {\n const newMonth = this.focussedDate.getMonth() + numMonths;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setMonth(newMonth)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(new Date(this.focussedDate).setMonth(newMonth));\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n }\n };\n\n private moveYears = (numYears: number): void => {\n if (this.focussedDate) {\n const newYear = this.focussedDate.getFullYear() + numYears;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setFullYear(newYear)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(\n new Date(this.focussedDate).setFullYear(newYear)\n );\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n }\n };\n\n private updateFocussedMonth = (adjust: number): void => {\n const d = new Date(this.focussedYear, this.focussedMonth, 1);\n d.setMonth(this.focussedMonth + adjust);\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.focussedMonth = newDate.getMonth();\n setTimeout(() => this.focussedMonthEl.setFocus(), FOCUS_TIMER);\n };\n\n private updateFocussedYear = (adjust: number, focusYear = true): void => {\n const d = new Date(new Date().setFullYear(this.focussedYear + adjust));\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.setFocussedYear(newDate.getFullYear(), focusYear);\n };\n\n private getNextDayToFocus = (\n currDay: Date,\n forward: boolean,\n level = 1\n ): number => {\n const move = forward ? 1 : -1;\n const nextDay = new Date(currDay);\n nextDay.setDate(nextDay.getDate() + move);\n return this.disableDays?.includes(Number(nextDay.getDay()))\n ? this.getNextDayToFocus(nextDay, forward, level + 1)\n : level;\n };\n\n /* Focus helpers */\n private focusFirstElement = () => {\n this.monthButtonEl?.setFocus();\n };\n\n private focusLastElement = () => {\n if (\n this.showClearButton &&\n this.clearButtonEl &&\n !this.clearButtonEl.disabled\n ) {\n this.clearButtonEl.setFocus();\n } else if (\n this.showTodayButton &&\n this.todayButtonEl &&\n !this.todayButtonEl.disabled\n ) {\n this.todayButtonEl.setFocus();\n } else if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focussedDayEl.focus();\n }\n };\n\n private focusFocussedDay = () => {\n this.focussedDayEl.focus();\n };\n\n /* Click handlers */\n private monthButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.focusDay = false;\n this.monthPickerVisible = !this.monthPickerVisible;\n if (this.monthPickerVisible) {\n this.setAriaLiveRegionText(\"Month picker view open\");\n } else {\n this.setMonthSelectedLiveRegionText();\n this.icCalendarMonthSelect.emit();\n }\n };\n\n private yearButtonClickHandler = () => {\n this.monthPickerVisible = false;\n this.focusDay = false;\n this.yearPickerVisible = !this.yearPickerVisible;\n if (this.yearPickerVisible) {\n this.setAriaLiveRegionText(\n `Year picker view open. ${this.getDecadeInViewText()}`\n );\n } else {\n this.setYearSelectedLiveRegionText();\n this.icCalendarYearSelect.emit();\n }\n };\n\n private todayButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.monthPickerVisible = false;\n this.setFocussedDate(new Date());\n this.setAriaLiveRegionText(this.getMonthInViewText());\n\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n };\n\n private clearButtonClickHandler = () => {\n this.clearButtonClicked = true;\n this.selectedDate && this.setFocussedDate(this.selectedDate);\n this.setSelectedDate(null);\n this.icChange.emit(this.setDateChangeEventDetail(this.selectedDate));\n let text = \"Selected date cleared.\";\n if (!this.monthPickerVisible && !this.yearPickerVisible) {\n text += ` ${this.getMonthInViewText()}`;\n }\n if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focusFocussedDay();\n }\n this.setAriaLiveRegionText(text);\n };\n\n private monthYearNavClickHandler = (ev: Event): void => {\n const target = ev.target as Element;\n switch (target.id) {\n case \"previous-month-button\":\n this.goToPreviousMonth(this.dayButtonFocussed);\n break;\n\n case \"next-month-button\":\n this.goToNextMonth(this.dayButtonFocussed);\n break;\n\n case \"previous-year-button\":\n this.goToPreviousYear(this.dayButtonFocussed);\n break;\n\n case \"next-year-button\":\n this.goToNextYear(this.dayButtonFocussed);\n break;\n }\n };\n\n private handleCalendarClick = (event: MouseEvent): void => {\n this.clearDialogDescription();\n event.stopImmediatePropagation();\n };\n\n /* Keyboard handlers */\n private handleCalendarKeyDown = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowDown\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(7);\n break;\n\n case \"ArrowUp\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(-7);\n break;\n\n case \"ArrowLeft\":\n this.dayPickerKeyboardNav = true;\n if (this.focussedDate)\n this.moveDays(-1 * this.getNextDayToFocus(this.focussedDate, false));\n break;\n\n case \"ArrowRight\":\n this.dayPickerKeyboardNav = true;\n if (this.focussedDate)\n this.moveDays(this.getNextDayToFocus(this.focussedDate, true));\n break;\n\n case \"PageUp\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(-1) : this.moveMonths(-1);\n break;\n\n case \"PageDown\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(1) : this.moveMonths(1);\n break;\n\n case \"Home\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth, 1)\n );\n break;\n\n case \"End\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth + 1, 0)\n );\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n default:\n handled = false;\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private monthPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedMonth(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedMonth(1);\n break;\n\n case \"Home\":\n this.updateFocussedMonth(-this.focussedMonth);\n break;\n\n case \"End\":\n this.updateFocussedMonth(11 - this.focussedMonth);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.monthPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedYear(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedYear(1);\n break;\n\n case \"Home\":\n if (this.focussedYear > this.decadeStart) {\n this.updateFocussedYear(this.decadeStart - this.focussedYear);\n }\n break;\n\n case \"End\":\n if (this.focussedYear < this.decadeEnd) {\n this.updateFocussedYear(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n this.updateFocussedYear(-10);\n break;\n\n case \"PageDown\":\n this.updateFocussedYear(10);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.yearPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private monthButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousMonth();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextMonth();\n break;\n\n case \"Home\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(-this.monthInView);\n break;\n\n case \"End\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(11 - this.monthInView);\n break;\n\n case \"Tab\":\n if (ev.shiftKey) {\n handled = true;\n this.focusLastElement();\n }\n break;\n\n case \"Escape\":\n if (this.monthPickerVisible) {\n this.monthPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousYear();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextYear();\n break;\n\n case \"Home\":\n if (this.yearPickerVisible && this.yearInView > this.decadeStart) {\n handled = true;\n this.moveYears(this.decadeStart - this.yearInView);\n }\n break;\n\n case \"End\":\n if (this.yearPickerVisible && this.yearInView < this.decadeEnd) {\n handled = true;\n this.moveYears(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n handled = true;\n this.focusDay = false;\n this.moveYears(-10);\n break;\n\n case \"PageDown\":\n handled = true;\n this.focusDay = false;\n this.moveYears(10);\n break;\n\n case \"Escape\":\n if (this.yearPickerVisible) {\n this.yearPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private todayButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (\n ev.key === \"Tab\" &&\n !ev.shiftKey &&\n this.clearButtonEl?.disabled &&\n this.parentIsDatePicker\n ) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private clearButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (ev.key === \"Tab\" && !ev.shiftKey && this.parentIsDatePicker) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private calendarTabHandler = (ev: KeyboardEvent): boolean => {\n let handled = false;\n if (\n !ev.shiftKey &&\n (!this.showTodayButton || this.isCurrentMonth()) &&\n (!this.showClearButton || this.clearButtonEl?.disabled) &&\n this.parentIsDatePicker\n ) {\n this.focusFirstElement();\n handled = true;\n } else if (ev.shiftKey) {\n this.yearButtonEl?.setFocus();\n handled = true;\n }\n return handled;\n };\n\n /* Utility functions */\n private setMonthSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${\n this.monthNames[this.monthInView]\n } selected. ${this.getMonthInViewText()}`\n );\n };\n\n private setYearSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${this.yearInView} selected. ${this.getMonthInViewText()}`\n );\n };\n\n private setDecadeView = (start: number) => {\n let currYear = start - 1;\n const decadeArr = [];\n while (currYear <= start + 10) {\n decadeArr.push(currYear);\n currYear++;\n }\n this.decadeView = decadeArr;\n this.decadeStart = decadeArr[1];\n this.decadeEnd = decadeArr[10];\n };\n\n private getMonthInViewText = () => {\n return `${this.monthNames[this.monthInView]} ${\n this.yearInView\n } currently in view.`;\n };\n\n private getDecadeInViewText = () => {\n return `${this.decadeStart} to ${this.decadeEnd} currently in view.`;\n };\n\n private isPrevYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView - 1);\n };\n\n private isNextYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView + 1);\n };\n\n private isYearAllowed = (yr: number): boolean =>\n yearInRange(yr, this.minDate, this.maxDate);\n\n private getMonthView = (date: Date): Date[] => {\n const start = getWeekStart(getMonthStart(date), this.startOfWeek);\n const end = addSixWeeks(start);\n\n const days: Date[] = [];\n let current = start;\n\n while (!dateMatches(current, end)) {\n days.push(current);\n current = new Date(current);\n current.setDate(current.getDate() + 1);\n }\n\n days.push(current);\n\n return days;\n };\n\n private isCurrentMonth = (): boolean => {\n const d = new Date();\n return (\n d.getFullYear() === this.yearInView && d.getMonth() === this.monthInView\n );\n };\n\n private updateMonthInView = (): void => {\n if (this.focussedDate) {\n this.currMonthView = this.getMonthView(this.focussedDate);\n\n this.focussedDay = this.focussedDate.getDate();\n this.monthInView = this.focussedDate.getMonth();\n this.yearInView = this.focussedDate.getFullYear();\n\n if (this.dayPickerKeyboardNav) {\n this.monthInViewUpdateHandled = true;\n this.setAriaLiveRegionText(this.getMonthInViewText());\n this.dayPickerKeyboardNav = false;\n }\n }\n };\n\n /* Mouse handlers */\n private navButtonMouseDownHandler = (ev: MouseEvent): void => {\n ev.preventDefault();\n };\n\n private handleCalendarMouseDown = (event: MouseEvent): void => {\n const target = event.target as HTMLElement;\n if (target.tagName !== \"IC-BUTTON\") {\n event.preventDefault();\n }\n };\n\n private handleSelectDay = (day: Date): void => {\n this.setSelectedDate(day);\n this.setFocussedDate(day);\n this.icCalendarDaySelect.emit();\n };\n\n private handleSelectMonth = (month: number): void => {\n this.moveMonths(month - this.monthInView);\n setTimeout(() => {\n this.monthButtonEl?.setFocus();\n this.monthPickerVisible = false;\n this.setMonthSelectedLiveRegionText();\n this.icCalendarMonthSelect.emit();\n }, FOCUS_TIMER);\n };\n\n private handleSelectYear = (year: number): void => {\n const yrPos = this.decadeView.indexOf(year);\n if (yrPos > 0 && yrPos < this.decadeView.length - 1) {\n this.moveYears(year - this.yearInView);\n this.focusDay = false;\n const monthName = this.monthNames[this.monthInView];\n this.setAriaLiveRegionText(\n `${year} selected. ${monthName} ${year} currently in view.`\n );\n setTimeout(() => {\n this.yearButtonEl?.setFocus();\n this.yearPickerVisible = false;\n this.icCalendarYearSelect.emit();\n }, FOCUS_TIMER);\n } else {\n const moveYears = year - this.focussedYear > 0 ? 10 : -10;\n this.updateFocussedYear(moveYears, this.yearButtonFocussed);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n };\n\n private onDayButtonFocusHandler = () => {\n this.dayButtonFocussed = true;\n };\n\n private onDayButtonBlurHandler = () => {\n this.dayButtonFocussed = false;\n };\n\n private onYearButtonFocusHandler = () => {\n this.yearButtonFocussed = true;\n };\n\n private onYearButtonBlurHandler = () => {\n this.yearButtonFocussed = false;\n };\n\n /* Render helpers */\n private renderMonthYearNavButton = (\n id: string,\n flip: boolean,\n disabled: boolean\n ): void => {\n const buttonSize = this.size;\n return (\n <ic-button\n id={id}\n disableTooltip={true}\n disabled={disabled}\n onClick={this.monthYearNavClickHandler}\n class={{ flip: flip }}\n variant=\"icon-tertiary\"\n innerHTML={chevron}\n size={buttonSize}\n tabIndex={-1}\n aria-label={`Go to ${id.slice(0, -7).replace(\"-\", \" \")}`}\n onMouseDown={this.navButtonMouseDownHandler}\n />\n );\n };\n\n private previousMonthButton = (): void => {\n let disabled = false;\n if (this.disabled) {\n disabled = true;\n } else {\n if (this.focussedDate !== null && this.minDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.minDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView - 1 < this.minDate.getMonth();\n }\n }\n }\n return this.renderMonthYearNavButton(\n \"previous-month-button\",\n true,\n disabled\n );\n };\n\n private nextMonthButton = (): void => {\n let disabled = false;\n if (this.disabled) {\n disabled = true;\n } else {\n if (this.focussedDate !== null && this.maxDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.maxDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView + 1 > this.maxDate.getMonth();\n }\n }\n }\n return this.renderMonthYearNavButton(\"next-month-button\", false, disabled);\n };\n\n private previousYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"previous-year-button\",\n true,\n this.disabled || !this.isPrevYearAllowed()\n );\n };\n\n private nextYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"next-year-button\",\n false,\n this.disabled || !this.isNextYearAllowed()\n );\n };\n\n render() {\n const {\n dialogDescription,\n monthNames,\n focussedMonth,\n focussedYear,\n monthInView,\n yearInView,\n monthPickerVisible,\n yearPickerVisible,\n decadeView,\n minDate,\n maxDate,\n orderedDaysOfWeek,\n parentIsDatePicker,\n showClearButton,\n showTodayButton,\n size,\n theme,\n } = this;\n\n let monthButtonText = \"\";\n if (monthPickerVisible) {\n monthButtonText = `Use the arrow keys to change the selected month. To return to day picker view, press Enter or Space to select a month, or press Escape.`;\n } else {\n monthButtonText = `Press Enter or Space to open month picker view or use the arrow keys to change month.`;\n }\n\n let yearButtonText = \"\";\n if (yearPickerVisible) {\n yearButtonText = `Use the arrow keys to change the selected year. To return to day picker view, press Enter or Space to select a year, or press Escape.`;\n } else {\n yearButtonText = `Press Enter or Space to open year picker view or use the arrow keys to change the selected year.`;\n }\n\n const dialogLabel = \"choose date\";\n\n const monthLabel =\n monthNames && monthNames[monthInView]\n ? monthNames[monthInView]\n : \"Open month picker\";\n const yearLabel = this.yearInView ? this.yearInView : \"Open year picker\";\n\n let minDay = minDate;\n if (minDate && this.disablePast) {\n const yesterday = new Date(minDate);\n yesterday.setDate(minDate.getDate() - 1);\n minDay = yesterday;\n }\n\n const weeks = [];\n for (let i = 0; i < this.currMonthView.length; i += 7) {\n weeks.push(this.currMonthView.slice(i, i + 7));\n }\n\n return (\n <Host\n class={{\n [`ic-calendar-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div>\n <span id=\"dialog-description\" class=\"sr-only\">\n {dialogDescription}\n </span>\n <div\n {...(parentIsDatePicker && {\n role: \"dialog\",\n \"aria-modal\": \"true\",\n })}\n aria-label={dialogLabel}\n aria-describedBy=\"dialog-description\"\n class={{\n \"calendar-container\": true,\n }}\n onMouseDown={this.handleCalendarMouseDown}\n onClick={this.handleCalendarClick}\n >\n <span\n ref={(el) => (this.liveRegionEl = el)}\n id=\"live-region\"\n aria-live=\"assertive\"\n class=\"sr-only\"\n ></span>\n <div\n class={{\n \"month-year-nav-container\": true,\n }}\n >\n <div class=\"month-year-nav\">\n {this.previousMonthButton()}\n <span id=\"select-month-hint\" aria-hidden=\"true\">\n {monthButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement | undefined) =>\n (this.monthButtonEl = el)\n }\n size={size}\n class=\"month-picker-button\"\n disabled={this.disabled}\n aria-haspopup=\"menu\"\n aria-expanded={monthPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={monthLabel}\n aria-describedby=\"select-month-hint\"\n onKeyDown={this.monthButtonKeyDownHandler}\n onClick={this.monthButtonClickHandler}\n >\n {monthNames[monthInView]}\n </ic-button>\n {this.nextMonthButton()}\n </div>\n <div class=\"month-year-nav\">\n {this.previousYearButton()}\n <span id=\"select-year-hint\" aria-hidden=\"true\">\n {yearButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement | undefined) =>\n (this.yearButtonEl = el)\n }\n size={size}\n class=\"year-picker-button\"\n disabled={this.disabled}\n aria-haspopup=\"menu\"\n aria-expanded={yearPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={yearLabel}\n aria-describedby=\"select-year-hint\"\n onKeyDown={this.yearButtonKeyDownHandler}\n onClick={this.yearButtonClickHandler}\n >\n {this.yearInView}\n </ic-button>\n {this.nextYearButton()}\n </div>\n </div>\n {!(monthPickerVisible || yearPickerVisible) && (\n <table\n role=\"grid\"\n class={{\n calendar: true,\n hidden: monthPickerVisible || yearPickerVisible,\n }}\n onKeyDown={this.handleCalendarKeyDown}\n >\n <thead class=\"weekdays-container\">\n <tr class=\"weekdays\">\n {orderedDaysOfWeek.map((dayName) => {\n const header =\n size === \"small\" ? dayName.charAt(0) : dayName;\n return (\n <th scope=\"col\" class=\"calendar-day-header\">\n {header}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody class=\"calendar-days-container\">\n {weeks.map((week, weekIdx) => (\n <tr key={weekIdx}>\n {week.map((day) => (\n <td key={day.toISOString()}>\n <DayButton\n day={day}\n disableDay={\n this.disabled ||\n this.disableDays?.includes(Number(day.getDay()))\n }\n today={dateMatches(day, this.today)}\n selected={dateMatches(day, this.selectedDate)}\n focussed={dateMatches(day, this.focussedDate)}\n inRange={dateInRange(day, minDay, maxDate)}\n monthInView={monthInView}\n onSelectDay={this.handleSelectDay}\n focussedDayRef={this.setFocussedDayEl}\n onFocusDay={this.onDayButtonFocusHandler}\n onBlurDay={this.onDayButtonBlurHandler}\n showDaysOutsideMonth={this.showDaysOutsideMonth}\n />\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n )}\n <div\n class={{\n \"month-picker-container\": true,\n hidden: !monthPickerVisible,\n }}\n >\n {monthPickerVisible && (\n <MonthPicker\n size={size}\n onSelectMonth={this.handleSelectMonth}\n monthInView={monthInView}\n focussedMonth={focussedMonth}\n onKeyDown={this.monthPickerKeyDownHandler}\n focussedMonthRef={this.setFocussedMonthEl}\n minDate={minDate}\n maxDate={maxDate}\n yearInView={yearInView}\n ></MonthPicker>\n )}\n </div>\n <div\n class={{\n \"year-picker-container\": true,\n hidden: !yearPickerVisible,\n }}\n >\n {yearPickerVisible && (\n <YearPicker\n decadeView={decadeView}\n size={size}\n focussedYear={focussedYear}\n onSelectYear={this.handleSelectYear}\n onKeyDown={this.yearPickerKeyDownHandler}\n onFocusYear={this.onYearButtonFocusHandler}\n onBlurYear={this.onYearButtonBlurHandler}\n yearInView={yearInView}\n minDate={minDate}\n maxDate={maxDate}\n focussedYearRef={this.setFocussedYearEl}\n ></YearPicker>\n )}\n </div>\n <div\n class={{\n \"bottom-buttons\": true,\n \"no-today\": !showTodayButton,\n }}\n >\n {showTodayButton && (\n <ic-button\n id=\"today-button\"\n variant=\"tertiary\"\n ref={(el: HTMLIcButtonElement | undefined) =>\n (this.todayButtonEl = el)\n }\n size={size}\n aria-label=\"Navigate to current date\"\n onClick={this.todayButtonClickHandler}\n onKeyDown={this.todayButtonKeyDownHandler}\n disabled={this.isCurrentMonth()}\n >\n Go to today\n </ic-button>\n )}\n {showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"clear selected date\"\n ref={(el: HTMLIcButtonElement | undefined) =>\n (this.clearButtonEl = el)\n }\n variant=\"tertiary\"\n size={size}\n onClick={this.clearButtonClickHandler}\n onKeyDown={this.clearButtonKeyDownHandler}\n disabled={\n this.value === \"\" ||\n this.value === null ||\n this.value === undefined\n }\n >\n Clear\n </ic-button>\n )}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { r as removeDisabledFalse, i as isSlotUsed, o as onComponentRequiredPropUndefined, a as renderDynamicChildSlots, g as getBrandFromContext, I as IcBrandForegroundEnum } from './helpers2.js';
2
+ import { r as removeDisabledFalse, i as isSlotUsed, o as onComponentRequiredPropUndefined, d as renderDynamicChildSlots, g as getBrandFromContext, e as IcBrandForegroundEnum } from './helpers2.js';
3
3
  import { d as defineCustomElement$2 } from './ic-typography2.js';
4
4
 
5
5
  const icCardHorizontalCss = "/*! 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}:host{display:flex;--card-max-width:550px;--image-size:132px;--message-max-lines:2}.card.small{--card-max-width:360px;--image-size:calc(var(--ic-space-sm) * 10)}.card.small.spacious{--image-size:100px}.card.large{--card-max-width:1130px;--image-size:164px;--message-max-lines:3}.card.large .card-message{margin-top:var(--ic-space-md)}a{text-decoration:none !important;color:var(--ic-card-text-primary) !important}button{border:none;background-color:transparent;outline:var(--ic-hc-focus-outline);padding:0}.card,.card.clickable{display:flex;flex-direction:row;border:var(--ic-space-1px) solid var(--ic-card-border-primary);border-radius:var(--ic-border-radius);box-sizing:border-box;text-align:left;color:var(--ic-card-text-primary);transition:var(--ic-easing-transition-fast);position:relative;max-width:var(--card-max-width);height:-moz-fit-content;height:fit-content;width:var(--card-horizontal-width, -moz-fit-content);width:var(--card-horizontal-width, fit-content)}.dark.card,.dark.card.clickable{border:var(--ic-border-width) solid\n var(--ic-color-border-neutral-pressed-dark)}.card.clickable:hover{background-color:var(--ic-card-background-hover);border:var(--ic-space-1px) solid var(--ic-card-hover-border-color);cursor:pointer}.card.clickable:focus,.card.clickable.focussed{background-color:var(--ic-card-background-hover);box-shadow:var(--ic-border-focus);outline:var(--ic-hc-focus-outline);border:var(--ic-space-1px) solid var(--ic-card-pressed-border-color)}.card.clickable:active{background-color:var(--ic-card-background-pressed);box-shadow:var(--ic-border-focus)}.card.disabled{border:var(--ic-space-1px) dashed var(--ic-card-disabled-border-color)}.card-header{display:flex;align-items:center}.icon{display:flex;align-items:center;padding-right:var(--ic-space-xs)}.card ::slotted(svg){fill:var(--ic-card-icon)}.card.disabled ::slotted(svg){fill:var(--ic-card-icon-disabled)}.card.clickable .card-title{--ic-typography-color:var(--ic-card-clickable-text);color:var(--ic-card-clickable-text);text-decoration:underline;text-decoration-thickness:var(--ic-space-1px)}.card.clickable:hover .card-title,.card.clickable:focus .card-title,.card.clickable.focussed .card-title{display:inline-block;border-bottom:0.25rem solid !important;margin-bottom:-0.25rem !important;text-decoration:none}.card.clickable:active .card-title{text-decoration:none}.card.disabled .card-title{text-decoration:underline;text-decoration-thickness:var(--ic-space-1px);text-decoration-color:var(--ic-card-disabled-text);color:var(--ic-card-disabled-text);--ic-typography-color:var(--ic-card-disabled-text)}.card-message{margin-top:var(--ic-space-xs);align-items:left}.card.disabled .card-message,.card.disabled .subheading{--ic-typography-color:var(--ic-card-disabled-text)}.image{display:flex;border-radius:var(--ic-border-radius)}.image ::slotted([slot=\"image-left\"]),.image ::slotted([slot=\"image-right\"]){height:var(--image-size);width:var(--image-size)}.card-content{display:flex;flex-direction:column;padding:var(--ic-space-md)}.card .card-title ::slotted([slot=\"heading\"]),.card .card-title ic-typography p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(var(--card-max-width) - var(--ic-space-xl))}.card.with-icon .card-title ::slotted([slot=\"heading\"]),.card.with-icon .card-title ic-typography p{max-width:calc(var(--card-max-width) - (2 * var(--ic-space-xl)))}.card.with-image .card-title ::slotted([slot=\"heading\"]),.card.with-image .card-title ic-typography p{max-width:calc(\n var(--card-max-width) - var(--image-size) - var(--ic-space-xl)\n )}.card.with-image.with-icon .card-title ::slotted([slot=\"heading\"]),.card.with-image.with-icon .card-title ic-typography p{max-width:calc(\n var(--card-max-width) - var(--image-size) - (2 * var(--ic-space-xl))\n )}.card .card-message ::slotted([slot=\"message\"]),.card .card-message ic-typography{display:-webkit-box;-webkit-box-orient:vertical;line-clamp:var(--message-max-lines, initial);-webkit-line-clamp:var(--message-max-lines, initial);overflow:hidden}.card.spacious{padding:var(--ic-space-md)}.card.spacious .card-content{padding:0}.card.spacious .card-content.left-image{padding:0 0 0 var(--ic-space-md)}.card.spacious .card-content.right-image{padding:0 var(--ic-space-md) 0 0}.card.spacious .image ::slotted([slot=\"image-left\"]),.card.spacious .image ::slotted([slot=\"image-right\"]){border-radius:var(--ic-border-radius)}.interaction-button{margin-left:auto}.adornment{margin-top:var(--ic-space-xxs)}.subheading{margin-top:var(--ic-space-xxs)}.card-title.with-interaction-button{margin-right:var(--ic-space-md)}::slotted(p),::slotted(h1),::slotted(h2),::slotted(h3),::slotted(h4),::slotted(h5),::slotted(h6){line-height:normal}@media (forced-colors: active){.card ::slotted(svg){fill:currentcolor}.card.disabled ::slotted(svg){fill:GrayText !important}.card.disabled{border-color:GrayText !important}.card.disabled .card-message,.card.disabled .card-title,.card.disabled .subheading{color:GrayText;--ic-typography-color:GrayText}}";
@@ -140,7 +140,7 @@ const Card = /*@__PURE__*/ proxyCustomElement(class Card extends HTMLElement {
140
140
  };
141
141
  const hasLeftImage = isSlotUsed(this.el, this.IMAGE_LEFT);
142
142
  const hasRightImage = isSlotUsed(this.el, this.IMAGE_RIGHT);
143
- return (h(Host, { key: '71149e1767ee411bc3bb68176aa76d465a9e7277', class: { [`ic-theme-${theme}`]: theme !== "inherit" } }, h(Component, Object.assign({ key: '10b36cfc0dad51aa4ac98cb37c18824ac98372a6', class: {
143
+ return (h(Host, { key: '6ead2d291cd0679234061acfff7d972e287d422a', class: { [`ic-theme-${theme}`]: theme !== "inherit" } }, h(Component, Object.assign({ key: 'b19808bcd15c3e354bd60de589f49a4c3b022ef2', class: {
144
144
  card: true,
145
145
  clickable: clickable && !disabled,
146
146
  disabled,
@@ -150,15 +150,15 @@ const Card = /*@__PURE__*/ proxyCustomElement(class Card extends HTMLElement {
150
150
  "with-icon": isSlotUsed(this.el, "icon"),
151
151
  "with-image": hasLeftImage || hasRightImage,
152
152
  spacious: density === "spacious",
153
- }, tabindex: clickable && !parentIsAnchorTag ? 0 : undefined, "aria-disabled": disabled ? "true" : undefined, disabled: disabled ? true : undefined }, attrs), hasLeftImage && (h("div", { key: '0df46b54576173ca424a61b6fee99f94011e07ca', class: "image" }, h("slot", { key: '7f9fc4613ee4ab8ae3790a01884c2f8a0b07e4b2', name: "image-left" }))), h("div", { key: '54f3d5a785156094e9162312e6967fd610612e55', class: {
153
+ }, tabindex: clickable && !parentIsAnchorTag ? 0 : undefined, "aria-disabled": disabled ? "true" : undefined, disabled: disabled ? true : undefined }, attrs), hasLeftImage && (h("div", { key: '37d59a742f88f8a5f365611a11ed1e5c0918b7bd', class: "image" }, h("slot", { key: 'b8b49ff2f2061379f29bec9dd493fe85aab52bf0', name: "image-left" }))), h("div", { key: '150d0ce31ad800d54fbee1d384fcd9048117c7d5', class: {
154
154
  "card-content": true,
155
155
  "left-image": hasLeftImage,
156
156
  "right-image": hasRightImage,
157
- } }, h("div", { key: 'ca54104523a6f294092cea4c9361b1ef45235325', class: "card-header" }, isSlotUsed(this.el, "icon") && (h("div", { key: 'bd65772f58d6f3ac1722e98da6a3cee1586fadeb', class: "icon" }, h("slot", { key: '9c2ed5baffadadf7f4e019844268134861385b9e', name: "icon" }))), h("div", { key: '41c9724ba29c9f576277bad2f4163ea89dd9ec8d', class: {
157
+ } }, h("div", { key: '890b37e7f3e0f36e9594d4dfb351ef28f50c367a', class: "card-header" }, isSlotUsed(this.el, "icon") && (h("div", { key: '162f83733f6a59536789607e134b335a45e535dc', class: "icon" }, h("slot", { key: 'e2307f93da5af4e55c622d03ca743604dab7d52c', name: "icon" }))), h("div", { key: 'ae5803e20f33c9d8af038a7e3d96ed54b3dad55c', class: {
158
158
  "card-title": true,
159
159
  "with-interaction-button": isSlotUsed(this.el, this.INTERACTION_BUTTON),
160
- } }, h("slot", { key: '586bcc0fb595ddae41768ff2117c6bf429cdcc90', name: "heading" }, h("ic-typography", { key: '7e86d81964708451d868a615a387b13f6b84db2a', variant: "h4" }, h("p", { key: '5c584cd409792a753cb7abe28e012e6ba8f23ad0' }, heading)))), isSlotUsed(this.el, this.INTERACTION_BUTTON) && (h("div", { key: '6a88f1edfbf40d5c14e66edc2a8d82575c650584', class: "interaction-button" }, h("slot", { key: '0f01efcb2fa17af8e7c649dd870bc25dcbd622c7', name: "interaction-button" })))), density === "spacious" &&
161
- (subheading || isSlotUsed(this.el, "subheading")) && (h("div", { key: 'b6643753651caab3d9392199fdad2aa31e7a2573', class: "subheading" }, h("slot", { key: 'fca9e50b4b3625b03782ed69e3f13909b32c9a40', name: "subheading" }, h("ic-typography", { key: '4c4a225688575fed9d63ca6aa4270d086c6a4571', variant: "subtitle-small" }, subheading)))), density === "spacious" && isSlotUsed(this.el, "adornment") && (h("div", { key: '950d24f7eb8bd16469cd880a73814c886cc7eba6', class: "adornment" }, h("slot", { key: '6082019fb7f20d4fd9352d1bdd6d36cf8fcf569d', name: "adornment" }))), (message || isSlotUsed(this.el, "message")) && (h("div", { key: 'f88a674c20fc8296ced85465bc4a38f294393bd8', class: "card-message" }, message && (h("ic-typography", { key: 'b67b8b1abb1af132f64ef31c49ef236b23a769d7', variant: "body" }, message)), isSlotUsed(this.el, "message") && h("slot", { key: 'a4bc98e9018fdd089431467ea022ccee8c1af707', name: "message" })))), isSlotUsed(this.el, "badge") && h("slot", { key: '50dfe5ca32b19cc14da9634987d6e12d2f7ec204', name: "badge" }), hasRightImage && (h("div", { key: '2bbdcfa7022f36d99193b5cff064583c7dde7d42', class: "image" }, h("slot", { key: '9a523136628d2401506c73b9e6257cd0843773fb', name: "image-right" }))))));
160
+ } }, h("slot", { key: '813dffbe5feb5bd2ea6512e7f4b8771c9cd42423', name: "heading" }, h("ic-typography", { key: '23c3c176af04d0518bdce0f5768d506341504909', variant: "h4" }, h("p", { key: 'cd1436f1ed8befaa0071a027040d9ef9da36cd79' }, heading)))), isSlotUsed(this.el, this.INTERACTION_BUTTON) && (h("div", { key: '3e14759cbdadf5e6c3217f691c4bcb30001b1b57', class: "interaction-button" }, h("slot", { key: 'c5894ff645923096041f8ee84d59c81767cc4f31', name: "interaction-button" })))), density === "spacious" &&
161
+ (subheading || isSlotUsed(this.el, "subheading")) && (h("div", { key: '92b922ebfa767238dc66d1a61f2f69ac0ce28ff5', class: "subheading" }, h("slot", { key: '3e3c6db9639a762a264998e7b9031031ea8ffc26', name: "subheading" }, h("ic-typography", { key: '1d6a15cb8e3e78b482ae496c185e7aab0748445e', variant: "subtitle-small" }, subheading)))), density === "spacious" && isSlotUsed(this.el, "adornment") && (h("div", { key: '261e04fc16724ad08d92848cce2ef633e99f8514', class: "adornment" }, h("slot", { key: '513cf2ce9800ac00ab4d88b0a832fd0267060a62', name: "adornment" }))), (message || isSlotUsed(this.el, "message")) && (h("div", { key: '6a5516f1fa127a04bc8aaf6bd29a94d7b5e538ed', class: "card-message" }, message && (h("ic-typography", { key: 'e6b4f524f97a5b8dff5e9c66a90243455a9bb99b', variant: "body" }, message)), isSlotUsed(this.el, "message") && h("slot", { key: 'be5b20d2cea7ec3b7eb1bdd829d0afe444087bee', name: "message" })))), isSlotUsed(this.el, "badge") && h("slot", { key: '99734067ee2c03832d4129280da508bb8be7c816', name: "badge" }), hasRightImage && (h("div", { key: '6e2610a79d2216ef23b51e7695d0dbec40e65184', class: "image" }, h("slot", { key: 'a1b7be2ee79695fc535f73e140b1c23101a40e6f', name: "image-right" }))))));
162
162
  }
163
163
  get el() { return this; }
164
164
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"ic-card-horizontal.js","mappings":"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","names":[],"sources":["src/components/ic-card-horizontal/ic-card-horizontal.css?tag=ic-card-horizontal&encapsulation=shadow","src/components/ic-card-horizontal/ic-card-horizontal.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --card-horizontal-width: Width of the horizontal card\n */\n\n:host {\n display: flex;\n\n --card-max-width: 550px;\n --image-size: 132px;\n --message-max-lines: 2;\n}\n\n.card.small {\n --card-max-width: 360px;\n --image-size: calc(var(--ic-space-sm) * 10);\n}\n\n.card.small.spacious {\n --image-size: 100px;\n}\n\n.card.large {\n --card-max-width: 1130px;\n --image-size: 164px;\n --message-max-lines: 3;\n}\n\n.card.large .card-message {\n margin-top: var(--ic-space-md);\n}\n\na {\n text-decoration: none !important;\n color: var(--ic-card-text-primary) !important;\n}\n\nbutton {\n border: none;\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n padding: 0;\n}\n\n.card,\n.card.clickable {\n display: flex;\n flex-direction: row;\n border: var(--ic-space-1px) solid var(--ic-card-border-primary);\n border-radius: var(--ic-border-radius);\n box-sizing: border-box;\n text-align: left;\n color: var(--ic-card-text-primary);\n transition: var(--ic-easing-transition-fast);\n position: relative;\n max-width: var(--card-max-width);\n height: fit-content;\n width: var(--card-horizontal-width, fit-content);\n}\n\n.dark.card,\n.dark.card.clickable {\n border: var(--ic-border-width) solid\n var(--ic-color-border-neutral-pressed-dark);\n}\n\n.card.clickable:hover {\n background-color: var(--ic-card-background-hover);\n border: var(--ic-space-1px) solid var(--ic-card-hover-border-color);\n cursor: pointer;\n}\n\n.card.clickable:focus,\n.card.clickable.focussed {\n background-color: var(--ic-card-background-hover);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n border: var(--ic-space-1px) solid var(--ic-card-pressed-border-color);\n}\n\n.card.clickable:active {\n background-color: var(--ic-card-background-pressed);\n box-shadow: var(--ic-border-focus);\n}\n\n.card.disabled {\n border: var(--ic-space-1px) dashed var(--ic-card-disabled-border-color);\n}\n\n.card-header {\n display: flex;\n align-items: center;\n}\n\n.icon {\n display: flex;\n align-items: center;\n padding-right: var(--ic-space-xs);\n}\n\n.card ::slotted(svg) {\n fill: var(--ic-card-icon);\n}\n\n.card.disabled ::slotted(svg) {\n fill: var(--ic-card-icon-disabled);\n}\n\n.card.clickable .card-title {\n --ic-typography-color: var(--ic-card-clickable-text);\n\n color: var(--ic-card-clickable-text);\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n}\n\n.card.clickable:hover .card-title,\n.card.clickable:focus .card-title,\n.card.clickable.focussed .card-title {\n display: inline-block;\n border-bottom: 0.25rem solid !important;\n margin-bottom: -0.25rem !important;\n text-decoration: none;\n}\n\n.card.clickable:active .card-title {\n text-decoration: none;\n}\n\n.card.disabled .card-title {\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n text-decoration-color: var(--ic-card-disabled-text);\n color: var(--ic-card-disabled-text);\n\n --ic-typography-color: var(--ic-card-disabled-text);\n}\n\n.card-message {\n margin-top: var(--ic-space-xs);\n align-items: left;\n}\n\n.card.disabled .card-message,\n.card.disabled .subheading {\n --ic-typography-color: var(--ic-card-disabled-text);\n}\n\n.image {\n display: flex;\n border-radius: var(--ic-border-radius);\n}\n\n.image ::slotted([slot=\"image-left\"]),\n.image ::slotted([slot=\"image-right\"]) {\n height: var(--image-size);\n width: var(--image-size);\n}\n\n.card-content {\n display: flex;\n flex-direction: column;\n padding: var(--ic-space-md);\n}\n\n.card .card-title ::slotted([slot=\"heading\"]),\n.card .card-title ic-typography p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: calc(var(--card-max-width) - var(--ic-space-xl));\n}\n\n.card.with-icon .card-title ::slotted([slot=\"heading\"]),\n.card.with-icon .card-title ic-typography p {\n max-width: calc(var(--card-max-width) - (2 * var(--ic-space-xl)));\n}\n\n.card.with-image .card-title ::slotted([slot=\"heading\"]),\n.card.with-image .card-title ic-typography p {\n max-width: calc(\n var(--card-max-width) - var(--image-size) - var(--ic-space-xl)\n );\n}\n\n.card.with-image.with-icon .card-title ::slotted([slot=\"heading\"]),\n.card.with-image.with-icon .card-title ic-typography p {\n max-width: calc(\n var(--card-max-width) - var(--image-size) - (2 * var(--ic-space-xl))\n );\n}\n\n.card .card-message ::slotted([slot=\"message\"]),\n.card .card-message ic-typography {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n line-clamp: var(--message-max-lines, initial);\n -webkit-line-clamp: var(--message-max-lines, initial);\n overflow: hidden;\n}\n\n.card.spacious {\n padding: var(--ic-space-md);\n}\n\n.card.spacious .card-content {\n padding: 0;\n}\n\n.card.spacious .card-content.left-image {\n padding: 0 0 0 var(--ic-space-md);\n}\n\n.card.spacious .card-content.right-image {\n padding: 0 var(--ic-space-md) 0 0;\n}\n\n.card.spacious .image ::slotted([slot=\"image-left\"]),\n.card.spacious .image ::slotted([slot=\"image-right\"]) {\n border-radius: var(--ic-border-radius);\n}\n\n.interaction-button {\n margin-left: auto;\n}\n\n.adornment {\n margin-top: var(--ic-space-xxs);\n}\n\n.subheading {\n margin-top: var(--ic-space-xxs);\n}\n\n.card-title.with-interaction-button {\n margin-right: var(--ic-space-md);\n}\n\n::slotted(p),\n::slotted(h1),\n::slotted(h2),\n::slotted(h3),\n::slotted(h4),\n::slotted(h5),\n::slotted(h6) {\n line-height: normal;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .card ::slotted(svg) {\n fill: currentcolor;\n }\n\n .card.disabled ::slotted(svg) {\n fill: GrayText !important;\n }\n\n .card.disabled {\n border-color: GrayText !important;\n }\n\n .card.disabled .card-message,\n .card.disabled .card-title,\n .card.disabled .subheading {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n}\n","import {\n Component,\n Element,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcCardDensity,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n getBrandFromContext,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport { IcBrandForegroundEnum, IcSizes } from \"../../utils/types\";\n\n/**\n * @slot heading - Content will be placed at the top of the horizontal card to the right of the icon.\n * @slot message - Content will be placed in the main body of the horizontal card.\n * @slot subheading - Content will be placed below the card heading. Only for `density=\"spacious\"`.\n * @slot adornment - Content will be placed below the card subheading. Only for `density=\"spacious\"`.\n * @slot image-left - Content will be placed to the left of all other content.\n * @slot image-right - Content will be placed to the right of all other content.\n * @slot icon - Content will be placed to the left of the horizontal card heading.\n * @slot interaction-button - Content will be placed in the top right corner of the heading section.\n * @slot badge - Badge component overlaying the top right of the horizontal card.\n */\n@Component({\n tag: \"ic-card-horizontal\",\n styleUrl: \"ic-card-horizontal.css\",\n shadow: true,\n})\nexport class Card {\n private hostMutationObserver: MutationObserver | null = null;\n private IMAGE_LEFT = \"image-left\";\n private IMAGE_RIGHT = \"image-right\";\n private INTERACTION_BUTTON = \"interaction-button\";\n\n @Element() el: HTMLIcCardHorizontalElement;\n\n @State() appearance?: IcBrandForeground = \"default\";\n @State() isFocussed: boolean = false;\n @State() parentEl: HTMLElement | null = null;\n @State() parentIsAnchorTag: boolean = false;\n\n /**\n * If `true`, the horizontal card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable: boolean = false;\n\n /**\n * The padding of the horizontal card.\n */\n @Prop() density: IcCardDensity = \"default\";\n\n /**\n * If `true`, the horizontal card will be disabled if it is clickable.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The heading for the horizontal card. This is required, unless a slotted heading is used.\n */\n @Prop() heading?: string;\n\n /**\n * The URL that the clickable horizontal card link points to. If set, the clickable horizontal card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string | undefined;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * The main body message of the horizontal card.\n */\n @Prop() message?: string = \"\";\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The size of the horizontal card.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The subheading for the card.\n */\n @Prop() subheading?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n disconnectedCallback(): void {\n if (this.parentEl && this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl?.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(\n mutationList,\n [\n \"message\",\n \"adornment\",\n this.IMAGE_LEFT,\n this.IMAGE_RIGHT,\n \"icon\",\n this.INTERACTION_BUTTON,\n \"badge\",\n ],\n this\n )\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.updateTheme(ev.detail.mode);\n }\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n const linkElement = this.el.shadowRoot?.querySelector(\"a\");\n const buttonElement = this.el.shadowRoot?.querySelector(\"button\");\n if (linkElement) {\n linkElement.focus();\n } else if (buttonElement) {\n buttonElement.focus();\n }\n }\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(mode?: IcBrandForeground): void {\n const foregroundColor = getBrandFromContext(this.el, mode);\n\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n }\n\n render() {\n const {\n appearance,\n clickable,\n density,\n disabled,\n heading,\n message,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n parentIsAnchorTag,\n isFocussed,\n size,\n subheading,\n theme,\n } = this;\n\n const Component =\n parentIsAnchorTag || !clickable\n ? \"div\"\n : href === undefined\n ? \"button\"\n : \"a\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n const hasLeftImage = isSlotUsed(this.el, this.IMAGE_LEFT);\n const hasRightImage = isSlotUsed(this.el, this.IMAGE_RIGHT);\n\n return (\n <Host class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}>\n <Component\n class={{\n card: true,\n clickable: clickable && !disabled,\n disabled,\n focussed: isFocussed,\n dark: appearance === IcBrandForegroundEnum.Dark,\n [`${size}`]: true,\n \"with-icon\": isSlotUsed(this.el, \"icon\"),\n \"with-image\": hasLeftImage || hasRightImage,\n spacious: density === \"spacious\",\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : undefined}\n aria-disabled={disabled ? \"true\" : undefined}\n disabled={disabled ? true : undefined}\n {...attrs}\n >\n {hasLeftImage && (\n <div class=\"image\">\n <slot name=\"image-left\"></slot>\n </div>\n )}\n <div\n class={{\n \"card-content\": true,\n \"left-image\": hasLeftImage,\n \"right-image\": hasRightImage,\n }}\n >\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div\n class={{\n \"card-title\": true,\n \"with-interaction-button\": isSlotUsed(\n this.el,\n this.INTERACTION_BUTTON\n ),\n }}\n >\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, this.INTERACTION_BUTTON) && (\n <div class=\"interaction-button\">\n <slot name=\"interaction-button\"></slot>\n </div>\n )}\n </div>\n {density === \"spacious\" &&\n (subheading || isSlotUsed(this.el, \"subheading\")) && (\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"subtitle-small\">\n {subheading}\n </ic-typography>\n </slot>\n </div>\n )}\n {density === \"spacious\" && isSlotUsed(this.el, \"adornment\") && (\n <div class=\"adornment\">\n <slot name=\"adornment\"></slot>\n </div>\n )}\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div class=\"card-message\">\n {message && (\n <ic-typography variant=\"body\">{message}</ic-typography>\n )}\n {isSlotUsed(this.el, \"message\") && <slot name=\"message\"></slot>}\n </div>\n )}\n </div>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n {hasRightImage && (\n <div class=\"image\">\n <slot name=\"image-right\"></slot>\n </div>\n )}\n </Component>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ic-card-horizontal.js","mappings":"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","names":[],"sources":["src/components/ic-card-horizontal/ic-card-horizontal.css?tag=ic-card-horizontal&encapsulation=shadow","src/components/ic-card-horizontal/ic-card-horizontal.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --card-horizontal-width: Width of the horizontal card\n */\n\n:host {\n display: flex;\n\n --card-max-width: 550px;\n --image-size: 132px;\n --message-max-lines: 2;\n}\n\n.card.small {\n --card-max-width: 360px;\n --image-size: calc(var(--ic-space-sm) * 10);\n}\n\n.card.small.spacious {\n --image-size: 100px;\n}\n\n.card.large {\n --card-max-width: 1130px;\n --image-size: 164px;\n --message-max-lines: 3;\n}\n\n.card.large .card-message {\n margin-top: var(--ic-space-md);\n}\n\na {\n text-decoration: none !important;\n color: var(--ic-card-text-primary) !important;\n}\n\nbutton {\n border: none;\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n padding: 0;\n}\n\n.card,\n.card.clickable {\n display: flex;\n flex-direction: row;\n border: var(--ic-space-1px) solid var(--ic-card-border-primary);\n border-radius: var(--ic-border-radius);\n box-sizing: border-box;\n text-align: left;\n color: var(--ic-card-text-primary);\n transition: var(--ic-easing-transition-fast);\n position: relative;\n max-width: var(--card-max-width);\n height: fit-content;\n width: var(--card-horizontal-width, fit-content);\n}\n\n.dark.card,\n.dark.card.clickable {\n border: var(--ic-border-width) solid\n var(--ic-color-border-neutral-pressed-dark);\n}\n\n.card.clickable:hover {\n background-color: var(--ic-card-background-hover);\n border: var(--ic-space-1px) solid var(--ic-card-hover-border-color);\n cursor: pointer;\n}\n\n.card.clickable:focus,\n.card.clickable.focussed {\n background-color: var(--ic-card-background-hover);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n border: var(--ic-space-1px) solid var(--ic-card-pressed-border-color);\n}\n\n.card.clickable:active {\n background-color: var(--ic-card-background-pressed);\n box-shadow: var(--ic-border-focus);\n}\n\n.card.disabled {\n border: var(--ic-space-1px) dashed var(--ic-card-disabled-border-color);\n}\n\n.card-header {\n display: flex;\n align-items: center;\n}\n\n.icon {\n display: flex;\n align-items: center;\n padding-right: var(--ic-space-xs);\n}\n\n.card ::slotted(svg) {\n fill: var(--ic-card-icon);\n}\n\n.card.disabled ::slotted(svg) {\n fill: var(--ic-card-icon-disabled);\n}\n\n.card.clickable .card-title {\n --ic-typography-color: var(--ic-card-clickable-text);\n\n color: var(--ic-card-clickable-text);\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n}\n\n.card.clickable:hover .card-title,\n.card.clickable:focus .card-title,\n.card.clickable.focussed .card-title {\n display: inline-block;\n border-bottom: 0.25rem solid !important;\n margin-bottom: -0.25rem !important;\n text-decoration: none;\n}\n\n.card.clickable:active .card-title {\n text-decoration: none;\n}\n\n.card.disabled .card-title {\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n text-decoration-color: var(--ic-card-disabled-text);\n color: var(--ic-card-disabled-text);\n\n --ic-typography-color: var(--ic-card-disabled-text);\n}\n\n.card-message {\n margin-top: var(--ic-space-xs);\n align-items: left;\n}\n\n.card.disabled .card-message,\n.card.disabled .subheading {\n --ic-typography-color: var(--ic-card-disabled-text);\n}\n\n.image {\n display: flex;\n border-radius: var(--ic-border-radius);\n}\n\n.image ::slotted([slot=\"image-left\"]),\n.image ::slotted([slot=\"image-right\"]) {\n height: var(--image-size);\n width: var(--image-size);\n}\n\n.card-content {\n display: flex;\n flex-direction: column;\n padding: var(--ic-space-md);\n}\n\n.card .card-title ::slotted([slot=\"heading\"]),\n.card .card-title ic-typography p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: calc(var(--card-max-width) - var(--ic-space-xl));\n}\n\n.card.with-icon .card-title ::slotted([slot=\"heading\"]),\n.card.with-icon .card-title ic-typography p {\n max-width: calc(var(--card-max-width) - (2 * var(--ic-space-xl)));\n}\n\n.card.with-image .card-title ::slotted([slot=\"heading\"]),\n.card.with-image .card-title ic-typography p {\n max-width: calc(\n var(--card-max-width) - var(--image-size) - var(--ic-space-xl)\n );\n}\n\n.card.with-image.with-icon .card-title ::slotted([slot=\"heading\"]),\n.card.with-image.with-icon .card-title ic-typography p {\n max-width: calc(\n var(--card-max-width) - var(--image-size) - (2 * var(--ic-space-xl))\n );\n}\n\n.card .card-message ::slotted([slot=\"message\"]),\n.card .card-message ic-typography {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n line-clamp: var(--message-max-lines, initial);\n -webkit-line-clamp: var(--message-max-lines, initial);\n overflow: hidden;\n}\n\n.card.spacious {\n padding: var(--ic-space-md);\n}\n\n.card.spacious .card-content {\n padding: 0;\n}\n\n.card.spacious .card-content.left-image {\n padding: 0 0 0 var(--ic-space-md);\n}\n\n.card.spacious .card-content.right-image {\n padding: 0 var(--ic-space-md) 0 0;\n}\n\n.card.spacious .image ::slotted([slot=\"image-left\"]),\n.card.spacious .image ::slotted([slot=\"image-right\"]) {\n border-radius: var(--ic-border-radius);\n}\n\n.interaction-button {\n margin-left: auto;\n}\n\n.adornment {\n margin-top: var(--ic-space-xxs);\n}\n\n.subheading {\n margin-top: var(--ic-space-xxs);\n}\n\n.card-title.with-interaction-button {\n margin-right: var(--ic-space-md);\n}\n\n::slotted(p),\n::slotted(h1),\n::slotted(h2),\n::slotted(h3),\n::slotted(h4),\n::slotted(h5),\n::slotted(h6) {\n line-height: normal;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .card ::slotted(svg) {\n fill: currentcolor;\n }\n\n .card.disabled ::slotted(svg) {\n fill: GrayText !important;\n }\n\n .card.disabled {\n border-color: GrayText !important;\n }\n\n .card.disabled .card-message,\n .card.disabled .card-title,\n .card.disabled .subheading {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n}\n","import {\n Component,\n Element,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcCardDensity,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n getBrandFromContext,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\n\n/**\n * @slot heading - Content will be placed at the top of the horizontal card to the right of the icon.\n * @slot message - Content will be placed in the main body of the horizontal card.\n * @slot subheading - Content will be placed below the card heading. Only for `density=\"spacious\"`.\n * @slot adornment - Content will be placed below the card subheading. Only for `density=\"spacious\"`.\n * @slot image-left - Content will be placed to the left of all other content.\n * @slot image-right - Content will be placed to the right of all other content.\n * @slot icon - Content will be placed to the left of the horizontal card heading.\n * @slot interaction-button - Content will be placed in the top right corner of the heading section.\n * @slot badge - Badge component overlaying the top right of the horizontal card.\n */\n@Component({\n tag: \"ic-card-horizontal\",\n styleUrl: \"ic-card-horizontal.css\",\n shadow: true,\n})\nexport class Card {\n private hostMutationObserver: MutationObserver | null = null;\n private IMAGE_LEFT = \"image-left\";\n private IMAGE_RIGHT = \"image-right\";\n private INTERACTION_BUTTON = \"interaction-button\";\n\n @Element() el: HTMLIcCardHorizontalElement;\n\n @State() appearance?: IcBrandForeground = \"default\";\n @State() isFocussed: boolean = false;\n @State() parentEl: HTMLElement | null = null;\n @State() parentIsAnchorTag: boolean = false;\n\n /**\n * If `true`, the horizontal card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable: boolean = false;\n\n /**\n * The padding of the horizontal card.\n */\n @Prop() density: IcCardDensity = \"default\";\n\n /**\n * If `true`, the horizontal card will be disabled if it is clickable.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The heading for the horizontal card. This is required, unless a slotted heading is used.\n */\n @Prop() heading?: string;\n\n /**\n * The URL that the clickable horizontal card link points to. If set, the clickable horizontal card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string | undefined;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * The main body message of the horizontal card.\n */\n @Prop() message?: string = \"\";\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The size of the horizontal card.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The subheading for the card.\n */\n @Prop() subheading?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n disconnectedCallback(): void {\n if (this.parentEl && this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl?.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(\n mutationList,\n [\n \"message\",\n \"adornment\",\n this.IMAGE_LEFT,\n this.IMAGE_RIGHT,\n \"icon\",\n this.INTERACTION_BUTTON,\n \"badge\",\n ],\n this\n )\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.updateTheme(ev.detail.mode);\n }\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n const linkElement = this.el.shadowRoot?.querySelector(\"a\");\n const buttonElement = this.el.shadowRoot?.querySelector(\"button\");\n if (linkElement) {\n linkElement.focus();\n } else if (buttonElement) {\n buttonElement.focus();\n }\n }\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(mode?: IcBrandForeground): void {\n const foregroundColor = getBrandFromContext(this.el, mode);\n\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n }\n\n render() {\n const {\n appearance,\n clickable,\n density,\n disabled,\n heading,\n message,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n parentIsAnchorTag,\n isFocussed,\n size,\n subheading,\n theme,\n } = this;\n\n const Component =\n parentIsAnchorTag || !clickable\n ? \"div\"\n : href === undefined\n ? \"button\"\n : \"a\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n const hasLeftImage = isSlotUsed(this.el, this.IMAGE_LEFT);\n const hasRightImage = isSlotUsed(this.el, this.IMAGE_RIGHT);\n\n return (\n <Host class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}>\n <Component\n class={{\n card: true,\n clickable: clickable && !disabled,\n disabled,\n focussed: isFocussed,\n dark: appearance === IcBrandForegroundEnum.Dark,\n [`${size}`]: true,\n \"with-icon\": isSlotUsed(this.el, \"icon\"),\n \"with-image\": hasLeftImage || hasRightImage,\n spacious: density === \"spacious\",\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : undefined}\n aria-disabled={disabled ? \"true\" : undefined}\n disabled={disabled ? true : undefined}\n {...attrs}\n >\n {hasLeftImage && (\n <div class=\"image\">\n <slot name=\"image-left\"></slot>\n </div>\n )}\n <div\n class={{\n \"card-content\": true,\n \"left-image\": hasLeftImage,\n \"right-image\": hasRightImage,\n }}\n >\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div\n class={{\n \"card-title\": true,\n \"with-interaction-button\": isSlotUsed(\n this.el,\n this.INTERACTION_BUTTON\n ),\n }}\n >\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, this.INTERACTION_BUTTON) && (\n <div class=\"interaction-button\">\n <slot name=\"interaction-button\"></slot>\n </div>\n )}\n </div>\n {density === \"spacious\" &&\n (subheading || isSlotUsed(this.el, \"subheading\")) && (\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"subtitle-small\">\n {subheading}\n </ic-typography>\n </slot>\n </div>\n )}\n {density === \"spacious\" && isSlotUsed(this.el, \"adornment\") && (\n <div class=\"adornment\">\n <slot name=\"adornment\"></slot>\n </div>\n )}\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div class=\"card-message\">\n {message && (\n <ic-typography variant=\"body\">{message}</ic-typography>\n )}\n {isSlotUsed(this.el, \"message\") && <slot name=\"message\"></slot>}\n </div>\n )}\n </div>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n {hasRightImage && (\n <div class=\"image\">\n <slot name=\"image-right\"></slot>\n </div>\n )}\n </Component>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -105,11 +105,11 @@ const CheckboxGroup = /*@__PURE__*/ proxyCustomElement(class CheckboxGroup exten
105
105
  const describedBy = getInputDescribedByText(this.el, name, helperText !== "", validationStatus !== "");
106
106
  const renderSRText = validationStatus === "error" || required || hideLabel;
107
107
  const showValidation = hasValidationStatus(validationStatus, disabled);
108
- return (h(Host, { key: '70cd72bffb83cca193e88bc0998023b71af960ca', class: {
108
+ return (h(Host, { key: 'ee4fc914d346b2f35dd8d44ff73a44b479caee95', class: {
109
109
  "ic-checkbox-group-disabled": !!disabled,
110
110
  [`ic-checkbox-group-${size}`]: true,
111
111
  [`ic-theme-${theme}`]: theme !== "inherit",
112
- } }, renderSRText && (h("span", { key: 'ac8a04312dcaa0dbcbd9b648710cc135625adb02', id: "screenReaderOnlyText", class: "screen-reader-only-text", "aria-hidden": "true" }, label, " ", validationStatus === "error" ? "invalid data " : null, " ", required ? "required" : null)), h("fieldset", { key: '93117da2e287c333ffce1aefb6ab32bf073166fd', id: name, "aria-labelledby": `${renderSRText ? "screenReaderOnlyText" : ""} ${describedBy}`.trim(), disabled: disabled }, !hideLabel && (h("legend", { key: '813906a6e7d3f1c2552a70a6c5c5748a07a6a2e2' }, h("ic-input-label", { key: 'f8cdf69d1eb1976395411cf0ed77727b4bd0718f', class: { [`${validationStatus}`]: true }, label: label, helperText: helperText, required: required, disabled: disabled, useLabelTag: false }, h("slot", { key: 'b525218ca3d7833b0aa877a97d70f82b36fa4aa7', name: "helper-text", slot: "helper-text" })))), h("div", { key: '6737cf436e1d061265864ff8c53e4b9f82913985', class: "checkboxes-container" }, h("slot", { key: 'fd176ba39c8dc894695467906e1971c01b770ad9' }))), h("ic-input-validation", { key: '5f7128afd7e50821dfa77973e08ab29d1edbb2fc', class: {
112
+ } }, renderSRText && (h("span", { key: '3718d5e6fce1597c836d01050ed17bcd01c97e6e', id: "screenReaderOnlyText", class: "screen-reader-only-text", "aria-hidden": "true" }, label, " ", validationStatus === "error" ? "invalid data " : null, " ", required ? "required" : null)), h("fieldset", { key: '318e6c61787f136916d39acdd2823fa644c8d865', id: name, "aria-labelledby": `${renderSRText ? "screenReaderOnlyText" : ""} ${describedBy}`.trim(), disabled: disabled }, !hideLabel && (h("legend", { key: '6348eb25d5a2de666033441d694b407f72ae834b' }, h("ic-input-label", { key: '96ef66ab6b4e3a02a2385eb9b8f5936c1fc57ad0', class: { [`${validationStatus}`]: true }, label: label, helperText: helperText, required: required, disabled: disabled, useLabelTag: false }, h("slot", { key: 'f9f0532834d50a57dbc2f075a9f94788071cceb6', name: "helper-text", slot: "helper-text" })))), h("div", { key: '9b72caba2adb5951814689ef5c8b1fa5d7ea11ed', class: "checkboxes-container" }, h("slot", { key: '5cf045069c87416b7889e7b29b44e6f137ca0b4f' }))), h("ic-input-validation", { key: '4b9680fcb5468fbf6e9c2e1eb6d45f929b2b09dc', class: {
113
113
  "show-validation": showValidation,
114
114
  }, for: name, ariaLiveMode: validationAriaLive, status: showValidation ? validationStatus : "", message: showValidation ? validationText : "" })));
115
115
  }