@daffodil/design 0.91.0 → 0.92.3-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/accordion/README.md +26 -38
  2. package/accordion/index.d.ts +2 -2
  3. package/article/README.md +66 -46
  4. package/article/index.d.ts +22 -1
  5. package/article/src/article-theme.scss +12 -0
  6. package/breadcrumb/README.md +6 -1
  7. package/breadcrumb/index.d.ts +65 -11
  8. package/breadcrumb/src/breadcrumb-theme.scss +1 -1
  9. package/button/README.md +36 -33
  10. package/button/index.d.ts +26 -5
  11. package/button/src/button/basic/button-theme.scss +4 -2
  12. package/button/src/button/button-base.scss +26 -3
  13. package/button/src/button/icon/icon-theme.scss +10 -6
  14. package/button/src/button/raised/raised-theme.scss +4 -2
  15. package/callout/README.md +15 -27
  16. package/card/README.md +36 -61
  17. package/container/README.md +18 -23
  18. package/fesm2022/daffodil-design-accordion.mjs +13 -13
  19. package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
  20. package/fesm2022/daffodil-design-article.mjs +168 -26
  21. package/fesm2022/daffodil-design-article.mjs.map +1 -1
  22. package/fesm2022/daffodil-design-breadcrumb.mjs +180 -28
  23. package/fesm2022/daffodil-design-breadcrumb.mjs.map +1 -1
  24. package/fesm2022/daffodil-design-button.mjs +83 -42
  25. package/fesm2022/daffodil-design-button.mjs.map +1 -1
  26. package/fesm2022/daffodil-design-callout.mjs +23 -23
  27. package/fesm2022/daffodil-design-callout.mjs.map +1 -1
  28. package/fesm2022/daffodil-design-card.mjs +33 -33
  29. package/fesm2022/daffodil-design-card.mjs.map +1 -1
  30. package/fesm2022/daffodil-design-checkbox.mjs +13 -13
  31. package/fesm2022/daffodil-design-checkbox.mjs.map +1 -1
  32. package/fesm2022/daffodil-design-container.mjs +8 -8
  33. package/fesm2022/daffodil-design-container.mjs.map +1 -1
  34. package/fesm2022/daffodil-design-form-field.mjs +26 -26
  35. package/fesm2022/daffodil-design-form-field.mjs.map +1 -1
  36. package/fesm2022/daffodil-design-form.mjs +9 -9
  37. package/fesm2022/daffodil-design-form.mjs.map +1 -1
  38. package/fesm2022/daffodil-design-hero.mjs +23 -23
  39. package/fesm2022/daffodil-design-hero.mjs.map +1 -1
  40. package/fesm2022/daffodil-design-image.mjs +8 -8
  41. package/fesm2022/daffodil-design-image.mjs.map +1 -1
  42. package/fesm2022/daffodil-design-input.mjs +18 -14
  43. package/fesm2022/daffodil-design-input.mjs.map +1 -1
  44. package/fesm2022/daffodil-design-link-set.mjs +25 -17
  45. package/fesm2022/daffodil-design-link-set.mjs.map +1 -1
  46. package/fesm2022/daffodil-design-list.mjs +16 -16
  47. package/fesm2022/daffodil-design-list.mjs.map +1 -1
  48. package/fesm2022/daffodil-design-loading-icon.mjs +8 -8
  49. package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
  50. package/fesm2022/daffodil-design-media-gallery.mjs +13 -13
  51. package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
  52. package/fesm2022/daffodil-design-menu.mjs +223 -60
  53. package/fesm2022/daffodil-design-menu.mjs.map +1 -1
  54. package/fesm2022/daffodil-design-modal.mjs +33 -29
  55. package/fesm2022/daffodil-design-modal.mjs.map +1 -1
  56. package/fesm2022/daffodil-design-native-select.mjs +47 -41
  57. package/fesm2022/daffodil-design-native-select.mjs.map +1 -1
  58. package/fesm2022/daffodil-design-navbar.mjs +25 -21
  59. package/fesm2022/daffodil-design-navbar.mjs.map +1 -1
  60. package/fesm2022/daffodil-design-notification.mjs +16 -16
  61. package/fesm2022/daffodil-design-notification.mjs.map +1 -1
  62. package/fesm2022/daffodil-design-paginator.mjs +7 -7
  63. package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
  64. package/fesm2022/daffodil-design-progress-bar.mjs +10 -10
  65. package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
  66. package/fesm2022/daffodil-design-quantity-field.mjs +17 -14
  67. package/fesm2022/daffodil-design-quantity-field.mjs.map +1 -1
  68. package/fesm2022/daffodil-design-radio.mjs +16 -16
  69. package/fesm2022/daffodil-design-radio.mjs.map +1 -1
  70. package/fesm2022/daffodil-design-select.mjs +6 -6
  71. package/fesm2022/daffodil-design-select.mjs.map +1 -1
  72. package/fesm2022/daffodil-design-sidebar.mjs +25 -25
  73. package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
  74. package/fesm2022/daffodil-design-spinner.mjs +99 -0
  75. package/fesm2022/daffodil-design-spinner.mjs.map +1 -0
  76. package/fesm2022/daffodil-design-switch.mjs +3 -3
  77. package/fesm2022/daffodil-design-switch.mjs.map +1 -1
  78. package/fesm2022/daffodil-design-tabs.mjs +15 -15
  79. package/fesm2022/daffodil-design-tabs.mjs.map +1 -1
  80. package/fesm2022/daffodil-design-tag.mjs +7 -7
  81. package/fesm2022/daffodil-design-tag.mjs.map +1 -1
  82. package/fesm2022/daffodil-design-text-snippet.mjs +6 -8
  83. package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -1
  84. package/fesm2022/daffodil-design-textarea.mjs +6 -3
  85. package/fesm2022/daffodil-design-textarea.mjs.map +1 -1
  86. package/fesm2022/daffodil-design-toast.mjs +23 -25
  87. package/fesm2022/daffodil-design-toast.mjs.map +1 -1
  88. package/fesm2022/daffodil-design-tree.mjs +152 -103
  89. package/fesm2022/daffodil-design-tree.mjs.map +1 -1
  90. package/fesm2022/daffodil-design-youtube-player.mjs +6 -6
  91. package/fesm2022/daffodil-design-youtube-player.mjs.map +1 -1
  92. package/fesm2022/daffodil-design.mjs +385 -326
  93. package/fesm2022/daffodil-design.mjs.map +1 -1
  94. package/form-field/README.md +50 -85
  95. package/form-field/index.d.ts +11 -9
  96. package/hero/README.md +5 -5
  97. package/image/README.md +2 -2
  98. package/index.d.ts +184 -270
  99. package/input/README.md +4 -4
  100. package/input/index.d.ts +4 -3
  101. package/link-set/index.d.ts +9 -1
  102. package/list/README.md +2 -2
  103. package/loading-icon/README.md +1 -1
  104. package/loading-icon/index.d.ts +1 -1
  105. package/media-gallery/README.md +3 -3
  106. package/menu/README.md +107 -10
  107. package/menu/index.d.ts +143 -11
  108. package/modal/README.md +1 -1
  109. package/modal/index.d.ts +23 -15
  110. package/native-select/README.md +4 -4
  111. package/native-select/index.d.ts +8 -7
  112. package/navbar/README.md +23 -17
  113. package/navbar/index.d.ts +12 -2
  114. package/navbar/src/navbar-theme.scss +4 -46
  115. package/notification/README.md +4 -4
  116. package/package.json +1 -1
  117. package/paginator/README.md +42 -6
  118. package/paginator/index.d.ts +4 -2
  119. package/progress-bar/README.md +3 -3
  120. package/quantity-field/README.md +4 -4
  121. package/quantity-field/index.d.ts +4 -1
  122. package/radio/README.md +1 -1
  123. package/scss/theme.scss +7 -1
  124. package/scss/theming/_color-palettes.scss +0 -6
  125. package/select/README.md +4 -4
  126. package/sidebar/README.md +6 -6
  127. package/spinner/README.md +57 -0
  128. package/spinner/index.d.ts +53 -0
  129. package/spinner/src/spinner-theme.scss +62 -0
  130. package/switch/README.md +4 -4
  131. package/switch/index.d.ts +2 -2
  132. package/tabs/README.md +1 -1
  133. package/tabs/index.d.ts +2 -2
  134. package/tag/README.md +24 -30
  135. package/tag/index.d.ts +1 -1
  136. package/text-snippet/README.md +1 -1
  137. package/text-snippet/src/text-snippet-theme.scss +12 -0
  138. package/textarea/README.md +4 -4
  139. package/textarea/index.d.ts +4 -4
  140. package/toast/README.md +4 -4
  141. package/tree/README.md +39 -22
  142. package/tree/index.d.ts +57 -90
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-design.mjs","sources":["../../../libs/design/src/atoms/form/form-label/form-label.directive.ts","../../../libs/design/src/atoms/form/form-label/form-label.module.ts","../../../libs/design/src/core/prefix-suffix/prefix.directive.ts","../../../libs/design/src/core/prefix-suffix/suffix.directive.ts","../../../libs/design/src/core/prefix-suffix/prefix-suffix.module.ts","../../../libs/design/src/core/prefix-suffix/prefix-suffix.ts","../../../libs/design/src/core/colorable/colorable.ts","../../../libs/design/src/core/colorable/colorable.directive.ts","../../../libs/design/src/core/breakpoints/breakpoints.ts","../../../libs/design/src/core/breakpoints/noop.service.ts","../../../libs/design/src/core/breakpoints/provider.ts","../../../libs/design/src/core/constructor/constructor.ts","../../../libs/design/src/core/statusable/statusable.ts","../../../libs/design/src/core/statusable/statusable.directive.ts","../../../libs/design/src/core/skeletonable/skeletonable.directive.ts","../../../libs/design/src/core/text-alignable/text-alignable.ts","../../../libs/design/src/core/text-alignable/text-alignable.directive.ts","../../../libs/design/src/core/compactable/compactable.directive.ts","../../../libs/design/src/core/manage-container-layout/manage-container-layout.directive.ts","../../../libs/design/src/core/article-encapsulated/article-encapsulated.directive.ts","../../../libs/design/src/core/theming/types/theme.ts","../../../libs/design/src/core/theming/services/os-theme/ostheme.service.ts","../../../libs/design/src/core/theming/services/storage/theme-storage.service.ts","../../../libs/design/src/core/theming/functions/computer.ts","../../../libs/design/src/core/theming/services/theming.service.ts","../../../libs/design/src/core/theming/services/class-setter/theme-class-setter.service.ts","../../../libs/design/src/core/theming/initializer.ts","../../../libs/design/src/core/focus/focusable-elements.ts","../../../libs/design/src/core/focus/stack.service.ts","../../../libs/design/src/core/sizable/sizable.ts","../../../libs/design/src/core/sizable/sizable.directive.ts","../../../libs/design/src/core/openable/utils/state-error.ts","../../../libs/design/src/core/openable/openable.directive.ts","../../../libs/design/src/core/orientable/orientable.ts","../../../libs/design/src/core/orientable/orientable.directive.ts","../../../libs/design/src/core/selectable/selectable.directive.ts","../../../libs/design/src/core/sticky/sticky-tracker.directive.ts","../../../libs/design/src/core/disableable/disableable.directive.ts","../../../libs/design/src/core/error-state-matcher/error-state-matcher.ts","../../../libs/design/src/core/public_api.ts","../../../libs/design/src/public_api.ts","../../../libs/design/src/index.ts","../../../libs/design/src/daffodil-design.ts"],"sourcesContent":["import {\n Directive,\n HostBinding,\n} from '@angular/core';\n\n/**\n * @deprecated in favor of the {@link DaffFormFieldLabelDirective}. Deprecated in version 0.86.0. Will be removed in version 1.0.0.\n */\n@Directive({\n selector: '[daffFormLabel]',\n})\nexport class DaffFormLabelDirective {\n /**\n * @docs-private\n */\n @HostBinding('class.daff-form-label') class = true;\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffFormLabelDirective } from './form-label.directive';\n\n/**\n * @deprecated in favor of standalone components. Deprecated in version 0.84.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n exports: [\n DaffFormLabelDirective,\n ],\n imports: [\n DaffFormLabelDirective,\n ],\n})\n\nexport class DaffFormLabelModule {}\n","import { Directive } from '@angular/core';\n\n/**\n * DaffPrefixDirective can be used to place content before another piece of content\n * in components like `DaffFormFieldComponent` or `DaffListComponent`.\n */\n@Directive({\n selector: '[daffPrefix]',\n host: {\n class: 'daff-prefix',\n },\n})\nexport class DaffPrefixDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * DaffSuffixDirective can be used to place content after another piece of content\n * in components like `DaffFormFieldComponent` or `DaffListComponent`.\n */\n@Directive({\n selector: '[daffSuffix]',\n host: {\n class: 'daff-suffix',\n },\n})\nexport class DaffSuffixDirective { }\n","import { NgModule } from '@angular/core';\n\nimport { DaffPrefixDirective } from './prefix.directive';\nimport { DaffSuffixDirective } from './suffix.directive';\n\n/**\n * @deprecated in favor of standalone components. Deprecated in version 0.91.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n DaffPrefixDirective,\n DaffSuffixDirective,\n ],\n exports: [\n DaffPrefixDirective,\n DaffSuffixDirective,\n ],\n})\nexport class DaffPrefixSuffixModule {}\n","import { DaffPrefixDirective } from './prefix.directive';\nimport { DaffSuffixDirective } from './suffix.directive';\n\nexport const DAFF_PREFIX_SUFFIX_DIRECTIVES = <const> [\n DaffPrefixDirective,\n DaffSuffixDirective,\n];\n","export interface DaffColorable {\n color: DaffPalette;\n}\n\n/**\n * These are the valid options that can be passed to a DaffColorable component.\n */\nexport type DaffPalette = 'primary' | 'secondary' | 'tertiary' | 'light' | 'dark' | 'theme' | 'theme-contrast' | 'black' | 'white' | undefined;\n\n/**\n * Enumerates the available color palette options for a component.\n * These values can be used to apply specific color styles to components within the application.\n */\nexport enum DaffPaletteEnum {\n /**\n * Your primary color.\n */\n Primary = 'primary',\n\n /**\n * Your secondary color.\n */\n Secondary = 'secondary',\n\n /**\n * Your tertiary color.\n */\n Tertiary = 'tertiary',\n\n /**\n * A light color that does not change based on the defined theme.\n */\n Light = 'light',\n\n /**\n * A dark color that does not change based on the defined theme.\n */\n Dark = 'dark',\n\n /**\n * A color that matches the defined theme.\n */\n Theme = 'theme',\n\n /**\n * A color that contrasts against the defined theme.\n */\n ThemeContrast = 'theme-contrast',\n\n /**\n * @deprecated Deprecated in version 0.82.0. Will be removed in version 1.0.0.\n * Black. It's dark.\n */\n Black = 'black',\n\n /**\n * @deprecated Deprecated in version 0.82.0. Will be removed in version 1.0.0.\n * White. It's bright.\n */\n White = 'white',\n}\n","import {\n Directive,\n Input,\n isDevMode,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffColorable,\n DaffPalette,\n DaffPaletteEnum,\n} from './colorable';\n\nconst colorInPalette = (color: string) => (<any>Object).values(DaffPaletteEnum).includes(color);\n\nconst validateColor = (color: string) => {\n if(isDevMode()) {\n if(color !== undefined && !colorInPalette(color)) {\n console.warn(color + ' is not a valid color in DaffPalette');\n }\n }\n};\n\n/**\n * `DaffColorableDirective` allows a component to conditionally apply color-specific\n * styles by setting CSS classes based on the specified color. This directive is useful\n * for applying different color palettes to a component in an Angular application.\n *\n * Supported colors: `primary | secondary | tertiary | light | dark | theme | theme-contrast`\n *\n * | Color | Class |\n * | -------- | ----- |\n * | `primary` | `.daff-primary`|\n * | `secondary` | `.daff-secondary`|\n * | `tertiary` | `.daff-tertiary`|\n * | `light` | `daff-light` |\n * | `dark` | `daff-dark` |\n * | `theme` | `daff-theme`|\n * | `theme-contrast` | `.daff-theme-contrast`|\n *\n * `white` and `black` have been deprecated in favor of `light` and `dark`.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffColorable [color]=\"primary\">Colored content</div>\n * ```\n *\n * ```scss\n * .div {\n * &.daff-primary {\n * color: daff-color($primary);\n * }\n * }\n * ```\n *\n * In this example, the `daff-primary` class is applied to the `div` element, allowing you to\n * use the color class to style the `div`.\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffColorableDirective,\n * inputs: ['color'],\n * },\n * ],\n * })\n * export class CustomComponent {\n * @HostBinding('class.custom-component') class = true;\n * }\n * ```\n *\n * ```scss\n * .custom-component {\n * &.daff-primary {\n * background: daff-color($primary, 10);\n * color: daff-color($primary, 90);\n * }\n * }\n * ```\n */\n@Directive({\n selector: '[daffColorable]',\n host: {\n '[class.daff-primary]': 'color === \"primary\"',\n '[class.daff-secondary]': 'color === \"secondary\"',\n '[class.daff-tertiary]': 'color === \"tertiary\"',\n '[class.daff-light]': 'color === \"light\"',\n '[class.daff-dark]': 'color === \"dark\"',\n '[class.daff-theme]': 'color === \"theme\"',\n '[class.daff-theme-contrast]': 'color === \"theme-contrast\"',\n '[class.daff-black]': 'color === \"black\"',\n '[class.daff-white]': 'color === \"white\"',\n },\n})\nexport class DaffColorableDirective implements DaffColorable, OnChanges, OnInit {\n /**\n * Sets the color on a component.\n */\n @Input() color: DaffPalette;\n\n /**\n * Sets a default color.\n *\n * @example\n * ```ts\n * constructor(private colorableDirective: DaffColorableDirective) {\n * this.colorableDirective.defaultColor = 'theme';\n * }\n * ```\n */\n defaultColor: DaffPalette;\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.color.currentValue) {\n this.color = this.defaultColor;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n validateColor(this.color);\n if (!this.color) {\n this.color = this.defaultColor;\n }\n }\n}\n\n","export enum DaffBreakpoints {\n DESKTOP = '(min-width: 1920px)',\n LAPTOP = '(min-width: 1440px)',\n SMALL_LAPTOP = '(min-width: 1200px)',\n BIG_TABLET = '(min-width: 1024px)',\n TABLET = '(min-width: 768px)',\n MOBILE = '(min-width: 480px)',\n}\n","import {\n BreakpointObserver,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { Injectable } from '@angular/core';\nimport {\n Observable,\n of,\n} from 'rxjs';\n\n/**\n * A stubbed out breakpoint observer service.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NoopBreakpointObserver implements Omit<BreakpointObserver, never> {\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method, @angular-eslint/use-lifecycle-interface\n ngOnDestroy(): void {}\n isMatched(value: string | readonly string[]): boolean {\n return false;\n }\n observe(value: string | readonly string[]): Observable<BreakpointState> {\n return of();\n }\n\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n inject,\n InjectionToken,\n PLATFORM_ID,\n} from '@angular/core';\n\nimport { NoopBreakpointObserver } from './noop.service';\n\n/**\n * Provides a {@link NoopBreakpointObserver} if the platform is not browser.\n */\nexport const SERVER_SAFE_BREAKPOINT_OBSERVER = new InjectionToken<Omit<BreakpointObserver, never>>('SERVER_SAFE_BREAKPOINT_OBSERVER', {\n factory: () =>\n isPlatformBrowser(inject(PLATFORM_ID))\n ? inject(BreakpointObserver)\n : inject(NoopBreakpointObserver),\n});\n","/**\n * A basic constructor type useful for mixins\n * See https://blog.mariusschulz.com/2017/05/26/typescript-2-2-mixin-classes\n * for a really good explanation of why mixins are useful.\n */\n\nexport type Constructor<T = Record<string, any>> = new (...args: any[]) => T;\n","/**\n * The `DaffStatusable` interface defines a component that can have a status.\n * This status determines the styling or behavior of the component.\n */\nexport interface DaffStatusable {\n /**\n * The status of the component.\n */\n status: DaffStatus;\n}\n\n/**\n * The `DaffStatus` type defines the possible status values that a component can have.\n * - 'info': Indicates an informational status.\n * - 'warn': Indicates a warning status.\n * - 'critical': Indicates a critical or error status.\n * - 'success': Indicates a success status.\n */\nexport type DaffStatus = 'info' | 'warn' | 'critical' | 'success';\n\n/**\n * The `DaffStatusEnum` enumerates the possible status values for a component.\n */\nexport enum DaffStatusEnum {\n Info = 'info',\n Warn = 'warn',\n Critical = 'critical',\n Success = 'success'\n}\n","import {\n Directive,\n Input,\n isDevMode,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffStatus,\n DaffStatusEnum,\n DaffStatusable,\n} from './statusable';\n\nconst statusValues = (status: string) => (<any>Object).values(DaffStatusEnum).includes(status);\n\nconst validateStatus = (status: string) => {\n if(isDevMode()) {\n if (status !== undefined && !statusValues(status)) {\n console.warn(\n `'${status}' is not a valid value of the status property.\\n\\n` +\n `The available values are: info, warn, critical, or success.`,\n );\n }\n }\n};\n\n/**\n * `DaffStatusableDirective` allows a component to conditionally apply status-specific\n * styles by setting CSS classes based on the specified status. This directive is useful\n * for indicating different statuses such as info, warning, critical, or success states.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffStatusable [status]=\"componentStatus\">Status content</div>\n * ```\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffStatusableDirective,\n * inputs: ['status'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n *\n * ```scss\n * :host {\n * &.daff-critical {\n * background: daff-color($red, 10);\n * color: daff-color($red, 90);\n * }\n * }\n * ```\n *\n * The directive applies the following CSS classes to the component based on the status:\n *\n * - `daff-info`: Applied when the status is `info`.\n * - `daff-warn`: Applied when the status is `warn`.\n * - `daff-critical`: Applied when the status is `critical`.\n * - `daff-success`: Applied when the status is `success`.\n */\n@Directive({\n selector: '[daffStatusable]',\n host: {\n '[class.daff-info]': 'status === \"info\"',\n '[class.daff-warn]': 'status === \"warn\"',\n '[class.daff-critical]': 'status === \"critical\"',\n '[class.daff-success]': 'status === \"success\"',\n },\n})\nexport class DaffStatusableDirective implements DaffStatusable, OnChanges, OnInit {\n /**\n * Sets the status on a component.\n */\n @Input() status: DaffStatus;\n\n /**\n * Sets a default status.\n *\n * @example\n * ```ts\n * constructor(private statusDirective: DaffStatusableDirective) {\n * this.statusDirective.defaultStatus = 'info';\n * }\n * ```\n */\n defaultStatus: DaffStatus;\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.status.currentValue) {\n this.status = this.defaultStatus;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n validateStatus(this.status);\n\n if (this.defaultStatus && !this.status) {\n this.status = this.defaultStatus;\n }\n }\n}\n\n","import {\n Directive,\n Input,\n} from '@angular/core';\n\n/**\n * `DaffSkeletonableDirective` allows a component to display a skeleton loading\n * state by conditionally applying a CSS class. This is useful for indicating to\n * users that content is loading or being processed. This directive can be used to\n * apply a skeleton loading state to any component by toggling the `skeleton`\n * input property. When `skeleton` is `true`, the `daff-skeleton` CSS class\n * is applied, which should style the component to look like a loading placeholder.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffSkeletonable [skeleton]=\"isLoading\">Content</div>\n * ```\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffSkeletonableDirective,\n * inputs: ['skeleton'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n * ```\n *\n * ```scss\n * :host {\n * .daff-skeleton {\n * @include state.skeleton-screen(48px, 24px);\n * }\n * }\n * ```\n *\n * The directive applies the `daff-skeleton` class to the component should be defined in your styles to display the loading\n * state as desired. It can be used in conjuction with the `skeleton-screen` mixin, which provides predefined loading styles.\n */\n@Directive({\n selector: '[daffSkeletonable]',\n host: {\n '[class.daff-skeleton]': 'skeleton',\n },\n})\nexport class DaffSkeletonableDirective {\n /**\n * Controls whether the component displays a skeleton loading state.\n */\n @Input() skeleton = false;\n}\n","/**\n * Interface for giving a component the ability to customize text alignment for component-specific UI.\n */\nexport interface DaffTextAlignable {\n textAlignment: DaffTextAlignment;\n}\n\n/**\n * The possible types that can be passed to a DaffTextAlignable component\n */\nexport type DaffTextAlignment = 'left' | 'center' | 'right';\nexport enum DaffTextAlignmentEnum {\n Left = 'left',\n Center = 'center',\n Right = 'right'\n}\n","import {\n Directive,\n Input,\n isDevMode,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffTextAlignable,\n DaffTextAlignment,\n DaffTextAlignmentEnum,\n} from './text-alignable';\n\nconst textAlignmentValues = (textAlignment: string) => (<any>Object).values(DaffTextAlignmentEnum).includes(textAlignment);\n\nconst validateTextAlignment = (textAlignment: string) => {\n if(isDevMode()) {\n if(textAlignment !== undefined && !textAlignmentValues(textAlignment)) {\n console.warn(`'${textAlignment}' is not a valid value of the textAlignment property. The available values are: left, center, or right.`);\n }\n }\n};\n\n/**\n * `DaffTextAlignableDirective` allows for dynamic text alignment of a component by\n * setting CSS classes based on the specified text alignment. This directive is\n * useful when text alignment needs to be managed dynamically in an Angular component.\n *\n * ## Why not just use CSS?\n *\n * While the native CSS `text-align` property can be used for static text alignment,\n * the `DaffTextAlignableDirective` provides a structured and consistent way to handle\n * dynamic text alignment within Angular components in more complex use cases where the\n * application of `text-align: center;` would cause unexpected side effects.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffTextAlignable textAlignment=\"center\">Aligned text</div>\n * ```\n *\n * In this example, the `daff-center` class is added to the `div` element, allowing\n * you to style the `div` as you wish using the class.\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffTextAlignableDirective,\n * inputs: ['textAlignment'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n * ```\n *\n * ```scss\n * .custom-component {\n * &.daff-left {\n * text-align: left;\n * }\n * }\n * ```\n */\n@Directive({\n selector: '[daffTextAlignable]',\n host: {\n '[class.daff-left]': 'textAlignment === \"left\"',\n '[class.daff-center]': 'textAlignment === \"center\"',\n '[class.daff-right]': 'textAlignment === \"right\"',\n },\n})\nexport class DaffTextAlignableDirective implements DaffTextAlignable, OnChanges, OnInit {\n\n /**\n * The text alignment of the component.\n */\n @Input() textAlignment: DaffTextAlignment;\n\n /**\n * Sets a default alignment.\n *\n * @example\n * ```ts\n * constructor(private textAligmentDirective: DaffTextAlignableDirective) {\n * this.textAligmentDirective.defaultAlignent = 'left';\n * }\n * ```\n */\n public defaultAlignment: DaffTextAlignment;\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.textAlignment?.currentValue) {\n this.textAlignment = this.defaultAlignment;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n validateTextAlignment(this.textAlignment);\n\n if (!this.textAlignment) {\n this.textAlignment = this.defaultAlignment;\n }\n }\n}\n\n","import {\n Directive,\n Input,\n} from '@angular/core';\n\n/**\n * `DaffCompactableDirective` allows a component to conditionally apply a compact\n * style by toggling a CSS class. This is useful for creating components that can\n * switch between regular and compact styles based on the `compact` property.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffCompactable [compact]=\"isCompact\">Content goes here</div>\n * ```\n *\n * In this example, the `daff-compact` class is applied to the `div` element when\n * `isCompact` is `true`, making the `div` display its compact state.\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffCompactableDirective,\n * inputs: ['compact'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n * ```\n *\n * The directive applies the `daff-compact` class to the component and\n * should be defined in your styles to display the compact state as desired.\n *\n * ```scss\n * :host {\n * padding: 8px 16px;\n *\n * &.daff-compact {\n * padding: 4px 8px;\n * }\n * }\n * ```\n */\n@Directive({\n selector: '[daffCompactable]',\n host: {\n '[class.daff-compact]': 'compact',\n },\n})\nexport class DaffCompactableDirective {\n /**\n * Controls whether the component is compact.\n */\n @Input() compact = false;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * `DaffManageContainerLayoutDirective` gives a component the ability to manage a `DaffContainerComponent`'s layout.\n * By including this directive, predetermined layout styles are passed down to the container.\n *\n * To understand the motivation for this directive, consider:\n *\n * ```html\n * <daff-container>\n * <daff-hero></daff-hero>\n * </daff-container>\n * ```\n * vs.\n *\n * ```html\n * <daff-hero>\n * <daff-container></daff-container>\n * </daff-hero>\n * ```\n *\n * The former may inappropriately constrain the width of its child elements,\n * while the latter (without `DaffManageContainerLayoutDirective`) may unexpectedly\n * interfere in the layout features of its parent element (i.e. display: grid, display: flex).\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <my-custom-component daffManageContainerLayout>\n * <daff-container size=\"lg\"></daff-container>\n * </my-custom-component>\n * ```\n *\n * ```scss\n * :host {\n * display: grid;\n * grid-template-columns: 1fr 1fr;\n * }\n * ```\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'my-custom-component',\n * template: 'my-custom-component.html',\n * hostDirectives: [{ directive: DaffManageContainerLayoutDirective }],\n * })\n * export class MyCustomComponent { }\n *\n * ```scss\n * :host {\n * display: grid;\n * grid-template-columns: 1fr 1fr;\n * }\n * ```\n *\n * This directive will apply the `daff-manage-container-layout` class to your component, ensuring that the styles set on `:host` are passed down to the container.\n */\n\n@Directive({\n selector: '[daffManageContainerLayout]',\n host: {\n class: 'daff-manage-container-layout',\n },\n})\nexport class DaffManageContainerLayoutDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * `DaffArticleEncapsulatedDirective` is used to encapsulate custom components within an article,\n * preventing {@link DaffArticleComponent } styles from bleeding into the component.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <my-custom-component daffArticleEncapsulated></my-custom-component>\n * ```\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [{ directive: DaffArticleEncapsulatedDirective }],\n * })\n * export class CustomComponent { }\n * ```\n *\n * This directive will apply the `daff-ae` class to the component, ensuring that it is encapsulated from the article's styles.\n */\n@Directive({\n selector: '[daffArticleEncapsulated]',\n host: {\n class: 'daff-ae',\n },\n})\nexport class DaffArticleEncapsulatedDirective {}\n","/**\n * The possible states of a theme.\n */\nexport enum DaffTheme {\n Light = 'light',\n Dark = 'dark',\n None = 'none'\n}\n","\nimport {\n Injectable,\n Inject,\n DOCUMENT,\n} from '@angular/core';\nimport {\n Observable,\n of,\n fromEventPattern,\n} from 'rxjs';\nimport {\n map,\n startWith,\n} from 'rxjs/operators';\n\nimport { DaffTheme } from '../../types/theme';\n\nexport const mediaQueryDarkPreference = '(prefers-color-scheme: dark)';\n\nexport const addHandlerFactory = (window: Window) => (handler: any) => {\n const query = window.matchMedia(mediaQueryDarkPreference);\n return 'addEventListener' in query\n ? query.addEventListener('change', handler)\n : (<MediaQueryList>query).addListener(handler);\n};\n\nexport const removeHandlerFactory = (window: Window) => (handler: any) => {\n const query = window.matchMedia(mediaQueryDarkPreference);\n return 'removeEventListener' in query\n ? query.removeEventListener('change', handler)\n : (<MediaQueryList>query).removeListener(handler);\n};\n\n/**\n * A service for retrieving the operating system's theme preference.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffOsThemeService {\n\n preference$: Observable<DaffTheme>;\n\n private doc?: Document;\n\n constructor(@Inject(DOCUMENT) _doc: any) {\n this.doc = <Document>_doc;\n\n this.preference$ = this.doc.defaultView?.matchMedia\n ? fromEventPattern<MediaQueryListEvent>(\n addHandlerFactory(this.doc.defaultView),\n removeHandlerFactory(this.doc.defaultView),\n )\n .pipe(\n startWith(this.doc.defaultView?.matchMedia(mediaQueryDarkPreference)),\n map((e: MediaQueryListEvent) => e.matches),\n map((prefersDark) => prefersDark ? DaffTheme.Dark : DaffTheme.Light),\n )\n : of(DaffTheme.None);\n }\n\n /**\n * Get the operating system's theme preference.\n */\n public getThemePreference(): Observable<DaffTheme> {\n return this.preference$;\n }\n}\n","\nimport {\n Injectable,\n Inject,\n DOCUMENT,\n} from '@angular/core';\nimport {\n Observable,\n fromEvent,\n Subject,\n merge,\n EMPTY,\n of,\n} from 'rxjs';\nimport {\n map,\n filter,\n startWith,\n shareReplay,\n catchError,\n} from 'rxjs/operators';\n\nimport {\n DaffPersistenceService,\n DaffServerSafePersistenceServiceToken,\n} from '@daffodil/core';\n\nimport { DaffTheme } from '../../types/theme';\n\nexport type ThemeStorageEvent = Pick<StorageEvent, 'newValue' | 'key'>;\n\nexport const THEME_STORAGE_KEY = 'DAFF_THEME';\n\nexport const coerceValue = (val?: string): DaffTheme =>\n val === DaffTheme.Dark || val === DaffTheme.Light\n ? val\n : DaffTheme.None;\n\n/**\n * Generate a StorageEvent\n */\nconst storageEventBuilder = (\n value: DaffTheme,\n): ThemeStorageEvent => ({\n key: THEME_STORAGE_KEY,\n newValue: coerceValue(value) !== DaffTheme.None ? value : null,\n});\n\n/**\n * A service for retrieving and managing the application's stored theme.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffThemeStorageService {\n private theme$: Observable<DaffTheme>;\n private storage$: Subject<ThemeStorageEvent> = new Subject();\n private doc?: Document;\n\n constructor(\n @Inject(DaffServerSafePersistenceServiceToken)\n private storage: DaffPersistenceService,\n @Inject(DOCUMENT) _doc: any,\n ) {\n this.doc = <Document>_doc;\n this.theme$ = merge(\n this.storage$,\n this.doc.defaultView\n ? fromEvent<ThemeStorageEvent>(\n <Window & typeof globalThis>this.doc.defaultView,\n 'storage',\n ).pipe(\n startWith(\n storageEventBuilder(\n this.storage.getItem(THEME_STORAGE_KEY),\n ),\n ),\n catchError((e) => EMPTY),\n )\n : of(storageEventBuilder(\n this.storage.getItem(THEME_STORAGE_KEY),\n )),\n ).pipe(\n filter(\n (e: ThemeStorageEvent) => e.key === THEME_STORAGE_KEY,\n ),\n map((e) => coerceValue(e.newValue)),\n shareReplay(1),\n );\n }\n\n /**\n * Given that Safari doesn't respect in-tab storage events, we have to manually\n * fire storage events in the open tab on Webkit based browsers.\n */\n private progressStorageEvent(theme: DaffTheme) {\n this.storage$.next(storageEventBuilder(theme));\n }\n\n getThemeAsObservable(): Observable<DaffTheme> {\n return this.theme$;\n }\n\n getTheme(): DaffTheme {\n return coerceValue(this.storage.getItem(THEME_STORAGE_KEY));\n }\n\n setTheme(theme: DaffTheme): void {\n this.progressStorageEvent(theme);\n this.storage.setItem(THEME_STORAGE_KEY, theme);\n }\n\n removeThemeSetting(): void {\n this.progressStorageEvent(DaffTheme.None);\n this.storage.removeItem(THEME_STORAGE_KEY);\n }\n}\n","import { DaffTheme } from '../types/theme';\n\n/**\n * Computes the appropriate application theme from the specified values.\n * It cascades from `storedPreference` to `osPreference` to `defaultTheme`.\n */\nexport const daffComputeThemeSetting = (\n osPreference?: DaffTheme,\n storedPreference?: DaffTheme,\n defaultTheme: DaffTheme = DaffTheme.Dark,\n): DaffTheme => {\n if (storedPreference) {\n return storedPreference;\n }\n\n if (osPreference === 'dark') {\n return DaffTheme.Dark;\n }\n\n if (osPreference === 'light') {\n return DaffTheme.Light;\n }\n\n return defaultTheme;\n};\n","import { Injectable } from '@angular/core';\nimport {\n Observable,\n combineLatest,\n} from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { DaffOsThemeService } from './os-theme/ostheme.service';\nimport { DaffThemeStorageService } from './storage/theme-storage.service';\nimport { daffComputeThemeSetting } from '../functions/computer';\nimport { DaffTheme } from '../types/theme';\n\n/**\n * A service for controlling the application's theme.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffThemingService {\n private theme$: Observable<DaffTheme>;\n private theme: DaffTheme;\n\n constructor(\n private osTheme: DaffOsThemeService,\n private themeStorage: DaffThemeStorageService,\n ) {\n\n this.theme$ = combineLatest([\n this.osTheme.getThemePreference(),\n this.themeStorage.getThemeAsObservable(),\n ]).pipe(\n map(([osPreference, storedPreference]) => daffComputeThemeSetting(osPreference, storedPreference)),\n );\n\n this.theme$.subscribe((theme) => {\n this.theme = theme;\n });\n }\n\n /**\n * Get the current theme.\n */\n getTheme(): Observable<DaffTheme> {\n return this.theme$;\n }\n\n /**\n * Set the theme to dark mode.\n */\n darkMode() {\n this.themeStorage.setTheme(DaffTheme.Dark);\n }\n\n /**\n * Set the theme to light mode.\n */\n lightMode() {\n this.themeStorage.setTheme(DaffTheme.Light);\n }\n\n /**\n * Switch between themes.\n */\n switchTheme(): void {\n return this.theme === DaffTheme.Dark\n ? this.lightMode()\n : this.darkMode();\n }\n}\n","\nimport {\n Injectable,\n Inject,\n Renderer2,\n RendererFactory2,\n DOCUMENT,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { DaffTheme } from '../../types/theme';\nimport { DaffThemingService } from '../theming.service';\n\nexport const DAFF_THEME_DARK_CSS_CLASS = 'daff-theme-dark';\nexport const DAFF_THEME_LIGHT_CSS_CLASS = 'daff-theme-light';\n\n/**\n * This class updates the body of the application with the theme's appropriate class.\n * Note that this service is not provided tree-shakably by intention.\n * It is intended to be provided manually during setup.\n */\n@Injectable()\nexport class DaffThemeClassSetterService {\n private renderer: Renderer2;\n private subscription: Subscription;\n private doc?: Document;\n\n constructor(\n @Inject(DOCUMENT) _doc: any,\n private rendererFactory: RendererFactory2,\n private themingService: DaffThemingService,\n ) {\n this.doc = <Document>_doc;\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n /**\n * This function is intended to only be called once when the service\n * is initialized for the very first time. This will mutate the class\n * on the body of the document for the appropriate theme as controlled\n * by the state of the application's theme.\n */\n beginThemeSync(): void {\n this.subscription = this.themingService.getTheme().subscribe((theme) => {\n // For simplicty, remove all previously applied themes.\n this.renderer.removeClass(this.doc.body, DAFF_THEME_LIGHT_CSS_CLASS);\n this.renderer.removeClass(this.doc.body, DAFF_THEME_DARK_CSS_CLASS);\n this.renderer.addClass(this.doc.body, theme === DaffTheme.Dark ? DAFF_THEME_DARK_CSS_CLASS : DAFF_THEME_LIGHT_CSS_CLASS);\n });\n }\n\n /**\n * This unsubscribes from the bodyClass subscription that exists.\n */\n destroy(): void {\n this.subscription?.unsubscribe();\n this.renderer.removeClass(this.doc.body, DAFF_THEME_LIGHT_CSS_CLASS);\n this.renderer.removeClass(this.doc.body, DAFF_THEME_DARK_CSS_CLASS);\n }\n}\n","import {\n inject,\n makeEnvironmentProviders,\n provideAppInitializer,\n} from '@angular/core';\n\nimport { DaffThemeClassSetterService } from './services/class-setter/theme-class-setter.service';\n\nexport const DAFF_THEME_INIT = (classSetter: DaffThemeClassSetterService) => () => classSetter.beginThemeSync();\n\n/**\n * The theme provider for the app.\n * This configures updating the body with the theme class.\n */\nexport const DAFF_THEME_INITIALIZER = makeEnvironmentProviders([\n DaffThemeClassSetterService,\n provideAppInitializer(() => {\n const initializerFn = (DAFF_THEME_INIT)(inject(DaffThemeClassSetterService));\n return initializerFn();\n }),\n]);\n","export const daffFocusableElementsSelector = 'a[href],a[routerlink], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])';\n","\nimport {\n Inject,\n Injectable,\n DOCUMENT,\n} from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class DaffFocusStackService {\n private _stack: HTMLElement[] = [];\n\n constructor(@Inject(DOCUMENT) private document: any) {\n\n }\n\n /**\n * Return the current length of the stack.\n */\n length(): number {\n return this._stack.length;\n }\n\n /**\n * Adds a HTML element to a focus stack and returns the new length of the stack.\n *\n * Generally, you will probably want to call this before you transition focus\n * onto a new element.\n *\n * @example Using the push function\n * ```ts\n * this._focusStack.push(this._doc.activeElement);\n * ```\n */\n push(el: HTMLElement | undefined = undefined): number {\n this._stack.push(el ?? this.document.activeElement);\n return this._stack.length;\n }\n\n /**\n * Focuses on the HTML element at the top of a stack.\n *\n * @example Using the focus function\n * ```ts\n * this._focusStack.focus(this._doc.activeElement);\n * ```\n */\n focus() {\n if(this._stack.length >= 1) {\n this._stack.slice(-1)[0].focus();\n } else {\n (<HTMLElement>this.document.activeElement).blur();\n }\n }\n\n /**\n * Removes the HMTL element at the top of a stack and focuses on it.\n */\n pop(focus: boolean = true): HTMLElement {\n let el = this._stack.pop();\n while(el === undefined && this._stack.length > 0) {\n el = this._stack.pop();\n }\n\n if(el) {\n if(focus) {\n el.focus();\n }\n return el;\n }\n\n (<HTMLElement>this.document.activeElement).blur();\n return this.document.activeElement;\n }\n}\n","/**\n * Interfaces that gives a component the ability to customize sizing for component specific UI.\n */\n\nexport interface DaffSizable<T extends DaffSizeAllType> {\n size: T;\n}\n\n/**\n * The possible types that can be passed to a component that implements DaffSizable\n */\n\nexport type DaffSizeXSmallType = 'xs';\nexport type DaffSizeSmallType = 'sm';\nexport type DaffSizeMediumType = 'md';\nexport type DaffSizeLargeType = 'lg';\nexport type DaffSizeXLargeType = 'xl';\n\n/**\n * The a type representing all available sizes.\n */\nexport type DaffSizeAllType = DaffSizeXSmallType | DaffSizeSmallType | DaffSizeMediumType | DaffSizeLargeType | DaffSizeXLargeType;\n\nexport enum DaffSizableEnum {\n XSmall = 'xs',\n Small = 'sm',\n Medium = 'md',\n Large = 'lg',\n XLarge = 'xl'\n}\n","import {\n Directive,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffSizable,\n DaffSizeAllType,\n} from './sizable';\n\n/**\n * `DaffSizableDirective` allows for dynamic sizing of a component by setting\n * CSS classes based on the specified size.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffSizable [size]=\"small\">Sized content</div>\n * ```\n * In this example, the `daff-small` class is applied to the `div` element, allowing you to\n * use the class to style the `div`.\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * standalone: true,\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffSizableDirective,\n * inputs: ['size'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n * ```\n *\n * ```scss\n * :host {\n * &.daff-sm {\n * width: 24px;\n * }\n *\n * &.daff-md {\n * width: 32px;\n * }\n * }\n * ```\n *\n * The directive applies the following CSS classes to the component based on the size:\n *\n * - `daff-xs`: Applied when the size is `xs`.\n * - `daff-sm`: Applied when the size is `sm`.\n * - `daff-md`: Applied when the size is `md`.\n * - `daff-lg`: Applied when the size is `lg`.\n * - `daff-xl`: Applied when the size is `xl`.\n */\n@Directive({\n selector: '[daffSizable]',\n host: {\n '[class.daff-xs]': 'size === \"xs\"',\n '[class.daff-sm]': 'size === \"sm\"',\n '[class.daff-md]': 'size === \"md\"',\n '[class.daff-lg]': 'size === \"lg\"',\n '[class.daff-xl]': 'size === \"xl\"',\n },\n})\nexport class DaffSizableDirective<T extends DaffSizeAllType> implements DaffSizable<T>, OnChanges, OnInit {\n /**\n * The size of the component.\n */\n @Input() size: T;\n\n /**\n * Sets a default size.\n *\n * @example\n * ```ts\n * constructor(private sizableDirective: DaffSizableDirective) {\n * this.sizableDirective.defaultSize = 'md';\n * }\n * ```\n */\n public defaultSize: T;\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if(!changes.size?.currentValue) {\n this.size = this.defaultSize;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n if(!this.size) {\n this.size = this.defaultSize;\n }\n }\n}\n\n","export const DaffOpenableStateError = '`open` cannot be set as an input property on the DaffOpenableDirective if it is not stateless. Did you mean to call `reveal`, `hide`, or `toggle`?';\n","import {\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n isDevMode,\n} from '@angular/core';\n\nimport { DaffOpenable } from './openable';\nimport { DaffOpenableStateError } from './utils/state-error';\n\n/**\n * A directive that opens or closes a component. It should only be used as an [Angular Host Directive](https://angular.dev/guide/directives/directive-composition-api).\n * This directive is stateless by default, but it supports both a state and stateless implementation. Only one version should be used within a component.\n *\n * @example Using the DaffOpenableDirective\n * ```ts\n * import {\n * Component,\n * ChangeDetectionStrategy,\n * } from '@angular/core';\n *\n * import { DaffOpenableDirective } from '@daffodil/design';\n *\n * @Component({\n * selector: 'custom-component',\n * template: `\n * <button (click)=\"toggle()\">Click me!</button>\n * <div class=\"hidden-block\">This is a hidden block that can be shown by clicking the button.</div>\n * `,\n * styles: [`\n * :host {\n * .hidden-block {\n * display: none;\n * }\n *\n * &.daff-open {\n * .hidden-block {\n * display: block;\n * }\n * }\n * }`],\n * changeDetection: ChangeDetectionStrategy.OnPush,\n * hostDirectives: [{\n * directive: DaffOpenableDirective,\n * }],\n * })\n * export class CustomComponent {\n * constructor(private openDirective: DaffOpenableDirective) {}\n *\n * toggle() {\n * this.openDirective.toggle();\n * }\n * }\n * ```\n */\n@Directive({\n selector: '[daffOpenable]',\n host: {\n '[class.daff-open]': 'open',\n },\n})\n\nexport class DaffOpenableDirective implements DaffOpenable, OnChanges {\n /** Controls whether the component is open. */\n @Input() open = false;\n\n private _setOpen(v: boolean) {\n if(!this.stateless) {\n this.open = v;\n }\n }\n\n /** Whether or not a component should handle state\n *\n * @example Setting the `stateless` property on a component\n * ```ts\n * constructor(private openDirective: DaffOpenableDirective) {\n * this.openDirective.stateless = false;\n * }\n * ```\n */\n stateless = true;\n\n /**\n * Event fired when a component is opened (true) or closed (false)\n */\n @Output() toggled: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * Open the component\n */\n reveal() {\n this._setOpen(true);\n\n this.toggled.emit(true);\n }\n\n /**\n * Close the component\n */\n hide() {\n this._setOpen(false);\n\n this.toggled.emit(false);\n }\n\n /**\n * Open or close the component, depending on if it's currently open or not\n */\n toggle() {\n const state = !this.open;\n\n this._setOpen(state);\n\n this.toggled.emit(state);\n }\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n /**\n * Throw an error if open is set in a component that is not stateless\n */\n if(changes.open.currentValue && !this.stateless) {\n this.open = changes.open.previousValue;\n\n if(isDevMode()) {\n throw new Error(DaffOpenableStateError);\n }\n }\n }\n}\n","/**\n * Interface for giving a component the ability to customize text alignment for component-specific UI.\n */\nexport interface DaffOrientable {\n orientation: DaffOrientation;\n}\n\n/**\n * The possible types that can be passed to a DaffOrientable component\n */\nexport type DaffOrientation = 'horizontal' | 'vertical';\nexport enum DaffOrientationEnum {\n Horizontal = 'horizontal',\n Vertical = 'vertical',\n}\n","import {\n Directive,\n Input,\n isDevMode,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffOrientable,\n DaffOrientation,\n DaffOrientationEnum,\n} from './orientable';\n\nconst orientationValues = (orientation: string) => (<any>Object).values(DaffOrientationEnum).includes(orientation);\n\nconst validateOrientation = (orientation: string) => {\n if(isDevMode()) {\n if(orientation !== undefined && !orientationValues(orientation)) {\n console.warn(`'${orientation}' is not a valid value of the orientation property. The available values are: left, center, or right.`);\n }\n }\n};\n\n/**\n * `DaffOrientableDirective` allows for dynamic orientation of a component by\n * setting CSS classes based on the specified orientation. This directive is\n * useful when orientation needs to be managed dynamically in an Angular component.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffOrientable [orientation]=\"horizontal\"></div>\n * ```\n *\n * In this example, the `daff-horizontal` class is added to the `div` element, allowing\n * you to style the `div` as you wish using the class.\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffOrientableDirective,\n * inputs: ['orientation'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n * ```\n *\n * ```scss\n * .custom-component {\n * &.daff-vertical {\n * display: flex;\n * flex-direction: column;\n * }\n * }\n * ```\n */\n@Directive({\n selector: '[daffOrientable]',\n host: {\n '[class.daff-horizontal]': 'orientation === \"horizontal\"',\n '[class.daff-vertical]': 'orientation === \"vertical\"',\n },\n})\nexport class DaffOrientableDirective implements DaffOrientable, OnChanges, OnInit {\n /**\n * The orientation of the component.\n *\n * Options are: `horizontal` and `vertical`.\n */\n @Input() orientation: DaffOrientation;\n\n /**\n * Sets a default orientation.\n *\n * @example\n * ```ts\n * constructor(private orientableDirective: DaffOrientableDirective) {\n * this.orientableDirective.defaultOrientation = 'horizontal';\n * }\n * ```\n */\n public defaultOrientation: DaffOrientation;\n\n /**\n * @docs-private\n */\n ngOnInit() {\n if (this.defaultOrientation && !this.orientation) {\n this.orientation = this.defaultOrientation;\n }\n\n validateOrientation(this.orientation);\n }\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.orientation?.currentValue) {\n this.orientation = this.defaultOrientation;\n }\n }\n}\n\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { DaffSelectable } from '../selectable/selectable';\n\n@Directive({\n selector: '[daffSelected]',\n host: {\n '[class.daff-selected]': 'selected',\n },\n})\n\nexport class DaffSelectableDirective implements DaffSelectable {\n /**\n * Controls whether the component is selected.\n */\n @Input() selected = false;\n\n /**\n * An event that fires after the component becomes selected.\n */\n @Output() becameSelected: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(private cd: ChangeDetectorRef) {}\n\n /**\n * Selects the component and emits the `becameSelected` event.\n */\n select() {\n this.selected = true;\n this.becameSelected.emit();\n this.cd.markForCheck();\n return this;\n }\n\n /**\n * Deselects the component.\n */\n deselect() {\n this.selected = false;\n this.cd.markForCheck();\n return this;\n }\n}\n","\nimport {\n Directive,\n ElementRef,\n OnDestroy,\n Renderer2,\n Inject,\n Input,\n afterNextRender,\n DOCUMENT,\n} from '@angular/core';\n\n@Directive({\n selector: '[daffStickyTracker]',\n})\nexport class DaffStickyTrackerDirective implements OnDestroy {\n @Input() sticky: 'top' | 'bottom' | undefined = undefined;\n\n private sentinelObserver?: IntersectionObserver;\n private readonly className = 'is-pinned';\n private lastPinnedState: boolean | null = null;\n private debounceTimeout?: number;\n private sentinelElement?: HTMLElement;\n private idleCallbackId?: number;\n\n constructor(\n private readonly elementRef: ElementRef<HTMLElement>,\n private readonly renderer: Renderer2,\n @Inject(DOCUMENT) private readonly document: Document,\n ) {\n afterNextRender({\n write: () => {\n this.createSentinel();\n },\n });\n\n afterNextRender({\n read: () => {\n this.scheduleObserverCreation();\n },\n });\n }\n\n private get isBottomSticky(): boolean {\n return this.sticky === 'bottom';\n }\n\n private scheduleObserverCreation(): void {\n const defaultView = this.document.defaultView;\n\n if (defaultView?.requestIdleCallback) {\n this.idleCallbackId = defaultView.requestIdleCallback(() => {\n this.createSentinelObserver();\n });\n } else {\n this.idleCallbackId = defaultView?.setTimeout(() => {\n this.createSentinelObserver();\n }, 0);\n }\n }\n\n private findScrollableParent(): HTMLElement | null {\n let parent = this.elementRef.nativeElement.parentElement;\n\n while (parent && parent !== this.document.body) {\n const computedStyle = this.document.defaultView?.getComputedStyle(parent);\n const overflowY = computedStyle?.overflowY;\n\n if (overflowY === 'auto' || overflowY === 'scroll') {\n return parent;\n }\n parent = parent.parentElement;\n }\n\n return null;\n }\n\n private createSentinel(): void {\n const stickyElement = this.elementRef.nativeElement;\n const parentElement = stickyElement.parentElement;\n\n if (!parentElement) {\n throw new Error('DaffStickyTracker: Sticky element must have a parent element');\n }\n\n this.sentinelElement = this.renderer.createElement('div');\n\n this.renderer.setStyle(this.sentinelElement, 'width', '1px');\n this.renderer.setStyle(this.sentinelElement, 'height', '1px');\n this.renderer.setStyle(this.sentinelElement, 'opacity', '0');\n this.renderer.setStyle(this.sentinelElement, 'pointer-events', 'none');\n this.renderer.setStyle(this.sentinelElement, 'margin', '0');\n this.renderer.setStyle(this.sentinelElement, 'padding', '0');\n this.renderer.setStyle(this.sentinelElement, 'border', 'none');\n this.renderer.setStyle(this.sentinelElement, 'overflow', 'hidden');\n this.renderer.setStyle(this.sentinelElement, 'font-size', '0');\n this.renderer.setStyle(this.sentinelElement, 'line-height', '0');\n\n if (this.isBottomSticky) {\n this.renderer.insertBefore(\n parentElement,\n this.sentinelElement,\n stickyElement.nextSibling,\n );\n } else {\n this.renderer.insertBefore(\n parentElement,\n this.sentinelElement,\n stickyElement,\n );\n }\n }\n\n private createSentinelObserver(): void {\n const scrollableParent = this.findScrollableParent();\n const stickyElement = this.elementRef.nativeElement;\n\n this.sentinelObserver = new IntersectionObserver(\n ([entry]) => {\n const shouldBePinned = !entry.isIntersecting;\n\n if (this.lastPinnedState !== shouldBePinned) {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n this.debounceTimeout = this.document.defaultView?.setTimeout(() => {\n if (shouldBePinned) {\n this.renderer.addClass(stickyElement, this.className);\n } else {\n this.renderer.removeClass(stickyElement, this.className);\n }\n this.lastPinnedState = shouldBePinned;\n }, 5);\n }\n },\n {\n root: scrollableParent,\n threshold: 0,\n rootMargin: '1px',\n },\n );\n\n if (this.sentinelElement) {\n this.sentinelObserver.observe(this.sentinelElement);\n }\n }\n\n ngOnDestroy(): void {\n if (this.idleCallbackId !== undefined) {\n const defaultView = this.document.defaultView;\n if (defaultView?.cancelIdleCallback) {\n defaultView.cancelIdleCallback(this.idleCallbackId);\n } else {\n defaultView?.clearTimeout(this.idleCallbackId);\n }\n }\n\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n if (this.sentinelObserver && this.sentinelElement) {\n this.sentinelObserver.unobserve(this.sentinelElement);\n }\n this.sentinelObserver?.disconnect();\n\n if (this.sentinelElement && this.sentinelElement.parentElement) {\n this.renderer.removeChild(this.sentinelElement.parentElement, this.sentinelElement);\n }\n }\n}\n","import {\n Directive,\n Input,\n} from '@angular/core';\n\n/**\n * `DaffDisableableDirective` allows a component to display a disabled UI\n * by conditionally applying a CSS class. This is useful for indicating to\n * users that content is loading or being processed. This directive can be used to\n * apply a disabled UI to any component by toggling the `disabled`\n * input property. When `disabled` is `true`, the `daff-disabled` CSS class\n * is applied, which should style the component to look like it's not interactable.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffDisableable [disabled]=\"isDisabled\">Content</div>\n * ```\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffDisableableDirective,\n * inputs: ['disabled'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n * ```\n *\n * ```scss\n * :host {\n * .daff-disabled {\n * cursor: not-allowed;\n * opacity: 0.5;\n * }\n * }\n * ```\n *\n * The directive applies the `daff-disabled` class to the component. The class should be\n * defined in your styles to display the loading state as desired.\n */\n@Directive({\n selector: '[daffDisableable]',\n host: {\n '[class.daff-disabled]': 'disabled',\n },\n})\nexport class DaffDisableableDirective {\n @Input() disabled = false;\n}\n","import { UntypedFormControl } from '@angular/forms';\n\nexport class DaffErrorStateMatcher {\n\n isErrorState(control: UntypedFormControl, formSubmitted: boolean): boolean {\n return control.errors && (control.touched || formSubmitted);\n }\n}\n","// Core\nexport * from './animation/animation-state-with-params';\nexport * from './prefix-suffix/public_api';\nexport * from './colorable/public_api';\nexport * from './breakpoints/public_api';\nexport * from './constructor/constructor';\nexport * from './statusable/public_api';\nexport * from './skeletonable/public_api';\nexport * from './mutable/mutable';\nexport * from './text-alignable/public_api';\nexport * from './compactable/public_api';\nexport * from './manage-container-layout/public_api';\nexport * from './article-encapsulated/public_api';\nexport * from './theming/public_api';\nexport * from './lazy/public_api';\nexport * from './focus/public_api';\nexport * from './sizable/public_api';\nexport * from './openable/public_api';\nexport * from './orientable/public_api';\nexport * from './selectable/public_api';\nexport * from './sticky/public_api';\nexport * from './disableable/public_api';\nexport * from './error-state-matcher/public_api';\n","/*\n * Public API Surface of @daffodil/design\n */\n\n// Atoms\nexport * from './atoms/form/form-label/public_api';\n\n// Core\nexport * from './core/public_api';\n","/**\n * This is a filler file for making the\n * demo work in dev mode.\n */\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffOsThemeService","i2.DaffThemeStorageService","i1.DaffThemingService"],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-design.mjs","sources":["../../../libs/design/src/atoms/form/form-label/form-label.directive.ts","../../../libs/design/src/atoms/form/form-label/form-label.module.ts","../../../libs/design/src/core/prefix-suffix/prefix.directive.ts","../../../libs/design/src/core/prefix-suffix/suffix.directive.ts","../../../libs/design/src/core/prefix-suffix/prefix-suffix.module.ts","../../../libs/design/src/core/prefix-suffix/prefix-suffix.ts","../../../libs/design/src/core/colorable/colorable.ts","../../../libs/design/src/core/colorable/colorable.directive.ts","../../../libs/design/src/core/breakpoints/breakpoints.ts","../../../libs/design/src/core/breakpoints/noop.service.ts","../../../libs/design/src/core/breakpoints/provider.ts","../../../libs/design/src/core/constructor/constructor.ts","../../../libs/design/src/core/statusable/statusable.ts","../../../libs/design/src/core/statusable/statusable.directive.ts","../../../libs/design/src/core/skeletonable/skeletonable.directive.ts","../../../libs/design/src/core/text-alignable/text-alignable.ts","../../../libs/design/src/core/text-alignable/text-alignable.directive.ts","../../../libs/design/src/core/compactable/compactable.directive.ts","../../../libs/design/src/core/manage-container-layout/manage-container-layout.directive.ts","../../../libs/design/src/core/article-encapsulated/article-encapsulated.directive.ts","../../../libs/design/src/core/theming/types/theme.ts","../../../libs/design/src/core/theming/services/os-theme/ostheme.service.ts","../../../libs/design/src/core/theming/services/storage/theme-storage.service.ts","../../../libs/design/src/core/theming/functions/computer.ts","../../../libs/design/src/core/theming/services/theming.service.ts","../../../libs/design/src/core/theming/services/class-setter/theme-class-setter.service.ts","../../../libs/design/src/core/theming/initializer.ts","../../../libs/design/src/core/focus/focusable-elements.ts","../../../libs/design/src/core/focus/stack.service.ts","../../../libs/design/src/core/sizable/sizable.ts","../../../libs/design/src/core/sizable/sizable.directive.ts","../../../libs/design/src/core/openable/utils/state-error.ts","../../../libs/design/src/core/openable/openable.directive.ts","../../../libs/design/src/core/orientable/orientable.ts","../../../libs/design/src/core/orientable/orientable.directive.ts","../../../libs/design/src/core/selectable/selectable.directive.ts","../../../libs/design/src/core/sticky/sticky-tracker.directive.ts","../../../libs/design/src/core/disableable/disableable.directive.ts","../../../libs/design/src/core/loadable/loadable.directive.ts","../../../libs/design/src/core/roving-tab-index/roving-tab-index-group.service.ts","../../../libs/design/src/core/roving-tab-index/roving-tab-index-boundary.directive.ts","../../../libs/design/src/core/roving-tab-index/roving-tab-index.directive.ts","../../../libs/design/src/core/public_api.ts","../../../libs/design/src/public_api.ts","../../../libs/design/src/index.ts","../../../libs/design/src/daffodil-design.ts"],"sourcesContent":["import {\n Directive,\n HostBinding,\n} from '@angular/core';\n\n/**\n * @deprecated in favor of the {@link DaffFormFieldLabelDirective}. Deprecated in version 0.86.0. Will be removed in version 1.0.0.\n */\n@Directive({\n selector: '[daffFormLabel]',\n})\nexport class DaffFormLabelDirective {\n /**\n * @docs-private\n */\n @HostBinding('class.daff-form-label') class = true;\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffFormLabelDirective } from './form-label.directive';\n\n/**\n * @deprecated in favor of standalone components. Deprecated in version 0.84.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n exports: [\n DaffFormLabelDirective,\n ],\n imports: [\n DaffFormLabelDirective,\n ],\n})\n\nexport class DaffFormLabelModule {}\n","import { Directive } from '@angular/core';\n\n/**\n * DaffPrefixDirective can be used to place content before another piece of content\n * in components like `DaffFormFieldComponent` or `DaffListComponent`.\n */\n@Directive({\n selector: '[daffPrefix]',\n host: {\n class: 'daff-prefix',\n },\n})\nexport class DaffPrefixDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * DaffSuffixDirective can be used to place content after another piece of content\n * in components like `DaffFormFieldComponent` or `DaffListComponent`.\n */\n@Directive({\n selector: '[daffSuffix]',\n host: {\n class: 'daff-suffix',\n },\n})\nexport class DaffSuffixDirective { }\n","import { NgModule } from '@angular/core';\n\nimport { DaffPrefixDirective } from './prefix.directive';\nimport { DaffSuffixDirective } from './suffix.directive';\n\n/**\n * @deprecated in favor of standalone components. Deprecated in version 0.91.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n DaffPrefixDirective,\n DaffSuffixDirective,\n ],\n exports: [\n DaffPrefixDirective,\n DaffSuffixDirective,\n ],\n})\nexport class DaffPrefixSuffixModule {}\n","import { DaffPrefixDirective } from './prefix.directive';\nimport { DaffSuffixDirective } from './suffix.directive';\n\nexport const DAFF_PREFIX_SUFFIX_DIRECTIVES = <const> [\n DaffPrefixDirective,\n DaffSuffixDirective,\n];\n","/**\n * @deprecated Deprecated in version 0.92.0. Will be removed in version 1.0.0.\n */\nexport interface DaffColorable {\n color: DaffColor;\n}\n\n/**\n * The available color options.\n */\nexport type DaffColor = 'primary' | 'secondary' | 'tertiary' | 'light' | 'dark' | 'theme' | 'theme-contrast' | 'black' | 'white' | undefined;\n\n/**\n * @deprecated Deprecated in version 0.92.0. Will be removed in version 1.0.0.\n */\nexport type DaffPalette = DaffColor;\n\n/**\n * The available color options.\n */\nexport enum DaffColorEnum {\n /**\n * The primary color.\n */\n Primary = 'primary',\n\n /**\n * The secondary color.\n */\n Secondary = 'secondary',\n\n /**\n * The tertiary color.\n */\n Tertiary = 'tertiary',\n\n /**\n * A light color that does not change based on the theme.\n */\n Light = 'light',\n\n /**\n * A dark color that does not change based on the theme.\n */\n Dark = 'dark',\n\n /**\n * A color that matches the theme.\n */\n Theme = 'theme',\n\n /**\n * A color that contrasts against the theme.\n */\n ThemeContrast = 'theme-contrast',\n\n /**\n * @deprecated Deprecated in version 0.82.0. Will be removed in version 1.0.0.\n */\n Black = 'black',\n\n /**\n * @deprecated Deprecated in version 0.82.0. Will be removed in version 1.0.0.\n */\n White = 'white',\n}\n","import {\n Directive,\n Input,\n isDevMode,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffColor,\n DaffColorEnum,\n} from './colorable';\n\nconst isDaffColor = (color: string) => (<any>Object).values(DaffColorEnum).includes(color);\n\nconst validateColor = (color: string) => {\n if(isDevMode()) {\n if(color !== undefined && !isDaffColor(color)) {\n console.warn(color + ' is not a valid color in DaffColor');\n }\n }\n};\n\n/**\n * Enforces consistent use of {@link DaffColor} on a component by applying\n * color-specific CSS classes and validating the color in dev mode.\n */\n@Directive({\n selector: '[daffColorable]',\n host: {\n '[class.daff-primary]': 'color === \"primary\"',\n '[class.daff-secondary]': 'color === \"secondary\"',\n '[class.daff-tertiary]': 'color === \"tertiary\"',\n '[class.daff-light]': 'color === \"light\"',\n '[class.daff-dark]': 'color === \"dark\"',\n '[class.daff-theme]': 'color === \"theme\"',\n '[class.daff-theme-contrast]': 'color === \"theme-contrast\"',\n '[class.daff-black]': 'color === \"black\"',\n '[class.daff-white]': 'color === \"white\"',\n },\n})\nexport class DaffColorableDirective implements OnChanges, OnInit {\n /**\n * The color of the component.\n */\n @Input() color: DaffColor;\n\n /**\n * The default color used when no color is set.\n */\n defaultColor: DaffColor;\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.color.currentValue) {\n this.color = this.defaultColor;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n validateColor(this.color);\n if (!this.color) {\n this.color = this.defaultColor;\n }\n }\n}\n\n","/**\n * Sensible breakpoints for layouts and interfaces used across `@daffodil/design` components.\n */\nexport enum DaffBreakpoints {\n /** `min-width: 1920px` */\n DESKTOP = '(min-width: 1920px)',\n /** `min-width: 1440px` */\n LAPTOP = '(min-width: 1440px)',\n /** `min-width: 1200px` */\n SMALL_LAPTOP = '(min-width: 1200px)',\n /** `min-width: 1024px` */\n BIG_TABLET = '(min-width: 1024px)',\n /** `min-width: 768px` */\n TABLET = '(min-width: 768px)',\n /** `min-width: 480px` */\n MOBILE = '(min-width: 480px)',\n}\n","import {\n BreakpointObserver,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { Injectable } from '@angular/core';\nimport {\n Observable,\n of,\n} from 'rxjs';\n\n/**\n * A no-op implementation of Angular CDK's `BreakpointObserver` that always reports\n * no breakpoints as matched. Useful for server-side rendering or testing contexts\n * where browser layout APIs are unavailable.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NoopBreakpointObserver implements Omit<BreakpointObserver, never> {\n /**\n * @docs-private\n */\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method, @angular-eslint/use-lifecycle-interface\n ngOnDestroy(): void {}\n\n /**\n * Always returns `false`, indicating that none of the given media queries are active.\n */\n isMatched(value: string | readonly string[]): boolean {\n return false;\n }\n\n /**\n * Returns an observable that never emits a `BreakpointState`, making breakpoint-dependent logic inert.\n */\n observe(value: string | readonly string[]): Observable<BreakpointState> {\n return of();\n }\n\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n inject,\n InjectionToken,\n PLATFORM_ID,\n} from '@angular/core';\n\nimport { NoopBreakpointObserver } from './noop.service';\n\n/**\n * Provides a {@link NoopBreakpointObserver} if the platform is not browser.\n */\nexport const SERVER_SAFE_BREAKPOINT_OBSERVER = new InjectionToken<Omit<BreakpointObserver, never>>('SERVER_SAFE_BREAKPOINT_OBSERVER', {\n factory: () =>\n isPlatformBrowser(inject(PLATFORM_ID))\n ? inject(BreakpointObserver)\n : inject(NoopBreakpointObserver),\n});\n","/**\n * A basic constructor type useful for mixins\n * See https://blog.mariusschulz.com/2017/05/26/typescript-2-2-mixin-classes\n * for a really good explanation of why mixins are useful.\n */\n\nexport type Constructor<T = Record<string, any>> = new (...args: any[]) => T;\n","/**\n * The `DaffStatusable` interface defines a component that can have a status.\n * This status determines the styling or behavior of the component.\n */\nexport interface DaffStatusable {\n /**\n * The status of the component.\n */\n status: DaffStatus;\n}\n\n/**\n * The `DaffStatus` type defines the possible status values that a component can have.\n * - 'info': Indicates an informational status.\n * - 'warn': Indicates a warning status.\n * - 'critical': Indicates a critical or error status.\n * - 'success': Indicates a success status.\n */\nexport type DaffStatus = 'info' | 'warn' | 'critical' | 'success';\n\n/**\n * The `DaffStatusEnum` enumerates the possible status values for a component.\n */\nexport enum DaffStatusEnum {\n Info = 'info',\n Warn = 'warn',\n Critical = 'critical',\n Success = 'success'\n}\n","import {\n Directive,\n Input,\n isDevMode,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffStatus,\n DaffStatusEnum,\n DaffStatusable,\n} from './statusable';\n\nconst statusValues = (status: string) => (<any>Object).values(DaffStatusEnum).includes(status);\n\nconst validateStatus = (status: string) => {\n if(isDevMode()) {\n if (status !== undefined && !statusValues(status)) {\n console.warn(\n `'${status}' is not a valid value of the status property.\\n\\n` +\n `The available values are: info, warn, critical, or success.`,\n );\n }\n }\n};\n\n/**\n * `DaffStatusableDirective` allows a component to conditionally apply status-specific\n * styles by setting CSS classes based on the specified status. This directive is useful\n * for indicating different statuses such as info, warning, critical, or success states.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffStatusable [status]=\"componentStatus\">Status content</div>\n * ```\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffStatusableDirective,\n * inputs: ['status'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n *\n * ```scss\n * :host {\n * &.daff-critical {\n * background: daff-color($red, 10);\n * color: daff-color($red, 90);\n * }\n * }\n * ```\n *\n * The directive applies the following CSS classes to the component based on the status:\n *\n * - `daff-info`: Applied when the status is `info`.\n * - `daff-warn`: Applied when the status is `warn`.\n * - `daff-critical`: Applied when the status is `critical`.\n * - `daff-success`: Applied when the status is `success`.\n */\n@Directive({\n selector: '[daffStatusable]',\n host: {\n '[class.daff-info]': 'status === \"info\"',\n '[class.daff-warn]': 'status === \"warn\"',\n '[class.daff-critical]': 'status === \"critical\"',\n '[class.daff-success]': 'status === \"success\"',\n },\n})\nexport class DaffStatusableDirective implements DaffStatusable, OnChanges, OnInit {\n /**\n * Sets the status on a component.\n */\n @Input() status: DaffStatus;\n\n /**\n * Sets a default status.\n *\n * @example\n * ```ts\n * constructor(private statusDirective: DaffStatusableDirective) {\n * this.statusDirective.defaultStatus = 'info';\n * }\n * ```\n */\n defaultStatus: DaffStatus;\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.status.currentValue) {\n this.status = this.defaultStatus;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n validateStatus(this.status);\n\n if (this.defaultStatus && !this.status) {\n this.status = this.defaultStatus;\n }\n }\n}\n\n","import {\n Directive,\n Input,\n} from '@angular/core';\n\n/**\n * `DaffSkeletonableDirective` allows a component to display a skeleton loading\n * state by conditionally applying a CSS class. This is useful for indicating to\n * users that content is loading or being processed. This directive can be used to\n * apply a skeleton loading state to any component by toggling the `skeleton`\n * input property. When `skeleton` is `true`, the `daff-skeleton` CSS class\n * is applied, which should style the component to look like a loading placeholder.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffSkeletonable [skeleton]=\"isLoading\">Content</div>\n * ```\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffSkeletonableDirective,\n * inputs: ['skeleton'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n * ```\n *\n * ```scss\n * :host {\n * .daff-skeleton {\n * @include state.skeleton-screen(48px, 24px);\n * }\n * }\n * ```\n *\n * The directive applies the `daff-skeleton` class to the component should be defined in your styles to display the loading\n * state as desired. It can be used in conjuction with the `skeleton-screen` mixin, which provides predefined loading styles.\n */\n@Directive({\n selector: '[daffSkeletonable]',\n host: {\n '[class.daff-skeleton]': 'skeleton',\n },\n})\nexport class DaffSkeletonableDirective {\n /**\n * Controls whether the component displays a skeleton loading state.\n */\n @Input() skeleton = false;\n}\n","/**\n * @deprecated Deprecated in version 0.92.1. Will be removed in version 1.0.0.\n */\nexport interface DaffTextAlignable {\n textAlignment: DaffTextAlignment;\n}\n\n/**\n * * The available text alignment options.\n */\nexport type DaffTextAlignment = 'left' | 'center' | 'right';\n\n/**\n * This enum will be removed from the public api in v1.0.0.\n */\nexport enum DaffTextAlignmentEnum {\n Left = 'left',\n Center = 'center',\n Right = 'right'\n}\n","import {\n Directive,\n Input,\n isDevMode,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffTextAlignable,\n DaffTextAlignment,\n DaffTextAlignmentEnum,\n} from './text-alignable';\n\nconst textAlignmentValues = (textAlignment: string) => (<any>Object).values(DaffTextAlignmentEnum).includes(textAlignment);\n\nconst validateTextAlignment = (textAlignment: string) => {\n if(isDevMode()) {\n if(textAlignment !== undefined && !textAlignmentValues(textAlignment)) {\n console.warn(`'${textAlignment}' is not a valid value of the textAlignment property. The available values are: left, center, or right.`);\n }\n }\n};\n\n/**\n * `DaffTextAlignableDirective` enforces consistent use of text alignment across components.\n */\n@Directive({\n selector: '[daffTextAlignable]',\n host: {\n '[class.daff-left]': 'textAlignment === \"left\"',\n '[class.daff-center]': 'textAlignment === \"center\"',\n '[class.daff-right]': 'textAlignment === \"right\"',\n },\n})\nexport class DaffTextAlignableDirective implements DaffTextAlignable, OnChanges, OnInit {\n\n /**\n * The text alignment of the component.\n */\n @Input() textAlignment: DaffTextAlignment;\n\n /**\n * The default used when no text alignment is set.\n */\n public defaultAlignment: DaffTextAlignment;\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.textAlignment?.currentValue) {\n this.textAlignment = this.defaultAlignment;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n validateTextAlignment(this.textAlignment);\n\n if (!this.textAlignment) {\n this.textAlignment = this.defaultAlignment;\n }\n }\n}\n\n","import {\n Directive,\n Input,\n} from '@angular/core';\n\n/**\n * Enforces consistent use of the compact property.\n */\n@Directive({\n selector: '[daffCompactable]',\n host: {\n '[class.daff-compact]': 'compact',\n },\n})\nexport class DaffCompactableDirective {\n /**\n * Whether the component is compact.\n */\n @Input() compact = false;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * `DaffManageContainerLayoutDirective` gives a component the ability to manage a `DaffContainerComponent`'s layout.\n * By including this directive, predetermined layout styles are passed down to the container.\n *\n * To understand the motivation for this directive, consider:\n *\n * ```html\n * <daff-container>\n * <daff-hero></daff-hero>\n * </daff-container>\n * ```\n * vs.\n *\n * ```html\n * <daff-hero>\n * <daff-container></daff-container>\n * </daff-hero>\n * ```\n *\n * The former may inappropriately constrain the width of its child elements,\n * while the latter (without `DaffManageContainerLayoutDirective`) may unexpectedly\n * interfere in the layout features of its parent element (i.e. display: grid, display: flex).\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <my-custom-component daffManageContainerLayout>\n * <daff-container size=\"lg\"></daff-container>\n * </my-custom-component>\n * ```\n *\n * ```scss\n * :host {\n * display: grid;\n * grid-template-columns: 1fr 1fr;\n * }\n * ```\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'my-custom-component',\n * template: 'my-custom-component.html',\n * hostDirectives: [{ directive: DaffManageContainerLayoutDirective }],\n * })\n * export class MyCustomComponent { }\n *\n * ```scss\n * :host {\n * display: grid;\n * grid-template-columns: 1fr 1fr;\n * }\n * ```\n *\n * This directive will apply the `daff-manage-container-layout` class to your component, ensuring that the styles set on `:host` are passed down to the container.\n */\n\n@Directive({\n selector: '[daffManageContainerLayout]',\n host: {\n class: 'daff-manage-container-layout',\n },\n})\nexport class DaffManageContainerLayoutDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The `DaffArticleEncapsulatedDirective` prevents {@link DaffArticleComponent } styles from bleeding into custom components nested within an article.\n */\n@Directive({\n selector: '[daffArticleEncapsulated]',\n host: {\n class: 'daff-ae',\n },\n})\nexport class DaffArticleEncapsulatedDirective {}\n","/**\n * The possible states of a theme.\n */\nexport enum DaffTheme {\n Light = 'light',\n Dark = 'dark',\n None = 'none'\n}\n","\nimport {\n Injectable,\n Inject,\n DOCUMENT,\n} from '@angular/core';\nimport {\n Observable,\n of,\n fromEventPattern,\n} from 'rxjs';\nimport {\n map,\n startWith,\n} from 'rxjs/operators';\n\nimport { DaffTheme } from '../../types/theme';\n\nexport const mediaQueryDarkPreference = '(prefers-color-scheme: dark)';\n\nexport const addHandlerFactory = (window: Window) => (handler: any) => {\n const query = window.matchMedia(mediaQueryDarkPreference);\n return 'addEventListener' in query\n ? query.addEventListener('change', handler)\n : (<MediaQueryList>query).addListener(handler);\n};\n\nexport const removeHandlerFactory = (window: Window) => (handler: any) => {\n const query = window.matchMedia(mediaQueryDarkPreference);\n return 'removeEventListener' in query\n ? query.removeEventListener('change', handler)\n : (<MediaQueryList>query).removeListener(handler);\n};\n\n/**\n * A service for retrieving the operating system's theme preference.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffOsThemeService {\n\n preference$: Observable<DaffTheme>;\n\n private doc?: Document;\n\n constructor(@Inject(DOCUMENT) _doc: any) {\n this.doc = <Document>_doc;\n\n this.preference$ = this.doc.defaultView?.matchMedia\n ? fromEventPattern<MediaQueryListEvent>(\n addHandlerFactory(this.doc.defaultView),\n removeHandlerFactory(this.doc.defaultView),\n )\n .pipe(\n startWith(this.doc.defaultView?.matchMedia(mediaQueryDarkPreference)),\n map((e: MediaQueryListEvent) => e.matches),\n map((prefersDark) => prefersDark ? DaffTheme.Dark : DaffTheme.Light),\n )\n : of(DaffTheme.None);\n }\n\n /**\n * Get the operating system's theme preference.\n */\n public getThemePreference(): Observable<DaffTheme> {\n return this.preference$;\n }\n}\n","\nimport {\n Injectable,\n Inject,\n DOCUMENT,\n} from '@angular/core';\nimport {\n Observable,\n fromEvent,\n Subject,\n merge,\n EMPTY,\n of,\n} from 'rxjs';\nimport {\n map,\n filter,\n startWith,\n shareReplay,\n catchError,\n} from 'rxjs/operators';\n\nimport {\n DaffPersistenceService,\n DaffServerSafePersistenceServiceToken,\n} from '@daffodil/core';\n\nimport { DaffTheme } from '../../types/theme';\n\nexport type ThemeStorageEvent = Pick<StorageEvent, 'newValue' | 'key'>;\n\nexport const THEME_STORAGE_KEY = 'DAFF_THEME';\n\nexport const coerceValue = (val?: string): DaffTheme =>\n val === DaffTheme.Dark || val === DaffTheme.Light\n ? val\n : DaffTheme.None;\n\n/**\n * Generate a StorageEvent\n */\nconst storageEventBuilder = (\n value: DaffTheme,\n): ThemeStorageEvent => ({\n key: THEME_STORAGE_KEY,\n newValue: coerceValue(value) !== DaffTheme.None ? value : null,\n});\n\n/**\n * A service for retrieving and managing the application's stored theme.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffThemeStorageService {\n private theme$: Observable<DaffTheme>;\n private storage$: Subject<ThemeStorageEvent> = new Subject();\n private doc?: Document;\n\n constructor(\n @Inject(DaffServerSafePersistenceServiceToken)\n private storage: DaffPersistenceService,\n @Inject(DOCUMENT) _doc: any,\n ) {\n this.doc = <Document>_doc;\n this.theme$ = merge(\n this.storage$,\n this.doc.defaultView\n ? fromEvent<ThemeStorageEvent>(\n <Window & typeof globalThis>this.doc.defaultView,\n 'storage',\n ).pipe(\n startWith(\n storageEventBuilder(\n this.storage.getItem(THEME_STORAGE_KEY),\n ),\n ),\n catchError((e) => EMPTY),\n )\n : of(storageEventBuilder(\n this.storage.getItem(THEME_STORAGE_KEY),\n )),\n ).pipe(\n filter(\n (e: ThemeStorageEvent) => e.key === THEME_STORAGE_KEY,\n ),\n map((e) => coerceValue(e.newValue)),\n shareReplay(1),\n );\n }\n\n /**\n * Given that Safari doesn't respect in-tab storage events, we have to manually\n * fire storage events in the open tab on Webkit based browsers.\n */\n private progressStorageEvent(theme: DaffTheme) {\n this.storage$.next(storageEventBuilder(theme));\n }\n\n getThemeAsObservable(): Observable<DaffTheme> {\n return this.theme$;\n }\n\n getTheme(): DaffTheme {\n return coerceValue(this.storage.getItem(THEME_STORAGE_KEY));\n }\n\n setTheme(theme: DaffTheme): void {\n this.progressStorageEvent(theme);\n this.storage.setItem(THEME_STORAGE_KEY, theme);\n }\n\n removeThemeSetting(): void {\n this.progressStorageEvent(DaffTheme.None);\n this.storage.removeItem(THEME_STORAGE_KEY);\n }\n}\n","import { DaffTheme } from '../types/theme';\n\n/**\n * Computes the appropriate application theme from the specified values.\n * It cascades from `storedPreference` to `osPreference` to `defaultTheme`.\n */\nexport const daffComputeThemeSetting = (\n osPreference?: DaffTheme,\n storedPreference?: DaffTheme,\n defaultTheme: DaffTheme = DaffTheme.Dark,\n): DaffTheme => {\n if (storedPreference) {\n return storedPreference;\n }\n\n if (osPreference === 'dark') {\n return DaffTheme.Dark;\n }\n\n if (osPreference === 'light') {\n return DaffTheme.Light;\n }\n\n return defaultTheme;\n};\n","import { Injectable } from '@angular/core';\nimport {\n Observable,\n combineLatest,\n} from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { DaffOsThemeService } from './os-theme/ostheme.service';\nimport { DaffThemeStorageService } from './storage/theme-storage.service';\nimport { daffComputeThemeSetting } from '../functions/computer';\nimport { DaffTheme } from '../types/theme';\n\n/**\n * A service for controlling the application's theme.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffThemingService {\n private theme$: Observable<DaffTheme>;\n private theme: DaffTheme;\n\n constructor(\n private osTheme: DaffOsThemeService,\n private themeStorage: DaffThemeStorageService,\n ) {\n\n this.theme$ = combineLatest([\n this.osTheme.getThemePreference(),\n this.themeStorage.getThemeAsObservable(),\n ]).pipe(\n map(([osPreference, storedPreference]) => daffComputeThemeSetting(osPreference, storedPreference)),\n );\n\n this.theme$.subscribe((theme) => {\n this.theme = theme;\n });\n }\n\n /**\n * Get the current theme.\n */\n getTheme(): Observable<DaffTheme> {\n return this.theme$;\n }\n\n /**\n * Set the theme to dark mode.\n */\n darkMode() {\n this.themeStorage.setTheme(DaffTheme.Dark);\n }\n\n /**\n * Set the theme to light mode.\n */\n lightMode() {\n this.themeStorage.setTheme(DaffTheme.Light);\n }\n\n /**\n * Switch between themes.\n */\n switchTheme(): void {\n return this.theme === DaffTheme.Dark\n ? this.lightMode()\n : this.darkMode();\n }\n}\n","\nimport {\n Injectable,\n Inject,\n Renderer2,\n RendererFactory2,\n DOCUMENT,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { DaffTheme } from '../../types/theme';\nimport { DaffThemingService } from '../theming.service';\n\nexport const DAFF_THEME_DARK_CSS_CLASS = 'daff-theme-dark';\nexport const DAFF_THEME_LIGHT_CSS_CLASS = 'daff-theme-light';\n\n/**\n * This class updates the body of the application with the theme's appropriate class.\n * Note that this service is not provided tree-shakably by intention.\n * It is intended to be provided manually during setup.\n */\n@Injectable()\nexport class DaffThemeClassSetterService {\n private renderer: Renderer2;\n private subscription: Subscription;\n private doc?: Document;\n\n constructor(\n @Inject(DOCUMENT) _doc: any,\n private rendererFactory: RendererFactory2,\n private themingService: DaffThemingService,\n ) {\n this.doc = <Document>_doc;\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n /**\n * This function is intended to only be called once when the service\n * is initialized for the very first time. This will mutate the class\n * on the body of the document for the appropriate theme as controlled\n * by the state of the application's theme.\n */\n beginThemeSync(): void {\n this.subscription = this.themingService.getTheme().subscribe((theme) => {\n // For simplicty, remove all previously applied themes.\n this.renderer.removeClass(this.doc.body, DAFF_THEME_LIGHT_CSS_CLASS);\n this.renderer.removeClass(this.doc.body, DAFF_THEME_DARK_CSS_CLASS);\n this.renderer.addClass(this.doc.body, theme === DaffTheme.Dark ? DAFF_THEME_DARK_CSS_CLASS : DAFF_THEME_LIGHT_CSS_CLASS);\n });\n }\n\n /**\n * This unsubscribes from the bodyClass subscription that exists.\n */\n destroy(): void {\n this.subscription?.unsubscribe();\n this.renderer.removeClass(this.doc.body, DAFF_THEME_LIGHT_CSS_CLASS);\n this.renderer.removeClass(this.doc.body, DAFF_THEME_DARK_CSS_CLASS);\n }\n}\n","import {\n inject,\n makeEnvironmentProviders,\n provideAppInitializer,\n} from '@angular/core';\n\nimport { DaffThemeClassSetterService } from './services/class-setter/theme-class-setter.service';\n\nexport const DAFF_THEME_INIT = (classSetter: DaffThemeClassSetterService) => () => classSetter.beginThemeSync();\n\n/**\n * The theme provider for the app.\n * This configures updating the body with the theme class.\n */\nexport const DAFF_THEME_INITIALIZER = makeEnvironmentProviders([\n DaffThemeClassSetterService,\n provideAppInitializer(() => {\n const initializerFn = (DAFF_THEME_INIT)(inject(DaffThemeClassSetterService));\n return initializerFn();\n }),\n]);\n","export const daffFocusableElementsSelector = 'a[href],a[routerlink], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])';\n","\nimport {\n Inject,\n Injectable,\n DOCUMENT,\n} from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class DaffFocusStackService {\n private _stack: HTMLElement[] = [];\n\n constructor(@Inject(DOCUMENT) private document: any) {\n\n }\n\n /**\n * Return the current length of the stack.\n */\n length(): number {\n return this._stack.length;\n }\n\n /**\n * Adds a HTML element to a focus stack and returns the new length of the stack.\n *\n * Generally, you will probably want to call this before you transition focus\n * onto a new element.\n *\n * @example Using the push function\n * ```ts\n * this._focusStack.push(this._doc.activeElement);\n * ```\n */\n push(el: HTMLElement | undefined = undefined): number {\n this._stack.push(el ?? this.document.activeElement);\n return this._stack.length;\n }\n\n /**\n * Focuses on the HTML element at the top of a stack.\n *\n * @example Using the focus function\n * ```ts\n * this._focusStack.focus(this._doc.activeElement);\n * ```\n */\n focus() {\n if(this._stack.length >= 1) {\n this._stack.slice(-1)[0].focus();\n } else {\n (<HTMLElement>this.document.activeElement).blur();\n }\n }\n\n /**\n * Removes the HMTL element at the top of a stack and focuses on it.\n */\n pop(focus: boolean = true): HTMLElement {\n let el = this._stack.pop();\n while(el === undefined && this._stack.length > 0) {\n el = this._stack.pop();\n }\n\n if(el) {\n if(focus) {\n el.focus();\n }\n return el;\n }\n\n (<HTMLElement>this.document.activeElement).blur();\n return this.document.activeElement;\n }\n}\n","/**\n * Interfaces that gives a component the ability to customize sizing for component specific UI.\n */\n\nexport interface DaffSizable<T extends DaffSizeAllType> {\n size: T;\n}\n\n/**\n * The possible types that can be passed to a component that implements DaffSizable\n */\n\nexport type DaffSizeXSmallType = 'xs';\nexport type DaffSizeSmallType = 'sm';\nexport type DaffSizeMediumType = 'md';\nexport type DaffSizeLargeType = 'lg';\nexport type DaffSizeXLargeType = 'xl';\n\n/**\n * The a type representing all available sizes.\n */\nexport type DaffSizeAllType = DaffSizeXSmallType | DaffSizeSmallType | DaffSizeMediumType | DaffSizeLargeType | DaffSizeXLargeType;\n\nexport enum DaffSizableEnum {\n XSmall = 'xs',\n Small = 'sm',\n Medium = 'md',\n Large = 'lg',\n XLarge = 'xl'\n}\n","import {\n Directive,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffSizable,\n DaffSizeAllType,\n} from './sizable';\n\n/**\n * `DaffSizableDirective` allows for dynamic sizing of a component by setting\n * CSS classes based on the specified size.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffSizable [size]=\"small\">Sized content</div>\n * ```\n * In this example, the `daff-small` class is applied to the `div` element, allowing you to\n * use the class to style the `div`.\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * standalone: true,\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffSizableDirective,\n * inputs: ['size'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n * ```\n *\n * ```scss\n * :host {\n * &.daff-sm {\n * width: 24px;\n * }\n *\n * &.daff-md {\n * width: 32px;\n * }\n * }\n * ```\n *\n * The directive applies the following CSS classes to the component based on the size:\n *\n * - `daff-xs`: Applied when the size is `xs`.\n * - `daff-sm`: Applied when the size is `sm`.\n * - `daff-md`: Applied when the size is `md`.\n * - `daff-lg`: Applied when the size is `lg`.\n * - `daff-xl`: Applied when the size is `xl`.\n */\n@Directive({\n selector: '[daffSizable]',\n host: {\n '[class.daff-xs]': 'size === \"xs\"',\n '[class.daff-sm]': 'size === \"sm\"',\n '[class.daff-md]': 'size === \"md\"',\n '[class.daff-lg]': 'size === \"lg\"',\n '[class.daff-xl]': 'size === \"xl\"',\n },\n})\nexport class DaffSizableDirective<T extends DaffSizeAllType> implements DaffSizable<T>, OnChanges, OnInit {\n /**\n * The size of the component.\n */\n @Input() size: T;\n\n /**\n * Sets a default size.\n *\n * @example\n * ```ts\n * constructor(private sizableDirective: DaffSizableDirective) {\n * this.sizableDirective.defaultSize = 'md';\n * }\n * ```\n */\n public defaultSize: T;\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if(!changes.size?.currentValue) {\n this.size = this.defaultSize;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n if(!this.size) {\n this.size = this.defaultSize;\n }\n }\n}\n\n","export const DaffOpenableStateError = '`open` cannot be set as an input property on the DaffOpenableDirective if it is not stateless. Did you mean to call `reveal`, `hide`, or `toggle`?';\n","import {\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n isDevMode,\n} from '@angular/core';\n\nimport { DaffOpenable } from './openable';\nimport { DaffOpenableStateError } from './utils/state-error';\n\n/**\n * A directive that opens or closes a component. It should only be used as an [Angular Host Directive](https://angular.dev/guide/directives/directive-composition-api).\n * This directive is stateless by default, but it supports both a state and stateless implementation. Only one version should be used within a component.\n *\n * @example Using the DaffOpenableDirective\n * ```ts\n * import {\n * Component,\n * ChangeDetectionStrategy,\n * } from '@angular/core';\n *\n * import { DaffOpenableDirective } from '@daffodil/design';\n *\n * @Component({\n * selector: 'custom-component',\n * template: `\n * <button (click)=\"toggle()\">Click me!</button>\n * <div class=\"hidden-block\">This is a hidden block that can be shown by clicking the button.</div>\n * `,\n * styles: [`\n * :host {\n * .hidden-block {\n * display: none;\n * }\n *\n * &.daff-open {\n * .hidden-block {\n * display: block;\n * }\n * }\n * }`],\n * changeDetection: ChangeDetectionStrategy.OnPush,\n * hostDirectives: [{\n * directive: DaffOpenableDirective,\n * }],\n * })\n * export class CustomComponent {\n * constructor(private openDirective: DaffOpenableDirective) {}\n *\n * toggle() {\n * this.openDirective.toggle();\n * }\n * }\n * ```\n */\n@Directive({\n selector: '[daffOpenable]',\n host: {\n '[class.daff-open]': 'open',\n },\n})\n\nexport class DaffOpenableDirective implements DaffOpenable, OnChanges {\n /** Controls whether the component is open. */\n @Input() open = false;\n\n private _setOpen(v: boolean) {\n if(!this.stateless) {\n this.open = v;\n }\n }\n\n /** Whether or not a component should handle state\n *\n * @example Setting the `stateless` property on a component\n * ```ts\n * constructor(private openDirective: DaffOpenableDirective) {\n * this.openDirective.stateless = false;\n * }\n * ```\n */\n stateless = true;\n\n /**\n * Event fired when a component is opened (true) or closed (false)\n */\n @Output() toggled: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * Open the component\n */\n reveal() {\n this._setOpen(true);\n\n this.toggled.emit(true);\n }\n\n /**\n * Close the component\n */\n hide() {\n this._setOpen(false);\n\n this.toggled.emit(false);\n }\n\n /**\n * Open or close the component, depending on if it's currently open or not\n */\n toggle() {\n const state = !this.open;\n\n this._setOpen(state);\n\n this.toggled.emit(state);\n }\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n /**\n * Throw an error if open is set in a component that is not stateless\n */\n if(changes.open.currentValue && !this.stateless) {\n this.open = changes.open.previousValue;\n\n if(isDevMode()) {\n throw new Error(DaffOpenableStateError);\n }\n }\n }\n}\n","/**\n * @deprecated Deprecated in version 0.92.1. Will be removed in version 1.0.0.\n *\n * Interface for giving a component the ability to customize text alignment for component-specific UI.\n */\nexport interface DaffOrientable {\n orientation: DaffOrientation;\n}\n\n/**\n * The possible types that can be passed to a DaffOrientable component\n */\nexport type DaffOrientation = 'horizontal' | 'vertical';\n\n/**\n * This enum will be removed from the public api in v1.0.0.\n */\nexport enum DaffOrientationEnum {\n Horizontal = 'horizontal',\n Vertical = 'vertical',\n}\n","import {\n Directive,\n Input,\n isDevMode,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\n\nimport {\n DaffOrientable,\n DaffOrientation,\n DaffOrientationEnum,\n} from './orientable';\n\nconst orientationValues = (orientation: string) => (<any>Object).values(DaffOrientationEnum).includes(orientation);\n\nconst validateOrientation = (orientation: string) => {\n if(isDevMode()) {\n if(orientation !== undefined && !orientationValues(orientation)) {\n console.warn(`'${orientation}' is not a valid value of the orientation property. The available values are: left, center, or right.`);\n }\n }\n};\n\n/**\n * `DaffOrientableDirective`enforces consistent use of orientation across components.\n */\n@Directive({\n selector: '[daffOrientable]',\n host: {\n '[class.daff-horizontal]': 'orientation === \"horizontal\"',\n '[class.daff-vertical]': 'orientation === \"vertical\"',\n },\n})\nexport class DaffOrientableDirective implements DaffOrientable, OnChanges, OnInit {\n /**\n * The orientation of the component.\n */\n @Input() orientation: DaffOrientation;\n\n /**\n * The default used when no orientation is set.\n */\n public defaultOrientation: DaffOrientation;\n\n /**\n * @docs-private\n */\n ngOnInit() {\n if (this.defaultOrientation && !this.orientation) {\n this.orientation = this.defaultOrientation;\n }\n\n validateOrientation(this.orientation);\n }\n\n /**\n * @docs-private\n */\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.orientation?.currentValue) {\n this.orientation = this.defaultOrientation;\n }\n }\n}\n\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { DaffSelectable } from '../selectable/selectable';\n\n@Directive({\n selector: '[daffSelected]',\n host: {\n '[class.daff-selected]': 'selected',\n },\n})\n\nexport class DaffSelectableDirective implements DaffSelectable {\n /**\n * Controls whether the component is selected.\n */\n @Input() selected = false;\n\n /**\n * An event that fires after the component becomes selected.\n */\n @Output() becameSelected: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(private cd: ChangeDetectorRef) {}\n\n /**\n * Selects the component and emits the `becameSelected` event.\n */\n select() {\n this.selected = true;\n this.becameSelected.emit();\n this.cd.markForCheck();\n return this;\n }\n\n /**\n * Deselects the component.\n */\n deselect() {\n this.selected = false;\n this.cd.markForCheck();\n return this;\n }\n}\n","\nimport {\n Directive,\n ElementRef,\n OnDestroy,\n Renderer2,\n Inject,\n Input,\n afterNextRender,\n DOCUMENT,\n} from '@angular/core';\n\n@Directive({\n selector: '[daffStickyTracker]',\n})\nexport class DaffStickyTrackerDirective implements OnDestroy {\n @Input() sticky: 'top' | 'bottom' | undefined = undefined;\n\n private sentinelObserver?: IntersectionObserver;\n private readonly className = 'is-pinned';\n private lastPinnedState: boolean | null = null;\n private debounceTimeout?: number;\n private sentinelElement?: HTMLElement;\n private idleCallbackId?: number;\n\n constructor(\n private readonly elementRef: ElementRef<HTMLElement>,\n private readonly renderer: Renderer2,\n @Inject(DOCUMENT) private readonly document: Document,\n ) {\n afterNextRender({\n write: () => {\n this.createSentinel();\n },\n });\n\n afterNextRender({\n read: () => {\n this.scheduleObserverCreation();\n },\n });\n }\n\n private get isBottomSticky(): boolean {\n return this.sticky === 'bottom';\n }\n\n private scheduleObserverCreation(): void {\n const defaultView = this.document.defaultView;\n\n if (defaultView?.requestIdleCallback) {\n this.idleCallbackId = defaultView.requestIdleCallback(() => {\n this.createSentinelObserver();\n });\n } else {\n this.idleCallbackId = defaultView?.setTimeout(() => {\n this.createSentinelObserver();\n }, 0);\n }\n }\n\n private findScrollableParent(): HTMLElement | null {\n let parent = this.elementRef.nativeElement.parentElement;\n\n while (parent && parent !== this.document.body) {\n const computedStyle = this.document.defaultView?.getComputedStyle(parent);\n const overflowY = computedStyle?.overflowY;\n\n if (overflowY === 'auto' || overflowY === 'scroll') {\n return parent;\n }\n parent = parent.parentElement;\n }\n\n return null;\n }\n\n private createSentinel(): void {\n const stickyElement = this.elementRef.nativeElement;\n const parentElement = stickyElement.parentElement;\n\n if (!parentElement) {\n throw new Error('DaffStickyTracker: Sticky element must have a parent element');\n }\n\n this.sentinelElement = this.renderer.createElement('div');\n\n this.renderer.setStyle(this.sentinelElement, 'width', '1px');\n this.renderer.setStyle(this.sentinelElement, 'height', '1px');\n this.renderer.setStyle(this.sentinelElement, 'opacity', '0');\n this.renderer.setStyle(this.sentinelElement, 'pointer-events', 'none');\n this.renderer.setStyle(this.sentinelElement, 'margin', '0');\n this.renderer.setStyle(this.sentinelElement, 'padding', '0');\n this.renderer.setStyle(this.sentinelElement, 'border', 'none');\n this.renderer.setStyle(this.sentinelElement, 'overflow', 'hidden');\n this.renderer.setStyle(this.sentinelElement, 'font-size', '0');\n this.renderer.setStyle(this.sentinelElement, 'line-height', '0');\n\n if (this.isBottomSticky) {\n this.renderer.insertBefore(\n parentElement,\n this.sentinelElement,\n stickyElement.nextSibling,\n );\n } else {\n this.renderer.insertBefore(\n parentElement,\n this.sentinelElement,\n stickyElement,\n );\n }\n }\n\n private createSentinelObserver(): void {\n const scrollableParent = this.findScrollableParent();\n const stickyElement = this.elementRef.nativeElement;\n\n this.sentinelObserver = new IntersectionObserver(\n ([entry]) => {\n const shouldBePinned = !entry.isIntersecting;\n\n if (this.lastPinnedState !== shouldBePinned) {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n this.debounceTimeout = this.document.defaultView?.setTimeout(() => {\n if (shouldBePinned) {\n this.renderer.addClass(stickyElement, this.className);\n } else {\n this.renderer.removeClass(stickyElement, this.className);\n }\n this.lastPinnedState = shouldBePinned;\n }, 5);\n }\n },\n {\n root: scrollableParent,\n threshold: 0,\n rootMargin: '1px',\n },\n );\n\n if (this.sentinelElement) {\n this.sentinelObserver.observe(this.sentinelElement);\n }\n }\n\n ngOnDestroy(): void {\n if (this.idleCallbackId !== undefined) {\n const defaultView = this.document.defaultView;\n if (defaultView?.cancelIdleCallback) {\n defaultView.cancelIdleCallback(this.idleCallbackId);\n } else {\n defaultView?.clearTimeout(this.idleCallbackId);\n }\n }\n\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n if (this.sentinelObserver && this.sentinelElement) {\n this.sentinelObserver.unobserve(this.sentinelElement);\n }\n this.sentinelObserver?.disconnect();\n\n if (this.sentinelElement && this.sentinelElement.parentElement) {\n this.renderer.removeChild(this.sentinelElement.parentElement, this.sentinelElement);\n }\n }\n}\n","import {\n Directive,\n Input,\n} from '@angular/core';\n\n/**\n * Enforces consistent use of the disabled property.\n */\n@Directive({\n selector: '[daffDisableable]',\n host: {\n '[class.daff-disabled]': 'disabled',\n },\n})\nexport class DaffDisableableDirective {\n /**\n * Whether the component is disabled.\n */\n @Input() disabled = false;\n}\n","import {\n Directive,\n Input,\n} from '@angular/core';\n\n/**\n * `DaffLoadableDirective` allows a component to display a loading UI\n * by conditionally applying a CSS class. This is useful for indicating to\n * users that a user action is being processed. This directive can be used to\n * apply a loading UI to any component by toggling the `loading`\n * input property. When `loading` is `true`, the `daff-loading` CSS class\n * is applied, which should style the component to look like it's not interactable.\n *\n * @example Implementing it as an attribute directive\n *\n * ```html\n * <div daffLoadable [loading]=\"isLoading\">Content</div>\n * ```\n *\n * @example Implementing it as an Angular host directive\n *\n * ```ts\n * @Component({\n * selector: 'custom-component',\n * template: 'custom-component.html',\n * hostDirectives: [\n * {\n * directive: DaffLoadableDirective,\n * inputs: ['loading'],\n * },\n * ],\n * })\n * export class CustomComponent { }\n * ```\n *\n * ```scss\n * :host {\n * .spinner {\n * opacity: 0;\n * }\n * .daff-loading {\n * .spinner {\n * opacity: 1;\n * }\n * }\n * }\n * ```\n *\n * The directive applies the `daff-loading` class to the component. The class should be\n * defined in your styles to display the loading state as desired.\n */\n@Directive({\n selector: '[daffLoadable]',\n host: {\n '[class.daff-loading]': 'loading',\n },\n})\nexport class DaffLoadableDirective {\n @Input() loading = false;\n}\n","import {\n DOCUMENT,\n Inject,\n Injectable,\n signal,\n} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffRovingTabIndexService {\n private readonly _hierarchy: Array<string> = [];\n private readonly _group = signal('');\n\n readonly group = this._group.asReadonly();\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n enter(group: string) {\n if (this._group() !== group) {\n this._hierarchy.push(group);\n this._group.set(group);\n const el = this.document.querySelector<HTMLElement>(`[data-rti=\"${group}\"]`);\n if (el) {\n (<HTMLElement>this.document.activeElement).blur();\n el.focus();\n }\n }\n }\n\n leave() {\n const prev = this._hierarchy.pop();\n if (prev) {\n const group = this._hierarchy[this._hierarchy.length - 1] || '';\n this._group.set(group);\n (<HTMLElement>this.document.activeElement).blur();\n const boundary = this.document.querySelector<HTMLElement>(`[data-rti-boundary=\"${prev}\"][data-rti=\"${group}\"]`);\n if (boundary) {\n boundary.focus();\n } else {\n console.warn(`The boundary for RTI group ${prev} does not have a reference to the parent group ${group}`);\n }\n }\n }\n\n next() {\n this._changeFocus();\n }\n\n previous() {\n this._changeFocus(true);\n }\n\n private _changeFocus(up = false) {\n if (this._group()) {\n const ary = Array.from(this.document.querySelectorAll<HTMLElement>(`[data-rti=\"${this._group()}\"]`));\n const index = ary.findIndex((el) => el === this.document.activeElement);\n (<HTMLElement>this.document.activeElement).blur();\n (up\n ? ary[index === 0 ? ary.length - 1 : index - 1]\n : ary[index === ary.length - 1 ? 0 : index + 1]).focus();\n }\n }\n\n onKeydown(evt: Event) {\n if ('key' in evt) {\n switch ((<KeyboardEvent>evt).key) {\n case 'ArrowUp':\n case 'ArrowDown':\n if (this._group()) {\n evt.preventDefault();\n const ary = Array.from(this.document.querySelectorAll<HTMLElement>(`[data-rti=\"${this._group()}\"]`));\n const index = ary.findIndex((el) => el === this.document.activeElement);\n (<HTMLElement>this.document.activeElement).blur();\n ((<KeyboardEvent>evt).key === 'ArrowUp'\n ? ary[index === 0 ? ary.length - 1 : index - 1]\n : ary[index === ary.length - 1 ? 0 : index + 1]).focus();\n }\n break;\n\n default:\n break;\n }\n }\n }\n}\n","import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport {\n computed,\n Directive,\n effect,\n forwardRef,\n input,\n} from '@angular/core';\n\nimport { DaffRovingTabIndexService } from './roving-tab-index-group.service';\nimport { DaffRovingTabIndexDirective } from './roving-tab-index.directive';\n\n/**\n * Defines the boundary of an RTI group.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[rtiBoundary]',\n host: {\n '[attr.data-rti-boundary]': 'effectiveBoundary()',\n '(keydown.space)': 'enterGroup($event)',\n },\n hostDirectives: [\n CdkTrapFocus,\n forwardRef(() => DaffRovingTabIndexDirective),\n ],\n})\nexport class DaffRovingTabIndexBoundaryDirective {\n /**\n * Don't touch this directly. Use `_uniqueId`.\n */\n private static _uniqueIdCounter = 0;\n\n /**\n * Don't touch this directly. Use `_uniqueId`.\n */\n private _cachedUniqueId: string | undefined;\n private get _uniqueId(): string {\n if (!this._cachedUniqueId) {\n this._cachedUniqueId = `ε-rtiBoundary-${DaffRovingTabIndexBoundaryDirective._uniqueIdCounter++}`;\n }\n return this._cachedUniqueId;\n }\n\n /**\n * The name of the group for which that this element will act as boundary.\n * Optional, will be autogenerated to a unique name if omitted.\n */\n readonly rtiBoundary = input<string | null>(null);\n /**\n * The name of the group defined by this boundary.\n */\n readonly effectiveBoundary = computed(() => this.rtiBoundary() || this._uniqueId);\n\n constructor(\n private groupService: DaffRovingTabIndexService,\n private focusTrap: CdkTrapFocus,\n ) {\n effect(() => {\n this.focusTrap.enabled = this.effectiveBoundary() === this.groupService.group();\n });\n }\n\n /**\n * @docs-private\n */\n enterGroup(evt: Event) {\n evt.preventDefault();\n evt.stopPropagation();\n this.groupService.enter(this.effectiveBoundary());\n }\n}\n","import {\n computed,\n Directive,\n input,\n Optional,\n SkipSelf,\n} from '@angular/core';\n\nimport { DaffRovingTabIndexBoundaryDirective } from './roving-tab-index-boundary.directive';\nimport { DaffRovingTabIndexService } from './roving-tab-index-group.service';\n\n/**\n * Declares that an element is an RTI target.\n * Automatically applied to `<a>` and `<button>` elements.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[rti],a,button',\n host: {\n '[attr.tabindex]': 'tabindex()',\n '[attr.data-rti]': 'group()',\n '(keydown.escape)': 'leaveGroup($event)',\n '(keydown.arrowup)': 'previous($event)',\n '(keydown.arrowdown)': 'next($event)',\n },\n})\nexport class DaffRovingTabIndexDirective {\n /**\n * Allows the RTI group to be overriden.\n * By default it will be the nearest ancestor or the default root group if no boundary ancestor exists.\n * @see {@link DaffRovingTabIndexBoundaryDirective}.\n */\n readonly rti = input<string>('');\n /**\n * The group in which this RTI target resides.\n * See {@link DaffRovingTabIndexBoundaryDirective} to make an element act as the boundary of an RTI group.\n */\n readonly group = computed(() => this.rti() || this.parent?.effectiveBoundary() || '');\n /**\n * @docs-private\n */\n readonly tabindex = computed(() =>\n this.service.group() === this.group()\n ? 0\n : -1,\n );\n\n constructor(\n private service: DaffRovingTabIndexService,\n @Optional() @SkipSelf() private parent: DaffRovingTabIndexBoundaryDirective,\n ) {}\n\n /**\n * @docs-private\n */\n leaveGroup(evt: Event) {\n evt.stopPropagation();\n this.service.leave();\n }\n\n /**\n * @docs-private\n */\n next(evt: Event) {\n evt.stopPropagation();\n this.service.next();\n }\n\n /**\n * @docs-private\n */\n previous(evt: Event) {\n evt.stopPropagation();\n this.service.previous();\n }\n}\n","// Core\nexport * from './animation/animation-state-with-params';\nexport * from './prefix-suffix/public_api';\nexport * from './colorable/public_api';\nexport * from './breakpoints/public_api';\nexport * from './constructor/constructor';\nexport * from './statusable/public_api';\nexport * from './skeletonable/public_api';\nexport * from './text-alignable/public_api';\nexport * from './compactable/public_api';\nexport * from './manage-container-layout/public_api';\nexport * from './article-encapsulated/public_api';\nexport * from './theming/public_api';\nexport * from './lazy/public_api';\nexport * from './focus/public_api';\nexport * from './sizable/public_api';\nexport * from './openable/public_api';\nexport * from './orientable/public_api';\nexport * from './selectable/public_api';\nexport * from './sticky/public_api';\nexport * from './disableable/public_api';\nexport * from './loadable/public_api';\nexport * from './roving-tab-index/public_api';\n","/*\n * Public API Surface of @daffodil/design\n */\n\n// Atoms\nexport * from './atoms/form/form-label/public_api';\n\n// Core\nexport * from './core/public_api';\n","/**\n * This is a filler file for making the\n * demo work in dev mode.\n */\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffOsThemeService","i2.DaffThemeStorageService","i1.DaffThemingService","i1.DaffRovingTabIndexService","i3.DaffRovingTabIndexDirective","i2.DaffRovingTabIndexBoundaryDirective"],"mappings":"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"}