@acorex/platform 20.8.9 → 20.8.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +125 -27
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-DVvuLUfF.mjs → acorex-platform-common-common-settings.provider-Bi1RYif5.mjs} +30 -32
  4. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +711 -205
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +420 -127
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +557 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +634 -114
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs} +9 -9
  14. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-components.mjs +3365 -880
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +456 -204
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +18667 -14048
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +413 -171
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +507 -441
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  26. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs → acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs} +21 -76
  28. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  30. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  32. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs +116 -0
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +5 -5
  36. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +4 -4
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  40. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets.mjs +6578 -4314
  42. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  43. package/fesm2022/acorex-platform-native.mjs +8 -7
  44. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-runtime.mjs +391 -166
  46. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs +160 -0
  48. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs +120 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs → acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs} +16 -23
  52. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-themes-default-error-401.component-53VB-PS_.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  54. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-404.component-DVF9soT5.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  58. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default.mjs +1784 -61
  60. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  61. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  62. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  65. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs} +24 -25
  66. package/fesm2022/acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs.map +1 -0
  67. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  68. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +86 -0
  70. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  71. package/fesm2022/acorex-platform-themes-shared.mjs +408 -305
  72. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  73. package/fesm2022/acorex-platform-workflow.mjs +359 -100
  74. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  75. package/fesm2022/acorex-platform.mjs.map +1 -1
  76. package/package.json +31 -31
  77. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
  78. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +302 -30
  79. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +188 -44
  80. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
  81. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +160 -38
  82. package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +854 -125
  83. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
  84. package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +848 -63
  85. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +80 -47
  86. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +274 -197
  87. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +608 -122
  88. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  89. package/types/acorex-platform-runtime.d.ts +571 -0
  90. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +113 -4
  91. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +5 -4
  92. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +162 -81
  93. package/fesm2022/acorex-platform-common-common-settings.provider-DVvuLUfF.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs +0 -111
  100. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs +0 -160
  105. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs +0 -1716
  107. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs +0 -120
  109. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs +0 -19
  114. package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs +0 -65
  119. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs.map +0 -1
  120. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs +0 -64
  121. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs.map +0 -1
  122. package/runtime/index.d.ts +0 -307
  123. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -7,7 +7,7 @@ import { AXDropdownModule } from '@acorex/components/dropdown';
7
7
  import * as i1 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import * as i0 from '@angular/core';
10
- import { computed, inject, Component, InjectionToken, signal, effect, ChangeDetectionStrategy, Injectable, Input, Injector, NgModule } from '@angular/core';
10
+ import { computed, inject, ChangeDetectionStrategy, Component, InjectionToken, Injectable, Input, signal, effect, Injector, NgModule } from '@angular/core';
11
11
  import { AXPSettingsService, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
12
12
  import * as i1$3 from '@acorex/platform/core';
13
13
  import { AXPScreenSize, AXPPlatformScope, AXPComponentSlotModule } from '@acorex/platform/core';
@@ -16,18 +16,17 @@ import { signalStore, withState, withComputed, withMethods, patchState, withHook
16
16
  import { timer, firstValueFrom, filter } from 'rxjs';
17
17
  import * as i5 from '@acorex/core/translation';
18
18
  import { AXTranslationModule } from '@acorex/core/translation';
19
- import * as i2$3 from '@acorex/platform/layout/widget-core';
20
- import { AXPValueWidgetComponent, AXP_WIDGETS_LAYOUT_CATEGORY, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';
21
- import { AXSelectionCdkModule } from '@acorex/cdk/selection';
22
- import * as i5$1 from '@angular/forms';
23
- import { FormsModule } from '@angular/forms';
24
- import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex/platform/layout/widgets';
19
+ import { AXPValueWidgetComponent, AXP_WIDGETS_LAYOUT_CATEGORY, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex/platform/layout/widget-core';
25
20
  import { AXPopupService } from '@acorex/components/popup';
26
21
  import * as i2$1 from '@acorex/components/button-group';
27
22
  import { AXButtonGroupModule } from '@acorex/components/button-group';
28
23
  import { AXBasePageComponent } from '@acorex/components/page';
29
24
  import * as i1$1 from '@acorex/components/search-box';
30
25
  import { AXSearchBoxModule } from '@acorex/components/search-box';
26
+ import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex/platform/layout/widgets';
27
+ import { AXSelectionCdkModule } from '@acorex/cdk/selection';
28
+ import * as i4$1 from '@angular/forms';
29
+ import { FormsModule } from '@angular/forms';
31
30
  import * as i2$2 from '@acorex/components/form';
32
31
  import { AXFormModule } from '@acorex/components/form';
33
32
  import * as i1$2 from '@acorex/components/select-box';
@@ -339,8 +338,8 @@ class AXPThemeSlotComponent {
339
338
  this.store = inject(AXPLayoutThemeService);
340
339
  this.variants = AXPThemeMode;
341
340
  }
342
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPThemeSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
343
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: AXPThemeSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
341
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemeSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
342
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: AXPThemeSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
344
343
  <ax-button color="primary">
345
344
  <ax-icon
346
345
  class="fa-regular "
@@ -383,9 +382,9 @@ class AXPThemeSlotComponent {
383
382
  </ax-button-item-list>
384
383
  </ax-dropdown-panel>
385
384
  </ax-button>
386
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }] }); }
385
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
387
386
  }
388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPThemeSlotComponent, decorators: [{
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemeSlotComponent, decorators: [{
389
388
  type: Component,
390
389
  args: [{
391
390
  template: `
@@ -432,7 +431,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
432
431
  </ax-dropdown-panel>
433
432
  </ax-button>
434
433
  `,
435
- imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule]
434
+ imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule],
435
+ changeDetection: ChangeDetectionStrategy.OnPush,
436
436
  }]
437
437
  }] });
438
438
 
@@ -465,152 +465,6 @@ class AXPThemePaletteProviderDefault {
465
465
  }
466
466
  }
467
467
 
