@edsis/ui 21.3.7 → 21.3.8
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.
- package/fesm2022/edsis-ui-avatar.mjs +1 -1
- package/fesm2022/edsis-ui-avatar.mjs.map +1 -1
- package/fesm2022/edsis-ui-card.mjs +1 -1
- package/fesm2022/edsis-ui-card.mjs.map +1 -1
- package/fesm2022/edsis-ui-chart.mjs +12 -12
- package/fesm2022/edsis-ui-chart.mjs.map +1 -1
- package/fesm2022/edsis-ui-composer.mjs +2 -2
- package/fesm2022/edsis-ui-composer.mjs.map +1 -1
- package/fesm2022/edsis-ui-editor.mjs +9 -2
- package/fesm2022/edsis-ui-editor.mjs.map +1 -1
- package/fesm2022/edsis-ui-input-group.mjs +2 -2
- package/fesm2022/edsis-ui-input-group.mjs.map +1 -1
- package/fesm2022/edsis-ui-kbd.mjs +1 -1
- package/fesm2022/edsis-ui-kbd.mjs.map +1 -1
- package/fesm2022/edsis-ui-layout.mjs +4 -4
- package/fesm2022/edsis-ui-layout.mjs.map +1 -1
- package/fesm2022/edsis-ui-nav.mjs +17 -11
- package/fesm2022/edsis-ui-nav.mjs.map +1 -1
- package/fesm2022/edsis-ui-page.mjs +42 -13
- package/fesm2022/edsis-ui-page.mjs.map +1 -1
- package/fesm2022/edsis-ui-pillbox.mjs +1 -1
- package/fesm2022/edsis-ui-pillbox.mjs.map +1 -1
- package/fesm2022/edsis-ui-scroll-area.mjs +2 -2
- package/fesm2022/edsis-ui-scroll-area.mjs.map +1 -1
- package/fesm2022/edsis-ui-theme.mjs +7 -3
- package/fesm2022/edsis-ui-theme.mjs.map +1 -1
- package/fesm2022/edsis-ui-timeline.mjs +17 -17
- package/fesm2022/edsis-ui-timeline.mjs.map +1 -1
- package/package.json +1 -1
- package/page/README.md +103 -5
- package/types/edsis-ui-editor.d.ts +1 -0
- package/types/edsis-ui-page.d.ts +26 -3
- package/types/edsis-ui-theme.d.ts +6 -2
|
@@ -6,9 +6,13 @@ import { DOCUMENT } from '@angular/common';
|
|
|
6
6
|
const UI_PAGE_VARIANTS = ['stacked', 'side'];
|
|
7
7
|
const UI_PAGE_SIDE_POSITIONS = ['left', 'right'];
|
|
8
8
|
const UI_PAGE_SIDE_MODES = ['sticky', 'drawer', 'overlay'];
|
|
9
|
+
const UI_PAGE_SCROLL_VALUES = ['content', 'page'];
|
|
10
|
+
const UI_PAGE_HEIGHT_VALUES = ['auto', 'fix'];
|
|
9
11
|
const UI_PAGE_DEFAULT_VARIANT = 'stacked';
|
|
10
12
|
const UI_PAGE_DEFAULT_SIDE_POSITION = 'left';
|
|
11
13
|
const UI_PAGE_DEFAULT_SIDE_MODE = 'sticky';
|
|
14
|
+
const UI_PAGE_DEFAULT_SCROLL = 'content';
|
|
15
|
+
const UI_PAGE_DEFAULT_HEIGHT = 'auto';
|
|
12
16
|
const UI_PAGE_DEFAULT_SIDE_WIDTH = '16rem';
|
|
13
17
|
function isUiPageVariant(value) {
|
|
14
18
|
return value !== null && UI_PAGE_VARIANTS.includes(value);
|
|
@@ -19,9 +23,17 @@ function isUiPageSidePosition(value) {
|
|
|
19
23
|
function isUiPageSideMode(value) {
|
|
20
24
|
return value !== null && UI_PAGE_SIDE_MODES.includes(value);
|
|
21
25
|
}
|
|
26
|
+
function isUiPageScroll(value) {
|
|
27
|
+
return value !== null && UI_PAGE_SCROLL_VALUES.includes(value);
|
|
28
|
+
}
|
|
29
|
+
function isUiPageHeight(value) {
|
|
30
|
+
return value !== null && UI_PAGE_HEIGHT_VALUES.includes(value);
|
|
31
|
+
}
|
|
22
32
|
|
|
23
33
|
class UiPageStateService {
|
|
24
34
|
variantState = signal(UI_PAGE_DEFAULT_VARIANT, ...(ngDevMode ? [{ debugName: "variantState" }] : /* istanbul ignore next */ []));
|
|
35
|
+
heightState = signal(UI_PAGE_DEFAULT_HEIGHT, ...(ngDevMode ? [{ debugName: "heightState" }] : /* istanbul ignore next */ []));
|
|
36
|
+
scrollState = signal(UI_PAGE_DEFAULT_SCROLL, ...(ngDevMode ? [{ debugName: "scrollState" }] : /* istanbul ignore next */ []));
|
|
25
37
|
positionState = signal(UI_PAGE_DEFAULT_SIDE_POSITION, ...(ngDevMode ? [{ debugName: "positionState" }] : /* istanbul ignore next */ []));
|
|
26
38
|
sideModeState = signal(UI_PAGE_DEFAULT_SIDE_MODE, ...(ngDevMode ? [{ debugName: "sideModeState" }] : /* istanbul ignore next */ []));
|
|
27
39
|
internalSideOpenState = signal(false, ...(ngDevMode ? [{ debugName: "internalSideOpenState" }] : /* istanbul ignore next */ []));
|
|
@@ -31,6 +43,8 @@ class UiPageStateService {
|
|
|
31
43
|
sideOpenRequestState = signal(null, ...(ngDevMode ? [{ debugName: "sideOpenRequestState" }] : /* istanbul ignore next */ []));
|
|
32
44
|
sideOpenRequestVersionState = signal(0, ...(ngDevMode ? [{ debugName: "sideOpenRequestVersionState" }] : /* istanbul ignore next */ []));
|
|
33
45
|
variant = this.variantState.asReadonly();
|
|
46
|
+
height = this.heightState.asReadonly();
|
|
47
|
+
scroll = this.scrollState.asReadonly();
|
|
34
48
|
position = this.positionState.asReadonly();
|
|
35
49
|
sideMode = this.sideModeState.asReadonly();
|
|
36
50
|
sideWidth = this.sideWidthState.asReadonly();
|
|
@@ -42,6 +56,8 @@ class UiPageStateService {
|
|
|
42
56
|
isSideVisible = computed(() => this.sideMode() === 'sticky' || this.sideOpen(), ...(ngDevMode ? [{ debugName: "isSideVisible" }] : /* istanbul ignore next */ []));
|
|
43
57
|
registerRoot(config) {
|
|
44
58
|
this.variantState.set(config.variant);
|
|
59
|
+
this.heightState.set(config.height);
|
|
60
|
+
this.scrollState.set(config.scroll);
|
|
45
61
|
this.positionState.set(config.position);
|
|
46
62
|
this.sideModeState.set(config.sideMode);
|
|
47
63
|
this.sideWidthState.set(config.sideWidth);
|
|
@@ -101,11 +117,12 @@ class UiPageSideComponent {
|
|
|
101
117
|
isSticky = computed(() => this.resolvedMode() === 'sticky', ...(ngDevMode ? [{ debugName: "isSticky" }] : /* istanbul ignore next */ []));
|
|
102
118
|
isDrawer = computed(() => this.resolvedMode() === 'drawer', ...(ngDevMode ? [{ debugName: "isDrawer" }] : /* istanbul ignore next */ []));
|
|
103
119
|
isOverlay = computed(() => this.resolvedMode() === 'overlay', ...(ngDevMode ? [{ debugName: "isOverlay" }] : /* istanbul ignore next */ []));
|
|
120
|
+
resolvedScroll = computed(() => this.page.scroll() ?? UI_PAGE_DEFAULT_SCROLL, ...(ngDevMode ? [{ debugName: "resolvedScroll" }] : /* istanbul ignore next */ []));
|
|
104
121
|
ariaHidden = computed(() => (!this.isSticky() && !this.page.sideOpen() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaHidden" }] : /* istanbul ignore next */ []));
|
|
105
122
|
classes = computed(() => {
|
|
106
123
|
const position = this.resolvedPosition();
|
|
107
124
|
const sideOpen = this.page.sideOpen();
|
|
108
|
-
return cn('block
|
|
125
|
+
return cn('block min-h-0 border-border bg-background', this.resolvedScroll() === 'content' && 'h-full overflow-auto', this.resolvedScroll() === 'page' && 'overflow-visible', this.isSticky() && 'shrink-0 w-[var(--ui-page-side-width)]', this.isSticky() && position === 'left' && 'order-1 border-r', this.isSticky() && position === 'right' && 'order-2 border-l', this.isDrawer() &&
|
|
109
126
|
'absolute inset-y-0 z-20 w-[var(--ui-page-side-width)] border shadow-sm transition-transform duration-200 ease-out', this.isDrawer() && position === 'left' && (sideOpen ? 'left-0 translate-x-0' : 'left-0 -translate-x-full'), this.isDrawer() && position === 'right' && (sideOpen ? 'right-0 translate-x-0' : 'right-0 translate-x-full'), this.isOverlay() &&
|
|
110
127
|
'absolute inset-y-0 z-30 w-[var(--ui-page-side-width)] border shadow-md transition-transform duration-200 ease-out', this.isOverlay() && position === 'left' && (sideOpen ? 'left-0 translate-x-0' : 'left-0 -translate-x-full'), this.isOverlay() && position === 'right' && (sideOpen ? 'right-0 translate-x-0' : 'right-0 translate-x-full'), this.class());
|
|
111
128
|
}, ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
@@ -167,6 +184,8 @@ class UiPageComponent {
|
|
|
167
184
|
page = inject(UiPageStateService);
|
|
168
185
|
projectedSide = contentChild(UiPageSideComponent, ...(ngDevMode ? [{ debugName: "projectedSide" }] : /* istanbul ignore next */ []));
|
|
169
186
|
variant = input(UI_PAGE_DEFAULT_VARIANT, ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
187
|
+
height = input(UI_PAGE_DEFAULT_HEIGHT, ...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
|
|
188
|
+
scroll = input(UI_PAGE_DEFAULT_SCROLL, ...(ngDevMode ? [{ debugName: "scroll" }] : /* istanbul ignore next */ []));
|
|
170
189
|
position = input(UI_PAGE_DEFAULT_SIDE_POSITION, ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
|
|
171
190
|
sideMode = input(UI_PAGE_DEFAULT_SIDE_MODE, ...(ngDevMode ? [{ debugName: "sideMode" }] : /* istanbul ignore next */ []));
|
|
172
191
|
sideOpen = input(null, ...(ngDevMode ? [{ debugName: "sideOpen" }] : /* istanbul ignore next */ []));
|
|
@@ -179,24 +198,26 @@ class UiPageComponent {
|
|
|
179
198
|
isRightSide = computed(() => this.resolvedPosition() === 'right', ...(ngDevMode ? [{ debugName: "isRightSide" }] : /* istanbul ignore next */ []));
|
|
180
199
|
showsOverlayBackdrop = computed(() => this.variant() === 'side' && this.resolvedSideMode() === 'overlay' && this.page.sideOpen(), ...(ngDevMode ? [{ debugName: "showsOverlayBackdrop" }] : /* istanbul ignore next */ []));
|
|
181
200
|
hostClasses = computed(() => cn('relative block h-full min-h-0 w-full min-w-0 overflow-hidden text-foreground', this.class()), ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
182
|
-
shellClasses = computed(() => cn('relative z-10 h-full min-h-0 w-full min-w-0', this.
|
|
201
|
+
shellClasses = computed(() => cn('relative z-10 h-full min-h-0 w-full min-w-0', this.scroll() === 'content' && 'grid grid-rows-[auto_minmax(0,1fr)_auto]', this.scroll() === 'page' && 'overflow-auto'), ...(ngDevMode ? [{ debugName: "shellClasses" }] : /* istanbul ignore next */ []));
|
|
183
202
|
bodyClasses = computed(() => {
|
|
184
203
|
if (this.variant() !== 'side') {
|
|
185
|
-
return 'relative min-
|
|
204
|
+
return cn('relative min-w-0', this.scroll() === 'content' && 'min-h-0');
|
|
186
205
|
}
|
|
187
206
|
const sideMode = this.resolvedSideMode();
|
|
188
207
|
const position = this.resolvedPosition();
|
|
189
208
|
if (sideMode === 'sticky') {
|
|
190
|
-
return cn('grid min-
|
|
209
|
+
return cn('grid min-w-0', this.scroll() === 'content' && 'min-h-0', position === 'left'
|
|
191
210
|
? 'grid-cols-[var(--ui-page-side-width)_minmax(0,1fr)]'
|
|
192
211
|
: 'grid-cols-[minmax(0,1fr)_var(--ui-page-side-width)]');
|
|
193
212
|
}
|
|
194
|
-
return 'relative min-
|
|
213
|
+
return cn('relative min-w-0', this.scroll() === 'content' && 'min-h-0');
|
|
195
214
|
}, ...(ngDevMode ? [{ debugName: "bodyClasses" }] : /* istanbul ignore next */ []));
|
|
196
215
|
constructor() {
|
|
197
216
|
effect(() => {
|
|
198
217
|
this.page.registerRoot({
|
|
199
218
|
variant: this.variant(),
|
|
219
|
+
height: this.height(),
|
|
220
|
+
scroll: this.scroll(),
|
|
200
221
|
position: this.position(),
|
|
201
222
|
sideMode: this.sideMode(),
|
|
202
223
|
sideWidth: this.sideWidth(),
|
|
@@ -217,13 +238,13 @@ class UiPageComponent {
|
|
|
217
238
|
this.page.closeSide();
|
|
218
239
|
}
|
|
219
240
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: UiPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
220
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: UiPageComponent, isStandalone: true, selector: "ui-page", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, sideMode: { classPropertyName: "sideMode", publicName: "sideMode", isSignal: true, isRequired: false, transformFunction: null }, sideOpen: { classPropertyName: "sideOpen", publicName: "sideOpen", isSignal: true, isRequired: false, transformFunction: null }, sideWidth: { classPropertyName: "sideWidth", publicName: "sideWidth", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sideOpenChange: "sideOpenChange" }, host: { properties: { "class": "hostClasses()", "attr.data-page-variant": "variant()", "attr.data-page-position": "resolvedPosition()", "attr.data-page-side-mode": "resolvedSideMode()", "attr.data-page-side-open": "page.sideOpen()", "style.--ui-page-side-width": "sideWidth()" } }, providers: [UiPageStateService], queries: [{ propertyName: "projectedSide", first: true, predicate: UiPageSideComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
241
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: UiPageComponent, isStandalone: true, selector: "ui-page", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, sideMode: { classPropertyName: "sideMode", publicName: "sideMode", isSignal: true, isRequired: false, transformFunction: null }, sideOpen: { classPropertyName: "sideOpen", publicName: "sideOpen", isSignal: true, isRequired: false, transformFunction: null }, sideWidth: { classPropertyName: "sideWidth", publicName: "sideWidth", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sideOpenChange: "sideOpenChange" }, host: { properties: { "class": "hostClasses()", "attr.data-page-variant": "variant()", "attr.data-page-height": "height()", "attr.data-page-scroll": "scroll()", "attr.data-page-position": "resolvedPosition()", "attr.data-page-side-mode": "resolvedSideMode()", "attr.data-page-side-open": "page.sideOpen()", "style.--ui-page-side-width": "sideWidth()" } }, providers: [UiPageStateService], queries: [{ propertyName: "projectedSide", first: true, predicate: UiPageSideComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
221
242
|
@if (showsOverlayBackdrop()) {
|
|
222
243
|
<button
|
|
223
244
|
type="button"
|
|
224
245
|
aria-label="Close page side"
|
|
225
246
|
data-page-overlay-backdrop
|
|
226
|
-
class="absolute inset-0 z-20 bg-
|
|
247
|
+
class="absolute inset-0 z-20 bg-[hsl(var(--overlay-backdrop))]"
|
|
227
248
|
(click)="handleBackdropClick()"></button>
|
|
228
249
|
}
|
|
229
250
|
|
|
@@ -252,6 +273,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
252
273
|
host: {
|
|
253
274
|
'[class]': 'hostClasses()',
|
|
254
275
|
'[attr.data-page-variant]': 'variant()',
|
|
276
|
+
'[attr.data-page-height]': 'height()',
|
|
277
|
+
'[attr.data-page-scroll]': 'scroll()',
|
|
255
278
|
'[attr.data-page-position]': 'resolvedPosition()',
|
|
256
279
|
'[attr.data-page-side-mode]': 'resolvedSideMode()',
|
|
257
280
|
'[attr.data-page-side-open]': 'page.sideOpen()',
|
|
@@ -263,7 +286,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
263
286
|
type="button"
|
|
264
287
|
aria-label="Close page side"
|
|
265
288
|
data-page-overlay-backdrop
|
|
266
|
-
class="absolute inset-0 z-20 bg-
|
|
289
|
+
class="absolute inset-0 z-20 bg-[hsl(var(--overlay-backdrop))]"
|
|
267
290
|
(click)="handleBackdropClick()"></button>
|
|
268
291
|
}
|
|
269
292
|
|
|
@@ -283,7 +306,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
283
306
|
</div>
|
|
284
307
|
`,
|
|
285
308
|
}]
|
|
286
|
-
}], ctorParameters: () => [], propDecorators: { projectedSide: [{ type: i0.ContentChild, args: [i0.forwardRef(() => UiPageSideComponent), { isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], sideMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideMode", required: false }] }], sideOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideOpen", required: false }] }], sideWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideWidth", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], sideOpenChange: [{ type: i0.Output, args: ["sideOpenChange"] }] } });
|
|
309
|
+
}], ctorParameters: () => [], propDecorators: { projectedSide: [{ type: i0.ContentChild, args: [i0.forwardRef(() => UiPageSideComponent), { isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], scroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "scroll", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], sideMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideMode", required: false }] }], sideOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideOpen", required: false }] }], sideWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideWidth", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], sideOpenChange: [{ type: i0.Output, args: ["sideOpenChange"] }] } });
|
|
287
310
|
|
|
288
311
|
class UiPageSideToggleComponent {
|
|
289
312
|
page = inject(UiPageStateService);
|
|
@@ -335,8 +358,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
335
358
|
}], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], toggled: [{ type: i0.Output, args: ["toggled"] }] } });
|
|
336
359
|
|
|
337
360
|
class UiPageHeaderComponent {
|
|
361
|
+
page = inject(UiPageStateService, { optional: true });
|
|
338
362
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
339
|
-
|
|
363
|
+
resolvedHeight = computed(() => this.page?.height() ?? UI_PAGE_DEFAULT_HEIGHT, ...(ngDevMode ? [{ debugName: "resolvedHeight" }] : /* istanbul ignore next */ []));
|
|
364
|
+
classes = computed(() => cn('block shrink-0 border-b border-border bg-background', this.class(), this.resolvedHeight() === 'fix' && 'h-12 overflow-hidden'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
340
365
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: UiPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
341
366
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: UiPageHeaderComponent, isStandalone: true, selector: "ui-page-header", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-page-slot": "header" }, properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
342
367
|
}
|
|
@@ -353,8 +378,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
353
378
|
}]
|
|
354
379
|
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
355
380
|
class UiPageContentComponent {
|
|
381
|
+
page = inject(UiPageStateService, { optional: true });
|
|
356
382
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
357
|
-
|
|
383
|
+
resolvedScroll = computed(() => this.page?.scroll() ?? UI_PAGE_DEFAULT_SCROLL, ...(ngDevMode ? [{ debugName: "resolvedScroll" }] : /* istanbul ignore next */ []));
|
|
384
|
+
classes = computed(() => cn('block min-w-0', this.resolvedScroll() === 'content' && 'h-full min-h-0 overflow-auto', this.resolvedScroll() === 'page' && 'overflow-visible', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
358
385
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: UiPageContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
359
386
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: UiPageContentComponent, isStandalone: true, selector: "ui-page-content", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-page-slot": "content" }, properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
360
387
|
}
|
|
@@ -371,8 +398,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
371
398
|
}]
|
|
372
399
|
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
373
400
|
class UiPageFooterComponent {
|
|
401
|
+
page = inject(UiPageStateService, { optional: true });
|
|
374
402
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
375
|
-
|
|
403
|
+
resolvedHeight = computed(() => this.page?.height() ?? UI_PAGE_DEFAULT_HEIGHT, ...(ngDevMode ? [{ debugName: "resolvedHeight" }] : /* istanbul ignore next */ []));
|
|
404
|
+
classes = computed(() => cn('block shrink-0 border-t border-border bg-background', this.class(), this.resolvedHeight() === 'fix' && 'h-12 overflow-hidden'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
376
405
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: UiPageFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
377
406
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: UiPageFooterComponent, isStandalone: true, selector: "ui-page-footer", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-page-slot": "footer" }, properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
378
407
|
}
|
|
@@ -393,5 +422,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
393
422
|
* Generated bundle index. Do not edit.
|
|
394
423
|
*/
|
|
395
424
|
|
|
396
|
-
export { UI_PAGE_DEFAULT_SIDE_MODE, UI_PAGE_DEFAULT_SIDE_POSITION, UI_PAGE_DEFAULT_SIDE_WIDTH, UI_PAGE_DEFAULT_VARIANT, UI_PAGE_SIDE_MODES, UI_PAGE_SIDE_POSITIONS, UI_PAGE_VARIANTS, UiPageComponent, UiPageContentComponent, UiPageFooterComponent, UiPageHeaderComponent, UiPageSideComponent, UiPageSideToggleComponent, isUiPageSideMode, isUiPageSidePosition, isUiPageVariant };
|
|
425
|
+
export { UI_PAGE_DEFAULT_HEIGHT, UI_PAGE_DEFAULT_SCROLL, UI_PAGE_DEFAULT_SIDE_MODE, UI_PAGE_DEFAULT_SIDE_POSITION, UI_PAGE_DEFAULT_SIDE_WIDTH, UI_PAGE_DEFAULT_VARIANT, UI_PAGE_HEIGHT_VALUES, UI_PAGE_SCROLL_VALUES, UI_PAGE_SIDE_MODES, UI_PAGE_SIDE_POSITIONS, UI_PAGE_VARIANTS, UiPageComponent, UiPageContentComponent, UiPageFooterComponent, UiPageHeaderComponent, UiPageSideComponent, UiPageSideToggleComponent, isUiPageHeight, isUiPageScroll, isUiPageSideMode, isUiPageSidePosition, isUiPageVariant };
|
|
397
426
|
//# sourceMappingURL=edsis-ui-page.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edsis-ui-page.mjs","sources":["../../../library/ui/page/page.types.ts","../../../library/ui/page/page-state.service.ts","../../../library/ui/page/page-side.component.ts","../../../library/ui/page/page.component.ts","../../../library/ui/page/page-side-toggle.component.ts","../../../library/ui/page/page-slots.component.ts","../../../library/ui/page/edsis-ui-page.ts"],"sourcesContent":["export const UI_PAGE_VARIANTS = ['stacked', 'side'] as const;\nexport const UI_PAGE_SIDE_POSITIONS = ['left', 'right'] as const;\nexport const UI_PAGE_SIDE_MODES = ['sticky', 'drawer', 'overlay'] as const;\n\nexport type UiPageVariant = (typeof UI_PAGE_VARIANTS)[number];\nexport type UiPageSidePosition = (typeof UI_PAGE_SIDE_POSITIONS)[number];\nexport type UiPageSideMode = (typeof UI_PAGE_SIDE_MODES)[number];\n\nexport const UI_PAGE_DEFAULT_VARIANT: UiPageVariant = 'stacked';\nexport const UI_PAGE_DEFAULT_SIDE_POSITION: UiPageSidePosition = 'left';\nexport const UI_PAGE_DEFAULT_SIDE_MODE: UiPageSideMode = 'sticky';\nexport const UI_PAGE_DEFAULT_SIDE_WIDTH = '16rem';\n\nexport function isUiPageVariant(value: string | null): value is UiPageVariant {\n return value !== null && (UI_PAGE_VARIANTS as readonly string[]).includes(value);\n}\n\nexport function isUiPageSidePosition(value: string | null): value is UiPageSidePosition {\n return value !== null && (UI_PAGE_SIDE_POSITIONS as readonly string[]).includes(value);\n}\n\nexport function isUiPageSideMode(value: string | null): value is UiPageSideMode {\n return value !== null && (UI_PAGE_SIDE_MODES as readonly string[]).includes(value);\n}\n","import { Injectable, computed, signal } from '@angular/core';\nimport {\n UI_PAGE_DEFAULT_SIDE_MODE,\n UI_PAGE_DEFAULT_SIDE_POSITION,\n UI_PAGE_DEFAULT_SIDE_WIDTH,\n UI_PAGE_DEFAULT_VARIANT,\n type UiPageSideMode,\n type UiPageSidePosition,\n type UiPageVariant,\n} from './page.types';\n\n@Injectable()\nexport class UiPageStateService {\n private readonly variantState = signal<UiPageVariant>(UI_PAGE_DEFAULT_VARIANT);\n private readonly positionState = signal<UiPageSidePosition>(UI_PAGE_DEFAULT_SIDE_POSITION);\n private readonly sideModeState = signal<UiPageSideMode>(UI_PAGE_DEFAULT_SIDE_MODE);\n private readonly internalSideOpenState = signal(false);\n private readonly controlledSideOpenState = signal<boolean | null>(null);\n private readonly sideWidthState = signal(UI_PAGE_DEFAULT_SIDE_WIDTH);\n private readonly sideIdState = signal<string | null>(null);\n private readonly sideOpenRequestState = signal<boolean | null>(null);\n private readonly sideOpenRequestVersionState = signal(0);\n\n readonly variant = this.variantState.asReadonly();\n readonly position = this.positionState.asReadonly();\n readonly sideMode = this.sideModeState.asReadonly();\n readonly sideWidth = this.sideWidthState.asReadonly();\n readonly sideId = this.sideIdState.asReadonly();\n readonly sideOpenRequest = this.sideOpenRequestState.asReadonly();\n readonly sideOpenRequestVersion = this.sideOpenRequestVersionState.asReadonly();\n readonly sideOpen = computed(() => this.controlledSideOpenState() ?? this.internalSideOpenState());\n readonly isSideInteractive = computed(() => this.sideMode() === 'drawer' || this.sideMode() === 'overlay');\n readonly isSideVisible = computed(() => this.sideMode() === 'sticky' || this.sideOpen());\n\n registerRoot(config: {\n variant: UiPageVariant;\n position: UiPageSidePosition;\n sideMode: UiPageSideMode;\n sideWidth: string;\n }): void {\n this.variantState.set(config.variant);\n this.positionState.set(config.position);\n this.sideModeState.set(config.sideMode);\n this.sideWidthState.set(config.sideWidth);\n }\n\n registerSide(config: { mode: UiPageSideMode; position: UiPageSidePosition; width: string; id: string }): void {\n this.sideModeState.set(config.mode);\n this.positionState.set(config.position);\n this.sideWidthState.set(config.width);\n this.sideIdState.set(config.id);\n }\n\n setControlledSideOpen(open: boolean | null): void {\n this.controlledSideOpenState.set(open);\n\n if (open !== null) {\n this.internalSideOpenState.set(open);\n }\n }\n\n setSideOpen(open: boolean): void {\n this.internalSideOpenState.set(open);\n }\n\n openSide(): boolean {\n return this.requestSideOpenChange(true);\n }\n\n closeSide(): boolean {\n return this.requestSideOpenChange(false);\n }\n\n toggleSide(): boolean {\n return this.requestSideOpenChange(!this.sideOpen());\n }\n\n private requestSideOpenChange(open: boolean): boolean {\n if (this.controlledSideOpenState() === null) {\n this.internalSideOpenState.set(open);\n }\n\n this.sideOpenRequestState.set(open);\n this.sideOpenRequestVersionState.update((version) => version + 1);\n\n return open;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, untracked } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { UiPageStateService } from './page-state.service';\nimport { UI_PAGE_DEFAULT_SIDE_WIDTH, type UiPageSideMode, type UiPageSidePosition } from './page.types';\n\nlet nextPageSideId = 0;\n\n@Component({\n selector: 'ui-page-side',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.id]': 'resolvedId',\n '[attr.data-page-slot]': '\"side\"',\n '[attr.data-page-side-mode]': 'resolvedMode()',\n '[attr.data-page-side-open]': 'page.sideOpen()',\n '[attr.data-page-position]': 'resolvedPosition()',\n '[attr.aria-hidden]': 'ariaHidden()',\n '[style.--ui-page-side-width]': 'resolvedWidth()',\n },\n template: `<ng-content />`,\n})\nexport class UiPageSideComponent {\n private readonly document = inject(DOCUMENT, { optional: true });\n protected readonly page = inject(UiPageStateService);\n protected readonly resolvedId = `ui-page-side-${++nextPageSideId}`;\n\n readonly mode = input<UiPageSideMode>('sticky');\n readonly position = input<UiPageSidePosition | null>(null);\n readonly width = input<string | null>(null);\n readonly closeOnEsc = input(true);\n readonly class = input<string>('');\n\n protected readonly resolvedMode = computed(() => this.mode() ?? this.page.sideMode());\n protected readonly resolvedPosition = computed(() => this.position() ?? this.page.position());\n protected readonly resolvedWidth = computed(\n () => this.width() ?? this.page.sideWidth() ?? UI_PAGE_DEFAULT_SIDE_WIDTH,\n );\n protected readonly isSticky = computed(() => this.resolvedMode() === 'sticky');\n protected readonly isDrawer = computed(() => this.resolvedMode() === 'drawer');\n protected readonly isOverlay = computed(() => this.resolvedMode() === 'overlay');\n protected readonly ariaHidden = computed(() => (!this.isSticky() && !this.page.sideOpen() ? 'true' : null));\n\n protected readonly classes = computed(() => {\n const position = this.resolvedPosition();\n const sideOpen = this.page.sideOpen();\n\n return cn(\n 'block h-full min-h-0 overflow-auto border-border bg-background',\n this.isSticky() && 'shrink-0 w-[var(--ui-page-side-width)]',\n this.isSticky() && position === 'left' && 'order-1 border-r',\n this.isSticky() && position === 'right' && 'order-2 border-l',\n this.isDrawer() &&\n 'absolute inset-y-0 z-20 w-[var(--ui-page-side-width)] border shadow-sm transition-transform duration-200 ease-out',\n this.isDrawer() && position === 'left' && (sideOpen ? 'left-0 translate-x-0' : 'left-0 -translate-x-full'),\n this.isDrawer() && position === 'right' && (sideOpen ? 'right-0 translate-x-0' : 'right-0 translate-x-full'),\n this.isOverlay() &&\n 'absolute inset-y-0 z-30 w-[var(--ui-page-side-width)] border shadow-md transition-transform duration-200 ease-out',\n this.isOverlay() && position === 'left' && (sideOpen ? 'left-0 translate-x-0' : 'left-0 -translate-x-full'),\n this.isOverlay() && position === 'right' && (sideOpen ? 'right-0 translate-x-0' : 'right-0 translate-x-full'),\n this.class(),\n );\n });\n\n constructor() {\n effect(() => {\n this.page.registerSide({\n mode: this.resolvedMode(),\n position: this.resolvedPosition(),\n width: this.resolvedWidth(),\n id: this.resolvedId,\n });\n });\n\n effect((onCleanup) => {\n if (!this.closeOnEsc() || this.isSticky()) {\n return;\n }\n\n const defaultView = this.document?.defaultView;\n if (!defaultView) {\n return;\n }\n\n const handler = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') {\n return;\n }\n\n if (!untracked(() => this.page.sideOpen())) {\n return;\n }\n\n untracked(() => {\n this.page.closeSide();\n });\n };\n\n defaultView.addEventListener('keydown', handler);\n onCleanup(() => defaultView.removeEventListener('keydown', handler));\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { UiPageSideComponent } from './page-side.component';\nimport { UiPageStateService } from './page-state.service';\nimport {\n UI_PAGE_DEFAULT_SIDE_MODE,\n UI_PAGE_DEFAULT_SIDE_POSITION,\n UI_PAGE_DEFAULT_SIDE_WIDTH,\n UI_PAGE_DEFAULT_VARIANT,\n type UiPageSideMode,\n type UiPageSidePosition,\n type UiPageVariant,\n} from './page.types';\n\n@Component({\n selector: 'ui-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [UiPageStateService],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-page-variant]': 'variant()',\n '[attr.data-page-position]': 'resolvedPosition()',\n '[attr.data-page-side-mode]': 'resolvedSideMode()',\n '[attr.data-page-side-open]': 'page.sideOpen()',\n '[style.--ui-page-side-width]': 'sideWidth()',\n },\n template: `\n @if (showsOverlayBackdrop()) {\n <button\n type=\"button\"\n aria-label=\"Close page side\"\n data-page-overlay-backdrop\n class=\"absolute inset-0 z-20 bg-black/50\"\n (click)=\"handleBackdropClick()\"></button>\n }\n\n <div [class]=\"shellClasses()\">\n <ng-content select=\"ui-page-header\" />\n <ng-content select=\"ui-page-side-toggle\" />\n\n <div [class]=\"bodyClasses()\">\n @if (variant() === 'side') {\n <ng-content select=\"ui-page-side\" />\n }\n\n <ng-content select=\"ui-page-content\" />\n </div>\n\n <ng-content select=\"ui-page-footer\" />\n </div>\n `,\n})\nexport class UiPageComponent {\n protected readonly page = inject(UiPageStateService);\n protected readonly projectedSide = contentChild(UiPageSideComponent);\n\n readonly variant = input<UiPageVariant>(UI_PAGE_DEFAULT_VARIANT);\n readonly position = input<UiPageSidePosition>(UI_PAGE_DEFAULT_SIDE_POSITION);\n readonly sideMode = input<UiPageSideMode>(UI_PAGE_DEFAULT_SIDE_MODE);\n readonly sideOpen = input<boolean | null>(null);\n readonly sideWidth = input<string>(UI_PAGE_DEFAULT_SIDE_WIDTH);\n readonly class = input<string>('');\n readonly sideOpenChange = output<boolean>();\n\n protected readonly resolvedPosition = computed(() => this.projectedSide()?.position() ?? this.position());\n protected readonly resolvedSideMode = computed(() => this.projectedSide()?.mode() ?? this.sideMode());\n protected readonly isLeftSide = computed(() => this.resolvedPosition() === 'left');\n protected readonly isRightSide = computed(() => this.resolvedPosition() === 'right');\n protected readonly showsOverlayBackdrop = computed(\n () => this.variant() === 'side' && this.resolvedSideMode() === 'overlay' && this.page.sideOpen(),\n );\n\n protected readonly hostClasses = computed(() =>\n cn('relative block h-full min-h-0 w-full min-w-0 overflow-hidden text-foreground', this.class()),\n );\n protected readonly shellClasses = computed(() =>\n cn(\n 'relative z-10 h-full min-h-0 w-full min-w-0',\n this.variant() === 'stacked' && 'grid grid-rows-[auto_minmax(0,1fr)_auto]',\n this.variant() === 'side' && 'grid grid-rows-[auto_minmax(0,1fr)_auto]',\n ),\n );\n protected readonly bodyClasses = computed(() => {\n if (this.variant() !== 'side') {\n return 'relative min-h-0 min-w-0';\n }\n\n const sideMode = this.resolvedSideMode();\n const position = this.resolvedPosition();\n\n if (sideMode === 'sticky') {\n return cn(\n 'grid min-h-0 min-w-0',\n position === 'left'\n ? 'grid-cols-[var(--ui-page-side-width)_minmax(0,1fr)]'\n : 'grid-cols-[minmax(0,1fr)_var(--ui-page-side-width)]',\n );\n }\n\n return 'relative min-h-0 min-w-0';\n });\n\n constructor() {\n effect(() => {\n this.page.registerRoot({\n variant: this.variant(),\n position: this.position(),\n sideMode: this.sideMode(),\n sideWidth: this.sideWidth(),\n });\n });\n\n effect(() => {\n this.page.setControlledSideOpen(this.sideOpen());\n });\n\n effect(() => {\n const requestVersion = this.page.sideOpenRequestVersion();\n if (requestVersion === 0) {\n return;\n }\n\n this.sideOpenChange.emit(this.page.sideOpenRequest() ?? false);\n });\n }\n\n protected handleBackdropClick(): void {\n this.page.closeSide();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { UiPageStateService } from './page-state.service';\n\n@Component({\n selector: 'ui-page-side-toggle',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'hostClasses()',\n },\n template: `\n <button\n type=\"button\"\n [class]=\"buttonClasses()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-controls]=\"page.sideId()\"\n [attr.aria-expanded]=\"page.sideOpen()\"\n (click)=\"handleClick()\">\n <ng-content>\n <span aria-hidden=\"true\" class=\"text-lg leading-none\">☰</span>\n </ng-content>\n </button>\n `,\n})\nexport class UiPageSideToggleComponent {\n protected readonly page = inject(UiPageStateService);\n\n readonly ariaLabel = input<string>('Toggle page side');\n readonly class = input<string>('');\n readonly toggled = output<boolean>();\n\n protected readonly hostClasses = computed(() => cn('inline-flex shrink-0', this.class()));\n protected readonly buttonClasses = computed(() =>\n cn(\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md border border-border bg-background px-3 text-sm text-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n ),\n );\n\n protected handleClick(): void {\n this.toggled.emit(this.page.toggleSide());\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\n\n@Component({\n selector: 'ui-page-header',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n 'data-page-slot': 'header',\n },\n template: `<ng-content />`,\n})\nexport class UiPageHeaderComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('block shrink-0 border-b border-border bg-background', this.class()));\n}\n\n@Component({\n selector: 'ui-page-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n 'data-page-slot': 'content',\n },\n template: `<ng-content />`,\n})\nexport class UiPageContentComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('block h-full min-h-0 min-w-0 overflow-auto', this.class()));\n}\n\n@Component({\n selector: 'ui-page-footer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n 'data-page-slot': 'footer',\n },\n template: `<ng-content />`,\n})\nexport class UiPageFooterComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('block shrink-0 border-t border-border bg-background', this.class()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"edsis-ui-page.mjs","sources":["../../../library/ui/page/page.types.ts","../../../library/ui/page/page-state.service.ts","../../../library/ui/page/page-side.component.ts","../../../library/ui/page/page.component.ts","../../../library/ui/page/page-side-toggle.component.ts","../../../library/ui/page/page-slots.component.ts","../../../library/ui/page/edsis-ui-page.ts"],"sourcesContent":["export const UI_PAGE_VARIANTS = ['stacked', 'side'] as const;\nexport const UI_PAGE_SIDE_POSITIONS = ['left', 'right'] as const;\nexport const UI_PAGE_SIDE_MODES = ['sticky', 'drawer', 'overlay'] as const;\nexport const UI_PAGE_SCROLL_VALUES = ['content', 'page'] as const;\nexport const UI_PAGE_HEIGHT_VALUES = ['auto', 'fix'] as const;\n\nexport type UiPageVariant = (typeof UI_PAGE_VARIANTS)[number];\nexport type UiPageSidePosition = (typeof UI_PAGE_SIDE_POSITIONS)[number];\nexport type UiPageSideMode = (typeof UI_PAGE_SIDE_MODES)[number];\nexport type UiPageScroll = (typeof UI_PAGE_SCROLL_VALUES)[number];\nexport type UiPageHeight = (typeof UI_PAGE_HEIGHT_VALUES)[number];\n\nexport const UI_PAGE_DEFAULT_VARIANT: UiPageVariant = 'stacked';\nexport const UI_PAGE_DEFAULT_SIDE_POSITION: UiPageSidePosition = 'left';\nexport const UI_PAGE_DEFAULT_SIDE_MODE: UiPageSideMode = 'sticky';\nexport const UI_PAGE_DEFAULT_SCROLL: UiPageScroll = 'content';\nexport const UI_PAGE_DEFAULT_HEIGHT: UiPageHeight = 'auto';\nexport const UI_PAGE_DEFAULT_SIDE_WIDTH = '16rem';\n\nexport function isUiPageVariant(value: string | null): value is UiPageVariant {\n return value !== null && (UI_PAGE_VARIANTS as readonly string[]).includes(value);\n}\n\nexport function isUiPageSidePosition(value: string | null): value is UiPageSidePosition {\n return value !== null && (UI_PAGE_SIDE_POSITIONS as readonly string[]).includes(value);\n}\n\nexport function isUiPageSideMode(value: string | null): value is UiPageSideMode {\n return value !== null && (UI_PAGE_SIDE_MODES as readonly string[]).includes(value);\n}\n\nexport function isUiPageScroll(value: string | null): value is UiPageScroll {\n return value !== null && (UI_PAGE_SCROLL_VALUES as readonly string[]).includes(value);\n}\n\nexport function isUiPageHeight(value: string | null): value is UiPageHeight {\n return value !== null && (UI_PAGE_HEIGHT_VALUES as readonly string[]).includes(value);\n}\n","import { Injectable, computed, signal } from '@angular/core';\nimport {\n UI_PAGE_DEFAULT_HEIGHT,\n UI_PAGE_DEFAULT_SCROLL,\n UI_PAGE_DEFAULT_SIDE_MODE,\n UI_PAGE_DEFAULT_SIDE_POSITION,\n UI_PAGE_DEFAULT_SIDE_WIDTH,\n UI_PAGE_DEFAULT_VARIANT,\n type UiPageHeight,\n type UiPageScroll,\n type UiPageSideMode,\n type UiPageSidePosition,\n type UiPageVariant,\n} from './page.types';\n\n@Injectable()\nexport class UiPageStateService {\n private readonly variantState = signal<UiPageVariant>(UI_PAGE_DEFAULT_VARIANT);\n private readonly heightState = signal<UiPageHeight>(UI_PAGE_DEFAULT_HEIGHT);\n private readonly scrollState = signal<UiPageScroll>(UI_PAGE_DEFAULT_SCROLL);\n private readonly positionState = signal<UiPageSidePosition>(UI_PAGE_DEFAULT_SIDE_POSITION);\n private readonly sideModeState = signal<UiPageSideMode>(UI_PAGE_DEFAULT_SIDE_MODE);\n private readonly internalSideOpenState = signal(false);\n private readonly controlledSideOpenState = signal<boolean | null>(null);\n private readonly sideWidthState = signal(UI_PAGE_DEFAULT_SIDE_WIDTH);\n private readonly sideIdState = signal<string | null>(null);\n private readonly sideOpenRequestState = signal<boolean | null>(null);\n private readonly sideOpenRequestVersionState = signal(0);\n\n readonly variant = this.variantState.asReadonly();\n readonly height = this.heightState.asReadonly();\n readonly scroll = this.scrollState.asReadonly();\n readonly position = this.positionState.asReadonly();\n readonly sideMode = this.sideModeState.asReadonly();\n readonly sideWidth = this.sideWidthState.asReadonly();\n readonly sideId = this.sideIdState.asReadonly();\n readonly sideOpenRequest = this.sideOpenRequestState.asReadonly();\n readonly sideOpenRequestVersion = this.sideOpenRequestVersionState.asReadonly();\n readonly sideOpen = computed(() => this.controlledSideOpenState() ?? this.internalSideOpenState());\n readonly isSideInteractive = computed(() => this.sideMode() === 'drawer' || this.sideMode() === 'overlay');\n readonly isSideVisible = computed(() => this.sideMode() === 'sticky' || this.sideOpen());\n\n registerRoot(config: {\n variant: UiPageVariant;\n height: UiPageHeight;\n scroll: UiPageScroll;\n position: UiPageSidePosition;\n sideMode: UiPageSideMode;\n sideWidth: string;\n }): void {\n this.variantState.set(config.variant);\n this.heightState.set(config.height);\n this.scrollState.set(config.scroll);\n this.positionState.set(config.position);\n this.sideModeState.set(config.sideMode);\n this.sideWidthState.set(config.sideWidth);\n }\n\n registerSide(config: { mode: UiPageSideMode; position: UiPageSidePosition; width: string; id: string }): void {\n this.sideModeState.set(config.mode);\n this.positionState.set(config.position);\n this.sideWidthState.set(config.width);\n this.sideIdState.set(config.id);\n }\n\n setControlledSideOpen(open: boolean | null): void {\n this.controlledSideOpenState.set(open);\n\n if (open !== null) {\n this.internalSideOpenState.set(open);\n }\n }\n\n setSideOpen(open: boolean): void {\n this.internalSideOpenState.set(open);\n }\n\n openSide(): boolean {\n return this.requestSideOpenChange(true);\n }\n\n closeSide(): boolean {\n return this.requestSideOpenChange(false);\n }\n\n toggleSide(): boolean {\n return this.requestSideOpenChange(!this.sideOpen());\n }\n\n private requestSideOpenChange(open: boolean): boolean {\n if (this.controlledSideOpenState() === null) {\n this.internalSideOpenState.set(open);\n }\n\n this.sideOpenRequestState.set(open);\n this.sideOpenRequestVersionState.update((version) => version + 1);\n\n return open;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, untracked } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { UiPageStateService } from './page-state.service';\nimport {\n UI_PAGE_DEFAULT_SCROLL,\n UI_PAGE_DEFAULT_SIDE_WIDTH,\n type UiPageSideMode,\n type UiPageSidePosition,\n} from './page.types';\n\nlet nextPageSideId = 0;\n\n@Component({\n selector: 'ui-page-side',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.id]': 'resolvedId',\n '[attr.data-page-slot]': '\"side\"',\n '[attr.data-page-side-mode]': 'resolvedMode()',\n '[attr.data-page-side-open]': 'page.sideOpen()',\n '[attr.data-page-position]': 'resolvedPosition()',\n '[attr.aria-hidden]': 'ariaHidden()',\n '[style.--ui-page-side-width]': 'resolvedWidth()',\n },\n template: `<ng-content />`,\n})\nexport class UiPageSideComponent {\n private readonly document = inject(DOCUMENT, { optional: true });\n protected readonly page = inject(UiPageStateService);\n protected readonly resolvedId = `ui-page-side-${++nextPageSideId}`;\n\n readonly mode = input<UiPageSideMode>('sticky');\n readonly position = input<UiPageSidePosition | null>(null);\n readonly width = input<string | null>(null);\n readonly closeOnEsc = input(true);\n readonly class = input<string>('');\n\n protected readonly resolvedMode = computed(() => this.mode() ?? this.page.sideMode());\n protected readonly resolvedPosition = computed(() => this.position() ?? this.page.position());\n protected readonly resolvedWidth = computed(\n () => this.width() ?? this.page.sideWidth() ?? UI_PAGE_DEFAULT_SIDE_WIDTH,\n );\n protected readonly isSticky = computed(() => this.resolvedMode() === 'sticky');\n protected readonly isDrawer = computed(() => this.resolvedMode() === 'drawer');\n protected readonly isOverlay = computed(() => this.resolvedMode() === 'overlay');\n protected readonly resolvedScroll = computed(() => this.page.scroll() ?? UI_PAGE_DEFAULT_SCROLL);\n protected readonly ariaHidden = computed(() => (!this.isSticky() && !this.page.sideOpen() ? 'true' : null));\n\n protected readonly classes = computed(() => {\n const position = this.resolvedPosition();\n const sideOpen = this.page.sideOpen();\n\n return cn(\n 'block min-h-0 border-border bg-background',\n this.resolvedScroll() === 'content' && 'h-full overflow-auto',\n this.resolvedScroll() === 'page' && 'overflow-visible',\n this.isSticky() && 'shrink-0 w-[var(--ui-page-side-width)]',\n this.isSticky() && position === 'left' && 'order-1 border-r',\n this.isSticky() && position === 'right' && 'order-2 border-l',\n this.isDrawer() &&\n 'absolute inset-y-0 z-20 w-[var(--ui-page-side-width)] border shadow-sm transition-transform duration-200 ease-out',\n this.isDrawer() && position === 'left' && (sideOpen ? 'left-0 translate-x-0' : 'left-0 -translate-x-full'),\n this.isDrawer() && position === 'right' && (sideOpen ? 'right-0 translate-x-0' : 'right-0 translate-x-full'),\n this.isOverlay() &&\n 'absolute inset-y-0 z-30 w-[var(--ui-page-side-width)] border shadow-md transition-transform duration-200 ease-out',\n this.isOverlay() && position === 'left' && (sideOpen ? 'left-0 translate-x-0' : 'left-0 -translate-x-full'),\n this.isOverlay() && position === 'right' && (sideOpen ? 'right-0 translate-x-0' : 'right-0 translate-x-full'),\n this.class(),\n );\n });\n\n constructor() {\n effect(() => {\n this.page.registerSide({\n mode: this.resolvedMode(),\n position: this.resolvedPosition(),\n width: this.resolvedWidth(),\n id: this.resolvedId,\n });\n });\n\n effect((onCleanup) => {\n if (!this.closeOnEsc() || this.isSticky()) {\n return;\n }\n\n const defaultView = this.document?.defaultView;\n if (!defaultView) {\n return;\n }\n\n const handler = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') {\n return;\n }\n\n if (!untracked(() => this.page.sideOpen())) {\n return;\n }\n\n untracked(() => {\n this.page.closeSide();\n });\n };\n\n defaultView.addEventListener('keydown', handler);\n onCleanup(() => defaultView.removeEventListener('keydown', handler));\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { UiPageSideComponent } from './page-side.component';\nimport { UiPageStateService } from './page-state.service';\nimport {\n UI_PAGE_DEFAULT_HEIGHT,\n UI_PAGE_DEFAULT_SCROLL,\n UI_PAGE_DEFAULT_SIDE_MODE,\n UI_PAGE_DEFAULT_SIDE_POSITION,\n UI_PAGE_DEFAULT_SIDE_WIDTH,\n UI_PAGE_DEFAULT_VARIANT,\n type UiPageHeight,\n type UiPageScroll,\n type UiPageSideMode,\n type UiPageSidePosition,\n type UiPageVariant,\n} from './page.types';\n\n@Component({\n selector: 'ui-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [UiPageStateService],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-page-variant]': 'variant()',\n '[attr.data-page-height]': 'height()',\n '[attr.data-page-scroll]': 'scroll()',\n '[attr.data-page-position]': 'resolvedPosition()',\n '[attr.data-page-side-mode]': 'resolvedSideMode()',\n '[attr.data-page-side-open]': 'page.sideOpen()',\n '[style.--ui-page-side-width]': 'sideWidth()',\n },\n template: `\n @if (showsOverlayBackdrop()) {\n <button\n type=\"button\"\n aria-label=\"Close page side\"\n data-page-overlay-backdrop\n class=\"absolute inset-0 z-20 bg-[hsl(var(--overlay-backdrop))]\"\n (click)=\"handleBackdropClick()\"></button>\n }\n\n <div [class]=\"shellClasses()\">\n <ng-content select=\"ui-page-header\" />\n <ng-content select=\"ui-page-side-toggle\" />\n\n <div [class]=\"bodyClasses()\">\n @if (variant() === 'side') {\n <ng-content select=\"ui-page-side\" />\n }\n\n <ng-content select=\"ui-page-content\" />\n </div>\n\n <ng-content select=\"ui-page-footer\" />\n </div>\n `,\n})\nexport class UiPageComponent {\n protected readonly page = inject(UiPageStateService);\n protected readonly projectedSide = contentChild(UiPageSideComponent);\n\n readonly variant = input<UiPageVariant>(UI_PAGE_DEFAULT_VARIANT);\n readonly height = input<UiPageHeight>(UI_PAGE_DEFAULT_HEIGHT);\n readonly scroll = input<UiPageScroll>(UI_PAGE_DEFAULT_SCROLL);\n readonly position = input<UiPageSidePosition>(UI_PAGE_DEFAULT_SIDE_POSITION);\n readonly sideMode = input<UiPageSideMode>(UI_PAGE_DEFAULT_SIDE_MODE);\n readonly sideOpen = input<boolean | null>(null);\n readonly sideWidth = input<string>(UI_PAGE_DEFAULT_SIDE_WIDTH);\n readonly class = input<string>('');\n readonly sideOpenChange = output<boolean>();\n\n protected readonly resolvedPosition = computed(() => this.projectedSide()?.position() ?? this.position());\n protected readonly resolvedSideMode = computed(() => this.projectedSide()?.mode() ?? this.sideMode());\n protected readonly isLeftSide = computed(() => this.resolvedPosition() === 'left');\n protected readonly isRightSide = computed(() => this.resolvedPosition() === 'right');\n protected readonly showsOverlayBackdrop = computed(\n () => this.variant() === 'side' && this.resolvedSideMode() === 'overlay' && this.page.sideOpen(),\n );\n\n protected readonly hostClasses = computed(() =>\n cn('relative block h-full min-h-0 w-full min-w-0 overflow-hidden text-foreground', this.class()),\n );\n protected readonly shellClasses = computed(() =>\n cn(\n 'relative z-10 h-full min-h-0 w-full min-w-0',\n this.scroll() === 'content' && 'grid grid-rows-[auto_minmax(0,1fr)_auto]',\n this.scroll() === 'page' && 'overflow-auto',\n ),\n );\n protected readonly bodyClasses = computed(() => {\n if (this.variant() !== 'side') {\n return cn('relative min-w-0', this.scroll() === 'content' && 'min-h-0');\n }\n\n const sideMode = this.resolvedSideMode();\n const position = this.resolvedPosition();\n\n if (sideMode === 'sticky') {\n return cn(\n 'grid min-w-0',\n this.scroll() === 'content' && 'min-h-0',\n position === 'left'\n ? 'grid-cols-[var(--ui-page-side-width)_minmax(0,1fr)]'\n : 'grid-cols-[minmax(0,1fr)_var(--ui-page-side-width)]',\n );\n }\n\n return cn('relative min-w-0', this.scroll() === 'content' && 'min-h-0');\n });\n\n constructor() {\n effect(() => {\n this.page.registerRoot({\n variant: this.variant(),\n height: this.height(),\n scroll: this.scroll(),\n position: this.position(),\n sideMode: this.sideMode(),\n sideWidth: this.sideWidth(),\n });\n });\n\n effect(() => {\n this.page.setControlledSideOpen(this.sideOpen());\n });\n\n effect(() => {\n const requestVersion = this.page.sideOpenRequestVersion();\n if (requestVersion === 0) {\n return;\n }\n\n this.sideOpenChange.emit(this.page.sideOpenRequest() ?? false);\n });\n }\n\n protected handleBackdropClick(): void {\n this.page.closeSide();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { UiPageStateService } from './page-state.service';\n\n@Component({\n selector: 'ui-page-side-toggle',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'hostClasses()',\n },\n template: `\n <button\n type=\"button\"\n [class]=\"buttonClasses()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-controls]=\"page.sideId()\"\n [attr.aria-expanded]=\"page.sideOpen()\"\n (click)=\"handleClick()\">\n <ng-content>\n <span aria-hidden=\"true\" class=\"text-lg leading-none\">☰</span>\n </ng-content>\n </button>\n `,\n})\nexport class UiPageSideToggleComponent {\n protected readonly page = inject(UiPageStateService);\n\n readonly ariaLabel = input<string>('Toggle page side');\n readonly class = input<string>('');\n readonly toggled = output<boolean>();\n\n protected readonly hostClasses = computed(() => cn('inline-flex shrink-0', this.class()));\n protected readonly buttonClasses = computed(() =>\n cn(\n 'inline-flex h-9 min-w-9 items-center justify-center rounded-md border border-border bg-background px-3 text-sm text-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n ),\n );\n\n protected handleClick(): void {\n this.toggled.emit(this.page.toggleSide());\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { cn } from '@edsis/ui/utils';\nimport { UiPageStateService } from './page-state.service';\nimport { UI_PAGE_DEFAULT_HEIGHT, UI_PAGE_DEFAULT_SCROLL } from './page.types';\n\n@Component({\n selector: 'ui-page-header',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n 'data-page-slot': 'header',\n },\n template: `<ng-content />`,\n})\nexport class UiPageHeaderComponent {\n private readonly page = inject(UiPageStateService, { optional: true });\n\n readonly class = input<string>('');\n\n protected readonly resolvedHeight = computed(() => this.page?.height() ?? UI_PAGE_DEFAULT_HEIGHT);\n\n protected readonly classes = computed(() =>\n cn(\n 'block shrink-0 border-b border-border bg-background',\n this.class(),\n this.resolvedHeight() === 'fix' && 'h-12 overflow-hidden',\n ),\n );\n}\n\n@Component({\n selector: 'ui-page-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n 'data-page-slot': 'content',\n },\n template: `<ng-content />`,\n})\nexport class UiPageContentComponent {\n private readonly page = inject(UiPageStateService, { optional: true });\n\n readonly class = input<string>('');\n\n protected readonly resolvedScroll = computed(() => this.page?.scroll() ?? UI_PAGE_DEFAULT_SCROLL);\n\n protected readonly classes = computed(() =>\n cn(\n 'block min-w-0',\n this.resolvedScroll() === 'content' && 'h-full min-h-0 overflow-auto',\n this.resolvedScroll() === 'page' && 'overflow-visible',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-page-footer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n 'data-page-slot': 'footer',\n },\n template: `<ng-content />`,\n})\nexport class UiPageFooterComponent {\n private readonly page = inject(UiPageStateService, { optional: true });\n\n readonly class = input<string>('');\n\n protected readonly resolvedHeight = computed(() => this.page?.height() ?? UI_PAGE_DEFAULT_HEIGHT);\n\n protected readonly classes = computed(() =>\n cn(\n 'block shrink-0 border-t border-border bg-background',\n this.class(),\n this.resolvedHeight() === 'fix' && 'h-12 overflow-hidden',\n ),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAAa,gBAAgB,GAAG,CAAC,SAAS,EAAE,MAAM;MACrC,sBAAsB,GAAG,CAAC,MAAM,EAAE,OAAO;AAC/C,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS;MACnD,qBAAqB,GAAG,CAAC,SAAS,EAAE,MAAM;MAC1C,qBAAqB,GAAG,CAAC,MAAM,EAAE,KAAK;AAQ5C,MAAM,uBAAuB,GAAkB;AAC/C,MAAM,6BAA6B,GAAuB;AAC1D,MAAM,yBAAyB,GAAmB;AAClD,MAAM,sBAAsB,GAAiB;AAC7C,MAAM,sBAAsB,GAAiB;AAC7C,MAAM,0BAA0B,GAAG;AAEpC,SAAU,eAAe,CAAC,KAAoB,EAAA;IAClD,OAAO,KAAK,KAAK,IAAI,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC;AAClF;AAEM,SAAU,oBAAoB,CAAC,KAAoB,EAAA;IACvD,OAAO,KAAK,KAAK,IAAI,IAAK,sBAA4C,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxF;AAEM,SAAU,gBAAgB,CAAC,KAAoB,EAAA;IACnD,OAAO,KAAK,KAAK,IAAI,IAAK,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpF;AAEM,SAAU,cAAc,CAAC,KAAoB,EAAA;IACjD,OAAO,KAAK,KAAK,IAAI,IAAK,qBAA2C,CAAC,QAAQ,CAAC,KAAK,CAAC;AACvF;AAEM,SAAU,cAAc,CAAC,KAAoB,EAAA;IACjD,OAAO,KAAK,KAAK,IAAI,IAAK,qBAA2C,CAAC,QAAQ,CAAC,KAAK,CAAC;AACvF;;MCrBa,kBAAkB,CAAA;AACZ,IAAA,YAAY,GAAG,MAAM,CAAgB,uBAAuB,mFAAC;AAC7D,IAAA,WAAW,GAAG,MAAM,CAAe,sBAAsB,kFAAC;AAC1D,IAAA,WAAW,GAAG,MAAM,CAAe,sBAAsB,kFAAC;AAC1D,IAAA,aAAa,GAAG,MAAM,CAAqB,6BAA6B,oFAAC;AACzE,IAAA,aAAa,GAAG,MAAM,CAAiB,yBAAyB,oFAAC;AACjE,IAAA,qBAAqB,GAAG,MAAM,CAAC,KAAK,4FAAC;AACrC,IAAA,uBAAuB,GAAG,MAAM,CAAiB,IAAI,8FAAC;AACtD,IAAA,cAAc,GAAG,MAAM,CAAC,0BAA0B,qFAAC;AACnD,IAAA,WAAW,GAAG,MAAM,CAAgB,IAAI,kFAAC;AACzC,IAAA,oBAAoB,GAAG,MAAM,CAAiB,IAAI,2FAAC;AACnD,IAAA,2BAA2B,GAAG,MAAM,CAAC,CAAC,kGAAC;AAE/C,IAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AACxC,IAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AACtC,IAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AACtC,IAAA,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;AAC1C,IAAA,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;AAC1C,IAAA,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AAC5C,IAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AACtC,IAAA,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE;AACxD,IAAA,sBAAsB,GAAG,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE;AACtE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE,+EAAC;IACzF,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,wFAAC;AACjG,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,oFAAC;AAExF,IAAA,YAAY,CAAC,MAOZ,EAAA;QACC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;IAC3C;AAEA,IAAA,YAAY,CAAC,MAAyF,EAAA;QACpG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACjC;AAEA,IAAA,qBAAqB,CAAC,IAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;AAEtC,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;QACtC;IACF;AAEA,IAAA,WAAW,CAAC,IAAa,EAAA;AACvB,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;IACtC;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;IACzC;IAEA,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;IAC1C;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACrD;AAEQ,IAAA,qBAAqB,CAAC,IAAa,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;AAC3C,YAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;QACtC;AAEA,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC;AAEjE,QAAA,OAAO,IAAI;IACb;wGAlFW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAlB,kBAAkB,EAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACJD,IAAI,cAAc,GAAG,CAAC;MAiBT,mBAAmB,CAAA;IACb,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7C,IAAA,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjC,IAAA,UAAU,GAAG,CAAA,aAAA,EAAgB,EAAE,cAAc,EAAE;AAEzD,IAAA,IAAI,GAAG,KAAK,CAAiB,QAAQ,2EAAC;AACtC,IAAA,QAAQ,GAAG,KAAK,CAA4B,IAAI,+EAAC;AACjD,IAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,4EAAC;AAClC,IAAA,UAAU,GAAG,KAAK,CAAC,IAAI,iFAAC;AACxB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mFAAC;AAClE,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,uFAAC;IAC1E,aAAa,GAAG,QAAQ,CACzC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,0BAA0B,oFAC1E;AACkB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,QAAQ,+EAAC;AAC3D,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,QAAQ,+EAAC;AAC3D,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,SAAS,gFAAC;AAC7D,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,sBAAsB,qFAAC;AAC7E,IAAA,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,iFAAC;AAExF,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACzC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAErC,OAAO,EAAE,CACP,2CAA2C,EAC3C,IAAI,CAAC,cAAc,EAAE,KAAK,SAAS,IAAI,sBAAsB,EAC7D,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,IAAI,kBAAkB,EACtD,IAAI,CAAC,QAAQ,EAAE,IAAI,wCAAwC,EAC3D,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,KAAK,MAAM,IAAI,kBAAkB,EAC5D,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,KAAK,OAAO,IAAI,kBAAkB,EAC7D,IAAI,CAAC,QAAQ,EAAE;YACb,mHAAmH,EACrH,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,KAAK,MAAM,KAAK,QAAQ,GAAG,sBAAsB,GAAG,0BAA0B,CAAC,EAC1G,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,KAAK,OAAO,KAAK,QAAQ,GAAG,uBAAuB,GAAG,0BAA0B,CAAC,EAC5G,IAAI,CAAC,SAAS,EAAE;YACd,mHAAmH,EACrH,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ,KAAK,MAAM,KAAK,QAAQ,GAAG,sBAAsB,GAAG,0BAA0B,CAAC,EAC3G,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ,KAAK,OAAO,KAAK,QAAQ,GAAG,uBAAuB,GAAG,0BAA0B,CAAC,EAC7G,IAAI,CAAC,KAAK,EAAE,CACb;AACH,IAAA,CAAC,8EAAC;AAEF,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACrB,gBAAA,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;AACzB,gBAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACjC,gBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC3B,EAAE,EAAE,IAAI,CAAC,UAAU;AACpB,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;YACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBACzC;YACF;AAEA,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW;YAC9C,IAAI,CAAC,WAAW,EAAE;gBAChB;YACF;AAEA,YAAA,MAAM,OAAO,GAAG,CAAC,KAAoB,KAAI;AACvC,gBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;oBAC1B;gBACF;AAEA,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;oBAC1C;gBACF;gBAEA,SAAS,CAAC,MAAK;AACb,oBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvB,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC;AAED,YAAA,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC;AAChD,YAAA,SAAS,CAAC,MAAM,WAAW,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACtE,QAAA,CAAC,CAAC;IACJ;wGAlFW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,ghCAFpB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;oBACxB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,WAAW,EAAE,YAAY;AACzB,wBAAA,uBAAuB,EAAE,QAAQ;AACjC,wBAAA,4BAA4B,EAAE,gBAAgB;AAC9C,wBAAA,4BAA4B,EAAE,iBAAiB;AAC/C,wBAAA,2BAA2B,EAAE,oBAAoB;AACjD,wBAAA,oBAAoB,EAAE,cAAc;AACpC,wBAAA,8BAA8B,EAAE,iBAAiB;AAClD,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;MCwCY,eAAe,CAAA;AACP,IAAA,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjC,IAAA,aAAa,GAAG,YAAY,CAAC,mBAAmB,oFAAC;AAE3D,IAAA,OAAO,GAAG,KAAK,CAAgB,uBAAuB,8EAAC;AACvD,IAAA,MAAM,GAAG,KAAK,CAAe,sBAAsB,6EAAC;AACpD,IAAA,MAAM,GAAG,KAAK,CAAe,sBAAsB,6EAAC;AACpD,IAAA,QAAQ,GAAG,KAAK,CAAqB,6BAA6B,+EAAC;AACnE,IAAA,QAAQ,GAAG,KAAK,CAAiB,yBAAyB,+EAAC;AAC3D,IAAA,QAAQ,GAAG,KAAK,CAAiB,IAAI,+EAAC;AACtC,IAAA,SAAS,GAAG,KAAK,CAAS,0BAA0B,gFAAC;AACrD,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IACzB,cAAc,GAAG,MAAM,EAAW;AAExB,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,uFAAC;AACtF,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,uFAAC;AAClF,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,KAAK,MAAM,iFAAC;AAC/D,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,KAAK,OAAO,kFAAC;IACjE,oBAAoB,GAAG,QAAQ,CAChD,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACjG;AAEkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MACxC,EAAE,CAAC,8EAA8E,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,kFACjG;AACkB,IAAA,YAAY,GAAG,QAAQ,CAAC,MACzC,EAAE,CACA,6CAA6C,EAC7C,IAAI,CAAC,MAAM,EAAE,KAAK,SAAS,IAAI,0CAA0C,EACzE,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,IAAI,eAAe,CAC5C,mFACF;AACkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE;AAC7B,YAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,SAAS,IAAI,SAAS,CAAC;QACzE;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAExC,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACzB,YAAA,OAAO,EAAE,CACP,cAAc,EACd,IAAI,CAAC,MAAM,EAAE,KAAK,SAAS,IAAI,SAAS,EACxC,QAAQ,KAAK;AACX,kBAAE;kBACA,qDAAqD,CAC1D;QACH;AAEA,QAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,SAAS,IAAI,SAAS,CAAC;AACzE,IAAA,CAAC,kFAAC;AAEF,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC5B,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClD,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACzD,YAAA,IAAI,cAAc,KAAK,CAAC,EAAE;gBACxB;YACF;AAEA,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC;AAChE,QAAA,CAAC,CAAC;IACJ;IAEU,mBAAmB,GAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACvB;wGAjFW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,w8CArCf,CAAC,kBAAkB,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAuCiB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA5BzD;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAxC3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;oBACnB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,SAAS,EAAE,CAAC,kBAAkB,CAAC;AAC/B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,0BAA0B,EAAE,WAAW;AACvC,wBAAA,yBAAyB,EAAE,UAAU;AACrC,wBAAA,yBAAyB,EAAE,UAAU;AACrC,wBAAA,2BAA2B,EAAE,oBAAoB;AACjD,wBAAA,4BAA4B,EAAE,oBAAoB;AAClD,wBAAA,4BAA4B,EAAE,iBAAiB;AAC/C,wBAAA,8BAA8B,EAAE,aAAa;AAC9C,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA;AACF,iBAAA;4HAGiD,mBAAmB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MC7CxD,yBAAyB,CAAA;AACjB,IAAA,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAE3C,IAAA,SAAS,GAAG,KAAK,CAAS,kBAAkB,gFAAC;AAC7C,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IACzB,OAAO,GAAG,MAAM,EAAW;AAEjB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,sBAAsB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,kFAAC;IACtE,aAAa,GAAG,QAAQ,CAAC,MAC1C,EAAE,CACA,mSAAmS,CACpS,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACF;IAES,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3C;wGAhBW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAd1B;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBApBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;oBAC/B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;AACF,iBAAA;;;MCTY,qBAAqB,CAAA;IACf,IAAI,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE7D,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,sBAAsB,qFAAC;IAE9E,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA,qDAAqD,EACrD,IAAI,CAAC,KAAK,EAAE,EACZ,IAAI,CAAC,cAAc,EAAE,KAAK,KAAK,IAAI,sBAAsB,CAC1D,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACF;wGAbU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,0SAFtB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,gBAAgB,EAAE,QAAQ;AAC3B,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MA0BY,sBAAsB,CAAA;IAChB,IAAI,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE7D,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,sBAAsB,qFAAC;AAE9E,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA,eAAe,EACf,IAAI,CAAC,cAAc,EAAE,KAAK,SAAS,IAAI,8BAA8B,EACrE,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,IAAI,kBAAkB,EACtD,IAAI,CAAC,KAAK,EAAE,CACb,8EACF;wGAdU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,4SAFvB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,gBAAgB,EAAE,SAAS;AAC5B,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MA2BY,qBAAqB,CAAA;IACf,IAAI,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE7D,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,sBAAsB,qFAAC;IAE9E,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA,qDAAqD,EACrD,IAAI,CAAC,KAAK,EAAE,EACZ,IAAI,CAAC,cAAc,EAAE,KAAK,KAAK,IAAI,sBAAsB,CAC1D,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACF;wGAbU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,0SAFtB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,gBAAgB,EAAE,QAAQ;AAC3B,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;AChED;;AAEG;;;;"}
|
|
@@ -13,7 +13,7 @@ const pillboxTriggerSizeClasses = {
|
|
|
13
13
|
};
|
|
14
14
|
const pillboxPillSizeClasses = {
|
|
15
15
|
default: 'min-h-6 px-2 text-xs',
|
|
16
|
-
sm: 'min-h-5 px-1.5 text-
|
|
16
|
+
sm: 'min-h-5 px-1.5 text-2xs-plus',
|
|
17
17
|
};
|
|
18
18
|
class PillboxSelectedDirective {
|
|
19
19
|
template = inject(TemplateRef);
|