@kirbydesign/designsystem 8.11.0 → 9.0.0-ionic.0

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 (234) hide show
  1. package/avatar/avatar.component.d.ts +2 -5
  2. package/button/button.component.d.ts +2 -4
  3. package/esm2020/avatar/avatar.component.mjs +2 -11
  4. package/esm2020/button/button.component.mjs +4 -15
  5. package/esm2020/calendar/calendar.component.mjs +3 -3
  6. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  7. package/esm2020/form-field/form-field-message/form-field-message.component.mjs +2 -2
  8. package/esm2020/form-field/form-field.component.mjs +3 -3
  9. package/esm2020/form-field/input/input.component.mjs +3 -3
  10. package/esm2020/form-field/textarea/textarea.component.mjs +3 -3
  11. package/esm2020/icon/icon.component.mjs +2 -2
  12. package/esm2020/icon/kirby-icon-settings.mjs +3 -1
  13. package/esm2020/lib/components/page-local-navigation/page-local-navigation.component.mjs +4 -4
  14. package/esm2020/lib/components/segmented-control/segmented-control.component.mjs +3 -3
  15. package/esm2020/lib/index.mjs +1 -3
  16. package/esm2020/lib/kirby.module.mjs +1 -7
  17. package/esm2020/modal/modal/services/modal-animation-builder.service.mjs +1 -1
  18. package/esm2020/modal/modal/services/modal.controller.mjs +1 -26
  19. package/esm2020/modal/modal/services/modal.helper.mjs +1 -19
  20. package/esm2020/modal/modal-wrapper/modal-wrapper.component.mjs +1 -1
  21. package/esm2020/modal/v2/modal/modal.component.mjs +1 -1
  22. package/esm2020/modal/v2/modal-routing/modal-routing.component.mjs +1 -1
  23. package/esm2020/modal/v2/wrapper/wrapper.component.mjs +1 -1
  24. package/esm2020/page/page-footer/page-footer.component.mjs +2 -2
  25. package/esm2020/page/page.component.mjs +17 -6
  26. package/esm2020/radio/radio.component.mjs +3 -3
  27. package/esm2020/range/range.component.mjs +3 -3
  28. package/esm2020/router-outlet/router-outlet.component.mjs +1 -1
  29. package/esm2020/slide/slides.component.mjs +4 -19
  30. package/esm2020/tab-navigation/tab-navigation/tab-navigation.component.mjs +2 -2
  31. package/esm2020/tabs/tab-button/tab-button.component.mjs +2 -2
  32. package/esm2020/tabs/tabs.component.mjs +2 -2
  33. package/esm2020/testing-base/lib/components/index.mjs +1 -3
  34. package/esm2020/testing-base/lib/kirby-testing-base.module.mjs +86 -88
  35. package/esm2020/testing-base/lib/mock-components.mjs +1 -5
  36. package/esm2020/testing-jasmine/lib/mock-providers.mjs +1 -4
  37. package/esm2020/testing-jest/lib/mock-providers.mjs +1 -4
  38. package/esm2020/toggle/toggle.component.mjs +5 -3
  39. package/fesm2015/kirbydesign-designsystem-accordion.mjs +1 -0
  40. package/fesm2015/kirbydesign-designsystem-action-group.mjs +1 -0
  41. package/fesm2015/kirbydesign-designsystem-avatar.mjs +2 -10
  42. package/fesm2015/kirbydesign-designsystem-avatar.mjs.map +1 -1
  43. package/fesm2015/kirbydesign-designsystem-button.mjs +4 -14
  44. package/fesm2015/kirbydesign-designsystem-button.mjs.map +1 -1
  45. package/fesm2015/kirbydesign-designsystem-calendar.mjs +3 -2
  46. package/fesm2015/kirbydesign-designsystem-calendar.mjs.map +1 -1
  47. package/fesm2015/kirbydesign-designsystem-card.mjs +1 -0
  48. package/fesm2015/kirbydesign-designsystem-chart.mjs +1 -0
  49. package/fesm2015/kirbydesign-designsystem-checkbox.mjs +3 -2
  50. package/fesm2015/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  51. package/fesm2015/kirbydesign-designsystem-data-table.mjs +1 -0
  52. package/fesm2015/kirbydesign-designsystem-divider.mjs +1 -0
  53. package/fesm2015/kirbydesign-designsystem-dropdown.mjs +1 -0
  54. package/fesm2015/kirbydesign-designsystem-empty-state.mjs +1 -0
  55. package/fesm2015/kirbydesign-designsystem-fab-sheet.mjs +1 -0
  56. package/fesm2015/kirbydesign-designsystem-flag.mjs +1 -0
  57. package/fesm2015/kirbydesign-designsystem-form-field.mjs +9 -8
  58. package/fesm2015/kirbydesign-designsystem-form-field.mjs.map +1 -1
  59. package/fesm2015/kirbydesign-designsystem-header.mjs +1 -0
  60. package/fesm2015/kirbydesign-designsystem-helpers-scss.mjs +1 -0
  61. package/fesm2015/kirbydesign-designsystem-helpers.mjs +1 -0
  62. package/fesm2015/kirbydesign-designsystem-icon.mjs +5 -2
  63. package/fesm2015/kirbydesign-designsystem-icon.mjs.map +1 -1
  64. package/fesm2015/kirbydesign-designsystem-item-group.mjs +1 -0
  65. package/fesm2015/kirbydesign-designsystem-item-sliding.mjs +1 -0
  66. package/fesm2015/kirbydesign-designsystem-item.mjs +1 -0
  67. package/fesm2015/kirbydesign-designsystem-kirby-app.mjs +1 -0
  68. package/fesm2015/kirbydesign-designsystem-kirby-ionic-module.mjs +1 -0
  69. package/fesm2015/kirbydesign-designsystem-list.mjs +1 -0
  70. package/fesm2015/kirbydesign-designsystem-loading-overlay.mjs +1 -0
  71. package/fesm2015/kirbydesign-designsystem-menu.mjs +1 -0
  72. package/fesm2015/kirbydesign-designsystem-modal-v2.mjs +4 -3
  73. package/fesm2015/kirbydesign-designsystem-modal-v2.mjs.map +1 -1
  74. package/fesm2015/kirbydesign-designsystem-modal.mjs +2 -48
  75. package/fesm2015/kirbydesign-designsystem-modal.mjs.map +1 -1
  76. package/fesm2015/kirbydesign-designsystem-page.mjs +19 -7
  77. package/fesm2015/kirbydesign-designsystem-page.mjs.map +1 -1
  78. package/fesm2015/kirbydesign-designsystem-popover.mjs +1 -0
  79. package/fesm2015/kirbydesign-designsystem-progress-circle.mjs +1 -0
  80. package/fesm2015/kirbydesign-designsystem-radio.mjs +3 -2
  81. package/fesm2015/kirbydesign-designsystem-radio.mjs.map +1 -1
  82. package/fesm2015/kirbydesign-designsystem-range.mjs +3 -2
  83. package/fesm2015/kirbydesign-designsystem-range.mjs.map +1 -1
  84. package/fesm2015/kirbydesign-designsystem-reorder-list.mjs +1 -0
  85. package/fesm2015/kirbydesign-designsystem-router-outlet.mjs +2 -1
  86. package/fesm2015/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  87. package/fesm2015/kirbydesign-designsystem-section-header.mjs +1 -0
  88. package/fesm2015/kirbydesign-designsystem-shared-floating.mjs +1 -0
  89. package/fesm2015/kirbydesign-designsystem-shared-portal.mjs +1 -0
  90. package/fesm2015/kirbydesign-designsystem-shared.mjs +1 -0
  91. package/fesm2015/kirbydesign-designsystem-slide-button.mjs +1 -0
  92. package/fesm2015/kirbydesign-designsystem-slide.mjs +4 -18
  93. package/fesm2015/kirbydesign-designsystem-slide.mjs.map +1 -1
  94. package/fesm2015/kirbydesign-designsystem-spinner.mjs +1 -0
  95. package/fesm2015/kirbydesign-designsystem-tab-navigation.mjs +3 -2
  96. package/fesm2015/kirbydesign-designsystem-tabs.mjs +5 -4
  97. package/fesm2015/kirbydesign-designsystem-tabs.mjs.map +1 -1
  98. package/fesm2015/kirbydesign-designsystem-testing-base.mjs +4 -72
  99. package/fesm2015/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  100. package/fesm2015/kirbydesign-designsystem-testing-jasmine.mjs +1 -3
  101. package/fesm2015/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  102. package/fesm2015/kirbydesign-designsystem-testing-jest.mjs +1 -3
  103. package/fesm2015/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  104. package/fesm2015/kirbydesign-designsystem-testing.mjs +1 -0
  105. package/fesm2015/kirbydesign-designsystem-toast.mjs +1 -0
  106. package/fesm2015/kirbydesign-designsystem-toggle-button.mjs +1 -0
  107. package/fesm2015/kirbydesign-designsystem-toggle.mjs +5 -2
  108. package/fesm2015/kirbydesign-designsystem-toggle.mjs.map +1 -1
  109. package/fesm2015/kirbydesign-designsystem-types.mjs +1 -0
  110. package/fesm2015/kirbydesign-designsystem.mjs +6 -13
  111. package/fesm2015/kirbydesign-designsystem.mjs.map +1 -1
  112. package/fesm2020/kirbydesign-designsystem-accordion.mjs +1 -0
  113. package/fesm2020/kirbydesign-designsystem-action-group.mjs +1 -0
  114. package/fesm2020/kirbydesign-designsystem-avatar.mjs +2 -10
  115. package/fesm2020/kirbydesign-designsystem-avatar.mjs.map +1 -1
  116. package/fesm2020/kirbydesign-designsystem-button.mjs +4 -14
  117. package/fesm2020/kirbydesign-designsystem-button.mjs.map +1 -1
  118. package/fesm2020/kirbydesign-designsystem-calendar.mjs +3 -2
  119. package/fesm2020/kirbydesign-designsystem-calendar.mjs.map +1 -1
  120. package/fesm2020/kirbydesign-designsystem-card.mjs +1 -0
  121. package/fesm2020/kirbydesign-designsystem-chart.mjs +1 -0
  122. package/fesm2020/kirbydesign-designsystem-checkbox.mjs +3 -2
  123. package/fesm2020/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  124. package/fesm2020/kirbydesign-designsystem-data-table.mjs +1 -0
  125. package/fesm2020/kirbydesign-designsystem-divider.mjs +1 -0
  126. package/fesm2020/kirbydesign-designsystem-dropdown.mjs +1 -0
  127. package/fesm2020/kirbydesign-designsystem-empty-state.mjs +1 -0
  128. package/fesm2020/kirbydesign-designsystem-fab-sheet.mjs +1 -0
  129. package/fesm2020/kirbydesign-designsystem-flag.mjs +1 -0
  130. package/fesm2020/kirbydesign-designsystem-form-field.mjs +9 -8
  131. package/fesm2020/kirbydesign-designsystem-form-field.mjs.map +1 -1
  132. package/fesm2020/kirbydesign-designsystem-header.mjs +1 -0
  133. package/fesm2020/kirbydesign-designsystem-helpers-scss.mjs +1 -0
  134. package/fesm2020/kirbydesign-designsystem-helpers.mjs +1 -0
  135. package/fesm2020/kirbydesign-designsystem-icon.mjs +5 -2
  136. package/fesm2020/kirbydesign-designsystem-icon.mjs.map +1 -1
  137. package/fesm2020/kirbydesign-designsystem-item-group.mjs +1 -0
  138. package/fesm2020/kirbydesign-designsystem-item-sliding.mjs +1 -0
  139. package/fesm2020/kirbydesign-designsystem-item.mjs +1 -0
  140. package/fesm2020/kirbydesign-designsystem-kirby-app.mjs +1 -0
  141. package/fesm2020/kirbydesign-designsystem-kirby-ionic-module.mjs +1 -0
  142. package/fesm2020/kirbydesign-designsystem-list.mjs +1 -0
  143. package/fesm2020/kirbydesign-designsystem-loading-overlay.mjs +1 -0
  144. package/fesm2020/kirbydesign-designsystem-menu.mjs +1 -0
  145. package/fesm2020/kirbydesign-designsystem-modal-v2.mjs +4 -3
  146. package/fesm2020/kirbydesign-designsystem-modal-v2.mjs.map +1 -1
  147. package/fesm2020/kirbydesign-designsystem-modal.mjs +2 -44
  148. package/fesm2020/kirbydesign-designsystem-modal.mjs.map +1 -1
  149. package/fesm2020/kirbydesign-designsystem-page.mjs +19 -7
  150. package/fesm2020/kirbydesign-designsystem-page.mjs.map +1 -1
  151. package/fesm2020/kirbydesign-designsystem-popover.mjs +1 -0
  152. package/fesm2020/kirbydesign-designsystem-progress-circle.mjs +1 -0
  153. package/fesm2020/kirbydesign-designsystem-radio.mjs +3 -2
  154. package/fesm2020/kirbydesign-designsystem-radio.mjs.map +1 -1
  155. package/fesm2020/kirbydesign-designsystem-range.mjs +3 -2
  156. package/fesm2020/kirbydesign-designsystem-range.mjs.map +1 -1
  157. package/fesm2020/kirbydesign-designsystem-reorder-list.mjs +1 -0
  158. package/fesm2020/kirbydesign-designsystem-router-outlet.mjs +2 -1
  159. package/fesm2020/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  160. package/fesm2020/kirbydesign-designsystem-section-header.mjs +1 -0
  161. package/fesm2020/kirbydesign-designsystem-shared-floating.mjs +1 -0
  162. package/fesm2020/kirbydesign-designsystem-shared-portal.mjs +1 -0
  163. package/fesm2020/kirbydesign-designsystem-shared.mjs +1 -0
  164. package/fesm2020/kirbydesign-designsystem-slide-button.mjs +1 -0
  165. package/fesm2020/kirbydesign-designsystem-slide.mjs +4 -18
  166. package/fesm2020/kirbydesign-designsystem-slide.mjs.map +1 -1
  167. package/fesm2020/kirbydesign-designsystem-spinner.mjs +1 -0
  168. package/fesm2020/kirbydesign-designsystem-tab-navigation.mjs +3 -2
  169. package/fesm2020/kirbydesign-designsystem-tabs.mjs +5 -4
  170. package/fesm2020/kirbydesign-designsystem-tabs.mjs.map +1 -1
  171. package/fesm2020/kirbydesign-designsystem-testing-base.mjs +4 -72
  172. package/fesm2020/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  173. package/fesm2020/kirbydesign-designsystem-testing-jasmine.mjs +1 -3
  174. package/fesm2020/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  175. package/fesm2020/kirbydesign-designsystem-testing-jest.mjs +1 -3
  176. package/fesm2020/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  177. package/fesm2020/kirbydesign-designsystem-testing.mjs +1 -0
  178. package/fesm2020/kirbydesign-designsystem-toast.mjs +1 -0
  179. package/fesm2020/kirbydesign-designsystem-toggle-button.mjs +1 -0
  180. package/fesm2020/kirbydesign-designsystem-toggle.mjs +5 -2
  181. package/fesm2020/kirbydesign-designsystem-toggle.mjs.map +1 -1
  182. package/fesm2020/kirbydesign-designsystem-types.mjs +1 -0
  183. package/fesm2020/kirbydesign-designsystem.mjs +6 -13
  184. package/fesm2020/kirbydesign-designsystem.mjs.map +1 -1
  185. package/form-field/form-field.component.d.ts +1 -1
  186. package/icon/src/README.md +16 -0
  187. package/icons/svg/bs-logo.svg +2 -0
  188. package/icons/svg/company.svg +2 -0
  189. package/lib/index.d.ts +0 -2
  190. package/lib/kirby.module.d.ts +22 -23
  191. package/modal/modal/services/modal.controller.d.ts +0 -10
  192. package/modal/modal/services/modal.helper.d.ts +0 -4
  193. package/package.json +3 -19
  194. package/page/page.component.d.ts +5 -2
  195. package/slide/slides.component.d.ts +2 -6
  196. package/testing-base/lib/components/index.d.ts +0 -2
  197. package/testing-base/lib/kirby-testing-base.module.d.ts +85 -87
  198. package/testing-jest/lib/mock-providers.d.ts +0 -3
  199. package/toggle/toggle.component.d.ts +2 -1
  200. package/README.md +0 -7
  201. package/alert-experimental/alert.component.d.ts +0 -28
  202. package/alert-experimental/alert.module.d.ts +0 -8
  203. package/alert-experimental/config/alert-config.d.ts +0 -14
  204. package/alert-experimental/index.d.ts +0 -5
  205. package/alert-experimental/public_api.d.ts +0 -4
  206. package/alert-experimental/services/alert.controller.d.ts +0 -20
  207. package/esm2020/alert-experimental/alert.component.mjs +0 -76
  208. package/esm2020/alert-experimental/alert.module.mjs +0 -18
  209. package/esm2020/alert-experimental/config/alert-config.mjs +0 -2
  210. package/esm2020/alert-experimental/kirbydesign-designsystem-alert-experimental.mjs +0 -5
  211. package/esm2020/alert-experimental/public_api.mjs +0 -4
  212. package/esm2020/alert-experimental/services/alert.controller.mjs +0 -67
  213. package/esm2020/grid/breakpoint-helper.service.mjs +0 -28
  214. package/esm2020/grid/grid-card-configuration.mjs +0 -8
  215. package/esm2020/grid/grid.component.mjs +0 -98
  216. package/esm2020/grid/kirbydesign-designsystem-grid.mjs +0 -5
  217. package/esm2020/grid/public_api.mjs +0 -4
  218. package/esm2020/testing-base/lib/components/mock.alert-experimental.component.mjs +0 -41
  219. package/esm2020/testing-base/lib/components/mock.grid.component.mjs +0 -31
  220. package/fesm2015/kirbydesign-designsystem-alert-experimental.mjs +0 -150
  221. package/fesm2015/kirbydesign-designsystem-alert-experimental.mjs.map +0 -1
  222. package/fesm2015/kirbydesign-designsystem-grid.mjs +0 -137
  223. package/fesm2015/kirbydesign-designsystem-grid.mjs.map +0 -1
  224. package/fesm2020/kirbydesign-designsystem-alert-experimental.mjs +0 -157
  225. package/fesm2020/kirbydesign-designsystem-alert-experimental.mjs.map +0 -1
  226. package/fesm2020/kirbydesign-designsystem-grid.mjs +0 -137
  227. package/fesm2020/kirbydesign-designsystem-grid.mjs.map +0 -1
  228. package/grid/breakpoint-helper.service.d.ts +0 -13
  229. package/grid/grid-card-configuration.d.ts +0 -8
  230. package/grid/grid.component.d.ts +0 -25
  231. package/grid/index.d.ts +0 -5
  232. package/grid/public_api.d.ts +0 -3
  233. package/testing-base/lib/components/mock.alert-experimental.component.d.ts +0 -14
  234. package/testing-base/lib/components/mock.grid.component.d.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-checkbox.mjs","sources":["../../../../libs/designsystem/checkbox/src/checkbox.component.ts","../../../../libs/designsystem/checkbox/src/checkbox.component.html","../../../../libs/designsystem/checkbox/src/kirbydesign-designsystem-checkbox.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { UniqueIdGenerator } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n standalone: true,\n imports: [IonicModule, CommonModule],\n selector: 'kirby-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent {\n @Input() checked: boolean = false;\n @Input() attentionLevel: '1' | '2' = '2';\n\n @HostBinding('class.has-label')\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size?: 'xs' | 'sm' | 'md';\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean = false;\n\n @Input() disabled = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.attention-level1') get isAttentionLevel1() {\n return this.attentionLevel === '1';\n }\n @HostBinding('class.attention-level2') get isAttentionLevel2() {\n return this.attentionLevel === '2';\n }\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n onChecked(checked: boolean): void {\n this.checked = checked;\n this.checkedChange.emit(this.checked);\n }\n\n // IDs used for a11y labelling\n _labelId = UniqueIdGenerator.scopedTo('kirby-checkbox-label').next();\n}\n","<div class=\"wrapper\">\n <ion-checkbox\n mode=\"md\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (ionChange)=\"onChecked($event.detail.checked)\"\n [attr.aria-labelledby]=\"text ? _labelId : null\"\n ></ion-checkbox>\n <span [id]=\"_labelId\" *ngIf=\"text\">{{ text }}</span>\n</div>\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-checkbox.mjs","sources":["../../../../libs/designsystem/checkbox/src/checkbox.component.ts","../../../../libs/designsystem/checkbox/src/checkbox.component.html","../../../../libs/designsystem/checkbox/src/kirbydesign-designsystem-checkbox.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { UniqueIdGenerator } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n standalone: true,\n imports: [IonicModule, CommonModule],\n selector: 'kirby-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent {\n @Input() checked: boolean = false;\n @Input() attentionLevel: '1' | '2' = '2';\n\n @HostBinding('class.has-label')\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size?: 'xs' | 'sm' | 'md';\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean = false;\n\n @Input() disabled = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.attention-level1') get isAttentionLevel1() {\n return this.attentionLevel === '1';\n }\n @HostBinding('class.attention-level2') get isAttentionLevel2() {\n return this.attentionLevel === '2';\n }\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n onChecked(checked: boolean): void {\n this.checked = checked;\n this.checkedChange.emit(this.checked);\n }\n\n // IDs used for a11y labelling\n _labelId = UniqueIdGenerator.scopedTo('kirby-checkbox-label').next();\n}\n","<div class=\"wrapper\">\n <ion-checkbox\n mode=\"md\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (ionChange)=\"onChecked($event.detail.checked)\"\n [attr.aria-labelledby]=\"text ? _labelId : null\"\n ></ion-checkbox>\n <span [id]=\"_labelId\" *ngIf=\"text\">{{ text }}</span>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -151,3 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