468
- class AXPFontSizeChooserWidgetComponent extends AXPValueWidgetComponent {
469
- constructor() {
470
- super(...arguments);
471
- this.sizes = signal(['small', 'medium', 'large', 'x-large'], ...(ngDevMode ? [{ debugName: "sizes" }] : []));
472
- this.selectedSize = signal(null, ...(ngDevMode ? [{ debugName: "selectedSize" }] : []));
473
- this.#eff = effect(() => {
474
- if (this.getValue()) {
475
- this.selectedSize.set(this.sizes().find((s) => s === this.getValue()) ?? this.sizes()[0]);
476
- }
477
- }, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
478
- }
479
- #eff;
480
- onSizeClick(size) {
481
- this.setValue(size);
482
- }
483
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFontSizeChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
484
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPFontSizeChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
485
- @for (size of sizes(); track size) {
486
- <div (click)="onSizeClick(size)" [style.font-size]="size" [class.--selected]="size === selectedSize()">
487
- <div>
488
- <span>{{ '@layout:terms.font-sizes.' + size | translate | async }}</span>
489
- </div>
490
- </div>
491
- }
492
- `, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
493
- }
494
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFontSizeChooserWidgetComponent, decorators: [{
495
- type: Component,
496
- args: [{ template: `
497
- @for (size of sizes(); track size) {
498
- <div (click)="onSizeClick(size)" [style.font-size]="size" [class.--selected]="size === selectedSize()">
499
- <div>
500
- <span>{{ '@layout:terms.font-sizes.' + size | translate | async }}</span>
501
- </div>
502
- </div>
503
- }
504
- `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, AXSelectionCdkModule, AXTranslationModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"] }]
505
- }] });
506
-
507
- var fontSizeChooserWidget_component = /*#__PURE__*/Object.freeze({
508
- __proto__: null,
509
- AXPFontSizeChooserWidgetComponent: AXPFontSizeChooserWidgetComponent
510
- });
511
-
512
- const AXPFontSizeChooserWidget = {
513
- name: "font-size-chooser",
514
- title: "Font Size Chooser",
515
- icon: "fa-light fa-text-size",
516
- type: 'editor',
517
- categories: AXP_WIDGETS_LAYOUT_CATEGORY,
518
- properties: [
519
- AXP_NAME_PROPERTY,
520
- AXP_DATA_PATH_PROPERTY,
521
- AXP_DISABLED_PROPERTY,
522
- ],
523
- components: {
524
- edit: {
525
- component: () => Promise.resolve().then(function () { return fontSizeChooserWidget_component; }).then((c) => c.AXPFontSizeChooserWidgetComponent),
526
- },
527
- }
528
- };
529
-
530
- class AXPFontStyleChooserWidgetComponent extends AXPValueWidgetComponent {
531
- constructor() {
532
- super(...arguments);
533
- this.fonts = signal([
534
- { id: 'system-ui', title: 'Default' },
535
- { id: 'serif', title: 'Serif' },
536
- { id: 'sans-serif', title: 'Sans-serif' },
537
- { id: 'monospace', title: 'Monospace' },
538
- { id: 'arial', title: 'Arial' },
539
- { id: 'verdana', title: 'Verdana' },
540
- { id: 'tahoma', title: 'Tahoma' },
541
- { id: 'times-new-roman', title: 'Times New Roman' },
542
- { id: 'georgia', title: 'Georgia' },
543
- { id: 'helvetica', title: 'Helvetica' },
544
- { id: 'calibri', title: 'Calibri' },
545
- { id: 'cursive', title: 'Cursive' },
546
- { id: 'vazirmatn', title: 'Vazir وزیر' },
547
- ], ...(ngDevMode ? [{ debugName: "fonts" }] : []));
548
- this.selectedFont = signal(null, ...(ngDevMode ? [{ debugName: "selectedFont" }] : []));
549
- this.#eff = effect(() => {
550
- if (this.getValue()) {
551
- this.selectedFont.set(this.fonts().find((f) => f.id === this.getValue()) ?? this.fonts()[0]);
552
- }
553
- }, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
554
- }
555
- #eff;
556
- onFontClick(font) {
557
- this.setValue(font.id);
558
- }
559
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
560
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPFontStyleChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
561
- @for (font of fonts(); track font.id) {
562
- <div
563
- (click)="onFontClick(font)"
564
- [class.--selected]="font.id === selectedFont()?.id"
565
- [style.font-family]="font.id"
566
- >
567
- <div>
568
- <span>{{ font.title }}</span>
569
- </div>
570
- </div>
571
- }
572
- `, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
573
- }
574
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, decorators: [{
575
- type: Component,
576
- args: [{ template: `
577
- @for (font of fonts(); track font.id) {
578
- <div
579
- (click)="onFontClick(font)"
580
- [class.--selected]="font.id === selectedFont()?.id"
581
- [style.font-family]="font.id"
582
- >
583
- <div>
584
- <span>{{ font.title }}</span>
585
- </div>
586
- </div>
587
- }
588
- `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, AXSelectionCdkModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"] }]
589
- }] });
590
-
591
- var fontStyleChooserWidget_component = /*#__PURE__*/Object.freeze({
592
- __proto__: null,
593
- AXPFontStyleChooserWidgetComponent: AXPFontStyleChooserWidgetComponent
594
- });
595
-
596
- const AXPFontStyleChooserWidget = {
597
- name: "font-style-chooser",
598
- title: "Font Style Chooser",
599
- icon: "fa-light fa-font",
600
- type: 'editor',
601
- categories: AXP_WIDGETS_LAYOUT_CATEGORY,
602
- properties: [
603
- AXP_NAME_PROPERTY,
604
- AXP_DATA_PATH_PROPERTY,
605
- AXP_DISABLED_PROPERTY,
606
- ],
607
- components: {
608
- edit: {
609
- component: () => Promise.resolve().then(function () { return fontStyleChooserWidget_component; }).then((c) => c.AXPFontStyleChooserWidgetComponent),
610
- },
611
- }
612
- };
613
-
614
468
  //#region ---- Injection Tokens ----
615
469
  /**
616
470
  * Injection token for icon providers.
@@ -679,10 +533,10 @@ class AXPIconChooserService {
679
533
  this.iconsCache = uniqueIcons;
680
534
  return uniqueIcons;
681
535
  }
682
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPIconChooserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
683
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPIconChooserService, providedIn: 'root' }); }
536
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
537
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserService, providedIn: 'root' }); }
684
538
  }
685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPIconChooserService, decorators: [{
539
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserService, decorators: [{
686
540
  type: Injectable,
687
541
  args: [{ providedIn: 'root' }]
688
542
  }] });
@@ -747,8 +601,8 @@ class AXPIconChooserPopupComponent extends AXBasePageComponent {
747
601
  getIconClass(icon) {
748
602
  return `${this.selectedIconType} fa-${icon.name}`;
749
603
  }
750
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPIconChooserPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
751
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPIconChooserPopupComponent, isStandalone: true, selector: "ng-component", inputs: { value: "value" }, usesInheritance: true, ngImport: i0, template: `
604
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
605
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPIconChooserPopupComponent, isStandalone: true, selector: "ng-component", inputs: { value: "value" }, usesInheritance: true, ngImport: i0, template: `
752
606
  <div class="ax-flex ax-flex-col ax-h-full ax-bg-lightest">
753
607
  <!-- Fixed Header Section -->
754
608
  <div class="ax-sticky ax-top-0 ax-z-10 ax-bg-lightest ax-border-b ax-p-4 ax-gap-4 ax-flex ax-flex-col">
@@ -825,7 +679,7 @@ class AXPIconChooserPopupComponent extends AXBasePageComponent {
825
679
  </div>
826
680
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i1$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i2$1.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "color", "look", "fitParent", "selection"], outputs: ["onBlur", "onFocus", "lookChange", "colorChange", "disabledChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: i2$1.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
827
681
  }
828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPIconChooserPopupComponent, decorators: [{
682
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserPopupComponent, decorators: [{
829
683
  type: Component,
830
684
  args: [{
831
685
  template: `
@@ -930,7 +784,7 @@ class AXPIconChooserWidgetEditComponent extends AXPValueWidgetComponent {
930
784
  }
931
785
  }
932
786
  return value;
933
- }, ...(ngDevMode ? [{ debugName: "computedValue" }] : []));
787
+ }, ...(ngDevMode ? [{ debugName: "computedValue" }] : /* istanbul ignore next */ []));
934
788
  }
