@kirbydesign/designsystem 11.11.0-dev-1d9b4cd → 11.11.0-dev-9d936c8

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 (103) hide show
  1. package/fesm2022/kirbydesign-designsystem-accordion.mjs +2 -2
  2. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  3. package/fesm2022/kirbydesign-designsystem-avatar.mjs +10 -2
  4. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  5. package/fesm2022/kirbydesign-designsystem-badge.mjs +3 -3
  6. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  7. package/fesm2022/kirbydesign-designsystem-button.mjs +3 -4
  8. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  9. package/fesm2022/kirbydesign-designsystem-calendar.mjs +2 -2
  10. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  11. package/fesm2022/kirbydesign-designsystem-card.mjs +40 -8
  12. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  13. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +3 -3
  14. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  15. package/fesm2022/kirbydesign-designsystem-config.mjs +1 -1
  16. package/fesm2022/kirbydesign-designsystem-config.mjs.map +1 -1
  17. package/fesm2022/kirbydesign-designsystem-divider.mjs +2 -2
  18. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  19. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +2 -2
  20. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  21. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +2 -2
  22. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  23. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +2 -2
  24. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  25. package/fesm2022/kirbydesign-designsystem-flag.mjs +2 -2
  26. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  27. package/fesm2022/kirbydesign-designsystem-form-field.mjs +8 -8
  28. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  29. package/fesm2022/kirbydesign-designsystem-gesture.mjs +1 -1
  30. package/fesm2022/kirbydesign-designsystem-gesture.mjs.map +1 -1
  31. package/fesm2022/kirbydesign-designsystem-header.mjs +2 -2
  32. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  33. package/fesm2022/kirbydesign-designsystem-icon.mjs +3 -3
  34. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  35. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
  36. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  37. package/fesm2022/kirbydesign-designsystem-item.mjs +5 -5
  38. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  39. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +1 -1
  40. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  41. package/fesm2022/kirbydesign-designsystem-list.mjs +12 -5
  42. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  43. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +3 -3
  44. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  45. package/fesm2022/kirbydesign-designsystem-modal.mjs +10 -10
  46. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  47. package/fesm2022/kirbydesign-designsystem-page.mjs +8 -8
  48. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  49. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +2 -2
  50. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  51. package/fesm2022/kirbydesign-designsystem-radio.mjs +3 -3
  52. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  53. package/fesm2022/kirbydesign-designsystem-range.mjs +3 -3
  54. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  55. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +3 -3
  56. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  57. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +4 -4
  58. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  59. package/fesm2022/kirbydesign-designsystem-section-header.mjs +3 -3
  60. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  61. package/fesm2022/kirbydesign-designsystem-segmented-control.mjs +3 -3
  62. package/fesm2022/kirbydesign-designsystem-segmented-control.mjs.map +1 -1
  63. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +2 -2
  64. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  65. package/fesm2022/kirbydesign-designsystem-slide.mjs +2 -2
  66. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  67. package/fesm2022/kirbydesign-designsystem-spinner.mjs +2 -2
  68. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  69. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +4 -4
  70. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  71. package/fesm2022/kirbydesign-designsystem-tabs.mjs +6 -6
  72. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  73. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +2 -2
  74. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  75. package/fesm2022/kirbydesign-designsystem-testing.mjs +1 -1
  76. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  77. package/fesm2022/kirbydesign-designsystem-toast.mjs +1 -1
  78. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  79. package/fesm2022/kirbydesign-designsystem-toggle.mjs +3 -3
  80. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  81. package/package.json +3 -3
  82. package/types/kirbydesign-designsystem-avatar.d.ts +5 -1
  83. package/types/kirbydesign-designsystem-avatar.d.ts.map +1 -1
  84. package/types/kirbydesign-designsystem-button.d.ts.map +1 -1
  85. package/types/kirbydesign-designsystem-card.d.ts +12 -2
  86. package/types/kirbydesign-designsystem-card.d.ts.map +1 -1
  87. package/types/kirbydesign-designsystem-fab-sheet.d.ts +1 -1
  88. package/types/kirbydesign-designsystem-icon.d.ts +1 -1
  89. package/types/kirbydesign-designsystem-item-sliding.d.ts +1 -1
  90. package/types/kirbydesign-designsystem-item.d.ts +1 -1
  91. package/types/kirbydesign-designsystem-kirby-app.d.ts +1 -1
  92. package/types/kirbydesign-designsystem-list.d.ts +7 -2
  93. package/types/kirbydesign-designsystem-list.d.ts.map +1 -1
  94. package/types/kirbydesign-designsystem-loading-overlay.d.ts +1 -1
  95. package/types/kirbydesign-designsystem-modal.d.ts +1 -1
  96. package/types/kirbydesign-designsystem-page.d.ts +2 -2
  97. package/types/kirbydesign-designsystem-page.d.ts.map +1 -1
  98. package/types/kirbydesign-designsystem-radio.d.ts +1 -1
  99. package/types/kirbydesign-designsystem-router-outlet.d.ts +2 -2
  100. package/types/kirbydesign-designsystem-tabs.d.ts +3 -3
  101. package/types/kirbydesign-designsystem-testing-base.d.ts +3 -3
  102. package/types/kirbydesign-designsystem-testing-base.d.ts.map +1 -1
  103. package/types/kirbydesign-designsystem-toast.d.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import { ColorHelper } from '@kirbydesign/core';
2
2
  import * as i0 from '@angular/core';
3
3
  import { NgModule } from '@angular/core';
4
- import { provideIonicAngular } from '@ionic/angular';
4
+ import { provideIonicAngular } from '@ionic/angular/standalone';
5
5
  import { componentOnReady } from '@ionic/core';
6
6
 
