codexly-ui 0.10.9 → 0.10.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.
@@ -4392,8 +4392,7 @@ class ClxCheckboxComponent {
4392
4392
  <input
4393
4393
  type="checkbox"
4394
4394
  class="sr-only"
4395
- aria-hidden="true"
4396
- tabindex="-1"
4395
+ inert
4397
4396
  [checked]="_checked()"
4398
4397
  [disabled]="_disabled()"
4399
4398
  (click)="$event.stopPropagation()"
@@ -4427,8 +4426,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
4427
4426
  <input
4428
4427
  type="checkbox"
4429
4428
  class="sr-only"
4430
- aria-hidden="true"
4431
- tabindex="-1"
4429
+ inert
4432
4430
  [checked]="_checked()"
4433
4431
  [disabled]="_disabled()"
4434
4432
  (click)="$event.stopPropagation()"
@@ -4598,8 +4596,7 @@ class ClxRadioComponent {
4598
4596
  <input
4599
4597
  type="radio"
4600
4598
  class="sr-only"
4601
- aria-hidden="true"
4602
- tabindex="-1"
4599
+ inert
4603
4600
  [checked]="_checked()"
4604
4601
  [disabled]="_isDisabled()"
4605
4602
  (click)="$event.stopPropagation()"
@@ -4622,8 +4619,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
4622
4619
  <input
4623
4620
  type="radio"
4624
4621
  class="sr-only"
4625
- aria-hidden="true"
4626
- tabindex="-1"
4622
+ inert
4627
4623
  [checked]="_checked()"
4628
4624
  [disabled]="_isDisabled()"
4629
4625
  (click)="$event.stopPropagation()"
@@ -4726,7 +4722,7 @@ class ClxSwitchComponent {
4726
4722
  <input
4727
4723
  type="checkbox"
4728
4724
  class="sr-only"
4729
- tabindex="-1"
4725
+ inert
4730
4726
  [checked]="_checked()"
4731
4727
  [disabled]="_disabled()"
4732
4728
  (change)="_handleChange($event)"
@@ -4756,7 +4752,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
4756
4752
  <input
4757
4753
  type="checkbox"
4758
4754
  class="sr-only"
4759
- tabindex="-1"
4755
+ inert
4760
4756
  [checked]="_checked()"
4761
4757
  [disabled]="_disabled()"
4762
4758
  (change)="_handleChange($event)"
@@ -15751,6 +15747,166 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
15751
15747
  }]
15752
15748
  }] });
15753
15749
 
