@kirbydesign/designsystem 4.0.7 → 4.0.11

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 (122) hide show
  1. package/bundles/kirbydesign-designsystem-testing-base.umd.js +62 -85
  2. package/bundles/kirbydesign-designsystem-testing-base.umd.js.map +1 -1
  3. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js +1 -1
  4. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js.map +1 -1
  5. package/bundles/kirbydesign-designsystem.umd.js +297 -687
  6. package/bundles/kirbydesign-designsystem.umd.js.map +1 -1
  7. package/bundles/kirbydesign-designsystem.umd.min.js +1 -1
  8. package/bundles/kirbydesign-designsystem.umd.min.js.map +1 -1
  9. package/esm2015/kirbydesign-designsystem.js +77 -76
  10. package/esm2015/kirbydesign-designsystem.metadata.json +1 -1
  11. package/esm2015/lib/animation/kirby-animation.js +7 -7
  12. package/esm2015/lib/components/angular-component-lib/utils.js +40 -0
  13. package/esm2015/lib/components/angular-component-lib/utils.metadata.json +1 -0
  14. package/esm2015/lib/components/avatar/avatar.component.js +2 -2
  15. package/esm2015/lib/components/avatar/avatar.component.metadata.json +1 -1
  16. package/esm2015/lib/components/button/button.component.js +1 -1
  17. package/esm2015/lib/components/button/button.component.metadata.json +1 -1
  18. package/esm2015/lib/components/calendar/calendar.component.js +2 -2
  19. package/esm2015/lib/components/card/card-header/card-header.component.js +1 -1
  20. package/esm2015/lib/components/chart/chart-js/configured-chart-js.js +3 -3
  21. package/esm2015/lib/components/chart/chart-js/configured-chart-js.metadata.json +1 -1
  22. package/esm2015/lib/components/chart/configs/type.config.js +3 -2
  23. package/esm2015/lib/components/chart-deprecated/options/bar.js +2 -2
  24. package/esm2015/lib/components/chart-deprecated/options/column.js +2 -2
  25. package/esm2015/lib/components/icon/kirby-icon-settings.js +2 -1
  26. package/esm2015/lib/components/icon/kirby-icon-settings.metadata.json +1 -1
  27. package/esm2015/lib/components/index.js +1 -2
  28. package/esm2015/lib/components/index.metadata.json +1 -1
  29. package/esm2015/lib/components/list/directives/list-item-color.directive.js +1 -1
  30. package/esm2015/lib/components/list/list-item/list-item.component.js +1 -1
  31. package/esm2015/lib/components/list/list-item/list-item.component.metadata.json +1 -1
  32. package/esm2015/lib/components/list/list.component.js +1 -1
  33. package/esm2015/lib/components/list/list.component.metadata.json +1 -1
  34. package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.js +2 -2
  35. package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.metadata.json +1 -1
  36. package/esm2015/lib/components/page/index.js +1 -1
  37. package/esm2015/lib/components/page/index.metadata.json +1 -1
  38. package/esm2015/lib/components/page/page.component.js +9 -2
  39. package/esm2015/lib/components/page/page.component.metadata.json +1 -1
  40. package/esm2015/lib/components/page/page.module.js +3 -2
  41. package/esm2015/lib/components/page/page.module.metadata.json +1 -1
  42. package/esm2015/lib/components/segmented-control/segment-item.js +1 -1
  43. package/esm2015/lib/components/segmented-control/segmented-control.component.js +3 -3
  44. package/esm2015/lib/components/segmented-control/segmented-control.component.metadata.json +1 -1
  45. package/esm2015/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.js +2 -2
  46. package/esm2015/lib/components/web-component-proxies.component.js +42 -0
  47. package/esm2015/lib/components/web-component-proxies.component.metadata.json +1 -0
  48. package/esm2015/lib/custom-elements-initializer.js +17 -0
  49. package/esm2015/lib/custom-elements-initializer.metadata.json +1 -0
  50. package/esm2015/lib/directives/fit-heading/fit-heading.directive.js +2 -2
  51. package/esm2015/lib/directives/fit-heading/fit-heading.directive.metadata.json +1 -1
  52. package/esm2015/lib/directives/theme-color/theme-color.directive.js +2 -3
  53. package/esm2015/lib/directives/theme-color/theme-color.directive.metadata.json +1 -1
  54. package/esm2015/lib/helpers/color-helper.js +2 -108
  55. package/esm2015/lib/helpers/color-helper.metadata.json +1 -1
  56. package/esm2015/lib/helpers/design-token-helper.js +2 -80
  57. package/esm2015/lib/helpers/design-token-helper.metadata.json +1 -1
  58. package/esm2015/lib/helpers/index.js +4 -2
  59. package/esm2015/lib/helpers/index.metadata.json +1 -1
  60. package/esm2015/lib/helpers/platform.service.js +2 -2
  61. package/esm2015/lib/helpers/string-helper.js +2 -45
  62. package/esm2015/lib/helpers/string-helper.metadata.json +1 -1
  63. package/esm2015/lib/helpers/theme-color.type.js +1 -1
  64. package/esm2015/lib/helpers/theme-color.type.metadata.json +1 -1
  65. package/esm2015/lib/index.js +5 -1
  66. package/esm2015/lib/index.metadata.json +1 -1
  67. package/esm2015/lib/kirby.module.js +4 -2
  68. package/esm2015/lib/kirby.module.metadata.json +1 -1
  69. package/esm2015/testing-base/kirbydesign-designsystem-testing-base.js +51 -52
  70. package/esm2015/testing-base/kirbydesign-designsystem-testing-base.metadata.json +1 -1
  71. package/esm2015/testing-base/lib/components/mock.page.component.js +4 -2
  72. package/esm2015/testing-base/lib/components/mock.page.component.metadata.json +1 -1
  73. package/esm2015/testing-base/lib/directives/mock.theme-color.directive.js +1 -2
  74. package/esm2015/testing-base/lib/directives/mock.theme-color.directive.metadata.json +1 -1
  75. package/esm2015/testing-base/lib/mock-components.js +1 -3
  76. package/esm2015/testing-base/lib/mock-components.metadata.json +1 -1
  77. package/fesm2015/kirbydesign-designsystem-testing-base.js +5 -25
  78. package/fesm2015/kirbydesign-designsystem-testing-base.js.map +1 -1
  79. package/fesm2015/kirbydesign-designsystem.js +132 -543
  80. package/fesm2015/kirbydesign-designsystem.js.map +1 -1
  81. package/icons/svg/payment-card.svg +6 -0
  82. package/kirbydesign-designsystem.d.ts +76 -75
  83. package/kirbydesign-designsystem.metadata.json +1 -1
  84. package/lib/components/angular-component-lib/utils.d.ts +7 -0
  85. package/lib/components/avatar/avatar.component.d.ts +1 -1
  86. package/lib/components/button/button.component.d.ts +1 -1
  87. package/lib/components/card/card-header/card-header.component.d.ts +1 -1
  88. package/lib/components/flag/flag.component.d.ts +1 -1
  89. package/lib/components/index.d.ts +0 -1
  90. package/lib/components/list/directives/list-item-color.directive.d.ts +1 -1
  91. package/lib/components/list/list-item/list-item.component.d.ts +1 -1
  92. package/lib/components/list/list.component.d.ts +1 -1
  93. package/lib/components/page/index.d.ts +1 -0
  94. package/lib/components/page/page.component.d.ts +11 -0
  95. package/lib/components/progress-circle/progress-circle.component.d.ts +1 -1
  96. package/lib/components/segmented-control/segment-item.d.ts +3 -2
  97. package/lib/components/web-component-proxies.component.d.ts +9 -0
  98. package/lib/custom-elements-initializer.d.ts +7 -0
  99. package/lib/directives/theme-color/theme-color.directive.d.ts +1 -1
  100. package/lib/helpers/color-helper.d.ts +1 -36
  101. package/lib/helpers/design-token-helper.d.ts +1 -42
  102. package/lib/helpers/index.d.ts +1 -1
  103. package/lib/helpers/string-helper.d.ts +1 -4
  104. package/lib/helpers/theme-color.type.d.ts +1 -1
  105. package/lib/index.d.ts +1 -0
  106. package/package.json +3 -2
  107. package/scss/base/_variables.scss +1 -0
  108. package/testing-base/kirbydesign-designsystem-testing-base.d.ts +50 -51
  109. package/testing-base/kirbydesign-designsystem-testing-base.metadata.json +1 -1
  110. package/testing-base/lib/components/mock.page.component.d.ts +2 -0
  111. package/esm2015/lib/components/badge/badge.component.js +0 -14
  112. package/esm2015/lib/components/badge/badge.component.metadata.json +0 -1
  113. package/esm2015/lib/helpers/color-helper.styles.js +0 -194
  114. package/esm2015/lib/helpers/color-helper.styles.metadata.json +0 -1
  115. package/esm2015/lib/helpers/design-token-helper.styles.js +0 -79
  116. package/esm2015/lib/helpers/design-token-helper.styles.metadata.json +0 -1
  117. package/esm2015/testing-base/lib/components/mock.badge.component.js +0 -22
  118. package/esm2015/testing-base/lib/components/mock.badge.component.metadata.json +0 -1
  119. package/lib/components/badge/badge.component.d.ts +0 -3
  120. package/lib/helpers/color-helper.styles.d.ts +0 -206
  121. package/lib/helpers/design-token-helper.styles.d.ts +0 -124
  122. package/testing-base/lib/components/mock.badge.component.d.ts +0 -3
@@ -1,4 +1,6 @@
1
- import { Component, Input, EventEmitter, Output, Injectable, ɵɵdefineInjectable, ElementRef, ViewChild, ɵɵinject, InjectionToken, Injector, HostListener, Optional, Inject, HostBinding, ContentChild, NgZone, RendererStyleFlags2, Renderer2, ComponentFactoryResolver, ViewChildren, NgModule, ChangeDetectionStrategy, LOCALE_ID, Directive, forwardRef, ChangeDetectorRef, TemplateRef, ContentChildren, INJECTOR, Pipe, SkipSelf, ViewContainerRef } from '@angular/core';
1
+ import { DesignTokenHelper, ColorHelper, capitalizeFirstLetter } from '@kirbydesign/core';
2
+ export { ColorHelper, DesignTokenHelper, camelToKebabCase, capitalizeFirstLetter, kebabToCamelCase, kebabToTitleCase } from '@kirbydesign/core';
3
+ import { Component, Input, EventEmitter, Output, Injectable, ɵɵdefineInjectable, ElementRef, ViewChild, ɵɵinject, InjectionToken, Injector, HostListener, Optional, Inject, HostBinding, ContentChild, NgZone, RendererStyleFlags2, Renderer2, ComponentFactoryResolver, ViewChildren, NgModule, ChangeDetectionStrategy, LOCALE_ID, Directive, forwardRef, ChangeDetectorRef, TemplateRef, ContentChildren, INJECTOR, Pipe, SkipSelf, ViewContainerRef, APP_INITIALIZER } from '@angular/core';
2
4
  import { ModalController as ModalController$1, IonContent, IonHeader, IonToolbar, IonTitle, AnimationController, IonApp, IonicModule, IonRadio, IonFabButton, LoadingController, IonItemSliding, IonTabs, IonFooter, ToastController as ToastController$1 } from '@ionic/angular';
