@qualcomm-ui/angular 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/button/index.d.ts +3 -2
  2. package/button/index.d.ts.map +1 -1
  3. package/combobox/index.d.ts +1 -0
  4. package/combobox/index.d.ts.map +1 -1
  5. package/fesm2022/qualcomm-ui-angular-button.mjs +10 -6
  6. package/fesm2022/qualcomm-ui-angular-button.mjs.map +1 -1
  7. package/fesm2022/qualcomm-ui-angular-combobox.mjs +12 -9
  8. package/fesm2022/qualcomm-ui-angular-combobox.mjs.map +1 -1
  9. package/fesm2022/qualcomm-ui-angular-inline-icon-button.mjs +4 -1
  10. package/fesm2022/qualcomm-ui-angular-inline-icon-button.mjs.map +1 -1
  11. package/fesm2022/qualcomm-ui-angular-inline-notification.mjs +8 -5
  12. package/fesm2022/qualcomm-ui-angular-inline-notification.mjs.map +1 -1
  13. package/fesm2022/qualcomm-ui-angular-link.mjs +4 -1
  14. package/fesm2022/qualcomm-ui-angular-link.mjs.map +1 -1
  15. package/fesm2022/qualcomm-ui-angular-menu.mjs +12 -7
  16. package/fesm2022/qualcomm-ui-angular-menu.mjs.map +1 -1
  17. package/fesm2022/qualcomm-ui-angular-number-input.mjs +12 -8
  18. package/fesm2022/qualcomm-ui-angular-number-input.mjs.map +1 -1
  19. package/fesm2022/qualcomm-ui-angular-password-input.mjs +4 -1
  20. package/fesm2022/qualcomm-ui-angular-password-input.mjs.map +1 -1
  21. package/fesm2022/qualcomm-ui-angular-progress-ring.mjs +4 -1
  22. package/fesm2022/qualcomm-ui-angular-progress-ring.mjs.map +1 -1
  23. package/fesm2022/qualcomm-ui-angular-segmented-control.mjs +6 -3
  24. package/fesm2022/qualcomm-ui-angular-segmented-control.mjs.map +1 -1
  25. package/fesm2022/qualcomm-ui-angular-switch.mjs +8 -4
  26. package/fesm2022/qualcomm-ui-angular-switch.mjs.map +1 -1
  27. package/fesm2022/qualcomm-ui-angular-table.mjs +6 -2
  28. package/fesm2022/qualcomm-ui-angular-table.mjs.map +1 -1
  29. package/fesm2022/qualcomm-ui-angular-text-input.mjs +10 -7
  30. package/fesm2022/qualcomm-ui-angular-text-input.mjs.map +1 -1
  31. package/fesm2022/qualcomm-ui-angular-theme.mjs +85 -57
  32. package/fesm2022/qualcomm-ui-angular-theme.mjs.map +1 -1
  33. package/fesm2022/qualcomm-ui-angular-transitions.mjs +34 -0
  34. package/fesm2022/qualcomm-ui-angular-transitions.mjs.map +1 -0
  35. package/inline-icon-button/index.d.ts +2 -1
  36. package/inline-icon-button/index.d.ts.map +1 -1
  37. package/inline-notification/index.d.ts +2 -1
  38. package/inline-notification/index.d.ts.map +1 -1
  39. package/link/index.d.ts +2 -1
  40. package/link/index.d.ts.map +1 -1
  41. package/menu/index.d.ts +2 -1
  42. package/menu/index.d.ts.map +1 -1
  43. package/number-input/index.d.ts +3 -2
  44. package/number-input/index.d.ts.map +1 -1
  45. package/package.json +8 -4
  46. package/password-input/index.d.ts +2 -1
  47. package/password-input/index.d.ts.map +1 -1
  48. package/progress-ring/index.d.ts +2 -1
  49. package/progress-ring/index.d.ts.map +1 -1
  50. package/segmented-control/index.d.ts +2 -1
  51. package/segmented-control/index.d.ts.map +1 -1
  52. package/switch/index.d.ts +3 -2
  53. package/switch/index.d.ts.map +1 -1
  54. package/table/index.d.ts +2 -1
  55. package/table/index.d.ts.map +1 -1
  56. package/text-input/index.d.ts +2 -1
  57. package/text-input/index.d.ts.map +1 -1
  58. package/theme/index.d.ts +36 -23
  59. package/theme/index.d.ts.map +1 -1
  60. package/transitions/index.d.ts +13 -0
  61. package/transitions/index.d.ts.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"qualcomm-ui-angular-text-input.mjs","sources":["../../src/text-input/text-input-clear-trigger.directive.ts","../../src/text-input/text-input-error-indicator.directive.ts","../../src/text-input/text-input-error-text.directive.ts","../../src/text-input/text-input-hint.directive.ts","../../src/text-input/text-input-input-group.directive.ts","../../src/text-input/text-input-input.directive.ts","../../src/text-input/text-input-label.directive.ts","../../src/text-input/text-input-root.directive.ts","../../src/text-input/text-input.component.ts","../../src/text-input/text-input.module.ts","../../src/text-input/qualcomm-ui-angular-text-input.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component, computed} from \"@angular/core\"\nimport {X} from \"lucide-angular\"\n\nimport {useInputClearTrigger} from \"@qualcomm-ui/angular/input\"\nimport {provideIcons} from \"@qualcomm-ui/angular-core/lucide\"\nimport {CoreTextInputClearTriggerDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Button that clears the input value.\n */\n@Component({\n providers: [provideIcons({X})],\n selector: \"[q-text-input-clear-trigger]\",\n standalone: false,\n template: `\n <svg qIcon=\"X\" [q-bind]=\"clearTriggerContext.getIconBindings()\"></svg>\n `,\n})\nexport class TextInputClearTriggerDirective extends CoreTextInputClearTriggerDirective {\n protected readonly clearTriggerContext = useInputClearTrigger()\n\n constructor() {\n super()\n this.trackBindings.extendWith(\n computed(() => this.clearTriggerContext.getRootBindings()),\n )\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component, input} from \"@angular/core\"\nimport {CircleAlert} from \"lucide-angular\"\n\nimport {useInputErrorIndicator} from \"@qualcomm-ui/angular/input\"\nimport type {LucideIconOrString} from \"@qualcomm-ui/angular-core/lucide\"\nimport {CoreTextInputErrorIndicatorDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Visual indicator displayed when the input is invalid.\n */\n@Component({\n selector: \"[q-text-input-error-indicator]\",\n standalone: false,\n template: `\n <ng-content>\n <svg [qIcon]=\"icon()\"></svg>\n </ng-content>\n `,\n})\nexport class TextInputErrorIndicatorDirective extends CoreTextInputErrorIndicatorDirective {\n /**\n * lucide-angular icon\n *\n * @default CircleAlert\n */\n readonly icon = input<LucideIconOrString>(CircleAlert)\n\n protected readonly inputErrorIndicatorContext = useInputErrorIndicator()\n\n constructor() {\n super()\n this.trackBindings.extendWith(() =>\n this.inputErrorIndicatorContext.getBindings(),\n )\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component, input} from \"@angular/core\"\n\nimport {useInputErrorText} from \"@qualcomm-ui/angular/input\"\nimport type {LucideIcon} from \"@qualcomm-ui/angular-core/lucide\"\nimport {CoreTextInputErrorTextDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Error message displayed when the input is invalid.\n */\n@Component({\n selector: \"[q-text-input-error-text]\",\n standalone: false,\n template: `\n @if (icon()) {\n <svg [qIcon]=\"icon()!\" />\n }\n <ng-content />\n `,\n})\nexport class TextInputErrorTextDirective extends CoreTextInputErrorTextDirective {\n /**\n * Optional error indicator icon.\n */\n readonly icon = input<LucideIcon | string>()\n\n protected readonly errorTextContext = useInputErrorText()\n\n constructor() {\n super()\n this.trackBindings.extendWith(() => this.errorTextContext.getBindings())\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive} from \"@angular/core\"\n\nimport {useInputHint} from \"@qualcomm-ui/angular/input\"\nimport {CoreTextInputHintDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Helper text displayed below the input.\n */\n@Directive({\n selector: \"[q-text-input-hint]\",\n standalone: false,\n})\nexport class TextInputHintDirective extends CoreTextInputHintDirective {\n protected readonly hintContext = useInputHint()\n\n constructor() {\n super()\n this.trackBindings.extendWith(() => this.hintContext.getBindings())\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component} from \"@angular/core\"\n\nimport {useInputGroup} from \"@qualcomm-ui/angular/input\"\nimport {CoreTextInputInputGroupDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Container that wraps the input element and optional icons.\n */\n@Component({\n selector: \"[q-text-input-input-group]\",\n standalone: false,\n template: `\n <ng-content select=\"[q-input-start-icon]\">\n @if (inputGroupContext().startIcon) {\n <div q-input-start-icon [icon]=\"inputGroupContext().startIcon\"></div>\n }\n </ng-content>\n <ng-content />\n <ng-content select=\"[q-input-end-icon]\">\n @if (inputGroupContext().endIcon) {\n <div q-input-end-icon [icon]=\"inputGroupContext().endIcon\"></div>\n }\n </ng-content>\n `,\n})\nexport class TextInputInputGroupDirective extends CoreTextInputInputGroupDirective {\n protected readonly inputGroupContext = useInputGroup()\n\n constructor() {\n super()\n this.trackBindings.extendWith(() => this.inputGroupContext().getBindings())\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive} from \"@angular/core\"\n\nimport {useInputInput} from \"@qualcomm-ui/angular/input\"\nimport {useForbiddenFormControlWarning} from \"@qualcomm-ui/angular-core/forms\"\nimport {CoreTextInputInputDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * The text input element. Note: do not apply form control bindings like `ngModel`\n * or `formControl` to this element. Apply them to the root element instead.\n */\n@Directive({\n selector: \"[q-text-input-input]\",\n standalone: false,\n})\nexport class TextInputInputDirective extends CoreTextInputInputDirective {\n protected readonly inputContext = useInputInput()\n\n constructor() {\n super()\n useForbiddenFormControlWarning({\n directive: \"q-text-input-input\",\n rootDirective: \"q-text-input\",\n })\n this.trackBindings.extendWith(() => this.inputContext.getBindings())\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component, computed} from \"@angular/core\"\nimport {Asterisk} from \"lucide-angular\"\n\nimport {useQdsInputContext} from \"@qualcomm-ui/angular/input\"\nimport {provideIcons} from \"@qualcomm-ui/angular-core/lucide\"\nimport {CoreTextInputLabelDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * An accessible label that is automatically associated with the input.\n */\n@Component({\n providers: [provideIcons({Asterisk})],\n selector: \"[q-text-input-label]\",\n standalone: false,\n template: `\n <ng-content />\n @if (textInputContext().required) {\n <svg\n qIcon=\"Asterisk\"\n size=\"xs\"\n [q-bind]=\"qdsInputContext().getRequiredIndicatorBindings()\"\n ></svg>\n }\n `,\n})\nexport class TextInputLabelDirective extends CoreTextInputLabelDirective {\n protected readonly qdsInputContext = useQdsInputContext()\n\n constructor() {\n super()\n this.trackBindings.extendWith(\n computed(() => this.qdsInputContext().getLabelBindings()),\n )\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, inject, input, type OnInit} from \"@angular/core\"\n\nimport {\n provideQdsInputContext,\n type QdsAngularInputApiProps,\n QdsInputContextService,\n} from \"@qualcomm-ui/angular/input\"\nimport type {LucideIcon} from \"@qualcomm-ui/angular-core/lucide\"\nimport {\n mergeProps,\n normalizeProps,\n useTrackBindings,\n} from \"@qualcomm-ui/angular-core/machine\"\nimport type {SignalifyInput} from \"@qualcomm-ui/angular-core/signals\"\nimport {\n CoreTextInputRootDirective,\n provideTextInputContext,\n} from \"@qualcomm-ui/angular-core/text-input\"\nimport {createQdsInputApi, type QdsInputSize} from \"@qualcomm-ui/qds-core/input\"\n\n/**\n * Groups all parts of the text input.\n */\n@Directive({\n providers: [provideTextInputContext(), provideQdsInputContext()],\n selector: \"[q-text-input-root]\",\n standalone: false,\n})\nexport class TextInputRootDirective\n extends CoreTextInputRootDirective\n implements SignalifyInput<QdsAngularInputApiProps>, OnInit\n{\n /**\n * {@link https://lucide.dev lucide-angular} icon, positioned after\n * the input.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-input-group>\n * <div q-input-end-icon [icon]=\"...\"></div>\n * </div>\n * ```\n */\n readonly endIcon = input<LucideIcon | string | undefined>()\n\n /**\n * The size of the input field and its elements. Governs properties like font\n * size, item padding, and icon sizes.\n *\n * @default 'md'\n */\n readonly size = input<QdsInputSize>()\n\n /**\n * {@link https://lucide.dev lucide-angular} icon, positioned before\n * the input.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-input-group>\n * <div q-input-start-icon [icon]=\"...\"></div>\n * </div>\n * ```\n */\n readonly startIcon = input<LucideIcon | string | undefined>()\n\n protected readonly qdsInputService = inject(QdsInputContextService)\n\n protected override readonly trackBindings = useTrackBindings(() =>\n mergeProps(\n this.textInputService.context().getRootBindings(),\n this.qdsInputService.context().getRootBindings(),\n ),\n )\n\n override ngOnInit() {\n super.ngOnInit()\n\n const inputApi = computed(() =>\n createQdsInputApi(\n {\n endIcon: this.endIcon(),\n size: this.size(),\n startIcon: this.startIcon(),\n },\n normalizeProps,\n ),\n )\n\n this.qdsInputService.init(inputApi)\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {booleanAttribute, Component, input} from \"@angular/core\"\nimport {AlertCircle} from \"lucide-angular\"\n\nimport {provideQdsInputContext} from \"@qualcomm-ui/angular/input\"\nimport {provideIcons} from \"@qualcomm-ui/angular-core/lucide\"\nimport {provideTextInputContext} from \"@qualcomm-ui/angular-core/text-input\"\nimport type {Booleanish} from \"@qualcomm-ui/utils/coercion\"\n\nimport {TextInputRootDirective} from \"./text-input-root.directive\"\n\n@Component({\n providers: [\n provideTextInputContext(),\n provideQdsInputContext(),\n provideIcons({AlertCircle}),\n ],\n selector: \"q-text-input:not([q-text-input-root])\",\n standalone: false,\n template: `\n <ng-content select=\"[q-text-input-label]\">\n @if (label()) {\n <label q-text-input-label>{{ label() }}</label>\n }\n </ng-content>\n <div q-text-input-input-group>\n <input q-text-input-input [placeholder]=\"placeholder()\" />\n\n <ng-content select=\"[q-text-input-clear-trigger]\">\n @if (clearable()) {\n <button q-text-input-clear-trigger></button>\n }\n </ng-content>\n\n <ng-content select=\"[q-text-input-error-indicator]\">\n <span q-text-input-error-indicator></span>\n </ng-content>\n </div>\n <ng-content select=\"[q-text-input-hint]\">\n @if (hint()) {\n <span q-text-input-hint>\n {{ hint() }}\n </span>\n }\n </ng-content>\n\n <ng-content select=\"[q-text-input-error-text]\">\n @if (errorText()) {\n <div q-text-input-error-text>\n {{ errorText() }}\n </div>\n }\n </ng-content>\n `,\n})\nexport class TextInputComponent extends TextInputRootDirective {\n /**\n * When `true`, renders a clear button that resets the input value on click.\n * The button only appears when the input has a value.\n *\n * @default true\n */\n readonly clearable = input<boolean | undefined, Booleanish>(true, {\n transform: booleanAttribute,\n })\n\n /**\n * Optional error that describes the element when {@link invalid} is true.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-error-text>...</div>\n * ```\n */\n readonly errorText = input<string | undefined | null>()\n\n /**\n * Optional hint describing the element. This element is automatically\n * associated with the component's input element for accessibility.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-hint>...</div>\n * ```\n */\n readonly hint = input<string | undefined | null>()\n\n /**\n * Optional label describing the element. Recommended. This element is\n * automatically associated with the component's input element for\n * accessibility.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-label>...</div>\n * ```\n */\n readonly label = input<string | undefined>()\n\n /**\n * HTML {@link https://www.w3schools.com/tags/att_input_placeholder.asp placeholder} attribute,\n * passed to the internal input element.\n */\n readonly placeholder = input<string>(\"\")\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {NgModule} from \"@angular/core\"\n\nimport {IconDirective} from \"@qualcomm-ui/angular/icon\"\nimport {\n InputEndIconComponent,\n InputStartIconComponent,\n} from \"@qualcomm-ui/angular/input\"\nimport {QBindDirective} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {TextInputClearTriggerDirective} from \"./text-input-clear-trigger.directive\"\nimport {TextInputErrorIndicatorDirective} from \"./text-input-error-indicator.directive\"\nimport {TextInputErrorTextDirective} from \"./text-input-error-text.directive\"\nimport {TextInputHintDirective} from \"./text-input-hint.directive\"\nimport {TextInputInputGroupDirective} from \"./text-input-input-group.directive\"\nimport {TextInputInputDirective} from \"./text-input-input.directive\"\nimport {TextInputLabelDirective} from \"./text-input-label.directive\"\nimport {TextInputRootDirective} from \"./text-input-root.directive\"\nimport {TextInputComponent} from \"./text-input.component\"\n\n@NgModule({\n declarations: [\n TextInputComponent,\n TextInputClearTriggerDirective,\n TextInputRootDirective,\n TextInputErrorTextDirective,\n TextInputHintDirective,\n TextInputInputDirective,\n TextInputInputGroupDirective,\n TextInputLabelDirective,\n TextInputErrorIndicatorDirective,\n ],\n exports: [\n TextInputComponent,\n TextInputClearTriggerDirective,\n TextInputRootDirective,\n TextInputErrorTextDirective,\n TextInputHintDirective,\n TextInputInputDirective,\n TextInputInputGroupDirective,\n TextInputLabelDirective,\n TextInputErrorIndicatorDirective,\n ],\n imports: [\n QBindDirective,\n IconDirective,\n InputStartIconComponent,\n InputEndIconComponent,\n ],\n})\nexport class TextInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i1.TextInputClearTriggerDirective","i2.TextInputErrorTextDirective","i3.TextInputHintDirective","i4.TextInputInputDirective","i5.TextInputInputGroupDirective","i6.TextInputLabelDirective","i7.TextInputErrorIndicatorDirective"],"mappings":"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"}
