@kirbydesign/designsystem 10.0.0 → 10.1.1

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 (304) hide show
  1. package/accordion/accordion-item.component.d.ts +7 -3
  2. package/badge/badge.component.d.ts +7 -1
  3. package/checkbox/checkbox.component.d.ts +5 -2
  4. package/esm2022/accordion/accordion-item.component.mjs +24 -7
  5. package/esm2022/accordion/accordion.directive.mjs +3 -3
  6. package/esm2022/accordion/accordion.module.mjs +4 -4
  7. package/esm2022/action-group/action-group.component.mjs +3 -3
  8. package/esm2022/avatar/avatar.component.mjs +3 -3
  9. package/esm2022/badge/badge.component.mjs +16 -4
  10. package/esm2022/button/button.component.mjs +5 -5
  11. package/esm2022/calendar/calendar.component.mjs +4 -4
  12. package/esm2022/calendar/helpers/calendar.helper.mjs +3 -3
  13. package/esm2022/card/card-as-button/card-as-button.directive.mjs +3 -3
  14. package/esm2022/card/card-footer/card-footer.component.mjs +3 -3
  15. package/esm2022/card/card-header/card-header.component.mjs +3 -3
  16. package/esm2022/card/card.component.mjs +4 -4
  17. package/esm2022/card/card.module.mjs +4 -4
  18. package/esm2022/chart/chart/chart.component.mjs +3 -3
  19. package/esm2022/chart/charts.module.mjs +4 -4
  20. package/esm2022/chart/shared/base-chart/base-chart.component.mjs +3 -3
  21. package/esm2022/chart/shared/chart-config-service/chart-config.service.mjs +3 -3
  22. package/esm2022/chart/shared/chart-js-service/chart-js.service.mjs +3 -3
  23. package/esm2022/chart/stock-chart/stock-chart-js.service.mjs +3 -3
  24. package/esm2022/chart/stock-chart/stock-chart.component.mjs +3 -3
  25. package/esm2022/checkbox/checkbox.component.mjs +26 -7
  26. package/esm2022/data-table/data-table.module.mjs +4 -4
  27. package/esm2022/data-table/sortable/sortable.component.mjs +3 -3
  28. package/esm2022/divider/divider.component.mjs +3 -3
  29. package/esm2022/dropdown/dropdown.component.mjs +5 -5
  30. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  31. package/esm2022/dropdown/keyboard-handler.service.mjs +3 -3
  32. package/esm2022/empty-state/empty-state.component.mjs +3 -3
  33. package/esm2022/empty-state/empty-state.module.mjs +4 -4
  34. package/esm2022/fab-sheet/fab-sheet.component.mjs +4 -4
  35. package/esm2022/flag/flag.component.mjs +3 -3
  36. package/esm2022/form-field/directives/affix/affix.directive.mjs +3 -3
  37. package/esm2022/form-field/directives/date/date-input.directive.mjs +3 -3
  38. package/esm2022/form-field/directives/decimal-mask/decimal-mask.directive.mjs +3 -3
  39. package/esm2022/form-field/form-field-message/form-field-message.component.mjs +3 -3
  40. package/esm2022/form-field/form-field.component.mjs +3 -3
  41. package/esm2022/form-field/form-field.module.mjs +4 -4
  42. package/esm2022/form-field/input/input.component.mjs +4 -4
  43. package/esm2022/form-field/input-counter/input-counter.component.mjs +3 -3
  44. package/esm2022/form-field/textarea/textarea.component.mjs +4 -4
  45. package/esm2022/header/header.component.mjs +15 -15
  46. package/esm2022/header/header.module.mjs +4 -4
  47. package/esm2022/helpers/ionic-element-part-helper.mjs +3 -3
  48. package/esm2022/helpers/line-clamp-helper.mjs +3 -3
  49. package/esm2022/helpers/platform.service.mjs +3 -3
  50. package/esm2022/icon/icon-registry.service.mjs +24 -8
  51. package/esm2022/icon/icon.component.mjs +3 -3
  52. package/esm2022/icon/icon.module.mjs +4 -4
  53. package/esm2022/icon/kirby-icon-settings.mjs +126 -115
  54. package/esm2022/item/item.component.mjs +8 -28
  55. package/esm2022/item/item.module.mjs +4 -4
  56. package/esm2022/item/label/label.component.mjs +3 -3
  57. package/esm2022/item-group/item-group.component.mjs +3 -3
  58. package/esm2022/item-sliding/item-sliding.component.mjs +3 -3
  59. package/esm2022/kirby-app/kirby-app.component.mjs +3 -3
  60. package/esm2022/kirby-app/kirby-app.module.mjs +4 -4
  61. package/esm2022/kirby-ionic-module/kirby-ionic.module.mjs +4 -4
  62. package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +5 -5
  63. package/esm2022/lib/directives/key-handler/key-handler.directive.mjs +3 -3
  64. package/esm2022/lib/directives/modal-router-link/modal-router-link.directive.mjs +3 -3
  65. package/esm2022/lib/kirby.module.mjs +4 -4
  66. package/esm2022/list/directives/infinite-scroll.directive.mjs +3 -3
  67. package/esm2022/list/directives/list-item-color.directive.mjs +3 -3
  68. package/esm2022/list/helpers/list-helper.mjs +3 -3
  69. package/esm2022/list/list-experimental/list-experimental.component.mjs +3 -3
  70. package/esm2022/list/list-header/list-header.component.mjs +3 -3
  71. package/esm2022/list/list-item/list-item.component.mjs +3 -3
  72. package/esm2022/list/list-section-header/list-section-header.component.mjs +3 -3
  73. package/esm2022/list/list.component.mjs +3 -3
  74. package/esm2022/list/list.directive.mjs +12 -12
  75. package/esm2022/list/list.module.mjs +4 -4
  76. package/esm2022/loading-overlay/loading-overlay.component.mjs +3 -3
  77. package/esm2022/loading-overlay/loading-overlay.service.mjs +3 -3
  78. package/esm2022/menu/menu.component.mjs +3 -3
  79. package/esm2022/modal/modal/action-sheet/action-sheet.component.mjs +5 -5
  80. package/esm2022/modal/modal/alert/alert.component.mjs +3 -3
  81. package/esm2022/modal/modal/footer/modal-footer.component.mjs +3 -3
  82. package/esm2022/modal/modal/modal-component/modal.component.mjs +3 -3
  83. package/esm2022/modal/modal/services/action-sheet.helper.mjs +3 -3
  84. package/esm2022/modal/modal/services/alert.helper.mjs +3 -3
  85. package/esm2022/modal/modal/services/can-dismiss.helper.mjs +3 -3
  86. package/esm2022/modal/modal/services/modal-animation-builder.service.mjs +3 -3
  87. package/esm2022/modal/modal/services/modal.controller.mjs +3 -3
  88. package/esm2022/modal/modal/services/modal.helper.mjs +3 -3
  89. package/esm2022/modal/modal-navigation.service.mjs +3 -3
  90. package/esm2022/modal/modal-wrapper/compact/modal-compact-wrapper.component.mjs +3 -3
  91. package/esm2022/modal/modal-wrapper/modal-wrapper.component.mjs +3 -3
  92. package/esm2022/modal/modal.interfaces.mjs +3 -3
  93. package/esm2022/page/page-footer/page-footer.component.mjs +3 -3
  94. package/esm2022/page/page.component.mjs +34 -34
  95. package/esm2022/page/page.module.mjs +4 -4
  96. package/esm2022/popover/popover.component.mjs +3 -3
  97. package/esm2022/progress-circle/progress-circle-ring.component.mjs +3 -3
  98. package/esm2022/progress-circle/progress-circle.component.mjs +3 -3
  99. package/esm2022/radio/radio-group/radio-group.component.mjs +3 -3
  100. package/esm2022/radio/radio-module.mjs +4 -4
  101. package/esm2022/radio/radio.component.mjs +25 -6
  102. package/esm2022/range/range.component.mjs +6 -6
  103. package/esm2022/reorder-list/reorder-list.component.mjs +3 -3
  104. package/esm2022/router-outlet/router-outlet.component.mjs +3 -3
  105. package/esm2022/router-outlet/router-outlet.module.mjs +4 -4
  106. package/esm2022/section-header/section-header.component.mjs +4 -4
  107. package/esm2022/shared/component-loader.directive.mjs +3 -3
  108. package/esm2022/shared/controls/label-helpers.mjs +23 -0
  109. package/esm2022/shared/fit-heading/fit-heading.directive.mjs +3 -3
  110. package/esm2022/shared/floating/floating.directive.mjs +3 -3
  111. package/esm2022/shared/portal/portal.directive.mjs +3 -3
  112. package/esm2022/shared/public_api.mjs +2 -1
  113. package/esm2022/shared/resize-observer/resize-observer.factory.mjs +3 -3
  114. package/esm2022/shared/resize-observer/resize-observer.service.mjs +3 -3
  115. package/esm2022/shared/theme-color/theme-color.directive.mjs +3 -3
  116. package/esm2022/slide/slide-stretch-height.directive.mjs +3 -3
  117. package/esm2022/slide/slide.directive.mjs +3 -3
  118. package/esm2022/slide/slide.module.mjs +4 -4
  119. package/esm2022/slide/slides.component.mjs +3 -3
  120. package/esm2022/slide-button/slide-button.component.mjs +70 -6
  121. package/esm2022/spinner/spinner.component.mjs +3 -3
  122. package/esm2022/spinner/spinner.module.mjs +4 -4
  123. package/esm2022/tab-navigation/tab-navigation/tab-navigation.component.mjs +4 -4
  124. package/esm2022/tab-navigation/tab-navigation-item/tab-navigation-item.component.mjs +3 -3
  125. package/esm2022/tab-navigation/tab-navigation.module.mjs +4 -4
  126. package/esm2022/tabs/tab-button/tab-button.component.mjs +4 -4
  127. package/esm2022/tabs/tabs.component.mjs +3 -3
  128. package/esm2022/tabs/tabs.module.mjs +4 -4
  129. package/esm2022/tabs/tabs.service.mjs +3 -3
  130. package/esm2022/testing/test-helper.mjs +4 -4
  131. package/esm2022/testing-base/lib/components/mock.accordion-item.component.mjs +3 -3
  132. package/esm2022/testing-base/lib/components/mock.action-group.component.mjs +3 -3
  133. package/esm2022/testing-base/lib/components/mock.action-sheet.component.mjs +3 -3
  134. package/esm2022/testing-base/lib/components/mock.alert.component.mjs +3 -3
  135. package/esm2022/testing-base/lib/components/mock.avatar.component.mjs +3 -3
  136. package/esm2022/testing-base/lib/components/mock.badge.component.mjs +3 -3
  137. package/esm2022/testing-base/lib/components/mock.base-chart.component.mjs +3 -3
  138. package/esm2022/testing-base/lib/components/mock.button.component.mjs +3 -3
  139. package/esm2022/testing-base/lib/components/mock.calendar.component.mjs +3 -3
  140. package/esm2022/testing-base/lib/components/mock.card-footer.component.mjs +3 -3
  141. package/esm2022/testing-base/lib/components/mock.card-header.component.mjs +3 -3
  142. package/esm2022/testing-base/lib/components/mock.card.component.mjs +3 -3
  143. package/esm2022/testing-base/lib/components/mock.chart.component.mjs +3 -3
  144. package/esm2022/testing-base/lib/components/mock.checkbox.component.mjs +3 -3
  145. package/esm2022/testing-base/lib/components/mock.divider.component.mjs +3 -3
  146. package/esm2022/testing-base/lib/components/mock.dropdown.component.mjs +3 -3
  147. package/esm2022/testing-base/lib/components/mock.empty-state.component.mjs +3 -3
  148. package/esm2022/testing-base/lib/components/mock.fab-sheet.component.mjs +3 -3
  149. package/esm2022/testing-base/lib/components/mock.flag.component.mjs +3 -3
  150. package/esm2022/testing-base/lib/components/mock.form-field-message.component.mjs +3 -3
  151. package/esm2022/testing-base/lib/components/mock.form-field.component.mjs +3 -3
  152. package/esm2022/testing-base/lib/components/mock.header.component.mjs +9 -9
  153. package/esm2022/testing-base/lib/components/mock.icon.component.mjs +3 -3
  154. package/esm2022/testing-base/lib/components/mock.input-counter.component.mjs +3 -3
  155. package/esm2022/testing-base/lib/components/mock.input.component.mjs +3 -3
  156. package/esm2022/testing-base/lib/components/mock.item-group.component.mjs +3 -3
  157. package/esm2022/testing-base/lib/components/mock.item-sliding.component.mjs +3 -3
  158. package/esm2022/testing-base/lib/components/mock.item.component.mjs +3 -3
  159. package/esm2022/testing-base/lib/components/mock.kirby-app.component.mjs +3 -3
  160. package/esm2022/testing-base/lib/components/mock.label.component.mjs +3 -3
  161. package/esm2022/testing-base/lib/components/mock.list-experimental.component.mjs +3 -3
  162. package/esm2022/testing-base/lib/components/mock.list-header.component.mjs +3 -3
  163. package/esm2022/testing-base/lib/components/mock.list-item.component.mjs +3 -3
  164. package/esm2022/testing-base/lib/components/mock.list-section-header.component.mjs +3 -3
  165. package/esm2022/testing-base/lib/components/mock.list.component.mjs +3 -3
  166. package/esm2022/testing-base/lib/components/mock.loading-overlay.component.mjs +3 -3
  167. package/esm2022/testing-base/lib/components/mock.menu.component.mjs +3 -3
  168. package/esm2022/testing-base/lib/components/mock.modal-compact-wrapper.component.mjs +3 -3
  169. package/esm2022/testing-base/lib/components/mock.modal-footer.component.mjs +3 -3
  170. package/esm2022/testing-base/lib/components/mock.modal-wrapper.component.mjs +3 -3
  171. package/esm2022/testing-base/lib/components/mock.page-footer.component.mjs +3 -3
  172. package/esm2022/testing-base/lib/components/mock.page.component.mjs +33 -33
  173. package/esm2022/testing-base/lib/components/mock.popover.component.mjs +3 -3
  174. package/esm2022/testing-base/lib/components/mock.progress-circle-ring.component.mjs +3 -3
  175. package/esm2022/testing-base/lib/components/mock.progress-circle.component.mjs +3 -3
  176. package/esm2022/testing-base/lib/components/mock.radio-group.component.mjs +3 -3
  177. package/esm2022/testing-base/lib/components/mock.radio.component.mjs +3 -3
  178. package/esm2022/testing-base/lib/components/mock.range.component.mjs +3 -3
  179. package/esm2022/testing-base/lib/components/mock.reorder-list.component.mjs +3 -3
  180. package/esm2022/testing-base/lib/components/mock.router-outlet.component.mjs +3 -3
  181. package/esm2022/testing-base/lib/components/mock.section-header.component.mjs +3 -3
  182. package/esm2022/testing-base/lib/components/mock.segmented-control.component.mjs +3 -3
  183. package/esm2022/testing-base/lib/components/mock.slide-button.component.mjs +3 -3
  184. package/esm2022/testing-base/lib/components/mock.slides.component.mjs +3 -3
  185. package/esm2022/testing-base/lib/components/mock.spinner.component.mjs +3 -3
  186. package/esm2022/testing-base/lib/components/mock.stock-chart.component.mjs +3 -3
  187. package/esm2022/testing-base/lib/components/mock.tab-button.component.mjs +3 -3
  188. package/esm2022/testing-base/lib/components/mock.tab-navigation-item.component.mjs +3 -3
  189. package/esm2022/testing-base/lib/components/mock.tab-navigation.component.mjs +3 -3
  190. package/esm2022/testing-base/lib/components/mock.tabs.component.mjs +3 -3
  191. package/esm2022/testing-base/lib/components/mock.textarea.component.mjs +3 -3
  192. package/esm2022/testing-base/lib/components/mock.toggle-button.component.mjs +3 -3
  193. package/esm2022/testing-base/lib/components/mock.toggle.component.mjs +3 -3
  194. package/esm2022/testing-base/lib/directives/mock.accordion.directive.mjs +3 -3
  195. package/esm2022/testing-base/lib/directives/mock.affix.directive.mjs +3 -3
  196. package/esm2022/testing-base/lib/directives/mock.card-as-button.directive.mjs +3 -3
  197. package/esm2022/testing-base/lib/directives/mock.component-loader.directive.mjs +3 -3
  198. package/esm2022/testing-base/lib/directives/mock.date-input.directive.mjs +3 -3
  199. package/esm2022/testing-base/lib/directives/mock.decimal-mask.directive.mjs +3 -3
  200. package/esm2022/testing-base/lib/directives/mock.fit-heading.directive.mjs +3 -3
  201. package/esm2022/testing-base/lib/directives/mock.floating.directive.mjs +3 -3
  202. package/esm2022/testing-base/lib/directives/mock.infinite-scroll.directive.mjs +3 -3
  203. package/esm2022/testing-base/lib/directives/mock.key-handler.directive.mjs +3 -3
  204. package/esm2022/testing-base/lib/directives/mock.list-item-color.directive.mjs +3 -3
  205. package/esm2022/testing-base/lib/directives/mock.list.directive.mjs +12 -12
  206. package/esm2022/testing-base/lib/directives/mock.modal-router-link.directive.mjs +3 -3
  207. package/esm2022/testing-base/lib/directives/mock.portal.directive.mjs +3 -3
  208. package/esm2022/testing-base/lib/directives/mock.slide.directive.mjs +3 -3
  209. package/esm2022/testing-base/lib/directives/mock.theme-color.directive.mjs +3 -3
  210. package/esm2022/testing-base/lib/kirby-testing-base.module.mjs +4 -4
  211. package/esm2022/testing-jasmine/lib/kirby-testing.module.mjs +4 -4
  212. package/esm2022/testing-jest/lib/kirby-testing.module.mjs +4 -4
  213. package/esm2022/toast/services/toast.controller.mjs +3 -3
  214. package/esm2022/toast/services/toast.helper.mjs +3 -3
  215. package/esm2022/toggle/toggle.component.mjs +6 -6
  216. package/esm2022/toggle-button/toggle-button.component.mjs +11 -7
  217. package/esm2022/toggle-button/toggle-button.module.mjs +4 -4
  218. package/esm2022/types/window-ref.mjs +3 -3
  219. package/fesm2022/kirbydesign-designsystem-accordion.mjs +30 -13
  220. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  221. package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
  222. package/fesm2022/kirbydesign-designsystem-avatar.mjs +3 -3
  223. package/fesm2022/kirbydesign-designsystem-badge.mjs +15 -3
  224. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  225. package/fesm2022/kirbydesign-designsystem-button.mjs +4 -4
  226. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  227. package/fesm2022/kirbydesign-designsystem-calendar.mjs +7 -7
  228. package/fesm2022/kirbydesign-designsystem-card.mjs +17 -17
  229. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  230. package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
  231. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +25 -6
  232. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  233. package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
  234. package/fesm2022/kirbydesign-designsystem-divider.mjs +3 -3
  235. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +12 -12
  236. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +7 -7
  237. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +4 -4
  238. package/fesm2022/kirbydesign-designsystem-flag.mjs +3 -3
  239. package/fesm2022/kirbydesign-designsystem-form-field.mjs +30 -30
  240. package/fesm2022/kirbydesign-designsystem-header.mjs +19 -19
  241. package/fesm2022/kirbydesign-designsystem-helpers.mjs +9 -9
  242. package/fesm2022/kirbydesign-designsystem-icon.mjs +156 -129
  243. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  244. package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
  245. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
  246. package/fesm2022/kirbydesign-designsystem-item.mjs +33 -52
  247. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  248. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
  249. package/fesm2022/kirbydesign-designsystem-kirby-ionic-module.mjs +4 -4
  250. package/fesm2022/kirbydesign-designsystem-list.mjs +40 -40
  251. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +6 -6
  252. package/fesm2022/kirbydesign-designsystem-menu.mjs +3 -3
  253. package/fesm2022/kirbydesign-designsystem-modal.mjs +43 -43
  254. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  255. package/fesm2022/kirbydesign-designsystem-page.mjs +41 -41
  256. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  257. package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
  258. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +6 -6
  259. package/fesm2022/kirbydesign-designsystem-radio.mjs +31 -12
  260. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  261. package/fesm2022/kirbydesign-designsystem-range.mjs +5 -5
  262. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  263. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +3 -3
  264. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +7 -7
  265. package/fesm2022/kirbydesign-designsystem-section-header.mjs +4 -4
  266. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
  267. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
  268. package/fesm2022/kirbydesign-designsystem-shared.mjs +39 -16
  269. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  270. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +69 -5
  271. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  272. package/fesm2022/kirbydesign-designsystem-slide.mjs +13 -13
  273. package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
  274. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +11 -11
  275. package/fesm2022/kirbydesign-designsystem-tabs.mjs +14 -14
  276. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  277. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +286 -286
  278. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  279. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  280. package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
  281. package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
  282. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +14 -10
  283. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  284. package/fesm2022/kirbydesign-designsystem-toggle.mjs +5 -5
  285. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  286. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  287. package/fesm2022/kirbydesign-designsystem.mjs +14 -14
  288. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  289. package/icon/icon-registry.service.d.ts +8 -1
  290. package/icons/svg/basket.svg +1 -0
  291. package/icons/svg/contract.svg +1 -0
  292. package/icons/svg/drag-drop.svg +1 -0
  293. package/icons/svg/expand.svg +1 -0
  294. package/icons/svg/flower.svg +1 -0
  295. package/icons/svg/house.svg +1 -0
  296. package/icons/svg/tractor.svg +1 -0
  297. package/item/item.component.d.ts +2 -8
  298. package/package.json +2 -2
  299. package/radio/radio.component.d.ts +5 -2
  300. package/readme.md +10 -0
  301. package/shared/controls/label-helpers.d.ts +3 -0
  302. package/shared/public_api.d.ts +1 -0
  303. package/slide-button/slide-button.component.d.ts +5 -0
  304. package/toggle-button/toggle-button.component.d.ts +1 -1
