vitrify 0.17.6 → 0.17.7

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.
@@ -10,35 +10,22 @@ const colGutter = {
10
10
  };
11
11
  const sizes = ['sm', 'md', 'lg', 'xl'];
12
12
  const shortcuts = [
13
- [
14
- /^row$/,
15
- ([, c], { theme }) => `flex flex-row flex-wrap
16
- [&_>_.col]:(grow)
17
- ${sizes
18
- .map((size) => `[&_>_.col-${size}]:(${size}:basis-auto ${size}:grow)`)
19
- .join(' ')}
20
- ${grid.map((nr) => `[&_>_.col-${nr}]:(basis-${nr}/12)`).join(' ')}
21
- ${sizes
22
- .map((size) => grid
23
- .map((nr) => `[&_>_.col-${size}-${nr}]:(${size}:basis-${nr}/12)`)
24
- .join(' '))
25
- .join(' ')}
26
- `
27
- ],
28
- [
29
- /^column$/,
30
- ([, c], { theme }) => `flex flex-col flex-wrap
31
- [&_>_.col]:(grow)
32
- ${sizes
33
- .map((size) => `[&_>_.col-${size}]:(${size}:basis-auto ${size}:grow)`)
34
- .join(' ')}
35
- ${grid.map((nr) => `[&_>_.col-${nr}]:(basis-${nr}/12)`).join(' ')}
36
- ${sizes
37
- .map((size) => grid
38
- .map((nr) => `[&_>_.col-${size}-${nr}]:(${size}:basis-${nr}/12)`)
39
- .join(' '))
40
- .join(' ')}
41
- `
13
+ [/^row$/, ([, c], { theme }) => `flex flex-row flex-wrap`],
14
+ [/^column$/, ([, c], { theme }) => `flex flex-col flex-wrap`],
15
+ [
16
+ /^col(?:-)?(none|xs|sm|md|lg|xl)?(?:-)?([2-9]|1[0-2]?)?$/,
17
+ ([, size, nr], { theme }) => {
18
+ if (size && nr) {
19
+ return `${size}:basis-${nr}/12)`;
20
+ }
21
+ else if (nr) {
22
+ return `basis-${nr}/12`;
23
+ }
24
+ else if (size) {
25
+ return `${size}:basis-auto ${size}:grow`;
26
+ }
27
+ return `grow`;
28
+ }
42
29
  ],
43
30
  [
44
31
  /^q-col-gutter-(none|xs|sm|md|lg|xl)$/,
@@ -1,5 +1,5 @@
1
1
  // Import normalize and animate css
2
- import { definePreset, transformerVariantGroup } from 'unocss';
2
+ import { definePreset, presetIcons, transformerVariantGroup } from 'unocss';
3
3
  import presetUno from '@unocss/preset-uno';
4
4
  import { defaultTheme } from './theme.js';
5
5
  import { animatedUno } from 'animated-unocss';
@@ -93,6 +93,13 @@ import { rules as VisibilityRules, preflights as VisibilityPreflights, shortcuts
93
93
  import { shortcuts as QHeaderShortcuts } from './components/QHeader.unocss.js';
94
94
  import { shortcuts as QFooterShortcuts } from './components/QFooter.unocss.js';
95
95
  import { shortcuts as QDrawerShortcuts } from './components/QDrawer.unocss.js';
96
+ const extractKeys = (obj) => Object.values(obj).reduce((acc, cur) => {
97
+ if (typeof cur === 'string')
98
+ acc.push(cur);
99
+ else if (typeof cur === 'object')
100
+ acc = acc.concat(extractKeys(cur));
101
+ return acc;
102
+ }, []);
96
103
  const toKebabCase = (str) => str
97
104
  .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
98
105
  ?.map((x) => x.toLowerCase())
@@ -1332,7 +1339,7 @@ const qClasses = [
1332
1339
  'q-notification--bottom-leave-active',
1333
1340
  'q-notification--bottom-right-leave-active'
1334
1341
  ];
1335
- const generateSafelist = (plugins) => {
1342
+ const generateSafelist = ({ plugins, iconSet }) => {
1336
1343
  let safelist = baseSafelist;
1337
1344
  if (plugins) {
1338
1345
  for (const plugin of plugins) {
@@ -1341,13 +1348,18 @@ const generateSafelist = (plugins) => {
1341
1348
  safelist = safelist.concat(pluginSafelist);
1342
1349
  }
1343
1350
  }
1351
+ if (iconSet) {
1352
+ const iconSetSafelist = extractKeys(iconSet);
1353
+ if (iconSetSafelist)
1354
+ safelist = safelist.concat(iconSetSafelist);
1355
+ }
1344
1356
  return safelist;
1345
1357
  };
1346
1358
  export default definePreset((options = {}) => {
1347
1359
  return {
1348
1360
  name: 'quasar',
1349
- presets: [presetUno(), animatedUno()],
1350
- safelist: generateSafelist(options?.plugins),
1361
+ presets: [presetUno(), animatedUno(), presetIcons({})],
1362
+ safelist: generateSafelist(options),
1351
1363
  preflights: [
1352
1364
  {
1353
1365
  getCSS: ({ theme }) => `/* beasties:include start */
@@ -74,11 +74,17 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
74
74
  const { default: lang } = await import('virtual:quasar-lang');
75
75
  // @ts-ignore
76
76
  const { default: iconSet } = await import('virtual:quasar-iconSet');
77
+ const { default: iconMapFn } = await import(
78
+ // @ts-ignore
79
+ 'virtual:quasar-iconMapFn');
77
80
  app.use(staticImports?.Quasar, {
78
81
  plugins: quasarPlugins,
79
82
  directives,
80
83
  lang,
81
- iconSet
84
+ iconSet,
85
+ config: {
86
+ iconMapFn
87
+ }
82
88
  }, ssrContext);
83
89
  }
84
90
  ];
@@ -117,104 +123,6 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
117
123
  ? undefined
118
124
  : {
119
125
  global: ['quasar/src/css/index.sass']
120
- // global: [
121
- // 'quasar/src/css/helpers/string.sass',
122
- // 'quasar/src/css/helpers/math.sass',
123
- // 'quasar/src/css/variables.sass',
124
- // 'quasar/src/css/normalize.sass',
125
- // // 'quasar/src/components/icon/QIcon.sass',
126
- // // /* Composables */
127
- // // 'quasar/src/composables/private.use-panel/use-panel.sass',
128
- // // /* Components */
129
- // // 'quasar/src/components/ajax-bar/QAjaxBar.sass',
130
- // // 'quasar/src/components/avatar/QAvatar.sass',
131
- // // 'quasar/src/components/badge/QBadge.sass',
132
- // // 'quasar/src/components/banner/QBanner.sass',
133
- // // 'quasar/src/components/bar/QBar.sass',
134
- // // 'quasar/src/components/breadcrumbs/QBreadcrumbs.sass',
135
- // // 'quasar/src/components/btn/QBtn.sass',
136
- // // 'quasar/src/components/btn-dropdown/QBtnDropdown.sass',
137
- // // 'quasar/src/components/btn-group/QBtnGroup.sass',
138
- // // 'quasar/src/components/btn-toggle/QBtnToggle.sass',
139
- // // 'quasar/src/components/card/QCard.sass',
140
- // // 'quasar/src/components/carousel/QCarousel.sass',
141
- // // 'quasar/src/components/chat/QChatMessage.sass',
142
- // // 'quasar/src/components/checkbox/QCheckbox.sass',
143
- // // 'quasar/src/components/chip/QChip.sass',
144
- // // 'quasar/src/components/circular-progress/QCircularProgress.sass',
145
- // // 'quasar/src/components/color/QColor.sass',
146
- // // 'quasar/src/components/date/QDate.sass',
147
- // // 'quasar/src/components/dialog/QDialog.sass',
148
- // // 'quasar/src/components/editor/QEditor.sass',
149
- // // 'quasar/src/components/expansion-item/QExpansionItem.sass',
150
- // // 'quasar/src/components/fab/QFab.sass',
151
- // // 'quasar/src/components/field/QField.sass',
152
- // 'quasar/src/components/file/QFile.sass',
153
- // 'quasar/src/components/form/QForm.sass',
154
- // 'quasar/src/components/img/QImg.sass',
155
- // 'quasar/src/components/inner-loading/QInnerLoading.sass',
156
- // 'quasar/src/components/input/QInput.sass',
157
- // 'quasar/src/components/intersection/QIntersection.sass',
158
- // 'quasar/src/components/item/QItem.sass',
159
- // 'quasar/src/components/knob/QKnob.sass',
160
- // 'quasar/src/components/layout/QLayout.sass',
161
- // 'quasar/src/components/linear-progress/QLinearProgress.sass',
162
- // 'quasar/src/components/menu/QMenu.sass',
163
- // 'quasar/src/components/option-group/QOptionGroup.sass',
164
- // 'quasar/src/components/pagination/QPagination.sass',
165
- // 'quasar/src/components/parallax/QParallax.sass',
166
- // 'quasar/src/components/popup-edit/QPopupEdit.sass',
167
- // 'quasar/src/components/pull-to-refresh/QPullToRefresh.sass',
168
- // 'quasar/src/components/radio/QRadio.sass',
169
- // 'quasar/src/components/rating/QRating.sass',
170
- // 'quasar/src/components/responsive/QResponsive.sass',
171
- // 'quasar/src/components/scroll-area/QScrollArea.sass',
172
- // 'quasar/src/components/select/QSelect.sass',
173
- // 'quasar/src/components/separator/QSeparator.sass',
174
- // 'quasar/src/components/skeleton/QSkeleton.sass',
175
- // 'quasar/src/components/slide-item/QSlideItem.sass',
176
- // 'quasar/src/components/slider/QSlider.sass',
177
- // 'quasar/src/components/space/QSpace.sass',
178
- // 'quasar/src/components/spinner/QSpinner.sass',
179
- // 'quasar/src/components/splitter/QSplitter.sass',
180
- // 'quasar/src/components/stepper/QStepper.sass',
181
- // 'quasar/src/components/tab-panels/QTabPanel.sass',
182
- // 'quasar/src/components/table/QTable.sass',
183
- // 'quasar/src/components/tabs/QTabs.sass',
184
- // 'quasar/src/components/time/QTime.sass',
185
- // 'quasar/src/components/timeline/QTimeline.sass',
186
- // 'quasar/src/components/toggle/QToggle.sass',
187
- // 'quasar/src/components/toolbar/QToolbar.sass',
188
- // 'quasar/src/components/tooltip/QTooltip.sass',
189
- // 'quasar/src/components/tree/QTree.sass',
190
- // 'quasar/src/components/uploader/QUploader.sass',
191
- // 'quasar/src/components/video/QVideo.sass',
192
- // 'quasar/src/components/virtual-scroll/QVirtualScroll.sass',
193
- // /* Directives */
194
- // 'quasar/src/directives/ripple/Ripple.sass',
195
- // 'quasar/src/directives/morph/Morph.sass',
196
- // /* Plugins */
197
- // 'quasar/src/plugins/bottom-sheet/component/BottomSheetComponent.sass',
198
- // 'quasar/src/plugins/dialog/component/DialogPluginComponent.sass',
199
- // 'quasar/src/plugins/loading/Loading.sass',
200
- // 'quasar/src/plugins/notify/Notify.sass',
201
- // /* Core */
202
- // 'quasar/src/css/core/animations.sass',
203
- // 'quasar/src/css/core/colors.sass',
204
- // 'quasar/src/css/core/elevation.sass',
205
- // 'quasar/src/css/core/flex.sass',
206
- // 'quasar/src/css/core/helpers.sass',
207
- // 'quasar/src/css/core/mouse.sass',
208
- // 'quasar/src/css/core/orientation.sass',
209
- // 'quasar/src/css/core/positioning.sass',
210
- // 'quasar/src/css/core/size.sass',
211
- // 'quasar/src/css/core/touch.sass',
212
- // 'quasar/src/css/core/transitions.sass',
213
- // 'quasar/src/css/core/typography.sass',
214
- // 'quasar/src/css/core/visibility.sass',
215
- // 'quasar/src/css/core/dark.sass'
216
- // ]
217
- // additionalData: [`@import 'quasar/src/css/index.sass'`]
218
126
  }
219
127
  },
220
128
  resolve: {
@@ -262,6 +170,8 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
262
170
  return 'virtual:quasar-lang';
263
171
  case 'virtual:quasar-iconSet':
264
172
  return 'virtual:quasar-iconSet';
173
+ case 'virtual:quasar-iconMapFn':
174
+ return 'virtual:quasar-iconMapFn';
265
175
  case 'virtual:quasar':
266
176
  return { id: 'virtual:quasar', moduleSideEffects: false };
267
177
  default:
@@ -280,8 +190,15 @@ export const QuasarPlugin = async ({ ssr = false, pwa = false }) => {
280
190
  export default lang`;
281
191
  }
282
192
  else if (id === 'virtual:quasar-iconSet') {
283
- return `import iconSet from 'quasar/icon-set/${quasarConf?.framework.iconSet || 'material-icons'}';
284
- export default iconSet`;
193
+ return `${typeof quasarConf.framework.iconSet === 'string'
194
+ ? `import iconSet from 'quasar/icon-set/${quasarConf?.framework.iconSet || 'material-icons'}';
195
+ export default iconSet`
196
+ : `export default ${quasarConf.framework.iconSet
197
+ ? JSON.stringify(quasarConf.framework.iconSet)
198
+ : null}`}`;
199
+ }
200
+ else if (id === 'virtual:quasar-iconMapFn') {
201
+ return `export default ${quasarConf?.framework.iconMapFn?.toString() ?? null}`;
285
202
  }
286
203
  else if (id === 'virtual:quasar') {
287
204
  return `export * from 'quasar/src/plugins.js';
@@ -1,10 +1,7 @@
1
- import { type QuasarPlugins } from 'quasar';
1
+ import { type QuasarIconSet, type QuasarPlugins } from 'quasar';
2
2
  export interface QuasarPresetOptions {
3
3
  plugins?: (keyof QuasarPlugins)[];
4
- theme?: {
5
- shadowColor?: string;
6
- darkShadowColor?: string;
7
- };
4
+ iconSet?: QuasarIconSet;
8
5
  }
9
6
  declare const _default: import("unocss").Preset<object>;
10
7
  export default _default;
@@ -1,12 +1,13 @@
1
1
  import type { VitrifyPlugin } from './index.js';
2
- import { type QuasarFonts, type QuasarComponents, type QuasarDirectives, type QuasarIconSets, type QuasarPlugins } from 'quasar';
2
+ import { type QuasarFonts, type QuasarComponents, type QuasarDirectives, type QuasarIconSets, type QuasarPlugins, type GlobalQuasarIconMapFn, type QuasarIconSet } from 'quasar';
3
3
  export interface QuasarConf {
4
4
  framework: {
5
5
  components?: (keyof QuasarComponents)[];
6
6
  directives?: (keyof QuasarDirectives)[];
7
7
  plugins?: (keyof QuasarPlugins)[];
8
8
  lang?: string;
9
- iconSet?: QuasarIconSets;
9
+ iconSet?: QuasarIconSets | QuasarIconSet;
10
+ iconMapFn?: GlobalQuasarIconMapFn;
10
11
  };
11
12
  extras?: (QuasarIconSets | QuasarFonts)[];
12
13
  disableSass?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vitrify",
3
- "version": "0.17.6",
3
+ "version": "0.17.7",
4
4
  "license": "MIT",
5
5
  "author": "Stefan van Herwijnen",
6
6
  "description": "Vite as your Full Stack development tool",
@@ -81,6 +81,7 @@
81
81
  "@types/merge-deep": "^3.0.3",
82
82
  "@types/node": "^22.10.2",
83
83
  "@types/ws": "^8.5.13",
84
+ "@unocss/preset-icons": "^65.4.2",
84
85
  "@vue/runtime-core": "^3.5.13",
85
86
  "beasties": "^0.2.0",
86
87
  "css": "^3.0.0",
@@ -16,39 +16,20 @@ const colGutter = {
16
16
  const sizes = ['sm', 'md', 'lg', 'xl']
17
17
 
18
18
  const shortcuts: UserShortcuts<QuasarTheme> = [
19
+ [/^row$/, ([, c], { theme }) => `flex flex-row flex-wrap`],
20
+ [/^column$/, ([, c], { theme }) => `flex flex-col flex-wrap`],
19
21
  [
20
- /^row$/,
21
- ([, c], { theme }) => `flex flex-row flex-wrap
22
- [&_>_.col]:(grow)
23
- ${sizes
24
- .map((size) => `[&_>_.col-${size}]:(${size}:basis-auto ${size}:grow)`)
25
- .join(' ')}
26
- ${grid.map((nr) => `[&_>_.col-${nr}]:(basis-${nr}/12)`).join(' ')}
27
- ${sizes
28
- .map((size) =>
29
- grid
30
- .map((nr) => `[&_>_.col-${size}-${nr}]:(${size}:basis-${nr}/12)`)
31
- .join(' ')
32
- )
33
- .join(' ')}
34
- `
35
- ],
36
- [
37
- /^column$/,
38
- ([, c], { theme }) => `flex flex-col flex-wrap
39
- [&_>_.col]:(grow)
40
- ${sizes
41
- .map((size) => `[&_>_.col-${size}]:(${size}:basis-auto ${size}:grow)`)
42
- .join(' ')}
43
- ${grid.map((nr) => `[&_>_.col-${nr}]:(basis-${nr}/12)`).join(' ')}
44
- ${sizes
45
- .map((size) =>
46
- grid
47
- .map((nr) => `[&_>_.col-${size}-${nr}]:(${size}:basis-${nr}/12)`)
48
- .join(' ')
49
- )
50
- .join(' ')}
51
- `
22
+ /^col(?:-)?(none|xs|sm|md|lg|xl)?(?:-)?([2-9]|1[0-2]?)?$/,
23
+ ([, size, nr], { theme }) => {
24
+ if (size && nr) {
25
+ return `${size}:basis-${nr}/12)`
26
+ } else if (nr) {
27
+ return `basis-${nr}/12`
28
+ } else if (size) {
29
+ return `${size}:basis-auto ${size}:grow`
30
+ }
31
+ return `grow`
32
+ }
52
33
  ],
53
34
  [
54
35
  /^q-col-gutter-(none|xs|sm|md|lg|xl)$/,
@@ -2,6 +2,7 @@
2
2
  import {
3
3
  definePreset,
4
4
  type Preflight,
5
+ presetIcons,
5
6
  type Rule,
6
7
  transformerVariantGroup,
7
8
  type UserShortcuts
@@ -166,16 +167,20 @@ import {
166
167
  import { shortcuts as QHeaderShortcuts } from './components/QHeader.unocss.js'
167
168
  import { shortcuts as QFooterShortcuts } from './components/QFooter.unocss.js'
168
169
  import { shortcuts as QDrawerShortcuts } from './components/QDrawer.unocss.js'
169
- import { type QuasarPlugins } from 'quasar'
170
+ import { type QuasarIconSet, type QuasarPlugins } from 'quasar'
170
171
 
171
172
  export interface QuasarPresetOptions {
172
173
  plugins?: (keyof QuasarPlugins)[]
173
- theme?: {
174
- shadowColor?: string
175
- darkShadowColor?: string
176
- }
174
+ iconSet?: QuasarIconSet
177
175
  }
178
176
 
177
+ const extractKeys = (obj: Record<string, any>) =>
178
+ Object.values(obj).reduce((acc, cur) => {
179
+ if (typeof cur === 'string') acc.push(cur)
180
+ else if (typeof cur === 'object') acc = acc.concat(extractKeys(cur))
181
+ return acc
182
+ }, [] as string[])
183
+
179
184
  const toKebabCase = (str: string) =>
180
185
  str
181
186
  .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
@@ -1420,7 +1425,13 @@ const qClasses = [
1420
1425
  'q-notification--bottom-right-leave-active'
1421
1426
  ]
1422
1427
 
1423
- const generateSafelist = (plugins?: (keyof QuasarPlugins)[]) => {
1428
+ const generateSafelist = ({
1429
+ plugins,
1430
+ iconSet
1431
+ }: {
1432
+ plugins?: (keyof QuasarPlugins)[]
1433
+ iconSet?: QuasarIconSet
1434
+ }) => {
1424
1435
  let safelist = baseSafelist
1425
1436
  if (plugins) {
1426
1437
  for (const plugin of plugins) {
@@ -1428,14 +1439,18 @@ const generateSafelist = (plugins?: (keyof QuasarPlugins)[]) => {
1428
1439
  if (pluginSafelist) safelist = safelist.concat(pluginSafelist)
1429
1440
  }
1430
1441
  }
1442
+ if (iconSet) {
1443
+ const iconSetSafelist = extractKeys(iconSet)
1444
+ if (iconSetSafelist) safelist = safelist.concat(iconSetSafelist)
1445
+ }
1431
1446
  return safelist
1432
1447
  }
1433
1448
 
1434
1449
  export default definePreset((options: QuasarPresetOptions = {}) => {
1435
1450
  return {
1436
1451
  name: 'quasar',
1437
- presets: [presetUno(), animatedUno()],
1438
- safelist: generateSafelist(options?.plugins),
1452
+ presets: [presetUno(), animatedUno(), presetIcons({})],
1453
+ safelist: generateSafelist(options),
1439
1454
  preflights: (
1440
1455
  [
1441
1456
  {
@@ -12,7 +12,9 @@ import {
12
12
  type QuasarComponents,
13
13
  type QuasarDirectives,
14
14
  type QuasarIconSets,
15
- type QuasarPlugins
15
+ type QuasarPlugins,
16
+ type GlobalQuasarIconMapFn,
17
+ type QuasarIconSet
16
18
  } from 'quasar'
17
19
 
18
20
  export interface QuasarConf {
@@ -21,7 +23,8 @@ export interface QuasarConf {
21
23
  directives?: (keyof QuasarDirectives)[]
22
24
  plugins?: (keyof QuasarPlugins)[]
23
25
  lang?: string
24
- iconSet?: QuasarIconSets
26
+ iconSet?: QuasarIconSets | QuasarIconSet
27
+ iconMapFn?: GlobalQuasarIconMapFn
25
28
  }
26
29
  extras?: (QuasarIconSets | QuasarFonts)[]
27
30
  disableSass?: boolean
@@ -146,6 +149,10 @@ export const QuasarPlugin: VitrifyPlugin = async ({
146
149
  const { default: lang } = await import('virtual:quasar-lang')
147
150
  // @ts-ignore
148
151
  const { default: iconSet } = await import('virtual:quasar-iconSet')
152
+ const { default: iconMapFn } = await import(
153
+ // @ts-ignore
154
+ 'virtual:quasar-iconMapFn'
155
+ )
149
156
 
150
157
  app.use(
151
158
  staticImports?.Quasar,
@@ -153,7 +160,10 @@ export const QuasarPlugin: VitrifyPlugin = async ({
153
160
  plugins: quasarPlugins,
154
161
  directives,
155
162
  lang,
156
- iconSet
163
+ iconSet,
164
+ config: {
165
+ iconMapFn
166
+ }
157
167
  },
158
168
  ssrContext
159
169
  )
@@ -196,111 +206,6 @@ export const QuasarPlugin: VitrifyPlugin = async ({
196
206
  ? undefined
197
207
  : {
198
208
  global: ['quasar/src/css/index.sass']
199
- // global: [
200
- // 'quasar/src/css/helpers/string.sass',
201
- // 'quasar/src/css/helpers/math.sass',
202
-
203
- // 'quasar/src/css/variables.sass',
204
- // 'quasar/src/css/normalize.sass',
205
-
206
- // // 'quasar/src/components/icon/QIcon.sass',
207
-
208
- // // /* Composables */
209
- // // 'quasar/src/composables/private.use-panel/use-panel.sass',
210
-
211
- // // /* Components */
212
- // // 'quasar/src/components/ajax-bar/QAjaxBar.sass',
213
- // // 'quasar/src/components/avatar/QAvatar.sass',
214
- // // 'quasar/src/components/badge/QBadge.sass',
215
- // // 'quasar/src/components/banner/QBanner.sass',
216
- // // 'quasar/src/components/bar/QBar.sass',
217
- // // 'quasar/src/components/breadcrumbs/QBreadcrumbs.sass',
218
- // // 'quasar/src/components/btn/QBtn.sass',
219
- // // 'quasar/src/components/btn-dropdown/QBtnDropdown.sass',
220
- // // 'quasar/src/components/btn-group/QBtnGroup.sass',
221
- // // 'quasar/src/components/btn-toggle/QBtnToggle.sass',
222
- // // 'quasar/src/components/card/QCard.sass',
223
- // // 'quasar/src/components/carousel/QCarousel.sass',
224
- // // 'quasar/src/components/chat/QChatMessage.sass',
225
- // // 'quasar/src/components/checkbox/QCheckbox.sass',
226
- // // 'quasar/src/components/chip/QChip.sass',
227
- // // 'quasar/src/components/circular-progress/QCircularProgress.sass',
228
- // // 'quasar/src/components/color/QColor.sass',
229
- // // 'quasar/src/components/date/QDate.sass',
230
- // // 'quasar/src/components/dialog/QDialog.sass',
231
- // // 'quasar/src/components/editor/QEditor.sass',
232
- // // 'quasar/src/components/expansion-item/QExpansionItem.sass',
233
- // // 'quasar/src/components/fab/QFab.sass',
234
- // // 'quasar/src/components/field/QField.sass',
235
- // 'quasar/src/components/file/QFile.sass',
236
- // 'quasar/src/components/form/QForm.sass',
237
- // 'quasar/src/components/img/QImg.sass',
238
- // 'quasar/src/components/inner-loading/QInnerLoading.sass',
239
- // 'quasar/src/components/input/QInput.sass',
240
- // 'quasar/src/components/intersection/QIntersection.sass',
241
- // 'quasar/src/components/item/QItem.sass',
242
- // 'quasar/src/components/knob/QKnob.sass',
243
- // 'quasar/src/components/layout/QLayout.sass',
244
- // 'quasar/src/components/linear-progress/QLinearProgress.sass',
245
- // 'quasar/src/components/menu/QMenu.sass',
246
- // 'quasar/src/components/option-group/QOptionGroup.sass',
247
- // 'quasar/src/components/pagination/QPagination.sass',
248
- // 'quasar/src/components/parallax/QParallax.sass',
249
- // 'quasar/src/components/popup-edit/QPopupEdit.sass',
250
- // 'quasar/src/components/pull-to-refresh/QPullToRefresh.sass',
251
- // 'quasar/src/components/radio/QRadio.sass',
252
- // 'quasar/src/components/rating/QRating.sass',
253
- // 'quasar/src/components/responsive/QResponsive.sass',
254
- // 'quasar/src/components/scroll-area/QScrollArea.sass',
255
- // 'quasar/src/components/select/QSelect.sass',
256
- // 'quasar/src/components/separator/QSeparator.sass',
257
- // 'quasar/src/components/skeleton/QSkeleton.sass',
258
- // 'quasar/src/components/slide-item/QSlideItem.sass',
259
- // 'quasar/src/components/slider/QSlider.sass',
260
- // 'quasar/src/components/space/QSpace.sass',
261
- // 'quasar/src/components/spinner/QSpinner.sass',
262
- // 'quasar/src/components/splitter/QSplitter.sass',
263
- // 'quasar/src/components/stepper/QStepper.sass',
264
- // 'quasar/src/components/tab-panels/QTabPanel.sass',
265
- // 'quasar/src/components/table/QTable.sass',
266
- // 'quasar/src/components/tabs/QTabs.sass',
267
- // 'quasar/src/components/time/QTime.sass',
268
- // 'quasar/src/components/timeline/QTimeline.sass',
269
- // 'quasar/src/components/toggle/QToggle.sass',
270
- // 'quasar/src/components/toolbar/QToolbar.sass',
271
- // 'quasar/src/components/tooltip/QTooltip.sass',
272
- // 'quasar/src/components/tree/QTree.sass',
273
- // 'quasar/src/components/uploader/QUploader.sass',
274
- // 'quasar/src/components/video/QVideo.sass',
275
- // 'quasar/src/components/virtual-scroll/QVirtualScroll.sass',
276
-
277
- // /* Directives */
278
- // 'quasar/src/directives/ripple/Ripple.sass',
279
- // 'quasar/src/directives/morph/Morph.sass',
280
-
281
- // /* Plugins */
282
- // 'quasar/src/plugins/bottom-sheet/component/BottomSheetComponent.sass',
283
- // 'quasar/src/plugins/dialog/component/DialogPluginComponent.sass',
284
- // 'quasar/src/plugins/loading/Loading.sass',
285
- // 'quasar/src/plugins/notify/Notify.sass',
286
-
287
- // /* Core */
288
- // 'quasar/src/css/core/animations.sass',
289
- // 'quasar/src/css/core/colors.sass',
290
- // 'quasar/src/css/core/elevation.sass',
291
- // 'quasar/src/css/core/flex.sass',
292
- // 'quasar/src/css/core/helpers.sass',
293
- // 'quasar/src/css/core/mouse.sass',
294
- // 'quasar/src/css/core/orientation.sass',
295
- // 'quasar/src/css/core/positioning.sass',
296
- // 'quasar/src/css/core/size.sass',
297
- // 'quasar/src/css/core/touch.sass',
298
- // 'quasar/src/css/core/transitions.sass',
299
- // 'quasar/src/css/core/typography.sass',
300
- // 'quasar/src/css/core/visibility.sass',
301
- // 'quasar/src/css/core/dark.sass'
302
- // ]
303
- // additionalData: [`@import 'quasar/src/css/index.sass'`]
304
209
  }
305
210
  },
306
211
  resolve: {
@@ -350,6 +255,8 @@ export const QuasarPlugin: VitrifyPlugin = async ({
350
255
  return 'virtual:quasar-lang'
351
256
  case 'virtual:quasar-iconSet':
352
257
  return 'virtual:quasar-iconSet'
258
+ case 'virtual:quasar-iconMapFn':
259
+ return 'virtual:quasar-iconMapFn'
353
260
  case 'virtual:quasar':
354
261
  return { id: 'virtual:quasar', moduleSideEffects: false }
355
262
  default:
@@ -367,10 +274,22 @@ export const QuasarPlugin: VitrifyPlugin = async ({
367
274
  }';
368
275
  export default lang`
369
276
  } else if (id === 'virtual:quasar-iconSet') {
370
- return `import iconSet from 'quasar/icon-set/${
371
- quasarConf?.framework.iconSet || 'material-icons'
372
- }';
277
+ return `${
278
+ typeof quasarConf.framework.iconSet === 'string'
279
+ ? `import iconSet from 'quasar/icon-set/${
280
+ quasarConf?.framework.iconSet || 'material-icons'
281
+ }';
373
282
  export default iconSet`
283
+ : `export default ${
284
+ quasarConf.framework.iconSet
285
+ ? JSON.stringify(quasarConf.framework.iconSet)
286
+ : null
287
+ }`
288
+ }`
289
+ } else if (id === 'virtual:quasar-iconMapFn') {
290
+ return `export default ${
291
+ quasarConf?.framework.iconMapFn?.toString() ?? null
292
+ }`
374
293
  } else if (id === 'virtual:quasar') {
375
294
  return `export * from 'quasar/src/plugins.js';
376
295
  export * from 'quasar/src/components.js';