3
5
  export { IonRouterOutlet, NavController } from '@ionic/angular';
4
6
  import { NavigationEnd, Router, ActivatedRoute, RouterOutlet, ROUTES, NavigationStart, RouterModule } from '@angular/router';
@@ -7,7 +9,7 @@ import { filter, first, startWith, map, pairwise, debounceTime, takeUntil } from
7
9
  import { CommonModule, formatNumber, getLocaleDateFormat, FormatWidth, getLocaleNumberSymbol, NumberSymbol, DOCUMENT } from '@angular/common';
8
10
  import * as Highcharts from 'highcharts';
9
11
  import { chart, dateFormat } from 'highcharts';
10
- import { CategoryScale, LinearScale, BarElement, LineElement, PointElement, BarController, LineController, Chart, Legend } from 'chart.js';
12
+ import { CategoryScale, LinearScale, BarElement, LineElement, PointElement, BarController, LineController, Filler, Chart, Legend } from 'chart.js';
11
13
  export { Chart } from 'chart.js';
12
14
  import annotationPlugin from 'chartjs-plugin-annotation';
13
15
  import * as Highcharts$1 from 'highcharts/highstock';
@@ -22,97 +24,19 @@ import Inputmask from 'inputmask/lib/inputmask';
22
24
  import 'inputmask/lib/extensions/inputmask.numeric.extensions';
23
25
  import { trigger, state, style, transition, animate } from '@angular/animations';
24
26
  import { UiScrollModule } from 'ngx-ui-scroll';
25
-
26
- const styles = {
27
- sizes: {
28
- xxxl: '56px',
29
- xxl: '48px',
30
- xl: '40px',
31
- l: '32px',
32
- m: '24px',
33
- s: '16px',
34
- xs: '12px',
35
- xxs: '8px',
36
- xxxs: '4px',
37
- xxxxs: '2px',
38
- },
39
- fontSizes: {
40
- xxxxl: '72px',
41
- xxxl: '56px',
42
- xxl: '40px',
43
- xl: '32px',
44
- l: '22px',
45
- m: '18px',
46
- n: '16px',
47
- s: '14px',
48
- xs: '12px',
49
- xxs: '10px',
50
- },
51
- lineHeight: { xl: '38px', l: '28px', m: '24px', n: '24px', s: '20px', xs: '16px', xxs: '11px' },
52
- fontWeight: { light: '300', normal: '400', bold: '700', black: '900' },
53
- iconFontSizes: { xs: '16px', sm: '24px', md: '32px', lg: '56px' },
54
- zLayers: {
55
- default: '1',
56
- segmentBadge: '2',
57
- dropdown: '800',
58
- popover: '850',
59
- modalOverlay: '900',
60
- modal: '901',
61
- loadingOverlay: '1001',
62
- },
63
- borderRadius: '16px',
64
- borderRadiusRound: '999px',
65
- breakpoints: {
66
- small: '321px',
67
- medium: '721px',
68
- large: '1025px',
69
- xlarge: '60em',
70
- xxlarge: '80em',
71
- },
72
- elevations: {
73
- 2: 'rgba(28, 28, 28, 0.3) 0px 5px 10px -10px, rgba(28, 28, 28, 0.08) 0px 0px 5px 0px',
74
- 4: 'rgba(28, 28, 28, 0.3) 0px 10px 15px -10px, rgba(28, 28, 28, 0.08) 0px 0px 5px 0px',
75
- 8: 'rgba(28, 28, 28, 0.3) 0px 20px 30px -15px, rgba(28, 28, 28, 0.08) 0px 0px 5px 0px',
76
- },
77
- avatarSizes: { xs: '32px', s: '40px', m: '56px', l: '96px' },
78
- avatarBadgeSize: '16px',
79
- pageContentMaxWidth: '720px',
80
- alertMaxWidth: '359px',
81
- compactModalMaxWidth: '359px',
82
- modalMaxWidth: '720px',
83
- modalHeights: { s: '288px', m: '460px', l: '576px' },
84
- modalDefaultHeight: '460px',
85
- drawerDefaultHeight: '288px',
86
- itemHeights: { m: '56px', s: '44px', xs: '32px' },
87
- dropdownItemHeight: '44px',
88
- fatFingerSize: '44px',
89
- checkboxRadioSizes: { xs: '32px', sm: '44px', md: '56px' },
90
- checkboxRadioSpacing: { toEdge: '16px', toLabel: '12px' },
91
- softKeyboardTransitionEnter: '250ms ease-out 1ms',
92
- softKeyboardTransitionLeave: '150ms ease-out',
93
- transitionDurations: { quick: '200ms', short: '300ms', long: '500ms', extraLong: '1000ms' },
94
- transitionEasings: {
95
- static: 'linear',
96
- enter: 'ease-out',
97
- exit: 'ease-in',
98
- enterExit: 'ease',
99
- motion: 'cubic-bezier(0.25, 0.1, 0.25, 1)',
100
- modal: { enter: 'cubic-bezier(0.32, 0.72, 0, 1)', exit: 'cubic-bezier(0.32, 0.72, 0, 1)' },
101
- },
102
- loadingOverlayBackdropOpacity: '0.8',
103
- };
27
+ import { defineCustomElements } from '@kirbydesign/core/loader';
104
28
 
105
29
  var KirbyAnimation;
106
30
  (function (KirbyAnimation) {
107
31
  let Duration;
108
32
  (function (Duration) {
109
33
  // Duration in milliseconds
110
- Duration[Duration["QUICK"] = parseInt(styles.transitionDurations.quick)] = "QUICK";
111
- Duration[Duration["SHORT"] = parseInt(styles.transitionDurations.short)] = "SHORT";
112
- Duration[Duration["LONG"] = parseInt(styles.transitionDurations.long)] = "LONG";
113
- Duration[Duration["EXTRA_LONG"] = parseInt(styles.transitionDurations.extraLong)] = "EXTRA_LONG";
34
+ Duration[Duration["QUICK"] = parseInt(DesignTokenHelper.transitionDuration('quick'))] = "QUICK";
35
+ Duration[Duration["SHORT"] = parseInt(DesignTokenHelper.transitionDuration('short'))] = "SHORT";
36
+ Duration[Duration["LONG"] = parseInt(DesignTokenHelper.transitionDuration('long'))] = "LONG";
37
+ Duration[Duration["EXTRA_LONG"] = parseInt(DesignTokenHelper.transitionDuration('extraLong'))] = "EXTRA_LONG";
114
38
  })(Duration = KirbyAnimation.Duration || (KirbyAnimation.Duration = {}));
115
- KirbyAnimation.Easing = styles.transitionEasings;
39
+ KirbyAnimation.Easing = DesignTokenHelper.transitionEasings();
116
40
  })(KirbyAnimation || (KirbyAnimation = {}));
117
41
 