@@ -91,11 +91,11 @@ const MOCK_PROVIDERS = [
91
91
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference
92
92
  /// <reference path='../../../../../node_modules/@types/jasmine/index.d.ts' />
93
93
  class KirbyTestingModule {
94
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
95
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
96
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
94
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
95
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
96
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KirbyTestingModule, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KirbyTestingModule, decorators: [{
99
99
  type: NgModule,
100
100
  args: [{
101
101
  imports: [KirbyTestingBaseModule],
@@ -97,11 +97,11 @@ const MOCK_PROVIDERS = [
97
97
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference
98
98
  /// <reference path='../../../../../node_modules/@types/jest/index.d.ts' />
99
99
  class KirbyTestingModule {
100
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
101
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
102
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
100
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KirbyTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
101
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: KirbyTestingModule, imports: [KirbyTestingBaseModule], exports: [KirbyTestingBaseModule] }); }
102
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KirbyTestingModule, providers: [...MOCK_PROVIDERS], imports: [KirbyTestingBaseModule, KirbyTestingBaseModule] }); }
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KirbyTestingModule, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KirbyTestingModule, decorators: [{
105
105
  type: NgModule,
106
106
  args: [{
107
107
  imports: [KirbyTestingBaseModule],
@@ -5,11 +5,11 @@ import { provideIonicAngular } from '@ionic/angular/standalone';
5
5
  import { componentOnReady } from '@ionic/core';
6
6
 
7
7
  class IonicTestingModule {
8
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IonicTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: IonicTestingModule }); }
10
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IonicTestingModule, providers: [provideIonicAngular({ mode: 'ios', _testing: true })] }); }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IonicTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: IonicTestingModule }); }
10
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IonicTestingModule, providers: [provideIonicAngular({ mode: 'ios', _testing: true })] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IonicTestingModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IonicTestingModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  providers: [provideIonicAngular({ mode: 'ios', _testing: true })],
@@ -30,10 +30,10 @@ class ToastHelper {
30
30
  }