7
7
  class IonicTestingModule {
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-testing.mjs","sources":["../../testing/src/test-helper.ts","../../testing/src/element-css-custom-matchers.ts","../../testing/src/kirbydesign-designsystem-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { provideIonicAngular } from '@ionic/angular';\nimport { componentOnReady } from '@ionic/core';\n\n@NgModule({\n providers: [provideIonicAngular({ mode: 'ios', _testing: true })],\n})\nclass IonicTestingModule {}\n\nexport class TestHelper {\n public static readonly _init = TestHelper.muteIonicReInitializeWarning();\n\n public static disableAnimationsInTest() {\n //@ts-ignore\n window.Ionic = {\n config: {\n _testing: true,\n },\n };\n }\n\n public static muteIonicReInitializeWarning() {\n const originalWarn = console.warn;\n const patchedWarn = (warning: any, ...optionalParams: any[]) => {\n const suppress = `Ionic Angular was already initialized. Make sure IonicModule.forRoot() is just called once.`;\n if (warning !== suppress) originalWarn(warning, ...optionalParams);\n };\n console.warn = patchedWarn;\n }\n\n public static ionicModuleForTest = IonicTestingModule;\n\n /*\n * Checks for the Web Component(s) being ready,\n * ie. the component is hydrated, styles have been applied\n * and the Shadow DOM is ready for query\n */\n public static async whenReady(\n elementOrNodeList: Element | NodeListOf<Element> | Element[]\n ): Promise<void> {\n if (elementOrNodeList === undefined || elementOrNodeList === null)\n return Promise.reject('TestHelper.whenReady: Element is null or undefined');\n if (elementOrNodeList instanceof Element) {\n await TestHelper.whenDefined(elementOrNodeList);\n await TestHelper.ionComponentOnReady(elementOrNodeList);\n } else {\n await Promise.all(\n Array.from(elementOrNodeList).map(async (element) => await TestHelper.whenReady(element))\n );\n }\n }\n\n /* Checks for the Web Component being defined, ie. the public methods are available */\n public static async whenDefined(element: Element): Promise<void> {\n await customElements.whenDefined(element.localName);\n }\n\n /* Checks for the Ionic Web Component being ready, ie. the component is hydrated and styles applied */\n public static async ionComponentOnReady(element: Element): Promise<void> {\n await new Promise<void>((resolve) => {\n componentOnReady(element, () => resolve());\n });\n }\n\n public static async whenTrue(\n pollFunc: () => boolean,\n timeoutInMs: number = 2000,\n pollIntervalInMs: number = 5\n ): Promise<void> {\n if (pollFunc() === true) return Promise.resolve();\n return new Promise<void>((resolve, reject) => {\n let timeoutId, intervalId;\n const pollState = () => {\n const result = pollFunc();\n if (result === true) {\n clearTimeout(timeoutId);\n clearInterval(intervalId);\n resolve();\n }\n };\n timeoutId = setTimeout(() => {\n clearInterval(intervalId);\n reject(\n `Error: Timeout - TestHelper.whenTrue function did not complete within ${timeoutInMs}ms`\n );\n }, timeoutInMs);\n intervalId = setInterval(pollState, pollIntervalInMs);\n });\n }\n\n public static getCssProperty(element: Element, propertyName: string, pseudoElt?: string) {\n return window.getComputedStyle(element, pseudoElt).getPropertyValue(propertyName).trim();\n }\n\n public static screensize = {\n phonesmall: { width: '320px', height: '568px' },\n phone: { width: '375px', height: '667px' },\n phablet: { width: '575px', height: '767px' },\n 'phablet-landscape': { width: '767px', height: '575px' },\n tablet: { width: '768px', height: '1024px' },\n desktop: { width: '1200px', height: '900px' },\n };\n\n public static resizeTestWindow(size: { width?: string; height?: string }): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n reject();\n } else {\n const query = [];\n if (size.width) {\n query.push(`(max-width: ${size.width})`);\n }\n if (size.height) {\n query.push(`(max-height: ${size.height})`);\n }\n console.log(`Set test window size to: ${JSON.stringify(size)}`);\n (window.frameElement as HTMLIFrameElement).style.width = size.width;\n (window.frameElement as HTMLIFrameElement).style.height = size.height;\n const mediaQuery = window.matchMedia(query.join(' and '));\n if (mediaQuery.matches) {\n resolve();\n } else {\n // Ensure window has resized before executing:\n mediaQuery.onchange = (ev) => {\n if (ev.matches) {\n // Stop listening for changes:\n mediaQuery.onchange = null;\n resolve();\n }\n };\n console.log(`Awaiting media query to match: ${mediaQuery.media}`);\n }\n }\n });\n }\n\n public static resetTestWindow(): void {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n return;\n }\n console.log('Resetting test window width');\n (window.frameElement as HTMLIFrameElement).style.width = null;\n (window.frameElement as HTMLIFrameElement).style.height = null;\n }\n\n public static scrollMainWindowToTop() {\n if (\n window.parent &&\n window.parent.document &&\n window.parent.document.documentElement &&\n window.parent.document.documentElement.scrollTop > 0\n ) {\n window.parent.document.documentElement.scrollTop = 0;\n }\n }\n\n public static waitForResizeObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForMutationObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForTimeout(timeoutInMs?: number): Promise<void> {\n return new Promise<void>((resolve) => setTimeout(resolve, timeoutInMs));\n }\n}\n\nexport type ScreenSize = keyof typeof TestHelper.screensize;\n","import { ColorHelper, ThemeColorDefinition } from '@kirbydesign/core';\nimport jasmine from 'jasmine-core';\nimport { TestHelper } from './test-helper';\n\nimport CustomMatcherFactories = jasmine.CustomMatcherFactories;\nimport CustomMatcherResult = jasmine.CustomMatcherResult;\nimport MatchersUtil = jasmine.MatchersUtil;\n\nexport const ElementCssCustomMatchers: CustomMatcherFactories = {\n toHaveComputedStyle: (util: MatchersUtil) => cssPropertyMatcher(util),\n};\n\nfunction cssPropertyMatcher(util: MatchersUtil) {\n return {\n compare: (\n element: Element,\n expectedStyles: { [cssProperty: string]: string | ThemeColorDefinition },\n pseudoElt?: string\n ) => {\n let allPassed = Object.keys(expectedStyles).length !== 0;\n const messages = [];\n Object.keys(expectedStyles).forEach((cssProperty) => {\n const expectedValue = expectedStyles[cssProperty];\n const { expectedStringValue, expectedValueAlias } = getExpectedStringValueAndAlias(\n cssProperty,\n expectedValue\n );\n const { pass, message } = compareCssProperty(\n util,\n element,\n cssProperty,\n expectedStringValue,\n expectedValueAlias,\n pseudoElt\n );\n allPassed = allPassed && pass;\n if (message) {\n messages.push(message);\n }\n });\n const result = {\n pass: allPassed,\n message: messages.join('\\n'),\n };\n return result;\n },\n };\n}\n\nfunction getExpectedStringValueAndAlias(\n cssProperty: string,\n expectedValue: string | ThemeColorDefinition\n) {\n let expectedStringValue: string;\n let expectedValueAlias: string;\n\n if (typeof expectedValue === 'string') {\n expectedStringValue = expectedValue;\n // Check of css property is a color:\n if (\n cssProperty.indexOf('color') > -1 ||\n expectedValue.startsWith('rgb') ||\n expectedValue.startsWith('#')\n ) {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n if (!cssProperty.startsWith('--')) {\n // Not a css variable, convert color to rgb:\n expectedStringValue = ColorHelper.colorStringToRgbString(expectedValue);\n }\n }\n } else {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n expectedStringValue = cssProperty.startsWith('--') ? expectedValue.hex : expectedValue.value;\n expectedValueAlias = expectedValue.fullname;\n }\n\n return {\n expectedStringValue,\n expectedValueAlias,\n };\n}\n\nfunction compareCssProperty(\n util: MatchersUtil,\n element: Element,\n cssProperty: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n): CustomMatcherResult {\n const actualValue = TestHelper.getCssProperty(element, cssProperty, pseudoElt);\n const pass = util.equals(actualValue, expectedValue) || !!compareSize(actualValue, expectedValue);\n const message = pass\n ? null\n : getErrorMessage(\n element,\n cssProperty,\n actualValue,\n expectedValue,\n expectedValueAlias,\n pseudoElt\n );\n const result = {\n pass: pass,\n message: message,\n };\n return result;\n}\n\nfunction compareSize(actualValue: string, expectedValue: string): boolean | void {\n if (!expectedValue.startsWith('<') && !expectedValue.startsWith('>')) return;\n\n const matches = expectedValue.match(/(?<operator>\\<\\=|\\<|\\>\\=|\\>)(?<value>\\d*)px/);\n if (matches && matches.groups) {\n const actualValueNumber = parseInt(actualValue);\n const operator = matches.groups['operator'];\n const expectedValueNumber = parseInt(matches.groups['value']);\n switch (operator) {\n case '<':\n return actualValueNumber < expectedValueNumber;\n case '<=':\n return actualValueNumber <= expectedValueNumber;\n case '>':\n return actualValueNumber > expectedValueNumber;\n case '>=':\n return actualValueNumber >= expectedValueNumber;\n default:\n break;\n }\n }\n}\n\nfunction getErrorMessage(\n element: Element,\n cssProperty: string,\n actualValue: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n) {\n const expectedColorNameSuffix = expectedValueAlias ? ` (${expectedValueAlias})` : '';\n return `Expected [${cssProperty}] of ${element.tagName}${\n pseudoElt ?? ''\n } '${actualValue}' to be '${expectedValue}'${expectedColorNameSuffix}`;\n}\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-testing.mjs","sources":["../../testing/src/test-helper.ts","../../testing/src/element-css-custom-matchers.ts","../../testing/src/kirbydesign-designsystem-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { provideIonicAngular } from '@ionic/angular/standalone';\nimport { componentOnReady } from '@ionic/core';\n\n@NgModule({\n providers: [provideIonicAngular({ mode: 'ios', _testing: true })],\n})\nclass IonicTestingModule {}\n\nexport class TestHelper {\n public static readonly _init = TestHelper.muteIonicReInitializeWarning();\n\n public static disableAnimationsInTest() {\n //@ts-ignore\n window.Ionic = {\n config: {\n _testing: true,\n },\n };\n }\n\n public static muteIonicReInitializeWarning() {\n const originalWarn = console.warn;\n const patchedWarn = (warning: any, ...optionalParams: any[]) => {\n const suppress = `Ionic Angular was already initialized. Make sure IonicModule.forRoot() is just called once.`;\n if (warning !== suppress) originalWarn(warning, ...optionalParams);\n };\n console.warn = patchedWarn;\n }\n\n public static ionicModuleForTest = IonicTestingModule;\n\n /*\n * Checks for the Web Component(s) being ready,\n * ie. the component is hydrated, styles have been applied\n * and the Shadow DOM is ready for query\n */\n public static async whenReady(\n elementOrNodeList: Element | NodeListOf<Element> | Element[]\n ): Promise<void> {\n if (elementOrNodeList === undefined || elementOrNodeList === null)\n return Promise.reject('TestHelper.whenReady: Element is null or undefined');\n if (elementOrNodeList instanceof Element) {\n await TestHelper.whenDefined(elementOrNodeList);\n await TestHelper.ionComponentOnReady(elementOrNodeList);\n } else {\n await Promise.all(\n Array.from(elementOrNodeList).map(async (element) => await TestHelper.whenReady(element))\n );\n }\n }\n\n /* Checks for the Web Component being defined, ie. the public methods are available */\n public static async whenDefined(element: Element): Promise<void> {\n await customElements.whenDefined(element.localName);\n }\n\n /* Checks for the Ionic Web Component being ready, ie. the component is hydrated and styles applied */\n public static async ionComponentOnReady(element: Element): Promise<void> {\n await new Promise<void>((resolve) => {\n componentOnReady(element, () => resolve());\n });\n }\n\n public static async whenTrue(\n pollFunc: () => boolean,\n timeoutInMs: number = 2000,\n pollIntervalInMs: number = 5\n ): Promise<void> {\n if (pollFunc() === true) return Promise.resolve();\n return new Promise<void>((resolve, reject) => {\n let timeoutId, intervalId;\n const pollState = () => {\n const result = pollFunc();\n if (result === true) {\n clearTimeout(timeoutId);\n clearInterval(intervalId);\n resolve();\n }\n };\n timeoutId = setTimeout(() => {\n clearInterval(intervalId);\n reject(\n `Error: Timeout - TestHelper.whenTrue function did not complete within ${timeoutInMs}ms`\n );\n }, timeoutInMs);\n intervalId = setInterval(pollState, pollIntervalInMs);\n });\n }\n\n public static getCssProperty(element: Element, propertyName: string, pseudoElt?: string) {\n return window.getComputedStyle(element, pseudoElt).getPropertyValue(propertyName).trim();\n }\n\n public static screensize = {\n phonesmall: { width: '320px', height: '568px' },\n phone: { width: '375px', height: '667px' },\n phablet: { width: '575px', height: '767px' },\n 'phablet-landscape': { width: '767px', height: '575px' },\n tablet: { width: '768px', height: '1024px' },\n desktop: { width: '1200px', height: '900px' },\n };\n\n public static resizeTestWindow(size: { width?: string; height?: string }): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n reject();\n } else {\n const query = [];\n if (size.width) {\n query.push(`(max-width: ${size.width})`);\n }\n if (size.height) {\n query.push(`(max-height: ${size.height})`);\n }\n console.log(`Set test window size to: ${JSON.stringify(size)}`);\n (window.frameElement as HTMLIFrameElement).style.width = size.width;\n (window.frameElement as HTMLIFrameElement).style.height = size.height;\n const mediaQuery = window.matchMedia(query.join(' and '));\n if (mediaQuery.matches) {\n resolve();\n } else {\n // Ensure window has resized before executing:\n mediaQuery.onchange = (ev) => {\n if (ev.matches) {\n // Stop listening for changes:\n mediaQuery.onchange = null;\n resolve();\n }\n };\n console.log(`Awaiting media query to match: ${mediaQuery.media}`);\n }\n }\n });\n }\n\n public static resetTestWindow(): void {\n if (!window.frameElement) {\n console.warn('window.frameElement is undefined. Cannot resize test window.');\n return;\n }\n console.log('Resetting test window width');\n (window.frameElement as HTMLIFrameElement).style.width = null;\n (window.frameElement as HTMLIFrameElement).style.height = null;\n }\n\n public static scrollMainWindowToTop() {\n if (\n window.parent &&\n window.parent.document &&\n window.parent.document.documentElement &&\n window.parent.document.documentElement.scrollTop > 0\n ) {\n window.parent.document.documentElement.scrollTop = 0;\n }\n }\n\n public static waitForResizeObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForMutationObserver(): Promise<void> {\n return TestHelper.waitForTimeout(1);\n }\n\n public static waitForTimeout(timeoutInMs?: number): Promise<void> {\n return new Promise<void>((resolve) => setTimeout(resolve, timeoutInMs));\n }\n}\n\nexport type ScreenSize = keyof typeof TestHelper.screensize;\n","import { ColorHelper, ThemeColorDefinition } from '@kirbydesign/core';\nimport jasmine from 'jasmine-core';\nimport { TestHelper } from './test-helper';\n\nimport CustomMatcherFactories = jasmine.CustomMatcherFactories;\nimport CustomMatcherResult = jasmine.CustomMatcherResult;\nimport MatchersUtil = jasmine.MatchersUtil;\n\nexport const ElementCssCustomMatchers: CustomMatcherFactories = {\n toHaveComputedStyle: (util: MatchersUtil) => cssPropertyMatcher(util),\n};\n\nfunction cssPropertyMatcher(util: MatchersUtil) {\n return {\n compare: (\n element: Element,\n expectedStyles: { [cssProperty: string]: string | ThemeColorDefinition },\n pseudoElt?: string\n ) => {\n let allPassed = Object.keys(expectedStyles).length !== 0;\n const messages = [];\n Object.keys(expectedStyles).forEach((cssProperty) => {\n const expectedValue = expectedStyles[cssProperty];\n const { expectedStringValue, expectedValueAlias } = getExpectedStringValueAndAlias(\n cssProperty,\n expectedValue\n );\n const { pass, message } = compareCssProperty(\n util,\n element,\n cssProperty,\n expectedStringValue,\n expectedValueAlias,\n pseudoElt\n );\n allPassed = allPassed && pass;\n if (message) {\n messages.push(message);\n }\n });\n const result = {\n pass: allPassed,\n message: messages.join('\\n'),\n };\n return result;\n },\n };\n}\n\nfunction getExpectedStringValueAndAlias(\n cssProperty: string,\n expectedValue: string | ThemeColorDefinition\n) {\n let expectedStringValue: string;\n let expectedValueAlias: string;\n\n if (typeof expectedValue === 'string') {\n expectedStringValue = expectedValue;\n // Check of css property is a color:\n if (\n cssProperty.indexOf('color') > -1 ||\n expectedValue.startsWith('rgb') ||\n expectedValue.startsWith('#')\n ) {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n if (!cssProperty.startsWith('--')) {\n // Not a css variable, convert color to rgb:\n expectedStringValue = ColorHelper.colorStringToRgbString(expectedValue);\n }\n }\n } else {\n // Check if css property is a css variable:\n // Css variable values are hex when getting computed style, all other property values are rgb:\n expectedStringValue = cssProperty.startsWith('--') ? expectedValue.hex : expectedValue.value;\n expectedValueAlias = expectedValue.fullname;\n }\n\n return {\n expectedStringValue,\n expectedValueAlias,\n };\n}\n\nfunction compareCssProperty(\n util: MatchersUtil,\n element: Element,\n cssProperty: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n): CustomMatcherResult {\n const actualValue = TestHelper.getCssProperty(element, cssProperty, pseudoElt);\n const pass = util.equals(actualValue, expectedValue) || !!compareSize(actualValue, expectedValue);\n const message = pass\n ? null\n : getErrorMessage(\n element,\n cssProperty,\n actualValue,\n expectedValue,\n expectedValueAlias,\n pseudoElt\n );\n const result = {\n pass: pass,\n message: message,\n };\n return result;\n}\n\nfunction compareSize(actualValue: string, expectedValue: string): boolean | void {\n if (!expectedValue.startsWith('<') && !expectedValue.startsWith('>')) return;\n\n const matches = expectedValue.match(/(?<operator>\\<\\=|\\<|\\>\\=|\\>)(?<value>\\d*)px/);\n if (matches && matches.groups) {\n const actualValueNumber = parseInt(actualValue);\n const operator = matches.groups['operator'];\n const expectedValueNumber = parseInt(matches.groups['value']);\n switch (operator) {\n case '<':\n return actualValueNumber < expectedValueNumber;\n case '<=':\n return actualValueNumber <= expectedValueNumber;\n case '>':\n return actualValueNumber > expectedValueNumber;\n case '>=':\n return actualValueNumber >= expectedValueNumber;\n default:\n break;\n }\n }\n}\n\nfunction getErrorMessage(\n element: Element,\n cssProperty: string,\n actualValue: string,\n expectedValue: string,\n expectedValueAlias?: string,\n pseudoElt?: string\n) {\n const expectedColorNameSuffix = expectedValueAlias ? ` (${expectedValueAlias})` : '';\n return `Expected [${cssProperty}] of ${element.tagName}${\n pseudoElt ?? ''\n } '${actualValue}' to be '${expectedValue}'${expectedColorNameSuffix}`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable } from '@angular/core';
3
- import * as i1 from '@ionic/angular';
3
+ import * as i1 from '@ionic/angular/standalone';
4
4
 
5
5
  class ToastHelper {
6
6
  static { this.CSS_CLASS = 'kirby-toast'; }
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toast.mjs","sources":["../../toast/src/services/toast.helper.ts","../../toast/src/services/toast.controller.ts","../../toast/src/kirbydesign-designsystem-toast.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ToastController } from '@ionic/angular';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { MessageType, ToastConfig } from '../config/toast-config';\n\n@Injectable()\nexport class ToastHelper {\n static CSS_CLASS = 'kirby-toast';\n static DURATION_IN_MS = 4000;\n\n constructor(private toastController: ToastController) {}\n\n public async showToast(config: ToastConfig): Promise<Overlay> {\n const toast = await this.toastController.create({\n animated: config.animated,\n message: config.message,\n position: 'top',\n duration: config.durationInMs ?? ToastHelper.DURATION_IN_MS,\n cssClass: this.getCssClass(config.messageType),\n });\n await toast.present();\n return {\n dismiss: toast.dismiss.bind(toast),\n onWillDismiss: toast.onWillDismiss(),\n onDidDismiss: toast.onDidDismiss(),\n };\n }\n\n private getCssClass(messageType: MessageType): string {\n let cssClass = ToastHelper.CSS_CLASS;\n\n if (messageType) {\n cssClass += ' ' + messageType;\n }\n\n return cssClass;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { ToastConfig } from '../config/toast-config';\n\nimport { ToastHelper } from './toast.helper';\n\n@Injectable()\nexport class ToastController {\n constructor(private toastHelper: ToastHelper) {}\n\n public async showToast(config: ToastConfig, onCloseToast?: () => void): Promise<Overlay> {\n const overlay = await this.toastHelper.showToast(config);\n if (onCloseToast) {\n overlay.onDidDismiss.then(() => onCloseToast());\n }\n return overlay;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ToastHelper"],"mappings":";;;;MAOa,WAAW,CAAA;aACf,IAAA,CAAA,SAAS,GAAG,aAAH,CAAiB;aAC1B,IAAA,CAAA,cAAc,GAAG,IAAH,CAAQ;AAE7B,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAA,CAAA,eAAe,GAAf,eAAe;IAAoB;IAEhD,MAAM,SAAS,CAAC,MAAmB,EAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,IAAI,WAAW,CAAC,cAAc;YAC3D,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;AAC/C,SAAA,CAAC;AACF,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE;QACrB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,YAAA,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;AACpC,YAAA,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;SACnC;IACH;AAEQ,IAAA,WAAW,CAAC,WAAwB,EAAA;AAC1C,QAAA,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS;QAEpC,IAAI,WAAW,EAAE;AACf,YAAA,QAAQ,IAAI,GAAG,GAAG,WAAW;QAC/B;AAEA,QAAA,OAAO,QAAQ;IACjB;kIA9BW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAX,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;MCEY,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAA,CAAA,WAAW,GAAX,WAAW;IAAgB;AAExC,IAAA,MAAM,SAAS,CAAC,MAAmB,EAAE,YAAyB,EAAA;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;QACxD,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC;QACjD;AACA,QAAA,OAAO,OAAO;IAChB;kIATW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAf,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"kirbydesign-designsystem-toast.mjs","sources":["../../toast/src/services/toast.helper.ts","../../toast/src/services/toast.controller.ts","../../toast/src/kirbydesign-designsystem-toast.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ToastController } from '@ionic/angular/standalone';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { MessageType, ToastConfig } from '../config/toast-config';\n\n@Injectable()\nexport class ToastHelper {\n static CSS_CLASS = 'kirby-toast';\n static DURATION_IN_MS = 4000;\n\n constructor(private toastController: ToastController) {}\n\n public async showToast(config: ToastConfig): Promise<Overlay> {\n const toast = await this.toastController.create({\n animated: config.animated,\n message: config.message,\n position: 'top',\n duration: config.durationInMs ?? ToastHelper.DURATION_IN_MS,\n cssClass: this.getCssClass(config.messageType),\n });\n await toast.present();\n return {\n dismiss: toast.dismiss.bind(toast),\n onWillDismiss: toast.onWillDismiss(),\n onDidDismiss: toast.onDidDismiss(),\n };\n }\n\n private getCssClass(messageType: MessageType): string {\n let cssClass = ToastHelper.CSS_CLASS;\n\n if (messageType) {\n cssClass += ' ' + messageType;\n }\n\n return cssClass;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Overlay } from '@kirbydesign/designsystem/modal';\n\nimport { ToastConfig } from '../config/toast-config';\n\nimport { ToastHelper } from './toast.helper';\n\n@Injectable()\nexport class ToastController {\n constructor(private toastHelper: ToastHelper) {}\n\n public async showToast(config: ToastConfig, onCloseToast?: () => void): Promise<Overlay> {\n const overlay = await this.toastHelper.showToast(config);\n if (onCloseToast) {\n overlay.onDidDismiss.then(() => onCloseToast());\n }\n return overlay;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ToastHelper"],"mappings":";;;;MAOa,WAAW,CAAA;aACf,IAAA,CAAA,SAAS,GAAG,aAAH,CAAiB;aAC1B,IAAA,CAAA,cAAc,GAAG,IAAH,CAAQ;AAE7B,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAA,CAAA,eAAe,GAAf,eAAe;IAAoB;IAEhD,MAAM,SAAS,CAAC,MAAmB,EAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,IAAI,WAAW,CAAC,cAAc;YAC3D,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;AAC/C,SAAA,CAAC;AACF,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE;QACrB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,YAAA,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;AACpC,YAAA,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;SACnC;IACH;AAEQ,IAAA,WAAW,CAAC,WAAwB,EAAA;AAC1C,QAAA,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS;QAEpC,IAAI,WAAW,EAAE;AACf,YAAA,QAAQ,IAAI,GAAG,GAAG,WAAW;QAC/B;AAEA,QAAA,OAAO,QAAQ;IACjB;kIA9BW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAX,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;MCEY,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAA,CAAA,WAAW,GAAX,WAAW;IAAgB;AAExC,IAAA,MAAM,SAAS,CAAC,MAAmB,EAAE,YAAyB,EAAA;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;QACxD,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC;QACjD;AACA,QAAA,OAAO,OAAO;IAChB;kIATW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAf,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACPD;;AAEG;;;;"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, ElementRef, forwardRef, Output, HostBinding, Input, ViewChild, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { IonToggle } from '@ionic/angular';
4
+ import { IonToggle } from '@ionic/angular/standalone';
5
5
  import { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';
6
6
  import * as i1 from '@kirbydesign/designsystem/helpers';
7
7
  import { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';
@@ -114,7 +114,7 @@ class ToggleComponent {
114
114
  useExisting: forwardRef((() => ToggleComponent)),
115
115
  multi: true,
116
116
  },
117
- ], viewQueries: [{ propertyName: "ionToggleElement", first: true, predicate: IonToggle, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-toggle{--color: var(--kirby-medium);--color-checked: var(--kirby-medium);opacity:1}:host[disabled] ion-toggle::part(track){opacity:.3}ion-toggle:focus-visible::part(track){transition:box-shadow 80ms linear,background-color 80ms linear;box-shadow:var(--kirby-focus-ring-sm-inset)}ion-toggle{overflow:visible;contain:none}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: var(--kirby-transition-duration-quick);--handle-box-shadow: var(--kirby-elevation-2);--handle-height: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--handle-width: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--border-radius: calc(var(--kirby-spacing-l) / 2)}ion-toggle::part(track){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;height:var(--kirby-spacing-l)}ion-toggle ::part(label-text-wrapper){line-height:var(--kirby-line-height-n);white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"], dependencies: [{ kind: "component", type: IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
117
+ ], viewQueries: [{ propertyName: "ionToggleElement", first: true, predicate: IonToggle, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled] ion-toggle{opacity:.4}ion-toggle:focus-visible::part(track){transition:box-shadow 80ms linear,background-color 80ms linear;box-shadow:var(--kirby-focus-ring-sm-inset)}ion-toggle{overflow:visible;contain:none}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--track-background: var(--kirby-toggle-color-fill-hover);--handle-background: var(--kirby-toggle-color-content-hover);--track-background-checked: var(--kirby-toggle-color-fill-engaged-hover);--handle-background-checked: var(--kirby-toggle-color-content-hover)}}ion-toggle:active,ion-toggle.interaction-state-active{--track-background: var(--kirby-toggle-color-fill-active);--handle-background: var(--kirby-toggle-color-content-active);--track-background-checked: var(--kirby-toggle-color-fill-engaged-active);--handle-background-checked: var(--kirby-toggle-color-content-active)}ion-toggle{--track-background: var(--kirby-toggle-color-fill);--handle-background: var(--kirby-toggle-color-content);--track-background-checked: var(--kirby-toggle-color-fill-engaged);--handle-background-checked: var(--kirby-toggle-color-content);--handle-transition: var(--kirby-transition-duration-quick);--handle-box-shadow: var(--kirby-elevation-2);--handle-height: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--handle-width: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--border-radius: calc(var(--kirby-spacing-l) / 2)}ion-toggle::part(track){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;height:var(--kirby-spacing-l)}ion-toggle ::part(label-text-wrapper){line-height:var(--kirby-line-height-n);white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"], dependencies: [{ kind: "component", type: IonToggle, selector: "ion-toggle", inputs: ["checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
118
118
  }
119
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ToggleComponent, decorators: [{
120
120
  type: Component,
@@ -125,7 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
125
125
  useExisting: forwardRef((() => ToggleComponent)),
126
126
  multi: true,
127
127
  },
128
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-toggle{--color: var(--kirby-medium);--color-checked: var(--kirby-medium);opacity:1}:host[disabled] ion-toggle::part(track){opacity:.3}ion-toggle:focus-visible::part(track){transition:box-shadow 80ms linear,background-color 80ms linear;box-shadow:var(--kirby-focus-ring-sm-inset)}ion-toggle{overflow:visible;contain:none}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--track-background: rgb(119.28, 119.28, 119.28);--handle-background: rgb(244.8, 244.8, 244.8);--track-background-checked: rgb(45.030660793, 192.689339207, 114.1474889868);--handle-background-checked: rgb(244.8, 244.8, 244.8)}}ion-toggle:active,ion-toggle.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--track-background: rgb(107.92, 107.92, 107.92);--handle-background: rgb(234.6, 234.6, 234.6);--track-background-checked: rgb(40.7420264317, 174.3379735683, 103.2762995595);--handle-background-checked: rgb(234.6, 234.6, 234.6)}ion-toggle{--track-background: var(--kirby-semi-dark);--handle-background: var(--kirby-white);--track-background-checked: var(--kirby-success);--handle-background-checked: var(--kirby-white);--handle-transition: var(--kirby-transition-duration-quick);--handle-box-shadow: var(--kirby-elevation-2);--handle-height: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--handle-width: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--border-radius: calc(var(--kirby-spacing-l) / 2)}ion-toggle::part(track){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;height:var(--kirby-spacing-l)}ion-toggle ::part(label-text-wrapper){line-height:var(--kirby-line-height-n);white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"] }]
128
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:inline-flex}:host:has(ion-toggle.in-item.toggle-justify-space-between){width:100%}:host.has-hidden-label:has(ion-toggle.in-item){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle{position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label){position:initial}:host.has-hidden-label:has(ion-toggle.in-item) ion-toggle::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-toggle{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host[disabled] ion-toggle{opacity:.4}ion-toggle:focus-visible::part(track){transition:box-shadow 80ms linear,background-color 80ms linear;box-shadow:var(--kirby-focus-ring-sm-inset)}ion-toggle{overflow:visible;contain:none}ion-toggle:focus-visible{outline:none}@media(hover:hover){ion-toggle:hover{--track-background: var(--kirby-toggle-color-fill-hover);--handle-background: var(--kirby-toggle-color-content-hover);--track-background-checked: var(--kirby-toggle-color-fill-engaged-hover);--handle-background-checked: var(--kirby-toggle-color-content-hover)}}ion-toggle:active,ion-toggle.interaction-state-active{--track-background: var(--kirby-toggle-color-fill-active);--handle-background: var(--kirby-toggle-color-content-active);--track-background-checked: var(--kirby-toggle-color-fill-engaged-active);--handle-background-checked: var(--kirby-toggle-color-content-active)}ion-toggle{--track-background: var(--kirby-toggle-color-fill);--handle-background: var(--kirby-toggle-color-content);--track-background-checked: var(--kirby-toggle-color-fill-engaged);--handle-background-checked: var(--kirby-toggle-color-content);--handle-transition: var(--kirby-transition-duration-quick);--handle-box-shadow: var(--kirby-elevation-2);--handle-height: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--handle-width: calc(var(--kirby-spacing-l) - var(--kirby-spacing-xxxxs) * 2);--border-radius: calc(var(--kirby-spacing-l) / 2)}ion-toggle::part(track){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;height:var(--kirby-spacing-l)}ion-toggle ::part(label-text-wrapper){line-height:var(--kirby-line-height-n);white-space:pre-line}ion-toggle.in-item::part(label){align-items:center;padding-inline:0}ion-toggle.in-item::part(label),ion-toggle.in-item::part(label-text-wrapper){margin-block:0}ion-toggle.in-item.toggle-label-placement-start::part(label-text-wrapper){margin-inline:0 12px}ion-toggle.in-item.toggle-label-placement-end::part(label-text-wrapper){margin-inline:12px 0}ion-toggle.in-item.legacy-toggle{padding:0}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-toggle{margin:0}:host-context(kirby-item)[slot=start]{margin-inline-end:12px}\n"] }]
129
129
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.IonicElementPartHelper }], propDecorators: { ionToggleElement: [{
130
130
  type: ViewChild,
131
131
  args: [IonToggle, { read: ElementRef, static: true }]
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-toggle.mjs","sources":["../../toggle/src/toggle.component.ts","../../toggle/src/toggle.component.html","../../toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonToggle } from '@ionic/angular';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n imports: [IonToggle],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n IonicElementPartHelper,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, AfterContentInit\n{\n @ViewChild(IonToggle, { read: ElementRef, static: true })\n private ionToggleElement?: ElementRef<HTMLIonToggleElement>;\n\n @Input() checked: boolean = false;\n\n @Input() disabled: boolean = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'start';\n _hasSlottedContent: boolean;\n _pressed = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-toggle for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-toggle is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.elementRef.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.elementRef.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n }\n\n if (slot === 'start' && this._hasSlottedContent) {\n this._labelPlacement = 'end';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionToggleElement, '.toggle-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionToggleElement,\n '.label-text-wrapper'\n );\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.elementRef.nativeElement);\n\n if (!this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.elementRef.nativeElement);\n }\n }\n\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n _onActive() {\n this._pressed = true;\n }\n\n _onInactive() {\n this._pressed = false;\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the toggle's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n this.cdr.markForCheck();\n }\n /**\n * Saves a callback function to be invoked when the toggle's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the toggle is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /**\n * Disables the toggle. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\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-toggle.mjs","sources":["../../toggle/src/toggle.component.ts","../../toggle/src/toggle.component.html","../../toggle/src/kirbydesign-designsystem-toggle.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonToggle } from '@ionic/angular/standalone';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\n\n@Component({\n imports: [IonToggle],\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n IonicElementPartHelper,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, AfterContentInit\n{\n @ViewChild(IonToggle, { read: ElementRef, static: true })\n private ionToggleElement?: ElementRef<HTMLIonToggleElement>;\n\n @Input() checked: boolean = false;\n\n @Input() disabled: boolean = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'start';\n _hasSlottedContent: boolean;\n _pressed = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-toggle for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-toggle is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.elementRef.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.elementRef.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n }\n\n if (slot === 'start' && this._hasSlottedContent) {\n this._labelPlacement = 'end';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionToggleElement, '.toggle-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionToggleElement,\n '.label-text-wrapper'\n );\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.elementRef.nativeElement);\n\n if (!this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.elementRef.nativeElement);\n }\n }\n\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this._onChange(this.checked);\n this.checkedChange.emit(this.checked);\n }\n\n _onActive() {\n this._pressed = true;\n }\n\n _onInactive() {\n this._pressed = false;\n this._onTouched();\n }\n\n // Initialize default ControlValueAccessor callback functions (noop)\n // eslint-disable-next-line no-empty-function\n private _onChange: (value: boolean) => void = () => {};\n // eslint-disable-next-line no-empty-function\n private _onTouched = () => {};\n\n /**\n * Sets the toggle's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: boolean): void {\n this.checked = value;\n this.cdr.markForCheck();\n }\n /**\n * Saves a callback function to be invoked when the toggle's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the toggle is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n /**\n * Disables the toggle. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [class.interaction-state-active]=\"_pressed\"\n (keydown.space)=\"_onActive()\"\n (keyup.space)=\"_onInactive()\"\n (blur)=\"_onInactive()\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n [justify]=\"_justify\"\n [labelPlacement]=\"_labelPlacement\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-toggle>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kirbydesign/designsystem",
3
- "version": "11.11.0-dev-1d9b4cd",
3
+ "version": "11.11.0-dev-9d936c8",
4
4
  "description": "The Kirby Design Angular Components.",
5
5
  "author": "kirby@bankdata.dk",
6
6
  "repository": {
@@ -27,8 +27,8 @@
27
27
  "@angular/router": "^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0",
28
28
  "@floating-ui/dom": "^1.1.0",
29
29
  "@fontsource/roboto": "^5.2.6",
30
- "@ionic/angular": "9.0.2",
31
- "@kirbydesign/core": "0.0.92-dev-1d9b4cd",
30
+ "@ionic/angular": "8.8.19",
31
+ "@kirbydesign/core": "0.0.92-dev-9d936c8",
32
32
  "chart.js": "^3.9.1",
33
33
  "chartjs-adapter-date-fns": "^2.0.0",
34
34
  "chartjs-plugin-annotation": "^1.0.2",
@@ -12,7 +12,11 @@ declare class AvatarComponent {
12
12
  imageSrc: string;
13
13
  imageLoading: 'eager' | 'lazy' | undefined;
14
14
  altText: string;
15
- stroke: boolean;
15
+ /**
16
+ * @deprecated The avatar now always has an outline, so this input no longer has any effect.
17
+ * This input will be removed in a future major version.
18
+ */
19
+ set stroke(_value: boolean);
16
20
  text: string;
17
21
  overlay: boolean;
18
22
  size: AvatarSize | `${AvatarSize}`;
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-avatar.d.ts","sources":["../../avatar/src/avatar.component.ts"],"mappings":";;;;AAYA,aAAY,UAAU;AACpB;AACA;AACA;AACA;AACD;AAED,cAOa,eAAe;;AAEjB;;;;;AAKA,UAAM,UAAU,MAAM,UAAU;AAEzC,gBAAY,iBAAiB,GAAG,UAAU;AAE1C,gBAAY,YAAY,CAAC,UAAU;AAEnC;yBAKqB,UAAU;yCAlBpB,eAAe;2CAAf,eAAe;AAqB3B;;;;","names":[]}
1
+ {"version":3,"file":"kirbydesign-designsystem-avatar.d.ts","sources":["../../avatar/src/avatar.component.ts"],"mappings":";;;;AAYA,aAAY,UAAU;AACpB;AACA;AACA;AACA;AACD;AAED,cAOa,eAAe;;AAEjB;;AAET;;;AAGG;AACH;;;AAQS,UAAM,UAAU,MAAM,UAAU;AAEzC,gBAAY,iBAAiB,GAAG,UAAU;AAE1C,gBAAY,YAAY,CAAC,UAAU;AAEnC;yBAKqB,UAAU;yCA3BpB,eAAe;2CAAf,eAAe;AA8B3B;;;;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-button.d.ts","sources":["../../button/src/button.component.ts"],"mappings":";;;;AAkBA,aAAY,UAAU;AACpB;AACA;AACA;AACA;AACD;AAEK,KAAM,cAAc;AAE1B,cAOa,eAAgB,YAAW,gBAAgB,EAAE,SAAS,EAAE,MAAM;AAiEvE;AACA;oBAjEuB,cAAc;AAIvC;;;;AAYA;;AAKA;AAKA;AAMA;gBAOY,iBAAiB;AACpB;;AAGT,UAAM,UAAU,MAAM,UAAU;;;AAMhC;AAUA,qBAAiB,UAAU,CAAC,WAAW;;4BAKjB,UAAU,CAAC,WAAW,aACxB,SAAS;AAG7B;;AAkBA;AAwBA;AAgCA;;yCA/IW,eAAe;2CAAf,eAAe;AAyJ3B;;;;","names":[]}
1
+ {"version":3,"file":"kirbydesign-designsystem-button.d.ts","sources":["../../button/src/button.component.ts"],"mappings":";;;;AAkBA,aAAY,UAAU;AACpB;AACA;AACA;AACA;AACD;AAEK,KAAM,cAAc;AAE1B,cAOa,eAAgB,YAAW,gBAAgB,EAAE,SAAS,EAAE,MAAM;AAiEvE;AACA;oBAjEuB,cAAc;AAIvC;;;;AAYA;;AAKA;AAKA;AAMA;gBAOY,iBAAiB;AACpB;;AAGT,UAAM,UAAU,MAAM,UAAU;;;AAMhC;AAUA,qBAAiB,UAAU,CAAC,WAAW;;4BAKjB,UAAU,CAAC,WAAW,aACxB,SAAS;AAG7B;;AAkBA;AAwBA;AA+BA;;yCA9IW,eAAe;2CAAf,eAAe;AAwJ3B;;;;","names":[]}
@@ -36,10 +36,12 @@ declare class CardAsButtonDirective {
36
36
  static ɵdir: i0.ɵɵDirectiveDeclaration<CardAsButtonDirective, "kirby-card[click]", never, {}, {}, never, never, true, never>;
37
37
  }
38
38
 
39
+ type CardVariant = 'elevated' | 'flat' | 'outlined' | 'base' | 'raised' | 'brand';
39
40
  declare class CardComponent implements OnInit, OnDestroy {
40
41
  private elementRef;
41
42
  private resizeObserverService;
42
43
  private renderer;
44
+ private themeColor;
43
45
  title: string;
44
46
  subtitle: string;
45
47
  _backgroundImage: string;
@@ -49,7 +51,14 @@ declare class CardComponent implements OnInit, OnDestroy {
49
51
  set sizes(value: {
50
52
  [size: string]: number;
51
53
  });
52
- variant: 'elevated' | 'flat' | 'outlined';
54
+ /**
55
+ * `base`, `raised` (default) and `brand` set the surface directly.
56
+ * `elevated` and `flat` are raised surfaces, `outlined` is a base surface.
57
+ * A `themeColor` takes precedence over the surface of the variant.
58
+ */
59
+ variant: CardVariant;
60
+ get hostClasses(): string;
61
+ private get surface();
53
62
  constructor(elementRef: ElementRef, resizeObserverService: ResizeObserverService, renderer: Renderer2);
54
63
  ngOnInit(): void;
55
64
  ngOnDestroy(): void;
@@ -58,6 +67,7 @@ declare class CardComponent implements OnInit, OnDestroy {
58
67
  private handleResize;
59
68
  static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
60
69
  static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "kirby-card", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "backgroundImageUrl": { "alias": "backgroundImageUrl"; "required": false; }; "hasPadding": { "alias": "hasPadding"; "required": false; }; "sizes": { "alias": "sizes"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["kirby-card-header", "*", "kirby-card-footer"], true, never>;
70
+ static ngAcceptInputType_variant: CardVariant | null | undefined;
61
71
  }
62
72
 
63
73
  declare class CardModule {
@@ -67,5 +77,5 @@ declare class CardModule {
67
77
  }
68
78
 
69
79
  export { CardAsButtonDirective, CardComponent, CardFooterComponent, CardHeaderComponent, CardModule };
70
- export type { CardFlagLevel };
80
+ export type { CardFlagLevel, CardVariant };
71
81
  //# sourceMappingURL=kirbydesign-designsystem-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-card.d.ts","sources":["../../card/src/card-footer/card-footer.component.ts","../../card/src/card-flag-level.ts","../../card/src/card-header/card-header.component.ts","../../card/src/card-as-button/card-as-button.directive.ts","../../card/src/card.component.ts","../../card/src/card.module.ts"],"mappings":";;;;;;;AAEA,cAMa,mBAAmB;;yCAAnB,mBAAmB;2CAAnB,mBAAmB;AAI/B;;ACVK,KAAM,aAAa,GAAG,iBAAiB;;ACE7C,cAMa,mBAAmB;;;;aAKrB,aAAa;;AAKtB;yCAVW,mBAAmB;2CAAnB,mBAAmB;AAc/B;;ACtBD,cAIa,qBAAqB;AAKpB;;;AAFmC;AAE3B,kCAAkB,UAAU;6BAIvB,aAAa;;yCAT3B,qBAAqB;2CAArB,qBAAqB;AA6BjC;;ACxBD,cAKa,aAAc,YAAW,MAAM,EAAE,SAAS;AAoCnD;AACA;AACA;;;;AA/BF;;;;AAemB;;AAWnB;4BAGsB,UAAU,yBACC,qBAAqB,YAClC,SAAS;;;AAW7B;AAIA;AAIA;yCAzDW,aAAa;2CAAb,aAAa;AAuEzB;;AC7ED,cAIa,UAAU;yCAAV,UAAU;0CAAV,UAAU,iBAAA,EAAA,CAAA,YAAA,SAAA,EAAA,CAAA,mBAAA,SAAAA,aAAA,SAAAC,mBAAA,SAAAC,mBAAA,SAAAC,qBAAA,WAAAH,aAAA,SAAAC,mBAAA,SAAAC,mBAAA,SAAAC,qBAAA,SAAA,EAAA,CAAA,mBAAA;0CAAV,UAAU;AAAG;;;;","names":["i3.CardComponent","i4.CardFooterComponent","i5.CardHeaderComponent","i6.CardAsButtonDirective"]}
1
+ {"version":3,"file":"kirbydesign-designsystem-card.d.ts","sources":["../../card/src/card-footer/card-footer.component.ts","../../card/src/card-flag-level.ts","../../card/src/card-header/card-header.component.ts","../../card/src/card-as-button/card-as-button.directive.ts","../../card/src/card.component.ts","../../card/src/card.module.ts"],"mappings":";;;;;;;AAEA,cAMa,mBAAmB;;yCAAnB,mBAAmB;2CAAnB,mBAAmB;AAI/B;;ACVK,KAAM,aAAa,GAAG,iBAAiB;;ACE7C,cAMa,mBAAmB;;;;aAKrB,aAAa;;AAKtB;yCAVW,mBAAmB;2CAAnB,mBAAmB;AAc/B;;ACtBD,cAIa,qBAAqB;AAKpB;;;AAFmC;AAE3B,kCAAkB,UAAU;6BAIvB,aAAa;;yCAT3B,qBAAqB;2CAArB,qBAAqB;AA6BjC;;ACvBK,KAAM,WAAW;AAWvB,cAKa,aAAc,YAAW,MAAM,EAAE,SAAS;AA2DnD;AACA;AACA;;;;;AApDF;;;;AAemB;;AASnB;;;;AAIG;aAEM,WAAW;;;4BAoBE,UAAU,yBACC,qBAAqB,YAClC,SAAS;;;AAW7B;AAIA;AAIA;yCAhFW,aAAa;2CAAb,aAAa;AAsCI,sCAtDlB,WAsD6B;AAwDxC;;AChHD,cAIa,UAAU;yCAAV,UAAU;0CAAV,UAAU,iBAAA,EAAA,CAAA,YAAA,SAAA,EAAA,CAAA,mBAAA,SAAAA,aAAA,SAAAC,mBAAA,SAAAC,mBAAA,SAAAC,qBAAA,WAAAH,aAAA,SAAAC,mBAAA,SAAAC,mBAAA,SAAAC,qBAAA,SAAA,EAAA,CAAA,mBAAA;0CAAV,UAAU;AAAG;;;;","names":["i3.CardComponent","i4.CardFooterComponent","i5.CardHeaderComponent","i6.CardAsButtonDirective"]}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { AfterContentInit, AfterViewInit, ElementRef, ChangeDetectorRef, Renderer2 } from '@angular/core';
3
3
  import { ActionSheetComponent } from '@kirbydesign/designsystem/modal';
4
- import { IonFab } from '@ionic/angular';
4
+ import { IonFab } from '@ionic/angular/standalone';
5
5
 
6
6
  declare class FabSheetComponent implements AfterContentInit, AfterViewInit {
7
7
  private changeDetectorRef;
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, OnChanges, ElementRef, Renderer2, SimpleChanges } from '@angular/core';
3
3
  import * as i1 from '@kirbydesign/designsystem/shared';
4
- import * as i2 from '@ionic/angular';
4
+ import * as i2 from '@ionic/angular/standalone';
5
5
 
6
6
  interface Icon {
7
7
  name: string;
@@ -1,4 +1,4 @@
1
- import { IonItemSliding } from '@ionic/angular';
1
+ import { IonItemSliding } from '@ionic/angular/standalone';
2
2
  import * as i0 from '@angular/core';
3
3
 
4
4
  type ItemSlidingSide = 'left' | 'right';
@@ -3,7 +3,7 @@ import { AfterViewInit, ElementRef, Renderer2, ChangeDetectorRef } from '@angula
3
3
  import { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';
4
4
  import * as i1 from '@kirbydesign/designsystem/icon';
5
5
  import * as i2 from '@angular/common';
6
- import * as i3 from '@ionic/angular';
6
+ import * as i3 from '@ionic/angular/standalone';
7
7
 
8
8
  declare enum ItemSize {
9
9
  XS = "xs",
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { AfterContentInit } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import * as i2 from '@ionic/angular';
4
+ import * as i2 from '@ionic/angular/standalone';
5
5
 
6
6
  declare class AppComponent implements AfterContentInit {
7
7
  private ionAppElement;
@@ -3,8 +3,8 @@ import { AfterViewInit, OnDestroy, EventEmitter, ElementRef, NgZone, OnChanges,
3
3
  import { WindowRef } from '@kirbydesign/designsystem/types';
4
4
  import { Subject } from 'rxjs';
5
5
  import { ThemeColor } from '@kirbydesign/core';
6
- import * as i4 from '@ionic/angular';
7
- import { IonItemSliding, IonList } from '@ionic/angular';
6
+ import * as i4 from '@ionic/angular/standalone';
7
+ import { IonItemSliding, IonList } from '@ionic/angular/standalone';
8
8
  import { PlatformService } from '@kirbydesign/designsystem/helpers';
9
9
  import { ItemSwipeAction, ItemSlidingSide, ItemSwipeActionSlots } from '@kirbydesign/designsystem/item-sliding';
10
10
  import * as i1 from '@angular/common';
@@ -170,6 +170,11 @@ declare class ListComponent implements OnInit, OnChanges, AfterViewInit {
170
170
  shape: ListShape;
171
171
  get isShapeRounded(): boolean;
172
172
  get isShapeNone(): boolean;
173
+ /**
174
+ * The list establishes a raised surface by default, until list usage is migrated
175
+ * to shape="none", and combined with card for base/raised/brand appearance
176
+ */
177
+ get _isRaisedSurface(): boolean;
173
178
  hasItemSpacing: boolean;
174
179
  /**
175
180
  * Determines if the loadOnDemand event should be emitted.
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-list.d.ts","sources":["../../list/src/directives/scroll.model.ts","../../list/src/directives/infinite-scroll.directive.ts","../../list/src/directives/list-item-color.directive.ts","../../list/src/list-swipe-action.type.ts","../../list/src/list-item/list-item.component.ts","../../list/src/list.event.ts","../../list/src/list.component.ts","../../list/src/helpers/list-helper.ts","../../list/src/list-experimental/list-experimental.component.ts","../../list/src/list-header/list-header.component.ts","../../list/src/list-section-header/list-section-header.component.ts","../../list/src/list.directive.ts","../../list/src/list.module.ts"],"mappings":"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","names":["ListSwipeDirection","ListSwipeEnd","i5.ListComponent","i6.ListItemComponent","i7.ListItemTemplateDirective","i8.ListSectionHeaderComponent","i7.ListSectionHeaderDirective","i7.ListHeaderDirective","i9.ListHeaderComponent","i7.ListFooterDirective","i10.ListExperimentalComponent","i11.ListItemColorDirective","i12.InfiniteScrollDirective"]}
1
+ {"version":3,"file":"kirbydesign-designsystem-list.d.ts","sources":["../../list/src/directives/scroll.model.ts","../../list/src/directives/infinite-scroll.directive.ts","../../list/src/directives/list-item-color.directive.ts","../../list/src/list-swipe-action.type.ts","../../list/src/list-item/list-item.component.ts","../../list/src/list.event.ts","../../list/src/list.component.ts","../../list/src/helpers/list-helper.ts","../../list/src/list-experimental/list-experimental.component.ts","../../list/src/list-header/list-header.component.ts","../../list/src/list-section-header/list-section-header.component.ts","../../list/src/list.directive.ts","../../list/src/list.module.ts"],"mappings":"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","names":["ListSwipeDirection","ListSwipeEnd","i5.ListComponent","i6.ListItemComponent","i7.ListItemTemplateDirective","i8.ListSectionHeaderComponent","i7.ListSectionHeaderDirective","i7.ListHeaderDirective","i9.ListHeaderComponent","i7.ListFooterDirective","i10.ListExperimentalComponent","i11.ListItemColorDirective","i12.InfiniteScrollDirective"]}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ComponentFactoryResolver, Injector } from '@angular/core';
3
- import { LoadingController } from '@ionic/angular';
3
+ import { LoadingController } from '@ionic/angular/standalone';
4
4
 
5
5
  declare class LoadingOverlayService {
6
6
  private loadingController;
@@ -3,7 +3,7 @@ import { AfterViewInit, OnDestroy, ElementRef, InjectionToken, OnInit, TemplateR
3
3
  import { ActivatedRoute, Router, Routes, Params, Route, Data, CanDeactivateFn } from '@angular/router';
4
4
  import { KirbyAnimation, ThemeColor, PlatformService } from '@kirbydesign/designsystem/helpers';
5
5
  import { Observable } from 'rxjs';
6
- import { ModalController as ModalController$1, AnimationBuilder, IonContent } from '@ionic/angular';
6
+ import { ModalController as ModalController$1, AnimationBuilder, IonContent } from '@ionic/angular/standalone';
7
7
  import { WindowRef } from '@kirbydesign/designsystem/types';
8
8
  import { OverlayEventDetail as OverlayEventDetail$1 } from '@ionic/core/components';
9
9
  import { TranslationService, ResizeObserverService } from '@kirbydesign/designsystem/shared';
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, TemplateRef, OnInit, OnDestroy, AfterViewInit, AfterContentChecked, OnChanges, EventEmitter, ElementRef, QueryList, Injector, Renderer2, ChangeDetectorRef, NgZone, SimpleChanges } from '@angular/core';
3
3
  import { Router } from '@angular/router';
4
- import * as i5 from '@ionic/angular';
5
- import { IonRouterOutlet, NavController } from '@ionic/angular';
4
+ import * as i5 from '@ionic/angular/standalone';
5
+ import { IonRouterOutlet, NavController } from '@ionic/angular/standalone';
6
6
  import { Title } from '@angular/platform-browser';
7
7
  import { TabsComponent } from '@kirbydesign/designsystem/tabs';
8
8
  import * as i4 from '@kirbydesign/designsystem/header';
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-page.d.ts","sources":["../../page/src/page.component.ts","../../page/src/page-footer/page-footer.component.ts","../../page/src/page.module.ts"],"mappings":"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","names":["i6.PageComponent","i6.PageActionsComponent","i6.PageActionsDirective","i6.PageContentComponent","i7.PageFooterComponent","i6.PageContentDirective","i6.PageProgressComponent","i6.PageTitleComponent","i6.PageTitleDirective","i6.PageSubtitleDirective","i6.PageToolbarTitleDirective","i6.PageStickyContentDirective"]}
1
+ {"version":3,"file":"kirbydesign-designsystem-page.d.ts","sources":["../../page/src/page.component.ts","../../page/src/page-footer/page-footer.component.ts","../../page/src/page.module.ts"],"mappings":"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","names":["i6.PageComponent","i6.PageActionsComponent","i6.PageActionsDirective","i6.PageContentComponent","i7.PageFooterComponent","i6.PageContentDirective","i6.PageProgressComponent","i6.PageTitleComponent","i6.PageTitleDirective","i6.PageSubtitleDirective","i6.PageToolbarTitleDirective","i6.PageStickyContentDirective"]}
@@ -4,7 +4,7 @@ import { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
5
  import { FormFieldControl } from '@kirbydesign/designsystem/types';
6
6
  import * as i1 from '@angular/common';
7
- import * as i2 from '@ionic/angular';
7
+ import * as i2 from '@ionic/angular/standalone';
8
8
 
9
9
  declare class RadioComponent implements AfterViewInit, OnInit, AfterContentInit {
10
10
  private element;
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import * as i1 from '@angular/common';
3
- import * as i2 from '@ionic/angular';
4
- export { NavController } from '@ionic/angular';
3
+ import * as i2 from '@ionic/angular/standalone';
4
+ export { NavController } from '@ionic/angular/standalone';
5
5
 
6
6
  declare class RouterOutletComponent {
7
7
  main: boolean;
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { AfterViewInit, OnDestroy, EventEmitter, QueryList } from '@angular/core';
3
- import * as i3 from '@ionic/angular';
4
- import { IonRouterOutlet, IonTabs } from '@ionic/angular';
5
- export { IonRouterOutlet } from '@ionic/angular';
3
+ import * as i3 from '@ionic/angular/standalone';
4
+ import { IonRouterOutlet, IonTabs } from '@ionic/angular/standalone';
5
+ export { IonRouterOutlet } from '@ionic/angular/standalone';
6
6
  import * as rxjs from 'rxjs';
7
7
  import * as i1 from '@kirbydesign/designsystem/icon';
8
8
  import { IconComponent } from '@kirbydesign/designsystem/icon';
@@ -5,7 +5,7 @@ import { AvatarSize } from '@kirbydesign/designsystem/avatar';
5
5
  import { AttentionLevel, ButtonSize } from '@kirbydesign/designsystem/button';
6
6
  import { Locale } from 'date-fns';
7
7
  import { CalendarYearNavigatorConfig } from '@kirbydesign/designsystem/calendar';
8
- import { CardFlagLevel } from '@kirbydesign/designsystem/card';
8
+ import { CardFlagLevel, CardVariant } from '@kirbydesign/designsystem/card';
9
9
  import { ChartType as ChartType$1, InputSize, InputComponent, TextareaComponent, IconSize, ItemSwipeAction, ItemSlidingSide, BoundaryClass, ListSwipeAction, ThemeColor, StandAloneSpacing, ListShape, LoadOnDemandEvent, ReorderEvent } from '@kirbydesign/designsystem';
10
10
  import { ChartType, ChartDataset, ChartLabel, ChartHighlightedElements, ChartDataLabelOptions } from '@kirbydesign/designsystem/chart';
11
11
  import { ChartOptions } from 'chart.js';
@@ -124,9 +124,9 @@ declare class MockCardComponent {
124
124
  sizes: {
125
125
  [size: string]: number;
126
126
  };
127
- flat: boolean;
127
+ variant: CardVariant;
128
128
  static ɵfac: i0.ɵɵFactoryDeclaration<MockCardComponent, never>;
129
- static ɵcmp: i0.ɵɵComponentDeclaration<MockCardComponent, "kirby-card", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "backgroundImageUrl": { "alias": "backgroundImageUrl"; "required": false; }; "hasPadding": { "alias": "hasPadding"; "required": false; }; "sizes": { "alias": "sizes"; "required": false; }; "flat": { "alias": "flat"; "required": false; }; }, {}, never, ["*"], true, never>;
129
+ static ɵcmp: i0.ɵɵComponentDeclaration<MockCardComponent, "kirby-card", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "backgroundImageUrl": { "alias": "backgroundImageUrl"; "required": false; }; "hasPadding": { "alias": "hasPadding"; "required": false; }; "sizes": { "alias": "sizes"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
130
130
  }
131
131
 
132
132
  declare class MockBaseChartComponent {