@ngstarter-ui/components 21.0.28 → 21.0.30

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.
@@ -3,7 +3,7 @@
3
3
  "generatedBy": "scripts/generate-ai-metadata.mjs",
4
4
  "package": "@ngstarter-ui/components",
5
5
  "description": "AI-readable registry for NgStarter UI Angular secondary entry points.",
6
- "componentCount": 123,
6
+ "componentCount": 124,
7
7
  "conventions": {
8
8
  "importPattern": "@ngstarter-ui/components/<component>",
9
9
  "selectorPrefix": "ngs",
@@ -3969,6 +3969,70 @@
3969
3969
  ],
3970
3970
  "example": null
3971
3971
  },
3972
+ {
3973
+ "name": "file-type",
3974
+ "title": "File Type",
3975
+ "overviewName": "File Type",
3976
+ "category": "components",
3977
+ "package": "@ngstarter-ui/components",
3978
+ "importPath": "@ngstarter-ui/components/file-type",
3979
+ "publicApi": "projects/components/file-type/public-api.ts",
3980
+ "sourceRoot": "projects/components/file-type/src",
3981
+ "docsPath": "/components/file-type",
3982
+ "docsOverviewSource": "projects/docs/src/app/components/file-type/overview/overview.html",
3983
+ "purpose": "The NgStarter Angular File Type component renders built-in SVG file icons from a MIME type, extension, or file name.",
3984
+ "useWhen": "Choose File Type when the workflow matches examples such as Basic File Type, Icon Sizes, MIME Type Detection, File Type Gallery, File type sizes.",
3985
+ "exampleTopics": [
3986
+ "Basic File Type",
3987
+ "Icon Sizes",
3988
+ "MIME Type Detection",
3989
+ "File Type Gallery",
3990
+ "File type sizes",
3991
+ "File type mime"
3992
+ ],
3993
+ "minimalExample": "<div class=\"flex items-center gap-4\">\n <ngs-file-type fileName=\"contract.pdf\" class=\"size-14\"/>\n <div>\n <div class=\"text-sm\">contract.pdf</div>\n <div class=\"text-xs text-secondary\">Resolved from fileName</div>\n </div>\n</div>\n<div class=\"flex items-center gap-4 mt-5\">\n <ngs-file-type extension=\"xlsx\" class=\"size-14\"/>\n <div>\n <div class=\"text-sm\">Financial model</div>\n <div class=\"text-xs text-secondary\">Resolved from extension</div>\n </div>\n</div>",
3994
+ "exampleFiles": [
3995
+ {
3996
+ "name": "basic-file-type-example",
3997
+ "title": "Basic file type",
3998
+ "file": "projects/docs/src/app/components/file-type/_examples/basic-file-type-example/basic-file-type-example.html",
3999
+ "source": "<div class=\"flex items-center gap-4\">\n <ngs-file-type fileName=\"contract.pdf\" class=\"size-14\"/>\n <div>\n <div class=\"text-sm\">contract.pdf</div>\n <div class=\"text-xs text-secondary\">Resolved from fileName</div>\n </div>\n</div>\n<div class=\"flex items-center gap-4 mt-5\">\n <ngs-file-type extension=\"xlsx\" class=\"size-14\"/>\n <div>\n <div class=\"text-sm\">Financial model</div>\n <div class=\"text-xs text-secondary\">Resolved from extension</div>\n </div>\n</div>"
4000
+ },
4001
+ {
4002
+ "name": "file-type-gallery-example",
4003
+ "title": "File type gallery",
4004
+ "file": "projects/docs/src/app/components/file-type/_examples/file-type-gallery-example/file-type-gallery-example.html",
4005
+ "source": "<div class=\"grid grid-cols-3 gap-4 sm:grid-cols-4 md:grid-cols-5\">\n @for (type of types(); track type) {\n <div class=\"flex flex-col items-center gap-2 rounded-lg border border-subtle p-4\">\n <ngs-file-type [extension]=\"type\" class=\"size-16\"/>\n <div class=\"text-xs uppercase text-secondary\">{{ type }}</div>\n </div>\n }\n</div>"
4006
+ },
4007
+ {
4008
+ "name": "file-type-mime-example",
4009
+ "title": "File type mime",
4010
+ "file": "projects/docs/src/app/components/file-type/_examples/file-type-mime-example/file-type-mime-example.html",
4011
+ "source": "<div class=\"grid gap-4 sm:grid-cols-2\">\n @for (file of files(); track file.name) {\n <div class=\"flex items-center gap-4 rounded-lg border border-subtle p-4\">\n <ngs-file-type [mimeType]=\"file.mimeType\" [fallback]=\"file.fallback\" class=\"size-12\"/>\n <div class=\"min-w-0\">\n <div class=\"truncate text-sm\">{{ file.name }}</div>\n <div class=\"truncate text-xs text-secondary\">{{ file.mimeType }}</div>\n </div>\n </div>\n }\n</div>"
4012
+ }
4013
+ ],
4014
+ "previewAsset": "projects/components/file-type/preview.svg",
4015
+ "selectors": [
4016
+ "ngs-file-type"
4017
+ ],
4018
+ "exportedSymbols": [
4019
+ "FileType",
4020
+ "FileTypeName"
4021
+ ],
4022
+ "inputs": [
4023
+ "decorative",
4024
+ "extension",
4025
+ "fallback",
4026
+ "fileName",
4027
+ "label",
4028
+ "mimeType"
4029
+ ],
4030
+ "outputs": [],
4031
+ "cssTokens": [
4032
+ "--ngs-file-type-size"
4033
+ ],
4034
+ "example": null
4035
+ },
3972
4036
  {
3973
4037
  "name": "filter-builder",
3974
4038
  "title": "Filter Builder",
@@ -0,0 +1,170 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, booleanAttribute, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ const EXTENSION_TO_TYPE = {
5
+ avi: 'avi',
6
+ csv: 'csv',
7
+ doc: 'doc',
8
+ docx: 'doc',
9
+ html: 'html',
10
+ htm: 'html',
11
+ jpeg: 'jpg',
12
+ jpg: 'jpg',
13
+ json: 'json',
14
+ jsonld: 'json',
15
+ mkv: 'mkv',
16
+ mov: 'mov',
17
+ mp3: 'mp3',
18
+ m4a: 'mp3',
19
+ mp4: 'mp4',
20
+ pdf: 'pdf',
21
+ png: 'png',
22
+ pot: 'ppt',
23
+ potx: 'ppt',
24
+ pps: 'ppt',
25
+ ppsx: 'ppt',
26
+ ppt: 'ppt',
27
+ pptx: 'ppt',
28
+ svg: 'svg',
29
+ text: 'txt',
30
+ txt: 'txt',
31
+ wav: 'wav',
32
+ webm: 'webm',
33
+ xls: 'xls',
34
+ xlsx: 'xls',
35
+ xml: 'xml',
36
+ zip: 'zip',
37
+ };
38
+ const MIME_TYPE_TO_TYPE = {
39
+ 'application/csv': 'csv',
40
+ 'application/json': 'json',
41
+ 'application/ld+json': 'json',
42
+ 'application/msword': 'doc',
43
+ 'application/pdf': 'pdf',
44
+ 'application/rtf': 'doc',
45
+ 'application/vnd.ms-excel': 'xls',
46
+ 'application/vnd.ms-powerpoint': 'ppt',
47
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation': 'ppt',
48
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'xls',
49
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'doc',
50
+ 'application/x-zip-compressed': 'zip',
51
+ 'application/xml': 'xml',
52
+ 'application/zip': 'zip',
53
+ 'audio/mp3': 'mp3',
54
+ 'audio/mpeg': 'mp3',
55
+ 'audio/wav': 'wav',
56
+ 'audio/wave': 'wav',
57
+ 'audio/x-wav': 'wav',
58
+ 'image/jpeg': 'jpg',
59
+ 'image/jpg': 'jpg',
60
+ 'image/png': 'png',
61
+ 'image/svg+xml': 'svg',
62
+ 'multipart/x-zip': 'zip',
63
+ 'text/comma-separated-values': 'csv',
64
+ 'text/csv': 'csv',
65
+ 'text/html': 'html',
66
+ 'text/json': 'json',
67
+ 'text/plain': 'txt',
68
+ 'text/xml': 'xml',
69
+ 'video/mp4': 'mp4',
70
+ 'video/quicktime': 'mov',
71
+ 'video/webm': 'webm',
72
+ 'video/x-matroska': 'mkv',
73
+ 'video/x-msvideo': 'avi',
74
+ };
75
+ let nextIconId = 0;
76
+ class FileType {
77
+ iconId = `ngs-file-type-${nextIconId++}`;
78
+ mimeType = input(...(ngDevMode ? [undefined, { debugName: "mimeType" }] : /* istanbul ignore next */ []));
79
+ extension = input(...(ngDevMode ? [undefined, { debugName: "extension" }] : /* istanbul ignore next */ []));
80
+ fileName = input(...(ngDevMode ? [undefined, { debugName: "fileName" }] : /* istanbul ignore next */ []));
81
+ fallback = input('txt', ...(ngDevMode ? [{ debugName: "fallback" }] : /* istanbul ignore next */ []));
82
+ label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
83
+ decorative = input(false, { ...(ngDevMode ? { debugName: "decorative" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
84
+ type = computed(() => this.resolveType(), ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
85
+ resolvedLabel = computed(() => {
86
+ const label = this.label();
87
+ if (label) {
88
+ return label;
89
+ }
90
+ return `${this.type().toUpperCase()} file`;
91
+ }, ...(ngDevMode ? [{ debugName: "resolvedLabel" }] : /* istanbul ignore next */ []));
92
+ resolveType() {
93
+ const extensionType = this.resolveExtension(this.extension()) ?? this.resolveExtension(this.fileName());
94
+ if (extensionType) {
95
+ return extensionType;
96
+ }
97
+ const mimeType = this.normalizeMimeType(this.mimeType());
98
+ if (mimeType) {
99
+ return MIME_TYPE_TO_TYPE[mimeType] ?? this.resolveMimeFamily(mimeType) ?? this.fallback();
100
+ }
101
+ return this.fallback();
102
+ }
103
+ resolveExtension(value) {
104
+ const extension = this.normalizeExtension(value);
105
+ if (!extension) {
106
+ return null;
107
+ }
108
+ return EXTENSION_TO_TYPE[extension] ?? null;
109
+ }
110
+ normalizeExtension(value) {
111
+ if (!value) {
112
+ return null;
113
+ }
114
+ const normalized = value.trim().toLowerCase();
115
+ if (!normalized) {
116
+ return null;
117
+ }
118
+ const fileExtension = normalized.includes('.')
119
+ ? normalized.split('.').pop()
120
+ : normalized.replace(/^\./, '');
121
+ return fileExtension || null;
122
+ }
123
+ normalizeMimeType(value) {
124
+ if (!value) {
125
+ return null;
126
+ }
127
+ const mimeType = value.split(';')[0].trim().toLowerCase();
128
+ return mimeType || null;
129
+ }
130
+ resolveMimeFamily(mimeType) {
131
+ if (mimeType.startsWith('image/')) {
132
+ return 'png';
133
+ }
134
+ if (mimeType.startsWith('video/')) {
135
+ return 'mp4';
136
+ }
137
+ if (mimeType.startsWith('audio/')) {
138
+ return 'mp3';
139
+ }
140
+ if (mimeType.startsWith('text/')) {
141
+ return 'txt';
142
+ }
143
+ return null;
144
+ }
145
+ gradientId(type) {
146
+ return `${this.iconId}-${type}-pageGradient`;
147
+ }
148
+ gradientUrl(type) {
149
+ return `url(#${this.gradientId(type)})`;
150
+ }
151
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: FileType, deps: [], target: i0.ɵɵFactoryTarget.Component });
152
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: FileType, isStandalone: true, selector: "ngs-file-type", inputs: { mimeType: { classPropertyName: "mimeType", publicName: "mimeType", isSignal: true, isRequired: false, transformFunction: null }, extension: { classPropertyName: "extension", publicName: "extension", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, fallback: { classPropertyName: "fallback", publicName: "fallback", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, decorative: { classPropertyName: "decorative", publicName: "decorative", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "decorative() ? null : \"img\"", "attr.aria-label": "decorative() ? null : resolvedLabel()", "attr.aria-hidden": "decorative() ? \"true\" : null", "attr.data-file-type": "type()" }, classAttribute: "ngs-file-type not-prose" }, exportAs: ["ngsFileType"], ngImport: i0, template: "<span class=\"icon\">\n @switch (type()) {\n @case ('avi') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('avi')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#8D7CFF\" />\n <stop offset=\"1\" stop-color=\"#4531C9\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('avi')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#4531C9\"\n >\n AVI\n </text>\n </g>\n </svg>\n }\n @case ('csv') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('csv')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#42D9D2\" />\n <stop offset=\"1\" stop-color=\"#0B8A97\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('csv')\" />\n <g transform=\"translate(0 -2)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M42 33C38.686 33 36 35.686 36 39V61C36 64.314 38.686 67 42 67H86C89.314 67 92 64.314 92 61V39C92 35.686 89.314 33 86 33H42ZM43 37C41.343 37 40 38.343 40 40V49H54V37H43ZM57 37H71V49H57V37ZM74 37V49H88V40C88 38.343 86.657 37 85 37H74ZM40 52V61C40 62.657 41.343 64 43 64H54V52H40ZM57 52H71V64H57V52ZM74 52V64H85C86.657 64 88 62.657 88 61V52H74Z\"\n fill=\"white\"\n fill-opacity=\"0.5\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#0B8A97\"\n >\n CSV\n </text>\n </g>\n </svg>\n }\n @case ('doc') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('doc')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#5EA8FF\" />\n <stop offset=\"1\" stop-color=\"#1D5FD6\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('doc')\" />\n <g transform=\"translate(0 2)\">\n <path\n d=\"M42 32H82M42 44H86M42 56H76\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#1D5FD6\"\n >\n DOC\n </text>\n </g>\n </svg>\n }\n @case ('html') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('html')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF7A5F\" />\n <stop offset=\"1\" stop-color=\"#D23B21\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('html')\" />\n <g transform=\"translate(0 -2)\">\n <path\n d=\"M53 36L41 48L53 60M75 36L87 48L75 60M68 34L60 62\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"16\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#D23B21\"\n >\n HTML\n </text>\n </g>\n </svg>\n }\n @case ('jpg') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('jpg')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF78B6\" />\n <stop offset=\"1\" stop-color=\"#C92678\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('jpg')\" />\n <g transform=\"translate(0 -4)\">\n <rect x=\"37\" y=\"34\" width=\"54\" height=\"36\" rx=\"7\" fill=\"white\" fill-opacity=\"0.18\" />\n <path\n d=\"M39 62L51 50L61 59L70 49L89 66\"\n stroke=\"white\"\n stroke-opacity=\"0.62\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"75\" cy=\"44\" r=\"5\" fill=\"white\" fill-opacity=\"0.62\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#C92678\"\n >\n JPG\n </text>\n </g>\n </svg>\n }\n @case ('json') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('json')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#667085\" />\n <stop offset=\"1\" stop-color=\"#202939\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('json')\" />\n <g transform=\"translate(0 -4)\">\n <path\n d=\"M51 33C45 33 43 37 43 41V45C43 48 41 50 38 50C41 50 43 52 43 55V59C43 63 45 67 51 67\"\n stroke=\"white\"\n stroke-opacity=\"0.42\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M77 33C83 33 85 37 85 41V45C85 48 87 50 90 50C87 50 85 52 85 55V59C85 63 83 67 77 67\"\n stroke=\"white\"\n stroke-opacity=\"0.42\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M57 43H70M57 57H73\"\n stroke=\"white\"\n stroke-opacity=\"0.44\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"16\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#202939\"\n >\n JSON\n </text>\n </g>\n </svg>\n }\n @case ('mkv') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mkv')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#AA74FF\" />\n <stop offset=\"1\" stop-color=\"#5C26B8\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mkv')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#5C26B8\"\n >\n MKV\n </text>\n </g>\n </svg>\n }\n @case ('mov') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mov')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#45D0FF\" />\n <stop offset=\"1\" stop-color=\"#1268C7\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mov')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#1268C7\"\n >\n MOV\n </text>\n </g>\n </svg>\n }\n @case ('mp3') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mp3')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D36BFF\" />\n <stop offset=\"1\" stop-color=\"#8A2BC6\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mp3')\" />\n <g transform=\"translate(0 0)\">\n <path\n d=\"M52 56V35L82 30V49M52 56C52 59.5 49.2 62 45.5 62C41.8 62 39 59.5 39 56C39 52.5 41.8 50 45.5 50C49.2 50 52 52.5 52 56ZM82 49C82 52.5 79.2 55 75.5 55C71.8 55 69 52.5 69 49C69 45.5 71.8 43 75.5 43C79.2 43 82 45.5 82 49Z\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#8A2BC6\"\n >\n MP3\n </text>\n </g>\n </svg>\n }\n @case ('mp4') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mp4')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#5E9BFF\" />\n <stop offset=\"1\" stop-color=\"#2745C8\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mp4')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#2745C8\"\n >\n MP4\n </text>\n </g>\n </svg>\n }\n @case ('pdf') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('pdf')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF6A5F\" />\n <stop offset=\"1\" stop-color=\"#D82432\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('pdf')\" />\n <g transform=\"translate(0 2)\">\n <path\n d=\"M42 32H82M42 44H86M42 56H76\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#D82432\"\n >\n PDF\n </text>\n </g>\n </svg>\n }\n @case ('png') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('png')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#4EC8FF\" />\n <stop offset=\"1\" stop-color=\"#147AAE\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('png')\" />\n <g transform=\"translate(0 -4)\">\n <rect x=\"37\" y=\"34\" width=\"54\" height=\"36\" rx=\"7\" fill=\"white\" fill-opacity=\"0.18\" />\n <path\n d=\"M39 62L51 50L61 59L70 49L89 66\"\n stroke=\"white\"\n stroke-opacity=\"0.62\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"75\" cy=\"44\" r=\"5\" fill=\"white\" fill-opacity=\"0.62\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#147AAE\"\n >\n PNG\n </text>\n </g>\n </svg>\n }\n @case ('ppt') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('ppt')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF9B4A\" />\n <stop offset=\"1\" stop-color=\"#D84A1B\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('ppt')\" />\n <g transform=\"translate(0 0)\">\n <rect\n x=\"40\"\n y=\"31\"\n width=\"48\"\n height=\"30\"\n rx=\"5\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"5\"\n />\n <path\n d=\"M51 51H75M51 43H63\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#D84A1B\"\n >\n PPT\n </text>\n </g>\n </svg>\n }\n @case ('svg') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('svg')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#B389FF\" />\n <stop offset=\"1\" stop-color=\"#6F35D5\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('svg')\" />\n <g transform=\"translate(0 -4)\">\n <rect x=\"37\" y=\"34\" width=\"54\" height=\"36\" rx=\"7\" fill=\"white\" fill-opacity=\"0.18\" />\n <path\n d=\"M39 62L51 50L61 59L70 49L89 66\"\n stroke=\"white\"\n stroke-opacity=\"0.62\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"75\" cy=\"44\" r=\"5\" fill=\"white\" fill-opacity=\"0.62\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#6F35D5\"\n >\n SVG\n </text>\n </g>\n </svg>\n }\n @case ('txt') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('txt')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#95A3B8\" />\n <stop offset=\"1\" stop-color=\"#526071\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('txt')\" />\n <g transform=\"translate(0 2)\">\n <path\n d=\"M42 32H82M42 44H86M42 56H76\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#526071\"\n >\n TXT\n </text>\n </g>\n </svg>\n }\n @case ('wav') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('wav')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF6EDB\" />\n <stop offset=\"1\" stop-color=\"#B8299F\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('wav')\" />\n <g transform=\"translate(0 -3)\">\n <path\n d=\"M39 49H45L50 37L57 61L64 39L70 55H89\"\n stroke=\"white\"\n stroke-opacity=\"0.38\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#B8299F\"\n >\n WAV\n </text>\n </g>\n </svg>\n }\n @case ('webm') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('webm')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#53B5FF\" />\n <stop offset=\"1\" stop-color=\"#5034D5\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('webm')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"16\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#5034D5\"\n >\n WEBM\n </text>\n </g>\n </svg>\n }\n @case ('xls') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('xls')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#4AD991\" />\n <stop offset=\"1\" stop-color=\"#168F58\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('xls')\" />\n <g transform=\"translate(0 -2)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M42 33C38.686 33 36 35.686 36 39V61C36 64.314 38.686 67 42 67H86C89.314 67 92 64.314 92 61V39C92 35.686 89.314 33 86 33H42ZM43 37C41.343 37 40 38.343 40 40V49H54V37H43ZM57 37H71V49H57V37ZM74 37V49H88V40C88 38.343 86.657 37 85 37H74ZM40 52V61C40 62.657 41.343 64 43 64H54V52H40ZM57 52H71V64H57V52ZM74 52V64H85C86.657 64 88 62.657 88 61V52H74Z\"\n fill=\"white\"\n fill-opacity=\"0.5\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#168F58\"\n >\n XLS\n </text>\n </g>\n </svg>\n }\n @case ('xml') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('xml')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#7188FF\" />\n <stop offset=\"1\" stop-color=\"#3346B8\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('xml')\" />\n <g transform=\"translate(0 -2)\">\n <path\n d=\"M53 36L41 48L53 60M75 36L87 48L75 60M68 34L60 62\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#3346B8\"\n >\n XML\n </text>\n </g>\n </svg>\n }\n @case ('zip') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('zip')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFD15C\" />\n <stop offset=\"1\" stop-color=\"#C48612\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('zip')\" />\n <g transform=\"translate(0 -4)\">\n <path\n d=\"M61 34Q61 32 63 32H65Q67 32 67 34V66Q67 68 65 68H63Q61 68 61 66V34ZM53 34Q51 34 51 36V37Q51 39 53 39H61V34H53ZM67 39V44H75Q77 44 77 42V41Q77 39 75 39H67ZM53 44Q51 44 51 46V47Q51 49 53 49H61V44H53ZM67 49V54H75Q77 54 77 52V51Q77 49 75 49H67ZM53 54Q51 54 51 56V57Q51 59 53 59H61V54H53ZM67 59V64H75Q77 64 77 62V61Q77 59 75 59H67Z\"\n fill=\"white\"\n fill-opacity=\"0.66\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#C48612\"\n >\n ZIP\n </text>\n </g>\n </svg>\n }\n }\n</span>\n", styles: [":host{--ngs-file-type-size: calc(var(--spacing, .25rem) * 10);display:inline-flex;flex:none;line-height:0}:host:not([class*=w-]):not([class*=size-]){width:var(--ngs-file-type-size)}:host:not([class*=h-]):not([class*=size-]){height:var(--ngs-file-type-size)}:host .icon{display:contents}:host svg{display:block;width:100%;height:100%;flex:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
153
+ }
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: FileType, decorators: [{
155
+ type: Component,
156
+ args: [{ selector: 'ngs-file-type', exportAs: 'ngsFileType', changeDetection: ChangeDetectionStrategy.OnPush, host: {
157
+ class: 'ngs-file-type not-prose',
158
+ '[attr.role]': 'decorative() ? null : "img"',
159
+ '[attr.aria-label]': 'decorative() ? null : resolvedLabel()',
160
+ '[attr.aria-hidden]': 'decorative() ? "true" : null',
161
+ '[attr.data-file-type]': 'type()',
162
+ }, template: "<span class=\"icon\">\n @switch (type()) {\n @case ('avi') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('avi')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#8D7CFF\" />\n <stop offset=\"1\" stop-color=\"#4531C9\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('avi')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#4531C9\"\n >\n AVI\n </text>\n </g>\n </svg>\n }\n @case ('csv') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('csv')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#42D9D2\" />\n <stop offset=\"1\" stop-color=\"#0B8A97\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('csv')\" />\n <g transform=\"translate(0 -2)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M42 33C38.686 33 36 35.686 36 39V61C36 64.314 38.686 67 42 67H86C89.314 67 92 64.314 92 61V39C92 35.686 89.314 33 86 33H42ZM43 37C41.343 37 40 38.343 40 40V49H54V37H43ZM57 37H71V49H57V37ZM74 37V49H88V40C88 38.343 86.657 37 85 37H74ZM40 52V61C40 62.657 41.343 64 43 64H54V52H40ZM57 52H71V64H57V52ZM74 52V64H85C86.657 64 88 62.657 88 61V52H74Z\"\n fill=\"white\"\n fill-opacity=\"0.5\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#0B8A97\"\n >\n CSV\n </text>\n </g>\n </svg>\n }\n @case ('doc') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('doc')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#5EA8FF\" />\n <stop offset=\"1\" stop-color=\"#1D5FD6\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('doc')\" />\n <g transform=\"translate(0 2)\">\n <path\n d=\"M42 32H82M42 44H86M42 56H76\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#1D5FD6\"\n >\n DOC\n </text>\n </g>\n </svg>\n }\n @case ('html') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('html')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF7A5F\" />\n <stop offset=\"1\" stop-color=\"#D23B21\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('html')\" />\n <g transform=\"translate(0 -2)\">\n <path\n d=\"M53 36L41 48L53 60M75 36L87 48L75 60M68 34L60 62\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"16\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#D23B21\"\n >\n HTML\n </text>\n </g>\n </svg>\n }\n @case ('jpg') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('jpg')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF78B6\" />\n <stop offset=\"1\" stop-color=\"#C92678\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('jpg')\" />\n <g transform=\"translate(0 -4)\">\n <rect x=\"37\" y=\"34\" width=\"54\" height=\"36\" rx=\"7\" fill=\"white\" fill-opacity=\"0.18\" />\n <path\n d=\"M39 62L51 50L61 59L70 49L89 66\"\n stroke=\"white\"\n stroke-opacity=\"0.62\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"75\" cy=\"44\" r=\"5\" fill=\"white\" fill-opacity=\"0.62\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#C92678\"\n >\n JPG\n </text>\n </g>\n </svg>\n }\n @case ('json') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('json')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#667085\" />\n <stop offset=\"1\" stop-color=\"#202939\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('json')\" />\n <g transform=\"translate(0 -4)\">\n <path\n d=\"M51 33C45 33 43 37 43 41V45C43 48 41 50 38 50C41 50 43 52 43 55V59C43 63 45 67 51 67\"\n stroke=\"white\"\n stroke-opacity=\"0.42\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M77 33C83 33 85 37 85 41V45C85 48 87 50 90 50C87 50 85 52 85 55V59C85 63 83 67 77 67\"\n stroke=\"white\"\n stroke-opacity=\"0.42\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M57 43H70M57 57H73\"\n stroke=\"white\"\n stroke-opacity=\"0.44\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"16\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#202939\"\n >\n JSON\n </text>\n </g>\n </svg>\n }\n @case ('mkv') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mkv')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#AA74FF\" />\n <stop offset=\"1\" stop-color=\"#5C26B8\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mkv')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#5C26B8\"\n >\n MKV\n </text>\n </g>\n </svg>\n }\n @case ('mov') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mov')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#45D0FF\" />\n <stop offset=\"1\" stop-color=\"#1268C7\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mov')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#1268C7\"\n >\n MOV\n </text>\n </g>\n </svg>\n }\n @case ('mp3') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mp3')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D36BFF\" />\n <stop offset=\"1\" stop-color=\"#8A2BC6\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mp3')\" />\n <g transform=\"translate(0 0)\">\n <path\n d=\"M52 56V35L82 30V49M52 56C52 59.5 49.2 62 45.5 62C41.8 62 39 59.5 39 56C39 52.5 41.8 50 45.5 50C49.2 50 52 52.5 52 56ZM82 49C82 52.5 79.2 55 75.5 55C71.8 55 69 52.5 69 49C69 45.5 71.8 43 75.5 43C79.2 43 82 45.5 82 49Z\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#8A2BC6\"\n >\n MP3\n </text>\n </g>\n </svg>\n }\n @case ('mp4') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mp4')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#5E9BFF\" />\n <stop offset=\"1\" stop-color=\"#2745C8\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mp4')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#2745C8\"\n >\n MP4\n </text>\n </g>\n </svg>\n }\n @case ('pdf') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('pdf')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF6A5F\" />\n <stop offset=\"1\" stop-color=\"#D82432\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('pdf')\" />\n <g transform=\"translate(0 2)\">\n <path\n d=\"M42 32H82M42 44H86M42 56H76\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#D82432\"\n >\n PDF\n </text>\n </g>\n </svg>\n }\n @case ('png') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('png')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#4EC8FF\" />\n <stop offset=\"1\" stop-color=\"#147AAE\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('png')\" />\n <g transform=\"translate(0 -4)\">\n <rect x=\"37\" y=\"34\" width=\"54\" height=\"36\" rx=\"7\" fill=\"white\" fill-opacity=\"0.18\" />\n <path\n d=\"M39 62L51 50L61 59L70 49L89 66\"\n stroke=\"white\"\n stroke-opacity=\"0.62\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"75\" cy=\"44\" r=\"5\" fill=\"white\" fill-opacity=\"0.62\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#147AAE\"\n >\n PNG\n </text>\n </g>\n </svg>\n }\n @case ('ppt') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('ppt')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF9B4A\" />\n <stop offset=\"1\" stop-color=\"#D84A1B\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('ppt')\" />\n <g transform=\"translate(0 0)\">\n <rect\n x=\"40\"\n y=\"31\"\n width=\"48\"\n height=\"30\"\n rx=\"5\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"5\"\n />\n <path\n d=\"M51 51H75M51 43H63\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#D84A1B\"\n >\n PPT\n </text>\n </g>\n </svg>\n }\n @case ('svg') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('svg')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#B389FF\" />\n <stop offset=\"1\" stop-color=\"#6F35D5\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('svg')\" />\n <g transform=\"translate(0 -4)\">\n <rect x=\"37\" y=\"34\" width=\"54\" height=\"36\" rx=\"7\" fill=\"white\" fill-opacity=\"0.18\" />\n <path\n d=\"M39 62L51 50L61 59L70 49L89 66\"\n stroke=\"white\"\n stroke-opacity=\"0.62\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"75\" cy=\"44\" r=\"5\" fill=\"white\" fill-opacity=\"0.62\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#6F35D5\"\n >\n SVG\n </text>\n </g>\n </svg>\n }\n @case ('txt') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('txt')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#95A3B8\" />\n <stop offset=\"1\" stop-color=\"#526071\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('txt')\" />\n <g transform=\"translate(0 2)\">\n <path\n d=\"M42 32H82M42 44H86M42 56H76\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#526071\"\n >\n TXT\n </text>\n </g>\n </svg>\n }\n @case ('wav') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('wav')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF6EDB\" />\n <stop offset=\"1\" stop-color=\"#B8299F\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('wav')\" />\n <g transform=\"translate(0 -3)\">\n <path\n d=\"M39 49H45L50 37L57 61L64 39L70 55H89\"\n stroke=\"white\"\n stroke-opacity=\"0.38\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#B8299F\"\n >\n WAV\n </text>\n </g>\n </svg>\n }\n @case ('webm') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('webm')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#53B5FF\" />\n <stop offset=\"1\" stop-color=\"#5034D5\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('webm')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"16\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#5034D5\"\n >\n WEBM\n </text>\n </g>\n </svg>\n }\n @case ('xls') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('xls')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#4AD991\" />\n <stop offset=\"1\" stop-color=\"#168F58\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('xls')\" />\n <g transform=\"translate(0 -2)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M42 33C38.686 33 36 35.686 36 39V61C36 64.314 38.686 67 42 67H86C89.314 67 92 64.314 92 61V39C92 35.686 89.314 33 86 33H42ZM43 37C41.343 37 40 38.343 40 40V49H54V37H43ZM57 37H71V49H57V37ZM74 37V49H88V40C88 38.343 86.657 37 85 37H74ZM40 52V61C40 62.657 41.343 64 43 64H54V52H40ZM57 52H71V64H57V52ZM74 52V64H85C86.657 64 88 62.657 88 61V52H74Z\"\n fill=\"white\"\n fill-opacity=\"0.5\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#168F58\"\n >\n XLS\n </text>\n </g>\n </svg>\n }\n @case ('xml') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('xml')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#7188FF\" />\n <stop offset=\"1\" stop-color=\"#3346B8\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('xml')\" />\n <g transform=\"translate(0 -2)\">\n <path\n d=\"M53 36L41 48L53 60M75 36L87 48L75 60M68 34L60 62\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#3346B8\"\n >\n XML\n </text>\n </g>\n </svg>\n }\n @case ('zip') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('zip')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFD15C\" />\n <stop offset=\"1\" stop-color=\"#C48612\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('zip')\" />\n <g transform=\"translate(0 -4)\">\n <path\n d=\"M61 34Q61 32 63 32H65Q67 32 67 34V66Q67 68 65 68H63Q61 68 61 66V34ZM53 34Q51 34 51 36V37Q51 39 53 39H61V34H53ZM67 39V44H75Q77 44 77 42V41Q77 39 75 39H67ZM53 44Q51 44 51 46V47Q51 49 53 49H61V44H53ZM67 49V54H75Q77 54 77 52V51Q77 49 75 49H67ZM53 54Q51 54 51 56V57Q51 59 53 59H61V54H53ZM67 59V64H75Q77 64 77 62V61Q77 59 75 59H67Z\"\n fill=\"white\"\n fill-opacity=\"0.66\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#C48612\"\n >\n ZIP\n </text>\n </g>\n </svg>\n }\n }\n</span>\n", styles: [":host{--ngs-file-type-size: calc(var(--spacing, .25rem) * 10);display:inline-flex;flex:none;line-height:0}:host:not([class*=w-]):not([class*=size-]){width:var(--ngs-file-type-size)}:host:not([class*=h-]):not([class*=size-]){height:var(--ngs-file-type-size)}:host .icon{display:contents}:host svg{display:block;width:100%;height:100%;flex:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
163
+ }], propDecorators: { mimeType: [{ type: i0.Input, args: [{ isSignal: true, alias: "mimeType", required: false }] }], extension: [{ type: i0.Input, args: [{ isSignal: true, alias: "extension", required: false }] }], fileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileName", required: false }] }], fallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "fallback", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], decorative: [{ type: i0.Input, args: [{ isSignal: true, alias: "decorative", required: false }] }] } });
164
+
165
+ /**
166
+ * Generated bundle index. Do not edit.
167
+ */
168
+
169
+ export { FileType };
170
+ //# sourceMappingURL=ngstarter-ui-components-file-type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngstarter-ui-components-file-type.mjs","sources":["../../../projects/components/file-type/src/file-type/file-type.ts","../../../projects/components/file-type/src/file-type/file-type.html","../../../projects/components/file-type/ngstarter-ui-components-file-type.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\nimport { FileTypeName } from '../types';\n\nconst EXTENSION_TO_TYPE: Record<string, FileTypeName> = {\n avi: 'avi',\n csv: 'csv',\n doc: 'doc',\n docx: 'doc',\n html: 'html',\n htm: 'html',\n jpeg: 'jpg',\n jpg: 'jpg',\n json: 'json',\n jsonld: 'json',\n mkv: 'mkv',\n mov: 'mov',\n mp3: 'mp3',\n m4a: 'mp3',\n mp4: 'mp4',\n pdf: 'pdf',\n png: 'png',\n pot: 'ppt',\n potx: 'ppt',\n pps: 'ppt',\n ppsx: 'ppt',\n ppt: 'ppt',\n pptx: 'ppt',\n svg: 'svg',\n text: 'txt',\n txt: 'txt',\n wav: 'wav',\n webm: 'webm',\n xls: 'xls',\n xlsx: 'xls',\n xml: 'xml',\n zip: 'zip',\n};\n\nconst MIME_TYPE_TO_TYPE: Record<string, FileTypeName> = {\n 'application/csv': 'csv',\n 'application/json': 'json',\n 'application/ld+json': 'json',\n 'application/msword': 'doc',\n 'application/pdf': 'pdf',\n 'application/rtf': 'doc',\n 'application/vnd.ms-excel': 'xls',\n 'application/vnd.ms-powerpoint': 'ppt',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': 'ppt',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'xls',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'doc',\n 'application/x-zip-compressed': 'zip',\n 'application/xml': 'xml',\n 'application/zip': 'zip',\n 'audio/mp3': 'mp3',\n 'audio/mpeg': 'mp3',\n 'audio/wav': 'wav',\n 'audio/wave': 'wav',\n 'audio/x-wav': 'wav',\n 'image/jpeg': 'jpg',\n 'image/jpg': 'jpg',\n 'image/png': 'png',\n 'image/svg+xml': 'svg',\n 'multipart/x-zip': 'zip',\n 'text/comma-separated-values': 'csv',\n 'text/csv': 'csv',\n 'text/html': 'html',\n 'text/json': 'json',\n 'text/plain': 'txt',\n 'text/xml': 'xml',\n 'video/mp4': 'mp4',\n 'video/quicktime': 'mov',\n 'video/webm': 'webm',\n 'video/x-matroska': 'mkv',\n 'video/x-msvideo': 'avi',\n};\n\nlet nextIconId = 0;\n\n@Component({\n selector: 'ngs-file-type',\n exportAs: 'ngsFileType',\n templateUrl: './file-type.html',\n styleUrl: './file-type.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ngs-file-type not-prose',\n '[attr.role]': 'decorative() ? null : \"img\"',\n '[attr.aria-label]': 'decorative() ? null : resolvedLabel()',\n '[attr.aria-hidden]': 'decorative() ? \"true\" : null',\n '[attr.data-file-type]': 'type()',\n },\n})\nexport class FileType {\n private readonly iconId = `ngs-file-type-${nextIconId++}`;\n\n mimeType = input<string | null | undefined>();\n extension = input<string | null | undefined>();\n fileName = input<string | null | undefined>();\n fallback = input<FileTypeName>('txt');\n label = input<string | null | undefined>();\n decorative = input(false, { transform: booleanAttribute });\n\n readonly type = computed<FileTypeName>(() => this.resolveType());\n\n protected readonly resolvedLabel = computed(() => {\n const label = this.label();\n\n if (label) {\n return label;\n }\n\n return `${this.type().toUpperCase()} file`;\n });\n\n private resolveType(): FileTypeName {\n const extensionType =\n this.resolveExtension(this.extension()) ?? this.resolveExtension(this.fileName());\n\n if (extensionType) {\n return extensionType;\n }\n\n const mimeType = this.normalizeMimeType(this.mimeType());\n\n if (mimeType) {\n return MIME_TYPE_TO_TYPE[mimeType] ?? this.resolveMimeFamily(mimeType) ?? this.fallback();\n }\n\n return this.fallback();\n }\n\n private resolveExtension(value: string | null | undefined): FileTypeName | null {\n const extension = this.normalizeExtension(value);\n\n if (!extension) {\n return null;\n }\n\n return EXTENSION_TO_TYPE[extension] ?? null;\n }\n\n private normalizeExtension(value: string | null | undefined): string | null {\n if (!value) {\n return null;\n }\n\n const normalized = value.trim().toLowerCase();\n\n if (!normalized) {\n return null;\n }\n\n const fileExtension = normalized.includes('.')\n ? normalized.split('.').pop()\n : normalized.replace(/^\\./, '');\n\n return fileExtension || null;\n }\n\n private normalizeMimeType(value: string | null | undefined): string | null {\n if (!value) {\n return null;\n }\n\n const mimeType = value.split(';')[0].trim().toLowerCase();\n\n return mimeType || null;\n }\n\n private resolveMimeFamily(mimeType: string): FileTypeName | null {\n if (mimeType.startsWith('image/')) {\n return 'png';\n }\n\n if (mimeType.startsWith('video/')) {\n return 'mp4';\n }\n\n if (mimeType.startsWith('audio/')) {\n return 'mp3';\n }\n\n if (mimeType.startsWith('text/')) {\n return 'txt';\n }\n\n return null;\n }\n\n protected gradientId(type: FileTypeName): string {\n return `${this.iconId}-${type}-pageGradient`;\n }\n\n protected gradientUrl(type: FileTypeName): string {\n return `url(#${this.gradientId(type)})`;\n }\n}\n","<span class=\"icon\">\n @switch (type()) {\n @case ('avi') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('avi')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#8D7CFF\" />\n <stop offset=\"1\" stop-color=\"#4531C9\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('avi')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#4531C9\"\n >\n AVI\n </text>\n </g>\n </svg>\n }\n @case ('csv') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('csv')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#42D9D2\" />\n <stop offset=\"1\" stop-color=\"#0B8A97\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('csv')\" />\n <g transform=\"translate(0 -2)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M42 33C38.686 33 36 35.686 36 39V61C36 64.314 38.686 67 42 67H86C89.314 67 92 64.314 92 61V39C92 35.686 89.314 33 86 33H42ZM43 37C41.343 37 40 38.343 40 40V49H54V37H43ZM57 37H71V49H57V37ZM74 37V49H88V40C88 38.343 86.657 37 85 37H74ZM40 52V61C40 62.657 41.343 64 43 64H54V52H40ZM57 52H71V64H57V52ZM74 52V64H85C86.657 64 88 62.657 88 61V52H74Z\"\n fill=\"white\"\n fill-opacity=\"0.5\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#0B8A97\"\n >\n CSV\n </text>\n </g>\n </svg>\n }\n @case ('doc') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('doc')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#5EA8FF\" />\n <stop offset=\"1\" stop-color=\"#1D5FD6\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('doc')\" />\n <g transform=\"translate(0 2)\">\n <path\n d=\"M42 32H82M42 44H86M42 56H76\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#1D5FD6\"\n >\n DOC\n </text>\n </g>\n </svg>\n }\n @case ('html') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('html')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF7A5F\" />\n <stop offset=\"1\" stop-color=\"#D23B21\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('html')\" />\n <g transform=\"translate(0 -2)\">\n <path\n d=\"M53 36L41 48L53 60M75 36L87 48L75 60M68 34L60 62\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"16\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#D23B21\"\n >\n HTML\n </text>\n </g>\n </svg>\n }\n @case ('jpg') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('jpg')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF78B6\" />\n <stop offset=\"1\" stop-color=\"#C92678\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('jpg')\" />\n <g transform=\"translate(0 -4)\">\n <rect x=\"37\" y=\"34\" width=\"54\" height=\"36\" rx=\"7\" fill=\"white\" fill-opacity=\"0.18\" />\n <path\n d=\"M39 62L51 50L61 59L70 49L89 66\"\n stroke=\"white\"\n stroke-opacity=\"0.62\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"75\" cy=\"44\" r=\"5\" fill=\"white\" fill-opacity=\"0.62\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#C92678\"\n >\n JPG\n </text>\n </g>\n </svg>\n }\n @case ('json') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('json')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#667085\" />\n <stop offset=\"1\" stop-color=\"#202939\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('json')\" />\n <g transform=\"translate(0 -4)\">\n <path\n d=\"M51 33C45 33 43 37 43 41V45C43 48 41 50 38 50C41 50 43 52 43 55V59C43 63 45 67 51 67\"\n stroke=\"white\"\n stroke-opacity=\"0.42\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M77 33C83 33 85 37 85 41V45C85 48 87 50 90 50C87 50 85 52 85 55V59C85 63 83 67 77 67\"\n stroke=\"white\"\n stroke-opacity=\"0.42\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M57 43H70M57 57H73\"\n stroke=\"white\"\n stroke-opacity=\"0.44\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"16\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#202939\"\n >\n JSON\n </text>\n </g>\n </svg>\n }\n @case ('mkv') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mkv')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#AA74FF\" />\n <stop offset=\"1\" stop-color=\"#5C26B8\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mkv')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#5C26B8\"\n >\n MKV\n </text>\n </g>\n </svg>\n }\n @case ('mov') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mov')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#45D0FF\" />\n <stop offset=\"1\" stop-color=\"#1268C7\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mov')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#1268C7\"\n >\n MOV\n </text>\n </g>\n </svg>\n }\n @case ('mp3') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mp3')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D36BFF\" />\n <stop offset=\"1\" stop-color=\"#8A2BC6\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mp3')\" />\n <g transform=\"translate(0 0)\">\n <path\n d=\"M52 56V35L82 30V49M52 56C52 59.5 49.2 62 45.5 62C41.8 62 39 59.5 39 56C39 52.5 41.8 50 45.5 50C49.2 50 52 52.5 52 56ZM82 49C82 52.5 79.2 55 75.5 55C71.8 55 69 52.5 69 49C69 45.5 71.8 43 75.5 43C79.2 43 82 45.5 82 49Z\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#8A2BC6\"\n >\n MP3\n </text>\n </g>\n </svg>\n }\n @case ('mp4') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('mp4')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#5E9BFF\" />\n <stop offset=\"1\" stop-color=\"#2745C8\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('mp4')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#2745C8\"\n >\n MP4\n </text>\n </g>\n </svg>\n }\n @case ('pdf') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('pdf')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF6A5F\" />\n <stop offset=\"1\" stop-color=\"#D82432\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('pdf')\" />\n <g transform=\"translate(0 2)\">\n <path\n d=\"M42 32H82M42 44H86M42 56H76\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#D82432\"\n >\n PDF\n </text>\n </g>\n </svg>\n }\n @case ('png') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('png')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#4EC8FF\" />\n <stop offset=\"1\" stop-color=\"#147AAE\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('png')\" />\n <g transform=\"translate(0 -4)\">\n <rect x=\"37\" y=\"34\" width=\"54\" height=\"36\" rx=\"7\" fill=\"white\" fill-opacity=\"0.18\" />\n <path\n d=\"M39 62L51 50L61 59L70 49L89 66\"\n stroke=\"white\"\n stroke-opacity=\"0.62\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"75\" cy=\"44\" r=\"5\" fill=\"white\" fill-opacity=\"0.62\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#147AAE\"\n >\n PNG\n </text>\n </g>\n </svg>\n }\n @case ('ppt') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('ppt')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF9B4A\" />\n <stop offset=\"1\" stop-color=\"#D84A1B\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('ppt')\" />\n <g transform=\"translate(0 0)\">\n <rect\n x=\"40\"\n y=\"31\"\n width=\"48\"\n height=\"30\"\n rx=\"5\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"5\"\n />\n <path\n d=\"M51 51H75M51 43H63\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#D84A1B\"\n >\n PPT\n </text>\n </g>\n </svg>\n }\n @case ('svg') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('svg')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#B389FF\" />\n <stop offset=\"1\" stop-color=\"#6F35D5\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('svg')\" />\n <g transform=\"translate(0 -4)\">\n <rect x=\"37\" y=\"34\" width=\"54\" height=\"36\" rx=\"7\" fill=\"white\" fill-opacity=\"0.18\" />\n <path\n d=\"M39 62L51 50L61 59L70 49L89 66\"\n stroke=\"white\"\n stroke-opacity=\"0.62\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"75\" cy=\"44\" r=\"5\" fill=\"white\" fill-opacity=\"0.62\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#6F35D5\"\n >\n SVG\n </text>\n </g>\n </svg>\n }\n @case ('txt') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('txt')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#95A3B8\" />\n <stop offset=\"1\" stop-color=\"#526071\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('txt')\" />\n <g transform=\"translate(0 2)\">\n <path\n d=\"M42 32H82M42 44H86M42 56H76\"\n stroke=\"white\"\n stroke-opacity=\"0.34\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#526071\"\n >\n TXT\n </text>\n </g>\n </svg>\n }\n @case ('wav') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('wav')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FF6EDB\" />\n <stop offset=\"1\" stop-color=\"#B8299F\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('wav')\" />\n <g transform=\"translate(0 -3)\">\n <path\n d=\"M39 49H45L50 37L57 61L64 39L70 55H89\"\n stroke=\"white\"\n stroke-opacity=\"0.38\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#B8299F\"\n >\n WAV\n </text>\n </g>\n </svg>\n }\n @case ('webm') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('webm')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#53B5FF\" />\n <stop offset=\"1\" stop-color=\"#5034D5\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('webm')\" />\n <g transform=\"translate(0 -4)\">\n <rect\n x=\"39\"\n y=\"35\"\n width=\"50\"\n height=\"30\"\n rx=\"6\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n />\n <path d=\"M58 43V57L72 50L58 43Z\" fill=\"white\" fill-opacity=\"0.44\" />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"16\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#5034D5\"\n >\n WEBM\n </text>\n </g>\n </svg>\n }\n @case ('xls') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('xls')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#4AD991\" />\n <stop offset=\"1\" stop-color=\"#168F58\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('xls')\" />\n <g transform=\"translate(0 -2)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M42 33C38.686 33 36 35.686 36 39V61C36 64.314 38.686 67 42 67H86C89.314 67 92 64.314 92 61V39C92 35.686 89.314 33 86 33H42ZM43 37C41.343 37 40 38.343 40 40V49H54V37H43ZM57 37H71V49H57V37ZM74 37V49H88V40C88 38.343 86.657 37 85 37H74ZM40 52V61C40 62.657 41.343 64 43 64H54V52H40ZM57 52H71V64H57V52ZM74 52V64H85C86.657 64 88 62.657 88 61V52H74Z\"\n fill=\"white\"\n fill-opacity=\"0.5\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#168F58\"\n >\n XLS\n </text>\n </g>\n </svg>\n }\n @case ('xml') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('xml')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#7188FF\" />\n <stop offset=\"1\" stop-color=\"#3346B8\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('xml')\" />\n <g transform=\"translate(0 -2)\">\n <path\n d=\"M53 36L41 48L53 60M75 36L87 48L75 60M68 34L60 62\"\n stroke=\"white\"\n stroke-opacity=\"0.36\"\n stroke-width=\"5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#3346B8\"\n >\n XML\n </text>\n </g>\n </svg>\n }\n @case ('zip') {\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"128\"\n height=\"128\"\n viewBox=\"0 0 128 128\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient\n [attr.id]=\"gradientId('zip')\"\n x1=\"22\"\n y1=\"10\"\n x2=\"106\"\n y2=\"118\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFD15C\" />\n <stop offset=\"1\" stop-color=\"#C48612\" />\n </linearGradient>\n </defs>\n <rect x=\"19\" y=\"10\" width=\"90\" height=\"108\" rx=\"12\" [attr.fill]=\"gradientUrl('zip')\" />\n <g transform=\"translate(0 -4)\">\n <path\n d=\"M61 34Q61 32 63 32H65Q67 32 67 34V66Q67 68 65 68H63Q61 68 61 66V34ZM53 34Q51 34 51 36V37Q51 39 53 39H61V34H53ZM67 39V44H75Q77 44 77 42V41Q77 39 75 39H67ZM53 44Q51 44 51 46V47Q51 49 53 49H61V44H53ZM67 49V54H75Q77 54 77 52V51Q77 49 75 49H67ZM53 54Q51 54 51 56V57Q51 59 53 59H61V54H53ZM67 59V64H75Q77 64 77 62V61Q77 59 75 59H67Z\"\n fill=\"white\"\n fill-opacity=\"0.66\"\n />\n </g>\n <g class=\"file-type-label\">\n <rect x=\"27\" y=\"82\" width=\"74\" height=\"28\" rx=\"7\" fill=\"white\" fill-opacity=\"0.96\" />\n <text\n x=\"64\"\n y=\"95\"\n dy=\"0.08em\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n font-family=\"Inter, Arial, sans-serif\"\n font-size=\"19\"\n font-weight=\"700\"\n letter-spacing=\"1\"\n fill=\"#C48612\"\n >\n ZIP\n </text>\n </g>\n </svg>\n }\n }\n</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ngstarter-ui/components",
3
3
  "description": "NgStarter - AI-friendly Enterprise Angular UI Components and Admin Panel",
4
- "version": "21.0.28",
4
+ "version": "21.0.30",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/elementarlabsdev/ngstarter.git"
@@ -42,13 +42,49 @@
42
42
  "@angular/ssr": "^21.1.4"
43
43
  },
44
44
  "dependencies": {
45
+ "@codemirror/lang-angular": "^0.1.4",
46
+ "@codemirror/lang-css": "^6.3.1",
47
+ "@codemirror/lang-html": "^6.4.11",
48
+ "@codemirror/lang-javascript": "^6.2.5",
49
+ "@codemirror/lang-json": "^6.0.2",
50
+ "@codemirror/lang-sass": "^6.0.2",
51
+ "@ctrl/tinycolor": "^4.1.0",
52
+ "@dicebear/collection": "^9.2.2",
53
+ "@dicebear/core": "^9.4.2",
54
+ "@ngrx/signals": "^21.0.1",
45
55
  "@tailwindcss/postcss": "^4.2.2",
46
56
  "@tailwindcss/typography": "^0.5.19",
57
+ "@tiptap/core": "2.10.2",
58
+ "@tiptap/extension-bubble-menu": "2.10.2",
59
+ "@tiptap/extension-code-block": "2.10.2",
60
+ "@tiptap/extension-dropcursor": "2.10.2",
61
+ "@tiptap/extension-floating-menu": "2.10.2",
62
+ "@tiptap/extension-history": "2.10.2",
63
+ "@tiptap/extension-horizontal-rule": "2.10.3",
64
+ "@tiptap/extension-image": "2.10.2",
65
+ "@tiptap/extension-link": "2.10.4",
66
+ "@tiptap/extension-list-item": "2.10.2",
67
+ "@tiptap/extension-ordered-list": "2.10.2",
68
+ "@tiptap/extension-placeholder": "2.10.2",
69
+ "@tiptap/extension-youtube": "2.10.2",
70
+ "@tiptap/pm": "2.10.2",
71
+ "@uiw/codemirror-theme-github": "^4.25.9",
72
+ "@viselect/vanilla": "^3.9.0",
47
73
  "autoprefixer": "^10.4.17",
74
+ "codemirror": "^6.0.2",
75
+ "d3": "^7.9.0",
76
+ "emojibase-data": "^17.0.0",
77
+ "iconify-icon": "^3.0.2",
78
+ "jsdom": "^26.1.0",
79
+ "konva": "^10.2.3",
80
+ "libphonenumber-js": "^1.11.15",
48
81
  "postcss": "^8.5.2",
82
+ "rxjs": "~7.8.0",
83
+ "shiki": "^3.12.0",
49
84
  "tailwindcss": "^4.2.2",
50
85
  "tslib": "^2.3.0",
51
- "jsdom": "^26.1.0"
86
+ "uuid": "^11.0.3",
87
+ "video.js": "^8.23.7"
52
88
  },
53
89
  "sideEffects": false,
54
90
  "publishConfig": {
@@ -238,6 +274,10 @@
238
274
  "types": "./types/ngstarter-ui-components-expansion.d.ts",
239
275
  "default": "./fesm2022/ngstarter-ui-components-expansion.mjs"
240
276
  },
277
+ "./file-type": {
278
+ "types": "./types/ngstarter-ui-components-file-type.d.ts",
279
+ "default": "./fesm2022/ngstarter-ui-components-file-type.mjs"
280
+ },
241
281
  "./filter-builder": {
242
282
  "types": "./types/ngstarter-ui-components-filter-builder.d.ts",
243
283
  "default": "./fesm2022/ngstarter-ui-components-filter-builder.mjs"
@@ -5,6 +5,11 @@
5
5
  "description": "Install @ngstarter-ui/components and configure Tailwind CSS.",
6
6
  "factory": "./ng-add/index#ngAdd",
7
7
  "schema": "./ng-add/schema.json"
8
+ },
9
+ "sync-dependencies": {
10
+ "description": "Synchronize @ngstarter-ui/components runtime dependencies and install packages.",
11
+ "factory": "./sync-dependencies/index#syncDependencies",
12
+ "schema": "./sync-dependencies/schema.json"
8
13
  }
9
14
  }
10
15
  }
@@ -7,7 +7,8 @@ function ngAdd(options = {}) {
7
7
  (0, utils_1.setupNgStarterComponents)(tree, context, {
8
8
  project: options.project,
9
9
  skipInstall: options.skipInstall === true,
10
- updateExistingDependencies: false,
10
+ updateExistingDependencies: true,
11
+ updateExistingPeerDependencies: false,
11
12
  });
12
13
  };
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/components/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAQA,sBAQC;AAfD,oCAAoD;AAOpD,SAAgB,KAAK,CAAC,UAAuB,EAAE;IAC7C,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,IAAA,gCAAwB,EAAC,IAAI,EAAE,OAAO,EAAE;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;YACzC,0BAA0B,EAAE,KAAK;SAClC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/components/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAQA,sBASC;AAhBD,oCAAoD;AAOpD,SAAgB,KAAK,CAAC,UAAuB,EAAE;IAC7C,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,IAAA,gCAAwB,EAAC,IAAI,EAAE,OAAO,EAAE;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;YACzC,0BAA0B,EAAE,IAAI;YAChC,8BAA8B,EAAE,KAAK;SACtC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -8,6 +8,7 @@ function ngUpdate(options = {}) {
8
8
  project: options.project,
9
9
  skipInstall: options.skipInstall === true,
10
10
  updateExistingDependencies: true,
11
+ updateExistingPeerDependencies: true,
11
12
  });
12
13
  };
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/components/schematics/ng-update/index.ts"],"names":[],"mappings":";;AAQA,4BAQC;AAfD,oCAAoD;AAOpD,SAAgB,QAAQ,CAAC,UAA0B,EAAE;IACnD,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,IAAA,gCAAwB,EAAC,IAAI,EAAE,OAAO,EAAE;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;YACzC,0BAA0B,EAAE,IAAI;SACjC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/components/schematics/ng-update/index.ts"],"names":[],"mappings":";;AAQA,4BASC;AAhBD,oCAAoD;AAOpD,SAAgB,QAAQ,CAAC,UAA0B,EAAE;IACnD,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,IAAA,gCAAwB,EAAC,IAAI,EAAE,OAAO,EAAE;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;YACzC,0BAA0B,EAAE,IAAI;YAChC,8BAA8B,EAAE,IAAI;SACrC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ export interface SyncDependenciesSchema {
3
+ skipInstall?: boolean;
4
+ }
5
+ export declare function syncDependencies(options?: SyncDependenciesSchema): Rule;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncDependencies = syncDependencies;
4
+ const utils_1 = require("../utils");
5
+ function syncDependencies(options = {}) {
6
+ return (tree, context) => {
7
+ (0, utils_1.syncNgStarterComponentDependencies)(tree, context, {
8
+ skipInstall: options.skipInstall === true,
9
+ updateExistingDependencies: true,
10
+ updateExistingPeerDependencies: false,
11
+ });
12
+ };
13
+ }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/components/schematics/sync-dependencies/index.ts"],"names":[],"mappings":";;AAOA,4CAQC;AAdD,oCAA8D;AAM9D,SAAgB,gBAAgB,CAAC,UAAkC,EAAE;IACnE,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,IAAA,0CAAkC,EAAC,IAAI,EAAE,OAAO,EAAE;YAChD,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;YACzC,0BAA0B,EAAE,IAAI;YAChC,8BAA8B,EAAE,KAAK;SACtC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "NgStarterComponentsSyncDependencies",
4
+ "title": "NgStarter Components Dependency Sync Options",
5
+ "type": "object",
6
+ "properties": {
7
+ "skipInstall": {
8
+ "type": "boolean",
9
+ "description": "Skip running the package manager install task.",
10
+ "default": false
11
+ }
12
+ }
13
+ }
@@ -3,6 +3,8 @@ interface SetupOptions {
3
3
  project?: string;
4
4
  skipInstall: boolean;
5
5
  updateExistingDependencies: boolean;
6
+ updateExistingPeerDependencies: boolean;
6
7
  }
7
8
  export declare function setupNgStarterComponents(tree: Tree, context: SchematicContext, options: SetupOptions): void;
9
+ export declare function syncNgStarterComponentDependencies(tree: Tree, context: SchematicContext, options: Omit<SetupOptions, 'project'>): void;
8
10
  export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setupNgStarterComponents = setupNgStarterComponents;
4
+ exports.syncNgStarterComponentDependencies = syncNgStarterComponentDependencies;
4
5
  const schematics_1 = require("@angular-devkit/schematics");
5
6
  const tasks_1 = require("@angular-devkit/schematics/tasks");
6
7
  const packageJson = require('../package.json');
@@ -41,27 +42,28 @@ const NGS_THEME_PROVIDER = `provideNgsTheme({
41
42
  radius: 'medium',
42
43
  }),`;
43
44
  function setupNgStarterComponents(tree, context, options) {
44
- validateAngularVersion(tree);
45
- updatePackageJson(tree, options.updateExistingDependencies);
45
+ syncNgStarterComponentDependencies(tree, context, options);
46
46
  setupTailwindFiles(tree, context, options.project);
47
+ }
48
+ function syncNgStarterComponentDependencies(tree, context, options) {
49
+ validateAngularVersion(tree);
50
+ updatePackageJson(tree, options.updateExistingDependencies, options.updateExistingPeerDependencies);
47
51
  if (!options.skipInstall) {
48
52
  context.addTask(new tasks_1.NodePackageInstallTask());
49
53
  context.logger.info('Installing @ngstarter-ui/components dependencies...');
50
54
  }
51
55
  }
52
- function updatePackageJson(tree, updateExistingDependencies) {
53
- var _a;
56
+ function updatePackageJson(tree, updateExistingDependencies, updateExistingPeerDependencies) {
57
+ var _a, _b, _c, _d;
54
58
  const projectPackageJson = readJson(tree, PACKAGE_JSON_PATH);
55
- const dependencies = collectPackageDependencies(packageJson.dependencies, packageJson.peerDependencies);
56
- const runtimeDependencies = filterDependencies(dependencies, false);
57
- const devDependencies = Object.assign(Object.assign({}, filterDependencies(dependencies, true)), ((_a = packageJson.devDependencies) !== null && _a !== void 0 ? _a : {}));
59
+ const runtimeDependencies = filterDependencies((_a = packageJson.dependencies) !== null && _a !== void 0 ? _a : {}, false);
60
+ const peerDependencies = filterDependencies((_b = packageJson.peerDependencies) !== null && _b !== void 0 ? _b : {}, false);
61
+ const devDependencies = Object.assign(Object.assign({}, filterDependencies((_c = packageJson.dependencies) !== null && _c !== void 0 ? _c : {}, true)), ((_d = packageJson.devDependencies) !== null && _d !== void 0 ? _d : {}));
62
+ addDependencies(projectPackageJson, peerDependencies, 'dependencies', updateExistingPeerDependencies);
58
63
  addDependencies(projectPackageJson, runtimeDependencies, 'dependencies', updateExistingDependencies);
59
64
  addDependencies(projectPackageJson, devDependencies, 'devDependencies', updateExistingDependencies);
60
65
  writeJson(tree, PACKAGE_JSON_PATH, projectPackageJson);
61
66
  }
62
- function collectPackageDependencies(dependencies, peerDependencies) {
63
- return Object.assign(Object.assign({}, (peerDependencies !== null && peerDependencies !== void 0 ? peerDependencies : {})), (dependencies !== null && dependencies !== void 0 ? dependencies : {}));
64
- }
65
67
  function filterDependencies(dependencies, includeDevDependencies) {
66
68
  return Object.keys(dependencies).reduce((result, name) => {
67
69
  if (DEV_DEPENDENCY_NAMES.has(name) === includeDevDependencies) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../projects/components/schematics/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../projects/components/schematics/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type FileTypeName = 'avi' | 'csv' | 'doc' | 'html' | 'jpg' | 'json' | 'mkv' | 'mov' | 'mp3' | 'mp4' | 'pdf' | 'png' | 'ppt' | 'svg' | 'txt' | 'wav' | 'webm' | 'xls' | 'xml' | 'zip';
4
+
5
+ declare class FileType {
6
+ private readonly iconId;
7
+ mimeType: _angular_core.InputSignal<string | null | undefined>;
8
+ extension: _angular_core.InputSignal<string | null | undefined>;
9
+ fileName: _angular_core.InputSignal<string | null | undefined>;
10
+ fallback: _angular_core.InputSignal<FileTypeName>;
11
+ label: _angular_core.InputSignal<string | null | undefined>;
12
+ decorative: _angular_core.InputSignalWithTransform<boolean, unknown>;
13
+ readonly type: _angular_core.Signal<FileTypeName>;
14
+ protected readonly resolvedLabel: _angular_core.Signal<string>;
15
+ private resolveType;
16
+ private resolveExtension;
17
+ private normalizeExtension;
18
+ private normalizeMimeType;
19
+ private resolveMimeFamily;
20
+ protected gradientId(type: FileTypeName): string;
21
+ protected gradientUrl(type: FileTypeName): string;
22
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileType, never>;
23
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileType, "ngs-file-type", ["ngsFileType"], { "mimeType": { "alias": "mimeType"; "required": false; "isSignal": true; }; "extension": { "alias": "extension"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "fallback": { "alias": "fallback"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "decorative": { "alias": "decorative"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
24
+ }
25
+
26
+ export { FileType };
27
+ export type { FileTypeName };