1
+ {"version":3,"file":"qualcomm-ui-angular-text-input.mjs","sources":["../../src/text-input/text-input-clear-trigger.directive.ts","../../src/text-input/text-input-error-indicator.directive.ts","../../src/text-input/text-input-error-text.directive.ts","../../src/text-input/text-input-hint.directive.ts","../../src/text-input/text-input-input-group.directive.ts","../../src/text-input/text-input-input.directive.ts","../../src/text-input/text-input-label.directive.ts","../../src/text-input/text-input-root.directive.ts","../../src/text-input/text-input.component.ts","../../src/text-input/text-input.module.ts","../../src/text-input/qualcomm-ui-angular-text-input.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component, computed} from \"@angular/core\"\nimport {X} from \"lucide-angular\"\n\nimport {useInputClearTrigger} from \"@qualcomm-ui/angular/input\"\nimport {QuiPreloadDirective} from \"@qualcomm-ui/angular/transitions\"\nimport {provideIcons} from \"@qualcomm-ui/angular-core/lucide\"\nimport {CoreTextInputClearTriggerDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Button that clears the input value.\n */\n@Component({\n hostDirectives: [QuiPreloadDirective],\n providers: [provideIcons({X})],\n selector: \"[q-text-input-clear-trigger]\",\n standalone: false,\n template: `\n <svg qIcon=\"X\" [q-bind]=\"clearTriggerContext.getIconBindings()\"></svg>\n `,\n})\nexport class TextInputClearTriggerDirective extends CoreTextInputClearTriggerDirective {\n protected readonly clearTriggerContext = useInputClearTrigger()\n\n constructor() {\n super()\n this.trackBindings.extendWith(\n computed(() => this.clearTriggerContext.getRootBindings()),\n )\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component, input} from \"@angular/core\"\nimport {CircleAlert} from \"lucide-angular\"\n\nimport {useInputErrorIndicator} from \"@qualcomm-ui/angular/input\"\nimport type {LucideIconOrString} from \"@qualcomm-ui/angular-core/lucide\"\nimport {CoreTextInputErrorIndicatorDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Visual indicator displayed when the input is invalid.\n */\n@Component({\n selector: \"[q-text-input-error-indicator]\",\n standalone: false,\n template: `\n <ng-content>\n <svg [qIcon]=\"icon()\"></svg>\n </ng-content>\n `,\n})\nexport class TextInputErrorIndicatorDirective extends CoreTextInputErrorIndicatorDirective {\n /**\n * lucide-angular icon\n *\n * @default CircleAlert\n */\n readonly icon = input<LucideIconOrString>(CircleAlert)\n\n protected readonly inputErrorIndicatorContext = useInputErrorIndicator()\n\n constructor() {\n super()\n this.trackBindings.extendWith(() =>\n this.inputErrorIndicatorContext.getBindings(),\n )\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component, input} from \"@angular/core\"\n\nimport {useInputErrorText} from \"@qualcomm-ui/angular/input\"\nimport type {LucideIcon} from \"@qualcomm-ui/angular-core/lucide\"\nimport {CoreTextInputErrorTextDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Error message displayed when the input is invalid.\n */\n@Component({\n selector: \"[q-text-input-error-text]\",\n standalone: false,\n template: `\n @if (icon()) {\n <svg [qIcon]=\"icon()!\" />\n }\n <ng-content />\n `,\n})\nexport class TextInputErrorTextDirective extends CoreTextInputErrorTextDirective {\n /**\n * Optional error indicator icon.\n */\n readonly icon = input<LucideIcon | string>()\n\n protected readonly errorTextContext = useInputErrorText()\n\n constructor() {\n super()\n this.trackBindings.extendWith(() => this.errorTextContext.getBindings())\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive} from \"@angular/core\"\n\nimport {useInputHint} from \"@qualcomm-ui/angular/input\"\nimport {CoreTextInputHintDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Helper text displayed below the input.\n */\n@Directive({\n selector: \"[q-text-input-hint]\",\n standalone: false,\n})\nexport class TextInputHintDirective extends CoreTextInputHintDirective {\n protected readonly hintContext = useInputHint()\n\n constructor() {\n super()\n this.trackBindings.extendWith(() => this.hintContext.getBindings())\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component} from \"@angular/core\"\n\nimport {useInputGroup} from \"@qualcomm-ui/angular/input\"\nimport {CoreTextInputInputGroupDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * Container that wraps the input element and optional icons.\n */\n@Component({\n selector: \"[q-text-input-input-group]\",\n standalone: false,\n template: `\n <ng-content select=\"[q-input-start-icon]\">\n @if (inputGroupContext().startIcon) {\n <div q-input-start-icon [icon]=\"inputGroupContext().startIcon\"></div>\n }\n </ng-content>\n <ng-content />\n <ng-content select=\"[q-input-end-icon]\">\n @if (inputGroupContext().endIcon) {\n <div q-input-end-icon [icon]=\"inputGroupContext().endIcon\"></div>\n }\n </ng-content>\n `,\n})\nexport class TextInputInputGroupDirective extends CoreTextInputInputGroupDirective {\n protected readonly inputGroupContext = useInputGroup()\n\n constructor() {\n super()\n this.trackBindings.extendWith(() => this.inputGroupContext().getBindings())\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive} from \"@angular/core\"\n\nimport {useInputInput} from \"@qualcomm-ui/angular/input\"\nimport {useForbiddenFormControlWarning} from \"@qualcomm-ui/angular-core/forms\"\nimport {CoreTextInputInputDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * The text input element. Note: do not apply form control bindings like `ngModel`\n * or `formControl` to this element. Apply them to the root element instead.\n */\n@Directive({\n selector: \"[q-text-input-input]\",\n standalone: false,\n})\nexport class TextInputInputDirective extends CoreTextInputInputDirective {\n protected readonly inputContext = useInputInput()\n\n constructor() {\n super()\n useForbiddenFormControlWarning({\n directive: \"q-text-input-input\",\n rootDirective: \"q-text-input\",\n })\n this.trackBindings.extendWith(() => this.inputContext.getBindings())\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Component, computed} from \"@angular/core\"\nimport {Asterisk} from \"lucide-angular\"\n\nimport {useQdsInputContext} from \"@qualcomm-ui/angular/input\"\nimport {provideIcons} from \"@qualcomm-ui/angular-core/lucide\"\nimport {CoreTextInputLabelDirective} from \"@qualcomm-ui/angular-core/text-input\"\n\n/**\n * An accessible label that is automatically associated with the input.\n */\n@Component({\n providers: [provideIcons({Asterisk})],\n selector: \"[q-text-input-label]\",\n standalone: false,\n template: `\n <ng-content />\n @if (textInputContext().required) {\n <svg\n qIcon=\"Asterisk\"\n size=\"xs\"\n [q-bind]=\"qdsInputContext().getRequiredIndicatorBindings()\"\n ></svg>\n }\n `,\n})\nexport class TextInputLabelDirective extends CoreTextInputLabelDirective {\n protected readonly qdsInputContext = useQdsInputContext()\n\n constructor() {\n super()\n this.trackBindings.extendWith(\n computed(() => this.qdsInputContext().getLabelBindings()),\n )\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, inject, input, type OnInit} from \"@angular/core\"\n\nimport {\n provideQdsInputContext,\n type QdsAngularInputApiProps,\n QdsInputContextService,\n} from \"@qualcomm-ui/angular/input\"\nimport type {LucideIcon} from \"@qualcomm-ui/angular-core/lucide\"\nimport {\n mergeProps,\n normalizeProps,\n useTrackBindings,\n} from \"@qualcomm-ui/angular-core/machine\"\nimport type {SignalifyInput} from \"@qualcomm-ui/angular-core/signals\"\nimport {\n CoreTextInputRootDirective,\n provideTextInputContext,\n} from \"@qualcomm-ui/angular-core/text-input\"\nimport {createQdsInputApi, type QdsInputSize} from \"@qualcomm-ui/qds-core/input\"\n\n/**\n * Groups all parts of the text input.\n */\n@Directive({\n providers: [provideTextInputContext(), provideQdsInputContext()],\n selector: \"[q-text-input-root]\",\n standalone: false,\n})\nexport class TextInputRootDirective\n extends CoreTextInputRootDirective\n implements SignalifyInput<QdsAngularInputApiProps>, OnInit\n{\n /**\n * {@link https://lucide.dev lucide-angular} icon, positioned after\n * the input.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-input-group>\n * <div q-input-end-icon [icon]=\"...\"></div>\n * </div>\n * ```\n */\n readonly endIcon = input<LucideIcon | string | undefined>()\n\n /**\n * The size of the input field and its elements. Governs properties like font\n * size, item padding, and icon sizes.\n *\n * @default 'md'\n */\n readonly size = input<QdsInputSize>()\n\n /**\n * {@link https://lucide.dev lucide-angular} icon, positioned before\n * the input.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-input-group>\n * <div q-input-start-icon [icon]=\"...\"></div>\n * </div>\n * ```\n */\n readonly startIcon = input<LucideIcon | string | undefined>()\n\n protected readonly qdsInputService = inject(QdsInputContextService)\n\n protected override readonly trackBindings = useTrackBindings(() =>\n mergeProps(\n this.textInputService.context().getRootBindings(),\n this.qdsInputService.context().getRootBindings(),\n ),\n )\n\n override ngOnInit() {\n super.ngOnInit()\n\n const inputApi = computed(() =>\n createQdsInputApi(\n {\n endIcon: this.endIcon(),\n size: this.size(),\n startIcon: this.startIcon(),\n },\n normalizeProps,\n ),\n )\n\n this.qdsInputService.init(inputApi)\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {booleanAttribute, Component, input} from \"@angular/core\"\nimport {AlertCircle} from \"lucide-angular\"\n\nimport {provideQdsInputContext} from \"@qualcomm-ui/angular/input\"\nimport {provideIcons} from \"@qualcomm-ui/angular-core/lucide\"\nimport {provideTextInputContext} from \"@qualcomm-ui/angular-core/text-input\"\nimport type {Booleanish} from \"@qualcomm-ui/utils/coercion\"\n\nimport {TextInputRootDirective} from \"./text-input-root.directive\"\n\n@Component({\n providers: [\n provideTextInputContext(),\n provideQdsInputContext(),\n provideIcons({AlertCircle}),\n ],\n selector: \"q-text-input:not([q-text-input-root])\",\n standalone: false,\n template: `\n <ng-content select=\"[q-text-input-label]\">\n @if (label()) {\n <label q-text-input-label>{{ label() }}</label>\n }\n </ng-content>\n <div q-text-input-input-group>\n <input q-text-input-input [placeholder]=\"placeholder()\" />\n\n <ng-content select=\"[q-text-input-clear-trigger]\">\n @if (clearable()) {\n <button q-text-input-clear-trigger></button>\n }\n </ng-content>\n\n <ng-content select=\"[q-text-input-error-indicator]\">\n <span q-text-input-error-indicator></span>\n </ng-content>\n </div>\n <ng-content select=\"[q-text-input-hint]\">\n @if (hint()) {\n <span q-text-input-hint>\n {{ hint() }}\n </span>\n }\n </ng-content>\n\n <ng-content select=\"[q-text-input-error-text]\">\n @if (errorText()) {\n <div q-text-input-error-text>\n {{ errorText() }}\n </div>\n }\n </ng-content>\n `,\n})\nexport class TextInputComponent extends TextInputRootDirective {\n /**\n * When `true`, renders a clear button that resets the input value on click.\n * The button only appears when the input has a value.\n *\n * @default true\n */\n readonly clearable = input<boolean | undefined, Booleanish>(true, {\n transform: booleanAttribute,\n })\n\n /**\n * Optional error that describes the element when {@link invalid} is true.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-error-text>...</div>\n * ```\n */\n readonly errorText = input<string | undefined | null>()\n\n /**\n * Optional hint describing the element. This element is automatically\n * associated with the component's input element for accessibility.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-hint>...</div>\n * ```\n */\n readonly hint = input<string | undefined | null>()\n\n /**\n * Optional label describing the element. Recommended. This element is\n * automatically associated with the component's input element for\n * accessibility.\n *\n * @remarks\n * To customize the element, provide it using the directive instead:\n *\n * ```angular-html\n * <div q-text-input-label>...</div>\n * ```\n */\n readonly label = input<string | undefined>()\n\n /**\n * HTML {@link https://www.w3schools.com/tags/att_input_placeholder.asp placeholder} attribute,\n * passed to the internal input element.\n */\n readonly placeholder = input<string>(\"\")\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {NgModule} from \"@angular/core\"\n\nimport {IconDirective} from \"@qualcomm-ui/angular/icon\"\nimport {\n InputEndIconComponent,\n InputStartIconComponent,\n} from \"@qualcomm-ui/angular/input\"\nimport {QBindDirective} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {TextInputClearTriggerDirective} from \"./text-input-clear-trigger.directive\"\nimport {TextInputErrorIndicatorDirective} from \"./text-input-error-indicator.directive\"\nimport {TextInputErrorTextDirective} from \"./text-input-error-text.directive\"\nimport {TextInputHintDirective} from \"./text-input-hint.directive\"\nimport {TextInputInputGroupDirective} from \"./text-input-input-group.directive\"\nimport {TextInputInputDirective} from \"./text-input-input.directive\"\nimport {TextInputLabelDirective} from \"./text-input-label.directive\"\nimport {TextInputRootDirective} from \"./text-input-root.directive\"\nimport {TextInputComponent} from \"./text-input.component\"\n\n@NgModule({\n declarations: [\n TextInputComponent,\n TextInputClearTriggerDirective,\n TextInputRootDirective,\n TextInputErrorTextDirective,\n TextInputHintDirective,\n TextInputInputDirective,\n TextInputInputGroupDirective,\n TextInputLabelDirective,\n TextInputErrorIndicatorDirective,\n ],\n exports: [\n TextInputComponent,\n TextInputClearTriggerDirective,\n TextInputRootDirective,\n TextInputErrorTextDirective,\n TextInputHintDirective,\n TextInputInputDirective,\n TextInputInputGroupDirective,\n TextInputLabelDirective,\n TextInputErrorIndicatorDirective,\n ],\n imports: [\n QBindDirective,\n IconDirective,\n InputStartIconComponent,\n InputEndIconComponent,\n ],\n})\nexport class TextInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","i2","i1.TextInputClearTriggerDirective","i2.TextInputErrorTextDirective","i3.TextInputHintDirective","i4.TextInputInputDirective","i5.TextInputInputGroupDirective","i6.TextInputLabelDirective","i7.TextInputErrorIndicatorDirective"],"mappings":"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"}
@@ -1,54 +1,50 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, makeEnvironmentProviders, inject, REQUEST, signal, PLATFORM_ID, effect, Injectable } from '@angular/core';
3
- import { DOCUMENT, isPlatformServer, isPlatformBrowser } from '@angular/common';
2
+ import { InjectionToken, inject, REQUEST, Renderer2, signal, effect, Injectable } from '@angular/core';
3
+ import { DOCUMENT } from '@angular/common';
4
+ import { useCsrCheck } from '@qualcomm-ui/angular-core/common';
4
5
 
