@spartan-ng/brain 0.0.1-alpha.707 → 0.0.1-alpha.708

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 (109) hide show
  1. package/fesm2022/spartan-ng-brain-accordion.mjs +30 -30
  2. package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
  3. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +19 -19
  4. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/spartan-ng-brain-autocomplete.mjs +89 -102
  6. package/fesm2022/spartan-ng-brain-autocomplete.mjs.map +1 -1
  7. package/fesm2022/spartan-ng-brain-avatar.mjs +15 -15
  8. package/fesm2022/spartan-ng-brain-avatar.mjs.map +1 -1
  9. package/fesm2022/spartan-ng-brain-button.mjs +4 -4
  10. package/fesm2022/spartan-ng-brain-button.mjs.map +1 -1
  11. package/fesm2022/spartan-ng-brain-calendar.mjs +120 -127
  12. package/fesm2022/spartan-ng-brain-calendar.mjs.map +1 -1
  13. package/fesm2022/spartan-ng-brain-checkbox.mjs +24 -24
  14. package/fesm2022/spartan-ng-brain-checkbox.mjs.map +1 -1
  15. package/fesm2022/spartan-ng-brain-collapsible.mjs +17 -17
  16. package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -1
  17. package/fesm2022/spartan-ng-brain-combobox.mjs +151 -178
  18. package/fesm2022/spartan-ng-brain-combobox.mjs.map +1 -1
  19. package/fesm2022/spartan-ng-brain-command.mjs +43 -52
  20. package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
  21. package/fesm2022/spartan-ng-brain-core.mjs +5 -5
  22. package/fesm2022/spartan-ng-brain-core.mjs.map +1 -1
  23. package/fesm2022/spartan-ng-brain-date-time-luxon.mjs.map +1 -1
  24. package/fesm2022/spartan-ng-brain-date-time.mjs.map +1 -1
  25. package/fesm2022/spartan-ng-brain-dialog.mjs +72 -86
  26. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  27. package/fesm2022/spartan-ng-brain-field.mjs +38 -43
  28. package/fesm2022/spartan-ng-brain-field.mjs.map +1 -1
  29. package/fesm2022/spartan-ng-brain-forms.mjs +20 -20
  30. package/fesm2022/spartan-ng-brain-forms.mjs.map +1 -1
  31. package/fesm2022/spartan-ng-brain-hover-card.mjs +24 -32
  32. package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -1
  33. package/fesm2022/spartan-ng-brain-input-otp.mjs +23 -25
  34. package/fesm2022/spartan-ng-brain-input-otp.mjs.map +1 -1
  35. package/fesm2022/spartan-ng-brain-input.mjs +6 -6
  36. package/fesm2022/spartan-ng-brain-input.mjs.map +1 -1
  37. package/fesm2022/spartan-ng-brain-label.mjs +6 -6
  38. package/fesm2022/spartan-ng-brain-label.mjs.map +1 -1
  39. package/fesm2022/spartan-ng-brain-navigation-menu.mjs +49 -53
  40. package/fesm2022/spartan-ng-brain-navigation-menu.mjs.map +1 -1
  41. package/fesm2022/spartan-ng-brain-popover.mjs +13 -15
  42. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
  43. package/fesm2022/spartan-ng-brain-progress.mjs +11 -13
  44. package/fesm2022/spartan-ng-brain-progress.mjs.map +1 -1
  45. package/fesm2022/spartan-ng-brain-radio-group.mjs +28 -34
  46. package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -1
  47. package/fesm2022/spartan-ng-brain-resizable.mjs +23 -23
  48. package/fesm2022/spartan-ng-brain-resizable.mjs.map +1 -1
  49. package/fesm2022/spartan-ng-brain-select.mjs +102 -105
  50. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  51. package/fesm2022/spartan-ng-brain-separator.mjs +7 -7
  52. package/fesm2022/spartan-ng-brain-separator.mjs.map +1 -1
  53. package/fesm2022/spartan-ng-brain-sheet.mjs +24 -24
  54. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -1
  55. package/fesm2022/spartan-ng-brain-slider.mjs +52 -76
  56. package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -1
  57. package/fesm2022/spartan-ng-brain-sonner.mjs +108 -132
  58. package/fesm2022/spartan-ng-brain-sonner.mjs.map +1 -1
  59. package/fesm2022/spartan-ng-brain-switch.mjs +21 -23
  60. package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -1
  61. package/fesm2022/spartan-ng-brain-tabs.mjs +36 -39
  62. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -1
  63. package/fesm2022/spartan-ng-brain-textarea.mjs +6 -6
  64. package/fesm2022/spartan-ng-brain-textarea.mjs.map +1 -1
  65. package/fesm2022/spartan-ng-brain-toggle-group.mjs +21 -27
  66. package/fesm2022/spartan-ng-brain-toggle-group.mjs.map +1 -1
  67. package/fesm2022/spartan-ng-brain-toggle.mjs +10 -12
  68. package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -1
  69. package/fesm2022/spartan-ng-brain-tooltip.mjs +27 -27
  70. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
  71. package/hlm-tailwind-preset.css +6 -6
  72. package/package.json +44 -43
  73. package/{autocomplete/index.d.ts → types/spartan-ng-brain-autocomplete.d.ts} +10 -10
  74. package/{calendar/index.d.ts → types/spartan-ng-brain-calendar.d.ts} +2 -2
  75. package/{combobox/index.d.ts → types/spartan-ng-brain-combobox.d.ts} +10 -10
  76. package/{dialog/index.d.ts → types/spartan-ng-brain-dialog.d.ts} +1 -1
  77. package/{hover-card/index.d.ts → types/spartan-ng-brain-hover-card.d.ts} +1 -1
  78. package/{select/index.d.ts → types/spartan-ng-brain-select.d.ts} +11 -11
  79. /package/{accordion/index.d.ts → types/spartan-ng-brain-accordion.d.ts} +0 -0
  80. /package/{alert-dialog/index.d.ts → types/spartan-ng-brain-alert-dialog.d.ts} +0 -0
  81. /package/{avatar/index.d.ts → types/spartan-ng-brain-avatar.d.ts} +0 -0
  82. /package/{button/index.d.ts → types/spartan-ng-brain-button.d.ts} +0 -0
  83. /package/{checkbox/index.d.ts → types/spartan-ng-brain-checkbox.d.ts} +0 -0
  84. /package/{collapsible/index.d.ts → types/spartan-ng-brain-collapsible.d.ts} +0 -0
  85. /package/{command/index.d.ts → types/spartan-ng-brain-command.d.ts} +0 -0
  86. /package/{core/index.d.ts → types/spartan-ng-brain-core.d.ts} +0 -0
  87. /package/{date-time-luxon/index.d.ts → types/spartan-ng-brain-date-time-luxon.d.ts} +0 -0
  88. /package/{date-time/index.d.ts → types/spartan-ng-brain-date-time.d.ts} +0 -0
  89. /package/{field/index.d.ts → types/spartan-ng-brain-field.d.ts} +0 -0
  90. /package/{forms/index.d.ts → types/spartan-ng-brain-forms.d.ts} +0 -0
  91. /package/{input-otp/index.d.ts → types/spartan-ng-brain-input-otp.d.ts} +0 -0
  92. /package/{input/index.d.ts → types/spartan-ng-brain-input.d.ts} +0 -0
  93. /package/{label/index.d.ts → types/spartan-ng-brain-label.d.ts} +0 -0
  94. /package/{navigation-menu/index.d.ts → types/spartan-ng-brain-navigation-menu.d.ts} +0 -0
  95. /package/{popover/index.d.ts → types/spartan-ng-brain-popover.d.ts} +0 -0
  96. /package/{progress/index.d.ts → types/spartan-ng-brain-progress.d.ts} +0 -0
  97. /package/{radio-group/index.d.ts → types/spartan-ng-brain-radio-group.d.ts} +0 -0
  98. /package/{resizable/index.d.ts → types/spartan-ng-brain-resizable.d.ts} +0 -0
  99. /package/{separator/index.d.ts → types/spartan-ng-brain-separator.d.ts} +0 -0
  100. /package/{sheet/index.d.ts → types/spartan-ng-brain-sheet.d.ts} +0 -0
  101. /package/{slider/index.d.ts → types/spartan-ng-brain-slider.d.ts} +0 -0
  102. /package/{sonner/index.d.ts → types/spartan-ng-brain-sonner.d.ts} +0 -0
  103. /package/{switch/index.d.ts → types/spartan-ng-brain-switch.d.ts} +0 -0
  104. /package/{tabs/index.d.ts → types/spartan-ng-brain-tabs.d.ts} +0 -0
  105. /package/{textarea/index.d.ts → types/spartan-ng-brain-textarea.d.ts} +0 -0
  106. /package/{toggle-group/index.d.ts → types/spartan-ng-brain-toggle-group.d.ts} +0 -0
  107. /package/{toggle/index.d.ts → types/spartan-ng-brain-toggle.d.ts} +0 -0
  108. /package/{tooltip/index.d.ts → types/spartan-ng-brain-tooltip.d.ts} +0 -0
  109. /package/{index.d.ts → types/spartan-ng-brain.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-tooltip.mjs","sources":["../../../../libs/brain/tooltip/src/lib/brn-tooltip-string-template-outlet.ts","../../../../libs/brain/tooltip/src/lib/brn-tooltip-content.ts","../../../../libs/brain/tooltip/src/lib/brn-tooltip-position.ts","../../../../libs/brain/tooltip/src/lib/brn-tooltip.token.ts","../../../../libs/brain/tooltip/src/lib/brn-tooltip.ts","../../../../libs/brain/tooltip/src/index.ts","../../../../libs/brain/tooltip/src/spartan-ng-brain-tooltip.ts"],"sourcesContent":["import {\n\tDirective,\n\teffect,\n\ttype EffectRef,\n\ttype EmbeddedViewRef,\n\tinject,\n\tinput,\n\ttype OnDestroy,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\n\nexport function isTemplateRef<C = unknown>(value: unknown): value is TemplateRef<C> {\n\treturn value instanceof TemplateRef;\n}\n\nexport interface BrnTemplateOutletContext {\n\t$implicit: unknown;\n\t[key: string]: unknown;\n}\n\n@Directive({\n\tselector: '[brnTooltipStringTemplateOutlet]',\n\texportAs: 'brnTooltipStringTemplateOutlet',\n})\nexport class BrnTooltipStringTemplateOutlet<T = unknown> implements OnDestroy {\n\tprivate readonly _viewContainer = inject(ViewContainerRef);\n\tprivate readonly _templateRef = inject(TemplateRef<void>);\n\n\tprivate _embeddedViewRef: EmbeddedViewRef<BrnTemplateOutletContext> | null = null;\n\tprivate readonly _context = {} as BrnTemplateOutletContext;\n\n\tprivate _isFirstChange = true;\n\tprivate _lastOutletWasTemplate = false;\n\tprivate _lastTemplateRef: TemplateRef<void> | null = null;\n\tprivate _lastContext?: BrnTemplateOutletContext;\n\n\tpublic readonly brnTooltipStringTemplateOutletContext = input<BrnTemplateOutletContext | undefined>(undefined);\n\tpublic readonly brnTooltipStringTemplateOutlet = input.required<T | TemplateRef<void>>();\n\n\t_hasContextShapeChanged(context: BrnTemplateOutletContext | undefined): boolean {\n\t\tif (!context) {\n\t\t\treturn false;\n\t\t}\n\t\tconst prevCtxKeys = Object.keys(this._lastContext || {});\n\t\tconst currCtxKeys = Object.keys(context || {});\n\n\t\tif (prevCtxKeys.length === currCtxKeys.length) {\n\t\t\tfor (const propName of currCtxKeys) {\n\t\t\t\tif (!prevCtxKeys.includes(propName)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t_shouldViewBeRecreated(\n\t\tstringTemplateOutlet: TemplateRef<void> | T,\n\t\tstringTemplateOutletContext: BrnTemplateOutletContext | undefined,\n\t): boolean {\n\t\tconst isTemplate = isTemplateRef(stringTemplateOutlet);\n\n\t\tconst shouldOutletRecreate =\n\t\t\tthis._isFirstChange ||\n\t\t\tisTemplate !== this._lastOutletWasTemplate ||\n\t\t\t(isTemplate && stringTemplateOutlet !== this._lastTemplateRef);\n\n\t\tconst shouldContextRecreate = this._hasContextShapeChanged(stringTemplateOutletContext);\n\t\treturn shouldContextRecreate || shouldOutletRecreate;\n\t}\n\n\t_updateTrackingState(\n\t\tstringTemplateOutlet: TemplateRef<void> | T,\n\t\tstringTemplateOutletContext: BrnTemplateOutletContext | undefined,\n\t): void {\n\t\tconst isTemplate = isTemplateRef(stringTemplateOutlet);\n\t\tif (this._isFirstChange && !isTemplate) {\n\t\t\tthis._isFirstChange = false;\n\t\t}\n\n\t\tif (stringTemplateOutletContext !== undefined) {\n\t\t\tthis._lastContext = stringTemplateOutletContext;\n\t\t}\n\n\t\tthis._lastOutletWasTemplate = isTemplate;\n\t\tthis._lastTemplateRef = isTemplate ? stringTemplateOutlet : null;\n\t}\n\n\tprivate readonly _viewEffect: EffectRef = effect(() => {\n\t\tconst stringTemplateOutlet = this.brnTooltipStringTemplateOutlet();\n\t\tconst stringTemplateOutletContext = this.brnTooltipStringTemplateOutletContext();\n\n\t\tif (!this._isFirstChange && isTemplateRef(stringTemplateOutlet)) {\n\t\t\tthis._isFirstChange = true;\n\t\t}\n\n\t\tif (!isTemplateRef(stringTemplateOutlet)) {\n\t\t\tthis._context['$implicit'] = stringTemplateOutlet as T;\n\t\t}\n\n\t\tconst recreateView = this._shouldViewBeRecreated(stringTemplateOutlet, stringTemplateOutletContext);\n\t\tthis._updateTrackingState(stringTemplateOutlet, stringTemplateOutletContext);\n\n\t\tif (recreateView) {\n\t\t\tthis._recreateView(stringTemplateOutlet as TemplateRef<BrnTemplateOutletContext>, stringTemplateOutletContext);\n\t\t} else {\n\t\t\tthis._updateContext(stringTemplateOutlet, stringTemplateOutletContext);\n\t\t}\n\t});\n\n\tprivate _recreateView(\n\t\toutlet: TemplateRef<BrnTemplateOutletContext>,\n\t\tcontext: BrnTemplateOutletContext | undefined,\n\t): void {\n\t\tthis._viewContainer.clear();\n\t\tif (isTemplateRef(outlet)) {\n\t\t\tthis._embeddedViewRef = this._viewContainer.createEmbeddedView(outlet, context);\n\t\t} else {\n\t\t\tthis._embeddedViewRef = this._viewContainer.createEmbeddedView(this._templateRef, this._context);\n\t\t}\n\t}\n\n\tprivate _updateContext(outlet: TemplateRef<void> | T, context: BrnTemplateOutletContext | undefined): void {\n\t\tconst newCtx = isTemplateRef(outlet) ? context : this._context;\n\t\tlet oldCtx = this._embeddedViewRef?.context;\n\n\t\tif (!oldCtx) {\n\t\t\toldCtx = newCtx;\n\t\t} else if (newCtx && typeof newCtx === 'object') {\n\t\t\tfor (const propName of Object.keys(newCtx)) {\n\t\t\t\toldCtx[propName] = newCtx[propName];\n\t\t\t}\n\t\t}\n\t\tthis._lastContext = oldCtx;\n\t}\n\n\tstatic ngTemplateContextGuard<T>(\n\t\t_dir: BrnTooltipStringTemplateOutlet<T>,\n\t\t_ctx: unknown,\n\t): _ctx is BrnTemplateOutletContext {\n\t\treturn true;\n\t}\n\n\tpublic ngOnDestroy(): void {\n\t\tthis._viewEffect.destroy();\n\t\tthis._viewContainer.clear();\n\t\tthis._embeddedViewRef = null;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { BrnTooltipPosition } from './brn-tooltip-position';\nimport { BrnTooltipStringTemplateOutlet } from './brn-tooltip-string-template-outlet';\nimport { BrnTooltipType } from './brn-tooltip-type';\n\nlet uniqueId = 0;\n\n@Component({\n\timports: [BrnTooltipStringTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[class]': '_tooltipClass()',\n\t\t'[attr.id]': 'id()',\n\t\t'[attr.data-side]': '_position()',\n\t\t'[attr.data-state]': 'state()',\n\t\trole: 'tooltip',\n\t},\n\ttemplate: `\n\t\t<ng-container *brnTooltipStringTemplateOutlet=\"_tooltipText()\">{{ _tooltipText() }}</ng-container>\n\n\t\t<span [class]=\"_arrowClass()\">\n\t\t\t<svg [class]=\"_svgClass()\" width=\"10\" height=\"5\" viewBox=\"0 0 30 10\" preserveAspectRatio=\"none\">\n\t\t\t\t<polygon points=\"0,0 30,0 15,10\" />\n\t\t\t</svg>\n\t\t</span>\n\t`,\n})\nexport class BrnTooltipContent {\n\tpublic readonly id = input<string>(`brn-tooltip-${++uniqueId}`);\n\tpublic readonly state = signal<'closed' | 'opened'>('closed');\n\n\tprotected readonly _tooltipClass = signal<ClassValue>('');\n\tprotected readonly _arrowClass = signal<ClassValue>('');\n\tprotected readonly _svgClass = signal<ClassValue>('');\n\n\tprotected readonly _position = signal<BrnTooltipPosition>('top');\n\tprotected readonly _tooltipText = signal<BrnTooltipType>(null);\n\n\tpublic setProps(\n\t\ttooltipText: BrnTooltipType,\n\t\tposition: BrnTooltipPosition,\n\t\ttooltipClasses: ClassValue,\n\t\tarrowClasses: ClassValue,\n\t\tsvgClasses: ClassValue,\n\t): void {\n\t\tif (tooltipText) {\n\t\t\tthis._tooltipText.set(tooltipText);\n\t\t}\n\t\tthis._position.set(position);\n\n\t\tthis._tooltipClass.set(tooltipClasses);\n\t\tthis._arrowClass.set(arrowClasses);\n\t\tthis._svgClass.set(svgClasses);\n\t}\n}\n","import type { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport type BrnTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\nexport const BRN_TOOLTIP_POSITIONS_MAP: Record<BrnTooltipPosition, ConnectedPosition> = {\n\ttop: {\n\t\toriginX: 'center',\n\t\toriginY: 'top',\n\t\toverlayX: 'center',\n\t\toverlayY: 'bottom',\n\t\toffsetY: -8,\n\t},\n\tbottom: {\n\t\toriginX: 'center',\n\t\toriginY: 'bottom',\n\t\toverlayX: 'center',\n\t\toverlayY: 'top',\n\t\toffsetY: 8,\n\t},\n\tleft: {\n\t\toriginX: 'start',\n\t\toriginY: 'center',\n\t\toverlayX: 'end',\n\t\toverlayY: 'center',\n\t\toffsetX: -8,\n\t},\n\tright: {\n\t\toriginX: 'end',\n\t\toriginY: 'center',\n\t\toverlayX: 'start',\n\t\toverlayY: 'center',\n\t\toffsetX: 8,\n\t},\n};\n\n/** Fallback order for each preferred position when it doesn't fit in the viewport. */\nexport const BRN_TOOLTIP_FALLBACK_POSITIONS: Record<BrnTooltipPosition, BrnTooltipPosition[]> = {\n\ttop: ['bottom', 'right', 'left'],\n\tbottom: ['top', 'right', 'left'],\n\tleft: ['right', 'top', 'bottom'],\n\tright: ['left', 'top', 'bottom'],\n};\n\n/** Map a resolved CDK ConnectedPosition back to a BrnTooltipPosition, or null if no match. */\nexport function resolveTooltipPosition(pair: ConnectedPosition): BrnTooltipPosition | null {\n\tfor (const [pos, config] of Object.entries(BRN_TOOLTIP_POSITIONS_MAP)) {\n\t\tif (\n\t\t\tpair.originX === config.originX &&\n\t\t\tpair.originY === config.originY &&\n\t\t\tpair.overlayX === config.overlayX &&\n\t\t\tpair.overlayY === config.overlayY\n\t\t) {\n\t\t\treturn pos as BrnTooltipPosition;\n\t\t}\n\t}\n\treturn null;\n}\n","import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport { type ClassValue } from 'clsx';\nimport { type BrnTooltipPosition } from './brn-tooltip-position';\n\nexport interface BrnTooltipOptions {\n\t/** Default delay when the tooltip is shown. */\n\tshowDelay: number;\n\t/** Default delay when the tooltip is hidden. */\n\thideDelay: number;\n\t/** Default position for tooltips. */\n\tposition?: BrnTooltipPosition;\n\t/** Additional classes for the SVG element in the tooltip arrow. */\n\tsvgClasses: ClassValue;\n\t/** Additional classes for the tooltip arrow element based on position. */\n\tarrowClasses: (position: BrnTooltipPosition) => ClassValue;\n\t/** Additional classes for the tooltip content element. */\n\ttooltipContentClasses: ClassValue;\n}\n\nexport const defaultOptions: BrnTooltipOptions = {\n\tshowDelay: 150,\n\thideDelay: 100,\n\tsvgClasses: '',\n\tarrowClasses: () => '',\n\ttooltipContentClasses: '',\n};\n\nconst BRN_TOOLTIP_DEFAULT_OPTIONS = new InjectionToken<BrnTooltipOptions>('brn-tooltip-default-options', {\n\tprovidedIn: 'root',\n\tfactory: () => defaultOptions,\n});\n\nexport function provideBrnTooltipDefaultOptions(options: Partial<BrnTooltipOptions>): ValueProvider {\n\treturn { provide: BRN_TOOLTIP_DEFAULT_OPTIONS, useValue: { ...defaultOptions, ...options } };\n}\n\nexport function injectBrnTooltipDefaultOptions(): BrnTooltipOptions {\n\treturn inject(BRN_TOOLTIP_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions;\n}\n","import {\n\tConnectedPosition,\n\tFlexibleConnectedPositionStrategy,\n\tOverlay,\n\tOverlayPositionBuilder,\n\ttype OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\ttype ComponentRef,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\toutput,\n\tRenderer2,\n\trunInInjectionContext,\n\ttype TemplateRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { of, Subject, Subscription, timer } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { BrnTooltipContent } from './brn-tooltip-content';\nimport {\n\tBRN_TOOLTIP_FALLBACK_POSITIONS,\n\tBRN_TOOLTIP_POSITIONS_MAP,\n\tBrnTooltipPosition,\n\tresolveTooltipPosition,\n} from './brn-tooltip-position';\nimport { BrnTooltipType } from './brn-tooltip-type';\nimport { injectBrnTooltipDefaultOptions } from './brn-tooltip.token';\n\ninterface DelayConfig {\n\tisShow: boolean;\n\tdelay: number;\n}\n\n@Directive({ selector: '[brnTooltip]', exportAs: 'brnTooltip' })\nexport class BrnTooltip {\n\tprivate readonly _config = injectBrnTooltipDefaultOptions();\n\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _elementRef = inject(ElementRef<HTMLElement>);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _overlay = inject(Overlay);\n\tprivate readonly _overlayPositionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _dir = inject(Directionality);\n\n\tprivate _tooltipHovered = false;\n\tprivate _listenersRefs: (() => void)[] = [];\n\tprivate _delaySubject: Subject<DelayConfig> | undefined = undefined;\n\tprivate _componentRef: ComponentRef<BrnTooltipContent> | undefined = undefined;\n\tprivate _overlayRef: OverlayRef | undefined = undefined;\n\tprivate _ariaEffectRef: ReturnType<typeof effect> | undefined = undefined;\n\tprivate _positionChangeSub: Subscription | undefined = undefined;\n\n\tpublic readonly tooltipDisabled = input<boolean, boolean>(false, { transform: booleanAttribute });\n\tpublic readonly mutableTooltipDisabled = linkedSignal(this.tooltipDisabled);\n\n\tpublic readonly position = input<BrnTooltipPosition>(this._config.position ?? 'top');\n\tpublic readonly brnTooltip = input<BrnTooltipType>(null);\n\tpublic readonly showDelay = input<number, number>(this._config.showDelay, { transform: numberAttribute });\n\tpublic readonly hideDelay = input<number, number>(this._config.hideDelay, { transform: numberAttribute });\n\n\tpublic readonly show = output<void>();\n\tpublic readonly hide = output<void>();\n\n\tprivate readonly _tooltipText = computed<string | TemplateRef<void>>(() => {\n\t\tlet tooltipText = this.brnTooltip();\n\t\tif (!tooltipText) {\n\t\t\treturn '';\n\t\t} else if (typeof tooltipText === 'string') {\n\t\t\ttooltipText = tooltipText.trim();\n\t\t}\n\t\treturn tooltipText;\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis._overlayRef = this._overlay.create({\n\t\t\t\tdirection: this._dir,\n\t\t\t\tpositionStrategy: this._buildPositionStrategy(),\n\t\t\t});\n\n\t\t\tthis._dir.change.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n\t\t\t\tif (this._overlayRef) {\n\t\t\t\t\tthis._updatePosition();\n\t\t\t\t\tif (this._overlayRef.hasAttached()) {\n\t\t\t\t\t\tthis._overlayRef.updatePosition();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\trunInInjectionContext(this._injector, () => {\n\t\t\t\tif (!this._overlayRef) return;\n\t\t\t\tthis._setupDelayMechanism();\n\t\t\t\tthis._cleanupTriggerEvents();\n\t\t\t\tthis._initTriggers();\n\t\t\t\tthis._listenersRefs = [\n\t\t\t\t\t...this._listenersRefs,\n\t\t\t\t\tthis._renderer.listen(this._overlayRef.hostElement, 'mouseenter', () => (this._tooltipHovered = true)),\n\t\t\t\t\tthis._renderer.listen(this._overlayRef.hostElement, 'mouseleave', () => {\n\t\t\t\t\t\tthis._tooltipHovered = false;\n\t\t\t\t\t\tthis.delay(false, this.hideDelay());\n\t\t\t\t\t}),\n\t\t\t\t];\n\t\t\t});\n\t\t});\n\n\t\tthis._destroyRef.onDestroy(() => {\n\t\t\tthis._clearAriaDescribedBy();\n\t\t\tthis._delaySubject?.complete();\n\t\t\tthis._cleanupTriggerEvents();\n\t\t\tthis._overlayRef?.dispose();\n\t\t});\n\t}\n\n\tprivate _updatePosition(): void {\n\t\tconst strategy = this._overlayRef?.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n\n\t\tif (strategy) {\n\t\t\tstrategy.withPositions(this._getAllPositions());\n\t\t}\n\t}\n\n\tprivate _buildPositionStrategy() {\n\t\treturn this._overlayPositionBuilder\n\t\t\t.flexibleConnectedTo(this._elementRef)\n\t\t\t.withPositions(this._getAllPositions())\n\t\t\t.withViewportMargin(8);\n\t}\n\n\t/** Build [preferred, ...fallbacks] position array for viewport-aware auto-flip. */\n\tprivate _getAllPositions(): ConnectedPosition[] {\n\t\tconst preferred = this.position();\n\t\treturn [preferred, ...BRN_TOOLTIP_FALLBACK_POSITIONS[preferred]].map((pos) => this._getAdjustedPositionFor(pos));\n\t}\n\n\tprivate _getAdjustedPositionFor(pos: BrnTooltipPosition): ConnectedPosition {\n\t\tconst position = BRN_TOOLTIP_POSITIONS_MAP[pos];\n\t\tconst isLtr = this._dir.value !== 'rtl';\n\n\t\treturn {\n\t\t\t...position,\n\t\t\toffsetX: position.offsetX != null ? (isLtr ? position.offsetX : -position.offsetX) : undefined,\n\t\t};\n\t}\n\n\tprivate _initTriggers() {\n\t\tthis._initScrollListener();\n\t\tthis._initHoverListeners();\n\t}\n\n\tprivate _initHoverListeners(): void {\n\t\tthis._listenersRefs = [\n\t\t\t...this._listenersRefs,\n\t\t\tthis._renderer.listen(this._elementRef.nativeElement, 'mouseenter', () => this.delay(true, this.showDelay())),\n\t\t\tthis._renderer.listen(this._elementRef.nativeElement, 'mouseleave', () => this.delay(false, this.hideDelay())),\n\t\t\tthis._renderer.listen(this._elementRef.nativeElement, 'focus', () => this.delay(true, this.showDelay())),\n\t\t\tthis._renderer.listen(this._elementRef.nativeElement, 'blur', () => this.delay(false, this.hideDelay())),\n\t\t];\n\t}\n\n\tprivate _initScrollListener(): void {\n\t\tthis._listenersRefs = [\n\t\t\t...this._listenersRefs,\n\t\t\tthis._renderer.listen(this._document.defaultView, 'scroll', () => this._hide()),\n\t\t];\n\t}\n\n\tprivate _cleanupTriggerEvents(): void {\n\t\tfor (const eventRef of this._listenersRefs) {\n\t\t\teventRef();\n\t\t}\n\t\tthis._listenersRefs = [];\n\t}\n\n\tprivate delay(isShow: boolean, delay = -1): void {\n\t\tthis._delaySubject?.next({ isShow, delay });\n\t}\n\n\tprivate _setupDelayMechanism(): void {\n\t\tthis._delaySubject?.complete();\n\t\tthis._delaySubject = new Subject<DelayConfig>();\n\n\t\tthis._delaySubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap((config) => (config.delay < 0 ? of(config) : timer(config.delay).pipe(map(() => config)))),\n\t\t\t\ttakeUntilDestroyed(this._destroyRef),\n\t\t\t)\n\t\t\t.subscribe((config) => {\n\t\t\t\tif (config.isShow) {\n\t\t\t\t\tthis._show();\n\t\t\t\t} else {\n\t\t\t\t\tthis._hide();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tprivate _show(): void {\n\t\tif (this._componentRef || !this._tooltipText() || this.mutableTooltipDisabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tooltipPortal = new ComponentPortal(BrnTooltipContent);\n\t\tthis._componentRef = this._overlayRef?.attach(tooltipPortal);\n\t\tthis._componentRef?.onDestroy(() => {\n\t\t\tthis._componentRef = undefined;\n\t\t});\n\t\tthis._componentRef?.instance.state.set('opened');\n\t\tthis._componentRef?.instance.setProps(\n\t\t\tthis._tooltipText(),\n\t\t\tthis.position(),\n\t\t\tthis._config.tooltipContentClasses,\n\t\t\tthis._config.arrowClasses(this.position()),\n\t\t\tthis._config.svgClasses,\n\t\t);\n\n\t\t// Subscribe to position changes for the lifetime of the tooltip so that\n\t\t// arrow direction and CSS classes stay in sync when the CDK flips the\n\t\t// overlay (initial show, viewport resize, scroll, etc.).\n\t\tconst strategy = this._overlayRef?.getConfig().positionStrategy as FlexibleConnectedPositionStrategy | undefined;\n\t\tif (strategy && this._componentRef) {\n\t\t\tconst compRef = this._componentRef;\n\t\t\tthis._positionChangeSub = strategy.positionChanges\n\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t\t.subscribe((change) => {\n\t\t\t\t\tconst resolved = resolveTooltipPosition(change.connectionPair);\n\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\tcompRef.instance.setProps(\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tresolved,\n\t\t\t\t\t\t\tthis._config.tooltipContentClasses,\n\t\t\t\t\t\t\tthis._config.arrowClasses(resolved),\n\t\t\t\t\t\t\tthis._config.svgClasses,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\trunInInjectionContext(this._injector, () => {\n\t\t\tthis._ariaEffectRef = effect(() => {\n\t\t\t\tconst tooltipId = this._componentRef?.instance.id();\n\t\t\t\tif (tooltipId) {\n\t\t\t\t\tthis._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', tooltipId);\n\t\t\t\t\tthis._ariaEffectRef?.destroy();\n\t\t\t\t\tthis._ariaEffectRef = undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tthis.show.emit();\n\t}\n\n\tprivate _hide(): void {\n\t\tif (!this._componentRef || this._tooltipHovered) return;\n\t\tthis._clearAriaDescribedBy();\n\t\tthis._positionChangeSub?.unsubscribe();\n\t\tthis._positionChangeSub = undefined;\n\n\t\tthis._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\n\t\tthis._componentRef.instance.state.set('closed');\n\t\tthis.hide.emit();\n\t\tthis._overlayRef?.detach();\n\t}\n\n\tprivate _clearAriaDescribedBy(): void {\n\t\tif (this._ariaEffectRef) {\n\t\t\tthis._ariaEffectRef.destroy();\n\t\t\tthis._ariaEffectRef = undefined;\n\t\t}\n\t}\n}\n","import { BrnTooltip } from './lib/brn-tooltip';\nimport { BrnTooltipContent } from './lib/brn-tooltip-content';\n\nexport * from './lib/brn-tooltip';\nexport * from './lib/brn-tooltip-content';\nexport { BRN_TOOLTIP_FALLBACK_POSITIONS, BrnTooltipPosition, resolveTooltipPosition } from './lib/brn-tooltip-position';\nexport * from './lib/brn-tooltip-type';\nexport * from './lib/brn-tooltip.token';\n\nexport const BrnTooltipImports = [BrnTooltip, BrnTooltipContent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-tooltip.mjs","sources":["../../../../libs/brain/tooltip/src/lib/brn-tooltip-string-template-outlet.ts","../../../../libs/brain/tooltip/src/lib/brn-tooltip-content.ts","../../../../libs/brain/tooltip/src/lib/brn-tooltip-position.ts","../../../../libs/brain/tooltip/src/lib/brn-tooltip.token.ts","../../../../libs/brain/tooltip/src/lib/brn-tooltip.ts","../../../../libs/brain/tooltip/src/index.ts","../../../../libs/brain/tooltip/src/spartan-ng-brain-tooltip.ts"],"sourcesContent":["import {\n\tDirective,\n\teffect,\n\ttype EffectRef,\n\ttype EmbeddedViewRef,\n\tinject,\n\tinput,\n\ttype OnDestroy,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\n\nexport function isTemplateRef<C = unknown>(value: unknown): value is TemplateRef<C> {\n\treturn value instanceof TemplateRef;\n}\n\nexport interface BrnTemplateOutletContext {\n\t$implicit: unknown;\n\t[key: string]: unknown;\n}\n\n@Directive({\n\tselector: '[brnTooltipStringTemplateOutlet]',\n\texportAs: 'brnTooltipStringTemplateOutlet',\n})\nexport class BrnTooltipStringTemplateOutlet<T = unknown> implements OnDestroy {\n\tprivate readonly _viewContainer = inject(ViewContainerRef);\n\tprivate readonly _templateRef = inject(TemplateRef<void>);\n\n\tprivate _embeddedViewRef: EmbeddedViewRef<BrnTemplateOutletContext> | null = null;\n\tprivate readonly _context = {} as BrnTemplateOutletContext;\n\n\tprivate _isFirstChange = true;\n\tprivate _lastOutletWasTemplate = false;\n\tprivate _lastTemplateRef: TemplateRef<void> | null = null;\n\tprivate _lastContext?: BrnTemplateOutletContext;\n\n\tpublic readonly brnTooltipStringTemplateOutletContext = input<BrnTemplateOutletContext | undefined>(undefined);\n\tpublic readonly brnTooltipStringTemplateOutlet = input.required<T | TemplateRef<void>>();\n\n\t_hasContextShapeChanged(context: BrnTemplateOutletContext | undefined): boolean {\n\t\tif (!context) {\n\t\t\treturn false;\n\t\t}\n\t\tconst prevCtxKeys = Object.keys(this._lastContext || {});\n\t\tconst currCtxKeys = Object.keys(context || {});\n\n\t\tif (prevCtxKeys.length === currCtxKeys.length) {\n\t\t\tfor (const propName of currCtxKeys) {\n\t\t\t\tif (!prevCtxKeys.includes(propName)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t_shouldViewBeRecreated(\n\t\tstringTemplateOutlet: TemplateRef<void> | T,\n\t\tstringTemplateOutletContext: BrnTemplateOutletContext | undefined,\n\t): boolean {\n\t\tconst isTemplate = isTemplateRef(stringTemplateOutlet);\n\n\t\tconst shouldOutletRecreate =\n\t\t\tthis._isFirstChange ||\n\t\t\tisTemplate !== this._lastOutletWasTemplate ||\n\t\t\t(isTemplate && stringTemplateOutlet !== this._lastTemplateRef);\n\n\t\tconst shouldContextRecreate = this._hasContextShapeChanged(stringTemplateOutletContext);\n\t\treturn shouldContextRecreate || shouldOutletRecreate;\n\t}\n\n\t_updateTrackingState(\n\t\tstringTemplateOutlet: TemplateRef<void> | T,\n\t\tstringTemplateOutletContext: BrnTemplateOutletContext | undefined,\n\t): void {\n\t\tconst isTemplate = isTemplateRef(stringTemplateOutlet);\n\t\tif (this._isFirstChange && !isTemplate) {\n\t\t\tthis._isFirstChange = false;\n\t\t}\n\n\t\tif (stringTemplateOutletContext !== undefined) {\n\t\t\tthis._lastContext = stringTemplateOutletContext;\n\t\t}\n\n\t\tthis._lastOutletWasTemplate = isTemplate;\n\t\tthis._lastTemplateRef = isTemplate ? stringTemplateOutlet : null;\n\t}\n\n\tprivate readonly _viewEffect: EffectRef = effect(() => {\n\t\tconst stringTemplateOutlet = this.brnTooltipStringTemplateOutlet();\n\t\tconst stringTemplateOutletContext = this.brnTooltipStringTemplateOutletContext();\n\n\t\tif (!this._isFirstChange && isTemplateRef(stringTemplateOutlet)) {\n\t\t\tthis._isFirstChange = true;\n\t\t}\n\n\t\tif (!isTemplateRef(stringTemplateOutlet)) {\n\t\t\tthis._context['$implicit'] = stringTemplateOutlet as T;\n\t\t}\n\n\t\tconst recreateView = this._shouldViewBeRecreated(stringTemplateOutlet, stringTemplateOutletContext);\n\t\tthis._updateTrackingState(stringTemplateOutlet, stringTemplateOutletContext);\n\n\t\tif (recreateView) {\n\t\t\tthis._recreateView(stringTemplateOutlet as TemplateRef<BrnTemplateOutletContext>, stringTemplateOutletContext);\n\t\t} else {\n\t\t\tthis._updateContext(stringTemplateOutlet, stringTemplateOutletContext);\n\t\t}\n\t});\n\n\tprivate _recreateView(\n\t\toutlet: TemplateRef<BrnTemplateOutletContext>,\n\t\tcontext: BrnTemplateOutletContext | undefined,\n\t): void {\n\t\tthis._viewContainer.clear();\n\t\tif (isTemplateRef(outlet)) {\n\t\t\tthis._embeddedViewRef = this._viewContainer.createEmbeddedView(outlet, context);\n\t\t} else {\n\t\t\tthis._embeddedViewRef = this._viewContainer.createEmbeddedView(this._templateRef, this._context);\n\t\t}\n\t}\n\n\tprivate _updateContext(outlet: TemplateRef<void> | T, context: BrnTemplateOutletContext | undefined): void {\n\t\tconst newCtx = isTemplateRef(outlet) ? context : this._context;\n\t\tlet oldCtx = this._embeddedViewRef?.context;\n\n\t\tif (!oldCtx) {\n\t\t\toldCtx = newCtx;\n\t\t} else if (newCtx && typeof newCtx === 'object') {\n\t\t\tfor (const propName of Object.keys(newCtx)) {\n\t\t\t\toldCtx[propName] = newCtx[propName];\n\t\t\t}\n\t\t}\n\t\tthis._lastContext = oldCtx;\n\t}\n\n\tstatic ngTemplateContextGuard<T>(\n\t\t_dir: BrnTooltipStringTemplateOutlet<T>,\n\t\t_ctx: unknown,\n\t): _ctx is BrnTemplateOutletContext {\n\t\treturn true;\n\t}\n\n\tpublic ngOnDestroy(): void {\n\t\tthis._viewEffect.destroy();\n\t\tthis._viewContainer.clear();\n\t\tthis._embeddedViewRef = null;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { BrnTooltipPosition } from './brn-tooltip-position';\nimport { BrnTooltipStringTemplateOutlet } from './brn-tooltip-string-template-outlet';\nimport { BrnTooltipType } from './brn-tooltip-type';\n\nlet uniqueId = 0;\n\n@Component({\n\timports: [BrnTooltipStringTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[class]': '_tooltipClass()',\n\t\t'[attr.id]': 'id()',\n\t\t'[attr.data-side]': '_position()',\n\t\t'[attr.data-state]': 'state()',\n\t\trole: 'tooltip',\n\t},\n\ttemplate: `\n\t\t<ng-container *brnTooltipStringTemplateOutlet=\"_tooltipText()\">{{ _tooltipText() }}</ng-container>\n\n\t\t<span [class]=\"_arrowClass()\">\n\t\t\t<svg [class]=\"_svgClass()\" width=\"10\" height=\"5\" viewBox=\"0 0 30 10\" preserveAspectRatio=\"none\">\n\t\t\t\t<polygon points=\"0,0 30,0 15,10\" />\n\t\t\t</svg>\n\t\t</span>\n\t`,\n})\nexport class BrnTooltipContent {\n\tpublic readonly id = input<string>(`brn-tooltip-${++uniqueId}`);\n\tpublic readonly state = signal<'closed' | 'opened'>('closed');\n\n\tprotected readonly _tooltipClass = signal<ClassValue>('');\n\tprotected readonly _arrowClass = signal<ClassValue>('');\n\tprotected readonly _svgClass = signal<ClassValue>('');\n\n\tprotected readonly _position = signal<BrnTooltipPosition>('top');\n\tprotected readonly _tooltipText = signal<BrnTooltipType>(null);\n\n\tpublic setProps(\n\t\ttooltipText: BrnTooltipType,\n\t\tposition: BrnTooltipPosition,\n\t\ttooltipClasses: ClassValue,\n\t\tarrowClasses: ClassValue,\n\t\tsvgClasses: ClassValue,\n\t): void {\n\t\tif (tooltipText) {\n\t\t\tthis._tooltipText.set(tooltipText);\n\t\t}\n\t\tthis._position.set(position);\n\n\t\tthis._tooltipClass.set(tooltipClasses);\n\t\tthis._arrowClass.set(arrowClasses);\n\t\tthis._svgClass.set(svgClasses);\n\t}\n}\n","import type { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport type BrnTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\nexport const BRN_TOOLTIP_POSITIONS_MAP: Record<BrnTooltipPosition, ConnectedPosition> = {\n\ttop: {\n\t\toriginX: 'center',\n\t\toriginY: 'top',\n\t\toverlayX: 'center',\n\t\toverlayY: 'bottom',\n\t\toffsetY: -8,\n\t},\n\tbottom: {\n\t\toriginX: 'center',\n\t\toriginY: 'bottom',\n\t\toverlayX: 'center',\n\t\toverlayY: 'top',\n\t\toffsetY: 8,\n\t},\n\tleft: {\n\t\toriginX: 'start',\n\t\toriginY: 'center',\n\t\toverlayX: 'end',\n\t\toverlayY: 'center',\n\t\toffsetX: -8,\n\t},\n\tright: {\n\t\toriginX: 'end',\n\t\toriginY: 'center',\n\t\toverlayX: 'start',\n\t\toverlayY: 'center',\n\t\toffsetX: 8,\n\t},\n};\n\n/** Fallback order for each preferred position when it doesn't fit in the viewport. */\nexport const BRN_TOOLTIP_FALLBACK_POSITIONS: Record<BrnTooltipPosition, BrnTooltipPosition[]> = {\n\ttop: ['bottom', 'right', 'left'],\n\tbottom: ['top', 'right', 'left'],\n\tleft: ['right', 'top', 'bottom'],\n\tright: ['left', 'top', 'bottom'],\n};\n\n/** Map a resolved CDK ConnectedPosition back to a BrnTooltipPosition, or null if no match. */\nexport function resolveTooltipPosition(pair: ConnectedPosition): BrnTooltipPosition | null {\n\tfor (const [pos, config] of Object.entries(BRN_TOOLTIP_POSITIONS_MAP)) {\n\t\tif (\n\t\t\tpair.originX === config.originX &&\n\t\t\tpair.originY === config.originY &&\n\t\t\tpair.overlayX === config.overlayX &&\n\t\t\tpair.overlayY === config.overlayY\n\t\t) {\n\t\t\treturn pos as BrnTooltipPosition;\n\t\t}\n\t}\n\treturn null;\n}\n","import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport { type ClassValue } from 'clsx';\nimport { type BrnTooltipPosition } from './brn-tooltip-position';\n\nexport interface BrnTooltipOptions {\n\t/** Default delay when the tooltip is shown. */\n\tshowDelay: number;\n\t/** Default delay when the tooltip is hidden. */\n\thideDelay: number;\n\t/** Default position for tooltips. */\n\tposition?: BrnTooltipPosition;\n\t/** Additional classes for the SVG element in the tooltip arrow. */\n\tsvgClasses: ClassValue;\n\t/** Additional classes for the tooltip arrow element based on position. */\n\tarrowClasses: (position: BrnTooltipPosition) => ClassValue;\n\t/** Additional classes for the tooltip content element. */\n\ttooltipContentClasses: ClassValue;\n}\n\nexport const defaultOptions: BrnTooltipOptions = {\n\tshowDelay: 150,\n\thideDelay: 100,\n\tsvgClasses: '',\n\tarrowClasses: () => '',\n\ttooltipContentClasses: '',\n};\n\nconst BRN_TOOLTIP_DEFAULT_OPTIONS = new InjectionToken<BrnTooltipOptions>('brn-tooltip-default-options', {\n\tprovidedIn: 'root',\n\tfactory: () => defaultOptions,\n});\n\nexport function provideBrnTooltipDefaultOptions(options: Partial<BrnTooltipOptions>): ValueProvider {\n\treturn { provide: BRN_TOOLTIP_DEFAULT_OPTIONS, useValue: { ...defaultOptions, ...options } };\n}\n\nexport function injectBrnTooltipDefaultOptions(): BrnTooltipOptions {\n\treturn inject(BRN_TOOLTIP_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions;\n}\n","import {\n\tConnectedPosition,\n\tFlexibleConnectedPositionStrategy,\n\tOverlay,\n\tOverlayPositionBuilder,\n\ttype OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\ttype ComponentRef,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\toutput,\n\tRenderer2,\n\trunInInjectionContext,\n\ttype TemplateRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { of, Subject, Subscription, timer } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { BrnTooltipContent } from './brn-tooltip-content';\nimport {\n\tBRN_TOOLTIP_FALLBACK_POSITIONS,\n\tBRN_TOOLTIP_POSITIONS_MAP,\n\tBrnTooltipPosition,\n\tresolveTooltipPosition,\n} from './brn-tooltip-position';\nimport { BrnTooltipType } from './brn-tooltip-type';\nimport { injectBrnTooltipDefaultOptions } from './brn-tooltip.token';\n\ninterface DelayConfig {\n\tisShow: boolean;\n\tdelay: number;\n}\n\n@Directive({ selector: '[brnTooltip]', exportAs: 'brnTooltip' })\nexport class BrnTooltip {\n\tprivate readonly _config = injectBrnTooltipDefaultOptions();\n\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _elementRef = inject(ElementRef<HTMLElement>);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _overlay = inject(Overlay);\n\tprivate readonly _overlayPositionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _dir = inject(Directionality);\n\n\tprivate _tooltipHovered = false;\n\tprivate _listenersRefs: (() => void)[] = [];\n\tprivate _delaySubject: Subject<DelayConfig> | undefined = undefined;\n\tprivate _componentRef: ComponentRef<BrnTooltipContent> | undefined = undefined;\n\tprivate _overlayRef: OverlayRef | undefined = undefined;\n\tprivate _ariaEffectRef: ReturnType<typeof effect> | undefined = undefined;\n\tprivate _positionChangeSub: Subscription | undefined = undefined;\n\n\tpublic readonly tooltipDisabled = input<boolean, boolean>(false, { transform: booleanAttribute });\n\tpublic readonly mutableTooltipDisabled = linkedSignal(this.tooltipDisabled);\n\n\tpublic readonly position = input<BrnTooltipPosition>(this._config.position ?? 'top');\n\tpublic readonly brnTooltip = input<BrnTooltipType>(null);\n\tpublic readonly showDelay = input<number, number>(this._config.showDelay, { transform: numberAttribute });\n\tpublic readonly hideDelay = input<number, number>(this._config.hideDelay, { transform: numberAttribute });\n\n\tpublic readonly show = output<void>();\n\tpublic readonly hide = output<void>();\n\n\tprivate readonly _tooltipText = computed<string | TemplateRef<void>>(() => {\n\t\tlet tooltipText = this.brnTooltip();\n\t\tif (!tooltipText) {\n\t\t\treturn '';\n\t\t} else if (typeof tooltipText === 'string') {\n\t\t\ttooltipText = tooltipText.trim();\n\t\t}\n\t\treturn tooltipText;\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis._overlayRef = this._overlay.create({\n\t\t\t\tdirection: this._dir,\n\t\t\t\tpositionStrategy: this._buildPositionStrategy(),\n\t\t\t});\n\n\t\t\tthis._dir.change.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n\t\t\t\tif (this._overlayRef) {\n\t\t\t\t\tthis._updatePosition();\n\t\t\t\t\tif (this._overlayRef.hasAttached()) {\n\t\t\t\t\t\tthis._overlayRef.updatePosition();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\trunInInjectionContext(this._injector, () => {\n\t\t\t\tif (!this._overlayRef) return;\n\t\t\t\tthis._setupDelayMechanism();\n\t\t\t\tthis._cleanupTriggerEvents();\n\t\t\t\tthis._initTriggers();\n\t\t\t\tthis._listenersRefs = [\n\t\t\t\t\t...this._listenersRefs,\n\t\t\t\t\tthis._renderer.listen(this._overlayRef.hostElement, 'mouseenter', () => (this._tooltipHovered = true)),\n\t\t\t\t\tthis._renderer.listen(this._overlayRef.hostElement, 'mouseleave', () => {\n\t\t\t\t\t\tthis._tooltipHovered = false;\n\t\t\t\t\t\tthis.delay(false, this.hideDelay());\n\t\t\t\t\t}),\n\t\t\t\t];\n\t\t\t});\n\t\t});\n\n\t\tthis._destroyRef.onDestroy(() => {\n\t\t\tthis._clearAriaDescribedBy();\n\t\t\tthis._delaySubject?.complete();\n\t\t\tthis._cleanupTriggerEvents();\n\t\t\tthis._overlayRef?.dispose();\n\t\t});\n\t}\n\n\tprivate _updatePosition(): void {\n\t\tconst strategy = this._overlayRef?.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n\n\t\tif (strategy) {\n\t\t\tstrategy.withPositions(this._getAllPositions());\n\t\t}\n\t}\n\n\tprivate _buildPositionStrategy() {\n\t\treturn this._overlayPositionBuilder\n\t\t\t.flexibleConnectedTo(this._elementRef)\n\t\t\t.withPositions(this._getAllPositions())\n\t\t\t.withViewportMargin(8);\n\t}\n\n\t/** Build [preferred, ...fallbacks] position array for viewport-aware auto-flip. */\n\tprivate _getAllPositions(): ConnectedPosition[] {\n\t\tconst preferred = this.position();\n\t\treturn [preferred, ...BRN_TOOLTIP_FALLBACK_POSITIONS[preferred]].map((pos) => this._getAdjustedPositionFor(pos));\n\t}\n\n\tprivate _getAdjustedPositionFor(pos: BrnTooltipPosition): ConnectedPosition {\n\t\tconst position = BRN_TOOLTIP_POSITIONS_MAP[pos];\n\t\tconst isLtr = this._dir.value !== 'rtl';\n\n\t\treturn {\n\t\t\t...position,\n\t\t\toffsetX: position.offsetX != null ? (isLtr ? position.offsetX : -position.offsetX) : undefined,\n\t\t};\n\t}\n\n\tprivate _initTriggers() {\n\t\tthis._initScrollListener();\n\t\tthis._initHoverListeners();\n\t}\n\n\tprivate _initHoverListeners(): void {\n\t\tthis._listenersRefs = [\n\t\t\t...this._listenersRefs,\n\t\t\tthis._renderer.listen(this._elementRef.nativeElement, 'mouseenter', () => this.delay(true, this.showDelay())),\n\t\t\tthis._renderer.listen(this._elementRef.nativeElement, 'mouseleave', () => this.delay(false, this.hideDelay())),\n\t\t\tthis._renderer.listen(this._elementRef.nativeElement, 'focus', () => this.delay(true, this.showDelay())),\n\t\t\tthis._renderer.listen(this._elementRef.nativeElement, 'blur', () => this.delay(false, this.hideDelay())),\n\t\t];\n\t}\n\n\tprivate _initScrollListener(): void {\n\t\tthis._listenersRefs = [\n\t\t\t...this._listenersRefs,\n\t\t\tthis._renderer.listen(this._document.defaultView, 'scroll', () => this._hide()),\n\t\t];\n\t}\n\n\tprivate _cleanupTriggerEvents(): void {\n\t\tfor (const eventRef of this._listenersRefs) {\n\t\t\teventRef();\n\t\t}\n\t\tthis._listenersRefs = [];\n\t}\n\n\tprivate delay(isShow: boolean, delay = -1): void {\n\t\tthis._delaySubject?.next({ isShow, delay });\n\t}\n\n\tprivate _setupDelayMechanism(): void {\n\t\tthis._delaySubject?.complete();\n\t\tthis._delaySubject = new Subject<DelayConfig>();\n\n\t\tthis._delaySubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap((config) => (config.delay < 0 ? of(config) : timer(config.delay).pipe(map(() => config)))),\n\t\t\t\ttakeUntilDestroyed(this._destroyRef),\n\t\t\t)\n\t\t\t.subscribe((config) => {\n\t\t\t\tif (config.isShow) {\n\t\t\t\t\tthis._show();\n\t\t\t\t} else {\n\t\t\t\t\tthis._hide();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tprivate _show(): void {\n\t\tif (this._componentRef || !this._tooltipText() || this.mutableTooltipDisabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tooltipPortal = new ComponentPortal(BrnTooltipContent);\n\t\tthis._componentRef = this._overlayRef?.attach(tooltipPortal);\n\t\tthis._componentRef?.onDestroy(() => {\n\t\t\tthis._componentRef = undefined;\n\t\t});\n\t\tthis._componentRef?.instance.state.set('opened');\n\t\tthis._componentRef?.instance.setProps(\n\t\t\tthis._tooltipText(),\n\t\t\tthis.position(),\n\t\t\tthis._config.tooltipContentClasses,\n\t\t\tthis._config.arrowClasses(this.position()),\n\t\t\tthis._config.svgClasses,\n\t\t);\n\n\t\t// Subscribe to position changes for the lifetime of the tooltip so that\n\t\t// arrow direction and CSS classes stay in sync when the CDK flips the\n\t\t// overlay (initial show, viewport resize, scroll, etc.).\n\t\tconst strategy = this._overlayRef?.getConfig().positionStrategy as FlexibleConnectedPositionStrategy | undefined;\n\t\tif (strategy && this._componentRef) {\n\t\t\tconst compRef = this._componentRef;\n\t\t\tthis._positionChangeSub = strategy.positionChanges\n\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t\t.subscribe((change) => {\n\t\t\t\t\tconst resolved = resolveTooltipPosition(change.connectionPair);\n\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\tcompRef.instance.setProps(\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tresolved,\n\t\t\t\t\t\t\tthis._config.tooltipContentClasses,\n\t\t\t\t\t\t\tthis._config.arrowClasses(resolved),\n\t\t\t\t\t\t\tthis._config.svgClasses,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\trunInInjectionContext(this._injector, () => {\n\t\t\tthis._ariaEffectRef = effect(() => {\n\t\t\t\tconst tooltipId = this._componentRef?.instance.id();\n\t\t\t\tif (tooltipId) {\n\t\t\t\t\tthis._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', tooltipId);\n\t\t\t\t\tthis._ariaEffectRef?.destroy();\n\t\t\t\t\tthis._ariaEffectRef = undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tthis.show.emit();\n\t}\n\n\tprivate _hide(): void {\n\t\tif (!this._componentRef || this._tooltipHovered) return;\n\t\tthis._clearAriaDescribedBy();\n\t\tthis._positionChangeSub?.unsubscribe();\n\t\tthis._positionChangeSub = undefined;\n\n\t\tthis._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\n\t\tthis._componentRef.instance.state.set('closed');\n\t\tthis.hide.emit();\n\t\tthis._overlayRef?.detach();\n\t}\n\n\tprivate _clearAriaDescribedBy(): void {\n\t\tif (this._ariaEffectRef) {\n\t\t\tthis._ariaEffectRef.destroy();\n\t\t\tthis._ariaEffectRef = undefined;\n\t\t}\n\t}\n}\n","import { BrnTooltip } from './lib/brn-tooltip';\nimport { BrnTooltipContent } from './lib/brn-tooltip-content';\n\nexport * from './lib/brn-tooltip';\nexport * from './lib/brn-tooltip-content';\nexport { BRN_TOOLTIP_FALLBACK_POSITIONS, BrnTooltipPosition, resolveTooltipPosition } from './lib/brn-tooltip-position';\nexport * from './lib/brn-tooltip-type';\nexport * from './lib/brn-tooltip.token';\n\nexport const BrnTooltipImports = [BrnTooltip, BrnTooltipContent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAYM,SAAU,aAAa,CAAc,KAAc,EAAA;IACxD,OAAO,KAAK,YAAY,WAAW;AACpC;MAWa,8BAA8B,CAAA;AACzB,IAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAA,YAAY,GAAG,MAAM,EAAC,WAAiB,EAAC;IAEjD,gBAAgB,GAAqD,IAAI;IAChE,QAAQ,GAAG,EAA8B;IAElD,cAAc,GAAG,IAAI;IACrB,sBAAsB,GAAG,KAAK;IAC9B,gBAAgB,GAA6B,IAAI;AACjD,IAAA,YAAY;AAEJ,IAAA,qCAAqC,GAAG,KAAK,CAAuC,SAAS,4GAAC;AAC9F,IAAA,8BAA8B,GAAG,KAAK,CAAC,QAAQ,oGAAyB;AAExF,IAAA,uBAAuB,CAAC,OAA6C,EAAA;QACpE,IAAI,CAAC,OAAO,EAAE;AACb,YAAA,OAAO,KAAK;QACb;AACA,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAE9C,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE;AAC9C,YAAA,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE;gBACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACpC,oBAAA,OAAO,IAAI;gBACZ;YACD;AACA,YAAA,OAAO,KAAK;QACb;aAAO;AACN,YAAA,OAAO,IAAI;QACZ;IACD;IAEA,sBAAsB,CACrB,oBAA2C,EAC3C,2BAAiE,EAAA;AAEjE,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,oBAAoB,CAAC;AAEtD,QAAA,MAAM,oBAAoB,GACzB,IAAI,CAAC,cAAc;YACnB,UAAU,KAAK,IAAI,CAAC,sBAAsB;aACzC,UAAU,IAAI,oBAAoB,KAAK,IAAI,CAAC,gBAAgB,CAAC;QAE/D,MAAM,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC,2BAA2B,CAAC;QACvF,OAAO,qBAAqB,IAAI,oBAAoB;IACrD;IAEA,oBAAoB,CACnB,oBAA2C,EAC3C,2BAAiE,EAAA;AAEjE,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,oBAAoB,CAAC;AACtD,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE;AACvC,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAC5B;AAEA,QAAA,IAAI,2BAA2B,KAAK,SAAS,EAAE;AAC9C,YAAA,IAAI,CAAC,YAAY,GAAG,2BAA2B;QAChD;AAEA,QAAA,IAAI,CAAC,sBAAsB,GAAG,UAAU;AACxC,QAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,GAAG,oBAAoB,GAAG,IAAI;IACjE;AAEiB,IAAA,WAAW,GAAc,MAAM,CAAC,MAAK;AACrD,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,8BAA8B,EAAE;AAClE,QAAA,MAAM,2BAA2B,GAAG,IAAI,CAAC,qCAAqC,EAAE;QAEhF,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,oBAAoB,CAAC,EAAE;AAChE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC3B;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE;AACzC,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,oBAAyB;QACvD;QAEA,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;AACnG,QAAA,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;QAE5E,IAAI,YAAY,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,oBAA6D,EAAE,2BAA2B,CAAC;QAC/G;aAAO;AACN,YAAA,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;QACvE;AACD,IAAA,CAAC,kFAAC;IAEM,aAAa,CACpB,MAA6C,EAC7C,OAA6C,EAAA;AAE7C,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,QAAA,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC;QAChF;aAAO;AACN,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC;QACjG;IACD;IAEQ,cAAc,CAAC,MAA6B,EAAE,OAA6C,EAAA;AAClG,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,QAAQ;AAC9D,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO;QAE3C,IAAI,CAAC,MAAM,EAAE;YACZ,MAAM,GAAG,MAAM;QAChB;AAAO,aAAA,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAChD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC3C,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YACpC;QACD;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM;IAC3B;AAEA,IAAA,OAAO,sBAAsB,CAC5B,IAAuC,EACvC,IAAa,EAAA;AAEb,QAAA,OAAO,IAAI;IACZ;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;IAC7B;2HA7HY,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;+GAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,qCAAA,EAAA,EAAA,iBAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,uCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,8BAAA,EAAA,EAAA,iBAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gCAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,iBAAA;;;AClBD,IAAI,QAAQ,GAAG,CAAC;MAsBH,iBAAiB,CAAA;IACb,EAAE,GAAG,KAAK,CAAS,CAAA,YAAA,EAAe,EAAE,QAAQ,CAAA,CAAE,yEAAC;AAC/C,IAAA,KAAK,GAAG,MAAM,CAAsB,QAAQ,4EAAC;AAE1C,IAAA,aAAa,GAAG,MAAM,CAAa,EAAE,oFAAC;AACtC,IAAA,WAAW,GAAG,MAAM,CAAa,EAAE,kFAAC;AACpC,IAAA,SAAS,GAAG,MAAM,CAAa,EAAE,gFAAC;AAElC,IAAA,SAAS,GAAG,MAAM,CAAqB,KAAK,gFAAC;AAC7C,IAAA,YAAY,GAAG,MAAM,CAAiB,IAAI,mFAAC;IAEvD,QAAQ,CACd,WAA2B,EAC3B,QAA4B,EAC5B,cAA0B,EAC1B,YAAwB,EACxB,UAAsB,EAAA;QAEtB,IAAI,WAAW,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;QACnC;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE5B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;IAC/B;2HA1BY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAVnB;;;;;;;;AAQT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjBS,8BAA8B,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,EAAA,gCAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAmB5B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBApB7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACV,OAAO,EAAE,CAAC,8BAA8B,CAAC;oBACzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,IAAI,EAAE,SAAS;AACf,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,CAAA,CAAA;AACD,iBAAA;;;ACvBM,MAAM,yBAAyB,GAAkD;AACvF,IAAA,GAAG,EAAE;AACJ,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,CAAC;AACX,KAAA;AACD,IAAA,MAAM,EAAE;AACP,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,CAAC;AACV,KAAA;AACD,IAAA,IAAI,EAAE;AACL,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,CAAC;AACX,KAAA;AACD,IAAA,KAAK,EAAE;AACN,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,OAAO,EAAE,CAAC;AACV,KAAA;CACD;AAED;AACO,MAAM,8BAA8B,GAAqD;AAC/F,IAAA,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;AAChC,IAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;AAChC,IAAA,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;AAChC,IAAA,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;;AAGjC;AACM,SAAU,sBAAsB,CAAC,IAAuB,EAAA;AAC7D,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE;AACtE,QAAA,IACC,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;AAC/B,YAAA,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;AAC/B,YAAA,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;AACjC,YAAA,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAChC;AACD,YAAA,OAAO,GAAyB;QACjC;IACD;AACA,IAAA,OAAO,IAAI;AACZ;;ACrCO,MAAM,cAAc,GAAsB;AAChD,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,YAAY,EAAE,MAAM,EAAE;AACtB,IAAA,qBAAqB,EAAE,EAAE;;AAG1B,MAAM,2BAA2B,GAAG,IAAI,cAAc,CAAoB,6BAA6B,EAAE;AACxG,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,cAAc;AAC7B,CAAA,CAAC;AAEI,SAAU,+BAA+B,CAAC,OAAmC,EAAA;AAClF,IAAA,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,EAAE;AAC7F;SAEgB,8BAA8B,GAAA;AAC7C,IAAA,OAAO,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,cAAc;AACjF;;MCWa,UAAU,CAAA;IACL,OAAO,GAAG,8BAA8B,EAAE;AAE1C,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,WAAW,GAAG,MAAM,EAAC,UAAuB,EAAC;AAC7C,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,IAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACxD,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,IAAA,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC;IAEtC,eAAe,GAAG,KAAK;IACvB,cAAc,GAAmB,EAAE;IACnC,aAAa,GAAqC,SAAS;IAC3D,aAAa,GAAgD,SAAS;IACtE,WAAW,GAA2B,SAAS;IAC/C,cAAc,GAA0C,SAAS;IACjE,kBAAkB,GAA6B,SAAS;IAEhD,eAAe,GAAG,KAAK,CAAmB,KAAK,uFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACjF,IAAA,sBAAsB,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,6FAAC;IAE3D,QAAQ,GAAG,KAAK,CAAqB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AACpE,IAAA,UAAU,GAAG,KAAK,CAAiB,IAAI,iFAAC;AACxC,IAAA,SAAS,GAAG,KAAK,CAAiB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,eAAe,GAAG;AACzF,IAAA,SAAS,GAAG,KAAK,CAAiB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,eAAe,GAAG;IAEzF,IAAI,GAAG,MAAM,EAAQ;IACrB,IAAI,GAAG,MAAM,EAAQ;AAEpB,IAAA,YAAY,GAAG,QAAQ,CAA6B,MAAK;AACzE,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;QACnC,IAAI,CAAC,WAAW,EAAE;AACjB,YAAA,OAAO,EAAE;QACV;AAAO,aAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AAC3C,YAAA,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE;QACjC;AACA,QAAA,OAAO,WAAW;AACnB,IAAA,CAAC,mFAAC;AAEF,IAAA,WAAA,GAAA;QACC,eAAe,CAAC,MAAK;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvC,SAAS,EAAE,IAAI,CAAC,IAAI;AACpB,gBAAA,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,EAAE;AAC/C,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC1E,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;oBACrB,IAAI,CAAC,eAAe,EAAE;AACtB,oBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE;AACnC,wBAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;oBAClC;gBACD;AACD,YAAA,CAAC,CAAC;AAEF,YAAA,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAK;gBAC1C,IAAI,CAAC,IAAI,CAAC,WAAW;oBAAE;gBACvB,IAAI,CAAC,oBAAoB,EAAE;gBAC3B,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,cAAc,GAAG;oBACrB,GAAG,IAAI,CAAC,cAAc;oBACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AACtG,oBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,EAAE,MAAK;AACtE,wBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;wBAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACpC,oBAAA,CAAC,CAAC;iBACF;AACF,YAAA,CAAC,CAAC;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAK;YAC/B,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE;YAC9B,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;AAC5B,QAAA,CAAC,CAAC;IACH;IAEQ,eAAe,GAAA;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,gBAAqD;QAEpG,IAAI,QAAQ,EAAE;YACb,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChD;IACD;IAEQ,sBAAsB,GAAA;QAC7B,OAAO,IAAI,CAAC;AACV,aAAA,mBAAmB,CAAC,IAAI,CAAC,WAAW;AACpC,aAAA,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE;aACrC,kBAAkB,CAAC,CAAC,CAAC;IACxB;;IAGQ,gBAAgB,GAAA;AACvB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE;QACjC,OAAO,CAAC,SAAS,EAAE,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACjH;AAEQ,IAAA,uBAAuB,CAAC,GAAuB,EAAA;AACtD,QAAA,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK;QAEvC,OAAO;AACN,YAAA,GAAG,QAAQ;AACX,YAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,SAAS;SAC9F;IACF;IAEQ,aAAa,GAAA;QACpB,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,CAAC,mBAAmB,EAAE;IAC3B;IAEQ,mBAAmB,GAAA;QAC1B,IAAI,CAAC,cAAc,GAAG;YACrB,GAAG,IAAI,CAAC,cAAc;YACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7G,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9G,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACxG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;SACxG;IACF;IAEQ,mBAAmB,GAAA;QAC1B,IAAI,CAAC,cAAc,GAAG;YACrB,GAAG,IAAI,CAAC,cAAc;YACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SAC/E;IACF;IAEQ,qBAAqB,GAAA;AAC5B,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AAC3C,YAAA,QAAQ,EAAE;QACX;AACA,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;IACzB;AAEQ,IAAA,KAAK,CAAC,MAAe,EAAE,KAAK,GAAG,CAAC,CAAC,EAAA;QACxC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5C;IAEQ,oBAAoB,GAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAe;AAE/C,QAAA,IAAI,CAAC;aACH,IAAI,CACJ,SAAS,CAAC,CAAC,MAAM,MAAM,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,EACpG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAEpC,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACrB,YAAA,IAAI,MAAM,CAAC,MAAM,EAAE;gBAClB,IAAI,CAAC,KAAK,EAAE;YACb;iBAAO;gBACN,IAAI,CAAC,KAAK,EAAE;YACb;AACD,QAAA,CAAC,CAAC;IACJ;IAEQ,KAAK,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;YAChF;QACD;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC,iBAAiB,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAK;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS;AAC/B,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAChD,QAAA,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CACpC,IAAI,CAAC,YAAY,EAAE,EACnB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAClC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC1C,IAAI,CAAC,OAAO,CAAC,UAAU,CACvB;;;;QAKD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,gBAAiE;AAChH,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AACnC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa;AAClC,YAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;AACjC,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,iBAAA,SAAS,CAAC,CAAC,MAAM,KAAI;gBACrB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC;gBAC9D,IAAI,QAAQ,EAAE;AACb,oBAAA,OAAO,CAAC,QAAQ,CAAC,QAAQ,CACxB,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAClC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CACvB;gBACF;AACD,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAK;AAC1C,YAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAK;gBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE;gBACnD,IAAI,SAAS,EAAE;AACd,oBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAC1F,oBAAA,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE;AAC9B,oBAAA,IAAI,CAAC,cAAc,GAAG,SAAS;gBAChC;AACD,YAAA,CAAC,qFAAC;AACH,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACjB;IAEQ,KAAK,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe;YAAE;QACjD,IAAI,CAAC,qBAAqB,EAAE;AAC5B,QAAA,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS;AAEnC,QAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAClF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAChB,QAAA,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE;IAC3B;IAEQ,qBAAqB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS;QAChC;IACD;2HA1OY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;+GAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE;;;MCvClD,iBAAiB,GAAG,CAAC,UAAU,EAAE,iBAAiB;;ACT/D;;AAEG;;;;"}
@@ -92,13 +92,13 @@
92
92
  --color-popover: var(--popover);
93
93
  --color-card-foreground: var(--card-foreground);
94
94
  --color-card: var(--card);
95
- --radius-sm: calc(var(--radius) - 4px);
96
- --radius-md: calc(var(--radius) - 2px);
95
+ --radius-sm: calc(var(--radius) * 0.6);
96
+ --radius-md: calc(var(--radius) * 0.8);
97
97
  --radius-lg: var(--radius);
98
- --radius-xl: calc(var(--radius) + 4px);
99
- --radius-2xl: calc(var(--radius) + 8px);
100
- --radius-3xl: calc(var(--radius) + 12px);
101
- --radius-4xl: calc(var(--radius) + 16px);
98
+ --radius-xl: calc(var(--radius) * 1.4);
99
+ --radius-2xl: calc(var(--radius) * 1.8);
100
+ --radius-3xl: calc(var(--radius) * 2.2);
101
+ --radius-4xl: calc(var(--radius) * 2.6);
102
102
  --animate-indeterminate: indeterminate 4s ease-in-out infinite;
103
103
 
104
104
  @keyframes indeterminate {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spartan-ng/brain",
3
- "version": "0.0.1-alpha.707",
3
+ "version": "0.0.1-alpha.708",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/spartan-ng/spartan"
@@ -15,159 +15,159 @@
15
15
  "default": "./package.json"
16
16
  },
17
17
  ".": {
18
- "types": "./index.d.ts",
18
+ "types": "./types/spartan-ng-brain.d.ts",
19
19
  "default": "./fesm2022/spartan-ng-brain.mjs"
20
20
  },
21
21
  "./accordion": {
22
- "types": "./accordion/index.d.ts",
22
+ "types": "./types/spartan-ng-brain-accordion.d.ts",
23
23
  "default": "./fesm2022/spartan-ng-brain-accordion.mjs"
24
24
  },
25
25
  "./alert-dialog": {
26
- "types": "./alert-dialog/index.d.ts",
26
+ "types": "./types/spartan-ng-brain-alert-dialog.d.ts",
27
27
  "default": "./fesm2022/spartan-ng-brain-alert-dialog.mjs"
28
28
  },
29
29
  "./autocomplete": {
30
- "types": "./autocomplete/index.d.ts",
30
+ "types": "./types/spartan-ng-brain-autocomplete.d.ts",
31
31
  "default": "./fesm2022/spartan-ng-brain-autocomplete.mjs"
32
32
  },
33
33
  "./avatar": {
34
- "types": "./avatar/index.d.ts",
34
+ "types": "./types/spartan-ng-brain-avatar.d.ts",
35
35
  "default": "./fesm2022/spartan-ng-brain-avatar.mjs"
36
36
  },
37
37
  "./button": {
38
- "types": "./button/index.d.ts",
38
+ "types": "./types/spartan-ng-brain-button.d.ts",
39
39
  "default": "./fesm2022/spartan-ng-brain-button.mjs"
40
40
  },
41
41
  "./calendar": {
42
- "types": "./calendar/index.d.ts",
42
+ "types": "./types/spartan-ng-brain-calendar.d.ts",
43
43
  "default": "./fesm2022/spartan-ng-brain-calendar.mjs"
44
44
  },
45
45
  "./checkbox": {
46
- "types": "./checkbox/index.d.ts",
46
+ "types": "./types/spartan-ng-brain-checkbox.d.ts",
47
47
  "default": "./fesm2022/spartan-ng-brain-checkbox.mjs"
48
48
  },
49
49
  "./collapsible": {
50
- "types": "./collapsible/index.d.ts",
50
+ "types": "./types/spartan-ng-brain-collapsible.d.ts",
51
51
  "default": "./fesm2022/spartan-ng-brain-collapsible.mjs"
52
52
  },
53
53
  "./combobox": {
54
- "types": "./combobox/index.d.ts",
54
+ "types": "./types/spartan-ng-brain-combobox.d.ts",
55
55
  "default": "./fesm2022/spartan-ng-brain-combobox.mjs"
56
56
  },
57
57
  "./command": {
58
- "types": "./command/index.d.ts",
58
+ "types": "./types/spartan-ng-brain-command.d.ts",
59
59
  "default": "./fesm2022/spartan-ng-brain-command.mjs"
60
60
  },
61
61
  "./core": {
62
- "types": "./core/index.d.ts",
62
+ "types": "./types/spartan-ng-brain-core.d.ts",
63
63
  "default": "./fesm2022/spartan-ng-brain-core.mjs"
64
64
  },
65
65
  "./date-time": {
66
- "types": "./date-time/index.d.ts",
66
+ "types": "./types/spartan-ng-brain-date-time.d.ts",
67
67
  "default": "./fesm2022/spartan-ng-brain-date-time.mjs"
68
68
  },
69
69
  "./date-time-luxon": {
70
- "types": "./date-time-luxon/index.d.ts",
70
+ "types": "./types/spartan-ng-brain-date-time-luxon.d.ts",
71
71
  "default": "./fesm2022/spartan-ng-brain-date-time-luxon.mjs"
72
72
  },
73
73
  "./dialog": {
74
- "types": "./dialog/index.d.ts",
74
+ "types": "./types/spartan-ng-brain-dialog.d.ts",
75
75
  "default": "./fesm2022/spartan-ng-brain-dialog.mjs"
76
76
  },
77
77
  "./field": {
78
- "types": "./field/index.d.ts",
78
+ "types": "./types/spartan-ng-brain-field.d.ts",
79
79
  "default": "./fesm2022/spartan-ng-brain-field.mjs"
80
80
  },
81
81
  "./forms": {
82
- "types": "./forms/index.d.ts",
82
+ "types": "./types/spartan-ng-brain-forms.d.ts",
83
83
  "default": "./fesm2022/spartan-ng-brain-forms.mjs"
84
84
  },
85
85
  "./hover-card": {
86
- "types": "./hover-card/index.d.ts",
86
+ "types": "./types/spartan-ng-brain-hover-card.d.ts",
87
87
  "default": "./fesm2022/spartan-ng-brain-hover-card.mjs"
88
88
  },
89
89
  "./input": {
90
- "types": "./input/index.d.ts",
90
+ "types": "./types/spartan-ng-brain-input.d.ts",
91
91
  "default": "./fesm2022/spartan-ng-brain-input.mjs"
92
92
  },
93
93
  "./input-otp": {
94
- "types": "./input-otp/index.d.ts",
94
+ "types": "./types/spartan-ng-brain-input-otp.d.ts",
95
95
  "default": "./fesm2022/spartan-ng-brain-input-otp.mjs"
96
96
  },
97
97
  "./label": {
98
- "types": "./label/index.d.ts",
98
+ "types": "./types/spartan-ng-brain-label.d.ts",
99
99
  "default": "./fesm2022/spartan-ng-brain-label.mjs"
100
100
  },
101
101
  "./navigation-menu": {
102
- "types": "./navigation-menu/index.d.ts",
102
+ "types": "./types/spartan-ng-brain-navigation-menu.d.ts",
103
103
  "default": "./fesm2022/spartan-ng-brain-navigation-menu.mjs"
104
104
  },
105
105
  "./popover": {
106
- "types": "./popover/index.d.ts",
106
+ "types": "./types/spartan-ng-brain-popover.d.ts",
107
107
  "default": "./fesm2022/spartan-ng-brain-popover.mjs"
108
108
  },
109
109
  "./progress": {
110
- "types": "./progress/index.d.ts",
110
+ "types": "./types/spartan-ng-brain-progress.d.ts",
111
111
  "default": "./fesm2022/spartan-ng-brain-progress.mjs"
112
112
  },
113
113
  "./radio-group": {
114
- "types": "./radio-group/index.d.ts",
114
+ "types": "./types/spartan-ng-brain-radio-group.d.ts",
115
115
  "default": "./fesm2022/spartan-ng-brain-radio-group.mjs"
116
116
  },
117
117
  "./resizable": {
118
- "types": "./resizable/index.d.ts",
118
+ "types": "./types/spartan-ng-brain-resizable.d.ts",
119
119
  "default": "./fesm2022/spartan-ng-brain-resizable.mjs"
120
120
  },
121
121
  "./select": {
122
- "types": "./select/index.d.ts",
122
+ "types": "./types/spartan-ng-brain-select.d.ts",
123
123
  "default": "./fesm2022/spartan-ng-brain-select.mjs"
124
124
  },
125
125
  "./separator": {
126
- "types": "./separator/index.d.ts",
126
+ "types": "./types/spartan-ng-brain-separator.d.ts",
127
127
  "default": "./fesm2022/spartan-ng-brain-separator.mjs"
128
128
  },
129
129
  "./sheet": {
130
- "types": "./sheet/index.d.ts",
130
+ "types": "./types/spartan-ng-brain-sheet.d.ts",
131
131
  "default": "./fesm2022/spartan-ng-brain-sheet.mjs"
132
132
  },
133
133
  "./slider": {
134
- "types": "./slider/index.d.ts",
134
+ "types": "./types/spartan-ng-brain-slider.d.ts",
135
135
  "default": "./fesm2022/spartan-ng-brain-slider.mjs"
136
136
  },
137
137
  "./sonner": {
138
- "types": "./sonner/index.d.ts",
138
+ "types": "./types/spartan-ng-brain-sonner.d.ts",
139
139
  "default": "./fesm2022/spartan-ng-brain-sonner.mjs"
140
140
  },
141
141
  "./switch": {
142
- "types": "./switch/index.d.ts",
142
+ "types": "./types/spartan-ng-brain-switch.d.ts",
143
143
  "default": "./fesm2022/spartan-ng-brain-switch.mjs"
144
144
  },
145
145
  "./tabs": {
146
- "types": "./tabs/index.d.ts",
146
+ "types": "./types/spartan-ng-brain-tabs.d.ts",
147
147
  "default": "./fesm2022/spartan-ng-brain-tabs.mjs"
148
148
  },
149
149
  "./textarea": {
150
- "types": "./textarea/index.d.ts",
150
+ "types": "./types/spartan-ng-brain-textarea.d.ts",
151
151
  "default": "./fesm2022/spartan-ng-brain-textarea.mjs"
152
152
  },
153
153
  "./toggle": {
154
- "types": "./toggle/index.d.ts",
154
+ "types": "./types/spartan-ng-brain-toggle.d.ts",
155
155
  "default": "./fesm2022/spartan-ng-brain-toggle.mjs"
156
156
  },
157
157
  "./toggle-group": {
158
- "types": "./toggle-group/index.d.ts",
158
+ "types": "./types/spartan-ng-brain-toggle-group.d.ts",
159
159
  "default": "./fesm2022/spartan-ng-brain-toggle-group.mjs"
160
160
  },
161
161
  "./tooltip": {
162
- "types": "./tooltip/index.d.ts",
162
+ "types": "./types/spartan-ng-brain-tooltip.d.ts",
163
163
  "default": "./fesm2022/spartan-ng-brain-tooltip.mjs"
164
164
  }
165
165
  },
166
166
  "peerDependencies": {
167
- "@angular/cdk": ">=20.0.0 <22.0.0",
168
- "@angular/common": ">=20.0.0 <22.0.0",
169
- "@angular/core": ">=20.0.0 <22.0.0",
170
- "@angular/forms": ">=20.0.0 <22.0.0",
167
+ "@angular/cdk": ">=21.0.0 <23.0.0",
168
+ "@angular/common": ">=21.0.0 <23.0.0",
169
+ "@angular/core": ">=21.0.0 <23.0.0",
170
+ "@angular/forms": ">=21.0.0 <23.0.0",
171
171
  "clsx": ">=2.0.0",
172
172
  "luxon": ">=3.0.0",
173
173
  "rxjs": ">=6.6.0",
@@ -179,7 +179,8 @@
179
179
  }
180
180
  },
181
181
  "module": "fesm2022/spartan-ng-brain.mjs",
182
- "typings": "index.d.ts",
182
+ "typings": "types/spartan-ng-brain.d.ts",
183
+ "type": "module",
183
184
  "dependencies": {
184
185
  "tslib": "^2.3.0"
185
186
  }
@@ -63,7 +63,7 @@ interface BrnAutocompleteBase<T> {
63
63
  disabled: Signal<boolean>;
64
64
  disabledState: Signal<boolean>;
65
65
  keyManager: ActiveDescendantKeyManager<BrnAutocompleteItem<T>>;
66
- value: ModelSignal<T | null> | ModelSignal<string | null>;
66
+ value: ModelSignal<T | undefined | null> | ModelSignal<string | undefined | null>;
67
67
  visibleItems: Signal<boolean>;
68
68
  isExpanded: Signal<boolean>;
69
69
  searchInputWrapperWidth: Signal<number | null>;
@@ -81,7 +81,7 @@ interface BrnAutocompleteBase<T> {
81
81
  declare const BrnAutocompleteBaseToken: InjectionToken<BrnAutocompleteBase<unknown>>;
82
82
  declare function provideBrnAutocompleteBase<T>(autocomplete: Type<BrnAutocompleteBase<T>>): ExistingProvider;
83
83
  declare function injectBrnAutocompleteBase<T>(): BrnAutocompleteBase<T>;
84
- type AutocompleteItemEqualToValue<T> = (itemValue: T, selectedValue: T | null) => boolean;
84
+ type AutocompleteItemEqualToValue<T> = (itemValue: T, selectedValue: T | undefined | null) => boolean;
85
85
  type AutocompleteItemToString<T> = (itemValue: T) => string;
86
86
  interface BrnAutocompleteConfig<T> {
87
87
  isItemEqualToValue: AutocompleteItemEqualToValue<T>;
@@ -114,7 +114,7 @@ declare class BrnAutocomplete<T> implements BrnAutocompleteBase<T>, ControlValue
114
114
  /** Whether to auto-highlight the first matching item. */
115
115
  readonly autoHighlight: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
116
116
  /** The selected value of the autocomplete. */
117
- readonly value: _angular_core.ModelSignal<T | null>;
117
+ readonly value: _angular_core.ModelSignal<T | null | undefined>;
118
118
  /** The current search query. */
119
119
  readonly search: _angular_core.ModelSignal<string>;
120
120
  private readonly _inputWidth;
@@ -129,7 +129,7 @@ declare class BrnAutocomplete<T> implements BrnAutocompleteBase<T>, ControlValue
129
129
  /** @internal Whether the autocomplete is expanded */
130
130
  readonly isExpanded: _angular_core.Signal<boolean>;
131
131
  private readonly _autocompleteInput;
132
- protected _onChange?: ChangeFn<T | null>;
132
+ protected _onChange?: ChangeFn<T | undefined | null>;
133
133
  protected _onTouched?: TouchFn;
134
134
  readonly labelableId: _angular_core.Signal<string | undefined>;
135
135
  readonly controlState: _angular_core.Signal<_spartan_ng_brain_forms.ControlState | null> | undefined;
@@ -146,8 +146,8 @@ declare class BrnAutocomplete<T> implements BrnAutocompleteBase<T>, ControlValue
146
146
  close(): void;
147
147
  toggle(): void;
148
148
  /** CONTROL VALUE ACCESSOR */
149
- writeValue(value: T | null): void;
150
- registerOnChange(fn: ChangeFn<T | null>): void;
149
+ writeValue(value: T | undefined | null): void;
150
+ registerOnChange(fn: ChangeFn<T | undefined | null>): void;
151
151
  registerOnTouched(fn: TouchFn): void;
152
152
  setDisabledState(isDisabled: boolean): void;
153
153
  protected _onFocusOut(event: FocusEvent): void;
@@ -245,7 +245,7 @@ declare class BrnAutocompleteSearch<T> implements BrnAutocompleteBase<T>, Contro
245
245
  /** Whether to auto-highlight the first matching item. */
246
246
  readonly autoHighlight: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
247
247
  /** The selected value of the autocomplete. */
248
- readonly value: _angular_core.ModelSignal<string | null>;
248
+ readonly value: _angular_core.ModelSignal<string | null | undefined>;
249
249
  /** The current search query. */
250
250
  readonly search: _angular_core.ModelSignal<string>;
251
251
  private readonly _inputWidth;
@@ -260,7 +260,7 @@ declare class BrnAutocompleteSearch<T> implements BrnAutocompleteBase<T>, Contro
260
260
  /** @internal Whether the autocomplete is expanded */
261
261
  readonly isExpanded: _angular_core.Signal<boolean>;
262
262
  private readonly _autocompleteInput;
263
- protected _onChange?: ChangeFn<string | null>;
263
+ protected _onChange?: ChangeFn<string | undefined | null>;
264
264
  protected _onTouched?: TouchFn;
265
265
  readonly labelableId: _angular_core.Signal<string | undefined>;
266
266
  constructor();
@@ -276,8 +276,8 @@ declare class BrnAutocompleteSearch<T> implements BrnAutocompleteBase<T>, Contro
276
276
  close(): void;
277
277
  toggle(): void;
278
278
  /** CONTROL VALUE ACCESSOR */
279
- writeValue(value: string | null): void;
280
- registerOnChange(fn: ChangeFn<string | null>): void;
279
+ writeValue(value: string | undefined | null): void;
280
+ registerOnChange(fn: ChangeFn<string | undefined | null>): void;
281
281
  registerOnTouched(fn: TouchFn): void;
282
282
  setDisabledState(isDisabled: boolean): void;
283
283
  protected _onFocusOut(event: FocusEvent): void;
@@ -235,7 +235,7 @@ declare class BrnCalendarMonthSelect {
235
235
  protected readonly _selectedMonth: _angular_core.Signal<string>;
236
236
  constructor();
237
237
  /** Focus selected month */
238
- protected monthSelected(selectedMonth: string): void;
238
+ private monthSelected;
239
239
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnCalendarMonthSelect, never>;
240
240
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnCalendarMonthSelect, "brnSelect[brnCalendarMonthSelect],hlm-select[brnCalendarMonthSelect]", never, {}, {}, never, never, true, never>;
241
241
  }
@@ -326,7 +326,7 @@ declare class BrnCalendarYearSelect {
326
326
  protected readonly _i18n: _spartan_ng_brain_calendar.BrnCalendarI18nService;
327
327
  constructor();
328
328
  /** Focus selected year */
329
- protected yearSelected(year: number): void;
329
+ private yearSelected;
330
330
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnCalendarYearSelect, never>;
331
331
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnCalendarYearSelect, "brnSelect[brnCalendarYearSelect],hlm-select[brnCalendarYearSelect]", never, {}, {}, never, never, true, never>;
332
332
  }
@@ -67,7 +67,7 @@ interface BrnComboboxBase<T> {
67
67
  disabled: Signal<boolean>;
68
68
  disabledState: Signal<boolean>;
69
69
  keyManager: ActiveDescendantKeyManager<BrnComboboxItem<T>>;
70
- value: ModelSignal<T | null> | ModelSignal<T[] | null>;
70
+ value: ModelSignal<T | undefined | null> | ModelSignal<T[] | undefined | null>;
71
71
  visibleItems: Signal<boolean>;
72
72
  isExpanded: Signal<boolean>;
73
73
  searchInputWrapperWidth: Signal<number | null>;
@@ -104,7 +104,7 @@ interface ComboboxFilterOptions extends Intl.CollatorOptions {
104
104
  locale?: Intl.LocalesArgument;
105
105
  }
106
106
  type ComboboxFilter<T> = (itemValue: T, search: string, collator: Intl.Collator, itemToString?: ComboboxItemToString<T>) => boolean;
107
- type ComboboxItemEqualToValue<T> = (itemValue: T, selectedValue: T | null) => boolean;
107
+ type ComboboxItemEqualToValue<T> = (itemValue: T, selectedValue: T | undefined | null) => boolean;
108
108
  type ComboboxItemToString<T> = (itemValue: T) => string;
109
109
  interface BrnComboboxConfig<T> {
110
110
  filterOptions: ComboboxFilterOptions;
@@ -178,7 +178,7 @@ declare class BrnCombobox<T> implements BrnComboboxBase<T>, ControlValueAccessor
178
178
  /** Whether to close the popover after selecting an item. */
179
179
  readonly closeOnSelect: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
180
180
  /** The selected value of the combobox. */
181
- readonly value: _angular_core.ModelSignal<T | null>;
181
+ readonly value: _angular_core.ModelSignal<T | null | undefined>;
182
182
  readonly hasValue: _angular_core.Signal<boolean>;
183
183
  /** The current search query. */
184
184
  readonly search: _angular_core.ModelSignal<string>;
@@ -197,7 +197,7 @@ declare class BrnCombobox<T> implements BrnComboboxBase<T>, ControlValueAccessor
197
197
  private readonly _comboboxInput;
198
198
  readonly mode: _angular_core.Signal<ComboboxInputMode>;
199
199
  readonly labelableId: _angular_core.Signal<string | undefined>;
200
- protected _onChange?: ChangeFn<T | null>;
200
+ protected _onChange?: ChangeFn<T | undefined | null>;
201
201
  protected _onTouched?: TouchFn;
202
202
  constructor();
203
203
  registerComboboxInput(input: BrnComboboxInput<T>): void;
@@ -212,8 +212,8 @@ declare class BrnCombobox<T> implements BrnComboboxBase<T>, ControlValueAccessor
212
212
  removeLastSelectedItem(): void;
213
213
  open(): void;
214
214
  /** CONTROL VALUE ACCESSOR */
215
- writeValue(value: T | null): void;
216
- registerOnChange(fn: ChangeFn<T | null>): void;
215
+ writeValue(value: T | undefined | null): void;
216
+ registerOnChange(fn: ChangeFn<T | undefined | null>): void;
217
217
  registerOnTouched(fn: TouchFn): void;
218
218
  setDisabledState(isDisabled: boolean): void;
219
219
  protected _onFocusOut(event: FocusEvent): void;
@@ -341,7 +341,7 @@ declare class BrnComboboxMultiple<T> implements BrnComboboxBase<T>, ControlValue
341
341
  /** Whether to reset the search and close the popover after selecting an item when the search is active. */
342
342
  readonly closeOnSelect: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
343
343
  /** The selected values of the combobox. */
344
- readonly value: _angular_core.ModelSignal<T[] | null>;
344
+ readonly value: _angular_core.ModelSignal<T[] | null | undefined>;
345
345
  readonly hasValue: _angular_core.Signal<boolean>;
346
346
  /** The current search query. */
347
347
  readonly search: _angular_core.ModelSignal<string>;
@@ -360,7 +360,7 @@ declare class BrnComboboxMultiple<T> implements BrnComboboxBase<T>, ControlValue
360
360
  private readonly _comboboxChipInput;
361
361
  readonly mode: _angular_core.Signal<ComboboxInputMode>;
362
362
  readonly labelableId: _angular_core.Signal<string | undefined>;
363
- protected _onChange?: ChangeFn<T[] | null>;
363
+ protected _onChange?: ChangeFn<T[] | undefined | null>;
364
364
  protected _onTouched?: TouchFn;
365
365
  constructor();
366
366
  registerComboboxChipInput(input: BrnComboboxChipInput<T>): void;
@@ -377,8 +377,8 @@ declare class BrnComboboxMultiple<T> implements BrnComboboxBase<T>, ControlValue
377
377
  protected _onFocusOut(event: FocusEvent): void;
378
378
  private close;
379
379
  /** CONTROL VALUE ACCESSOR */
380
- writeValue(value: T[] | null): void;
381
- registerOnChange(fn: ChangeFn<T[] | null>): void;
380
+ writeValue(value: T[] | undefined | null): void;
381
+ registerOnChange(fn: ChangeFn<T[] | undefined | null>): void;
382
382
  registerOnTouched(fn: TouchFn): void;
383
383
  setDisabledState(isDisabled: boolean): void;
384
384
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnComboboxMultiple<any>, never>;
@@ -3,7 +3,7 @@ import { AutoFocusTarget, DialogRef } from '@angular/cdk/dialog';
3
3
  import * as _angular_cdk_overlay from '@angular/cdk/overlay';
4
4
  import { ConnectedPosition, FlexibleConnectedPositionStrategyOrigin, PositionStrategy, ScrollStrategy, OverlayPositionBuilder, ScrollStrategyOptions, ComponentType } from '@angular/cdk/overlay';
5
5
  import * as _angular_core from '@angular/core';
6
- import { StaticProvider, ElementRef, TemplateRef, Signal, WritableSignal, ValueProvider, InjectOptions, ViewContainerRef } from '@angular/core';
6
+ import { StaticProvider, ElementRef, TemplateRef, Signal, WritableSignal, ValueProvider, ViewContainerRef, InjectOptions } from '@angular/core';
7
7
  import * as _spartan_ng_brain_dialog from '@spartan-ng/brain/dialog';
8
8
  import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
9
9
  import { Observable } from 'rxjs';
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { AfterContentInit, Signal, TemplateRef, ElementRef, ViewContainerRef, OnInit, OnDestroy, ValueProvider } from '@angular/core';
3
3
  import { NumberInput } from '@angular/cdk/coercion';
4
- import { ConnectedPosition, OverlayConfig, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';
4
+ import { ConnectedOverlayPositionChange, ConnectedPosition, OverlayConfig } from '@angular/cdk/overlay';
5
5
  import { ExposesState, ExposesSide } from '@spartan-ng/brain/core';
6
6
  import { Observable } from 'rxjs';
7
7