@area8975/ui 0.2.2-dev.47 → 0.2.2-dev.49

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,8 +1,11 @@
1
1
  import * as i0 from "@angular/core";
2
- import { ChangeDetectorRef, Component, DestroyRef, Directive, ElementRef, Injectable, InjectionToken, Injector, TemplateRef, ViewEncapsulation, afterNextRender, booleanAttribute, computed, contentChild, contentChildren, effect, inject, input, isDevMode, linkedSignal, makeEnvironmentProviders, model, numberAttribute, output, provideAppInitializer, signal, untracked, viewChild } from "@angular/core";
3
- import { DOCUMENT, NgTemplateOutlet } from "@angular/common";
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DOCUMENT, DestroyRef, Directive, ElementRef, Injectable, InjectionToken, Injector, TemplateRef, ViewEncapsulation, afterNextRender, afterRenderEffect, booleanAttribute, computed, contentChild, contentChildren, effect, inject, input, isDevMode, linkedSignal, makeEnvironmentProviders, model, numberAttribute, output, provideAppInitializer, signal, untracked, viewChild } from "@angular/core";
3
+ import { DOCUMENT as DOCUMENT$1, NgTemplateOutlet } from "@angular/common";
4
4
  import { NgIcon, provideIcons } from "@ng-icons/core";
5
- import { heroArrowUp, heroArrowUpTray, heroBars2, heroBars3, heroCalendar, heroCalendarDateRange, heroCheck, heroChevronDoubleLeft, heroChevronDown, heroChevronLeft, heroChevronRight, heroClock, heroDocument, heroEye, heroEyeSlash, heroFunnel, heroMagnifyingGlass, heroMinus, heroPlus, heroQuestionMarkCircle, heroViewColumns, heroXMark } from "@ng-icons/heroicons/outline";
5
+ import { heroArrowUp, heroArrowUpTray, heroArrowUturnLeft, heroArrowUturnRight, heroBars2, heroBars3, heroBold, heroCalendar, heroCalendarDateRange, heroChatBubbleLeft, heroCheck, heroChevronDoubleLeft, heroChevronDown, heroChevronLeft, heroChevronRight, heroClock, heroCodeBracket, heroCodeBracketSquare, heroDocument, heroEye, heroEyeSlash, heroFunnel, heroH1, heroH2, heroH3, heroItalic, heroLink, heroListBullet, heroMagnifyingGlass, heroMinus, heroNumberedList, heroPlus, heroQuestionMarkCircle, heroStrikethrough, heroUnderline, heroViewColumns, heroXMark } from "@ng-icons/heroicons/outline";
6
+ import { Editor } from "@tiptap/core";
7
+ import { Placeholder } from "@tiptap/extensions";
8
+ import StarterKit from "@tiptap/starter-kit";
6
9
  import { takeUntilDestroyed, toObservable } from "@angular/core/rxjs-interop";
7
10
  import { Subject, catchError, debounceTime, filter, of, skip, switchMap } from "rxjs";
8
11
  import { autoUpdate, computePosition, flip, offset, shift } from "@floating-ui/dom";