151
151
 
152
152
  export { DataTableModule, TableComponent, TableRowComponent, TableSortableComponent };
153
153
  //# sourceMappingURL=kirbydesign-designsystem-data-table.mjs.map
154
+ //# sourceMappingURL=kirbydesign-designsystem-data-table.mjs.map
@@ -19,3 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
19
19
 
20
20
  export { DividerComponent };
21
21
  //# sourceMappingURL=kirbydesign-designsystem-divider.mjs.map
22
+ //# sourceMappingURL=kirbydesign-designsystem-divider.mjs.map
@@ -704,3 +704,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
704
704
 
705
705
  export { DropdownComponent, DropdownModule, KeyboardHandlerService, OpenState, VerticalDirection };
706
706
  //# sourceMappingURL=kirbydesign-designsystem-dropdown.mjs.map
707
+ //# sourceMappingURL=kirbydesign-designsystem-dropdown.mjs.map
@@ -70,3 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
70
70
 
71
71
  export { EmptyStateComponent, EmptyStateModule };
72
72
  //# sourceMappingURL=kirbydesign-designsystem-empty-state.mjs.map
73
+ //# sourceMappingURL=kirbydesign-designsystem-empty-state.mjs.map
@@ -86,3 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
86
86
 
87
87
  export { FabSheetComponent };
