@ukic/canary-web-components 2.0.0-canary.20 → 2.0.0-canary.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (355) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-73d277d1.js → helpers-081d6031.js} +4 -2
  3. package/dist/cjs/helpers-081d6031.js.map +1 -0
  4. package/dist/cjs/{helpers-fc9441f8.js → helpers-261701cd.js} +81 -1
  5. package/dist/cjs/helpers-261701cd.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +17 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-card-horizontal.cjs.entry.js +131 -0
  16. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -0
  17. package/dist/cjs/ic-card.cjs.entry.js +25 -1
  18. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-classification-banner.cjs.entry.js +12 -3
  23. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-data-table.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-date-input.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-date-picker.cjs.entry.js +11 -4
  29. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-empty-state_2.cjs.entry.js +21 -2
  33. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-hero.cjs.entry.js +17 -1
  38. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  43. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-menu.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-pagination_4.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-select-with-multi.cjs.entry.js +2 -30
  57. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  63. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  71. package/dist/cjs/index-4cf27b16.js +4 -0
  72. package/dist/cjs/loader.cjs.js +1 -1
  73. package/dist/collection/collection-manifest.json +1 -0
  74. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +655 -0
  75. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +373 -0
  76. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -0
  77. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js +2 -0
  78. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js.map +1 -0
  79. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js +130 -0
  80. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js.map +1 -0
  81. package/dist/collection/components/ic-date-picker/ic-date-picker.js +12 -3
  82. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  83. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js +29 -0
  84. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js.map +1 -1
  85. package/dist/collection/utils/helpers.js +4 -0
  86. package/dist/collection/utils/helpers.js.map +1 -1
  87. package/dist/components/helpers.js +4 -2
  88. package/dist/components/helpers.js.map +1 -1
  89. package/dist/components/helpers2.js +78 -1
  90. package/dist/components/helpers2.js.map +1 -1
  91. package/dist/components/ic-alert2.js +18 -2
  92. package/dist/components/ic-alert2.js.map +1 -1
  93. package/dist/components/ic-back-to-top.js +1 -1
  94. package/dist/components/ic-badge.js +1 -1
  95. package/dist/components/ic-breadcrumb-group.js +1 -1
  96. package/dist/components/ic-card-horizontal.d.ts +11 -0
  97. package/dist/components/ic-card-horizontal.js +167 -0
  98. package/dist/components/ic-card-horizontal.js.map +1 -0
  99. package/dist/components/ic-card.js +26 -2
  100. package/dist/components/ic-card.js.map +1 -1
  101. package/dist/components/ic-checkbox-group.js +1 -1
  102. package/dist/components/ic-checkbox.js +1 -1
  103. package/dist/components/ic-chip.js +1 -1
  104. package/dist/components/ic-classification-banner.js +12 -3
  105. package/dist/components/ic-classification-banner.js.map +1 -1
  106. package/dist/components/ic-data-row.js +1 -1
  107. package/dist/components/ic-data-table.js +1 -1
  108. package/dist/components/ic-date-input2.js +1 -1
  109. package/dist/components/ic-date-picker.js +12 -4
  110. package/dist/components/ic-date-picker.js.map +1 -1
  111. package/dist/components/ic-divider2.js +1 -1
  112. package/dist/components/ic-empty-state2.js +21 -2
  113. package/dist/components/ic-empty-state2.js.map +1 -1
  114. package/dist/components/ic-footer-link-group.js +1 -1
  115. package/dist/components/ic-footer-link.js +1 -1
  116. package/dist/components/ic-footer.js +1 -1
  117. package/dist/components/ic-hero.js +18 -2
  118. package/dist/components/ic-hero.js.map +1 -1
  119. package/dist/components/ic-input-component-container2.js +1 -1
  120. package/dist/components/ic-input-label2.js +1 -1
  121. package/dist/components/ic-input-validation2.js +1 -1
  122. package/dist/components/ic-menu3.js +1 -1
  123. package/dist/components/ic-navigation-button.js +1 -1
  124. package/dist/components/ic-navigation-group.js +1 -1
  125. package/dist/components/ic-navigation-item.js +1 -1
  126. package/dist/components/ic-page-header.js +1 -1
  127. package/dist/components/ic-pagination-bar2.js +1 -1
  128. package/dist/components/ic-radio-group.js +1 -1
  129. package/dist/components/ic-radio-option.js +1 -1
  130. package/dist/components/ic-search-bar.js +1 -1
  131. package/dist/components/ic-select-with-multi.js +1 -29
  132. package/dist/components/ic-select-with-multi.js.map +1 -1
  133. package/dist/components/ic-select2.js +1 -1
  134. package/dist/components/ic-side-navigation.js +1 -1
  135. package/dist/components/ic-switch.js +1 -1
  136. package/dist/components/ic-text-field2.js +1 -1
  137. package/dist/components/ic-theme.js +1 -1
  138. package/dist/components/ic-top-navigation.js +1 -1
  139. package/dist/core/core.esm.js +1 -1
  140. package/dist/core/core.esm.js.map +1 -1
  141. package/dist/core/{p-edf3411a.entry.js → p-007da09d.entry.js} +2 -2
  142. package/dist/core/{p-0a99994a.entry.js → p-01008e8d.entry.js} +2 -2
  143. package/dist/core/{p-4c57eef0.entry.js → p-01297278.entry.js} +2 -2
  144. package/dist/core/{p-3eb33ef4.entry.js → p-0551f0cf.entry.js} +2 -2
  145. package/dist/core/{p-24f9f6d4.entry.js → p-0944d33b.entry.js} +2 -2
  146. package/dist/core/{p-d3e186a3.entry.js → p-0ea28e7a.entry.js} +2 -2
  147. package/dist/core/p-145c8074.entry.js +2 -0
  148. package/dist/core/p-145c8074.entry.js.map +1 -0
  149. package/dist/core/{p-b8d3f121.entry.js → p-169bcf0f.entry.js} +2 -2
  150. package/dist/core/{p-47c91e08.entry.js → p-1733278a.entry.js} +2 -2
  151. package/dist/core/{p-4883e147.entry.js → p-1ac733c1.entry.js} +2 -2
  152. package/dist/core/{p-94ce6f29.entry.js → p-1d0cff8a.entry.js} +2 -2
  153. package/dist/core/{p-e2387530.entry.js → p-2647931d.entry.js} +2 -2
  154. package/dist/core/{p-0b14be10.entry.js → p-32a3b6c8.entry.js} +2 -2
  155. package/dist/core/{p-a1369740.entry.js → p-354e5dbe.entry.js} +2 -2
  156. package/dist/core/{p-af21360a.entry.js → p-3be4aae0.entry.js} +2 -2
  157. package/dist/core/{p-781e8391.entry.js → p-3d9eca50.entry.js} +2 -2
  158. package/dist/core/{p-92a858f7.entry.js → p-40fc7162.entry.js} +2 -2
  159. package/dist/core/{p-1440cdd1.js → p-45ebcb74.js} +2 -2
  160. package/dist/core/p-45ebcb74.js.map +1 -0
  161. package/dist/core/p-4e6f7cfe.entry.js +2 -0
  162. package/dist/core/p-4e6f7cfe.entry.js.map +1 -0
  163. package/dist/core/{p-db5c4969.entry.js → p-569a68c0.entry.js} +2 -2
  164. package/dist/core/{p-a5bb7bb0.entry.js → p-59d9ea22.entry.js} +2 -2
  165. package/dist/core/{p-c2b5e7b1.entry.js → p-5fea8f1c.entry.js} +2 -2
  166. package/dist/core/{p-c2b5e7b1.entry.js.map → p-5fea8f1c.entry.js.map} +1 -1
  167. package/dist/core/{p-2b9b9f6e.entry.js → p-66595f5f.entry.js} +2 -2
  168. package/dist/core/p-693a77bb.entry.js +2 -0
  169. package/dist/core/p-693a77bb.entry.js.map +1 -0
  170. package/dist/core/p-6b74397a.entry.js +2 -0
  171. package/dist/core/p-6b74397a.entry.js.map +1 -0
  172. package/dist/core/{p-6a7a5ed5.entry.js → p-6e697a16.entry.js} +2 -2
  173. package/dist/core/{p-7168b71a.entry.js → p-6f8fd43e.entry.js} +2 -2
  174. package/dist/core/{p-0970c8a1.entry.js → p-7f690fa3.entry.js} +2 -2
  175. package/dist/core/{p-992b6161.entry.js → p-96670e29.entry.js} +2 -2
  176. package/dist/core/{p-8100f45c.entry.js → p-9e69f517.entry.js} +2 -2
  177. package/dist/core/{p-0629691b.entry.js → p-9e7a5c72.entry.js} +2 -2
  178. package/dist/core/{p-cb7793b0.entry.js → p-9f8ef2bc.entry.js} +2 -2
  179. package/dist/core/{p-60ca1000.entry.js → p-a4585c7e.entry.js} +2 -2
  180. package/dist/core/{p-646b886c.entry.js → p-a589ead8.entry.js} +2 -2
  181. package/dist/core/{p-34cc7b3d.entry.js → p-a6d3743c.entry.js} +2 -2
  182. package/dist/core/{p-14b363d0.entry.js → p-a8c97918.entry.js} +2 -2
  183. package/dist/core/{p-a484c41c.entry.js → p-a970d653.entry.js} +2 -2
  184. package/dist/core/{p-6eafa62e.entry.js → p-ae7c2c39.entry.js} +2 -2
  185. package/dist/core/{p-87868dd2.entry.js → p-b3ed5423.entry.js} +2 -2
  186. package/dist/core/{p-eeae7272.entry.js → p-be4c0cc8.entry.js} +2 -2
  187. package/dist/core/{p-4ec1ce96.entry.js → p-c04f1bfb.entry.js} +2 -2
  188. package/dist/core/p-c04f1bfb.entry.js.map +1 -0
  189. package/dist/core/{p-6cf5343b.entry.js → p-d06c0049.entry.js} +2 -2
  190. package/dist/core/{p-66c26240.entry.js → p-d39239be.entry.js} +2 -2
  191. package/dist/core/{p-7e850bad.entry.js → p-d3ea79e1.entry.js} +2 -2
  192. package/dist/core/{p-ef996e40.entry.js → p-d448bdbd.entry.js} +2 -2
  193. package/dist/core/p-d44b7f21.entry.js +2 -0
  194. package/dist/core/p-d44b7f21.entry.js.map +1 -0
  195. package/dist/core/{p-2536b95b.entry.js → p-d5d36143.entry.js} +2 -2
  196. package/dist/core/p-d68e0c94.entry.js +2 -0
  197. package/dist/core/p-d68e0c94.entry.js.map +1 -0
  198. package/dist/core/{p-12120521.entry.js → p-d91428b4.entry.js} +2 -2
  199. package/dist/core/{p-34e72f79.entry.js → p-e191290c.entry.js} +2 -2
  200. package/dist/core/{p-e1e04f34.entry.js → p-e2421111.entry.js} +2 -2
  201. package/dist/core/{p-6c5c6aaf.entry.js → p-e393e53c.entry.js} +2 -2
  202. package/dist/core/{p-0cdd4c93.entry.js → p-e5b1dd58.entry.js} +2 -2
  203. package/dist/core/p-f6735e4a.js +2 -0
  204. package/dist/core/p-f6735e4a.js.map +1 -0
  205. package/dist/core/{p-3245554e.entry.js → p-fab8da25.entry.js} +2 -2
  206. package/dist/core/{p-0ecde7a8.entry.js → p-fb4219d6.entry.js} +2 -2
  207. package/dist/core/{p-06e0b5b6.entry.js → p-fc0eac8b.entry.js} +2 -2
  208. package/dist/core/{p-d67a5c90.entry.js → p-fdacc7f7.entry.js} +2 -2
  209. package/dist/core/{p-b7161816.entry.js → p-ffeca3c7.entry.js} +2 -2
  210. package/dist/esm/core.js +1 -1
  211. package/dist/esm/{helpers-4e2e4787.js → helpers-d41662f3.js} +5 -3
  212. package/dist/esm/helpers-d41662f3.js.map +1 -0
  213. package/dist/esm/{helpers-1cd71f8a.js → helpers-e75fd113.js} +79 -2
  214. package/dist/esm/helpers-e75fd113.js.map +1 -0
  215. package/dist/esm/ic-accordion-group.entry.js +1 -1
  216. package/dist/esm/ic-accordion.entry.js +1 -1
  217. package/dist/esm/ic-alert.entry.js +18 -2
  218. package/dist/esm/ic-alert.entry.js.map +1 -1
  219. package/dist/esm/ic-back-to-top.entry.js +1 -1
  220. package/dist/esm/ic-badge.entry.js +1 -1
  221. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  222. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  223. package/dist/esm/ic-button_3.entry.js +1 -1
  224. package/dist/esm/ic-card-horizontal.entry.js +127 -0
  225. package/dist/esm/ic-card-horizontal.entry.js.map +1 -0
  226. package/dist/esm/ic-card.entry.js +26 -2
  227. package/dist/esm/ic-card.entry.js.map +1 -1
  228. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  229. package/dist/esm/ic-checkbox.entry.js +1 -1
  230. package/dist/esm/ic-chip.entry.js +1 -1
  231. package/dist/esm/ic-classification-banner.entry.js +12 -3
  232. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  233. package/dist/esm/ic-data-row.entry.js +1 -1
  234. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  235. package/dist/esm/ic-data-table.entry.js +1 -1
  236. package/dist/esm/ic-date-input.entry.js +1 -1
  237. package/dist/esm/ic-date-picker.entry.js +11 -4
  238. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  239. package/dist/esm/ic-dialog.entry.js +1 -1
  240. package/dist/esm/ic-divider.entry.js +1 -1
  241. package/dist/esm/ic-empty-state_2.entry.js +22 -3
  242. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  243. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  244. package/dist/esm/ic-footer-link.entry.js +1 -1
  245. package/dist/esm/ic-footer.entry.js +1 -1
  246. package/dist/esm/ic-hero.entry.js +18 -2
  247. package/dist/esm/ic-hero.entry.js.map +1 -1
  248. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  249. package/dist/esm/ic-input-component-container_4.entry.js +1 -1
  250. package/dist/esm/ic-link.entry.js +1 -1
  251. package/dist/esm/ic-menu-group.entry.js +1 -1
  252. package/dist/esm/ic-menu-item.entry.js +1 -1
  253. package/dist/esm/ic-menu-with-multi.entry.js +1 -1
  254. package/dist/esm/ic-menu.entry.js +1 -1
  255. package/dist/esm/ic-navigation-button.entry.js +1 -1
  256. package/dist/esm/ic-navigation-group.entry.js +1 -1
  257. package/dist/esm/ic-navigation-item.entry.js +1 -1
  258. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  259. package/dist/esm/ic-page-header.entry.js +1 -1
  260. package/dist/esm/ic-pagination_4.entry.js +1 -1
  261. package/dist/esm/ic-popover-menu.entry.js +1 -1
  262. package/dist/esm/ic-radio-group.entry.js +1 -1
  263. package/dist/esm/ic-radio-option.entry.js +1 -1
  264. package/dist/esm/ic-search-bar.entry.js +1 -1
  265. package/dist/esm/ic-select-with-multi.entry.js +1 -29
  266. package/dist/esm/ic-select-with-multi.entry.js.map +1 -1
  267. package/dist/esm/ic-side-navigation.entry.js +1 -1
  268. package/dist/esm/ic-status-tag.entry.js +1 -1
  269. package/dist/esm/ic-step.entry.js +1 -1
  270. package/dist/esm/ic-stepper.entry.js +1 -1
  271. package/dist/esm/ic-switch.entry.js +1 -1
  272. package/dist/esm/ic-tab-group.entry.js +1 -1
  273. package/dist/esm/ic-tab-panel.entry.js +1 -1
  274. package/dist/esm/ic-tab.entry.js +1 -1
  275. package/dist/esm/ic-theme.entry.js +1 -1
  276. package/dist/esm/ic-toast.entry.js +1 -1
  277. package/dist/esm/ic-toggle-button.entry.js +1 -1
  278. package/dist/esm/ic-top-navigation.entry.js +1 -1
  279. package/dist/esm/ic-typography.entry.js +1 -1
  280. package/dist/esm/index-93509377.js +4 -0
  281. package/dist/esm/loader.js +1 -1
  282. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +71 -0
  283. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.types.d.ts +1 -0
  284. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +1 -0
  285. package/dist/types/components.d.ts +99 -0
  286. package/dist/types/utils/helpers.d.ts +1 -0
  287. package/hydrate/index.js +1038 -753
  288. package/package.json +3 -3
  289. package/dist/cjs/helpers-73d277d1.js.map +0 -1
  290. package/dist/cjs/helpers-fc9441f8.js.map +0 -1
  291. package/dist/core/p-1440cdd1.js.map +0 -1
  292. package/dist/core/p-20d4ded5.js +0 -2
  293. package/dist/core/p-20d4ded5.js.map +0 -1
  294. package/dist/core/p-352b9c17.entry.js +0 -2
  295. package/dist/core/p-352b9c17.entry.js.map +0 -1
  296. package/dist/core/p-3fa986f8.entry.js +0 -2
  297. package/dist/core/p-3fa986f8.entry.js.map +0 -1
  298. package/dist/core/p-4ec1ce96.entry.js.map +0 -1
  299. package/dist/core/p-9769c195.entry.js +0 -2
  300. package/dist/core/p-9769c195.entry.js.map +0 -1
  301. package/dist/core/p-cb15d0b6.entry.js +0 -2
  302. package/dist/core/p-cb15d0b6.entry.js.map +0 -1
  303. package/dist/core/p-e32cce28.entry.js +0 -2
  304. package/dist/core/p-e32cce28.entry.js.map +0 -1
  305. package/dist/esm/helpers-1cd71f8a.js.map +0 -1
  306. package/dist/esm/helpers-4e2e4787.js.map +0 -1
  307. /package/dist/core/{p-edf3411a.entry.js.map → p-007da09d.entry.js.map} +0 -0
  308. /package/dist/core/{p-0a99994a.entry.js.map → p-01008e8d.entry.js.map} +0 -0
  309. /package/dist/core/{p-4c57eef0.entry.js.map → p-01297278.entry.js.map} +0 -0
  310. /package/dist/core/{p-3eb33ef4.entry.js.map → p-0551f0cf.entry.js.map} +0 -0
  311. /package/dist/core/{p-24f9f6d4.entry.js.map → p-0944d33b.entry.js.map} +0 -0
  312. /package/dist/core/{p-d3e186a3.entry.js.map → p-0ea28e7a.entry.js.map} +0 -0
  313. /package/dist/core/{p-b8d3f121.entry.js.map → p-169bcf0f.entry.js.map} +0 -0
  314. /package/dist/core/{p-47c91e08.entry.js.map → p-1733278a.entry.js.map} +0 -0
  315. /package/dist/core/{p-4883e147.entry.js.map → p-1ac733c1.entry.js.map} +0 -0
  316. /package/dist/core/{p-94ce6f29.entry.js.map → p-1d0cff8a.entry.js.map} +0 -0
  317. /package/dist/core/{p-e2387530.entry.js.map → p-2647931d.entry.js.map} +0 -0
  318. /package/dist/core/{p-0b14be10.entry.js.map → p-32a3b6c8.entry.js.map} +0 -0
  319. /package/dist/core/{p-a1369740.entry.js.map → p-354e5dbe.entry.js.map} +0 -0
  320. /package/dist/core/{p-af21360a.entry.js.map → p-3be4aae0.entry.js.map} +0 -0
  321. /package/dist/core/{p-781e8391.entry.js.map → p-3d9eca50.entry.js.map} +0 -0
  322. /package/dist/core/{p-92a858f7.entry.js.map → p-40fc7162.entry.js.map} +0 -0
  323. /package/dist/core/{p-db5c4969.entry.js.map → p-569a68c0.entry.js.map} +0 -0
  324. /package/dist/core/{p-a5bb7bb0.entry.js.map → p-59d9ea22.entry.js.map} +0 -0
  325. /package/dist/core/{p-2b9b9f6e.entry.js.map → p-66595f5f.entry.js.map} +0 -0
  326. /package/dist/core/{p-6a7a5ed5.entry.js.map → p-6e697a16.entry.js.map} +0 -0
  327. /package/dist/core/{p-7168b71a.entry.js.map → p-6f8fd43e.entry.js.map} +0 -0
  328. /package/dist/core/{p-0970c8a1.entry.js.map → p-7f690fa3.entry.js.map} +0 -0
  329. /package/dist/core/{p-992b6161.entry.js.map → p-96670e29.entry.js.map} +0 -0
  330. /package/dist/core/{p-8100f45c.entry.js.map → p-9e69f517.entry.js.map} +0 -0
  331. /package/dist/core/{p-0629691b.entry.js.map → p-9e7a5c72.entry.js.map} +0 -0
  332. /package/dist/core/{p-cb7793b0.entry.js.map → p-9f8ef2bc.entry.js.map} +0 -0
  333. /package/dist/core/{p-60ca1000.entry.js.map → p-a4585c7e.entry.js.map} +0 -0
  334. /package/dist/core/{p-646b886c.entry.js.map → p-a589ead8.entry.js.map} +0 -0
  335. /package/dist/core/{p-34cc7b3d.entry.js.map → p-a6d3743c.entry.js.map} +0 -0
  336. /package/dist/core/{p-14b363d0.entry.js.map → p-a8c97918.entry.js.map} +0 -0
  337. /package/dist/core/{p-a484c41c.entry.js.map → p-a970d653.entry.js.map} +0 -0
  338. /package/dist/core/{p-6eafa62e.entry.js.map → p-ae7c2c39.entry.js.map} +0 -0
  339. /package/dist/core/{p-87868dd2.entry.js.map → p-b3ed5423.entry.js.map} +0 -0
  340. /package/dist/core/{p-eeae7272.entry.js.map → p-be4c0cc8.entry.js.map} +0 -0
  341. /package/dist/core/{p-6cf5343b.entry.js.map → p-d06c0049.entry.js.map} +0 -0
  342. /package/dist/core/{p-66c26240.entry.js.map → p-d39239be.entry.js.map} +0 -0
  343. /package/dist/core/{p-7e850bad.entry.js.map → p-d3ea79e1.entry.js.map} +0 -0
  344. /package/dist/core/{p-ef996e40.entry.js.map → p-d448bdbd.entry.js.map} +0 -0
  345. /package/dist/core/{p-2536b95b.entry.js.map → p-d5d36143.entry.js.map} +0 -0
  346. /package/dist/core/{p-12120521.entry.js.map → p-d91428b4.entry.js.map} +0 -0
  347. /package/dist/core/{p-34e72f79.entry.js.map → p-e191290c.entry.js.map} +0 -0
  348. /package/dist/core/{p-e1e04f34.entry.js.map → p-e2421111.entry.js.map} +0 -0
  349. /package/dist/core/{p-6c5c6aaf.entry.js.map → p-e393e53c.entry.js.map} +0 -0
  350. /package/dist/core/{p-0cdd4c93.entry.js.map → p-e5b1dd58.entry.js.map} +0 -0
  351. /package/dist/core/{p-3245554e.entry.js.map → p-fab8da25.entry.js.map} +0 -0
  352. /package/dist/core/{p-0ecde7a8.entry.js.map → p-fb4219d6.entry.js.map} +0 -0
  353. /package/dist/core/{p-06e0b5b6.entry.js.map → p-fc0eac8b.entry.js.map} +0 -0
  354. /package/dist/core/{p-d67a5c90.entry.js.map → p-fdacc7f7.entry.js.map} +0 -0
  355. /package/dist/core/{p-b7161816.entry.js.map → p-ffeca3c7.entry.js.map} +0 -0