5
6
  // Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
6
7
  // SPDX-License-Identifier: BSD-3-Clause-Clear
7
- const THEME_COOKIE_NAME = "qds-theme";
8
- const BRAND_COOKIE_NAME = "qds-brand";
8
+ const THEME_COOKIE_NAME = "app-qds-theme";
9
+ const BRAND_COOKIE_NAME = "app-qds-brand";
9
10
  /**
10
11
  * Concrete values are provided at bootstrap, but we attach a
11
12
  * factory so injection works even if the caller forgets to register them,
12
13
  * falling back to the light theme / first brand.
13
14
  */
14
- const THEME_COOKIE = new InjectionToken("THEME_COOKIE", {
15
- factory: () => "dark",
16
- });
17
- const BRAND_COOKIE = new InjectionToken("BRAND_COOKIE", {
18
- factory: () => "qualcomm",
19
- });
15
+ const THEME_COOKIE = new InjectionToken("THEME_COOKIE");
16
+ const BRAND_COOKIE = new InjectionToken("BRAND_COOKIE");
20
17
  /**
21
18
  * Reads the cookie in both the browser (document.cookie) and during SSR
22
19
  * (Fetch Request.headers) and makes it available through THEME_COOKIE.
23
20
  */
24
- function provideThemeCookie() {
25
- return makeEnvironmentProviders([
26
- {
27
- provide: THEME_COOKIE,
28
- useFactory: () => {
29
- const opts = inject(QDS_THEME_OPTIONS, { optional: true });
30
- return (opts?.themeOverride || readCookie(THEME_COOKIE_NAME, "dark"));
31
- },
21
+ function provideThemeCookie(opts) {
22
+ return {
23
+ provide: THEME_COOKIE,
24
+ useFactory: () => {
25
+ return (opts?.themeOverride ||
26
+ readCookie(THEME_COOKIE_NAME) ||
27
+ opts?.defaultTheme ||
28
+ "dark");
32
29
  },
33
- ]);
30
+ };
34
31
  }
35
32
  /**
36
33
  * Same helper for the brand cookie.
37
34
  */
38
- function provideBrandCookie() {
39
- return makeEnvironmentProviders([
40
- {
41
- provide: BRAND_COOKIE,
42
- useFactory: () => {
43
- const opts = inject(QDS_THEME_OPTIONS, { optional: true });
44
- return (opts?.brandOverride ||
45
- readCookie(BRAND_COOKIE_NAME, "qualcomm"));
46
- },
35
+ function provideBrandCookie(opts) {
36
+ return {
37
+ provide: BRAND_COOKIE,
38
+ useFactory: () => {
39
+ return (opts?.brandOverride ||
40
+ readCookie(BRAND_COOKIE_NAME) ||
41
+ opts?.defaultBrand ||
42
+ "qualcomm");
47
43
  },
48
- ]);
44
+ };
49
45
  }
50
46
  const QDS_THEME_OPTIONS = new InjectionToken("QDS_THEME_OPTIONS");
51
- function provideQdsTheme(opts) {
47
+ function provideQdsThemeOptions(opts) {
52
48
  return {
53
49
  provide: QDS_THEME_OPTIONS,
54
50
  useValue: opts || {
@@ -56,44 +52,48 @@ function provideQdsTheme(opts) {
56
52
  },
57
53
  };
58
54
  }
59
- function readCookie(name, fallback) {
55
+ function provideQdsTheme(opts) {
56
+ return [
57
+ provideQdsThemeOptions(opts),
58
+ provideThemeCookie(opts),
59
+ provideBrandCookie(opts),
60
+ ];
61
+ }
62
+ function readCookie(name) {
60
63
  // Browser path
61
64
  // eslint-disable-next-line no-restricted-globals
62
65
  if (typeof document !== "undefined") {
63
66
  // eslint-disable-next-line no-restricted-globals
64
67
  const match = document.cookie.match(new RegExp(`(?:^|; )${name}=([^;]*)`));
65
- return match?.[1] ?? fallback;
68
+ return match?.[1] || undefined;
66
69
  }
67
70
  // Server path – Fetch Request is registered in the injector
68
71
  const request = inject(REQUEST, { optional: true });
69
72
  if (request) {
70
73
  const cookieHeader = request.headers.get("cookie") ?? "";
71
74
  const match = cookieHeader.match(new RegExp(`(?:^|; )${name}=([^;]*)`));
72
- return match?.[1] ?? fallback;
75
+ return match?.[1];
73
76
  }
74
- return fallback;
77
+ return undefined;
75
78
  }
76
79
 
77
80
  // Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
78
81
  // SPDX-License-Identifier: BSD-3-Clause-Clear
82
+ /**
83
+ * A service that provides access to the current theme and brand, and ensures that
84
+ * the application's root element is in sync with the selected brand/theme.
85
+ */
79
86
  class QdsThemeService {
87
+ document = inject(DOCUMENT);
88
+ response = inject(Response, { optional: true });
89
+ renderer = inject(Renderer2, { optional: true });
90
+ isCsr = useCsrCheck();
80
91
  theme = signal(inject(THEME_COOKIE), ...(ngDevMode ? [{ debugName: "theme" }] : []));
81
92
  brand = signal(inject(BRAND_COOKIE), ...(ngDevMode ? [{ debugName: "brand" }] : []));
82
- platformId = inject(PLATFORM_ID);
83
- response = inject(Response, { optional: true });
84
- document = inject(DOCUMENT);
85
- themeOpts = inject(QDS_THEME_OPTIONS, { optional: true });
93
+ themeOpts = inject(QDS_THEME_OPTIONS);
86
94
  get themeOptions() {
87
- const opts = this.themeOpts || {};
88
- let rootElement = opts.rootElement;
89
- if (!rootElement) {
90
- if (isPlatformServer(this.platformId)) {
91
- rootElement = globalThis.document?.documentElement;
92
- }
93
- else {
94
- rootElement = this.document.documentElement;
95
- }
96
- }
95
+ const opts = this.themeOpts;
96
+ const rootElement = opts.rootElement || this.document.documentElement;
97
97
  return {
98
98
  rootElement,
99
99
  skipAttributes: typeof opts.skipAttributes === "object"
@@ -102,6 +102,7 @@ class QdsThemeService {
102
102
  theme: opts.skipAttributes.theme || false,
103
103
  }
104
104
  : opts.skipAttributes || false,
105
+ skipColorSchemeStyle: opts.skipColorSchemeStyle || false,
105
106
  };
106
107
  }
107
108
  get rootElement() {
@@ -121,20 +122,34 @@ class QdsThemeService {
121
122
  : skipAttributes || false;
122
123
  }
123
124
  constructor() {
124
- effect(() => this.syncSideEffects(this.theme(), this.brand()));
125
+ effect(() => {
126
+ const theme = this.theme();
127
+ const brand = this.brand();
128
+ this.syncAttributes(theme, brand);
129
+ this.syncCookie(theme, brand);
130
+ });
131
+ const theme = readCookie(THEME_COOKIE_NAME) || this.themeOpts?.defaultTheme;
132
+ if (theme === "dark" || theme === "light") {
133
+ this.theme.set(theme);
134
+ this.syncAttributes(theme, this.brand());
135
+ }
125
136
  }
126
137
  toggleTheme() {
127
138
  this.theme.update((theme) => (theme === "dark" ? "light" : "dark"));
128
139
  }
129
- syncSideEffects(theme, brand) {
140
+ syncAttributes(theme, brand) {
130
141
  if (!this.skipBrandAttribute) {
131
- console.debug("applying brand");
132
- this.updateHtmlAttribute("data-brand", brand);
142
+ this.updateAttribute("data-brand", brand);
133
143
  }
134
144
  if (!this.skipThemeAttribute) {
135
- this.updateHtmlAttribute("data-theme", theme);
145
+ this.updateAttribute("data-theme", theme);
146
+ }
147
+ if (!this.themeOptions.skipColorSchemeStyle) {
148
+ this.updateColorScheme(theme);
136
149
  }
137
- if (isPlatformBrowser(this.platformId)) {
150
+ }
151
+ syncCookie(theme, brand) {
152
+ if (this.isCsr()) {
138
153
  const maxAge = 60 * 60 * 24 * 365; // 1 year
139
154
  this.document.cookie = `${THEME_COOKIE_NAME}=${theme}; Path=/; Max-Age=${maxAge}; SameSite=Lax`;
140
155
  this.document.cookie = `${BRAND_COOKIE_NAME}=${brand}; Path=/; Max-Age=${maxAge}; SameSite=Lax`;
@@ -145,8 +160,21 @@ class QdsThemeService {
145
160
  this.appendSetCookieHeader(BRAND_COOKIE_NAME, brand);
146
161
  }
147
162
  }
148
- updateHtmlAttribute(name, value) {
149
- this.rootElement?.setAttribute?.(name, value);
163
+ updateAttribute(name, value) {
164
+ if (this.renderer) {
165
+ this.renderer.setAttribute(this.rootElement, name, value);
166
+ }
167
+ else {
168
+ this.rootElement?.setAttribute?.(name, value);
169
+ }
170
+ }
171
+ updateColorScheme(theme) {
172
+ if (this.renderer) {
173
+ this.renderer.setStyle(this.rootElement, "color-scheme", theme);
174
+ }
175
+ else {
176
+ this.rootElement?.style?.setProperty?.("color-scheme", theme);
177
+ }
150
178
  }
151
179
  appendSetCookieHeader(name, value) {
152
180
  this.response.headers.append("Set-Cookie", `${name}=${value}; Path=/; Max-Age=${60 * 60 * 24 * 365}; SameSite=Lax`);
@@ -163,5 +191,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
163
191
  * Generated bundle index. Do not edit.
164
192
  */
165
193
 
166
- export { BRAND_COOKIE, BRAND_COOKIE_NAME, QDS_THEME_OPTIONS, QdsThemeService, THEME_COOKIE, THEME_COOKIE_NAME, provideBrandCookie, provideQdsTheme, provideThemeCookie };
194
+ export { BRAND_COOKIE, BRAND_COOKIE_NAME, QDS_THEME_OPTIONS, QdsThemeService, THEME_COOKIE, THEME_COOKIE_NAME, provideQdsTheme, readCookie };
167
195
  //# sourceMappingURL=qualcomm-ui-angular-theme.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"qualcomm-ui-angular-theme.mjs","sources":["../../src/theme/qds-theme-providers.ts","../../src/theme/qds-theme.service.ts","../../src/theme/qualcomm-ui-angular-theme.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n type EnvironmentProviders,\n inject,\n InjectionToken,\n makeEnvironmentProviders,\n type Provider,\n REQUEST,\n} from \"@angular/core\"\n\nimport type {Brand, QdsThemeProviderOptions, Theme} from \"./qds-theme.types\"\n\nexport const THEME_COOKIE_NAME = \"qds-theme\"\nexport const BRAND_COOKIE_NAME = \"qds-brand\"\n\n/**\n * Concrete values are provided at bootstrap, but we attach a\n * factory so injection works even if the caller forgets to register them,\n * falling back to the light theme / first brand.\n */\nexport const THEME_COOKIE = new InjectionToken<Theme>(\"THEME_COOKIE\", {\n factory: () => \"dark\",\n})\n\nexport const BRAND_COOKIE = new InjectionToken<Brand>(\"BRAND_COOKIE\", {\n factory: () => \"qualcomm\",\n})\n\n/**\n * Reads the cookie in both the browser (document.cookie) and during SSR\n * (Fetch Request.headers) and makes it available through THEME_COOKIE.\n */\nexport function provideThemeCookie(): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: THEME_COOKIE,\n useFactory: () => {\n const opts = inject(QDS_THEME_OPTIONS, {optional: true})\n return (\n opts?.themeOverride || readCookie<Theme>(THEME_COOKIE_NAME, \"dark\")\n )\n },\n },\n ])\n}\n\n/**\n * Same helper for the brand cookie.\n */\nexport function provideBrandCookie(): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: BRAND_COOKIE,\n useFactory: () => {\n const opts = inject(QDS_THEME_OPTIONS, {optional: true})\n return (\n opts?.brandOverride ||\n readCookie<Brand>(BRAND_COOKIE_NAME, \"qualcomm\")\n )\n },\n },\n ])\n}\n\nexport const QDS_THEME_OPTIONS = new InjectionToken<\n Partial<QdsThemeProviderOptions>\n>(\"QDS_THEME_OPTIONS\")\n\nexport function provideQdsTheme(opts?: QdsThemeProviderOptions): Provider {\n return {\n provide: QDS_THEME_OPTIONS,\n useValue: opts || {\n skipAttributes: false,\n },\n }\n}\n\nfunction readCookie<T extends string>(name: string, fallback: T): T {\n // Browser path\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line no-restricted-globals\n const match = document.cookie.match(new RegExp(`(?:^|; )${name}=([^;]*)`))\n return (match?.[1] as T | undefined) ?? fallback\n }\n\n // Server path – Fetch Request is registered in the injector\n const request = inject(REQUEST, {optional: true})\n if (request) {\n const cookieHeader = request.headers.get(\"cookie\") ?? \"\"\n const match = cookieHeader.match(new RegExp(`(?:^|; )${name}=([^;]*)`))\n return (match?.[1] as T | undefined) ?? fallback\n }\n\n return fallback\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {DOCUMENT, isPlatformBrowser, isPlatformServer} from \"@angular/common\"\nimport {\n effect,\n inject,\n Injectable,\n PLATFORM_ID,\n signal,\n type WritableSignal,\n} from \"@angular/core\"\n\nimport {\n BRAND_COOKIE,\n BRAND_COOKIE_NAME,\n QDS_THEME_OPTIONS,\n THEME_COOKIE,\n THEME_COOKIE_NAME,\n} from \"./qds-theme-providers\"\nimport type {Brand, QdsThemeProviderOptions, Theme} from \"./qds-theme.types\"\n\n@Injectable({providedIn: \"root\"})\nexport class QdsThemeService {\n readonly theme: WritableSignal<Theme> = signal(inject(THEME_COOKIE))\n readonly brand: WritableSignal<Brand> = signal(inject(BRAND_COOKIE))\n\n private readonly platformId = inject(PLATFORM_ID)\n private readonly response = inject(Response, {optional: true})\n private readonly document = inject(DOCUMENT)\n\n private readonly themeOpts: Partial<QdsThemeProviderOptions | null> = inject(\n QDS_THEME_OPTIONS,\n {optional: true},\n )\n\n get themeOptions(): Required<\n Omit<QdsThemeProviderOptions, \"brandOverride\" | \"themeOverride\">\n > {\n const opts = this.themeOpts || {}\n let rootElement = opts.rootElement\n if (!rootElement) {\n if (isPlatformServer(this.platformId)) {\n rootElement = globalThis.document?.documentElement\n } else {\n rootElement = this.document.documentElement\n }\n }\n return {\n rootElement,\n skipAttributes:\n typeof opts.skipAttributes === \"object\"\n ? {\n brand: opts.skipAttributes.brand || false,\n theme: opts.skipAttributes.theme || false,\n }\n : opts.skipAttributes || false,\n }\n }\n\n get rootElement(): HTMLElement {\n const elementOrFn = this.themeOptions.rootElement\n return typeof elementOrFn === \"function\" ? elementOrFn() : elementOrFn\n }\n\n get skipBrandAttribute(): boolean {\n const skipAttributes = this.themeOptions.skipAttributes\n return typeof skipAttributes === \"object\"\n ? skipAttributes.brand || false\n : skipAttributes || false\n }\n\n get skipThemeAttribute(): boolean {\n const skipAttributes = this.themeOptions.skipAttributes\n return typeof skipAttributes === \"object\"\n ? skipAttributes.theme || false\n : skipAttributes || false\n }\n\n constructor() {\n effect(() => this.syncSideEffects(this.theme(), this.brand()))\n }\n\n toggleTheme(): void {\n this.theme.update((theme) => (theme === \"dark\" ? \"light\" : \"dark\"))\n }\n\n private syncSideEffects(theme: Theme, brand: Brand): void {\n if (!this.skipBrandAttribute) {\n console.debug(\"applying brand\")\n this.updateHtmlAttribute(\"data-brand\", brand)\n }\n if (!this.skipThemeAttribute) {\n this.updateHtmlAttribute(\"data-theme\", theme)\n }\n\n if (isPlatformBrowser(this.platformId)) {\n const maxAge = 60 * 60 * 24 * 365 // 1 year\n\n this.document.cookie = `${THEME_COOKIE_NAME}=${theme}; Path=/; Max-Age=${maxAge}; SameSite=Lax`\n this.document.cookie = `${BRAND_COOKIE_NAME}=${brand}; Path=/; Max-Age=${maxAge}; SameSite=Lax`\n } else if (this.response) {\n // Persist cookies by appending headers to the Fetch Response\n this.appendSetCookieHeader(THEME_COOKIE_NAME, theme)\n this.appendSetCookieHeader(BRAND_COOKIE_NAME, brand)\n }\n }\n\n private updateHtmlAttribute(name: string, value: string): void {\n this.rootElement?.setAttribute?.(name, value)\n }\n\n private appendSetCookieHeader(name: string, value: string): void {\n this.response!.headers.append(\n \"Set-Cookie\",\n `${name}=${value}; Path=/; Max-Age=${60 * 60 * 24 * 365}; SameSite=Lax`,\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qualcomm-ui-angular-theme.mjs","sources":["../../src/theme/qds-theme-providers.ts","../../src/theme/qds-theme.service.ts","../../src/theme/qualcomm-ui-angular-theme.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {inject, InjectionToken, type Provider, REQUEST} from \"@angular/core\"\n\nimport type {Brand, QdsThemeProviderOptions, Theme} from \"./qds-theme.types\"\n\nexport const THEME_COOKIE_NAME = \"app-qds-theme\"\nexport const BRAND_COOKIE_NAME = \"app-qds-brand\"\n\n/**\n * Concrete values are provided at bootstrap, but we attach a\n * factory so injection works even if the caller forgets to register them,\n * falling back to the light theme / first brand.\n */\nexport const THEME_COOKIE = new InjectionToken<Theme>(\"THEME_COOKIE\")\n\nexport const BRAND_COOKIE = new InjectionToken<Brand>(\"BRAND_COOKIE\")\n\n/**\n * Reads the cookie in both the browser (document.cookie) and during SSR\n * (Fetch Request.headers) and makes it available through THEME_COOKIE.\n */\nfunction provideThemeCookie(opts?: QdsThemeProviderOptions): Provider {\n return {\n provide: THEME_COOKIE,\n useFactory: () => {\n return (\n opts?.themeOverride ||\n readCookie<Theme>(THEME_COOKIE_NAME) ||\n opts?.defaultTheme ||\n \"dark\"\n )\n },\n }\n}\n\n/**\n * Same helper for the brand cookie.\n */\nfunction provideBrandCookie(opts?: QdsThemeProviderOptions): Provider {\n return {\n provide: BRAND_COOKIE,\n useFactory: () => {\n return (\n opts?.brandOverride ||\n readCookie<Brand>(BRAND_COOKIE_NAME) ||\n opts?.defaultBrand ||\n \"qualcomm\"\n )\n },\n }\n}\n\nexport const QDS_THEME_OPTIONS = new InjectionToken<\n Partial<QdsThemeProviderOptions>\n>(\"QDS_THEME_OPTIONS\")\n\nfunction provideQdsThemeOptions(opts?: QdsThemeProviderOptions): Provider {\n return {\n provide: QDS_THEME_OPTIONS,\n useValue: opts || {\n skipAttributes: false,\n },\n }\n}\n\nexport function provideQdsTheme(opts?: QdsThemeProviderOptions) {\n return [\n provideQdsThemeOptions(opts),\n provideThemeCookie(opts),\n provideBrandCookie(opts),\n ]\n}\n\nexport function readCookie<T extends string>(name: string): string | undefined {\n // Browser path\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line no-restricted-globals\n const match = document.cookie.match(new RegExp(`(?:^|; )${name}=([^;]*)`))\n return match?.[1] || undefined\n }\n\n // Server path – Fetch Request is registered in the injector\n const request = inject(REQUEST, {optional: true})\n if (request) {\n const cookieHeader = request.headers.get(\"cookie\") ?? \"\"\n const match = cookieHeader.match(new RegExp(`(?:^|; )${name}=([^;]*)`))\n return match?.[1] as T | undefined\n }\n\n return undefined\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {DOCUMENT} from \"@angular/common\"\nimport {\n effect,\n inject,\n Injectable,\n Renderer2,\n signal,\n type WritableSignal,\n} from \"@angular/core\"\n\nimport {useCsrCheck} from \"@qualcomm-ui/angular-core/common\"\n\nimport {\n BRAND_COOKIE,\n BRAND_COOKIE_NAME,\n QDS_THEME_OPTIONS,\n readCookie,\n THEME_COOKIE,\n THEME_COOKIE_NAME,\n} from \"./qds-theme-providers\"\nimport type {Brand, QdsThemeProviderOptions, Theme} from \"./qds-theme.types\"\n\n/**\n * A service that provides access to the current theme and brand, and ensures that\n * the application's root element is in sync with the selected brand/theme.\n */\n@Injectable({providedIn: \"root\"})\nexport class QdsThemeService {\n private readonly document = inject(DOCUMENT)\n private readonly response = inject(Response, {optional: true})\n private readonly renderer = inject(Renderer2, {optional: true})\n protected readonly isCsr = useCsrCheck()\n\n readonly theme: WritableSignal<Theme> = signal(inject(THEME_COOKIE))\n readonly brand: WritableSignal<Brand> = signal(inject(BRAND_COOKIE))\n\n private readonly themeOpts: QdsThemeProviderOptions =\n inject(QDS_THEME_OPTIONS)\n\n get themeOptions(): Required<\n Omit<\n QdsThemeProviderOptions,\n \"brandOverride\" | \"themeOverride\" | \"defaultTheme\" | \"defaultBrand\"\n >\n > {\n const opts = this.themeOpts\n const rootElement = opts.rootElement || this.document.documentElement\n return {\n rootElement,\n skipAttributes:\n typeof opts.skipAttributes === \"object\"\n ? {\n brand: opts.skipAttributes.brand || false,\n theme: opts.skipAttributes.theme || false,\n }\n : opts.skipAttributes || false,\n skipColorSchemeStyle: opts.skipColorSchemeStyle || false,\n }\n }\n\n get rootElement(): HTMLElement {\n const elementOrFn = this.themeOptions.rootElement\n return typeof elementOrFn === \"function\" ? elementOrFn() : elementOrFn\n }\n\n get skipBrandAttribute(): boolean {\n const skipAttributes = this.themeOptions.skipAttributes\n return typeof skipAttributes === \"object\"\n ? skipAttributes.brand || false\n : skipAttributes || false\n }\n\n get skipThemeAttribute(): boolean {\n const skipAttributes = this.themeOptions.skipAttributes\n return typeof skipAttributes === \"object\"\n ? skipAttributes.theme || false\n : skipAttributes || false\n }\n\n constructor() {\n effect(() => {\n const theme = this.theme()\n const brand = this.brand()\n this.syncAttributes(theme, brand)\n this.syncCookie(theme, brand)\n })\n\n const theme = readCookie(THEME_COOKIE_NAME) || this.themeOpts?.defaultTheme\n if (theme === \"dark\" || theme === \"light\") {\n this.theme.set(theme)\n this.syncAttributes(theme, this.brand())\n }\n }\n\n toggleTheme(): void {\n this.theme.update((theme) => (theme === \"dark\" ? \"light\" : \"dark\"))\n }\n\n private syncAttributes(theme: Theme, brand: Brand): void {\n if (!this.skipBrandAttribute) {\n this.updateAttribute(\"data-brand\", brand)\n }\n if (!this.skipThemeAttribute) {\n this.updateAttribute(\"data-theme\", theme)\n }\n if (!this.themeOptions.skipColorSchemeStyle) {\n this.updateColorScheme(theme)\n }\n }\n\n private syncCookie(theme: Theme, brand: Brand): void {\n if (this.isCsr()) {\n const maxAge = 60 * 60 * 24 * 365 // 1 year\n\n this.document.cookie = `${THEME_COOKIE_NAME}=${theme}; Path=/; Max-Age=${maxAge}; SameSite=Lax`\n this.document.cookie = `${BRAND_COOKIE_NAME}=${brand}; Path=/; Max-Age=${maxAge}; SameSite=Lax`\n } else if (this.response) {\n // Persist cookies by appending headers to the Fetch Response\n this.appendSetCookieHeader(THEME_COOKIE_NAME, theme)\n this.appendSetCookieHeader(BRAND_COOKIE_NAME, brand)\n }\n }\n\n private updateAttribute(name: string, value: string): void {\n if (this.renderer) {\n this.renderer.setAttribute(this.rootElement, name, value)\n } else {\n this.rootElement?.setAttribute?.(name, value)\n }\n }\n\n private updateColorScheme(theme: Theme): void {\n if (this.renderer) {\n this.renderer.setStyle(this.rootElement, \"color-scheme\", theme)\n } else {\n this.rootElement?.style?.setProperty?.(\"color-scheme\", theme)\n }\n }\n\n private appendSetCookieHeader(name: string, value: string): void {\n this.response!.headers.append(\n \"Set-Cookie\",\n `${name}=${value}; Path=/; Max-Age=${60 * 60 * 24 * 365}; SameSite=Lax`,\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, Directive } from '@angular/core';
3
+ import { useCsrCheck } from '@qualcomm-ui/angular-core/common';
4
+
5
+ // Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
6
+ // SPDX-License-Identifier: BSD-3-Clause-Clear
7
+ class QuiPreloadDirective {
8
+ preload = signal(true, ...(ngDevMode ? [{ debugName: "preload" }] : []));
9
+ isBrowser = useCsrCheck();
10
+ ngAfterViewInit() {
11
+ if (this.isBrowser()) {
12
+ requestAnimationFrame(() => {
13
+ this.preload.set(undefined);
14
+ });
15
+ }
16
+ }
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: QuiPreloadDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.12", type: QuiPreloadDirective, isStandalone: true, host: { properties: { "attr.data-qui-preload": "preload()" } }, ngImport: i0 });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: QuiPreloadDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ host: {
24
+ "[attr.data-qui-preload]": "preload()",
25
+ },
26
+ }]
27
+ }] });
28
+
29
+ /**
30
+ * Generated bundle index. Do not edit.
31
+ */
32
+
33
+ export { QuiPreloadDirective };
34
+ //# sourceMappingURL=qualcomm-ui-angular-transitions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qualcomm-ui-angular-transitions.mjs","sources":["../../src/transitions/qui-preload.directive.ts","../../src/transitions/qualcomm-ui-angular-transitions.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type AfterViewInit, Directive, signal} from \"@angular/core\"\n\nimport {useCsrCheck} from \"@qualcomm-ui/angular-core/common\"\n\n@Directive({\n host: {\n \"[attr.data-qui-preload]\": \"preload()\",\n },\n})\nexport class QuiPreloadDirective implements AfterViewInit {\n readonly preload = signal<true | undefined>(true)\n\n protected readonly isBrowser = useCsrCheck()\n\n ngAfterViewInit() {\n if (this.isBrowser()) {\n requestAnimationFrame(() => {\n this.preload.set(undefined)\n })\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;AACA;MAWa,mBAAmB,CAAA;AACrB,IAAA,OAAO,GAAG,MAAM,CAAmB,IAAI,mDAAC;IAE9B,SAAS,GAAG,WAAW,EAAE;IAE5C,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,qBAAqB,CAAC,MAAK;AACzB,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7B,YAAA,CAAC,CAAC;QACJ;IACF;wGAXW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,IAAI,EAAE;AACJ,wBAAA,yBAAyB,EAAE,WAAW;AACvC,qBAAA;AACF,iBAAA;;;ACXD;;AAEG;;;;"}
@@ -4,6 +4,7 @@ import { QdsInlineIconButtonApiProps, QdsInlineIconButtonEmphasis, QdsInlineIcon
4
4
  import * as _angular_core from '@angular/core';
5
5
  import { OnInit, Signal } from '@angular/core';
6
6
  import { SignalifyInput, MaybeSignalInput } from '@qualcomm-ui/angular-core/signals';
7
+ import * as i1 from '@qualcomm-ui/angular/transitions';
7
8
 
8
9
  declare class InlineIconButtonComponent implements SignalifyInput<QdsInlineIconButtonApiProps>, OnInit {
9
10
  /**
@@ -40,7 +41,7 @@ declare class InlineIconButtonComponent implements SignalifyInput<QdsInlineIconB
40
41
  };
41
42
  ngOnInit(): void;
42
43
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<InlineIconButtonComponent, never>;
43
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<InlineIconButtonComponent, "[q-inline-icon-button]", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "emphasis": { "alias": "emphasis"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
44
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InlineIconButtonComponent, "[q-inline-icon-button]", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "emphasis": { "alias": "emphasis"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.QuiPreloadDirective; inputs: {}; outputs: {}; }]>;
44
45
  }
45
46
 
46
47
  declare function useInlineIconButtonApi({ emphasis, size, variant, }: MaybeSignalInput<QdsInlineIconButtonApiProps>): Signal<QdsInlineIconButtonApi>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../src/inline-icon-button/inline-icon-button.component.ts","../../src/inline-icon-button/use-inline-icon-button-api.ts"],"sourcesContent":[null,null],"names":[],"mappings":";;;;;;;AAsBA,cAAA,yBAAA,YAAA,cAAA,CAAA,2BAAA,GAAA,MAAA;AAUE;;AAEG;AACH,mBAAa,aAAA,CAAA,WAAA;;AAAuB;AAEpC;;;;AAIG;uBACc,aAAA,CAAA,WAAA,CAAA,2BAAA;AAEjB;;;;AAIG;mBACU,aAAA,CAAA,WAAA,CAAA,uBAAA;AAEb;;;;;;;AAOG;sBACa,aAAA,CAAA,WAAA,CAAA,0BAAA;AAEhB,4BAAsB,aAAA,QAAA,wCAAA,CAAA,sBAAA;AAMtB,qCAAsB,iCAAA,CAAA,mBAAA;;;AAAuD;;;;AAK9E;;AC1DD,iBAAA,sBAAA,+BAAA,gBAAA,CAAA,2BAAA,IAAA,MAAA,CAAA,sBAAA;;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../src/inline-icon-button/inline-icon-button.component.ts","../../src/inline-icon-button/use-inline-icon-button-api.ts"],"sourcesContent":[null,null],"names":[],"mappings":";;;;;;;;AAuBA,cAAA,yBAAA,YAAA,cAAA,CAAA,2BAAA,GAAA,MAAA;AAWE;;AAEG;AACH,mBAAa,aAAA,CAAA,WAAA;;AAAuB;AAEpC;;;;AAIG;uBACc,aAAA,CAAA,WAAA,CAAA,2BAAA;AAEjB;;;;AAIG;mBACU,aAAA,CAAA,WAAA,CAAA,uBAAA;AAEb;;;;;;;AAOG;sBACa,aAAA,CAAA,WAAA,CAAA,0BAAA;AAEhB,4BAAsB,aAAA,QAAA,wCAAA,CAAA,sBAAA;AAMtB,qCAAsB,iCAAA,CAAA,mBAAA;;;AAAuD;;;;AAK9E;;AC5DD,iBAAA,sBAAA,+BAAA,gBAAA,CAAA,2BAAA,IAAA,MAAA,CAAA,sBAAA;;;;"}
@@ -4,6 +4,7 @@ import { CoreInlineNotificationActionDirective, CoreInlineNotificationCloseTrigg
4
4
  import * as i0 from '@angular/core';
5
5
  import { OnInit } from '@angular/core';
6
6
  import * as _qualcomm_ui_qds_core_inline_icon_button from '@qualcomm-ui/qds-core/inline-icon-button';
7
+ import * as i1 from '@qualcomm-ui/angular/transitions';
7
8
  import { SignalifyInput } from '@qualcomm-ui/angular-core/signals';
8
9
  import * as _qualcomm_ui_angular_core_machine from '@qualcomm-ui/angular-core/machine';
9
10
  import { BaseApiContextService } from '@qualcomm-ui/angular-core/machine';
@@ -23,7 +24,7 @@ declare class InlineNotificationCloseButtonDirective extends CoreInlineNotificat
23
24
  protected readonly qdsContext: () => _qualcomm_ui_qds_core_inline_notification.QdsNotificationApi;
24
25
  constructor();
25
26
  static ɵfac: i0.ɵɵFactoryDeclaration<InlineNotificationCloseButtonDirective, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<InlineNotificationCloseButtonDirective, "[q-inline-notification-close-button]", never, {}, {}, never, ["*"], false, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<InlineNotificationCloseButtonDirective, "[q-inline-notification-close-button]", never, {}, {}, never, ["*"], false, [{ directive: typeof i1.QuiPreloadDirective; inputs: {}; outputs: {}; }]>;
27
28
  }
28
29
 
29
30
  declare class InlineNotificationDescriptionDirective extends CoreInlineNotificationDescriptionDirective {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../src/inline-notification/inline-notification-action.directive.ts","../../src/inline-notification/inline-notification-close-button.directive.ts","../../src/inline-notification/inline-notification-description.directive.ts","../../src/inline-notification/inline-notification-icon.directive.ts","../../src/inline-notification/inline-notification-label.directive.ts","../../src/inline-notification/qds-inline-notification-context.service.ts","../../src/inline-notification/inline-notification-root.directive.ts","../../src/inline-notification/inline-notification.directive.ts","../../src/inline-notification/inline-notification.module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["_angular_core"],"mappings":";;;;;;;;;;;;;AASA,cAAA,iCAAA,SAAA,qCAAA;AAKE,yCAA6B,yCAAA,CAAA,kBAAA;;;;AAQ9B;;ACTD,cAAA,sCAAA,SAAA,2CAAA;AAWE,4CAAsCA,EAAA,QAAA,wCAAA,CAAA,sBAAA;AAKtC,yCAA6B,yCAAA,CAAA,kBAAA;;;;AAa9B;;ACjCD,cAAA,sCAAA,SAAA,0CAAA;AAKE,yCAA6B,yCAAA,CAAA,kBAAA;;;;AAQ9B;;ACFD,cAAA,+BAAA,SAAA,mCAAA;AAcE,yCAA6B,yCAAA,CAAA,kBAAA;qCAEEA,EAAA,CAAA,MAAA;;AAE7B;;;;AAQH;;ACrCD,cAAA,gCAAA,SAAA,oCAAA;AAKE,yCAA6B,yCAAA,CAAA,kBAAA;;;;AAQ9B;;ACVD,cAAA,mCAAA,SAAA,qBAAA,CAAA,kBAAA;;;AACqG;AAErG,cAAA,+BAAA,EACiCA,EAAA,CAAA,cAAA,OAAA,kBAAA;AAAA,cAC/B,2EAA+B,iCAAA,CAAA,cAAA,0DAAA,kBAAA,iBAAA,kBAAA;AAAA,cAC/B;;ACKF,cAAA,+BAAA,SAAA,mCAAA,YAAA,cAAA,CAAA,uBAAA,GAAA,MAAA;AAYE;;;;AAIG;uBACcA,EAAA,CAAA,WAAA,CAAA,uBAAA;AAEjB;;;;;;AAMG;0BACiBA,EAAA,CAAA,WAAA,CAAA,0BAAA;AAEpB,qDAAA,mCAAA;;;;;AAyBD;;ACjED,cAAA,2BAAA,SAAA,+BAAA;AAkCE;;;;;;;;AAQG;0BACiBA,EAAA,CAAA,WAAA;AAEpB;;;;;;;;;;AAUG;0BACiBA,EAAA,CAAA,wBAAA,sBAAA,UAAA;AAIpB;;;;;;;;AAQG;oBACWA,EAAA,CAAA,WAAA;;;AACf;;AChED,cAAA,wBAAA;;;;AAqBwC;;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../src/inline-notification/inline-notification-action.directive.ts","../../src/inline-notification/inline-notification-close-button.directive.ts","../../src/inline-notification/inline-notification-description.directive.ts","../../src/inline-notification/inline-notification-icon.directive.ts","../../src/inline-notification/inline-notification-label.directive.ts","../../src/inline-notification/qds-inline-notification-context.service.ts","../../src/inline-notification/inline-notification-root.directive.ts","../../src/inline-notification/inline-notification.directive.ts","../../src/inline-notification/inline-notification.module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["_angular_core"],"mappings":";;;;;;;;;;;;;;AASA,cAAA,iCAAA,SAAA,qCAAA;AAKE,yCAA6B,yCAAA,CAAA,kBAAA;;;;AAQ9B;;ACRD,cAAA,sCAAA,SAAA,2CAAA;AAYE,4CAAsCA,EAAA,QAAA,wCAAA,CAAA,sBAAA;AAKtC,yCAA6B,yCAAA,CAAA,kBAAA;;;;AAa9B;;ACnCD,cAAA,sCAAA,SAAA,0CAAA;AAKE,yCAA6B,yCAAA,CAAA,kBAAA;;;;AAQ9B;;ACFD,cAAA,+BAAA,SAAA,mCAAA;AAcE,yCAA6B,yCAAA,CAAA,kBAAA;qCAEEA,EAAA,CAAA,MAAA;;AAE7B;;;;AAQH;;ACrCD,cAAA,gCAAA,SAAA,oCAAA;AAKE,yCAA6B,yCAAA,CAAA,kBAAA;;;;AAQ9B;;ACVD,cAAA,mCAAA,SAAA,qBAAA,CAAA,kBAAA;;;AACqG;AAErG,cAAA,+BAAA,EACiCA,EAAA,CAAA,cAAA,OAAA,kBAAA;AAAA,cAC/B,2EAA+B,iCAAA,CAAA,cAAA,0DAAA,kBAAA,iBAAA,kBAAA;AAAA,cAC/B;;ACKF,cAAA,+BAAA,SAAA,mCAAA,YAAA,cAAA,CAAA,uBAAA,GAAA,MAAA;AAYE;;;;AAIG;uBACcA,EAAA,CAAA,WAAA,CAAA,uBAAA;AAEjB;;;;;;AAMG;0BACiBA,EAAA,CAAA,WAAA,CAAA,0BAAA;AAEpB,qDAAA,mCAAA;;;;;AAyBD;;ACjED,cAAA,2BAAA,SAAA,+BAAA;AAkCE;;;;;;;;AAQG;0BACiBA,EAAA,CAAA,WAAA;AAEpB;;;;;;;;;;AAUG;0BACiBA,EAAA,CAAA,wBAAA,sBAAA,UAAA;AAIpB;;;;;;;;AAQG;oBACWA,EAAA,CAAA,WAAA;;;AACf;;AChED,cAAA,wBAAA;;;;AAqBwC;;;;"}
package/link/index.d.ts CHANGED
@@ -7,6 +7,7 @@ import { LucideIconOrString } from '@qualcomm-ui/angular-core/lucide';
7
7
  import { SignalifyInput } from '@qualcomm-ui/angular-core/signals';
8
8
  import { Booleanish } from '@qualcomm-ui/utils/coercion';
9
9
  import { Direction } from '@qualcomm-ui/utils/direction';
10
+ import * as i1 from '@qualcomm-ui/angular/transitions';
10
11
 
11
12
  declare class LinkDirective implements SignalifyInput<QdsLinkApiProps>, OnInit {
12
13
  /**
@@ -60,7 +61,7 @@ declare class LinkDirective implements SignalifyInput<QdsLinkApiProps>, OnInit {
60
61
  };
61
62
  ngOnInit(): void;
62
63
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LinkDirective, never>;
63
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LinkDirective, "[q-link]", never, { "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "emphasis": { "alias": "emphasis"; "required": false; "isSignal": true; }; "endIcon": { "alias": "endIcon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "startIcon": { "alias": "startIcon"; "required": false; "isSignal": true; }; }, {}, never, ["[q-start-icon]", "*", "[q-end-icon]"], true, never>;
64
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LinkDirective, "[q-link]", never, { "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "emphasis": { "alias": "emphasis"; "required": false; "isSignal": true; }; "endIcon": { "alias": "endIcon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "startIcon": { "alias": "startIcon"; "required": false; "isSignal": true; }; }, {}, never, ["[q-start-icon]", "*", "[q-end-icon]"], true, [{ directive: typeof i1.QuiPreloadDirective; inputs: {}; outputs: {}; }]>;
64
65
  }
65
66
 
66
67
  export { LinkDirective };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../src/link/link.directive.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAmCA,cAAA,aAAA,YAAA,cAAA,CAAA,eAAA,GAAA,MAAA;AA4CE;;;;AAIG;kBACS,aAAA,CAAA,WAAA,CAAA,SAAA;AAEZ;;;AAGG;uBACc,aAAA,CAAA,wBAAA,sBAAA,UAAA;AAIjB;;;;AAIG;uBACc,aAAA,CAAA,WAAA,CAAA,eAAA;AAEjB;;;;;;;;AAQG;sBACa,aAAA,CAAA,WAAA,CAAA,kBAAA;AAEhB;;;;;AAKG;mBACU,aAAA,CAAA,WAAA,CAAA,WAAA;AAEb;;;;;;;;AAQG;wBACe,aAAA,CAAA,WAAA,CAAA,kBAAA;yBAEC,aAAA,QAAA,0BAAA,CAAA,UAAA;+CAYa,iCAAA,CAAA,mBAAA;;;AAE/B;;;;AAKF;;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../src/link/link.directive.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAoCA,cAAA,aAAA,YAAA,cAAA,CAAA,eAAA,GAAA,MAAA;AA6CE;;;;AAIG;kBACS,aAAA,CAAA,WAAA,CAAA,SAAA;AAEZ;;;AAGG;uBACc,aAAA,CAAA,wBAAA,sBAAA,UAAA;AAIjB;;;;AAIG;uBACc,aAAA,CAAA,WAAA,CAAA,eAAA;AAEjB;;;;;;;;AAQG;sBACa,aAAA,CAAA,WAAA,CAAA,kBAAA;AAEhB;;;;;AAKG;mBACU,aAAA,CAAA,WAAA,CAAA,WAAA;AAEb;;;;;;;;AAQG;wBACe,aAAA,CAAA,WAAA,CAAA,kBAAA;yBAEC,aAAA,QAAA,0BAAA,CAAA,UAAA;+CAYa,iCAAA,CAAA,mBAAA;;;AAE/B;;;;AAKF;;;;"}
package/menu/index.d.ts CHANGED
@@ -6,6 +6,7 @@ import * as i0 from '@angular/core';
6
6
  import { OnInit } from '@angular/core';
7
7
  import * as i1 from '@qualcomm-ui/angular-core/menu';
8
8
  import { CoreMenuCheckboxItemDirective, CoreMenuContentDirective, CoreMenuContextTriggerDirective, CoreMenuItemGroupLabelDirective, CoreMenuItemGroupDirective, CoreMenuItemIndicatorDirective, CoreMenuItemRootDirective, CoreMenuPositionerDirective, CoreMenuRadioItemGroupDirective, CoreMenuRadioItemDirective, CoreMenuSeparatorDirective, CoreMenuTriggerItemDirective, CoreMenuTriggerDirective, CoreMenuRootDirective } from '@qualcomm-ui/angular-core/menu';
9
+ import * as i2 from '@qualcomm-ui/angular/transitions';
9
10
  import * as _qualcomm_ui_angular_core_machine from '@qualcomm-ui/angular-core/machine';
10
11
  import { BaseApiContextService } from '@qualcomm-ui/angular-core/machine';
11
12
  import { LucideIconOrString } from '@qualcomm-ui/angular-core/lucide';
@@ -16,7 +17,7 @@ declare class MenuButtonComponent extends BaseButtonDirective {
16
17
  protected qdsMenuContext: () => _qualcomm_ui_qds_core_menu.QdsMenuApi;
17
18
  constructor();
18
19
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuButtonComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuButtonComponent, "[q-menu-button]", never, {}, {}, never, ["[q-start-icon]", "*", "[q-end-icon]"], false, [{ directive: typeof i1.CoreMenuTriggerDirective; inputs: { "id": "id"; }; outputs: {}; }]>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuButtonComponent, "[q-menu-button]", never, {}, {}, never, ["[q-start-icon]", "*", "[q-end-icon]"], false, [{ directive: typeof i1.CoreMenuTriggerDirective; inputs: { "id": "id"; }; outputs: {}; }, { directive: typeof i2.QuiPreloadDirective; inputs: {}; outputs: {}; }]>;
20
21
  }
21
22
 
22
23
  declare class MenuCheckboxItemDirective extends CoreMenuCheckboxItemDirective {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../src/menu/menu-button.component.ts","../../src/menu/menu-checkbox-item.directive.ts","../../src/menu/menu-content.directive.ts","../../src/menu/menu-context-trigger.directive.ts","../../src/menu/menu-item-command.directive.ts","../../src/menu/menu-item-group-label.directive.ts","../../src/menu/menu-item-group.directive.ts","../../src/menu/menu-item-indicator.component.ts","../../src/menu/menu-item-start-icon.component.ts","../../src/menu/menu-item.directive.ts","../../src/menu/menu-positioner.component.ts","../../src/menu/menu-radio-item-group.directive.ts","../../src/menu/menu-radio-item.directive.ts","../../src/menu/menu-separator.directive.ts","../../src/menu/menu-trigger-item-indicator.component.ts","../../src/menu/menu-trigger-item.component.ts","../../src/menu/menu-trigger.directive.ts","../../src/menu/qds-menu-context.service.ts","../../src/menu/menu.component.ts","../../src/menu/menu.module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_angular_core"],"mappings":";;;;;;;;;;;;;;AAoBA,cAAA,mBAAA,SAAA,mBAAA;oCA4C0B,0BAAA,CAAA,UAAA;;;;AAOzB;;AC1DD,cAAA,yBAAA,SAAA,6BAAA;AAME,6CAAiC,0BAAA,CAAA,UAAA;;;;AAQlC;;AClBD,cAAA,oBAAA,SAAA,wBAAA;AAKE,6CAAiC,0BAAA,CAAA,UAAA;;;;AAQlC;;ACfD,cAAA,2BAAA,SAAA,+BAAA;;;AAImF;;ACFnF,cAAA,wBAAA,YAAA,MAAA;mCAKyB,0BAAA,CAAA,UAAA;AAEvB,qCAAsB,iCAAA,CAAA,mBAAA;;;AAErB;;;;AAKF;;ACdD,cAAA,2BAAA,SAAA,+BAAA;mCAKyB,0BAAA,CAAA,UAAA;;;;AAQxB;;ACVD,cAAA,sBAAA,SAAA,0BAAA;mCAMyB,0BAAA,CAAA,UAAA;;;;AAQxB;;ACfD,cAAA,0BAAA,SAAA,8BAAA;mCAUyB,0BAAA,CAAA,UAAA;;;;AAQxB;;ACnBD,cAAA,0BAAA,YAAA,MAAA;mBAWeA,EAAA,CAAA,WAAA,CAAA,kBAAA;mCAEU,0BAAA,CAAA,UAAA;+CAES,iCAAA,CAAA,mBAAA;;;AAE/B;;;;AAKF;;ACpBD,cAAA,iBAAA,SAAA,yBAAA,YAAA,MAAA;AASE,6CAAiC,0BAAA,CAAA,UAAA;;;;AAOlC;;ACrBD,cAAA,uBAAA,SAAA,2BAAA;;;AAS2E;;ACJ3E,cAAA,2BAAA,SAAA,+BAAA;mCAMyB,0BAAA,CAAA,UAAA;;;;AAQxB;;ACbD,cAAA,sBAAA,SAAA,0BAAA;AAME,6CAAiC,0BAAA,CAAA,UAAA;;;;AAQlC;;AClBD,cAAA,sBAAA,SAAA,0BAAA,YAAA,MAAA;AAQE,6CAAiC,0BAAA,CAAA,UAAA;;;;AASlC;;ACfD,cAAA,iCAAA,YAAA,MAAA;mCAWyB,0BAAA,CAAA,UAAA;+CAES,iCAAA,CAAA,mBAAA;;;AAE/B;;;;AAKF;;ACnBD,cAAA,wBAAA,SAAA,4BAAA;mCAYyB,0BAAA,CAAA,UAAA;0BAEHA,EAAA,QAAA,0BAAA,CAAA,mBAAA;;;;AAMrB;;ACxBD,cAAA,oBAAA,SAAA,wBAAA;AAKE,sCAAgC,iCAAA,CAAA,mBAAA;;;AAW9B;;;AACH;;ACbD,cAAA,qBAAA,SAAA,qBAAA,CAAA,UAAA;;;AAC+E;AAE/E,cAAA,gBAAA,EACkBA,EAAA,CAAA,cAAA,OAAA,UAAA;AAAA,cAChB,6DAAiB,iCAAA,CAAA,cAAA,0DAAA,UAAA,iBAAA,UAAA;AAAA,cACjB;;ACOF,cAAA,aAAA,SAAA,qBAAA,YAAA,cAAA,CAAA,eAAA,GAAA,MAAA;mBAyBeA,EAAA,CAAA,WAAA,CAAA,WAAA;;;;;AAad;;AC/BD,cAAA,UAAA;;;;AAiD0B;;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../src/menu/menu-button.component.ts","../../src/menu/menu-checkbox-item.directive.ts","../../src/menu/menu-content.directive.ts","../../src/menu/menu-context-trigger.directive.ts","../../src/menu/menu-item-command.directive.ts","../../src/menu/menu-item-group-label.directive.ts","../../src/menu/menu-item-group.directive.ts","../../src/menu/menu-item-indicator.component.ts","../../src/menu/menu-item-start-icon.component.ts","../../src/menu/menu-item.directive.ts","../../src/menu/menu-positioner.component.ts","../../src/menu/menu-radio-item-group.directive.ts","../../src/menu/menu-radio-item.directive.ts","../../src/menu/menu-separator.directive.ts","../../src/menu/menu-trigger-item-indicator.component.ts","../../src/menu/menu-trigger-item.component.ts","../../src/menu/menu-trigger.directive.ts","../../src/menu/qds-menu-context.service.ts","../../src/menu/menu.component.ts","../../src/menu/menu.module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_angular_core"],"mappings":";;;;;;;;;;;;;;;AAqBA,cAAA,mBAAA,SAAA,mBAAA;oCA8C0B,0BAAA,CAAA,UAAA;;;;AAOzB;;AC7DD,cAAA,yBAAA,SAAA,6BAAA;AAME,6CAAiC,0BAAA,CAAA,UAAA;;;;AAQlC;;AClBD,cAAA,oBAAA,SAAA,wBAAA;AAKE,6CAAiC,0BAAA,CAAA,UAAA;;;;AAQlC;;ACfD,cAAA,2BAAA,SAAA,+BAAA;;;AAImF;;ACFnF,cAAA,wBAAA,YAAA,MAAA;mCAKyB,0BAAA,CAAA,UAAA;AAEvB,qCAAsB,iCAAA,CAAA,mBAAA;;;AAErB;;;;AAKF;;ACdD,cAAA,2BAAA,SAAA,+BAAA;mCAKyB,0BAAA,CAAA,UAAA;;;;AAQxB;;ACVD,cAAA,sBAAA,SAAA,0BAAA;mCAMyB,0BAAA,CAAA,UAAA;;;;AAQxB;;ACfD,cAAA,0BAAA,SAAA,8BAAA;mCAUyB,0BAAA,CAAA,UAAA;;;;AAQxB;;ACnBD,cAAA,0BAAA,YAAA,MAAA;mBAWeA,EAAA,CAAA,WAAA,CAAA,kBAAA;mCAEU,0BAAA,CAAA,UAAA;+CAES,iCAAA,CAAA,mBAAA;;;AAE/B;;;;AAKF;;ACpBD,cAAA,iBAAA,SAAA,yBAAA,YAAA,MAAA;AASE,6CAAiC,0BAAA,CAAA,UAAA;;;;AAOlC;;ACrBD,cAAA,uBAAA,SAAA,2BAAA;;;AAS2E;;ACJ3E,cAAA,2BAAA,SAAA,+BAAA;mCAMyB,0BAAA,CAAA,UAAA;;;;AAQxB;;ACbD,cAAA,sBAAA,SAAA,0BAAA;AAME,6CAAiC,0BAAA,CAAA,UAAA;;;;AAQlC;;AClBD,cAAA,sBAAA,SAAA,0BAAA,YAAA,MAAA;AAQE,6CAAiC,0BAAA,CAAA,UAAA;;;;AASlC;;ACfD,cAAA,iCAAA,YAAA,MAAA;mCAWyB,0BAAA,CAAA,UAAA;+CAES,iCAAA,CAAA,mBAAA;;;AAE/B;;;;AAKF;;ACnBD,cAAA,wBAAA,SAAA,4BAAA;mCAYyB,0BAAA,CAAA,UAAA;0BAEHA,EAAA,QAAA,0BAAA,CAAA,mBAAA;;;;AAMrB;;ACxBD,cAAA,oBAAA,SAAA,wBAAA;AAKE,sCAAgC,iCAAA,CAAA,mBAAA;;;AAW9B;;;AACH;;ACbD,cAAA,qBAAA,SAAA,qBAAA,CAAA,UAAA;;;AAC+E;AAE/E,cAAA,gBAAA,EACkBA,EAAA,CAAA,cAAA,OAAA,UAAA;AAAA,cAChB,6DAAiB,iCAAA,CAAA,cAAA,0DAAA,UAAA,iBAAA,UAAA;AAAA,cACjB;;ACOF,cAAA,aAAA,SAAA,qBAAA,YAAA,cAAA,CAAA,eAAA,GAAA,MAAA;mBAyBeA,EAAA,CAAA,WAAA,CAAA,WAAA;;;;;AAad;;AC/BD,cAAA,UAAA;;;;AAiD0B;;;;"}