88
88
  //# sourceMappingURL=kirbydesign-designsystem-fab-sheet.mjs.map
89
+ //# sourceMappingURL=kirbydesign-designsystem-fab-sheet.mjs.map
@@ -35,3 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
35
35
 
36
36
  export { FlagComponent };
37
37
  //# sourceMappingURL=kirbydesign-designsystem-flag.mjs.map
38
+ //# sourceMappingURL=kirbydesign-designsystem-flag.mjs.map
@@ -37,10 +37,10 @@ class FormFieldMessageComponent {
37
37
  }
38
38
  }
39
39
  /** @nocollapse */ FormFieldMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FormFieldMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- /** @nocollapse */ FormFieldMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: FormFieldMessageComponent, selector: "kirby-form-field-message", inputs: { text: "text", position: "position" }, ngImport: i0, template: "{{ text }}\n<ng-content></ng-content>\n", styles: [":host{font-style:italic;font-size:12px;font-weight:400;font-stretch:normal;line-height:16px;letter-spacing:normal;color:var(--kirby-text-color-black)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
+ /** @nocollapse */ FormFieldMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: FormFieldMessageComponent, selector: "kirby-form-field-message", inputs: { text: "text", position: "position" }, ngImport: i0, template: "{{ text }}\n<ng-content></ng-content>\n", styles: [":host{font-style:italic;font-size:12px;font-weight:400;font-stretch:normal;line-height:16px;min-height:16px;letter-spacing:normal;color:var(--kirby-text-color-black)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FormFieldMessageComponent, decorators: [{
42
42
  type: Component,
43
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'kirby-form-field-message', template: "{{ text }}\n<ng-content></ng-content>\n", styles: [":host{font-style:italic;font-size:12px;font-weight:400;font-stretch:normal;line-height:16px;letter-spacing:normal;color:var(--kirby-text-color-black)}\n"] }]
43
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'kirby-form-field-message', template: "{{ text }}\n<ng-content></ng-content>\n", styles: [":host{font-style:italic;font-size:12px;font-weight:400;font-stretch:normal;line-height:16px;min-height:16px;letter-spacing:normal;color:var(--kirby-text-color-black)}\n"] }]
44
44
  }], propDecorators: { text: [{
45
45
  type: Input
46
46
  }], position: [{
@@ -228,7 +228,7 @@ InputComponent.typeToInputmodeMap = {
228
228
  search: 'search',
229
229
  };
230
230
  /** @nocollapse */ InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InputComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
231
- /** @nocollapse */ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: InputComponent, isStandalone: true, selector: "input[kirby-input]", inputs: { type: "type", size: "size", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", value: "value", maxlength: "maxlength", inputmode: "inputmode" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class": "this.size", "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.value": "this.value", "attr.maxlength": "this.maxlength", "attr.inputmode": "this.inputmode" } }, usesOnChanges: true, hostDirectives: [{ directive: DateInputDirective, inputs: ["prefillYear", "prefillYear"] }], ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
231
+ /** @nocollapse */ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: InputComponent, isStandalone: true, selector: "input[kirby-input]", inputs: { type: "type", size: "size", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", value: "value", maxlength: "maxlength", inputmode: "inputmode" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class": "this.size", "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.value": "this.value", "attr.maxlength": "this.maxlength", "attr.inputmode": "this.inputmode" } }, usesOnChanges: true, hostDirectives: [{ directive: DateInputDirective, inputs: ["prefillYear", "prefillYear"] }], ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host(.md).error{padding-block:calc(.5em - 1px)}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
232
232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InputComponent, decorators: [{
233
233
  type: Component,
234
234
  args: [{ standalone: true, imports: [CommonModule], hostDirectives: [
@@ -237,7 +237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
237
237
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
238
238
  inputs: ['prefillYear'],
239
239
  },
240
- ], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"] }]
240
+ ], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host(.md).error{padding-block:calc(.5em - 1px)}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"] }]
241
241
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { type: [{
242
242
  type: Input
243
243
  }], size: [{
@@ -311,10 +311,10 @@ class TextareaComponent {
311
311
  }
312
312
  }
313
313
  /** @nocollapse */ TextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
314
- /** @nocollapse */ TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TextareaComponent, isStandalone: true, selector: "textarea[kirby-textarea]", inputs: { value: "value", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", maxlength: "maxlength" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.maxlength": "this.maxlength" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color;font-family:var(--kirby-font-family);resize:none}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}@media (min-width: 768px){:host{resize:vertical}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
314
+ /** @nocollapse */ TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TextareaComponent, isStandalone: true, selector: "textarea[kirby-textarea]", inputs: { value: "value", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", maxlength: "maxlength" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.maxlength": "this.maxlength" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{position:relative;transition:all 80ms linear 0ms;transition-property:background-color;font-family:var(--kirby-font-family);resize:none}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}@media (min-width: 768px){:host{resize:vertical}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
315
315
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TextareaComponent, decorators: [{
316
316
  type: Component,
317
- args: [{ standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'textarea[kirby-textarea]', template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color;font-family:var(--kirby-font-family);resize:none}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}@media (min-width: 768px){:host{resize:vertical}}\n"] }]
317
+ args: [{ standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'textarea[kirby-textarea]', template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{position:relative;transition:all 80ms linear 0ms;transition-property:background-color;font-family:var(--kirby-font-family);resize:none}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}@media (min-width: 768px){:host{resize:vertical}}\n"] }]
318
318
  }], propDecorators: { value: [{
319
319
  type: Input
320
320
  }], borderless: [{
@@ -444,10 +444,10 @@ class FormFieldComponent {
444
444
  }
445
445
  }
446
446
  /** @nocollapse */ FormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FormFieldComponent, deps: [{ token: i0.ElementRef }, { token: i1.PlatformService }, { token: i0.Renderer2 }, { token: i2.WindowRef }, { token: i3.ResizeObserverService }], target: i0.ɵɵFactoryTarget.Component });
447
- /** @nocollapse */ FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: FormFieldComponent, selector: "kirby-form-field", inputs: { label: "label", message: "message" }, host: { listeners: { "kirbyRegisterFormField": "_onRegisterFormField()" } }, queries: [{ propertyName: "counter", first: true, predicate: InputCounterComponent, descendants: true }, { propertyName: "radioGroupComponent", first: true, predicate: RadioGroupComponent, descendants: true }, { propertyName: "radioGroupElement", first: true, predicate: RadioGroupComponent, descendants: true, read: ElementRef }, { propertyName: "input", first: true, predicate: InputComponent, descendants: true, read: ElementRef }, { propertyName: "textarea", first: true, predicate: TextareaComponent, descendants: true, read: ElementRef }, { propertyName: "affixElements", predicate: AffixDirective }], ngImport: i0, template: "<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</label>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</ng-container>\n\n<div *ngIf=\"message || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message\"\n class=\"message\"\n [text]=\"message\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n</div>\n\n<ng-template #slottedInputTemplate>\n <div class=\"affix-container\">\n <div class=\"prefix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='prefix']\"></ng-content>\n </div>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin-bottom:16px}:host-context(kirby-item){margin-bottom:0}.texts{display:flex;justify-content:space-between;padding:2px 16px 0}.texts .message{flex:75%}.texts .message:only-child{flex-basis:auto}.texts .counter{flex:25%;text-align:right}label{display:block}.text{display:block;font-size:14px;font-weight:300;line-height:20px;margin-bottom:4px;padding:0 16px}.affix-container{position:relative}.affix-container .vertical-align{display:flex;align-items:center;position:absolute;top:0;bottom:0}.affix-container .prefix{left:12px}.affix-container .suffix{right:12px}.affix-container .semi-dark-text ::ng-deep>span,.affix-container .semi-dark-text ::ng-deep>h1,.affix-container .semi-dark-text ::ng-deep>h2,.affix-container .semi-dark-text ::ng-deep>h3,.affix-container .semi-dark-text ::ng-deep>h4,.affix-container .semi-dark-text ::ng-deep>h5,.affix-container .semi-dark-text ::ng-deep>h6,.affix-container .semi-dark-text ::ng-deep>p,.affix-container .semi-dark-text ::ng-deep>data{color:var(--kirby-text-color-semi-dark)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormFieldMessageComponent, selector: "kirby-form-field-message", inputs: ["text", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
447
+ /** @nocollapse */ FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: FormFieldComponent, selector: "kirby-form-field", inputs: { label: "label", message: "message" }, host: { listeners: { "kirbyRegisterFormField": "_onRegisterFormField()" } }, queries: [{ propertyName: "counter", first: true, predicate: InputCounterComponent, descendants: true }, { propertyName: "radioGroupComponent", first: true, predicate: RadioGroupComponent, descendants: true }, { propertyName: "radioGroupElement", first: true, predicate: RadioGroupComponent, descendants: true, read: ElementRef }, { propertyName: "input", first: true, predicate: InputComponent, descendants: true, read: ElementRef }, { propertyName: "textarea", first: true, predicate: TextareaComponent, descendants: true, read: ElementRef }, { propertyName: "affixElements", predicate: AffixDirective }], ngImport: i0, template: "<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</label>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</ng-container>\n\n<div *ngIf=\"message !== undefined || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message !== undefined\"\n class=\"message\"\n [text]=\"message\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n</div>\n\n<ng-template #slottedInputTemplate>\n <div class=\"affix-container\">\n <div class=\"prefix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='prefix']\"></ng-content>\n </div>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin-bottom:16px}:host-context(kirby-item){margin-bottom:0}.texts{display:flex;justify-content:space-between;padding:2px 16px 0}.texts .message{flex:75%}.texts .message:only-child{flex-basis:auto}.texts .counter{flex:25%;text-align:right}label{display:block}.text{display:block;font-size:14px;font-weight:300;line-height:20px;margin-bottom:4px;padding:0 16px}.affix-container{position:relative}.affix-container .vertical-align{display:flex;align-items:center;position:absolute;top:0;bottom:0}.affix-container .prefix{left:12px}.affix-container .suffix{right:12px}.affix-container .semi-dark-text ::ng-deep>span,.affix-container .semi-dark-text ::ng-deep>h1,.affix-container .semi-dark-text ::ng-deep>h2,.affix-container .semi-dark-text ::ng-deep>h3,.affix-container .semi-dark-text ::ng-deep>h4,.affix-container .semi-dark-text ::ng-deep>h5,.affix-container .semi-dark-text ::ng-deep>h6,.affix-container .semi-dark-text ::ng-deep>p,.affix-container .semi-dark-text ::ng-deep>data{color:var(--kirby-text-color-semi-dark)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormFieldMessageComponent, selector: "kirby-form-field-message", inputs: ["text", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
448
448
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FormFieldComponent, decorators: [{
449
449
  type: Component,
450
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'kirby-form-field', template: "<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</label>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</ng-container>\n\n<div *ngIf=\"message || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message\"\n class=\"message\"\n [text]=\"message\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n</div>\n\n<ng-template #slottedInputTemplate>\n <div class=\"affix-container\">\n <div class=\"prefix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='prefix']\"></ng-content>\n </div>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin-bottom:16px}:host-context(kirby-item){margin-bottom:0}.texts{display:flex;justify-content:space-between;padding:2px 16px 0}.texts .message{flex:75%}.texts .message:only-child{flex-basis:auto}.texts .counter{flex:25%;text-align:right}label{display:block}.text{display:block;font-size:14px;font-weight:300;line-height:20px;margin-bottom:4px;padding:0 16px}.affix-container{position:relative}.affix-container .vertical-align{display:flex;align-items:center;position:absolute;top:0;bottom:0}.affix-container .prefix{left:12px}.affix-container .suffix{right:12px}.affix-container .semi-dark-text ::ng-deep>span,.affix-container .semi-dark-text ::ng-deep>h1,.affix-container .semi-dark-text ::ng-deep>h2,.affix-container .semi-dark-text ::ng-deep>h3,.affix-container .semi-dark-text ::ng-deep>h4,.affix-container .semi-dark-text ::ng-deep>h5,.affix-container .semi-dark-text ::ng-deep>h6,.affix-container .semi-dark-text ::ng-deep>p,.affix-container .semi-dark-text ::ng-deep>data{color:var(--kirby-text-color-semi-dark)}\n"] }]
450
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'kirby-form-field', template: "<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</label>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</ng-container>\n\n<div *ngIf=\"message !== undefined || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message !== undefined\"\n class=\"message\"\n [text]=\"message\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n</div>\n\n<ng-template #slottedInputTemplate>\n <div class=\"affix-container\">\n <div class=\"prefix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='prefix']\"></ng-content>\n </div>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin-bottom:16px}:host-context(kirby-item){margin-bottom:0}.texts{display:flex;justify-content:space-between;padding:2px 16px 0}.texts .message{flex:75%}.texts .message:only-child{flex-basis:auto}.texts .counter{flex:25%;text-align:right}label{display:block}.text{display:block;font-size:14px;font-weight:300;line-height:20px;margin-bottom:4px;padding:0 16px}.affix-container{position:relative}.affix-container .vertical-align{display:flex;align-items:center;position:absolute;top:0;bottom:0}.affix-container .prefix{left:12px}.affix-container .suffix{right:12px}.affix-container .semi-dark-text ::ng-deep>span,.affix-container .semi-dark-text ::ng-deep>h1,.affix-container .semi-dark-text ::ng-deep>h2,.affix-container .semi-dark-text ::ng-deep>h3,.affix-container .semi-dark-text ::ng-deep>h4,.affix-container .semi-dark-text ::ng-deep>h5,.affix-container .semi-dark-text ::ng-deep>h6,.affix-container .semi-dark-text ::ng-deep>p,.affix-container .semi-dark-text ::ng-deep>data{color:var(--kirby-text-color-semi-dark)}\n"] }]
451
451
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PlatformService }, { type: i0.Renderer2 }, { type: i2.WindowRef }, { type: i3.ResizeObserverService }]; }, propDecorators: { label: [{
452
452
  type: Input
453
453
  }], message: [{
@@ -614,3 +614,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
614
614
 
615
615
  export { AffixDirective, DateInputDirective, DecimalMaskDirective, FormFieldComponent, FormFieldMessageComponent, FormFieldModule, InputComponent, InputCounterComponent, InputSize, TextareaComponent };
616
616
  //# sourceMappingURL=kirbydesign-designsystem-form-field.mjs.map
617
+ //# sourceMappingURL=kirbydesign-designsystem-form-field.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-form-field.mjs","sources":["../../../../libs/designsystem/form-field/src/directives/affix/affix.directive.ts","../../../../libs/designsystem/form-field/src/form-field-message/form-field-message.component.ts","../../../../libs/designsystem/form-field/src/form-field-message/form-field-message.component.html","../../../../libs/designsystem/form-field/src/input-counter/input-counter.component.ts","../../../../libs/designsystem/form-field/src/input-counter/input-counter.component.html","../../../../libs/designsystem/form-field/src/directives/date/date-input.directive.ts","../../../../libs/designsystem/form-field/src/input/input.component.ts","../../../../libs/designsystem/form-field/src/textarea/textarea.component.ts","../../../../libs/designsystem/form-field/src/textarea/textarea.component.html","../../../../libs/designsystem/form-field/src/form-field.component.ts","../../../../libs/designsystem/form-field/src/form-field.component.html","../../../../libs/designsystem/form-field/src/directives/decimal-mask/decimal-mask.directive.ts","../../../../libs/designsystem/form-field/src/form-field.module.ts","../../../../libs/designsystem/form-field/src/kirbydesign-designsystem-form-field.ts"],"sourcesContent":["import { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n standalone: true,\n // eslint-disable-next-line\n selector: '[kirby-affix]',\n})\nexport class AffixDirective {\n @Input('kirby-affix') type: 'prefix' | 'suffix';\n constructor(public el: ElementRef) {}\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field-message',\n styleUrls: ['./form-field-message.component.scss'],\n templateUrl: './form-field-message.component.html',\n})\nexport class FormFieldMessageComponent {\n @Input() text: string;\n @Input() position: 'left' | 'right' = 'left';\n}\n","{{ text }}\n<ng-content></ng-content>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { InputComponent } from '../input/input.component';\n\nimport { TextareaComponent } from './../textarea/textarea.component';\n\n@Component({\n selector: 'kirby-input-counter',\n templateUrl: './input-counter.component.html',\n})\nexport class InputCounterComponent implements OnInit, OnDestroy {\n @Input() listenTo: InputComponent | TextareaComponent;\n length: number;\n maxlength: number;\n private _inputChangeSubscription: Subscription;\n\n get text(): string {\n if (this.length === undefined) {\n return undefined;\n }\n const ofMaxlength = this.maxlength ? `/${this.maxlength}` : '';\n return `${this.length}${ofMaxlength}`;\n }\n\n ngOnInit(): void {\n if (this.listenTo) {\n this.length = this.listenTo.value ? this.listenTo.value.length : 0;\n this.maxlength = this.listenTo.maxlength;\n this._inputChangeSubscription = this.listenTo.kirbyChange.subscribe((value) => {\n this.length = value.length;\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this._inputChangeSubscription) {\n this._inputChangeSubscription.unsubscribe();\n }\n }\n}\n","<kirby-form-field-message [text]=\"text\"></kirby-form-field-message>\n","import { FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n LOCALE_ID,\n Renderer2,\n} from '@angular/core';\nimport 'inputmask/lib/extensions/inputmask.date.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\n@Directive({\n standalone: true,\n selector: '[kirby-input][type=\"date\"]',\n})\nexport class DateInputDirective implements AfterViewInit {\n @HostListener('input')\n onInput() {\n if (!this.isDateInput) return;\n\n this.updateMask(this.elementRef.nativeElement.value);\n }\n\n @Input() prefillYear = false;\n\n private maskingElement: HTMLElement;\n\n /**\n * `isDateInput` is used to avoid removing the type attribute on the input element and calling updateMask()\n * when the directive is not used on a date input.\n * This is needed for the standalone component 'InputComponent', which includes the directive\n * using the `hostDirectives` component decorator prop. Angular ignores the selector of directives\n * applied in the `hostDirectives` property which effectively applies the directive to all kirby-inputs, not only date inputs.\n * This check prevents the directive from executing it's masking on non-date inputs.\n * See: https://angular.io/guide/directive-composition-api\n */\n private isDateInput = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Inject(LOCALE_ID) private locale: string\n ) {\n this.isDateInput = this.elementRef.nativeElement.type === 'date';\n if (this.isDateInput) {\n // Remove type to avoid user-agent specific behaviour for [type=\"date\"]\n this.elementRef.nativeElement.removeAttribute('type');\n }\n }\n\n ngAfterViewInit(): void {\n if (!this.isDateInput) return;\n\n this.initMask();\n }\n\n private initMask(): void {\n const inputFormat = this.getInputFormat();\n const placeholder = this.getPlaceholder(inputFormat);\n\n // Set initial placeholder ex. dd/mm/yyyy\n this.renderer.setAttribute(this.elementRef.nativeElement, 'placeholder', placeholder);\n\n // Init InputMask\n new Inputmask('datetime', {\n inputFormat,\n placeholder,\n prefillYear: this.prefillYear,\n }).mask(this.elementRef.nativeElement);\n\n // Append input overlay, so it's possible to style typed date differntly than the date-mask\n this.appendMaskingElement();\n }\n\n // Keeps order and seperator from speficied locale\n private getInputFormat(): string {\n const localeDateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);\n return localeDateFormat\n .toLowerCase()\n .replace(/d+/, 'dd')\n .replace(/m+/, 'mm')\n .replace(/y+/, 'yyyy');\n }\n\n private getPlaceholder(inputFormat: string): string {\n return this.locale === 'da' ? inputFormat.split('y').join('å') : inputFormat;\n }\n\n private appendMaskingElement(): void {\n const wrapper = this.wrapElement(this.elementRef.nativeElement);\n this.renderer.addClass(wrapper, 'date-mask-wrapper');\n\n this.maskingElement = this.renderer.createElement('div');\n this.renderer.appendChild(wrapper, this.maskingElement);\n\n this.renderer.addClass(this.maskingElement, 'date-mask');\n }\n\n private wrapElement(element: HTMLElement): HTMLElement {\n const wrapper = this.renderer.createElement('div');\n const parent = element.parentElement;\n this.renderer.insertBefore(parent, wrapper, element);\n this.renderer.appendChild(wrapper, element);\n return wrapper;\n }\n\n private updateMask(value: string): void {\n if (!this.maskingElement) return;\n const lastNumber = value.match(/.*?(\\d)[^\\d]*$/); // get last number in string\n this.maskingElement.innerHTML = value\n ? value.slice(0, value.lastIndexOf(lastNumber[1]) + 1)\n : '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { DateInputDirective } from '../directives/date/date-input.directive';\n\nexport enum InputSize {\n medium = 'md',\n large = 'lg',\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n hostDirectives: [\n {\n directive: DateInputDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['prefillYear'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[kirby-input]',\n styleUrls: ['./input.component.scss'],\n template: '',\n})\nexport class InputComponent implements OnChanges, OnInit {\n constructor(private elementRef: ElementRef<HTMLInputElement>) {}\n\n ngOnInit(): void {\n // The native input value is emitted here to make sure that\n // the InputCounterComponent receives the value onInit,\n // when [(ngModel)] is used on kirby-input.\n\n setTimeout(() => {\n const inputValue = this.elementRef.nativeElement.value;\n\n if (inputValue) {\n this.kirbyChange.emit(inputValue);\n }\n });\n }\n\n private static typeToInputmodeMap = {\n number: 'decimal',\n search: 'search',\n };\n\n kirbyChange = new EventEmitter<string>();\n\n @Input() set type(value: string) {\n const mappedValue = InputComponent.typeToInputmodeMap[value];\n if (mappedValue && !this.inputmode) {\n this.inputmode = mappedValue;\n }\n }\n\n @HostBinding('class')\n @Input()\n size: InputSize | `${InputSize}` = InputSize.large;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.value')\n @Input()\n value: string;\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @HostBinding('attr.inputmode')\n @Input()\n inputmode: string;\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of input element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'textarea[kirby-textarea]',\n styleUrls: ['./textarea.component.scss'],\n templateUrl: './textarea.component.html',\n})\nexport class TextareaComponent implements OnChanges {\n kirbyChange = new EventEmitter<string>();\n\n @Input() value: string;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of textarea element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n","import {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n} from '@angular/core';\nimport {\n DesignTokenHelper,\n PlatformService,\n UniqueIdGenerator,\n} from '@kirbydesign/designsystem/helpers';\nimport { RadioGroupComponent } from '@kirbydesign/designsystem/radio';\nimport { ResizeObserverService } from '@kirbydesign/designsystem/shared';\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { AffixDirective } from './directives/affix/affix.directive';\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { InputComponent } from './input/input.component';\n\nimport { TextareaComponent } from './textarea/textarea.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field',\n styleUrls: ['./form-field.component.scss'],\n templateUrl: './form-field.component.html',\n})\nexport class FormFieldComponent\n implements AfterContentChecked, AfterContentInit, OnInit, OnDestroy\n{\n private isRegistered = false;\n private element: HTMLElement;\n private inputElement: HTMLInputElement | HTMLTextAreaElement;\n private isTouch: boolean;\n _labelId = UniqueIdGenerator.scopedTo('kirby-form-field-label').next();\n\n @Input() label: string;\n @Input() message: string;\n\n @ContentChildren(AffixDirective) affixElements: QueryList<AffixDirective>;\n @ContentChild(InputCounterComponent, { static: false }) counter: InputCounterComponent;\n @ContentChild(RadioGroupComponent) private radioGroupComponent: RadioGroupComponent;\n @ContentChild(RadioGroupComponent, { read: ElementRef })\n private radioGroupElement: ElementRef<HTMLElement>;\n\n @ContentChild(InputComponent, { read: ElementRef }) input: ElementRef<HTMLInputElement>;\n @ContentChild(TextareaComponent, { read: ElementRef }) textarea: ElementRef<HTMLTextAreaElement>;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private platform: PlatformService,\n private renderer: Renderer2,\n private windowRef: WindowRef,\n private resizeObserverService: ResizeObserverService\n ) {\n this.element = elementRef.nativeElement;\n }\n\n get _wrapContentInLabel(): boolean {\n return !!this.label && (!!this.input || !!this.textarea);\n }\n\n private dispatchLoadEvent() {\n // Dispatch an `ionInputDidLoad` event to register\n // form field + input/textarea with Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidLoad', {\n detail: this.element,\n })\n );\n }\n\n @HostListener('kirbyRegisterFormField')\n _onRegisterFormField() {\n this.dispatchLoadEvent();\n }\n\n onLabelClick() {\n this.radioGroupComponent && this.radioGroupComponent.focus();\n }\n\n public focus() {\n if (!this.inputElement) return;\n\n if (this.isTouch) {\n // Trigger Ionic's input shims to ensure input is scrolled into view.\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/hacks/scroll-assist.ts\n const touchStart = new TouchEvent('touchstart');\n const touchEnd = new TouchEvent('touchend');\n this.inputElement.dispatchEvent(touchStart);\n this.inputElement.dispatchEvent(touchEnd);\n } else {\n this.inputElement.focus();\n }\n }\n\n ngOnInit() {\n this.isTouch = this.platform.isTouch();\n }\n\n ngAfterContentInit(): void {\n if (this.label && this.radioGroupElement) {\n this.renderer.setAttribute(\n this.radioGroupElement.nativeElement,\n 'aria-labelledby',\n this._labelId\n );\n }\n\n // Measure the width of all slotted affix elements,\n // and apply their width + standard padding to the input elements\n // padding, so the start/end of the input is correctly indented.\n if (this.input) {\n this.affixElements.forEach((affix) => {\n this.resizeObserverService.observe(affix.el, (entry) => {\n const padding = affix.type === 'prefix' ? 'padding-left' : 'padding-right';\n const affixWidth = entry.contentRect.width;\n const existingPadding = parseInt(DesignTokenHelper.size('s'));\n\n this.renderer.setStyle(\n this.input.nativeElement,\n `${padding}`,\n `${affixWidth + existingPadding}px`\n );\n });\n });\n }\n }\n\n ngAfterContentChecked(): void {\n if (!this.inputElement) {\n this.inputElement = this.element.querySelector('input, textarea');\n }\n\n // TODO: remove \"!this.inputElement.readOnly\" when ionic has fixed input click issue\n // https://github.com/ionic-team/ionic-framework/issues/22740\n if (\n !this.isRegistered &&\n this.element.isConnected &&\n !!this.inputElement &&\n !this.inputElement.readOnly\n ) {\n // Host is connected to dom and slotted input/textarea is present:\n this.isRegistered = true;\n this.dispatchLoadEvent();\n }\n }\n\n ngOnDestroy(): void {\n // Dispatch an `ionInputDidUnload` event to unregister\n // form field + input/textarea from Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidUnload', {\n detail: this.element,\n })\n );\n\n this.affixElements.forEach((affix) => {\n this.resizeObserverService.unobserve(affix.el);\n });\n }\n}\n","<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</label>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</ng-container>\n\n<div *ngIf=\"message || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message\"\n class=\"message\"\n [text]=\"message\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n</div>\n\n<ng-template #slottedInputTemplate>\n <div class=\"affix-container\">\n <div class=\"prefix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='prefix']\"></ng-content>\n </div>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n","import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, LOCALE_ID, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport 'inputmask/lib/extensions/inputmask.numeric.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\ninterface InputMask {\n unmaskedvalue: () => string;\n setValue: (val: string) => void;\n}\n\n@Directive({\n standalone: true,\n // eslint-disable-next-line\n selector: '[kirby-decimal-mask]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: DecimalMaskDirective,\n },\n ],\n})\nexport class DecimalMaskDirective implements ControlValueAccessor, OnInit {\n @Input() min: number;\n @Input() max: number;\n @Input() precision = 2;\n @Input() setMaxOnOverflow = false;\n\n @Input() set allowMinus(allowMinus: boolean) {\n this._allowMinus = allowMinus || (this.min || 0) < 0;\n }\n\n @Input() set disableGroupSeperator(disabled: string) {\n this._groupSeperatorDisabled = String(disabled) === '' || String(disabled) === 'true';\n }\n\n @Input() set maxlength(maxlength: number) {\n this._maxlength = maxlength;\n\n const maxlengthValue = parseInt('9'.repeat(maxlength));\n this.max = this.getMax(maxlengthValue);\n this.min = this.getMin(maxlengthValue);\n }\n\n groupSeparator = getLocaleNumberSymbol(this.locale, NumberSymbol.Group);\n radixPoint = getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal);\n inputmask: InputMask;\n\n _allowMinus = false;\n _maxlength: number;\n _groupSeperatorDisabled: boolean;\n\n onChange = (_: string) => {};\n\n constructor(private elementRef: ElementRef, @Inject(LOCALE_ID) private locale: string) {}\n\n ngOnInit(): void {\n // Set type=\"text\", because functionality like 'setSelectionRange' are not supported on type=\"number\"\n this.elementRef.nativeElement.setAttribute('type', 'text');\n\n // Remove maxlength as this is handled by the mask\n this.elementRef.nativeElement.removeAttribute('maxlength');\n\n this.initMask();\n }\n\n writeValue(val: number): void {\n if (!this.inputmask) return;\n const formattedValue = String(val).replace('.', this.radixPoint);\n this.inputmask.setValue(formattedValue);\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(_: any): void {}\n\n private initMask(): void {\n new Inputmask('decimal', {\n groupSeparator: this._groupSeperatorDisabled ? '' : this.groupSeparator,\n radixPoint: this.radixPoint,\n digits: this._maxlength ? 0 : this.precision,\n min: this.min,\n max: this.max,\n allowMinus: this._allowMinus,\n negationSymbol: {\n front: getLocaleNumberSymbol(this.locale, NumberSymbol.MinusSign),\n back: '',\n },\n SetMaxOnOverflow: this.setMaxOnOverflow,\n showMaskOnFocus: false,\n showMaskOnHover: false,\n placeholder: '',\n onBeforeWrite: () => {\n if (!this.inputmask) return;\n const unmaskedValue = this.inputmask.unmaskedvalue();\n this.onChange(unmaskedValue.replace(this.radixPoint, '.'));\n },\n }).mask(this.elementRef.nativeElement);\n this.inputmask = this.elementRef.nativeElement.inputmask;\n }\n\n private getMax(maxlengthValue: number): number {\n return this.max === undefined ? maxlengthValue : Math.min(this.max, maxlengthValue);\n }\n\n private getMin(maxlengthValue: number): number {\n if (!this.allowMinus) return;\n maxlengthValue = -Math.abs(maxlengthValue);\n return this.min === undefined ? maxlengthValue : -Math.abs(Math.max(this.min, maxlengthValue));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormFieldMessageComponent } from './form-field-message/form-field-message.component';\nimport { FormFieldComponent } from './form-field.component';\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { DecimalMaskDirective } from './directives/decimal-mask/decimal-mask.directive';\n\nconst declarations = [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent];\n\n@NgModule({\n imports: [CommonModule, DecimalMaskDirective],\n declarations: [...declarations],\n exports: [...declarations, DecimalMaskDirective],\n})\nexport class FormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FormFieldMessageComponent","i1.DateInputDirective","i1","i5.FormFieldMessageComponent"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-form-field.mjs","sources":["../../../../libs/designsystem/form-field/src/directives/affix/affix.directive.ts","../../../../libs/designsystem/form-field/src/form-field-message/form-field-message.component.ts","../../../../libs/designsystem/form-field/src/form-field-message/form-field-message.component.html","../../../../libs/designsystem/form-field/src/input-counter/input-counter.component.ts","../../../../libs/designsystem/form-field/src/input-counter/input-counter.component.html","../../../../libs/designsystem/form-field/src/directives/date/date-input.directive.ts","../../../../libs/designsystem/form-field/src/input/input.component.ts","../../../../libs/designsystem/form-field/src/textarea/textarea.component.ts","../../../../libs/designsystem/form-field/src/textarea/textarea.component.html","../../../../libs/designsystem/form-field/src/form-field.component.ts","../../../../libs/designsystem/form-field/src/form-field.component.html","../../../../libs/designsystem/form-field/src/directives/decimal-mask/decimal-mask.directive.ts","../../../../libs/designsystem/form-field/src/form-field.module.ts","../../../../libs/designsystem/form-field/src/kirbydesign-designsystem-form-field.ts"],"sourcesContent":["import { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n standalone: true,\n // eslint-disable-next-line\n selector: '[kirby-affix]',\n})\nexport class AffixDirective {\n @Input('kirby-affix') type: 'prefix' | 'suffix';\n constructor(public el: ElementRef) {}\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field-message',\n styleUrls: ['./form-field-message.component.scss'],\n templateUrl: './form-field-message.component.html',\n})\nexport class FormFieldMessageComponent {\n @Input() text: string;\n @Input() position: 'left' | 'right' = 'left';\n}\n","{{ text }}\n<ng-content></ng-content>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { InputComponent } from '../input/input.component';\n\nimport { TextareaComponent } from './../textarea/textarea.component';\n\n@Component({\n selector: 'kirby-input-counter',\n templateUrl: './input-counter.component.html',\n})\nexport class InputCounterComponent implements OnInit, OnDestroy {\n @Input() listenTo: InputComponent | TextareaComponent;\n length: number;\n maxlength: number;\n private _inputChangeSubscription: Subscription;\n\n get text(): string {\n if (this.length === undefined) {\n return undefined;\n }\n const ofMaxlength = this.maxlength ? `/${this.maxlength}` : '';\n return `${this.length}${ofMaxlength}`;\n }\n\n ngOnInit(): void {\n if (this.listenTo) {\n this.length = this.listenTo.value ? this.listenTo.value.length : 0;\n this.maxlength = this.listenTo.maxlength;\n this._inputChangeSubscription = this.listenTo.kirbyChange.subscribe((value) => {\n this.length = value.length;\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this._inputChangeSubscription) {\n this._inputChangeSubscription.unsubscribe();\n }\n }\n}\n","<kirby-form-field-message [text]=\"text\"></kirby-form-field-message>\n","import { FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n LOCALE_ID,\n Renderer2,\n} from '@angular/core';\nimport 'inputmask/lib/extensions/inputmask.date.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\n@Directive({\n standalone: true,\n selector: '[kirby-input][type=\"date\"]',\n})\nexport class DateInputDirective implements AfterViewInit {\n @HostListener('input')\n onInput() {\n if (!this.isDateInput) return;\n\n this.updateMask(this.elementRef.nativeElement.value);\n }\n\n @Input() prefillYear = false;\n\n private maskingElement: HTMLElement;\n\n /**\n * `isDateInput` is used to avoid removing the type attribute on the input element and calling updateMask()\n * when the directive is not used on a date input.\n * This is needed for the standalone component 'InputComponent', which includes the directive\n * using the `hostDirectives` component decorator prop. Angular ignores the selector of directives\n * applied in the `hostDirectives` property which effectively applies the directive to all kirby-inputs, not only date inputs.\n * This check prevents the directive from executing it's masking on non-date inputs.\n * See: https://angular.io/guide/directive-composition-api\n */\n private isDateInput = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Inject(LOCALE_ID) private locale: string\n ) {\n this.isDateInput = this.elementRef.nativeElement.type === 'date';\n if (this.isDateInput) {\n // Remove type to avoid user-agent specific behaviour for [type=\"date\"]\n this.elementRef.nativeElement.removeAttribute('type');\n }\n }\n\n ngAfterViewInit(): void {\n if (!this.isDateInput) return;\n\n this.initMask();\n }\n\n private initMask(): void {\n const inputFormat = this.getInputFormat();\n const placeholder = this.getPlaceholder(inputFormat);\n\n // Set initial placeholder ex. dd/mm/yyyy\n this.renderer.setAttribute(this.elementRef.nativeElement, 'placeholder', placeholder);\n\n // Init InputMask\n new Inputmask('datetime', {\n inputFormat,\n placeholder,\n prefillYear: this.prefillYear,\n }).mask(this.elementRef.nativeElement);\n\n // Append input overlay, so it's possible to style typed date differntly than the date-mask\n this.appendMaskingElement();\n }\n\n // Keeps order and seperator from speficied locale\n private getInputFormat(): string {\n const localeDateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);\n return localeDateFormat\n .toLowerCase()\n .replace(/d+/, 'dd')\n .replace(/m+/, 'mm')\n .replace(/y+/, 'yyyy');\n }\n\n private getPlaceholder(inputFormat: string): string {\n return this.locale === 'da' ? inputFormat.split('y').join('å') : inputFormat;\n }\n\n private appendMaskingElement(): void {\n const wrapper = this.wrapElement(this.elementRef.nativeElement);\n this.renderer.addClass(wrapper, 'date-mask-wrapper');\n\n this.maskingElement = this.renderer.createElement('div');\n this.renderer.appendChild(wrapper, this.maskingElement);\n\n this.renderer.addClass(this.maskingElement, 'date-mask');\n }\n\n private wrapElement(element: HTMLElement): HTMLElement {\n const wrapper = this.renderer.createElement('div');\n const parent = element.parentElement;\n this.renderer.insertBefore(parent, wrapper, element);\n this.renderer.appendChild(wrapper, element);\n return wrapper;\n }\n\n private updateMask(value: string): void {\n if (!this.maskingElement) return;\n const lastNumber = value.match(/.*?(\\d)[^\\d]*$/); // get last number in string\n this.maskingElement.innerHTML = value\n ? value.slice(0, value.lastIndexOf(lastNumber[1]) + 1)\n : '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { DateInputDirective } from '../directives/date/date-input.directive';\n\nexport enum InputSize {\n medium = 'md',\n large = 'lg',\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n hostDirectives: [\n {\n directive: DateInputDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['prefillYear'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[kirby-input]',\n styleUrls: ['./input.component.scss'],\n template: '',\n})\nexport class InputComponent implements OnChanges, OnInit {\n constructor(private elementRef: ElementRef<HTMLInputElement>) {}\n\n ngOnInit(): void {\n // The native input value is emitted here to make sure that\n // the InputCounterComponent receives the value onInit,\n // when [(ngModel)] is used on kirby-input.\n\n setTimeout(() => {\n const inputValue = this.elementRef.nativeElement.value;\n\n if (inputValue) {\n this.kirbyChange.emit(inputValue);\n }\n });\n }\n\n private static typeToInputmodeMap = {\n number: 'decimal',\n search: 'search',\n };\n\n kirbyChange = new EventEmitter<string>();\n\n @Input() set type(value: string) {\n const mappedValue = InputComponent.typeToInputmodeMap[value];\n if (mappedValue && !this.inputmode) {\n this.inputmode = mappedValue;\n }\n }\n\n @HostBinding('class')\n @Input()\n size: InputSize | `${InputSize}` = InputSize.large;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.value')\n @Input()\n value: string;\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @HostBinding('attr.inputmode')\n @Input()\n inputmode: string;\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of input element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'textarea[kirby-textarea]',\n styleUrls: ['./textarea.component.scss'],\n templateUrl: './textarea.component.html',\n})\nexport class TextareaComponent implements OnChanges {\n kirbyChange = new EventEmitter<string>();\n\n @Input() value: string;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of textarea element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n","import {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n} from '@angular/core';\nimport {\n DesignTokenHelper,\n PlatformService,\n UniqueIdGenerator,\n} from '@kirbydesign/designsystem/helpers';\nimport { RadioGroupComponent } from '@kirbydesign/designsystem/radio';\nimport { ResizeObserverService } from '@kirbydesign/designsystem/shared';\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { AffixDirective } from './directives/affix/affix.directive';\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { InputComponent } from './input/input.component';\n\nimport { TextareaComponent } from './textarea/textarea.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field',\n styleUrls: ['./form-field.component.scss'],\n templateUrl: './form-field.component.html',\n})\nexport class FormFieldComponent\n implements AfterContentChecked, AfterContentInit, OnInit, OnDestroy\n{\n private isRegistered = false;\n private element: HTMLElement;\n private inputElement: HTMLInputElement | HTMLTextAreaElement;\n private isTouch: boolean;\n _labelId = UniqueIdGenerator.scopedTo('kirby-form-field-label').next();\n\n @Input() label: string;\n @Input() message: string | null;\n\n @ContentChildren(AffixDirective) affixElements: QueryList<AffixDirective>;\n @ContentChild(InputCounterComponent, { static: false }) counter: InputCounterComponent;\n @ContentChild(RadioGroupComponent) private radioGroupComponent: RadioGroupComponent;\n @ContentChild(RadioGroupComponent, { read: ElementRef })\n private radioGroupElement: ElementRef<HTMLElement>;\n\n @ContentChild(InputComponent, { read: ElementRef }) input: ElementRef<HTMLInputElement>;\n @ContentChild(TextareaComponent, { read: ElementRef }) textarea: ElementRef<HTMLTextAreaElement>;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private platform: PlatformService,\n private renderer: Renderer2,\n private windowRef: WindowRef,\n private resizeObserverService: ResizeObserverService\n ) {\n this.element = elementRef.nativeElement;\n }\n\n get _wrapContentInLabel(): boolean {\n return !!this.label && (!!this.input || !!this.textarea);\n }\n\n private dispatchLoadEvent() {\n // Dispatch an `ionInputDidLoad` event to register\n // form field + input/textarea with Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidLoad', {\n detail: this.element,\n })\n );\n }\n\n @HostListener('kirbyRegisterFormField')\n _onRegisterFormField() {\n this.dispatchLoadEvent();\n }\n\n onLabelClick() {\n this.radioGroupComponent && this.radioGroupComponent.focus();\n }\n\n public focus() {\n if (!this.inputElement) return;\n\n if (this.isTouch) {\n // Trigger Ionic's input shims to ensure input is scrolled into view.\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/hacks/scroll-assist.ts\n const touchStart = new TouchEvent('touchstart');\n const touchEnd = new TouchEvent('touchend');\n this.inputElement.dispatchEvent(touchStart);\n this.inputElement.dispatchEvent(touchEnd);\n } else {\n this.inputElement.focus();\n }\n }\n\n ngOnInit() {\n this.isTouch = this.platform.isTouch();\n }\n\n ngAfterContentInit(): void {\n if (this.label && this.radioGroupElement) {\n this.renderer.setAttribute(\n this.radioGroupElement.nativeElement,\n 'aria-labelledby',\n this._labelId\n );\n }\n\n // Measure the width of all slotted affix elements,\n // and apply their width + standard padding to the input elements\n // padding, so the start/end of the input is correctly indented.\n if (this.input) {\n this.affixElements.forEach((affix) => {\n this.resizeObserverService.observe(affix.el, (entry) => {\n const padding = affix.type === 'prefix' ? 'padding-left' : 'padding-right';\n const affixWidth = entry.contentRect.width;\n const existingPadding = parseInt(DesignTokenHelper.size('s'));\n\n this.renderer.setStyle(\n this.input.nativeElement,\n `${padding}`,\n `${affixWidth + existingPadding}px`\n );\n });\n });\n }\n }\n\n ngAfterContentChecked(): void {\n if (!this.inputElement) {\n this.inputElement = this.element.querySelector('input, textarea');\n }\n\n // TODO: remove \"!this.inputElement.readOnly\" when ionic has fixed input click issue\n // https://github.com/ionic-team/ionic-framework/issues/22740\n if (\n !this.isRegistered &&\n this.element.isConnected &&\n !!this.inputElement &&\n !this.inputElement.readOnly\n ) {\n // Host is connected to dom and slotted input/textarea is present:\n this.isRegistered = true;\n this.dispatchLoadEvent();\n }\n }\n\n ngOnDestroy(): void {\n // Dispatch an `ionInputDidUnload` event to unregister\n // form field + input/textarea from Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidUnload', {\n detail: this.element,\n })\n );\n\n this.affixElements.forEach((affix) => {\n this.resizeObserverService.unobserve(affix.el);\n });\n }\n}\n","<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</label>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</ng-container>\n\n<div *ngIf=\"message !== undefined || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message !== undefined\"\n class=\"message\"\n [text]=\"message\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n</div>\n\n<ng-template #slottedInputTemplate>\n <div class=\"affix-container\">\n <div class=\"prefix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='prefix']\"></ng-content>\n </div>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n","import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, LOCALE_ID, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport 'inputmask/lib/extensions/inputmask.numeric.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\ninterface InputMask {\n unmaskedvalue: () => string;\n setValue: (val: string) => void;\n}\n\n@Directive({\n standalone: true,\n // eslint-disable-next-line\n selector: '[kirby-decimal-mask]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: DecimalMaskDirective,\n },\n ],\n})\nexport class DecimalMaskDirective implements ControlValueAccessor, OnInit {\n @Input() min: number;\n @Input() max: number;\n @Input() precision = 2;\n @Input() setMaxOnOverflow = false;\n\n @Input() set allowMinus(allowMinus: boolean) {\n this._allowMinus = allowMinus || (this.min || 0) < 0;\n }\n\n @Input() set disableGroupSeperator(disabled: string) {\n this._groupSeperatorDisabled = String(disabled) === '' || String(disabled) === 'true';\n }\n\n @Input() set maxlength(maxlength: number) {\n this._maxlength = maxlength;\n\n const maxlengthValue = parseInt('9'.repeat(maxlength));\n this.max = this.getMax(maxlengthValue);\n this.min = this.getMin(maxlengthValue);\n }\n\n groupSeparator = getLocaleNumberSymbol(this.locale, NumberSymbol.Group);\n radixPoint = getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal);\n inputmask: InputMask;\n\n _allowMinus = false;\n _maxlength: number;\n _groupSeperatorDisabled: boolean;\n\n onChange = (_: string) => {};\n\n constructor(private elementRef: ElementRef, @Inject(LOCALE_ID) private locale: string) {}\n\n ngOnInit(): void {\n // Set type=\"text\", because functionality like 'setSelectionRange' are not supported on type=\"number\"\n this.elementRef.nativeElement.setAttribute('type', 'text');\n\n // Remove maxlength as this is handled by the mask\n this.elementRef.nativeElement.removeAttribute('maxlength');\n\n this.initMask();\n }\n\n writeValue(val: number): void {\n if (!this.inputmask) return;\n const formattedValue = String(val).replace('.', this.radixPoint);\n this.inputmask.setValue(formattedValue);\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(_: any): void {}\n\n private initMask(): void {\n new Inputmask('decimal', {\n groupSeparator: this._groupSeperatorDisabled ? '' : this.groupSeparator,\n radixPoint: this.radixPoint,\n digits: this._maxlength ? 0 : this.precision,\n min: this.min,\n max: this.max,\n allowMinus: this._allowMinus,\n negationSymbol: {\n front: getLocaleNumberSymbol(this.locale, NumberSymbol.MinusSign),\n back: '',\n },\n SetMaxOnOverflow: this.setMaxOnOverflow,\n showMaskOnFocus: false,\n showMaskOnHover: false,\n placeholder: '',\n onBeforeWrite: () => {\n if (!this.inputmask) return;\n const unmaskedValue = this.inputmask.unmaskedvalue();\n this.onChange(unmaskedValue.replace(this.radixPoint, '.'));\n },\n }).mask(this.elementRef.nativeElement);\n this.inputmask = this.elementRef.nativeElement.inputmask;\n }\n\n private getMax(maxlengthValue: number): number {\n return this.max === undefined ? maxlengthValue : Math.min(this.max, maxlengthValue);\n }\n\n private getMin(maxlengthValue: number): number {\n if (!this.allowMinus) return;\n maxlengthValue = -Math.abs(maxlengthValue);\n return this.min === undefined ? maxlengthValue : -Math.abs(Math.max(this.min, maxlengthValue));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormFieldMessageComponent } from './form-field-message/form-field-message.component';\nimport { FormFieldComponent } from './form-field.component';\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { DecimalMaskDirective } from './directives/decimal-mask/decimal-mask.directive';\n\nconst declarations = [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent];\n\n@NgModule({\n imports: [CommonModule, DecimalMaskDirective],\n declarations: [...declarations],\n exports: [...declarations, DecimalMaskDirective],\n})\nexport class FormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FormFieldMessageComponent","i1.DateInputDirective","i1","i5.FormFieldMessageComponent"],"mappings":"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"}
@@ -168,3 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
168
168
 
169
169
  export { HeaderActionsDirective, HeaderComponent, HeaderCustomSectionDirective, HeaderModule, HeaderTitleActionIconDirective };
170
170
  //# sourceMappingURL=kirbydesign-designsystem-header.mjs.map
171
+ //# sourceMappingURL=kirbydesign-designsystem-header.mjs.map
@@ -13,3 +13,4 @@ ScssHelper.BREAKPOINT_CARD_L = 820;
13
13
 
14
14
  export { ScssHelper };
15
15
  //# sourceMappingURL=kirbydesign-designsystem-helpers-scss.mjs.map
16
+ //# sourceMappingURL=kirbydesign-designsystem-helpers-scss.mjs.map
@@ -221,3 +221,4 @@ var KirbyAnimation;
221
221
 
222
222
  export { KirbyAnimation, LineClampHelper, PlatformService, UniqueIdGenerator, chartConfigHasType, deepCopy, elementHasAncestor, mergeDeep, mergeDeepAll };
223
223
  //# sourceMappingURL=kirbydesign-designsystem-helpers.mjs.map
224
+ //# sourceMappingURL=kirbydesign-designsystem-helpers.mjs.map
@@ -144,6 +144,8 @@ const kirbyIconSettings = {
144
144
  { name: 'grid', svg: 'assets/kirby/icons/svg/grid.svg' },
145
145
  { name: 'list', svg: 'assets/kirby/icons/svg/list.svg' },
146
146
  { name: 'adjust', svg: 'assets/kirby/icons/svg/adjust.svg' },
147
+ { name: 'bs-logo', svg: 'assets/kirby/icons/svg/bs-logo.svg' },
148
+ { name: 'company', svg: 'assets/kirby/icons/svg/company.svg' },
147
149
  ],
148
150
  };
149
151
  const defaultIcons = kirbyIconSettings.icons.map((icon) => icon.name);
@@ -206,10 +208,10 @@ class IconComponent {
206
208
  }
207
209
  }
208
210
  /** @nocollapse */ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IconComponent, deps: [{ token: IconRegistryService }], target: i0.ɵɵFactoryTarget.Component });
