@luna-park/design 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/eslint.config.js +9 -0
  2. package/histoire.config.ts +60 -0
  3. package/package.json +71 -0
  4. package/public/favicon_rc.png +0 -0
  5. package/src/app.ts +9 -0
  6. package/src/assets/controls/mouse.svg +54 -0
  7. package/src/assets/logo_neon.svg +18 -0
  8. package/src/assets/logo_rc_color.svg +54 -0
  9. package/src/assets/logo_rc_square_blue.svg +16 -0
  10. package/src/assets/logo_square_blue.svg +17 -0
  11. package/src/assets/logo_square_white.svg +17 -0
  12. package/src/assets/logo_text_white.svg +32 -0
  13. package/src/assets/stars.svg +66 -0
  14. package/src/components/breadcrumb/LBreadLink.vue +40 -0
  15. package/src/components/breadcrumb/LBreadcrumb.story.vue +29 -0
  16. package/src/components/breadcrumb/LBreadcrumb.vue +54 -0
  17. package/src/components/breadcrumb/type.ts +6 -0
  18. package/src/components/context/LContextMenu.story.vue +73 -0
  19. package/src/components/context/LContextMenu.vue +24 -0
  20. package/src/components/context/LContextMenuElement.vue +54 -0
  21. package/src/components/context/LContextMenuWrapper.vue +55 -0
  22. package/src/components/context/LContextOption.story.vue +18 -0
  23. package/src/components/context/LContextOption.vue +160 -0
  24. package/src/components/context/LContextWrapper.story.vue +11 -0
  25. package/src/components/context/LContextWrapper.vue +60 -0
  26. package/src/components/context/store.ts +62 -0
  27. package/src/components/context/type.ts +27 -0
  28. package/src/components/dialog/LDialogAlert.vue +38 -0
  29. package/src/components/dialog/LDialogConfirm.vue +45 -0
  30. package/src/components/dialog/LDialogInjector.story.vue +41 -0
  31. package/src/components/dialog/LDialogInjector.vue +40 -0
  32. package/src/components/dialog/LDialogPrompt.vue +67 -0
  33. package/src/components/dialog/LDialogWrapper.vue +66 -0
  34. package/src/components/dialog/lib.ts +50 -0
  35. package/src/components/dialog/store.ts +32 -0
  36. package/src/components/floating/LFloating.story.vue +35 -0
  37. package/src/components/floating/LFloating.vue +362 -0
  38. package/src/components/form/LAutoComplete.vue +13 -0
  39. package/src/components/form/LAutoInput.story.vue +43 -0
  40. package/src/components/form/LAutoInput.vue +101 -0
  41. package/src/components/form/LButton.story.vue +147 -0
  42. package/src/components/form/LButton.vue +227 -0
  43. package/src/components/form/LCheckbox.story.vue +13 -0
  44. package/src/components/form/LCheckbox.vue +70 -0
  45. package/src/components/form/LColorInput.story.vue +28 -0
  46. package/src/components/form/LColorInput.vue +101 -0
  47. package/src/components/form/LImageInput.story.vue +28 -0
  48. package/src/components/form/LImageInput.vue +75 -0
  49. package/src/components/form/LInfo.story.vue +22 -0
  50. package/src/components/form/LInfo.vue +44 -0
  51. package/src/components/form/LInput.story.vue +150 -0
  52. package/src/components/form/LInput.vue +493 -0
  53. package/src/components/form/LInputDateFloating.vue +61 -0
  54. package/src/components/form/LInputNumber.story.vue +58 -0
  55. package/src/components/form/LProgress.story.vue +49 -0
  56. package/src/components/form/LProgress.vue +77 -0
  57. package/src/components/form/LSelect.story.vue +67 -0
  58. package/src/components/form/LSelect.vue +142 -0
  59. package/src/components/form/LSwitch.story.vue +15 -0
  60. package/src/components/form/LSwitch.vue +79 -0
  61. package/src/components/form/LTextarea.story.vue +29 -0
  62. package/src/components/form/LTextarea.vue +151 -0
  63. package/src/components/form/color-picker/LColorAlpha.vue +129 -0
  64. package/src/components/form/color-picker/LColorHue.vue +109 -0
  65. package/src/components/form/color-picker/LColorModels.vue +223 -0
  66. package/src/components/form/color-picker/LColorPicker.story.vue +44 -0
  67. package/src/components/form/color-picker/LColorPicker.vue +105 -0
  68. package/src/components/form/color-picker/LColorShade.vue +114 -0
  69. package/src/components/form/color-picker/LImagePicker.vue +477 -0
  70. package/src/components/form/dropdown/LDropdown.story.vue +123 -0
  71. package/src/components/form/dropdown/LDropdown.vue +483 -0
  72. package/src/components/form/dropdown/LDropdownOption.vue +224 -0
  73. package/src/components/form/dropdown/LDropdownSelection.vue +76 -0
  74. package/src/components/form/dropdown/types.ts +15 -0
  75. package/src/components/form/emoji-picker/LEmojiList.vue +54 -0
  76. package/src/components/form/emoji-picker/LEmojiListCategory.vue +92 -0
  77. package/src/components/form/emoji-picker/LEmojiPicker.story.vue +32 -0
  78. package/src/components/form/emoji-picker/LEmojiPicker.vue +55 -0
  79. package/src/components/form/emoji-picker/LEmojiSelect.story.vue +22 -0
  80. package/src/components/form/emoji-picker/LEmojiSelect.vue +51 -0
  81. package/src/components/form/icon-picker/LIconList.vue +100 -0
  82. package/src/components/form/icon-picker/LIconMaterial.vue +43 -0
  83. package/src/components/form/icon-picker/LIconPicker.story.vue +39 -0
  84. package/src/components/form/icon-picker/LIconPicker.vue +92 -0
  85. package/src/components/form/icon-picker/LIconSelect.story.vue +25 -0
  86. package/src/components/form/icon-picker/LIconSelect.vue +91 -0
  87. package/src/components/icons/LControls.story.vue +92 -0
  88. package/src/components/icons/LKeyIcon.vue +66 -0
  89. package/src/components/icons/LMouseIcon.vue +85 -0
  90. package/src/components/icons/LShortcut.story.vue +12 -0
  91. package/src/components/icons/LShortcut.vue +45 -0
  92. package/src/components/layout/LResizer.story.vue +89 -0
  93. package/src/components/layout/LResizer.vue +138 -0
  94. package/src/components/misc/LIcon.vue +34 -0
  95. package/src/components/misc/LLineLoader.story.vue +18 -0
  96. package/src/components/misc/LLineLoader.vue +52 -0
  97. package/src/components/misc/LLoading.story.vue +14 -0
  98. package/src/components/misc/LLoading.vue +28 -0
  99. package/src/components/misc/LStarsBackground.story.vue +16 -0
  100. package/src/components/misc/LStarsBackground.vue +121 -0
  101. package/src/components/navigation/LElementsPagination.vue +75 -0
  102. package/src/components/navigation/LPagination.story.vue +57 -0
  103. package/src/components/navigation/LPagination.vue +125 -0
  104. package/src/components/table/LCell.vue +37 -0
  105. package/src/components/table/LLine.vue +24 -0
  106. package/src/components/table/LTable.story.vue +35 -0
  107. package/src/components/table/LTable.vue +21 -0
  108. package/src/components/toasts/LContainer.story.vue +47 -0
  109. package/src/components/toasts/LContainer.vue +140 -0
  110. package/src/components/toasts/LToast.story.vue +47 -0
  111. package/src/components/toasts/LToast.vue +30 -0
  112. package/src/components/toasts/LToastInjector.vue +54 -0
  113. package/src/components/toasts/requests.ts +46 -0
  114. package/src/components/toasts/store.ts +45 -0
  115. package/src/components/utils/LVirtualElement.vue +36 -0
  116. package/src/components/utils/LVirtualScroller.story.vue +62 -0
  117. package/src/components/utils/LVirtualScroller.vue +105 -0
  118. package/src/components/utils/virtual.ts +6 -0
  119. package/src/env.d.ts +9 -0
  120. package/src/histoire.setup.ts +8 -0
  121. package/src/icons.ts +8 -0
  122. package/src/index.ts +58 -0
  123. package/src/style/colors.scss +152 -0
  124. package/src/style/fonts.scss +45 -0
  125. package/src/style/index.scss +64 -0
  126. package/src/style/layout.scss +3 -0
  127. package/src/style/lengths.scss +21 -0
  128. package/src/style/scrollbar.scss +27 -0
  129. package/tsconfig.json +34 -0
  130. package/vite.config.ts +68 -0
