@shival99/z-ui 1.9.26 → 2.0.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.
Files changed (37) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +2 -2
  3. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
  4. package/fesm2022/shival99-z-ui-components-z-avatar.mjs +187 -0
  5. package/fesm2022/shival99-z-ui-components-z-avatar.mjs.map +1 -0
  6. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +7 -3
  7. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
  8. package/fesm2022/shival99-z-ui-components-z-editor.mjs +649 -154
  9. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
  10. package/fesm2022/shival99-z-ui-components-z-gallery.mjs +242 -18
  11. package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -1
  12. package/fesm2022/shival99-z-ui-components-z-input.mjs +9 -5
  13. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
  14. package/fesm2022/shival99-z-ui-components-z-kanban.mjs +1 -1
  15. package/fesm2022/shival99-z-ui-components-z-kanban.mjs.map +1 -1
  16. package/fesm2022/shival99-z-ui-components-z-marquee.mjs +70 -0
  17. package/fesm2022/shival99-z-ui-components-z-marquee.mjs.map +1 -0
  18. package/fesm2022/shival99-z-ui-components-z-metric-card.mjs +128 -0
  19. package/fesm2022/shival99-z-ui-components-z-metric-card.mjs.map +1 -0
  20. package/fesm2022/shival99-z-ui-components-z-modal.mjs +2 -2
  21. package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
  22. package/fesm2022/shival99-z-ui-components-z-select.mjs +16 -2
  23. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
  24. package/fesm2022/shival99-z-ui-components-z-table.mjs +246 -4
  25. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
  26. package/fesm2022/shival99-z-ui-i18n.mjs +18 -0
  27. package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -1
  28. package/fesm2022/shival99-z-ui-services.mjs +1 -0
  29. package/fesm2022/shival99-z-ui-services.mjs.map +1 -1
  30. package/package.json +38 -23
  31. package/types/shival99-z-ui-components-z-avatar.d.ts +90 -0
  32. package/types/shival99-z-ui-components-z-editor.d.ts +96 -36
  33. package/types/shival99-z-ui-components-z-gallery.d.ts +14 -1
  34. package/types/shival99-z-ui-components-z-input.d.ts +1 -0
  35. package/types/shival99-z-ui-components-z-marquee.d.ts +35 -0
  36. package/types/shival99-z-ui-components-z-metric-card.d.ts +67 -0
  37. package/types/shival99-z-ui-components-z-table.d.ts +98 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shival99/z-ui",
3
- "version": "1.9.26",
3
+ "version": "2.0.0",
4
4
  "description": "Z-UI: Modern Angular UI Component Library - A comprehensive, high-performance design system built with Angular 20+, featuring 40+ customizable components with dark mode, accessibility, and enterprise-ready features.",
5
5
  "keywords": [
6
6
  "angular",
@@ -36,32 +36,42 @@
36
36
  "url": "https://github.com/vuboi/z-ui/issues"
37
37
  },
38
38
  "peerDependencies": {
39
+ "@angular/cdk": ">=20.0.0",
39
40
  "@angular/common": ">=20.0.0",
40
41
  "@angular/core": ">=20.0.0",
41
42
  "@angular/forms": ">=20.0.0",
43
+ "@angular/platform-browser": "~21.0.6",
42
44
  "@angular/router": ">=20.0.0",
43
- "@angular/cdk": ">=20.0.0",
44
45
  "@dayflow/blossom-color-picker-angular": ">=1.0.0",
45
46
  "@ng-icons/core": ">=33.0.0",
46
47
  "@ng-icons/iconsax": ">=33.0.0",
47
48
  "@ng-icons/lucide": ">=33.0.0",
48
49
  "@ngx-translate/core": ">=17.0.0",
49
- "@tanstack/angular-table": ">=8.20.0",
50
50
  "@shival99/angular-virtual": ">=4.0.10",
51
+ "@shival99/ngx-sonner": ">=3.0.0",
52
+ "@tanstack/angular-table": ">=8.20.0",
53
+ "@tiptap/core": ">=3.0.0",
54
+ "@tiptap/extension-code": ">=3.0.0",
55
+ "@tiptap/extension-horizontal-rule": ">=3.0.0",
56
+ "@tiptap/extension-image": ">=3.0.0",
57
+ "@tiptap/extension-link": ">=3.0.0",
58
+ "@tiptap/extension-mention": ">=3.0.0",
59
+ "@tiptap/extension-placeholder": ">=3.0.0",
60
+ "@tiptap/extension-text-align": ">=3.0.0",
61
+ "@tiptap/extension-underline": ">=3.0.0",
62
+ "@tiptap/markdown": ">=3.0.0",
63
+ "@tiptap/starter-kit": ">=3.0.0",
51
64
  "boneyard-js": ">=1.7.0",
52
65
  "class-variance-authority": ">=0.7.0",
53
66
  "clsx": ">=2.0.0",
67
+ "exceljs": "^4.4.0",
68
+ "file-saver": "^2.0.5",
54
69
  "minisearch": ">=7.0.0",
55
70
  "ngx-mask": ">=20.0.0",
56
71
  "ngx-scrollbar": ">=19.0.0",
57
- "@shival99/ngx-sonner": ">=3.0.0",
58
72
  "ngxtension": ">=7.0.0",
59
73
  "rxjs": ">=7.8.0",
60
74
  "tailwind-merge": ">=3.0.0",
61
- "@angular/platform-browser": "~21.0.6",
62
- "quill-resize-image": "^1.0.0",
63
- "exceljs": "^4.4.0",
64
- "file-saver": "^2.0.5",
65
75
  "xlsx": "^0.18.5"
66
76
  },