31
31
  return cssClass;
32
32
  }
33
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToastHelper, deps: [{ token: i1.ToastController }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToastHelper }); }
33
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToastHelper, deps: [{ token: i1.ToastController }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToastHelper }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToastHelper, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToastHelper, decorators: [{
37
37
  type: Injectable
38
38
  }], ctorParameters: () => [{ type: i1.ToastController }] });
39
39
 
@@ -48,10 +48,10 @@ class ToastController {
48
48
  }
49
49
  });
50
50
  }
51
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToastController, deps: [{ token: ToastHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToastController }); }
51
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToastController, deps: [{ token: ToastHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToastController }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToastController, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToastController, decorators: [{
55
55
  type: Injectable
56
56
  }], ctorParameters: () => [{ type: ToastHelper }] });
57
57
 
@@ -7,32 +7,36 @@ class ToggleButtonComponent {
7
7
  constructor() {
8
8
  this.checkChanged = new EventEmitter();
9
9
  }
10
- onClick() {
10
+ onClick(event) {
11
+ const targetElement = event.target;
12
+ const buttonEnabled = targetElement.closest('button[kirby-button]:not(:disabled)');
13
+ if (!buttonEnabled)
14
+ return;
11
15
  this.checked = !this.checked;
12
16
  this.checkChanged.emit(this.checked);
13
17
  }
14
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: ToggleButtonComponent, selector: "kirby-toggle-button", inputs: { checked: "checked" }, outputs: { checkChanged: "checkChanged" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: "<ng-container *ngIf=\"!checked\">\n <ng-content select=\"button[kirby-button][unchecked]\"></ng-content>\n</ng-container>\n<ng-container *ngIf=\"checked\">\n <ng-content select=\"button[kirby-button][checked]\"></ng-content>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ToggleButtonComponent, selector: "kirby-toggle-button", inputs: { checked: "checked" }, outputs: { checkChanged: "checkChanged" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0, template: "<ng-content *ngIf=\"!checked\" select=\"button[kirby-button][unchecked]\"></ng-content>\n<ng-content *ngIf=\"checked\" select=\"button[kirby-button][checked]\"></ng-content>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16
20
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToggleButtonComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToggleButtonComponent, decorators: [{
18
22
  type: Component,
19
- args: [{ selector: 'kirby-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!checked\">\n <ng-content select=\"button[kirby-button][unchecked]\"></ng-content>\n</ng-container>\n<ng-container *ngIf=\"checked\">\n <ng-content select=\"button[kirby-button][checked]\"></ng-content>\n</ng-container>\n" }]
23
+ args: [{ selector: 'kirby-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content *ngIf=\"!checked\" select=\"button[kirby-button][unchecked]\"></ng-content>\n<ng-content *ngIf=\"checked\" select=\"button[kirby-button][checked]\"></ng-content>\n" }]
20
24
  }], propDecorators: { checked: [{
21
25
  type: Input
22
26
  }], checkChanged: [{
23
27
  type: Output
24
28
  }], onClick: [{
25
29
  type: HostListener,
26
- args: ['click']
30
+ args: ['click', ['$event']]
27
31
  }] } });
28
32
 
29
33
  const DECLARATIONS = [ToggleButtonComponent];
30
34
  class ToggleButtonModule {
31
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
32
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: ToggleButtonModule, declarations: [ToggleButtonComponent], imports: [CommonModule], exports: [ToggleButtonComponent] }); }
33
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule] }); }
35
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
36
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: ToggleButtonModule, declarations: [ToggleButtonComponent], imports: [CommonModule], exports: [ToggleButtonComponent] }); }
37
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToggleButtonModule, imports: [CommonModule] }); }
34
38
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToggleButtonModule, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToggleButtonModule, decorators: [{
36
40
  type: NgModule,
37
41
  args: [{
38
42
  declarations: [...DECLARATIONS],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toggle-button.mjs","sources":["../../toggle-button/src/toggle-button.component.ts","../../toggle-button/src/toggle-button.component.html","../../toggle-button/src/toggle-button.module.ts","../../toggle-button/src/kirbydesign-designsystem-toggle-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-toggle-button',\n templateUrl: './toggle-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleButtonComponent {\n @Input() checked: boolean;\n @Output() checkChanged = new EventEmitter<boolean>();\n\n @HostListener('click')\n onClick() {\n this.checked = !this.checked;\n this.checkChanged.emit(this.checked);\n }\n}\n","<ng-container *ngIf=\"!checked\">\n <ng-content select=\"button[kirby-button][unchecked]\"></ng-content>\n</ng-container>\n<ng-container *ngIf=\"checked\">\n <ng-content select=\"button[kirby-button][checked]\"></ng-content>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ToggleButtonComponent } from './toggle-button.component';\n\nconst DECLARATIONS = [ToggleButtonComponent];\n\n@NgModule({\n declarations: [...DECLARATIONS],\n imports: [CommonModule],\n exports: [...DECLARATIONS],\n})\nexport class ToggleButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;MAca,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;AAOY,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;AAOtD,KAAA;IAJC,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtC;iIARU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,qLCdlC,uPAMA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDQa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAEd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uPAAA,EAAA,CAAA;8BAGtC,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAGP,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;;;AEbvB,MAAM,YAAY,GAAG,CAAC,qBAAqB,CAAC,CAAC;MAOhC,kBAAkB,CAAA;iIAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAPT,YAAA,EAAA,CAAA,qBAAqB,CAI/B,EAAA,OAAA,EAAA,CAAA,YAAY,aAJF,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAO9B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC;oBAC/B,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC;AAC3B,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-toggle-button.mjs","sources":["../../toggle-button/src/toggle-button.component.ts","../../toggle-button/src/toggle-button.component.html","../../toggle-button/src/toggle-button.module.ts","../../toggle-button/src/kirbydesign-designsystem-toggle-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-toggle-button',\n templateUrl: './toggle-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleButtonComponent {\n @Input() checked: boolean;\n @Output() checkChanged = new EventEmitter<boolean>();\n\n @HostListener('click', ['$event'])\n onClick(event: PointerEvent) {\n const targetElement = event.target as HTMLElement;\n const buttonEnabled = targetElement.closest('button[kirby-button]:not(:disabled)');\n\n if (!buttonEnabled) return;\n\n this.checked = !this.checked;\n this.checkChanged.emit(this.checked);\n }\n}\n","<ng-content *ngIf=\"!checked\" select=\"button[kirby-button][unchecked]\"></ng-content>\n<ng-content *ngIf=\"checked\" select=\"button[kirby-button][checked]\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ToggleButtonComponent } from './toggle-button.component';\n\nconst DECLARATIONS = [ToggleButtonComponent];\n\n@NgModule({\n declarations: [...DECLARATIONS],\n imports: [CommonModule],\n exports: [...DECLARATIONS],\n})\nexport class ToggleButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;MAca,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;AAOY,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;AAYtD,KAAA;AATC,IAAA,OAAO,CAAC,KAAmB,EAAA;AACzB,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,MAAqB,CAAC;QAClD,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAEnF,QAAA,IAAI,CAAC,aAAa;YAAE,OAAO;AAE3B,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtC;iIAbU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,2LCdlC,iLAEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDYa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAEd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iLAAA,EAAA,CAAA;8BAGtC,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAGP,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEbnC,MAAM,YAAY,GAAG,CAAC,qBAAqB,CAAC,CAAC;MAOhC,kBAAkB,CAAA;iIAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAPT,YAAA,EAAA,CAAA,qBAAqB,CAI/B,EAAA,OAAA,EAAA,CAAA,YAAY,aAJF,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAO9B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC;oBAC/B,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC;AAC3B,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
@@ -84,16 +84,16 @@ class ToggleComponent {
84
84
  this.disabled = isDisabled;
85
85
  this.cdr.detectChanges();
86
86
  }
87
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
88
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: ToggleComponent, isStandalone: true, selector: "kirby-toggle", inputs: { checked: "checked", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "attr.disabled": "this._isDisabled" } }, providers: [
87
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
88
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ToggleComponent, isStandalone: true, selector: "kirby-toggle", inputs: { checked: "checked", disabled: "disabled" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "attr.disabled": "this._isDisabled" } }, providers: [
89
89
  {
90
90
  provide: NG_VALUE_ACCESSOR,
91
91
  useExisting: forwardRef((() => ToggleComponent)),
92
92
  multi: true,
93
93
  },
94
- ], ngImport: i0, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [attr.aria-label]=\"_ariaLabel\"\n>\n <ng-content></ng-content>\n</ion-toggle>\n", styles: [":host{display:inline-flex}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04);--handle-height: 28px;--handle-width: 28px;--border-radius: 16px}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: #777777;--handle-background: whitesmoke;--track-background-checked: #2dc172;--handle-background-checked: whitesmoke}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: #6c6c6c;--handle-background: #ebebeb;--track-background-checked: #29ae67;--handle-background-checked: #ebebeb}ion-toggle::part(track){height:32px}ion-toggle.in-item.legacy-toggle{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
+ ], ngImport: i0, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [attr.aria-label]=\"_ariaLabel\"\n>\n <ng-content></ng-content>\n</ion-toggle>\n", styles: [":host{display:inline-flex}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04);--handle-height: 28px;--handle-width: 28px;--border-radius: 16px}ion-toggle::part(track){height:32px}ion-toggle.in-item.legacy-toggle{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
95
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ToggleComponent, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToggleComponent, decorators: [{
97
97
  type: Component,
98
98
  args: [{ standalone: true, imports: [CommonModule, IonToggle], selector: 'kirby-toggle', providers: [
99
99
  {
@@ -101,7 +101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
101
101
  useExisting: forwardRef((() => ToggleComponent)),
102
102
  multi: true,
103
103
  },
104
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [attr.aria-label]=\"_ariaLabel\"\n>\n <ng-content></ng-content>\n</ion-toggle>\n", styles: [":host{display:inline-flex}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04);--handle-height: 28px;--handle-width: 28px;--border-radius: 16px}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: #777777;--handle-background: whitesmoke;--track-background-checked: #2dc172;--handle-background-checked: whitesmoke}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: #6c6c6c;--handle-background: #ebebeb;--track-background-checked: #29ae67;--handle-background-checked: #ebebeb}ion-toggle::part(track){height:32px}ion-toggle.in-item.legacy-toggle{padding:0}\n"] }]
104
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [attr.aria-label]=\"_ariaLabel\"\n>\n <ng-content></ng-content>\n</ion-toggle>\n", styles: [":host{display:inline-flex}@media (hover: hover) and (pointer: fine){ion-toggle{overflow:visible;contain:none}ion-toggle:focus-within::part(track){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: .2s;--handle-box-shadow: 0 1px 24px 0 rgba(28, 28, 28, .04);--handle-height: 28px;--handle-width: 28px;--border-radius: 16px}ion-toggle::part(track){height:32px}ion-toggle.in-item.legacy-toggle{padding:0}\n"] }]
105
105
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { checked: [{
106
106
  type: Input
107
107
  }], disabled: [{
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toggle.mjs","sources":["../../toggle/src/toggle.component.ts","../../toggle/src/toggle.component.html","../../toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonToggle } from '@ionic/angular/standalone';\n\n@Component({\n standalone: true,\n imports: [CommonModule, IonToggle],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent implements ControlValueAccessor, OnInit {\n constructor(private cdr: ChangeDetectorRef, private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit(): void {\n this.inheritAriaAttributes();\n }\n\n _ariaLabel: string;\n\n private inheritAriaAttributes() {\n const el = this.elementRef.nativeElement;\n const attribute = 'aria-label';\n if (el.hasAttribute(attribute)) {\n const value = el.getAttribute(attribute);\n el.removeAttribute(attribute);\n this._ariaLabel = value;\n }\n }\n\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _pressed = false;\n\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n _onActive() {\n this._pressed = true;\n }\n\n _onInactive() {\n this._pressed = false;\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the toggle's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n }\n /**\n * Saves a callback function to be invoked when the toggle's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the toggle is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /**\n * Disables the toggle. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.detectChanges();\n }\n}\n","<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [attr.aria-label]=\"_ariaLabel\"\n>\n <ng-content></ng-content>\n</ion-toggle>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MA+Ba,eAAe,CAAA;IAC1B,WAAoB,CAAA,GAAsB,EAAU,UAAmC,EAAA;QAAnE,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAAU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QAkB9E,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAMzB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAEtD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;;AAmBT,QAAA,IAAA,CAAA,SAAS,GAA6B,MAAK,GAAG,CAAC;;AAE/C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAK,GAAG,CAAC;KAhD6D;IAE3F,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAIO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACzC,MAAM,SAAS,GAAG,YAAY,CAAC;AAC/B,QAAA,IAAI,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;YAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AACzC,YAAA,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;KACF;AAID,IAAA,IACI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;KAC1C;AAMD,IAAA,eAAe,CAAC,OAAgB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACtB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;AAQD;;;;;AAKG;AACH,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;AACD;;;;;;AAMG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD;;;;;;AAMG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AACD;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;iIAzFU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EATf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,EAAC,MAAM,eAAe,EAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BH,mWAYA,EAAA,MAAA,EAAA,CAAA,8qCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAatB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;iCACI,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,SAAS,CAAC,EAAA,QAAA,EACxB,cAAc,EAGb,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,EAAC,qBAAqB,EAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mWAAA,EAAA,MAAA,EAAA,CAAA,8qCAAA,CAAA,EAAA,CAAA;+GAqBtC,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEF,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,eAAe,CAAA;gBAKlB,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;AEzDT;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-toggle.mjs","sources":["../../toggle/src/toggle.component.ts","../../toggle/src/toggle.component.html","../../toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonToggle } from '@ionic/angular/standalone';\n\n@Component({\n standalone: true,\n imports: [CommonModule, IonToggle],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent implements ControlValueAccessor, OnInit {\n constructor(private cdr: ChangeDetectorRef, private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit(): void {\n this.inheritAriaAttributes();\n }\n\n _ariaLabel: string;\n\n private inheritAriaAttributes() {\n const el = this.elementRef.nativeElement;\n const attribute = 'aria-label';\n if (el.hasAttribute(attribute)) {\n const value = el.getAttribute(attribute);\n el.removeAttribute(attribute);\n this._ariaLabel = value;\n }\n }\n\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _pressed = false;\n\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n _onActive() {\n this._pressed = true;\n }\n\n _onInactive() {\n this._pressed = false;\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the toggle's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n }\n /**\n * Saves a callback function to be invoked when the toggle's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the toggle is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /**\n * Disables the toggle. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.detectChanges();\n }\n}\n","<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [attr.aria-label]=\"_ariaLabel\"\n>\n <ng-content></ng-content>\n</ion-toggle>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -5,10 +5,10 @@ class WindowRef {
5
5
  get nativeWindow() {
6
6
  return window;
7
7
  }
8
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
9
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: WindowRef, providedIn: 'root' }); }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
9
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WindowRef, providedIn: 'root' }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: WindowRef, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WindowRef, decorators: [{
12
12
  type: Injectable,
13
13
  args: [{
14
14
  providedIn: 'root',
@@ -194,12 +194,12 @@ class SegmentedControlComponent {
194
194
  });
195
195
  }
196
196
  }
197
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
198
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: SegmentedControlComponent, isStandalone: true, selector: "kirby-segmented-control", inputs: { mode: "mode", items: "items", selectedIndex: "selectedIndex", value: "value", size: "size", disableChangeOnSwipe: "disableChangeOnSwipe" }, outputs: { selectedIndexChange: "selectedIndexChange", segmentSelect: "segmentSelect" }, host: { attributes: { "role": "group" }, properties: { "class": "this._modeCssClass", "class.sm": "this.isSmallSize" } }, viewQueries: [{ propertyName: "ionSegmentElement", first: true, predicate: IonSegment, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:fit-content}:host.default-mode ion-segment-button{--color-hover: rgba(var(--kirby-black-rgb), .4)}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}@media (hover: hover){:host.chip-mode ion-segment-button:hover,:host.compact ion-segment-button:hover{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}@media (hover: hover){:host.chip-mode ion-segment-button.segment-button-checked:hover,:host.compact ion-segment-button.segment-button-checked:hover{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}ion-segment-button{position:relative;--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button::part(native){border-radius:var(--border-radius);contain:none;overflow:visible;opacity:1}ion-segment-button::part(native):after{transition:all 80ms linear 0ms;border-radius:var(--border-radius)}ion-segment-button::part(indicator){padding-inline:0}\n"], dependencies: [{ kind: "ngmodule", type: IconModule }, { kind: "component", type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }, { kind: "component", type: BadgeComponent, selector: "kirby-badge", inputs: ["text", "size"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }] }); }
197
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
198
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SegmentedControlComponent, isStandalone: true, selector: "kirby-segmented-control", inputs: { mode: "mode", items: "items", selectedIndex: "selectedIndex", value: "value", size: "size", disableChangeOnSwipe: "disableChangeOnSwipe" }, outputs: { selectedIndexChange: "selectedIndexChange", segmentSelect: "segmentSelect" }, host: { attributes: { "role": "group" }, properties: { "class": "this._modeCssClass", "class.sm": "this.isSmallSize" } }, viewQueries: [{ propertyName: "ionSegmentElement", first: true, predicate: IonSegment, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:fit-content}:host.default-mode ion-segment-button{--color-hover: rgba(var(--kirby-black-rgb), .4)}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}@media (hover: hover){:host.chip-mode ion-segment-button:hover,:host.compact ion-segment-button:hover{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}@media (hover: hover){:host.chip-mode ion-segment-button.segment-button-checked:hover,:host.compact ion-segment-button.segment-button-checked:hover{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button{position:relative}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button{--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}ion-segment-button::part(native){border-radius:var(--border-radius);contain:none;overflow:visible;opacity:1}ion-segment-button::part(native):after{transition:all 80ms linear 0ms;border-radius:var(--border-radius)}ion-segment-button::part(indicator){padding-inline:0}\n"], dependencies: [{ kind: "ngmodule", type: IconModule }, { kind: "component", type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }, { kind: "component", type: BadgeComponent, selector: "kirby-badge", inputs: ["text", "size"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }] }); }
199
199
  }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SegmentedControlComponent, decorators: [{
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SegmentedControlComponent, decorators: [{
201
201
  type: Component,
202
- args: [{ standalone: true, imports: [IconModule, BadgeComponent, CommonModule, IonSegment, IonSegmentButton], selector: 'kirby-segmented-control', host: { role: 'group' }, template: "<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:fit-content}:host.default-mode ion-segment-button{--color-hover: rgba(var(--kirby-black-rgb), .4)}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}@media (hover: hover){:host.chip-mode ion-segment-button:hover,:host.compact ion-segment-button:hover{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}@media (hover: hover){:host.chip-mode ion-segment-button.segment-button-checked:hover,:host.compact ion-segment-button.segment-button-checked:hover{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}ion-segment-button{position:relative;--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button::part(native){border-radius:var(--border-radius);contain:none;overflow:visible;opacity:1}ion-segment-button::part(native):after{transition:all 80ms linear 0ms;border-radius:var(--border-radius)}ion-segment-button::part(indicator){padding-inline:0}\n"] }]
202
+ args: [{ standalone: true, imports: [IconModule, BadgeComponent, CommonModule, IonSegment, IonSegmentButton], selector: 'kirby-segmented-control', host: { role: 'group' }, template: "<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:fit-content}:host.default-mode ion-segment-button{--color-hover: rgba(var(--kirby-black-rgb), .4)}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}@media (hover: hover){:host.chip-mode ion-segment-button:hover,:host.compact ion-segment-button:hover{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}@media (hover: hover){:host.chip-mode ion-segment-button.segment-button-checked:hover,:host.compact ion-segment-button.segment-button-checked:hover{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button{position:relative}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button{--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}ion-segment-button::part(native){border-radius:var(--border-radius);contain:none;overflow:visible;opacity:1}ion-segment-button::part(native):after{transition:all 80ms linear 0ms;border-radius:var(--border-radius)}ion-segment-button::part(indicator){padding-inline:0}\n"] }]
203
203
  }], propDecorators: { ionSegmentElement: [{
204
204
  type: ViewChild,
205
205
  args: [IonSegment, { static: true, read: ElementRef }]
@@ -241,10 +241,10 @@ class KeyHandlerDirective {
241
241
  hostElement.click();
242
242
  }
243
243
  }
244
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KeyHandlerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
245
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: KeyHandlerDirective, selector: "[keyHandler]", host: { listeners: { "keyup": "keyEvent($event)" } }, ngImport: i0 }); }
244
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyHandlerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
245
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: KeyHandlerDirective, selector: "[keyHandler]", host: { listeners: { "keyup": "keyEvent($event)" } }, ngImport: i0 }); }
246
246
  }
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KeyHandlerDirective, decorators: [{
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyHandlerDirective, decorators: [{
248
248
  type: Directive,
249
249
  args: [{
250
250
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -267,10 +267,10 @@ class ModalRouterLinkDirective {
267
267
  this.modalNavigationService.navigateToModal(this.path, typeof this.queryParams !== 'string' ? this.queryParams : null);
268
268
  return false;
269
269
  }
270
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ModalRouterLinkDirective, deps: [{ token: i1$1.ModalNavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
271
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: ModalRouterLinkDirective, selector: "[kirbyModalRouterLink]", inputs: { path: ["kirbyModalRouterLink", "path"], queryParams: ["kirbyModalQueryParams", "queryParams"] }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
270
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ModalRouterLinkDirective, deps: [{ token: i1$1.ModalNavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
271
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ModalRouterLinkDirective, selector: "[kirbyModalRouterLink]", inputs: { path: ["kirbyModalRouterLink", "path"], queryParams: ["kirbyModalQueryParams", "queryParams"] }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
272
272
  }
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ModalRouterLinkDirective, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ModalRouterLinkDirective, decorators: [{
274
274
  type: Directive,
275
275
  args: [{
276
276
  selector: `[kirbyModalRouterLink]`,
@@ -378,8 +378,8 @@ class KirbyModule {
378
378
  constructor(modalController, config) {
379
379
  modalController.initialize(config && config.moduleRootRoutePath);
380
380
  }
381
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KirbyModule, deps: [{ token: i1$1.ModalController }, { token: ConfigToken, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
382
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: KirbyModule, declarations: [ModalRouterLinkDirective, KeyHandlerDirective], imports: [CommonModule, RouterModule, KirbyIonicModule, KirbyAppModule,
381
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KirbyModule, deps: [{ token: i1$1.ModalController }, { token: ConfigToken, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
382
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: KirbyModule, declarations: [ModalRouterLinkDirective, KeyHandlerDirective], imports: [CommonModule, RouterModule, KirbyIonicModule, KirbyAppModule,
383
383
  RouterOutletModule,
384
384
  PageModule,
385
385
  HeaderModule,
@@ -486,7 +486,7 @@ class KirbyModule {
486
486
  BadgeComponent,
487
487
  ModalComponent,
488
488
  TableSortableComponent, ModalRouterLinkDirective] }); }
489
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KirbyModule, providers: providers, imports: [CommonModule, RouterModule, KirbyIonicModule, KirbyAppModule,
489
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KirbyModule, providers: providers, imports: [CommonModule, RouterModule, KirbyIonicModule, KirbyAppModule,
490
490
  RouterOutletModule,
491
491
  PageModule,
492
492
  HeaderModule,
@@ -557,7 +557,7 @@ class KirbyModule {
557
557
  AccordionModule,
558
558
  HeaderModule] }); }
559
559
  }
560
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: KirbyModule, decorators: [{
560
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KirbyModule, decorators: [{
561
561
  type: NgModule,
562
562
  args: [{
563
563
  imports: [CommonModule, RouterModule, KirbyIonicModule, ...importedModules],
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem.mjs","sources":["../../src/lib/components/segmented-control/segmented-control.component.ts","../../src/lib/components/segmented-control/segmented-control.component.html","../../src/lib/components/index.ts","../../src/lib/directives/key-handler/key-handler.directive.ts","../../src/lib/directives/modal-router-link/modal-router-link.directive.ts","../../src/lib/kirby.module.ts","../../src/kirbydesign-designsystem.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\n\nimport { IonSegment, IonSegmentButton } from '@ionic/angular/standalone';\nimport { CommonModule } from '@angular/common';\nimport { SegmentItem } from './segment-item';\n\nexport enum SegmentedControlMode {\n chip = 'chip',\n compactChip = 'compactChip',\n default = 'default',\n}\n\n// Workaround until TS 5.4 official NoInfer\n// https://github.com/millsp/ts-toolbelt/blob/master/sources/Function/NoInfer.ts\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype NoInfer<T> = [T][T extends any ? 0 : never];\n\n@Component({\n standalone: true,\n imports: [IconModule, BadgeComponent, CommonModule, IonSegment, IonSegmentButton],\n selector: 'kirby-segmented-control',\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: { role: 'group' },\n})\nexport class SegmentedControlComponent<TItem extends SegmentItem = SegmentItem> {\n @ViewChild(IonSegment, { static: true, read: ElementRef })\n private ionSegmentElement: ElementRef<HTMLIonSegmentElement>;\n\n /**\n * Ensure that the click actually did originate from within the segment-button.\n * We do not want to react to clicks on e.g. segment-btn-wrapper or badge.\n */\n preventOutsideClick(event: TouchEvent) {\n if (event.target instanceof HTMLElement) {\n const targetIsInSegmentBtn = !!event.target.closest('ion-segment-button');\n if (!targetIsInSegmentBtn) {\n event.stopImmediatePropagation();\n }\n }\n }\n\n @Input() mode: SegmentedControlMode | `${SegmentedControlMode}` = SegmentedControlMode.default;\n\n @HostBinding('class')\n get _modeCssClass() {\n return {\n [SegmentedControlMode.chip]: 'chip-mode',\n [SegmentedControlMode.default]: 'default-mode',\n [SegmentedControlMode.compactChip]: 'compact chip-mode',\n }[this.mode];\n }\n\n private _items: TItem[] = [];\n get items(): TItem[] {\n return this._items;\n }\n\n @Input() set items(value: TItem[]) {\n this._items = value || [];\n this._value = this.items[this.selectedIndex];\n this.ensureIonSegmentSelected();\n }\n\n /**\n * After upgrading to Ionic standalone components (Ionic v.7.6.6)\n * there is a lifecycle bug between Angular/Ionic/Stencil that prevents\n * the value of the segment component to be reflected in the checked state\n * of it's slotted segment buttons.\n * This has been patched here: https://github.com/ionic-team/ionic-framework/pull/28837\n * However the patch doesn't fix the problem if `items` are updated after first initialization\n * and the ion-segment-button(s) are re-rerendered.\n */\n private ensureIonSegmentSelected() {\n const ionSegment = this.ionSegmentElement.nativeElement;\n const ionSelectEvent = ionSegment['ionSelect'];\n if (this._value && typeof ionSelectEvent?.emit === 'function') {\n // Ensure changes has been reflected to the DOM:\n setTimeout(() => {\n const selectedSegmentButton = ionSegment.querySelector(\n 'ion-segment-button.segment-button-checked'\n );\n if (selectedSegmentButton) return; // Nothing to patch\n\n ionSelectEvent.emit({ value: this._value.id });\n });\n }\n }\n\n private _selectedIndex: number = -1;\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(index: number) {\n if (index !== this._selectedIndex) {\n this._selectedIndex = index;\n this._value = this.items[this.selectedIndex];\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n private _value: NoInfer<TItem>;\n get value(): NoInfer<TItem> {\n return this._value;\n }\n\n @Input() set value(value: NoInfer<TItem>) {\n this.selectedIndex = this.items.indexOf(value);\n }\n\n @HostBinding('class.sm')\n isSmallSize: boolean;\n\n @Input() set size(size: 'sm' | 'md') {\n this.isSmallSize = size === 'sm';\n }\n\n private _disableChangeOnSwipe: boolean = false;\n get disableChangeOnSwipe(): boolean {\n return this._disableChangeOnSwipe;\n }\n\n @Input() set disableChangeOnSwipe(value: boolean) {\n this._disableChangeOnSwipe = value;\n }\n\n @Output() segmentSelect = new EventEmitter<TItem>();\n\n onSegmentSelect(selectedId: string) {\n const selectedItemIndex = this.items.findIndex((item) => selectedId === item.id);\n\n if (selectedItemIndex !== this.selectedIndex) {\n this.selectedIndex = selectedItemIndex;\n setTimeout(() => {\n this.segmentSelect.emit(this.value);\n });\n }\n }\n}\n","<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n","/* prettier-ignore */\nexport { SegmentedControlComponent, SegmentedControlMode} from './segmented-control/segmented-control.component'; // See issue #1555 for prettier-ignore explanation\nexport { SegmentItem } from './segmented-control/segment-item';\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `[keyHandler]`,\n})\nexport class KeyHandlerDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('keyup', ['$event'])\n keyEvent(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter' || event.key === 'Spacebar') {\n // Prevent the default action to stop scrolling when space is pressed\n event.preventDefault();\n\n const hostElement = <HTMLElement>this.element.nativeElement;\n hostElement.click();\n }\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { ModalNavigationService } from '@kirbydesign/designsystem/modal';\n\n@Directive({\n selector: `[kirbyModalRouterLink]`,\n})\nexport class ModalRouterLinkDirective implements OnInit {\n constructor(\n private modalNavigationService: ModalNavigationService,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.elementRef.nativeElement.setAttribute('modal-router-link', '');\n }\n\n @Input('kirbyModalRouterLink') path: string | string[];\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('kirbyModalQueryParams') queryParams?: Params;\n\n @HostListener('click')\n onClick(): boolean {\n this.modalNavigationService.navigateToModal(\n this.path,\n typeof this.queryParams !== 'string' ? this.queryParams : null\n );\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Inject, InjectionToken, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { CardModule } from '@kirbydesign/designsystem/card';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { KirbyIonicModule } from '@kirbydesign/designsystem/kirby-ionic-module';\nimport {\n ComponentLoaderDirective,\n ResizeObserverFactory,\n ResizeObserverService,\n ThemeColorDirective,\n} from '@kirbydesign/designsystem/shared';\nimport { FlagComponent } from '@kirbydesign/designsystem/flag';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\nimport { ToggleComponent } from '@kirbydesign/designsystem/toggle';\nimport { SectionHeaderComponent } from '@kirbydesign/designsystem/section-header';\nimport { ItemModule } from '@kirbydesign/designsystem/item';\nimport { SlideModule } from '@kirbydesign/designsystem/slide';\nimport { ToggleButtonModule } from '@kirbydesign/designsystem/toggle-button';\nimport { TabsModule } from '@kirbydesign/designsystem/tabs';\nimport { SlideButtonComponent } from '@kirbydesign/designsystem/slide-button';\nimport { RangeComponent } from '@kirbydesign/designsystem/range';\nimport { PopoverComponent } from '@kirbydesign/designsystem/popover';\nimport {\n LoadingOverlayComponent,\n LoadingOverlayService,\n} from '@kirbydesign/designsystem/loading-overlay';\nimport { DividerComponent } from '@kirbydesign/designsystem/divider';\nimport { CheckboxComponent } from '@kirbydesign/designsystem/checkbox';\nimport { AccordionModule } from '@kirbydesign/designsystem/accordion';\nimport { ItemSlidingComponent } from '@kirbydesign/designsystem/item-sliding';\nimport { ListModule } from '@kirbydesign/designsystem/list';\nimport { RadioModule } from '@kirbydesign/designsystem/radio';\nimport {\n AffixDirective,\n FormFieldModule,\n InputComponent,\n TextareaComponent,\n} from '@kirbydesign/designsystem/form-field';\nimport { AvatarComponent } from '@kirbydesign/designsystem/avatar';\nimport {\n ProgressCircleComponent,\n ProgressCircleRingComponent,\n} from '@kirbydesign/designsystem/progress-circle';\nimport { RouterOutletModule } from '@kirbydesign/designsystem/router-outlet';\n\nimport { ItemGroupComponent } from '@kirbydesign/designsystem/item-group';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { CalendarComponent } from '@kirbydesign/designsystem/calendar';\nimport {\n ActionSheetComponent,\n ActionSheetHelper,\n AlertComponent,\n AlertHelper,\n CanDismissHelper,\n ModalCompactWrapperComponent,\n ModalController,\n ModalFooterComponent,\n ModalHelper,\n ModalWrapperComponent,\n} from '@kirbydesign/designsystem/modal';\nimport { ModalComponent } from '@kirbydesign/designsystem/modal';\nimport { PageModule } from '@kirbydesign/designsystem/page';\nimport { HeaderModule } from '@kirbydesign/designsystem/header';\nimport { EmptyStateModule } from '@kirbydesign/designsystem/empty-state';\nimport { DropdownModule } from '@kirbydesign/designsystem/dropdown';\nimport { KirbyAppModule } from '@kirbydesign/designsystem/kirby-app';\nimport { ChartsModule } from '@kirbydesign/designsystem/chart';\nimport { FabSheetComponent } from '@kirbydesign/designsystem/fab-sheet';\nimport { TableSortableComponent } from '@kirbydesign/designsystem/data-table';\nimport { ReorderListComponent } from '@kirbydesign/designsystem/reorder-list';\n\nimport { ToastController, ToastHelper } from '@kirbydesign/designsystem/toast';\nimport { ActionGroupComponent } from '@kirbydesign/designsystem/action-group';\nimport { MenuComponent } from '@kirbydesign/designsystem/menu';\nimport { TabNavigationModule } from '@kirbydesign/designsystem/tab-navigation';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { SegmentedControlComponent } from './components/segmented-control/segmented-control.component';\nimport { KeyHandlerDirective } from './directives/key-handler/key-handler.directive';\nimport { ModalRouterLinkDirective } from './directives/modal-router-link/modal-router-link.directive';\n\nconst exportedDeclarations = [ModalRouterLinkDirective];\n\nconst declarations = [...exportedDeclarations, KeyHandlerDirective];\n\nconst standaloneComponents = [\n ActionGroupComponent,\n ItemGroupComponent,\n ModalCompactWrapperComponent,\n TextareaComponent,\n InputComponent,\n AffixDirective,\n DividerComponent,\n ThemeColorDirective,\n SegmentedControlComponent,\n AlertComponent,\n PopoverComponent,\n ProgressCircleRingComponent,\n ModalWrapperComponent,\n SectionHeaderComponent,\n RangeComponent,\n ItemSlidingComponent,\n ProgressCircleComponent,\n ReorderListComponent,\n LoadingOverlayComponent,\n FabSheetComponent,\n ToggleComponent,\n SlideButtonComponent,\n SegmentedControlComponent,\n CheckboxComponent,\n MenuComponent,\n ActionSheetComponent,\n ModalFooterComponent,\n AvatarComponent,\n CalendarComponent,\n ButtonComponent,\n ComponentLoaderDirective,\n FlagComponent,\n BadgeComponent,\n ModalComponent,\n TableSortableComponent,\n];\nconst exportedModules = [\n KirbyAppModule,\n RouterOutletModule,\n PageModule,\n HeaderModule,\n TabNavigationModule,\n TabsModule,\n IconModule,\n ItemModule,\n ToggleButtonModule,\n ListModule,\n ChartsModule,\n SpinnerModule,\n CardModule,\n RadioModule,\n EmptyStateModule,\n DropdownModule,\n FormFieldModule,\n SlideModule,\n AccordionModule,\n HeaderModule,\n ...standaloneComponents,\n];\n\nconst allExports = [...exportedModules, ...exportedDeclarations];\n\nconst importedModules = [...exportedModules];\n\nconst providers = [\n ModalController,\n ActionSheetHelper,\n ModalHelper,\n AlertHelper,\n ToastHelper,\n ToastController,\n LoadingOverlayService,\n ResizeObserverFactory,\n ResizeObserverService,\n CanDismissHelper,\n];\n\nconst ConfigToken = new InjectionToken<unknown>('USERCONFIG');\nexport interface KirbyConfig {\n moduleRootRoutePath?: string;\n}\n\n@NgModule({\n imports: [CommonModule, RouterModule, KirbyIonicModule, ...importedModules],\n declarations: [declarations],\n providers: providers,\n exports: [allExports],\n})\nexport class KirbyModule {\n static forChild(config?: KirbyConfig): ModuleWithProviders<KirbyModule> {\n return {\n ngModule: KirbyModule,\n providers: [\n {\n provide: ConfigToken,\n useValue: config,\n },\n ],\n };\n }\n\n constructor(\n modalController: ModalController,\n @Optional() @Inject(ConfigToken) config?: KirbyConfig\n ) {\n modalController.initialize(config && config.moduleRootRoutePath);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem.mjs","sources":["../../src/lib/components/segmented-control/segmented-control.component.ts","../../src/lib/components/segmented-control/segmented-control.component.html","../../src/lib/components/index.ts","../../src/lib/directives/key-handler/key-handler.directive.ts","../../src/lib/directives/modal-router-link/modal-router-link.directive.ts","../../src/lib/kirby.module.ts","../../src/kirbydesign-designsystem.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\n\nimport { IonSegment, IonSegmentButton } from '@ionic/angular/standalone';\nimport { CommonModule } from '@angular/common';\nimport { SegmentItem } from './segment-item';\n\nexport enum SegmentedControlMode {\n chip = 'chip',\n compactChip = 'compactChip',\n default = 'default',\n}\n\n// Workaround until TS 5.4 official NoInfer\n// https://github.com/millsp/ts-toolbelt/blob/master/sources/Function/NoInfer.ts\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype NoInfer<T> = [T][T extends any ? 0 : never];\n\n@Component({\n standalone: true,\n imports: [IconModule, BadgeComponent, CommonModule, IonSegment, IonSegmentButton],\n selector: 'kirby-segmented-control',\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: { role: 'group' },\n})\nexport class SegmentedControlComponent<TItem extends SegmentItem = SegmentItem> {\n @ViewChild(IonSegment, { static: true, read: ElementRef })\n private ionSegmentElement: ElementRef<HTMLIonSegmentElement>;\n\n /**\n * Ensure that the click actually did originate from within the segment-button.\n * We do not want to react to clicks on e.g. segment-btn-wrapper or badge.\n */\n preventOutsideClick(event: TouchEvent) {\n if (event.target instanceof HTMLElement) {\n const targetIsInSegmentBtn = !!event.target.closest('ion-segment-button');\n if (!targetIsInSegmentBtn) {\n event.stopImmediatePropagation();\n }\n }\n }\n\n @Input() mode: SegmentedControlMode | `${SegmentedControlMode}` = SegmentedControlMode.default;\n\n @HostBinding('class')\n get _modeCssClass() {\n return {\n [SegmentedControlMode.chip]: 'chip-mode',\n [SegmentedControlMode.default]: 'default-mode',\n [SegmentedControlMode.compactChip]: 'compact chip-mode',\n }[this.mode];\n }\n\n private _items: TItem[] = [];\n get items(): TItem[] {\n return this._items;\n }\n\n @Input() set items(value: TItem[]) {\n this._items = value || [];\n this._value = this.items[this.selectedIndex];\n this.ensureIonSegmentSelected();\n }\n\n /**\n * After upgrading to Ionic standalone components (Ionic v.7.6.6)\n * there is a lifecycle bug between Angular/Ionic/Stencil that prevents\n * the value of the segment component to be reflected in the checked state\n * of it's slotted segment buttons.\n * This has been patched here: https://github.com/ionic-team/ionic-framework/pull/28837\n * However the patch doesn't fix the problem if `items` are updated after first initialization\n * and the ion-segment-button(s) are re-rerendered.\n */\n private ensureIonSegmentSelected() {\n const ionSegment = this.ionSegmentElement.nativeElement;\n const ionSelectEvent = ionSegment['ionSelect'];\n if (this._value && typeof ionSelectEvent?.emit === 'function') {\n // Ensure changes has been reflected to the DOM:\n setTimeout(() => {\n const selectedSegmentButton = ionSegment.querySelector(\n 'ion-segment-button.segment-button-checked'\n );\n if (selectedSegmentButton) return; // Nothing to patch\n\n ionSelectEvent.emit({ value: this._value.id });\n });\n }\n }\n\n private _selectedIndex: number = -1;\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(index: number) {\n if (index !== this._selectedIndex) {\n this._selectedIndex = index;\n this._value = this.items[this.selectedIndex];\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n\n @Output() selectedIndexChange = new EventEmitter<number>();\n\n private _value: NoInfer<TItem>;\n get value(): NoInfer<TItem> {\n return this._value;\n }\n\n @Input() set value(value: NoInfer<TItem>) {\n this.selectedIndex = this.items.indexOf(value);\n }\n\n @HostBinding('class.sm')\n isSmallSize: boolean;\n\n @Input() set size(size: 'sm' | 'md') {\n this.isSmallSize = size === 'sm';\n }\n\n private _disableChangeOnSwipe: boolean = false;\n get disableChangeOnSwipe(): boolean {\n return this._disableChangeOnSwipe;\n }\n\n @Input() set disableChangeOnSwipe(value: boolean) {\n this._disableChangeOnSwipe = value;\n }\n\n @Output() segmentSelect = new EventEmitter<TItem>();\n\n onSegmentSelect(selectedId: string) {\n const selectedItemIndex = this.items.findIndex((item) => selectedId === item.id);\n\n if (selectedItemIndex !== this.selectedIndex) {\n this.selectedIndex = selectedItemIndex;\n setTimeout(() => {\n this.segmentSelect.emit(this.value);\n });\n }\n }\n}\n","<ion-segment\n [value]=\"value?.id\"\n [scrollable]=\"disableChangeOnSwipe || mode !== 'default'\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventOutsideClick($event)\"\n>\n <ng-container *ngFor=\"let item of items\">\n <ion-segment-button [value]=\"item.id\">\n {{ item.text }}\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </ion-segment-button>\n </ng-container>\n</ion-segment>\n","/* prettier-ignore */\nexport { SegmentedControlComponent, SegmentedControlMode} from './segmented-control/segmented-control.component'; // See issue #1555 for prettier-ignore explanation\nexport { SegmentItem } from './segmented-control/segment-item';\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `[keyHandler]`,\n})\nexport class KeyHandlerDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('keyup', ['$event'])\n keyEvent(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter' || event.key === 'Spacebar') {\n // Prevent the default action to stop scrolling when space is pressed\n event.preventDefault();\n\n const hostElement = <HTMLElement>this.element.nativeElement;\n hostElement.click();\n }\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { ModalNavigationService } from '@kirbydesign/designsystem/modal';\n\n@Directive({\n selector: `[kirbyModalRouterLink]`,\n})\nexport class ModalRouterLinkDirective implements OnInit {\n constructor(\n private modalNavigationService: ModalNavigationService,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.elementRef.nativeElement.setAttribute('modal-router-link', '');\n }\n\n @Input('kirbyModalRouterLink') path: string | string[];\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('kirbyModalQueryParams') queryParams?: Params;\n\n @HostListener('click')\n onClick(): boolean {\n this.modalNavigationService.navigateToModal(\n this.path,\n typeof this.queryParams !== 'string' ? this.queryParams : null\n );\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Inject, InjectionToken, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { CardModule } from '@kirbydesign/designsystem/card';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { KirbyIonicModule } from '@kirbydesign/designsystem/kirby-ionic-module';\nimport {\n ComponentLoaderDirective,\n ResizeObserverFactory,\n ResizeObserverService,\n ThemeColorDirective,\n} from '@kirbydesign/designsystem/shared';\nimport { FlagComponent } from '@kirbydesign/designsystem/flag';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\nimport { ToggleComponent } from '@kirbydesign/designsystem/toggle';\nimport { SectionHeaderComponent } from '@kirbydesign/designsystem/section-header';\nimport { ItemModule } from '@kirbydesign/designsystem/item';\nimport { SlideModule } from '@kirbydesign/designsystem/slide';\nimport { ToggleButtonModule } from '@kirbydesign/designsystem/toggle-button';\nimport { TabsModule } from '@kirbydesign/designsystem/tabs';\nimport { SlideButtonComponent } from '@kirbydesign/designsystem/slide-button';\nimport { RangeComponent } from '@kirbydesign/designsystem/range';\nimport { PopoverComponent } from '@kirbydesign/designsystem/popover';\nimport {\n LoadingOverlayComponent,\n LoadingOverlayService,\n} from '@kirbydesign/designsystem/loading-overlay';\nimport { DividerComponent } from '@kirbydesign/designsystem/divider';\nimport { CheckboxComponent } from '@kirbydesign/designsystem/checkbox';\nimport { AccordionModule } from '@kirbydesign/designsystem/accordion';\nimport { ItemSlidingComponent } from '@kirbydesign/designsystem/item-sliding';\nimport { ListModule } from '@kirbydesign/designsystem/list';\nimport { RadioModule } from '@kirbydesign/designsystem/radio';\nimport {\n AffixDirective,\n FormFieldModule,\n InputComponent,\n TextareaComponent,\n} from '@kirbydesign/designsystem/form-field';\nimport { AvatarComponent } from '@kirbydesign/designsystem/avatar';\nimport {\n ProgressCircleComponent,\n ProgressCircleRingComponent,\n} from '@kirbydesign/designsystem/progress-circle';\nimport { RouterOutletModule } from '@kirbydesign/designsystem/router-outlet';\n\nimport { ItemGroupComponent } from '@kirbydesign/designsystem/item-group';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { CalendarComponent } from '@kirbydesign/designsystem/calendar';\nimport {\n ActionSheetComponent,\n ActionSheetHelper,\n AlertComponent,\n AlertHelper,\n CanDismissHelper,\n ModalCompactWrapperComponent,\n ModalController,\n ModalFooterComponent,\n ModalHelper,\n ModalWrapperComponent,\n} from '@kirbydesign/designsystem/modal';\nimport { ModalComponent } from '@kirbydesign/designsystem/modal';\nimport { PageModule } from '@kirbydesign/designsystem/page';\nimport { HeaderModule } from '@kirbydesign/designsystem/header';\nimport { EmptyStateModule } from '@kirbydesign/designsystem/empty-state';\nimport { DropdownModule } from '@kirbydesign/designsystem/dropdown';\nimport { KirbyAppModule } from '@kirbydesign/designsystem/kirby-app';\nimport { ChartsModule } from '@kirbydesign/designsystem/chart';\nimport { FabSheetComponent } from '@kirbydesign/designsystem/fab-sheet';\nimport { TableSortableComponent } from '@kirbydesign/designsystem/data-table';\nimport { ReorderListComponent } from '@kirbydesign/designsystem/reorder-list';\n\nimport { ToastController, ToastHelper } from '@kirbydesign/designsystem/toast';\nimport { ActionGroupComponent } from '@kirbydesign/designsystem/action-group';\nimport { MenuComponent } from '@kirbydesign/designsystem/menu';\nimport { TabNavigationModule } from '@kirbydesign/designsystem/tab-navigation';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { SegmentedControlComponent } from './components/segmented-control/segmented-control.component';\nimport { KeyHandlerDirective } from './directives/key-handler/key-handler.directive';\nimport { ModalRouterLinkDirective } from './directives/modal-router-link/modal-router-link.directive';\n\nconst exportedDeclarations = [ModalRouterLinkDirective];\n\nconst declarations = [...exportedDeclarations, KeyHandlerDirective];\n\nconst standaloneComponents = [\n ActionGroupComponent,\n ItemGroupComponent,\n ModalCompactWrapperComponent,\n TextareaComponent,\n InputComponent,\n AffixDirective,\n DividerComponent,\n ThemeColorDirective,\n SegmentedControlComponent,\n AlertComponent,\n PopoverComponent,\n ProgressCircleRingComponent,\n ModalWrapperComponent,\n SectionHeaderComponent,\n RangeComponent,\n ItemSlidingComponent,\n ProgressCircleComponent,\n ReorderListComponent,\n LoadingOverlayComponent,\n FabSheetComponent,\n ToggleComponent,\n SlideButtonComponent,\n SegmentedControlComponent,\n CheckboxComponent,\n MenuComponent,\n ActionSheetComponent,\n ModalFooterComponent,\n AvatarComponent,\n CalendarComponent,\n ButtonComponent,\n ComponentLoaderDirective,\n FlagComponent,\n BadgeComponent,\n ModalComponent,\n TableSortableComponent,\n];\nconst exportedModules = [\n KirbyAppModule,\n RouterOutletModule,\n PageModule,\n HeaderModule,\n TabNavigationModule,\n TabsModule,\n IconModule,\n ItemModule,\n ToggleButtonModule,\n ListModule,\n ChartsModule,\n SpinnerModule,\n CardModule,\n RadioModule,\n EmptyStateModule,\n DropdownModule,\n FormFieldModule,\n SlideModule,\n AccordionModule,\n HeaderModule,\n ...standaloneComponents,\n];\n\nconst allExports = [...exportedModules, ...exportedDeclarations];\n\nconst importedModules = [...exportedModules];\n\nconst providers = [\n ModalController,\n ActionSheetHelper,\n ModalHelper,\n AlertHelper,\n ToastHelper,\n ToastController,\n LoadingOverlayService,\n ResizeObserverFactory,\n ResizeObserverService,\n CanDismissHelper,\n];\n\nconst ConfigToken = new InjectionToken<unknown>('USERCONFIG');\nexport interface KirbyConfig {\n moduleRootRoutePath?: string;\n}\n\n@NgModule({\n imports: [CommonModule, RouterModule, KirbyIonicModule, ...importedModules],\n declarations: [declarations],\n providers: providers,\n exports: [allExports],\n})\nexport class KirbyModule {\n static forChild(config?: KirbyConfig): ModuleWithProviders<KirbyModule> {\n return {\n ngModule: KirbyModule,\n providers: [\n {\n provide: ConfigToken,\n useValue: config,\n },\n ],\n };\n }\n\n constructor(\n modalController: ModalController,\n @Optional() @Inject(ConfigToken) config?: KirbyConfig\n ) {\n modalController.initialize(config && config.moduleRootRoutePath);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -1,8 +1,15 @@
1
+ import { InjectionToken } from '@angular/core';
1
2
  import { Icon } from './icon-settings';
2
3
  import * as i0 from "@angular/core";
4
+ export declare const DEFAULT_BUILT_IN_ICONS_URL = "assets/kirby/icons/svg/";
5
+ /**
6
+ * Token used to configure base URL for path to built-in icons. Default is 'assets/kirby/icons/svg'.
7
+ */
8
+ export declare const BUILT_IN_ICONS_URL: InjectionToken<string>;
3
9
  export declare class IconRegistryService {
10
+ private builtInIconsUrl;
4
11
  private iconRegistry;
5
- constructor();
12
+ constructor(builtInIconsUrl: string);
6
13
  addIcon(iconName: string, svgPath: string): void;
7
14
  addIcons(icons: Icon[]): void;
8
15
  private addDefaultIcons;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M12.0006,3.5007 C12.0406,3.5007 12.0756,3.5167 12.1136,3.5227 C12.1656,3.5317 12.2196,3.5347 12.2696,3.5547 C12.3156,3.5727 12.3536,3.6037 12.3956,3.6307 C12.4336,3.6557 12.4746,3.6757 12.5076,3.7087 C12.5486,3.7467 12.5756,3.7947 12.6056,3.8417 C12.6266,3.8737 12.6556,3.8967 12.6716,3.9317 L14.6646,8.2547 L19.4996,8.2547 C20.1146,8.2547 20.6866,8.5337 21.0676,9.0207 C21.4496,9.5067 21.5876,10.1327 21.4456,10.7357 L19.5216,18.9477 C19.3096,19.8617 18.5086,20.5007 17.5776,20.5007 L6.4226,20.5007 C5.4916,20.5007 4.6916,19.8617 4.4776,18.9477 L2.5546,10.7357 C2.4136,10.1327 2.5506,9.5067 2.9326,9.0207 C3.3136,8.5337 3.8856,8.2547 4.4996,8.2547 L9.9286,8.2547 L8.2256,4.5617 C8.2236,4.5567 8.2246,4.5527 8.2226,4.5477 C8.2036,4.5047 8.2006,4.4567 8.1896,4.4097 C8.1786,4.3587 8.1606,4.3097 8.1596,4.2587 C8.1596,4.2537 8.1566,4.2507 8.1566,4.2467 C8.1566,4.2097 8.1726,4.1787 8.1776,4.1447 C8.1856,4.0857 8.1896,4.0287 8.2116,3.9737 C8.2286,3.9297 8.2576,3.8947 8.2826,3.8557 C8.3086,3.8137 8.3296,3.7697 8.3636,3.7337 C8.4016,3.6937 8.4486,3.6667 8.4946,3.6367 C8.5256,3.6157 8.5496,3.5857 8.5846,3.5697 C8.5886,3.5677 8.5936,3.5677 8.5976,3.5657 C8.6426,3.5457 8.6926,3.5427 8.7416,3.5317 C8.7896,3.5217 8.8356,3.5027 8.8836,3.5027 C8.8886,3.5027 8.8926,3.5007 8.8966,3.5007 L12.0006,3.5007 Z M19.4996,9.7477 L4.4996,9.7477 C4.2806,9.7477 4.1506,9.8727 4.0926,9.9467 C4.0346,10.0217 3.9436,10.1787 3.9946,10.3937 L5.9166,18.6037 C5.9726,18.8407 6.1806,19.0067 6.4226,19.0067 L17.5776,19.0067 C17.8186,19.0067 18.0266,18.8417 18.0826,18.6047 L20.0066,10.3937 C20.0566,10.1787 19.9666,10.0217 19.9086,9.9467 C19.8496,9.8727 19.7186,9.7477 19.4996,9.7477 Z M9.027,12.8538 C9.435,12.8538 9.766,13.1878 9.766,13.5998 L9.766,16.8008 C9.766,17.2128 9.435,17.5468 9.027,17.5468 C8.618,17.5468 8.287,17.2128 8.287,16.8008 L8.287,13.5998 C8.287,13.1878 8.618,12.8538 9.027,12.8538 Z M12.0919,12.8538 C12.5009,12.8538 12.8319,13.1878 12.8319,13.5998 L12.8319,16.8008 C12.8319,17.2128 12.5009,17.5468 12.0919,17.5468 C11.6839,17.5468 11.3519,17.2128 11.3519,16.8008 L11.3519,13.5998 C11.3519,13.1878 11.6839,12.8538 12.0919,12.8538 Z M15.0992,12.8538 C15.5072,12.8538 15.8382,13.1878 15.8382,13.5998 L15.8382,16.8008 C15.8382,17.2128 15.5072,17.5468 15.0992,17.5468 C14.6912,17.5468 14.3592,17.2128 14.3592,16.8008 L14.3592,13.5998 C14.3592,13.1878 14.6912,12.8538 15.0992,12.8538 Z M12.0919,10.6172 C12.4699,10.6172 12.7769,10.9272 12.7769,11.3092 C12.7769,11.6902 12.4699,12.0002 12.0919,12.0002 C11.7139,12.0002 11.4069,11.6902 11.4069,11.3092 C11.4069,10.9272 11.7139,10.6172 12.0919,10.6172 Z M11.5286,4.9927 L10.0566,4.9927 L11.5616,8.2547 L13.0326,8.2547 L11.5286,4.9927 Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M7.7127,2.8926 C7.3037,2.8926 6.9717,3.2266 6.9717,3.6386 L6.9717,5.9486 L3.2657,2.2186 C3.1207,2.0726 2.9317,1.9996 2.7417,1.9996 C2.5517,1.9996 2.3627,2.0726 2.2177,2.2186 C1.9277,2.5096 1.9277,2.9816 2.2177,3.2726 L5.9617,7.0406 L3.6567,7.0406 C3.2487,7.0406 2.9167,7.3746 2.9167,7.7866 C2.9167,8.1986 3.2487,8.5326 3.6567,8.5326 L7.7127,8.5326 C8.1217,8.5326 8.4537,8.1986 8.4537,7.7866 L8.4537,3.6386 C8.4537,3.2266 8.1217,2.8926 7.7127,2.8926 M16.2508,8.496 L20.3718,8.496 C20.7808,8.496 21.1128,8.162 21.1128,7.75 C21.1128,7.338 20.7808,7.004 20.3718,7.004 L18.0768,7.004 L21.7828,3.274 C22.0728,2.982 22.0728,2.51 21.7828,2.219 C21.6388,2.074 21.4498,2 21.2598,2 C21.0688,2 20.8808,2.074 20.7348,2.219 L16.9918,5.987 L16.9918,3.668 C16.9918,3.257 16.6598,2.923 16.2508,2.923 C15.8418,2.923 15.5098,3.257 15.5098,3.668 L15.5098,7.75 C15.5098,8.162 15.8418,8.496 16.2508,8.496 M16.28755,21.1063 C16.69655,21.1063 17.02855,20.7723 17.02855,20.3613 L17.02855,18.0503 L20.73555,21.7813 C21.02455,22.0733 21.49355,22.0733 21.78355,21.7813 C22.07255,21.4903 22.07255,21.0183 21.78355,20.7263 L18.03955,16.9593 L20.34455,16.9593 C20.75355,16.9593 21.08555,16.6253 21.08555,16.2133 C21.08555,15.8013 20.75355,15.4673 20.34455,15.4673 L16.28755,15.4673 C15.87855,15.4673 15.54655,15.8013 15.54655,16.2133 L15.54655,20.3613 C15.54655,20.7723 15.87855,21.1063 16.28755,21.1063 M3.26435,21.78145 L7.00835,18.01245 L7.00835,20.33145 C7.00835,20.74345 7.34035,21.07745 7.74835,21.07745 C8.15835,21.07745 8.49035,20.74345 8.49035,20.33145 L8.49035,16.25045 C8.49035,15.83845 8.15835,15.50445 7.74835,15.50445 L3.62735,15.50445 C3.21835,15.50445 2.88735,15.83845 2.88735,16.25045 C2.88735,16.66145 3.21835,16.99545 3.62735,16.99545 L5.92335,16.99545 L2.21635,20.72645 C1.92735,21.01745 1.92735,21.48945 2.21635,21.78145 C2.50635,22.07245 2.97435,22.07245 3.26435,21.78145"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M14 4C15.5187831 4 16.75 5.23121694 16.75 6.75L16.75 12.75C16.75 14.2687831 15.5187831 15.5 14 15.5L5.75 15.5C4.23121694 15.5 3 14.2687831 3 12.75L3 6.75C3 5.23121694 4.23121694 4 5.75 4L14 4ZM14 5.5 5.75 5.5C5.05964406 5.5 4.5 6.05964406 4.5 6.75L4.5 12.75C4.5 13.4403559 5.05964406 14 5.75 14L14 14C14.6903559 14 15.25 13.4403559 15.25 12.75L15.25 6.75C15.25 6.05964406 14.6903559 5.5 14 5.5ZM18.25 8C19.7416194 8 21 9.04865047 21 10.4166667 21 10.8308802 20.6642136 11.1666667 20.25 11.1666667 19.8357864 11.1666667 19.5 10.8308802 19.5 10.4166667 19.5 9.9437337 18.9675196 9.5 18.25 9.5 17.8357864 9.5 17.5 9.16421356 17.5 8.75 17.5 8.33578644 17.8357864 8 18.25 8ZM19.5 12.9166667C19.5 11.9166667 21 11.9166667 21 12.9166667L21 14.5833333C21 15.5416667 19.6223958 15.5815972 19.5075955 14.703125L19.5 14.5833333 19.5 12.9166667ZM20.25 16.3333333C20.6642136 16.3333333 21 16.6691198 21 17.0833333 21 18.4513495 19.7416194 19.5 18.25 19.5 17.8357864 19.5 17.5 19.1642136 17.5 18.75 17.5 18.3357864 17.8357864 18 18.25 18 18.9675196 18 19.5 17.5562663 19.5 17.0833333 19.5 16.6691198 19.8357864 16.3333333 20.25 16.3333333ZM15.5 18C15.9142136 18 16.25 18.3357864 16.25 18.75 16.25 19.1642136 15.9142136 19.5 15.5 19.5L13 19.5C12.5857864 19.5 12.25 19.1642136 12.25 18.75 12.25 18.3357864 12.5857864 18 13 18L15.5 18ZM8.25 16.3333333C8.66421356 16.3333333 9 16.6691198 9 17.0833333 9 17.5562663 9.53248044 18 10.25 18 10.6642136 18 11 18.3357864 11 18.75 11 19.1642136 10.6642136 19.5 10.25 19.5 8.75838057 19.5 7.5 18.4513495 7.5 17.0833333 7.5 16.6691198 7.83578644 16.3333333 8.25 16.3333333Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M2.7412,7.6396 C3.1502,7.6396 3.4822,7.3056 3.4822,6.8936 L3.4822,4.5836 L7.1882,8.3136 C7.3332,8.4596 7.5222,8.5326 7.7122,8.5326 C7.9022,8.5326 8.0912,8.4596 8.2362,8.3136 C8.5262,8.0226 8.5262,7.5506 8.2362,7.2596 L4.4922,3.4916 L6.7972,3.4916 C7.2052,3.4916 7.5372,3.1576 7.5372,2.7456 C7.5372,2.3336 7.2052,1.9996 6.7972,1.9996 L2.7412,1.9996 C2.3322,1.9996 2.0002,2.3336 2.0002,2.7456 L2.0002,6.8936 C2.0002,7.3056 2.3322,7.6396 2.7412,7.6396 M21.2593,2 L17.1383,2 C16.7293,2 16.3973,2.334 16.3973,2.746 C16.3973,3.158 16.7293,3.492 17.1383,3.492 L19.4333,3.492 L15.7273,7.222 C15.4373,7.514 15.4373,7.986 15.7273,8.277 C15.8713,8.422 16.0603,8.496 16.2503,8.496 C16.4413,8.496 16.6293,8.422 16.7753,8.277 L20.5183,4.509 L20.5183,6.828 C20.5183,7.239 20.8503,7.573 21.2593,7.573 C21.6683,7.573 22.0003,7.239 22.0003,6.828 L22.0003,2.746 C22.0003,2.334 21.6683,2 21.2593,2 M21.2593,16.3613 C20.8503,16.3613 20.5183,16.6953 20.5183,17.1063 L20.5183,19.4173 L16.8113,15.6863 C16.5223,15.3943 16.0533,15.3943 15.7633,15.6863 C15.4743,15.9773 15.4743,16.4493 15.7633,16.7413 L19.5073,20.5083 L17.2023,20.5083 C16.7933,20.5083 16.4613,20.8423 16.4613,21.2543 C16.4613,21.6663 16.7933,22.0003 17.2023,22.0003 L21.2593,22.0003 C21.6683,22.0003 22.0003,21.6663 22.0003,21.2543 L22.0003,17.1063 C22.0003,16.6953 21.6683,16.3613 21.2593,16.3613 M7.2256,15.7227 L3.4816,19.4917 L3.4816,17.1727 C3.4816,16.7607 3.1496,16.4267 2.7416,16.4267 C2.3316,16.4267 1.9996,16.7607 1.9996,17.1727 L1.9996,21.2537 C1.9996,21.6657 2.3316,21.9997 2.7416,21.9997 L6.8626,21.9997 C7.2716,21.9997 7.6026,21.6657 7.6026,21.2537 C7.6026,20.8427 7.2716,20.5087 6.8626,20.5087 L4.5666,20.5087 L8.2736,16.7777 C8.5626,16.4867 8.5626,16.0147 8.2736,15.7227 C7.9836,15.4317 7.5156,15.4317 7.2256,15.7227"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M19.044,12.3972 C17.656,13.7752 15.417,12.6082 14.624,12.1202 C14.58,11.6262 14.412,11.1712 14.142,10.7912 C14.534,9.9912 15.785,7.8652 17.831,8.1882 C18.468,8.2892 19.068,8.9652 19.359,9.9092 C19.667,10.9052 19.54,11.9052 19.044,12.3972 M16.701,18.8482 C15.878,19.4602 14.912,19.6492 14.303,19.3192 C12.473,18.3292 13.038,15.4692 13.215,14.7442 C13.557,14.5652 13.853,14.3142 14.087,14.0072 C14.754,14.0882 17.445,14.5552 17.814,16.8182 C17.919,17.4712 17.482,18.2682 16.701,18.8482 M10.121,19.3172 C9.514,19.6532 8.547,19.4772 7.717,18.8752 C6.929,18.3042 6.484,17.5132 6.583,16.8572 C6.888,14.8262 9.104,14.2142 10.025,14.0452 C10.329,14.4302 10.731,14.7232 11.195,14.8882 C11.41,15.7942 11.838,18.3612 10.121,19.3172 M4.641,9.9572 C4.932,9.0132 5.532,8.3372 6.169,8.2362 C8.242,7.9032 9.502,10.1032 9.875,10.8732 C9.639,11.2342 9.498,11.6622 9.457,12.1182 C8.756,12.5662 6.406,13.8852 4.957,12.4452 C4.46,11.9522 4.333,10.9522 4.641,9.9572 M9.939,5.5252 C10.217,4.9272 11.02,4.5322 11.983,4.5172 C12.984,4.4842 13.896,4.9142 14.21,5.5452 C15.081,7.2832 13.411,9.1212 12.71,9.7852 C12.495,9.7262 12.273,9.6852 12.041,9.6852 C11.754,9.6852 11.483,9.7442 11.226,9.8322 C10.55,9.1542 9.076,7.3822 9.939,5.5252 M13.173,12.3652 C13.173,13.0062 12.665,13.5272 12.041,13.5272 C11.416,13.5272 10.908,13.0062 10.908,12.3652 C10.908,11.7242 11.416,11.2022 12.041,11.2022 C12.665,11.2022 13.173,11.7242 13.173,12.3652 M20.767,9.4512 C20.299,7.9382 19.262,6.8802 18.057,6.6892 C17.248,6.5602 16.54,6.6762 15.92,6.9242 C15.976,6.2642 15.881,5.5652 15.523,4.8512 C14.947,3.7022 13.579,2.9822 11.961,3.0002 C10.418,3.0242 9.132,3.7412 8.607,4.8712 C8.258,5.6232 8.161,6.3462 8.209,7.0222 C7.559,6.7382 6.808,6.6002 5.944,6.7372 C4.739,6.9282 3.701,7.9862 3.234,9.4982 C2.753,11.0532 3.027,12.6392 3.931,13.5372 C4.571,14.1722 5.289,14.4722 6.009,14.5732 C5.581,15.1112 5.251,15.7792 5.124,16.6262 C4.937,17.8642 5.605,19.2002 6.867,20.1152 C7.67,20.6962 8.572,21.0002 9.404,21.0002 C9.917,21.0002 10.403,20.8852 10.824,20.6502 C11.45,20.3022 11.891,19.8402 12.204,19.3242 C12.524,19.8482 12.974,20.3152 13.614,20.6622 C14.027,20.8852 14.5,20.9942 14.996,20.9942 C15.841,20.9942 16.756,20.6802 17.566,20.0772 C18.817,19.1482 19.469,17.8032 19.269,16.5682 C19.126,15.6892 18.768,15.0032 18.307,14.4602 C18.919,14.3192 19.523,14.0302 20.068,13.4882 C20.973,12.5912 21.247,11.0062 20.767,9.4512"/></svg>