@@ -76,7 +79,7 @@ function injectMoneyFormatter(options = {}) {
76
79
  var UiDarkClass = class UiDarkClass {
77
80
  isDark = signal(false, ...ngDevMode ? [{ debugName: "isDark" }] : /* istanbul ignore next */ []);
78
81
  constructor() {
79
- const root = inject(DOCUMENT).documentElement;
82
+ const root = inject(DOCUMENT$1).documentElement;
80
83
  const read = () => this.isDark.set(root.classList.contains("dark"));
81
84
  read();
82
85
  if (typeof MutationObserver === "undefined") return;
@@ -3658,6 +3661,7 @@ var UiDropzoneComponent = class UiDropzoneComponent {
3658
3661
  value: "valueChange",
3659
3662
  rejected: "rejected"
3660
3663
  },
3664
+ host: { properties: { "attr.id": "null" } },
3661
3665
  providers: [provideIcons({
3662
3666
  heroArrowUpTray,
3663
3667
  heroDocument
@@ -3695,6 +3699,7 @@ i0.ɵɵngDeclareClassMetadata({
3695
3699
  type: Component,
3696
3700
  args: [{
3697
3701
  selector: "ui-dropzone",
3702
+ host: { "[attr.id]": "null" },
3698
3703
  imports: [NgIcon],
3699
3704
  providers: [provideIcons({
3700
3705
  heroArrowUpTray,
@@ -3817,9 +3822,25 @@ var UiFieldComponent = class UiFieldComponent {
3817
3822
  for = input("", ...ngDevMode ? [{ debugName: "for" }] : /* istanbul ignore next */ []);
3818
3823
  hintId = input("", ...ngDevMode ? [{ debugName: "hintId" }] : /* istanbul ignore next */ []);
3819
3824
  errorId = input("", ...ngDevMode ? [{ debugName: "errorId" }] : /* istanbul ignore next */ []);
3825
+ labelId = computed(() => this.for() && this.label() ? `${this.for()}-label` : "", ...ngDevMode ? [{ debugName: "labelId" }] : /* istanbul ignore next */ []);
3826
+ document = inject(DOCUMENT);
3820
3827
  get forAttr() {
3821
3828
  return this.for() || null;
3822
3829
  }
3830
+ get labelIdAttr() {
3831
+ return this.labelId() || null;
3832
+ }
3833
+ onClick(event) {
3834
+ const label = event.target.closest("label");
3835
+ if (!label?.classList.contains("ui-field-label")) return;
3836
+ const control = label.control;
3837
+ if (control instanceof HTMLInputElement && (control.type === "checkbox" || control.type === "radio")) return;
3838
+ const target = control ?? (this.for() ? this.document.getElementById(this.for()) : null);
3839
+ if (target) {
3840
+ event.preventDefault();
3841
+ target.focus();
3842
+ }
3843
+ }
3823
3844
  get hintAttr() {
3824
3845
  return this.hintId() || null;
3825
3846
  }
@@ -3891,9 +3912,12 @@ var UiFieldComponent = class UiFieldComponent {
3891
3912
  transformFunction: null
3892
3913
  }
3893
3914
  },
3894
- host: { classAttribute: "block" },
3915
+ host: {
3916
+ listeners: { "click": "onClick($event)" },
3917
+ classAttribute: "block"
3918
+ },
3895
3919
  ngImport: i0,
3896
- template: "@if (label()) {\n <label\n [attr.for]=\"forAttr\"\n class=\"ui-text-body ui-field-label\"\n >\n {{ label() }}\n\n @if (required()) {\n <span class=\"text-danger-500\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">(required)</span>\n }\n </label>\n}\n\n<ng-content />\n\n@if (error()) {\n <div\n [attr.id]=\"errorAttr\"\n class=\"text-danger-600 ui-text-caption ui-field-hint\"\n role=\"alert\"\n >\n {{ error() }}\n </div>\n} @else if (hint()) {\n <div\n [attr.id]=\"hintAttr\"\n class=\"text-muted-foreground-1 ui-text-caption ui-field-hint\"\n >\n {{ hint() }}\n </div>\n}\n",
3920
+ template: "@if (label()) {\n <label\n [attr.id]=\"labelIdAttr\"\n [attr.for]=\"forAttr\"\n class=\"ui-text-body ui-field-label\"\n >\n {{ label() }}\n\n @if (required()) {\n <span class=\"text-danger-500\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">(required)</span>\n }\n </label>\n}\n\n<ng-content />\n\n@if (error()) {\n <div\n [attr.id]=\"errorAttr\"\n class=\"text-danger-600 ui-text-caption ui-field-hint\"\n role=\"alert\"\n >\n {{ error() }}\n </div>\n} @else if (hint()) {\n <div\n [attr.id]=\"hintAttr\"\n class=\"text-muted-foreground-1 ui-text-caption ui-field-hint\"\n >\n {{ hint() }}\n </div>\n}\n",
3897
3921
  styles: [":host{position:relative}.ui-field-label{margin-bottom:calc(var(--spacing, .25rem) * 1.5);display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2)}.ui-field-hint{margin-top:calc(var(--spacing, .25rem) * 1.5);display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
3898
3922
  });
3899
3923
  };
@@ -3906,8 +3930,11 @@ i0.ɵɵngDeclareClassMetadata({
3906
3930
  type: Component,
3907
3931
  args: [{
3908
3932
  selector: "ui-field",
3909
- host: { class: "block" },
3910
- template: "@if (label()) {\n <label\n [attr.for]=\"forAttr\"\n class=\"ui-text-body ui-field-label\"\n >\n {{ label() }}\n\n @if (required()) {\n <span class=\"text-danger-500\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">(required)</span>\n }\n </label>\n}\n\n<ng-content />\n\n@if (error()) {\n <div\n [attr.id]=\"errorAttr\"\n class=\"text-danger-600 ui-text-caption ui-field-hint\"\n role=\"alert\"\n >\n {{ error() }}\n </div>\n} @else if (hint()) {\n <div\n [attr.id]=\"hintAttr\"\n class=\"text-muted-foreground-1 ui-text-caption ui-field-hint\"\n >\n {{ hint() }}\n </div>\n}\n",
3933
+ host: {
3934
+ class: "block",
3935
+ "(click)": "onClick($event)"
3936
+ },
3937
+ template: "@if (label()) {\n <label\n [attr.id]=\"labelIdAttr\"\n [attr.for]=\"forAttr\"\n class=\"ui-text-body ui-field-label\"\n >\n {{ label() }}\n\n @if (required()) {\n <span class=\"text-danger-500\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">(required)</span>\n }\n </label>\n}\n\n<ng-content />\n\n@if (error()) {\n <div\n [attr.id]=\"errorAttr\"\n class=\"text-danger-600 ui-text-caption ui-field-hint\"\n role=\"alert\"\n >\n {{ error() }}\n </div>\n} @else if (hint()) {\n <div\n [attr.id]=\"hintAttr\"\n class=\"text-muted-foreground-1 ui-text-caption ui-field-hint\"\n >\n {{ hint() }}\n </div>\n}\n",
3911
3938
  styles: [":host{position:relative}.ui-field-label{margin-bottom:calc(var(--spacing, .25rem) * 1.5);display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2)}.ui-field-hint{margin-top:calc(var(--spacing, .25rem) * 1.5);display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
3912
3939
  }]
3913
3940
  }],
@@ -4279,6 +4306,7 @@ var UiInputComponent = class UiInputComponent {
4279
4306
  focused: "focused",
4280
4307
  blurred: "blurred"
4281
4308
  },
4309
+ host: { properties: { "attr.id": "null" } },
4282
4310
  providers: [provideIcons({
4283
4311
  heroEyeSlash,
4284
4312
  heroEye
@@ -4331,6 +4359,7 @@ i0.ɵɵngDeclareClassMetadata({
4331
4359
  type: Component,
4332
4360
  args: [{
4333
4361
  selector: "ui-input",
4362
+ host: { "[attr.id]": "null" },
4334
4363
  imports: [NgTemplateOutlet, NgIcon],
4335
4364
  providers: [provideIcons({
4336
4365
  heroEyeSlash,
@@ -4937,20 +4966,983 @@ i0.ɵɵngDeclareClassMetadata({
4937
4966
  type: i0.Input,
4938
4967
  args: [{
4939
4968
  isSignal: true,
4940
- alias: "validationState",
4969
+ alias: "validationState",
4970
+ required: false
4971
+ }]
4972
+ }, {
4973
+ type: i0.Output,
4974
+ args: ["validationStateChange"]
4975
+ }],
4976
+ compareWith: [{
4977
+ type: i0.Input,
4978
+ args: [{
4979
+ isSignal: true,
4980
+ alias: "compareWith",
4981
+ required: false
4982
+ }]
4983
+ }]
4984
+ }
4985
+ });
4986
+ const ButtonGroupAppearances = ["attached", "segmented"];
4987
+ const UI_BUTTON_GROUP = new InjectionToken("UI_BUTTON_GROUP");
4988
+ var UiButtonComponent = class UiButtonComponent {
4989
+ appearance = input("solid", ...ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []);
4990
+ intent = input("primary", ...ngDevMode ? [{ debugName: "intent" }] : /* istanbul ignore next */ []);
4991
+ size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
4992
+ classes = input("", ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
4993
+ type = input("button", ...ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []);
4994
+ ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
4995
+ disabled = input(false, {
4996
+ ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
4997
+ transform: booleanAttribute
4998
+ });
4999
+ loading = input(false, {
5000
+ ...ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {},
5001
+ transform: booleanAttribute
5002
+ });
5003
+ isDisabled = computed(() => this.disabled() || this.loading(), ...ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []);
5004
+ group = inject(UI_BUTTON_GROUP, { optional: true });
5005
+ segmented = computed(() => this.group?.appearance() === "segmented", ...ngDevMode ? [{ debugName: "segmented" }] : /* istanbul ignore next */ []);
5006
+ generatedClasses = computed(() => [
5007
+ "ui-button",
5008
+ this.intentAndAppearanceClasses(),
5009
+ this.sizeClasses(),
5010
+ this.textClasses(),
5011
+ this.classes()
5012
+ ].filter(Boolean).join(" "), ...ngDevMode ? [{ debugName: "generatedClasses" }] : /* istanbul ignore next */ []);
5013
+ intentAndAppearanceClasses = computed(() => {
5014
+ if (this.segmented()) return "ui-button--segmented";
5015
+ const intent = this.intent();
5016
+ const appearance = this.appearance();
5017
+ return [intent, appearance].includes("none") ? "" : `ui-button--${intent}-${appearance}`;
5018
+ }, ...ngDevMode ? [{ debugName: "intentAndAppearanceClasses" }] : /* istanbul ignore next */ []);
5019
+ sizeClasses = computed(() => this.segmented() ? "" : `ui-button--${this.size()}`, ...ngDevMode ? [{ debugName: "sizeClasses" }] : /* istanbul ignore next */ []);
5020
+ textClasses = computed(() => this.segmented() ? "ui-text-body-alt" : {
5021
+ sm: "ui-text-caption",
5022
+ md: "ui-text-body",
5023
+ lg: "ui-text-body"
5024
+ }[this.size()], ...ngDevMode ? [{ debugName: "textClasses" }] : /* istanbul ignore next */ []);
5025
+ static ɵfac = i0.ɵɵngDeclareFactory({
5026
+ minVersion: "12.0.0",
5027
+ version: "22.2.1",
5028
+ ngImport: i0,
5029
+ type: UiButtonComponent,
5030
+ deps: [],
5031
+ target: i0.ɵɵFactoryTarget.Component
5032
+ });
5033
+ static ɵcmp = i0.ɵɵngDeclareComponent({
5034
+ minVersion: "17.0.0",
5035
+ version: "22.2.1",
5036
+ type: UiButtonComponent,
5037
+ isStandalone: true,
5038
+ selector: "ui-button",
5039
+ inputs: {
5040
+ appearance: {
5041
+ classPropertyName: "appearance",
5042
+ publicName: "appearance",
5043
+ isSignal: true,
5044
+ isRequired: false,
5045
+ transformFunction: null
5046
+ },
5047
+ intent: {
5048
+ classPropertyName: "intent",
5049
+ publicName: "intent",
5050
+ isSignal: true,
5051
+ isRequired: false,
5052
+ transformFunction: null
5053
+ },
5054
+ size: {
5055
+ classPropertyName: "size",
5056
+ publicName: "size",
5057
+ isSignal: true,
5058
+ isRequired: false,
5059
+ transformFunction: null
5060
+ },
5061
+ classes: {
5062
+ classPropertyName: "classes",
5063
+ publicName: "classes",
5064
+ isSignal: true,
5065
+ isRequired: false,
5066
+ transformFunction: null
5067
+ },
5068
+ type: {
5069
+ classPropertyName: "type",
5070
+ publicName: "type",
5071
+ isSignal: true,
5072
+ isRequired: false,
5073
+ transformFunction: null
5074
+ },
5075
+ ariaLabel: {
5076
+ classPropertyName: "ariaLabel",
5077
+ publicName: "ariaLabel",
5078
+ isSignal: true,
5079
+ isRequired: false,
5080
+ transformFunction: null
5081
+ },
5082
+ disabled: {
5083
+ classPropertyName: "disabled",
5084
+ publicName: "disabled",
5085
+ isSignal: true,
5086
+ isRequired: false,
5087
+ transformFunction: null
5088
+ },
5089
+ loading: {
5090
+ classPropertyName: "loading",
5091
+ publicName: "loading",
5092
+ isSignal: true,
5093
+ isRequired: false,
5094
+ transformFunction: null
5095
+ }
5096
+ },
5097
+ host: { properties: { "class.pointer-events-none": "isDisabled()" } },
5098
+ ngImport: i0,
5099
+ template: "<button\n [type]=\"type()\"\n [disabled]=\"isDisabled()\"\n [class]=\"generatedClasses()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-busy]=\"loading() || null\"\n>\n <ng-content></ng-content>\n\n @if (loading()) {\n <span class=\"sr-only\">Loading</span>\n\n <span class=\"flex items-end justify-center\" aria-hidden=\"true\">\n <span class=\"ms-0.5 inline-flex items-end gap-px pb-px\">\n <span class=\"ui-button__loading-dot\">.</span>\n <span class=\"ui-button__loading-dot\">.</span>\n <span class=\"ui-button__loading-dot\">.</span>\n </span>\n </span>\n }\n</button>\n",
5100
+ styles: ["@layer properties;.ui-button{position:relative;display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;transition-property:colors,box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.ui-button:focus{--tw-outline-style: none;outline-style:none}.ui-button:focus-visible{z-index:10}.ui-button:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button:disabled{pointer-events:none}.ui-button:disabled{opacity:50%}.ui-button--sm{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2)}.ui-button--md{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.ui-button--lg{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 4)}ui-button-group:not(.ui-button-group--segmented)>:host(:first-child:not(:only-child)) .ui-button{border-start-end-radius:0;border-end-end-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:not(:first-child):not(:last-child)) .ui-button{border-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:last-child:not(:only-child)) .ui-button{border-start-start-radius:0;border-end-start-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:not(:first-child)) .ui-button{margin-inline-start:-1px}.ui-button--segmented{min-height:calc(1lh + calc(var(--spacing, .25rem) * 3));cursor:pointer;border-radius:var(--radius-md, .375rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 1.5);white-space:nowrap;color:var(--muted-foreground-1);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s;-webkit-user-select:none;user-select:none;justify-content:center;border-color:transparent;--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--segmented:hover{color:var(--foreground)}.ui-button--segmented:hover,.ui-button--segmented:focus-visible{background-color:var(--surface)}ui-input-group>:host .ui-button{border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-input-group>:host(:not(:last-child)) .ui-button{border-right-style:var(--tw-border-style)!important;border-right-width:1px!important;border-color:var(--border-line-2)!important}ui-button-group>:host(:not(:first-child)) .ui-button[class*=-outline]{border-inline-start-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@keyframes spinner-ellipsis{0%,70%,to{transform:translateY(0)}35%{transform:translateY(-.4em)}}.ui-button__loading-dot{display:inline-block;animation:spinner-ellipsis 1s ease-in-out infinite}.ui-button__loading-dot:nth-child(2){animation-delay:.12s}.ui-button__loading-dot:nth-child(3){animation-delay:.24s}@media(prefers-reduced-motion:reduce){.ui-button__loading-dot{animation:none}}.ui-button--primary-solid{border-color:transparent;background-color:var(--color-primary-600, var(--color-blue-600));color:var(--color-white, #fff);--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-solid:hover,.ui-button--primary-solid:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline{border-color:var(--color-primary-600, var(--color-blue-600));background-color:transparent;color:var(--color-primary-600, var(--color-blue-600));--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{border-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--primary-ghost{border-color:transparent;background-color:transparent;color:var(--color-primary-600, var(--color-blue-600));--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-ghost:hover,.ui-button--primary-ghost:focus-visible{background-color:var(--color-primary-100, var(--color-blue-100))}.ui-button--primary-ghost:hover,.ui-button--primary-ghost:focus-visible{color:var(--color-primary-800, var(--color-blue-800))}.ui-button--primary-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-primary-600, var(--color-blue-600));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-white:hover,.ui-button--primary-white:focus-visible{background-color:var(--layer-focus)}.ui-button--primary-link{border-color:transparent;background-color:transparent;color:var(--color-primary-500, var(--color-blue-500))}.ui-button--primary-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--primary-link:hover,.ui-button--primary-link:focus-visible{color:var(--color-primary-600, var(--color-blue-600))}.ui-button--primary-link:hover,.ui-button--primary-link:focus-visible{text-decoration-line:underline}.ui-button--secondary-solid{border-color:transparent;background-color:var(--color-secondary-900, var(--color-gray-900));color:var(--color-white, #fff);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-solid:hover,.ui-button--secondary-solid:focus-visible{background-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline{border-color:var(--color-secondary-900, var(--color-gray-900));background-color:transparent;color:var(--foreground);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{border-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{background-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{color:var(--foreground-inverse)}.ui-button--secondary-ghost{border-color:transparent;background-color:transparent;color:var(--foreground);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-ghost:hover,.ui-button--secondary-ghost:focus-visible{background-color:var(--muted-hover)}.ui-button--secondary-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--layer-foreground);--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-white:hover,.ui-button--secondary-white:focus-visible{background-color:var(--layer-hover)}.ui-button--secondary-link{border-color:transparent;background-color:transparent;color:var(--color-secondary-900, var(--color-gray-900))}.ui-button--secondary-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--secondary-link:hover,.ui-button--secondary-link:focus-visible{color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-link:hover,.ui-button--secondary-link:focus-visible{text-decoration-line:underline}.ui-button--success-solid{border-color:transparent;background-color:var(--color-success-500, var(--color-teal-500));color:var(--color-white, #fff)}.ui-button--success-solid:hover,.ui-button--success-solid:focus-visible{background-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline{border-color:var(--color-success-500, var(--color-teal-500));background-color:transparent;color:var(--color-success-500, var(--color-teal-500));--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{border-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{background-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--success-ghost{border-color:transparent;background-color:transparent;color:var(--color-success-500, var(--color-teal-500));--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-ghost:hover,.ui-button--success-ghost:focus-visible{background-color:var(--color-success-100, var(--color-teal-100))}.ui-button--success-ghost:hover,.ui-button--success-ghost:focus-visible{color:var(--color-success-800, var(--color-teal-800))}.ui-button--success-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-success-500, var(--color-teal-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-white:hover,.ui-button--success-white:focus-visible{background-color:var(--layer-hover)}.ui-button--success-link{border-color:transparent;background-color:transparent;color:var(--color-success-500, var(--color-teal-500))}.ui-button--success-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--success-link:hover,.ui-button--success-link:focus-visible{color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-link:hover,.ui-button--success-link:focus-visible{text-decoration-line:underline}.ui-button--warning-solid{border-color:transparent;background-color:var(--color-warning-500, var(--color-yellow-500));color:var(--color-white, #fff);--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-solid:hover,.ui-button--warning-solid:focus-visible{background-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline{border-color:var(--color-warning-500, var(--color-yellow-500));background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500));--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{border-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{background-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--warning-ghost{border-color:transparent;background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500));--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-ghost:hover,.ui-button--warning-ghost:focus-visible{background-color:var(--color-warning-100, var(--color-yellow-100))}.ui-button--warning-ghost:hover,.ui-button--warning-ghost:focus-visible{color:var(--color-warning-800, var(--color-yellow-800))}.ui-button--warning-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-warning-500, var(--color-yellow-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-white:hover,.ui-button--warning-white:focus-visible{background-color:var(--layer-hover)}.ui-button--warning-link{border-color:transparent;background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500))}.ui-button--warning-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--warning-link:hover,.ui-button--warning-link:focus-visible{color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-link:hover,.ui-button--warning-link:focus-visible{text-decoration-line:underline}.ui-button--danger-solid{border-color:transparent;background-color:var(--color-danger-500, var(--color-red-500));color:var(--color-white, #fff);--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-solid:hover,.ui-button--danger-solid:focus-visible{background-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline{border-color:var(--color-danger-500, var(--color-red-500));background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{border-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{background-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--danger-ghost{border-color:transparent;background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-ghost:hover,.ui-button--danger-ghost:focus-visible{background-color:var(--color-danger-100, var(--color-red-100))}.ui-button--danger-ghost:hover,.ui-button--danger-ghost:focus-visible{color:var(--color-danger-800, var(--color-red-800))}.ui-button--danger-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-danger-500, var(--color-red-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-white:hover,.ui-button--danger-white:focus-visible{background-color:var(--layer-hover)}.ui-button--danger-link{border-color:transparent;background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-link:hover,.ui-button--danger-link:focus-visible{color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-link:hover,.ui-button--danger-link:focus-visible{text-decoration-line:underline}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-duration: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
5101
+ });
5102
+ };
5103
+ i0.ɵɵngDeclareClassMetadata({
5104
+ minVersion: "12.0.0",
5105
+ version: "22.2.1",
5106
+ ngImport: i0,
5107
+ type: UiButtonComponent,
5108
+ decorators: [{
5109
+ type: Component,
5110
+ args: [{
5111
+ selector: "ui-button",
5112
+ host: { "[class.pointer-events-none]": "isDisabled()" },
5113
+ template: "<button\n [type]=\"type()\"\n [disabled]=\"isDisabled()\"\n [class]=\"generatedClasses()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-busy]=\"loading() || null\"\n>\n <ng-content></ng-content>\n\n @if (loading()) {\n <span class=\"sr-only\">Loading</span>\n\n <span class=\"flex items-end justify-center\" aria-hidden=\"true\">\n <span class=\"ms-0.5 inline-flex items-end gap-px pb-px\">\n <span class=\"ui-button__loading-dot\">.</span>\n <span class=\"ui-button__loading-dot\">.</span>\n <span class=\"ui-button__loading-dot\">.</span>\n </span>\n </span>\n }\n</button>\n",
5114
+ styles: ["@layer properties;.ui-button{position:relative;display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;transition-property:colors,box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.ui-button:focus{--tw-outline-style: none;outline-style:none}.ui-button:focus-visible{z-index:10}.ui-button:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button:disabled{pointer-events:none}.ui-button:disabled{opacity:50%}.ui-button--sm{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2)}.ui-button--md{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.ui-button--lg{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 4)}ui-button-group:not(.ui-button-group--segmented)>:host(:first-child:not(:only-child)) .ui-button{border-start-end-radius:0;border-end-end-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:not(:first-child):not(:last-child)) .ui-button{border-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:last-child:not(:only-child)) .ui-button{border-start-start-radius:0;border-end-start-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:not(:first-child)) .ui-button{margin-inline-start:-1px}.ui-button--segmented{min-height:calc(1lh + calc(var(--spacing, .25rem) * 3));cursor:pointer;border-radius:var(--radius-md, .375rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 1.5);white-space:nowrap;color:var(--muted-foreground-1);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s;-webkit-user-select:none;user-select:none;justify-content:center;border-color:transparent;--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--segmented:hover{color:var(--foreground)}.ui-button--segmented:hover,.ui-button--segmented:focus-visible{background-color:var(--surface)}ui-input-group>:host .ui-button{border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-input-group>:host(:not(:last-child)) .ui-button{border-right-style:var(--tw-border-style)!important;border-right-width:1px!important;border-color:var(--border-line-2)!important}ui-button-group>:host(:not(:first-child)) .ui-button[class*=-outline]{border-inline-start-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@keyframes spinner-ellipsis{0%,70%,to{transform:translateY(0)}35%{transform:translateY(-.4em)}}.ui-button__loading-dot{display:inline-block;animation:spinner-ellipsis 1s ease-in-out infinite}.ui-button__loading-dot:nth-child(2){animation-delay:.12s}.ui-button__loading-dot:nth-child(3){animation-delay:.24s}@media(prefers-reduced-motion:reduce){.ui-button__loading-dot{animation:none}}.ui-button--primary-solid{border-color:transparent;background-color:var(--color-primary-600, var(--color-blue-600));color:var(--color-white, #fff);--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-solid:hover,.ui-button--primary-solid:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline{border-color:var(--color-primary-600, var(--color-blue-600));background-color:transparent;color:var(--color-primary-600, var(--color-blue-600));--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{border-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--primary-ghost{border-color:transparent;background-color:transparent;color:var(--color-primary-600, var(--color-blue-600));--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-ghost:hover,.ui-button--primary-ghost:focus-visible{background-color:var(--color-primary-100, var(--color-blue-100))}.ui-button--primary-ghost:hover,.ui-button--primary-ghost:focus-visible{color:var(--color-primary-800, var(--color-blue-800))}.ui-button--primary-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-primary-600, var(--color-blue-600));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-white:hover,.ui-button--primary-white:focus-visible{background-color:var(--layer-focus)}.ui-button--primary-link{border-color:transparent;background-color:transparent;color:var(--color-primary-500, var(--color-blue-500))}.ui-button--primary-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--primary-link:hover,.ui-button--primary-link:focus-visible{color:var(--color-primary-600, var(--color-blue-600))}.ui-button--primary-link:hover,.ui-button--primary-link:focus-visible{text-decoration-line:underline}.ui-button--secondary-solid{border-color:transparent;background-color:var(--color-secondary-900, var(--color-gray-900));color:var(--color-white, #fff);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-solid:hover,.ui-button--secondary-solid:focus-visible{background-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline{border-color:var(--color-secondary-900, var(--color-gray-900));background-color:transparent;color:var(--foreground);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{border-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{background-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{color:var(--foreground-inverse)}.ui-button--secondary-ghost{border-color:transparent;background-color:transparent;color:var(--foreground);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-ghost:hover,.ui-button--secondary-ghost:focus-visible{background-color:var(--muted-hover)}.ui-button--secondary-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--layer-foreground);--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-white:hover,.ui-button--secondary-white:focus-visible{background-color:var(--layer-hover)}.ui-button--secondary-link{border-color:transparent;background-color:transparent;color:var(--color-secondary-900, var(--color-gray-900))}.ui-button--secondary-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--secondary-link:hover,.ui-button--secondary-link:focus-visible{color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-link:hover,.ui-button--secondary-link:focus-visible{text-decoration-line:underline}.ui-button--success-solid{border-color:transparent;background-color:var(--color-success-500, var(--color-teal-500));color:var(--color-white, #fff)}.ui-button--success-solid:hover,.ui-button--success-solid:focus-visible{background-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline{border-color:var(--color-success-500, var(--color-teal-500));background-color:transparent;color:var(--color-success-500, var(--color-teal-500));--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{border-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{background-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--success-ghost{border-color:transparent;background-color:transparent;color:var(--color-success-500, var(--color-teal-500));--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-ghost:hover,.ui-button--success-ghost:focus-visible{background-color:var(--color-success-100, var(--color-teal-100))}.ui-button--success-ghost:hover,.ui-button--success-ghost:focus-visible{color:var(--color-success-800, var(--color-teal-800))}.ui-button--success-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-success-500, var(--color-teal-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-white:hover,.ui-button--success-white:focus-visible{background-color:var(--layer-hover)}.ui-button--success-link{border-color:transparent;background-color:transparent;color:var(--color-success-500, var(--color-teal-500))}.ui-button--success-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--success-link:hover,.ui-button--success-link:focus-visible{color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-link:hover,.ui-button--success-link:focus-visible{text-decoration-line:underline}.ui-button--warning-solid{border-color:transparent;background-color:var(--color-warning-500, var(--color-yellow-500));color:var(--color-white, #fff);--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-solid:hover,.ui-button--warning-solid:focus-visible{background-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline{border-color:var(--color-warning-500, var(--color-yellow-500));background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500));--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{border-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{background-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--warning-ghost{border-color:transparent;background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500));--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-ghost:hover,.ui-button--warning-ghost:focus-visible{background-color:var(--color-warning-100, var(--color-yellow-100))}.ui-button--warning-ghost:hover,.ui-button--warning-ghost:focus-visible{color:var(--color-warning-800, var(--color-yellow-800))}.ui-button--warning-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-warning-500, var(--color-yellow-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-white:hover,.ui-button--warning-white:focus-visible{background-color:var(--layer-hover)}.ui-button--warning-link{border-color:transparent;background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500))}.ui-button--warning-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--warning-link:hover,.ui-button--warning-link:focus-visible{color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-link:hover,.ui-button--warning-link:focus-visible{text-decoration-line:underline}.ui-button--danger-solid{border-color:transparent;background-color:var(--color-danger-500, var(--color-red-500));color:var(--color-white, #fff);--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-solid:hover,.ui-button--danger-solid:focus-visible{background-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline{border-color:var(--color-danger-500, var(--color-red-500));background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{border-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{background-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--danger-ghost{border-color:transparent;background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-ghost:hover,.ui-button--danger-ghost:focus-visible{background-color:var(--color-danger-100, var(--color-red-100))}.ui-button--danger-ghost:hover,.ui-button--danger-ghost:focus-visible{color:var(--color-danger-800, var(--color-red-800))}.ui-button--danger-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-danger-500, var(--color-red-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-white:hover,.ui-button--danger-white:focus-visible{background-color:var(--layer-hover)}.ui-button--danger-link{border-color:transparent;background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-link:hover,.ui-button--danger-link:focus-visible{color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-link:hover,.ui-button--danger-link:focus-visible{text-decoration-line:underline}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-duration: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
5115
+ }]
5116
+ }],
5117
+ propDecorators: {
5118
+ appearance: [{
5119
+ type: i0.Input,
5120
+ args: [{
5121
+ isSignal: true,
5122
+ alias: "appearance",
5123
+ required: false
5124
+ }]
5125
+ }],
5126
+ intent: [{
5127
+ type: i0.Input,
5128
+ args: [{
5129
+ isSignal: true,
5130
+ alias: "intent",
5131
+ required: false
5132
+ }]
5133
+ }],
5134
+ size: [{
5135
+ type: i0.Input,
5136
+ args: [{
5137
+ isSignal: true,
5138
+ alias: "size",
5139
+ required: false
5140
+ }]
5141
+ }],
5142
+ classes: [{
5143
+ type: i0.Input,
5144
+ args: [{
5145
+ isSignal: true,
5146
+ alias: "classes",
5147
+ required: false
5148
+ }]
5149
+ }],
5150
+ type: [{
5151
+ type: i0.Input,
5152
+ args: [{
5153
+ isSignal: true,
5154
+ alias: "type",
5155
+ required: false
5156
+ }]
5157
+ }],
5158
+ ariaLabel: [{
5159
+ type: i0.Input,
5160
+ args: [{
5161
+ isSignal: true,
5162
+ alias: "ariaLabel",
5163
+ required: false
5164
+ }]
5165
+ }],
5166
+ disabled: [{
5167
+ type: i0.Input,
5168
+ args: [{
5169
+ isSignal: true,
5170
+ alias: "disabled",
5171
+ required: false
5172
+ }]
5173
+ }],
5174
+ loading: [{
5175
+ type: i0.Input,
5176
+ args: [{
5177
+ isSignal: true,
5178
+ alias: "loading",
5179
+ required: false
5180
+ }]
5181
+ }]
5182
+ }
5183
+ });
5184
+ const RichTextTools = [
5185
+ "bold",
5186
+ "italic",
5187
+ "underline",
5188
+ "strike",
5189
+ "code",
5190
+ "heading1",
5191
+ "heading2",
5192
+ "heading3",
5193
+ "bulletList",
5194
+ "orderedList",
5195
+ "blockquote",
5196
+ "codeBlock",
5197
+ "horizontalRule",
5198
+ "link",
5199
+ "undo",
5200
+ "redo"
5201
+ ];
5202
+ const RichTextToolGroups = [
5203
+ [
5204
+ "bold",
5205
+ "italic",
5206
+ "underline",
5207
+ "strike",
5208
+ "code"
5209
+ ],
5210
+ [
5211
+ "heading1",
5212
+ "heading2",
5213
+ "heading3"
5214
+ ],
5215
+ [
5216
+ "bulletList",
5217
+ "orderedList",
5218
+ "blockquote",
5219
+ "codeBlock",
5220
+ "horizontalRule"
5221
+ ],
5222
+ ["link"],
5223
+ ["undo", "redo"]
5224
+ ];
5225
+ const TOOLS = {
5226
+ bold: {
5227
+ label: "Bold",
5228
+ icon: "heroBold",
5229
+ active: (editor) => editor.isActive("bold"),
5230
+ run: (chain) => chain.toggleBold()
5231
+ },
5232
+ italic: {
5233
+ label: "Italic",
5234
+ icon: "heroItalic",
5235
+ active: (editor) => editor.isActive("italic"),
5236
+ run: (chain) => chain.toggleItalic()
5237
+ },
5238
+ underline: {
5239
+ label: "Underline",
5240
+ icon: "heroUnderline",
5241
+ active: (editor) => editor.isActive("underline"),
5242
+ run: (chain) => chain.toggleUnderline()
5243
+ },
5244
+ strike: {
5245
+ label: "Strikethrough",
5246
+ icon: "heroStrikethrough",
5247
+ active: (editor) => editor.isActive("strike"),
5248
+ run: (chain) => chain.toggleStrike()
5249
+ },
5250
+ code: {
5251
+ label: "Inline code",
5252
+ icon: "heroCodeBracket",
5253
+ active: (editor) => editor.isActive("code"),
5254
+ run: (chain) => chain.toggleCode()
5255
+ },
5256
+ heading1: {
5257
+ label: "Heading 1",
5258
+ icon: "heroH1",
5259
+ active: (editor) => editor.isActive("heading", { level: 1 }),
5260
+ run: (chain) => chain.toggleHeading({ level: 1 })
5261
+ },
5262
+ heading2: {
5263
+ label: "Heading 2",
5264
+ icon: "heroH2",
5265
+ active: (editor) => editor.isActive("heading", { level: 2 }),
5266
+ run: (chain) => chain.toggleHeading({ level: 2 })
5267
+ },
5268
+ heading3: {
5269
+ label: "Heading 3",
5270
+ icon: "heroH3",
5271
+ active: (editor) => editor.isActive("heading", { level: 3 }),
5272
+ run: (chain) => chain.toggleHeading({ level: 3 })
5273
+ },
5274
+ bulletList: {
5275
+ label: "Bulleted list",
5276
+ icon: "heroListBullet",
5277
+ active: (editor) => editor.isActive("bulletList"),
5278
+ run: (chain) => chain.toggleBulletList()
5279
+ },
5280
+ orderedList: {
5281
+ label: "Numbered list",
5282
+ icon: "heroNumberedList",
5283
+ active: (editor) => editor.isActive("orderedList"),
5284
+ run: (chain) => chain.toggleOrderedList()
5285
+ },
5286
+ blockquote: {
5287
+ label: "Quote",
5288
+ icon: "heroChatBubbleLeft",
5289
+ active: (editor) => editor.isActive("blockquote"),
5290
+ run: (chain) => chain.toggleBlockquote()
5291
+ },
5292
+ codeBlock: {
5293
+ label: "Code block",
5294
+ icon: "heroCodeBracketSquare",
5295
+ active: (editor) => editor.isActive("codeBlock"),
5296
+ run: (chain) => chain.toggleCodeBlock()
5297
+ },
5298
+ horizontalRule: {
5299
+ label: "Divider",
5300
+ icon: "heroMinus",
5301
+ run: (chain) => chain.setHorizontalRule()
5302
+ },
5303
+ undo: {
5304
+ label: "Undo",
5305
+ icon: "heroArrowUturnLeft",
5306
+ run: (chain) => chain.undo()
5307
+ },
5308
+ redo: {
5309
+ label: "Redo",
5310
+ icon: "heroArrowUturnRight",
5311
+ run: (chain) => chain.redo()
5312
+ }
5313
+ };
5314
+ const LINK_TOOL = {
5315
+ label: "Link",
5316
+ icon: "heroLink",
5317
+ active: (editor) => editor.isActive("link"),
5318
+ run: (chain) => chain
5319
+ };
5320
+ let nextId$5 = 0;
5321
+ var UiRichTextEditorComponent = class UiRichTextEditorComponent {
5322
+ value = model.required(...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
5323
+ classes = input("", ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
5324
+ tools = input(RichTextTools, ...ngDevMode ? [{ debugName: "tools" }] : /* istanbul ignore next */ []);
5325
+ id = input("", ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
5326
+ placeholder = input("", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
5327
+ required = input(false, {
5328
+ ...ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {},
5329
+ transform: booleanAttribute
5330
+ });
5331
+ disabled = input(false, {
5332
+ ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
5333
+ transform: booleanAttribute
5334
+ });
5335
+ readonly = input(false, {
5336
+ ...ngDevMode ? { debugName: "readonly" } : /* istanbul ignore next */ {},
5337
+ transform: booleanAttribute
5338
+ });
5339
+ validationState = model(null, ...ngDevMode ? [{ debugName: "validationState" }] : /* istanbul ignore next */ []);
5340
+ spellcheck = input(true, {
5341
+ ...ngDevMode ? { debugName: "spellcheck" } : /* istanbul ignore next */ {},
5342
+ transform: booleanAttribute
5343
+ });
5344
+ ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
5345
+ describedBy = input("", ...ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []);
5346
+ labelledBy = input("", ...ngDevMode ? [{ debugName: "labelledBy" }] : /* istanbul ignore next */ []);
5347
+ focused = output();
5348
+ blurred = output();
5349
+ injector = inject(Injector);
5350
+ field = inject(UiFieldComponent, { optional: true });
5351
+ host = inject(ElementRef);
5352
+ content = viewChild.required("content", ...ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []);
5353
+ editor = signal(null, ...ngDevMode ? [{ debugName: "editor" }] : /* istanbul ignore next */ []);
5354
+ revision = signal(0, ...ngDevMode ? [{ debugName: "revision" }] : /* istanbul ignore next */ []);
5355
+ lastHtml = null;
5356
+ contentId = `ui-rich-text-editor-${nextId$5++}`;
5357
+ linkInputId = `${this.contentId}-link`;
5358
+ linkOpen = signal(false, ...ngDevMode ? [{ debugName: "linkOpen" }] : /* istanbul ignore next */ []);
5359
+ linkHref = signal("", ...ngDevMode ? [{ debugName: "linkHref" }] : /* istanbul ignore next */ []);
5360
+ focusIndex = signal(0, ...ngDevMode ? [{ debugName: "focusIndex" }] : /* istanbul ignore next */ []);
5361
+ resolvedLabelledBy = computed(() => {
5362
+ if (this.labelledBy()) return this.labelledBy();
5363
+ const id = this.id();
5364
+ return id && this.field?.for() === id ? this.field.labelId() : "";
5365
+ }, ...ngDevMode ? [{ debugName: "resolvedLabelledBy" }] : /* istanbul ignore next */ []);
5366
+ editable = computed(() => !this.disabled() && !this.readonly(), ...ngDevMode ? [{ debugName: "editable" }] : /* istanbul ignore next */ []);
5367
+ toolGroups = computed(() => {
5368
+ const tools = new Set(this.tools());
5369
+ return RichTextToolGroups.map((group) => group.filter((tool) => tools.has(tool))).filter((group) => group.length > 0);
5370
+ }, ...ngDevMode ? [{ debugName: "toolGroups" }] : /* istanbul ignore next */ []);
5371
+ flatTools = computed(() => this.toolGroups().flat(), ...ngDevMode ? [{ debugName: "flatTools" }] : /* istanbul ignore next */ []);
5372
+ showToolbar = computed(() => !this.readonly() && this.flatTools().length > 0, ...ngDevMode ? [{ debugName: "showToolbar" }] : /* istanbul ignore next */ []);
5373
+ toolState = computed(() => {
5374
+ this.revision();
5375
+ const editor = this.editor();
5376
+ const editable = this.editable();
5377
+ const state = {};
5378
+ for (const tool of this.flatTools()) {
5379
+ const definition = this.toolDefinition(tool);
5380
+ const runnable = tool === "undo" || tool === "redo" ? !!editor?.can()[tool]() : true;
5381
+ state[tool] = {
5382
+ active: !!editor && !!definition.active?.(editor),
5383
+ enabled: !!editor && editable && runnable
5384
+ };
5385
+ }
5386
+ return state;
5387
+ }, ...ngDevMode ? [{ debugName: "toolState" }] : /* istanbul ignore next */ []);
5388
+ generatedClasses = computed(() => ["ui-rich-text-editor", this.classes()].filter(Boolean).join(" "), ...ngDevMode ? [{ debugName: "generatedClasses" }] : /* istanbul ignore next */ []);
5389
+ contentAttributes = computed(() => {
5390
+ const attributes = {
5391
+ id: this.id() || this.contentId,
5392
+ class: "ui-rich-text-editor__content ui-text-body",
5393
+ role: "textbox",
5394
+ "aria-multiline": "true",
5395
+ spellcheck: String(this.spellcheck())
5396
+ };
5397
+ const optional = {
5398
+ "aria-label": this.ariaLabel(),
5399
+ "aria-labelledby": this.resolvedLabelledBy(),
5400
+ "aria-describedby": this.describedBy(),
5401
+ "aria-required": this.required() && "true",
5402
+ "aria-readonly": this.readonly() && "true",
5403
+ "aria-disabled": this.disabled() && "true",
5404
+ "aria-invalid": this.validationState() === false && "true"
5405
+ };
5406
+ for (const [name, value] of Object.entries(optional)) if (value) attributes[name] = value;
5407
+ return attributes;
5408
+ }, ...ngDevMode ? [{ debugName: "contentAttributes" }] : /* istanbul ignore next */ []);
5409
+ extensions = computed(() => {
5410
+ const tools = new Set(this.tools());
5411
+ const on = (tool) => tools.has(tool) ? {} : false;
5412
+ const levels = [
5413
+ 1,
5414
+ 2,
5415
+ 3
5416
+ ].filter((level) => tools.has(`heading${level}`));
5417
+ return [StarterKit.configure({
5418
+ bold: on("bold"),
5419
+ italic: on("italic"),
5420
+ underline: on("underline"),
5421
+ strike: on("strike"),
5422
+ code: on("code"),
5423
+ heading: levels.length ? { levels: [...levels] } : false,
5424
+ bulletList: on("bulletList"),
5425
+ orderedList: on("orderedList"),
5426
+ blockquote: on("blockquote"),
5427
+ codeBlock: on("codeBlock"),
5428
+ horizontalRule: on("horizontalRule"),
5429
+ trailingNode: false,
5430
+ link: tools.has("link") ? {
5431
+ openOnClick: false,
5432
+ autolink: true,
5433
+ defaultProtocol: "https"
5434
+ } : false
5435
+ }), Placeholder.configure({ placeholder: () => this.placeholder() })];
5436
+ }, ...ngDevMode ? [{ debugName: "extensions" }] : /* istanbul ignore next */ []);
5437
+ constructor() {
5438
+ afterRenderEffect(() => {
5439
+ const extensions = this.extensions();
5440
+ untracked(() => this.createEditor(extensions));
5441
+ });
5442
+ effect(() => {
5443
+ this.editor()?.setEditable(this.editable(), false);
5444
+ });
5445
+ effect(() => {
5446
+ this.editor()?.setOptions({ editorProps: { attributes: this.contentAttributes() } });
5447
+ });
5448
+ effect(() => {
5449
+ const value = this.value();
5450
+ const editor = this.editor();
5451
+ if (editor && value !== this.lastHtml) {
5452
+ this.lastHtml = value;
5453
+ editor.commands.setContent(value, { emitUpdate: false });
5454
+ }
5455
+ });
5456
+ inject(DestroyRef).onDestroy(() => this.editor()?.destroy());
5457
+ }
5458
+ toolDefinition(tool) {
5459
+ return tool === "link" ? LINK_TOOL : TOOLS[tool];
5460
+ }
5461
+ runTool = (tool) => {
5462
+ const editor = this.editor();
5463
+ if (!editor || !this.toolState()[tool]?.enabled) return;
5464
+ if (tool === "link") {
5465
+ this.openLink();
5466
+ return;
5467
+ }
5468
+ this.toolDefinition(tool).run(editor.chain().focus()).run();
5469
+ };
5470
+ onToolbarKeydown = (event) => {
5471
+ const count = this.flatTools().length;
5472
+ const current = this.focusIndex();
5473
+ const next = {
5474
+ ArrowRight: (current + 1) % count,
5475
+ ArrowLeft: (current - 1 + count) % count,
5476
+ Home: 0,
5477
+ End: count - 1
5478
+ }[event.key];
5479
+ if (next === void 0) return;
5480
+ event.preventDefault();
5481
+ this.focusIndex.set(next);
5482
+ this.host.nativeElement.querySelectorAll(".ui-rich-text-editor__tool")[next]?.focus();
5483
+ };
5484
+ openLink = () => {
5485
+ const editor = this.editor();
5486
+ if (!editor) return;
5487
+ this.linkHref.set(editor.getAttributes("link")["href"] ?? "");
5488
+ this.linkOpen.set(true);
5489
+ afterNextRender(() => {
5490
+ this.host.nativeElement.querySelector(`#${this.linkInputId}`)?.focus();
5491
+ }, { injector: this.injector });
5492
+ };
5493
+ applyLink = () => {
5494
+ const editor = this.editor();
5495
+ const typed = this.linkHref().trim();
5496
+ if (!editor) return;
5497
+ if (!typed) {
5498
+ this.removeLink();
5499
+ return;
5500
+ }
5501
+ const href = /^([a-z][a-z\d+.-]*:|[/#?])/i.test(typed) ? typed : `https://${typed}`;
5502
+ const chain = editor.chain().focus().extendMarkRange("link");
5503
+ if (editor.state.selection.empty && !editor.isActive("link")) chain.insertContent({
5504
+ type: "text",
5505
+ text: href,
5506
+ marks: [{
5507
+ type: "link",
5508
+ attrs: { href }
5509
+ }]
5510
+ });
5511
+ else chain.setLink({ href });
5512
+ chain.run();
5513
+ this.linkOpen.set(false);
5514
+ };
5515
+ removeLink = () => {
5516
+ this.editor()?.chain().focus().extendMarkRange("link").unsetLink().run();
5517
+ this.linkOpen.set(false);
5518
+ };
5519
+ closeLink = () => {
5520
+ this.linkOpen.set(false);
5521
+ this.editor()?.commands.focus();
5522
+ };
5523
+ onLinkKeydown = (event) => {
5524
+ if (event.key === "Enter") {
5525
+ event.preventDefault();
5526
+ this.applyLink();
5527
+ } else if (event.key === "Escape") {
5528
+ event.preventDefault();
5529
+ this.closeLink();
5530
+ }
5531
+ };
5532
+ createEditor(extensions) {
5533
+ const previous = this.editor();
5534
+ const content = previous ? this.htmlOf(previous) : this.value();
5535
+ previous?.destroy();
5536
+ const editor = new Editor({
5537
+ element: this.content().nativeElement,
5538
+ extensions,
5539
+ content,
5540
+ editable: this.editable(),
5541
+ editorProps: { attributes: this.contentAttributes() },
5542
+ onUpdate: ({ editor }) => {
5543
+ this.lastHtml = this.htmlOf(editor);
5544
+ this.value.set(this.lastHtml);
5545
+ },
5546
+ onTransaction: () => this.revision.update((revision) => revision + 1),
5547
+ onFocus: ({ event }) => this.focused.emit(event),
5548
+ onBlur: ({ event }) => this.blurred.emit(event)
5549
+ });
5550
+ this.lastHtml = content;
5551
+ this.editor.set(editor);
5552
+ if (previous && this.htmlOf(editor) !== content) {
5553
+ this.lastHtml = this.htmlOf(editor);
5554
+ this.value.set(this.lastHtml);
5555
+ }
5556
+ }
5557
+ htmlOf(editor) {
5558
+ return editor.isEmpty ? "" : editor.getHTML();
5559
+ }
5560
+ static ɵfac = i0.ɵɵngDeclareFactory({
5561
+ minVersion: "12.0.0",
5562
+ version: "22.2.1",
5563
+ ngImport: i0,
5564
+ type: UiRichTextEditorComponent,
5565
+ deps: [],
5566
+ target: i0.ɵɵFactoryTarget.Component
5567
+ });
5568
+ static ɵcmp = i0.ɵɵngDeclareComponent({
5569
+ minVersion: "17.0.0",
5570
+ version: "22.2.1",
5571
+ type: UiRichTextEditorComponent,
5572
+ isStandalone: true,
5573
+ selector: "ui-rich-text-editor",
5574
+ inputs: {
5575
+ value: {
5576
+ classPropertyName: "value",
5577
+ publicName: "value",
5578
+ isSignal: true,
5579
+ isRequired: true,
5580
+ transformFunction: null
5581
+ },
5582
+ classes: {
5583
+ classPropertyName: "classes",
5584
+ publicName: "classes",
5585
+ isSignal: true,
5586
+ isRequired: false,
5587
+ transformFunction: null
5588
+ },
5589
+ tools: {
5590
+ classPropertyName: "tools",
5591
+ publicName: "tools",
5592
+ isSignal: true,
5593
+ isRequired: false,
5594
+ transformFunction: null
5595
+ },
5596
+ id: {
5597
+ classPropertyName: "id",
5598
+ publicName: "id",
5599
+ isSignal: true,
5600
+ isRequired: false,
5601
+ transformFunction: null
5602
+ },
5603
+ placeholder: {
5604
+ classPropertyName: "placeholder",
5605
+ publicName: "placeholder",
5606
+ isSignal: true,
5607
+ isRequired: false,
5608
+ transformFunction: null
5609
+ },
5610
+ required: {
5611
+ classPropertyName: "required",
5612
+ publicName: "required",
5613
+ isSignal: true,
5614
+ isRequired: false,
5615
+ transformFunction: null
5616
+ },
5617
+ disabled: {
5618
+ classPropertyName: "disabled",
5619
+ publicName: "disabled",
5620
+ isSignal: true,
5621
+ isRequired: false,
5622
+ transformFunction: null
5623
+ },
5624
+ readonly: {
5625
+ classPropertyName: "readonly",
5626
+ publicName: "readonly",
5627
+ isSignal: true,
5628
+ isRequired: false,
5629
+ transformFunction: null
5630
+ },
5631
+ validationState: {
5632
+ classPropertyName: "validationState",
5633
+ publicName: "validationState",
5634
+ isSignal: true,
5635
+ isRequired: false,
5636
+ transformFunction: null
5637
+ },
5638
+ spellcheck: {
5639
+ classPropertyName: "spellcheck",
5640
+ publicName: "spellcheck",
5641
+ isSignal: true,
5642
+ isRequired: false,
5643
+ transformFunction: null
5644
+ },
5645
+ ariaLabel: {
5646
+ classPropertyName: "ariaLabel",
5647
+ publicName: "ariaLabel",
5648
+ isSignal: true,
5649
+ isRequired: false,
5650
+ transformFunction: null
5651
+ },
5652
+ describedBy: {
5653
+ classPropertyName: "describedBy",
5654
+ publicName: "describedBy",
5655
+ isSignal: true,
5656
+ isRequired: false,
5657
+ transformFunction: null
5658
+ },
5659
+ labelledBy: {
5660
+ classPropertyName: "labelledBy",
5661
+ publicName: "labelledBy",
5662
+ isSignal: true,
5663
+ isRequired: false,
5664
+ transformFunction: null
5665
+ }
5666
+ },
5667
+ outputs: {
5668
+ value: "valueChange",
5669
+ validationState: "validationStateChange",
5670
+ focused: "focused",
5671
+ blurred: "blurred"
5672
+ },
5673
+ host: {
5674
+ properties: { "attr.id": "null" },
5675
+ classAttribute: "ui-rich-text-editor-host"
5676
+ },
5677
+ providers: [provideIcons({
5678
+ heroArrowUturnLeft,
5679
+ heroArrowUturnRight,
5680
+ heroBold,
5681
+ heroChatBubbleLeft,
5682
+ heroCodeBracket,
5683
+ heroCodeBracketSquare,
5684
+ heroH1,
5685
+ heroH2,
5686
+ heroH3,
5687
+ heroItalic,
5688
+ heroLink,
5689
+ heroListBullet,
5690
+ heroMinus,
5691
+ heroNumberedList,
5692
+ heroStrikethrough,
5693
+ heroUnderline
5694
+ })],
5695
+ viewQueries: [{
5696
+ propertyName: "content",
5697
+ first: true,
5698
+ predicate: ["content"],
5699
+ descendants: true,
5700
+ isSignal: true
5701
+ }],
5702
+ ngImport: i0,
5703
+ template: "<div\n [class]=\"generatedClasses()\"\n [attr.data-invalid]=\"validationState() === false ? '' : null\"\n [attr.data-valid]=\"validationState() === true ? '' : null\"\n [attr.data-disabled]=\"disabled() ? '' : null\"\n>\n @if (showToolbar()) {\n <div\n class=\"ui-rich-text-editor__toolbar\"\n role=\"toolbar\"\n tabindex=\"-1\"\n aria-label=\"Formatting\"\n [attr.aria-controls]=\"id() || contentId\"\n (keydown)=\"onToolbarKeydown($event)\"\n >\n @for (group of toolGroups(); track group[0]) {\n @if (!$first) {\n <span\n class=\"ui-rich-text-editor__divider\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n ></span>\n }\n\n @for (tool of group; track tool) {\n @let definition = toolDefinition(tool);\n @let state = toolState()[tool];\n\n <button\n type=\"button\"\n class=\"ui-rich-text-editor__tool\"\n [title]=\"definition.label\"\n [attr.aria-label]=\"definition.label\"\n [attr.aria-pressed]=\"definition.active ? state.active : null\"\n [attr.aria-disabled]=\"state.enabled ? null : 'true'\"\n [attr.data-active]=\"state.active ? '' : null\"\n [tabIndex]=\"flatTools().indexOf(tool) === focusIndex() ? 0 : -1\"\n (mousedown)=\"$event.preventDefault()\"\n (focus)=\"focusIndex.set(flatTools().indexOf(tool))\"\n (click)=\"runTool(tool)\"\n >\n <ng-icon [name]=\"definition.icon\" aria-hidden=\"true\" />\n </button>\n }\n }\n </div>\n }\n\n @if (linkOpen()) {\n <div\n class=\"ui-rich-text-editor__link\"\n tabindex=\"-1\"\n (keydown)=\"onLinkKeydown($event)\"\n >\n <ui-input\n class=\"ui-rich-text-editor__link-input\"\n type=\"url\"\n placeholder=\"https://\"\n ariaLabel=\"Link address\"\n [id]=\"linkInputId\"\n [(value)]=\"linkHref\"\n />\n\n <ui-button size=\"sm\" (click)=\"applyLink()\">Apply</ui-button>\n\n @if (toolState()['link']?.active) {\n <ui-button\n size=\"sm\"\n appearance=\"ghost\"\n intent=\"danger\"\n (click)=\"removeLink()\"\n >\n Remove\n </ui-button>\n }\n\n <ui-button\n size=\"sm\"\n appearance=\"ghost\"\n intent=\"secondary\"\n (click)=\"closeLink()\"\n >\n Cancel\n </ui-button>\n </div>\n }\n\n <div #content class=\"ui-rich-text-editor__body\"></div>\n</div>\n",
5704
+ styles: ["@layer properties;@layer components{.ui-rich-text-editor-host{width:100%}}.ui-rich-text-editor-host{display:block}.ui-rich-text-editor{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border-line-2);background-color:var(--layer)}.ui-rich-text-editor:focus-within{border-color:var(--primary-focus)}.ui-rich-text-editor:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-rich-text-editor:focus-within{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor:focus-within{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-rich-text-editor[data-disabled]{opacity:50%}.ui-rich-text-editor[data-invalid]{border-color:var(--color-danger-500, var(--color-red-500))}.ui-rich-text-editor[data-invalid]:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-rich-text-editor[data-invalid]:focus-within{--tw-ring-color: color-mix(in srgb, oklch(88.5% .062 18.334) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor[data-invalid]:focus-within{--tw-ring-color: color-mix(in oklab, var(--color-danger-200, var(--color-red-200)) 50%, transparent)}}.ui-rich-text-editor[data-valid]{border-color:var(--color-success-500, var(--color-teal-500))}.ui-rich-text-editor[data-valid]:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-rich-text-editor[data-valid]:focus-within{--tw-ring-color: color-mix(in srgb, oklch(91% .096 180.426) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor[data-valid]:focus-within{--tw-ring-color: color-mix(in oklab, var(--color-success-200, var(--color-teal-200)) 50%, transparent)}}.ui-rich-text-editor__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * .5);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--border-line-2);padding:var(--spacing, .25rem)}.ui-rich-text-editor__divider{margin-inline:var(--spacing, .25rem);height:calc(var(--spacing, .25rem) * 5);width:1px;background-color:var(--border-line-2)}.ui-rich-text-editor__tool{display:inline-flex;width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);align-items:center;justify-content:center;border-radius:var(--radius-md, .375rem);color:var(--muted-foreground-1)}.ui-rich-text-editor__tool:hover{background-color:var(--layer-hover)}.ui-rich-text-editor__tool:hover{color:var(--foreground)}.ui-rich-text-editor__tool:focus{--tw-outline-style: none;outline-style:none}.ui-rich-text-editor__tool:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-rich-text-editor__tool:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor__tool:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-rich-text-editor__tool[data-active]{background-color:var(--color-primary-100, var(--color-blue-100));color:var(--color-primary-700, var(--color-blue-700))}.ui-rich-text-editor__tool[data-active]:where(.dark,.dark *){background-color:color-mix(in srgb,oklch(37.9% .146 265.522) 50%,transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor__tool[data-active]:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-900, var(--color-blue-900)) 50%,transparent)}}.ui-rich-text-editor__tool[data-active]:where(.dark,.dark *){color:var(--color-primary-300, var(--color-blue-300))}.ui-rich-text-editor__tool[aria-disabled]{pointer-events:none;opacity:40%}.ui-rich-text-editor__link{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--border-line-2);padding:calc(var(--spacing, .25rem) * 2)}.ui-rich-text-editor__link-input{height:calc(var(--spacing, .25rem) * 9);flex:1}.ui-rich-text-editor__body{max-height:32rem;min-height:calc(var(--spacing, .25rem) * 32);overflow-y:auto}.ui-rich-text-editor__content{min-height:calc(var(--spacing, .25rem) * 32);padding:calc(var(--spacing, .25rem) * 3);color:var(--foreground)}.ui-rich-text-editor__content:focus{--tw-outline-style: none;outline-style:none}.ui-rich-text-editor__content>*+*{margin-top:calc(var(--spacing, .25rem) * 3)}.ui-rich-text-editor__content h1{font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.ui-rich-text-editor__content h2{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.ui-rich-text-editor__content h3{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.ui-rich-text-editor__content ul{list-style-type:disc;padding-inline-start:calc(var(--spacing, .25rem) * 6)}.ui-rich-text-editor__content ol{list-style-type:decimal;padding-inline-start:calc(var(--spacing, .25rem) * 6)}.ui-rich-text-editor__content li>p{margin-block:calc(var(--spacing, .25rem) * .5)}.ui-rich-text-editor__content blockquote{border-inline-start-style:var(--tw-border-style);border-inline-start-width:4px;border-color:var(--border-line-3);padding-inline-start:calc(var(--spacing, .25rem) * 4);color:var(--muted-foreground-1)}.ui-rich-text-editor__content code{border-radius:.25rem;background-color:var(--muted);padding-inline:var(--spacing, .25rem);padding-block:calc(var(--spacing, .25rem) * .5);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-size:.875em}.ui-rich-text-editor__content pre{overflow-x:auto;border-radius:var(--radius-md, .375rem);background-color:var(--muted);padding:calc(var(--spacing, .25rem) * 3);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}.ui-rich-text-editor__content pre code{background-color:transparent;padding:0;color:inherit}.ui-rich-text-editor__content hr{border-color:var(--border-line-2)}.ui-rich-text-editor__content hr.ProseMirror-selectednode{border-color:var(--color-primary-500, var(--color-blue-500))}.ui-rich-text-editor__content a{color:var(--color-primary-600, var(--color-blue-600));text-decoration-line:underline}.ui-rich-text-editor__content a:where(.dark,.dark *){color:var(--color-primary-400, var(--color-blue-400))}.ui-rich-text-editor__content p.is-editor-empty:first-child:before{pointer-events:none;float:inline-start;height:0px;color:var(--muted-foreground-2);content:attr(data-placeholder)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"],
5705
+ dependencies: [
5706
+ {
5707
+ kind: "component",
5708
+ type: NgIcon,
5709
+ selector: "ng-icon",
5710
+ inputs: [
5711
+ "name",
5712
+ "svg",
5713
+ "size",
5714
+ "strokeWidth",
5715
+ "color"
5716
+ ]
5717
+ },
5718
+ {
5719
+ kind: "component",
5720
+ type: UiButtonComponent,
5721
+ selector: "ui-button",
5722
+ inputs: [
5723
+ "appearance",
5724
+ "intent",
5725
+ "size",
5726
+ "classes",
5727
+ "type",
5728
+ "ariaLabel",
5729
+ "disabled",
5730
+ "loading"
5731
+ ]
5732
+ },
5733
+ {
5734
+ kind: "component",
5735
+ type: UiInputComponent,
5736
+ selector: "ui-input",
5737
+ inputs: [
5738
+ "value",
5739
+ "classes",
5740
+ "type",
5741
+ "id",
5742
+ "name",
5743
+ "placeholder",
5744
+ "autocomplete",
5745
+ "inputmode",
5746
+ "required",
5747
+ "disabled",
5748
+ "readonly",
5749
+ "validationState",
5750
+ "min",
5751
+ "max",
5752
+ "step",
5753
+ "pattern",
5754
+ "minlength",
5755
+ "maxlength",
5756
+ "autofocus",
5757
+ "spellcheck",
5758
+ "revealable",
5759
+ "list",
5760
+ "ariaLabel",
5761
+ "describedBy",
5762
+ "inputRole",
5763
+ "ariaExpanded",
5764
+ "ariaControls",
5765
+ "ariaActiveDescendant",
5766
+ "ariaAutocomplete",
5767
+ "ariaHasPopup"
5768
+ ],
5769
+ outputs: [
5770
+ "valueChange",
5771
+ "validationStateChange",
5772
+ "focused",
5773
+ "blurred"
5774
+ ]
5775
+ }
5776
+ ],
5777
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
5778
+ encapsulation: i0.ViewEncapsulation.None
5779
+ });
5780
+ };
5781
+ i0.ɵɵngDeclareClassMetadata({
5782
+ minVersion: "12.0.0",
5783
+ version: "22.2.1",
5784
+ ngImport: i0,
5785
+ type: UiRichTextEditorComponent,
5786
+ decorators: [{
5787
+ type: Component,
5788
+ args: [{
5789
+ selector: "ui-rich-text-editor",
5790
+ changeDetection: ChangeDetectionStrategy.OnPush,
5791
+ encapsulation: ViewEncapsulation.None,
5792
+ imports: [
5793
+ NgIcon,
5794
+ UiButtonComponent,
5795
+ UiInputComponent
5796
+ ],
5797
+ providers: [provideIcons({
5798
+ heroArrowUturnLeft,
5799
+ heroArrowUturnRight,
5800
+ heroBold,
5801
+ heroChatBubbleLeft,
5802
+ heroCodeBracket,
5803
+ heroCodeBracketSquare,
5804
+ heroH1,
5805
+ heroH2,
5806
+ heroH3,
5807
+ heroItalic,
5808
+ heroLink,
5809
+ heroListBullet,
5810
+ heroMinus,
5811
+ heroNumberedList,
5812
+ heroStrikethrough,
5813
+ heroUnderline
5814
+ })],
5815
+ host: {
5816
+ class: "ui-rich-text-editor-host",
5817
+ "[attr.id]": "null"
5818
+ },
5819
+ template: "<div\n [class]=\"generatedClasses()\"\n [attr.data-invalid]=\"validationState() === false ? '' : null\"\n [attr.data-valid]=\"validationState() === true ? '' : null\"\n [attr.data-disabled]=\"disabled() ? '' : null\"\n>\n @if (showToolbar()) {\n <div\n class=\"ui-rich-text-editor__toolbar\"\n role=\"toolbar\"\n tabindex=\"-1\"\n aria-label=\"Formatting\"\n [attr.aria-controls]=\"id() || contentId\"\n (keydown)=\"onToolbarKeydown($event)\"\n >\n @for (group of toolGroups(); track group[0]) {\n @if (!$first) {\n <span\n class=\"ui-rich-text-editor__divider\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n ></span>\n }\n\n @for (tool of group; track tool) {\n @let definition = toolDefinition(tool);\n @let state = toolState()[tool];\n\n <button\n type=\"button\"\n class=\"ui-rich-text-editor__tool\"\n [title]=\"definition.label\"\n [attr.aria-label]=\"definition.label\"\n [attr.aria-pressed]=\"definition.active ? state.active : null\"\n [attr.aria-disabled]=\"state.enabled ? null : 'true'\"\n [attr.data-active]=\"state.active ? '' : null\"\n [tabIndex]=\"flatTools().indexOf(tool) === focusIndex() ? 0 : -1\"\n (mousedown)=\"$event.preventDefault()\"\n (focus)=\"focusIndex.set(flatTools().indexOf(tool))\"\n (click)=\"runTool(tool)\"\n >\n <ng-icon [name]=\"definition.icon\" aria-hidden=\"true\" />\n </button>\n }\n }\n </div>\n }\n\n @if (linkOpen()) {\n <div\n class=\"ui-rich-text-editor__link\"\n tabindex=\"-1\"\n (keydown)=\"onLinkKeydown($event)\"\n >\n <ui-input\n class=\"ui-rich-text-editor__link-input\"\n type=\"url\"\n placeholder=\"https://\"\n ariaLabel=\"Link address\"\n [id]=\"linkInputId\"\n [(value)]=\"linkHref\"\n />\n\n <ui-button size=\"sm\" (click)=\"applyLink()\">Apply</ui-button>\n\n @if (toolState()['link']?.active) {\n <ui-button\n size=\"sm\"\n appearance=\"ghost\"\n intent=\"danger\"\n (click)=\"removeLink()\"\n >\n Remove\n </ui-button>\n }\n\n <ui-button\n size=\"sm\"\n appearance=\"ghost\"\n intent=\"secondary\"\n (click)=\"closeLink()\"\n >\n Cancel\n </ui-button>\n </div>\n }\n\n <div #content class=\"ui-rich-text-editor__body\"></div>\n</div>\n",
5820
+ styles: ["@layer properties;@layer components{.ui-rich-text-editor-host{width:100%}}.ui-rich-text-editor-host{display:block}.ui-rich-text-editor{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border-line-2);background-color:var(--layer)}.ui-rich-text-editor:focus-within{border-color:var(--primary-focus)}.ui-rich-text-editor:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-rich-text-editor:focus-within{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor:focus-within{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-rich-text-editor[data-disabled]{opacity:50%}.ui-rich-text-editor[data-invalid]{border-color:var(--color-danger-500, var(--color-red-500))}.ui-rich-text-editor[data-invalid]:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-rich-text-editor[data-invalid]:focus-within{--tw-ring-color: color-mix(in srgb, oklch(88.5% .062 18.334) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor[data-invalid]:focus-within{--tw-ring-color: color-mix(in oklab, var(--color-danger-200, var(--color-red-200)) 50%, transparent)}}.ui-rich-text-editor[data-valid]{border-color:var(--color-success-500, var(--color-teal-500))}.ui-rich-text-editor[data-valid]:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-rich-text-editor[data-valid]:focus-within{--tw-ring-color: color-mix(in srgb, oklch(91% .096 180.426) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor[data-valid]:focus-within{--tw-ring-color: color-mix(in oklab, var(--color-success-200, var(--color-teal-200)) 50%, transparent)}}.ui-rich-text-editor__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * .5);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--border-line-2);padding:var(--spacing, .25rem)}.ui-rich-text-editor__divider{margin-inline:var(--spacing, .25rem);height:calc(var(--spacing, .25rem) * 5);width:1px;background-color:var(--border-line-2)}.ui-rich-text-editor__tool{display:inline-flex;width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);align-items:center;justify-content:center;border-radius:var(--radius-md, .375rem);color:var(--muted-foreground-1)}.ui-rich-text-editor__tool:hover{background-color:var(--layer-hover)}.ui-rich-text-editor__tool:hover{color:var(--foreground)}.ui-rich-text-editor__tool:focus{--tw-outline-style: none;outline-style:none}.ui-rich-text-editor__tool:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-rich-text-editor__tool:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor__tool:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-rich-text-editor__tool[data-active]{background-color:var(--color-primary-100, var(--color-blue-100));color:var(--color-primary-700, var(--color-blue-700))}.ui-rich-text-editor__tool[data-active]:where(.dark,.dark *){background-color:color-mix(in srgb,oklch(37.9% .146 265.522) 50%,transparent)}@supports (color: color-mix(in lab,red,red)){.ui-rich-text-editor__tool[data-active]:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary-900, var(--color-blue-900)) 50%,transparent)}}.ui-rich-text-editor__tool[data-active]:where(.dark,.dark *){color:var(--color-primary-300, var(--color-blue-300))}.ui-rich-text-editor__tool[aria-disabled]{pointer-events:none;opacity:40%}.ui-rich-text-editor__link{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--border-line-2);padding:calc(var(--spacing, .25rem) * 2)}.ui-rich-text-editor__link-input{height:calc(var(--spacing, .25rem) * 9);flex:1}.ui-rich-text-editor__body{max-height:32rem;min-height:calc(var(--spacing, .25rem) * 32);overflow-y:auto}.ui-rich-text-editor__content{min-height:calc(var(--spacing, .25rem) * 32);padding:calc(var(--spacing, .25rem) * 3);color:var(--foreground)}.ui-rich-text-editor__content:focus{--tw-outline-style: none;outline-style:none}.ui-rich-text-editor__content>*+*{margin-top:calc(var(--spacing, .25rem) * 3)}.ui-rich-text-editor__content h1{font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.ui-rich-text-editor__content h2{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.ui-rich-text-editor__content h3{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.ui-rich-text-editor__content ul{list-style-type:disc;padding-inline-start:calc(var(--spacing, .25rem) * 6)}.ui-rich-text-editor__content ol{list-style-type:decimal;padding-inline-start:calc(var(--spacing, .25rem) * 6)}.ui-rich-text-editor__content li>p{margin-block:calc(var(--spacing, .25rem) * .5)}.ui-rich-text-editor__content blockquote{border-inline-start-style:var(--tw-border-style);border-inline-start-width:4px;border-color:var(--border-line-3);padding-inline-start:calc(var(--spacing, .25rem) * 4);color:var(--muted-foreground-1)}.ui-rich-text-editor__content code{border-radius:.25rem;background-color:var(--muted);padding-inline:var(--spacing, .25rem);padding-block:calc(var(--spacing, .25rem) * .5);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-size:.875em}.ui-rich-text-editor__content pre{overflow-x:auto;border-radius:var(--radius-md, .375rem);background-color:var(--muted);padding:calc(var(--spacing, .25rem) * 3);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}.ui-rich-text-editor__content pre code{background-color:transparent;padding:0;color:inherit}.ui-rich-text-editor__content hr{border-color:var(--border-line-2)}.ui-rich-text-editor__content hr.ProseMirror-selectednode{border-color:var(--color-primary-500, var(--color-blue-500))}.ui-rich-text-editor__content a{color:var(--color-primary-600, var(--color-blue-600));text-decoration-line:underline}.ui-rich-text-editor__content a:where(.dark,.dark *){color:var(--color-primary-400, var(--color-blue-400))}.ui-rich-text-editor__content p.is-editor-empty:first-child:before{pointer-events:none;float:inline-start;height:0px;color:var(--muted-foreground-2);content:attr(data-placeholder)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
5821
+ }]
5822
+ }],
5823
+ ctorParameters: () => [],
5824
+ propDecorators: {
5825
+ value: [{
5826
+ type: i0.Input,
5827
+ args: [{
5828
+ isSignal: true,
5829
+ alias: "value",
5830
+ required: true
5831
+ }]
5832
+ }, {
5833
+ type: i0.Output,
5834
+ args: ["valueChange"]
5835
+ }],
5836
+ classes: [{
5837
+ type: i0.Input,
5838
+ args: [{
5839
+ isSignal: true,
5840
+ alias: "classes",
5841
+ required: false
5842
+ }]
5843
+ }],
5844
+ tools: [{
5845
+ type: i0.Input,
5846
+ args: [{
5847
+ isSignal: true,
5848
+ alias: "tools",
5849
+ required: false
5850
+ }]
5851
+ }],
5852
+ id: [{
5853
+ type: i0.Input,
5854
+ args: [{
5855
+ isSignal: true,
5856
+ alias: "id",
5857
+ required: false
5858
+ }]
5859
+ }],
5860
+ placeholder: [{
5861
+ type: i0.Input,
5862
+ args: [{
5863
+ isSignal: true,
5864
+ alias: "placeholder",
5865
+ required: false
5866
+ }]
5867
+ }],
5868
+ required: [{
5869
+ type: i0.Input,
5870
+ args: [{
5871
+ isSignal: true,
5872
+ alias: "required",
5873
+ required: false
5874
+ }]
5875
+ }],
5876
+ disabled: [{
5877
+ type: i0.Input,
5878
+ args: [{
5879
+ isSignal: true,
5880
+ alias: "disabled",
5881
+ required: false
5882
+ }]
5883
+ }],
5884
+ readonly: [{
5885
+ type: i0.Input,
5886
+ args: [{
5887
+ isSignal: true,
5888
+ alias: "readonly",
5889
+ required: false
5890
+ }]
5891
+ }],
5892
+ validationState: [{
5893
+ type: i0.Input,
5894
+ args: [{
5895
+ isSignal: true,
5896
+ alias: "validationState",
5897
+ required: false
5898
+ }]
5899
+ }, {
5900
+ type: i0.Output,
5901
+ args: ["validationStateChange"]
5902
+ }],
5903
+ spellcheck: [{
5904
+ type: i0.Input,
5905
+ args: [{
5906
+ isSignal: true,
5907
+ alias: "spellcheck",
5908
+ required: false
5909
+ }]
5910
+ }],
5911
+ ariaLabel: [{
5912
+ type: i0.Input,
5913
+ args: [{
5914
+ isSignal: true,
5915
+ alias: "ariaLabel",
5916
+ required: false
5917
+ }]
5918
+ }],
5919
+ describedBy: [{
5920
+ type: i0.Input,
5921
+ args: [{
5922
+ isSignal: true,
5923
+ alias: "describedBy",
4941
5924
  required: false
4942
5925
  }]
4943
- }, {
4944
- type: i0.Output,
4945
- args: ["validationStateChange"]
4946
5926
  }],
4947
- compareWith: [{
5927
+ labelledBy: [{
4948
5928
  type: i0.Input,
4949
5929
  args: [{
4950
5930
  isSignal: true,
4951
- alias: "compareWith",
5931
+ alias: "labelledBy",
4952
5932
  required: false
4953
5933
  }]
5934
+ }],
5935
+ focused: [{
5936
+ type: i0.Output,
5937
+ args: ["focused"]
5938
+ }],
5939
+ blurred: [{
5940
+ type: i0.Output,
5941
+ args: ["blurred"]
5942
+ }],
5943
+ content: [{
5944
+ type: i0.ViewChild,
5945
+ args: ["content", { isSignal: true }]
4954
5946
  }]
4955
5947
  }
4956
5948
  });
@@ -6115,7 +7107,10 @@ var UiSelectComponent = class UiSelectComponent {
6115
7107
  selectedItem: "selectedItemChange",
6116
7108
  selectedItems: "selectedItemsChange"
6117
7109
  },
6118
- host: { listeners: { "focusout": "onFocusOut($event)" } },
7110
+ host: {
7111
+ listeners: { "focusout": "onFocusOut($event)" },
7112
+ properties: { "attr.id": "null" }
7113
+ },
6119
7114
  providers: [provideIcons({
6120
7115
  heroChevronDown,
6121
7116
  heroXMark,
@@ -6270,7 +7265,10 @@ i0.ɵɵngDeclareClassMetadata({
6270
7265
  NgIcon,
6271
7266
  NgTemplateOutlet
6272
7267
  ],
6273
- host: { "(focusout)": "onFocusOut($event)" },
7268
+ host: {
7269
+ "[attr.id]": "null",
7270
+ "(focusout)": "onFocusOut($event)"
7271
+ },
6274
7272
  providers: [provideIcons({
6275
7273
  heroChevronDown,
6276
7274
  heroXMark,
@@ -6725,6 +7723,7 @@ var UiTextareaComponent = class UiTextareaComponent {
6725
7723
  focused: "focused",
6726
7724
  blurred: "blurred"
6727
7725
  },
7726
+ host: { properties: { "attr.id": "null" } },
6728
7727
  ngImport: i0,
6729
7728
  template: "<textarea\n [value]=\"value()\"\n [class]=\"generatedClasses()\"\n [attr.id]=\"id() || null\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [rows]=\"rows()\"\n [style.resize]=\"resize()\"\n [attr.maxlength]=\"maxlength()\"\n [attr.minlength]=\"minlength()\"\n \n [attr.spellcheck]=\"spellcheck()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-describedby]=\"describedBy() || null\"\n [attr.data-invalid]=\"validationState() === false ? '' : null\"\n [attr.data-valid]=\"validationState() === true ? '' : null\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n></textarea>\n",
6730
7729
  styles: ["@layer properties;@layer components{:host{width:100%}}:host{display:block}.ui-textarea{display:block;width:100%;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border-line-2);background-color:var(--layer);padding:calc(var(--spacing, .25rem) * 3)}.ui-textarea:focus{border-color:var(--primary-focus)}.ui-textarea:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-textarea:focus{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-textarea:focus{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-textarea:focus{--tw-outline-style: none;outline-style:none}.ui-textarea:disabled{opacity:50%}.ui-textarea[data-invalid]{border-color:var(--color-danger-500, var(--color-red-500))}.ui-textarea[data-invalid]:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-textarea[data-invalid]:focus{--tw-ring-color: color-mix(in srgb, oklch(88.5% .062 18.334) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-textarea[data-invalid]:focus{--tw-ring-color: color-mix(in oklab, var(--color-danger-200, var(--color-red-200)) 50%, transparent)}}.ui-textarea[data-valid]{border-color:var(--color-success-500, var(--color-teal-500))}.ui-textarea[data-valid]:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-textarea[data-valid]:focus{--tw-ring-color: color-mix(in srgb, oklch(91% .096 180.426) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-textarea[data-valid]:focus{--tw-ring-color: color-mix(in oklab, var(--color-success-200, var(--color-teal-200)) 50%, transparent)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
@@ -6739,6 +7738,7 @@ i0.ɵɵngDeclareClassMetadata({
6739
7738
  type: Component,
6740
7739
  args: [{
6741
7740
  selector: "ui-textarea",
7741
+ host: { "[attr.id]": "null" },
6742
7742
  template: "<textarea\n [value]=\"value()\"\n [class]=\"generatedClasses()\"\n [attr.id]=\"id() || null\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [rows]=\"rows()\"\n [style.resize]=\"resize()\"\n [attr.maxlength]=\"maxlength()\"\n [attr.minlength]=\"minlength()\"\n \n [attr.spellcheck]=\"spellcheck()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-describedby]=\"describedBy() || null\"\n [attr.data-invalid]=\"validationState() === false ? '' : null\"\n [attr.data-valid]=\"validationState() === true ? '' : null\"\n (input)=\"handleInput($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n></textarea>\n",
6743
7743
  styles: ["@layer properties;@layer components{:host{width:100%}}:host{display:block}.ui-textarea{display:block;width:100%;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border-line-2);background-color:var(--layer);padding:calc(var(--spacing, .25rem) * 3)}.ui-textarea:focus{border-color:var(--primary-focus)}.ui-textarea:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-textarea:focus{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-textarea:focus{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-textarea:focus{--tw-outline-style: none;outline-style:none}.ui-textarea:disabled{opacity:50%}.ui-textarea[data-invalid]{border-color:var(--color-danger-500, var(--color-red-500))}.ui-textarea[data-invalid]:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-textarea[data-invalid]:focus{--tw-ring-color: color-mix(in srgb, oklch(88.5% .062 18.334) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-textarea[data-invalid]:focus{--tw-ring-color: color-mix(in oklab, var(--color-danger-200, var(--color-red-200)) 50%, transparent)}}.ui-textarea[data-valid]{border-color:var(--color-success-500, var(--color-teal-500))}.ui-textarea[data-valid]:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-textarea[data-valid]:focus{--tw-ring-color: color-mix(in srgb, oklch(91% .096 180.426) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-textarea[data-valid]:focus{--tw-ring-color: color-mix(in oklab, var(--color-success-200, var(--color-teal-200)) 50%, transparent)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
6744
7744
  }]
@@ -7010,10 +8010,17 @@ const AlertIntents = [
7010
8010
  "danger"
7011
8011
  ];
7012
8012
  const AlertAppearances = ["soft", "bordered"];
8013
+ const TEXT_CLASSES = {
8014
+ sm: "ui-text-caption",
8015
+ md: "ui-text-caption",
8016
+ lg: "ui-text-body-alt",
8017
+ xl: "ui-text-h3"
8018
+ };
7013
8019
  var UiAvatarComponent = class UiAvatarComponent {
7014
8020
  name = input.required(...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
7015
8021
  src = input(null, ...ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []);
7016
8022
  size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
8023
+ colour = input(null, ...ngDevMode ? [{ debugName: "colour" }] : /* istanbul ignore next */ []);
7017
8024
  failedSrc = signal(null, ...ngDevMode ? [{ debugName: "failedSrc" }] : /* istanbul ignore next */ []);
7018
8025
  showImage = computed(() => {
7019
8026
  const src = this.src();
@@ -7023,10 +8030,14 @@ var UiAvatarComponent = class UiAvatarComponent {
7023
8030
  const words = this.name().trim().split(/\s+/).filter(Boolean);
7024
8031
  return ((words[0]?.[0] ?? "") + (words.length > 1 ? words[words.length - 1][0] : "")).toUpperCase();
7025
8032
  }, ...ngDevMode ? [{ debugName: "initials" }] : /* istanbul ignore next */ []);
8033
+ ink = computed(() => {
8034
+ const colour = this.colour();
8035
+ return colour ? chartLabelInk(colour) : null;
8036
+ }, ...ngDevMode ? [{ debugName: "ink" }] : /* istanbul ignore next */ []);
7026
8037
  generatedClasses = computed(() => [
7027
8038
  "ui-avatar",
7028
8039
  `ui-avatar--${this.size()}`,
7029
- this.size() === "lg" ? "ui-text-body-alt" : "ui-text-caption"
8040
+ TEXT_CLASSES[this.size()]
7030
8041
  ].join(" "), ...ngDevMode ? [{ debugName: "generatedClasses" }] : /* istanbul ignore next */ []);
7031
8042
  imageFailed() {
7032
8043
  this.failedSrc.set(this.src());
@@ -7066,286 +8077,108 @@ var UiAvatarComponent = class UiAvatarComponent {
7066
8077
  isSignal: true,
7067
8078
  isRequired: false,
7068
8079
  transformFunction: null
8080
+ },
8081
+ colour: {
8082
+ classPropertyName: "colour",
8083
+ publicName: "colour",
8084
+ isSignal: true,
8085
+ isRequired: false,
8086
+ transformFunction: null
7069
8087
  }
7070
8088
  },
7071
8089
  host: {
7072
8090
  attributes: { "role": "img" },
7073
8091
  properties: {
7074
8092
  "attr.aria-label": "name()",
7075
- "class": "generatedClasses()"
8093
+ "class": "generatedClasses()",
8094
+ "style.background-color": "colour()",
8095
+ "style.color": "ink()"
7076
8096
  }
7077
8097
  },
7078
8098
  ngImport: i0,
7079
8099
  template: "@if (showImage()) {\n <img class=\"ui-avatar-image\" [src]=\"src()\" alt=\"\" (error)=\"imageFailed()\" />\n} @else {\n <span aria-hidden=\"true\">{{ initials() }}</span>\n}\n",
7080
- styles: ["@layer properties;:host(.ui-avatar){display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-full, calc(infinity * 1px));background-color:var(--surface);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:var(--foreground);-webkit-user-select:none;user-select:none}:host(.ui-avatar--sm){width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6)}:host(.ui-avatar--md){width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}:host(.ui-avatar--lg){width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10)}.ui-avatar-image{width:100%;height:100%;object-fit:cover}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
7081
- });
7082
- };
7083
- i0.ɵɵngDeclareClassMetadata({
7084
- minVersion: "12.0.0",
7085
- version: "22.2.1",
7086
- ngImport: i0,
7087
- type: UiAvatarComponent,
7088
- decorators: [{
7089
- type: Component,
7090
- args: [{
7091
- selector: "ui-avatar",
7092
- host: {
7093
- role: "img",
7094
- "[attr.aria-label]": "name()",
7095
- "[class]": "generatedClasses()"
7096
- },
7097
- template: "@if (showImage()) {\n <img class=\"ui-avatar-image\" [src]=\"src()\" alt=\"\" (error)=\"imageFailed()\" />\n} @else {\n <span aria-hidden=\"true\">{{ initials() }}</span>\n}\n",
7098
- styles: ["@layer properties;:host(.ui-avatar){display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-full, calc(infinity * 1px));background-color:var(--surface);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:var(--foreground);-webkit-user-select:none;user-select:none}:host(.ui-avatar--sm){width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6)}:host(.ui-avatar--md){width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}:host(.ui-avatar--lg){width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10)}.ui-avatar-image{width:100%;height:100%;object-fit:cover}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
7099
- }]
7100
- }],
7101
- propDecorators: {
7102
- name: [{
7103
- type: i0.Input,
7104
- args: [{
7105
- isSignal: true,
7106
- alias: "name",
7107
- required: true
7108
- }]
7109
- }],
7110
- src: [{
7111
- type: i0.Input,
7112
- args: [{
7113
- isSignal: true,
7114
- alias: "src",
7115
- required: false
7116
- }]
7117
- }],
7118
- size: [{
7119
- type: i0.Input,
7120
- args: [{
7121
- isSignal: true,
7122
- alias: "size",
7123
- required: false
7124
- }]
7125
- }]
7126
- }
7127
- });
7128
- const AvatarSizes = [
7129
- "sm",
7130
- "md",
7131
- "lg"
7132
- ];
7133
- const BadgeIntents = [
7134
- "primary",
7135
- "secondary",
7136
- "success",
7137
- "warning",
7138
- "danger"
7139
- ];
7140
- const BadgeAppearances = [
7141
- "solid",
7142
- "outline",
7143
- "soft"
7144
- ];
7145
- const BadgeSizes = [
7146
- "xs",
7147
- "sm",
7148
- "md",
7149
- "lg"
7150
- ];
7151
- const ButtonGroupAppearances = ["attached", "segmented"];
7152
- const UI_BUTTON_GROUP = new InjectionToken("UI_BUTTON_GROUP");
7153
- var UiButtonComponent = class UiButtonComponent {
7154
- appearance = input("solid", ...ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []);
7155
- intent = input("primary", ...ngDevMode ? [{ debugName: "intent" }] : /* istanbul ignore next */ []);
7156
- size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
7157
- classes = input("", ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
7158
- type = input("button", ...ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []);
7159
- ariaLabel = input("", ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
7160
- disabled = input(false, {
7161
- ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
7162
- transform: booleanAttribute
7163
- });
7164
- loading = input(false, {
7165
- ...ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {},
7166
- transform: booleanAttribute
7167
- });
7168
- isDisabled = computed(() => this.disabled() || this.loading(), ...ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []);
7169
- group = inject(UI_BUTTON_GROUP, { optional: true });
7170
- segmented = computed(() => this.group?.appearance() === "segmented", ...ngDevMode ? [{ debugName: "segmented" }] : /* istanbul ignore next */ []);
7171
- generatedClasses = computed(() => [
7172
- "ui-button",
7173
- this.intentAndAppearanceClasses(),
7174
- this.sizeClasses(),
7175
- this.textClasses(),
7176
- this.classes()
7177
- ].filter(Boolean).join(" "), ...ngDevMode ? [{ debugName: "generatedClasses" }] : /* istanbul ignore next */ []);
7178
- intentAndAppearanceClasses = computed(() => {
7179
- if (this.segmented()) return "ui-button--segmented";
7180
- const intent = this.intent();
7181
- const appearance = this.appearance();
7182
- return [intent, appearance].includes("none") ? "" : `ui-button--${intent}-${appearance}`;
7183
- }, ...ngDevMode ? [{ debugName: "intentAndAppearanceClasses" }] : /* istanbul ignore next */ []);
7184
- sizeClasses = computed(() => this.segmented() ? "" : `ui-button--${this.size()}`, ...ngDevMode ? [{ debugName: "sizeClasses" }] : /* istanbul ignore next */ []);
7185
- textClasses = computed(() => this.segmented() ? "ui-text-body-alt" : {
7186
- sm: "ui-text-caption",
7187
- md: "ui-text-body",
7188
- lg: "ui-text-body"
7189
- }[this.size()], ...ngDevMode ? [{ debugName: "textClasses" }] : /* istanbul ignore next */ []);
7190
- static ɵfac = i0.ɵɵngDeclareFactory({
7191
- minVersion: "12.0.0",
7192
- version: "22.2.1",
7193
- ngImport: i0,
7194
- type: UiButtonComponent,
7195
- deps: [],
7196
- target: i0.ɵɵFactoryTarget.Component
7197
- });
7198
- static ɵcmp = i0.ɵɵngDeclareComponent({
7199
- minVersion: "17.0.0",
7200
- version: "22.2.1",
7201
- type: UiButtonComponent,
7202
- isStandalone: true,
7203
- selector: "ui-button",
7204
- inputs: {
7205
- appearance: {
7206
- classPropertyName: "appearance",
7207
- publicName: "appearance",
7208
- isSignal: true,
7209
- isRequired: false,
7210
- transformFunction: null
7211
- },
7212
- intent: {
7213
- classPropertyName: "intent",
7214
- publicName: "intent",
7215
- isSignal: true,
7216
- isRequired: false,
7217
- transformFunction: null
7218
- },
7219
- size: {
7220
- classPropertyName: "size",
7221
- publicName: "size",
7222
- isSignal: true,
7223
- isRequired: false,
7224
- transformFunction: null
7225
- },
7226
- classes: {
7227
- classPropertyName: "classes",
7228
- publicName: "classes",
7229
- isSignal: true,
7230
- isRequired: false,
7231
- transformFunction: null
7232
- },
7233
- type: {
7234
- classPropertyName: "type",
7235
- publicName: "type",
7236
- isSignal: true,
7237
- isRequired: false,
7238
- transformFunction: null
7239
- },
7240
- ariaLabel: {
7241
- classPropertyName: "ariaLabel",
7242
- publicName: "ariaLabel",
7243
- isSignal: true,
7244
- isRequired: false,
7245
- transformFunction: null
7246
- },
7247
- disabled: {
7248
- classPropertyName: "disabled",
7249
- publicName: "disabled",
7250
- isSignal: true,
7251
- isRequired: false,
7252
- transformFunction: null
7253
- },
7254
- loading: {
7255
- classPropertyName: "loading",
7256
- publicName: "loading",
7257
- isSignal: true,
7258
- isRequired: false,
7259
- transformFunction: null
7260
- }
7261
- },
7262
- host: { properties: { "class.pointer-events-none": "isDisabled()" } },
7263
- ngImport: i0,
7264
- template: "<button\n [type]=\"type()\"\n [disabled]=\"isDisabled()\"\n [class]=\"generatedClasses()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-busy]=\"loading() || null\"\n>\n <ng-content></ng-content>\n\n @if (loading()) {\n <span class=\"sr-only\">Loading</span>\n\n <span class=\"flex items-end justify-center\" aria-hidden=\"true\">\n <span class=\"ms-0.5 inline-flex items-end gap-px pb-px\">\n <span class=\"ui-button__loading-dot\">.</span>\n <span class=\"ui-button__loading-dot\">.</span>\n <span class=\"ui-button__loading-dot\">.</span>\n </span>\n </span>\n }\n</button>\n",
7265
- styles: ["@layer properties;.ui-button{position:relative;display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;transition-property:colors,box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.ui-button:focus{--tw-outline-style: none;outline-style:none}.ui-button:focus-visible{z-index:10}.ui-button:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button:disabled{pointer-events:none}.ui-button:disabled{opacity:50%}.ui-button--sm{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2)}.ui-button--md{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.ui-button--lg{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 4)}ui-button-group:not(.ui-button-group--segmented)>:host(:first-child:not(:only-child)) .ui-button{border-start-end-radius:0;border-end-end-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:not(:first-child):not(:last-child)) .ui-button{border-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:last-child:not(:only-child)) .ui-button{border-start-start-radius:0;border-end-start-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:not(:first-child)) .ui-button{margin-inline-start:-1px}.ui-button--segmented{min-height:calc(1lh + calc(var(--spacing, .25rem) * 3));cursor:pointer;border-radius:var(--radius-md, .375rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 1.5);white-space:nowrap;color:var(--muted-foreground-1);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s;-webkit-user-select:none;user-select:none;justify-content:center;border-color:transparent;--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--segmented:hover{color:var(--foreground)}.ui-button--segmented:hover,.ui-button--segmented:focus-visible{background-color:var(--surface)}ui-input-group>:host .ui-button{border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-input-group>:host(:not(:last-child)) .ui-button{border-right-style:var(--tw-border-style)!important;border-right-width:1px!important;border-color:var(--border-line-2)!important}ui-button-group>:host(:not(:first-child)) .ui-button[class*=-outline]{border-inline-start-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@keyframes spinner-ellipsis{0%,70%,to{transform:translateY(0)}35%{transform:translateY(-.4em)}}.ui-button__loading-dot{display:inline-block;animation:spinner-ellipsis 1s ease-in-out infinite}.ui-button__loading-dot:nth-child(2){animation-delay:.12s}.ui-button__loading-dot:nth-child(3){animation-delay:.24s}@media(prefers-reduced-motion:reduce){.ui-button__loading-dot{animation:none}}.ui-button--primary-solid{border-color:transparent;background-color:var(--color-primary-600, var(--color-blue-600));color:var(--color-white, #fff);--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-solid:hover,.ui-button--primary-solid:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline{border-color:var(--color-primary-600, var(--color-blue-600));background-color:transparent;color:var(--color-primary-600, var(--color-blue-600));--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{border-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--primary-ghost{border-color:transparent;background-color:transparent;color:var(--color-primary-600, var(--color-blue-600));--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-ghost:hover,.ui-button--primary-ghost:focus-visible{background-color:var(--color-primary-100, var(--color-blue-100))}.ui-button--primary-ghost:hover,.ui-button--primary-ghost:focus-visible{color:var(--color-primary-800, var(--color-blue-800))}.ui-button--primary-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-primary-600, var(--color-blue-600));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-white:hover,.ui-button--primary-white:focus-visible{background-color:var(--layer-focus)}.ui-button--primary-link{border-color:transparent;background-color:transparent;color:var(--color-primary-500, var(--color-blue-500))}.ui-button--primary-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--primary-link:hover,.ui-button--primary-link:focus-visible{color:var(--color-primary-600, var(--color-blue-600))}.ui-button--primary-link:hover,.ui-button--primary-link:focus-visible{text-decoration-line:underline}.ui-button--secondary-solid{border-color:transparent;background-color:var(--color-secondary-900, var(--color-gray-900));color:var(--color-white, #fff);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-solid:hover,.ui-button--secondary-solid:focus-visible{background-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline{border-color:var(--color-secondary-900, var(--color-gray-900));background-color:transparent;color:var(--foreground);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{border-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{background-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{color:var(--foreground-inverse)}.ui-button--secondary-ghost{border-color:transparent;background-color:transparent;color:var(--foreground);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-ghost:hover,.ui-button--secondary-ghost:focus-visible{background-color:var(--muted-hover)}.ui-button--secondary-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--layer-foreground);--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-white:hover,.ui-button--secondary-white:focus-visible{background-color:var(--layer-hover)}.ui-button--secondary-link{border-color:transparent;background-color:transparent;color:var(--color-secondary-900, var(--color-gray-900))}.ui-button--secondary-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--secondary-link:hover,.ui-button--secondary-link:focus-visible{color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-link:hover,.ui-button--secondary-link:focus-visible{text-decoration-line:underline}.ui-button--success-solid{border-color:transparent;background-color:var(--color-success-500, var(--color-teal-500));color:var(--color-white, #fff)}.ui-button--success-solid:hover,.ui-button--success-solid:focus-visible{background-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline{border-color:var(--color-success-500, var(--color-teal-500));background-color:transparent;color:var(--color-success-500, var(--color-teal-500));--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{border-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{background-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--success-ghost{border-color:transparent;background-color:transparent;color:var(--color-success-500, var(--color-teal-500));--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-ghost:hover,.ui-button--success-ghost:focus-visible{background-color:var(--color-success-100, var(--color-teal-100))}.ui-button--success-ghost:hover,.ui-button--success-ghost:focus-visible{color:var(--color-success-800, var(--color-teal-800))}.ui-button--success-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-success-500, var(--color-teal-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-white:hover,.ui-button--success-white:focus-visible{background-color:var(--layer-hover)}.ui-button--success-link{border-color:transparent;background-color:transparent;color:var(--color-success-500, var(--color-teal-500))}.ui-button--success-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--success-link:hover,.ui-button--success-link:focus-visible{color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-link:hover,.ui-button--success-link:focus-visible{text-decoration-line:underline}.ui-button--warning-solid{border-color:transparent;background-color:var(--color-warning-500, var(--color-yellow-500));color:var(--color-white, #fff);--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-solid:hover,.ui-button--warning-solid:focus-visible{background-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline{border-color:var(--color-warning-500, var(--color-yellow-500));background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500));--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{border-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{background-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--warning-ghost{border-color:transparent;background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500));--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-ghost:hover,.ui-button--warning-ghost:focus-visible{background-color:var(--color-warning-100, var(--color-yellow-100))}.ui-button--warning-ghost:hover,.ui-button--warning-ghost:focus-visible{color:var(--color-warning-800, var(--color-yellow-800))}.ui-button--warning-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-warning-500, var(--color-yellow-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-white:hover,.ui-button--warning-white:focus-visible{background-color:var(--layer-hover)}.ui-button--warning-link{border-color:transparent;background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500))}.ui-button--warning-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--warning-link:hover,.ui-button--warning-link:focus-visible{color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-link:hover,.ui-button--warning-link:focus-visible{text-decoration-line:underline}.ui-button--danger-solid{border-color:transparent;background-color:var(--color-danger-500, var(--color-red-500));color:var(--color-white, #fff);--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-solid:hover,.ui-button--danger-solid:focus-visible{background-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline{border-color:var(--color-danger-500, var(--color-red-500));background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{border-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{background-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--danger-ghost{border-color:transparent;background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-ghost:hover,.ui-button--danger-ghost:focus-visible{background-color:var(--color-danger-100, var(--color-red-100))}.ui-button--danger-ghost:hover,.ui-button--danger-ghost:focus-visible{color:var(--color-danger-800, var(--color-red-800))}.ui-button--danger-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-danger-500, var(--color-red-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-white:hover,.ui-button--danger-white:focus-visible{background-color:var(--layer-hover)}.ui-button--danger-link{border-color:transparent;background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-link:hover,.ui-button--danger-link:focus-visible{color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-link:hover,.ui-button--danger-link:focus-visible{text-decoration-line:underline}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-duration: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
8100
+ styles: ["@layer properties;:host(.ui-avatar){display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-full, calc(infinity * 1px));background-color:var(--surface);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:var(--foreground);-webkit-user-select:none;user-select:none}:host(.ui-avatar--sm){width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6)}:host(.ui-avatar--md){width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}:host(.ui-avatar--lg){width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10)}:host(.ui-avatar--xl){width:calc(var(--spacing, .25rem) * 16);height:calc(var(--spacing, .25rem) * 16)}.ui-avatar-image{width:100%;height:100%;object-fit:cover}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
7266
8101
  });
7267
8102
  };
7268
8103
  i0.ɵɵngDeclareClassMetadata({
7269
8104
  minVersion: "12.0.0",
7270
8105
  version: "22.2.1",
7271
8106
  ngImport: i0,
7272
- type: UiButtonComponent,
7273
- decorators: [{
7274
- type: Component,
7275
- args: [{
7276
- selector: "ui-button",
7277
- host: { "[class.pointer-events-none]": "isDisabled()" },
7278
- template: "<button\n [type]=\"type()\"\n [disabled]=\"isDisabled()\"\n [class]=\"generatedClasses()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-busy]=\"loading() || null\"\n>\n <ng-content></ng-content>\n\n @if (loading()) {\n <span class=\"sr-only\">Loading</span>\n\n <span class=\"flex items-end justify-center\" aria-hidden=\"true\">\n <span class=\"ms-0.5 inline-flex items-end gap-px pb-px\">\n <span class=\"ui-button__loading-dot\">.</span>\n <span class=\"ui-button__loading-dot\">.</span>\n <span class=\"ui-button__loading-dot\">.</span>\n </span>\n </span>\n }\n</button>\n",
7279
- styles: ["@layer properties;.ui-button{position:relative;display:inline-flex;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;transition-property:colors,box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.ui-button:focus{--tw-outline-style: none;outline-style:none}.ui-button:focus-visible{z-index:10}.ui-button:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button:disabled{pointer-events:none}.ui-button:disabled{opacity:50%}.ui-button--sm{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2)}.ui-button--md{padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}.ui-button--lg{padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 4)}ui-button-group:not(.ui-button-group--segmented)>:host(:first-child:not(:only-child)) .ui-button{border-start-end-radius:0;border-end-end-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:not(:first-child):not(:last-child)) .ui-button{border-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:last-child:not(:only-child)) .ui-button{border-start-start-radius:0;border-end-start-radius:0;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-button-group:not(.ui-button-group--segmented)>:host(:not(:first-child)) .ui-button{margin-inline-start:-1px}.ui-button--segmented{min-height:calc(1lh + calc(var(--spacing, .25rem) * 3));cursor:pointer;border-radius:var(--radius-md, .375rem);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 1.5);white-space:nowrap;color:var(--muted-foreground-1);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s;-webkit-user-select:none;user-select:none;justify-content:center;border-color:transparent;--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--segmented:hover{color:var(--foreground)}.ui-button--segmented:hover,.ui-button--segmented:focus-visible{background-color:var(--surface)}ui-input-group>:host .ui-button{border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important;--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}ui-input-group>:host(:not(:last-child)) .ui-button{border-right-style:var(--tw-border-style)!important;border-right-width:1px!important;border-color:var(--border-line-2)!important}ui-button-group>:host(:not(:first-child)) .ui-button[class*=-outline]{border-inline-start-color:var(--color-gray-200, oklch(92.8% .006 264.531))}@keyframes spinner-ellipsis{0%,70%,to{transform:translateY(0)}35%{transform:translateY(-.4em)}}.ui-button__loading-dot{display:inline-block;animation:spinner-ellipsis 1s ease-in-out infinite}.ui-button__loading-dot:nth-child(2){animation-delay:.12s}.ui-button__loading-dot:nth-child(3){animation-delay:.24s}@media(prefers-reduced-motion:reduce){.ui-button__loading-dot{animation:none}}.ui-button--primary-solid{border-color:transparent;background-color:var(--color-primary-600, var(--color-blue-600));color:var(--color-white, #fff);--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-solid:hover,.ui-button--primary-solid:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline{border-color:var(--color-primary-600, var(--color-blue-600));background-color:transparent;color:var(--color-primary-600, var(--color-blue-600));--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{border-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-button--primary-outline:hover,.ui-button--primary-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--primary-ghost{border-color:transparent;background-color:transparent;color:var(--color-primary-600, var(--color-blue-600));--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-ghost:hover,.ui-button--primary-ghost:focus-visible{background-color:var(--color-primary-100, var(--color-blue-100))}.ui-button--primary-ghost:hover,.ui-button--primary-ghost:focus-visible{color:var(--color-primary-800, var(--color-blue-800))}.ui-button--primary-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-primary-600, var(--color-blue-600));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-primary-200, var(--color-blue-200))}.ui-button--primary-white:hover,.ui-button--primary-white:focus-visible{background-color:var(--layer-focus)}.ui-button--primary-link{border-color:transparent;background-color:transparent;color:var(--color-primary-500, var(--color-blue-500))}.ui-button--primary-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--primary-link:hover,.ui-button--primary-link:focus-visible{color:var(--color-primary-600, var(--color-blue-600))}.ui-button--primary-link:hover,.ui-button--primary-link:focus-visible{text-decoration-line:underline}.ui-button--secondary-solid{border-color:transparent;background-color:var(--color-secondary-900, var(--color-gray-900));color:var(--color-white, #fff);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-solid:hover,.ui-button--secondary-solid:focus-visible{background-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline{border-color:var(--color-secondary-900, var(--color-gray-900));background-color:transparent;color:var(--foreground);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{border-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{background-color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-outline:hover,.ui-button--secondary-outline:focus-visible{color:var(--foreground-inverse)}.ui-button--secondary-ghost{border-color:transparent;background-color:transparent;color:var(--foreground);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-ghost:hover,.ui-button--secondary-ghost:focus-visible{background-color:var(--muted-hover)}.ui-button--secondary-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--layer-foreground);--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-secondary-200, var(--color-gray-200))}.ui-button--secondary-white:hover,.ui-button--secondary-white:focus-visible{background-color:var(--layer-hover)}.ui-button--secondary-link{border-color:transparent;background-color:transparent;color:var(--color-secondary-900, var(--color-gray-900))}.ui-button--secondary-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--secondary-link:hover,.ui-button--secondary-link:focus-visible{color:var(--color-secondary-800, var(--color-gray-800))}.ui-button--secondary-link:hover,.ui-button--secondary-link:focus-visible{text-decoration-line:underline}.ui-button--success-solid{border-color:transparent;background-color:var(--color-success-500, var(--color-teal-500));color:var(--color-white, #fff)}.ui-button--success-solid:hover,.ui-button--success-solid:focus-visible{background-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline{border-color:var(--color-success-500, var(--color-teal-500));background-color:transparent;color:var(--color-success-500, var(--color-teal-500));--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{border-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{background-color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-outline:hover,.ui-button--success-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--success-ghost{border-color:transparent;background-color:transparent;color:var(--color-success-500, var(--color-teal-500));--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-ghost:hover,.ui-button--success-ghost:focus-visible{background-color:var(--color-success-100, var(--color-teal-100))}.ui-button--success-ghost:hover,.ui-button--success-ghost:focus-visible{color:var(--color-success-800, var(--color-teal-800))}.ui-button--success-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-success-500, var(--color-teal-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-success-200, var(--color-teal-200))}.ui-button--success-white:hover,.ui-button--success-white:focus-visible{background-color:var(--layer-hover)}.ui-button--success-link{border-color:transparent;background-color:transparent;color:var(--color-success-500, var(--color-teal-500))}.ui-button--success-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--success-link:hover,.ui-button--success-link:focus-visible{color:var(--color-success-600, var(--color-teal-600))}.ui-button--success-link:hover,.ui-button--success-link:focus-visible{text-decoration-line:underline}.ui-button--warning-solid{border-color:transparent;background-color:var(--color-warning-500, var(--color-yellow-500));color:var(--color-white, #fff);--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-solid:hover,.ui-button--warning-solid:focus-visible{background-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline{border-color:var(--color-warning-500, var(--color-yellow-500));background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500));--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{border-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{background-color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-outline:hover,.ui-button--warning-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--warning-ghost{border-color:transparent;background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500));--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-ghost:hover,.ui-button--warning-ghost:focus-visible{background-color:var(--color-warning-100, var(--color-yellow-100))}.ui-button--warning-ghost:hover,.ui-button--warning-ghost:focus-visible{color:var(--color-warning-800, var(--color-yellow-800))}.ui-button--warning-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-warning-500, var(--color-yellow-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-warning-200, var(--color-yellow-200))}.ui-button--warning-white:hover,.ui-button--warning-white:focus-visible{background-color:var(--layer-hover)}.ui-button--warning-link{border-color:transparent;background-color:transparent;color:var(--color-warning-500, var(--color-yellow-500))}.ui-button--warning-link:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-button--warning-link:hover,.ui-button--warning-link:focus-visible{color:var(--color-warning-600, var(--color-yellow-600))}.ui-button--warning-link:hover,.ui-button--warning-link:focus-visible{text-decoration-line:underline}.ui-button--danger-solid{border-color:transparent;background-color:var(--color-danger-500, var(--color-red-500));color:var(--color-white, #fff);--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-solid:hover,.ui-button--danger-solid:focus-visible{background-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline{border-color:var(--color-danger-500, var(--color-red-500));background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{border-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{background-color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-outline:hover,.ui-button--danger-outline:focus-visible{color:var(--color-white, #fff)}.ui-button--danger-ghost{border-color:transparent;background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-ghost:hover,.ui-button--danger-ghost:focus-visible{background-color:var(--color-danger-100, var(--color-red-100))}.ui-button--danger-ghost:hover,.ui-button--danger-ghost:focus-visible{color:var(--color-danger-800, var(--color-red-800))}.ui-button--danger-white{border-color:var(--border-line-2);background-color:var(--layer);color:var(--color-danger-500, var(--color-red-500));--tw-shadow: 0 1px var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-white:hover,.ui-button--danger-white:focus-visible{background-color:var(--layer-hover)}.ui-button--danger-link{border-color:transparent;background-color:transparent;color:var(--color-danger-500, var(--color-red-500));--tw-ring-color: var(--color-danger-200, var(--color-red-200))}.ui-button--danger-link:hover,.ui-button--danger-link:focus-visible{color:var(--color-danger-600, var(--color-red-600))}.ui-button--danger-link:hover,.ui-button--danger-link:focus-visible{text-decoration-line:underline}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-duration: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
7280
- }]
7281
- }],
7282
- propDecorators: {
7283
- appearance: [{
7284
- type: i0.Input,
7285
- args: [{
7286
- isSignal: true,
7287
- alias: "appearance",
7288
- required: false
7289
- }]
7290
- }],
7291
- intent: [{
7292
- type: i0.Input,
7293
- args: [{
7294
- isSignal: true,
7295
- alias: "intent",
7296
- required: false
7297
- }]
7298
- }],
7299
- size: [{
7300
- type: i0.Input,
7301
- args: [{
7302
- isSignal: true,
7303
- alias: "size",
7304
- required: false
7305
- }]
7306
- }],
7307
- classes: [{
7308
- type: i0.Input,
7309
- args: [{
7310
- isSignal: true,
7311
- alias: "classes",
7312
- required: false
7313
- }]
7314
- }],
7315
- type: [{
8107
+ type: UiAvatarComponent,
8108
+ decorators: [{
8109
+ type: Component,
8110
+ args: [{
8111
+ selector: "ui-avatar",
8112
+ host: {
8113
+ role: "img",
8114
+ "[attr.aria-label]": "name()",
8115
+ "[class]": "generatedClasses()",
8116
+ "[style.background-color]": "colour()",
8117
+ "[style.color]": "ink()"
8118
+ },
8119
+ template: "@if (showImage()) {\n <img class=\"ui-avatar-image\" [src]=\"src()\" alt=\"\" (error)=\"imageFailed()\" />\n} @else {\n <span aria-hidden=\"true\">{{ initials() }}</span>\n}\n",
8120
+ styles: ["@layer properties;:host(.ui-avatar){display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-full, calc(infinity * 1px));background-color:var(--surface);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:var(--foreground);-webkit-user-select:none;user-select:none}:host(.ui-avatar--sm){width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6)}:host(.ui-avatar--md){width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8)}:host(.ui-avatar--lg){width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10)}:host(.ui-avatar--xl){width:calc(var(--spacing, .25rem) * 16);height:calc(var(--spacing, .25rem) * 16)}.ui-avatar-image{width:100%;height:100%;object-fit:cover}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
8121
+ }]
8122
+ }],
8123
+ propDecorators: {
8124
+ name: [{
7316
8125
  type: i0.Input,
7317
8126
  args: [{
7318
8127
  isSignal: true,
7319
- alias: "type",
7320
- required: false
8128
+ alias: "name",
8129
+ required: true
7321
8130
  }]
7322
8131
  }],
7323
- ariaLabel: [{
8132
+ src: [{
7324
8133
  type: i0.Input,
7325
8134
  args: [{
7326
8135
  isSignal: true,
7327
- alias: "ariaLabel",
8136
+ alias: "src",
7328
8137
  required: false
7329
8138
  }]
7330
8139
  }],
7331
- disabled: [{
8140
+ size: [{
7332
8141
  type: i0.Input,
7333
8142
  args: [{
7334
8143
  isSignal: true,
7335
- alias: "disabled",
8144
+ alias: "size",
7336
8145
  required: false
7337
8146
  }]
7338
8147
  }],
7339
- loading: [{
8148
+ colour: [{
7340
8149
  type: i0.Input,
7341
8150
  args: [{
7342
8151
  isSignal: true,
7343
- alias: "loading",
8152
+ alias: "colour",
7344
8153
  required: false
7345
8154
  }]
7346
8155
  }]
7347
8156
  }
7348
8157
  });
8158
+ const AvatarSizes = [
8159
+ "sm",
8160
+ "md",
8161
+ "lg",
8162
+ "xl"
8163
+ ];
8164
+ const BadgeIntents = [
8165
+ "primary",
8166
+ "secondary",
8167
+ "success",
8168
+ "warning",
8169
+ "danger"
8170
+ ];
8171
+ const BadgeAppearances = [
8172
+ "solid",
8173
+ "outline",
8174
+ "soft"
8175
+ ];
8176
+ const BadgeSizes = [
8177
+ "xs",
8178
+ "sm",
8179
+ "md",
8180
+ "lg"
8181
+ ];
7349
8182
  const ButtonIntents = [
7350
8183
  "primary",
7351
8184
  "secondary",
@@ -7457,6 +8290,35 @@ i0.ɵɵngDeclareClassMetadata({
7457
8290
  }]
7458
8291
  }
7459
8292
  });
8293
+ var UiCalendarDayDirective = class UiCalendarDayDirective {
8294
+ template = inject(TemplateRef);
8295
+ static ɵfac = i0.ɵɵngDeclareFactory({
8296
+ minVersion: "12.0.0",
8297
+ version: "22.2.1",
8298
+ ngImport: i0,
8299
+ type: UiCalendarDayDirective,
8300
+ deps: [],
8301
+ target: i0.ɵɵFactoryTarget.Directive
8302
+ });
8303
+ static ɵdir = i0.ɵɵngDeclareDirective({
8304
+ minVersion: "14.0.0",
8305
+ version: "22.2.1",
8306
+ type: UiCalendarDayDirective,
8307
+ isStandalone: true,
8308
+ selector: "ng-template[uiCalendarDay]",
8309
+ ngImport: i0
8310
+ });
8311
+ };
8312
+ i0.ɵɵngDeclareClassMetadata({
8313
+ minVersion: "12.0.0",
8314
+ version: "22.2.1",
8315
+ ngImport: i0,
8316
+ type: UiCalendarDayDirective,
8317
+ decorators: [{
8318
+ type: Directive,
8319
+ args: [{ selector: "ng-template[uiCalendarDay]" }]
8320
+ }]
8321
+ });
7460
8322
  const ISO_PATTERN = /^(\d{4})-(\d{2})-(\d{2})$/;
7461
8323
  const TIME_PATTERN = /^([01]\d|2[0-3]):([0-5]\d)$/;
7462
8324
  function toIsoDate(date) {
@@ -7514,6 +8376,11 @@ var UiCalendarComponent = class UiCalendarComponent {
7514
8376
  isDateDisabled = input(() => false, ...ngDevMode ? [{ debugName: "isDateDisabled" }] : /* istanbul ignore next */ []);
7515
8377
  weekStart = input(1, ...ngDevMode ? [{ debugName: "weekStart" }] : /* istanbul ignore next */ []);
7516
8378
  locale = input("en-GB", ...ngDevMode ? [{ debugName: "locale" }] : /* istanbul ignore next */ []);
8379
+ dayClass = input(() => "", ...ngDevMode ? [{ debugName: "dayClass" }] : /* istanbul ignore next */ []);
8380
+ hideSelection = input(false, ...ngDevMode ? [{ debugName: "hideSelection" }] : /* istanbul ignore next */ []);
8381
+ dayClick = output();
8382
+ monthChange = output();
8383
+ dayTemplate = contentChild(UiCalendarDayDirective, ...ngDevMode ? [{ debugName: "dayTemplate" }] : /* istanbul ignore next */ []);
7517
8384
  today = toIsoDate(/* @__PURE__ */ new Date());
7518
8385
  anchorDate = computed(() => this.mode() === "range" ? this.range().start : this.value(), ...ngDevMode ? [{ debugName: "anchorDate" }] : /* istanbul ignore next */ []);
7519
8386
  activeDate = linkedSignal(() => parseIsoDate(this.anchorDate()) ?? parseIsoDate(this.today), ...ngDevMode ? [{ debugName: "activeDate" }] : /* istanbul ignore next */ []);
@@ -7557,11 +8424,28 @@ var UiCalendarComponent = class UiCalendarComponent {
7557
8424
  isDisabled: this.isUnavailable(iso),
7558
8425
  isInRange: !!start && !!previewEnd && iso > start && iso < previewEnd,
7559
8426
  isRangeStart: !!previewEnd && iso === start && start !== previewEnd,
7560
- isRangeEnd: !!start && iso === previewEnd && start !== previewEnd
8427
+ isRangeEnd: !!start && iso === previewEnd && start !== previewEnd,
8428
+ className: this.dayClass()(iso)
7561
8429
  };
7562
8430
  });
7563
8431
  }, ...ngDevMode ? [{ debugName: "days" }] : /* istanbul ignore next */ []);
8432
+ view = computed(() => {
8433
+ const days = this.days();
8434
+ return {
8435
+ month: toIsoDate(new Date(this.viewYear(), this.viewMonth(), 1)),
8436
+ start: days[0].iso,
8437
+ end: days[days.length - 1].iso
8438
+ };
8439
+ }, {
8440
+ ...ngDevMode ? { debugName: "view" } : /* istanbul ignore next */ {},
8441
+ equal: (a, b) => a.month === b.month && a.start === b.start
8442
+ });
7564
8443
  rangeBounds = computed(() => {
8444
+ if (this.hideSelection()) return {
8445
+ start: null,
8446
+ end: null,
8447
+ previewEnd: null
8448
+ };
7565
8449
  if (this.mode() === "single") return {
7566
8450
  start: this.value(),
7567
8451
  end: null,
@@ -7589,6 +8473,9 @@ var UiCalendarComponent = class UiCalendarComponent {
7589
8473
  const firstOfNext = new Date(this.viewYear(), this.viewMonth() + 1, 1);
7590
8474
  return !max || toIsoDate(firstOfNext) <= max;
7591
8475
  }, ...ngDevMode ? [{ debugName: "canGoForward" }] : /* istanbul ignore next */ []);
8476
+ constructor() {
8477
+ effect(() => this.monthChange.emit(this.view()));
8478
+ }
7592
8479
  focusActiveDate() {
7593
8480
  this.host.nativeElement.querySelector(`[data-date="${this.tabbableDate()}"]`)?.focus();
7594
8481
  }
@@ -7599,6 +8486,7 @@ var UiCalendarComponent = class UiCalendarComponent {
7599
8486
  }
7600
8487
  select(day) {
7601
8488
  if (day.isDisabled) return;
8489
+ this.dayClick.emit(day.iso);
7602
8490
  if (this.mode() === "single") {
7603
8491
  this.value.set(day.iso);
7604
8492
  return;
@@ -7715,68 +8603,104 @@ var UiCalendarComponent = class UiCalendarComponent {
7715
8603
  isSignal: true,
7716
8604
  isRequired: false,
7717
8605
  transformFunction: null
8606
+ },
8607
+ dayClass: {
8608
+ classPropertyName: "dayClass",
8609
+ publicName: "dayClass",
8610
+ isSignal: true,
8611
+ isRequired: false,
8612
+ transformFunction: null
8613
+ },
8614
+ hideSelection: {
8615
+ classPropertyName: "hideSelection",
8616
+ publicName: "hideSelection",
8617
+ isSignal: true,
8618
+ isRequired: false,
8619
+ transformFunction: null
7718
8620
  }
7719
8621
  },
7720
8622
  outputs: {
7721
8623
  value: "valueChange",
7722
- range: "rangeChange"
8624
+ range: "rangeChange",
8625
+ dayClick: "dayClick",
8626
+ monthChange: "monthChange"
7723
8627
  },
7724
8628
  providers: [provideIcons({
7725
8629
  heroChevronLeft,
7726
8630
  heroChevronRight
7727
8631
  })],
8632
+ queries: [{
8633
+ propertyName: "dayTemplate",
8634
+ first: true,
8635
+ predicate: UiCalendarDayDirective,
8636
+ descendants: true,
8637
+ isSignal: true
8638
+ }],
7728
8639
  ngImport: i0,
7729
- template: "<div class=\"ui-calendar-header\">\n <button\n type=\"button\"\n class=\"ui-calendar-nav\"\n aria-label=\"Previous month\"\n [disabled]=\"!canGoBack()\"\n (click)=\"showMonth(-1)\"\n >\n <ng-icon name=\"heroChevronLeft\" class=\"shrink-0\" />\n </button>\n\n <div class=\"ui-calendar-selects\">\n <ui-select\n class=\"ui-calendar-month\"\n [dataSource]=\"monthSource()\"\n [displayWith]=\"displayMonth\"\n [pageSize]=\"12\"\n [(selectedItem)]=\"viewMonth\"\n />\n <ui-select\n class=\"ui-calendar-year\"\n [dataSource]=\"yearSource()\"\n [pageSize]=\"500\"\n [(selectedItem)]=\"viewYear\"\n />\n </div>\n\n <button\n type=\"button\"\n class=\"ui-calendar-nav\"\n aria-label=\"Next month\"\n [disabled]=\"!canGoForward()\"\n (click)=\"showMonth(1)\"\n >\n <ng-icon name=\"heroChevronRight\" class=\"shrink-0\" />\n </button>\n</div>\n\n<div class=\"ui-calendar-weekdays\" aria-hidden=\"true\">\n @for (weekday of weekdays(); track $index) {\n <span class=\"ui-calendar-weekday ui-text-caption\">{{ weekday }}</span>\n }\n</div>\n\n<div class=\"ui-calendar-grid\" (mouseleave)=\"preview(null)\">\n @for (day of days(); track day.iso) {\n <button\n type=\"button\"\n class=\"ui-calendar-day ui-text-body-alt\"\n [attr.data-date]=\"day.iso\"\n [attr.data-outside]=\"day.isOutside ? '' : null\"\n [attr.data-today]=\"day.isToday ? '' : null\"\n [attr.data-in-range]=\"day.isInRange ? '' : null\"\n [attr.data-range-start]=\"day.isRangeStart ? '' : null\"\n [attr.data-range-end]=\"day.isRangeEnd ? '' : null\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.aria-pressed]=\"day.isSelected\"\n [attr.aria-label]=\"day.label\"\n [tabindex]=\"day.iso === tabbableDate() ? 0 : -1\"\n [attr.aria-disabled]=\"day.isDisabled || null\"\n (click)=\"select(day)\"\n (keydown)=\"handleKeydown($event)\"\n (mouseenter)=\"preview(day.iso)\"\n (focus)=\"preview(day.iso)\"\n >\n {{ day.day }}\n </button>\n }\n</div>\n",
7730
- styles: ["@layer properties;:host{display:inline-flex;flex-direction:column;row-gap:calc(var(--spacing, .25rem) * 2)}.ui-calendar-header{display:flex;align-items:center;column-gap:var(--spacing, .25rem);padding-bottom:var(--spacing, .25rem)}.ui-calendar-selects{display:flex;min-width:0px;flex:1;column-gap:var(--spacing, .25rem)}.ui-calendar-month{min-width:0px;flex:1}.ui-calendar-year{width:calc(var(--spacing, .25rem) * 24);flex-shrink:0}.ui-calendar-nav{display:inline-flex;width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));color:var(--foreground)}.ui-calendar-nav:focus{--tw-outline-style: none;outline-style:none}.ui-calendar-nav:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-nav:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-calendar-nav:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-calendar-nav:disabled{pointer-events:none}.ui-calendar-nav:disabled{opacity:50%}.ui-calendar-nav:hover,.ui-calendar-nav:focus-visible{background-color:var(--surface)}.ui-calendar-weekdays,.ui-calendar-grid{display:grid;grid-template-columns:repeat(7,calc(var(--spacing, .25rem) * 10.5));justify-content:center}.ui-calendar-grid{row-gap:calc(var(--spacing, .25rem) * .5)}.ui-calendar-weekday{width:calc(var(--spacing, .25rem) * 10.5);padding-bottom:var(--spacing, .25rem);text-align:center;color:var(--muted-foreground-1)}.ui-calendar-day{position:relative;display:inline-flex;width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));border-style:var(--tw-border-style);border-width:1.5px;border-color:transparent;color:var(--foreground);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.ui-calendar-day:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-day:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-calendar-day:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-calendar-day:focus-visible{--tw-outline-style: none;outline-style:none}.ui-calendar-day:hover,.ui-calendar-day:focus-visible{border-color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day:hover,.ui-calendar-day:focus-visible{color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day[aria-disabled]{cursor:not-allowed;text-decoration-line:line-through;opacity:40%}.ui-calendar-day[aria-disabled]:hover{border-color:transparent}.ui-calendar-day[aria-disabled]:hover{color:inherit}.ui-calendar-day[data-outside]{color:var(--muted-foreground)}.ui-calendar-day[data-today]{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day[aria-pressed=true]{border-color:var(--color-primary-600, var(--color-blue-600));background-color:var(--color-primary-600, var(--color-blue-600));color:var(--color-white, #fff)}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{border-color:var(--color-primary-700, var(--color-blue-700))}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{color:var(--color-white, #fff)}.ui-calendar-day[data-in-range]{border-radius:0;background-color:var(--color-primary-100, var(--color-blue-100));color:var(--foreground)}.ui-calendar-day[data-range-start]{border-top-right-radius:0;border-bottom-right-radius:0}.ui-calendar-day[data-range-end]{border-top-left-radius:0;border-bottom-left-radius:0}.ui-calendar-day[data-range-end]:not([aria-pressed=true]){background-color:var(--color-primary-100, var(--color-blue-100))}.ui-calendar-day[data-in-range]:not(:nth-child(7n)),.ui-calendar-day[data-range-start]:not(:nth-child(7n)){--tw-shadow: 1px 0 0 var(--tw-shadow-color, var(--color-primary-100));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-day[data-in-range]:nth-child(7n+1),.ui-calendar-day[data-range-end]:nth-child(7n+1){border-top-left-radius:var(--radius-full, calc(infinity * 1px));border-bottom-left-radius:var(--radius-full, calc(infinity * 1px))}.ui-calendar-day[data-in-range]:nth-child(7n),.ui-calendar-day[data-range-start]:nth-child(7n){border-top-right-radius:var(--radius-full, calc(infinity * 1px));border-bottom-right-radius:var(--radius-full, calc(infinity * 1px))}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-border-style: solid;--tw-duration: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"],
7731
- dependencies: [{
7732
- kind: "component",
7733
- type: NgIcon,
7734
- selector: "ng-icon",
7735
- inputs: [
7736
- "name",
7737
- "svg",
7738
- "size",
7739
- "strokeWidth",
7740
- "color"
7741
- ]
7742
- }, {
7743
- kind: "component",
7744
- type: UiSelectComponent,
7745
- selector: "ui-select",
7746
- inputs: [
7747
- "placement",
7748
- "closeBehaviour",
7749
- "dataSource",
7750
- "placeholder",
7751
- "id",
7752
- "describedBy",
7753
- "pageSize",
7754
- "searchMode",
7755
- "disabled",
7756
- "validationState",
7757
- "clearable",
7758
- "clearLabel",
7759
- "creatable",
7760
- "createLabel",
7761
- "groupBy",
7762
- "scrollToSelected",
7763
- "multiple",
7764
- "multipleDisplay",
7765
- "counterAfter",
7766
- "counterLabel",
7767
- "compareWith",
7768
- "displayWith",
7769
- "selectedItem",
7770
- "selectedItems"
7771
- ],
7772
- outputs: [
7773
- "validationStateChange",
7774
- "selectionChange",
7775
- "create",
7776
- "selectedItemChange",
7777
- "selectedItemsChange"
7778
- ]
7779
- }]
8640
+ template: "<div class=\"ui-calendar-header\">\n <button\n type=\"button\"\n class=\"ui-calendar-nav\"\n aria-label=\"Previous month\"\n [disabled]=\"!canGoBack()\"\n (click)=\"showMonth(-1)\"\n >\n <ng-icon name=\"heroChevronLeft\" class=\"shrink-0\" />\n </button>\n\n <div class=\"ui-calendar-selects\">\n <ui-select\n class=\"ui-calendar-month\"\n [dataSource]=\"monthSource()\"\n [displayWith]=\"displayMonth\"\n [pageSize]=\"12\"\n [(selectedItem)]=\"viewMonth\"\n />\n <ui-select\n class=\"ui-calendar-year\"\n [dataSource]=\"yearSource()\"\n [pageSize]=\"500\"\n [(selectedItem)]=\"viewYear\"\n />\n </div>\n\n <button\n type=\"button\"\n class=\"ui-calendar-nav\"\n aria-label=\"Next month\"\n [disabled]=\"!canGoForward()\"\n (click)=\"showMonth(1)\"\n >\n <ng-icon name=\"heroChevronRight\" class=\"shrink-0\" />\n </button>\n</div>\n\n<div class=\"ui-calendar-weekdays\" aria-hidden=\"true\">\n @for (weekday of weekdays(); track $index) {\n <span class=\"ui-calendar-weekday ui-text-caption\">{{ weekday }}</span>\n }\n</div>\n\n<div class=\"ui-calendar-grid\" (mouseleave)=\"preview(null)\">\n @for (day of days(); track day.iso) {\n <button\n type=\"button\"\n class=\"ui-calendar-day ui-text-body-alt\"\n [class]=\"day.className\"\n [attr.data-date]=\"day.iso\"\n [attr.data-outside]=\"day.isOutside ? '' : null\"\n [attr.data-today]=\"day.isToday ? '' : null\"\n [attr.data-in-range]=\"day.isInRange ? '' : null\"\n [attr.data-range-start]=\"day.isRangeStart ? '' : null\"\n [attr.data-range-end]=\"day.isRangeEnd ? '' : null\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.aria-pressed]=\"hideSelection() ? null : day.isSelected\"\n [attr.aria-label]=\"day.label\"\n [tabindex]=\"day.iso === tabbableDate() ? 0 : -1\"\n [attr.aria-disabled]=\"day.isDisabled || null\"\n (click)=\"select(day)\"\n (keydown)=\"handleKeydown($event)\"\n (mouseenter)=\"preview(day.iso)\"\n (focus)=\"preview(day.iso)\"\n >\n @if (dayTemplate(); as dayTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"dayTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: day.iso, day }\"\n />\n } @else {\n {{ day.day }}\n }\n </button>\n }\n</div>\n",
8641
+ styles: ["@layer properties;:host{display:inline-flex;flex-direction:column;row-gap:calc(var(--spacing, .25rem) * 2)}.ui-calendar-header{display:flex;align-items:center;column-gap:var(--spacing, .25rem);padding-bottom:var(--spacing, .25rem)}.ui-calendar-selects{display:flex;min-width:0px;flex:1;column-gap:var(--spacing, .25rem)}.ui-calendar-month{min-width:0px;flex:1}.ui-calendar-year{width:calc(var(--spacing, .25rem) * 24);flex-shrink:0}.ui-calendar-nav{display:inline-flex;width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));color:var(--foreground)}.ui-calendar-nav:focus{--tw-outline-style: none;outline-style:none}.ui-calendar-nav:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-nav:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-calendar-nav:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-calendar-nav:disabled{pointer-events:none}.ui-calendar-nav:disabled{opacity:50%}.ui-calendar-nav:hover,.ui-calendar-nav:focus-visible{background-color:var(--surface)}.ui-calendar-weekdays,.ui-calendar-grid{display:grid;grid-template-columns:repeat(7,calc(var(--spacing, .25rem) * 10.5));justify-content:center}.ui-calendar-grid{row-gap:calc(var(--spacing, .25rem) * .5)}.ui-calendar-weekday{width:calc(var(--spacing, .25rem) * 10.5);padding-bottom:var(--spacing, .25rem);text-align:center;color:var(--muted-foreground-1)}.ui-calendar-day{position:relative;display:inline-flex;width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));border-style:var(--tw-border-style);border-width:1.5px;border-color:transparent;color:var(--foreground);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.ui-calendar-day:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-day:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-calendar-day:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-calendar-day:focus-visible{--tw-outline-style: none;outline-style:none}.ui-calendar-day:hover,.ui-calendar-day:focus-visible{border-color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day:hover,.ui-calendar-day:focus-visible{color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day[aria-disabled]{cursor:not-allowed;text-decoration-line:line-through;opacity:40%}.ui-calendar-day[aria-disabled]:hover{border-color:transparent}.ui-calendar-day[aria-disabled]:hover{color:inherit}.ui-calendar-day[data-outside]{color:var(--muted-foreground)}.ui-calendar-day[data-today]{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day[aria-pressed=true]{border-color:var(--color-primary-600, var(--color-blue-600));background-color:var(--color-primary-600, var(--color-blue-600));color:var(--color-white, #fff)}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{border-color:var(--color-primary-700, var(--color-blue-700))}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{color:var(--color-white, #fff)}.ui-calendar-day[data-in-range]{border-radius:0;background-color:var(--color-primary-100, var(--color-blue-100));color:var(--foreground)}.ui-calendar-day[data-range-start]{border-top-right-radius:0;border-bottom-right-radius:0}.ui-calendar-day[data-range-end]{border-top-left-radius:0;border-bottom-left-radius:0}.ui-calendar-day[data-range-end]:not([aria-pressed=true]){background-color:var(--color-primary-100, var(--color-blue-100))}.ui-calendar-day[data-in-range]:not(:nth-child(7n)),.ui-calendar-day[data-range-start]:not(:nth-child(7n)){--tw-shadow: 1px 0 0 var(--tw-shadow-color, var(--color-primary-100));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-day[data-in-range]:nth-child(7n+1),.ui-calendar-day[data-range-end]:nth-child(7n+1){border-top-left-radius:var(--radius-full, calc(infinity * 1px));border-bottom-left-radius:var(--radius-full, calc(infinity * 1px))}.ui-calendar-day[data-in-range]:nth-child(7n),.ui-calendar-day[data-range-start]:nth-child(7n){border-top-right-radius:var(--radius-full, calc(infinity * 1px));border-bottom-right-radius:var(--radius-full, calc(infinity * 1px))}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-border-style: solid;--tw-duration: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"],
8642
+ dependencies: [
8643
+ {
8644
+ kind: "component",
8645
+ type: NgIcon,
8646
+ selector: "ng-icon",
8647
+ inputs: [
8648
+ "name",
8649
+ "svg",
8650
+ "size",
8651
+ "strokeWidth",
8652
+ "color"
8653
+ ]
8654
+ },
8655
+ {
8656
+ kind: "directive",
8657
+ type: NgTemplateOutlet,
8658
+ selector: "[ngTemplateOutlet]",
8659
+ inputs: [
8660
+ "ngTemplateOutletContext",
8661
+ "ngTemplateOutlet",
8662
+ "ngTemplateOutletInjector"
8663
+ ]
8664
+ },
8665
+ {
8666
+ kind: "component",
8667
+ type: UiSelectComponent,
8668
+ selector: "ui-select",
8669
+ inputs: [
8670
+ "placement",
8671
+ "closeBehaviour",
8672
+ "dataSource",
8673
+ "placeholder",
8674
+ "id",
8675
+ "describedBy",
8676
+ "pageSize",
8677
+ "searchMode",
8678
+ "disabled",
8679
+ "validationState",
8680
+ "clearable",
8681
+ "clearLabel",
8682
+ "creatable",
8683
+ "createLabel",
8684
+ "groupBy",
8685
+ "scrollToSelected",
8686
+ "multiple",
8687
+ "multipleDisplay",
8688
+ "counterAfter",
8689
+ "counterLabel",
8690
+ "compareWith",
8691
+ "displayWith",
8692
+ "selectedItem",
8693
+ "selectedItems"
8694
+ ],
8695
+ outputs: [
8696
+ "validationStateChange",
8697
+ "selectionChange",
8698
+ "create",
8699
+ "selectedItemChange",
8700
+ "selectedItemsChange"
8701
+ ]
8702
+ }
8703
+ ]
7780
8704
  });
7781
8705
  };
7782
8706
  i0.ɵɵngDeclareClassMetadata({
@@ -7788,15 +8712,20 @@ i0.ɵɵngDeclareClassMetadata({
7788
8712
  type: Component,
7789
8713
  args: [{
7790
8714
  selector: "ui-calendar",
7791
- imports: [NgIcon, UiSelectComponent],
8715
+ imports: [
8716
+ NgIcon,
8717
+ NgTemplateOutlet,
8718
+ UiSelectComponent
8719
+ ],
7792
8720
  providers: [provideIcons({
7793
8721
  heroChevronLeft,
7794
8722
  heroChevronRight
7795
8723
  })],
7796
- template: "<div class=\"ui-calendar-header\">\n <button\n type=\"button\"\n class=\"ui-calendar-nav\"\n aria-label=\"Previous month\"\n [disabled]=\"!canGoBack()\"\n (click)=\"showMonth(-1)\"\n >\n <ng-icon name=\"heroChevronLeft\" class=\"shrink-0\" />\n </button>\n\n <div class=\"ui-calendar-selects\">\n <ui-select\n class=\"ui-calendar-month\"\n [dataSource]=\"monthSource()\"\n [displayWith]=\"displayMonth\"\n [pageSize]=\"12\"\n [(selectedItem)]=\"viewMonth\"\n />\n <ui-select\n class=\"ui-calendar-year\"\n [dataSource]=\"yearSource()\"\n [pageSize]=\"500\"\n [(selectedItem)]=\"viewYear\"\n />\n </div>\n\n <button\n type=\"button\"\n class=\"ui-calendar-nav\"\n aria-label=\"Next month\"\n [disabled]=\"!canGoForward()\"\n (click)=\"showMonth(1)\"\n >\n <ng-icon name=\"heroChevronRight\" class=\"shrink-0\" />\n </button>\n</div>\n\n<div class=\"ui-calendar-weekdays\" aria-hidden=\"true\">\n @for (weekday of weekdays(); track $index) {\n <span class=\"ui-calendar-weekday ui-text-caption\">{{ weekday }}</span>\n }\n</div>\n\n<div class=\"ui-calendar-grid\" (mouseleave)=\"preview(null)\">\n @for (day of days(); track day.iso) {\n <button\n type=\"button\"\n class=\"ui-calendar-day ui-text-body-alt\"\n [attr.data-date]=\"day.iso\"\n [attr.data-outside]=\"day.isOutside ? '' : null\"\n [attr.data-today]=\"day.isToday ? '' : null\"\n [attr.data-in-range]=\"day.isInRange ? '' : null\"\n [attr.data-range-start]=\"day.isRangeStart ? '' : null\"\n [attr.data-range-end]=\"day.isRangeEnd ? '' : null\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.aria-pressed]=\"day.isSelected\"\n [attr.aria-label]=\"day.label\"\n [tabindex]=\"day.iso === tabbableDate() ? 0 : -1\"\n [attr.aria-disabled]=\"day.isDisabled || null\"\n (click)=\"select(day)\"\n (keydown)=\"handleKeydown($event)\"\n (mouseenter)=\"preview(day.iso)\"\n (focus)=\"preview(day.iso)\"\n >\n {{ day.day }}\n </button>\n }\n</div>\n",
7797
- styles: ["@layer properties;:host{display:inline-flex;flex-direction:column;row-gap:calc(var(--spacing, .25rem) * 2)}.ui-calendar-header{display:flex;align-items:center;column-gap:var(--spacing, .25rem);padding-bottom:var(--spacing, .25rem)}.ui-calendar-selects{display:flex;min-width:0px;flex:1;column-gap:var(--spacing, .25rem)}.ui-calendar-month{min-width:0px;flex:1}.ui-calendar-year{width:calc(var(--spacing, .25rem) * 24);flex-shrink:0}.ui-calendar-nav{display:inline-flex;width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));color:var(--foreground)}.ui-calendar-nav:focus{--tw-outline-style: none;outline-style:none}.ui-calendar-nav:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-nav:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-calendar-nav:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-calendar-nav:disabled{pointer-events:none}.ui-calendar-nav:disabled{opacity:50%}.ui-calendar-nav:hover,.ui-calendar-nav:focus-visible{background-color:var(--surface)}.ui-calendar-weekdays,.ui-calendar-grid{display:grid;grid-template-columns:repeat(7,calc(var(--spacing, .25rem) * 10.5));justify-content:center}.ui-calendar-grid{row-gap:calc(var(--spacing, .25rem) * .5)}.ui-calendar-weekday{width:calc(var(--spacing, .25rem) * 10.5);padding-bottom:var(--spacing, .25rem);text-align:center;color:var(--muted-foreground-1)}.ui-calendar-day{position:relative;display:inline-flex;width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));border-style:var(--tw-border-style);border-width:1.5px;border-color:transparent;color:var(--foreground);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.ui-calendar-day:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-day:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-calendar-day:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-calendar-day:focus-visible{--tw-outline-style: none;outline-style:none}.ui-calendar-day:hover,.ui-calendar-day:focus-visible{border-color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day:hover,.ui-calendar-day:focus-visible{color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day[aria-disabled]{cursor:not-allowed;text-decoration-line:line-through;opacity:40%}.ui-calendar-day[aria-disabled]:hover{border-color:transparent}.ui-calendar-day[aria-disabled]:hover{color:inherit}.ui-calendar-day[data-outside]{color:var(--muted-foreground)}.ui-calendar-day[data-today]{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day[aria-pressed=true]{border-color:var(--color-primary-600, var(--color-blue-600));background-color:var(--color-primary-600, var(--color-blue-600));color:var(--color-white, #fff)}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{border-color:var(--color-primary-700, var(--color-blue-700))}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{color:var(--color-white, #fff)}.ui-calendar-day[data-in-range]{border-radius:0;background-color:var(--color-primary-100, var(--color-blue-100));color:var(--foreground)}.ui-calendar-day[data-range-start]{border-top-right-radius:0;border-bottom-right-radius:0}.ui-calendar-day[data-range-end]{border-top-left-radius:0;border-bottom-left-radius:0}.ui-calendar-day[data-range-end]:not([aria-pressed=true]){background-color:var(--color-primary-100, var(--color-blue-100))}.ui-calendar-day[data-in-range]:not(:nth-child(7n)),.ui-calendar-day[data-range-start]:not(:nth-child(7n)){--tw-shadow: 1px 0 0 var(--tw-shadow-color, var(--color-primary-100));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-day[data-in-range]:nth-child(7n+1),.ui-calendar-day[data-range-end]:nth-child(7n+1){border-top-left-radius:var(--radius-full, calc(infinity * 1px));border-bottom-left-radius:var(--radius-full, calc(infinity * 1px))}.ui-calendar-day[data-in-range]:nth-child(7n),.ui-calendar-day[data-range-start]:nth-child(7n){border-top-right-radius:var(--radius-full, calc(infinity * 1px));border-bottom-right-radius:var(--radius-full, calc(infinity * 1px))}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-border-style: solid;--tw-duration: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
8724
+ template: "<div class=\"ui-calendar-header\">\n <button\n type=\"button\"\n class=\"ui-calendar-nav\"\n aria-label=\"Previous month\"\n [disabled]=\"!canGoBack()\"\n (click)=\"showMonth(-1)\"\n >\n <ng-icon name=\"heroChevronLeft\" class=\"shrink-0\" />\n </button>\n\n <div class=\"ui-calendar-selects\">\n <ui-select\n class=\"ui-calendar-month\"\n [dataSource]=\"monthSource()\"\n [displayWith]=\"displayMonth\"\n [pageSize]=\"12\"\n [(selectedItem)]=\"viewMonth\"\n />\n <ui-select\n class=\"ui-calendar-year\"\n [dataSource]=\"yearSource()\"\n [pageSize]=\"500\"\n [(selectedItem)]=\"viewYear\"\n />\n </div>\n\n <button\n type=\"button\"\n class=\"ui-calendar-nav\"\n aria-label=\"Next month\"\n [disabled]=\"!canGoForward()\"\n (click)=\"showMonth(1)\"\n >\n <ng-icon name=\"heroChevronRight\" class=\"shrink-0\" />\n </button>\n</div>\n\n<div class=\"ui-calendar-weekdays\" aria-hidden=\"true\">\n @for (weekday of weekdays(); track $index) {\n <span class=\"ui-calendar-weekday ui-text-caption\">{{ weekday }}</span>\n }\n</div>\n\n<div class=\"ui-calendar-grid\" (mouseleave)=\"preview(null)\">\n @for (day of days(); track day.iso) {\n <button\n type=\"button\"\n class=\"ui-calendar-day ui-text-body-alt\"\n [class]=\"day.className\"\n [attr.data-date]=\"day.iso\"\n [attr.data-outside]=\"day.isOutside ? '' : null\"\n [attr.data-today]=\"day.isToday ? '' : null\"\n [attr.data-in-range]=\"day.isInRange ? '' : null\"\n [attr.data-range-start]=\"day.isRangeStart ? '' : null\"\n [attr.data-range-end]=\"day.isRangeEnd ? '' : null\"\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\n [attr.aria-pressed]=\"hideSelection() ? null : day.isSelected\"\n [attr.aria-label]=\"day.label\"\n [tabindex]=\"day.iso === tabbableDate() ? 0 : -1\"\n [attr.aria-disabled]=\"day.isDisabled || null\"\n (click)=\"select(day)\"\n (keydown)=\"handleKeydown($event)\"\n (mouseenter)=\"preview(day.iso)\"\n (focus)=\"preview(day.iso)\"\n >\n @if (dayTemplate(); as dayTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"dayTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: day.iso, day }\"\n />\n } @else {\n {{ day.day }}\n }\n </button>\n }\n</div>\n",
8725
+ styles: ["@layer properties;:host{display:inline-flex;flex-direction:column;row-gap:calc(var(--spacing, .25rem) * 2)}.ui-calendar-header{display:flex;align-items:center;column-gap:var(--spacing, .25rem);padding-bottom:var(--spacing, .25rem)}.ui-calendar-selects{display:flex;min-width:0px;flex:1;column-gap:var(--spacing, .25rem)}.ui-calendar-month{min-width:0px;flex:1}.ui-calendar-year{width:calc(var(--spacing, .25rem) * 24);flex-shrink:0}.ui-calendar-nav{display:inline-flex;width:calc(var(--spacing, .25rem) * 8);height:calc(var(--spacing, .25rem) * 8);flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));color:var(--foreground)}.ui-calendar-nav:focus{--tw-outline-style: none;outline-style:none}.ui-calendar-nav:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-nav:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-calendar-nav:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-calendar-nav:disabled{pointer-events:none}.ui-calendar-nav:disabled{opacity:50%}.ui-calendar-nav:hover,.ui-calendar-nav:focus-visible{background-color:var(--surface)}.ui-calendar-weekdays,.ui-calendar-grid{display:grid;grid-template-columns:repeat(7,calc(var(--spacing, .25rem) * 10.5));justify-content:center}.ui-calendar-grid{row-gap:calc(var(--spacing, .25rem) * .5)}.ui-calendar-weekday{width:calc(var(--spacing, .25rem) * 10.5);padding-bottom:var(--spacing, .25rem);text-align:center;color:var(--muted-foreground-1)}.ui-calendar-day{position:relative;display:inline-flex;width:calc(var(--spacing, .25rem) * 10.5);height:calc(var(--spacing, .25rem) * 10.5);flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius-full, calc(infinity * 1px));border-style:var(--tw-border-style);border-width:1.5px;border-color:transparent;color:var(--foreground);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.ui-calendar-day:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-day:focus-visible{--tw-ring-color: color-mix(in srgb, oklch(88.2% .059 254.128) 50%, transparent)}@supports (color: color-mix(in lab,red,red)){.ui-calendar-day:focus-visible{--tw-ring-color: color-mix(in oklab, var(--color-primary-200, var(--color-blue-200)) 50%, transparent)}}.ui-calendar-day:focus-visible{--tw-outline-style: none;outline-style:none}.ui-calendar-day:hover,.ui-calendar-day:focus-visible{border-color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day:hover,.ui-calendar-day:focus-visible{color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day[aria-disabled]{cursor:not-allowed;text-decoration-line:line-through;opacity:40%}.ui-calendar-day[aria-disabled]:hover{border-color:transparent}.ui-calendar-day[aria-disabled]:hover{color:inherit}.ui-calendar-day[data-outside]{color:var(--muted-foreground)}.ui-calendar-day[data-today]{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-primary-600, var(--color-blue-600))}.ui-calendar-day[aria-pressed=true]{border-color:var(--color-primary-600, var(--color-blue-600));background-color:var(--color-primary-600, var(--color-blue-600));color:var(--color-white, #fff)}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{border-color:var(--color-primary-700, var(--color-blue-700))}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{background-color:var(--color-primary-700, var(--color-blue-700))}.ui-calendar-day[aria-pressed=true]:hover,.ui-calendar-day[aria-pressed=true]:focus-visible{color:var(--color-white, #fff)}.ui-calendar-day[data-in-range]{border-radius:0;background-color:var(--color-primary-100, var(--color-blue-100));color:var(--foreground)}.ui-calendar-day[data-range-start]{border-top-right-radius:0;border-bottom-right-radius:0}.ui-calendar-day[data-range-end]{border-top-left-radius:0;border-bottom-left-radius:0}.ui-calendar-day[data-range-end]:not([aria-pressed=true]){background-color:var(--color-primary-100, var(--color-blue-100))}.ui-calendar-day[data-in-range]:not(:nth-child(7n)),.ui-calendar-day[data-range-start]:not(:nth-child(7n)){--tw-shadow: 1px 0 0 var(--tw-shadow-color, var(--color-primary-100));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ui-calendar-day[data-in-range]:nth-child(7n+1),.ui-calendar-day[data-range-end]:nth-child(7n+1){border-top-left-radius:var(--radius-full, calc(infinity * 1px));border-bottom-left-radius:var(--radius-full, calc(infinity * 1px))}.ui-calendar-day[data-in-range]:nth-child(7n),.ui-calendar-day[data-range-start]:nth-child(7n){border-top-right-radius:var(--radius-full, calc(infinity * 1px));border-bottom-right-radius:var(--radius-full, calc(infinity * 1px))}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-border-style: solid;--tw-duration: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"]
7798
8726
  }]
7799
8727
  }],
8728
+ ctorParameters: () => [],
7800
8729
  propDecorators: {
7801
8730
  mode: [{
7802
8731
  type: i0.Input,
@@ -7867,6 +8796,34 @@ i0.ɵɵngDeclareClassMetadata({
7867
8796
  alias: "locale",
7868
8797
  required: false
7869
8798
  }]
8799
+ }],
8800
+ dayClass: [{
8801
+ type: i0.Input,
8802
+ args: [{
8803
+ isSignal: true,
8804
+ alias: "dayClass",
8805
+ required: false
8806
+ }]
8807
+ }],
8808
+ hideSelection: [{
8809
+ type: i0.Input,
8810
+ args: [{
8811
+ isSignal: true,
8812
+ alias: "hideSelection",
8813
+ required: false
8814
+ }]
8815
+ }],
8816
+ dayClick: [{
8817
+ type: i0.Output,
8818
+ args: ["dayClick"]
8819
+ }],
8820
+ monthChange: [{
8821
+ type: i0.Output,
8822
+ args: ["monthChange"]
8823
+ }],
8824
+ dayTemplate: [{
8825
+ type: i0.ContentChild,
8826
+ args: [i0.forwardRef(() => UiCalendarDayDirective), { isSignal: true }]
7870
8827
  }]
7871
8828
  }
7872
8829
  });
@@ -12159,6 +13116,7 @@ var UiColourComponent = class UiColourComponent {
12159
13116
  }
12160
13117
  },
12161
13118
  outputs: { value: "valueChange" },
13119
+ host: { properties: { "attr.id": "null" } },
12162
13120
  viewQueries: [{
12163
13121
  propertyName: "picker",
12164
13122
  first: true,
@@ -12251,6 +13209,7 @@ i0.ɵɵngDeclareClassMetadata({
12251
13209
  UiInputGroupComponent,
12252
13210
  UiButtonComponent
12253
13211
  ],
13212
+ host: { "[attr.id]": "null" },
12254
13213
  template: "<ui-input-group [validationState]=\"isValid() ? null : false\">\n <ui-button\n appearance=\"white\"\n intent=\"secondary\"\n size=\"sm\"\n classes=\"h-full\"\n ariaLabel=\"Pick colour\"\n [disabled]=\"disabled()\"\n (click)=\"openPicker()\"\n >\n <span\n class=\"border border-line-2 rounded size-5\"\n [style.background-color]=\"isValid() ? value() : 'transparent'\"\n ></span>\n </ui-button>\n\n <input\n #picker\n type=\"color\"\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"pickerValue()\"\n [disabled]=\"disabled()\"\n (input)=\"handlePick($event)\"\n />\n\n <ui-input\n [(value)]=\"value\"\n [id]=\"id()\"\n [disabled]=\"disabled()\"\n [maxlength]=\"7\"\n [spellcheck]=\"false\"\n autocomplete=\"off\"\n placeholder=\"#000000\"\n />\n</ui-input-group>\n"
12255
13214
  }]
12256
13215
  }],
@@ -12728,7 +13687,10 @@ var UiDateRangePickerComponent = class UiDateRangePickerComponent {
12728
13687
  }
12729
13688
  },
12730
13689
  outputs: { value: "valueChange" },
12731
- host: { classAttribute: "block" },
13690
+ host: {
13691
+ properties: { "attr.id": "null" },
13692
+ classAttribute: "block"
13693
+ },
12732
13694
  providers: [provideIcons({
12733
13695
  heroCalendarDateRange,
12734
13696
  heroXMark
@@ -12799,9 +13761,16 @@ var UiDateRangePickerComponent = class UiDateRangePickerComponent {
12799
13761
  "max",
12800
13762
  "isDateDisabled",
12801
13763
  "weekStart",
12802
- "locale"
13764
+ "locale",
13765
+ "dayClass",
13766
+ "hideSelection"
12803
13767
  ],
12804
- outputs: ["valueChange", "rangeChange"]
13768
+ outputs: [
13769
+ "valueChange",
13770
+ "rangeChange",
13771
+ "dayClick",
13772
+ "monthChange"
13773
+ ]
12805
13774
  },
12806
13775
  {
12807
13776
  kind: "component",
@@ -12853,7 +13822,10 @@ i0.ɵɵngDeclareClassMetadata({
12853
13822
  UiDropdownDirective,
12854
13823
  NgIcon
12855
13824
  ],
12856
- host: { class: "block" },
13825
+ host: {
13826
+ class: "block",
13827
+ "[attr.id]": "null"
13828
+ },
12857
13829
  providers: [provideIcons({
12858
13830
  heroCalendarDateRange,
12859
13831
  heroXMark
@@ -13431,7 +14403,10 @@ var UiDatepickerComponent = class UiDatepickerComponent {
13431
14403
  }
13432
14404
  },
13433
14405
  outputs: { value: "valueChange" },
13434
- host: { classAttribute: "block" },
14406
+ host: {
14407
+ properties: { "attr.id": "null" },
14408
+ classAttribute: "block"
14409
+ },
13435
14410
  providers: [provideIcons({
13436
14411
  heroCalendar,
13437
14412
  heroXMark
@@ -13502,9 +14477,16 @@ var UiDatepickerComponent = class UiDatepickerComponent {
13502
14477
  "max",
13503
14478
  "isDateDisabled",
13504
14479
  "weekStart",
13505
- "locale"
14480
+ "locale",
14481
+ "dayClass",
14482
+ "hideSelection"
13506
14483
  ],
13507
- outputs: ["valueChange", "rangeChange"]
14484
+ outputs: [
14485
+ "valueChange",
14486
+ "rangeChange",
14487
+ "dayClick",
14488
+ "monthChange"
14489
+ ]
13508
14490
  },
13509
14491
  {
13510
14492
  kind: "component",
@@ -13591,7 +14573,10 @@ i0.ɵɵngDeclareClassMetadata({
13591
14573
  NgIcon,
13592
14574
  UiCardComponent
13593
14575
  ],
13594
- host: { class: "block" },
14576
+ host: {
14577
+ class: "block",
14578
+ "[attr.id]": "null"
14579
+ },
13595
14580
  providers: [provideIcons({
13596
14581
  heroCalendar,
13597
14582
  heroXMark
@@ -14084,6 +15069,7 @@ var UiFileInputComponent = class UiFileInputComponent {
14084
15069
  value: "valueChange",
14085
15070
  rejected: "rejected"
14086
15071
  },
15072
+ host: { properties: { "attr.id": "null" } },
14087
15073
  providers: [provideIcons({
14088
15074
  heroArrowUp,
14089
15075
  heroXMark
@@ -14197,6 +15183,7 @@ i0.ɵɵngDeclareClassMetadata({
14197
15183
  heroArrowUp,
14198
15184
  heroXMark
14199
15185
  })],
15186
+ host: { "[attr.id]": "null" },
14200
15187
  template: "<ui-input-group [validationState]=\"hasRejection() ? false : null\">\n <ui-button\n appearance=\"white\"\n intent=\"secondary\"\n size=\"sm\"\n classes=\"h-full\"\n [disabled]=\"disabled()\"\n (click)=\"openPicker()\"\n >\n <ng-icon name=\"heroArrowUpTray\" class=\"shrink-0\" />\n {{ buttonLabel() }}\n </ui-button>\n\n <input\n #picker\n type=\"file\"\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"disabled()\"\n (change)=\"handlePick($event)\"\n />\n\n <ui-input\n [value]=\"summary()\"\n [id]=\"id()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [describedBy]=\"describedBy()\"\n classes=\"truncate cursor-pointer\"\n readonly\n (click)=\"openPicker()\"\n >\n <ng-template #trailing>\n @if (value().length && !disabled()) {\n <button\n type=\"button\"\n class=\"inline-flex justify-center items-center w-8 self-stretch text-muted-foreground-1 hover:text-foreground\"\n aria-label=\"Clear files\"\n (click)=\"clear($event)\"\n >\n <ng-icon name=\"heroXMark\" class=\"shrink-0\" />\n </button>\n }\n </ng-template>\n </ui-input>\n</ui-input-group>\n"
14201
15188
  }]
14202
15189
  }],
@@ -14596,6 +15583,7 @@ var UiSwitchComponent = class UiSwitchComponent {
14596
15583
  }
14597
15584
  },
14598
15585
  outputs: { value: "valueChange" },
15586
+ host: { properties: { "attr.id": "null" } },
14599
15587
  ngImport: i0,
14600
15588
  template: "<label class=\"inline-flex items-center gap-2 cursor-pointer\" [class.opacity-50]=\"disabled()\">\n <span class=\"relative inline-flex items-center rounded-full focus-within:ring-2 focus-within:ring-primary-200/50\">\n <!--\n reuses ui-checkbox for the real state/behaviour, class-bound track/thumb below\n react to value() directly instead of peer-checked, since peer-* relies on the\n input and the styled element being real DOM siblings, which breaks once the\n input is nested inside ui-checkbox's own host element\n -->\n <ui-checkbox\n [(value)]=\"value\"\n [disabled]=\"disabled()\"\n [id]=\"id()\"\n [name]=\"name()\"\n classes=\"sr-only\"\n />\n\n <span\n class=\"w-9 h-5 rounded-full transition-colors\"\n [class.bg-primary-600]=\"value()\"\n [class.bg-surface-1]=\"!value()\"\n ></span>\n\n <span\n class=\"absolute left-0.5 size-4 rounded-full bg-white shadow transition-transform\"\n [class.translate-x-4]=\"value()\"\n ></span>\n </span>\n\n <ng-content />\n</label>\n",
14601
15589
  dependencies: [{
@@ -14626,6 +15614,7 @@ i0.ɵɵngDeclareClassMetadata({
14626
15614
  args: [{
14627
15615
  selector: "ui-switch",
14628
15616
  imports: [UiCheckboxComponent],
15617
+ host: { "[attr.id]": "null" },
14629
15618
  template: "<label class=\"inline-flex items-center gap-2 cursor-pointer\" [class.opacity-50]=\"disabled()\">\n <span class=\"relative inline-flex items-center rounded-full focus-within:ring-2 focus-within:ring-primary-200/50\">\n <!--\n reuses ui-checkbox for the real state/behaviour, class-bound track/thumb below\n react to value() directly instead of peer-checked, since peer-* relies on the\n input and the styled element being real DOM siblings, which breaks once the\n input is nested inside ui-checkbox's own host element\n -->\n <ui-checkbox\n [(value)]=\"value\"\n [disabled]=\"disabled()\"\n [id]=\"id()\"\n [name]=\"name()\"\n classes=\"sr-only\"\n />\n\n <span\n class=\"w-9 h-5 rounded-full transition-colors\"\n [class.bg-primary-600]=\"value()\"\n [class.bg-surface-1]=\"!value()\"\n ></span>\n\n <span\n class=\"absolute left-0.5 size-4 rounded-full bg-white shadow transition-transform\"\n [class.translate-x-4]=\"value()\"\n ></span>\n </span>\n\n <ng-content />\n</label>\n"
14630
15619
  }]
14631
15620
  }],
@@ -14693,7 +15682,7 @@ var UiTableFiltersComponent = class UiTableFiltersComponent {
14693
15682
  }, ...ngDevMode ? [{ debugName: "linked" }] : /* istanbul ignore next */ []);
14694
15683
  appliedCount = computed(() => this.facets().filter((facet) => facet.id in this.value()).length, ...ngDevMode ? [{ debugName: "appliedCount" }] : /* istanbul ignore next */ []);
14695
15684
  anyApplied = computed(() => this.appliedCount() > 0, ...ngDevMode ? [{ debugName: "anyApplied" }] : /* istanbul ignore next */ []);
14696
- window = inject(DOCUMENT).defaultView;
15685
+ window = inject(DOCUMENT$1).defaultView;
14697
15686
  wide = signal(true, ...ngDevMode ? [{ debugName: "wide" }] : /* istanbul ignore next */ []);
14698
15687
  constructor() {
14699
15688
  effect((onCleanup) => {
@@ -15255,7 +16244,8 @@ var UiUserMenuComponent = class UiUserMenuComponent {
15255
16244
  inputs: [
15256
16245
  "name",
15257
16246
  "src",
15258
- "size"
16247
+ "size",
16248
+ "colour"
15259
16249
  ]
15260
16250
  },
15261
16251
  {
@@ -15337,7 +16327,7 @@ const PREFERENCES = [
15337
16327
  "dark"
15338
16328
  ];
15339
16329
  var UiThemeService = class UiThemeService {
15340
- document = inject(DOCUMENT);
16330
+ document = inject(DOCUMENT$1);
15341
16331
  storageKey = inject(UI_THEME_CONFIG).storageKey;
15342
16332
  media = this.document.defaultView?.matchMedia?.("(prefers-color-scheme: dark)");
15343
16333
  preference = signal(this.stored(), ...ngDevMode ? [{ debugName: "preference" }] : /* istanbul ignore next */ []);
@@ -15525,6 +16515,6 @@ i0.ɵɵngDeclareClassMetadata({
15525
16515
  }]
15526
16516
  }
15527
16517
  });
15528
- export { AlertAppearances, AlertIntents, AvatarSizes, BadgeAppearances, BadgeIntents, BadgeSizes, BarChartOrientations, ButtonAppearances, ButtonGroupAppearances, ButtonIntents, ButtonSizes, ButtonTypes, CHART_COLOURS, CHART_INK, CHART_INK_DARK, CHART_MAX_LINE_SERIES, CHART_MAX_SERIES, CHART_PALETTE, CHART_PALETTE_DARK, CalendarModes, CardHeadingLevels, CardRadii, DisclosureTriggerAppearances, FileRejectionReasons, InputAriaAutocompletes, InputAriaHasPopups, InputModes, InputTypes, LineChartCurves, MoneySignDisplays, PRIVATE_TEXT_LABEL, PRIVATE_TEXT_MASK, PieChartVariants, ProgressIntents, ProgressLabelPositions, ProgressOrientations, ProgressShapes, ProgressSizes, SelectLocalDataSource, SelectMultipleDisplays, SelectRemoteDataSource, SkeletonShapes, TableFiltersBreakpoints, TableLocalDataSource, TableRemoteDataSource, TextareaResizeOptions, ToastIntents, ToasterPositions, UI_BUTTON_GROUP, UI_FORMAT, UI_FORMAT_DEFAULTS, UI_LOADING_TYPES, UI_PRIVACY, UI_THEME_CONFIG, UiAlertComponent, UiAvatarComponent, UiBadgeComponent, UiBarChartComponent, UiButtonComponent, UiButtonGroupComponent, UiCalendarComponent, UiCardComponent, UiCardHeaderComponent, UiChartComponent, UiChartFrameComponent, UiChartLegendComponent, UiChartTableComponent, UiCheckboxComponent, UiColourComponent, UiContainerComponent, UiCounterComponent, UiDateRangePickerComponent, UiDatepickerComponent, UiDisclosureChevronComponent, UiDisclosureComponent, UiDisclosurePanelDirective, UiDisclosureTriggerComponent, UiDrawerComponent, UiDropdownButtonComponent, UiDropdownComponent, UiDropdownDirective, UiDropdownMenuComponent, UiDropzoneComponent, UiFieldComponent, UiFileInputComponent, UiInputAddonComponent, UiInputComponent, UiInputGroupComponent, UiKpiComponent, UiLayoutComponent, UiLineChartComponent, UiLoadingComponent, UiModalComponent, UiMoneyComponent, UiOverlayComponent, UiPaginationComponent, UiPieChartComponent, UiPrivacies, UiPrivateComponent, UiProgressComponent, UiRadioComponent, UiSearchComponent, UiSegmentedComponent, UiSelectComponent, UiSidebarComponent, UiSidebarGroupComponent, UiSidebarItemComponent, UiSkeletonComponent, UiStatComponent, UiSwitchComponent, UiTabComponent, UiTabDirective, UiTableBarDirective, UiTableCellDirective, UiTableComponent, UiTableFiltersComponent, UiTableRegistry, UiTextareaComponent, UiThemeService, UiThemeSwitchComponent, UiTimeSelectComponent, UiToastComponent, UiToastService, UiToasterComponent, UiTooltipComponent, UiTreemapChartComponent, UiUserMenuComponent, WeekStarts, chartColour, chartInk, chartLabelInk, chartSeriesStyle, defaultDateRangePresets, financialYearPreset, injectMoneyFormatter, injectPrivateText, lastDaysPreset, maskMoney, mixChartColours, moneyFormatterParts, monthPreset, pickedChartColour, provideUiFormat, provideUiPrivacy, provideUiTheme, radiusClasses, thisWeekPreset, todayPreset, yearPreset };
16518
+ export { AlertAppearances, AlertIntents, AvatarSizes, BadgeAppearances, BadgeIntents, BadgeSizes, BarChartOrientations, ButtonAppearances, ButtonGroupAppearances, ButtonIntents, ButtonSizes, ButtonTypes, CHART_COLOURS, CHART_INK, CHART_INK_DARK, CHART_MAX_LINE_SERIES, CHART_MAX_SERIES, CHART_PALETTE, CHART_PALETTE_DARK, CalendarModes, CardHeadingLevels, CardRadii, DisclosureTriggerAppearances, FileRejectionReasons, InputAriaAutocompletes, InputAriaHasPopups, InputModes, InputTypes, LineChartCurves, MoneySignDisplays, PRIVATE_TEXT_LABEL, PRIVATE_TEXT_MASK, PieChartVariants, ProgressIntents, ProgressLabelPositions, ProgressOrientations, ProgressShapes, ProgressSizes, RichTextToolGroups, RichTextTools, SelectLocalDataSource, SelectMultipleDisplays, SelectRemoteDataSource, SkeletonShapes, TableFiltersBreakpoints, TableLocalDataSource, TableRemoteDataSource, TextareaResizeOptions, ToastIntents, ToasterPositions, UI_BUTTON_GROUP, UI_FORMAT, UI_FORMAT_DEFAULTS, UI_LOADING_TYPES, UI_PRIVACY, UI_THEME_CONFIG, UiAlertComponent, UiAvatarComponent, UiBadgeComponent, UiBarChartComponent, UiButtonComponent, UiButtonGroupComponent, UiCalendarComponent, UiCalendarDayDirective, UiCardComponent, UiCardHeaderComponent, UiChartComponent, UiChartFrameComponent, UiChartLegendComponent, UiChartTableComponent, UiCheckboxComponent, UiColourComponent, UiContainerComponent, UiCounterComponent, UiDateRangePickerComponent, UiDatepickerComponent, UiDisclosureChevronComponent, UiDisclosureComponent, UiDisclosurePanelDirective, UiDisclosureTriggerComponent, UiDrawerComponent, UiDropdownButtonComponent, UiDropdownComponent, UiDropdownDirective, UiDropdownMenuComponent, UiDropzoneComponent, UiFieldComponent, UiFileInputComponent, UiInputAddonComponent, UiInputComponent, UiInputGroupComponent, UiKpiComponent, UiLayoutComponent, UiLineChartComponent, UiLoadingComponent, UiModalComponent, UiMoneyComponent, UiOverlayComponent, UiPaginationComponent, UiPieChartComponent, UiPrivacies, UiPrivateComponent, UiProgressComponent, UiRadioComponent, UiRichTextEditorComponent, UiSearchComponent, UiSegmentedComponent, UiSelectComponent, UiSidebarComponent, UiSidebarGroupComponent, UiSidebarItemComponent, UiSkeletonComponent, UiStatComponent, UiSwitchComponent, UiTabComponent, UiTabDirective, UiTableBarDirective, UiTableCellDirective, UiTableComponent, UiTableFiltersComponent, UiTableRegistry, UiTextareaComponent, UiThemeService, UiThemeSwitchComponent, UiTimeSelectComponent, UiToastComponent, UiToastService, UiToasterComponent, UiTooltipComponent, UiTreemapChartComponent, UiUserMenuComponent, WeekStarts, chartColour, chartInk, chartLabelInk, chartSeriesStyle, defaultDateRangePresets, financialYearPreset, injectMoneyFormatter, injectPrivateText, lastDaysPreset, maskMoney, mixChartColours, moneyFormatterParts, monthPreset, pickedChartColour, provideUiFormat, provideUiPrivacy, provideUiTheme, radiusClasses, thisWeekPreset, todayPreset, yearPreset };
15529
16519
 
15530
16520
  //# sourceMappingURL=area8975-ui.mjs.map