@@ -0,0 +1,152 @@
1
+ @layer defaults {
2
+ :root, :host, ::part(luna-park) {
3
+ --color-hue: 260deg;
4
+ --color-chroma: 3%;
5
+
6
+ --primary-hue: 260deg;
7
+ --primary-chroma: 60%;
8
+
9
+ --color-content: white;
10
+ --color-content-lite: color-mix(in oklab, var(--color-content) 80%, transparent);
11
+ --color-content-liter: color-mix(in oklab, var(--color-content) 50%, transparent);
12
+ --color-content-litest: color-mix(in oklab, var(--color-content) 20%, transparent);
13
+
14
+ --color-soft: color-mix(in oklab, var(--color-content) 10%, transparent);
15
+ --color-soft-lite: color-mix(in oklab, var(--color-content) 5%, transparent);
16
+ --color-soft-liter: color-mix(in oklab, var(--color-content) 2%, transparent);
17
+ --color-soft-litest: color-mix(in oklab, var(--color-content) 1%, transparent);
18
+
19
+
20
+ --color-primary-content-lite: oklch(75% var(--primary-chroma) var(--primary-hue) / 80%);
21
+
22
+ --color-primary: oklch(60% var(--primary-chroma) var(--primary-hue));
23
+ --color-primary-lite: color-mix(in oklab, var(--color-primary) 80%, transparent);
24
+ --color-primary-liter: color-mix(in oklab, var(--color-primary) 50%, transparent);
25
+ --color-primary-litest: color-mix(in oklab, var(--color-primary) 25%, transparent);
26
+ --color-primary-soft: color-mix(in oklab, var(--color-primary) 10%, transparent);
27
+ --color-primary-dark-lite: hsl(207, 70%, 30%, 80%);
28
+
29
+ --color-primary-dark: oklch(45% var(--primary-chroma) var(--primary-hue));
30
+ --color-primary-darker: oklch(40% var(--primary-chroma) var(--primary-hue));
31
+
32
+ --color-background: black;
33
+ --color-background-lite: color-mix(in oklab, var(--color-background) 50%, transparent);
34
+ --color-background-liter: color-mix(in oklab, var(--color-background) 25%, transparent);
35
+ --color-background-litest: color-mix(in oklab, var(--color-background) 10%, transparent);
36
+
37
+ --color-background-dark: oklch(22.5% var(--color-chroma) var(--color-hue));
38
+ --color-background-darker: oklch(20% var(--color-chroma) var(--color-hue));
39
+ --color-background-darkest: oklch(17.5% var(--color-chroma) var(--color-hue));
40
+
41
+ --color-background-0-backdrop: color-mix(in oklab, var(--color-background) 20%, transparent);
42
+
43
+ --color-background-0: oklch(25% var(--color-chroma) var(--color-hue));
44
+ --color-background-0-lite: color-mix(in oklab, var(--color-background-0) 80%, transparent);
45
+ --color-background-0-liter: color-mix(in oklab, var(--color-background-0) 50%, transparent);
46
+ --color-background-0-litest: color-mix(in oklab, var(--color-background-0) 20%, transparent);
47
+
48
+ --color-background-1: oklch(27.5% var(--color-chroma) var(--color-hue));
49
+
50
+ --color-background-2: oklch(30% var(--color-chroma) var(--color-hue));
51
+ --color-background-2-lite: color-mix(in oklab, var(--color-background-2) 80%, transparent);
52
+ --color-background-2-liter: color-mix(in oklab, var(--color-background-2) 50%, transparent);
53
+ --color-background-2-litest: color-mix(in oklab, var(--color-background-2) 20%, transparent);
54
+
55
+ --color-background-3: oklch(32.5% var(--color-chroma) var(--color-hue));
56
+
57
+
58
+ --color-canvas-grid-color: oklch(90% var(--color-chroma) var(--color-hue) / 8%);
59
+ --color-canvas-rule-color: oklch(90% var(--color-chroma) var(--color-hue) / 16%);
60
+
61
+
62
+ --color-success: hsl(96, 60%, 28%);
63
+ --color-success-content: hsl(96, 60%, 38%);
64
+ --color-success-background: hsl(96, 20%, 20%);
65
+
66
+ --color-error: hsl(0, 60%, 38%);
67
+ --color-error-content: hsl(0, 60%, 50%);
68
+ --color-error-background: hsl(0, 20%, 20%);
69
+
70
+ --color-warning: hsl(55, 69%, 47%);
71
+ --color-warning-lite: color-mix(in oklab, var(--color-warning) 80%, transparent);
72
+ --color-warning-liter: color-mix(in oklab, var(--color-warning) 50%, transparent);
73
+ --color-warning-litest: color-mix(in oklab, var(--color-warning) 25%, transparent);
74
+ --color-warning-soft: color-mix(in oklab, var(--color-warning) 10%, transparent);
75
+
76
+ --color-warning-content: hsl(55, 69%, 50%);
77
+ --color-warning-background: hsl(55, 50%, 20%);
78
+
79
+ --color-info: hsl(200, 60%, 38%);
80
+ --color-info-content: hsl(200, 60%, 50%);
81
+ --color-info-background: hsl(200, 60%, 20%);
82
+
83
+
84
+ --color-type-boolean: #bb2222;
85
+ --color-type-number: #16b716;
86
+ --color-type-object: #0088ff;
87
+ --color-type-string: #bbbb00;
88
+ --color-type-void: #5e5e5e;
89
+ --color-type-array: var(--color-content);
90
+ --color-type-interface: #d24bff;
91
+ --color-type-type: #d24bff;
92
+ --color-type-exec: var(--color-content);
93
+
94
+ --color-file-text: var(--color-type-string);
95
+ --color-file-cron: var(--color-type-string);
96
+ --color-file-script: var(--color-type-string);
97
+
98
+ --color-file-route: var(--color-type-number);
99
+ --color-file-component: var(--color-type-number);
100
+
101
+ --color-file-database: var(--color-type-object);
102
+ --color-file-store: var(--color-type-object);
103
+ --color-file-config: var(--color-type-object);
104
+
105
+ --color-file-type: var(--color-type-interface);
106
+
107
+ color-scheme: only dark;
108
+ }
109
+
110
+ :root, :host, button {
111
+ color: var(--color-content);
112
+ }
113
+
114
+ a {
115
+ color: inherit;
116
+ }
117
+ }
118
+
119
+ .lp-light {
120
+ --color-content: black;
121
+ --color-content-lite: color-mix(in oklab, var(--color-content) 80%, transparent);
122
+ --color-content-liter: color-mix(in oklab, var(--color-content) 60%, transparent);
123
+ --color-content-litest: color-mix(in oklab, var(--color-content) 40%, transparent);
124
+
125
+ --color-soft: color-mix(in oklab, var(--color-content) 20%, transparent);
126
+ --color-soft-lite: color-mix(in oklab, var(--color-content) 10%, transparent);
127
+ --color-soft-liter: color-mix(in oklab, var(--color-content) 5%, transparent);
128
+ --color-soft-litest: color-mix(in oklab, var(--color-content) 2%, transparent);
129
+
130
+ --color-background: white;
131
+ --color-background-lite: color-mix(in oklab, var(--color-background) 50%, transparent);
132
+ --color-background-liter: color-mix(in oklab, var(--color-background) 25%, transparent);
133
+ --color-background-litest: color-mix(in oklab, var(--color-background) 10%, transparent);
134
+
135
+ --color-background-dark: oklch(78.5% var(--color-chroma) var(--color-hue));
136
+
137
+ --color-background-0-backdrop: color-mix(in oklab, var(--color-background) 20%, transparent);
138
+
139
+ --color-background-0: oklch(75% var(--color-chroma) var(--color-hue));
140
+ --color-background-0-lite: color-mix(in oklab, var(--color-background-0) 80%, transparent);
141
+ --color-background-0-liter: color-mix(in oklab, var(--color-background-0) 50%, transparent);
142
+ --color-background-0-litest: color-mix(in oklab, var(--color-background-0) 20%, transparent);
143
+
144
+ --color-background-1: oklch(72.5% var(--color-chroma) var(--color-hue));
145
+
146
+ --color-background-2: oklch(70% var(--color-chroma) var(--color-hue));
147
+ --color-background-2-lite: color-mix(in oklab, var(--color-background-2) 80%, transparent);
148
+ --color-background-2-liter: color-mix(in oklab, var(--color-background-2) 50%, transparent);
149
+ --color-background-2-litest: color-mix(in oklab, var(--color-background-2) 20%, transparent);
150
+
151
+ --color-background-3: oklch(67.5% var(--color-chroma) var(--color-hue));
152
+ }
@@ -0,0 +1,45 @@
1
+ @import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Rubik:wght@400&family=Fira+Code:wght@400;600&display=swap");
2
+
3
+ @layer defaults {
4
+ :root, :host {
5
+ --font-content: "Inter";
6
+ --font-monospace: "Fira Code";
7
+ --font-round: "Rubik";
8
+ }
9
+
10
+ :root, :host, button, input, textarea, #app {
11
+ font-family: var(--font-content), sans-serif;
12
+ }
13
+
14
+ code {
15
+ font-family: var(--font-monospace), monospace;
16
+ }
17
+
18
+ h1, h2, h3, h4 {
19
+ font-weight: 600;
20
+ padding: 0;
21
+ margin: 0;
22
+ }
23
+
24
+ b, strong {
25
+ font-weight: 600;
26
+ }
27
+ }
28
+
29
+ :root, :host {
30
+ --font-icon-xxxs: 8px;
31
+ --font-icon-xxs: 10px;
32
+ --font-icon-xs: 12px;
33
+ --font-icon-s: 16px;
34
+ --font-icon-m: 20px;
35
+ --font-icon-l: 24px;
36
+ --font-icon-xl: 32px;
37
+
38
+ --font-size-xxs: 0.6rem;
39
+ --font-size-xs: 0.7rem;
40
+ --font-size-s: 0.8rem;
41
+ --font-size-m: 0.9rem;
42
+ --font-size-l: 1rem;
43
+ --font-size-xl: 1.1rem;
44
+ --font-size-xxl: 1.2rem;
45
+ }
@@ -0,0 +1,64 @@
1
+ @use "colors";
2
+ @use "fonts";
3
+ @use "lengths";
4
+ @use "scrollbar";
5
+ @use "layout";
6
+
7
+ :root, :host {
8
+ --duration-fastest: 0.05s ease-in-out;
9
+ --duration-faster: 0.1s ease-in-out;
10
+ --duration-fast: 0.2s ease-in-out;
11
+ --duration-medium: 0.4s ease-in-out;
12
+ --duration-slow: 0.8s ease-in-out;
13
+
14
+ --transition-fast: color var(--duration-fast),
15
+ border-color var(--duration-fast),
16
+ border var(--duration-fast),
17
+ transform var(--duration-fast),
18
+ opacity var(--duration-fast),
19
+ margin var(--duration-fast),
20
+ box-shadow var(--duration-fast),
21
+ background var(--duration-fast),
22
+ text-shadow var(--duration-fast);
23
+ }
24
+
25
+ @layer defaults {
26
+ button, input, textarea {
27
+ font-family: inherit;
28
+ font-size: inherit;
29
+ color: inherit;
30
+ border: none;
31
+ background: none;
32
+ outline: none;
33
+ }
34
+
35
+ *:focus-visible {
36
+ outline: none;
37
+ }
38
+
39
+ *::placeholder {
40
+ color: inherit;
41
+ opacity: 0.25;
42
+ }
43
+
44
+ ul {
45
+ list-style: none;
46
+ margin: 0;
47
+ padding: 0;
48
+ }
49
+
50
+ ::selection {
51
+ color: var(--color-content);
52
+ background: var(--color-primary);
53
+ }
54
+
55
+ input::-webkit-outer-spin-button,
56
+ input::-webkit-inner-spin-button {
57
+ -webkit-appearance: none;
58
+ margin: 0;
59
+ }
60
+
61
+ input[type=number] {
62
+ -moz-appearance: textfield;
63
+ }
64
+ }
@@ -0,0 +1,3 @@
1
+ :root, :host {
2
+ --layout-width-column: 240px
3
+ }
@@ -0,0 +1,21 @@
1
+ :root, :host {
2
+ --length-radius-xxs: 2px;
3
+ --length-radius-xs: 4px;
4
+ --length-radius-s: 8px;
5
+ --length-radius-m: 16px;
6
+ --length-radius-l: 24px;
7
+
8
+ --length-xxxxs: 1px;
9
+ --length-xxxs: 2px;
10
+ --length-xxs: 4px;
11
+ --length-xs: 8px;
12
+ --length-s: 12px;
13
+ --length-m: 16px;
14
+ --length-l: 24px;
15
+ --length-xl: 32px;
16
+ --length-xxl: 48px;
17
+ --length-xxxl: 64px;
18
+ --length-xxxxl: 96px;
19
+
20
+ --length-content: min(1248px, calc(100vw - var(--length-xl)));
21
+ }
@@ -0,0 +1,27 @@
1
+ :root, :host {
2
+ --scrollbar-width: 8px;
3
+ scrollbar-color: var(--color-soft) var(--color-background-0);
4
+ scrollbar-width: thin;
5
+ }
6
+
7
+ ::-webkit-scrollbar {
8
+ width: var(--scrollbar-width);
9
+
10
+ &:horizontal {
11
+ height: var(--scrollbar-width);
12
+ }
13
+ }
14
+
15
+ ::-webkit-scrollbar-track {
16
+ background: var(--color-background-0);
17
+ border-radius: var(--length-radius-m);
18
+ }
19
+
20
+ ::-webkit-scrollbar-thumb {
21
+ background: var(--color-soft);
22
+ border-radius: 10px;
23
+
24
+ &:hover {
25
+ background: var(--color-content-litest);
26
+ }
27
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "paths": {
5
+ "@/*": [
6
+ "./src/*"
7
+ ]
8
+ },
9
+ "target": "esnext",
10
+ "useDefineForClassFields": true,
11
+ "module": "esnext",
12
+ "moduleResolution": "bundler",
13
+ "strict": true,
14
+ "jsx": "preserve",
15
+ "sourceMap": true,
16
+ "resolveJsonModule": true,
17
+ "esModuleInterop": true,
18
+ "lib": [
19
+ "esnext",
20
+ "dom"
21
+ ],
22
+ "types": [
23
+ "vitest/globals",
24
+ "vite/client",
25
+ "node"
26
+ ]
27
+ },
28
+ "include": [
29
+ "src/**/*.ts",
30
+ "src/**/*.d.ts",
31
+ "src/**/*.tsx",
32
+ "src/**/*.vue"
33
+ ]
34
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,68 @@
1
+ /// <reference types="histoire" />
2
+
3
+ import libAssets from "@laynezh/vite-plugin-lib-assets";
4
+ import vue from "@vitejs/plugin-vue";
5
+ import * as path from "path";
6
+ import { visualizer } from "rollup-plugin-visualizer";
7
+ import { defineConfig, UserConfigExport } from "vite";
8
+ import dts from "vite-plugin-dts";
9
+
10
+ import packageDefinition from "./package.json";
11
+
12
+ const alias = {
13
+ "@": path.resolve(__dirname, "src")
14
+ };
15
+
16
+ export default defineConfig(() => {
17
+ const externals = Object.keys(packageDefinition.peerDependencies || {});
18
+
19
+ externals.forEach((dependency) => {
20
+ if (dependency.startsWith("@luna-park")) {
21
+ externals.push(dependency.replace("@luna-park/", "packages/"));
22
+ }
23
+ });
24
+
25
+ const config: UserConfigExport = {
26
+ build: {
27
+ lib: {
28
+ entry: "src/index.ts",
29
+ fileName: "index",
30
+ name: "@luna-park/design"
31
+ },
32
+ rolldownOptions: {
33
+ external(id: string) {
34
+ return externals.some((external) => (
35
+ id === external ||
36
+ id.includes(`/${ external }`) ||
37
+ id.startsWith(`${ external }/`)
38
+ ));
39
+ },
40
+ output: {
41
+ globals(id: string) {
42
+ id = id.replaceAll("\\", "/");
43
+
44
+ for (const external of externals) {
45
+ if (id === external || id.includes(`/${ external }`) || id.startsWith(`${ external }/`)) {
46
+ return external;
47
+ }
48
+ }
49
+
50
+ return id;
51
+ }
52
+ }
53
+ }
54
+ },
55
+ plugins: [
56
+ libAssets({ }),
57
+ vue(),
58
+ dts({}),
59
+ visualizer()
60
+ ],
61
+ resolve: {
62
+ alias,
63
+ dedupe: ["vue", "pinia"]
64
+ }
65
+ };
66
+
67
+ return config;
68
+ });