codexly-ui 0.6.14 → 0.6.16

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.
@@ -7797,6 +7797,9 @@ class ClxModalComponent {
7797
7797
  type="button"
7798
7798
  [color]="_cancelColor()"
7799
7799
  [variant]="_cancelVariant()"
7800
+ [icon]="cancelButton()?.icon"
7801
+ [loading]="cancelButton()?.loading ?? false"
7802
+ [disabled]="cancelButton()?.disabled ?? false"
7800
7803
  size="md"
7801
7804
  (click)="cancelClick.emit()">
7802
7805
  {{ _cancelText() }}
@@ -7807,6 +7810,9 @@ class ClxModalComponent {
7807
7810
  type="button"
7808
7811
  [color]="_confirmColor()"
7809
7812
  [variant]="_confirmVariant()"
7813
+ [icon]="confirmButton()?.icon"
7814
+ [loading]="confirmButton()?.loading ?? false"
7815
+ [disabled]="confirmButton()?.disabled ?? false"
7810
7816
  size="md"
7811
7817
  (click)="confirmClick.emit()">
7812
7818
  {{ _confirmText() }}
@@ -7859,6 +7865,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
7859
7865
  type="button"
7860
7866
  [color]="_cancelColor()"
7861
7867
  [variant]="_cancelVariant()"
7868
+ [icon]="cancelButton()?.icon"
7869
+ [loading]="cancelButton()?.loading ?? false"
7870
+ [disabled]="cancelButton()?.disabled ?? false"
7862
7871
  size="md"
7863
7872
  (click)="cancelClick.emit()">
7864
7873
  {{ _cancelText() }}
@@ -7869,6 +7878,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
7869
7878
  type="button"
7870
7879
  [color]="_confirmColor()"
7871
7880
  [variant]="_confirmVariant()"
7881
+ [icon]="confirmButton()?.icon"
7882
+ [loading]="confirmButton()?.loading ?? false"
7883
+ [disabled]="confirmButton()?.disabled ?? false"
7872
7884
  size="md"
7873
7885
  (click)="confirmClick.emit()">
7874
7886
  {{ _confirmText() }}
@@ -9986,44 +9998,96 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
9986
9998
  }]
9987
9999
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }], style: [{ type: i0.Input, args: [{ isSignal: true, alias: "style", required: false }] }] } });
9988
10000
 
10001
+ /** Optional replacement for the auto-generated `<h1>` — project this when the title needs
10002
+ * inline content next to it (a status badge, a monospace order number, extra spans) that a
10003
+ * plain `title` string input can't express. The `title`/`subtitle` inputs are ignored when
10004
+ * this is present; ClxPageHeaderComponent's own text-2xl/font-weight/truncate styling is
10005
+ * NOT applied automatically to projected content — style the projected `<h1>` yourself. */
10006
+ class ClxPageHeaderTitleDirective {
10007
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxPageHeaderTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10008
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.15", type: ClxPageHeaderTitleDirective, isStandalone: true, selector: "[clxPageHeaderTitle]", ngImport: i0 });
10009
+ }
10010
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxPageHeaderTitleDirective, decorators: [{
10011
+ type: Directive,
10012
+ args: [{ selector: '[clxPageHeaderTitle]', standalone: true }]
10013
+ }] });
10014
+
9989
10015
  /**
9990
- * Standard page title block: title + optional subtitle on the left, a free-content
9991
- * slot (button, select, badge...) on the right. Replaces the hand-rolled
9992
- * `<h1 class="text-2xl font-semibold">` + `<p>` pattern repeated across every page.
10016
+ * Standard page title block: an optional back button, title + optional subtitle on the
10017
+ * left, a free-content slot (button, select, badge...) on the right. Replaces the
10018
+ * hand-rolled `<h1 class="text-2xl font-semibold">` + `<p>` pattern repeated across every page.
10019
+ *
10020
+ * For detail pages whose title needs inline content (a status badge, a monospace order
10021
+ * number) that a plain `title` string can't express, project a `[clxPageHeaderTitle]`
10022
+ * block instead of using the `title`/`subtitle` inputs.
9993
10023
  */