67
77
  "peerDependenciesMeta": {
@@ -71,12 +81,6 @@
71
81
  "@ngx-translate/http-loader": {
72
82
  "optional": true
73
83
  },
74
- "ngx-quill": {
75
- "optional": true
76
- },
77
- "quill": {
78
- "optional": true
79
- },
80
84
  "echarts": {
81
85
  "optional": true
82
86
  },
@@ -89,21 +93,23 @@
89
93
  "dompurify": {
90
94
  "optional": true
91
95
  },
92
- "quill-resize-image": {
96
+ "@tiptap/markdown": {
93
97
  "optional": true
94
98
  }
95
99
  },
96
100
  "optionalDependencies": {
97
- "ngx-quill": ">=30.0.0",
98
- "quill": ">=2.0.0",
101
+ "dompurify": ">=3.0.0",
99
102
  "echarts": ">=5.0.0",
100
- "shiki": ">=3.0.0",
101
- "dompurify": ">=3.0.0"
103
+ "shiki": ">=3.0.0"
102
104
  },
103
105
  "sideEffects": false,
104
106
  "engines": {
105
107
  "node": ">=18.0.0"
106
108
  },
109
+ "dependencies": {
110
+ "mammoth": "^1.12.0",
111
+ "tslib": "^2.3.0"
112
+ },
107
113
  "module": "fesm2022/z-ui.mjs",
108
114
  "typings": "types/z-ui.d.ts",
109
115
  "exports": {
@@ -122,6 +128,10 @@
122
128
  "types": "./types/shival99-z-ui-components-z-autocomplete.d.ts",
123
129
  "default": "./fesm2022/shival99-z-ui-components-z-autocomplete.mjs"
124
130
  },
131
+ "./components/z-avatar": {
132
+ "types": "./types/shival99-z-ui-components-z-avatar.d.ts",
133
+ "default": "./fesm2022/shival99-z-ui-components-z-avatar.mjs"
134
+ },
125
135
  "./components/z-breadcrumb": {
126
136
  "types": "./types/shival99-z-ui-components-z-breadcrumb.d.ts",
127
137
  "default": "./fesm2022/shival99-z-ui-components-z-breadcrumb.mjs"
@@ -194,10 +204,18 @@
194
204
  "types": "./types/shival99-z-ui-components-z-loading.d.ts",
195
205
  "default": "./fesm2022/shival99-z-ui-components-z-loading.mjs"
196
206
  },
207
+ "./components/z-marquee": {
208
+ "types": "./types/shival99-z-ui-components-z-marquee.d.ts",
209
+ "default": "./fesm2022/shival99-z-ui-components-z-marquee.mjs"
210
+ },
197
211
  "./components/z-menu": {
198
212
  "types": "./types/shival99-z-ui-components-z-menu.d.ts",
199
213
  "default": "./fesm2022/shival99-z-ui-components-z-menu.mjs"
200
214
  },
215
+ "./components/z-metric-card": {
216
+ "types": "./types/shival99-z-ui-components-z-metric-card.d.ts",
217
+ "default": "./fesm2022/shival99-z-ui-components-z-metric-card.mjs"
218
+ },
201
219
  "./components/z-modal": {
202
220
  "types": "./types/shival99-z-ui-components-z-modal.d.ts",
203
221
  "default": "./fesm2022/shival99-z-ui-components-z-modal.mjs"
@@ -283,8 +301,5 @@
283
301
  "default": "./fesm2022/shival99-z-ui-utils.mjs"
284
302
  }
285
303
  },
286
- "type": "module",
287
- "dependencies": {
288
- "tslib": "^2.3.0"
289
- }
304
+ "type": "module"
290
305
  }