15750
+ let _clxSearchIdCounter = 0;
15751
+ /** Storefront search bar — same color/size/CVA conventions as ClxInputComponent, but styled as
15752
+ * one continuous pill (input fused with a solid search button) rather than a bordered field with
15753
+ * a detached button, matching how e-commerce header search boxes are typically laid out. */
15754
+ class ClxSearchComponent {
15755
+ _themeSvc = inject(ClxThemeService);
15756
+ color = input(undefined, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
15757
+ _color = computed(() => this.color() ?? this._themeSvc.config().primaryColor, ...(ngDevMode ? [{ debugName: "_color" }] : /* istanbul ignore next */ []));
15758
+ size = input(undefined, ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
15759
+ _size = computed(() => (this.size() ?? this._themeSvc.config().defaultSize), ...(ngDevMode ? [{ debugName: "_size" }] : /* istanbul ignore next */ []));
15760
+ placeholder = input('Buscar...', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
15761
+ buttonLabel = input('Buscar', ...(ngDevMode ? [{ debugName: "buttonLabel" }] : /* istanbul ignore next */ []));
15762
+ /** Initial value for standalone use (without FormControl) */
15763
+ value = input('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
15764
+ /** Disabled state for standalone use (without FormControl) */
15765
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
15766
+ search = output();
15767
+ _inputId = `clx-search-${++_clxSearchIdCounter}`;
15768
+ _value = signal('', ...(ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []));
15769
+ _cvaDisabled = signal(false, ...(ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []));
15770
+ _cvaConnected = false;
15771
+ _cardDisabled = inject(CLX_CARD_DISABLED_CONTEXT, { optional: true });
15772
+ _disabled = computed(() => this._cvaDisabled() || this.disabled() || !!this._cardDisabled?.(), ...(ngDevMode ? [{ debugName: "_disabled" }] : /* istanbul ignore next */ []));
15773
+ _valueEffect = effect(() => {
15774
+ const v = this.value();
15775
+ if (!this._cvaConnected)
15776
+ untracked(() => this._value.set(v));
15777
+ }, ...(ngDevMode ? [{ debugName: "_valueEffect" }] : /* istanbul ignore next */ []));
15778
+ _onChange = () => { };
15779
+ _onTouched = () => { };
15780
+ _sizeConfig = computed(() => INPUT_SIZE_MAP[this._size()], ...(ngDevMode ? [{ debugName: "_sizeConfig" }] : /* istanbul ignore next */ []));
15781
+ _buttonSize = computed(() => {
15782
+ switch (this._size()) {
15783
+ case 'sm': return 'sm';
15784
+ case 'lg': return 'lg';
15785
+ default: return 'md';
15786
+ }
15787
+ }, ...(ngDevMode ? [{ debugName: "_buttonSize" }] : /* istanbul ignore next */ []));
15788
+ _wrapperClass = computed(() => {
15789
+ const focusCls = this._disabled() ? '' : resolveColor(this._color()).focusWithin;
15790
+ return `relative flex items-stretch ${resolveRadius(this._themeSvc.config().borderRadius)} border border-clx-border ${focusCls} overflow-hidden transition-[border-color,box-shadow] duration-200`;
15791
+ }, ...(ngDevMode ? [{ debugName: "_wrapperClass" }] : /* istanbul ignore next */ []));
15792
+ _inputClass = computed(() => {
15793
+ const size = this._sizeConfig();
15794
+ const disabledCls = this._disabled()
15795
+ ? `cursor-not-allowed ${CLX_TEXT_DISABLED} ${CLX_BG_DISABLED}`
15796
+ : `${CLX_TEXT_INPUT} ${CLX_BG_SURFACE}`;
15797
+ return `flex-1 min-w-0 ${size.input} pl-3 pr-3 outline-none border-0 ${CLX_PLACEHOLDER} ${disabledCls}`;
15798
+ }, ...(ngDevMode ? [{ debugName: "_inputClass" }] : /* istanbul ignore next */ []));
15799
+ writeValue(val) {
15800
+ this._cvaConnected = true;
15801
+ this._value.set(val ?? '');
15802
+ }
15803
+ registerOnChange(fn) {
15804
+ this._onChange = fn;
15805
+ }
15806
+ registerOnTouched(fn) {
15807
+ this._onTouched = fn;
15808
+ }
15809
+ setDisabledState(disabled) {
15810
+ this._cvaDisabled.set(disabled);
15811
+ }
15812
+ _handleInput(event) {
15813
+ const val = event.target.value;
15814
+ this._value.set(val);
15815
+ this._onChange(val);
15816
+ }
15817
+ _handleBlur() {
15818
+ this._onTouched();
15819
+ }
15820
+ _handleSubmit() {
15821
+ if (this._disabled())
15822
+ return;
15823
+ this.search.emit(this._value());
15824
+ }
15825
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15826
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: ClxSearchComponent, isStandalone: true, selector: "clx-search", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { search: "search" }, host: { classAttribute: "block w-full" }, providers: [
15827
+ {
15828
+ provide: NG_VALUE_ACCESSOR,
15829
+ useExisting: forwardRef(() => ClxSearchComponent),
15830
+ multi: true,
15831
+ },
15832
+ ], ngImport: i0, template: `
15833
+ <div [class]="_wrapperClass()">
15834
+ <input
15835
+ [id]="_inputId"
15836
+ type="search"
15837
+ [placeholder]="placeholder()"
15838
+ [disabled]="_disabled()"
15839
+ [value]="_value()"
15840
+ [class]="_inputClass()"
15841
+ autocomplete="off"
15842
+ (input)="_handleInput($event)"
15843
+ (keydown.enter)="_handleSubmit()"
15844
+ (blur)="_handleBlur()"
15845
+ />
15846
+ <button
15847
+ clx-button
15848
+ type="button"
15849
+ variant="solid"
15850
+ [color]="_color()"
15851
+ [size]="_buttonSize()"
15852
+ icon="search"
15853
+ [disabled]="_disabled()"
15854
+ class="rounded-l-none shrink-0"
15855
+ (click)="_handleSubmit()">
15856
+ {{ buttonLabel() }}
15857
+ </button>
15858
+ </div>
15859
+ `, 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 });
15860
+ }
15861
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxSearchComponent, decorators: [{
15862
+ type: Component,
15863
+ args: [{
15864
+ selector: 'clx-search',
15865
+ standalone: true,
15866
+ imports: [ClxButtonComponent],
15867
+ providers: [
15868
+ {
15869
+ provide: NG_VALUE_ACCESSOR,
15870
+ useExisting: forwardRef(() => ClxSearchComponent),
15871
+ multi: true,
15872
+ },
15873
+ ],
15874
+ template: `
15875
+ <div [class]="_wrapperClass()">
15876
+ <input
15877
+ [id]="_inputId"
15878
+ type="search"
15879
+ [placeholder]="placeholder()"
15880
+ [disabled]="_disabled()"
15881
+ [value]="_value()"
15882
+ [class]="_inputClass()"
15883
+ autocomplete="off"
15884
+ (input)="_handleInput($event)"
15885
+ (keydown.enter)="_handleSubmit()"
15886
+ (blur)="_handleBlur()"
15887
+ />
15888
+ <button
15889
+ clx-button
15890
+ type="button"
15891
+ variant="solid"
15892
+ [color]="_color()"
15893
+ [size]="_buttonSize()"
15894
+ icon="search"
15895
+ [disabled]="_disabled()"
15896
+ class="rounded-l-none shrink-0"
15897
+ (click)="_handleSubmit()">
15898
+ {{ buttonLabel() }}
15899
+ </button>
15900
+ </div>
15901
+ `,
15902
+ encapsulation: ViewEncapsulation.None,
15903
+ changeDetection: ChangeDetectionStrategy.OnPush,
15904
+ host: {
15905
+ class: 'block w-full',
15906
+ },
15907
+ }]
15908
+ }], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], buttonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonLabel", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], search: [{ type: i0.Output, args: ["search"] }] } });
15909
+
15754
15910
  class ClxAnimateGroupDirective {
15755
15911
  stagger = input(100, { ...(ngDevMode ? { debugName: "stagger" } : /* istanbul ignore next */ {}), transform: numberAttribute });
15756
15912
  children;
@@ -16021,5 +16177,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
16021
16177
  * Generated bundle index. Do not edit.
16022
16178
  */
16023
16179
 
16024
- 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, 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, ClxNativeOverlayService, 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 };
16180
+ 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, 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, ClxNativeOverlayService, ClxNavGroupComponent, ClxNumberComponent, ClxPageEmptyComponent, ClxPageHeaderComponent, ClxPageHeaderTitleDirective, ClxPageNotFoundComponent, ClxPageServerErrorComponent, ClxPageUnauthorizedComponent, ClxPaginationComponent, ClxProductComponent, ClxProductDetailComponent, ClxProfileComponent, ClxProgressBarComponent, ClxRadioComponent, ClxRadioGroupComponent, ClxRatingComponent, ClxSearchComponent, 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 };
16025
16181
  //# sourceMappingURL=codexly-ui.mjs.map