@flusys/ng-ui 8.0.0-beta.1 → 8.0.1

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.
@@ -1,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { signal, Service, makeEnvironmentProviders, provideAppInitializer, inject, PLATFORM_ID, input, booleanAttribute, computed, Component, output, contentChild, viewChild, effect, ElementRef, Directive, numberAttribute, afterNextRender, TemplateRef, contentChildren, DestroyRef, untracked, forwardRef, model, viewChildren, Renderer2, InjectionToken, Injector, SecurityContext } from '@angular/core';
3
3
  import { isPlatformBrowser, NgTemplateOutlet, DOCUMENT, NgComponentOutlet } from '@angular/common';
4
- import { LucideAlertCircle, LucideAlertTriangle, LucideAlignLeft, LucideAnchor, LucideAppWindow, LucideArrowDown, LucideArrowDownRight, LucideArrowLeft, LucideArrowRight, LucideArrowUp, LucideArrowUpRight, LucideBadge, LucideBadgeCheck, LucideBan, LucideBell, LucideBellOff, LucideBold, LucideBolt, LucideBook, LucideBriefcase, LucideBuilding, LucideBuilding2, LucideCalculator, LucideCalendar, LucideCarrot, LucideChartBar, LucideChartColumn, LucideChartLine, LucideCheck, LucideCheckCircle, LucideCheckSquare, LucideChevronDown, LucideChevronLeft, LucideChevronRight, LucideChevronUp, LucideChevronsDown, LucideChevronsLeft, LucideChevronsRight, LucideChevronsUp, LucideCircle, LucideClock, LucideCloud, LucideCloudUpload, LucideCode, LucideCog, LucideColumns, LucideCommand, LucideContainer, LucideContrast, LucideCookie, LucideCopy, LucideCurrency, LucideDatabase, LucideDelete, LucideDivide, LucideDollarSign, LucideDownload, LucideEllipse, LucideEllipsisVertical, LucideEraser, LucideExternalLink, LucideEye, LucideEyeOff, LucideFile, LucideFileEdit, LucideFilePen, LucideFileSpreadsheet, LucideFileType, LucideFiles, LucideFilter, LucideFocus, LucideFolder, LucideFolderOpen, LucideFolders, LucideForm, LucideGhost, LucideGlobe, LucideGrid, LucideGroup, LucideHeart, LucideHelpCircle, LucideHistory, LucideHome, LucideImage, LucideImageOff, LucideInbox, LucideInfo, LucideItalic, LucideKey, LucideLanguages, LucideLayout, LucideLayoutGrid, LucideLayoutPanelTop, LucideLink, LucideList, LucideListCheck, LucideListChecks, LucideListOrdered, LucideLoader, LucideLoaderCircle, LucideLock, LucideLogIn, LucideLogOut, LucideMail, LucideMapPin, LucideMaximize2, LucideMenu, LucideMessageCircle, LucideMinus, LucideMinusCircle, LucideMonitor, LucideMoon, LucideMoveHorizontal, LucideNavigation, LucideNetwork, LucideOption, LucidePalette, LucidePen, LucidePencil, LucidePercent, LucidePhone, LucidePin, LucidePlay, LucidePlus, LucidePlusCircle, LucidePresentation, LucideQuote, LucideRadar, LucideRadio, LucideRadius, LucideRedo, LucideRefreshCw, LucideReply, LucideRocket, LucideRose, LucideRotateCcw, LucideRotateCw, LucideRows, LucideSave, LucideScroll, LucideSearch, LucideSection, LucideSend, LucideServer, LucideSettings, LucideShield, LucideSidebar, LucideSlidersHorizontal, LucideSmartphone, LucideSparkles, LucideSquare, LucideSquareStack, LucideStar, LucideStars, LucideStone, LucideSun, LucideTable, LucideTable2, LucideTablet, LucideTag, LucideTags, LucideTarget, LucideText, LucideTrash, LucideTrash2, LucideType, LucideUnderline, LucideUndo, LucideUpload, LucideUser, LucideUsers, LucideVerified, LucideVideo, LucideVolume2, LucideX, LucideXCircle, LucideZap, LucideZoomIn, LucideZoomOut, LucideDynamicIcon, provideLucideIcons } from '@lucide/angular';
4
+ import * as lucideNamespace from '@lucide/angular';
5
+ import { isLucideIconComponent, LucideDynamicIcon, provideLucideIcons } from '@lucide/angular';
5
6
  import * as i1 from '@angular/forms';