@@ -0,0 +1,373 @@
1
+ import { h, forceUpdate, } from "@stencil/core";
2
+ import { onComponentRequiredPropUndefined, isSlotUsed, getThemeFromContext, removeDisabledFalse, checkSlotInChildMutations, } from "../../utils/helpers";
3
+ import { IcThemeForegroundEnum, } from "../../utils/types";
4
+ /**
5
+ * @slot heading - Content will be placed at the top of the horizontal card to the right of the icon.
6
+ * @slot message - Content will be placed in the main body of the horizontal card.
7
+ * @slot image - Content will be placed to the left of all other content.
8
+ * @slot icon - Content will be placed to the left of the horizontal card heading.
9
+ * @slot badge - Badge component overlaying the top right of the horizontal card.
10
+ */
11
+ export class Card {
12
+ constructor() {
13
+ this.hostMutationObserver = null;
14
+ this.hostMutationCallback = (mutationList) => {
15
+ if (mutationList.some(({ type, addedNodes, removedNodes }) => type === "childList"
16
+ ? checkSlotInChildMutations(addedNodes, removedNodes, "image")
17
+ : false)) {
18
+ forceUpdate(this);
19
+ }
20
+ };
21
+ this.parentFocussed = () => {
22
+ this.isFocussed = true;
23
+ };
24
+ this.parentBlurred = () => {
25
+ this.isFocussed = false;
26
+ };
27
+ this.appearance = "default";
28
+ this.isFocussed = false;
29
+ this.parentEl = null;
30
+ this.parentIsAnchorTag = false;
31
+ this.clickable = false;
32
+ this.disabled = false;
33
+ this.heading = undefined;
34
+ this.href = undefined;
35
+ this.hreflang = "";
36
+ this.message = "";
37
+ this.referrerpolicy = undefined;
38
+ this.rel = undefined;
39
+ this.size = "medium";
40
+ this.target = undefined;
41
+ }
42
+ disconnectedCallback() {
43
+ var _a;
44
+ if (this.parentIsAnchorTag) {
45
+ this.parentEl.removeEventListener("focus", this.parentFocussed);
46
+ this.parentEl.removeEventListener("blur", this.parentBlurred);
47
+ }
48
+ (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
49
+ }
50
+ componentWillLoad() {
51
+ this.parentEl = this.el.parentElement;
52
+ if (this.parentEl.tagName === "A") {
53
+ this.clickable = true;
54
+ this.parentIsAnchorTag = true;
55
+ this.parentEl.classList.add("ic-card-wrapper-link");
56
+ this.parentEl.addEventListener("focus", this.parentFocussed);
57
+ this.parentEl.addEventListener("blur", this.parentBlurred);
58
+ }
59
+ removeDisabledFalse(this.disabled, this.el);
60
+ }
61
+ componentDidLoad() {
62
+ !isSlotUsed(this.el, "heading") &&
63
+ onComponentRequiredPropUndefined([{ prop: this.heading, propName: "heading" }], "Card");
64
+ this.updateTheme();
65
+ this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);
66
+ this.hostMutationObserver.observe(this.el, {
67
+ childList: true,
68
+ });
69
+ }
70
+ handleHostClick(event) {
71
+ if (this.disabled) {
72
+ event.stopImmediatePropagation();
73
+ }
74
+ }
75
+ themeChangeHandler(ev) {
76
+ const theme = ev.detail;
77
+ this.updateTheme(theme.mode);
78
+ }
79
+ /**
80
+ * Sets focus on the card.
81
+ */
82
+ async setFocus() {
83
+ if (this.el.shadowRoot.querySelector("a")) {
84
+ this.el.shadowRoot.querySelector("a").focus();
85
+ }
86
+ else if (this.el.shadowRoot.querySelector("button")) {
87
+ this.el.shadowRoot.querySelector("button").focus();
88
+ }
89
+ }
90
+ updateTheme(newTheme = null) {
91
+ const foregroundColor = getThemeFromContext(this.el, newTheme || null);
92
+ if (foregroundColor !== IcThemeForegroundEnum.Default) {
93
+ this.appearance = foregroundColor;
94
+ }
95
+ }
96
+ render() {
97
+ const { clickable, disabled, heading, message, href, hreflang, referrerpolicy, rel, target, parentIsAnchorTag, isFocussed, size, } = this;
98
+ const Component = parentIsAnchorTag
99
+ ? "div"
100
+ : clickable
101
+ ? this.href === undefined
102
+ ? "button"
103
+ : "a"
104
+ : "div";
105
+ const attrs = Component == "a" && {
106
+ href: href,
107
+ hrefLang: hreflang,
108
+ referrerPolicy: referrerpolicy,
109
+ rel: rel,
110
+ target: target,
111
+ };
112
+ return (h(Component, Object.assign({ class: {
113
+ ["card"]: true,
114
+ ["clickable"]: clickable && !disabled,
115
+ ["disabled"]: disabled,
116
+ ["focussed"]: isFocussed,
117
+ ["dark"]: this.appearance === IcThemeForegroundEnum.Dark,
118
+ [`${size}`]: true,
119
+ ["with-icon"]: isSlotUsed(this.el, "icon"),
120
+ ["with-image"]: isSlotUsed(this.el, "image"),
121
+ }, tabindex: clickable && !parentIsAnchorTag ? 0 : null, "aria-disabled": disabled ? "true" : null, disabled: disabled ? true : null }, attrs), isSlotUsed(this.el, "image") && (h("div", { class: { ["image"]: true } }, h("slot", { name: "image" }))), h("div", { class: "card-content" }, h("div", { class: "card-header" }, isSlotUsed(this.el, "icon") && (h("div", { class: "icon" }, h("slot", { name: "icon" }))), h("div", { class: "card-title" }, h("slot", { name: "heading" }, h("ic-typography", { variant: "h4" }, h("p", null, heading))))), (message || isSlotUsed(this.el, "message")) && (h("div", { class: {
122
+ ["card-message"]: true,
123
+ } }, message && (h("ic-typography", { variant: "body" }, message)), isSlotUsed(this.el, "message") && h("slot", { name: "message" })))), isSlotUsed(this.el, "badge") && h("slot", { name: "badge" })));
124
+ }
125
+ static get is() { return "ic-card-horizontal"; }
126
+ static get encapsulation() { return "shadow"; }
127
+ static get originalStyleUrls() {
128
+ return {
129
+ "$": ["ic-card-horizontal.css"]
130
+ };
131
+ }
132
+ static get styleUrls() {
133
+ return {
134
+ "$": ["ic-card-horizontal.css"]
135
+ };
136
+ }
137
+ static get properties() {
138
+ return {
139
+ "clickable": {
140
+ "type": "boolean",
141
+ "mutable": true,
142
+ "complexType": {
143
+ "original": "boolean",
144
+ "resolved": "boolean",
145
+ "references": {}
146
+ },
147
+ "required": false,
148
+ "optional": true,
149
+ "docs": {
150
+ "tags": [],
151
+ "text": "If `true`, the horizontal card will be a clickable variant, instead of static."
152
+ },
153
+ "attribute": "clickable",
154
+ "reflect": false,
155
+ "defaultValue": "false"
156
+ },
157
+ "disabled": {
158
+ "type": "boolean",
159
+ "mutable": false,
160
+ "complexType": {
161
+ "original": "boolean",
162
+ "resolved": "boolean",
163
+ "references": {}
164
+ },
165
+ "required": false,
166
+ "optional": true,
167
+ "docs": {
168
+ "tags": [],
169
+ "text": "If `true`, the horizontal card will be disabled if it is clickable."
170
+ },
171
+ "attribute": "disabled",
172
+ "reflect": false,
173
+ "defaultValue": "false"
174
+ },
175
+ "heading": {
176
+ "type": "string",
177
+ "mutable": false,
178
+ "complexType": {
179
+ "original": "string",
180
+ "resolved": "string",
181
+ "references": {}
182
+ },
183
+ "required": false,
184
+ "optional": true,
185
+ "docs": {
186
+ "tags": [],
187
+ "text": "The heading for the horizontal card. This is required, unless a slotted heading is used."
188
+ },
189
+ "attribute": "heading",
190
+ "reflect": false
191
+ },
192
+ "href": {
193
+ "type": "string",
194
+ "mutable": false,
195
+ "complexType": {
196
+ "original": "string | undefined",
197
+ "resolved": "string",
198
+ "references": {}
199
+ },
200
+ "required": false,
201
+ "optional": true,
202
+ "docs": {
203
+ "tags": [],
204
+ "text": "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."
205
+ },
206
+ "attribute": "href",
207
+ "reflect": false
208
+ },
209
+ "hreflang": {
210
+ "type": "string",
211
+ "mutable": false,
212
+ "complexType": {
213
+ "original": "string",
214
+ "resolved": "string",
215
+ "references": {}
216
+ },
217
+ "required": false,
218
+ "optional": true,
219
+ "docs": {
220
+ "tags": [],
221
+ "text": "The human language of the linked URL."
222
+ },
223
+ "attribute": "hreflang",
224
+ "reflect": false,
225
+ "defaultValue": "\"\""
226
+ },
227
+ "message": {
228
+ "type": "string",
229
+ "mutable": false,
230
+ "complexType": {
231
+ "original": "string",
232
+ "resolved": "string",
233
+ "references": {}
234
+ },
235
+ "required": false,
236
+ "optional": true,
237
+ "docs": {
238
+ "tags": [],
239
+ "text": "The main body message of the horizontal card."
240
+ },
241
+ "attribute": "message",
242
+ "reflect": false,
243
+ "defaultValue": "\"\""
244
+ },
245
+ "referrerpolicy": {
246
+ "type": "string",
247
+ "mutable": false,
248
+ "complexType": {
249
+ "original": "ReferrerPolicy",
250
+ "resolved": "\"\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\"",
251
+ "references": {
252
+ "ReferrerPolicy": {
253
+ "location": "global",
254
+ "id": "global::ReferrerPolicy"
255
+ }
256
+ }
257
+ },
258
+ "required": false,
259
+ "optional": true,
260
+ "docs": {
261
+ "tags": [],
262
+ "text": "How much of the referrer to send when following the link."
263
+ },
264
+ "attribute": "referrerpolicy",
265
+ "reflect": false
266
+ },
267
+ "rel": {
268
+ "type": "string",
269
+ "mutable": false,
270
+ "complexType": {
271
+ "original": "string",
272
+ "resolved": "string",
273
+ "references": {}
274
+ },
275
+ "required": false,
276
+ "optional": true,
277
+ "docs": {
278
+ "tags": [],
279
+ "text": "The relationship of the linked URL as space-separated link types."
280
+ },
281
+ "attribute": "rel",
282
+ "reflect": false
283
+ },
284
+ "size": {
285
+ "type": "string",
286
+ "mutable": false,
287
+ "complexType": {
288
+ "original": "IcCardSizes",
289
+ "resolved": "\"extra-large\" | \"large\" | \"medium\" | \"small\"",
290
+ "references": {
291
+ "IcCardSizes": {
292
+ "location": "import",
293
+ "path": "./ic-card-horizontal.types",
294
+ "id": "src/components/ic-card-horizontal/ic-card-horizontal.types.ts::IcCardSizes"
295
+ }
296
+ }
297
+ },
298
+ "required": false,
299
+ "optional": false,
300
+ "docs": {
301
+ "tags": [],
302
+ "text": "The size of the horizontal card."
303
+ },
304
+ "attribute": "size",
305
+ "reflect": false,
306
+ "defaultValue": "\"medium\""
307
+ },
308
+ "target": {
309
+ "type": "string",
310
+ "mutable": false,
311
+ "complexType": {
312
+ "original": "string",
313
+ "resolved": "string",
314
+ "references": {}
315
+ },
316
+ "required": false,
317
+ "optional": true,
318
+ "docs": {
319
+ "tags": [],
320
+ "text": "The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe)."
321
+ },
322
+ "attribute": "target",
323
+ "reflect": false
324
+ }
325
+ };
326
+ }
327
+ static get states() {
328
+ return {
329
+ "appearance": {},
330
+ "isFocussed": {},
331
+ "parentEl": {},
332
+ "parentIsAnchorTag": {}
333
+ };
334
+ }
335
+ static get methods() {
336
+ return {
337
+ "setFocus": {
338
+ "complexType": {
339
+ "signature": "() => Promise<void>",
340
+ "parameters": [],
341
+ "references": {
342
+ "Promise": {
343
+ "location": "global",
344
+ "id": "global::Promise"
345
+ }
346
+ },
347
+ "return": "Promise<void>"
348
+ },
349
+ "docs": {
350
+ "text": "Sets focus on the card.",
351
+ "tags": []
352
+ }
353
+ }
354
+ };
355
+ }
356
+ static get elementRef() { return "el"; }
357
+ static get listeners() {
358
+ return [{
359
+ "name": "click",
360
+ "method": "handleHostClick",
361
+ "target": undefined,
362
+ "capture": true,
363
+ "passive": false
364
+ }, {
365
+ "name": "themeChange",
366
+ "method": "themeChangeHandler",
367
+ "target": "document",
368
+ "capture": false,
369
+ "passive": false
370
+ }];
371
+ }
372
+ }
373
+ //# sourceMappingURL=ic-card-horizontal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-card-horizontal.js","sourceRoot":"","sources":["../../../src/components/ic-card-horizontal/ic-card-horizontal.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Listen,\n Prop,\n State,\n h,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n getThemeFromContext,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { IcCardSizes } from \"./ic-card-horizontal.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 image - Content will be placed to the left of all other content.\n * @slot icon - Content will be placed to the left of the horizontal card heading.\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;\n\n @Element() el: HTMLIcCardHorizontalElement;\n\n @State() appearance?: IcThemeForeground = \"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 * If `true`, the horizontal card will be disabled if it is clickable.\n */\n @Prop() disabled?: boolean = false;\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: IcCardSizes = \"medium\";\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 disconnectedCallback(): void {\n if (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(this.hostMutationCallback);\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(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.updateTheme(theme.mode);\n }\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n } else if (this.el.shadowRoot.querySelector(\"button\")) {\n this.el.shadowRoot.querySelector(\"button\").focus();\n }\n }\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, \"image\")\n : false\n )\n ) {\n forceUpdate(this);\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(newTheme: IcThemeForeground = null): void {\n const foregroundColor = getThemeFromContext(this.el, newTheme || null);\n\n if (foregroundColor !== IcThemeForegroundEnum.Default) {\n this.appearance = foregroundColor;\n }\n }\n\n render() {\n const {\n clickable,\n disabled,\n heading,\n message,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n parentIsAnchorTag,\n isFocussed,\n size,\n } = this;\n\n const Component = parentIsAnchorTag\n ? \"div\"\n : clickable\n ? this.href === undefined\n ? \"button\"\n : \"a\"\n : \"div\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n return (\n <Component\n class={{\n [\"card\"]: true,\n [\"clickable\"]: clickable && !disabled,\n [\"disabled\"]: disabled,\n [\"focussed\"]: isFocussed,\n [\"dark\"]: this.appearance === IcThemeForegroundEnum.Dark,\n [`${size}`]: true,\n [\"with-icon\"]: isSlotUsed(this.el, \"icon\"),\n [\"with-image\"]: isSlotUsed(this.el, \"image\"),\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : null}\n aria-disabled={disabled ? \"true\" : null}\n disabled={disabled ? true : null}\n {...attrs}\n >\n {isSlotUsed(this.el, \"image\") && (\n <div class={{ [\"image\"]: true }}>\n <slot name=\"image\"></slot>\n </div>\n )}\n <div class=\"card-content\">\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div class=\"card-title\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n </div>\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div\n class={{\n [\"card-message\"]: true,\n }}\n >\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 </Component>\n );\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ic-card-horizontal.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-card-horizontal.types.js","sourceRoot":"","sources":["../../../src/components/ic-card-horizontal/ic-card-horizontal.types.ts"],"names":[],"mappings":"","sourcesContent":["export type IcCardSizes = \"small\" | \"medium\" | \"large\" | \"extra-large\";\n"]}
@@ -0,0 +1,130 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { Card } from "../../ic-card-horizontal";
3
+ import { IcTypography as Typography } from "@ukic/web-components/dist/components/ic-typography";
4
+ describe("ic-card-horizontal", () => {
5
+ it("should render", async () => {
6
+ const page = await newSpecPage({
7
+ components: [Card],
8
+ html: `<ic-card-horizontal heading="Card" message="This is a static card"></ic-card-horizontal>`,
9
+ });
10
+ expect(page.root).toMatchSnapshot();
11
+ });
12
+ it("should render small", async () => {
13
+ const page = await newSpecPage({
14
+ components: [Card],
15
+ html: `<ic-card-horizontal heading="Card" message="This is a static card" size="small"></ic-card-horizontal>`,
16
+ });
17
+ expect(page.root).toMatchSnapshot();
18
+ });
19
+ it("should render large", async () => {
20
+ const page = await newSpecPage({
21
+ components: [Card],
22
+ html: `<ic-card-horizontal heading="Card" message="This is a static card" size="large"></ic-card-horizontal>`,
23
+ });
24
+ expect(page.root).toMatchSnapshot();
25
+ });
26
+ it("should render extra large", async () => {
27
+ const page = await newSpecPage({
28
+ components: [Card],
29
+ html: `<ic-card-horizontal heading="Card" message="This is a static card" size="extra large"></ic-card-horizontal>`,
30
+ });
31
+ expect(page.root).toMatchSnapshot();
32
+ });
33
+ it("should render as a button", async () => {
34
+ const page = await newSpecPage({
35
+ components: [Card],
36
+ html: `<ic-card-horizontal heading="Card" message="This is a clickable card rendered as a button" clickable=true></ic-card-horizontal>`,
37
+ });
38
+ expect(page.root).toMatchSnapshot();
39
+ });
40
+ it("should render as a link", async () => {
41
+ const page = await newSpecPage({
42
+ components: [Card],
43
+ html: `<ic-card-horizontal heading="Card" message="This is a clickable card rendered as a button" clickable=true href="/"></ic-card-horizontal>`,
44
+ });
45
+ expect(page.root).toMatchSnapshot();
46
+ });
47
+ it("should render with a link parent", async () => {
48
+ const page = await newSpecPage({
49
+ components: [Card],
50
+ html: `<a href="/"><ic-card-horizontal heading="Card" message="This is a clickable card" clickable=true></ic-card-horizontal></a>`,
51
+ });
52
+ expect(page.root).toMatchSnapshot();
53
+ });
54
+ it("should apply 'focussed' style when parent is focussed", async () => {
55
+ const page = await newSpecPage({
56
+ components: [Card],
57
+ html: `<a href="/"><ic-card-horizontal id="test-id" heading="Card" message="This is a clickable card" clickable=true></ic-card-horizontal></a>`,
58
+ });
59
+ expect(page.root).not.toBeNull;
60
+ const element = await document.getElementById("test-id");
61
+ await expect(element.classList.contains("focussed")).toBeFalsy;
62
+ await element.focus();
63
+ await expect(element.classList.contains("focussed")).toBeTruthy;
64
+ });
65
+ it("should lose 'focussed' style when parent loses focus", async () => {
66
+ const page = await newSpecPage({
67
+ components: [Card],
68
+ html: `<a href="/"><ic-card-horizontal id="test-card" heading="Card" message="This is a clickable card" clickable=true></ic-card-horizontal></a>`,
69
+ });
70
+ expect(page.root).not.toBeNull;
71
+ const element = await document.getElementById("test-card");
72
+ await element.focus();
73
+ await expect(element.classList.contains("focussed")).toBeTruthy;
74
+ await element.blur();
75
+ await expect(element.classList.contains("focussed")).toBeFalsy;
76
+ await page.rootInstance.disconnectedCallback();
77
+ });
78
+ it("should stop immediate propagation of a click event when disabled", async () => {
79
+ const page = await newSpecPage({
80
+ components: [Card],
81
+ html: `<ic-card-horizontal id="test-card" heading="Card" message="This is a clickable card" clickable=true disabled=true onclick="alert('test')"></ic-card-horizontal>`,
82
+ });
83
+ jest.spyOn(window, "alert").mockImplementation();
84
+ const element = await document.getElementById("test-card");
85
+ element.click();
86
+ await page.waitForChanges();
87
+ await expect(window.alert).not.toHaveBeenCalled;
88
+ });
89
+ it("should render with an image", async () => {
90
+ const page = await newSpecPage({
91
+ components: [Card],
92
+ html: `<ic-card-horizontal id="test-card" heading="Card" message="This is a card"><div slot="image">Image placeholder</div></ic-card-horizontal>`,
93
+ });
94
+ expect(page.root).toMatchSnapshot();
95
+ });
96
+ it("should render with an icon", async () => {
97
+ const page = await newSpecPage({
98
+ components: [Card],
99
+ html: `<ic-card-horizontal id="test-card" heading="Card" message="This is a card"><div slot="icon">Image placeholder</div></ic-card-horizontal>`,
100
+ });
101
+ expect(page.root).toMatchSnapshot();
102
+ });
103
+ it("should render with a slotted heading and message", async () => {
104
+ const page = await newSpecPage({
105
+ components: [Card, Typography],
106
+ html: `<ic-card-horizontal id="test-card">
107
+ <ic-typography slot="heading">Heading</ic-typography>
108
+ <ic-typography slot="message">Message</ic-typography>
109
+ </ic-card-horizontal>`,
110
+ });
111
+ expect(page.root).toMatchSnapshot();
112
+ });
113
+ it("should call 'setFocus' when card as a button is focused", async () => {
114
+ const page = await newSpecPage({
115
+ components: [Card],
116
+ html: `<ic-card-horizontal heading="Card" message="This is a clickable card rendered as a button" clickable=true></ic-card-horizontal>`,
117
+ });
118
+ //Can't expect anything in this test - this is to increase code coverage only
119
+ await page.rootInstance.setFocus().toHaveBeenCalled;
120
+ });
121
+ it("should call 'setFocus' when card as a link is focused", async () => {
122
+ const page = await newSpecPage({
123
+ components: [Card],
124
+ html: `<ic-card-horizontal heading="Card" message="This is a clickable card rendered as a button" clickable=true href="/"></ic-card-horizontal>`,
125
+ });
126
+ //Can't expect anything in this test - this is to increase code coverage only
127
+ await page.rootInstance.setFocus().toHaveBeenCalled;
128
+ });
129
+ });
130
+ //# sourceMappingURL=ic-card-horizontal.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-card-horizontal.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Card } from \"../../ic-card-horizontal\";\nimport { IcTypography as Typography } from \"@ukic/web-components/dist/components/ic-typography\";\n\ndescribe(\"ic-card-horizontal\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal heading=\"Card\" message=\"This is a static card\"></ic-card-horizontal>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render small\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal heading=\"Card\" message=\"This is a static card\" size=\"small\"></ic-card-horizontal>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render large\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal heading=\"Card\" message=\"This is a static card\" size=\"large\"></ic-card-horizontal>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render extra large\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal heading=\"Card\" message=\"This is a static card\" size=\"extra large\"></ic-card-horizontal>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as a button\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true></ic-card-horizontal>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as a link\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true href=\"/\"></ic-card-horizontal>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a link parent\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<a href=\"/\"><ic-card-horizontal heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card-horizontal></a>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should apply 'focussed' style when parent is focussed\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<a href=\"/\"><ic-card-horizontal id=\"test-id\" heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card-horizontal></a>`,\n });\n\n expect(page.root).not.toBeNull;\n\n const element = await document.getElementById(\"test-id\");\n\n await expect(element.classList.contains(\"focussed\")).toBeFalsy;\n\n await element.focus();\n\n await expect(element.classList.contains(\"focussed\")).toBeTruthy;\n });\n\n it(\"should lose 'focussed' style when parent loses focus\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<a href=\"/\"><ic-card-horizontal id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card-horizontal></a>`,\n });\n\n expect(page.root).not.toBeNull;\n\n const element = await document.getElementById(\"test-card\");\n\n await element.focus();\n\n await expect(element.classList.contains(\"focussed\")).toBeTruthy;\n\n await element.blur();\n\n await expect(element.classList.contains(\"focussed\")).toBeFalsy;\n\n await page.rootInstance.disconnectedCallback();\n });\n\n it(\"should stop immediate propagation of a click event when disabled\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" clickable=true disabled=true onclick=\"alert('test')\"></ic-card-horizontal>`,\n });\n\n jest.spyOn(window, \"alert\").mockImplementation();\n\n const element = await document.getElementById(\"test-card\");\n\n element.click();\n\n await page.waitForChanges();\n\n await expect(window.alert).not.toHaveBeenCalled;\n });\n\n it(\"should render with an image\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal id=\"test-card\" heading=\"Card\" message=\"This is a card\"><div slot=\"image\">Image placeholder</div></ic-card-horizontal>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with an icon\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal id=\"test-card\" heading=\"Card\" message=\"This is a card\"><div slot=\"icon\">Image placeholder</div></ic-card-horizontal>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a slotted heading and message\", async () => {\n const page = await newSpecPage({\n components: [Card, Typography],\n html: `<ic-card-horizontal id=\"test-card\">\n <ic-typography slot=\"heading\">Heading</ic-typography>\n <ic-typography slot=\"message\">Message</ic-typography>\n </ic-card-horizontal>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should call 'setFocus' when card as a button is focused\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true></ic-card-horizontal>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should call 'setFocus' when card as a link is focused\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card-horizontal heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true href=\"/\"></ic-card-horizontal>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n});\n"]}
@@ -765,6 +765,14 @@ export class DatePicker {
765
765
  this.minDate = createDate(this.min, this.dateFormat);
766
766
  }