209
- /** @nocollapse */ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: IconComponent, selector: "kirby-icon", inputs: { size: "size", name: "name", customName: "customName" }, host: { properties: { "class.kirby-icon": "true", "class": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}\n"], dependencies: [{ kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
211
+ /** @nocollapse */ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: IconComponent, selector: "kirby-icon", inputs: { size: "size", name: "name", customName: "customName" }, host: { properties: { "class.kirby-icon": "true", "class": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}:host-context(ion-tab-button){pointer-events:none}\n"], dependencies: [{ kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
210
212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IconComponent, decorators: [{
211
213
  type: Component,
212
- args: [{ selector: 'kirby-icon', host: { '[class.kirby-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}\n"] }]
214
+ args: [{ selector: 'kirby-icon', host: { '[class.kirby-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}:host-context(ion-tab-button){pointer-events:none}\n"] }]
213
215
  }], ctorParameters: function () { return [{ type: IconRegistryService }]; }, propDecorators: { size: [{
214
216
  type: HostBinding,
215
217
  args: ['class']
@@ -241,3 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
241
243
 
242
244
  export { IconComponent, IconModule, IconRegistryService, IconSize, defaultIcons, kirbyIconSettings };
243
245
  //# sourceMappingURL=kirbydesign-designsystem-icon.mjs.map
246
+ //# sourceMappingURL=kirbydesign-designsystem-icon.mjs.map