935
789
  async openPopup() {
936
790
  const result = await this.popupService.open(AXPIconChooserPopupComponent, {
@@ -955,8 +809,8 @@ class AXPIconChooserWidgetEditComponent extends AXPValueWidgetComponent {
955
809
  editIcon() {
956
810
  this.openPopup();
957
811
  }
958
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPIconChooserWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
959
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPIconChooserWidgetEditComponent, isStandalone: true, selector: "ax-icon-chooser-edit", usesInheritance: true, ngImport: i0, template: `
812
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
813
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPIconChooserWidgetEditComponent, isStandalone: true, selector: "ax-icon-chooser-edit", usesInheritance: true, ngImport: i0, template: `
960
814
  <div
961
815
  class="ax-grid ax-grid-cols-[6rem_auto] ax-items-center ax-rounded-md ax-text-3xl ax-w-fit"
962
816
  [class.ax-border]="getValue()"
@@ -987,7 +841,7 @@ class AXPIconChooserWidgetEditComponent extends AXPValueWidgetComponent {
987
841
  </div>
988
842
  `, isInline: true, styles: [".icon-container{background-color:rgba(var(--ax-sys-color-primary-300),10%);background-image:linear-gradient(135deg,rgba(var(--ax-sys-color-primary-300),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-sys-color-primary-300),50%) 0,rgba(var(--ax-sys-color-primary-300),50%) 60%,transparent 0,transparent);background-size:7.5px 7.5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
989
843
  }
990
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPIconChooserWidgetEditComponent, decorators: [{
844
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserWidgetEditComponent, decorators: [{
991
845
  type: Component,
992
846
  args: [{ selector: 'ax-icon-chooser-edit', template: `
993
847
  <div
@@ -1029,7 +883,7 @@ var iconChooserEdit_component = /*#__PURE__*/Object.freeze({
1029
883
  const AXPIconChooserWidget = {
1030
884
  name: 'icon-chooser',
1031
885
  title: 'Icon Chooser',
1032
- icon: 'fa-solid fa-icons',
886
+ icon: 'fa-light fa-icons',
1033
887
  type: 'editor',
1034
888
  categories: AXP_WIDGETS_LAYOUT_CATEGORY,
1035
889
  properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
@@ -1038,10 +892,10 @@ const AXPIconChooserWidget = {
1038
892
  component: () => Promise.resolve().then(function () { return iconChooserEdit_component; }).then((c) => c.AXPIconChooserWidgetEditComponent),
1039
893
  },
1040
894
  column: {
1041
- component: () => import('./acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs').then((c) => c.AXPIconChooserWidgetColumnComponent),
895
+ component: () => import('./acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs').then((c) => c.AXPIconChooserWidgetColumnComponent),
1042
896
  },
1043
897
  view: {
1044
- component: () => import('./acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs').then((c) => c.AXPIconChooserWidgetViewComponent),
898
+ component: () => import('./acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs').then((c) => c.AXPIconChooserWidgetViewComponent),
1045
899
  },
1046
900
  },
1047
901
  };
@@ -1586,26 +1440,172 @@ function provideCustomIconStyleProvider(providerClass) {
1586
1440
  }
1587
1441
  //#endregion
1588
1442
 
1443
+ class AXPFontSizeChooserWidgetComponent extends AXPValueWidgetComponent {
1444
+ constructor() {
1445
+ super(...arguments);
1446
+ this.sizes = signal(['small', 'medium', 'large', 'x-large'], ...(ngDevMode ? [{ debugName: "sizes" }] : /* istanbul ignore next */ []));
1447
+ this.selectedSize = signal(null, ...(ngDevMode ? [{ debugName: "selectedSize" }] : /* istanbul ignore next */ []));
1448
+ this.#eff = effect(() => {
1449
+ if (this.getValue()) {
1450
+ this.selectedSize.set(this.sizes().find((s) => s === this.getValue()) ?? this.sizes()[0]);
1451
+ }
1452
+ }, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
1453
+ }
1454
+ #eff;
1455
+ onSizeClick(size) {
1456
+ this.setValue(size);
1457
+ }
1458
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFontSizeChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1459
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPFontSizeChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1460
+ @for (size of sizes(); track size) {
1461
+ <div (click)="onSizeClick(size)" [style.font-size]="size" [class.--selected]="size === selectedSize()">
1462
+ <div>
1463
+ <span>{{ '@layout:terms.font-sizes.' + size | translate | async }}</span>
1464
+ </div>
1465
+ </div>
1466
+ }
1467
+ `, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1468
+ }
1469
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFontSizeChooserWidgetComponent, decorators: [{
1470
+ type: Component,
1471
+ args: [{ template: `
1472
+ @for (size of sizes(); track size) {
1473
+ <div (click)="onSizeClick(size)" [style.font-size]="size" [class.--selected]="size === selectedSize()">
1474
+ <div>
1475
+ <span>{{ '@layout:terms.font-sizes.' + size | translate | async }}</span>
1476
+ </div>
1477
+ </div>
1478
+ }
1479
+ `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, AXSelectionCdkModule, AXTranslationModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"] }]
1480
+ }] });
1481
+
1482
+ var fontSizeChooserWidget_component = /*#__PURE__*/Object.freeze({
1483
+ __proto__: null,
1484
+ AXPFontSizeChooserWidgetComponent: AXPFontSizeChooserWidgetComponent
1485
+ });
1486
+
1487
+ const AXPFontSizeChooserWidget = {
1488
+ name: "font-size-chooser",
1489
+ title: "Font Size Chooser",
1490
+ icon: "fa-light fa-text-size",
1491
+ type: 'editor',
1492
+ categories: AXP_WIDGETS_LAYOUT_CATEGORY,
1493
+ properties: [
1494
+ AXP_NAME_PROPERTY,
1495
+ AXP_DATA_PATH_PROPERTY,
1496
+ AXP_DISABLED_PROPERTY,
1497
+ ],
1498
+ components: {
1499
+ edit: {
1500
+ component: () => Promise.resolve().then(function () { return fontSizeChooserWidget_component; }).then((c) => c.AXPFontSizeChooserWidgetComponent),
1501
+ },
1502
+ }
1503
+ };
1504
+
1505
+ class AXPFontStyleChooserWidgetComponent extends AXPValueWidgetComponent {
1506
+ constructor() {
1507
+ super(...arguments);
1508
+ this.fonts = signal([
1509
+ { id: 'system-ui', title: 'Default' },
1510
+ { id: 'serif', title: 'Serif' },
1511
+ { id: 'sans-serif', title: 'Sans-serif' },
1512
+ { id: 'monospace', title: 'Monospace' },
1513
+ { id: 'arial', title: 'Arial' },
1514
+ { id: 'verdana', title: 'Verdana' },
1515
+ { id: 'tahoma', title: 'Tahoma' },
1516
+ { id: 'times-new-roman', title: 'Times New Roman' },
1517
+ { id: 'georgia', title: 'Georgia' },
1518
+ { id: 'helvetica', title: 'Helvetica' },
1519
+ { id: 'calibri', title: 'Calibri' },
1520
+ { id: 'cursive', title: 'Cursive' },
1521
+ { id: 'vazirmatn', title: 'Vazir وزیر' },
1522
+ ], ...(ngDevMode ? [{ debugName: "fonts" }] : /* istanbul ignore next */ []));
1523
+ this.selectedFont = signal(null, ...(ngDevMode ? [{ debugName: "selectedFont" }] : /* istanbul ignore next */ []));
1524
+ this.#eff = effect(() => {
1525
+ if (this.getValue()) {
1526
+ this.selectedFont.set(this.fonts().find((f) => f.id === this.getValue()) ?? this.fonts()[0]);
1527
+ }
1528
+ }, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
1529
+ }
1530
+ #eff;
1531
+ onFontClick(font) {
1532
+ this.setValue(font.id);
1533
+ }
1534
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1535
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPFontStyleChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1536
+ @for (font of fonts(); track font.id) {
1537
+ <div
1538
+ (click)="onFontClick(font)"
1539
+ [class.--selected]="font.id === selectedFont()?.id"
1540
+ [style.font-family]="font.id"
1541
+ >
1542
+ <div>
1543
+ <span>{{ font.title }}</span>
1544
+ </div>
1545
+ </div>
1546
+ }
1547
+ `, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1548
+ }
1549
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, decorators: [{
1550
+ type: Component,
1551
+ args: [{ template: `
1552
+ @for (font of fonts(); track font.id) {
1553
+ <div
1554
+ (click)="onFontClick(font)"
1555
+ [class.--selected]="font.id === selectedFont()?.id"
1556
+ [style.font-family]="font.id"
1557
+ >
1558
+ <div>
1559
+ <span>{{ font.title }}</span>
1560
+ </div>
1561
+ </div>
1562
+ }
1563
+ `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, AXSelectionCdkModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"] }]
1564
+ }] });
1565
+
1566
+ var fontStyleChooserWidget_component = /*#__PURE__*/Object.freeze({
1567
+ __proto__: null,
1568
+ AXPFontStyleChooserWidgetComponent: AXPFontStyleChooserWidgetComponent
1569
+ });
1570
+
1571
+ const AXPFontStyleChooserWidget = {
1572
+ name: "font-style-chooser",
1573
+ title: "Font Style Chooser",
1574
+ icon: "fa-light fa-font",
1575
+ type: 'editor',
1576
+ categories: AXP_WIDGETS_LAYOUT_CATEGORY,
1577
+ properties: [
1578
+ AXP_NAME_PROPERTY,
1579
+ AXP_DATA_PATH_PROPERTY,
1580
+ AXP_DISABLED_PROPERTY,
1581
+ ],
1582
+ components: {
1583
+ edit: {
1584
+ component: () => Promise.resolve().then(function () { return fontStyleChooserWidget_component; }).then((c) => c.AXPFontStyleChooserWidgetComponent),
1585
+ },
1586
+ }
1587
+ };
1588
+
1589
1589
  class AXPMenuOrientationChooserWidgetComponent extends AXPValueWidgetComponent {
1590
1590
  constructor() {
1591
1591
  super(...arguments);
1592
1592
  this.orientations = signal([
1593
1593
  { id: 'vertical', icon: 'fa-regular fa-square-ellipsis-vertical' },
1594
1594
  { id: 'horizontal', icon: 'fa-regular fa-square-ellipsis' },
1595
- ], ...(ngDevMode ? [{ debugName: "orientations" }] : []));
1596
- this.selectedOrientation = signal(null, ...(ngDevMode ? [{ debugName: "selectedOrientation" }] : []));
1595
+ ], ...(ngDevMode ? [{ debugName: "orientations" }] : /* istanbul ignore next */ []));
1596
+ this.selectedOrientation = signal(null, ...(ngDevMode ? [{ debugName: "selectedOrientation" }] : /* istanbul ignore next */ []));
1597
1597
  this.#eff = effect(() => {
1598
1598
  if (this.getValue()) {
1599
1599
  this.selectedOrientation.set(this.orientations().find((o) => o.id === this.getValue()) ?? this.orientations()[0]);
1600
1600
  }
1601
- }, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
1601
+ }, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
1602
1602
  }
1603
1603
  #eff;
1604
1604
  onOrientationClick(orientation) {
1605
1605
  this.setValue(orientation.id);
1606
1606
  }
1607
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuOrientationChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1608
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPMenuOrientationChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1607
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuOrientationChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1608
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPMenuOrientationChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1609
1609
  @for (orientation of orientations(); track orientation.id) {
1610
1610
  <div (click)="onOrientationClick(orientation)" [class.--selected]="orientation.id === selectedOrientation()?.id">
1611
1611
  <div>
@@ -1616,7 +1616,7 @@ class AXPMenuOrientationChooserWidgetComponent extends AXPValueWidgetComponent {
1616
1616
  }
1617
1617
  `, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{padding-top:.25rem!important;padding-bottom:.25rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1618
1618
  }
1619
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPMenuOrientationChooserWidgetComponent, decorators: [{
1619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuOrientationChooserWidgetComponent, decorators: [{
1620
1620
  type: Component,
1621
1621
  args: [{ template: `
1622
1622
  @for (orientation of orientations(); track orientation.id) {
@@ -1653,83 +1653,158 @@ const AXPMenuOrientationChooserWidget = {
1653
1653
  }
1654
1654
  };
1655
1655
 
1656
- class AXPColorProvider {
1656
+ //#endregion
1657
+ //#region ---- Color utilities ----
1658
+ function hexToRgb(hex) {
1659
+ const normalized = hex.trim().replace(/^#/, '');
1660
+ const full = normalized.length === 3
1661
+ ? normalized
1662
+ .split('')
1663
+ .map((c) => c + c)
1664
+ .join('')
1665
+ : normalized;
1666
+ return [
1667
+ parseInt(full.slice(0, 2), 16),
1668
+ parseInt(full.slice(2, 4), 16),
1669
+ parseInt(full.slice(4, 6), 16),
1670
+ ];
1671
+ }
1672
+ function rgbToHex(r, g, b) {
1673
+ const clamp = (n) => Math.max(0, Math.min(255, Math.round(n)));
1674
+ return `#${[clamp(r), clamp(g), clamp(b)]
1675
+ .map((c) => c.toString(16).padStart(2, '0'))
1676
+ .join('')}`;
1677
+ }
1678
+ /**
1679
+ * Linear RGB mix: ratio 0 → `from`, ratio 1 → `to`.
1680
+ */
1681
+ function mixHex(from, to, ratio) {
1682
+ const t = Math.max(0, Math.min(1, ratio));
1683
+ const [r0, g0, b0] = hexToRgb(from);
1684
+ const [r1, g1, b1] = hexToRgb(to);
1685
+ return rgbToHex(r0 + (r1 - r0) * t, g0 + (g1 - g0) * t, b0 + (b1 - b0) * t);
1686
+ }
1687
+ function relativeLuminance(hex) {
1688
+ const [r, g, b] = hexToRgb(hex).map((c) => {
1689
+ const s = c / 255;
1690
+ return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);
1691
+ });
1692
+ return 0.2126 * r + 0.7152 * g + 0.0722 * b;
1693
+ }
1694
+ function contrastForeground(backgroundHex) {
1695
+ return relativeLuminance(backgroundHex) > 0.55 ? '#171717' : '#ffffff';
1657
1696
  }
1658
1697
  function titleCase(str) {
1659
- return str.replace(/-/g, ' ').replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());
1698
+ return str.replace(/-/g, ' ').replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.slice(1).toLowerCase());
1660
1699
  }
1661
- function generateDefaultColors() {
1662
- const colors = [];
1663
- const styles = ['primary', 'secondary', 'success', 'warning', 'danger'];
1664
- const variants = [
1665
- 'lightest',
1666
- 'lighter',
1667
- 'light',
1668
- 'surface',
1669
- 'dark',
1670
- 'darker',
1671
- 'darkest',
1672
- // ,'default'
1673
- ];
1674
- for (const style of styles) {
1675
- for (const variant of variants) {
1676
- let name;
1677
- let colorClass;
1678
- // if (variant === 'default') {
1679
- // name = `${style}-${variant}`;
1680
- // colorClass = `ax-text-${style}-${variant}`;
1681
- // } else {
1682
- name = `${style}-${variant}`;
1683
- colorClass = `ax-text-${style}-on-${variant}`;
1684
- // }
1685
- colors.push({
1686
- title: titleCase(variant === 'surface' ? style : titleCase(name)),
1687
- name: name,
1688
- color: colorClass,
1689
- background: `ax-bg-${name}`,
1690
- border: `ax-border-${name}`,
1691
- });
1700
+ //#endregion
1701
+ //#region ---- Surface variants (palette-synchronized) ----
1702
+ /**
1703
+ * Seven tonal steps per semantic color. Backgrounds are mixed in RGB using the **same palette’s**
1704
+ * canvas `light` and `dark` as poles so swatches stay aligned with `AXPThemePaletteProvider` data.
1705
+ */
1706
+ const SURFACE_VARIANTS = ['lightest', 'lighter', 'light', 'surface', 'dark', 'darker', 'darkest'];
1707
+ function tonalBackgroundHex(base, variant, canvas) {
1708
+ switch (variant) {
1709
+ case 'lightest':
1710
+ return mixHex(base, canvas.light, 0.85);
1711
+ case 'lighter':
1712
+ return mixHex(base, canvas.light, 0.62);
1713
+ case 'light':
1714
+ return mixHex(base, canvas.light, 0.38);
1715
+ case 'surface':
1716
+ return base;
1717
+ case 'dark':
1718
+ return mixHex(base, canvas.dark, 0.35);
1719
+ case 'darker':
1720
+ return mixHex(base, canvas.dark, 0.58);
1721
+ case 'darkest':
1722
+ return mixHex(base, canvas.dark, 0.8);
1723
+ default: {
1724
+ const _exhaustive = variant;
1725
+ return _exhaustive;
1692
1726
  }
1693
1727
  }
1694
- return colors;
1695
1728
  }
1696
- const DEFAULT_COLORS = generateDefaultColors();
1697
- class AXPColorProviderDefault extends AXPColorProvider {
1698
- async provide() {
1699
- return DEFAULT_COLORS;
1729
+ function styleTitlePrefix(style) {
1730
+ const accentMatch = /^accent(\d+)$/.exec(style);
1731
+ if (accentMatch) {
1732
+ return `Accent ${accentMatch[1]}`;
1733
+ }
1734
+ return titleCase(style);
1735
+ }
1736
+ function surfaceVariantTitle(style, variant) {
1737
+ if (variant === 'surface') {
1738
+ return styleTitlePrefix(style);
1700
1739
  }
1740
+ return `${styleTitlePrefix(style)} ${titleCase(variant)}`;
1701
1741
  }
1702
- const AXP_COLOR_PROVIDER = new InjectionToken('AXP_COLOR_PROVIDER');
1742
+ function pushVariantScale(entries, styleKey, baseHex, canvas) {
1743
+ for (const variant of SURFACE_VARIANTS) {
1744
+ const background = tonalBackgroundHex(baseHex, variant, canvas);
1745
+ const color = contrastForeground(background);
1746
+ const name = `${styleKey}-${variant}`;
1747
+ entries.push({
1748
+ title: surfaceVariantTitle(styleKey, variant),
1749
+ name,
1750
+ color,
1751
+ background,
1752
+ border: background,
1753
+ });
1754
+ }
1755
+ }
1756
+ function pushFlatSwatch(entries, title, name, hex) {
1757
+ const color = contrastForeground(hex);
1758
+ entries.push({ title, name, color, background: hex, border: hex });
1759
+ }
1760
+ /**
1761
+ * Builds the full chooser list from a single `AXPThemePalette` (colors object only).
1762
+ */
1763
+ function buildColorsFromThemePalette(palette) {
1764
+ const colors = palette.colors;
1765
+ const canvas = { light: colors.light, dark: colors.dark };
1766
+ const entries = [];
1767
+ const core = ['primary', 'secondary', 'success', 'warning', 'danger'];
1768
+ for (const key of core) {
1769
+ pushVariantScale(entries, key, colors[key], canvas);
1770
+ }
1771
+ const neutral = colors.neutral;
1772
+ if (neutral) {
1773
+ pushVariantScale(entries, 'neutral', neutral, canvas);
1774
+ }
1775
+ colors.accents.forEach((hex, index) => {
1776
+ pushVariantScale(entries, `accent${index + 1}`, hex, canvas);
1777
+ });
1778
+ pushFlatSwatch(entries, 'Canvas Light', 'canvas-light', colors.light);
1779
+ pushFlatSwatch(entries, 'Canvas Dark', 'canvas-dark', colors.dark);
1780
+ return entries;
1781
+ }
1782
+ //#endregion
1783
+ //#region ---- Service ----
1703
1784
  class AXPColorChooserService {
1704
1785
  constructor() {
1705
- this.defaultProvider = new AXPColorProviderDefault();
1706
- this.providers = (() => {
1707
- const injected = inject(AXP_COLOR_PROVIDER, { optional: true });
1708
- if (!injected) {
1709
- return [this.defaultProvider];
1710
- }
1711
- const providers = Array.isArray(injected) ? injected : [injected];
1712
- return [...providers, this.defaultProvider];
1713
- })();
1786
+ this.themeStore = inject(AXPLayoutThemeService);
1787
+ this.palettePromise = inject(AXP_THEME_PALETTE_PROVIDER);
1788
+ this.cacheKey = null;
1714
1789
  this.cache = null;
1715
1790
  }
1716
1791
  async getColors() {
1717
- if (this.cache) {
1792
+ const paletteName = this.themeStore.currentPalette();
1793
+ if (this.cache && this.cacheKey === paletteName) {
1718
1794
  return this.cache;
1719
1795
  }
1720
- const allColors = [];
1721
- for (const resolver of this.providers) {
1722
- const result = await resolver.provide();
1723
- allColors.push(...result);
1724
- }
1725
- const uniqueColors = allColors.filter((color, index, self) => index === self.findIndex((c) => c.title === color.title));
1726
- this.cache = uniqueColors;
1727
- return uniqueColors;
1796
+ const provider = await this.palettePromise;
1797
+ const list = await provider.getList();
1798
+ const palette = list.find((p) => p.name === paletteName) ?? list.find((p) => p.name === 'default') ?? list[0] ?? null;
1799
+ const colors = palette ? buildColorsFromThemePalette(palette) : [];
1800
+ this.cacheKey = paletteName;
1801
+ this.cache = colors;
1802
+ return colors;
1728
1803
  }
1729
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPColorChooserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1730
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPColorChooserService, providedIn: 'root' }); }
1804
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1805
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserService, providedIn: 'root' }); }
1731
1806
  }
1732
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPColorChooserService, decorators: [{
1807
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserService, decorators: [{
1733
1808
  type: Injectable,
1734
1809
  args: [{
1735
1810
  providedIn: 'root',
@@ -1740,24 +1815,23 @@ class AXPColorChooserWidgetEditComponent extends AXPValueWidgetComponent {
1740
1815
  constructor() {
1741
1816
  super(...arguments);
1742
1817
  this.colorService = inject(AXPColorChooserService);
1743
- this.colors = signal([], ...(ngDevMode ? [{ debugName: "colors" }] : []));
1744
- this.placeholder = computed(() => this.options()['placeholder'] ?? '', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
1818
+ this.colors = signal([], ...(ngDevMode ? [{ debugName: "colors" }] : /* istanbul ignore next */ []));
1819
+ this.placeholder = computed(() => this.options()['placeholder'] ?? '', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
1745
1820
  this.selectedColor = computed(() => {
1746
1821
  const value = this.getValue();
1822
+ const fallbackName = () => this.colors()[0]?.name;
1747
1823
  if (!value) {
1748
- return this.colors()[0];
1824
+ return fallbackName();
1749
1825
  }
1750
- // If value is a string in the format: "ax-text-* ax-bg-* ax-border-*"
1751
1826
  if (typeof value === 'string') {
1752
1827
  const parsed = this.parseStringValue(value);
1753
1828
  if (parsed) {
1754
1829
  return parsed;
1755
1830
  }
1756
- return this.colors()[0];
1831
+ return fallbackName();
1757
1832
  }
1758
- // Otherwise value is an object
1759
1833
  return value.name;
1760
- }, ...(ngDevMode ? [{ debugName: "selectedColor" }] : []));
1834
+ }, ...(ngDevMode ? [{ debugName: "selectedColor" }] : /* istanbul ignore next */ []));
1761
1835
  }
1762
1836
  async ngOnInit() {
1763
1837
  const allColors = await this.colorService.getColors();
@@ -1776,6 +1850,9 @@ class AXPColorChooserWidgetEditComponent extends AXPValueWidgetComponent {
1776
1850
  this.setValue(stringValue);
1777
1851
  }
1778
1852
  }
1853
+ isHexSwatch(color) {
1854
+ return color.background.startsWith('#');
1855
+ }
1779
1856
  parseStringValue(value) {
1780
1857
  const parts = value.trim().split(/\s+/);
1781
1858
  if (parts.length !== 3) {
@@ -1785,8 +1862,8 @@ class AXPColorChooserWidgetEditComponent extends AXPValueWidgetComponent {
1785
1862
  const match = this.colors().find((c) => c.color === color && c.background === background && c.border === border);
1786
1863
  return match?.name ?? null;
1787
1864
  }
1788
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPColorChooserWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1789
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: AXPColorChooserWidgetEditComponent, isStandalone: true, selector: "ax-color-chooser-widget", usesInheritance: true, ngImport: i0, template: `
1865
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1866
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPColorChooserWidgetEditComponent, isStandalone: true, selector: "ax-color-chooser-widget", usesInheritance: true, ngImport: i0, template: `
1790
1867
  <ax-form [messageStyle]="'float'" [updateOn]="'change'">
1791
1868
  <ax-form-field>
1792
1869
  <ax-select-box
@@ -1801,12 +1878,23 @@ class AXPColorChooserWidgetEditComponent extends AXPValueWidgetComponent {
1801
1878
  >
1802
1879
  <ng-template #customItemTemplate let-item>
1803
1880
  <div class="ax-flex ax-items-center ax-gap-2 ax-p-2">
1804
- <div
1805
- class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-dashed ax-border-black dark:ax-border-white"
1806
- [ngClass]="item.data.background"
1807
- >
1808
- <span [ngClass]="item.data.color">Aa</span>
1809
- </div>
1881
+ @if (isHexSwatch(item.data)) {
1882
+ <div
1883
+ class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-solid"
1884
+ [style.background-color]="item.data.background"
1885
+ [style.border-color]="item.data.border"
1886
+ [style.color]="item.data.color"
1887
+ >
1888
+ <span>Aa</span>
1889
+ </div>
1890
+ } @else {
1891
+ <div
1892
+ class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-dashed ax-border-black dark:ax-border-white"
1893
+ [class]="item.data.background"
1894
+ >
1895
+ <span [class]="item.data.color">Aa</span>
1896
+ </div>
1897
+ }
1810
1898
  <span>{{ item.data.title }}</span>
1811
1899
  </div>
1812
1900
  </ng-template>
@@ -1815,9 +1903,9 @@ class AXPColorChooserWidgetEditComponent extends AXPValueWidgetComponent {
1815
1903
  </ax-select-box>
1816
1904
  </ax-form-field>
1817
1905
  </ax-form>
1818
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1$2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2$2.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i2$2.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i2$2.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i1$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1906
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1$2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2$2.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i2$2.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i2$2.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i1$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1819
1907
  }
1820
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPColorChooserWidgetEditComponent, decorators: [{
1908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserWidgetEditComponent, decorators: [{
1821
1909
  type: Component,
1822
1910
  args: [{
1823
1911
  selector: 'ax-color-chooser-widget',
@@ -1836,12 +1924,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
1836
1924
  >
1837
1925
  <ng-template #customItemTemplate let-item>
1838
1926
  <div class="ax-flex ax-items-center ax-gap-2 ax-p-2">
1839
- <div
1840
- class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-dashed ax-border-black dark:ax-border-white"
1841
- [ngClass]="item.data.background"
1842
- >
1843
- <span [ngClass]="item.data.color">Aa</span>
1844
- </div>
1927
+ @if (isHexSwatch(item.data)) {
1928
+ <div
1929
+ class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-solid"
1930
+ [style.background-color]="item.data.background"
1931
+ [style.border-color]="item.data.border"
1932
+ [style.color]="item.data.color"
1933
+ >
1934
+ <span>Aa</span>
1935
+ </div>
1936
+ } @else {
1937
+ <div
1938
+ class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-dashed ax-border-black dark:ax-border-white"
1939
+ [class]="item.data.background"
1940
+ >
1941
+ <span [class]="item.data.color">Aa</span>
1942
+ </div>
1943
+ }
1845
1944
  <span>{{ item.data.title }}</span>
1846
1945
  </div>
1847
1946
  </ng-template>
@@ -1864,7 +1963,7 @@ var themeColorChooserEdit_component = /*#__PURE__*/Object.freeze({
1864
1963
  const AXPThemeColorChooserWidgetConfig = {
1865
1964
  name: 'theme-color-chooser',
1866
1965
  title: 'Theme Color Chooser',
1867
- icon: 'fa-solid fa-palette',
1966
+ icon: 'fa-light fa-palette',
1868
1967
  type: 'editor',
1869
1968
  categories: AXP_WIDGETS_LAYOUT_CATEGORY,
1870
1969
  properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
@@ -1873,10 +1972,10 @@ const AXPThemeColorChooserWidgetConfig = {
1873
1972
  component: () => Promise.resolve().then(function () { return themeColorChooserEdit_component; }).then((c) => c.AXPColorChooserWidgetEditComponent),
1874
1973
  },
1875
1974
  column: {
1876
- component: () => import('./acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs').then((c) => c.AXPColorChooserWidgetColumnComponent),
1975
+ component: () => import('./acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs').then((c) => c.AXPColorChooserWidgetColumnComponent),
1877
1976
  },
1878
1977
  view: {
1879
- component: () => import('./acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs').then((c) => c.AXPColorChooserWidgetViewComponent),
1978
+ component: () => import('./acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs').then((c) => c.AXPColorChooserWidgetViewComponent),
1880
1979
  },
1881
1980
  },
1882
1981
  };
@@ -1888,20 +1987,20 @@ class AXPThemeModeChooserWidgetComponent extends AXPValueWidgetComponent {
1888
1987
  { id: AXPThemeMode.Light, icon: 'fa-light fa-brightness' },
1889
1988
  { id: AXPThemeMode.Dark, icon: 'fa-light fa-moon' },
1890
1989
  { id: AXPThemeMode.System, icon: 'fa-light fa-desktop' },
1891
- ], ...(ngDevMode ? [{ debugName: "modes" }] : []));
1892
- this.selectedMode = signal(null, ...(ngDevMode ? [{ debugName: "selectedMode" }] : []));
1990
+ ], ...(ngDevMode ? [{ debugName: "modes" }] : /* istanbul ignore next */ []));
1991
+ this.selectedMode = signal(null, ...(ngDevMode ? [{ debugName: "selectedMode" }] : /* istanbul ignore next */ []));
1893
1992
  this.#eff = effect(() => {
1894
1993
  if (this.getValue()) {
1895
1994
  this.selectedMode.set(this.modes().find((m) => m.id === this.getValue()) ?? this.modes()[0]);
1896
1995
  }
1897
- }, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
1996
+ }, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
1898
1997
  }
1899
1998
  #eff;
1900
1999
  onModeClick(mode) {
1901
2000
  this.setValue(mode.id);
1902
2001
  }
1903
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPThemeModeChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1904
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPThemeModeChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2002
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemeModeChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2003
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPThemeModeChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1905
2004
  @for (mode of modes(); track mode.id) {
1906
2005
  <div (click)="onModeClick(mode)" [class.--selected]="mode.id === selectedMode()?.id">
1907
2006
  <div>
@@ -1912,7 +2011,7 @@ class AXPThemeModeChooserWidgetComponent extends AXPValueWidgetComponent {
1912
2011
  }
1913
2012
  `, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{padding-top:.25rem!important;padding-bottom:.25rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1914
2013
  }
1915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPThemeModeChooserWidgetComponent, decorators: [{
2014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemeModeChooserWidgetComponent, decorators: [{
1916
2015
  type: Component,
1917
2016
  args: [{ template: `
1918
2017
  @for (mode of modes(); track mode.id) {
@@ -1934,7 +2033,7 @@ var themeModeChooserWidget_component = /*#__PURE__*/Object.freeze({
1934
2033
  const AXPThemeModeChooserWidget = {
1935
2034
  name: "theme-mode-chooser",
1936
2035
  title: "Theme Mode Chooser",
1937
- icon: "fa-solid fa-square",
2036
+ icon: "fa-light fa-square",
1938
2037
  type: 'editor',
1939
2038
  categories: AXP_WIDGETS_LAYOUT_CATEGORY,
1940
2039
  properties: [
@@ -1953,15 +2052,15 @@ class AXPThemePaletteChooserWidgetComponent extends AXPValueWidgetComponent {
1953
2052
  constructor() {
1954
2053
  super(...arguments);
1955
2054
  this.paletteService = inject(AXP_THEME_PALETTE_PROVIDER);
1956
- this.palettes = signal([], ...(ngDevMode ? [{ debugName: "palettes" }] : []));
1957
- this.selectedPalette = signal(null, ...(ngDevMode ? [{ debugName: "selectedPalette" }] : []));
2055
+ this.palettes = signal([], ...(ngDevMode ? [{ debugName: "palettes" }] : /* istanbul ignore next */ []));
2056
+ this.selectedPalette = signal(null, ...(ngDevMode ? [{ debugName: "selectedPalette" }] : /* istanbul ignore next */ []));
1958
2057
  this.#eff = effect(() => {
1959
2058
  if (this.getValue()) {
1960
2059
  this.selectedPalette.set(this.palettes().find((p) => p.name === this.getValue()) ??
1961
2060
  this.palettes().find((p) => p.name === 'default') ??
1962
2061
  this.palettes()[0]);
1963
2062
  }
1964
- }, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
2063
+ }, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
1965
2064
  }
1966
2065
  #eff;
1967
2066
  async ngOnInit() {
@@ -1972,8 +2071,8 @@ class AXPThemePaletteChooserWidgetComponent extends AXPValueWidgetComponent {
1972
2071
  onPaletteClick(palette) {
1973
2072
  this.setValue(palette.name);
1974
2073
  }
1975
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPThemePaletteChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1976
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPThemePaletteChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2074
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemePaletteChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2075
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPThemePaletteChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1977
2076
  @for (palette of palettes(); track palette.name) {
1978
2077
  <div (click)="onPaletteClick(palette)" [class.--selected]="palette.name === selectedPalette()?.name">
1979
2078
  <span>{{ palette.title }}</span>
@@ -1986,7 +2085,7 @@ class AXPThemePaletteChooserWidgetComponent extends AXPValueWidgetComponent {
1986
2085
  }
1987
2086
  `, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{height:3rem;min-width:100%}@media(min-width:768px){:host>div{min-width:16rem}}:host>div>div{position:relative;height:100%;width:fit-content}:host>div>div div{position:absolute;height:2rem;width:2rem;border-radius:9999px;border-width:1px;border-color:#ffffff80;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1988
2087
  }
1989
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPThemePaletteChooserWidgetComponent, decorators: [{
2088
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemePaletteChooserWidgetComponent, decorators: [{
1990
2089
  type: Component,
1991
2090
  args: [{ template: `
1992
2091
  @for (palette of palettes(); track palette.name) {
@@ -2010,7 +2109,7 @@ var themePaletteChooserWidget_component = /*#__PURE__*/Object.freeze({
2010
2109
  const AXPThemePaletteChooserWidget = {
2011
2110
  name: "theme-palette-chooser",
2012
2111
  title: "Theme Palette Chooser",
2013
- icon: "fa-solid fa-square",
2112
+ icon: "fa-light fa-square",
2014
2113
  type: 'editor',
2015
2114
  categories: AXP_WIDGETS_LAYOUT_CATEGORY,
2016
2115
  properties: [
@@ -2025,6 +2124,28 @@ const AXPThemePaletteChooserWidget = {
2025
2124
  }
2026
2125
  };
2027
2126
 
2127
+ //#endregion
2128
+ //#region ---- Theme Widgets Provider ----
2129
+ const WIDGETS = [
2130
+ AXPThemePaletteChooserWidget,
2131
+ AXPThemeModeChooserWidget,
2132
+ AXPMenuOrientationChooserWidget,
2133
+ AXPFontSizeChooserWidget,
2134
+ AXPFontStyleChooserWidget,
2135
+ AXPIconChooserWidget,
2136
+ AXPThemeColorChooserWidgetConfig,
2137
+ ];
2138
+ class AXPThemesSharedWidgetsProvider {
2139
+ getWidgets() {
2140
+ return WIDGETS;
2141
+ }
2142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedWidgetsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2143
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedWidgetsProvider }); }
2144
+ }
2145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedWidgetsProvider, decorators: [{
2146
+ type: Injectable
2147
+ }] });
2148
+
2028
2149
  class AXPThemesSharedModule {
2029
2150
  constructor(appInitService, injector) {
2030
2151
  const service = injector.get(AXPLayoutThemeService);
@@ -2037,14 +2158,15 @@ class AXPThemesSharedModule {
2037
2158
  },
2038
2159
  });
2039
2160
  }
2040
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPThemesSharedModule, deps: [{ token: i1$3.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }
2041
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: AXPThemesSharedModule, imports: [i1$3.AXPComponentSlotModule, i2$3.AXPWidgetCoreModule] }); }
2042
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPThemesSharedModule, providers: [
2161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedModule, deps: [{ token: i1$3.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }
2162
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedModule, imports: [i1$3.AXPComponentSlotModule, AXPWidgetCoreModule] }); }
2163
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedModule, providers: [
2164
+ { provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPThemesSharedWidgetsProvider, multi: true },
2043
2165
  {
2044
2166
  provide: AXP_SETTING_DEFINITION_PROVIDER,
2045
2167
  useFactory: async () => {
2046
2168
  const injector = inject(Injector);
2047
- const provider = (await import('./acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs')).AXPThemeSettingProvider;
2169
+ const provider = (await import('./acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs')).AXPThemeSettingProvider;
2048
2170
  return new provider(injector);
2049
2171
  },
2050
2172
  multi: true,
@@ -2059,19 +2181,9 @@ class AXPThemesSharedModule {
2059
2181
  },
2060
2182
  ],
2061
2183
  }),
2062
- AXPWidgetCoreModule.forChild({
2063
- widgets: [
2064
- AXPThemePaletteChooserWidget,
2065
- AXPThemeModeChooserWidget,
2066
- AXPMenuOrientationChooserWidget,
2067
- AXPFontSizeChooserWidget,
2068
- AXPFontStyleChooserWidget,
2069
- AXPIconChooserWidget,
2070
- AXPThemeColorChooserWidgetConfig,
2071
- ],
2072
- })] }); }
2184
+ AXPWidgetCoreModule] }); }
2073
2185
  }
2074
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPThemesSharedModule, decorators: [{
2186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedModule, decorators: [{
2075
2187
  type: NgModule,
2076
2188
  args: [{
2077
2189
  imports: [
@@ -2084,26 +2196,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
2084
2196
  },
2085
2197
  ],
2086
2198
  }),
2087
- AXPWidgetCoreModule.forChild({
2088
- widgets: [
2089
- AXPThemePaletteChooserWidget,
2090
- AXPThemeModeChooserWidget,
2091
- AXPMenuOrientationChooserWidget,
2092
- AXPFontSizeChooserWidget,
2093
- AXPFontStyleChooserWidget,
2094
- AXPIconChooserWidget,
2095
- AXPThemeColorChooserWidgetConfig,
2096
- ],
2097
- }),
2199
+ AXPWidgetCoreModule,
2098
2200
  ],
2099
2201
  exports: [],
2100
2202
  declarations: [],
2101
2203
  providers: [
2204
+ { provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPThemesSharedWidgetsProvider, multi: true },
2102
2205
  {
2103
2206
  provide: AXP_SETTING_DEFINITION_PROVIDER,
2104
2207
  useFactory: async () => {
2105
2208
  const injector = inject(Injector);
2106
- const provider = (await import('./acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs')).AXPThemeSettingProvider;
2209
+ const provider = (await import('./acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs')).AXPThemeSettingProvider;
2107
2210
  return new provider(injector);
2108
2211
  },
2109
2212
  multi: true,