6
7
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
7
8
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -799,53 +800,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
799
800
  }]
800
801
  }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], severity: [{ type: i0.Input, args: [{ isSignal: true, alias: "severity", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], style: [{ type: i0.Input, args: [{ isSignal: true, alias: "style", required: false }] }] } });
801
802
 
802
- const allLucideIcons = [
803
- LucideAlertCircle, LucideAlertTriangle, LucideAlignLeft, LucideAnchor,
804
- LucideAppWindow, LucideArrowDown, LucideArrowDownRight, LucideArrowLeft,
805
- LucideArrowRight, LucideArrowUp, LucideArrowUpRight, LucideBadge,
806
- LucideBadgeCheck, LucideBan, LucideBell, LucideBellOff,
807
- LucideBold, LucideBolt, LucideBook, LucideBriefcase,
808
- LucideBuilding, LucideBuilding2, LucideCalculator, LucideCalendar,
809
- LucideCarrot, LucideChartBar, LucideChartColumn, LucideChartLine,
810
- LucideCheck, LucideCheckCircle, LucideCheckSquare, LucideChevronDown,
811
- LucideChevronLeft, LucideChevronRight, LucideChevronUp, LucideChevronsDown,
812
- LucideChevronsLeft, LucideChevronsRight, LucideChevronsUp, LucideCircle,
813
- LucideClock, LucideCloud, LucideCloudUpload, LucideCode,
814
- LucideCog, LucideColumns, LucideCommand, LucideContainer,
815
- LucideContrast, LucideCookie, LucideCopy, LucideCurrency,
816
- LucideDatabase, LucideDelete, LucideDivide, LucideDollarSign,
817
- LucideDownload, LucideEllipse, LucideEllipsisVertical, LucideEraser,
818
- LucideExternalLink, LucideEye, LucideEyeOff, LucideFile,
819
- LucideFileEdit, LucideFilePen, LucideFileSpreadsheet, LucideFileType,
820
- LucideFiles, LucideFilter, LucideFocus, LucideFolder,
821
- LucideFolderOpen, LucideFolders, LucideForm, LucideGhost,
822
- LucideGlobe, LucideGrid, LucideGroup, LucideHeart,
823
- LucideHelpCircle, LucideHistory, LucideHome, LucideImage,
824
- LucideImageOff, LucideInbox, LucideInfo, LucideItalic,
825
- LucideKey, LucideLanguages, LucideLayout, LucideLayoutGrid,
826
- LucideLayoutPanelTop, LucideLink, LucideList, LucideListCheck,
827
- LucideListChecks, LucideListOrdered, LucideLoader, LucideLoaderCircle,
828
- LucideLock, LucideLogIn, LucideLogOut, LucideMail,
829
- LucideMapPin, LucideMaximize2, LucideMenu, LucideMessageCircle,
830
- LucideMinus, LucideMinusCircle, LucideMonitor, LucideMoon,
831
- LucideMoveHorizontal, LucideNavigation, LucideNetwork, LucideOption,
832
- LucidePalette, LucidePen, LucidePencil, LucidePercent,
833
- LucidePhone, LucidePin, LucidePlay, LucidePlus,
834
- LucidePlusCircle, LucidePresentation, LucideQuote, LucideRadar,
835
- LucideRadio, LucideRadius, LucideRedo, LucideRefreshCw,
836
- LucideReply, LucideRocket, LucideRose, LucideRotateCcw,
837
- LucideRotateCw, LucideRows, LucideSave, LucideScroll,
838
- LucideSearch, LucideSection, LucideSend, LucideServer,
839
- LucideSettings, LucideShield, LucideSidebar, LucideSlidersHorizontal,
840
- LucideSmartphone, LucideSparkles, LucideSquare, LucideSquareStack,
841
- LucideStar, LucideStars, LucideStone, LucideSun,
842
- LucideTable, LucideTable2, LucideTablet, LucideTag,
843
- LucideTags, LucideTarget, LucideText, LucideTrash,
844
- LucideTrash2, LucideType, LucideUnderline, LucideUndo,
845
- LucideUpload, LucideUser, LucideUsers, LucideVerified,
846
- LucideVideo, LucideVolume2, LucideX, LucideXCircle,
847
- LucideZap, LucideZoomIn, LucideZoomOut,
848
- ];
803
+ // `filter`'s type-guard overload can't narrow a ~1700-member union of exact
804
+ // icon-class types against the broader `LucideIcon` interface, so the guard
805
+ // still runs at runtime but the result needs an explicit cast.
806
+ const allLucideIcons = Object.values(lucideNamespace).filter(isLucideIconComponent);
849
807
  const PI_TO_LUCIDE = {
850
808
  'align-left': 'align-left',
851
809
  'angle-double-left': 'chevrons-left',
@@ -6832,6 +6790,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
6832
6790
  }], propDecorators: { stars: [{ type: i0.Input, args: [{ isSignal: true, alias: "stars", required: false }] }], cancel: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancel", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], iconOn: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOn", required: false }] }], iconOff: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOff", required: false }] }], cancelIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelIcon", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], style: [{ type: i0.Input, args: [{ isSignal: true, alias: "style", required: false }] }], onRate: [{ type: i0.Output, args: ["onRate"] }], onBlur: [{ type: i0.Output, args: ["onBlur"] }] } });
