@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
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-radio.mjs","sources":["../../radio/src/radio.component.ts","../../radio/src/radio.component.html","../../radio/src/radio-group/radio-group.component.ts","../../radio/src/radio-group/radio-group.component.html","../../radio/src/radio-module.ts","../../radio/src/kirbydesign-designsystem-radio.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { IonRadio } from '@ionic/angular/standalone';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n selector: 'kirby-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IonicElementPartHelper],\n})\nexport class RadioComponent implements AfterViewInit, OnInit {\n @ViewChild(IonRadio, { read: ElementRef, static: true })\n private ionRadioElement?: ElementRef<HTMLIonRadioElement>;\n\n @Input()\n value: any;\n\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size: 'xs' | 'sm' | 'md' = 'md';\n\n @Input()\n disabled: boolean;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n get buttonTabIndex(): number {\n return this.ionRadioElement ? this.ionRadioElement.nativeElement.tabIndex : -1;\n }\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'end';\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n const slot = this.element.nativeElement.getAttribute('slot');\n if (slot === 'end') {\n this._justify = 'space-between';\n this._labelPlacement = 'start';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionRadioElement, '.radio-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionRadioElement,\n '.label-text-wrapper'\n );\n this.ionicElementPartHelper.setPart('native-wrapper', this.ionRadioElement, '.native-wrapper');\n }\n\n focus() {\n this.ionRadioElement && this.ionRadioElement.nativeElement.focus();\n }\n}\n","<ion-radio\n [value]=\"value\"\n [disabled]=\"disabled\"\n mode=\"md\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n <span *ngIf=\"text\">{{ text }}</span>\n <ng-content></ng-content>\n</ion-radio>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Output,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport { Component, HostListener, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\n\nimport { RadioComponent } from '../radio.component';\n\n@Component({\n selector: 'kirby-radio-group',\n templateUrl: './radio-group.component.html',\n styles: ['ion-radio-group { display: inherit; flex-wrap: inherit}'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, ControlValueAccessor {\n constructor(private changeDetectionRef: ChangeDetectorRef) {}\n\n // #region public properties\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() set disabled(value: boolean) {\n this._disabled = value;\n this.setProjectedRadiosDisabledState(value);\n }\n\n @HostBinding('class.error') // Used to style radios with error state\n @Input()\n hasError: boolean = false;\n\n get items(): string[] | any[] {\n return this._items || []; // Ensure items return empty array even if set to null/undefined\n }\n\n @Input() set items(value: string[] | any[]) {\n if ((!value || !value.length) && !this.items.length) return; // Nothing changed, no items before or after\n this._items = value;\n this.refreshSelectionState();\n }\n\n @Input()\n itemTextProperty = 'text';\n\n @Input()\n itemDisabledProperty = 'disabled';\n\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (typeof value === 'string') value = parseInt(value); // Ensure data type number, e.g. when used with template syntax without binding: <... selectedIndex=\"1\"\n // eslint-disable-next-line use-isnan\n if (value === undefined || value === null || Number.isNaN(value)) value = -1;\n if (value === this.selectedIndex) return;\n this._selectedIndex = value;\n this._value = this.getValueFromSelectedIndex() || null;\n }\n\n get value(): string | any {\n return this._value;\n }\n\n @Input() set value(value: string | any) {\n this.setSelectedItem(value);\n }\n\n private get hasValue(): boolean {\n return this.value !== undefined && this.value !== null;\n }\n\n /**\n * Emitted when an option is selected\n */\n @Output() valueChange: EventEmitter<string | any> = new EventEmitter<string | any>();\n // #endregion public properties\n\n // #region \"protected\" properties used by template\n @ContentChild(ListItemTemplateDirective, { read: TemplateRef })\n _customItemTemplate: TemplateRef<any>;\n // #endregion \"protected\" properties used by template\n\n // #region private fields\n private _disabled = false;\n private _items: string[] | any[] = [];\n private _onChangeCallback: (value: any) => void = () => {};\n private _onTouched = () => {};\n private _selectedIndex: number = -1;\n private _value?: string | any = null;\n @ViewChildren(RadioComponent)\n private radioButtons: QueryList<RadioComponent>;\n @ContentChildren(RadioComponent, { descendants: true })\n private projectedRadioButtons: QueryList<RadioComponent>;\n\n private get hasItemsFromContentProjection(): boolean {\n return (\n !this.items.length &&\n !this._customItemTemplate &&\n this.projectedRadioButtons &&\n this.projectedRadioButtons.length > 0\n );\n }\n\n // #endregion private fields\n\n // #region public methods\n focus() {\n const findFocusable = (radios: QueryList<RadioComponent>) =>\n radios && radios.find((radio) => !isNaN(radio.buttonTabIndex) && radio.buttonTabIndex !== -1);\n const focusable = findFocusable(this.radioButtons) || findFocusable(this.projectedRadioButtons);\n focusable && focusable.focus();\n }\n\n ngAfterContentInit(): void {\n this.initSelectionStateFromProjectedContent();\n this.listenForProjectedRadiosChange();\n }\n\n registerOnChange(fn: any): void {\n this._onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.changeDetectionRef.markForCheck();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.changeDetectionRef.markForCheck();\n }\n\n // #endregion public methods\n\n // #region \"protected\" methods used by template\n _getTextFromItem(item: string | any): string {\n if (!item) return null;\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n\n _getDisabledStateFromItem(item: string | any): boolean {\n if (!item) return undefined;\n return typeof item === 'string' ? undefined : item[this.itemDisabledProperty];\n }\n\n get _hasItems(): boolean {\n return this.items.length > 0 || this.hasItemsFromContentProjection;\n }\n\n _onChange(value: string | any) {\n if (value === this._value) return;\n this.setSelectedItem(value);\n this.valueChange.emit(value);\n this._onChangeCallback(value);\n }\n\n @HostListener('ionBlur')\n _onRadioBlur() {\n this._onTouched();\n }\n\n // #endregion \"protected\" methods used by template\n\n // #region private methods\n private getIndexOfSelectedValue() {\n if (!this.hasValue) return -1;\n return this.hasItemsFromContentProjection\n ? this.getIndexOfProjectedRadio(this.value)\n : this.items.indexOf(this.value);\n }\n\n private getIndexOfProjectedRadio(value: string | any): number {\n let selectedIndex = -1;\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((radio, i) => {\n const found = radio.value === value;\n if (found) {\n selectedIndex = i;\n }\n return found;\n });\n return selectedIndex;\n }\n\n private getValueFromSelectedIndex(): string | any {\n if (this.selectedIndex === -1) return;\n return this.hasItemsFromContentProjection\n ? this.getValueFromProjectedRadios(this.selectedIndex)\n : this.items[this.selectedIndex];\n }\n\n private getValueFromProjectedRadios(index: number): string | any {\n const radio =\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((_, i) => {\n return i === index;\n });\n return radio && radio.value;\n }\n\n private initSelectionStateFromProjectedContent() {\n if (this.hasItemsFromContentProjection) {\n this.refreshSelectionState(); // Initialize selected index and value from projected radios\n }\n }\n\n private listenForProjectedRadiosChange() {\n this.projectedRadioButtons.changes.subscribe(() => {\n this.refreshStateFromProjectedContent();\n\n if (this.disabled) {\n // Ensure disabled state propagates when re-rendering projected radios.\n // setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when updating the DOM in QueryList.changes:\n setTimeout(() => this.setProjectedRadiosDisabledState(this.disabled));\n }\n });\n }\n\n private refreshSelectionState() {\n if (this.hasValue) {\n this._selectedIndex = this.getIndexOfSelectedValue(); // Ensure selectedIndex reflects value within items\n }\n\n const valueFromSelectedIndex = this.getValueFromSelectedIndex();\n this._value = valueFromSelectedIndex !== undefined ? valueFromSelectedIndex : null;\n }\n\n private refreshStateFromProjectedContent() {\n if (this._customItemTemplate) return; // Only refresh on changes to projected content, not when re-rendering custom template\n this.changeDetectionRef.markForCheck(); // Ensure changes to projected content gets checked in next change detection cycle\n this.refreshSelectionState(); // Sync selected index and value from projected radios\n }\n\n private setSelectedItem(value: string | any) {\n if (value === this._value) return; // Nothing changed\n this._value = value;\n this._selectedIndex = this.getIndexOfSelectedValue();\n }\n\n private setProjectedRadiosDisabledState(isDisabled: boolean) {\n if (!this.projectedRadioButtons || !this.projectedRadioButtons.length) return;\n this.projectedRadioButtons.forEach((radio, index) => {\n // Disable all radios when group is disabled, otherwise fall back to each item's disabled state, if defined:\n radio.disabled = isDisabled || this._getDisabledStateFromItem(this.items[index]);\n });\n }\n\n // #endregion private methods\n}\n","<ion-radio-group *ngIf=\"_hasItems\" [value]=\"value\" (ionChange)=\"_onChange($event.detail.value)\">\n <ng-container *ngIf=\"!items || !items.length; else itemsTemplate\">\n <ng-content></ng-content>\n </ng-container>\n</ion-radio-group>\n\n<ng-template #itemsTemplate>\n <ng-container *ngFor=\"let item of items; let i = index\">\n <ng-container\n *ngTemplateOutlet=\"\n _customItemTemplate || defaultItemTemplate;\n context: { $implicit: item, selected: i === selectedIndex, index: i }\n \"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #defaultItemTemplate let-item>\n <kirby-radio\n [value]=\"item\"\n [disabled]=\"disabled || _getDisabledStateFromItem(item)\"\n [text]=\"_getTextFromItem(item)\"\n ></kirby-radio>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonRadio, IonRadioGroup } from '@ionic/angular/standalone';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\nimport { RadioComponent } from './radio.component';\n\nconst declarations = [RadioComponent, RadioGroupComponent];\n\n@NgModule({\n imports: [CommonModule, IonRadio, IonRadioGroup],\n declarations: [...declarations],\n exports: [...declarations],\n})\nexport class RadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i1","i3.RadioComponent"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-radio.mjs","sources":["../../radio/src/radio.component.ts","../../radio/src/radio.component.html","../../radio/src/radio-group/radio-group.component.ts","../../radio/src/radio-group/radio-group.component.html","../../radio/src/radio-module.ts","../../radio/src/kirbydesign-designsystem-radio.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { IonRadio } from '@ionic/angular/standalone';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\n\n@Component({\n selector: 'kirby-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IonicElementPartHelper],\n})\nexport class RadioComponent implements AfterViewInit, OnInit, AfterContentInit {\n @ViewChild(IonRadio, { read: ElementRef, static: true })\n private ionRadioElement?: ElementRef<HTMLIonRadioElement>;\n\n @Input()\n value: any;\n\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size: 'xs' | 'sm' | 'md' = 'md';\n\n @Input()\n disabled: boolean;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n get buttonTabIndex(): number {\n return this.ionRadioElement ? this.ionRadioElement.nativeElement.tabIndex : -1;\n }\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'end';\n _hasSlottedContent: boolean;\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-checkbox for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-checkbox is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.element.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.element.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n this._labelPlacement = 'start';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionRadioElement, '.radio-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionRadioElement,\n '.label-text-wrapper'\n );\n this.ionicElementPartHelper.setPart('native-wrapper', this.ionRadioElement, '.native-wrapper');\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.element.nativeElement);\n\n if (!this.text && !this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.element.nativeElement);\n }\n }\n\n focus() {\n this.ionRadioElement && this.ionRadioElement.nativeElement.focus();\n }\n}\n","<ion-radio\n [value]=\"value\"\n [disabled]=\"disabled\"\n mode=\"md\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n <span class=\"hidden-label\" *ngIf=\"_labelText\">{{ _labelText }}</span>\n <span *ngIf=\"text\">{{ text }}</span>\n <span class=\"default-content\">\n <ng-content></ng-content>\n </span>\n</ion-radio>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Output,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport { Component, HostListener, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\n\nimport { RadioComponent } from '../radio.component';\n\n@Component({\n selector: 'kirby-radio-group',\n templateUrl: './radio-group.component.html',\n styles: ['ion-radio-group { display: inherit; flex-wrap: inherit}'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, ControlValueAccessor {\n constructor(private changeDetectionRef: ChangeDetectorRef) {}\n\n // #region public properties\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() set disabled(value: boolean) {\n this._disabled = value;\n this.setProjectedRadiosDisabledState(value);\n }\n\n @HostBinding('class.error') // Used to style radios with error state\n @Input()\n hasError: boolean = false;\n\n get items(): string[] | any[] {\n return this._items || []; // Ensure items return empty array even if set to null/undefined\n }\n\n @Input() set items(value: string[] | any[]) {\n if ((!value || !value.length) && !this.items.length) return; // Nothing changed, no items before or after\n this._items = value;\n this.refreshSelectionState();\n }\n\n @Input()\n itemTextProperty = 'text';\n\n @Input()\n itemDisabledProperty = 'disabled';\n\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (typeof value === 'string') value = parseInt(value); // Ensure data type number, e.g. when used with template syntax without binding: <... selectedIndex=\"1\"\n // eslint-disable-next-line use-isnan\n if (value === undefined || value === null || Number.isNaN(value)) value = -1;\n if (value === this.selectedIndex) return;\n this._selectedIndex = value;\n this._value = this.getValueFromSelectedIndex() || null;\n }\n\n get value(): string | any {\n return this._value;\n }\n\n @Input() set value(value: string | any) {\n this.setSelectedItem(value);\n }\n\n private get hasValue(): boolean {\n return this.value !== undefined && this.value !== null;\n }\n\n /**\n * Emitted when an option is selected\n */\n @Output() valueChange: EventEmitter<string | any> = new EventEmitter<string | any>();\n // #endregion public properties\n\n // #region \"protected\" properties used by template\n @ContentChild(ListItemTemplateDirective, { read: TemplateRef })\n _customItemTemplate: TemplateRef<any>;\n // #endregion \"protected\" properties used by template\n\n // #region private fields\n private _disabled = false;\n private _items: string[] | any[] = [];\n private _onChangeCallback: (value: any) => void = () => {};\n private _onTouched = () => {};\n private _selectedIndex: number = -1;\n private _value?: string | any = null;\n @ViewChildren(RadioComponent)\n private radioButtons: QueryList<RadioComponent>;\n @ContentChildren(RadioComponent, { descendants: true })\n private projectedRadioButtons: QueryList<RadioComponent>;\n\n private get hasItemsFromContentProjection(): boolean {\n return (\n !this.items.length &&\n !this._customItemTemplate &&\n this.projectedRadioButtons &&\n this.projectedRadioButtons.length > 0\n );\n }\n\n // #endregion private fields\n\n // #region public methods\n focus() {\n const findFocusable = (radios: QueryList<RadioComponent>) =>\n radios && radios.find((radio) => !isNaN(radio.buttonTabIndex) && radio.buttonTabIndex !== -1);\n const focusable = findFocusable(this.radioButtons) || findFocusable(this.projectedRadioButtons);\n focusable && focusable.focus();\n }\n\n ngAfterContentInit(): void {\n this.initSelectionStateFromProjectedContent();\n this.listenForProjectedRadiosChange();\n }\n\n registerOnChange(fn: any): void {\n this._onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.changeDetectionRef.markForCheck();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.changeDetectionRef.markForCheck();\n }\n\n // #endregion public methods\n\n // #region \"protected\" methods used by template\n _getTextFromItem(item: string | any): string {\n if (!item) return null;\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n\n _getDisabledStateFromItem(item: string | any): boolean {\n if (!item) return undefined;\n return typeof item === 'string' ? undefined : item[this.itemDisabledProperty];\n }\n\n get _hasItems(): boolean {\n return this.items.length > 0 || this.hasItemsFromContentProjection;\n }\n\n _onChange(value: string | any) {\n if (value === this._value) return;\n this.setSelectedItem(value);\n this.valueChange.emit(value);\n this._onChangeCallback(value);\n }\n\n @HostListener('ionBlur')\n _onRadioBlur() {\n this._onTouched();\n }\n\n // #endregion \"protected\" methods used by template\n\n // #region private methods\n private getIndexOfSelectedValue() {\n if (!this.hasValue) return -1;\n return this.hasItemsFromContentProjection\n ? this.getIndexOfProjectedRadio(this.value)\n : this.items.indexOf(this.value);\n }\n\n private getIndexOfProjectedRadio(value: string | any): number {\n let selectedIndex = -1;\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((radio, i) => {\n const found = radio.value === value;\n if (found) {\n selectedIndex = i;\n }\n return found;\n });\n return selectedIndex;\n }\n\n private getValueFromSelectedIndex(): string | any {\n if (this.selectedIndex === -1) return;\n return this.hasItemsFromContentProjection\n ? this.getValueFromProjectedRadios(this.selectedIndex)\n : this.items[this.selectedIndex];\n }\n\n private getValueFromProjectedRadios(index: number): string | any {\n const radio =\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((_, i) => {\n return i === index;\n });\n return radio && radio.value;\n }\n\n private initSelectionStateFromProjectedContent() {\n if (this.hasItemsFromContentProjection) {\n this.refreshSelectionState(); // Initialize selected index and value from projected radios\n }\n }\n\n private listenForProjectedRadiosChange() {\n this.projectedRadioButtons.changes.subscribe(() => {\n this.refreshStateFromProjectedContent();\n\n if (this.disabled) {\n // Ensure disabled state propagates when re-rendering projected radios.\n // setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when updating the DOM in QueryList.changes:\n setTimeout(() => this.setProjectedRadiosDisabledState(this.disabled));\n }\n });\n }\n\n private refreshSelectionState() {\n if (this.hasValue) {\n this._selectedIndex = this.getIndexOfSelectedValue(); // Ensure selectedIndex reflects value within items\n }\n\n const valueFromSelectedIndex = this.getValueFromSelectedIndex();\n this._value = valueFromSelectedIndex !== undefined ? valueFromSelectedIndex : null;\n }\n\n private refreshStateFromProjectedContent() {\n if (this._customItemTemplate) return; // Only refresh on changes to projected content, not when re-rendering custom template\n this.changeDetectionRef.markForCheck(); // Ensure changes to projected content gets checked in next change detection cycle\n this.refreshSelectionState(); // Sync selected index and value from projected radios\n }\n\n private setSelectedItem(value: string | any) {\n if (value === this._value) return; // Nothing changed\n this._value = value;\n this._selectedIndex = this.getIndexOfSelectedValue();\n }\n\n private setProjectedRadiosDisabledState(isDisabled: boolean) {\n if (!this.projectedRadioButtons || !this.projectedRadioButtons.length) return;\n this.projectedRadioButtons.forEach((radio, index) => {\n // Disable all radios when group is disabled, otherwise fall back to each item's disabled state, if defined:\n radio.disabled = isDisabled || this._getDisabledStateFromItem(this.items[index]);\n });\n }\n\n // #endregion private methods\n}\n","<ion-radio-group *ngIf=\"_hasItems\" [value]=\"value\" (ionChange)=\"_onChange($event.detail.value)\">\n <ng-container *ngIf=\"!items || !items.length; else itemsTemplate\">\n <ng-content></ng-content>\n </ng-container>\n</ion-radio-group>\n\n<ng-template #itemsTemplate>\n <ng-container *ngFor=\"let item of items; let i = index\">\n <ng-container\n *ngTemplateOutlet=\"\n _customItemTemplate || defaultItemTemplate;\n context: { $implicit: item, selected: i === selectedIndex, index: i }\n \"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #defaultItemTemplate let-item>\n <kirby-radio\n [value]=\"item\"\n [disabled]=\"disabled || _getDisabledStateFromItem(item)\"\n [text]=\"_getTextFromItem(item)\"\n ></kirby-radio>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonRadio, IonRadioGroup } from '@ionic/angular/standalone';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\nimport { RadioComponent } from './radio.component';\n\nconst declarations = [RadioComponent, RadioGroupComponent];\n\n@NgModule({\n imports: [CommonModule, IonRadio, IonRadioGroup],\n declarations: [...declarations],\n exports: [...declarations],\n})\nexport class RadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i1","i3.RadioComponent"],"mappings":";;;;;;;;;;;;MAsBa,cAAc,CAAA;AAgBzB,IAAA,IACI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;KAC1C;AAID,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KAChF;IAMD,WACU,CAAA,OAAgC,EAChC,sBAA8C,EAAA;QAD9C,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;QAChC,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;QArBxD,IAAI,CAAA,IAAA,GAAuB,IAAI,CAAC;QAehC,IAAQ,CAAA,QAAA,GAAsC,OAAO,CAAC;QACtD,IAAe,CAAA,eAAA,GAA0C,KAAK,CAAC;KAM3D;IAEJ,QAAQ,GAAA;AACN;;;;AAIG;AACH,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;aACjD,aAAa,CAAC,kBAAkB,CAAC;AACjC,aAAA,aAAa,EAAE,CAAC;AAEnB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;AAChC,YAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;SAChC;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,sBAAsB,CAAC,OAAO,CACjC,oBAAoB,EACpB,IAAI,CAAC,eAAe,EACpB,qBAAqB,CACtB,CAAC;AACF,QAAA,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;KAChG;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAEnE,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;;YAE9D,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAClE;KACF;IAED,KAAK,GAAA;QACH,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACpE;iIA1EU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAAd,cAAc,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAFd,CAAC,sBAAsB,CAAC,2EAGxB,QAAQ,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBzC,qWAaA,EAAA,MAAA,EAAA,CAAA,orGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,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;;2FDSa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,mBAGN,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,qWAAA,EAAA,MAAA,EAAA,CAAA,orGAAA,CAAA,EAAA,CAAA;oHAI3B,eAAe,EAAA,CAAA;sBADtB,SAAS;uBAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAIvD,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAKN,IAAI,EAAA,CAAA;sBAFH,WAAW;uBAAC,OAAO,CAAA;;sBACnB,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAGF,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,eAAe,CAAA;gBAKW,UAAU,EAAA,CAAA;sBAAhD,WAAW;uBAAC,wBAAwB,CAAA;;;MEX1B,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAoB,kBAAqC,EAAA;QAArC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QAezD,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAa1B,IAAgB,CAAA,gBAAA,GAAG,MAAM,CAAC;QAG1B,IAAoB,CAAA,oBAAA,GAAG,UAAU,CAAC;AA2BlC;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAA+B,IAAI,YAAY,EAAgB,CAAC;;;QAS7E,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAM,CAAA,MAAA,GAAqB,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,iBAAiB,GAAyB,MAAK,GAAG,CAAC;AACnD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAK,GAAG,CAAC;QACtB,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC,CAAC;QAC5B,IAAM,CAAA,MAAA,GAAkB,IAAI,CAAC;KA3EwB;;AAI7D,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAa,QAAQ,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;KAC7C;AAMD,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;KAC1B;IAED,IAAa,KAAK,CAAC,KAAuB,EAAA;AACxC,QAAA,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAAE,YAAA,OAAO;AAC5D,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAQD,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;IAED,IAAa,aAAa,CAAC,KAAa,EAAA;QACtC,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,YAAA,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;;AAEvD,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AAC7E,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa;YAAE,OAAO;AACzC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,yBAAyB,EAAE,IAAI,IAAI,CAAC;KACxD;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAa,KAAK,CAAC,KAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,IAAY,QAAQ,GAAA;QAClB,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;KACxD;AAyBD,IAAA,IAAY,6BAA6B,GAAA;AACvC,QAAA,QACE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAClB,CAAC,IAAI,CAAC,mBAAmB;AACzB,YAAA,IAAI,CAAC,qBAAqB;AAC1B,YAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EACrC;KACH;;;IAKD,KAAK,GAAA;AACH,QAAA,MAAM,aAAa,GAAG,CAAC,MAAiC,KACtD,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC;AAChG,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAChG,QAAA,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;KAChC;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,sCAAsC,EAAE,CAAC;QAC9C,IAAI,CAAC,8BAA8B,EAAE,CAAC;KACvC;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC7B;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;;AAKD,IAAA,gBAAgB,CAAC,IAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC;AACvB,QAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACtE;AAED,IAAA,yBAAyB,CAAC,IAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,SAAS,CAAC;AAC5B,QAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;KAC/E;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,6BAA6B,CAAC;KACpE;AAED,IAAA,SAAS,CAAC,KAAmB,EAAA;AAC3B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO;AAClC,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KAC/B;IAGD,YAAY,GAAA;QACV,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;;IAKO,uBAAuB,GAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,6BAA6B;cACrC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;cACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;AAEO,IAAA,wBAAwB,CAAC,KAAmB,EAAA;AAClD,QAAA,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,qBAAqB;YACxB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,KAAI;AAC3C,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;gBACpC,IAAI,KAAK,EAAE;oBACT,aAAa,GAAG,CAAC,CAAC;iBACnB;AACD,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC,CAAC;AACL,QAAA,OAAO,aAAa,CAAC;KACtB;IAEO,yBAAyB,GAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YAAE,OAAO;QACtC,OAAO,IAAI,CAAC,6BAA6B;cACrC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa,CAAC;cACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACpC;AAEO,IAAA,2BAA2B,CAAC,KAAa,EAAA;AAC/C,QAAA,MAAM,KAAK,GACT,IAAI,CAAC,qBAAqB;YAC1B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;gBACvC,OAAO,CAAC,KAAK,KAAK,CAAC;AACrB,aAAC,CAAC,CAAC;AACL,QAAA,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;KAC7B;IAEO,sCAAsC,GAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,6BAA6B,EAAE;AACtC,YAAA,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;KACF;IAEO,8BAA8B,GAAA;QACpC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YAChD,IAAI,CAAC,gCAAgC,EAAE,CAAC;AAExC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;;;AAGjB,gBAAA,UAAU,CAAC,MAAM,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;aACvE;AACH,SAAC,CAAC,CAAC;KACJ;IAEO,qBAAqB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;SACtD;AAED,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,MAAM,GAAG,sBAAsB,KAAK,SAAS,GAAG,sBAAsB,GAAG,IAAI,CAAC;KACpF;IAEO,gCAAgC,GAAA;QACtC,IAAI,IAAI,CAAC,mBAAmB;AAAE,YAAA,OAAO;AACrC,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAEO,IAAA,eAAe,CAAC,KAAmB,EAAA;AACzC,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;KACtD;AAEO,IAAA,+BAA+B,CAAC,UAAmB,EAAA;QACzD,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM;YAAE,OAAO;QAC9E,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;;AAElD,YAAA,KAAK,CAAC,QAAQ,GAAG,UAAU,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACnF,SAAC,CAAC,CAAC;KACJ;iIA7OU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EATnB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,mBAAmB;AAChC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAqEa,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,yBAAyB,2BAAU,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,SAAA,EAa3C,cAAc,EAFjB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,cAAc,gDC7G9B,2yBAwBA,EAAA,MAAA,EAAA,CAAA,sDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,cAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDQa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGlB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAqB,mBAAA;AAChC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2yBAAA,EAAA,MAAA,EAAA,CAAA,sDAAA,CAAA,EAAA,CAAA;sFAWlC,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAON,QAAQ,EAAA,CAAA;sBAFP,WAAW;uBAAC,aAAa,CAAA;;sBACzB,KAAK;gBAOO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAON,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAIN,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBAOO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAaO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAWI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAKP,mBAAmB,EAAA,CAAA;sBADlB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAYtD,YAAY,EAAA,CAAA;sBADnB,YAAY;uBAAC,cAAc,CAAA;gBAGpB,qBAAqB,EAAA,CAAA;sBAD5B,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAsEtD,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,SAAS,CAAA;;;AE9KzB,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;MAO9C,WAAW,CAAA;iIAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAX,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,WAAW,EAPF,YAAA,EAAA,CAAA,cAAc,EAAE,mBAAmB,CAG7C,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,QAAQ,EAAE,aAAa,CAH3B,EAAA,OAAA,EAAA,CAAA,cAAc,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAO5C,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,WAAW,EAJZ,OAAA,EAAA,CAAA,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIpC,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC;AAChD,oBAAA,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC;AAC/B,oBAAA,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC;AAC3B,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}
@@ -86,16 +86,16 @@ class RangeComponent {
86
86
  registerOnChange(fn) {
87
87
  this.propagateChange = fn;
88
88
  }
89
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: RangeComponent, isStandalone: true, selector: "kirby-range", inputs: { minLabel: "minLabel", maxLabel: "maxLabel", debounce: "debounce", max: "max", min: "min", pin: "pin", step: "step", ticks: "ticks", disabled: "disabled", pinFormatter: "pinFormatter", value: "value" }, outputs: { change: "change", move: "move" }, providers: [
89
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: RangeComponent, isStandalone: true, selector: "kirby-range", inputs: { minLabel: "minLabel", maxLabel: "maxLabel", debounce: "debounce", max: "max", min: "min", pin: "pin", step: "step", ticks: "ticks", disabled: "disabled", pinFormatter: "pinFormatter", value: "value" }, outputs: { change: "change", move: "move" }, providers: [
91
91
  {
92
92
  provide: NG_VALUE_ACCESSOR,
93
93
  multi: true,
94
94
  useExisting: forwardRef((() => RangeComponent)),
95
95
  },
96
- ], viewQueries: [{ propertyName: "ionRange", first: true, predicate: IonRange, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n<label *ngIf=\"minLabel\" class=\"min-label\">{{ minLabel }}</label>\n<label *ngIf=\"maxLabel\" class=\"max-label\">{{ maxLabel }}</label>\n", styles: [":host{display:flex;justify-content:space-between;flex-wrap:wrap}ion-range{--knob-background: var(--kirby-white);--knob-box-shadow: 0 5px 10px 0 rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);--knob-size: 24px;--pin-color: var(--kirby-text-color-black);--pin-background: var(--kirby-semi-light);--bar-background: var(--kirby-medium);--bar-background-active: var(--kirby-dark);--bar-border-radius: 4px;--bar-height: 2px;flex:1 1 100%;padding:0}@media (hover: hover) and (pointer: fine){ion-range:focus-within::part(knob){transition:all 80ms linear 0ms;box-shadow:0 5px 10px #1c1c1c4d,0 0 5px #1c1c1c14,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-range:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--knob-background: #ebebeb}}ion-range:active,ion-range.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--knob-background: #d6d6d6}ion-range.range-disabled{--knob-background: var(--kirby-medium);--knob-box-shadow: none;--bar-background: var(--kirby-semi-light);--bar-background-active: var(--kirby-medium)}ion-range.range-disabled::part(tick){background:var(--kirby-semi-light)}ion-range.range-has-pin{padding:0 3px}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background}ion-range::part(pin){font-size:12px;color:var(--pin-color);background-color:var(--pin-background);padding:2px 4px;border-radius:4px;min-width:40px;position:relative}ion-range::part(pin):before{content:\"\";position:absolute;top:100%;left:50%;transform:translate(-50%);display:block;border:solid transparent 6px;border-top-color:var(--pin-background)}ion-range::part(tick),ion-range::part(tick-active){border-radius:50%;width:6px;height:6px;margin-top:1px;z-index:1;margin-inline-start:-3px}ion-range::part(tick){background:var(--kirby-medium)}label{font-size:12px;line-height:16px;color:var(--kirby-text-color-semi-dark);margin-top:-4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonRange, selector: "ion-range", inputs: ["activeBarStart", "color", "debounce", "disabled", "dualKnobs", "label", "labelPlacement", "max", "min", "mode", "name", "pin", "pinFormatter", "snaps", "step", "ticks", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
96
+ ], viewQueries: [{ propertyName: "ionRange", first: true, predicate: IonRange, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n<label *ngIf=\"minLabel\" class=\"min-label\">{{ minLabel }}</label>\n<label *ngIf=\"maxLabel\" class=\"max-label\">{{ maxLabel }}</label>\n", styles: [":host{display:flex;justify-content:space-between;flex-wrap:wrap}@media (hover: hover) and (pointer: fine){ion-range:focus-within::part(knob){transition:all 80ms linear 0ms;box-shadow:0 5px 10px #1c1c1c4d,0 0 5px #1c1c1c14,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-range:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--knob-background: rgb(234.6, 234.6, 234.6)}}ion-range:active,ion-range.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--knob-background: rgb(214.2, 214.2, 214.2)}ion-range{--knob-background: var(--kirby-white);--knob-box-shadow: 0 5px 10px 0 rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);--knob-size: 24px;--pin-color: var(--kirby-text-color-black);--pin-background: var(--kirby-semi-light);--bar-background: var(--kirby-medium);--bar-background-active: var(--kirby-dark);--bar-border-radius: 4px;--bar-height: 2px;flex:1 1 100%;padding:0}ion-range.range-disabled{--knob-background: var(--kirby-medium);--knob-box-shadow: none;--bar-background: var(--kirby-semi-light);--bar-background-active: var(--kirby-medium)}ion-range.range-disabled::part(tick){background:var(--kirby-semi-light)}ion-range.range-has-pin{padding:0 3px}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background}ion-range::part(pin){font-size:12px;color:var(--pin-color);background-color:var(--pin-background);padding:2px 4px;border-radius:4px;min-width:40px;position:relative}ion-range::part(pin):before{content:\"\";position:absolute;top:100%;left:50%;transform:translate(-50%);display:block;border:solid transparent 6px;border-top-color:var(--pin-background)}ion-range::part(tick),ion-range::part(tick-active){border-radius:50%;width:6px;height:6px;margin-top:1px;z-index:1;margin-inline-start:-3px}ion-range::part(tick){background:var(--kirby-medium)}label{font-size:12px;line-height:16px;color:var(--kirby-text-color-semi-dark);margin-top:-4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonRange, selector: "ion-range", inputs: ["activeBarStart", "color", "debounce", "disabled", "dualKnobs", "label", "labelPlacement", "max", "min", "mode", "name", "pin", "pinFormatter", "snaps", "step", "ticks", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RangeComponent, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RangeComponent, decorators: [{
99
99
  type: Component,
100
100
  args: [{ standalone: true, imports: [CommonModule, IonRange], selector: 'kirby-range', providers: [
101
101
  {
@@ -103,7 +103,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
103
103
  multi: true,
104
104
  useExisting: forwardRef((() => RangeComponent)),
105
105
  },
106
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n<label *ngIf=\"minLabel\" class=\"min-label\">{{ minLabel }}</label>\n<label *ngIf=\"maxLabel\" class=\"max-label\">{{ maxLabel }}</label>\n", styles: [":host{display:flex;justify-content:space-between;flex-wrap:wrap}ion-range{--knob-background: var(--kirby-white);--knob-box-shadow: 0 5px 10px 0 rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);--knob-size: 24px;--pin-color: var(--kirby-text-color-black);--pin-background: var(--kirby-semi-light);--bar-background: var(--kirby-medium);--bar-background-active: var(--kirby-dark);--bar-border-radius: 4px;--bar-height: 2px;flex:1 1 100%;padding:0}@media (hover: hover) and (pointer: fine){ion-range:focus-within::part(knob){transition:all 80ms linear 0ms;box-shadow:0 5px 10px #1c1c1c4d,0 0 5px #1c1c1c14,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-range:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--knob-background: #ebebeb}}ion-range:active,ion-range.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--knob-background: #d6d6d6}ion-range.range-disabled{--knob-background: var(--kirby-medium);--knob-box-shadow: none;--bar-background: var(--kirby-semi-light);--bar-background-active: var(--kirby-medium)}ion-range.range-disabled::part(tick){background:var(--kirby-semi-light)}ion-range.range-has-pin{padding:0 3px}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background}ion-range::part(pin){font-size:12px;color:var(--pin-color);background-color:var(--pin-background);padding:2px 4px;border-radius:4px;min-width:40px;position:relative}ion-range::part(pin):before{content:\"\";position:absolute;top:100%;left:50%;transform:translate(-50%);display:block;border:solid transparent 6px;border-top-color:var(--pin-background)}ion-range::part(tick),ion-range::part(tick-active){border-radius:50%;width:6px;height:6px;margin-top:1px;z-index:1;margin-inline-start:-3px}ion-range::part(tick){background:var(--kirby-medium)}label{font-size:12px;line-height:16px;color:var(--kirby-text-color-semi-dark);margin-top:-4px}\n"] }]
106
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n<label *ngIf=\"minLabel\" class=\"min-label\">{{ minLabel }}</label>\n<label *ngIf=\"maxLabel\" class=\"max-label\">{{ maxLabel }}</label>\n", styles: [":host{display:flex;justify-content:space-between;flex-wrap:wrap}@media (hover: hover) and (pointer: fine){ion-range:focus-within::part(knob){transition:all 80ms linear 0ms;box-shadow:0 5px 10px #1c1c1c4d,0 0 5px #1c1c1c14,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-range:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--knob-background: rgb(234.6, 234.6, 234.6)}}ion-range:active,ion-range.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--knob-background: rgb(214.2, 214.2, 214.2)}ion-range{--knob-background: var(--kirby-white);--knob-box-shadow: 0 5px 10px 0 rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);--knob-size: 24px;--pin-color: var(--kirby-text-color-black);--pin-background: var(--kirby-semi-light);--bar-background: var(--kirby-medium);--bar-background-active: var(--kirby-dark);--bar-border-radius: 4px;--bar-height: 2px;flex:1 1 100%;padding:0}ion-range.range-disabled{--knob-background: var(--kirby-medium);--knob-box-shadow: none;--bar-background: var(--kirby-semi-light);--bar-background-active: var(--kirby-medium)}ion-range.range-disabled::part(tick){background:var(--kirby-semi-light)}ion-range.range-has-pin{padding:0 3px}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background}ion-range::part(pin){font-size:12px;color:var(--pin-color);background-color:var(--pin-background);padding:2px 4px;border-radius:4px;min-width:40px;position:relative}ion-range::part(pin):before{content:\"\";position:absolute;top:100%;left:50%;transform:translate(-50%);display:block;border:solid transparent 6px;border-top-color:var(--pin-background)}ion-range::part(tick),ion-range::part(tick-active){border-radius:50%;width:6px;height:6px;margin-top:1px;z-index:1;margin-inline-start:-3px}ion-range::part(tick){background:var(--kirby-medium)}label{font-size:12px;line-height:16px;color:var(--kirby-text-color-semi-dark);margin-top:-4px}\n"] }]
107
107
  }], propDecorators: { minLabel: [{
108
108
  type: Input
109
109
  }], maxLabel: [{
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-range.mjs","sources":["../../range/src/range.component.ts","../../range/src/range.component.html","../../range/src/kirbydesign-designsystem-range.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonRange } from '@ionic/angular/standalone';\n\n@Component({\n standalone: true,\n imports: [CommonModule, IonRange],\n selector: 'kirby-range',\n templateUrl: './range.component.html',\n styleUrls: ['./range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => RangeComponent),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RangeComponent implements OnChanges, OnInit, ControlValueAccessor {\n @Input() minLabel: string;\n @Input() maxLabel: string;\n @Input() debounce: number;\n @Input() max: number;\n @Input() min: number;\n @Input() pin: boolean;\n @Input() step = 1;\n @Input() ticks: boolean;\n @Input() disabled = false;\n @Input() pinFormatter: (value: number) => string | number = this.defaultPinFormatter;\n @Input()\n set value(value: number) {\n if (value !== this.currentValue) {\n this.currentValue = value;\n this.propagateChange(this.currentValue);\n }\n }\n\n get value(): number {\n return this.currentValue;\n }\n\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\n @Output() move: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild(IonRange, { static: true }) private ionRange: IonRange;\n\n private currentValue: number;\n\n ngOnInit() {\n this.initializeMoveEventEmitter();\n }\n\n ngOnChanges() {\n if (!this.ticks) return;\n\n /*\n * Max 10 ticks are allowed\n */\n const amountOfTicks = (this.max - this.min) / this.step;\n if (amountOfTicks > 9) {\n this.step = (this.max - this.min) / 9;\n }\n\n /*\n * Set value to the nearest tick\n */\n this.value = this.getTicks().reduce((a, b) => {\n return Math.abs(b - this.value) < Math.abs(a - this.value) ? b : a;\n });\n }\n\n private getTicks() {\n const ticks = [];\n for (let value = Number(this.min); value <= Number(this.max); value += Number(this.step)) {\n ticks.push(value);\n }\n return ticks;\n }\n\n private initializeMoveEventEmitter() {\n // We subscribe to ionRange's ionInput imperatively instead of in markup\n // to avoid doing work when no-one is listening to the move event.\n if (this.move.observed) {\n this.ionRange.ionInput.subscribe((rangeEvent) => {\n this._onRangeKnobMove(rangeEvent);\n });\n }\n }\n\n private defaultPinFormatter(value: number): number {\n return value;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public _onRangeValueChange($event: any): void {\n this.writeValue($event.detail.value);\n this.change.emit(this.currentValue);\n }\n\n public _onRangeKnobMove($event: any): void {\n this.writeValue($event.detail.value);\n this.move.emit(this.currentValue);\n }\n\n public onTouched = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public propagateChange = (_: any) => {};\n\n public writeValue(value: any): void {\n if (value !== undefined) {\n this.value = value;\n }\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n}\n","<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n<label *ngIf=\"minLabel\" class=\"min-label\">{{ minLabel }}</label>\n<label *ngIf=\"maxLabel\" class=\"max-label\">{{ maxLabel }}</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-range.mjs","sources":["../../range/src/range.component.ts","../../range/src/range.component.html","../../range/src/kirbydesign-designsystem-range.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonRange } from '@ionic/angular/standalone';\n\n@Component({\n standalone: true,\n imports: [CommonModule, IonRange],\n selector: 'kirby-range',\n templateUrl: './range.component.html',\n styleUrls: ['./range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => RangeComponent),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RangeComponent implements OnChanges, OnInit, ControlValueAccessor {\n @Input() minLabel: string;\n @Input() maxLabel: string;\n @Input() debounce: number;\n @Input() max: number;\n @Input() min: number;\n @Input() pin: boolean;\n @Input() step = 1;\n @Input() ticks: boolean;\n @Input() disabled = false;\n @Input() pinFormatter: (value: number) => string | number = this.defaultPinFormatter;\n @Input()\n set value(value: number) {\n if (value !== this.currentValue) {\n this.currentValue = value;\n this.propagateChange(this.currentValue);\n }\n }\n\n get value(): number {\n return this.currentValue;\n }\n\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\n @Output() move: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild(IonRange, { static: true }) private ionRange: IonRange;\n\n private currentValue: number;\n\n ngOnInit() {\n this.initializeMoveEventEmitter();\n }\n\n ngOnChanges() {\n if (!this.ticks) return;\n\n /*\n * Max 10 ticks are allowed\n */\n const amountOfTicks = (this.max - this.min) / this.step;\n if (amountOfTicks > 9) {\n this.step = (this.max - this.min) / 9;\n }\n\n /*\n * Set value to the nearest tick\n */\n this.value = this.getTicks().reduce((a, b) => {\n return Math.abs(b - this.value) < Math.abs(a - this.value) ? b : a;\n });\n }\n\n private getTicks() {\n const ticks = [];\n for (let value = Number(this.min); value <= Number(this.max); value += Number(this.step)) {\n ticks.push(value);\n }\n return ticks;\n }\n\n private initializeMoveEventEmitter() {\n // We subscribe to ionRange's ionInput imperatively instead of in markup\n // to avoid doing work when no-one is listening to the move event.\n if (this.move.observed) {\n this.ionRange.ionInput.subscribe((rangeEvent) => {\n this._onRangeKnobMove(rangeEvent);\n });\n }\n }\n\n private defaultPinFormatter(value: number): number {\n return value;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public _onRangeValueChange($event: any): void {\n this.writeValue($event.detail.value);\n this.change.emit(this.currentValue);\n }\n\n public _onRangeKnobMove($event: any): void {\n this.writeValue($event.detail.value);\n this.move.emit(this.currentValue);\n }\n\n public onTouched = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public propagateChange = (_: any) => {};\n\n public writeValue(value: any): void {\n if (value !== undefined) {\n this.value = value;\n }\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n}\n","<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n<label *ngIf=\"minLabel\" class=\"min-label\">{{ minLabel }}</label>\n<label *ngIf=\"maxLabel\" class=\"max-label\">{{ maxLabel }}</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -68,10 +68,10 @@ class ReorderListComponent {
68
68
  this.observer && this.observer.disconnect();
69
69
  delete this.observer;
70
70
  }
71
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReorderListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
72
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: ReorderListComponent, isStandalone: true, selector: "kirby-reorder-list", inputs: { items: "items", subItemsName: "subItemsName", getItemTextDefault: "getItemTextDefault" }, outputs: { itemReorder: "itemReorder", subItemReorder: "subItemReorder" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ListItemTemplateDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "reorderGroupContainer", predicate: ["reorderGroupContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-backdrop\n *ngIf=\"reorderActive\"\n [tappable]=\"false\"\n [visible]=\"true\"\n [stopPropagation]=\"false\"\n></ion-backdrop>\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n <div *ngFor=\"let reorderItem of items\">\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"itemTemplate || defaultItemTemplate; context: { $implicit: reorderItem }\"\n ></ng-container>\n <div *ngIf=\"reorderItem[subItemsName]\" #reorderGroupContainer>\n <ion-reorder-group (ionItemReorder)=\"doSubReorder($event, reorderItem)\" disabled=\"false\">\n <div *ngFor=\"let subItem of reorderItem[subItemsName]\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n </ion-reorder-group>\n </div>\n </kirby-card>\n </div>\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <h3>{{ getItemTextDefault(item) }}</h3>\n </kirby-item>\n</ng-template>\n", styles: ["ion-backdrop{opacity:.3;z-index:101;position:fixed}.reorder-selected{box-shadow:none;opacity:1;z-index:104}.reorder-selected kirby-card{transform:scale(1.05)}.reorder-selected kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}.reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;overflow:hidden}.reorder-list-active>*{position:relative;z-index:103}.reorder-list-active>.reorder-selected{z-index:104}.reorder-list-active div:first-child{border-top:none}.reorder-list-active ::ng-deep>div:last-child kirby-item{border-bottom-left-radius:16px;border-bottom-right-radius:16px;overflow:hidden}.reorder-list-active .reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;overflow:hidden}:host>ion-reorder-group>div{border-bottom:20px transparent solid}:host>ion-reorder-group>div:last-child{border-bottom-width:0}kirby-card{overflow:inherit;z-index:auto}kirby-card ::ng-deep>div:last-child ion-reorder-group div:last-child>kirby-item{border-bottom-left-radius:16px;border-bottom-right-radius:16px;overflow:hidden}kirby-card ::ng-deep>div kirby-item{z-index:1}kirby-card ::ng-deep>.content-layer>div:first-child>kirby-item{border-radius:16px;overflow:hidden}kirby-card ::ng-deep>div .reorder-list-active kirby-item{z-index:103}kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}\n"], dependencies: [{ kind: "ngmodule", type: CardModule }, { kind: "component", type: i1.CardComponent, selector: "kirby-card", inputs: ["title", "subtitle", "backgroundImageUrl", "hasPadding", "sizes", "variant"] }, { kind: "ngmodule", type: ItemModule }, { kind: "component", type: i2.ItemComponent, selector: "kirby-item", inputs: ["disabled", "selected", "disclosure", "selectable", "reorderable", "size", "rotateIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IonBackdrop, selector: "ion-backdrop", inputs: ["stopPropagation", "tappable", "visible"] }, { kind: "component", type: IonReorderGroup, selector: "ion-reorder-group", inputs: ["disabled"] }] }); }
71
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReorderListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
72
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ReorderListComponent, isStandalone: true, selector: "kirby-reorder-list", inputs: { items: "items", subItemsName: "subItemsName", getItemTextDefault: "getItemTextDefault" }, outputs: { itemReorder: "itemReorder", subItemReorder: "subItemReorder" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ListItemTemplateDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "reorderGroupContainer", predicate: ["reorderGroupContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-backdrop\n *ngIf=\"reorderActive\"\n [tappable]=\"false\"\n [visible]=\"true\"\n [stopPropagation]=\"false\"\n></ion-backdrop>\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n <div *ngFor=\"let reorderItem of items\">\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"itemTemplate || defaultItemTemplate; context: { $implicit: reorderItem }\"\n ></ng-container>\n <div *ngIf=\"reorderItem[subItemsName]\" #reorderGroupContainer>\n <ion-reorder-group (ionItemReorder)=\"doSubReorder($event, reorderItem)\" disabled=\"false\">\n <div *ngFor=\"let subItem of reorderItem[subItemsName]\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n </ion-reorder-group>\n </div>\n </kirby-card>\n </div>\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <h3>{{ getItemTextDefault(item) }}</h3>\n </kirby-item>\n</ng-template>\n", styles: ["ion-backdrop{opacity:.3;z-index:101;position:fixed}.reorder-selected{box-shadow:none;opacity:1;z-index:104}.reorder-selected kirby-card{transform:scale(1.05)}.reorder-selected kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}.reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;overflow:hidden}.reorder-list-active>*{position:relative;z-index:103}.reorder-list-active>.reorder-selected{z-index:104}.reorder-list-active div:first-child{border-top:none}.reorder-list-active ::ng-deep>div:last-child kirby-item{border-bottom-left-radius:16px;border-bottom-right-radius:16px;overflow:hidden}.reorder-list-active .reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;overflow:hidden}:host>ion-reorder-group>div{border-bottom:20px transparent solid}:host>ion-reorder-group>div:last-child{border-bottom-width:0}kirby-card{overflow:inherit;z-index:auto}kirby-card ::ng-deep>div:last-child ion-reorder-group div:last-child>kirby-item{border-bottom-left-radius:16px;border-bottom-right-radius:16px;overflow:hidden}kirby-card ::ng-deep>div kirby-item{z-index:1}kirby-card ::ng-deep>.content-layer>div:first-child>kirby-item{border-radius:16px;overflow:hidden}kirby-card ::ng-deep>div .reorder-list-active kirby-item{z-index:103}kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}\n"], dependencies: [{ kind: "ngmodule", type: CardModule }, { kind: "component", type: i1.CardComponent, selector: "kirby-card", inputs: ["title", "subtitle", "backgroundImageUrl", "hasPadding", "sizes", "variant"] }, { kind: "ngmodule", type: ItemModule }, { kind: "component", type: i2.ItemComponent, selector: "kirby-item", inputs: ["disabled", "selected", "disclosure", "selectable", "reorderable", "size", "rotateIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IonBackdrop, selector: "ion-backdrop", inputs: ["stopPropagation", "tappable", "visible"] }, { kind: "component", type: IonReorderGroup, selector: "ion-reorder-group", inputs: ["disabled"] }] }); }
73
73
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ReorderListComponent, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReorderListComponent, decorators: [{
75
75
  type: Component,
76
76
  args: [{ standalone: true, imports: [CardModule, ItemModule, CommonModule, IonBackdrop, IonReorderGroup], selector: 'kirby-reorder-list', template: "<ion-backdrop\n *ngIf=\"reorderActive\"\n [tappable]=\"false\"\n [visible]=\"true\"\n [stopPropagation]=\"false\"\n></ion-backdrop>\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n <div *ngFor=\"let reorderItem of items\">\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"itemTemplate || defaultItemTemplate; context: { $implicit: reorderItem }\"\n ></ng-container>\n <div *ngIf=\"reorderItem[subItemsName]\" #reorderGroupContainer>\n <ion-reorder-group (ionItemReorder)=\"doSubReorder($event, reorderItem)\" disabled=\"false\">\n <div *ngFor=\"let subItem of reorderItem[subItemsName]\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n </ion-reorder-group>\n </div>\n </kirby-card>\n </div>\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <h3>{{ getItemTextDefault(item) }}</h3>\n </kirby-item>\n</ng-template>\n", styles: ["ion-backdrop{opacity:.3;z-index:101;position:fixed}.reorder-selected{box-shadow:none;opacity:1;z-index:104}.reorder-selected kirby-card{transform:scale(1.05)}.reorder-selected kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}.reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;overflow:hidden}.reorder-list-active>*{position:relative;z-index:103}.reorder-list-active>.reorder-selected{z-index:104}.reorder-list-active div:first-child{border-top:none}.reorder-list-active ::ng-deep>div:last-child kirby-item{border-bottom-left-radius:16px;border-bottom-right-radius:16px;overflow:hidden}.reorder-list-active .reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;overflow:hidden}:host>ion-reorder-group>div{border-bottom:20px transparent solid}:host>ion-reorder-group>div:last-child{border-bottom-width:0}kirby-card{overflow:inherit;z-index:auto}kirby-card ::ng-deep>div:last-child ion-reorder-group div:last-child>kirby-item{border-bottom-left-radius:16px;border-bottom-right-radius:16px;overflow:hidden}kirby-card ::ng-deep>div kirby-item{z-index:1}kirby-card ::ng-deep>.content-layer>div:first-child>kirby-item{border-radius:16px;overflow:hidden}kirby-card ::ng-deep>div .reorder-list-active kirby-item{z-index:103}kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}\n"] }]
77
77
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { items: [{
@@ -10,10 +10,10 @@ class RouterOutletComponent {
10
10
  constructor() {
11
11
  this._animated = isPlatform('hybrid');
12
12
  }
13
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: RouterOutletComponent, selector: "kirby-router-outlet", inputs: { main: "main" }, ngImport: i0, template: "<ng-container *ngIf=\"main\">\n <ion-router-outlet main [animated]=\"_animated\"></ion-router-outlet>\n</ng-container>\n<ng-container *ngIf=\"!main\">\n <ion-router-outlet [animated]=\"_animated\"></ion-router-outlet>\n</ng-container>\n", styles: [":host{inset:0;position:absolute;contain:size layout style;z-index:0;overflow:hidden;background-color:var(--kirby-background-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonRouterOutlet, selector: "ion-router-outlet" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: RouterOutletComponent, selector: "kirby-router-outlet", inputs: { main: "main" }, ngImport: i0, template: "<ng-container *ngIf=\"main\">\n <ion-router-outlet main [animated]=\"_animated\"></ion-router-outlet>\n</ng-container>\n<ng-container *ngIf=\"!main\">\n <ion-router-outlet [animated]=\"_animated\"></ion-router-outlet>\n</ng-container>\n", styles: [":host{inset:0;position:absolute;contain:size layout style;z-index:0;overflow:hidden;background-color:var(--kirby-background-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonRouterOutlet, selector: "ion-router-outlet" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RouterOutletComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RouterOutletComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'kirby-router-outlet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"main\">\n <ion-router-outlet main [animated]=\"_animated\"></ion-router-outlet>\n</ng-container>\n<ng-container *ngIf=\"!main\">\n <ion-router-outlet [animated]=\"_animated\"></ion-router-outlet>\n</ng-container>\n", styles: [":host{inset:0;position:absolute;contain:size layout style;z-index:0;overflow:hidden;background-color:var(--kirby-background-color)}\n"] }]
19
19
  }], propDecorators: { main: [{
@@ -21,11 +21,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
21
21
  }] } });
22
22
 
23
23
  class RouterOutletModule {
24
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RouterOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
25
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: RouterOutletModule, declarations: [RouterOutletComponent], imports: [CommonModule, IonRouterOutlet], exports: [RouterOutletComponent] }); }
26
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RouterOutletModule, imports: [CommonModule, IonRouterOutlet] }); }
24
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RouterOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
25
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: RouterOutletModule, declarations: [RouterOutletComponent], imports: [CommonModule, IonRouterOutlet], exports: [RouterOutletComponent] }); }
26
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RouterOutletModule, imports: [CommonModule, IonRouterOutlet] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RouterOutletModule, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RouterOutletModule, decorators: [{
29
29
  type: NgModule,
30
30
  args: [{
31
31
  declarations: [RouterOutletComponent],
@@ -4,12 +4,12 @@ import { Component, ChangeDetectionStrategy } from '@angular/core';
4
4
  import { IonItemDivider } from '@ionic/angular/standalone';
5
5
 
6
6
  class SectionHeaderComponent {
7
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SectionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: SectionHeaderComponent, isStandalone: true, selector: "kirby-section-header", ngImport: i0, template: "<ion-item-divider>\n <ng-content></ng-content>\n</ion-item-divider>\n", styles: [":host{--kirby-section-header-color: var(--kirby-text-color-black)}:host ion-item-divider{--inner-padding-end: 0;--background: transparent;--padding-end: 16px;--padding-start: 16px;font-weight:inherit;min-height:0;z-index:initial}:host ion-item-divider ::ng-deep>[heading]{font-weight:700;font-size:18px;line-height:24px;color:var(--kirby-section-header-color);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host ion-item-divider ::ng-deep>[detail],:host ion-item-divider ::ng-deep>[label]{font-weight:300;font-size:14px;line-height:20px;color:var(--kirby-section-header-color);margin:4px 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SectionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SectionHeaderComponent, isStandalone: true, selector: "kirby-section-header", ngImport: i0, template: "<ion-item-divider>\n <ng-content></ng-content>\n</ion-item-divider>\n", styles: [":host{--kirby-section-header-color: var(--kirby-text-color-black)}:host ion-item-divider{--inner-padding-end: 0;--background: transparent;font-weight:inherit;min-height:0;z-index:initial;--padding-end: 16px;--padding-start: 16px}:host ion-item-divider ::ng-deep>[heading]{font-weight:700;font-size:18px;line-height:24px;color:var(--kirby-section-header-color);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host ion-item-divider ::ng-deep>[detail],:host ion-item-divider ::ng-deep>[label]{font-weight:300;font-size:14px;line-height:20px;color:var(--kirby-section-header-color);margin:4px 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: SectionHeaderComponent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SectionHeaderComponent, decorators: [{
11
11
  type: Component,
12
- args: [{ standalone: true, imports: [CommonModule, IonItemDivider], selector: 'kirby-section-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-item-divider>\n <ng-content></ng-content>\n</ion-item-divider>\n", styles: [":host{--kirby-section-header-color: var(--kirby-text-color-black)}:host ion-item-divider{--inner-padding-end: 0;--background: transparent;--padding-end: 16px;--padding-start: 16px;font-weight:inherit;min-height:0;z-index:initial}:host ion-item-divider ::ng-deep>[heading]{font-weight:700;font-size:18px;line-height:24px;color:var(--kirby-section-header-color);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host ion-item-divider ::ng-deep>[detail],:host ion-item-divider ::ng-deep>[label]{font-weight:300;font-size:14px;line-height:20px;color:var(--kirby-section-header-color);margin:4px 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
12
+ args: [{ standalone: true, imports: [CommonModule, IonItemDivider], selector: 'kirby-section-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-item-divider>\n <ng-content></ng-content>\n</ion-item-divider>\n", styles: [":host{--kirby-section-header-color: var(--kirby-text-color-black)}:host ion-item-divider{--inner-padding-end: 0;--background: transparent;font-weight:inherit;min-height:0;z-index:initial;--padding-end: 16px;--padding-start: 16px}:host ion-item-divider ::ng-deep>[heading]{font-weight:700;font-size:18px;line-height:24px;color:var(--kirby-section-header-color);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host ion-item-divider ::ng-deep>[detail],:host ion-item-divider ::ng-deep>[label]{font-weight:300;font-size:14px;line-height:20px;color:var(--kirby-section-header-color);margin:4px 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
13
13
  }] });
14
14
 
15
15
  /**
@@ -340,10 +340,10 @@ class FloatingDirective {
340
340
  this.tearDownReferenceElementEventHandling();
341
341
  this.removeAutoUpdaterRef();
342
342
  }
343
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FloatingDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.PortalDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
344
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: FloatingDirective, isStandalone: true, selector: "[kirbyFloating]", inputs: { reference: "reference", placement: "placement", strategy: "strategy", triggers: "triggers", DOMPortalOutlet: "DOMPortalOutlet", portalOutletConfig: "portalOutletConfig", isDisabled: "isDisabled", offset: "offset", shift: "shift", autoPlacement: "autoPlacement", closeOnSelect: "closeOnSelect", closeOnEscapeKey: "closeOnEscapeKey", closeOnBackdrop: "closeOnBackdrop" }, outputs: { displayChanged: "displayChanged" }, host: { listeners: { "document:keydown.escape": "onEscapeKeyPressed($event)" } }, providers: [PortalDirective], hostDirectives: [{ directive: i1.PortalDirective }], ngImport: i0 }); }
343
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FloatingDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.PortalDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
344
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: FloatingDirective, isStandalone: true, selector: "[kirbyFloating]", inputs: { reference: "reference", placement: "placement", strategy: "strategy", triggers: "triggers", DOMPortalOutlet: "DOMPortalOutlet", portalOutletConfig: "portalOutletConfig", isDisabled: "isDisabled", offset: "offset", shift: "shift", autoPlacement: "autoPlacement", closeOnSelect: "closeOnSelect", closeOnEscapeKey: "closeOnEscapeKey", closeOnBackdrop: "closeOnBackdrop" }, outputs: { displayChanged: "displayChanged" }, host: { listeners: { "document:keydown.escape": "onEscapeKeyPressed($event)" } }, providers: [PortalDirective], hostDirectives: [{ directive: i1.PortalDirective }], ngImport: i0 }); }
345
345
  }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FloatingDirective, decorators: [{
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FloatingDirective, decorators: [{
347
347
  type: Directive,
348
348
  args: [{
349
349
  selector: '[kirbyFloating]',
@@ -64,10 +64,10 @@ class PortalDirective extends CdkPortalOutlet {
64
64
  });
65
65
  };
66
66
  }
67
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PortalDirective, deps: [{ token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
68
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: PortalDirective, isStandalone: true, selector: "[kirbyPortal]", inputs: { outlet: "outlet" }, usesInheritance: true, ngImport: i0 }); }
67
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PortalDirective, deps: [{ token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
68
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: PortalDirective, isStandalone: true, selector: "[kirbyPortal]", inputs: { outlet: "outlet" }, usesInheritance: true, ngImport: i0 }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: PortalDirective, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PortalDirective, decorators: [{
71
71
  type: Directive,
72
72
  args: [{
73
73
  selector: '[kirbyPortal]',
@@ -11,10 +11,10 @@ class ResizeObserverFactory {
11
11
  create(callback) {
12
12
  return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);
13
13
  }
14
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ResizeObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ResizeObserverFactory, providedIn: 'root' }); }
14
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizeObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizeObserverFactory, providedIn: 'root' }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ResizeObserverFactory, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizeObserverFactory, decorators: [{
18
18
  type: Injectable,
19
19
  args: [{ providedIn: 'root' }]
20
20
  }] });
@@ -57,10 +57,10 @@ class ResizeObserverService {
57
57
  }
58
58
  });
59
59
  }
60
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ResizeObserverService, deps: [{ token: ResizeObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
61
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ResizeObserverService, providedIn: 'root' }); }
60
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizeObserverService, deps: [{ token: ResizeObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
61
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizeObserverService, providedIn: 'root' }); }
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ResizeObserverService, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResizeObserverService, decorators: [{
64
64
  type: Injectable,
65
65
  args: [{ providedIn: 'root' }]
66
66
  }], ctorParameters: () => [{ type: ResizeObserverFactory }] });
@@ -128,10 +128,10 @@ class ThemeColorDirective {
128
128
  this._isBrightnessLight = colorBrightness === 'light';
129
129
  this._isBrightnessDark = colorBrightness === 'dark';
130
130
  }
131
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ThemeColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
132
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: ThemeColorDirective, isStandalone: true, selector: "kirby-avatar[themeColor],\n kirby-card[themeColor],\n kirby-icon[themeColor],\n kirby-progress-circle-ring[themeColor],\n kirby-modal-footer[themeColor],\n kirby-empty-state[themeColor]", inputs: { themeColor: "themeColor" }, host: { properties: { "class.default": "this.isDefault", "class.primary": "this.isPrimary", "class.secondary": "this.isSecondary", "class.tertiary": "this.isTertiary", "class.success": "this.isSuccess", "class.warning": "this.isWarning", "class.danger": "this.isDanger", "class.light": "this.isLight", "class.medium": "this.isMedium", "class.dark": "this.isDark", "class.white": "this.isWhite", "class.kirby-color-brightness-white": "this.isBrightnessWhite", "class.kirby-color-brightness-light": "this.isBrightnessLight", "class.kirby-color-brightness-dark": "this.isBrightnessDark" } }, ngImport: i0 }); }
131
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ThemeColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
132
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ThemeColorDirective, isStandalone: true, selector: "kirby-avatar[themeColor],\n kirby-card[themeColor],\n kirby-icon[themeColor],\n kirby-progress-circle-ring[themeColor],\n kirby-modal-footer[themeColor],\n kirby-empty-state[themeColor]", inputs: { themeColor: "themeColor" }, host: { properties: { "class.default": "this.isDefault", "class.primary": "this.isPrimary", "class.secondary": "this.isSecondary", "class.tertiary": "this.isTertiary", "class.success": "this.isSuccess", "class.warning": "this.isWarning", "class.danger": "this.isDanger", "class.light": "this.isLight", "class.medium": "this.isMedium", "class.dark": "this.isDark", "class.white": "this.isWhite", "class.kirby-color-brightness-white": "this.isBrightnessWhite", "class.kirby-color-brightness-light": "this.isBrightnessLight", "class.kirby-color-brightness-dark": "this.isBrightnessDark" } }, ngImport: i0 }); }
133
133
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ThemeColorDirective, decorators: [{
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ThemeColorDirective, decorators: [{
135
135
  type: Directive,
136
136
  args: [{
137
137
  standalone: true,
@@ -207,10 +207,10 @@ class ComponentLoaderDirective {
207
207
  }
208
208
  componentRef.instance.data = this.configuration.data;
209
209
  }
210
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ComponentLoaderDirective, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
211
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: ComponentLoaderDirective, isStandalone: true, selector: "[kirbyLoadComponent]", inputs: { configuration: ["kirbyLoadComponent", "configuration"], cssClass: "cssClass" }, ngImport: i0 }); }
210
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ComponentLoaderDirective, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
211
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ComponentLoaderDirective, isStandalone: true, selector: "[kirbyLoadComponent]", inputs: { configuration: ["kirbyLoadComponent", "configuration"], cssClass: "cssClass" }, ngImport: i0 }); }
212
212
  }
213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ComponentLoaderDirective, decorators: [{
213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ComponentLoaderDirective, decorators: [{
214
214
  type: Directive,
215
215
  args: [{
216
216
  selector: '[kirbyLoadComponent]',
@@ -308,10 +308,10 @@ class FitHeadingDirective {
308
308
  this.renderer.setStyle(el, 'font-size', size.fontSize);
309
309
  this.renderer.setStyle(el, 'line-height', size.lineHeight);
310
310
  }
311
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FitHeadingDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: ResizeObserverService }, { token: i2.LineClampHelper }], target: i0.ɵɵFactoryTarget.Directive }); }
312
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: FitHeadingDirective, isStandalone: true, selector: "h1[kirbyFitHeading],h2[kirbyFitHeading],h3[kirbyFitHeading]", inputs: { config: ["kirbyFitHeading", "config"] }, providers: [LineClampHelper], ngImport: i0 }); }
311
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FitHeadingDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: ResizeObserverService }, { token: i2.LineClampHelper }], target: i0.ɵɵFactoryTarget.Directive }); }
312
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: FitHeadingDirective, isStandalone: true, selector: "h1[kirbyFitHeading],h2[kirbyFitHeading],h3[kirbyFitHeading]", inputs: { config: ["kirbyFitHeading", "config"] }, providers: [LineClampHelper], ngImport: i0 }); }
313
313
  }
314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FitHeadingDirective, decorators: [{
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FitHeadingDirective, decorators: [{
315
315
  type: Directive,
316
316
  args: [{
317
317
  standalone: true,
@@ -323,9 +323,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
323
323
  args: ['kirbyFitHeading']
324
324
  }] } });
325
325
 
326
+ function findItemLabel(element) {
327
+ const itemEl = element.closest('kirby-item');
328
+ if (itemEl) {
329
+ return itemEl.querySelector('kirby-label');
330
+ }
331
+ return null;
332
+ }
333
+ function setAccessibleLabel(element) {
334
+ const label = findItemLabel(element);
335
+ if (label) {
336
+ label.setAttribute('aria-hidden', 'true');
337
+ return label.textContent;
338
+ }
339
+ }
340
+ function inheritAriaLabelText(element) {
341
+ const attribute = 'aria-label';
342
+ if (element.hasAttribute(attribute)) {
343
+ const value = element.getAttribute(attribute);
344
+ element.removeAttribute(attribute);
345
+ return value;
346
+ }
347
+ }
348
+
326
349
  /**
327
350
  * Generated bundle index. Do not edit.
328
351
  */
329
352
 
330
- export { ComponentLoaderDirective, FitHeadingDirective, ResizeObserverFactory, ResizeObserverService, ThemeColorDirective };
353
+ export { ComponentLoaderDirective, FitHeadingDirective, ResizeObserverFactory, ResizeObserverService, ThemeColorDirective, findItemLabel, inheritAriaLabelText, setAccessibleLabel };
331
354
  //# sourceMappingURL=kirbydesign-designsystem-shared.mjs.map