@semantic-components/ui 0.12.0 → 0.13.0
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/semantic-components-ui.mjs +1885 -778
- package/fesm2022/semantic-components-ui.mjs.map +1 -1
- package/index.d.ts +8 -1
- package/lib/components/autocomplete/autocomplete-item.d.ts +2 -2
- package/lib/components/button/button.d.ts +6 -5
- package/lib/components/checkbox/checkbox.d.ts +1 -1
- package/lib/components/cookie-consent/cookie-consent.d.ts +10 -0
- package/lib/components/cookie-consent/index.d.ts +1 -0
- package/lib/components/editor/actions/editor-redo.d.ts +12 -0
- package/lib/components/editor/actions/editor-text-align-center.d.ts +12 -0
- package/lib/components/editor/actions/editor-text-align-left.d.ts +12 -0
- package/lib/components/editor/actions/editor-text-align-right.d.ts +12 -0
- package/lib/components/editor/actions/editor-undo.d.ts +12 -0
- package/lib/components/editor/actions/editor-unset-link.d.ts +14 -0
- package/lib/components/editor/editor-group.d.ts +7 -0
- package/lib/components/editor/editor-toolbar.d.ts +7 -0
- package/lib/components/editor/extensions/extension-link.d.ts +0 -1
- package/lib/components/editor/extensions/extensions.d.ts +10 -3
- package/lib/components/file-upload/drop-zone.d.ts +11 -0
- package/lib/components/file-upload/file-card.d.ts +12 -0
- package/lib/components/file-upload/file-preview.d.ts +7 -0
- package/lib/components/file-upload/file-upload.d.ts +9 -0
- package/lib/components/file-upload/file-uploader.d.ts +16 -0
- package/lib/components/file-upload/file.d.ts +4 -0
- package/lib/components/file-upload/image.d.ts +7 -0
- package/lib/components/file-upload/index.d.ts +3 -0
- package/lib/components/file-upload/single-file-uploader.d.ts +18 -0
- package/lib/components/file-upload/utils.d.ts +4 -0
- package/lib/components/input/input.d.ts +3 -3
- package/lib/components/menu/menu-checkbox-item.d.ts +1 -1
- package/lib/components/menu/menu-group.d.ts +2 -2
- package/lib/components/page/index.d.ts +4 -0
- package/lib/components/page/page-description.d.ts +7 -0
- package/lib/components/page/page-subtitle.d.ts +7 -0
- package/lib/components/page/page-title.d.ts +7 -0
- package/lib/components/page/section.d.ts +5 -0
- package/lib/components/popover/popover-trigger-for.d.ts +3 -3
- package/lib/components/radio-group/radio-item.d.ts +15 -17
- package/lib/components/scroll-area/scroll-area.d.ts +4 -6
- package/lib/components/select/option.d.ts +23 -3
- package/lib/components/select/select-state.d.ts +7 -0
- package/lib/components/select/select.d.ts +22 -7
- package/lib/components/separator/index.d.ts +1 -0
- package/lib/components/separator/separator.d.ts +8 -0
- package/lib/components/slider/slider.d.ts +1 -1
- package/lib/components/tab-group/index.d.ts +4 -0
- package/lib/components/tab-group/tab-content.d.ts +7 -0
- package/lib/components/tab-group/tab-group.d.ts +11 -0
- package/lib/components/tab-group/tab-item.d.ts +5 -0
- package/lib/components/tab-group/tab-label.d.ts +7 -0
- package/lib/components/time-picker/time-picker.d.ts +5 -1
- package/lib/components/toggle-group/index.d.ts +2 -0
- package/lib/components/toggle-group/toggle-group-item.d.ts +5 -0
- package/lib/components/toggle-group/toggle-group.d.ts +8 -0
- package/lib/components/typography/blockquote.d.ts +5 -0
- package/lib/components/typography/heading.d.ts +4 -4
- package/lib/components/typography/index.d.ts +1 -0
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/settings.d.ts +1 -0
- package/package.json +5 -6
- package/lib/components/editor/extensions/extension-history.d.ts +0 -14
- package/lib/components/editor/extensions/extension-text-align.d.ts +0 -16
- package/lib/components/editor/toolbar/extensions-group.d.ts +0 -5
- package/lib/components/editor/toolbar/extensions-separator.d.ts +0 -7
- package/lib/components/select/listbox-option.d.ts +0 -8
- package/lib/components/select/listbox.d.ts +0 -7
- package/lib/utils/css.d.ts +0 -2
- /package/lib/components/{menubar → menu-bar}/index.d.ts +0 -0
- /package/lib/components/{menubar → menu-bar}/menu-bar-item.d.ts +0 -0
- /package/lib/components/{menubar → menu-bar}/menu-bar.d.ts +0 -0
|
@@ -1,44 +1,38 @@
|
|
|
1
|
-
import { clsx } from 'clsx';
|
|
2
|
-
import { twMerge } from 'tailwind-merge';
|
|
3
1
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { signal, inject, LOCALE_ID, Injectable, input, computed, Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, Directive, HostListener, ChangeDetectorRef, viewChild, afterNextRender, forwardRef, ViewContainerRef, contentChildren,
|
|
2
|
+
import { signal, inject, LOCALE_ID, Injectable, input, computed, Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, Directive, HostListener, ChangeDetectorRef, viewChild, afterNextRender, forwardRef, booleanAttribute, ViewContainerRef, contentChildren, effect, Injector, model, untracked, output, linkedSignal, viewChildren } from '@angular/core';
|
|
5
3
|
import * as i1 from '@angular/forms';
|
|
6
4
|
import { FormGroup, FormControl, Validators, ReactiveFormsModule, NG_VALUE_ACCESSOR, FormArray, NgForm, FormGroupDirective, NgControl, FormBuilder, FormsModule } from '@angular/forms';
|
|
5
|
+
import { cn } from '@semantic-components/utils';
|
|
7
6
|
import { Editor } from '@tiptap/core';
|
|
8
7
|
import Document from '@tiptap/extension-document';
|
|
9
8
|
import Heading from '@tiptap/extension-heading';
|
|
10
9
|
import Paragraph from '@tiptap/extension-paragraph';
|
|
11
10
|
import Text from '@tiptap/extension-text';
|
|
12
11
|
import { cva } from 'class-variance-authority';
|
|
13
|
-
import { SvgQuoteIcon, SvgBoldIcon, SvgListIcon, SvgCodeIcon, SvgPaletteIcon, SvgHighlighterIcon,
|
|
14
|
-
import { Overlay,
|
|
12
|
+
import { SvgRedoIcon, SvgAlignCenterIcon, SvgAlignLeftIcon, SvgAlignRightIcon, SvgUndoIcon, SvgUnlinkIcon, SvgQuoteIcon, SvgBoldIcon, SvgListIcon, SvgCodeIcon, SvgPaletteIcon, SvgHighlighterIcon, SvgMinusIcon, SvgItalicIcon, SvgListOrderedIcon, SvgStrikethroughIcon, SvgUnderlineIcon, SvgCheckIcon, SvgChevronDownIcon, SvgEllipsisIcon, SvgChevronLeftIcon, SvgChevronsLeftIcon, SvgChevronRightIcon, SvgChevronsRightIcon, SvgCalendarIcon, SvgMoonIcon, SvgSunIcon, SvgXIcon, SvgChevronUpIcon, SvgCircleIcon, SvgDotIcon, SvgSearchIcon, SvgClockIcon, SvgFileTextIcon, SvgUploadIcon, SvgCookieIcon } from '@semantic-icons/lucide-icons';
|
|
13
|
+
import { Overlay, OverlayContainer, OverlayConfig } from '@angular/cdk/overlay';
|
|
15
14
|
import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
16
|
-
import
|
|
15
|
+
import { Dialog, DialogRef, DialogModule } from '@angular/cdk/dialog';
|
|
16
|
+
import * as i1$3 from '@angular/cdk/menu';
|
|
17
17
|
import { CdkMenuTrigger, CdkMenu, CdkMenuItem, CdkContextMenuTrigger, CdkMenuItemCheckbox, CdkMenuGroup, CdkMenuItemRadio, CdkMenuBar } from '@angular/cdk/menu';
|
|
18
|
-
import {
|
|
19
|
-
import * as i1$1 from '@angular/cdk/a11y';
|
|
20
|
-
import { A11yModule, FocusMonitor, ActiveDescendantKeyManager, _IdGenerator } from '@angular/cdk/a11y';
|
|
18
|
+
import { _IdGenerator, ActiveDescendantKeyManager, FocusMonitor } from '@angular/cdk/a11y';
|
|
21
19
|
import { Directionality } from '@angular/cdk/bidi';
|
|
22
|
-
import {
|
|
23
|
-
import { CdkOption, CdkListbox } from '@angular/cdk/listbox';
|
|
20
|
+
import { hasModifierKey, ENTER, TAB, ESCAPE } from '@angular/cdk/keycodes';
|
|
24
21
|
import { _getEventTarget } from '@angular/cdk/platform';
|
|
25
|
-
import * as i1$
|
|
26
|
-
import { NgClass, DOCUMENT, NgTemplateOutlet, CommonModule, AsyncPipe, JsonPipe
|
|
27
|
-
import * as i1$2 from 'ngx-scrollbar';
|
|
28
|
-
import { NgScrollbarModule } from 'ngx-scrollbar';
|
|
22
|
+
import * as i1$1 from '@angular/common';
|
|
23
|
+
import { NgClass, DOCUMENT, NgTemplateOutlet, CommonModule, AsyncPipe, JsonPipe } from '@angular/common';
|
|
29
24
|
import EmblaCarousel from 'embla-carousel';
|
|
30
25
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
31
|
-
import * as i1$
|
|
26
|
+
import * as i1$2 from '@angular/cdk/accordion';
|
|
32
27
|
import { CdkAccordionModule } from '@angular/cdk/accordion';
|
|
33
28
|
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
34
|
-
import { Subject, debounceTime } from 'rxjs';
|
|
29
|
+
import { Subject, debounceTime, catchError, throwError } from 'rxjs';
|
|
35
30
|
import { BreakpointObserver, LayoutModule } from '@angular/cdk/layout';
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return twMerge(clsx(inputs));
|
|
39
|
-
}
|
|
31
|
+
import { HttpEventType, HttpResponse } from '@angular/common/http';
|
|
32
|
+
import { DataService } from '@semantic-components/supabase';
|
|
40
33
|
|
|
41
34
|
class ScSettings {
|
|
35
|
+
clock = signal('am-pm');
|
|
42
36
|
dateFormatPattern = signal('');
|
|
43
37
|
localeId = inject(LOCALE_ID);
|
|
44
38
|
constructor() {
|
|
@@ -75,27 +69,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
75
69
|
}]
|
|
76
70
|
}], ctorParameters: () => [] });
|
|
77
71
|
|
|
72
|
+
class ScSeparator {
|
|
73
|
+
orientation = input('horizontal');
|
|
74
|
+
class = input('');
|
|
75
|
+
_class = computed(() => cn('block shrink-0 bg-border', this.orientation() === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]', this.class()));
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScSeparator, isStandalone: true, selector: "sc-separator", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
78
|
+
<ng-content />
|
|
79
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
80
|
+
}
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSeparator, decorators: [{
|
|
82
|
+
type: Component,
|
|
83
|
+
args: [{ selector: 'sc-separator', imports: [], template: `
|
|
84
|
+
<ng-content />
|
|
85
|
+
`, host: {
|
|
86
|
+
'[class]': '_class()',
|
|
87
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
88
|
+
}] });
|
|
89
|
+
|
|
78
90
|
const scHeadingVariants = cva('', {
|
|
79
91
|
variants: {
|
|
80
92
|
level: {
|
|
81
|
-
1: 'text-4xl font-extrabold tracking-tight lg:text-5xl',
|
|
82
|
-
2: 'text-3xl font-semibold tracking-tight',
|
|
83
|
-
3: 'text-2xl font-semibold tracking-tight',
|
|
84
|
-
4: 'text-xl font-semibold tracking-tight',
|
|
85
|
-
5: '',
|
|
86
|
-
6: '',
|
|
93
|
+
'1': 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',
|
|
94
|
+
'2': 'scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0',
|
|
95
|
+
'3': 'scroll-m-20 text-2xl font-semibold tracking-tight',
|
|
96
|
+
'4': 'scroll-m-20 text-xl font-semibold tracking-tight',
|
|
97
|
+
'5': '',
|
|
98
|
+
'6': '',
|
|
87
99
|
},
|
|
88
100
|
},
|
|
89
101
|
defaultVariants: {
|
|
90
|
-
level: 1,
|
|
102
|
+
level: '1',
|
|
91
103
|
},
|
|
92
104
|
});
|
|
93
105
|
class ScHeading {
|
|
94
|
-
level = input(1);
|
|
95
|
-
|
|
96
|
-
|
|
106
|
+
level = input('1');
|
|
107
|
+
classInput = input('', {
|
|
108
|
+
alias: 'class',
|
|
109
|
+
});
|
|
110
|
+
class = computed(() => cn(scHeadingVariants({ level: this.level() }), this.classInput()));
|
|
97
111
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScHeading, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
98
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScHeading, isStandalone: true, selector: "h1[sc-heading], h2[sc-heading], h3[sc-heading], h4[sc-heading], h5[sc-heading], h6[sc-heading]", inputs: { level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null },
|
|
112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScHeading, isStandalone: true, selector: "h1[sc-heading], h2[sc-heading], h3[sc-heading], h4[sc-heading], h5[sc-heading], h6[sc-heading]", inputs: { level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" } }, ngImport: i0, template: `
|
|
99
113
|
<ng-content />
|
|
100
114
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
101
115
|
}
|
|
@@ -104,7 +118,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
104
118
|
args: [{ selector: 'h1[sc-heading], h2[sc-heading], h3[sc-heading], h4[sc-heading], h5[sc-heading], h6[sc-heading]', imports: [], template: `
|
|
105
119
|
<ng-content />
|
|
106
120
|
`, host: {
|
|
107
|
-
'[class]': '
|
|
121
|
+
'[class]': 'class()',
|
|
108
122
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
109
123
|
}] });
|
|
110
124
|
|
|
@@ -126,7 +140,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
126
140
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
127
141
|
}] });
|
|
128
142
|
|
|
129
|
-
|
|
143
|
+
class ScBlockquote {
|
|
144
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScBlockquote, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
145
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScBlockquote, isStandalone: true, selector: "blockquote[sc-blockquote]", host: { properties: { "class": "classes()" } }, ngImport: i0, template: `
|
|
146
|
+
<ng-content />
|
|
147
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
148
|
+
}
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScBlockquote, decorators: [{
|
|
150
|
+
type: Component,
|
|
151
|
+
args: [{ selector: 'blockquote[sc-blockquote]', imports: [], template: `
|
|
152
|
+
<ng-content />
|
|
153
|
+
`, host: {
|
|
154
|
+
'[class]': 'classes()',
|
|
155
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
156
|
+
}] });
|
|
157
|
+
|
|
158
|
+
const toggleVariants = cva('inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', {
|
|
130
159
|
variants: {
|
|
131
160
|
variant: {
|
|
132
161
|
default: 'bg-transparent',
|
|
@@ -298,11 +327,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
298
327
|
}] } });
|
|
299
328
|
|
|
300
329
|
class ScExtensions {
|
|
330
|
+
//history extension
|
|
331
|
+
undo = signal(false);
|
|
332
|
+
redo = signal(false);
|
|
333
|
+
history = computed(() => this.undo() || this.redo());
|
|
334
|
+
//link extension
|
|
335
|
+
setLink = signal(false);
|
|
336
|
+
unsetLink = signal(false);
|
|
337
|
+
link = computed(() => this.setLink() || this.unsetLink());
|
|
338
|
+
//text align extension
|
|
339
|
+
textAlignRight = signal(false);
|
|
340
|
+
textAlignLeft = signal(false);
|
|
341
|
+
textAlignCenter = signal(false);
|
|
342
|
+
textAlign = computed(() => this.textAlignRight() || this.textAlignLeft() || this.textAlignCenter());
|
|
343
|
+
//
|
|
301
344
|
highlight = signal(false);
|
|
302
345
|
color = signal(false);
|
|
303
346
|
underline = signal(false);
|
|
304
|
-
link = signal(false);
|
|
305
|
-
textAlign = signal(false);
|
|
306
347
|
fontFamily = signal(false);
|
|
307
348
|
bold = signal(false);
|
|
308
349
|
youtube = signal(false);
|
|
@@ -315,7 +356,6 @@ class ScExtensions {
|
|
|
315
356
|
orderedList = signal(false);
|
|
316
357
|
horizontalRule = signal(false);
|
|
317
358
|
textStyle = signal(false);
|
|
318
|
-
history = signal(false);
|
|
319
359
|
table = signal(false);
|
|
320
360
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
321
361
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensions, providedIn: 'root' });
|
|
@@ -327,270 +367,577 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
327
367
|
}]
|
|
328
368
|
}] });
|
|
329
369
|
|
|
330
|
-
class
|
|
331
|
-
ariaLabel = '
|
|
370
|
+
class ScEditorRedo {
|
|
371
|
+
ariaLabel = 'Redo';
|
|
332
372
|
parent = inject(ScEditor, { host: true });
|
|
333
373
|
extensions = inject(ScExtensions);
|
|
334
374
|
constructor() {
|
|
335
|
-
this.extensions.
|
|
375
|
+
this.extensions.redo.set(true);
|
|
336
376
|
}
|
|
337
377
|
get editor() {
|
|
338
378
|
return this.parent.editor;
|
|
339
379
|
}
|
|
340
|
-
|
|
341
|
-
this.editor.chain().focus().
|
|
380
|
+
redo() {
|
|
381
|
+
this.editor.chain().focus().redo().run();
|
|
342
382
|
}
|
|
343
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type:
|
|
344
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type:
|
|
383
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorRedo, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
384
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScEditorRedo, isStandalone: true, selector: "sc-editor-redo", ngImport: i0, template: `
|
|
345
385
|
<button
|
|
346
386
|
[attr.aria-label]="ariaLabel"
|
|
347
387
|
[scTooltip]="ariaLabel"
|
|
348
|
-
(click)="
|
|
388
|
+
(click)="redo()"
|
|
349
389
|
sc-toggle
|
|
350
390
|
variant="outline"
|
|
351
391
|
type="button"
|
|
352
392
|
>
|
|
353
|
-
<svg-
|
|
393
|
+
<svg-redo-icon />
|
|
354
394
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
355
395
|
</button>
|
|
356
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type:
|
|
396
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgRedoIcon, selector: "svg-redo-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
357
397
|
}
|
|
358
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type:
|
|
398
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorRedo, decorators: [{
|
|
359
399
|
type: Component,
|
|
360
|
-
args: [{ selector: 'sc-
|
|
400
|
+
args: [{ selector: 'sc-editor-redo', imports: [ScTooltip, ScToggle, SvgRedoIcon], template: `
|
|
361
401
|
<button
|
|
362
402
|
[attr.aria-label]="ariaLabel"
|
|
363
403
|
[scTooltip]="ariaLabel"
|
|
364
|
-
(click)="
|
|
404
|
+
(click)="redo()"
|
|
365
405
|
sc-toggle
|
|
366
406
|
variant="outline"
|
|
367
407
|
type="button"
|
|
368
408
|
>
|
|
369
|
-
<svg-
|
|
409
|
+
<svg-redo-icon />
|
|
370
410
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
371
411
|
</button>
|
|
372
412
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
373
413
|
}], ctorParameters: () => [] });
|
|
374
414
|
|
|
375
|
-
class
|
|
376
|
-
ariaLabel = '
|
|
415
|
+
class ScEditorTextAlignCenter {
|
|
416
|
+
ariaLabel = 'Align center';
|
|
377
417
|
parent = inject(ScEditor, { host: true });
|
|
378
418
|
extensions = inject(ScExtensions);
|
|
379
419
|
constructor() {
|
|
380
|
-
this.extensions.
|
|
420
|
+
this.extensions.textAlignCenter.set(true);
|
|
381
421
|
}
|
|
382
422
|
get editor() {
|
|
383
423
|
return this.parent.editor;
|
|
384
424
|
}
|
|
385
|
-
|
|
386
|
-
this.editor.chain().focus().
|
|
425
|
+
setCenterAlign() {
|
|
426
|
+
this.editor.chain().focus().setTextAlign('center').run();
|
|
387
427
|
}
|
|
388
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type:
|
|
389
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type:
|
|
428
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorTextAlignCenter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
429
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScEditorTextAlignCenter, isStandalone: true, selector: "sc-editor-text-align-center", ngImport: i0, template: `
|
|
390
430
|
<button
|
|
391
431
|
[attr.aria-label]="ariaLabel"
|
|
392
432
|
[scTooltip]="ariaLabel"
|
|
393
|
-
(click)="
|
|
433
|
+
(click)="setCenterAlign()"
|
|
434
|
+
type="button"
|
|
435
|
+
sc-toggle
|
|
436
|
+
variant="outline"
|
|
437
|
+
>
|
|
438
|
+
<svg-align-center-icon />
|
|
439
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
440
|
+
</button>
|
|
441
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgAlignCenterIcon, selector: "svg-align-center-icon", inputs: ["class"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
442
|
+
}
|
|
443
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorTextAlignCenter, decorators: [{
|
|
444
|
+
type: Component,
|
|
445
|
+
args: [{ selector: 'sc-editor-text-align-center', imports: [ScTooltip, SvgAlignCenterIcon, ScToggle], template: `
|
|
446
|
+
<button
|
|
447
|
+
[attr.aria-label]="ariaLabel"
|
|
448
|
+
[scTooltip]="ariaLabel"
|
|
449
|
+
(click)="setCenterAlign()"
|
|
450
|
+
type="button"
|
|
394
451
|
sc-toggle
|
|
395
452
|
variant="outline"
|
|
453
|
+
>
|
|
454
|
+
<svg-align-center-icon />
|
|
455
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
456
|
+
</button>
|
|
457
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
458
|
+
}], ctorParameters: () => [] });
|
|
459
|
+
|
|
460
|
+
class ScEditorTextAlignLeft {
|
|
461
|
+
ariaLabel = 'Align left';
|
|
462
|
+
parent = inject(ScEditor, { host: true });
|
|
463
|
+
extensions = inject(ScExtensions);
|
|
464
|
+
constructor() {
|
|
465
|
+
this.extensions.textAlignLeft.set(true);
|
|
466
|
+
}
|
|
467
|
+
get editor() {
|
|
468
|
+
return this.parent.editor;
|
|
469
|
+
}
|
|
470
|
+
setLeftAlign() {
|
|
471
|
+
this.editor.chain().focus().setTextAlign('left').run();
|
|
472
|
+
}
|
|
473
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorTextAlignLeft, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
474
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScEditorTextAlignLeft, isStandalone: true, selector: "sc-editor-text-align-left", ngImport: i0, template: `
|
|
475
|
+
<button
|
|
476
|
+
[attr.aria-label]="ariaLabel"
|
|
477
|
+
[scTooltip]="ariaLabel"
|
|
478
|
+
(click)="setLeftAlign()"
|
|
396
479
|
type="button"
|
|
480
|
+
sc-toggle
|
|
481
|
+
variant="outline"
|
|
397
482
|
>
|
|
398
|
-
<svg-
|
|
483
|
+
<svg-align-left-icon />
|
|
399
484
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
400
485
|
</button>
|
|
401
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type:
|
|
486
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgAlignLeftIcon, selector: "svg-align-left-icon", inputs: ["class"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
402
487
|
}
|
|
403
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type:
|
|
488
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorTextAlignLeft, decorators: [{
|
|
404
489
|
type: Component,
|
|
405
|
-
args: [{ selector: 'sc-
|
|
490
|
+
args: [{ selector: 'sc-editor-text-align-left', imports: [ScTooltip, SvgAlignLeftIcon, ScToggle], template: `
|
|
406
491
|
<button
|
|
407
492
|
[attr.aria-label]="ariaLabel"
|
|
408
493
|
[scTooltip]="ariaLabel"
|
|
409
|
-
(click)="
|
|
494
|
+
(click)="setLeftAlign()"
|
|
495
|
+
type="button"
|
|
410
496
|
sc-toggle
|
|
411
497
|
variant="outline"
|
|
498
|
+
>
|
|
499
|
+
<svg-align-left-icon />
|
|
500
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
501
|
+
</button>
|
|
502
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
503
|
+
}], ctorParameters: () => [] });
|
|
504
|
+
|
|
505
|
+
class ScEditorTextAlignRight {
|
|
506
|
+
ariaLabel = 'Align right';
|
|
507
|
+
parent = inject(ScEditor, { host: true });
|
|
508
|
+
extensions = inject(ScExtensions);
|
|
509
|
+
constructor() {
|
|
510
|
+
this.extensions.textAlignRight.set(true);
|
|
511
|
+
}
|
|
512
|
+
get editor() {
|
|
513
|
+
return this.parent.editor;
|
|
514
|
+
}
|
|
515
|
+
setRightAlign() {
|
|
516
|
+
this.editor.chain().focus().setTextAlign('right').run();
|
|
517
|
+
}
|
|
518
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorTextAlignRight, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
519
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScEditorTextAlignRight, isStandalone: true, selector: "sc-editor-text-align-right", ngImport: i0, template: `
|
|
520
|
+
<button
|
|
521
|
+
[attr.aria-label]="ariaLabel"
|
|
522
|
+
[scTooltip]="ariaLabel"
|
|
523
|
+
(click)="setRightAlign()"
|
|
412
524
|
type="button"
|
|
525
|
+
sc-toggle
|
|
526
|
+
variant="outline"
|
|
413
527
|
>
|
|
414
|
-
<svg-
|
|
528
|
+
<svg-align-right-icon />
|
|
529
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
530
|
+
</button>
|
|
531
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgAlignRightIcon, selector: "svg-align-right-icon", inputs: ["class"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
532
|
+
}
|
|
533
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorTextAlignRight, decorators: [{
|
|
534
|
+
type: Component,
|
|
535
|
+
args: [{ selector: 'sc-editor-text-align-right', imports: [ScTooltip, SvgAlignRightIcon, ScToggle], template: `
|
|
536
|
+
<button
|
|
537
|
+
[attr.aria-label]="ariaLabel"
|
|
538
|
+
[scTooltip]="ariaLabel"
|
|
539
|
+
(click)="setRightAlign()"
|
|
540
|
+
type="button"
|
|
541
|
+
sc-toggle
|
|
542
|
+
variant="outline"
|
|
543
|
+
>
|
|
544
|
+
<svg-align-right-icon />
|
|
415
545
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
416
546
|
</button>
|
|
417
547
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
418
548
|
}], ctorParameters: () => [] });
|
|
419
549
|
|
|
420
|
-
class
|
|
421
|
-
ariaLabel = '
|
|
550
|
+
class ScEditorUndo {
|
|
551
|
+
ariaLabel = 'Undo';
|
|
422
552
|
parent = inject(ScEditor, { host: true });
|
|
423
553
|
extensions = inject(ScExtensions);
|
|
424
554
|
constructor() {
|
|
425
|
-
this.extensions.
|
|
555
|
+
this.extensions.undo.set(true);
|
|
426
556
|
}
|
|
427
557
|
get editor() {
|
|
428
558
|
return this.parent.editor;
|
|
429
559
|
}
|
|
430
|
-
|
|
431
|
-
this.editor.chain().focus().
|
|
560
|
+
undo() {
|
|
561
|
+
this.editor.chain().focus().undo().run();
|
|
432
562
|
}
|
|
433
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type:
|
|
434
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type:
|
|
563
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorUndo, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
564
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScEditorUndo, isStandalone: true, selector: "sc-editor-undo", ngImport: i0, template: `
|
|
435
565
|
<button
|
|
436
566
|
[attr.aria-label]="ariaLabel"
|
|
437
567
|
[scTooltip]="ariaLabel"
|
|
438
|
-
(click)="
|
|
568
|
+
(click)="undo()"
|
|
439
569
|
sc-toggle
|
|
440
570
|
variant="outline"
|
|
441
571
|
type="button"
|
|
442
572
|
>
|
|
443
|
-
<svg-
|
|
573
|
+
<svg-undo-icon />
|
|
444
574
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
445
575
|
</button>
|
|
446
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type:
|
|
576
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgUndoIcon, selector: "svg-undo-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
447
577
|
}
|
|
448
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type:
|
|
578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorUndo, decorators: [{
|
|
449
579
|
type: Component,
|
|
450
|
-
args: [{ selector: 'sc-
|
|
580
|
+
args: [{ selector: 'sc-editor-undo', imports: [ScTooltip, ScToggle, SvgUndoIcon], template: `
|
|
451
581
|
<button
|
|
452
582
|
[attr.aria-label]="ariaLabel"
|
|
453
583
|
[scTooltip]="ariaLabel"
|
|
454
|
-
(click)="
|
|
584
|
+
(click)="undo()"
|
|
455
585
|
sc-toggle
|
|
456
586
|
variant="outline"
|
|
457
587
|
type="button"
|
|
458
588
|
>
|
|
459
|
-
<svg-
|
|
589
|
+
<svg-undo-icon />
|
|
460
590
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
461
591
|
</button>
|
|
462
592
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
463
593
|
}], ctorParameters: () => [] });
|
|
464
594
|
|
|
465
|
-
class
|
|
466
|
-
ariaLabel = '
|
|
595
|
+
class ScEditorUnsetLink {
|
|
596
|
+
ariaLabel = 'Unset Link';
|
|
467
597
|
parent = inject(ScEditor, { host: true });
|
|
598
|
+
dialog = inject(Dialog);
|
|
468
599
|
extensions = inject(ScExtensions);
|
|
469
600
|
constructor() {
|
|
470
|
-
this.extensions.
|
|
601
|
+
this.extensions.unsetLink.set(true);
|
|
471
602
|
}
|
|
472
603
|
get editor() {
|
|
473
604
|
return this.parent.editor;
|
|
474
605
|
}
|
|
475
|
-
|
|
476
|
-
this.editor.chain().focus().
|
|
606
|
+
unsetLink() {
|
|
607
|
+
this.editor.chain().focus().unsetLink().run();
|
|
477
608
|
}
|
|
478
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type:
|
|
479
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type:
|
|
609
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorUnsetLink, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
610
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScEditorUnsetLink, isStandalone: true, selector: "sc-editor-unset-link", ngImport: i0, template: `
|
|
480
611
|
<button
|
|
481
612
|
[attr.aria-label]="ariaLabel"
|
|
482
613
|
[scTooltip]="ariaLabel"
|
|
483
|
-
(click)="
|
|
614
|
+
(click)="unsetLink()"
|
|
484
615
|
sc-toggle
|
|
485
616
|
variant="outline"
|
|
486
617
|
type="button"
|
|
487
618
|
>
|
|
488
|
-
<svg-
|
|
619
|
+
<svg-unlink-icon />
|
|
489
620
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
490
621
|
</button>
|
|
491
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type:
|
|
622
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgUnlinkIcon, selector: "svg-unlink-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
492
623
|
}
|
|
493
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type:
|
|
624
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorUnsetLink, decorators: [{
|
|
494
625
|
type: Component,
|
|
495
|
-
args: [{ selector: 'sc-
|
|
626
|
+
args: [{ selector: 'sc-editor-unset-link', imports: [ScTooltip, ScToggle, SvgUnlinkIcon], template: `
|
|
496
627
|
<button
|
|
497
628
|
[attr.aria-label]="ariaLabel"
|
|
498
629
|
[scTooltip]="ariaLabel"
|
|
499
|
-
(click)="
|
|
630
|
+
(click)="unsetLink()"
|
|
500
631
|
sc-toggle
|
|
501
632
|
variant="outline"
|
|
502
633
|
type="button"
|
|
503
634
|
>
|
|
504
|
-
<svg-
|
|
635
|
+
<svg-unlink-icon />
|
|
505
636
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
506
637
|
</button>
|
|
507
638
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
508
639
|
}], ctorParameters: () => [] });
|
|
509
640
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
641
|
+
class ScEditorGroup {
|
|
642
|
+
class = input('');
|
|
643
|
+
//TODO change styles
|
|
644
|
+
_class = computed(() => cn('flex flex-wrap items-center gap-1 py-1', this.class()));
|
|
645
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
646
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScEditorGroup, isStandalone: true, selector: "sc-editor-group", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
647
|
+
<ng-content />
|
|
648
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
649
|
+
}
|
|
650
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorGroup, decorators: [{
|
|
651
|
+
type: Component,
|
|
652
|
+
args: [{ selector: 'sc-editor-group', imports: [], template: `
|
|
653
|
+
<ng-content />
|
|
654
|
+
`, host: {
|
|
655
|
+
'[class]': '_class()',
|
|
656
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
657
|
+
}] });
|
|
658
|
+
|
|
659
|
+
class ScEditorToolbar {
|
|
660
|
+
class = input('');
|
|
661
|
+
//TODO change styles to fit shadcn
|
|
662
|
+
_class = computed(() => cn('block border-b px-3 py-1 dark:border-gray-600', this.class()));
|
|
663
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorToolbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
664
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScEditorToolbar, isStandalone: true, selector: "sc-editor-toolbar", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
665
|
+
<ng-content />
|
|
666
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
667
|
+
}
|
|
668
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditorToolbar, decorators: [{
|
|
669
|
+
type: Component,
|
|
670
|
+
args: [{ selector: 'sc-editor-toolbar', imports: [], template: `
|
|
671
|
+
<ng-content />
|
|
672
|
+
`, host: {
|
|
673
|
+
'[class]': '_class()',
|
|
674
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
675
|
+
}] });
|
|
676
|
+
|
|
677
|
+
class ScExtensionBlockquote {
|
|
678
|
+
ariaLabel = 'Toggle blockquote';
|
|
679
|
+
parent = inject(ScEditor, { host: true });
|
|
680
|
+
extensions = inject(ScExtensions);
|
|
681
|
+
constructor() {
|
|
682
|
+
this.extensions.blockquote.set(true);
|
|
683
|
+
}
|
|
684
|
+
get editor() {
|
|
685
|
+
return this.parent.editor;
|
|
686
|
+
}
|
|
687
|
+
toggleBlockquote() {
|
|
688
|
+
this.editor.chain().focus().toggleBlockquote().run();
|
|
689
|
+
}
|
|
690
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionBlockquote, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
691
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScExtensionBlockquote, isStandalone: true, selector: "sc-extension-blockquote", ngImport: i0, template: `
|
|
692
|
+
<button
|
|
693
|
+
[attr.aria-label]="ariaLabel"
|
|
694
|
+
[scTooltip]="ariaLabel"
|
|
695
|
+
(click)="toggleBlockquote()"
|
|
696
|
+
sc-toggle
|
|
697
|
+
variant="outline"
|
|
698
|
+
type="button"
|
|
699
|
+
>
|
|
700
|
+
<svg-quote-icon />
|
|
701
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
702
|
+
</button>
|
|
703
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgQuoteIcon, selector: "svg-quote-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
704
|
+
}
|
|
705
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionBlockquote, decorators: [{
|
|
706
|
+
type: Component,
|
|
707
|
+
args: [{ selector: 'sc-extension-blockquote', imports: [ScTooltip, ScToggle, SvgQuoteIcon], template: `
|
|
708
|
+
<button
|
|
709
|
+
[attr.aria-label]="ariaLabel"
|
|
710
|
+
[scTooltip]="ariaLabel"
|
|
711
|
+
(click)="toggleBlockquote()"
|
|
712
|
+
sc-toggle
|
|
713
|
+
variant="outline"
|
|
714
|
+
type="button"
|
|
715
|
+
>
|
|
716
|
+
<svg-quote-icon />
|
|
717
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
718
|
+
</button>
|
|
719
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
720
|
+
}], ctorParameters: () => [] });
|
|
721
|
+
|
|
722
|
+
class ScExtensionBold {
|
|
723
|
+
ariaLabel = 'Toggle Bold';
|
|
724
|
+
parent = inject(ScEditor, { host: true });
|
|
725
|
+
extensions = inject(ScExtensions);
|
|
726
|
+
constructor() {
|
|
727
|
+
this.extensions.bold.set(true);
|
|
728
|
+
}
|
|
729
|
+
get editor() {
|
|
730
|
+
return this.parent.editor;
|
|
731
|
+
}
|
|
732
|
+
toggleBold() {
|
|
733
|
+
this.editor.chain().focus().toggleBold().run();
|
|
734
|
+
}
|
|
735
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionBold, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
736
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScExtensionBold, isStandalone: true, selector: "sc-extension-bold", ngImport: i0, template: `
|
|
737
|
+
<button
|
|
738
|
+
[attr.aria-label]="ariaLabel"
|
|
739
|
+
[scTooltip]="ariaLabel"
|
|
740
|
+
(click)="toggleBold()"
|
|
741
|
+
sc-toggle
|
|
742
|
+
variant="outline"
|
|
743
|
+
type="button"
|
|
744
|
+
>
|
|
745
|
+
<svg-bold-icon />
|
|
746
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
747
|
+
</button>
|
|
748
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgBoldIcon, selector: "svg-bold-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
749
|
+
}
|
|
750
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionBold, decorators: [{
|
|
751
|
+
type: Component,
|
|
752
|
+
args: [{ selector: 'sc-extension-bold', imports: [ScTooltip, ScToggle, SvgBoldIcon], template: `
|
|
753
|
+
<button
|
|
754
|
+
[attr.aria-label]="ariaLabel"
|
|
755
|
+
[scTooltip]="ariaLabel"
|
|
756
|
+
(click)="toggleBold()"
|
|
757
|
+
sc-toggle
|
|
758
|
+
variant="outline"
|
|
759
|
+
type="button"
|
|
760
|
+
>
|
|
761
|
+
<svg-bold-icon />
|
|
762
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
763
|
+
</button>
|
|
764
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
765
|
+
}], ctorParameters: () => [] });
|
|
766
|
+
|
|
767
|
+
class ScExtensionBulletList {
|
|
768
|
+
ariaLabel = 'Toggle List';
|
|
769
|
+
parent = inject(ScEditor, { host: true });
|
|
770
|
+
extensions = inject(ScExtensions);
|
|
771
|
+
constructor() {
|
|
772
|
+
this.extensions.bulletList.set(true);
|
|
773
|
+
}
|
|
774
|
+
get editor() {
|
|
775
|
+
return this.parent.editor;
|
|
776
|
+
}
|
|
777
|
+
toggleBulletList() {
|
|
778
|
+
this.editor.chain().focus().toggleBulletList().run();
|
|
779
|
+
}
|
|
780
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionBulletList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
781
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScExtensionBulletList, isStandalone: true, selector: "sc-extension-bullet-list", ngImport: i0, template: `
|
|
782
|
+
<button
|
|
783
|
+
[attr.aria-label]="ariaLabel"
|
|
784
|
+
[scTooltip]="ariaLabel"
|
|
785
|
+
(click)="toggleBulletList()"
|
|
786
|
+
sc-toggle
|
|
787
|
+
variant="outline"
|
|
788
|
+
type="button"
|
|
789
|
+
>
|
|
790
|
+
<svg-list-icon />
|
|
791
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
792
|
+
</button>
|
|
793
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgListIcon, selector: "svg-list-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
794
|
+
}
|
|
795
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionBulletList, decorators: [{
|
|
796
|
+
type: Component,
|
|
797
|
+
args: [{ selector: 'sc-extension-bullet-list', imports: [ScTooltip, ScToggle, SvgListIcon], template: `
|
|
798
|
+
<button
|
|
799
|
+
[attr.aria-label]="ariaLabel"
|
|
800
|
+
[scTooltip]="ariaLabel"
|
|
801
|
+
(click)="toggleBulletList()"
|
|
802
|
+
sc-toggle
|
|
803
|
+
variant="outline"
|
|
804
|
+
type="button"
|
|
805
|
+
>
|
|
806
|
+
<svg-list-icon />
|
|
807
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
808
|
+
</button>
|
|
809
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
810
|
+
}], ctorParameters: () => [] });
|
|
811
|
+
|
|
812
|
+
class ScExtensionCode {
|
|
813
|
+
ariaLabel = 'Format code';
|
|
814
|
+
parent = inject(ScEditor, { host: true });
|
|
815
|
+
extensions = inject(ScExtensions);
|
|
816
|
+
constructor() {
|
|
817
|
+
this.extensions.code.set(true);
|
|
818
|
+
}
|
|
819
|
+
get editor() {
|
|
820
|
+
return this.parent.editor;
|
|
821
|
+
}
|
|
822
|
+
toggleCode() {
|
|
823
|
+
this.editor.chain().focus().toggleCode().run();
|
|
824
|
+
}
|
|
825
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionCode, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
826
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScExtensionCode, isStandalone: true, selector: "sc-extension-code", ngImport: i0, template: `
|
|
827
|
+
<button
|
|
828
|
+
[attr.aria-label]="ariaLabel"
|
|
829
|
+
[scTooltip]="ariaLabel"
|
|
830
|
+
(click)="toggleCode()"
|
|
831
|
+
sc-toggle
|
|
832
|
+
variant="outline"
|
|
833
|
+
type="button"
|
|
834
|
+
>
|
|
835
|
+
<svg-code-icon />
|
|
836
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
837
|
+
</button>
|
|
838
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgCodeIcon, selector: "svg-code-icon", inputs: ["class"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
839
|
+
}
|
|
840
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionCode, decorators: [{
|
|
841
|
+
type: Component,
|
|
842
|
+
args: [{ selector: 'sc-extension-code', imports: [ScTooltip, SvgCodeIcon, ScToggle], template: `
|
|
843
|
+
<button
|
|
844
|
+
[attr.aria-label]="ariaLabel"
|
|
845
|
+
[scTooltip]="ariaLabel"
|
|
846
|
+
(click)="toggleCode()"
|
|
847
|
+
sc-toggle
|
|
848
|
+
variant="outline"
|
|
849
|
+
type="button"
|
|
850
|
+
>
|
|
851
|
+
<svg-code-icon />
|
|
852
|
+
<span class="sr-only">{{ ariaLabel }}</span>
|
|
853
|
+
</button>
|
|
854
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
855
|
+
}], ctorParameters: () => [] });
|
|
856
|
+
|
|
857
|
+
const allColors = {
|
|
858
|
+
slate: {
|
|
859
|
+
50: '#f8fafc',
|
|
860
|
+
100: '#f1f5f9',
|
|
861
|
+
200: '#e2e8f0',
|
|
862
|
+
300: '#cbd5e1',
|
|
863
|
+
400: '#94a3b8',
|
|
864
|
+
500: '#64748b',
|
|
865
|
+
600: '#475569',
|
|
866
|
+
700: '#334155',
|
|
867
|
+
800: '#1e293b',
|
|
868
|
+
900: '#0f172a',
|
|
869
|
+
950: '#020617',
|
|
870
|
+
},
|
|
871
|
+
gray: {
|
|
872
|
+
50: '#f9fafb',
|
|
873
|
+
100: '#f3f4f6',
|
|
874
|
+
200: '#e5e7eb',
|
|
875
|
+
300: '#d1d5db',
|
|
876
|
+
400: '#9ca3af',
|
|
877
|
+
500: '#6b7280',
|
|
878
|
+
600: '#4b5563',
|
|
879
|
+
700: '#374151',
|
|
880
|
+
800: '#1f2937',
|
|
881
|
+
900: '#111827',
|
|
882
|
+
950: '#030712',
|
|
883
|
+
},
|
|
884
|
+
zinc: {
|
|
885
|
+
50: '#fafafa',
|
|
886
|
+
100: '#f4f4f5',
|
|
887
|
+
200: '#e4e4e7',
|
|
888
|
+
300: '#d4d4d8',
|
|
889
|
+
400: '#a1a1aa',
|
|
890
|
+
500: '#71717a',
|
|
891
|
+
600: '#52525b',
|
|
892
|
+
700: '#3f3f46',
|
|
893
|
+
800: '#27272a',
|
|
894
|
+
900: '#18181b',
|
|
895
|
+
950: '#09090b',
|
|
896
|
+
},
|
|
897
|
+
neutral: {
|
|
898
|
+
50: '#fafafa',
|
|
899
|
+
100: '#f5f5f5',
|
|
900
|
+
200: '#e5e5e5',
|
|
901
|
+
300: '#d4d4d4',
|
|
902
|
+
400: '#a3a3a3',
|
|
903
|
+
500: '#737373',
|
|
904
|
+
600: '#525252',
|
|
905
|
+
700: '#404040',
|
|
906
|
+
800: '#262626',
|
|
907
|
+
900: '#171717',
|
|
908
|
+
950: '#0a0a0a',
|
|
909
|
+
},
|
|
910
|
+
stone: {
|
|
911
|
+
50: '#fafaf9',
|
|
912
|
+
100: '#f5f5f4',
|
|
913
|
+
200: '#e7e5e4',
|
|
914
|
+
300: '#d6d3d1',
|
|
915
|
+
400: '#a8a29e',
|
|
916
|
+
500: '#78716c',
|
|
917
|
+
600: '#57534e',
|
|
918
|
+
700: '#44403c',
|
|
919
|
+
800: '#292524',
|
|
920
|
+
900: '#1c1917',
|
|
921
|
+
950: '#0c0a09',
|
|
922
|
+
},
|
|
923
|
+
red: {
|
|
924
|
+
50: '#fef2f2',
|
|
925
|
+
100: '#fee2e2',
|
|
926
|
+
200: '#fecaca',
|
|
927
|
+
300: '#fca5a5',
|
|
928
|
+
400: '#f87171',
|
|
929
|
+
500: '#ef4444',
|
|
930
|
+
600: '#dc2626',
|
|
931
|
+
700: '#b91c1c',
|
|
932
|
+
800: '#991b1b',
|
|
933
|
+
900: '#7f1d1d',
|
|
934
|
+
950: '#450a0a',
|
|
935
|
+
},
|
|
936
|
+
orange: {
|
|
937
|
+
50: '#fff7ed',
|
|
938
|
+
100: '#ffedd5',
|
|
939
|
+
200: '#fed7aa',
|
|
940
|
+
300: '#fdba74',
|
|
594
941
|
400: '#fb923c',
|
|
595
942
|
500: '#f97316',
|
|
596
943
|
600: '#ea580c',
|
|
@@ -874,7 +1221,7 @@ class ScExtensionColor {
|
|
|
874
1221
|
</button>
|
|
875
1222
|
</div>
|
|
876
1223
|
</ng-template>
|
|
877
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: CdkMenu, selector: "[cdkMenu]", outputs: ["closed"], exportAs: ["cdkMenu"] }, { kind: "directive", type: CdkMenuItem, selector: "[cdkMenuItem]", inputs: ["cdkMenuItemDisabled", "cdkMenuitemTypeaheadLabel"], outputs: ["cdkMenuItemTriggered"], exportAs: ["cdkMenuItem"] }, { kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgPaletteIcon, selector: "svg-palette-icon", inputs: ["class"
|
|
1224
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: CdkMenu, selector: "[cdkMenu]", outputs: ["closed"], exportAs: ["cdkMenu"] }, { kind: "directive", type: CdkMenuItem, selector: "[cdkMenuItem]", inputs: ["cdkMenuItemDisabled", "cdkMenuitemTypeaheadLabel"], outputs: ["cdkMenuItemTriggered"], exportAs: ["cdkMenuItem"] }, { kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgPaletteIcon, selector: "svg-palette-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
878
1225
|
}
|
|
879
1226
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionColor, decorators: [{
|
|
880
1227
|
type: Component,
|
|
@@ -1691,7 +2038,7 @@ class ScExtensionHighlight {
|
|
|
1691
2038
|
<svg-highlighter-icon />
|
|
1692
2039
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
1693
2040
|
</button>
|
|
1694
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgHighlighterIcon, selector: "svg-highlighter-icon", inputs: ["class"
|
|
2041
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgHighlighterIcon, selector: "svg-highlighter-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1695
2042
|
}
|
|
1696
2043
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionHighlight, decorators: [{
|
|
1697
2044
|
type: Component,
|
|
@@ -1710,79 +2057,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1710
2057
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
1711
2058
|
}], ctorParameters: () => [] });
|
|
1712
2059
|
|
|
1713
|
-
class ScExtensionHistory {
|
|
1714
|
-
ariaLabel1 = 'Undo';
|
|
1715
|
-
ariaLabel2 = 'Redo';
|
|
1716
|
-
parent = inject(ScEditor, { host: true });
|
|
1717
|
-
extensions = inject(ScExtensions);
|
|
1718
|
-
constructor() {
|
|
1719
|
-
this.extensions.history.set(true);
|
|
1720
|
-
}
|
|
1721
|
-
get editor() {
|
|
1722
|
-
return this.parent.editor;
|
|
1723
|
-
}
|
|
1724
|
-
undo() {
|
|
1725
|
-
this.editor.chain().focus().undo().run();
|
|
1726
|
-
}
|
|
1727
|
-
redo() {
|
|
1728
|
-
this.editor.chain().focus().redo().run();
|
|
1729
|
-
}
|
|
1730
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionHistory, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1731
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScExtensionHistory, isStandalone: true, selector: "sc-extension-history", ngImport: i0, template: `
|
|
1732
|
-
<button
|
|
1733
|
-
[attr.aria-label]="ariaLabel1"
|
|
1734
|
-
[scTooltip]="ariaLabel1"
|
|
1735
|
-
(click)="undo()"
|
|
1736
|
-
sc-toggle
|
|
1737
|
-
variant="outline"
|
|
1738
|
-
type="button"
|
|
1739
|
-
>
|
|
1740
|
-
<svg-undo-icon />
|
|
1741
|
-
<span class="sr-only">{{ ariaLabel1 }}</span>
|
|
1742
|
-
</button>
|
|
1743
|
-
|
|
1744
|
-
<button
|
|
1745
|
-
[attr.aria-label]="ariaLabel2"
|
|
1746
|
-
[scTooltip]="ariaLabel2"
|
|
1747
|
-
(click)="redo()"
|
|
1748
|
-
sc-toggle
|
|
1749
|
-
variant="outline"
|
|
1750
|
-
type="button"
|
|
1751
|
-
>
|
|
1752
|
-
<svg-redo-icon />
|
|
1753
|
-
<span class="sr-only">{{ ariaLabel2 }}</span>
|
|
1754
|
-
</button>
|
|
1755
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgUndoIcon, selector: "svg-undo-icon", inputs: ["class", "svgClass"] }, { kind: "component", type: SvgRedoIcon, selector: "svg-redo-icon", inputs: ["class", "svgClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1756
|
-
}
|
|
1757
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionHistory, decorators: [{
|
|
1758
|
-
type: Component,
|
|
1759
|
-
args: [{ selector: 'sc-extension-history', imports: [ScTooltip, ScToggle, SvgUndoIcon, SvgRedoIcon], template: `
|
|
1760
|
-
<button
|
|
1761
|
-
[attr.aria-label]="ariaLabel1"
|
|
1762
|
-
[scTooltip]="ariaLabel1"
|
|
1763
|
-
(click)="undo()"
|
|
1764
|
-
sc-toggle
|
|
1765
|
-
variant="outline"
|
|
1766
|
-
type="button"
|
|
1767
|
-
>
|
|
1768
|
-
<svg-undo-icon />
|
|
1769
|
-
<span class="sr-only">{{ ariaLabel1 }}</span>
|
|
1770
|
-
</button>
|
|
1771
|
-
|
|
1772
|
-
<button
|
|
1773
|
-
[attr.aria-label]="ariaLabel2"
|
|
1774
|
-
[scTooltip]="ariaLabel2"
|
|
1775
|
-
(click)="redo()"
|
|
1776
|
-
sc-toggle
|
|
1777
|
-
variant="outline"
|
|
1778
|
-
type="button"
|
|
1779
|
-
>
|
|
1780
|
-
<svg-redo-icon />
|
|
1781
|
-
<span class="sr-only">{{ ariaLabel2 }}</span>
|
|
1782
|
-
</button>
|
|
1783
|
-
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
1784
|
-
}], ctorParameters: () => [] });
|
|
1785
|
-
|
|
1786
2060
|
class ScExtensionHorizontalRule {
|
|
1787
2061
|
ariaLabel = 'Toggle Horizontal Rule';
|
|
1788
2062
|
parent = inject(ScEditor, { host: true });
|
|
@@ -1809,7 +2083,7 @@ class ScExtensionHorizontalRule {
|
|
|
1809
2083
|
<svg-minus-icon />
|
|
1810
2084
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
1811
2085
|
</button>
|
|
1812
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgMinusIcon, selector: "svg-minus-icon", inputs: ["class"
|
|
2086
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgMinusIcon, selector: "svg-minus-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1813
2087
|
}
|
|
1814
2088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionHorizontalRule, decorators: [{
|
|
1815
2089
|
type: Component,
|
|
@@ -2183,7 +2457,7 @@ class ScExtensionItalic {
|
|
|
2183
2457
|
<svg-italic-icon />
|
|
2184
2458
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
2185
2459
|
</button>
|
|
2186
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgItalicIcon, selector: "svg-italic-icon", inputs: ["class"
|
|
2460
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgItalicIcon, selector: "svg-italic-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2187
2461
|
}
|
|
2188
2462
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionItalic, decorators: [{
|
|
2189
2463
|
type: Component,
|
|
@@ -2363,7 +2637,7 @@ class ScExtensionLink {
|
|
|
2363
2637
|
dialog = inject(Dialog);
|
|
2364
2638
|
extensions = inject(ScExtensions);
|
|
2365
2639
|
constructor() {
|
|
2366
|
-
this.extensions.
|
|
2640
|
+
this.extensions.setLink.set(true);
|
|
2367
2641
|
}
|
|
2368
2642
|
get editor() {
|
|
2369
2643
|
return this.parent.editor;
|
|
@@ -2380,9 +2654,6 @@ class ScExtensionLink {
|
|
|
2380
2654
|
.run();
|
|
2381
2655
|
});
|
|
2382
2656
|
}
|
|
2383
|
-
removeLink() {
|
|
2384
|
-
this.editor.chain().focus().unsetLink().run();
|
|
2385
|
-
}
|
|
2386
2657
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionLink, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2387
2658
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScExtensionLink, isStandalone: true, selector: "sc-extension-link", ngImport: i0, template: `
|
|
2388
2659
|
<button
|
|
@@ -2410,31 +2681,6 @@ class ScExtensionLink {
|
|
|
2410
2681
|
</svg>
|
|
2411
2682
|
<span class="sr-only">Link</span>
|
|
2412
2683
|
</button>
|
|
2413
|
-
|
|
2414
|
-
<button
|
|
2415
|
-
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
2416
|
-
(click)="removeLink()"
|
|
2417
|
-
type="button"
|
|
2418
|
-
scTooltip="Remove link"
|
|
2419
|
-
>
|
|
2420
|
-
<svg
|
|
2421
|
-
class="size-5"
|
|
2422
|
-
aria-hidden="true"
|
|
2423
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
2424
|
-
width="24"
|
|
2425
|
-
height="24"
|
|
2426
|
-
fill="none"
|
|
2427
|
-
viewBox="0 0 24 24"
|
|
2428
|
-
>
|
|
2429
|
-
<path
|
|
2430
|
-
stroke="currentColor"
|
|
2431
|
-
stroke-linecap="round"
|
|
2432
|
-
stroke-width="2"
|
|
2433
|
-
d="M13.2 9.8a3.4 3.4 0 0 0-4.8 0L5 13.2A3.4 3.4 0 0 0 9.8 18l.3-.3m-.3-4.5a3.4 3.4 0 0 0 4.8 0L18 9.8A3.4 3.4 0 0 0 13.2 5l-1 1m7.4 14-1.8-1.8m0 0L16 16.4m1.8 1.8 1.8-1.8m-1.8 1.8L16 20"
|
|
2434
|
-
/>
|
|
2435
|
-
</svg>
|
|
2436
|
-
<span class="sr-only">Remove link</span>
|
|
2437
|
-
</button>
|
|
2438
2684
|
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2439
2685
|
}
|
|
2440
2686
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionLink, decorators: [{
|
|
@@ -2465,31 +2711,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2465
2711
|
</svg>
|
|
2466
2712
|
<span class="sr-only">Link</span>
|
|
2467
2713
|
</button>
|
|
2468
|
-
|
|
2469
|
-
<button
|
|
2470
|
-
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
2471
|
-
(click)="removeLink()"
|
|
2472
|
-
type="button"
|
|
2473
|
-
scTooltip="Remove link"
|
|
2474
|
-
>
|
|
2475
|
-
<svg
|
|
2476
|
-
class="size-5"
|
|
2477
|
-
aria-hidden="true"
|
|
2478
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
2479
|
-
width="24"
|
|
2480
|
-
height="24"
|
|
2481
|
-
fill="none"
|
|
2482
|
-
viewBox="0 0 24 24"
|
|
2483
|
-
>
|
|
2484
|
-
<path
|
|
2485
|
-
stroke="currentColor"
|
|
2486
|
-
stroke-linecap="round"
|
|
2487
|
-
stroke-width="2"
|
|
2488
|
-
d="M13.2 9.8a3.4 3.4 0 0 0-4.8 0L5 13.2A3.4 3.4 0 0 0 9.8 18l.3-.3m-.3-4.5a3.4 3.4 0 0 0 4.8 0L18 9.8A3.4 3.4 0 0 0 13.2 5l-1 1m7.4 14-1.8-1.8m0 0L16 16.4m1.8 1.8 1.8-1.8m-1.8 1.8L16 20"
|
|
2489
|
-
/>
|
|
2490
|
-
</svg>
|
|
2491
|
-
<span class="sr-only">Remove link</span>
|
|
2492
|
-
</button>
|
|
2493
2714
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
2494
2715
|
}], ctorParameters: () => [] });
|
|
2495
2716
|
|
|
@@ -2519,7 +2740,7 @@ class ScExtensionOrderedList {
|
|
|
2519
2740
|
<svg-list-ordered-icon />
|
|
2520
2741
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
2521
2742
|
</button>
|
|
2522
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgListOrderedIcon, selector: "svg-list-ordered-icon", inputs: ["class"
|
|
2743
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgListOrderedIcon, selector: "svg-list-ordered-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2523
2744
|
}
|
|
2524
2745
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionOrderedList, decorators: [{
|
|
2525
2746
|
type: Component,
|
|
@@ -2696,7 +2917,7 @@ class ScExtensionStrike {
|
|
|
2696
2917
|
<svg-strikethrough-icon />
|
|
2697
2918
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
2698
2919
|
</button>
|
|
2699
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgStrikethroughIcon, selector: "svg-strikethrough-icon", inputs: ["class"
|
|
2920
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgStrikethroughIcon, selector: "svg-strikethrough-icon", inputs: ["class"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2700
2921
|
}
|
|
2701
2922
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionStrike, decorators: [{
|
|
2702
2923
|
type: Component,
|
|
@@ -2911,23 +3132,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2911
3132
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
2912
3133
|
}] });
|
|
2913
3134
|
|
|
2914
|
-
class ScExtensionsSeparator {
|
|
2915
|
-
class = input('');
|
|
2916
|
-
classes = computed(() => cn('px-1', this.class()));
|
|
2917
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionsSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2918
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScExtensionsSeparator, isStandalone: true, selector: "sc-extensions-separator", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `
|
|
2919
|
-
<span class="inline-block h-4 w-px bg-gray-300 dark:bg-gray-600"></span>
|
|
2920
|
-
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2921
|
-
}
|
|
2922
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionsSeparator, decorators: [{
|
|
2923
|
-
type: Component,
|
|
2924
|
-
args: [{ selector: 'sc-extensions-separator', imports: [], template: `
|
|
2925
|
-
<span class="inline-block h-4 w-px bg-gray-300 dark:bg-gray-600"></span>
|
|
2926
|
-
`, host: {
|
|
2927
|
-
'[class]': 'classes()',
|
|
2928
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
2929
|
-
}] });
|
|
2930
|
-
|
|
2931
3135
|
class ScExtensionTable {
|
|
2932
3136
|
parent = inject(ScEditor, { host: true });
|
|
2933
3137
|
dialog = inject(Dialog);
|
|
@@ -3050,7 +3254,7 @@ class ScExtensionTable {
|
|
|
3050
3254
|
<span class="sr-only">Delete table</span>
|
|
3051
3255
|
</button>
|
|
3052
3256
|
|
|
3053
|
-
<sc-
|
|
3257
|
+
<sc-separator class="h5" orientation="vertical" />
|
|
3054
3258
|
|
|
3055
3259
|
<button
|
|
3056
3260
|
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
@@ -3130,7 +3334,7 @@ class ScExtensionTable {
|
|
|
3130
3334
|
<span class="sr-only">Remove column</span>
|
|
3131
3335
|
</button>
|
|
3132
3336
|
|
|
3133
|
-
<sc-
|
|
3337
|
+
<sc-separator class="h5" orientation="vertical" />
|
|
3134
3338
|
|
|
3135
3339
|
<button
|
|
3136
3340
|
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
@@ -3288,7 +3492,7 @@ class ScExtensionTable {
|
|
|
3288
3492
|
<span class="sr-only">Merge or split</span>
|
|
3289
3493
|
</button>
|
|
3290
3494
|
|
|
3291
|
-
<sc-
|
|
3495
|
+
<sc-separator class="h5" orientation="vertical" />
|
|
3292
3496
|
|
|
3293
3497
|
<button
|
|
3294
3498
|
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
@@ -3393,7 +3597,7 @@ class ScExtensionTable {
|
|
|
3393
3597
|
<span class="sr-only">Add cell attribute</span>
|
|
3394
3598
|
</button>
|
|
3395
3599
|
|
|
3396
|
-
<sc-
|
|
3600
|
+
<sc-separator class="h5" orientation="vertical" />
|
|
3397
3601
|
|
|
3398
3602
|
<button
|
|
3399
3603
|
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
@@ -3471,11 +3675,11 @@ class ScExtensionTable {
|
|
|
3471
3675
|
</svg>
|
|
3472
3676
|
<span class="sr-only">Next cell</span>
|
|
3473
3677
|
</button>
|
|
3474
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type:
|
|
3678
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScSeparator, selector: "sc-separator", inputs: ["orientation", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3475
3679
|
}
|
|
3476
3680
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionTable, decorators: [{
|
|
3477
3681
|
type: Component,
|
|
3478
|
-
args: [{ selector: 'sc-extension-table', imports: [ScTooltip,
|
|
3682
|
+
args: [{ selector: 'sc-extension-table', imports: [ScTooltip, ScSeparator], template: `
|
|
3479
3683
|
<button
|
|
3480
3684
|
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
3481
3685
|
(click)="insertTable()"
|
|
@@ -3527,7 +3731,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3527
3731
|
<span class="sr-only">Delete table</span>
|
|
3528
3732
|
</button>
|
|
3529
3733
|
|
|
3530
|
-
<sc-
|
|
3734
|
+
<sc-separator class="h5" orientation="vertical" />
|
|
3531
3735
|
|
|
3532
3736
|
<button
|
|
3533
3737
|
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
@@ -3607,7 +3811,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3607
3811
|
<span class="sr-only">Remove column</span>
|
|
3608
3812
|
</button>
|
|
3609
3813
|
|
|
3610
|
-
<sc-
|
|
3814
|
+
<sc-separator class="h5" orientation="vertical" />
|
|
3611
3815
|
|
|
3612
3816
|
<button
|
|
3613
3817
|
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
@@ -3765,7 +3969,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3765
3969
|
<span class="sr-only">Merge or split</span>
|
|
3766
3970
|
</button>
|
|
3767
3971
|
|
|
3768
|
-
<sc-
|
|
3972
|
+
<sc-separator class="h5" orientation="vertical" />
|
|
3769
3973
|
|
|
3770
3974
|
<button
|
|
3771
3975
|
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
@@ -3870,7 +4074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3870
4074
|
<span class="sr-only">Add cell attribute</span>
|
|
3871
4075
|
</button>
|
|
3872
4076
|
|
|
3873
|
-
<sc-
|
|
4077
|
+
<sc-separator class="h5" orientation="vertical" />
|
|
3874
4078
|
|
|
3875
4079
|
<button
|
|
3876
4080
|
class="cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
@@ -3951,107 +4155,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
3951
4155
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
3952
4156
|
}], ctorParameters: () => [] });
|
|
3953
4157
|
|
|
3954
|
-
class ScExtensionTextAlignAction {
|
|
3955
|
-
ariaLabel1 = 'Align left';
|
|
3956
|
-
ariaLabel2 = 'Align center';
|
|
3957
|
-
ariaLabel3 = 'Align right';
|
|
3958
|
-
parent = inject(ScEditor, { host: true });
|
|
3959
|
-
extensions = inject(ScExtensions);
|
|
3960
|
-
constructor() {
|
|
3961
|
-
this.extensions.textAlign.set(true);
|
|
3962
|
-
}
|
|
3963
|
-
get editor() {
|
|
3964
|
-
return this.parent.editor;
|
|
3965
|
-
}
|
|
3966
|
-
setLeftAlign() {
|
|
3967
|
-
this.editor.chain().focus().setTextAlign('left').run();
|
|
3968
|
-
}
|
|
3969
|
-
setCenterAlign() {
|
|
3970
|
-
this.editor.chain().focus().setTextAlign('center').run();
|
|
3971
|
-
}
|
|
3972
|
-
setRightAlign() {
|
|
3973
|
-
this.editor.chain().focus().setTextAlign('right').run();
|
|
3974
|
-
}
|
|
3975
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionTextAlignAction, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3976
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScExtensionTextAlignAction, isStandalone: true, selector: "sc-extension-text-align", ngImport: i0, template: `
|
|
3977
|
-
<button
|
|
3978
|
-
[attr.aria-label]="ariaLabel1"
|
|
3979
|
-
[scTooltip]="ariaLabel1"
|
|
3980
|
-
(click)="setLeftAlign()"
|
|
3981
|
-
type="button"
|
|
3982
|
-
sc-toggle
|
|
3983
|
-
variant="outline"
|
|
3984
|
-
>
|
|
3985
|
-
<svg-align-left-icon />
|
|
3986
|
-
<span class="sr-only">{{ ariaLabel1 }}</span>
|
|
3987
|
-
</button>
|
|
3988
|
-
|
|
3989
|
-
<button
|
|
3990
|
-
[attr.aria-label]="ariaLabel2"
|
|
3991
|
-
[scTooltip]="ariaLabel2"
|
|
3992
|
-
(click)="setCenterAlign()"
|
|
3993
|
-
type="button"
|
|
3994
|
-
sc-toggle
|
|
3995
|
-
variant="outline"
|
|
3996
|
-
>
|
|
3997
|
-
<svg-align-center-icon />
|
|
3998
|
-
<span class="sr-only">{{ ariaLabel2 }}</span>
|
|
3999
|
-
</button>
|
|
4000
|
-
|
|
4001
|
-
<button
|
|
4002
|
-
[attr.aria-label]="ariaLabel3"
|
|
4003
|
-
[scTooltip]="ariaLabel3"
|
|
4004
|
-
(click)="setRightAlign()"
|
|
4005
|
-
type="button"
|
|
4006
|
-
sc-toggle
|
|
4007
|
-
variant="outline"
|
|
4008
|
-
>
|
|
4009
|
-
<svg-align-right-icon />
|
|
4010
|
-
<span class="sr-only">{{ ariaLabel3 }}</span>
|
|
4011
|
-
</button>
|
|
4012
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgAlignLeftIcon, selector: "svg-align-left-icon", inputs: ["class", "svgClass"] }, { kind: "component", type: SvgAlignRightIcon, selector: "svg-align-right-icon", inputs: ["class", "svgClass"] }, { kind: "component", type: SvgAlignCenterIcon, selector: "svg-align-center-icon", inputs: ["class", "svgClass"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4013
|
-
}
|
|
4014
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionTextAlignAction, decorators: [{
|
|
4015
|
-
type: Component,
|
|
4016
|
-
args: [{ selector: 'sc-extension-text-align', imports: [ScTooltip, SvgAlignLeftIcon, SvgAlignRightIcon, SvgAlignCenterIcon, ScToggle], template: `
|
|
4017
|
-
<button
|
|
4018
|
-
[attr.aria-label]="ariaLabel1"
|
|
4019
|
-
[scTooltip]="ariaLabel1"
|
|
4020
|
-
(click)="setLeftAlign()"
|
|
4021
|
-
type="button"
|
|
4022
|
-
sc-toggle
|
|
4023
|
-
variant="outline"
|
|
4024
|
-
>
|
|
4025
|
-
<svg-align-left-icon />
|
|
4026
|
-
<span class="sr-only">{{ ariaLabel1 }}</span>
|
|
4027
|
-
</button>
|
|
4028
|
-
|
|
4029
|
-
<button
|
|
4030
|
-
[attr.aria-label]="ariaLabel2"
|
|
4031
|
-
[scTooltip]="ariaLabel2"
|
|
4032
|
-
(click)="setCenterAlign()"
|
|
4033
|
-
type="button"
|
|
4034
|
-
sc-toggle
|
|
4035
|
-
variant="outline"
|
|
4036
|
-
>
|
|
4037
|
-
<svg-align-center-icon />
|
|
4038
|
-
<span class="sr-only">{{ ariaLabel2 }}</span>
|
|
4039
|
-
</button>
|
|
4040
|
-
|
|
4041
|
-
<button
|
|
4042
|
-
[attr.aria-label]="ariaLabel3"
|
|
4043
|
-
[scTooltip]="ariaLabel3"
|
|
4044
|
-
(click)="setRightAlign()"
|
|
4045
|
-
type="button"
|
|
4046
|
-
sc-toggle
|
|
4047
|
-
variant="outline"
|
|
4048
|
-
>
|
|
4049
|
-
<svg-align-right-icon />
|
|
4050
|
-
<span class="sr-only">{{ ariaLabel3 }}</span>
|
|
4051
|
-
</button>
|
|
4052
|
-
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
4053
|
-
}], ctorParameters: () => [] });
|
|
4054
|
-
|
|
4055
4158
|
class ScExtensionTextStyle {
|
|
4056
4159
|
parent = inject(ScEditor, { host: true });
|
|
4057
4160
|
extensions = inject(ScExtensions);
|
|
@@ -4304,7 +4407,7 @@ class ScExtensionUnderline {
|
|
|
4304
4407
|
<svg-underline-icon />
|
|
4305
4408
|
<span class="sr-only">{{ ariaLabel }}</span>
|
|
4306
4409
|
</button>
|
|
4307
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgUnderlineIcon, selector: "svg-underline-icon", inputs: ["class"
|
|
4410
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: SvgUnderlineIcon, selector: "svg-underline-icon", inputs: ["class"] }, { kind: "component", type: ScToggle, selector: "button[sc-toggle]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4308
4411
|
}
|
|
4309
4412
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionUnderline, decorators: [{
|
|
4310
4413
|
type: Component,
|
|
@@ -4637,30 +4740,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
4637
4740
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
4638
4741
|
}], ctorParameters: () => [] });
|
|
4639
4742
|
|
|
4640
|
-
class ScExtensionsGroup {
|
|
4641
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionsGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4642
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScExtensionsGroup, isStandalone: true, selector: "sc-extensions-group", ngImport: i0, template: `
|
|
4643
|
-
<div class="flex flex-wrap items-center gap-1 py-1">
|
|
4644
|
-
<ng-content />
|
|
4645
|
-
</div>
|
|
4646
|
-
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4647
|
-
}
|
|
4648
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScExtensionsGroup, decorators: [{
|
|
4649
|
-
type: Component,
|
|
4650
|
-
args: [{ selector: 'sc-extensions-group', imports: [], template: `
|
|
4651
|
-
<div class="flex flex-wrap items-center gap-1 py-1">
|
|
4652
|
-
<ng-content />
|
|
4653
|
-
</div>
|
|
4654
|
-
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
4655
|
-
}] });
|
|
4656
|
-
|
|
4657
4743
|
class ScEditor {
|
|
4658
4744
|
_cdr = inject(ChangeDetectorRef);
|
|
4659
4745
|
editorDiv = viewChild.required('editorDiv');
|
|
4660
4746
|
_value = signal('');
|
|
4661
4747
|
_isEditable = signal(true);
|
|
4662
4748
|
class = input('');
|
|
4663
|
-
|
|
4749
|
+
//TODO change styles
|
|
4750
|
+
classes = computed(() => cn('block w-full rounded-lg border border-gray-200 bg-gray-50 dark:border-gray-600 dark:bg-gray-700', this.class()));
|
|
4664
4751
|
editorClass = input('');
|
|
4665
4752
|
editorClasses = computed(() => cn('mx-auto focus:outline-none', scArticleClasses(), this.editorClass()));
|
|
4666
4753
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
@@ -4813,58 +4900,60 @@ class ScEditor {
|
|
|
4813
4900
|
multi: true,
|
|
4814
4901
|
},
|
|
4815
4902
|
], viewQueries: [{ propertyName: "editorDiv", first: true, predicate: ["editorDiv"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
4816
|
-
<
|
|
4817
|
-
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
<sc-
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
|
|
4838
|
-
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
|
|
4842
|
-
|
|
4843
|
-
|
|
4844
|
-
|
|
4845
|
-
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
|
|
4849
|
-
|
|
4850
|
-
|
|
4851
|
-
|
|
4852
|
-
|
|
4853
|
-
</
|
|
4854
|
-
|
|
4855
|
-
|
|
4856
|
-
|
|
4857
|
-
|
|
4858
|
-
|
|
4859
|
-
|
|
4860
|
-
|
|
4861
|
-
|
|
4903
|
+
<sc-editor-toolbar>
|
|
4904
|
+
<sc-editor-group>
|
|
4905
|
+
<sc-editor-undo />
|
|
4906
|
+
<sc-editor-redo />
|
|
4907
|
+
<sc-separator class="h-5" orientation="vertical" />
|
|
4908
|
+
<sc-extension-bold />
|
|
4909
|
+
<sc-extension-italic />
|
|
4910
|
+
<sc-extension-underline />
|
|
4911
|
+
<sc-extension-highlight />
|
|
4912
|
+
<sc-extension-text-style />
|
|
4913
|
+
<sc-extension-color />
|
|
4914
|
+
<sc-extension-font-family />
|
|
4915
|
+
<sc-extension-link />
|
|
4916
|
+
<sc-editor-unset-link />
|
|
4917
|
+
<sc-separator class="h-5" orientation="vertical" />
|
|
4918
|
+
<sc-editor-text-align-left />
|
|
4919
|
+
<sc-editor-text-align-center />
|
|
4920
|
+
<sc-editor-text-align-right />
|
|
4921
|
+
</sc-editor-group>
|
|
4922
|
+
|
|
4923
|
+
<sc-editor-group>
|
|
4924
|
+
<sc-extension-heading />
|
|
4925
|
+
<sc-extension-paragraph />
|
|
4926
|
+
<sc-separator class="h-5" orientation="vertical" />
|
|
4927
|
+
<sc-extension-image />
|
|
4928
|
+
<sc-extension-youtube />
|
|
4929
|
+
<sc-extension-bullet-list />
|
|
4930
|
+
<sc-extension-ordered-list />
|
|
4931
|
+
<sc-extension-blockquote />
|
|
4932
|
+
<sc-separator class="h-5" orientation="vertical" />
|
|
4933
|
+
<sc-extension-strike />
|
|
4934
|
+
<sc-extension-horizontal-rule />
|
|
4935
|
+
<sc-extension-code />
|
|
4936
|
+
</sc-editor-group>
|
|
4937
|
+
|
|
4938
|
+
<sc-editor-group>
|
|
4939
|
+
<sc-extension-table />
|
|
4940
|
+
</sc-editor-group>
|
|
4941
|
+
</sc-editor-toolbar>
|
|
4942
|
+
|
|
4943
|
+
<div class="rounded-b-lg bg-white px-4 py-2 dark:bg-gray-800">
|
|
4944
|
+
<label class="sr-only" for="wysiwyg-example">Publish post</label>
|
|
4945
|
+
<div
|
|
4946
|
+
class="block w-full border-0 bg-white px-0 text-sm text-gray-800 focus:ring-0 dark:bg-gray-800 dark:text-white dark:placeholder:text-gray-400"
|
|
4947
|
+
#editorDiv
|
|
4948
|
+
></div>
|
|
4862
4949
|
</div>
|
|
4863
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScExtensionHighlight, selector: "sc-extension-highlight" }, { kind: "component", type: ScExtensionColor, selector: "sc-extension-color" }, { kind: "component", type: ScExtensionBold, selector: "sc-extension-bold" }, { kind: "component", type: ScExtensionUnderline, selector: "sc-extension-underline" }, { kind: "component", type: ScExtensionYoutube, selector: "sc-extension-youtube" }, { kind: "component", type: ScExtensionImage, selector: "sc-extension-image" }, { kind: "component", type: ScExtensionFontFamily, selector: "sc-extension-font-family" }, { kind: "component", type: ScExtensionLink, selector: "sc-extension-link" }, { kind: "component", type: ScExtensionItalic, selector: "sc-extension-italic" }, { kind: "component", type: ScExtensionBlockquote, selector: "sc-extension-blockquote" }, { kind: "component", type: ScExtensionBulletList, selector: "sc-extension-bullet-list" }, { kind: "component", type: ScExtensionOrderedList, selector: "sc-extension-ordered-list" }, { kind: "component", type:
|
|
4950
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScEditorUndo, selector: "sc-editor-undo" }, { kind: "component", type: ScEditorRedo, selector: "sc-editor-redo" }, { kind: "component", type: ScExtensionHighlight, selector: "sc-extension-highlight" }, { kind: "component", type: ScExtensionColor, selector: "sc-extension-color" }, { kind: "component", type: ScExtensionBold, selector: "sc-extension-bold" }, { kind: "component", type: ScExtensionUnderline, selector: "sc-extension-underline" }, { kind: "component", type: ScExtensionYoutube, selector: "sc-extension-youtube" }, { kind: "component", type: ScExtensionImage, selector: "sc-extension-image" }, { kind: "component", type: ScExtensionFontFamily, selector: "sc-extension-font-family" }, { kind: "component", type: ScExtensionLink, selector: "sc-extension-link" }, { kind: "component", type: ScExtensionItalic, selector: "sc-extension-italic" }, { kind: "component", type: ScExtensionBlockquote, selector: "sc-extension-blockquote" }, { kind: "component", type: ScExtensionBulletList, selector: "sc-extension-bullet-list" }, { kind: "component", type: ScExtensionOrderedList, selector: "sc-extension-ordered-list" }, { kind: "component", type: ScExtensionTextStyle, selector: "sc-extension-text-style" }, { kind: "component", type: ScExtensionParagraph, selector: "sc-extension-paragraph" }, { kind: "component", type: ScSeparator, selector: "sc-separator", inputs: ["orientation", "class"] }, { kind: "component", type: ScEditorGroup, selector: "sc-editor-group", inputs: ["class"] }, { kind: "component", type: ScExtensionStrike, selector: "sc-extension-strike" }, { kind: "component", type: ScExtensionHorizontalRule, selector: "sc-extension-horizontal-rule" }, { kind: "component", type: ScExtensionCode, selector: "sc-extension-code" }, { kind: "component", type: ScExtensionHeading, selector: "sc-extension-heading" }, { kind: "component", type: ScExtensionTable, selector: "sc-extension-table" }, { kind: "component", type: ScEditorToolbar, selector: "sc-editor-toolbar", inputs: ["class"] }, { kind: "component", type: ScEditorUnsetLink, selector: "sc-editor-unset-link" }, { kind: "component", type: ScEditorTextAlignRight, selector: "sc-editor-text-align-right" }, { kind: "component", type: ScEditorTextAlignLeft, selector: "sc-editor-text-align-left" }, { kind: "component", type: ScEditorTextAlignCenter, selector: "sc-editor-text-align-center" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4864
4951
|
}
|
|
4865
4952
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScEditor, decorators: [{
|
|
4866
4953
|
type: Component,
|
|
4867
4954
|
args: [{ selector: 'sc-editor', imports: [
|
|
4955
|
+
ScEditorUndo,
|
|
4956
|
+
ScEditorRedo,
|
|
4868
4957
|
ScExtensionHighlight,
|
|
4869
4958
|
ScExtensionColor,
|
|
4870
4959
|
ScExtensionBold,
|
|
@@ -4877,64 +4966,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
4877
4966
|
ScExtensionBlockquote,
|
|
4878
4967
|
ScExtensionBulletList,
|
|
4879
4968
|
ScExtensionOrderedList,
|
|
4880
|
-
ScExtensionTextAlignAction,
|
|
4881
4969
|
ScExtensionTextStyle,
|
|
4882
4970
|
ScExtensionParagraph,
|
|
4883
|
-
|
|
4884
|
-
|
|
4885
|
-
ScExtensionsGroup,
|
|
4971
|
+
ScSeparator,
|
|
4972
|
+
ScEditorGroup,
|
|
4886
4973
|
ScExtensionStrike,
|
|
4887
4974
|
ScExtensionHorizontalRule,
|
|
4888
4975
|
ScExtensionCode,
|
|
4889
4976
|
ScExtensionHeading,
|
|
4890
4977
|
ScExtensionTable,
|
|
4978
|
+
ScEditorToolbar,
|
|
4979
|
+
ScEditorUnsetLink,
|
|
4980
|
+
ScEditorTextAlignRight,
|
|
4981
|
+
ScEditorTextAlignLeft,
|
|
4982
|
+
ScEditorTextAlignCenter,
|
|
4891
4983
|
], template: `
|
|
4892
|
-
<
|
|
4893
|
-
|
|
4894
|
-
|
|
4895
|
-
|
|
4896
|
-
<sc-
|
|
4897
|
-
|
|
4898
|
-
|
|
4899
|
-
|
|
4900
|
-
|
|
4901
|
-
|
|
4902
|
-
|
|
4903
|
-
|
|
4904
|
-
|
|
4905
|
-
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
4912
|
-
|
|
4913
|
-
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
4921
|
-
|
|
4922
|
-
|
|
4923
|
-
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
</
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4984
|
+
<sc-editor-toolbar>
|
|
4985
|
+
<sc-editor-group>
|
|
4986
|
+
<sc-editor-undo />
|
|
4987
|
+
<sc-editor-redo />
|
|
4988
|
+
<sc-separator class="h-5" orientation="vertical" />
|
|
4989
|
+
<sc-extension-bold />
|
|
4990
|
+
<sc-extension-italic />
|
|
4991
|
+
<sc-extension-underline />
|
|
4992
|
+
<sc-extension-highlight />
|
|
4993
|
+
<sc-extension-text-style />
|
|
4994
|
+
<sc-extension-color />
|
|
4995
|
+
<sc-extension-font-family />
|
|
4996
|
+
<sc-extension-link />
|
|
4997
|
+
<sc-editor-unset-link />
|
|
4998
|
+
<sc-separator class="h-5" orientation="vertical" />
|
|
4999
|
+
<sc-editor-text-align-left />
|
|
5000
|
+
<sc-editor-text-align-center />
|
|
5001
|
+
<sc-editor-text-align-right />
|
|
5002
|
+
</sc-editor-group>
|
|
5003
|
+
|
|
5004
|
+
<sc-editor-group>
|
|
5005
|
+
<sc-extension-heading />
|
|
5006
|
+
<sc-extension-paragraph />
|
|
5007
|
+
<sc-separator class="h-5" orientation="vertical" />
|
|
5008
|
+
<sc-extension-image />
|
|
5009
|
+
<sc-extension-youtube />
|
|
5010
|
+
<sc-extension-bullet-list />
|
|
5011
|
+
<sc-extension-ordered-list />
|
|
5012
|
+
<sc-extension-blockquote />
|
|
5013
|
+
<sc-separator class="h-5" orientation="vertical" />
|
|
5014
|
+
<sc-extension-strike />
|
|
5015
|
+
<sc-extension-horizontal-rule />
|
|
5016
|
+
<sc-extension-code />
|
|
5017
|
+
</sc-editor-group>
|
|
5018
|
+
|
|
5019
|
+
<sc-editor-group>
|
|
5020
|
+
<sc-extension-table />
|
|
5021
|
+
</sc-editor-group>
|
|
5022
|
+
</sc-editor-toolbar>
|
|
5023
|
+
|
|
5024
|
+
<div class="rounded-b-lg bg-white px-4 py-2 dark:bg-gray-800">
|
|
5025
|
+
<label class="sr-only" for="wysiwyg-example">Publish post</label>
|
|
5026
|
+
<div
|
|
5027
|
+
class="block w-full border-0 bg-white px-0 text-sm text-gray-800 focus:ring-0 dark:bg-gray-800 dark:text-white dark:placeholder:text-gray-400"
|
|
5028
|
+
#editorDiv
|
|
5029
|
+
></div>
|
|
4938
5030
|
</div>
|
|
4939
5031
|
`, host: {
|
|
4940
5032
|
'[class]': 'classes()',
|
|
@@ -4947,7 +5039,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
4947
5039
|
] }]
|
|
4948
5040
|
}], ctorParameters: () => [] });
|
|
4949
5041
|
|
|
4950
|
-
const buttonVariants = cva('inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&
|
|
5042
|
+
const buttonVariants = cva('inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', {
|
|
4951
5043
|
variants: {
|
|
4952
5044
|
variant: {
|
|
4953
5045
|
primary: 'bg-primary text-primary-foreground hover:bg-primary/90',
|
|
@@ -4972,93 +5064,131 @@ const buttonVariants = cva('inline-flex items-center justify-center gap-2 whites
|
|
|
4972
5064
|
class ScButton {
|
|
4973
5065
|
variant = input('primary');
|
|
4974
5066
|
size = input('default');
|
|
4975
|
-
|
|
4976
|
-
|
|
5067
|
+
classInput = input('', {
|
|
5068
|
+
alias: 'class',
|
|
5069
|
+
});
|
|
5070
|
+
class = computed(() => cn(buttonVariants({ variant: this.variant(), size: this.size() }), this.classInput()));
|
|
5071
|
+
disabled = input(false, {
|
|
5072
|
+
transform: booleanAttribute,
|
|
5073
|
+
});
|
|
4977
5074
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4978
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScButton, isStandalone: true, selector: "button[sc-button], a[sc-button]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null },
|
|
5075
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScButton, isStandalone: true, selector: "button[sc-button], a[sc-button]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()", "attr.data-disabled": "disabled()" } }, ngImport: i0, template: `
|
|
4979
5076
|
<ng-content />
|
|
4980
5077
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4981
5078
|
}
|
|
4982
5079
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScButton, decorators: [{
|
|
4983
5080
|
type: Component,
|
|
4984
|
-
args: [{ selector: 'button[sc-button], a[sc-button]', imports: [], template: `
|
|
4985
|
-
<ng-content />
|
|
4986
|
-
`, host: {
|
|
4987
|
-
'[class]': 'classes()',
|
|
4988
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
4989
|
-
}] });
|
|
4990
|
-
|
|
4991
|
-
class ScListbox {
|
|
4992
|
-
class = input('');
|
|
4993
|
-
classes = computed(() => cn('relative z-50 max-h-96 w-full min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', this.class()));
|
|
4994
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScListbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4995
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScListbox, isStandalone: true, selector: "ul[sc-listbox]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `
|
|
4996
|
-
<ng-content />
|
|
4997
|
-
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4998
|
-
}
|
|
4999
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScListbox, decorators: [{
|
|
5000
|
-
type: Component,
|
|
5001
|
-
args: [{ selector: 'ul[sc-listbox]', imports: [], template: `
|
|
5002
|
-
<ng-content />
|
|
5003
|
-
`, host: {
|
|
5004
|
-
'[class]': 'classes()',
|
|
5005
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
5006
|
-
}] });
|
|
5007
|
-
|
|
5008
|
-
class ScListboxOption {
|
|
5009
|
-
class = input('');
|
|
5010
|
-
classes = computed(() => cn('relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50', this.class()));
|
|
5011
|
-
isSelected = input.required();
|
|
5012
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScListboxOption, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5013
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScListboxOption, isStandalone: true, selector: "li[sc-listbox-option]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `
|
|
5014
|
-
@if (isSelected()) {
|
|
5015
|
-
<svg-check-icon class="absolute left-2 flex size-4 items-center justify-center" />
|
|
5016
|
-
}
|
|
5017
|
-
|
|
5018
|
-
<ng-content />
|
|
5019
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class", "svgClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5020
|
-
}
|
|
5021
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScListboxOption, decorators: [{
|
|
5022
|
-
type: Component,
|
|
5023
|
-
args: [{ selector: 'li[sc-listbox-option]', imports: [SvgCheckIcon], template: `
|
|
5024
|
-
@if (isSelected()) {
|
|
5025
|
-
<svg-check-icon class="absolute left-2 flex size-4 items-center justify-center" />
|
|
5026
|
-
}
|
|
5027
|
-
|
|
5081
|
+
args: [{ selector: 'button[sc-button], a[sc-button]', imports: [], template: `
|
|
5028
5082
|
<ng-content />
|
|
5029
5083
|
`, host: {
|
|
5030
|
-
'[class]': '
|
|
5084
|
+
'[class]': 'class()',
|
|
5085
|
+
'[attr.data-disabled]': 'disabled()',
|
|
5031
5086
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
5032
5087
|
}] });
|
|
5033
5088
|
|
|
5089
|
+
class ScSelectState {
|
|
5090
|
+
//1 undefined for init
|
|
5091
|
+
//2 selected value
|
|
5092
|
+
//3 null nothing selected
|
|
5093
|
+
value = signal(undefined);
|
|
5094
|
+
disabled = signal(false);
|
|
5095
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSelectState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5096
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSelectState });
|
|
5097
|
+
}
|
|
5098
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSelectState, decorators: [{
|
|
5099
|
+
type: Injectable
|
|
5100
|
+
}] });
|
|
5101
|
+
|
|
5034
5102
|
class ScOption {
|
|
5103
|
+
state = inject(ScSelectState);
|
|
5104
|
+
/** The unique ID of the option. */
|
|
5105
|
+
id = signal(inject(_IdGenerator).getId('sc-option-'));
|
|
5106
|
+
classInput = input('', {
|
|
5107
|
+
alias: 'class',
|
|
5108
|
+
});
|
|
5109
|
+
class = computed(() => cn('relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[active=true]:bg-accent data-[active=true]:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50', this.classInput()));
|
|
5110
|
+
isSelected = computed(() => this.value() === this.state.value());
|
|
5035
5111
|
value = input.required();
|
|
5036
5112
|
labelEl = viewChild.required('label');
|
|
5037
5113
|
label = computed(() => {
|
|
5038
|
-
return this.labelEl().nativeElement.textContent?.trim();
|
|
5114
|
+
return this.labelEl().nativeElement.textContent?.trim() ?? '';
|
|
5115
|
+
});
|
|
5116
|
+
element = inject(ElementRef);
|
|
5117
|
+
/** Gets the host DOM element. */
|
|
5118
|
+
getHostElement() {
|
|
5119
|
+
return this.element.nativeElement;
|
|
5120
|
+
}
|
|
5121
|
+
active = signal(false);
|
|
5122
|
+
setActiveStyles() {
|
|
5123
|
+
this.active.set(true);
|
|
5124
|
+
}
|
|
5125
|
+
setInactiveStyles() {
|
|
5126
|
+
this.active.set(false);
|
|
5127
|
+
}
|
|
5128
|
+
disabled;
|
|
5129
|
+
getLabel() {
|
|
5130
|
+
return this.label();
|
|
5131
|
+
}
|
|
5132
|
+
disabledByInput = input(false, {
|
|
5133
|
+
alias: 'disabled',
|
|
5134
|
+
transform: booleanAttribute,
|
|
5039
5135
|
});
|
|
5136
|
+
_disabled = computed(() => this.disabledByInput() || this.disabled || this.state.disabled());
|
|
5137
|
+
toggle() {
|
|
5138
|
+
if (this.isSelected()) {
|
|
5139
|
+
this.deselect();
|
|
5140
|
+
}
|
|
5141
|
+
else {
|
|
5142
|
+
this.select();
|
|
5143
|
+
}
|
|
5144
|
+
}
|
|
5145
|
+
select() {
|
|
5146
|
+
if (this._disabled()) {
|
|
5147
|
+
return;
|
|
5148
|
+
}
|
|
5149
|
+
this.state.value.set(this.value());
|
|
5150
|
+
}
|
|
5151
|
+
deselect() {
|
|
5152
|
+
if (this._disabled()) {
|
|
5153
|
+
return;
|
|
5154
|
+
}
|
|
5155
|
+
this.state.value.set(null);
|
|
5156
|
+
}
|
|
5040
5157
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScOption, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5041
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
5158
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScOption, isStandalone: true, selector: "sc-option", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabledByInput: { classPropertyName: "disabledByInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseover": "setActiveStyles()", "mouseleave": "setInactiveStyles()", "click": "toggle()" }, properties: { "id": "id()", "class": "class()", "attr.data-disabled": "_disabled()", "attr.data-active": "active()" } }, viewQueries: [{ propertyName: "labelEl", first: true, predicate: ["label"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
5159
|
+
@if (isSelected()) {
|
|
5160
|
+
<svg-check-icon class="absolute left-2 flex size-4 items-center justify-center" />
|
|
5161
|
+
}
|
|
5162
|
+
|
|
5042
5163
|
<span #label>
|
|
5043
5164
|
<ng-content />
|
|
5044
5165
|
</span>
|
|
5045
|
-
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5166
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5046
5167
|
}
|
|
5047
5168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScOption, decorators: [{
|
|
5048
5169
|
type: Component,
|
|
5049
|
-
args: [{ selector: 'sc-option', imports: [], template: `
|
|
5170
|
+
args: [{ selector: 'sc-option', imports: [SvgCheckIcon], template: `
|
|
5171
|
+
@if (isSelected()) {
|
|
5172
|
+
<svg-check-icon class="absolute left-2 flex size-4 items-center justify-center" />
|
|
5173
|
+
}
|
|
5174
|
+
|
|
5050
5175
|
<span #label>
|
|
5051
5176
|
<ng-content />
|
|
5052
5177
|
</span>
|
|
5053
|
-
`, host: {
|
|
5178
|
+
`, host: {
|
|
5179
|
+
'[id]': 'id()',
|
|
5180
|
+
'[class]': 'class()',
|
|
5181
|
+
'[attr.data-disabled]': '_disabled()',
|
|
5182
|
+
'[attr.data-active]': 'active()',
|
|
5183
|
+
'(mouseover)': 'setActiveStyles()',
|
|
5184
|
+
'(mouseleave)': 'setInactiveStyles()',
|
|
5185
|
+
'(click)': 'toggle()',
|
|
5186
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
5054
5187
|
}] });
|
|
5055
5188
|
|
|
5056
5189
|
class ScSelect {
|
|
5057
|
-
|
|
5058
|
-
|
|
5059
|
-
_getPanelId() {
|
|
5060
|
-
return `panel-${this.id}`;
|
|
5061
|
-
}
|
|
5190
|
+
state = inject(ScSelectState);
|
|
5191
|
+
panelId = inject(_IdGenerator).getId('sc-select-panel-');
|
|
5062
5192
|
_cdr = inject(ChangeDetectorRef);
|
|
5063
5193
|
_overlay = inject(Overlay);
|
|
5064
5194
|
_dir = inject(Directionality, { optional: true });
|
|
@@ -5068,23 +5198,48 @@ class ScSelect {
|
|
|
5068
5198
|
_panelTemplate = viewChild.required('panelTemplate');
|
|
5069
5199
|
placeholder = input('');
|
|
5070
5200
|
isOpen = signal(false);
|
|
5201
|
+
options = contentChildren(ScOption);
|
|
5202
|
+
activeDescendant = signal(null);
|
|
5071
5203
|
constructor() {
|
|
5072
|
-
|
|
5204
|
+
effect(() => {
|
|
5205
|
+
//init
|
|
5206
|
+
if (this.state.value() === undefined) {
|
|
5207
|
+
this.state.value.set(this.value());
|
|
5208
|
+
}
|
|
5209
|
+
});
|
|
5210
|
+
effect(() => {
|
|
5211
|
+
if (this.value() !== this.state.value()) {
|
|
5212
|
+
this.setValue(this.state.value());
|
|
5213
|
+
}
|
|
5214
|
+
});
|
|
5215
|
+
effect(() => {
|
|
5216
|
+
this.syncSelectedState(this.value(), this.options(), this.options()[0]);
|
|
5217
|
+
});
|
|
5218
|
+
this.keyManager.change.subscribe(() => this.activeDescendant.set(this.keyManager.activeItem?.id() ?? null));
|
|
5073
5219
|
}
|
|
5074
|
-
|
|
5220
|
+
/**
|
|
5221
|
+
* Scrolls an option into view.
|
|
5222
|
+
* @param option Option to be scrolled into view.
|
|
5223
|
+
* @param position Position to which to align the option relative to the scrollable container.
|
|
5224
|
+
*/
|
|
5225
|
+
scrollOptionIntoView(option, position) {
|
|
5226
|
+
option.getHostElement().scrollIntoView({ block: position, inline: position });
|
|
5227
|
+
}
|
|
5228
|
+
injector = inject(Injector);
|
|
5229
|
+
keyManager = new ActiveDescendantKeyManager(this.options, this.injector)
|
|
5230
|
+
.withHomeAndEnd(true)
|
|
5231
|
+
.withPageUpDown(true)
|
|
5232
|
+
.withVerticalOrientation(true);
|
|
5075
5233
|
value = model(undefined);
|
|
5076
5234
|
isDisabled = signal(false);
|
|
5077
5235
|
writeValue(value) {
|
|
5078
5236
|
this.value.set(value);
|
|
5079
5237
|
}
|
|
5080
|
-
handleValueChange(v) {
|
|
5081
|
-
this.setValue(v[0]);
|
|
5082
|
-
this.close();
|
|
5083
|
-
}
|
|
5084
5238
|
setValue(value) {
|
|
5085
5239
|
this.value.set(value);
|
|
5086
5240
|
this._onChange(value);
|
|
5087
5241
|
this._cdr.markForCheck();
|
|
5242
|
+
this.close();
|
|
5088
5243
|
}
|
|
5089
5244
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
5090
5245
|
_onChange = () => { };
|
|
@@ -5166,39 +5321,84 @@ class ScSelect {
|
|
|
5166
5321
|
}
|
|
5167
5322
|
close() {
|
|
5168
5323
|
if (this.isOpen()) {
|
|
5324
|
+
this.focusOnTrigger();
|
|
5169
5325
|
this.isOpen.set(false);
|
|
5170
5326
|
this._overlayRef?.detach();
|
|
5171
5327
|
}
|
|
5172
5328
|
}
|
|
5329
|
+
focusOnTrigger() {
|
|
5330
|
+
this.scSelectTrigger().nativeElement.focus();
|
|
5331
|
+
}
|
|
5332
|
+
/**
|
|
5333
|
+
* Synchronizes the internal state of the component based on a specific selected date.
|
|
5334
|
+
* @param value Currently selected date.
|
|
5335
|
+
* @param options Options rendered out in the timepicker.
|
|
5336
|
+
* @param fallback Option to set as active if no option is selected.
|
|
5337
|
+
*/
|
|
5338
|
+
syncSelectedState(value, options, fallback) {
|
|
5339
|
+
let hasSelected = false;
|
|
5340
|
+
for (const option of options) {
|
|
5341
|
+
if (value && option.value() === value) {
|
|
5342
|
+
this.scrollOptionIntoView(option, 'center');
|
|
5343
|
+
untracked(() => this.keyManager.setActiveItem(option));
|
|
5344
|
+
hasSelected = true;
|
|
5345
|
+
}
|
|
5346
|
+
}
|
|
5347
|
+
// If no option was selected, we need to reset the key manager since
|
|
5348
|
+
// it might be holding onto an option that no longer exists.
|
|
5349
|
+
if (!hasSelected) {
|
|
5350
|
+
if (fallback) {
|
|
5351
|
+
untracked(() => this.keyManager.setActiveItem(fallback));
|
|
5352
|
+
this.scrollOptionIntoView(fallback, 'center');
|
|
5353
|
+
}
|
|
5354
|
+
else {
|
|
5355
|
+
untracked(() => this.keyManager.setActiveItem(-1));
|
|
5356
|
+
}
|
|
5357
|
+
}
|
|
5358
|
+
}
|
|
5173
5359
|
/** Handles keyboard events while the overlay is open. */
|
|
5174
5360
|
_handleKeydown(event) {
|
|
5175
|
-
const
|
|
5176
|
-
if (
|
|
5361
|
+
const key = event.key;
|
|
5362
|
+
if (key === 'Tab') {
|
|
5177
5363
|
this.close();
|
|
5178
5364
|
}
|
|
5179
|
-
else if (
|
|
5365
|
+
else if (key === 'Escape' && !hasModifierKey(event)) {
|
|
5180
5366
|
event.preventDefault();
|
|
5181
5367
|
this.close();
|
|
5182
5368
|
}
|
|
5183
|
-
else if (
|
|
5184
|
-
|
|
5185
|
-
this.
|
|
5369
|
+
else if (key === 'Enter') {
|
|
5370
|
+
event.preventDefault();
|
|
5371
|
+
if (this.keyManager.activeItem) {
|
|
5372
|
+
this.setValue(this.keyManager.activeItem.value() ?? '');
|
|
5373
|
+
}
|
|
5374
|
+
else {
|
|
5375
|
+
this.close();
|
|
5376
|
+
}
|
|
5377
|
+
}
|
|
5378
|
+
else {
|
|
5379
|
+
const previousActive = this.keyManager.activeItem;
|
|
5380
|
+
this.keyManager.onKeydown(event);
|
|
5381
|
+
const currentActive = this.keyManager.activeItem;
|
|
5382
|
+
if (currentActive && currentActive !== previousActive) {
|
|
5383
|
+
this.scrollOptionIntoView(currentActive, 'nearest');
|
|
5384
|
+
}
|
|
5186
5385
|
}
|
|
5187
5386
|
}
|
|
5188
5387
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5189
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
5388
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.5", type: ScSelect, isStandalone: true, selector: "sc-select", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: [
|
|
5190
5389
|
{
|
|
5191
5390
|
provide: NG_VALUE_ACCESSOR,
|
|
5192
5391
|
useExisting: forwardRef(() => ScSelect),
|
|
5193
5392
|
multi: true,
|
|
5194
5393
|
},
|
|
5394
|
+
ScSelectState,
|
|
5195
5395
|
], queries: [{ propertyName: "options", predicate: ScOption, isSignal: true }], viewQueries: [{ propertyName: "scSelectTrigger", first: true, predicate: ["scSelectTrigger"], descendants: true, isSignal: true }, { propertyName: "_panelTemplate", first: true, predicate: ["panelTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
5196
5396
|
<button
|
|
5197
5397
|
class="flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1"
|
|
5198
5398
|
#scSelectTrigger
|
|
5199
5399
|
[disabled]="isDisabled()"
|
|
5200
5400
|
[attr.aria-expanded]="_isExpanded()"
|
|
5201
|
-
[attr.aria-controls]="
|
|
5401
|
+
[attr.aria-controls]="panelId"
|
|
5202
5402
|
(click)="open()"
|
|
5203
5403
|
type="button"
|
|
5204
5404
|
role="combobox"
|
|
@@ -5209,43 +5409,24 @@ class ScSelect {
|
|
|
5209
5409
|
|
|
5210
5410
|
<ng-template #panelTemplate>
|
|
5211
5411
|
<ul
|
|
5212
|
-
[
|
|
5213
|
-
[
|
|
5214
|
-
|
|
5215
|
-
sc-listbox
|
|
5216
|
-
cdkListbox
|
|
5217
|
-
cdkTrapFocus
|
|
5412
|
+
class="relative z-50 max-h-96 w-full min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"
|
|
5413
|
+
[id]="panelId"
|
|
5414
|
+
role="listbox"
|
|
5218
5415
|
>
|
|
5219
|
-
|
|
5220
|
-
<li
|
|
5221
|
-
[isSelected]="option.value() === this.value()"
|
|
5222
|
-
[cdkOption]="option.value()"
|
|
5223
|
-
sc-listbox-option
|
|
5224
|
-
>
|
|
5225
|
-
{{ option.label() }}
|
|
5226
|
-
</li>
|
|
5227
|
-
}
|
|
5416
|
+
<ng-content />
|
|
5228
5417
|
</ul>
|
|
5229
5418
|
</ng-template>
|
|
5230
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgChevronDownIcon, selector: "svg-chevron-down-icon", inputs: ["class"
|
|
5419
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgChevronDownIcon, selector: "svg-chevron-down-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5231
5420
|
}
|
|
5232
5421
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSelect, decorators: [{
|
|
5233
5422
|
type: Component,
|
|
5234
|
-
args: [{ selector: 'sc-select', imports: [
|
|
5235
|
-
SvgChevronDownIcon,
|
|
5236
|
-
OverlayModule,
|
|
5237
|
-
ScListbox,
|
|
5238
|
-
ScListboxOption,
|
|
5239
|
-
CdkOption,
|
|
5240
|
-
CdkListbox,
|
|
5241
|
-
A11yModule,
|
|
5242
|
-
], template: `
|
|
5423
|
+
args: [{ selector: 'sc-select', imports: [SvgChevronDownIcon], template: `
|
|
5243
5424
|
<button
|
|
5244
5425
|
class="flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1"
|
|
5245
5426
|
#scSelectTrigger
|
|
5246
5427
|
[disabled]="isDisabled()"
|
|
5247
5428
|
[attr.aria-expanded]="_isExpanded()"
|
|
5248
|
-
[attr.aria-controls]="
|
|
5429
|
+
[attr.aria-controls]="panelId"
|
|
5249
5430
|
(click)="open()"
|
|
5250
5431
|
type="button"
|
|
5251
5432
|
role="combobox"
|
|
@@ -5256,22 +5437,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
5256
5437
|
|
|
5257
5438
|
<ng-template #panelTemplate>
|
|
5258
5439
|
<ul
|
|
5259
|
-
[
|
|
5260
|
-
[
|
|
5261
|
-
|
|
5262
|
-
sc-listbox
|
|
5263
|
-
cdkListbox
|
|
5264
|
-
cdkTrapFocus
|
|
5440
|
+
class="relative z-50 max-h-96 w-full min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"
|
|
5441
|
+
[id]="panelId"
|
|
5442
|
+
role="listbox"
|
|
5265
5443
|
>
|
|
5266
|
-
|
|
5267
|
-
<li
|
|
5268
|
-
[isSelected]="option.value() === this.value()"
|
|
5269
|
-
[cdkOption]="option.value()"
|
|
5270
|
-
sc-listbox-option
|
|
5271
|
-
>
|
|
5272
|
-
{{ option.label() }}
|
|
5273
|
-
</li>
|
|
5274
|
-
}
|
|
5444
|
+
<ng-content />
|
|
5275
5445
|
</ul>
|
|
5276
5446
|
</ng-template>
|
|
5277
5447
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -5280,6 +5450,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
5280
5450
|
useExisting: forwardRef(() => ScSelect),
|
|
5281
5451
|
multi: true,
|
|
5282
5452
|
},
|
|
5453
|
+
ScSelectState,
|
|
5283
5454
|
] }]
|
|
5284
5455
|
}], ctorParameters: () => [] });
|
|
5285
5456
|
|
|
@@ -5317,7 +5488,7 @@ class ScPageItem {
|
|
|
5317
5488
|
</a>
|
|
5318
5489
|
}
|
|
5319
5490
|
</li>
|
|
5320
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgEllipsisIcon, selector: "svg-ellipsis-icon", inputs: ["class"
|
|
5491
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }, { kind: "component", type: SvgEllipsisIcon, selector: "svg-ellipsis-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5321
5492
|
}
|
|
5322
5493
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScPageItem, decorators: [{
|
|
5323
5494
|
type: Component,
|
|
@@ -5558,7 +5729,7 @@ class ScPaginator {
|
|
|
5558
5729
|
}
|
|
5559
5730
|
</ul>
|
|
5560
5731
|
</nav>
|
|
5561
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScPageItem, selector: "sc-page-item", inputs: ["currentPage", "page"], outputs: ["pageChanged"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ScPagination, selector: "nav[sc-pagination]", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class"] }, { kind: "component", type: SvgChevronLeftIcon, selector: "svg-chevron-left-icon", inputs: ["class"
|
|
5732
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScPageItem, selector: "sc-page-item", inputs: ["currentPage", "page"], outputs: ["pageChanged"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ScPagination, selector: "nav[sc-pagination]", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }, { kind: "component", type: SvgChevronLeftIcon, selector: "svg-chevron-left-icon", inputs: ["class"] }, { kind: "component", type: SvgChevronsLeftIcon, selector: "svg-chevrons-left-icon", inputs: ["class"] }, { kind: "component", type: SvgChevronRightIcon, selector: "svg-chevron-right-icon", inputs: ["class"] }, { kind: "component", type: SvgChevronsRightIcon, selector: "svg-chevrons-right-icon", inputs: ["class"] }, { kind: "component", type: ScSelect, selector: "sc-select", inputs: ["placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: ScOption, selector: "sc-option", inputs: ["class", "value", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5562
5733
|
}
|
|
5563
5734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScPaginator, decorators: [{
|
|
5564
5735
|
type: Component,
|
|
@@ -5818,7 +5989,7 @@ class ScMonthDays {
|
|
|
5818
5989
|
{{ day.slice(-2) }}
|
|
5819
5990
|
</button>
|
|
5820
5991
|
}
|
|
5821
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5992
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5822
5993
|
}
|
|
5823
5994
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMonthDays, decorators: [{
|
|
5824
5995
|
type: Component,
|
|
@@ -5891,7 +6062,7 @@ class ScMonthYearHeader {
|
|
|
5891
6062
|
>
|
|
5892
6063
|
<svg-chevron-right-icon />
|
|
5893
6064
|
</button>
|
|
5894
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgChevronRightIcon, selector: "svg-chevron-right-icon", inputs: ["class"
|
|
6065
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgChevronRightIcon, selector: "svg-chevron-right-icon", inputs: ["class"] }, { kind: "component", type: SvgChevronLeftIcon, selector: "svg-chevron-left-icon", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5895
6066
|
}
|
|
5896
6067
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMonthYearHeader, decorators: [{
|
|
5897
6068
|
type: Component,
|
|
@@ -6082,7 +6253,7 @@ class ScCalendar {
|
|
|
6082
6253
|
<button sc-button type="button">Done</button>
|
|
6083
6254
|
</div>
|
|
6084
6255
|
</div>
|
|
6085
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScMonthYearHeader, selector: "sc-month-year-header", inputs: ["class", "monthYear"], outputs: ["monthYearChange"] }, { kind: "component", type: ScMonthDays, selector: "sc-month-days", inputs: ["class", "weekDaysNames", "days", "firstDayMonth", "selectedDay"], outputs: ["selectedDayChange"] }, { kind: "component", type: ScCard, selector: "div[sc-card]", inputs: ["class"] }, { kind: "component", type: ScCardHeader, selector: "div[sc-card-header]", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class"] }, { kind: "component", type: ScCardFooter, selector: "div[sc-card-footer]", inputs: ["class"] }, { kind: "component", type: ScCardContent, selector: "div[sc-card-content]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6256
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScMonthYearHeader, selector: "sc-month-year-header", inputs: ["class", "monthYear"], outputs: ["monthYearChange"] }, { kind: "component", type: ScMonthDays, selector: "sc-month-days", inputs: ["class", "weekDaysNames", "days", "firstDayMonth", "selectedDay"], outputs: ["selectedDayChange"] }, { kind: "component", type: ScCard, selector: "div[sc-card]", inputs: ["class"] }, { kind: "component", type: ScCardHeader, selector: "div[sc-card-header]", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }, { kind: "component", type: ScCardFooter, selector: "div[sc-card-footer]", inputs: ["class"] }, { kind: "component", type: ScCardContent, selector: "div[sc-card-content]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6086
6257
|
}
|
|
6087
6258
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScCalendar, decorators: [{
|
|
6088
6259
|
type: Component,
|
|
@@ -6145,10 +6316,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
6145
6316
|
|
|
6146
6317
|
const scInputStyles = signal('flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm');
|
|
6147
6318
|
class ScInput {
|
|
6148
|
-
|
|
6149
|
-
|
|
6319
|
+
classInput = input('', {
|
|
6320
|
+
alias: 'class',
|
|
6321
|
+
});
|
|
6322
|
+
class = computed(() => cn(scInputStyles(), this.classInput()));
|
|
6150
6323
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6151
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScInput, isStandalone: true, selector: "input[sc-input]", inputs: {
|
|
6324
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScInput, isStandalone: true, selector: "input[sc-input]", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" } }, ngImport: i0, template: `
|
|
6152
6325
|
<ng-content />
|
|
6153
6326
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6154
6327
|
}
|
|
@@ -6157,7 +6330,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
6157
6330
|
args: [{ selector: 'input[sc-input]', imports: [], template: `
|
|
6158
6331
|
<ng-content />
|
|
6159
6332
|
`, host: {
|
|
6160
|
-
'[class]': '
|
|
6333
|
+
'[class]': 'class()',
|
|
6161
6334
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
6162
6335
|
}] });
|
|
6163
6336
|
|
|
@@ -6332,7 +6505,7 @@ class ScDatePicker {
|
|
|
6332
6505
|
<svg-calendar-icon />
|
|
6333
6506
|
</button>
|
|
6334
6507
|
<input #input sc-input scDateInput type="text" placeholder="Select date" />
|
|
6335
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScInput, selector: "input[sc-input]", inputs: ["class"] }, { kind: "component", type: SvgCalendarIcon, selector: "svg-calendar-icon", inputs: ["class"
|
|
6508
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScInput, selector: "input[sc-input]", inputs: ["class"] }, { kind: "component", type: SvgCalendarIcon, selector: "svg-calendar-icon", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }, { kind: "directive", type: ScDateInput, selector: "[scDateInput]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6336
6509
|
}
|
|
6337
6510
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScDatePicker, decorators: [{
|
|
6338
6511
|
type: Component,
|
|
@@ -6547,7 +6720,7 @@ class ScThemeToggler {
|
|
|
6547
6720
|
<svg-sun-icon />
|
|
6548
6721
|
}
|
|
6549
6722
|
</button>
|
|
6550
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgMoonIcon, selector: "svg-moon-icon", inputs: ["class"
|
|
6723
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgMoonIcon, selector: "svg-moon-icon", inputs: ["class"] }, { kind: "component", type: SvgSunIcon, selector: "svg-sun-icon", inputs: ["class"] }, { kind: "directive", type: ScTooltip, selector: "[scTooltip]", inputs: ["scTooltip", "position"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6551
6724
|
}
|
|
6552
6725
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScThemeToggler, decorators: [{
|
|
6553
6726
|
type: Component,
|
|
@@ -6908,7 +7081,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
6908
7081
|
|
|
6909
7082
|
class ScBreadcrumbSeparator {
|
|
6910
7083
|
class = input('');
|
|
6911
|
-
classes = computed(() => cn('[
|
|
7084
|
+
classes = computed(() => cn('[&_svg]:w-3.5 [&_svg]:h-3.5', this.class()));
|
|
6912
7085
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScBreadcrumbSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6913
7086
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScBreadcrumbSeparator, isStandalone: true, selector: "li[sc-breadcrumb-separator]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.aria-hidden": "true", "class": "classes()" } }, ngImport: i0, template: `
|
|
6914
7087
|
<ng-content />
|
|
@@ -6932,7 +7105,7 @@ class ScBreadcrumbEllipsis {
|
|
|
6932
7105
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScBreadcrumbEllipsis, isStandalone: true, selector: "span[sc-breadcrumb-ellipsis]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.aria-hidden": "true", "class": "classes()" } }, ngImport: i0, template: `
|
|
6933
7106
|
<svg-ellipsis-icon class="size-4" />
|
|
6934
7107
|
<span class="sr-only">More</span>
|
|
6935
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgEllipsisIcon, selector: "svg-ellipsis-icon", inputs: ["class"
|
|
7108
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgEllipsisIcon, selector: "svg-ellipsis-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6936
7109
|
}
|
|
6937
7110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScBreadcrumbEllipsis, decorators: [{
|
|
6938
7111
|
type: Component,
|
|
@@ -6946,6 +7119,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
6946
7119
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
6947
7120
|
}] });
|
|
6948
7121
|
|
|
7122
|
+
class ScToggleGroup {
|
|
7123
|
+
type = input('single');
|
|
7124
|
+
class = input('');
|
|
7125
|
+
_class = computed(() => cn('flex items-center justify-center gap-1', this.class()));
|
|
7126
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScToggleGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7127
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScToggleGroup, isStandalone: true, selector: "sc-toggle-group", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
7128
|
+
<ng-content />
|
|
7129
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7130
|
+
}
|
|
7131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScToggleGroup, decorators: [{
|
|
7132
|
+
type: Component,
|
|
7133
|
+
args: [{ selector: 'sc-toggle-group', imports: [], template: `
|
|
7134
|
+
<ng-content />
|
|
7135
|
+
`, host: {
|
|
7136
|
+
'[class]': '_class()',
|
|
7137
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
7138
|
+
}] });
|
|
7139
|
+
|
|
7140
|
+
class ScToggleGroupItem {
|
|
7141
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScToggleGroupItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7142
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScToggleGroupItem, isStandalone: true, selector: "sc-toggle-group-item", ngImport: i0, template: `
|
|
7143
|
+
<p>toggle-group-item works!</p>
|
|
7144
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7145
|
+
}
|
|
7146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScToggleGroupItem, decorators: [{
|
|
7147
|
+
type: Component,
|
|
7148
|
+
args: [{ selector: 'sc-toggle-group-item', imports: [], template: `
|
|
7149
|
+
<p>toggle-group-item works!</p>
|
|
7150
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
7151
|
+
}] });
|
|
7152
|
+
|
|
6949
7153
|
class ScDialogClose {
|
|
6950
7154
|
class = input('');
|
|
6951
7155
|
classes = computed(() => cn('absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground', this.class()));
|
|
@@ -7068,7 +7272,7 @@ class ScDialog {
|
|
|
7068
7272
|
<button sc-button type="submit">Save changes</button>
|
|
7069
7273
|
</div>
|
|
7070
7274
|
</div>
|
|
7071
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScDialogHeader, selector: "div[sc-dialog-header]", inputs: ["class"] }, { kind: "component", type: ScDialogTitle, selector: "h2[sc-dialog-title]", inputs: ["class"] }, { kind: "component", type: ScDialogDescription, selector: "p[sc-dialog-description]", inputs: ["class"] }, { kind: "component", type: ScDialogFooter, selector: "div[sc-dialog-footer]", inputs: ["class"] }, { kind: "component", type: ScDialogClose, selector: "button[sc-dialog-close]", inputs: ["class"] }, { kind: "component", type: SvgXIcon, selector: "svg-x-icon", inputs: ["class"
|
|
7275
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScDialogHeader, selector: "div[sc-dialog-header]", inputs: ["class"] }, { kind: "component", type: ScDialogTitle, selector: "h2[sc-dialog-title]", inputs: ["class"] }, { kind: "component", type: ScDialogDescription, selector: "p[sc-dialog-description]", inputs: ["class"] }, { kind: "component", type: ScDialogFooter, selector: "div[sc-dialog-footer]", inputs: ["class"] }, { kind: "component", type: ScDialogClose, selector: "button[sc-dialog-close]", inputs: ["class"] }, { kind: "component", type: SvgXIcon, selector: "svg-x-icon", inputs: ["class"] }, { kind: "component", type: ScDialogContent, selector: "div[sc-dialog-content]", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7072
7276
|
}
|
|
7073
7277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScDialog, decorators: [{
|
|
7074
7278
|
type: Component,
|
|
@@ -7101,11 +7305,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
7101
7305
|
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
7102
7306
|
}] });
|
|
7103
7307
|
|
|
7104
|
-
const alertVariants = cva('relative w-full rounded-lg border p-4 [&>.svg+
|
|
7308
|
+
const alertVariants = cva('relative w-full rounded-lg border p-4 [&_svg]:size-4 [&>.svg-host+p]:translate-y-[-3px] [&_svg]:absolute [&_svg]:left-4 [&_svg]:top-4 [&_svg]:text-foreground [&>.svg-host~*]:pl-7', {
|
|
7105
7309
|
variants: {
|
|
7106
7310
|
variant: {
|
|
7107
7311
|
default: 'bg-background text-foreground',
|
|
7108
|
-
destructive: 'border-destructive/50 text-destructive dark:border-destructive [
|
|
7312
|
+
destructive: 'border-destructive/50 text-destructive dark:border-destructive [&_svg]:text-destructive',
|
|
7109
7313
|
},
|
|
7110
7314
|
},
|
|
7111
7315
|
defaultVariants: {
|
|
@@ -7274,7 +7478,7 @@ class ScAlertDialog {
|
|
|
7274
7478
|
<button sc-button>Continue</button>
|
|
7275
7479
|
</div>
|
|
7276
7480
|
</div>
|
|
7277
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class"] }, { kind: "component", type: ScAlertDialogFooter, selector: "div[sc-alert-dialog-footer]", inputs: ["class"] }, { kind: "component", type: ScAlertDialogHeader, selector: "div[sc-alert-dialog-header]", inputs: ["class"] }, { kind: "component", type: scAlertDialogDescription, selector: "p[sc-alert-dialog-description]", inputs: ["class"] }, { kind: "component", type: ScAlertDialogTitle, selector: "h2[sc-alert-dialog-title]", inputs: ["class"] }, { kind: "component", type: ScAlertDialogContent, selector: "div[sc-alert-dialog-content]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7481
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }, { kind: "component", type: ScAlertDialogFooter, selector: "div[sc-alert-dialog-footer]", inputs: ["class"] }, { kind: "component", type: ScAlertDialogHeader, selector: "div[sc-alert-dialog-header]", inputs: ["class"] }, { kind: "component", type: scAlertDialogDescription, selector: "p[sc-alert-dialog-description]", inputs: ["class"] }, { kind: "component", type: ScAlertDialogTitle, selector: "h2[sc-alert-dialog-title]", inputs: ["class"] }, { kind: "component", type: ScAlertDialogContent, selector: "div[sc-alert-dialog-content]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7278
7482
|
}
|
|
7279
7483
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScAlertDialog, decorators: [{
|
|
7280
7484
|
type: Component,
|
|
@@ -7339,47 +7543,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
7339
7543
|
|
|
7340
7544
|
class ScScrollArea {
|
|
7341
7545
|
host = inject(ElementRef);
|
|
7342
|
-
|
|
7343
|
-
|
|
7344
|
-
|
|
7345
|
-
|
|
7546
|
+
classInput = input('', {
|
|
7547
|
+
alias: 'class',
|
|
7548
|
+
});
|
|
7549
|
+
class = computed(() => cn('', this.classInput()));
|
|
7346
7550
|
ngAfterViewInit() {
|
|
7347
7551
|
const height = this.host.nativeElement.scrollHeight;
|
|
7348
7552
|
console.log(height);
|
|
7349
7553
|
}
|
|
7350
7554
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScScrollArea, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7351
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScScrollArea, isStandalone: true, selector: "div[sc-scroll-area]", inputs: {
|
|
7352
|
-
<ng-
|
|
7353
|
-
|
|
7354
|
-
[style]="{
|
|
7355
|
-
'--scrollbar-border-radius': '100px',
|
|
7356
|
-
'--scrollbar-padding': '1px',
|
|
7357
|
-
'--scrollbar-thumb-color': 'hsl(var(--border))',
|
|
7358
|
-
'--scrollbar-thumb-hover-color': 'hsl(var(--border))',
|
|
7359
|
-
'--scrollbar-size': '7px',
|
|
7360
|
-
}"
|
|
7361
|
-
>
|
|
7362
|
-
<ng-content />
|
|
7363
|
-
</ng-scrollbar>
|
|
7364
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: NgScrollbarModule }, { kind: "component", type: i1$2.NgScrollbar, selector: "ng-scrollbar:not([externalViewport])", exportAs: ["ngScrollbar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7555
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScScrollArea, isStandalone: true, selector: "div[sc-scroll-area]", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" } }, ngImport: i0, template: `
|
|
7556
|
+
<ng-content />
|
|
7557
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7365
7558
|
}
|
|
7366
7559
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScScrollArea, decorators: [{
|
|
7367
7560
|
type: Component,
|
|
7368
|
-
args: [{ selector: 'div[sc-scroll-area]', imports: [
|
|
7369
|
-
<ng-
|
|
7370
|
-
[visibility]="visibility()"
|
|
7371
|
-
[style]="{
|
|
7372
|
-
'--scrollbar-border-radius': '100px',
|
|
7373
|
-
'--scrollbar-padding': '1px',
|
|
7374
|
-
'--scrollbar-thumb-color': 'hsl(var(--border))',
|
|
7375
|
-
'--scrollbar-thumb-hover-color': 'hsl(var(--border))',
|
|
7376
|
-
'--scrollbar-size': '7px',
|
|
7377
|
-
}"
|
|
7378
|
-
>
|
|
7379
|
-
<ng-content />
|
|
7380
|
-
</ng-scrollbar>
|
|
7561
|
+
args: [{ selector: 'div[sc-scroll-area]', imports: [], template: `
|
|
7562
|
+
<ng-content />
|
|
7381
7563
|
`, host: {
|
|
7382
|
-
'[class]': '
|
|
7564
|
+
'[class]': 'class()',
|
|
7383
7565
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
7384
7566
|
}] });
|
|
7385
7567
|
|
|
@@ -7456,7 +7638,7 @@ class ScTabs {
|
|
|
7456
7638
|
</div>
|
|
7457
7639
|
|
|
7458
7640
|
<ng-content />
|
|
7459
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
7641
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7460
7642
|
}
|
|
7461
7643
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTabs, decorators: [{
|
|
7462
7644
|
type: Component,
|
|
@@ -7515,6 +7697,163 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
7515
7697
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
7516
7698
|
}] });
|
|
7517
7699
|
|
|
7700
|
+
class ScTabContent2 {
|
|
7701
|
+
template = viewChild.required('template');
|
|
7702
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTabContent2, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7703
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.5", type: ScTabContent2, isStandalone: true, selector: "sc-tab-content2", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
7704
|
+
<ng-template #template>
|
|
7705
|
+
<ng-content />
|
|
7706
|
+
</ng-template>
|
|
7707
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7708
|
+
}
|
|
7709
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTabContent2, decorators: [{
|
|
7710
|
+
type: Component,
|
|
7711
|
+
args: [{ selector: 'sc-tab-content2', imports: [], template: `
|
|
7712
|
+
<ng-template #template>
|
|
7713
|
+
<ng-content />
|
|
7714
|
+
</ng-template>
|
|
7715
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
7716
|
+
}] });
|
|
7717
|
+
|
|
7718
|
+
class ScTabLabel2 {
|
|
7719
|
+
template = viewChild.required('template');
|
|
7720
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTabLabel2, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7721
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.5", type: ScTabLabel2, isStandalone: true, selector: "sc-tab-label2", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
7722
|
+
<ng-template #template>
|
|
7723
|
+
<ng-content />
|
|
7724
|
+
</ng-template>
|
|
7725
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7726
|
+
}
|
|
7727
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTabLabel2, decorators: [{
|
|
7728
|
+
type: Component,
|
|
7729
|
+
args: [{ selector: 'sc-tab-label2', imports: [], template: `
|
|
7730
|
+
<ng-template #template>
|
|
7731
|
+
<ng-content />
|
|
7732
|
+
</ng-template>
|
|
7733
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [] }]
|
|
7734
|
+
}] });
|
|
7735
|
+
|
|
7736
|
+
class ScTabGroup {
|
|
7737
|
+
tabLabels = contentChildren(ScTabLabel2, { descendants: true });
|
|
7738
|
+
tabContents = contentChildren(ScTabContent2, { descendants: true });
|
|
7739
|
+
ngAfterViewInit() {
|
|
7740
|
+
console.log(this.tabLabels());
|
|
7741
|
+
}
|
|
7742
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTabGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7743
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScTabGroup, isStandalone: true, selector: "sc-tab-group", queries: [{ propertyName: "tabLabels", predicate: ScTabLabel2, descendants: true, isSignal: true }, { propertyName: "tabContents", predicate: ScTabContent2, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
7744
|
+
<div class="group relative my-4 flex flex-col space-y-2">
|
|
7745
|
+
<div class="relative mr-auto w-full" dir="ltr" data-orientation="horizontal">
|
|
7746
|
+
<div class="flex items-center justify-between pb-3">
|
|
7747
|
+
<div
|
|
7748
|
+
class="inline-flex h-9 w-full items-center justify-start rounded-none border-b bg-transparent p-0 text-muted-foreground"
|
|
7749
|
+
style="outline: none;"
|
|
7750
|
+
tabindex="0"
|
|
7751
|
+
data-orientation="horizontal"
|
|
7752
|
+
>
|
|
7753
|
+
@for (tab of tabLabels(); track tab) {
|
|
7754
|
+
<ng-container [ngTemplateOutlet]="tab.template()"></ng-container>
|
|
7755
|
+
}
|
|
7756
|
+
</div>
|
|
7757
|
+
</div>
|
|
7758
|
+
<div
|
|
7759
|
+
class="relative mt-2 rounded-md border ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
|
|
7760
|
+
id="radix-:r17g:-content-preview"
|
|
7761
|
+
style="animation-duration: 0s;"
|
|
7762
|
+
tabindex="0"
|
|
7763
|
+
data-state="active"
|
|
7764
|
+
data-orientation="horizontal"
|
|
7765
|
+
>
|
|
7766
|
+
<div class="theme-zinc w-full" style="--radius: 0.5rem;">
|
|
7767
|
+
<div class="preview flex min-h-[350px] w-full items-center justify-center p-10">
|
|
7768
|
+
<div
|
|
7769
|
+
class="relative h-72 w-48 overflow-hidden rounded-md border"
|
|
7770
|
+
dir="ltr"
|
|
7771
|
+
style="position: relative; --radix-scroll-area-corner-width: 0px; --radix-scroll-area-corner-height: 0px;"
|
|
7772
|
+
>
|
|
7773
|
+
<div
|
|
7774
|
+
class="size-full rounded-[inherit]"
|
|
7775
|
+
style="overflow: hidden scroll;"
|
|
7776
|
+
data-radix-scroll-area-viewport=""
|
|
7777
|
+
>
|
|
7778
|
+
@for (content of tabContents(); track content) {
|
|
7779
|
+
<ng-container [ngTemplateOutlet]="content.template()"></ng-container>
|
|
7780
|
+
}
|
|
7781
|
+
</div>
|
|
7782
|
+
</div>
|
|
7783
|
+
</div>
|
|
7784
|
+
</div>
|
|
7785
|
+
</div>
|
|
7786
|
+
</div>
|
|
7787
|
+
</div>
|
|
7788
|
+
|
|
7789
|
+
<ng-content />
|
|
7790
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7791
|
+
}
|
|
7792
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTabGroup, decorators: [{
|
|
7793
|
+
type: Component,
|
|
7794
|
+
args: [{ selector: 'sc-tab-group', imports: [NgTemplateOutlet], template: `
|
|
7795
|
+
<div class="group relative my-4 flex flex-col space-y-2">
|
|
7796
|
+
<div class="relative mr-auto w-full" dir="ltr" data-orientation="horizontal">
|
|
7797
|
+
<div class="flex items-center justify-between pb-3">
|
|
7798
|
+
<div
|
|
7799
|
+
class="inline-flex h-9 w-full items-center justify-start rounded-none border-b bg-transparent p-0 text-muted-foreground"
|
|
7800
|
+
style="outline: none;"
|
|
7801
|
+
tabindex="0"
|
|
7802
|
+
data-orientation="horizontal"
|
|
7803
|
+
>
|
|
7804
|
+
@for (tab of tabLabels(); track tab) {
|
|
7805
|
+
<ng-container [ngTemplateOutlet]="tab.template()"></ng-container>
|
|
7806
|
+
}
|
|
7807
|
+
</div>
|
|
7808
|
+
</div>
|
|
7809
|
+
<div
|
|
7810
|
+
class="relative mt-2 rounded-md border ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
|
|
7811
|
+
id="radix-:r17g:-content-preview"
|
|
7812
|
+
style="animation-duration: 0s;"
|
|
7813
|
+
tabindex="0"
|
|
7814
|
+
data-state="active"
|
|
7815
|
+
data-orientation="horizontal"
|
|
7816
|
+
>
|
|
7817
|
+
<div class="theme-zinc w-full" style="--radius: 0.5rem;">
|
|
7818
|
+
<div class="preview flex min-h-[350px] w-full items-center justify-center p-10">
|
|
7819
|
+
<div
|
|
7820
|
+
class="relative h-72 w-48 overflow-hidden rounded-md border"
|
|
7821
|
+
dir="ltr"
|
|
7822
|
+
style="position: relative; --radix-scroll-area-corner-width: 0px; --radix-scroll-area-corner-height: 0px;"
|
|
7823
|
+
>
|
|
7824
|
+
<div
|
|
7825
|
+
class="size-full rounded-[inherit]"
|
|
7826
|
+
style="overflow: hidden scroll;"
|
|
7827
|
+
data-radix-scroll-area-viewport=""
|
|
7828
|
+
>
|
|
7829
|
+
@for (content of tabContents(); track content) {
|
|
7830
|
+
<ng-container [ngTemplateOutlet]="content.template()"></ng-container>
|
|
7831
|
+
}
|
|
7832
|
+
</div>
|
|
7833
|
+
</div>
|
|
7834
|
+
</div>
|
|
7835
|
+
</div>
|
|
7836
|
+
</div>
|
|
7837
|
+
</div>
|
|
7838
|
+
</div>
|
|
7839
|
+
|
|
7840
|
+
<ng-content />
|
|
7841
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
7842
|
+
}] });
|
|
7843
|
+
|
|
7844
|
+
class ScTabItem {
|
|
7845
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTabItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7846
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScTabItem, isStandalone: true, selector: "sc-tab-item", ngImport: i0, template: `
|
|
7847
|
+
<ng-content />
|
|
7848
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7849
|
+
}
|
|
7850
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTabItem, decorators: [{
|
|
7851
|
+
type: Component,
|
|
7852
|
+
args: [{ selector: 'sc-tab-item', imports: [], template: `
|
|
7853
|
+
<ng-content />
|
|
7854
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
7855
|
+
}] });
|
|
7856
|
+
|
|
7518
7857
|
const toastVariants = cva('group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full', {
|
|
7519
7858
|
variants: {
|
|
7520
7859
|
variant: {
|
|
@@ -7707,7 +8046,7 @@ class ScToastExample {
|
|
|
7707
8046
|
</ol>
|
|
7708
8047
|
|
|
7709
8048
|
-->
|
|
7710
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScToastClose, selector: "button[sc-toast-close]", inputs: ["class"] }, { kind: "component", type: SvgXIcon, selector: "svg-x-icon", inputs: ["class"
|
|
8049
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScToastClose, selector: "button[sc-toast-close]", inputs: ["class"] }, { kind: "component", type: SvgXIcon, selector: "svg-x-icon", inputs: ["class"] }, { kind: "component", type: ScToastAction, selector: "button[sc-toast-action]", inputs: ["class"] }, { kind: "component", type: ScToastDescription, selector: "p[sc-toast-description]", inputs: ["class"] }, { kind: "component", type: ScToastTitle, selector: "h2[sc-toast-title]", inputs: ["class"] }, { kind: "component", type: ScToast, selector: "li[sc-toast]", inputs: ["variant", "class"] }, { kind: "component", type: ScToastContent, selector: "div[sc-toast-content]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7711
8050
|
}
|
|
7712
8051
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScToastExample, decorators: [{
|
|
7713
8052
|
type: Component,
|
|
@@ -8070,7 +8409,7 @@ class ScCheckbox {
|
|
|
8070
8409
|
} @else if (checked() === true) {
|
|
8071
8410
|
<svg-check-icon [class]="svgClasses()" />
|
|
8072
8411
|
}
|
|
8073
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class"
|
|
8412
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class"] }, { kind: "component", type: SvgMinusIcon, selector: "svg-minus-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
8074
8413
|
}
|
|
8075
8414
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScCheckbox, decorators: [{
|
|
8076
8415
|
type: Component,
|
|
@@ -8110,7 +8449,7 @@ class ScAccordion {
|
|
|
8110
8449
|
<cdk-accordion>
|
|
8111
8450
|
<ng-content />
|
|
8112
8451
|
</cdk-accordion>
|
|
8113
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CdkAccordionModule }, { kind: "directive", type: i1$
|
|
8452
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CdkAccordionModule }, { kind: "directive", type: i1$2.CdkAccordion, selector: "cdk-accordion, [cdkAccordion]", inputs: ["multi"], exportAs: ["cdkAccordion"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
8114
8453
|
}
|
|
8115
8454
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScAccordion, decorators: [{
|
|
8116
8455
|
type: Component,
|
|
@@ -8142,7 +8481,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
8142
8481
|
|
|
8143
8482
|
class ScAccordionTrigger {
|
|
8144
8483
|
class = input('');
|
|
8145
|
-
classes = computed(() => cn('flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]
|
|
8484
|
+
classes = computed(() => cn('flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180', this.class()));
|
|
8146
8485
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8147
8486
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScAccordionTrigger, isStandalone: true, selector: "button[sc-accordion-trigger]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `
|
|
8148
8487
|
<ng-content />
|
|
@@ -8179,7 +8518,7 @@ class ScAccordionItem {
|
|
|
8179
8518
|
<ng-content select="sc-accordion-content" />
|
|
8180
8519
|
}
|
|
8181
8520
|
</cdk-accordion-item>
|
|
8182
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CdkAccordionModule }, { kind: "directive", type: i1$
|
|
8521
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CdkAccordionModule }, { kind: "directive", type: i1$2.CdkAccordionItem, selector: "cdk-accordion-item, [cdkAccordionItem]", inputs: ["expanded", "disabled"], outputs: ["closed", "opened", "destroyed", "expandedChange"], exportAs: ["cdkAccordionItem"] }, { kind: "component", type: SvgChevronDownIcon, selector: "svg-chevron-down-icon", inputs: ["class"] }, { kind: "component", type: SvgChevronUpIcon, selector: "svg-chevron-up-icon", inputs: ["class"] }, { kind: "component", type: ScAccordionHeader, selector: "h3[sc-accordion-header]", inputs: ["class"] }, { kind: "component", type: ScAccordionTrigger, selector: "button[sc-accordion-trigger]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
8183
8522
|
}
|
|
8184
8523
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScAccordionItem, decorators: [{
|
|
8185
8524
|
type: Component,
|
|
@@ -8443,23 +8782,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
8443
8782
|
|
|
8444
8783
|
class ScRadioItem {
|
|
8445
8784
|
state = inject(ScRadioGroupState);
|
|
8446
|
-
id =
|
|
8785
|
+
id = signal(inject(_IdGenerator).getId('sc-radio-item-'));
|
|
8786
|
+
name = computed(() => {
|
|
8787
|
+
return this.state.name();
|
|
8788
|
+
});
|
|
8447
8789
|
value = input.required();
|
|
8448
8790
|
checked = computed(() => {
|
|
8449
8791
|
return this.value() === this.state.selectedValue();
|
|
8450
8792
|
});
|
|
8451
|
-
|
|
8452
|
-
|
|
8793
|
+
disabledByInput = input(false, {
|
|
8794
|
+
alias: 'disabled',
|
|
8795
|
+
transform: booleanAttribute,
|
|
8453
8796
|
});
|
|
8454
|
-
disabled =
|
|
8455
|
-
class = input('
|
|
8456
|
-
|
|
8457
|
-
|
|
8458
|
-
|
|
8459
|
-
|
|
8460
|
-
|
|
8461
|
-
|
|
8462
|
-
radioChecked = output();
|
|
8797
|
+
disabled = computed(() => this.disabledByInput() || this.state.disabled());
|
|
8798
|
+
class = input('');
|
|
8799
|
+
_class = computed(() => cn('flex items-center space-x-2', this.class()));
|
|
8800
|
+
inputClass = input('');
|
|
8801
|
+
_inputClass = computed(() => cn('row-start-1 col-start-1', 'appearance-none aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50', this.inputClass()));
|
|
8802
|
+
svgWrapperClass = input('row-start-1 col-start-1 h-4 w-4 flex items-center justify-center');
|
|
8803
|
+
svgClass = input('');
|
|
8804
|
+
_svgClass = computed(() => cn('h-2.5 w-2.5 fill-primary text-primary', this.svgClass()));
|
|
8463
8805
|
toggle() {
|
|
8464
8806
|
if (this.disabled()) {
|
|
8465
8807
|
return;
|
|
@@ -8467,32 +8809,48 @@ class ScRadioItem {
|
|
|
8467
8809
|
this.state.selectedValue.set(this.value());
|
|
8468
8810
|
}
|
|
8469
8811
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScRadioItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8470
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScRadioItem, isStandalone: true, selector: "sc-radio-item", inputs: {
|
|
8812
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScRadioItem, isStandalone: true, selector: "sc-radio-item", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabledByInput: { classPropertyName: "disabledByInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, svgWrapperClass: { classPropertyName: "svgWrapperClass", publicName: "svgWrapperClass", isSignal: true, isRequired: false, transformFunction: null }, svgClass: { classPropertyName: "svgClass", publicName: "svgClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggle()" }, properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
8471
8813
|
<div class="grid grid-cols-[1fr]">
|
|
8472
|
-
<input
|
|
8814
|
+
<input
|
|
8815
|
+
[id]="id()"
|
|
8816
|
+
[class]="_inputClass()"
|
|
8817
|
+
[disabled]="disabled()"
|
|
8818
|
+
[name]="name()"
|
|
8819
|
+
type="radio"
|
|
8820
|
+
/>
|
|
8473
8821
|
|
|
8474
8822
|
@if (checked() === true) {
|
|
8475
|
-
<
|
|
8823
|
+
<span [class]="svgWrapperClass()">
|
|
8824
|
+
<svg-circle-icon [class]="_svgClass()" />
|
|
8825
|
+
</span>
|
|
8476
8826
|
}
|
|
8477
8827
|
</div>
|
|
8478
8828
|
|
|
8479
8829
|
<label [for]="id()" sc-label><ng-content /></label>
|
|
8480
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCircleIcon, selector: "svg-circle-icon", inputs: ["class"
|
|
8830
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCircleIcon, selector: "svg-circle-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
8481
8831
|
}
|
|
8482
8832
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScRadioItem, decorators: [{
|
|
8483
8833
|
type: Component,
|
|
8484
8834
|
args: [{ selector: 'sc-radio-item', imports: [SvgCircleIcon], template: `
|
|
8485
8835
|
<div class="grid grid-cols-[1fr]">
|
|
8486
|
-
<input
|
|
8836
|
+
<input
|
|
8837
|
+
[id]="id()"
|
|
8838
|
+
[class]="_inputClass()"
|
|
8839
|
+
[disabled]="disabled()"
|
|
8840
|
+
[name]="name()"
|
|
8841
|
+
type="radio"
|
|
8842
|
+
/>
|
|
8487
8843
|
|
|
8488
8844
|
@if (checked() === true) {
|
|
8489
|
-
<
|
|
8845
|
+
<span [class]="svgWrapperClass()">
|
|
8846
|
+
<svg-circle-icon [class]="_svgClass()" />
|
|
8847
|
+
</span>
|
|
8490
8848
|
}
|
|
8491
8849
|
</div>
|
|
8492
8850
|
|
|
8493
8851
|
<label [for]="id()" sc-label><ng-content /></label>
|
|
8494
8852
|
`, host: {
|
|
8495
|
-
'[class]': '
|
|
8853
|
+
'[class]': '_class()',
|
|
8496
8854
|
'(click)': 'toggle()',
|
|
8497
8855
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
8498
8856
|
}] });
|
|
@@ -8712,7 +9070,7 @@ class ScInputOTPSeparator {
|
|
|
8712
9070
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScInputOTPSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8713
9071
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScInputOTPSeparator, isStandalone: true, selector: "sc-input-otp-separator", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `
|
|
8714
9072
|
<svg-dot-icon />
|
|
8715
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgDotIcon, selector: "svg-dot-icon", inputs: ["class"
|
|
9073
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgDotIcon, selector: "svg-dot-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
8716
9074
|
}
|
|
8717
9075
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScInputOTPSeparator, decorators: [{
|
|
8718
9076
|
type: Component,
|
|
@@ -9231,33 +9589,33 @@ class ScAspectRatio {
|
|
|
9231
9589
|
@if (priority()) {
|
|
9232
9590
|
<img
|
|
9233
9591
|
[class]="imageClasses()"
|
|
9234
|
-
[
|
|
9592
|
+
[src]="src()"
|
|
9235
9593
|
[alt]="alt()"
|
|
9236
9594
|
[style]="imageStyle()"
|
|
9237
9595
|
fill
|
|
9238
9596
|
priority
|
|
9239
9597
|
/>
|
|
9240
9598
|
} @else {
|
|
9241
|
-
<img [class]="imageClasses()" [
|
|
9599
|
+
<img [class]="imageClasses()" [src]="src()" [alt]="alt()" [style]="imageStyle()" fill />
|
|
9242
9600
|
}
|
|
9243
9601
|
</div>
|
|
9244
|
-
`, isInline: true, styles: [""],
|
|
9602
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9245
9603
|
}
|
|
9246
9604
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScAspectRatio, decorators: [{
|
|
9247
9605
|
type: Component,
|
|
9248
|
-
args: [{ selector: 'sc-aspect-ratio', imports: [
|
|
9606
|
+
args: [{ selector: 'sc-aspect-ratio', imports: [], template: `
|
|
9249
9607
|
<div [class]="wrapperClass()" [style]="wrapperStyle()">
|
|
9250
9608
|
@if (priority()) {
|
|
9251
9609
|
<img
|
|
9252
9610
|
[class]="imageClasses()"
|
|
9253
|
-
[
|
|
9611
|
+
[src]="src()"
|
|
9254
9612
|
[alt]="alt()"
|
|
9255
9613
|
[style]="imageStyle()"
|
|
9256
9614
|
fill
|
|
9257
9615
|
priority
|
|
9258
9616
|
/>
|
|
9259
9617
|
} @else {
|
|
9260
|
-
<img [class]="imageClasses()" [
|
|
9618
|
+
<img [class]="imageClasses()" [src]="src()" [alt]="alt()" [style]="imageStyle()" fill />
|
|
9261
9619
|
}
|
|
9262
9620
|
</div>
|
|
9263
9621
|
`, host: {
|
|
@@ -9550,7 +9908,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
9550
9908
|
class ScContextMenuTriggerFor {
|
|
9551
9909
|
scContextMenuTriggerFor = input.required();
|
|
9552
9910
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScContextMenuTriggerFor, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
9553
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: ScContextMenuTriggerFor, isStandalone: true, selector: "[scContextMenuTriggerFor]", inputs: { scContextMenuTriggerFor: { classPropertyName: "scContextMenuTriggerFor", publicName: "scContextMenuTriggerFor", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: i1$
|
|
9911
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: ScContextMenuTriggerFor, isStandalone: true, selector: "[scContextMenuTriggerFor]", inputs: { scContextMenuTriggerFor: { classPropertyName: "scContextMenuTriggerFor", publicName: "scContextMenuTriggerFor", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: i1$3.CdkContextMenuTrigger, inputs: ["cdkContextMenuTriggerFor", "scContextMenuTriggerFor"] }], ngImport: i0 });
|
|
9554
9912
|
}
|
|
9555
9913
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScContextMenuTriggerFor, decorators: [{
|
|
9556
9914
|
type: Directive,
|
|
@@ -9569,7 +9927,7 @@ class ScMenu {
|
|
|
9569
9927
|
class = input('');
|
|
9570
9928
|
classes = computed(() => cn('my-2 z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', this.class()));
|
|
9571
9929
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9572
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenu, isStandalone: true, selector: "div[sc-menu]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$
|
|
9930
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenu, isStandalone: true, selector: "div[sc-menu]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$3.CdkMenu }], ngImport: i0, template: `
|
|
9573
9931
|
<ng-content />
|
|
9574
9932
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9575
9933
|
}
|
|
@@ -9639,9 +9997,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
9639
9997
|
|
|
9640
9998
|
class ScMenuGroup {
|
|
9641
9999
|
class = input('');
|
|
9642
|
-
|
|
10000
|
+
_class = computed(() => cn('', this.class()));
|
|
9643
10001
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9644
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuGroup, isStandalone: true, selector: "sc-menu-group", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "
|
|
10002
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuGroup, isStandalone: true, selector: "sc-menu-group", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
9645
10003
|
<ng-content />
|
|
9646
10004
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9647
10005
|
}
|
|
@@ -9650,19 +10008,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
9650
10008
|
args: [{ selector: 'sc-menu-group', imports: [], template: `
|
|
9651
10009
|
<ng-content />
|
|
9652
10010
|
`, host: {
|
|
9653
|
-
'[class]': '
|
|
10011
|
+
'[class]': '_class()',
|
|
9654
10012
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
9655
10013
|
}] });
|
|
9656
10014
|
|
|
9657
10015
|
class ScMenuItem {
|
|
9658
10016
|
class = input('');
|
|
9659
|
-
classes = computed(() => cn('w-full flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&
|
|
10017
|
+
classes = computed(() => cn('w-full flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', this._inset() && 'pl-8', this.class()));
|
|
9660
10018
|
_inset = input(false, {
|
|
9661
10019
|
alias: 'inset',
|
|
9662
10020
|
transform: booleanAttribute,
|
|
9663
10021
|
});
|
|
9664
10022
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9665
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuItem, isStandalone: true, selector: "button[sc-menu-item]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, _inset: { classPropertyName: "_inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$
|
|
10023
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuItem, isStandalone: true, selector: "button[sc-menu-item]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, _inset: { classPropertyName: "_inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$3.CdkMenuItem }], ngImport: i0, template: `
|
|
9666
10024
|
<ng-content />
|
|
9667
10025
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9668
10026
|
}
|
|
@@ -9692,14 +10050,14 @@ class ScMenuCheckboxItem {
|
|
|
9692
10050
|
});
|
|
9693
10051
|
scTriggered = output();
|
|
9694
10052
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuCheckboxItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9695
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScMenuCheckboxItem, isStandalone: true, selector: "button[sc-menu-checkbox-item]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, scChecked: { classPropertyName: "scChecked", publicName: "scChecked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scTriggered: "scTriggered" }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$
|
|
10053
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScMenuCheckboxItem, isStandalone: true, selector: "button[sc-menu-checkbox-item]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, scChecked: { classPropertyName: "scChecked", publicName: "scChecked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scTriggered: "scTriggered" }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$3.CdkMenuItemCheckbox, inputs: ["cdkMenuItemChecked", "scChecked"], outputs: ["cdkMenuItemTriggered", "scTriggered"] }], ngImport: i0, template: `
|
|
9696
10054
|
@if (scChecked()) {
|
|
9697
10055
|
<span class="absolute left-2 flex size-3.5 items-center justify-center">
|
|
9698
10056
|
<svg-check-icon class="size-4" />
|
|
9699
10057
|
</span>
|
|
9700
10058
|
}
|
|
9701
10059
|
<ng-content />
|
|
9702
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class"
|
|
10060
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9703
10061
|
}
|
|
9704
10062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuCheckboxItem, decorators: [{
|
|
9705
10063
|
type: Component,
|
|
@@ -9725,7 +10083,7 @@ class ScMenuRadioGroup {
|
|
|
9725
10083
|
class = input('');
|
|
9726
10084
|
classes = computed(() => cn('', this.class()));
|
|
9727
10085
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9728
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuRadioGroup, isStandalone: true, selector: "div[sc-menu-radio-group]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$
|
|
10086
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuRadioGroup, isStandalone: true, selector: "div[sc-menu-radio-group]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$3.CdkMenuGroup }], ngImport: i0, template: `
|
|
9729
10087
|
<ng-content />
|
|
9730
10088
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9731
10089
|
}
|
|
@@ -9743,13 +10101,13 @@ class ScMenuRadioItem {
|
|
|
9743
10101
|
classes = computed(() => cn('relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50', this.class()));
|
|
9744
10102
|
value = input('');
|
|
9745
10103
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuRadioItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9746
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuRadioItem, isStandalone: true, selector: "button[sc-menu-radio-item]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$
|
|
10104
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuRadioItem, isStandalone: true, selector: "button[sc-menu-radio-item]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$3.CdkMenuItemRadio }], ngImport: i0, template: `
|
|
9747
10105
|
<span class="absolute left-2 flex size-3.5 items-center justify-center">
|
|
9748
10106
|
<svg-circle-icon class="size-2 fill-current" />
|
|
9749
10107
|
</span>
|
|
9750
10108
|
|
|
9751
10109
|
<ng-content />
|
|
9752
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCircleIcon, selector: "svg-circle-icon", inputs: ["class"
|
|
10110
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCircleIcon, selector: "svg-circle-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9753
10111
|
}
|
|
9754
10112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuRadioItem, decorators: [{
|
|
9755
10113
|
type: Component,
|
|
@@ -9767,7 +10125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
9767
10125
|
class ScMenuTriggerFor {
|
|
9768
10126
|
scMenuTriggerFor = input.required();
|
|
9769
10127
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuTriggerFor, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
9770
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuTriggerFor, isStandalone: true, selector: "[scMenuTriggerFor]", inputs: { scMenuTriggerFor: { classPropertyName: "scMenuTriggerFor", publicName: "scMenuTriggerFor", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: i1$
|
|
10128
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuTriggerFor, isStandalone: true, selector: "[scMenuTriggerFor]", inputs: { scMenuTriggerFor: { classPropertyName: "scMenuTriggerFor", publicName: "scMenuTriggerFor", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: i1$3.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "scMenuTriggerFor"] }], ngImport: i0 });
|
|
9771
10129
|
}
|
|
9772
10130
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuTriggerFor, decorators: [{
|
|
9773
10131
|
type: Directive,
|
|
@@ -9786,7 +10144,7 @@ class ScMenuCheckboxGroup {
|
|
|
9786
10144
|
class = input('');
|
|
9787
10145
|
classes = computed(() => cn('', this.class()));
|
|
9788
10146
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuCheckboxGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9789
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuCheckboxGroup, isStandalone: true, selector: "div[sc-menu-checkbox-group]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$
|
|
10147
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuCheckboxGroup, isStandalone: true, selector: "div[sc-menu-checkbox-group]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$3.CdkMenuGroup }], ngImport: i0, template: `
|
|
9790
10148
|
<ng-content />
|
|
9791
10149
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9792
10150
|
}
|
|
@@ -9803,7 +10161,7 @@ class ScMenuBar {
|
|
|
9803
10161
|
class = input('');
|
|
9804
10162
|
classes = computed(() => cn('flex h-10 items-center space-x-1 rounded-md border bg-background p-1', this.class()));
|
|
9805
10163
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9806
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuBar, isStandalone: true, selector: "div[sc-menu-bar]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$
|
|
10164
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuBar, isStandalone: true, selector: "div[sc-menu-bar]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$3.CdkMenuBar }], ngImport: i0, template: `
|
|
9807
10165
|
<ng-content />
|
|
9808
10166
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9809
10167
|
}
|
|
@@ -9820,7 +10178,7 @@ class ScMenuBarItem {
|
|
|
9820
10178
|
class = input('');
|
|
9821
10179
|
classes = computed(() => cn('flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground', this.class()));
|
|
9822
10180
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScMenuBarItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9823
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuBarItem, isStandalone: true, selector: "button[sc-menu-bar-item]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$
|
|
10181
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScMenuBarItem, isStandalone: true, selector: "button[sc-menu-bar-item]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1$3.CdkMenuItem }], ngImport: i0, template: `
|
|
9824
10182
|
<ng-content />
|
|
9825
10183
|
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9826
10184
|
}
|
|
@@ -9861,7 +10219,7 @@ class ScCommandInput {
|
|
|
9861
10219
|
class="flex h-12 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50"
|
|
9862
10220
|
[placeholder]="placeholder()"
|
|
9863
10221
|
/>
|
|
9864
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgSearchIcon, selector: "svg-search-icon", inputs: ["class"
|
|
10222
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgSearchIcon, selector: "svg-search-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9865
10223
|
}
|
|
9866
10224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScCommandInput, decorators: [{
|
|
9867
10225
|
type: Component,
|
|
@@ -9949,7 +10307,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
9949
10307
|
|
|
9950
10308
|
class ScCommandItem {
|
|
9951
10309
|
class = input('');
|
|
9952
|
-
classes = computed(() => cn("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&
|
|
10310
|
+
classes = computed(() => cn("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", this.class()));
|
|
9953
10311
|
disabled = input(false, {
|
|
9954
10312
|
transform: booleanAttribute,
|
|
9955
10313
|
});
|
|
@@ -10090,7 +10448,7 @@ class ScCollapsible {
|
|
|
10090
10448
|
}
|
|
10091
10449
|
</cdk-accordion-item>
|
|
10092
10450
|
</cdk-accordion>
|
|
10093
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CdkAccordionModule }, { kind: "directive", type: i1$
|
|
10451
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CdkAccordionModule }, { kind: "directive", type: i1$2.CdkAccordion, selector: "cdk-accordion, [cdkAccordion]", inputs: ["multi"], exportAs: ["cdkAccordion"] }, { kind: "directive", type: i1$2.CdkAccordionItem, selector: "cdk-accordion-item, [cdkAccordionItem]", inputs: ["expanded", "disabled"], outputs: ["closed", "opened", "destroyed", "expandedChange"], exportAs: ["cdkAccordionItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
10094
10452
|
}
|
|
10095
10453
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScCollapsible, decorators: [{
|
|
10096
10454
|
type: Component,
|
|
@@ -10188,7 +10546,7 @@ class ScSidebarToggler {
|
|
|
10188
10546
|
<ng-content />
|
|
10189
10547
|
<span class="sr-only">Toggle Sidebar</span>
|
|
10190
10548
|
</button>
|
|
10191
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
10549
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
10192
10550
|
}
|
|
10193
10551
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSidebarToggler, decorators: [{
|
|
10194
10552
|
type: Component,
|
|
@@ -10236,7 +10594,7 @@ class ScSidebarMobile {
|
|
|
10236
10594
|
|
|
10237
10595
|
<ng-content />
|
|
10238
10596
|
</div>
|
|
10239
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScSidebarToggler, selector: "sc-sidebar-toggler" }, { kind: "component", type: SvgXIcon, selector: "svg-x-icon", inputs: ["class"
|
|
10597
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScSidebarToggler, selector: "sc-sidebar-toggler" }, { kind: "component", type: SvgXIcon, selector: "svg-x-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
10240
10598
|
}
|
|
10241
10599
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSidebarMobile, decorators: [{
|
|
10242
10600
|
type: Component,
|
|
@@ -10398,7 +10756,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
10398
10756
|
|
|
10399
10757
|
class ScAutocompleteItem {
|
|
10400
10758
|
class = input('');
|
|
10401
|
-
classes = computed(() => cn('relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none hover:bg-accent hover:text-accent-foreground data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&
|
|
10759
|
+
classes = computed(() => cn('relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none hover:bg-accent hover:text-accent-foreground data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', this.class()));
|
|
10402
10760
|
_disabled = input(false, {
|
|
10403
10761
|
transform: booleanAttribute,
|
|
10404
10762
|
});
|
|
@@ -10425,7 +10783,7 @@ class ScAutocompleteItem {
|
|
|
10425
10783
|
@if (isSelected()) {
|
|
10426
10784
|
<svg-check-icon class="ml-auto" />
|
|
10427
10785
|
}
|
|
10428
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class"
|
|
10786
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
10429
10787
|
}
|
|
10430
10788
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScAutocompleteItem, decorators: [{
|
|
10431
10789
|
type: Component,
|
|
@@ -10620,7 +10978,7 @@ class ScTimeOption {
|
|
|
10620
10978
|
}
|
|
10621
10979
|
|
|
10622
10980
|
<ng-content />
|
|
10623
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class"
|
|
10981
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCheckIcon, selector: "svg-check-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
10624
10982
|
}
|
|
10625
10983
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTimeOption, decorators: [{
|
|
10626
10984
|
type: Component,
|
|
@@ -10657,6 +11015,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
10657
11015
|
}] });
|
|
10658
11016
|
|
|
10659
11017
|
class ScTimePicker {
|
|
11018
|
+
settings = inject(ScSettings);
|
|
11019
|
+
clock = input(undefined);
|
|
11020
|
+
_clock = computed(() => {
|
|
11021
|
+
if (this.clock() !== undefined) {
|
|
11022
|
+
return this.clock();
|
|
11023
|
+
}
|
|
11024
|
+
return this.settings.clock();
|
|
11025
|
+
});
|
|
10660
11026
|
class = input('');
|
|
10661
11027
|
classes = computed(() => cn('flex relative', this.class()));
|
|
10662
11028
|
_overlay = inject(Overlay);
|
|
@@ -10948,11 +11314,11 @@ class ScTimePicker {
|
|
|
10948
11314
|
});
|
|
10949
11315
|
}
|
|
10950
11316
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTimePicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10951
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScTimePicker, isStandalone: true, selector: "sc-time-picker", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected", opened: "opened", closed: "closed" }, host: { properties: { "class": "classes()" } }, viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true, isSignal: true }, { propertyName: "_panelTemplate", first: true, predicate: ["panelTemplate"], descendants: true, isSignal: true }, { propertyName: "_options", predicate: ScTimeOption, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
11317
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScTimePicker, isStandalone: true, selector: "sc-time-picker", inputs: { clock: { classPropertyName: "clock", publicName: "clock", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected", opened: "opened", closed: "closed" }, host: { properties: { "class": "classes()" } }, viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true, isSignal: true }, { propertyName: "_panelTemplate", first: true, predicate: ["panelTemplate"], descendants: true, isSignal: true }, { propertyName: "_options", predicate: ScTimeOption, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
10952
11318
|
<button class="absolute inset-y-0 end-0 pe-4" (click)="open()" sc-button variant="ghost">
|
|
10953
11319
|
<svg-clock-icon />
|
|
10954
11320
|
</button>
|
|
10955
|
-
<input #input scTimePickerInput type="text" placeholder="
|
|
11321
|
+
<input #input scTimePickerInput type="text" placeholder="hh:mm" />
|
|
10956
11322
|
|
|
10957
11323
|
<ng-template #panelTemplate>
|
|
10958
11324
|
<div
|
|
@@ -10969,7 +11335,7 @@ class ScTimePicker {
|
|
|
10969
11335
|
}
|
|
10970
11336
|
</div>
|
|
10971
11337
|
</ng-template>
|
|
10972
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgClockIcon, selector: "svg-clock-icon", inputs: ["class"
|
|
11338
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgClockIcon, selector: "svg-clock-icon", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }, { kind: "component", type: ScTimeOption, selector: "sc-time-option", inputs: ["class", "disabled", "value"], outputs: ["selected"] }, { kind: "directive", type: ScTimePickerInput, selector: "[scTimePickerInput]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
10973
11339
|
}
|
|
10974
11340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScTimePicker, decorators: [{
|
|
10975
11341
|
type: Component,
|
|
@@ -10977,7 +11343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
10977
11343
|
<button class="absolute inset-y-0 end-0 pe-4" (click)="open()" sc-button variant="ghost">
|
|
10978
11344
|
<svg-clock-icon />
|
|
10979
11345
|
</button>
|
|
10980
|
-
<input #input scTimePickerInput type="text" placeholder="
|
|
11346
|
+
<input #input scTimePickerInput type="text" placeholder="hh:mm" />
|
|
10981
11347
|
|
|
10982
11348
|
<ng-template #panelTemplate>
|
|
10983
11349
|
<div
|
|
@@ -11007,9 +11373,750 @@ function scrollOptionIntoView(option, position) {
|
|
|
11007
11373
|
option._getHostElement().scrollIntoView({ block: position, inline: position });
|
|
11008
11374
|
}
|
|
11009
11375
|
|
|
11376
|
+
class ScImage {
|
|
11377
|
+
class = input('');
|
|
11378
|
+
_class = computed(() => cn('', this.class()));
|
|
11379
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScImage, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11380
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScImage, isStandalone: true, selector: "img[sc-image]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
11381
|
+
<ng-content />
|
|
11382
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11383
|
+
}
|
|
11384
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScImage, decorators: [{
|
|
11385
|
+
type: Component,
|
|
11386
|
+
args: [{ selector: 'img[sc-image]', imports: [], template: `
|
|
11387
|
+
<ng-content />
|
|
11388
|
+
`, host: {
|
|
11389
|
+
'[class]': '_class()',
|
|
11390
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
11391
|
+
}] });
|
|
11392
|
+
|
|
11393
|
+
class ScFileUpload {
|
|
11394
|
+
class = input('');
|
|
11395
|
+
_class = computed(() => cn('', this.class()));
|
|
11396
|
+
selectedFile = signal(undefined);
|
|
11397
|
+
handleFileChange(event) {
|
|
11398
|
+
const target = event.target;
|
|
11399
|
+
const files = target.files;
|
|
11400
|
+
console.log(files);
|
|
11401
|
+
const file = files[0];
|
|
11402
|
+
if (file) {
|
|
11403
|
+
const reader = new FileReader();
|
|
11404
|
+
reader.onloadend = () => {
|
|
11405
|
+
this.selectedFile.set(reader.result);
|
|
11406
|
+
};
|
|
11407
|
+
reader.readAsDataURL(file);
|
|
11408
|
+
}
|
|
11409
|
+
}
|
|
11410
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScFileUpload, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11411
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScFileUpload, isStandalone: true, selector: "sc-file-upload", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
11412
|
+
<div class="grid w-full max-w-sm items-center gap-1.5">
|
|
11413
|
+
<label sc-label for="picture">Picture</label>
|
|
11414
|
+
<input id="picture" (change)="handleFileChange($event)" sc-input type="file" />
|
|
11415
|
+
@if (selectedFile()) {
|
|
11416
|
+
<div class="mt-2">
|
|
11417
|
+
<img
|
|
11418
|
+
class="rounded-md"
|
|
11419
|
+
[src]="selectedFile()"
|
|
11420
|
+
sc-image
|
|
11421
|
+
alt="Preview"
|
|
11422
|
+
width="500"
|
|
11423
|
+
height="500"
|
|
11424
|
+
/>
|
|
11425
|
+
</div>
|
|
11426
|
+
}
|
|
11427
|
+
</div>
|
|
11428
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScLabel, selector: "label[sc-label]", inputs: ["class"] }, { kind: "component", type: ScInput, selector: "input[sc-input]", inputs: ["class"] }, { kind: "component", type: ScImage, selector: "img[sc-image]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11429
|
+
}
|
|
11430
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScFileUpload, decorators: [{
|
|
11431
|
+
type: Component,
|
|
11432
|
+
args: [{ selector: 'sc-file-upload', imports: [ScLabel, ScInput, ScImage], template: `
|
|
11433
|
+
<div class="grid w-full max-w-sm items-center gap-1.5">
|
|
11434
|
+
<label sc-label for="picture">Picture</label>
|
|
11435
|
+
<input id="picture" (change)="handleFileChange($event)" sc-input type="file" />
|
|
11436
|
+
@if (selectedFile()) {
|
|
11437
|
+
<div class="mt-2">
|
|
11438
|
+
<img
|
|
11439
|
+
class="rounded-md"
|
|
11440
|
+
[src]="selectedFile()"
|
|
11441
|
+
sc-image
|
|
11442
|
+
alt="Preview"
|
|
11443
|
+
width="500"
|
|
11444
|
+
height="500"
|
|
11445
|
+
/>
|
|
11446
|
+
</div>
|
|
11447
|
+
}
|
|
11448
|
+
</div>
|
|
11449
|
+
`, host: {
|
|
11450
|
+
'[class]': '_class()',
|
|
11451
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
11452
|
+
}] });
|
|
11453
|
+
|
|
11454
|
+
class ScDropZone {
|
|
11455
|
+
isDragActive = signal(false);
|
|
11456
|
+
isDisabled = input(false);
|
|
11457
|
+
class = input('');
|
|
11458
|
+
_class = computed(() => cn('group relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed border-muted-foreground/25 px-5 py-2.5 text-center transition hover:bg-muted/25', 'ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', this.isDragActive() && 'border-muted-foreground/50', this.isDisabled() && 'pointer-events-none opacity-60', this.class()));
|
|
11459
|
+
handleDragOver(event) {
|
|
11460
|
+
if (this.isDisabled()) {
|
|
11461
|
+
event.preventDefault();
|
|
11462
|
+
event.stopPropagation();
|
|
11463
|
+
}
|
|
11464
|
+
else {
|
|
11465
|
+
this.isDragActive.set(true);
|
|
11466
|
+
}
|
|
11467
|
+
}
|
|
11468
|
+
handleDragLeave(event) {
|
|
11469
|
+
if (this.isDisabled()) {
|
|
11470
|
+
event.preventDefault();
|
|
11471
|
+
event.stopPropagation();
|
|
11472
|
+
}
|
|
11473
|
+
else {
|
|
11474
|
+
this.isDragActive.set(false);
|
|
11475
|
+
}
|
|
11476
|
+
}
|
|
11477
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScDropZone, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
11478
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: ScDropZone, isStandalone: true, selector: "[scDropZone]", inputs: { isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "dragover": "handleDragOver($event)", "dragleave": "handleDragLeave($event)" }, properties: { "class": "_class()" } }, exportAs: ["scDropZone"], ngImport: i0 });
|
|
11479
|
+
}
|
|
11480
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScDropZone, decorators: [{
|
|
11481
|
+
type: Directive,
|
|
11482
|
+
args: [{
|
|
11483
|
+
selector: '[scDropZone]',
|
|
11484
|
+
exportAs: 'scDropZone',
|
|
11485
|
+
host: {
|
|
11486
|
+
'[class]': '_class()',
|
|
11487
|
+
'(dragover)': 'handleDragOver($event)',
|
|
11488
|
+
'(dragleave)': 'handleDragLeave($event)',
|
|
11489
|
+
},
|
|
11490
|
+
}]
|
|
11491
|
+
}] });
|
|
11492
|
+
|
|
11493
|
+
class ScFilePreview {
|
|
11494
|
+
file = input.required();
|
|
11495
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScFilePreview, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11496
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScFilePreview, isStandalone: true, selector: "sc-file-preview", inputs: { file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
11497
|
+
@if (file().file.type.startsWith('image/')) {
|
|
11498
|
+
<img
|
|
11499
|
+
class="aspect-square shrink-0 rounded-md object-cover"
|
|
11500
|
+
[src]="file().preview"
|
|
11501
|
+
[alt]="file().file.name"
|
|
11502
|
+
width="48"
|
|
11503
|
+
height="48"
|
|
11504
|
+
loading="lazy"
|
|
11505
|
+
/>
|
|
11506
|
+
} @else {
|
|
11507
|
+
<svg-file-text-icon class="size-10 text-muted-foreground" aria-hidden="true" />
|
|
11508
|
+
}
|
|
11509
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgFileTextIcon, selector: "svg-file-text-icon", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11510
|
+
}
|
|
11511
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScFilePreview, decorators: [{
|
|
11512
|
+
type: Component,
|
|
11513
|
+
args: [{ selector: 'sc-file-preview', imports: [SvgFileTextIcon], template: `
|
|
11514
|
+
@if (file().file.type.startsWith('image/')) {
|
|
11515
|
+
<img
|
|
11516
|
+
class="aspect-square shrink-0 rounded-md object-cover"
|
|
11517
|
+
[src]="file().preview"
|
|
11518
|
+
[alt]="file().file.name"
|
|
11519
|
+
width="48"
|
|
11520
|
+
height="48"
|
|
11521
|
+
loading="lazy"
|
|
11522
|
+
/>
|
|
11523
|
+
} @else {
|
|
11524
|
+
<svg-file-text-icon class="size-10 text-muted-foreground" aria-hidden="true" />
|
|
11525
|
+
}
|
|
11526
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
11527
|
+
}] });
|
|
11528
|
+
|
|
11529
|
+
function formatBytes(bytes, opts = {}) {
|
|
11530
|
+
const { decimals = 0, sizeType = 'normal' } = opts;
|
|
11531
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
|
|
11532
|
+
const accurateSizes = ['Bytes', 'KiB', 'MiB', 'GiB', 'TiB'];
|
|
11533
|
+
if (bytes === 0)
|
|
11534
|
+
return '0 Byte';
|
|
11535
|
+
const i = Math.floor(Math.log(bytes) / Math.log(1024));
|
|
11536
|
+
return `${(bytes / Math.pow(1024, i)).toFixed(decimals)} ${sizeType === 'accurate' ? (accurateSizes[i] ?? 'Bytes') : (sizes[i] ?? 'Bytes')}`;
|
|
11537
|
+
}
|
|
11538
|
+
|
|
11539
|
+
class ScFileCard {
|
|
11540
|
+
index = input.required();
|
|
11541
|
+
file = input.required();
|
|
11542
|
+
progress = input(undefined);
|
|
11543
|
+
removed = output();
|
|
11544
|
+
formatedSize = computed(() => formatBytes(this.file().file.size));
|
|
11545
|
+
remove() {
|
|
11546
|
+
this.removed.emit(this.index());
|
|
11547
|
+
}
|
|
11548
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScFileCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11549
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScFileCard, isStandalone: true, selector: "sc-file-card", inputs: { index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: true, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removed: "removed" }, ngImport: i0, template: `
|
|
11550
|
+
<div class="relative flex items-center gap-2.5">
|
|
11551
|
+
<div class="flex flex-1 gap-2.5">
|
|
11552
|
+
@if (file().preview) {
|
|
11553
|
+
<sc-file-preview [file]="file()" />
|
|
11554
|
+
}
|
|
11555
|
+
|
|
11556
|
+
<div class="flex w-full flex-col gap-2">
|
|
11557
|
+
<div class="flex flex-col gap-px">
|
|
11558
|
+
<p class="line-clamp-1 text-sm font-medium text-foreground/80">
|
|
11559
|
+
{{ file().file.name }}
|
|
11560
|
+
</p>
|
|
11561
|
+
<p class="text-xs text-muted-foreground">
|
|
11562
|
+
{{ formatedSize() }}
|
|
11563
|
+
</p>
|
|
11564
|
+
</div>
|
|
11565
|
+
|
|
11566
|
+
@let p = progress();
|
|
11567
|
+
@if (p) {
|
|
11568
|
+
<sc-progress [value]="p" />
|
|
11569
|
+
}
|
|
11570
|
+
</div>
|
|
11571
|
+
</div>
|
|
11572
|
+
<div class="flex items-center gap-2">
|
|
11573
|
+
<button
|
|
11574
|
+
class="size-7"
|
|
11575
|
+
(click)="remove()"
|
|
11576
|
+
sc-button
|
|
11577
|
+
type="button"
|
|
11578
|
+
variant="outline"
|
|
11579
|
+
size="icon"
|
|
11580
|
+
>
|
|
11581
|
+
<svg-x-icon class="size-4" aria-hidden="true" />
|
|
11582
|
+
<span class="sr-only">Remove file</span>
|
|
11583
|
+
</button>
|
|
11584
|
+
</div>
|
|
11585
|
+
</div>
|
|
11586
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgXIcon, selector: "svg-x-icon", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }, { kind: "component", type: ScFilePreview, selector: "sc-file-preview", inputs: ["file"] }, { kind: "component", type: ScProgress, selector: "sc-progress", inputs: ["class", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11587
|
+
}
|
|
11588
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScFileCard, decorators: [{
|
|
11589
|
+
type: Component,
|
|
11590
|
+
args: [{ selector: 'sc-file-card', imports: [SvgXIcon, ScButton, ScFilePreview, ScProgress], template: `
|
|
11591
|
+
<div class="relative flex items-center gap-2.5">
|
|
11592
|
+
<div class="flex flex-1 gap-2.5">
|
|
11593
|
+
@if (file().preview) {
|
|
11594
|
+
<sc-file-preview [file]="file()" />
|
|
11595
|
+
}
|
|
11596
|
+
|
|
11597
|
+
<div class="flex w-full flex-col gap-2">
|
|
11598
|
+
<div class="flex flex-col gap-px">
|
|
11599
|
+
<p class="line-clamp-1 text-sm font-medium text-foreground/80">
|
|
11600
|
+
{{ file().file.name }}
|
|
11601
|
+
</p>
|
|
11602
|
+
<p class="text-xs text-muted-foreground">
|
|
11603
|
+
{{ formatedSize() }}
|
|
11604
|
+
</p>
|
|
11605
|
+
</div>
|
|
11606
|
+
|
|
11607
|
+
@let p = progress();
|
|
11608
|
+
@if (p) {
|
|
11609
|
+
<sc-progress [value]="p" />
|
|
11610
|
+
}
|
|
11611
|
+
</div>
|
|
11612
|
+
</div>
|
|
11613
|
+
<div class="flex items-center gap-2">
|
|
11614
|
+
<button
|
|
11615
|
+
class="size-7"
|
|
11616
|
+
(click)="remove()"
|
|
11617
|
+
sc-button
|
|
11618
|
+
type="button"
|
|
11619
|
+
variant="outline"
|
|
11620
|
+
size="icon"
|
|
11621
|
+
>
|
|
11622
|
+
<svg-x-icon class="size-4" aria-hidden="true" />
|
|
11623
|
+
<span class="sr-only">Remove file</span>
|
|
11624
|
+
</button>
|
|
11625
|
+
</div>
|
|
11626
|
+
</div>
|
|
11627
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
11628
|
+
}] });
|
|
11629
|
+
|
|
11630
|
+
class ScFileUploader {
|
|
11631
|
+
class = input('');
|
|
11632
|
+
_class = computed(() => cn('relative flex flex-col gap-6 overflow-hidden', this.class()));
|
|
11633
|
+
maxSize = input(1024 * 1024 * 2);
|
|
11634
|
+
maxFiles = input(1);
|
|
11635
|
+
files = signal([]);
|
|
11636
|
+
multiple = computed(() => this.maxFiles() > 1);
|
|
11637
|
+
progresses = input();
|
|
11638
|
+
uploadInfo() {
|
|
11639
|
+
return this.maxFiles() > 1
|
|
11640
|
+
? ` ${this.maxFiles()} files (up to ${formatBytes(this.maxSize())} each)`
|
|
11641
|
+
: ` a file with ${formatBytes(this.maxSize())}`;
|
|
11642
|
+
}
|
|
11643
|
+
onRemove(index) {
|
|
11644
|
+
if (!this.files)
|
|
11645
|
+
return;
|
|
11646
|
+
this.files.update((files) => files.filter((_, i) => i !== index));
|
|
11647
|
+
}
|
|
11648
|
+
handleFileChange(event) {
|
|
11649
|
+
const target = event.target;
|
|
11650
|
+
const files = target.files;
|
|
11651
|
+
const acceptedFiles = Array.from(files);
|
|
11652
|
+
acceptedFiles.forEach((file) => {
|
|
11653
|
+
const reader = new FileReader();
|
|
11654
|
+
reader.onloadend = () => {
|
|
11655
|
+
const scFile = { file: file, preview: reader.result };
|
|
11656
|
+
this.files.update((files) => [...files, scFile]);
|
|
11657
|
+
};
|
|
11658
|
+
reader.readAsDataURL(file);
|
|
11659
|
+
});
|
|
11660
|
+
}
|
|
11661
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScFileUploader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11662
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScFileUploader, isStandalone: true, selector: "sc-file-uploader", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, maxFiles: { classPropertyName: "maxFiles", publicName: "maxFiles", isSignal: true, isRequired: false, transformFunction: null }, progresses: { classPropertyName: "progresses", publicName: "progresses", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
11663
|
+
<!-- Dropzone -->
|
|
11664
|
+
<div #scDropZone="scDropZone" scDropZone>
|
|
11665
|
+
<input
|
|
11666
|
+
class="absolute left-0 top-0 size-full cursor-pointer opacity-0"
|
|
11667
|
+
[multiple]="multiple()"
|
|
11668
|
+
(change)="handleFileChange($event)"
|
|
11669
|
+
accept="image/*"
|
|
11670
|
+
tabindex="-1"
|
|
11671
|
+
type="file"
|
|
11672
|
+
/>
|
|
11673
|
+
|
|
11674
|
+
@if (scDropZone.isDragActive()) {
|
|
11675
|
+
<div class="flex flex-col items-center justify-center gap-4 sm:px-5">
|
|
11676
|
+
<div class="rounded-full border border-dashed p-3">
|
|
11677
|
+
<svg-upload-icon class="size-7 text-muted-foreground" aria-hidden="true" />
|
|
11678
|
+
</div>
|
|
11679
|
+
<p class="font-medium text-muted-foreground">Drop the files here</p>
|
|
11680
|
+
</div>
|
|
11681
|
+
} @else {
|
|
11682
|
+
<div class="flex flex-col items-center justify-center gap-4 sm:px-5">
|
|
11683
|
+
<div class="rounded-full border border-dashed p-3">
|
|
11684
|
+
<svg-upload-icon class="size-7 text-muted-foreground" aria-hidden="true" />
|
|
11685
|
+
</div>
|
|
11686
|
+
<div class="flex flex-col gap-px">
|
|
11687
|
+
<p class="font-medium text-muted-foreground">
|
|
11688
|
+
Drag 'n' drop your files here, or click to select files
|
|
11689
|
+
</p>
|
|
11690
|
+
<p class="text-sm text-muted-foreground/70">You can upload {{ uploadInfo() }}</p>
|
|
11691
|
+
</div>
|
|
11692
|
+
</div>
|
|
11693
|
+
}
|
|
11694
|
+
</div>
|
|
11695
|
+
<!-- fin Dropzone -->
|
|
11696
|
+
|
|
11697
|
+
<div class="h-fit w-full px-3">
|
|
11698
|
+
<div class="flex max-h-48 flex-col gap-4">
|
|
11699
|
+
@for (file of files(); track $index; let index = $index) {
|
|
11700
|
+
<sc-file-card
|
|
11701
|
+
[file]="file"
|
|
11702
|
+
[index]="index"
|
|
11703
|
+
[progress]="progresses()?.[file.file.name]"
|
|
11704
|
+
(removed)="onRemove($event)"
|
|
11705
|
+
/>
|
|
11706
|
+
}
|
|
11707
|
+
</div>
|
|
11708
|
+
</div>
|
|
11709
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgUploadIcon, selector: "svg-upload-icon", inputs: ["class"] }, { kind: "component", type: ScFileCard, selector: "sc-file-card", inputs: ["index", "file", "progress"], outputs: ["removed"] }, { kind: "directive", type: ScDropZone, selector: "[scDropZone]", inputs: ["isDisabled", "class"], exportAs: ["scDropZone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11710
|
+
}
|
|
11711
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScFileUploader, decorators: [{
|
|
11712
|
+
type: Component,
|
|
11713
|
+
args: [{ selector: 'sc-file-uploader', imports: [SvgUploadIcon, ScFileCard, ScDropZone], template: `
|
|
11714
|
+
<!-- Dropzone -->
|
|
11715
|
+
<div #scDropZone="scDropZone" scDropZone>
|
|
11716
|
+
<input
|
|
11717
|
+
class="absolute left-0 top-0 size-full cursor-pointer opacity-0"
|
|
11718
|
+
[multiple]="multiple()"
|
|
11719
|
+
(change)="handleFileChange($event)"
|
|
11720
|
+
accept="image/*"
|
|
11721
|
+
tabindex="-1"
|
|
11722
|
+
type="file"
|
|
11723
|
+
/>
|
|
11724
|
+
|
|
11725
|
+
@if (scDropZone.isDragActive()) {
|
|
11726
|
+
<div class="flex flex-col items-center justify-center gap-4 sm:px-5">
|
|
11727
|
+
<div class="rounded-full border border-dashed p-3">
|
|
11728
|
+
<svg-upload-icon class="size-7 text-muted-foreground" aria-hidden="true" />
|
|
11729
|
+
</div>
|
|
11730
|
+
<p class="font-medium text-muted-foreground">Drop the files here</p>
|
|
11731
|
+
</div>
|
|
11732
|
+
} @else {
|
|
11733
|
+
<div class="flex flex-col items-center justify-center gap-4 sm:px-5">
|
|
11734
|
+
<div class="rounded-full border border-dashed p-3">
|
|
11735
|
+
<svg-upload-icon class="size-7 text-muted-foreground" aria-hidden="true" />
|
|
11736
|
+
</div>
|
|
11737
|
+
<div class="flex flex-col gap-px">
|
|
11738
|
+
<p class="font-medium text-muted-foreground">
|
|
11739
|
+
Drag 'n' drop your files here, or click to select files
|
|
11740
|
+
</p>
|
|
11741
|
+
<p class="text-sm text-muted-foreground/70">You can upload {{ uploadInfo() }}</p>
|
|
11742
|
+
</div>
|
|
11743
|
+
</div>
|
|
11744
|
+
}
|
|
11745
|
+
</div>
|
|
11746
|
+
<!-- fin Dropzone -->
|
|
11747
|
+
|
|
11748
|
+
<div class="h-fit w-full px-3">
|
|
11749
|
+
<div class="flex max-h-48 flex-col gap-4">
|
|
11750
|
+
@for (file of files(); track $index; let index = $index) {
|
|
11751
|
+
<sc-file-card
|
|
11752
|
+
[file]="file"
|
|
11753
|
+
[index]="index"
|
|
11754
|
+
[progress]="progresses()?.[file.file.name]"
|
|
11755
|
+
(removed)="onRemove($event)"
|
|
11756
|
+
/>
|
|
11757
|
+
}
|
|
11758
|
+
</div>
|
|
11759
|
+
</div>
|
|
11760
|
+
`, host: {
|
|
11761
|
+
'[class]': '_class()',
|
|
11762
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
11763
|
+
}] });
|
|
11764
|
+
|
|
11765
|
+
class ScSingleFileUploader {
|
|
11766
|
+
dataService = inject(DataService);
|
|
11767
|
+
class = input('');
|
|
11768
|
+
_class = computed(() => cn('relative flex flex-col gap-6 overflow-hidden', this.class()));
|
|
11769
|
+
file = signal(undefined);
|
|
11770
|
+
fileUrl = computed(() => {
|
|
11771
|
+
const file = this.file();
|
|
11772
|
+
if (file) {
|
|
11773
|
+
return URL.createObjectURL(file);
|
|
11774
|
+
}
|
|
11775
|
+
// return null or undefined
|
|
11776
|
+
return file;
|
|
11777
|
+
});
|
|
11778
|
+
status = linkedSignal({
|
|
11779
|
+
source: this.file,
|
|
11780
|
+
computation: () => {
|
|
11781
|
+
return 'init';
|
|
11782
|
+
},
|
|
11783
|
+
});
|
|
11784
|
+
uploadProgress = signal(0);
|
|
11785
|
+
maxSize = input(1024 * 1024 * 2);
|
|
11786
|
+
uploadInfo() {
|
|
11787
|
+
return ` a file with ${formatBytes(this.maxSize())}`;
|
|
11788
|
+
}
|
|
11789
|
+
handleFileChange(event) {
|
|
11790
|
+
const target = event.target;
|
|
11791
|
+
const files = target.files;
|
|
11792
|
+
const file = files[0];
|
|
11793
|
+
this.file.set(file);
|
|
11794
|
+
}
|
|
11795
|
+
removeFile() {
|
|
11796
|
+
this.file.set(null);
|
|
11797
|
+
}
|
|
11798
|
+
uploadFile() {
|
|
11799
|
+
const file = this.file();
|
|
11800
|
+
if (!file) {
|
|
11801
|
+
//TODO add message error
|
|
11802
|
+
return;
|
|
11803
|
+
}
|
|
11804
|
+
this.status.set('uploading');
|
|
11805
|
+
this.dataService
|
|
11806
|
+
.uploadFile(file)
|
|
11807
|
+
.pipe(catchError((error) => {
|
|
11808
|
+
this.status.set('error');
|
|
11809
|
+
// Quality control catches the problem
|
|
11810
|
+
console.error('Delivery problem:', error);
|
|
11811
|
+
// Send an apology note or fix the issue
|
|
11812
|
+
return throwError(() => new Error('Oops! Something went wrong. Please try again later.'));
|
|
11813
|
+
}))
|
|
11814
|
+
.subscribe((event) => {
|
|
11815
|
+
if (event.type === HttpEventType.UploadProgress) {
|
|
11816
|
+
if (event.total) {
|
|
11817
|
+
this.uploadProgress.set(Math.round((100 * event.loaded) / event.total));
|
|
11818
|
+
}
|
|
11819
|
+
else {
|
|
11820
|
+
console.warn('event.total is undefined');
|
|
11821
|
+
}
|
|
11822
|
+
}
|
|
11823
|
+
else if (event instanceof HttpResponse) {
|
|
11824
|
+
this.uploadProgress.set(100);
|
|
11825
|
+
this.status.set('success');
|
|
11826
|
+
}
|
|
11827
|
+
});
|
|
11828
|
+
}
|
|
11829
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSingleFileUploader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11830
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: ScSingleFileUploader, isStandalone: true, selector: "sc-single-file-uploader", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_class()" } }, ngImport: i0, template: `
|
|
11831
|
+
@if (!fileUrl()) {
|
|
11832
|
+
<!-- Dropzone -->
|
|
11833
|
+
<div #scDropZone="scDropZone" scDropZone>
|
|
11834
|
+
<input
|
|
11835
|
+
class="absolute left-0 top-0 size-full cursor-pointer opacity-0"
|
|
11836
|
+
(change)="handleFileChange($event)"
|
|
11837
|
+
accept="image/*"
|
|
11838
|
+
tabindex="-1"
|
|
11839
|
+
type="file"
|
|
11840
|
+
/>
|
|
11841
|
+
|
|
11842
|
+
@if (scDropZone.isDragActive()) {
|
|
11843
|
+
<div class="flex flex-col items-center justify-center gap-4 sm:px-5">
|
|
11844
|
+
<div class="rounded-full border border-dashed p-3">
|
|
11845
|
+
<svg-upload-icon class="size-7 text-muted-foreground" aria-hidden="true" />
|
|
11846
|
+
</div>
|
|
11847
|
+
<p class="font-medium text-muted-foreground">Drop the files here</p>
|
|
11848
|
+
</div>
|
|
11849
|
+
} @else {
|
|
11850
|
+
<div class="flex flex-col items-center justify-center gap-4 sm:px-5">
|
|
11851
|
+
<div class="rounded-full border border-dashed p-3">
|
|
11852
|
+
<svg-upload-icon class="size-7 text-muted-foreground" aria-hidden="true" />
|
|
11853
|
+
</div>
|
|
11854
|
+
<div class="flex flex-col gap-px">
|
|
11855
|
+
<p class="font-medium text-muted-foreground">
|
|
11856
|
+
Drag 'n' drop your files here, or click to select files
|
|
11857
|
+
</p>
|
|
11858
|
+
<p class="text-sm text-muted-foreground/70">You can upload {{ uploadInfo() }}</p>
|
|
11859
|
+
</div>
|
|
11860
|
+
</div>
|
|
11861
|
+
}
|
|
11862
|
+
</div>
|
|
11863
|
+
<!-- fin Dropzone -->
|
|
11864
|
+
}
|
|
11865
|
+
|
|
11866
|
+
<!-- Start Preview Image -->
|
|
11867
|
+
@if (fileUrl()) {
|
|
11868
|
+
<sc-aspect-ratio [src]="fileUrl() ?? ''" ratio="16 / 9" alt="" />
|
|
11869
|
+
|
|
11870
|
+
<p>{{ file()?.name }}</p>
|
|
11871
|
+
|
|
11872
|
+
<sc-progress [value]="uploadProgress()" />
|
|
11873
|
+
|
|
11874
|
+
<div class="flex justify-start gap-3">
|
|
11875
|
+
<button
|
|
11876
|
+
[disabled]="status() === 'uploading'"
|
|
11877
|
+
(click)="removeFile()"
|
|
11878
|
+
sc-button
|
|
11879
|
+
variant="destructive"
|
|
11880
|
+
type="button"
|
|
11881
|
+
>
|
|
11882
|
+
Remove
|
|
11883
|
+
</button>
|
|
11884
|
+
|
|
11885
|
+
@if (status() === 'init' || status() === 'error') {
|
|
11886
|
+
<button
|
|
11887
|
+
[disabled]="status() === 'uploading'"
|
|
11888
|
+
(click)="uploadFile()"
|
|
11889
|
+
sc-button
|
|
11890
|
+
variant="primary"
|
|
11891
|
+
type="button"
|
|
11892
|
+
>
|
|
11893
|
+
Upload
|
|
11894
|
+
</button>
|
|
11895
|
+
}
|
|
11896
|
+
|
|
11897
|
+
@if (status() === 'uploading') {
|
|
11898
|
+
<button sc-button variant="secondary" type="button">Cancel</button>
|
|
11899
|
+
}
|
|
11900
|
+
</div>
|
|
11901
|
+
}
|
|
11902
|
+
<!-- End Preview Image -->
|
|
11903
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: ScProgress, selector: "sc-progress", inputs: ["class", "value"] }, { kind: "component", type: SvgUploadIcon, selector: "svg-upload-icon", inputs: ["class"] }, { kind: "directive", type: ScDropZone, selector: "[scDropZone]", inputs: ["isDisabled", "class"], exportAs: ["scDropZone"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }, { kind: "component", type: ScAspectRatio, selector: "sc-aspect-ratio", inputs: ["imageClass", "hostClass", "wrapperClass", "ratio", "src", "alt", "priority"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11904
|
+
}
|
|
11905
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScSingleFileUploader, decorators: [{
|
|
11906
|
+
type: Component,
|
|
11907
|
+
args: [{ selector: 'sc-single-file-uploader', imports: [ScProgress, SvgUploadIcon, ScDropZone, ScButton, ScAspectRatio], template: `
|
|
11908
|
+
@if (!fileUrl()) {
|
|
11909
|
+
<!-- Dropzone -->
|
|
11910
|
+
<div #scDropZone="scDropZone" scDropZone>
|
|
11911
|
+
<input
|
|
11912
|
+
class="absolute left-0 top-0 size-full cursor-pointer opacity-0"
|
|
11913
|
+
(change)="handleFileChange($event)"
|
|
11914
|
+
accept="image/*"
|
|
11915
|
+
tabindex="-1"
|
|
11916
|
+
type="file"
|
|
11917
|
+
/>
|
|
11918
|
+
|
|
11919
|
+
@if (scDropZone.isDragActive()) {
|
|
11920
|
+
<div class="flex flex-col items-center justify-center gap-4 sm:px-5">
|
|
11921
|
+
<div class="rounded-full border border-dashed p-3">
|
|
11922
|
+
<svg-upload-icon class="size-7 text-muted-foreground" aria-hidden="true" />
|
|
11923
|
+
</div>
|
|
11924
|
+
<p class="font-medium text-muted-foreground">Drop the files here</p>
|
|
11925
|
+
</div>
|
|
11926
|
+
} @else {
|
|
11927
|
+
<div class="flex flex-col items-center justify-center gap-4 sm:px-5">
|
|
11928
|
+
<div class="rounded-full border border-dashed p-3">
|
|
11929
|
+
<svg-upload-icon class="size-7 text-muted-foreground" aria-hidden="true" />
|
|
11930
|
+
</div>
|
|
11931
|
+
<div class="flex flex-col gap-px">
|
|
11932
|
+
<p class="font-medium text-muted-foreground">
|
|
11933
|
+
Drag 'n' drop your files here, or click to select files
|
|
11934
|
+
</p>
|
|
11935
|
+
<p class="text-sm text-muted-foreground/70">You can upload {{ uploadInfo() }}</p>
|
|
11936
|
+
</div>
|
|
11937
|
+
</div>
|
|
11938
|
+
}
|
|
11939
|
+
</div>
|
|
11940
|
+
<!-- fin Dropzone -->
|
|
11941
|
+
}
|
|
11942
|
+
|
|
11943
|
+
<!-- Start Preview Image -->
|
|
11944
|
+
@if (fileUrl()) {
|
|
11945
|
+
<sc-aspect-ratio [src]="fileUrl() ?? ''" ratio="16 / 9" alt="" />
|
|
11946
|
+
|
|
11947
|
+
<p>{{ file()?.name }}</p>
|
|
11948
|
+
|
|
11949
|
+
<sc-progress [value]="uploadProgress()" />
|
|
11950
|
+
|
|
11951
|
+
<div class="flex justify-start gap-3">
|
|
11952
|
+
<button
|
|
11953
|
+
[disabled]="status() === 'uploading'"
|
|
11954
|
+
(click)="removeFile()"
|
|
11955
|
+
sc-button
|
|
11956
|
+
variant="destructive"
|
|
11957
|
+
type="button"
|
|
11958
|
+
>
|
|
11959
|
+
Remove
|
|
11960
|
+
</button>
|
|
11961
|
+
|
|
11962
|
+
@if (status() === 'init' || status() === 'error') {
|
|
11963
|
+
<button
|
|
11964
|
+
[disabled]="status() === 'uploading'"
|
|
11965
|
+
(click)="uploadFile()"
|
|
11966
|
+
sc-button
|
|
11967
|
+
variant="primary"
|
|
11968
|
+
type="button"
|
|
11969
|
+
>
|
|
11970
|
+
Upload
|
|
11971
|
+
</button>
|
|
11972
|
+
}
|
|
11973
|
+
|
|
11974
|
+
@if (status() === 'uploading') {
|
|
11975
|
+
<button sc-button variant="secondary" type="button">Cancel</button>
|
|
11976
|
+
}
|
|
11977
|
+
</div>
|
|
11978
|
+
}
|
|
11979
|
+
<!-- End Preview Image -->
|
|
11980
|
+
`, host: {
|
|
11981
|
+
'[class]': '_class()',
|
|
11982
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
11983
|
+
}] });
|
|
11984
|
+
|
|
11985
|
+
class ScPageTitle {
|
|
11986
|
+
classInput = input('', {
|
|
11987
|
+
alias: 'class',
|
|
11988
|
+
});
|
|
11989
|
+
class = computed(() => cn('scroll-m-20 text-3xl font-bold tracking-tight', this.classInput()));
|
|
11990
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScPageTitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11991
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScPageTitle, isStandalone: true, selector: "h1[sc-page-title]", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" } }, ngImport: i0, template: `
|
|
11992
|
+
<ng-content />
|
|
11993
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11994
|
+
}
|
|
11995
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScPageTitle, decorators: [{
|
|
11996
|
+
type: Component,
|
|
11997
|
+
args: [{ selector: 'h1[sc-page-title]', imports: [], template: `
|
|
11998
|
+
<ng-content />
|
|
11999
|
+
`, host: {
|
|
12000
|
+
'[class]': 'class()',
|
|
12001
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
12002
|
+
}] });
|
|
12003
|
+
|
|
12004
|
+
class ScPageSubtitle {
|
|
12005
|
+
classInput = input('', {
|
|
12006
|
+
alias: 'class',
|
|
12007
|
+
});
|
|
12008
|
+
class = computed(() => cn('font-heading mt-12 scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-tight first:mt-0', this.classInput()));
|
|
12009
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScPageSubtitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12010
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScPageSubtitle, isStandalone: true, selector: "h2[sc-page-subtitle]", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" } }, ngImport: i0, template: `
|
|
12011
|
+
<ng-content />
|
|
12012
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12013
|
+
}
|
|
12014
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScPageSubtitle, decorators: [{
|
|
12015
|
+
type: Component,
|
|
12016
|
+
args: [{ selector: 'h2[sc-page-subtitle]', imports: [], template: `
|
|
12017
|
+
<ng-content />
|
|
12018
|
+
`, host: {
|
|
12019
|
+
'[class]': 'class()',
|
|
12020
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
12021
|
+
}] });
|
|
12022
|
+
|
|
12023
|
+
class ScPageDescription {
|
|
12024
|
+
classInput = input('', {
|
|
12025
|
+
alias: 'class',
|
|
12026
|
+
});
|
|
12027
|
+
class = computed(() => cn('text-base text-muted-foreground', this.classInput()));
|
|
12028
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScPageDescription, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12029
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: ScPageDescription, isStandalone: true, selector: "p[sc-page-description]", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" } }, ngImport: i0, template: `
|
|
12030
|
+
<ng-content />
|
|
12031
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12032
|
+
}
|
|
12033
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScPageDescription, decorators: [{
|
|
12034
|
+
type: Component,
|
|
12035
|
+
args: [{ selector: 'p[sc-page-description]', imports: [], template: `
|
|
12036
|
+
<ng-content />
|
|
12037
|
+
`, host: {
|
|
12038
|
+
'[class]': 'class()',
|
|
12039
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
12040
|
+
}] });
|
|
12041
|
+
|
|
12042
|
+
class Section {
|
|
12043
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: Section, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12044
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: Section, isStandalone: true, selector: "sc-section", ngImport: i0, template: `
|
|
12045
|
+
<p>section works!</p>
|
|
12046
|
+
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12047
|
+
}
|
|
12048
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: Section, decorators: [{
|
|
12049
|
+
type: Component,
|
|
12050
|
+
args: [{ selector: 'sc-section', imports: [], template: `
|
|
12051
|
+
<p>section works!</p>
|
|
12052
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
12053
|
+
}] });
|
|
12054
|
+
|
|
12055
|
+
class ScCookieConsent {
|
|
12056
|
+
open = signal(true);
|
|
12057
|
+
hidden = signal(false);
|
|
12058
|
+
class = signal(cn('fixed z-[200] bottom-0 left-0 right-0 sm:left-4 sm:bottom-4 w-full sm:max-w-md duration-700', !this.open()
|
|
12059
|
+
? 'transition-[opacity,transform] translate-y-8 opacity-0'
|
|
12060
|
+
: 'transition-[opacity,transform] translate-y-0 opacity-100', this.hidden() && 'hidden'));
|
|
12061
|
+
accept() {
|
|
12062
|
+
console.log('accept');
|
|
12063
|
+
}
|
|
12064
|
+
decline() {
|
|
12065
|
+
console.log('decline');
|
|
12066
|
+
}
|
|
12067
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScCookieConsent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12068
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ScCookieConsent, isStandalone: true, selector: "sc-cookie-consent", ngImport: i0, template: `
|
|
12069
|
+
<div [class]="class()">
|
|
12070
|
+
<div class="m-3 dark:bg-card bg-background border border-border rounded-lg">
|
|
12071
|
+
<div class="flex items-center justify-between p-3">
|
|
12072
|
+
<h1 class="text-lg font-medium">We use cookies</h1>
|
|
12073
|
+
<svg-cookie-icon class="h-[1.2rem] w-[1.2rem]" />
|
|
12074
|
+
</div>
|
|
12075
|
+
<div class="p-3 -mt-2">
|
|
12076
|
+
<p class="text-sm text-left text-muted-foreground">
|
|
12077
|
+
We use cookies to ensure you get the best experience on our website. For more
|
|
12078
|
+
information on how we use cookies, please see our cookie policy.
|
|
12079
|
+
</p>
|
|
12080
|
+
</div>
|
|
12081
|
+
<div class="p-3 flex items-center gap-2 mt-2 border-t">
|
|
12082
|
+
<button class="w-full h-9 rounded-full" (click)="accept()" sc-button>accept</button>
|
|
12083
|
+
<button class="w-full h-9 rounded-full" (click)="decline()" sc-button variant="outline">
|
|
12084
|
+
decline
|
|
12085
|
+
</button>
|
|
12086
|
+
</div>
|
|
12087
|
+
</div>
|
|
12088
|
+
</div>
|
|
12089
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: SvgCookieIcon, selector: "svg-cookie-icon", inputs: ["class"] }, { kind: "component", type: ScButton, selector: "button[sc-button], a[sc-button]", inputs: ["variant", "size", "class", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12090
|
+
}
|
|
12091
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ScCookieConsent, decorators: [{
|
|
12092
|
+
type: Component,
|
|
12093
|
+
args: [{ selector: 'sc-cookie-consent', imports: [SvgCookieIcon, ScButton], template: `
|
|
12094
|
+
<div [class]="class()">
|
|
12095
|
+
<div class="m-3 dark:bg-card bg-background border border-border rounded-lg">
|
|
12096
|
+
<div class="flex items-center justify-between p-3">
|
|
12097
|
+
<h1 class="text-lg font-medium">We use cookies</h1>
|
|
12098
|
+
<svg-cookie-icon class="h-[1.2rem] w-[1.2rem]" />
|
|
12099
|
+
</div>
|
|
12100
|
+
<div class="p-3 -mt-2">
|
|
12101
|
+
<p class="text-sm text-left text-muted-foreground">
|
|
12102
|
+
We use cookies to ensure you get the best experience on our website. For more
|
|
12103
|
+
information on how we use cookies, please see our cookie policy.
|
|
12104
|
+
</p>
|
|
12105
|
+
</div>
|
|
12106
|
+
<div class="p-3 flex items-center gap-2 mt-2 border-t">
|
|
12107
|
+
<button class="w-full h-9 rounded-full" (click)="accept()" sc-button>accept</button>
|
|
12108
|
+
<button class="w-full h-9 rounded-full" (click)="decline()" sc-button variant="outline">
|
|
12109
|
+
decline
|
|
12110
|
+
</button>
|
|
12111
|
+
</div>
|
|
12112
|
+
</div>
|
|
12113
|
+
</div>
|
|
12114
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
12115
|
+
}] });
|
|
12116
|
+
|
|
11010
12117
|
/**
|
|
11011
12118
|
* Generated bundle index. Do not edit.
|
|
11012
12119
|
*/
|
|
11013
12120
|
|
|
11014
|
-
export { FormFieldCustomControlComponent, ScAccordion, ScAccordionContent, ScAccordionHeader, ScAccordionItem, ScAccordionItemDescription, ScAccordionTrigger, ScAlert, ScAlertDescription, ScAlertDialog, ScAlertTitle, ScAspectRatio, ScAutocomplete, ScAvatar, ScBadge, ScBreadcrumb, ScBreadcrumbEllipsis, ScBreadcrumbItem, ScBreadcrumbLink, ScBreadcrumbList, ScBreadcrumbPage, ScBreadcrumbSeparator, ScButton, ScCalendar, ScCard, ScCardContent, ScCardDescription, ScCardFooter, ScCardHeader, ScCardTitle, ScCarousel, ScCarouselContainer, ScCarouselItem, ScCarouselItems, ScCarouselNext, ScCarouselPrevious, ScCheckbox, ScCollapsible, ScCollapsibleContent, ScCollapsibleTrigger, ScCommand, ScCommandDialog, ScCommandEmpty, ScCommandError, ScCommandGroup, ScCommandInput, ScCommandItem, ScCommandList, ScCommandLoading, ScCommandSeparator, ScCommandShortcut, ScContextMenuTriggerFor, ScDataTable, ScDatePicker, ScDialog, ScDialogClose, ScDialogContent, ScDialogDescription, ScDialogFooter, ScDialogHeader, ScDialogTitle, ScEditor, ScFullCalendar, ScHoverCard, ScHoverCardTriggerFor, ScInput, ScInputOTPGroup, ScInputOTPSeparator, ScInputOTPSlot, ScInputOtp, ScLabel, ScMenu, ScMenuBar, ScMenuBarItem, ScMenuCheckboxGroup, ScMenuCheckboxItem, ScMenuGroup, ScMenuItem, ScMenuLabel, ScMenuRadioGroup, ScMenuRadioItem, ScMenuSeparator, ScMenuShortcut, ScMenuTriggerFor, ScNav, ScNavItem, ScNavItemDropdown, ScNavLink, ScNavList, ScOption, ScPaginator, ScPopoverTriggerFor, ScProgress, ScRadioGroup, ScRadioItem, ScScrollArea, ScSelect, ScSettings, ScSheet, ScSheetClose, ScSheetConfig, ScSheetTrigger, ScSidebar, ScSidebarProvider, ScSidebarState, ScSidebarToggler, ScSkeleton, ScSlider, ScSwitch, ScTab, ScTabContent, ScTabLabel, ScTable, ScTableBody, ScTableCaption, ScTableCell, ScTableContainer, ScTableFooter, ScTableHead, ScTableHeader, ScTableRow, ScTabs, ScTextarea, ScThemeToggler, ScTimePicker, ScToast, ScToastExample, ScToggle, ScTooltip, TelInputComponent, TelModel, Toaster, buttonVariants,
|
|
12121
|
+
export { FormFieldCustomControlComponent, ScAccordion, ScAccordionContent, ScAccordionHeader, ScAccordionItem, ScAccordionItemDescription, ScAccordionTrigger, ScAlert, ScAlertDescription, ScAlertDialog, ScAlertTitle, ScArticle, ScAspectRatio, ScAutocomplete, ScAvatar, ScBadge, ScBlockquote, ScBreadcrumb, ScBreadcrumbEllipsis, ScBreadcrumbItem, ScBreadcrumbLink, ScBreadcrumbList, ScBreadcrumbPage, ScBreadcrumbSeparator, ScButton, ScCalendar, ScCard, ScCardContent, ScCardDescription, ScCardFooter, ScCardHeader, ScCardTitle, ScCarousel, ScCarouselContainer, ScCarouselItem, ScCarouselItems, ScCarouselNext, ScCarouselPrevious, ScCheckbox, ScCollapsible, ScCollapsibleContent, ScCollapsibleTrigger, ScCommand, ScCommandDialog, ScCommandEmpty, ScCommandError, ScCommandGroup, ScCommandInput, ScCommandItem, ScCommandList, ScCommandLoading, ScCommandSeparator, ScCommandShortcut, ScContextMenuTriggerFor, ScCookieConsent, ScDataTable, ScDatePicker, ScDialog, ScDialogClose, ScDialogContent, ScDialogDescription, ScDialogFooter, ScDialogHeader, ScDialogTitle, ScEditor, ScFileUpload, ScFileUploader, ScFullCalendar, ScHeading, ScHoverCard, ScHoverCardTriggerFor, ScInput, ScInputOTPGroup, ScInputOTPSeparator, ScInputOTPSlot, ScInputOtp, ScLabel, ScMenu, ScMenuBar, ScMenuBarItem, ScMenuCheckboxGroup, ScMenuCheckboxItem, ScMenuGroup, ScMenuItem, ScMenuLabel, ScMenuRadioGroup, ScMenuRadioItem, ScMenuSeparator, ScMenuShortcut, ScMenuTriggerFor, ScNav, ScNavItem, ScNavItemDropdown, ScNavLink, ScNavList, ScOption, ScPageDescription, ScPageSubtitle, ScPageTitle, ScPaginator, ScPopoverTriggerFor, ScProgress, ScRadioGroup, ScRadioItem, ScScrollArea, ScSelect, ScSeparator, ScSettings, ScSheet, ScSheetClose, ScSheetConfig, ScSheetTrigger, ScSidebar, ScSidebarProvider, ScSidebarState, ScSidebarToggler, ScSingleFileUploader, ScSkeleton, ScSlider, ScSwitch, ScTab, ScTabContent, ScTabContent2, ScTabGroup, ScTabItem, ScTabLabel, ScTabLabel2, ScTable, ScTableBody, ScTableCaption, ScTableCell, ScTableContainer, ScTableFooter, ScTableHead, ScTableHeader, ScTableRow, ScTabs, ScTextarea, ScThemeToggler, ScTimePicker, ScToast, ScToastExample, ScToggle, ScToggleGroup, ScToggleGroupItem, ScTooltip, Section, TelInputComponent, TelModel, Toaster, buttonVariants, scArticleClasses, scInputStyles, scThemeProvider };
|
|
11015
12122
|
//# sourceMappingURL=semantic-components-ui.mjs.map
|