6833
6791
 
6834
6792
  class InputIconComponent {
6793
+ _iconField = inject(IconFieldComponent, { optional: true });
6835
6794
  icon = input('', /* @ts-ignore */
6836
6795
  ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
6837
6796
  position = input('left', /* @ts-ignore */
@@ -6840,8 +6799,10 @@ class InputIconComponent {
6840
6799
  ...(ngDevMode ? [{ debugName: "styleClass" }] : /* istanbul ignore next */ []));
6841
6800
  style = input(null, /* @ts-ignore */
6842
6801
  ...(ngDevMode ? [{ debugName: "style" }] : /* istanbul ignore next */ []));
6802
+ _resolvedPosition = computed(() => this._iconField?.resolvedPosition() ?? this.position(), /* @ts-ignore */
6803
+ ...(ngDevMode ? [{ debugName: "_resolvedPosition" }] : /* istanbul ignore next */ []));
6843
6804
  hostClass = computed(() => {
6844
- const sideClass = this.position() === 'right'
6805
+ const sideClass = this._resolvedPosition() === 'right'
6845
6806
  ? 'right-(--f-field-padding-x)'
6846
6807
  : 'left-(--f-field-padding-x)';
6847
6808
  return `absolute ${sideClass} top-1/2 -translate-y-1/2 text-(--f-form-field-placeholder-color) ${this.styleClass()}`;
@@ -6877,14 +6838,10 @@ class IconFieldComponent {
6877
6838
  ...(ngDevMode ? [{ debugName: "iconPosition" }] : /* istanbul ignore next */ []));
6878
6839
  styleClass = input('', /* @ts-ignore */
6879
6840
  ...(ngDevMode ? [{ debugName: "styleClass" }] : /* istanbul ignore next */ []));
6880
- _resolvedPosition = computed(() => this.iconPosition() || this._icon()?.position() || 'left', /* @ts-ignore */
6881
- ...(ngDevMode ? [{ debugName: "_resolvedPosition" }] : /* istanbul ignore next */ []));
6841
+ resolvedPosition = computed(() => this.iconPosition() || this._icon()?.position() || 'left', /* @ts-ignore */
6842
+ ...(ngDevMode ? [{ debugName: "resolvedPosition" }] : /* istanbul ignore next */ []));
6882
6843
  hostClass = computed(() => {
6883
- // One icon slot wide, measured from the field's own inline padding so the gap
6884
- // between icon and text stays constant in every preset. Spelled out in full:
6885
- // Tailwind generates a utility only for class names it can find verbatim in the
6886
- // source, so an interpolated one silently produces no CSS at all.
6887
- const paddingClass = this._resolvedPosition() === 'right'
6844
+ const paddingClass = this.resolvedPosition() === 'right'
6888
6845
  ? '[&_input]:pr-[calc(var(--f-field-padding-x)+1.5rem)] [&_textarea]:pr-[calc(var(--f-field-padding-x)+1.5rem)]'
6889
6846
  : '[&_input]:pl-[calc(var(--f-field-padding-x)+1.5rem)] [&_textarea]:pl-[calc(var(--f-field-padding-x)+1.5rem)]';
6890
6847
  return `relative flex items-center ${paddingClass} ${this.styleClass()}`;