codexly-ui 0.16.1 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16120,8 +16120,8 @@ class ClxStatCardComponent {
16120
16120
  <div class="w-full flex items-center gap-2">
16121
16121
  <!-- Icon + value -->
16122
16122
  <div class="flex items-center gap-2 min-w-0 flex-1">
16123
- <div class="shrink-0 w-9 h-9 rounded-full flex items-center justify-center" [class]="_iconBgSubtle()">
16124
- <span clx-icon [name]="metric().icon" size="sm" [class]="_iconTextBase()"></span>
16123
+ <div class="shrink-0 w-9 h-9 rounded-full flex items-center justify-center" [class]="_iconBg()">
16124
+ <span clx-icon [name]="metric().icon" size="sm" class="text-white"></span>
16125
16125
  </div>
16126
16126
  <span class="text-lg font-semibold text-clx-text leading-tight">{{ _formattedValue() }}</span>
16127
16127
  </div>
@@ -16285,8 +16285,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
16285
16285
  <div class="w-full flex items-center gap-2">
16286
16286
  <!-- Icon + value -->
16287
16287
  <div class="flex items-center gap-2 min-w-0 flex-1">
16288
- <div class="shrink-0 w-9 h-9 rounded-full flex items-center justify-center" [class]="_iconBgSubtle()">
16289
- <span clx-icon [name]="metric().icon" size="sm" [class]="_iconTextBase()"></span>
16288
+ <div class="shrink-0 w-9 h-9 rounded-full flex items-center justify-center" [class]="_iconBg()">
16289
+ <span clx-icon [name]="metric().icon" size="sm" class="text-white"></span>
16290
16290
  </div>
16291
16291
  <span class="text-lg font-semibold text-clx-text leading-tight">{{ _formattedValue() }}</span>
16292
16292
  </div>
@@ -16767,9 +16767,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
16767
16767
  }]
16768
16768
  }], propDecorators: { imageSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "imageSrc", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], category: [{ type: i0.Input, args: [{ isSignal: true, alias: "category", required: false }] }], price: [{ type: i0.Input, args: [{ isSignal: true, alias: "price", required: false }] }], soldQty: [{ type: i0.Input, args: [{ isSignal: true, alias: "soldQty", required: false }] }] } });
16769
16769
 
