@acorex/platform 21.0.0-next.39 → 21.0.0-next.41

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 (59) hide show
  1. package/fesm2022/acorex-platform-common.mjs +6 -2
  2. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-core.mjs +8 -1
  4. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-domain.mjs +3 -0
  6. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-builder.mjs +137 -34
  8. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-components.mjs +25 -13
  10. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-designer.mjs +261 -58
  12. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-entity.mjs +1583 -632
  14. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-widget-core.mjs +169 -85
  16. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs → acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs} +9 -4
  18. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-widgets.mjs +1053 -409
  20. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-runtime.mjs +120 -9
  22. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  23. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs → acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs} +3 -3
  24. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +1 -0
  25. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs → acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs} +3 -3
  26. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs → acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs} +3 -3
  28. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-themes-default.mjs +10 -10
  30. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  31. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs} +2 -2
  32. package/fesm2022/acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  34. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs} +38 -16
  36. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-themes-shared.mjs +183 -84
  38. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  39. package/fesm2022/acorex-platform-workflow.mjs +52 -11
  40. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  41. package/package.json +1 -1
  42. package/types/acorex-platform-common.d.ts +14 -10
  43. package/types/acorex-platform-core.d.ts +13 -2
  44. package/types/acorex-platform-domain.d.ts +28 -2
  45. package/types/acorex-platform-layout-builder.d.ts +61 -29
  46. package/types/acorex-platform-layout-designer.d.ts +88 -16
  47. package/types/acorex-platform-layout-entity.d.ts +190 -15
  48. package/types/acorex-platform-layout-widget-core.d.ts +81 -71
  49. package/types/acorex-platform-layout-widgets.d.ts +131 -54
  50. package/types/acorex-platform-runtime.d.ts +156 -61
  51. package/types/acorex-platform-workflow.d.ts +37 -2
  52. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +0 -1
  53. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +0 -1
  54. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +0 -1
  55. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +0 -1
  56. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  57. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs +0 -65
  58. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +0 -1
  59. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +0 -1
@@ -25,7 +25,7 @@ import * as i1$1 from '@acorex/components/search-box';
25
25
  import { AXSearchBoxModule } from '@acorex/components/search-box';
26
26
  import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex/platform/layout/widgets';
27
27
  import { AXSelectionCdkModule } from '@acorex/cdk/selection';
28
- import * as i5$1 from '@angular/forms';
28
+ import * as i4$1 from '@angular/forms';
29
29
  import { FormsModule } from '@angular/forms';
30
30
  import * as i2$2 from '@acorex/components/form';
31
31
  import { AXFormModule } from '@acorex/components/form';
@@ -883,7 +883,7 @@ var iconChooserEdit_component = /*#__PURE__*/Object.freeze({
883
883
  const AXPIconChooserWidget = {
884
884
  name: 'icon-chooser',
885
885
  title: 'Icon Chooser',
886
- icon: 'fa-solid fa-icons',
886
+ icon: 'fa-light fa-icons',
887
887
  type: 'editor',
888
888
  categories: AXP_WIDGETS_LAYOUT_CATEGORY,
889
889
  properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
@@ -1653,78 +1653,153 @@ 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
1804
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1730
1805
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserService, providedIn: 'root' }); }
@@ -1744,18 +1819,17 @@ class AXPColorChooserWidgetEditComponent extends AXPValueWidgetComponent {
1744
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
1834
  }, ...(ngDevMode ? [{ debugName: "selectedColor" }] : /* istanbul ignore next */ []));
1761
1835
  }
@@ -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) {
@@ -1786,7 +1863,7 @@ class AXPColorChooserWidgetEditComponent extends AXPValueWidgetComponent {
1786
1863
  return match?.name ?? null;
1787
1864
  }
1788
1865
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1789
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: AXPColorChooserWidgetEditComponent, isStandalone: true, selector: "ax-color-chooser-widget", usesInheritance: true, ngImport: i0, template: `
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,7 +1903,7 @@ 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
1908
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserWidgetEditComponent, decorators: [{
1821
1909
  type: Component,
@@ -1836,12 +1924,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
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-CHfrTtol.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-BSmvnUVq.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
  };
@@ -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: [
@@ -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: [
@@ -2067,7 +2166,7 @@ class AXPThemesSharedModule {
2067
2166
  provide: AXP_SETTING_DEFINITION_PROVIDER,
2068
2167
  useFactory: async () => {
2069
2168
  const injector = inject(Injector);
2070
- const provider = (await import('./acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs')).AXPThemeSettingProvider;
2169
+ const provider = (await import('./acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs')).AXPThemeSettingProvider;
2071
2170
  return new provider(injector);
2072
2171
  },
2073
2172
  multi: true,
@@ -2107,7 +2206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2107
2206
  provide: AXP_SETTING_DEFINITION_PROVIDER,
2108
2207
  useFactory: async () => {
2109
2208
  const injector = inject(Injector);
2110
- const provider = (await import('./acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs')).AXPThemeSettingProvider;
2209
+ const provider = (await import('./acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs')).AXPThemeSettingProvider;
2111
2210
  return new provider(injector);
2112
2211
  },
2113
2212
  multi: true,