118
42
  class RouterOutletComponent {
@@ -702,429 +626,6 @@ ModalCompactWrapperComponent.propDecorators = {
702
626
  onFocusChange: [{ type: HostListener, args: ['window:focus',] }, { type: HostListener, args: ['window:focusout',] }]
703
627
  };
704
628
 
705
- const styles$1 = {
706
- brandColors: { primary: '#00e89a', secondary: '#005c3c', tertiary: '#01352c' },
707
- notificationColors: { success: '#2cf287', warning: '#ffca3a', danger: '#ff595e' },
708
- systemColors: {
709
- backgroundColor: '#f6f6f6',
710
- white: '#ffffff',
711
- light: '#f2f2f2',
712
- semiLight: '#ebebeb',
713
- medium: '#d1d1d1',
714
- semiDark: '#8e8e8e',
715
- dark: '#353535',
716
- black: '#1c1c1c',
717
- },
718
- textColors: { white: '#ffffff', semiDark: '#707070', black: '#1c1c1c', danger: '#ee0d0d' },
719
- focusRingColor: '#4d90fe',
720
- mainColors: {
721
- primary: '#00e89a',
722
- secondary: '#005c3c',
723
- tertiary: '#01352c',
724
- success: '#2cf287',
725
- warning: '#ffca3a',
726
- danger: '#ff595e',
727
- light: '#f2f2f2',
728
- medium: '#d1d1d1',
729
- dark: '#353535',
730
- },
731
- kirbyColors: {
732
- black: '#1c1c1c',
733
- blackRgb: '28, 28, 28',
734
- blackContrast: '#ffffff',
735
- blackContrastRgb: '255, 255, 255',
736
- blackShade: '#191919',
737
- blackShadeRgb: '25, 25, 25',
738
- blackTint: '#333333',
739
- blackTintRgb: '51, 51, 51',
740
- blackColorBrightness: 'dark',
741
- dark: '#353535',
742
- darkRgb: '53, 53, 53',
743
- darkContrast: '#ffffff',
744
- darkContrastRgb: '255, 255, 255',
745
- darkShade: '#2f2f2f',
746
- darkShadeRgb: '47, 47, 47',
747
- darkTint: '#494949',
748
- darkTintRgb: '73, 73, 73',
749
- darkColorBrightness: 'dark',
750
- semiDark: '#8e8e8e',
751
- semiDarkRgb: '142, 142, 142',
752
- semiDarkContrast: '#1c1c1c',
753
- semiDarkContrastRgb: '28, 28, 28',
754
- semiDarkShade: '#7d7d7d',
755
- semiDarkShadeRgb: '125, 125, 125',
756
- semiDarkTint: '#999999',
757
- semiDarkTintRgb: '153, 153, 153',
758
- semiDarkColorBrightness: 'light',
759
- medium: '#d1d1d1',
760
- mediumRgb: '209, 209, 209',
761
- mediumContrast: '#1c1c1c',
762
- mediumContrastRgb: '28, 28, 28',
763
- mediumShade: '#b8b8b8',
764
- mediumShadeRgb: '184, 184, 184',
765
- mediumTint: '#d6d6d6',
766
- mediumTintRgb: '214, 214, 214',
767
- mediumColorBrightness: 'light',
768
- semiLight: '#ebebeb',
769
- semiLightRgb: '235, 235, 235',
770
- semiLightContrast: '#1c1c1c',
771
- semiLightContrastRgb: '28, 28, 28',
772
- semiLightShade: '#cfcfcf',
773
- semiLightShadeRgb: '207, 207, 207',
774
- semiLightTint: '#ededed',
775
- semiLightTintRgb: '237, 237, 237',
776
- semiLightColorBrightness: 'light',
777
- light: '#f2f2f2',
778
- lightRgb: '242, 242, 242',
779
- lightContrast: '#1c1c1c',
780
- lightContrastRgb: '28, 28, 28',
781
- lightShade: '#d5d5d5',
782
- lightShadeRgb: '213, 213, 213',
783
- lightTint: '#f3f3f3',
784
- lightTintRgb: '243, 243, 243',
785
- lightColorBrightness: 'light',
786
- white: '#ffffff',
787
- whiteRgb: '255, 255, 255',
788
- whiteContrast: '#1c1c1c',
789
- whiteContrastRgb: '28, 28, 28',
790
- whiteShade: '#e0e0e0',
791
- whiteShadeRgb: '224, 224, 224',
792
- whiteTint: 'white',
793
- whiteTintRgb: '255, 255, 255',
794
- whiteColorBrightness: 'white',
795
- backgroundColor: '#f6f6f6',
796
- backgroundColorRgb: '246, 246, 246',
797
- backgroundColorContrast: '#1c1c1c',
798
- backgroundColorContrastRgb: '28, 28, 28',
799
- backgroundColorShade: '#d8d8d8',
800
- backgroundColorShadeRgb: '216, 216, 216',
801
- backgroundColorTint: '#f7f7f7',
802
- backgroundColorTintRgb: '247, 247, 247',
803
- backgroundColorColorBrightness: 'light',
804
- danger: '#ff595e',
805
- dangerRgb: '255, 89, 94',
806
- dangerContrast: '#1c1c1c',
807
- dangerContrastRgb: '28, 28, 28',
808
- dangerShade: '#e04e53',
809
- dangerShadeRgb: '224, 78, 83',
810
- dangerTint: '#ff6a6e',
811
- dangerTintRgb: '255, 106, 110',
812
- dangerColorBrightness: 'light',
813
- warning: '#ffca3a',
814
- warningRgb: '255, 202, 58',
815
- warningContrast: '#1c1c1c',
816
- warningContrastRgb: '28, 28, 28',
817
- warningShade: '#e0b233',
818
- warningShadeRgb: '224, 178, 51',
819
- warningTint: '#ffcf4e',
820
- warningTintRgb: '255, 207, 78',
821
- warningColorBrightness: 'light',
822
- success: '#2cf287',
823
- successRgb: '44, 242, 135',
824
- successContrast: '#1c1c1c',
825
- successContrastRgb: '28, 28, 28',
826
- successShade: '#27d577',
827
- successShadeRgb: '39, 213, 119',
828
- successTint: '#41f393',
829
- successTintRgb: '65, 243, 147',
830
- successColorBrightness: 'light',
831
- tertiary: '#01352c',
832
- tertiaryRgb: '1, 53, 44',
833
- tertiaryContrast: '#ffffff',
834
- tertiaryContrastRgb: '255, 255, 255',
835
- tertiaryShade: '#012f27',
836
- tertiaryShadeRgb: '1, 47, 39',
837
- tertiaryTint: '#1a4941',
838
- tertiaryTintRgb: '26, 73, 65',
839
- tertiaryColorBrightness: 'dark',
840
- secondary: '#005c3c',
841
- secondaryRgb: '0, 92, 60',
842
- secondaryContrast: '#ffffff',
843
- secondaryContrastRgb: '255, 255, 255',
844
- secondaryShade: '#005135',
845
- secondaryShadeRgb: '0, 81, 53',
846
- secondaryTint: '#1a6c50',
847
- secondaryTintRgb: '26, 108, 80',
848
- secondaryColorBrightness: 'dark',
849
- primary: '#00e89a',
850
- primaryRgb: '0, 232, 154',
851
- primaryContrast: '#1c1c1c',
852
- primaryContrastRgb: '28, 28, 28',
853
- primaryShade: '#00cc88',
854
- primaryShadeRgb: '0, 204, 136',
855
- primaryTint: '#1aeaa4',
856
- primaryTintRgb: '26, 234, 164',
857
- primaryColorBrightness: 'light',
858
- },
859
- kirbyTextColors: {
860
- danger: '#ee0d0d',
861
- dangerRgb: '238, 13, 13',
862
- dangerContrast: '#ffffff',
863
- dangerContrastRgb: '255, 255, 255',
864
- dangerShade: '#d10b0b',
865
- dangerShadeRgb: '209, 11, 11',
866
- dangerTint: '#f02525',
867
- dangerTintRgb: '240, 37, 37',
868
- dangerColorBrightness: 'dark',
869
- black: '#1c1c1c',
870
- blackRgb: '28, 28, 28',
871
- blackContrast: '#ffffff',
872
- blackContrastRgb: '255, 255, 255',
873
- blackShade: '#191919',
874
- blackShadeRgb: '25, 25, 25',
875
- blackTint: '#333333',
876
- blackTintRgb: '51, 51, 51',
877
- blackColorBrightness: 'dark',
878
- semiDark: '#707070',
879
- semiDarkRgb: '112, 112, 112',
880
- semiDarkContrast: '#ffffff',
881
- semiDarkContrastRgb: '255, 255, 255',
882
- semiDarkShade: '#636363',
883
- semiDarkShadeRgb: '99, 99, 99',
884
- semiDarkTint: '#7e7e7e',
885
- semiDarkTintRgb: '126, 126, 126',
886
- semiDarkColorBrightness: 'dark',
887
- white: '#ffffff',
888
- whiteRgb: '255, 255, 255',
889
- whiteContrast: '#1c1c1c',
890
- whiteContrastRgb: '28, 28, 28',
891
- whiteShade: '#e0e0e0',
892
- whiteShadeRgb: '224, 224, 224',
893
- whiteTint: 'white',
894
- whiteTintRgb: '255, 255, 255',
895
- whiteColorBrightness: 'white',
896
- },
897
- };
898
-
899
- const kebabToCamelCase = (kebabString) => {
900
- if (!kebabString.length || kebabString.length === 1) {
901
- return kebabString;
902
- }
903
- const stringInCamelCase = kebabString
904
- .split('-')
905
- .map((part, index) => (index === 0 ? part : part[0].toUpperCase() + part.substr(1)))
906
- .join('');
907
- return stringInCamelCase;
908
- };
909
- const camelToKebabCase = (camelString) => {
910
- if (!camelString.length || camelString.length === 1) {
911
- return camelString;
912
- }
913
- const stringInKebabCase = camelString
914
- .split('')
915
- .map((char, index) => {
916
- const isUppercase = char.toUpperCase() === char;
917
- if (!isUppercase || char === '-') {
918
- return char;
919
- }
920
- return index === 0 ? char.toLowerCase() : `-${char.toLowerCase()}`;
921
- })
922
- .join('');
923
- return stringInKebabCase;
924
- };
925
- const kebabToTitleCase = (kebabString) => {
926
- if (!kebabString.length || kebabString.length === 1) {
927
- return kebabString;
928
- }
929
- const stringInTitleCase = kebabString
930
- .split('-')
931
- .map((word) => {
932
- return word[0].toUpperCase() + word.slice(1);
933
- })
934
- .join(' ');
935
- return stringInTitleCase;
936
- };
937
- const capitalizeFirstLetter = (string) => {
938
- if (typeof string !== 'string') {
939
- return '';
940
- }
941
- return string.charAt(0).toUpperCase() + string.slice(1);
942
- };
943
-
944
- class ColorHelper {
945
- static getMainColors() {
946
- // Do not remove the `colorArray` const, since it'll break the ngpackagr build, for more info see:
947
- // https://github.com/ng-packagr/ng-packagr/issues/696
948
- const colorArray = Object.entries(styles$1.mainColors).map(([name, value]) => ({ name, value }));
949
- return colorArray;
950
- }
951
- static mapToKirbyColorArray(colors, fullColorMap = styles$1.kirbyColors) {
952
- const TINT = 'Tint';
953
- const SHADE = 'Shade';
954
- const CONTRAST = 'Contrast';
955
- const colorArray = Object.entries(colors).map(([name, value]) => ({
956
- name: camelToKebabCase(name),
957
- value,
958
- base: value,
959
- tint: {
960
- value: fullColorMap[name + TINT],
961
- name: camelToKebabCase(name + TINT),
962
- },
963
- shade: {
964
- value: fullColorMap[name + SHADE],
965
- name: camelToKebabCase(name + SHADE),
966
- },
967
- contrast: {
968
- value: fullColorMap[name + CONTRAST],
969
- name: camelToKebabCase(name + CONTRAST),
970
- },
971
- }));
972
- // Do not remove the `colorArray` const, since it'll break the ngpackagr build, for more info see:
973
- // https://github.com/ng-packagr/ng-packagr/issues/696
974
- return colorArray;
975
- }
976
- static getBackgroundColor() {
977
- return ColorHelper.getColor('background-color');
978
- }
979
- static getColorBrightness(name) {
980
- return ColorHelper.getColor(name + '-color-brightness');
981
- }
982
- static getThemeColorRgbString(name) {
983
- const rgbValue = ColorHelper.getColor(name + '-rgb');
984
- return `rgb(${rgbValue})`;
985
- }
986
- static getThemeTextColorRgbString(name) {
987
- const rgbValue = ColorHelper.getTextColor(name + '-rgb');
988
- return `rgb(${rgbValue})`;
989
- }
990
- static getThemeColorHexString(name) {
991
- return ColorHelper.getColor(name);
992
- }
993
- static getThemeTextColorHexString(name) {
994
- return ColorHelper.getTextColor(name);
995
- }
996
- static getTransparentColorRgbString() {
997
- return 'rgba(0, 0, 0, 0)';
998
- }
999
- static colorStringToRgbString(color) {
1000
- if (color.indexOf('rgb') === 0) {
1001
- return color;
1002
- }
1003
- if (color.indexOf('#') === 0) {
1004
- return ColorHelper.hexToRGB(color);
1005
- }
1006
- if (color.split(',').length === 3) {
1007
- return `rgb(${color})`;
1008
- }
1009
- if (color.split(',').length === 4) {
1010
- return `rgba(${color})`;
1011
- }
1012
- const ctx = document.createElement('canvas').getContext('2d');
1013
- ctx.fillStyle = color;
1014
- const renderedColor = ctx.fillStyle.toString();
1015
- return ColorHelper.colorStringToRgbString(renderedColor);
1016
- }
1017
- static hexToRGB(hex) {
1018
- let r = '0', g = '0', b = '0';
1019
- // 3 digits
1020
- if (hex.length === 4) {
1021
- r = '0x' + hex[1] + hex[1];
1022
- g = '0x' + hex[2] + hex[2];
1023
- b = '0x' + hex[3] + hex[3];
1024
- // 6 digits
1025
- }
1026
- else if (hex.length === 7) {
1027
- r = '0x' + hex[1] + hex[2];
1028
- g = '0x' + hex[3] + hex[4];
1029
- b = '0x' + hex[5] + hex[6];
1030
- }
1031
- return `rgb(${+r}, ${+g}, ${+b})`;
1032
- }
1033
- static getColor(name) {
1034
- const camelCaseKey = kebabToCamelCase(name);
1035
- const found = styles$1.kirbyColors[camelCaseKey];
1036
- return found || null;
1037
- }
1038
- static getTextColor(name) {
1039
- const camelCaseKey = kebabToCamelCase(name);
1040
- const found = styles$1.kirbyTextColors[camelCaseKey];
1041
- return found || null;
1042
- }
1043
- }
1044
- ColorHelper.brandColors = ColorHelper.mapToKirbyColorArray(styles$1.brandColors);
1045
- ColorHelper.notificationColors = ColorHelper.mapToKirbyColorArray(styles$1.notificationColors);
1046
- ColorHelper.systemColors = ColorHelper.mapToKirbyColorArray(styles$1.systemColors);
1047
- ColorHelper.textColors = ColorHelper.mapToKirbyColorArray(styles$1.textColors, styles$1.kirbyTextColors);
1048
- ColorHelper.mainColors = ColorHelper.getMainColors();
1049
-
1050
- class DesignTokenHelper {
1051
- static getColor(name, variant) {
1052
- const variantSuffix = variant ? `-${variant}` : '';
1053
- const colorVariant = `${name}${variantSuffix}`;
1054
- return {
1055
- name: name,
1056
- variant: variant,
1057
- fullname: colorVariant,
1058
- value: ColorHelper.getThemeColorRgbString(colorVariant),
1059
- hex: ColorHelper.getThemeColorHexString(colorVariant),
1060
- };
1061
- }
1062
- static getTextColor(name, variant) {
1063
- const variantSuffix = variant ? `-${variant}` : '';
1064
- const colorVariant = `${name}${variantSuffix}`;
1065
- return {
1066
- name: name,
1067
- variant: variant,
1068
- fullname: colorVariant,
1069
- value: ColorHelper.getThemeTextColorRgbString(colorVariant),
1070
- hex: ColorHelper.getThemeTextColorHexString(colorVariant),
1071
- };
1072
- }
1073
- static size(key) {
1074
- return styles.sizes[key];
1075
- }
1076
- static fontSize(key) {
1077
- return styles.fontSizes[key];
1078
- }
1079
- static iconFontSize(key) {
1080
- return styles.iconFontSizes[key];
1081
- }
1082
- static fontWeight(key) {
1083
- return styles.fontWeight[key];
1084
- }
1085
- static lineHeight(key) {
1086
- return styles.lineHeight[key];
1087
- }
1088
- static backgroundColor() {
1089
- return ColorHelper.getBackgroundColor();
1090
- }
1091
- static borderRadius() {
1092
- return styles.borderRadius;
1093
- }
1094
- static borderRadiusRound() {
1095
- return styles.borderRadiusRound;
1096
- }
1097
- static alertMaxWidth() {
1098
- return styles.alertMaxWidth;
1099
- }
1100
- static compactModalMaxWidth() {
1101
- return styles.compactModalMaxWidth;
1102
- }
1103
- static dropdownItemHeight() {
1104
- return styles.dropdownItemHeight;
1105
- }
1106
- static avatarSize(key) {
1107
- return styles.avatarSizes[key];
1108
- }
1109
- static fatFingerSize() {
1110
- return styles.fatFingerSize;
1111
- }
1112
- static getElevation(z) {
1113
- return styles.elevations[z];
1114
- }
1115
- static itemHeight(key) {
1116
- return styles.itemHeights[key];
1117
- }
1118
- static zLayer(key) {
1119
- return styles.zLayers[key];
1120
- }
1121
- }
1122
- DesignTokenHelper.breakpoints = styles.breakpoints;
1123
- DesignTokenHelper.softKeyboardTransitionEnter = styles.softKeyboardTransitionEnter;
1124
- DesignTokenHelper.softKeyboardTransitionLeave = styles.softKeyboardTransitionLeave;
1125
- DesignTokenHelper.modalDefaultHeight = styles.modalDefaultHeight;
1126
- DesignTokenHelper.drawerDefaultHeight = styles.drawerDefaultHeight;
1127
-
1128
629
  class PlatformService {
1129
630
  constructor(windowRef) {
1130
631
  this.windowRef = windowRef;
@@ -1237,6 +738,7 @@ const kirbyIconSettings = {
1237
738
  { name: 'misc', svg: 'assets/kirby/icons/svg/misc.svg' },
1238
739
  { name: 'more', svg: 'assets/kirby/icons/svg/more.svg' },
1239
740
  { name: 'move', svg: 'assets/kirby/icons/svg/move.svg' },
741
+ { name: 'payment-card', svg: 'assets/kirby/icons/svg/payment-card.svg' },
1240
742
  { name: 'pension', svg: 'assets/kirby/icons/svg/pension.svg' },
1241
743
  { name: 'person-outline', svg: 'assets/kirby/icons/svg/person-outline.svg' },
1242
744
  { name: 'person', svg: 'assets/kirby/icons/svg/person.svg' },
@@ -2550,7 +2052,7 @@ AvatarComponent.decorators = [
2550
2052
  selector: 'kirby-avatar',
2551
2053
  template: "<div class=\"avatar\" [ngClass]=\"{ shadow: shadow, overlay: overlay }\">\n <img *ngIf=\"imageSrc\" [src]=\"imageSrc\" [attr.alt]=\"altText\" />\n <ng-content *ngIf=\"!text\" select=\"kirby-icon\"></ng-content>\n <span class=\"avatar-text\" *ngIf=\"text\">{{ text }}</span>\n</div>\n<ng-content select=\"kirby-badge\"></ng-content>\n",
2552
2054
  changeDetection: ChangeDetectionStrategy.OnPush,
2553
- styles: [":host{--kirby-badge-elevation:0 5px 10px -10px rgba(28,28,28,0.3),0 0 5px 0 rgba(28,28,28,0.08);--kirby-badge-position:absolute;--kirby-badge-right:-2px;--kirby-badge-top:-2px;--kirby-badge-zindex:2}.avatar,:host{position:relative}.avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;z-index:1;display:flex;justify-content:center;align-items:center;background-color:var(--kirby-white);color:var(--kirby-light-contrast);--kirby-icon-font-size:24px}.avatar.shadow{box-shadow:0 2px 4px 2px hsla(0,0%,44.3%,.4)}.avatar.overlay:before{content:\"\";background-color:var(--kirby-black);opacity:.05;width:100%;height:100%;position:absolute;top:0;left:0}.avatar img{object-fit:cover;max-width:100%;height:100%;width:100%}:host(.xs) .avatar{width:32px;height:32px;border-radius:8px}:host(.xs) .avatar .avatar-text{font-size:14px}:host(.sm) .avatar,:host-context(kirby-progress-circle.sm) .avatar{width:40px;height:40px}:host(.sm) .avatar .avatar-text,:host-context(kirby-progress-circle.sm) .avatar .avatar-text{font-size:14px}:host(.md),:host-context(kirby-progress-circle.md){--kirby-badge-right:0px;--kirby-badge-top:0px}:host(.md) .avatar,:host-context(kirby-progress-circle.md) .avatar{width:56px;height:56px;--kirby-icon-font-size:32px}:host(.md) .avatar .avatar-text,:host-context(kirby-progress-circle.md) .avatar .avatar-text{font-size:18px}:host(.lg),:host-context(kirby-progress-circle.lg){--kirby-badge-right:6px;--kirby-badge-top:6px}:host(.lg) .avatar,:host-context(kirby-progress-circle.lg) .avatar{width:96px;height:96px;--kirby-icon-font-size:56px}:host(.lg) .avatar .avatar-text,:host-context(kirby-progress-circle.lg) .avatar .avatar-text{font-size:32px}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}:host-context(kirby-item)[slot=start].xs{margin-inline-end:16px}:host(.primary) .avatar{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}:host(.secondary) .avatar{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}:host(.tertiary) .avatar{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}:host(.success) .avatar{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}:host(.warning) .avatar{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}:host(.danger) .avatar{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}:host(.light) .avatar{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}:host(.medium) .avatar{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}:host(.dark) .avatar{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}:host(.white) .avatar{background-color:var(--kirby-white);color:var(--kirby-white-contrast)}:host(.semi-light) .avatar{background-color:var(--kirby-semi-light);color:var(--kirby-semi-light-contrast)}"]
2055
+ styles: [":host{--kirby-badge-elevation:0 5px 10px -10px rgba(28,28,28,0.3),0 0 5px 0 rgba(28,28,28,0.08);--kirby-badge-position:absolute;--kirby-badge-right:-2px;--kirby-badge-top:-2px;--kirby-badge-z-index:2}.avatar,:host{position:relative}.avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;z-index:1;display:flex;justify-content:center;align-items:center;background-color:var(--kirby-white);color:var(--kirby-light-contrast);--kirby-icon-font-size:24px}.avatar.shadow{box-shadow:0 2px 4px 2px hsla(0,0%,44.3%,.4)}.avatar.overlay:before{content:\"\";background-color:var(--kirby-black);opacity:.05;width:100%;height:100%;position:absolute;top:0;left:0}.avatar img{object-fit:cover;max-width:100%;height:100%;width:100%}:host(.xs) .avatar{width:32px;height:32px;border-radius:8px}:host(.xs) .avatar .avatar-text{font-size:14px}:host(.sm) .avatar,:host-context(kirby-progress-circle.sm) .avatar{width:40px;height:40px}:host(.sm) .avatar .avatar-text,:host-context(kirby-progress-circle.sm) .avatar .avatar-text{font-size:14px}:host(.md),:host-context(kirby-progress-circle.md){--kirby-badge-right:0px;--kirby-badge-top:0px}:host(.md) .avatar,:host-context(kirby-progress-circle.md) .avatar{width:56px;height:56px;--kirby-icon-font-size:32px}:host(.md) .avatar .avatar-text,:host-context(kirby-progress-circle.md) .avatar .avatar-text{font-size:18px}:host(.lg),:host-context(kirby-progress-circle.lg){--kirby-badge-right:6px;--kirby-badge-top:6px}:host(.lg) .avatar,:host-context(kirby-progress-circle.lg) .avatar{width:96px;height:96px;--kirby-icon-font-size:56px}:host(.lg) .avatar .avatar-text,:host-context(kirby-progress-circle.lg) .avatar .avatar-text{font-size:32px}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}:host-context(kirby-item)[slot=start].xs{margin-inline-end:16px}:host(.primary) .avatar{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}:host(.secondary) .avatar{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}:host(.tertiary) .avatar{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}:host(.success) .avatar{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}:host(.warning) .avatar{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}:host(.danger) .avatar{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}:host(.light) .avatar{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}:host(.medium) .avatar{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}:host(.dark) .avatar{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}:host(.white) .avatar{background-color:var(--kirby-white);color:var(--kirby-white-contrast)}:host(.semi-light) .avatar{background-color:var(--kirby-semi-light);color:var(--kirby-semi-light-contrast)}"]
2554
2056
  },] }
2555
2057
  ];
2556
2058
  AvatarComponent.propDecorators = {
@@ -2564,19 +2066,6 @@ AvatarComponent.propDecorators = {
2564
2066
  _cssClass: [{ type: HostBinding, args: ['class',] }]
2565
2067
  };
2566
2068
 
2567
- class BadgeComponent {
2568
- }
2569
- BadgeComponent.decorators = [
2570
- { type: Component, args: [{
2571
- selector: 'kirby-badge',
2572
- template: "<ion-badge color=\"none\">\n <ng-content *ngIf=\"!text\"></ng-content>\n <ng-container *ngIf=\"text\">{{ text }}</ng-container>\n</ion-badge>\n",
2573
- styles: [":root{--kirby-badge-elevation:none;--kirby-badge-position:relative;--kirby-badge-left:0;--kirby-badge-right:0;--kirby-badge-top:0;--kirby-badge-zindex:none}:host{--kirby-badge-background-color:var(--kirby-white);--kirby-badge-color:var(--kirby-white-contrast);--ion-color-base:var(--kirby-badge-background-color);--ion-color-contrast:var(--kirby-badge-color);position:var(--kirby-badge-position);left:var(--kirby-badge-left);right:var(--kirby-badge-right);top:var(--kirby-badge-top);z-index:var(--kirby-badge-zindex);font-size:10px;line-height:1}:host ion-badge{--padding-top:3px;--padding-end:5px;--padding-bottom:3px;--padding-start:5px;box-sizing:border-box;border-radius:8px;min-width:16px;min-height:16px;font-size:inherit;position:relative;box-shadow:var(--kirby-badge-elevation)}:host ::ng-deep kirby-icon{--kirby-icon-font-size:16px;position:absolute;top:0;left:0}:host(.success){--kirby-badge-background-color:var(--kirby-success);--kirby-badge-color:var(--kirby-success-contrast)}:host(.warning){--kirby-badge-background-color:var(--kirby-warning);--kirby-badge-color:var(--kirby-warning-contrast)}:host(.danger){--kirby-badge-background-color:var(--kirby-danger);--kirby-badge-color:var(--kirby-danger-contrast);--kirby-badge-color:var(--kirby-white)}:host(.white){--kirby-badge-background-color:var(--kirby-white);--kirby-badge-color:var(--kirby-white-contrast)}"]
2574
- },] }
2575
- ];
2576
- BadgeComponent.propDecorators = {
2577
- text: [{ type: Input }]
2578
- };
2579
-
2580
2069
  class CardComponent {
2581
2070
  constructor(elementRef, resizeObserverService, renderer) {
2582
2071
  this.elementRef = elementRef;
@@ -3552,6 +3041,8 @@ function deepCopy(obj) {
3552
3041
  return JSON.parse(JSON.stringify(obj));
3553
3042
  }
3554
3043
 
3044
+ // re-export helpers from core, to preserve backwards compatability
3045
+
3555
3046
  const { getThemeColorHexString } = ColorHelper;
3556
3047
  /* The chart.js annotation does not allow for changing the
3557
3048
  defaults it comes with. In order to have sensible defaults
@@ -3598,7 +3089,7 @@ const CHART_INTERACTION_FUNCTIONS_EXTENSIONS = {
3598
3089
  };
3599
3090
 
3600
3091
  const { fontSize: fontSize$2 } = DesignTokenHelper;
3601
- const { getThemeColorHexString: getThemeColorHexString$1 } = ColorHelper;
3092
+ const { getThemeColorHexString: getThemeColorHexString$1, getThemeColorRgbString } = ColorHelper;
3602
3093
  const CHART_TYPES_CONFIG = {
3603
3094
  bar: {
3604
3095
  type: 'bar',
@@ -3672,6 +3163,7 @@ const CHART_TYPES_CONFIG = {
3672
3163
  line: {
3673
3164
  type: 'line',
3674
3165
  options: {
3166
+ backgroundColor: getThemeColorRgbString('semi-light', 0.5),
3675
3167
  scales: {
3676
3168
  x: {
3677
3169
  grid: {
@@ -3782,7 +3274,7 @@ const CHART_GLOBAL_DEFAULTS = {
3782
3274
  const CHART_SCALES = [CategoryScale, LinearScale];
3783
3275
  const CHART_ELEMENTS = [BarElement, LineElement, PointElement];
3784
3276
  const CHART_CONTROLLERS = [BarController, LineController];
3785
- const CHART_PLUGINS = [annotationPlugin];
3277
+ const CHART_PLUGINS = [annotationPlugin, Filler];
3786
3278
  /* Order matters; defaults must be merged after register as
3787
3279
  register modifies the Chart.defaults objects */
3788
3280
  Chart.register(Legend, ...CHART_SCALES, ...CHART_ELEMENTS, ...CHART_CONTROLLERS, ...CHART_PLUGINS);
@@ -7424,6 +6916,7 @@ class PageComponent {
7424
6916
  this.titleAlignment = 'left';
7425
6917
  this.enter = new EventEmitter();
7426
6918
  this.leave = new EventEmitter();
6919
+ this.refresh = new EventEmitter();
7427
6920
  this.pageTitleIntersectionObserverRef = this.pageTitleIntersectionObserver();
7428
6921
  this.urls = [];
7429
6922
  this.ngOnDestroy$ = new Subject();
@@ -7483,6 +6976,11 @@ class PageComponent {
7483
6976
  this.content.scrollToTop(KirbyAnimation.Duration.LONG);
7484
6977
  });
7485
6978
  }
6979
+ delegateRefreshEvent(event) {
6980
+ this.refresh.emit({
6981
+ complete: event.target.complete.bind(event.target),
6982
+ });
6983
+ }
7486
6984
  onEnter() {
7487
6985
  if (this.hasEntered)
7488
6986
  return;
@@ -7583,7 +7081,7 @@ class PageComponent {
7583
7081
  PageComponent.decorators = [
7584
7082
  { type: Component, args: [{
7585
7083
  selector: 'kirby-page',
7586
- template: "<ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button\n text=\"\"\n [defaultHref]=\"defaultBackHref\"\n icon=\"assets/kirby/icons/svg/arrow-back.svg\"\n [style.visibility]=\"hideBackButton ? 'hidden' : null\"\n ></ion-back-button>\n </ion-buttons>\n <ion-title>\n <div class=\"toolbar-title hide\" [class.fade-in]=\"toolbarTitleVisible\">\n <ng-container *ngTemplateOutlet=\"toolbarTitleTemplate\"></ng-container>\n </div>\n </ion-title>\n <ion-buttons\n class=\"hide\"\n slot=\"primary\"\n [class.fade-in]=\"toolbarStickyActionsVisible && stickyActionsTemplate\"\n >\n <ng-container *ngTemplateOutlet=\"stickyActionsTemplate\"></ng-container>\n </ion-buttons>\n <ion-buttons\n class=\"hide\"\n slot=\"secondary\"\n [class.fade-in]=\"toolbarFixedActionsVisible && fixedActionsTemplate\"\n >\n <ng-container *ngTemplateOutlet=\"fixedActionsTemplate\"></ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content scrollEvents=\"true\" forceOverscroll=\"false\">\n <div class=\"content-inner\">\n <div\n class=\"page-title\"\n #pageTitle\n *ngIf=\"hasPageTitle\"\n [class.has-actions]=\"hasActionsInPage\"\n [ngClass]=\"{\n 'text-center': titleAlignment === 'center',\n 'text-right': titleAlignment === 'right'\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"customTitleTemplate || defaultPageTitleTemplate\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"pageActionsTemplate || defaultPageActionsTemplate\"\n ></ng-container>\n </div>\n <!-- Content -->\n <ng-container\n *ngTemplateOutlet=\"customContentTemplate || defaultContentTemplate\"\n ></ng-container>\n </div>\n\n <div slot=\"fixed\" class=\"fixed-content\" *ngIf=\"fixedContentTemplate\">\n <div class=\"content-inner\">\n <ng-container *ngTemplateOutlet=\"fixedContentTemplate\"></ng-container>\n </div>\n </div>\n</ion-content>\n\n<ion-footer>\n <ng-content select=\"kirby-page-footer\"></ng-content>\n</ion-footer>\n\n<ng-template #defaultPageTitleTemplate>\n <h1 [kirbyFitHeading]=\"fitHeadingConfig\">\n <ng-container *ngTemplateOutlet=\"simpleTitleTemplate\"></ng-container>\n </h1>\n</ng-template>\n\n<ng-template #defaultPageActionsTemplate>\n <ng-content select=\"kirby-page-actions\"></ng-content>\n</ng-template>\n\n<ng-template #defaultContentTemplate>\n <ng-content select=\"kirby-page-content\"></ng-content>\n</ng-template>\n\n<ng-template #simpleTitleTemplate>{{ title }}</ng-template>\n<ng-template #simpleToolbarTitleTemplate>{{ toolbarTitle }}</ng-template>\n",
7084
+ template: "<ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button\n text=\"\"\n [defaultHref]=\"defaultBackHref\"\n icon=\"assets/kirby/icons/svg/arrow-back.svg\"\n [style.visibility]=\"hideBackButton ? 'hidden' : null\"\n ></ion-back-button>\n </ion-buttons>\n <ion-title>\n <div class=\"toolbar-title hide\" [class.fade-in]=\"toolbarTitleVisible\">\n <ng-container *ngTemplateOutlet=\"toolbarTitleTemplate\"></ng-container>\n </div>\n </ion-title>\n <ion-buttons\n class=\"hide\"\n slot=\"primary\"\n [class.fade-in]=\"toolbarStickyActionsVisible && stickyActionsTemplate\"\n >\n <ng-container *ngTemplateOutlet=\"stickyActionsTemplate\"></ng-container>\n </ion-buttons>\n <ion-buttons\n class=\"hide\"\n slot=\"secondary\"\n [class.fade-in]=\"toolbarFixedActionsVisible && fixedActionsTemplate\"\n >\n <ng-container *ngTemplateOutlet=\"fixedActionsTemplate\"></ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content scrollEvents=\"true\" forceOverscroll=\"false\">\n <ion-refresher\n *ngIf=\"refresh.observers.length > 0\"\n (ionRefresh)=\"delegateRefreshEvent($event)\"\n slot=\"fixed\"\n >\n <kirby-spinner></kirby-spinner>\n </ion-refresher>\n\n <div class=\"content-inner\">\n <div\n class=\"page-title\"\n #pageTitle\n *ngIf=\"hasPageTitle\"\n [class.has-actions]=\"hasActionsInPage\"\n [ngClass]=\"{\n 'text-center': titleAlignment === 'center',\n 'text-right': titleAlignment === 'right'\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"customTitleTemplate || defaultPageTitleTemplate\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"pageActionsTemplate || defaultPageActionsTemplate\"\n ></ng-container>\n </div>\n <!-- Content -->\n <ng-container\n *ngTemplateOutlet=\"customContentTemplate || defaultContentTemplate\"\n ></ng-container>\n </div>\n\n <div slot=\"fixed\" class=\"fixed-content\" *ngIf=\"fixedContentTemplate\">\n <div class=\"content-inner\">\n <ng-container *ngTemplateOutlet=\"fixedContentTemplate\"></ng-container>\n </div>\n </div>\n</ion-content>\n\n<ion-footer>\n <ng-content select=\"kirby-page-footer\"></ng-content>\n</ion-footer>\n\n<ng-template #defaultPageTitleTemplate>\n <h1 [kirbyFitHeading]=\"fitHeadingConfig\">\n <ng-container *ngTemplateOutlet=\"simpleTitleTemplate\"></ng-container>\n </h1>\n</ng-template>\n\n<ng-template #defaultPageActionsTemplate>\n <ng-content select=\"kirby-page-actions\"></ng-content>\n</ng-template>\n\n<ng-template #defaultContentTemplate>\n <ng-content select=\"kirby-page-content\"></ng-content>\n</ng-template>\n\n<ng-template #simpleTitleTemplate>{{ title }}</ng-template>\n<ng-template #simpleToolbarTitleTemplate>{{ toolbarTitle }}</ng-template>\n",
7587
7085
  changeDetection: ChangeDetectionStrategy.OnPush,
7588
7086
  styles: ["ion-header,ion-toolbar{--background:var(--kirby-background-color);margin:0 auto}@media (min-width:1025px) and (hover:hover) and (pointer:fine){ion-header,ion-toolbar{max-width:768px}}ion-toolbar{--border-width:0!important;--padding-start:4px;--padding-end:4px;--padding-top:0;--padding-bottom:0}ion-toolbar ion-buttons[slot=secondary]{order:6}ion-toolbar ion-title .toolbar-title{text-overflow:ellipsis;white-space:nowrap;pointer-events:auto;overflow:hidden}ion-toolbar ion-title .toolbar-title ::ng-deep>*{text-overflow:ellipsis;white-space:nowrap;pointer-events:auto;overflow:hidden}.hide{visibility:hidden;opacity:0;transition:opacity .1s linear}.hide.fade-in{visibility:inherit;opacity:1}ion-title{box-sizing:border-box;font-size:16px;font-weight:400}ion-back-button{--color:var(--kirby-black);--icon-font-size:24px;height:44px;width:44px}.page-title{margin-left:16px;margin-top:8px;margin-bottom:var(--kirby-page-title-margin-bottom,40px)}.page-title.has-actions{display:flex;justify-content:space-between;align-items:flex-start}.page-title.text-center{text-align:center;margin-left:0}.page-title.text-right{text-align:right}.page-title h1,.page-title h2,.page-title h3,.page-title h4,.page-title h5,.page-title h6{margin:0}ion-content{--padding-start:var(--page-content-padding-start,16px);--padding-end:var(--page-content-padding-end,16px);--background:var(--kirby-background-color)}ion-content .content-inner{max-width:var(--page-content-max-width,720px);margin:0 auto;padding-bottom:40px}ion-content .fixed-content{width:100%;position:absolute;bottom:0}ion-content .fixed-content .content-inner{position:relative}"]
7589
7087
  },] }
@@ -7608,6 +7106,7 @@ PageComponent.propDecorators = {
7608
7106
  tabBarBottomHidden: [{ type: Input }],
7609
7107
  enter: [{ type: Output }],
7610
7108
  leave: [{ type: Output }],
7109
+ refresh: [{ type: Output }],
7611
7110
  content: [{ type: ViewChild, args: [IonContent, { static: true },] }],
7612
7111
  ionContentElement: [{ type: ViewChild, args: [IonContent, { static: true, read: ElementRef },] }],
7613
7112
  ionHeaderElement: [{ type: ViewChild, args: [IonHeader, { static: true, read: ElementRef },] }],
@@ -7793,6 +7292,17 @@ FitHeadingModule.decorators = [
7793
7292
  },] }
7794
7293
  ];
7795
7294
 
7295
+ class SpinnerModule {
7296
+ }
7297
+ SpinnerModule.decorators = [
7298
+ { type: NgModule, args: [{
7299
+ declarations: [SpinnerComponent],
7300
+ imports: [CommonModule],
7301
+ exports: [SpinnerComponent],
7302
+ providers: [],
7303
+ },] }
7304
+ ];
7305
+
7796
7306
  class PageModule {
7797
7307
  }
7798
7308
  PageModule.decorators = [
@@ -7809,7 +7319,7 @@ PageModule.decorators = [
7809
7319
  PageTitleDirective,
7810
7320
  PageToolbarTitleDirective,
7811
7321
  ],
7812
- imports: [CommonModule, IonicModule, FitHeadingModule],
7322
+ imports: [CommonModule, IonicModule, FitHeadingModule, SpinnerModule],
7813
7323
  exports: [
7814
7324
  PageComponent,
7815
7325
  PageActionsComponent,
@@ -7939,10 +7449,10 @@ class SegmentedControlComponent {
7939
7449
  SegmentedControlComponent.decorators = [
7940
7450
  { type: Component, args: [{
7941
7451
  selector: 'kirby-segmented-control',
7942
- template: "<ion-segment\n *ngIf=\"mode === 'default'\"\n [value]=\"value?.id\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventWrapperClick($event)\"\n>\n <div *ngFor=\"let item of items\" class=\"segment-btn-wrapper\">\n <ion-segment-button [value]=\"item.id\">{{ item.text }}</ion-segment-button>\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >{{ item.badge.content }}</kirby-badge\n >\n </div>\n</ion-segment>\n\n<ng-container *ngIf=\"mode === 'chip' || mode === 'compactChip'\">\n <kirby-chip\n *ngFor=\"let item of items; let index = index\"\n [text]=\"item.text\"\n [isSelected]=\"index === selectedIndex\"\n (click)=\"onSegmentSelect(item.id)\"\n role=\"button\"\n ></kirby-chip>\n</ng-container>\n",
7452
+ template: "<ion-segment\n *ngIf=\"mode === 'default'\"\n [value]=\"value?.id\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventWrapperClick($event)\"\n>\n <div *ngFor=\"let item of items\" class=\"segment-btn-wrapper\">\n <ion-segment-button [value]=\"item.id\">{{ item.text }}</ion-segment-button>\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <kirby-icon\n *ngIf=\"item.badge.icon; else badgeContent\"\n [customName]=\"item.badge.icon\"\n [name]=\"item.badge.icon\"\n ></kirby-icon>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </div>\n</ion-segment>\n\n<ng-container *ngIf=\"mode === 'chip' || mode === 'compactChip'\">\n <kirby-chip\n *ngFor=\"let item of items; let index = index\"\n [text]=\"item.text\"\n [isSelected]=\"index === selectedIndex\"\n (click)=\"onSegmentSelect(item.id)\"\n role=\"button\"\n ></kirby-chip>\n</ng-container>\n",
7943
7453
  // tslint:disable-next-line: no-host-metadata-property
7944
7454
  host: { role: 'group' },
7945
- styles: [":host{display:block;-webkit-user-select:none;user-select:none}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start:16px;--padding-end:16px}:host.chip-mode{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}@media (pointer:coarse){:host.chip-mode{scrollbar-width:none}:host.chip-mode::-webkit-scrollbar{display:none}}ion-segment{display:inline-flex;width:auto;overflow:visible;contain:unset;--background:var(--kirby-white);border-radius:999px}ion-segment-button{position:relative;min-height:40px;font-weight:400;font-size:14px;text-transform:none;--border-radius:999px;--border-style:none;--background:none;--color:var(--kirby-white-contrast);--indicator-color:var(--kirby-black);--color-checked:var(--kirby-black-contrast);--color-hover:var(--kirby-black-tint);--indicator-box-shadow:none;--padding-start:24px;--padding-end:24px;--margin-bottom:0;--margin-end:0;--margin-start:0;--margin-top:0;margin:0}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}.segment-btn-wrapper{position:relative}kirby-badge{--kirby-badge-elevation:0 5px 10px -10px rgba(28,28,28,0.3),0 0 5px 0 rgba(28,28,28,0.08);position:absolute;top:-8px;right:8px;z-index:2}:host-context(.plt-desktop) ion-segment-button:focus-within{outline-color:-webkit-focus-ring-color;outline-style:auto}"]
7455
+ styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-elevation:0 5px 10px -10px rgba(28,28,28,0.3),0 0 5px 0 rgba(28,28,28,0.08);--kirby-badge-position:absolute;--kirby-badge-top:-8px;--kirby-badge-right:8px;--kirby-badge-z-index:2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start:16px;--padding-end:16px}:host.chip-mode{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}@media (pointer:coarse){:host.chip-mode{scrollbar-width:none}:host.chip-mode::-webkit-scrollbar{display:none}}ion-segment{display:inline-flex;width:auto;overflow:visible;contain:unset;--background:var(--kirby-white);border-radius:999px}ion-segment-button{position:relative;min-height:40px;font-weight:400;font-size:14px;text-transform:none;--border-radius:999px;--border-style:none;--background:none;--color:var(--kirby-white-contrast);--indicator-color:var(--kirby-black);--color-checked:var(--kirby-black-contrast);--color-hover:var(--kirby-black-tint);--indicator-box-shadow:none;--padding-start:24px;--padding-end:24px;--margin-bottom:0;--margin-end:0;--margin-start:0;--margin-top:0;margin:0}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}.segment-btn-wrapper{position:relative}:host-context(.plt-desktop) ion-segment-button:focus-within{outline-color:-webkit-focus-ring-color;outline-style:auto}"]
7946
7456
  },] }
7947
7457
  ];
7948
7458
  SegmentedControlComponent.propDecorators = {
@@ -8579,7 +8089,6 @@ ThemeColorDirective.decorators = [
8579
8089
  // tslint:disable-next-line:directive-selector
8580
8090
  selector: `kirby-avatar[themeColor],
8581
8091
  kirby-card[themeColor],
8582
- kirby-badge[themeColor],
8583
8092
  kirby-icon[themeColor],
8584
8093
  kirby-progress-circle-ring[themeColor],
8585
8094
  kirby-modal-footer[themeColor],
@@ -8604,6 +8113,82 @@ ThemeColorDirective.propDecorators = {
8604
8113
  themeColor: [{ type: Input }]
8605
8114
  };
8606
8115
 
8116
+ const proxyInputs = (Cmp, inputs) => {
8117
+ const Prototype = Cmp.prototype;
8118
+ inputs.forEach((item) => {
8119
+ Object.defineProperty(Prototype, item, {
8120
+ get() {
8121
+ return this.el[item];
8122
+ },
8123
+ set(val) {
8124
+ this.z.runOutsideAngular(() => (this.el[item] = val));
8125
+ },
8126
+ });
8127
+ });
8128
+ };
8129
+ const proxyMethods = (Cmp, methods) => {
8130
+ const Prototype = Cmp.prototype;
8131
+ methods.forEach((methodName) => {
8132
+ Prototype[methodName] = function () {
8133
+ const args = arguments;
8134
+ return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));
8135
+ };
8136
+ });
8137
+ };
8138
+ const proxyOutputs = (instance, el, events) => {
8139
+ events.forEach((eventName) => (instance[eventName] = fromEvent(el, eventName)));
8140
+ };
8141
+ // tslint:disable-next-line: only-arrow-functions
8142
+ function ProxyCmp(opts) {
8143
+ const decorator = function (cls) {
8144
+ if (opts.inputs) {
8145
+ proxyInputs(cls, opts.inputs);
8146
+ }
8147
+ if (opts.methods) {
8148
+ proxyMethods(cls, opts.methods);
8149
+ }
8150
+ return cls;
8151
+ };
8152
+ return decorator;
8153
+ }
8154
+
8155
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8156
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8157
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8158
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8159
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
8160
+ };
8161
+ var __metadata = (this && this.__metadata) || function (k, v) {
8162
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
8163
+ };
8164
+ let KirbyBadge = class KirbyBadge {
8165
+ constructor(c, r, z) {
8166
+ this.z = z;
8167
+ c.detach();
8168
+ this.el = r.nativeElement;
8169
+ }
8170
+ };
8171
+ KirbyBadge.decorators = [
8172
+ { type: Component, args: [{
8173
+ selector: 'kirby-badge',
8174
+ changeDetection: ChangeDetectionStrategy.OnPush,
8175
+ template: '<ng-content></ng-content>',
8176
+ inputs: ['size', 'text', 'themeColor']
8177
+ },] }
8178
+ ];
8179
+ /** @nocollapse */
8180
+ KirbyBadge.ctorParameters = () => [
8181
+ { type: ChangeDetectorRef },
8182
+ { type: ElementRef },
8183
+ { type: NgZone }
8184
+ ];
8185
+ KirbyBadge = __decorate([
8186
+ ProxyCmp({
8187
+ inputs: ['size', 'text', 'themeColor']
8188
+ }),
8189
+ __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
8190
+ ], KirbyBadge);
8191
+
8607
8192
  class ChartModule {
8608
8193
  }
8609
8194
  ChartModule.decorators = [
@@ -8614,17 +8199,6 @@ ChartModule.decorators = [
8614
8199
  },] }
8615
8200
  ];
8616
8201
 
8617
- class SpinnerModule {
8618
- }
8619
- SpinnerModule.decorators = [
8620
- { type: NgModule, args: [{
8621
- declarations: [SpinnerComponent],
8622
- imports: [CommonModule],
8623
- exports: [SpinnerComponent],
8624
- providers: [],
8625
- },] }
8626
- ];
8627
-
8628
8202
  const exportedDeclarations = [
8629
8203
  ListComponent,
8630
8204
  ListItemComponent,
@@ -8709,6 +8283,20 @@ ToggleButtonModule.decorators = [
8709
8283
  },] }
8710
8284
  ];
8711
8285
 
8286
+ const appInitialize = (doc) => {
8287
+ return () => {
8288
+ defineCustomElements(doc.defaultView);
8289
+ };
8290
+ };
8291
+ function customElementsInitializer() {
8292
+ return {
8293
+ provide: APP_INITIALIZER,
8294
+ useFactory: appInitialize,
8295
+ deps: [DOCUMENT],
8296
+ multi: true,
8297
+ };
8298
+ }
8299
+
8712
8300
  class ModalRouterLinkDirective {
8713
8301
  constructor(modalNavigationService) {
8714
8302
  this.modalNavigationService = modalNavigationService;
@@ -8751,7 +8339,7 @@ const exportedDeclarations$1 = [
8751
8339
  ModalRouterLinkDirective,
8752
8340
  SegmentedControlComponent,
8753
8341
  ChipComponent,
8754
- BadgeComponent,
8342
+ KirbyBadge,
8755
8343
  ThemeColorDirective,
8756
8344
  DateInputDirective,
8757
8345
  DecimalMaskDirective,
@@ -8812,6 +8400,7 @@ const providers = [
8812
8400
  LoadingOverlayService,
8813
8401
  ResizeObserverFactory,
8814
8402
  ResizeObserverService,
8403
+ customElementsInitializer(),
8815
8404
  ];
8816
8405
  const entryComponents = [
8817
8406
  ModalWrapperComponent,
@@ -8866,5 +8455,5 @@ KirbyModule.ctorParameters = () => [
8866
8455
  * Generated bundle index. Do not edit.
8867
8456
  */
8868
8457
 
8869
- export { AccordionDirective, AccordionItemComponent, ActionSheetComponent, AppComponent, AppModule, AvatarComponent, AvatarSize, BadgeComponent, ButtonComponent, ButtonSize, COMPONENT_PROPS, CalendarComponent, CardComponent, CardFooterComponent, CardHeaderComponent, ChartComponent, ChartDeprecatedComponent, ChartDeprecatedType, CheckboxComponent, ChipComponent, ColorHelper, ComponentLoaderDirective, DateInputDirective, DecimalMaskDirective, DesignTokenHelper, DividerComponent, DropdownComponent, EmptyStateComponent, FabSheetComponent, FitHeadingDirective, FitHeadingModule, FlagComponent, FormFieldComponent, FormFieldMessageComponent, GridCardConfiguration, GridComponent, GroupByPipe, HorizontalDirection, ICON_SETTINGS, IconComponent, IconModule, IconRegistryService, IconSize, InfiniteScrollDirective, InputComponent, InputCounterComponent, InputSize, ItemComponent, ItemModule, ItemSize, KeyHandlerDirective, KirbyAnimation, KirbyModule, LabelComponent, ListComponent, ListFlexItemDirective, ListFooterDirective, ListHeaderComponent, ListHeaderDirective, ListItemColorDirective, ListItemComponent, ListItemDirective, ListItemTemplateDirective, ListSectionHeaderComponent, ListSectionHeaderDirective, LoadingOverlayComponent, LoadingOverlayService, Modal, ModalController, ModalFooterComponent, PageActionsComponent, PageActionsDirective, PageComponent, PageContentComponent, PageContentDirective, PageFooterComponent, PageModule, PageProgressComponent, PageTitleComponent, PageTitleDirective, PageToolbarTitleDirective, PlatformService, PopoverComponent, ProgressCircleComponent, RadioComponent, RadioGroupComponent, RangeComponent, ReorderEvent, ReorderListComponent, ResizeObserverFactory, ResizeObserverService, RouterOutletComponent, RouterOutletModule, ScssHelper, SegmentedControlComponent, SegmentedControlMode, SlideButtonComponent, SlideDirective, SlidesComponent, SpinnerComponent, StockChartDeprecatedComponent, TabButtonComponent, TabsComponent, TabsModule, TabsService, TextareaComponent, ThemeColorDirective, ToastController, ToggleButtonComponent, ToggleComponent, annotations, camelToKebabCase, capitalizeFirstLetter, defaultIcons, isNumberArray, kebabToCamelCase, kebabToTitleCase, selectedTabClickEvent, stockChartDeprecatedOptions, ɵ0$6 as ɵ0, AppModule as ɵa, AppComponent as ɵb, Modal as ɵba, ButtonComponent as ɵbb, IconComponent as ɵbc, IconRegistryService as ɵbd, ICON_SETTINGS as ɵbf, ResizeObserverService as ɵbg, ResizeObserverFactory as ɵbh, FitHeadingModule as ɵbi, FitHeadingDirective as ɵbj, LineClampHelper as ɵbk, TabsModule as ɵbl, IconModule as ɵbm, TabButtonComponent as ɵbn, ItemModule as ɵbo, ItemComponent as ɵbp, LabelComponent as ɵbq, ToggleButtonModule as ɵbr, ToggleButtonComponent as ɵbs, ListModule as ɵbt, ListComponent as ɵbu, ListHelper as ɵbv, GroupByPipe as ɵbw, InfiniteScrollDirective as ɵbx, ListItemDirective as ɵby, ListFlexItemDirective as ɵbz, RouterOutletComponent as ɵc, ListItemTemplateDirective as ɵca, ListHeaderDirective as ɵcb, ListSectionHeaderDirective as ɵcc, ListFooterDirective as ɵcd, ListItemComponent as ɵce, ListSectionHeaderComponent as ɵcf, ListHeaderComponent as ɵcg, ListItemColorDirective as ɵch, SpinnerModule as ɵci, SpinnerComponent as ɵcj, ChartModule as ɵck, ChartComponent as ɵcl, ChartJSService as ɵcm, ChartConfigService as ɵcn, CardComponent as ɵco, CardHeaderComponent as ɵcp, CardFooterComponent as ɵcq, ChartDeprecatedComponent as ɵcr, ChartDeprecatedHelper as ɵcs, DONUT_OPTIONS as ɵct, DonutOptions as ɵcu, AREASPLINE_OPTIONS as ɵcv, AreaSplineOptions as ɵcw, TIMESERIES_OPTIONS as ɵcx, TimeSeriesOptions as ɵcy, ACTIVITYGAUGE_OPTIONS as ɵcz, ModalController as ɵd, ActivityGaugeOptions as ɵda, StockChartDeprecatedComponent as ɵdb, GridComponent as ɵdc, BreakpointHelperService as ɵdd, ComponentLoaderDirective as ɵde, AvatarComponent as ɵdf, CalendarComponent as ɵdg, CalendarHelper as ɵdh, CheckboxComponent as ɵdi, ActionSheetComponent as ɵdj, ModalFooterComponent as ɵdk, ModalRouterLinkDirective as ɵdl, SegmentedControlComponent as ɵdm, ChipComponent as ɵdn, BadgeComponent as ɵdo, ThemeColorDirective as ɵdp, DateInputDirective as ɵdq, DecimalMaskDirective as ɵdr, SlideButtonComponent as ɵds, ToggleComponent as ɵdt, EmptyStateComponent as ɵdu, FormFieldComponent as ɵdv, InputCounterComponent as ɵdw, RadioGroupComponent as ɵdx, RadioComponent as ɵdy, InputComponent as ɵdz, ModalHelper as ɵe, TextareaComponent as ɵea, FabSheetComponent as ɵeb, DividerComponent as ɵec, ReorderListComponent as ɵed, DropdownComponent as ɵee, PopoverComponent as ɵef, KeyboardHandlerService as ɵeg, LoadingOverlayComponent as ɵeh, ProgressCircleComponent as ɵei, FlagComponent as ɵej, SlideDirective as ɵek, SlidesComponent as ɵel, AccordionDirective as ɵem, AccordionItemComponent as ɵen, RangeComponent as ɵeo, KeyHandlerDirective as ɵep, FormFieldMessageComponent as ɵeq, AlertComponent as ɵer, ModalCompactWrapperComponent as ɵes, ProgressCircleRingComponent as ɵet, ToastHelper as ɵeu, ToastController as ɵev, LoadingOverlayService as ɵew, ModalAnimationBuilderService as ɵf, PlatformService as ɵg, WindowRef as ɵh, ActionSheetHelper as ɵi, AlertHelper as ɵj, ModalNavigationService as ɵk, RouterOutletModule as ɵl, PageModule as ɵm, PageTitleDirective as ɵn, PageToolbarTitleDirective as ɵo, PageActionsDirective as ɵp, PageContentDirective as ɵq, PageProgressComponent as ɵr, PageTitleComponent as ɵs, PageContentComponent as ɵt, PageActionsComponent as ɵu, PageComponent as ɵv, TabsComponent as ɵw, TabsService as ɵx, PageFooterComponent as ɵy, ModalWrapperComponent as ɵz };
8458
+ export { AccordionDirective, AccordionItemComponent, ActionSheetComponent, AppComponent, AppModule, AvatarComponent, AvatarSize, KirbyBadge as BadgeComponent, ButtonComponent, ButtonSize, COMPONENT_PROPS, CalendarComponent, CardComponent, CardFooterComponent, CardHeaderComponent, ChartComponent, ChartDeprecatedComponent, ChartDeprecatedType, CheckboxComponent, ChipComponent, ComponentLoaderDirective, DateInputDirective, DecimalMaskDirective, DividerComponent, DropdownComponent, EmptyStateComponent, FabSheetComponent, FitHeadingDirective, FitHeadingModule, FlagComponent, FormFieldComponent, FormFieldMessageComponent, GridCardConfiguration, GridComponent, GroupByPipe, HorizontalDirection, ICON_SETTINGS, IconComponent, IconModule, IconRegistryService, IconSize, InfiniteScrollDirective, InputComponent, InputCounterComponent, InputSize, ItemComponent, ItemModule, ItemSize, KeyHandlerDirective, KirbyAnimation, KirbyModule, LabelComponent, ListComponent, ListFlexItemDirective, ListFooterDirective, ListHeaderComponent, ListHeaderDirective, ListItemColorDirective, ListItemComponent, ListItemDirective, ListItemTemplateDirective, ListSectionHeaderComponent, ListSectionHeaderDirective, LoadingOverlayComponent, LoadingOverlayService, Modal, ModalController, ModalFooterComponent, PageActionsComponent, PageActionsDirective, PageComponent, PageContentComponent, PageContentDirective, PageFooterComponent, PageModule, PageProgressComponent, PageTitleComponent, PageTitleDirective, PageToolbarTitleDirective, PlatformService, PopoverComponent, ProgressCircleComponent, RadioComponent, RadioGroupComponent, RangeComponent, ReorderEvent, ReorderListComponent, ResizeObserverFactory, ResizeObserverService, RouterOutletComponent, RouterOutletModule, ScssHelper, SegmentedControlComponent, SegmentedControlMode, SlideButtonComponent, SlideDirective, SlidesComponent, SpinnerComponent, StockChartDeprecatedComponent, TabButtonComponent, TabsComponent, TabsModule, TabsService, TextareaComponent, ThemeColorDirective, ToastController, ToggleButtonComponent, ToggleComponent, annotations, defaultIcons, isNumberArray, selectedTabClickEvent, stockChartDeprecatedOptions, ɵ0$6 as ɵ0, ProxyCmp as ɵa, AppModule as ɵb, ModalWrapperComponent as ɵba, Modal as ɵbb, ButtonComponent as ɵbc, IconComponent as ɵbd, IconRegistryService as ɵbe, ICON_SETTINGS as ɵbg, ResizeObserverService as ɵbh, ResizeObserverFactory as ɵbi, FitHeadingModule as ɵbj, FitHeadingDirective as ɵbk, LineClampHelper as ɵbl, SpinnerModule as ɵbm, SpinnerComponent as ɵbn, TabsModule as ɵbo, IconModule as ɵbp, TabButtonComponent as ɵbq, ItemModule as ɵbr, ItemComponent as ɵbs, LabelComponent as ɵbt, ToggleButtonModule as ɵbu, ToggleButtonComponent as ɵbv, ListModule as ɵbw, ListComponent as ɵbx, ListHelper as ɵby, GroupByPipe as ɵbz, AppComponent as ɵc, InfiniteScrollDirective as ɵca, ListItemDirective as ɵcb, ListFlexItemDirective as ɵcc, ListItemTemplateDirective as ɵcd, ListHeaderDirective as ɵce, ListSectionHeaderDirective as ɵcf, ListFooterDirective as ɵcg, ListItemComponent as ɵch, ListSectionHeaderComponent as ɵci, ListHeaderComponent as ɵcj, ListItemColorDirective as ɵck, ChartModule as ɵcl, ChartComponent as ɵcm, ChartJSService as ɵcn, ChartConfigService as ɵco, CardComponent as ɵcp, CardHeaderComponent as ɵcq, CardFooterComponent as ɵcr, ChartDeprecatedComponent as ɵcs, ChartDeprecatedHelper as ɵct, DONUT_OPTIONS as ɵcu, DonutOptions as ɵcv, AREASPLINE_OPTIONS as ɵcw, AreaSplineOptions as ɵcx, TIMESERIES_OPTIONS as ɵcy, TimeSeriesOptions as ɵcz, RouterOutletComponent as ɵd, ACTIVITYGAUGE_OPTIONS as ɵda, ActivityGaugeOptions as ɵdb, StockChartDeprecatedComponent as ɵdc, GridComponent as ɵdd, BreakpointHelperService as ɵde, ComponentLoaderDirective as ɵdf, AvatarComponent as ɵdg, CalendarComponent as ɵdh, CalendarHelper as ɵdi, CheckboxComponent as ɵdj, ActionSheetComponent as ɵdk, ModalFooterComponent as ɵdl, ModalRouterLinkDirective as ɵdm, SegmentedControlComponent as ɵdn, ChipComponent as ɵdo, ThemeColorDirective as ɵdp, DateInputDirective as ɵdq, DecimalMaskDirective as ɵdr, SlideButtonComponent as ɵds, ToggleComponent as ɵdt, EmptyStateComponent as ɵdu, FormFieldComponent as ɵdv, InputCounterComponent as ɵdw, RadioGroupComponent as ɵdx, RadioComponent as ɵdy, InputComponent as ɵdz, ModalController as ɵe, TextareaComponent as ɵea, FabSheetComponent as ɵeb, DividerComponent as ɵec, ReorderListComponent as ɵed, DropdownComponent as ɵee, PopoverComponent as ɵef, KeyboardHandlerService as ɵeg, LoadingOverlayComponent as ɵeh, ProgressCircleComponent as ɵei, FlagComponent as ɵej, SlideDirective as ɵek, SlidesComponent as ɵel, AccordionDirective as ɵem, AccordionItemComponent as ɵen, RangeComponent as ɵeo, KeyHandlerDirective as ɵep, FormFieldMessageComponent as ɵeq, AlertComponent as ɵer, ModalCompactWrapperComponent as ɵes, ProgressCircleRingComponent as ɵet, ToastHelper as ɵeu, ToastController as ɵev, LoadingOverlayService as ɵew, appInitialize as ɵex, customElementsInitializer as ɵey, ModalHelper as ɵf, ModalAnimationBuilderService as ɵg, PlatformService as ɵh, WindowRef as ɵi, ActionSheetHelper as ɵj, AlertHelper as ɵk, ModalNavigationService as ɵl, RouterOutletModule as ɵm, PageModule as ɵn, PageTitleDirective as ɵo, PageToolbarTitleDirective as ɵp, PageActionsDirective as ɵq, PageContentDirective as ɵr, PageProgressComponent as ɵs, PageTitleComponent as ɵt, PageContentComponent as ɵu, PageActionsComponent as ɵv, PageComponent as ɵw, TabsComponent as ɵx, TabsService as ɵy, PageFooterComponent as ɵz };
8870
8459
  //# sourceMappingURL=kirbydesign-designsystem.js.map