16770
- /** A ranking: color dot + label on the left, optional trend badge + value on the right — e.g. "Top
16771
- * selling categories" or "Sales by channel" on a dashboard. Composes ClxListComponent/
16772
- * ClxListItemComponent (their clxLead/clxTrail slots) rather than reinventing list chrome. */
16770
+ /** A ranking: color dot (or a saturated icon circle) + label on the left, optional trend badge +
16771
+ * value on the right — e.g. "Top selling categories" or "Sales by channel" on a dashboard.
16772
+ * Composes ClxListComponent/ClxListItemComponent (their clxLead/clxTrail slots) rather than
16773
+ * reinventing list chrome. */
16773
16774
  class ClxRankedListComponent {
16774
16775
  items = input.required(...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
16775
16776
  color = input(undefined, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
@@ -16786,8 +16787,14 @@ class ClxRankedListComponent {
16786
16787
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxRankedListComponent, isStandalone: true, selector: "clx-ranked-list", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
16787
16788
  <clx-list [color]="color()">
16788
16789
  @for (item of items(); track item.label) {
16789
- <clx-list-item [label]="item.label">
16790
- <span clxLead class="w-2 h-2 rounded-full shrink-0" [class]="dotClass(item.colorDot)"></span>
16790
+ <clx-list-item [label]="item.label" [sublabel]="item.sublabel ?? ''">
16791
+ @if (item.icon) {
16792
+ <div clxLead class="w-9 h-9 rounded-full flex items-center justify-center shrink-0" [class]="dotClass(item.colorDot)">
16793
+ <span clx-icon [name]="item.icon" size="sm" class="text-white"></span>
16794
+ </div>
16795
+ } @else {
16796
+ <span clxLead class="w-2 h-2 rounded-full shrink-0" [class]="dotClass(item.colorDot)"></span>
16797
+ }
16791
16798
  <div clxTrail class="flex items-center gap-2">
16792
16799
  @if (item.trend) {
16793
16800
  <span clx-badge size="xs" variant="light" shape="pill" [color]="trendColor(item.trendDirection)">
@@ -16812,8 +16819,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
16812
16819
  template: `
16813
16820
  <clx-list [color]="color()">
16814
16821
  @for (item of items(); track item.label) {
16815
- <clx-list-item [label]="item.label">
16816
- <span clxLead class="w-2 h-2 rounded-full shrink-0" [class]="dotClass(item.colorDot)"></span>
16822
+ <clx-list-item [label]="item.label" [sublabel]="item.sublabel ?? ''">
16823
+ @if (item.icon) {
16824
+ <div clxLead class="w-9 h-9 rounded-full flex items-center justify-center shrink-0" [class]="dotClass(item.colorDot)">
16825
+ <span clx-icon [name]="item.icon" size="sm" class="text-white"></span>
16826
+ </div>
16827
+ } @else {
16828
+ <span clxLead class="w-2 h-2 rounded-full shrink-0" [class]="dotClass(item.colorDot)"></span>
16829
+ }
16817
16830
  <div clxTrail class="flex items-center gap-2">
16818
16831
  @if (item.trend) {
16819
16832
  <span clx-badge size="xs" variant="light" shape="pill" [color]="trendColor(item.trendDirection)">
@@ -16830,6 +16843,87 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
16830
16843
  }]
16831
16844
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
16832
16845
 
16846
+ const SEVERITY_COLOR = {
16847
+ critical: 'red',
16848
+ warning: 'amber',
16849
+ info: 'sky',
16850
+ };
16851
+ const SEVERITY_ICON = {
16852
+ critical: 'error',
16853
+ warning: 'warning',
16854
+ info: 'info',
16855
+ };
16856
+ const SEVERITY_LABEL = {
16857
+ critical: 'Crítico',
16858
+ warning: 'Bajo',
16859
+ info: 'Info',
16860
+ };
16861
+ /** A list of alert rows: severity icon chip + title + short description on the left, severity
16862
+ * badge on the right — e.g. "Stock bajo" on the Inventory dashboard. Distinct from
16863
+ * ClxRankedListComponent (which pairs a value with an optional trend, for rankings) — this widget
16864
+ * has no numeric value, just a problem description and how bad it is. */
16865
+ class ClxAlertListComponent {
16866
+ items = input.required(...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
16867
+ chipClass(severity) {
16868
+ return resolveColor(SEVERITY_COLOR[severity]).bgSubtle;
16869
+ }
16870
+ iconClass(severity) {
16871
+ return resolveColor(SEVERITY_COLOR[severity]).textSubtle;
16872
+ }
16873
+ badgeColor(severity) {
16874
+ return SEVERITY_COLOR[severity];
16875
+ }
16876
+ icon(severity) {
16877
+ return SEVERITY_ICON[severity];
16878
+ }
16879
+ label(severity) {
16880
+ return SEVERITY_LABEL[severity];
16881
+ }
16882
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxAlertListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16883
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxAlertListComponent, isStandalone: true, selector: "clx-alert-list", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "flex flex-col" }, ngImport: i0, template: `
16884
+ @for (item of items(); track item.title; let last = $last) {
16885
+ <div class="flex items-center gap-3 py-2.5" [class.border-b]="!last" [class.border-clx-border-soft]="!last">
16886
+ <div class="w-9 h-9 rounded-full flex items-center justify-center shrink-0" [class]="chipClass(item.severity)">
16887
+ <span clx-icon [name]="icon(item.severity)" size="sm" [class]="iconClass(item.severity)"></span>
16888
+ </div>
16889
+ <div class="min-w-0 flex-1">
16890
+ <p class="text-sm text-clx-text-label truncate">{{ item.title }}</p>
16891
+ <p class="text-xs text-clx-text-muted truncate">{{ item.description }}</p>
16892
+ </div>
16893
+ <span clx-badge size="xs" variant="light" shape="pill" [color]="badgeColor(item.severity)" class="shrink-0">
16894
+ {{ label(item.severity) }}
16895
+ </span>
16896
+ </div>
16897
+ }
16898
+ `, isInline: true, dependencies: [{ kind: "component", type: ClxBadgeComponent, selector: "span[clx-badge]", inputs: ["variant", "color", "size", "shape", "positioned"] }, { kind: "component", type: ClxIconComponent, selector: "span[clx-icon]", inputs: ["name", "size", "color", "fill"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16899
+ }
16900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxAlertListComponent, decorators: [{
16901
+ type: Component,
16902
+ args: [{
16903
+ selector: 'clx-alert-list',
16904
+ standalone: true,
16905
+ imports: [ClxBadgeComponent, ClxIconComponent],
16906
+ changeDetection: ChangeDetectionStrategy.OnPush,
16907
+ host: { class: 'flex flex-col' },
16908
+ template: `
16909
+ @for (item of items(); track item.title; let last = $last) {
16910
+ <div class="flex items-center gap-3 py-2.5" [class.border-b]="!last" [class.border-clx-border-soft]="!last">
16911
+ <div class="w-9 h-9 rounded-full flex items-center justify-center shrink-0" [class]="chipClass(item.severity)">
16912
+ <span clx-icon [name]="icon(item.severity)" size="sm" [class]="iconClass(item.severity)"></span>
16913
+ </div>
16914
+ <div class="min-w-0 flex-1">
16915
+ <p class="text-sm text-clx-text-label truncate">{{ item.title }}</p>
16916
+ <p class="text-xs text-clx-text-muted truncate">{{ item.description }}</p>
16917
+ </div>
16918
+ <span clx-badge size="xs" variant="light" shape="pill" [color]="badgeColor(item.severity)" class="shrink-0">
16919
+ {{ label(item.severity) }}
16920
+ </span>
16921
+ </div>
16922
+ }
16923
+ `,
16924
+ }]
16925
+ }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }] } });
16926
+
16833
16927
  const PRODUCT_TAG_LABEL = {
16834
16928
  'new': 'Nuevo',
16835
16929
  'sale': 'Oferta',
@@ -19433,5 +19527,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
19433
19527
  * Generated bundle index. Do not edit.
19434
19528
  */
19435
19529
 
19436
- export { CLX_ADDON_BORDER, CLX_ADDON_TEXT, CLX_ALERT_OPTIONS, CLX_ALERT_RESOLVE, CLX_BG_ADDON, CLX_BG_DISABLED, CLX_BG_ICON_WRAP, CLX_BG_SECTION, CLX_BG_SURFACE, CLX_BORDER_DEFAULT, CLX_BORDER_DISABLED, CLX_BORDER_MEDIUM, CLX_COLOR_HEX, CLX_COLOR_HEX_100, CLX_COLOR_MAP, CLX_FONT_CATALOG, CLX_MODAL_ANIM_CONFIG, CLX_MODAL_DATA, CLX_MODAL_REF, CLX_OPTION_DISABLED, CLX_PLACEHOLDER, CLX_RADIO_GROUP, CLX_RADIUS_MAP, CLX_TEXT_BODY, CLX_TEXT_DISABLED, CLX_TEXT_HEADING, CLX_TEXT_HINT, CLX_TEXT_IDLE, CLX_TEXT_INPUT, CLX_TEXT_LABEL, CLX_TEXT_OPTION, CLX_TEXT_SUBTITLE, CLX_TEXT_TITLE, CLX_THEME_CONFIG, CLX_THEME_DEFAULTS, CLX_TOAST_DEFAULTS, ClxAlertComponent, ClxAlertService, ClxAnimateDirective, ClxAnimateGroupDirective, ClxAnimateService, ClxAppLayoutComponent, ClxAvatarComponent, ClxBadgeComponent, ClxBrandComponent, ClxButtonComponent, ClxButtonGroupComponent, ClxCardBodyDirective, ClxCardComponent, ClxCardExpiryInputComponent, ClxCardFooterDirective, ClxCardHeaderActionsDirective, ClxCardHeaderDirective, ClxCardNumberInputComponent, ClxCardValidators, ClxCarouselComponent, ClxCarouselDirective, ClxCartComponent, ClxCartSummaryDrawer, ClxCellDirective, ClxCheckboxComponent, ClxCollapseComponent, ClxColorPickerComponent, ClxColumnDefDirective, ClxDateRangePickerComponent, ClxDatepickerComponent, ClxDrawerComponent, ClxDrawerService, ClxEditorComponent, ClxEditorImageModalComponent, ClxEditorLinkModalComponent, ClxFabComponent, ClxFilterPanelComponent, ClxHeaderCellDirective, ClxIconComponent, ClxInputComponent, ClxListComponent, ClxListItemComponent, ClxMenuComponent, ClxMenuItemComponent, ClxMenuItemTrailingDirective, ClxModalComponent, ClxModalService, ClxNativeOverlayService, ClxNavGroupComponent, ClxNotificationComponent, ClxNumberComponent, ClxOtpComponent, ClxPageEmptyComponent, ClxPageHeaderComponent, ClxPageHeaderTitleDirective, ClxPageNotFoundComponent, ClxPageServerErrorComponent, ClxPageUnauthorizedComponent, ClxPaginationComponent, ClxProductComponent, ClxProductDetailComponent, ClxProductQuickViewComponent, ClxProfileComponent, ClxProgressBarComponent, ClxRadioComponent, ClxRadioGroupComponent, ClxRankedListComponent, ClxRatingComponent, ClxSearchComponent, ClxSelectComponent, ClxSkeletonComponent, ClxSliderComponent, ClxSocialIconComponent, ClxSpinnerComponent, ClxStatCardComponent, ClxStepComponent, ClxStepperComponent, ClxSwitchComponent, ClxTabDirective, ClxTableActionsComponent, ClxTableComponent, ClxTableProductCellComponent, ClxTableProgressCellComponent, ClxTableStatusCellComponent, ClxTabsComponent, ClxTagComponent, ClxTextareaComponent, ClxThemeService, ClxTimelineComponent, ClxTimelineItemComponent, ClxTimepickerComponent, ClxToastComponent, ClxToastContainerComponent, ClxToastService, ClxTooltipComponent, ClxTooltipDirective, ClxTreeComponent, ClxUploadComponent, ClxWidgetCardComponent, ClxWishlistComponent, ClxWizardComponent, TIMEPICKER_SIZE_MAP, detectClxCardBrand, isClxCardExpired, parseColorInput, provideCodexlyTheme, resolveColor, resolveContainerRadius, resolveRadius };
19530
+ export { CLX_ADDON_BORDER, CLX_ADDON_TEXT, CLX_ALERT_OPTIONS, CLX_ALERT_RESOLVE, CLX_BG_ADDON, CLX_BG_DISABLED, CLX_BG_ICON_WRAP, CLX_BG_SECTION, CLX_BG_SURFACE, CLX_BORDER_DEFAULT, CLX_BORDER_DISABLED, CLX_BORDER_MEDIUM, CLX_COLOR_HEX, CLX_COLOR_HEX_100, CLX_COLOR_MAP, CLX_FONT_CATALOG, CLX_MODAL_ANIM_CONFIG, CLX_MODAL_DATA, CLX_MODAL_REF, CLX_OPTION_DISABLED, CLX_PLACEHOLDER, CLX_RADIO_GROUP, CLX_RADIUS_MAP, CLX_TEXT_BODY, CLX_TEXT_DISABLED, CLX_TEXT_HEADING, CLX_TEXT_HINT, CLX_TEXT_IDLE, CLX_TEXT_INPUT, CLX_TEXT_LABEL, CLX_TEXT_OPTION, CLX_TEXT_SUBTITLE, CLX_TEXT_TITLE, CLX_THEME_CONFIG, CLX_THEME_DEFAULTS, CLX_TOAST_DEFAULTS, ClxAlertComponent, ClxAlertListComponent, ClxAlertService, ClxAnimateDirective, ClxAnimateGroupDirective, ClxAnimateService, ClxAppLayoutComponent, ClxAvatarComponent, ClxBadgeComponent, ClxBrandComponent, ClxButtonComponent, ClxButtonGroupComponent, ClxCardBodyDirective, ClxCardComponent, ClxCardExpiryInputComponent, ClxCardFooterDirective, ClxCardHeaderActionsDirective, ClxCardHeaderDirective, ClxCardNumberInputComponent, ClxCardValidators, ClxCarouselComponent, ClxCarouselDirective, ClxCartComponent, ClxCartSummaryDrawer, ClxCellDirective, ClxCheckboxComponent, ClxCollapseComponent, ClxColorPickerComponent, ClxColumnDefDirective, ClxDateRangePickerComponent, ClxDatepickerComponent, ClxDrawerComponent, ClxDrawerService, ClxEditorComponent, ClxEditorImageModalComponent, ClxEditorLinkModalComponent, ClxFabComponent, ClxFilterPanelComponent, ClxHeaderCellDirective, ClxIconComponent, ClxInputComponent, ClxListComponent, ClxListItemComponent, ClxMenuComponent, ClxMenuItemComponent, ClxMenuItemTrailingDirective, ClxModalComponent, ClxModalService, ClxNativeOverlayService, ClxNavGroupComponent, ClxNotificationComponent, ClxNumberComponent, ClxOtpComponent, ClxPageEmptyComponent, ClxPageHeaderComponent, ClxPageHeaderTitleDirective, ClxPageNotFoundComponent, ClxPageServerErrorComponent, ClxPageUnauthorizedComponent, ClxPaginationComponent, ClxProductComponent, ClxProductDetailComponent, ClxProductQuickViewComponent, ClxProfileComponent, ClxProgressBarComponent, ClxRadioComponent, ClxRadioGroupComponent, ClxRankedListComponent, ClxRatingComponent, ClxSearchComponent, ClxSelectComponent, ClxSkeletonComponent, ClxSliderComponent, ClxSocialIconComponent, ClxSpinnerComponent, ClxStatCardComponent, ClxStepComponent, ClxStepperComponent, ClxSwitchComponent, ClxTabDirective, ClxTableActionsComponent, ClxTableComponent, ClxTableProductCellComponent, ClxTableProgressCellComponent, ClxTableStatusCellComponent, ClxTabsComponent, ClxTagComponent, ClxTextareaComponent, ClxThemeService, ClxTimelineComponent, ClxTimelineItemComponent, ClxTimepickerComponent, ClxToastComponent, ClxToastContainerComponent, ClxToastService, ClxTooltipComponent, ClxTooltipDirective, ClxTreeComponent, ClxUploadComponent, ClxWidgetCardComponent, ClxWishlistComponent, ClxWizardComponent, TIMEPICKER_SIZE_MAP, detectClxCardBrand, isClxCardExpired, parseColorInput, provideCodexlyTheme, resolveColor, resolveContainerRadius, resolveRadius };
19437
19531
  //# sourceMappingURL=codexly-ui.mjs.map