@@ -0,0 +1,90 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ZIcon } from '@shival99/z-ui/components/z-icon';
3
+ import { ClassValue } from 'clsx';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ type ZAvatarSize = 'xs' | 'sm' | 'default' | 'lg' | 'xl';
8
+ type ZAvatarShape = 'circle' | 'rounded' | 'square';
9
+ type ZAvatarStatus = 'online' | 'offline' | 'busy' | 'away';
10
+ type ZAvatarRing = 'none' | 'default' | 'active' | 'muted';
11
+ type ZAvatarFallback = 'initials' | 'icon';
12
+ interface ZAvatarItem {
13
+ id: string | number;
14
+ name: string;
15
+ src?: string;
16
+ alt?: string;
17
+ icon?: ZIcon;
18
+ status?: ZAvatarStatus;
19
+ }
20
+
21
+ declare class ZAvatarComponent {
22
+ readonly class: _angular_core.InputSignal<ClassValue>;
23
+ readonly zSrc: _angular_core.InputSignal<string>;
24
+ readonly zName: _angular_core.InputSignal<string>;
25
+ readonly zAlt: _angular_core.InputSignal<string>;
26
+ readonly zIcon: _angular_core.InputSignal<ZIcon>;
27
+ readonly zSize: _angular_core.InputSignal<ZAvatarSize>;
28
+ readonly zShape: _angular_core.InputSignal<ZAvatarShape>;
29
+ readonly zStatus: _angular_core.InputSignal<ZAvatarStatus | undefined>;
30
+ readonly zRing: _angular_core.InputSignal<ZAvatarRing>;
31
+ readonly zFallback: _angular_core.InputSignal<ZAvatarFallback>;
32
+ readonly zShowLabel: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
33
+ readonly zStatusAnimated: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
34
+ readonly zInteractive: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
35
+ readonly zDescription: _angular_core.InputSignal<string>;
36
+ protected readonly imageFailed: _angular_core.WritableSignal<boolean>;
37
+ protected readonly hostClasses: _angular_core.Signal<string>;
38
+ protected readonly avatarClasses: _angular_core.Signal<string>;
39
+ protected readonly imageClasses: _angular_core.Signal<string>;
40
+ protected readonly statusClasses: _angular_core.Signal<string>;
41
+ protected readonly labelClasses: _angular_core.Signal<string>;
42
+ protected readonly iconSize: _angular_core.Signal<"12" | "14" | "16" | "18" | "24">;
43
+ protected readonly altText: _angular_core.Signal<string>;
44
+ protected readonly shouldShowImage: _angular_core.Signal<boolean>;
45
+ protected readonly initials: _angular_core.Signal<string>;
46
+ protected onImageError(): void;
47
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZAvatarComponent, never>;
48
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZAvatarComponent, "z-avatar", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zSrc": { "alias": "zSrc"; "required": false; "isSignal": true; }; "zName": { "alias": "zName"; "required": false; "isSignal": true; }; "zAlt": { "alias": "zAlt"; "required": false; "isSignal": true; }; "zIcon": { "alias": "zIcon"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zShape": { "alias": "zShape"; "required": false; "isSignal": true; }; "zStatus": { "alias": "zStatus"; "required": false; "isSignal": true; }; "zRing": { "alias": "zRing"; "required": false; "isSignal": true; }; "zFallback": { "alias": "zFallback"; "required": false; "isSignal": true; }; "zShowLabel": { "alias": "zShowLabel"; "required": false; "isSignal": true; }; "zStatusAnimated": { "alias": "zStatusAnimated"; "required": false; "isSignal": true; }; "zInteractive": { "alias": "zInteractive"; "required": false; "isSignal": true; }; "zDescription": { "alias": "zDescription"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
49
+ }
50
+
51
+ declare class ZAvatarGroupComponent {
52
+ readonly class: _angular_core.InputSignal<ClassValue>;
53
+ readonly zItems: _angular_core.InputSignal<ZAvatarItem[]>;
54
+ readonly zMax: _angular_core.InputSignal<number>;
55
+ readonly zSize: _angular_core.InputSignal<ZAvatarSize>;
56
+ readonly zShape: _angular_core.InputSignal<ZAvatarShape>;
57
+ readonly zRing: _angular_core.InputSignal<ZAvatarRing>;
58
+ protected readonly hostClasses: _angular_core.Signal<string>;
59
+ protected readonly visibleItems: _angular_core.Signal<ZAvatarItem[]>;
60
+ protected readonly overflowCount: _angular_core.Signal<number>;
61
+ protected readonly overflowClasses: _angular_core.Signal<string>;
62
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZAvatarGroupComponent, never>;
63
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZAvatarGroupComponent, "z-avatar-group", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zItems": { "alias": "zItems"; "required": false; "isSignal": true; }; "zMax": { "alias": "zMax"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zShape": { "alias": "zShape"; "required": false; "isSignal": true; }; "zRing": { "alias": "zRing"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
64
+ }
65
+
66
+ declare const zAvatarVariants: (props?: ({
67
+ zSize?: "xs" | "sm" | "default" | "lg" | "xl" | null | undefined;
68
+ zShape?: "circle" | "rounded" | "square" | null | undefined;
69
+ zRing?: "default" | "none" | "active" | "muted" | null | undefined;
70
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
71
+ declare const zAvatarImageVariants: (props?: ({
72
+ zShape?: "circle" | "rounded" | "square" | null | undefined;
73
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
74
+ declare const zAvatarStatusVariants: (props?: ({
75
+ zSize?: "xs" | "sm" | "default" | "lg" | "xl" | null | undefined;
76
+ zStatus?: "online" | "offline" | "busy" | "away" | null | undefined;
77
+ zAnimated?: boolean | null | undefined;
78
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
79
+ declare const zAvatarLabelVariants: (props?: ({
80
+ zSize?: "xs" | "sm" | "default" | "lg" | "xl" | null | undefined;
81
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
82
+ declare const zAvatarGroupVariants: (props?: ({
83
+ zSize?: "xs" | "sm" | "default" | "lg" | "xl" | null | undefined;
84
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
85
+ type ZAvatarVariants = VariantProps<typeof zAvatarVariants>;
86
+ type ZAvatarStatusVariants = VariantProps<typeof zAvatarStatusVariants>;
87
+ type ZAvatarGroupVariants = VariantProps<typeof zAvatarGroupVariants>;
88
+
89
+ export { ZAvatarComponent, ZAvatarGroupComponent, zAvatarGroupVariants, zAvatarImageVariants, zAvatarLabelVariants, zAvatarStatusVariants, zAvatarVariants };
90
+ export type { ZAvatarFallback, ZAvatarGroupVariants, ZAvatarItem, ZAvatarRing, ZAvatarShape, ZAvatarSize, ZAvatarStatus, ZAvatarStatusVariants, ZAvatarVariants };
@@ -1,13 +1,31 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Signal, OnInit } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
+ import { ZInputValidator } from '@shival99/z-ui/components/z-input';
4
5
  import { ZEvent } from '@shival99/z-ui/utils';
6
+ import { Content, Editor, Extension } from '@tiptap/core';
5
7
  import { ClassValue } from 'clsx';
6
- import { QuillModules, ContentChange } from 'ngx-quill';
8
+ import { ZIcon } from '@shival99/z-ui/components/z-icon';
9
+ import { ImageOptions } from '@tiptap/extension-image';
10
+ import { LinkOptions } from '@tiptap/extension-link';
11
+ import { MentionOptions } from '@tiptap/extension-mention';
12
+ import { PlaceholderOptions } from '@tiptap/extension-placeholder';
13
+ import { StarterKitOptions } from '@tiptap/starter-kit';
7
14
  import * as class_variance_authority_types from 'class-variance-authority/types';
8
15
  import { VariantProps } from 'class-variance-authority';
9
16
 
10
17
  type ZEditorSize = 'sm' | 'default' | 'lg';
18
+ type ZEditorContentType = 'html' | 'json' | 'markdown';
19
+ type ZEditorToolbarCommand = 'bold' | 'italic' | 'underline' | 'strike' | 'code' | 'heading1' | 'heading2' | 'paragraph' | 'bulletList' | 'orderedList' | 'blockquote' | 'codeBlock' | 'horizontalRule' | 'link' | 'image' | 'undo' | 'redo' | 'clearFormatting';
20
+ interface ZEditorToolbarItem {
21
+ id: ZEditorToolbarCommand;
22
+ icon: ZIcon;
23
+ label: string;
24
+ }
25
+ interface ZEditorResolvedToolbarItem extends ZEditorToolbarItem {
26
+ active: boolean;
27
+ disabled: boolean;
28
+ }
11
29
  interface ZEditorControl {
12
30
  /** Focus the editor */
13
31
  focus: () => void;
@@ -16,13 +34,21 @@ interface ZEditorControl {
16
34
  /** Clear the editor content */
17
35
  clear: () => void;
18
36
  /** Set content programmatically */
19
- setContent: (content: string) => void;
37
+ setContent: (content: Content) => void;
38
+ /** Get current serialized content */
39
+ getContent: () => string | Content;
20
40
  /** Get current HTML content */
21
- getContent: () => string;
41
+ getHTML: () => string;
42
+ /** Get current JSON content */
43
+ getJSON: () => Content;
44
+ /** Get current Markdown content when markdown mode is enabled */
45
+ getMarkdown: () => string;
22
46
  /** Get plain text content */
23
47
  getText: () => string;
24
48
  /** Get content length */
25
49
  getLength: () => number;
50
+ /** Access the TipTap editor instance */
51
+ getEditor: () => Editor | null;
26
52
  /** Trigger validation and return true if valid */
27
53
  valid: () => boolean;
28
54
  /**
@@ -33,13 +59,13 @@ interface ZEditorControl {
33
59
  /** Reset component to initial state */
34
60
  reset: () => void;
35
61
  /** Set value programmatically (alias for setContent) */
36
- setValue: (content: string) => void;
62
+ setValue: (content: Content) => void;
37
63
  /** Set custom error message (useful for server-side validation). Pass null to clear. */
38
64
  setErrorMessage: (message: string | null) => void;
39
65
  /** Signal indicating if component has validation error */
40
66
  hasError: Signal<boolean>;
41
- /** Signal with current value */
42
- value: Signal<string>;
67
+ /** Signal with current serialized value */
68
+ value: Signal<string | Content>;
43
69
  /** Signal with current error message */
44
70
  errorMessage: Signal<string>;
45
71
  }
@@ -50,12 +76,24 @@ interface ZEditorValidator {
50
76
  minLength?: number;
51
77
  maxLength?: number;
52
78
  }
79
+ interface ZEditorPlaceholderOptions extends Partial<PlaceholderOptions> {
80
+ mode?: 'firstLine' | 'everyLine';
81
+ }
82
+ interface ZEditorTipTapOptions {
83
+ starterKit?: Partial<StarterKitOptions>;
84
+ placeholder?: string | ZEditorPlaceholderOptions;
85
+ image?: boolean | Partial<ImageOptions>;
86
+ link?: Partial<LinkOptions>;
87
+ mention?: boolean | Partial<Omit<MentionOptions, 'suggestion' | 'suggestions'>>;
88
+ extensions?: Extension[];
89
+ }
53
90
 
54
91
  declare class ZEditorComponent implements OnInit, ControlValueAccessor {
55
92
  private readonly _injector;
56
93
  private readonly _destroyRef;
57
94
  private readonly _zTranslate;
58
- readonly zOnChange: _angular_core.OutputEmitterRef<string>;
95
+ private readonly _editorHost;
96
+ readonly zOnChange: _angular_core.OutputEmitterRef<Content>;
59
97
  readonly zOnFocus: _angular_core.OutputEmitterRef<FocusEvent>;
60
98
  readonly zOnBlur: _angular_core.OutputEmitterRef<FocusEvent>;
61
99
  readonly zControl: _angular_core.OutputEmitterRef<ZEditorControl>;
@@ -68,17 +106,23 @@ declare class ZEditorComponent implements OnInit, ControlValueAccessor {
68
106
  readonly zRequired: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
69
107
  readonly zDisabled: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
70
108
  readonly zReadonly: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
71
- readonly zModules: _angular_core.InputSignal<QuillModules | null>;
72
- readonly zFormats: _angular_core.InputSignal<string[] | null>;
73
- readonly zBounds: _angular_core.InputSignal<string | HTMLElement>;
74
- readonly zTheme: _angular_core.InputSignal<"snow" | "bubble">;
109
+ readonly zContentType: _angular_core.InputSignal<ZEditorContentType>;
110
+ readonly zToolbar: _angular_core.InputSignal<false | readonly ZEditorToolbarItem[]>;
111
+ readonly zTipTap: _angular_core.InputSignal<ZEditorTipTapOptions>;
75
112
  readonly zValidators: _angular_core.InputSignal<ZEditorValidator[]>;
76
113
  protected readonly editorId: string;
77
- protected readonly _value: _angular_core.WritableSignal<string>;
114
+ protected readonly linkInputId: string;
115
+ protected readonly _value: _angular_core.WritableSignal<Content>;
78
116
  private readonly _disabled;
79
117
  private readonly _formControl;
80
118
  private readonly _formStateVersion;
81
119
  private readonly _isNgModel;
120
+ private readonly _selectionVersion;
121
+ private readonly _plainText;
122
+ protected readonly linkModalVisible: _angular_core.WritableSignal<boolean>;
123
+ protected readonly linkUrl: _angular_core.WritableSignal<string>;
124
+ protected readonly activeLinkHref: _angular_core.WritableSignal<string>;
125
+ protected readonly linkValidators: ZInputValidator[];
82
126
  protected readonly uiState: _angular_core.WritableSignal<{
83
127
  touched: boolean;
84
128
  dirty: boolean;
@@ -87,49 +131,65 @@ declare class ZEditorComponent implements OnInit, ControlValueAccessor {
87
131
  private _onChange;
88
132
  private _onTouched;
89
133
  private _ngControl;
90
- private _editorInstance;
134
+ private _editor;
135
+ private _pendingValue;
136
+ private _linkSelection;
91
137
  protected readonly isDisabled: _angular_core.Signal<boolean>;
138
+ protected readonly showToolbar: _angular_core.Signal<boolean>;
139
+ protected readonly normalizedLinkUrl: _angular_core.Signal<string>;
140
+ protected readonly canApplyLink: _angular_core.Signal<boolean>;
92
141
  protected readonly effectivePlaceholder: _angular_core.Signal<string>;
93
- protected readonly effectiveModules: _angular_core.Signal<QuillModules>;
142
+ protected readonly toolbarItems: _angular_core.Signal<ZEditorResolvedToolbarItem[]>;
94
143
  private readonly _shouldShowValidation;
95
144
  private _getValidationErrors;
96
145
  protected readonly hasError: _angular_core.Signal<boolean>;
97
146
  protected readonly errorMessage: _angular_core.Signal<string>;
98
147
  protected readonly currentStatus: _angular_core.Signal<"default" | "disabled" | "readonly" | "error">;
99
148
  protected readonly wrapperClasses: _angular_core.Signal<string>;
100
- protected readonly labelClasses: _angular_core.Signal<string>;
101
149
  protected readonly editorClasses: _angular_core.Signal<string>;
150
+ constructor();
102
151
  ngOnInit(): void;
103
- writeValue(value: string): void;
104
- registerOnChange(fn: (value: string) => void): void;
152
+ writeValue(value: string | Content): void;
153
+ registerOnChange(fn: (value: string | Content) => void): void;
105
154
  registerOnTouched(fn: () => void): void;
106
155
  setDisabledState(isDisabled: boolean): void;
107
- protected onContentChange(event: ContentChange): void;
108
- protected onFocus(): void;
109
- protected onBlur(): void;
110
- focus(): void;
111
- blur(): void;
112
- clear(): void;
113
- setContent(content: string): void;
114
- getContent(): string;
115
- getText(): string;
116
- getLength(): number;
117
- setErrorMessage(message: string | null): void;
118
- setValue(content: string): void;
119
- /** @deprecated Use `valid()` for boolean form-submit checks. */
120
- validate(): boolean;
121
- valid(): boolean;
122
- reset(): void;
156
+ protected onToolbarClick(command: ZEditorToolbarCommand): void;
157
+ private _createEditor;
158
+ private _handleEditorUpdate;
159
+ private _handleFocus;
160
+ private _handleBlur;
123
161
  private _emitControl;
162
+ private _setEditorContent;
163
+ private _validateControl;
164
+ private _getSerializedContent;
165
+ private _getMarkdown;
166
+ private _serializeValueAsText;
167
+ private _refreshEditorState;
168
+ private _isEditorEmpty;
169
+ private _isCurrentEditorContent;
170
+ private _isToolbarCommandActive;
171
+ private _isToolbarCommandDisabled;
172
+ private _toggleLink;
173
+ protected closeLinkModal(): void;
174
+ protected onLinkUrlChange(value: string | number | null): void;
175
+ protected applyLink(): void;
176
+ private _normalizeUrl;
177
+ protected removeLink(): void;
178
+ private _insertImage;
179
+ private _placeholderConfig;
180
+ private _placeholderMode;
124
181
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZEditorComponent, never>;
125
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZEditorComponent, "z-editor", ["zEditor"], { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zLabel": { "alias": "zLabel"; "required": false; "isSignal": true; }; "zLabelClass": { "alias": "zLabelClass"; "required": false; "isSignal": true; }; "zPlaceholder": { "alias": "zPlaceholder"; "required": false; "isSignal": true; }; "zRequired": { "alias": "zRequired"; "required": false; "isSignal": true; }; "zDisabled": { "alias": "zDisabled"; "required": false; "isSignal": true; }; "zReadonly": { "alias": "zReadonly"; "required": false; "isSignal": true; }; "zModules": { "alias": "zModules"; "required": false; "isSignal": true; }; "zFormats": { "alias": "zFormats"; "required": false; "isSignal": true; }; "zBounds": { "alias": "zBounds"; "required": false; "isSignal": true; }; "zTheme": { "alias": "zTheme"; "required": false; "isSignal": true; }; "zValidators": { "alias": "zValidators"; "required": false; "isSignal": true; }; }, { "zOnChange": "zOnChange"; "zOnFocus": "zOnFocus"; "zOnBlur": "zOnBlur"; "zControl": "zControl"; "zEvent": "zEvent"; }, never, never, true, never>;
182
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZEditorComponent, "z-editor", ["zEditor"], { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zLabel": { "alias": "zLabel"; "required": false; "isSignal": true; }; "zLabelClass": { "alias": "zLabelClass"; "required": false; "isSignal": true; }; "zPlaceholder": { "alias": "zPlaceholder"; "required": false; "isSignal": true; }; "zRequired": { "alias": "zRequired"; "required": false; "isSignal": true; }; "zDisabled": { "alias": "zDisabled"; "required": false; "isSignal": true; }; "zReadonly": { "alias": "zReadonly"; "required": false; "isSignal": true; }; "zContentType": { "alias": "zContentType"; "required": false; "isSignal": true; }; "zToolbar": { "alias": "zToolbar"; "required": false; "isSignal": true; }; "zTipTap": { "alias": "zTipTap"; "required": false; "isSignal": true; }; "zValidators": { "alias": "zValidators"; "required": false; "isSignal": true; }; }, { "zOnChange": "zOnChange"; "zOnFocus": "zOnFocus"; "zOnBlur": "zOnBlur"; "zControl": "zControl"; "zEvent": "zEvent"; }, never, never, true, never>;
126
183
  }
127
184
 
185
+ declare const Z_EDITOR_DEFAULT_TOOLBAR: readonly ZEditorToolbarItem[];
186
+
128
187
  declare const zEditorVariants: (props?: ({
129
188
  zSize?: "sm" | "default" | "lg" | null | undefined;
130
189
  zStatus?: "default" | "error" | "disabled" | "readonly" | null | undefined;
190
+ zPlaceholderMode?: "firstLine" | "everyLine" | null | undefined;
131
191
  } & class_variance_authority_types.ClassProp) | undefined) => string;
132
192
  type ZEditorVariants = VariantProps<typeof zEditorVariants>;
133
193
 
134
- export { ZEditorComponent, zEditorVariants };
135
- export type { ZEditorControl, ZEditorSize, ZEditorValidator, ZEditorVariants };
194
+ export { ZEditorComponent, Z_EDITOR_DEFAULT_TOOLBAR, zEditorVariants };
195
+ export type { ZEditorContentType, ZEditorControl, ZEditorResolvedToolbarItem, ZEditorSize, ZEditorTipTapOptions, ZEditorToolbarCommand, ZEditorToolbarItem, ZEditorValidator, ZEditorVariants };
@@ -3,6 +3,7 @@ import { AfterViewInit, EventEmitter } from '@angular/core';
3
3
  import { ZIcon } from '@shival99/z-ui/components/z-icon';
4
4
  import { ClassValue } from 'clsx';
5
5
  import * as _shival99_z_ui_components_z_gallery from '@shival99/z-ui/components/z-gallery';
6
+ import { SafeHtml } from '@angular/platform-browser';
6
7
  import { OverlayRef } from '@angular/cdk/overlay';
7
8
  import * as class_variance_authority_types from 'class-variance-authority/types';
8
9
  import { VariantProps } from 'class-variance-authority';
@@ -103,7 +104,7 @@ declare class ZGalleryComponent implements AfterViewInit {
103
104
  protected readonly previewFile: _angular_core.WritableSignal<ZGalleryFile | null>;
104
105
  protected readonly searchQuery: _angular_core.WritableSignal<string>;
105
106
  protected readonly currentMode: _angular_core.Signal<ZGalleryMode>;
106
- protected readonly gridColumns: _angular_core.Signal<string>;
107
+ protected readonly gridColumnsClass: _angular_core.Signal<string>;
107
108
  protected readonly containerClasses: _angular_core.Signal<string>;
108
109
  protected readonly showHeader: _angular_core.Signal<string | boolean>;
109
110
  protected readonly toggleIconSize: _angular_core.Signal<"14" | "16" | "20" | "18">;
@@ -185,6 +186,7 @@ declare class ZGalleryFileIconComponent {
185
186
  }
186
187
 
187
188
  declare class ZGalleryPreviewComponent {
189
+ private readonly _sanitizer;
188
190
  readonly file: _angular_core.InputSignal<ZGalleryFile>;
189
191
  readonly files: _angular_core.InputSignal<ZGalleryFile[]>;
190
192
  readonly zShowRemove: _angular_core.InputSignal<boolean>;
@@ -195,10 +197,18 @@ declare class ZGalleryPreviewComponent {
195
197
  protected readonly zoomed: _angular_core.WritableSignal<boolean>;
196
198
  protected readonly isLoading: _angular_core.WritableSignal<boolean>;
197
199
  protected readonly rotation: _angular_core.WritableSignal<number>;
200
+ protected readonly isConverting: _angular_core.WritableSignal<boolean>;
201
+ protected readonly conversionError: _angular_core.WritableSignal<string | null>;
202
+ protected readonly docHtmlContent: _angular_core.WritableSignal<SafeHtml | null>;
203
+ protected readonly textContent: _angular_core.WritableSignal<string>;
198
204
  private readonly _mediaLoaded;
199
205
  private _loadingStartTime;
200
206
  private readonly _minLoadingTime;
201
207
  constructor();
208
+ private _loadFileContent;
209
+ private _loadDocx;
210
+ private _loadExcel;
211
+ private _loadText;
202
212
  private _completeLoading;
203
213
  protected readonly currentIndex: _angular_core.Signal<number>;
204
214
  protected readonly hasPrev: _angular_core.Signal<boolean>;
@@ -206,6 +216,9 @@ declare class ZGalleryPreviewComponent {
206
216
  protected readonly isImageFile: _angular_core.Signal<boolean>;
207
217
  protected readonly isPdf: _angular_core.Signal<boolean>;
208
218
  protected readonly isVideo: _angular_core.Signal<boolean>;
219
+ protected readonly isWordFile: _angular_core.Signal<boolean>;
220
+ protected readonly isExcelFile: _angular_core.Signal<boolean>;
221
+ protected readonly isTextFile: _angular_core.Signal<boolean>;
209
222
  protected readonly canPreview: _angular_core.Signal<boolean>;
210
223
  protected readonly formattedSize: _angular_core.Signal<string>;
211
224
  protected readonly imageTransform: _angular_core.Signal<string>;
@@ -192,6 +192,7 @@ declare class ZInputComponent implements OnInit, ControlValueAccessor {
192
192
  private readonly _shouldShowValidation;
193
193
  protected readonly hasError: _angular_core.Signal<boolean>;
194
194
  protected readonly errorMessage: _angular_core.Signal<string>;
195
+ private _translateValidationMessage;
195
196
  private readonly _searchSubject;
196
197
  private readonly _changeSubject;
197
198
  private readonly _asyncValidationSubject;
@@ -0,0 +1,35 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { ClassValue } from 'clsx';
4
+
5
+ type ZMarqueeDirection = 'left' | 'right' | 'up' | 'down';
6
+ type ZMarqueeFade = 'none' | 'left' | 'right' | 'top' | 'bottom' | 'both';
7
+
8
+ declare class ZMarqueeComponent {
9
+ readonly class: _angular_core.InputSignal<ClassValue>;
10
+ readonly zDirection: _angular_core.InputSignal<ZMarqueeDirection>;
11
+ readonly zPauseOnHover: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
12
+ readonly zRepeat: _angular_core.InputSignal<number>;
13
+ readonly zDuration: _angular_core.InputSignal<number>;
14
+ readonly zGap: _angular_core.InputSignal<string>;
15
+ readonly zFade: _angular_core.InputSignal<ZMarqueeFade>;
16
+ protected readonly contentTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
17
+ protected readonly isVertical: _angular_core.Signal<boolean>;
18
+ protected readonly isReverse: _angular_core.Signal<boolean>;
19
+ protected readonly showLeftFade: _angular_core.Signal<boolean>;
20
+ protected readonly showRightFade: _angular_core.Signal<boolean>;
21
+ protected readonly showTopFade: _angular_core.Signal<boolean>;
22
+ protected readonly showBottomFade: _angular_core.Signal<boolean>;
23
+ protected readonly hostClasses: _angular_core.Signal<string>;
24
+ protected readonly repeatItems: _angular_core.Signal<number[]>;
25
+ protected readonly copyItems: readonly [0, 1];
26
+ protected readonly runnerClasses: _angular_core.Signal<string>;
27
+ protected readonly animationClasses: _angular_core.Signal<string>;
28
+ protected readonly trackClasses: _angular_core.Signal<string>;
29
+ protected readonly contentClasses: _angular_core.Signal<string>;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZMarqueeComponent, never>;
31
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZMarqueeComponent, "z-marquee", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zDirection": { "alias": "zDirection"; "required": false; "isSignal": true; }; "zPauseOnHover": { "alias": "zPauseOnHover"; "required": false; "isSignal": true; }; "zRepeat": { "alias": "zRepeat"; "required": false; "isSignal": true; }; "zDuration": { "alias": "zDuration"; "required": false; "isSignal": true; }; "zGap": { "alias": "zGap"; "required": false; "isSignal": true; }; "zFade": { "alias": "zFade"; "required": false; "isSignal": true; }; }, {}, ["contentTemplate"], never, true, never>;
32
+ }
33
+
34
+ export { ZMarqueeComponent };
35
+ export type { ZMarqueeDirection, ZMarqueeFade };
@@ -0,0 +1,67 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ZIcon } from '@shival99/z-ui/components/z-icon';
3
+ import { ClassValue } from 'clsx';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ type ZMetricCardSize = 'sm' | 'default' | 'lg';
8
+ type ZMetricCardVariant = 'default' | 'bordered' | 'soft';
9
+ type ZMetricCardTrendDirection = 'up' | 'down' | 'neutral';
10
+ type ZMetricCardDecor = 'none' | 'wave' | 'grid' | 'rings' | 'bars' | 'dots' | 'spark';
11
+ interface ZMetricCardTrend {
12
+ value: string | number;
13
+ direction?: ZMetricCardTrendDirection;
14
+ label?: string;
15
+ }
16
+ interface ZMetricCardAction {
17
+ label: string;
18
+ icon?: ZIcon;
19
+ }
20
+
21
+ declare class ZMetricCardComponent {
22
+ readonly zActionClick: _angular_core.OutputEmitterRef<ZMetricCardAction>;
23
+ readonly class: _angular_core.InputSignal<ClassValue>;
24
+ readonly zTitle: _angular_core.InputSignal<string>;
25
+ readonly zValue: _angular_core.InputSignal<string | number>;
26
+ readonly zDescription: _angular_core.InputSignal<string>;
27
+ readonly zIcon: _angular_core.InputSignal<ZIcon | undefined>;
28
+ readonly zTrend: _angular_core.InputSignal<ZMetricCardTrend | undefined>;
29
+ readonly zProgress: _angular_core.InputSignal<number | undefined>;
30
+ readonly zAction: _angular_core.InputSignal<ZMetricCardAction | undefined>;
31
+ readonly zSize: _angular_core.InputSignal<ZMetricCardSize>;
32
+ readonly zVariant: _angular_core.InputSignal<ZMetricCardVariant>;
33
+ readonly zDecor: _angular_core.InputSignal<ZMetricCardDecor>;
34
+ readonly zLoading: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
35
+ protected readonly hostClasses: _angular_core.Signal<string>;
36
+ protected readonly iconClasses: _angular_core.Signal<string>;
37
+ protected readonly valueClasses: _angular_core.Signal<string>;
38
+ protected readonly decorClasses: _angular_core.Signal<string>;
39
+ protected readonly trendDirection: _angular_core.Signal<ZMetricCardTrendDirection>;
40
+ protected readonly trendClasses: _angular_core.Signal<string>;
41
+ protected readonly trendIcon: _angular_core.Signal<ZIcon>;
42
+ protected readonly normalizedProgress: _angular_core.Signal<number | null>;
43
+ protected onActionClick(): void;
44
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZMetricCardComponent, never>;
45
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZMetricCardComponent, "z-metric-card", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zTitle": { "alias": "zTitle"; "required": false; "isSignal": true; }; "zValue": { "alias": "zValue"; "required": false; "isSignal": true; }; "zDescription": { "alias": "zDescription"; "required": false; "isSignal": true; }; "zIcon": { "alias": "zIcon"; "required": false; "isSignal": true; }; "zTrend": { "alias": "zTrend"; "required": false; "isSignal": true; }; "zProgress": { "alias": "zProgress"; "required": false; "isSignal": true; }; "zAction": { "alias": "zAction"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zVariant": { "alias": "zVariant"; "required": false; "isSignal": true; }; "zDecor": { "alias": "zDecor"; "required": false; "isSignal": true; }; "zLoading": { "alias": "zLoading"; "required": false; "isSignal": true; }; }, { "zActionClick": "zActionClick"; }, never, ["*"], true, never>;
46
+ }
47
+
48
+ declare const zMetricCardVariants: (props?: ({
49
+ zSize?: "sm" | "default" | "lg" | null | undefined;
50
+ zVariant?: "default" | "bordered" | "soft" | null | undefined;
51
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
52
+ declare const zMetricCardIconVariants: (props?: ({
53
+ zSize?: "sm" | "default" | "lg" | null | undefined;
54
+ zVariant?: "default" | "bordered" | "soft" | null | undefined;
55
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
56
+ declare const zMetricCardValueVariants: (props?: ({
57
+ zSize?: "sm" | "default" | "lg" | null | undefined;
58
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
59
+ declare const zMetricCardTrendVariants: (props?: ({
60
+ zTrendDirection?: "up" | "down" | "neutral" | null | undefined;
61
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
62
+ type ZMetricCardVariants = VariantProps<typeof zMetricCardVariants>;
63
+ type ZMetricCardIconVariants = VariantProps<typeof zMetricCardIconVariants>;
64
+ type ZMetricCardTrendVariants = VariantProps<typeof zMetricCardTrendVariants>;
65
+
66
+ export { ZMetricCardComponent, zMetricCardIconVariants, zMetricCardTrendVariants, zMetricCardValueVariants, zMetricCardVariants };
67
+ export type { ZMetricCardAction, ZMetricCardDecor, ZMetricCardIconVariants, ZMetricCardSize, ZMetricCardTrend, ZMetricCardTrendDirection, ZMetricCardTrendVariants, ZMetricCardVariant, ZMetricCardVariants };