767
767
  }
768
+ watchStartOfWeekHandler() {
769
+ this.orderedDaysOfWeek = this.daysOfWeek
770
+ .slice(this.startOfWeek)
771
+ .concat(this.daysOfWeek.slice(0, this.startOfWeek));
772
+ if (this.calendarOpen) {
773
+ this.updateMonthInView();
774
+ }
775
+ }
768
776
  watchOpenHandler() {
769
777
  if (this.calendarOpen) {
770
778
  if (this.inputEl) {
@@ -844,9 +852,7 @@ export class DatePicker {
844
852
  onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Date Picker");
845
853
  this.monthNames = stringEnumToArray(IcDateInputMonths);
846
854
  this.daysOfWeek = stringEnumToArray(IcShortDayNames);
847
- this.orderedDaysOfWeek = this.daysOfWeek
848
- .splice(this.startOfWeek, this.daysOfWeek.length)
849
- .concat(this.daysOfWeek.splice(0, this.startOfWeek));
855
+ this.watchStartOfWeekHandler();
850
856
  this.watchMaxHandler();
851
857
  this.watchMinHandler();
852
858
  }
@@ -1473,6 +1479,9 @@ export class DatePicker {
1473
1479
  }, {
1474
1480
  "propName": "min",
1475
1481
  "methodName": "watchMinHandler"
1482
+ }, {
1483
+ "propName": "startOfWeek",
1484
+ "methodName": "watchStartOfWeekHandler"
1476
1485
  }, {
1477
1486
  "propName": "calendarOpen",
1478
1487
  "methodName": "watchOpenHandler"