9994
10024
  class ClxPageHeaderComponent {
9995
- title = input.required(...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
10025
+ _themeSvc = inject(ClxThemeService);
10026
+ title = input('', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
9996
10027
  subtitle = input(undefined, ...(ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []));
10028
+ /** Set to show the back button — `[showBack]="true" (back)="goBack()"`. */
10029
+ showBack = input(false, ...(ngDevMode ? [{ debugName: "showBack" }] : /* istanbul ignore next */ []));
10030
+ back = output();
10031
+ _titleSlot = contentChild(ClxPageHeaderTitleDirective, ...(ngDevMode ? [{ debugName: "_titleSlot" }] : /* istanbul ignore next */ []));
10032
+ _hasCustomTitle = computed(() => !!this._titleSlot(), ...(ngDevMode ? [{ debugName: "_hasCustomTitle" }] : /* istanbul ignore next */ []));
10033
+ _color = computed(() => this._themeSvc.config().primaryColor, ...(ngDevMode ? [{ debugName: "_color" }] : /* istanbul ignore next */ []));
9997
10034
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9998
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxPageHeaderComponent, isStandalone: true, selector: "clx-page-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "flex items-center justify-between flex-wrap gap-3" }, ngImport: i0, template: `
9999
- <div class="min-w-0">
10000
- <h1 class="text-2xl font-(--clx-font-weight-emphasis) text-clx-text-label truncate">{{ title() }}</h1>
10001
- @if (subtitle()) {
10002
- <p class="text-sm text-clx-text-muted mt-0.5">{{ subtitle() }}</p>
10035
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxPageHeaderComponent, isStandalone: true, selector: "clx-page-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, showBack: { classPropertyName: "showBack", publicName: "showBack", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back" }, host: { classAttribute: "flex items-center gap-3 flex-wrap" }, queries: [{ propertyName: "_titleSlot", first: true, predicate: ClxPageHeaderTitleDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
10036
+ @if (showBack()) {
10037
+ <button clx-button variant="ghost" [color]="_color()" icon="arrow_back" [iconOnly]="true"
10038
+ (click)="back.emit()"></button>
10039
+ }
10040
+
10041
+ <div class="flex-1 min-w-0 flex items-center justify-between flex-wrap gap-3">
10042
+ @if (_hasCustomTitle()) {
10043
+ <div class="min-w-0">
10044
+ <ng-content select="[clxPageHeaderTitle]" />
10045
+ </div>
10046
+ } @else {
10047
+ <div class="min-w-0">
10048
+ <h1 class="text-2xl font-(--clx-font-weight-emphasis) text-clx-text-label truncate">{{ title() }}</h1>
10049
+ @if (subtitle()) {
10050
+ <p class="text-sm text-clx-text-muted mt-0.5">{{ subtitle() }}</p>
10051
+ }
10052
+ </div>
10003
10053
  }
10054
+ <ng-content />
10004
10055
  </div>
10005
- <ng-content />
10006
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
10056
+ `, isInline: true, dependencies: [{ kind: "component", type: ClxButtonComponent, selector: "button[clx-button], a[clx-button]", inputs: ["variant", "color", "size", "shape", "loading", "disabled", "block", "icon", "iconPosition", "iconOnly", "badge", "badgeColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
10007
10057
  }
10008
10058
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxPageHeaderComponent, decorators: [{
10009
10059
  type: Component,
10010
10060
  args: [{
10011
10061
  selector: 'clx-page-header',
10012
10062
  standalone: true,
10063
+ imports: [ClxButtonComponent],
10013
10064
  encapsulation: ViewEncapsulation.None,
10014
10065
  changeDetection: ChangeDetectionStrategy.OnPush,
10015
- host: { class: 'flex items-center justify-between flex-wrap gap-3' },
10066
+ host: { class: 'flex items-center gap-3 flex-wrap' },
10016
10067
  template: `
10017
- <div class="min-w-0">
10018
- <h1 class="text-2xl font-(--clx-font-weight-emphasis) text-clx-text-label truncate">{{ title() }}</h1>
10019
- @if (subtitle()) {
10020
- <p class="text-sm text-clx-text-muted mt-0.5">{{ subtitle() }}</p>
10068
+ @if (showBack()) {
10069
+ <button clx-button variant="ghost" [color]="_color()" icon="arrow_back" [iconOnly]="true"
10070
+ (click)="back.emit()"></button>
10071
+ }
10072
+
10073
+ <div class="flex-1 min-w-0 flex items-center justify-between flex-wrap gap-3">
10074
+ @if (_hasCustomTitle()) {
10075
+ <div class="min-w-0">
10076
+ <ng-content select="[clxPageHeaderTitle]" />
10077
+ </div>
10078
+ } @else {
10079
+ <div class="min-w-0">
10080
+ <h1 class="text-2xl font-(--clx-font-weight-emphasis) text-clx-text-label truncate">{{ title() }}</h1>
10081
+ @if (subtitle()) {
10082
+ <p class="text-sm text-clx-text-muted mt-0.5">{{ subtitle() }}</p>
10083
+ }
10084
+ </div>
10021
10085
  }
10086
+ <ng-content />
10022
10087
  </div>
10023
- <ng-content />
10024
10088
  `,
10025
10089
  }]
10026
- }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }] } });
10090
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], showBack: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBack", required: false }] }], back: [{ type: i0.Output, args: ["back"] }], _titleSlot: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ClxPageHeaderTitleDirective), { isSignal: true }] }] } });
10027
10091
 
10028
10092
  class ClxProfileComponent {
10029
10093
  // ── Inputs ──────────────────────────────────────────────────────────────────
@@ -15755,5 +15819,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
15755
15819
  * Generated bundle index. Do not edit.
15756
15820
  */
15757
15821
 
15758
- 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_FONT_WEIGHT_MAP, 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, ClxCardFooterDirective, ClxCardHeaderActionsDirective, ClxCardHeaderDirective, ClxCarouselComponent, ClxCarouselDirective, ClxCartComponent, ClxCartSummaryDrawer, ClxCellDirective, ClxCheckboxComponent, ClxColorPickerComponent, ClxColumnDefDirective, ClxDateRangePickerComponent, ClxDatepickerComponent, ClxDrawerComponent, ClxDrawerService, ClxEditorComponent, ClxEditorLinkModalComponent, ClxFabComponent, ClxFilterPanelComponent, ClxHeaderCellDirective, ClxIconComponent, ClxInputComponent, ClxListComponent, ClxListItemComponent, ClxMenuComponent, ClxMenuItemComponent, ClxModalComponent, ClxModalService, ClxNavGroupComponent, ClxNumberComponent, ClxPageEmptyComponent, ClxPageHeaderComponent, ClxPageNotFoundComponent, ClxPageServerErrorComponent, ClxPageUnauthorizedComponent, ClxPaginationComponent, ClxProductComponent, ClxProductDetailComponent, ClxProfileComponent, ClxProgressBarComponent, ClxRadioComponent, ClxRadioGroupComponent, ClxRatingComponent, ClxSelectComponent, ClxSkeletonComponent, ClxSliderComponent, ClxSpinnerComponent, ClxStatCardComponent, ClxStepComponent, ClxStepperComponent, ClxSwitchComponent, ClxTabDirective, ClxTableComponent, ClxTabsComponent, ClxTagComponent, ClxTextareaComponent, ClxThemeService, ClxTimelineComponent, ClxTimelineItemComponent, ClxTimepickerComponent, ClxToastComponent, ClxToastContainerComponent, ClxToastService, ClxTooltipComponent, ClxTooltipDirective, ClxTreeComponent, ClxUploadComponent, ClxWishlistComponent, ClxWizardComponent, TIMEPICKER_SIZE_MAP, parseColorInput, provideCodexlyTheme, resolveColor, resolveContainerRadius, resolveRadius };
15822
+ 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_FONT_WEIGHT_MAP, 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, ClxCardFooterDirective, ClxCardHeaderActionsDirective, ClxCardHeaderDirective, ClxCarouselComponent, ClxCarouselDirective, ClxCartComponent, ClxCartSummaryDrawer, ClxCellDirective, ClxCheckboxComponent, ClxColorPickerComponent, ClxColumnDefDirective, ClxDateRangePickerComponent, ClxDatepickerComponent, ClxDrawerComponent, ClxDrawerService, ClxEditorComponent, ClxEditorLinkModalComponent, ClxFabComponent, ClxFilterPanelComponent, ClxHeaderCellDirective, ClxIconComponent, ClxInputComponent, ClxListComponent, ClxListItemComponent, ClxMenuComponent, ClxMenuItemComponent, ClxModalComponent, ClxModalService, ClxNavGroupComponent, ClxNumberComponent, ClxPageEmptyComponent, ClxPageHeaderComponent, ClxPageHeaderTitleDirective, ClxPageNotFoundComponent, ClxPageServerErrorComponent, ClxPageUnauthorizedComponent, ClxPaginationComponent, ClxProductComponent, ClxProductDetailComponent, ClxProfileComponent, ClxProgressBarComponent, ClxRadioComponent, ClxRadioGroupComponent, ClxRatingComponent, ClxSelectComponent, ClxSkeletonComponent, ClxSliderComponent, ClxSpinnerComponent, ClxStatCardComponent, ClxStepComponent, ClxStepperComponent, ClxSwitchComponent, ClxTabDirective, ClxTableComponent, ClxTabsComponent, ClxTagComponent, ClxTextareaComponent, ClxThemeService, ClxTimelineComponent, ClxTimelineItemComponent, ClxTimepickerComponent, ClxToastComponent, ClxToastContainerComponent, ClxToastService, ClxTooltipComponent, ClxTooltipDirective, ClxTreeComponent, ClxUploadComponent, ClxWishlistComponent, ClxWizardComponent, TIMEPICKER_SIZE_MAP, parseColorInput, provideCodexlyTheme, resolveColor, resolveContainerRadius, resolveRadius };
15759
15823
  //# sourceMappingURL=codexly-ui.mjs.map