vunor 0.1.2 → 0.1.4

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 (62) hide show
  1. package/README.md +6 -11
  2. package/dist/AppLayout.mjs +0 -0
  3. package/dist/AppToasts.mjs +4 -8
  4. package/dist/Button.mjs +5 -10
  5. package/dist/ButtonBase.mjs +4 -8
  6. package/dist/Calendar.mjs +10 -14
  7. package/dist/Card.mjs +4 -9
  8. package/dist/CardHeader.mjs +5 -10
  9. package/dist/CardInner.mjs +4 -9
  10. package/dist/Checkbox.mjs +4 -8
  11. package/dist/Combobox.d.mts +9 -9
  12. package/dist/Combobox.mjs +5 -9
  13. package/dist/DatePicker.d.mts +9 -9
  14. package/dist/DatePicker.mjs +12 -17
  15. package/dist/DatePickerBase.d.mts +9 -9
  16. package/dist/DatePickerBase.mjs +13 -17
  17. package/dist/DatePickerInner.mjs +5 -9
  18. package/dist/DatePickerPopup.mjs +4 -8
  19. package/dist/DelayedSwitch.mjs +4 -9
  20. package/dist/DevTools.mjs +583 -150
  21. package/dist/Dialog.d.mts +6 -6
  22. package/dist/Dialog.mjs +4 -8
  23. package/dist/Icon.mjs +4 -9
  24. package/dist/InnerLoading.mjs +4 -8
  25. package/dist/Input.d.mts +13 -13
  26. package/dist/Input.mjs +4 -8
  27. package/dist/InputBase.d.mts +9 -9
  28. package/dist/InputBase.mjs +4 -8
  29. package/dist/Label.mjs +1 -4
  30. package/dist/LoadingIndicator.mjs +4 -8
  31. package/dist/Menu.d.mts +2 -2
  32. package/dist/Menu.mjs +5 -14
  33. package/dist/MenuItem.mjs +4 -9
  34. package/dist/OverflowContainer.mjs +4 -8
  35. package/dist/Pagination.mjs +4 -9
  36. package/dist/Popover.mjs +4 -9
  37. package/dist/ProgressBar.mjs +4 -9
  38. package/dist/RadioGroup.mjs +4 -8
  39. package/dist/Select.d.mts +9 -9
  40. package/dist/Select.mjs +4 -9
  41. package/dist/SelectBase.mjs +4 -8
  42. package/dist/Slider.mjs +4 -8
  43. package/dist/Tabs.mjs +4 -9
  44. package/dist/nuxt.mjs +1 -3
  45. package/dist/theme.d.mts +35 -0
  46. package/dist/theme.mjs +313 -336
  47. package/dist/utils-6bTTIoaw.js +40 -0
  48. package/dist/utils.d.mts +2 -2
  49. package/dist/utils.mjs +1 -4
  50. package/dist/vite.mjs +1 -2
  51. package/dist/vunor.d.mts +13 -13
  52. package/dist/vunor.mjs +1 -6
  53. package/package.json +30 -37
  54. package/scripts/setup-skills.js +0 -78
  55. package/skills/vunor/SKILL.md +0 -115
  56. package/skills/vunor/components.md +0 -320
  57. package/skills/vunor/core.md +0 -173
  58. package/skills/vunor/forms.md +0 -348
  59. package/skills/vunor/palette.md +0 -223
  60. package/skills/vunor/rules.md +0 -263
  61. package/skills/vunor/shortcuts.md +0 -239
  62. package/skills/vunor/typography.md +0 -204
package/dist/theme.mjs CHANGED
@@ -1,10 +1,8 @@
1
1
  import defu$1, { defu } from "defu";
2
2
  import { presetWind } from "unocss";
3
3
  import { color, palitra } from "@prostojs/palitra";
4
-
5
4
  //#region src/theme/utils/define-sc.ts
6
5
  const defineShortcuts = (sc) => sc;
7
-
8
6
  //#endregion
9
7
  //#region src/components/AppToasts/shortcuts.ts
10
8
  const toastShortcuts = defineShortcuts({
@@ -30,7 +28,6 @@ const toastShortcuts = defineShortcuts({
30
28
  "data-[swipe=right]:": "[--toast-out-x:calc(100%+var(--viewport-padding))]"
31
29
  }
32
30
  });
33
-
34
31
  //#endregion
35
32
  //#region src/components/Button/shortcuts.ts
36
33
  const buttonShortcuts = defineShortcuts({
@@ -57,7 +54,6 @@ const buttonShortcuts = defineShortcuts({
57
54
  "group-[.btn-round.btn-square]/btn:": "m-0!"
58
55
  }
59
56
  });
60
-
61
57
  //#endregion
62
58
  //#region src/components/Calendar/shortcuts.ts
63
59
  const calendarShortcuts = defineShortcuts({
@@ -90,10 +86,7 @@ const calendarShortcuts = defineShortcuts({
90
86
  }
91
87
  }
92
88
  });
93
-
94
- //#endregion
95
- //#region src/components/Card/shortcuts.ts
96
- const headers = [
89
+ const cardShortcuts = defineShortcuts({ card: `data-[rounded=true]:rounded-$card-spacing data-[dense=true]:card-dense! ${[
97
90
  "h1",
98
91
  "h2",
99
92
  "h3",
@@ -105,9 +98,7 @@ const headers = [
105
98
  "body",
106
99
  "body-s",
107
100
  "callout"
108
- ];
109
- const cardShortcuts = defineShortcuts({ card: `data-[rounded=true]:rounded-$card-spacing data-[dense=true]:card-dense! ${headers.map((header) => `data-[level=${header}]:card-${header}`).join(" ")}` });
110
-
101
+ ].map((header) => `data-[level=${header}]:card-${header}`).join(" ")}` });
111
102
  //#endregion
112
103
  //#region src/components/Checkbox/shortcuts.ts
113
104
  const checkboxShortcuts = defineShortcuts({
@@ -127,7 +118,6 @@ const checkboxShortcuts = defineShortcuts({
127
118
  "checkbox-icon": { "": "size-0.9em animate-cb-appear animate-duration-200 animate-ease" },
128
119
  "checkbox-label": { "": "select-none text-body lh-1.5em" }
129
120
  });
130
-
131
121
  //#endregion
132
122
  //#region src/components/Combobox/shortcuts.ts
133
123
  const comboboxShortcuts = defineShortcuts({
@@ -139,7 +129,6 @@ const comboboxShortcuts = defineShortcuts({
139
129
  "group-[[aria-expanded=true]]/i8:": "-scale-100"
140
130
  }
141
131
  });
142
-
143
132
  //#endregion
144
133
  //#region src/components/Dialog/shortcuts.ts
145
134
  const dialogShortcuts = defineShortcuts({
@@ -156,7 +145,6 @@ const dialogShortcuts = defineShortcuts({
156
145
  "dialog-close": "absolute right-$card-spacing top-$card-spacing hover:bg-grey-500/10 rounded p-$xxs",
157
146
  "dialog-footer": "flex-shrink-0 flex gap-$s justify-end border-t px-$card-spacing py-$m"
158
147
  });
159
-
160
148
  //#endregion
161
149
  //#region src/components/Loading/shortcuts.ts
162
150
  const loadingShortcuts = defineShortcuts({
@@ -167,14 +155,12 @@ const loadingShortcuts = defineShortcuts({
167
155
  },
168
156
  "inner-loading": "bg-white/50 dark:bg-black/50 flex items-center justify-center absolute left-0 top-0 right-0 bottom-0 z-5 cursor-wait"
169
157
  });
170
-
171
158
  //#endregion
172
159
  //#region src/components/Menu/shortcuts.ts
173
160
  const menuShortcuts = defineShortcuts({
174
161
  "menu-root": "flex flex-col overflow-hidden",
175
162
  "menu-item": "justify-start c8-flat gap-$m w-full fw-400"
176
163
  });
177
-
178
164
  //#endregion
179
165
  //#region src/components/ProgressBar/shortcuts.ts
180
166
  const progressShortcuts = defineShortcuts({
@@ -200,84 +186,6 @@ const progressShortcuts = defineShortcuts({
200
186
  "dark:": "bg-scope-color-600"
201
187
  }
202
188
  });
203
-
204
- //#endregion
205
- //#region src/components/RadioGroup/shortcuts.ts
206
- const radioShortcuts = defineShortcuts({
207
- "rb-container": { "": "flex flex-col gap-$s text-body" },
208
- "rb-label": { "": "text-label text-grey-400" },
209
- "rb-root": {
210
- "": "flex gap-x-$l gap-y-$m",
211
- "[&.rb-row]:": "flex-wrap",
212
- "not-[.rb-row]:": "flex-col"
213
- },
214
- "rb-item-wrapper": { "": "flex" },
215
- "rb-item": {
216
- "": "select-none shrink-0 current-bg-scope-color-500 bg-current/0 size-1.25em rounded-full cursor-default current-border-grey-500 border-current/40 border-[0.16em] transition-none",
217
- "data-[state=checked]:not-[[data-error='true']]:": "current-border-scope-color-500 border-current",
218
- "data-[state=checked]:": "bg-current",
219
- "active:enabled:": "bg-current/20",
220
- "aria-[disabled=true]:": "scope-grey opacity-50 cursor-not-allowed",
221
- "data-[error=true]:": "current-border-error-500 current-bg-error-500"
222
- },
223
- "rb-item-indicator": { "": "flex items-center justify-center w-full h-full rounded-full relative after:content-[''] after:block after:size-[0.5em] after:rounded-[50%] after:bg-white animate-zoom-in animate-duration-100" },
224
- "rb-item-label": {
225
- "": "select-none px-$s text-body leading-none lh-1.25em",
226
- "aria-[disabled=true]:": "scope-grey opacity-50 cursor-not-allowed"
227
- }
228
- });
229
-
230
- //#endregion
231
- //#region src/components/Select/shortcuts.ts
232
- const selectShortcuts = defineShortcuts({
233
- "select-content": {
234
- "": "min-w-[60px] rounded-base surface-0 bg-current overflow-hidden shadow-popup z-[100] current-border-grey-400 border-current/20 ",
235
- "data-[design=round]:": "rounded-fingertip-half",
236
- "[&>div[data-reka-combobox-viewport]]:": "max-h-[var(--reka-popper-available-height)] [scrollbar-width:auto]",
237
- "[&>div[data-reka-combobox-viewport]::-webkit-scrollbar]:": "block"
238
- },
239
- "select-scroll-btn": "flex items-center justify-center h-fingertip cursor-default",
240
- "select-grp-label": {
241
- "": "px-$m h-fingertip flex items-center ",
242
- "group-data-[design=round]:": "px-fingertip-half",
243
- "[&>span]:": "text-label text-grey-400"
244
- },
245
- "select-item": {
246
- "": "text-body leading-none flex items-center min-h-fingertip relative select-none relative",
247
- "data-[disabled]:": "opacity-40 pointer-events-none",
248
- "data-[highlighted]:": "outline-none bg-scope-color-500/15",
249
- "[&>span]:": "px-$m",
250
- "group-data-[design=round]:[&>span]:": "px-fingertip-half",
251
- "[&>span]:data-[state=checked]:": "text-scope-color-500 fw-700!"
252
- },
253
- "select-separator": "h-[1px] bg-grey-500/10 mx-$s"
254
- });
255
-
256
- //#endregion
257
- //#region src/components/Slider/shortcuts.ts
258
- const sliderShortcuts = defineShortcuts({
259
- "slider": { "": "relative flex items-center select-none touch-none min-w-2em min-h-2em" },
260
- "slider-track": { "": "bg-grey-500/20 relative grow rounded-full h-[0.25em]" },
261
- "slider-range": { "": "absolute bg-scope-color-500 rounded-full h-full" },
262
- "slider-thumb": {
263
- "": "block w-[1.5em] h-[1.5em] bg-scope-color-500 rounded-full border-scope-light-0 border-[3px] outline-scope-color-500/10 outline-0px outline-solid",
264
- "dark:": "border-scope-dark-0",
265
- "not-[[disabled]]:": {
266
- "": "cursor-grab",
267
- "hover:": "shadow-md",
268
- "active:": "cursor-grabbing",
269
- "focus:": "outline-[0.5em]"
270
- }
271
- }
272
- });
273
-
274
- //#endregion
275
- //#region src/components/Tabs/shortcuts.ts
276
- const tabShortcuts = defineShortcuts({
277
- "tabs-indicator": "absolute left-0 h-[2px] bottom-0 w-[--reka-tabs-indicator-size] translate-x-[--reka-tabs-indicator-position] rounded-full transition-all duration-200 bg-scope-color-500",
278
- "tab": "h-fingertip rounded flex items-center justify-center px-$m gap-$m select-none"
279
- });
280
-
281
189
  //#endregion
282
190
  //#region src/components/shortcuts.ts
283
191
  const shortcuts = [
@@ -285,19 +193,79 @@ const shortcuts = [
285
193
  menuShortcuts,
286
194
  buttonShortcuts,
287
195
  checkboxShortcuts,
288
- radioShortcuts,
289
- selectShortcuts,
196
+ defineShortcuts({
197
+ "rb-container": { "": "flex flex-col gap-$s text-body" },
198
+ "rb-label": { "": "text-label text-grey-400" },
199
+ "rb-root": {
200
+ "": "flex gap-x-$l gap-y-$m",
201
+ "[&.rb-row]:": "flex-wrap",
202
+ "not-[.rb-row]:": "flex-col"
203
+ },
204
+ "rb-item-wrapper": { "": "flex" },
205
+ "rb-item": {
206
+ "": "select-none shrink-0 current-bg-scope-color-500 bg-current/0 size-1.25em rounded-full cursor-default current-border-grey-500 border-current/40 border-[0.16em] transition-none",
207
+ "data-[state=checked]:not-[[data-error='true']]:": "current-border-scope-color-500 border-current",
208
+ "data-[state=checked]:": "bg-current",
209
+ "active:enabled:": "bg-current/20",
210
+ "aria-[disabled=true]:": "scope-grey opacity-50 cursor-not-allowed",
211
+ "data-[error=true]:": "current-border-error-500 current-bg-error-500"
212
+ },
213
+ "rb-item-indicator": { "": "flex items-center justify-center w-full h-full rounded-full relative after:content-[''] after:block after:size-[0.5em] after:rounded-[50%] after:bg-white animate-zoom-in animate-duration-100" },
214
+ "rb-item-label": {
215
+ "": "select-none px-$s text-body leading-none lh-1.25em",
216
+ "aria-[disabled=true]:": "scope-grey opacity-50 cursor-not-allowed"
217
+ }
218
+ }),
219
+ defineShortcuts({
220
+ "select-content": {
221
+ "": "min-w-[60px] rounded-base surface-0 bg-current overflow-hidden shadow-popup z-[100] current-border-grey-400 border-current/20 ",
222
+ "data-[design=round]:": "rounded-fingertip-half",
223
+ "[&>div[data-reka-combobox-viewport]]:": "max-h-[var(--reka-popper-available-height)] [scrollbar-width:auto]",
224
+ "[&>div[data-reka-combobox-viewport]::-webkit-scrollbar]:": "block"
225
+ },
226
+ "select-scroll-btn": "flex items-center justify-center h-fingertip cursor-default",
227
+ "select-grp-label": {
228
+ "": "px-$m h-fingertip flex items-center ",
229
+ "group-data-[design=round]:": "px-fingertip-half",
230
+ "[&>span]:": "text-label text-grey-400"
231
+ },
232
+ "select-item": {
233
+ "": "text-body leading-none flex items-center min-h-fingertip relative select-none relative",
234
+ "data-[disabled]:": "opacity-40 pointer-events-none",
235
+ "data-[highlighted]:": "outline-none bg-scope-color-500/15",
236
+ "[&>span]:": "px-$m",
237
+ "group-data-[design=round]:[&>span]:": "px-fingertip-half",
238
+ "[&>span]:data-[state=checked]:": "text-scope-color-500 fw-700!"
239
+ },
240
+ "select-separator": "h-[1px] bg-grey-500/10 mx-$s"
241
+ }),
290
242
  comboboxShortcuts,
291
- sliderShortcuts,
243
+ defineShortcuts({
244
+ "slider": { "": "relative flex items-center select-none touch-none min-w-2em min-h-2em" },
245
+ "slider-track": { "": "bg-grey-500/20 relative grow rounded-full h-[0.25em]" },
246
+ "slider-range": { "": "absolute bg-scope-color-500 rounded-full h-full" },
247
+ "slider-thumb": {
248
+ "": "block w-[1.5em] h-[1.5em] bg-scope-color-500 rounded-full border-scope-light-0 border-[3px] outline-scope-color-500/10 outline-0px outline-solid",
249
+ "dark:": "border-scope-dark-0",
250
+ "not-[[disabled]]:": {
251
+ "": "cursor-grab",
252
+ "hover:": "shadow-md",
253
+ "active:": "cursor-grabbing",
254
+ "focus:": "outline-[0.5em]"
255
+ }
256
+ }
257
+ }),
292
258
  loadingShortcuts,
293
- tabShortcuts,
259
+ defineShortcuts({
260
+ "tabs-indicator": "absolute left-0 h-[2px] bottom-0 w-[--reka-tabs-indicator-size] translate-x-[--reka-tabs-indicator-position] rounded-full transition-all duration-200 bg-scope-color-500",
261
+ "tab": "h-fingertip rounded flex items-center justify-center px-$m gap-$m select-none"
262
+ }),
294
263
  dialogShortcuts,
295
264
  calendarShortcuts,
296
265
  progressShortcuts,
297
266
  toastShortcuts,
298
267
  { "shadow-popup": "shadow-[0_0_10px_rgba(0,0,0,0.1),0_4px_20px_rgba(0,0,0,0.15)]" }
299
268
  ];
300
-
301
269
  //#endregion
302
270
  //#region src/theme/shortcuts/c8.ts
303
271
  const c8 = defineShortcuts({
@@ -343,6 +311,30 @@ const c8 = defineShortcuts({
343
311
  },
344
312
  "c8-outlined-hover": "c8-flat-hover",
345
313
  "c8-outlined-active": "c8-flat-active",
314
+ "c8-chrome": {
315
+ "": "rounded-base border bg-transparent current-text-scope-dark-2 current-icon-scope-dark-2 current-border-grey-500 text-current border-current icon-current/80",
316
+ "dark:": "current-text-scope-light-2 current-icon-scope-light-2",
317
+ "hover:": "c8-chrome-hover",
318
+ "focus-visible:": "c8-chrome-hover",
319
+ "data-[highlighted]:": "c8-chrome-hover",
320
+ "active:": "c8-chrome-active",
321
+ "data-[active]:": "c8-chrome-active",
322
+ "data-[selected=true]:": "c8-chrome-selected",
323
+ "aria-[selected=true]:": "c8-chrome-selected",
324
+ "aria-[pressed=true]:": "c8-chrome-selected"
325
+ },
326
+ "c8-chrome-hover": {
327
+ "not-([disabled]):": "current-bg-scope-light-1 bg-current",
328
+ "dark:not-([disabled]):": "current-bg-scope-dark-1"
329
+ },
330
+ "c8-chrome-active": {
331
+ "not-([disabled]):": "current-bg-scope-light-2 bg-current",
332
+ "dark:not-([disabled]):": "current-bg-scope-dark-2"
333
+ },
334
+ "c8-chrome-selected": {
335
+ "": "current-bg-scope-light-1 bg-current current-text-scope-color-500 text-current current-icon-scope-color-500 icon-current/100",
336
+ "dark:": "current-bg-scope-dark-1 current-text-scope-color-400 current-icon-scope-color-400"
337
+ },
346
338
  "c8-light": {
347
339
  "": "current-bg-scope-color-500 rounded-base current-text-scope-color-500 current-icon-scope-color-500 bg-current/10 text-current icon-current/80",
348
340
  "dark:": "current-text-scope-color-400 current-icon-scope-color-400",
@@ -358,7 +350,6 @@ const c8 = defineShortcuts({
358
350
  "c8-light-hover": { "not-([disabled]):": "bg-current/15" },
359
351
  "c8-light-active": { "not-([disabled]):": "bg-current/20" }
360
352
  });
361
-
362
353
  //#endregion
363
354
  //#region src/theme/shortcuts/i8.ts
364
355
  const i8 = defineShortcuts({
@@ -475,7 +466,6 @@ const i8 = defineShortcuts({
475
466
  "[&>.i8-icon-wrap:hover]:": "current-icon-hl icon-current"
476
467
  }
477
468
  });
478
-
479
469
  //#endregion
480
470
  //#region src/theme/utils/shortcut-obj.ts
481
471
  /**
@@ -509,17 +499,20 @@ function prepareScArray(input) {
509
499
  const mergeTwoVunorShortcuts = (target, source) => {
510
500
  const result = {};
511
501
  const keys = new Set([...Object.keys(source), ...Object.keys(target)]);
512
- for (const key of Array.from(keys)) if (!Object.prototype.hasOwnProperty.call(source, key)) result[key] = target[key];
513
- else if (!Object.prototype.hasOwnProperty.call(target, key)) result[key] = source[key];
514
- else {
515
- let sourceValue = source[key];
516
- let targetValue = target[key];
517
- if (Array.isArray(sourceValue)) sourceValue = sourceValue.join(" ");
518
- if (Array.isArray(targetValue)) targetValue = targetValue.join(" ");
519
- if (typeof sourceValue === "string" && typeof targetValue === "string") result[key] = `${targetValue} ${sourceValue}`;
520
- else if (typeof sourceValue === "object" && typeof targetValue === "string") result[key] = `${targetValue} ${toUnoShortcut(sourceValue)}`;
521
- else if (typeof sourceValue === "string" && typeof targetValue === "object") result[key] = `${toUnoShortcut(targetValue)} ${sourceValue}`;
522
- else if (typeof sourceValue === "object" && typeof targetValue === "object") result[key] = `${toUnoShortcut(targetValue)} ${toUnoShortcut(sourceValue)}`;
502
+ for (const key of Array.from(keys)) {
503
+ const inSource = Object.prototype.hasOwnProperty.call(source, key);
504
+ const inTarget = Object.prototype.hasOwnProperty.call(target, key);
505
+ if (inSource && inTarget) {
506
+ let sourceValue = source[key];
507
+ let targetValue = target[key];
508
+ if (Array.isArray(sourceValue)) sourceValue = sourceValue.join(" ");
509
+ if (Array.isArray(targetValue)) targetValue = targetValue.join(" ");
510
+ if (typeof sourceValue === "string" && typeof targetValue === "string") result[key] = `${targetValue} ${sourceValue}`;
511
+ else if (typeof sourceValue === "object" && typeof targetValue === "string") result[key] = `${targetValue} ${toUnoShortcut(sourceValue)}`;
512
+ else if (typeof sourceValue === "string" && typeof targetValue === "object") result[key] = `${toUnoShortcut(targetValue)} ${sourceValue}`;
513
+ else if (typeof sourceValue === "object" && typeof targetValue === "object") result[key] = `${toUnoShortcut(targetValue)} ${toUnoShortcut(sourceValue)}`;
514
+ } else if (inSource) result[key] = source[key];
515
+ else result[key] = target[key];
523
516
  }
524
517
  return result;
525
518
  };
@@ -531,7 +524,6 @@ const mergeTwoVunorShortcuts = (target, source) => {
531
524
  * @returns TVunorShortcut
532
525
  */
533
526
  const mergeVunorShortcuts = (shortcuts) => shortcuts.reduce((acc, shortcut) => mergeTwoVunorShortcuts(acc, shortcut), {});
534
-
535
527
  //#endregion
536
528
  //#region src/theme/palitra.ts
537
529
  const defaultOpts = {
@@ -584,6 +576,7 @@ const defaultOpts = {
584
576
  lightest: .97,
585
577
  darkest: .24,
586
578
  layersDepth: .08,
579
+ flatness: 1,
587
580
  mainPalette: {
588
581
  preserveInputColor: false,
589
582
  luminance: {
@@ -746,6 +739,7 @@ function generatePalette(_opts) {
746
739
  const bgOptions = {
747
740
  count: 5,
748
741
  preserveInputColor: false,
742
+ flatness: opts.layerPalette.flatness ?? opts.flatness,
749
743
  luminance: {
750
744
  dark: opts.layerPalette.luminance?.dark ?? opts.darkest,
751
745
  light: opts.layerPalette.luminance?.light ?? opts.darkest + opts.layersDepth,
@@ -769,8 +763,9 @@ function generatePalette(_opts) {
769
763
  "light-3",
770
764
  "light-4"
771
765
  ].toReversed();
766
+ const lumDark = bgOptions.luminance?.dark ?? opts.darkest;
772
767
  bgOptions.luminance = {
773
- dark: 1 - (bgOptions.luminance.light - bgOptions.luminance.dark),
768
+ dark: 1 - ((bgOptions.luminance?.light ?? opts.darkest + opts.layersDepth) - lumDark),
774
769
  light: 1,
775
770
  useMiddle: false
776
771
  };
@@ -786,6 +781,7 @@ function generatePalette(_opts) {
786
781
  }, {
787
782
  count: 10,
788
783
  preserveInputColor: opts.mainPalette.preserveInputColor,
784
+ flatness: opts.mainPalette.flatness ?? opts.flatness,
789
785
  luminance: {
790
786
  dark: opts.mainPalette.luminance?.dark ?? opts.darkest + opts.layersDepth + .02,
791
787
  light: opts.mainPalette.luminance?.light ?? opts.lightest,
@@ -816,23 +812,21 @@ function multiplySaturation(colors, m = .5) {
816
812
  }
817
813
  return newObj;
818
814
  }
815
+ const layerN = (n, reverse) => reverse ? 4 - n : n;
819
816
  function getPaletteShortcuts() {
820
- const layerN = (n, reverse) => reverse ? 4 - n : n;
821
817
  return [
822
818
  [/^layer-([0-4])$/, ([, a], { theme }) => {
823
819
  const d = layerN(Number(a), theme.reverseDarkLayers);
824
- const l = layerN(Number(a), theme.reverseLightLayers);
825
820
  return toUnoShortcut({
826
- "": `current-bg-scope-light-${l} current-text-scope-dark-2 current-icon-scope-dark-2 current-border-grey-500 bg-current text-current`,
821
+ "": `current-bg-scope-light-${layerN(Number(a), theme.reverseLightLayers)} current-text-scope-dark-2 current-icon-scope-dark-2 current-border-grey-500 bg-current text-current`,
827
822
  "dark:": `current-bg-scope-dark-${d} current-text-scope-light-2 current-icon-scope-light-2`,
828
823
  "[&.dark]:": `current-bg-scope-dark-${d} current-text-scope-light-2 current-icon-scope-light-2`
829
824
  });
830
825
  }],
831
826
  [/^(bg|text|current-text|current-bg|current-icon|current-border|current-outline|current-caret|current-hl|i8-bg|i8-border|i8-outline)-layer-([0-4])$/, ([, target, a], { theme }) => {
832
827
  const d = layerN(Number(a), theme.reverseDarkLayers);
833
- const l = layerN(Number(a), theme.reverseLightLayers);
834
828
  return toUnoShortcut({
835
- "": `${target}-scope-light-${l}`,
829
+ "": `${target}-scope-light-${layerN(Number(a), theme.reverseLightLayers)}`,
836
830
  "dark:": `${target}-scope-dark-${d}`,
837
831
  "[&.dark]:": `${target}-scope-dark-${d}`
838
832
  });
@@ -845,74 +839,6 @@ function getPaletteShortcuts() {
845
839
  { surface: "surface-100" }
846
840
  ];
847
841
  }
848
-
849
- //#endregion
850
- //#region src/theme/utils/round.ts
851
- function round(v, decimals = 0) {
852
- const d = 10 ** decimals;
853
- return Math.round(v * d) / d;
854
- }
855
-
856
- //#endregion
857
- //#region src/theme/utils/unit-by.ts
858
- function unitBy(input, factor, roundTo = 3) {
859
- const v = Number.parseFloat(input);
860
- const units = /(px|em|rem|%)$/.exec(input)?.[1] || "";
861
- return `${round(v * factor, roundTo)}${units}`;
862
- }
863
-
864
- //#endregion
865
- //#region src/theme/preflights.ts
866
- const fontsPreflights = { getCSS: ({ theme }) => `${renderFontCss("body", theme.fontSize.body) + renderFontCss("figcaption", theme.fontSize.caption) + renderFontCss("h1", theme.fontSize.h1) + renderFontCss("h2", theme.fontSize.h2) + renderFontCss("h3", theme.fontSize.h3) + renderFontCss("h4", theme.fontSize.h4) + renderFontCss("h5", theme.fontSize.h5) + renderFontCss("h6", theme.fontSize.h6)}
867
- :root {
868
- --un-border-opacity: 0.25;
869
- --un-default-border-color: rgb(150 150 150 / var(--un-border-opacity));
870
- --scope-black: 0 0 0;
871
- --scope-white: 255 255 255;
872
- --scope-hl: var(--scope-color-500);
873
- --v-fingertip: ${theme.spacing["fingertip-m"] || "3em"};
874
- --v-fingertip-half: ${unitBy(theme.spacing["fingertip-m"] || "3em", .5)};
875
- }
876
-
877
-
878
- ::-webkit-scrollbar {
879
- width: 10px;
880
- height: 10px;
881
- }
882
-
883
- ::-webkit-scrollbar-track {
884
- background: rgba(0,0,0,0.05);
885
- border-radius: 5px;
886
- }
887
-
888
- ::-webkit-scrollbar-thumb {
889
- background-color: rgba(0,0,0,0.2);
890
- border-radius: 5px;
891
- border: 2px solid transparent;
892
- background-clip: padding-box;
893
- }
894
-
895
- ::-webkit-scrollbar-thumb:hover {
896
- background-color: rgba(0,0,0,0.3);
897
- }
898
-
899
-
900
- .dark ::-webkit-scrollbar-track {
901
- background: rgba(255,255,255,0.05);
902
- }
903
-
904
- .dark ::-webkit-scrollbar-thumb {
905
- background-color: rgba(255,255,255,0.2);
906
- }
907
-
908
- .dark ::-webkit-scrollbar-thumb:hover {
909
- background-color: rgba(255,255,255,0.3);
910
- }
911
- ` };
912
- function renderFontCss(selector, font) {
913
- return `${selector} { font-size: ${font[0]}; ${Object.entries(font[1]).map((e) => `${e[0]}: ${e[1]};`).join(" ")} }\n`;
914
- }
915
-
916
842
  //#endregion
917
843
  //#region src/theme/rules/palette.ts
918
844
  function colorToRgbWithOpacity(c) {
@@ -947,6 +873,37 @@ function getCssTarget(key) {
947
873
  ring: "--un-ring-color"
948
874
  }[key];
949
875
  }
876
+ const SCOPE_SHADES = [
877
+ "50",
878
+ "100",
879
+ "200",
880
+ "300",
881
+ "400",
882
+ "500",
883
+ "600",
884
+ "700",
885
+ "800",
886
+ "900"
887
+ ];
888
+ const SCOPE_LAYERS = [
889
+ "0",
890
+ "1",
891
+ "2",
892
+ "3",
893
+ "4"
894
+ ];
895
+ function getScopeCssVars(c, theme) {
896
+ const col = theme.colors[c];
897
+ if (!col) return;
898
+ const vars = { "--scope-color": colorToRgbWithOpacity(col) };
899
+ for (const shade of SCOPE_SHADES) vars[`--scope-color-${shade}`] = colorToRgbWithOpacity(theme.colors[`${c}-${shade}`]) || "";
900
+ for (const layer of SCOPE_LAYERS) {
901
+ vars[`--scope-light-${layer}`] = colorToRgbWithOpacity(theme.colors[`${c}-light-${layer}`]) || "";
902
+ vars[`--scope-dark-${layer}`] = colorToRgbWithOpacity(theme.colors[`${c}-dark-${layer}`]) || "";
903
+ }
904
+ vars["--current-hl"] = colorToRgbWithOpacity(theme.colors[`${c}-500`]) || "";
905
+ return vars;
906
+ }
950
907
  const paletteRules = [
951
908
  [/^current-(text|bg|icon|border|outline|caret|hl)-(.+)$/, (match, { theme }) => {
952
909
  const t = match[1];
@@ -977,34 +934,7 @@ const paletteRules = [
977
934
  [cssVar]: `rgb(var(--current${source}) / ${opacityVal})`
978
935
  };
979
936
  }],
980
- [/^scope-(.*)$/, (match, { theme }) => {
981
- const c = match[1];
982
- const col = theme.colors[c];
983
- if (col) return {
984
- "--scope-color": colorToRgbWithOpacity(col),
985
- "--scope-color-50": colorToRgbWithOpacity(theme.colors[`${c}-50`]) || "",
986
- "--scope-color-100": colorToRgbWithOpacity(theme.colors[`${c}-100`]) || "",
987
- "--scope-color-200": colorToRgbWithOpacity(theme.colors[`${c}-200`]) || "",
988
- "--scope-color-300": colorToRgbWithOpacity(theme.colors[`${c}-300`]) || "",
989
- "--scope-color-400": colorToRgbWithOpacity(theme.colors[`${c}-400`]) || "",
990
- "--scope-color-500": colorToRgbWithOpacity(theme.colors[`${c}-500`]) || "",
991
- "--scope-color-600": colorToRgbWithOpacity(theme.colors[`${c}-600`]) || "",
992
- "--scope-color-700": colorToRgbWithOpacity(theme.colors[`${c}-700`]) || "",
993
- "--scope-color-800": colorToRgbWithOpacity(theme.colors[`${c}-800`]) || "",
994
- "--scope-color-900": colorToRgbWithOpacity(theme.colors[`${c}-900`]) || "",
995
- "--scope-light-0": colorToRgbWithOpacity(theme.colors[`${c}-light-0`]) || "",
996
- "--scope-light-1": colorToRgbWithOpacity(theme.colors[`${c}-light-1`]) || "",
997
- "--scope-light-2": colorToRgbWithOpacity(theme.colors[`${c}-light-2`]) || "",
998
- "--scope-light-3": colorToRgbWithOpacity(theme.colors[`${c}-light-3`]) || "",
999
- "--scope-light-4": colorToRgbWithOpacity(theme.colors[`${c}-light-4`]) || "",
1000
- "--scope-dark-0": colorToRgbWithOpacity(theme.colors[`${c}-dark-0`]) || "",
1001
- "--scope-dark-1": colorToRgbWithOpacity(theme.colors[`${c}-dark-1`]) || "",
1002
- "--scope-dark-2": colorToRgbWithOpacity(theme.colors[`${c}-dark-2`]) || "",
1003
- "--scope-dark-3": colorToRgbWithOpacity(theme.colors[`${c}-dark-3`]) || "",
1004
- "--scope-dark-4": colorToRgbWithOpacity(theme.colors[`${c}-dark-4`]) || "",
1005
- "--current-hl": colorToRgbWithOpacity(theme.colors[`${c}-500`]) || ""
1006
- };
1007
- }],
937
+ [/^scope-(.*)$/, (match, { theme }) => getScopeCssVars(match[1], theme)],
1008
938
  [/^(bg|text|fill|stroke|border|outline|icon|caret)-scope-((?:color|dark|light|text|bg|white|black|icon)(?:-\d+)?)(\/\d{1,3})?$/, (match, { theme }) => {
1009
939
  const cssVar = getCssTarget(match[1]);
1010
940
  const opacityVar = getOpacityVar(match[1]);
@@ -1033,7 +963,75 @@ const paletteRules = [
1033
963
  height: `var(--icon-size, 1em)`
1034
964
  })]
1035
965
  ];
966
+ //#endregion
967
+ //#region src/theme/utils/round.ts
968
+ function round(v, decimals = 0) {
969
+ const d = 10 ** decimals;
970
+ return Math.round(v * d) / d;
971
+ }
972
+ //#endregion
973
+ //#region src/theme/utils/unit-by.ts
974
+ function unitBy(input, factor, roundTo = 3) {
975
+ const v = Number.parseFloat(input);
976
+ const units = /(px|em|rem|%)$/.exec(input)?.[1] || "";
977
+ return `${round(v * factor, roundTo)}${units}`;
978
+ }
979
+ //#endregion
980
+ //#region src/theme/preflights.ts
981
+ const fontsPreflights = { getCSS: ({ theme }) => `${renderFontCss("body", theme.fontSize.body) + renderFontCss("figcaption", theme.fontSize.caption) + renderFontCss("h1", theme.fontSize.h1) + renderFontCss("h2", theme.fontSize.h2) + renderFontCss("h3", theme.fontSize.h3) + renderFontCss("h4", theme.fontSize.h4) + renderFontCss("h5", theme.fontSize.h5) + renderFontCss("h6", theme.fontSize.h6)}
982
+ :root {
983
+ --un-border-opacity: 0.25;
984
+ --un-default-border-color: rgb(150 150 150 / var(--un-border-opacity));
985
+ --scope-black: 0 0 0;
986
+ --scope-white: 255 255 255;
987
+ --scope-hl: var(--scope-color-500);
988
+ --v-fingertip: ${theme.spacing["fingertip-m"] || "3em"};
989
+ --v-fingertip-half: ${unitBy(theme.spacing["fingertip-m"] || "3em", .5)};
990
+ ${renderDefaultScope(theme)}}
991
+
992
+
993
+ ::-webkit-scrollbar {
994
+ width: 10px;
995
+ height: 10px;
996
+ }
1036
997
 
998
+ ::-webkit-scrollbar-track {
999
+ background: rgba(0,0,0,0.05);
1000
+ border-radius: 5px;
1001
+ }
1002
+
1003
+ ::-webkit-scrollbar-thumb {
1004
+ background-color: rgba(0,0,0,0.2);
1005
+ border-radius: 5px;
1006
+ border: 2px solid transparent;
1007
+ background-clip: padding-box;
1008
+ }
1009
+
1010
+ ::-webkit-scrollbar-thumb:hover {
1011
+ background-color: rgba(0,0,0,0.3);
1012
+ }
1013
+
1014
+
1015
+ .dark ::-webkit-scrollbar-track {
1016
+ background: rgba(255,255,255,0.05);
1017
+ }
1018
+
1019
+ .dark ::-webkit-scrollbar-thumb {
1020
+ background-color: rgba(255,255,255,0.2);
1021
+ }
1022
+
1023
+ .dark ::-webkit-scrollbar-thumb:hover {
1024
+ background-color: rgba(255,255,255,0.3);
1025
+ }
1026
+ ` };
1027
+ function renderDefaultScope(theme) {
1028
+ const vars = getScopeCssVars("neutral", theme);
1029
+ if (!vars) return "";
1030
+ return `${Object.entries(vars).map(([k, v]) => ` ${k}: ${v};`).join("\n")}\n`;
1031
+ }
1032
+ function renderFontCss(selector, font) {
1033
+ return `${selector} { font-size: ${font[0]}; ${Object.entries(font[1]).map((e) => `${e[0]}: ${e[1]};`).join(" ")} }\n`;
1034
+ }
1037
1035
  //#endregion
1038
1036
  //#region src/theme/rules/i8-rules.ts
1039
1037
  const i8Rules = [
@@ -1082,99 +1080,92 @@ const i8Rules = [
1082
1080
  };
1083
1081
  }]
1084
1082
  ];
1085
-
1086
- //#endregion
1087
- //#region src/theme/rules/spacing.ts
1088
- const spacingRules = [
1089
- [
1090
- /^text-m([bty])?-(.*)$/,
1091
- (match, { theme }) => {
1092
- const dir = match[1];
1093
- const size = match[2];
1094
- const d = dir ? {
1095
- y: ["top", "bottom"],
1096
- t: ["top"],
1097
- b: ["bottom"]
1098
- }[dir] : [
1099
- "top",
1100
- "bottom",
1101
- "left",
1102
- "right"
1103
- ];
1104
- const result = {};
1105
- if (theme.spacing[size]) {
1106
- for (const prop of d) result[`margin-${prop}`] = ["left", "right"].includes(prop) ? theme.spacing[size] : `calc(${theme.spacing[size]} + var(--font-${prop === "top" ? "tc" : "bc"}))`;
1107
- return result;
1108
- } else if (/^\d+(em|rem|px)?$/.test(size)) {
1109
- let s = size;
1110
- if (/^[\d.]+$/.test(size)) s = `${Number(size) * .25}rem`;
1111
- for (const prop of d) result[`margin-${prop}`] = ["left", "right"].includes(prop) ? s : `calc(${s} + var(--font-${prop === "top" ? "tc" : "bc"}))`;
1112
- return result;
1113
- }
1114
- },
1115
- { layer: "utilities" }
1116
- ],
1117
- [
1118
- /^card-dense$/,
1119
- (_match, { theme: _theme }) => ({ "--card-spacing": "var(--card-spacing-dense)" }),
1120
- { layer: "utilities" }
1121
- ],
1122
- [/^card-(.*)$/, (match, { theme }) => {
1123
- const name = match[1];
1124
- if (theme.fontSize[name]) {
1125
- const props = theme.fontSize[name][1];
1126
- return {
1127
- "--card-spacing": `${unitBy(props["--font-corrected"], theme.cardSpacingFactor.regular)}`,
1128
- "--card-spacing-dense": `${unitBy(props["--font-corrected"], theme.cardSpacingFactor.dense)}`,
1129
- "--card-heading-size": props["--font-size"],
1130
- "--card-heading-bold": props["--font-bold"],
1131
- "--card-heading-corrected": props["--font-corrected"],
1132
- "--card-heading-weight": props["font-weight"],
1133
- "--card-heading-lh": props["line-height"],
1134
- "--card-heading-ls": props["letter-spacing"],
1135
- "--card-heading-bc": props["--font-bc"],
1136
- "--card-heading-tc": props["--font-tc"],
1137
- "padding": "var(--card-spacing)"
1138
- };
1139
- }
1140
- }],
1141
- [/^fingertip-(.*)/, (match, { theme }) => {
1142
- const name = match[1];
1143
- if (name.startsWith("[") && name.endsWith("]")) return {
1144
- "--v-fingertip": name.slice(1, -1),
1145
- "--v-fingertip-half": unitBy(name.slice(1, -1), .5)
1146
- };
1147
- if ([
1148
- "xs",
1149
- "s",
1150
- "m",
1151
- "l",
1152
- "xl"
1153
- ].includes(name)) return {
1154
- "--v-fingertip": theme.spacing[`fingertip-${name}`],
1155
- "--v-fingertip-half": unitBy(theme.spacing[`fingertip-${name}`], .5)
1156
- };
1157
- if (theme.spacing[name]) return {
1158
- "--v-fingertip": theme.spacing[name],
1159
- "--v-fingertip-half": unitBy(theme.spacing[name], .5)
1160
- };
1161
- }]
1162
- ];
1163
-
1164
1083
  //#endregion
1165
1084
  //#region src/theme/rules/index.ts
1166
1085
  const rules = [
1167
- ...spacingRules,
1086
+ ...[
1087
+ [
1088
+ /^text-m([bty])?-(.*)$/,
1089
+ (match, { theme }) => {
1090
+ const dir = match[1];
1091
+ const size = match[2];
1092
+ const d = dir ? {
1093
+ y: ["top", "bottom"],
1094
+ t: ["top"],
1095
+ b: ["bottom"]
1096
+ }[dir] : [
1097
+ "top",
1098
+ "bottom",
1099
+ "left",
1100
+ "right"
1101
+ ];
1102
+ const result = {};
1103
+ if (theme.spacing[size]) {
1104
+ for (const prop of d) result[`margin-${prop}`] = ["left", "right"].includes(prop) ? theme.spacing[size] : `calc(${theme.spacing[size]} + var(--font-${prop === "top" ? "tc" : "bc"}))`;
1105
+ return result;
1106
+ } else if (/^\d+(em|rem|px)?$/.test(size)) {
1107
+ let s = size;
1108
+ if (/^[\d.]+$/.test(size)) s = `${Number(size) * .25}rem`;
1109
+ for (const prop of d) result[`margin-${prop}`] = ["left", "right"].includes(prop) ? s : `calc(${s} + var(--font-${prop === "top" ? "tc" : "bc"}))`;
1110
+ return result;
1111
+ }
1112
+ },
1113
+ { layer: "utilities" }
1114
+ ],
1115
+ [
1116
+ /^card-dense$/,
1117
+ (_match, { theme: _theme }) => ({ "--card-spacing": "var(--card-spacing-dense)" }),
1118
+ { layer: "utilities" }
1119
+ ],
1120
+ [/^card-(.*)$/, (match, { theme }) => {
1121
+ const name = match[1];
1122
+ if (theme.fontSize[name]) {
1123
+ const props = theme.fontSize[name][1];
1124
+ return {
1125
+ "--card-spacing": `${unitBy(props["--font-corrected"], theme.cardSpacingFactor.regular)}`,
1126
+ "--card-spacing-dense": `${unitBy(props["--font-corrected"], theme.cardSpacingFactor.dense)}`,
1127
+ "--card-heading-size": props["--font-size"],
1128
+ "--card-heading-bold": props["--font-bold"],
1129
+ "--card-heading-corrected": props["--font-corrected"],
1130
+ "--card-heading-weight": props["font-weight"],
1131
+ "--card-heading-lh": props["line-height"],
1132
+ "--card-heading-ls": props["letter-spacing"],
1133
+ "--card-heading-bc": props["--font-bc"],
1134
+ "--card-heading-tc": props["--font-tc"],
1135
+ "padding": "var(--card-spacing)"
1136
+ };
1137
+ }
1138
+ }],
1139
+ [/^fingertip-(.*)/, (match, { theme }) => {
1140
+ const name = match[1];
1141
+ if (name.startsWith("[") && name.endsWith("]")) return {
1142
+ "--v-fingertip": name.slice(1, -1),
1143
+ "--v-fingertip-half": unitBy(name.slice(1, -1), .5)
1144
+ };
1145
+ if ([
1146
+ "xs",
1147
+ "s",
1148
+ "m",
1149
+ "l",
1150
+ "xl"
1151
+ ].includes(name)) return {
1152
+ "--v-fingertip": theme.spacing[`fingertip-${name}`],
1153
+ "--v-fingertip-half": unitBy(theme.spacing[`fingertip-${name}`], .5)
1154
+ };
1155
+ if (theme.spacing[name]) return {
1156
+ "--v-fingertip": theme.spacing[name],
1157
+ "--v-fingertip-half": unitBy(theme.spacing[name], .5)
1158
+ };
1159
+ }]
1160
+ ],
1168
1161
  ...paletteRules,
1169
1162
  ...i8Rules
1170
1163
  ];
1171
-
1172
1164
  //#endregion
1173
1165
  //#region src/theme/types.ts
1174
1166
  function k$1(n, base = 1) {
1175
1167
  return base * 1.618 ** n;
1176
1168
  }
1177
-
1178
1169
  //#endregion
1179
1170
  //#region src/theme/typography.ts
1180
1171
  function font(weight, boldWeight, size, height, spacing) {
@@ -1227,7 +1218,6 @@ function buildFontTheme(size, w, wBold, lh, ls, actualFontHeightFactor = 1, actu
1227
1218
  }]
1228
1219
  };
1229
1220
  }
1230
-
1231
1221
  //#endregion
1232
1222
  //#region src/theme/theme.ts
1233
1223
  const themeFactory = (opts) => {
@@ -1319,7 +1309,6 @@ const themeFactory = (opts) => {
1319
1309
  }
1320
1310
  };
1321
1311
  };
1322
-
1323
1312
  //#endregion
1324
1313
  //#region src/theme/generated/component-classes.ts
1325
1314
  const componentClasses = {
@@ -1702,19 +1691,25 @@ const componentClasses = {
1702
1691
  ],
1703
1692
  DelayedSwitch: ["visible"],
1704
1693
  DevTools: [
1694
+ "[&>.checkbox]:hover:bg-neutral-100",
1705
1695
  "absolute",
1706
1696
  "b",
1707
1697
  "bg-transparent",
1708
- "blur",
1709
1698
  "border",
1699
+ "border-0",
1710
1700
  "border-b",
1701
+ "border-grey-500/30",
1711
1702
  "border-grey-500/50",
1712
- "bottom-0",
1713
1703
  "btn",
1714
1704
  "btn-icon",
1715
1705
  "btn-label",
1716
1706
  "c8-flat",
1717
1707
  "card",
1708
+ "checkbox",
1709
+ "checkbox-icon",
1710
+ "checkbox-indicator",
1711
+ "checkbox-label",
1712
+ "checkbox-root",
1718
1713
  "current-outline-primary-700",
1719
1714
  "cursor-grab",
1720
1715
  "cursor-grabbing",
@@ -1725,12 +1720,15 @@ const componentClasses = {
1725
1720
  "flex",
1726
1721
  "flex-col",
1727
1722
  "flex-grow",
1723
+ "flex-row-reverse",
1728
1724
  "fw-$bold",
1729
1725
  "gap-$xs",
1730
1726
  "grid",
1727
+ "grid-cols-1",
1728
+ "grid-cols-2",
1731
1729
  "grow",
1732
1730
  "h-[3em]",
1733
- "h-[40em]",
1731
+ "h-[44em]",
1734
1732
  "h1",
1735
1733
  "h2",
1736
1734
  "h3",
@@ -1738,29 +1736,10 @@ const componentClasses = {
1738
1736
  "h5",
1739
1737
  "h6",
1740
1738
  "hover:opacity-100",
1741
- "i8",
1742
- "i8-after",
1743
- "i8-append",
1744
- "i8-before",
1745
- "i8-counter",
1746
- "i8-hint",
1747
- "i8-hint-wrapper",
1748
- "i8-hint-wrapper-stack",
1749
- "i8-icon-clickable",
1750
- "i8-icon-wrap",
1751
- "i8-input",
1752
- "i8-input-wrapper",
1753
- "i8-label",
1754
- "i8-label-wrapper",
1755
- "i8-loading",
1756
- "i8-prepend",
1757
- "i8-stack-label",
1758
- "i8-ta-wrapper",
1759
- "i8-textarea",
1760
- "i8-underline",
1761
1739
  "icon-color",
1762
1740
  "icon-size",
1763
1741
  "items-center",
1742
+ "items-start",
1764
1743
  "justify-between",
1765
1744
  "justify-center",
1766
1745
  "layer-0",
@@ -1771,7 +1750,7 @@ const componentClasses = {
1771
1750
  "max-h-screen",
1772
1751
  "max-w-100%",
1773
1752
  "max-w-screen",
1774
- "mb-$l",
1753
+ "mb-$xs",
1775
1754
  "opacity-0",
1776
1755
  "opacity-50",
1777
1756
  "outline-[2px]",
@@ -1782,18 +1761,17 @@ const componentClasses = {
1782
1761
  "overflow-hidden",
1783
1762
  "p-$card-spacing",
1784
1763
  "p-0",
1764
+ "pb-$xs",
1765
+ "pl-$m",
1785
1766
  "pointer-events-none",
1786
1767
  "pt-$l",
1787
- "px",
1768
+ "px-$xs",
1769
+ "py-1",
1788
1770
  "relative",
1789
- "resize",
1790
- "right-0",
1791
1771
  "rounded",
1792
1772
  "rounded-full",
1793
1773
  "scale-100",
1794
1774
  "scale-20",
1795
- "scope-error",
1796
- "segmented",
1797
1775
  "select-none",
1798
1776
  "shadow-[0_0_5px_2px_rgb(var(--scope-color-500))]",
1799
1777
  "shadow-md",
@@ -1809,23 +1787,25 @@ const componentClasses = {
1809
1787
  "text-11px",
1810
1788
  "text-16px",
1811
1789
  "text-body",
1790
+ "text-caption",
1812
1791
  "text-card-header",
1813
1792
  "text-ellipsis",
1814
1793
  "text-error-500",
1815
1794
  "text-grey-400",
1816
1795
  "text-label",
1817
1796
  "text-mb-0",
1797
+ "text-mt-$s",
1818
1798
  "text-mt-0",
1819
- "text-primary-700",
1799
+ "text-right",
1820
1800
  "top-0",
1821
1801
  "transform",
1822
1802
  "transform-origin-tl",
1823
1803
  "transition-all-200",
1824
1804
  "transition-opacity-200",
1825
- "w-12em",
1826
- "w-[30em]",
1805
+ "truncate",
1806
+ "w-6em",
1807
+ "w-[34em]",
1827
1808
  "w-[3em]",
1828
- "w-full",
1829
1809
  "whitespace-nowrap"
1830
1810
  ],
1831
1811
  Dialog: [
@@ -2188,7 +2168,6 @@ function getComponentClasses(...components) {
2188
2168
  }
2189
2169
  return [...set];
2190
2170
  }
2191
-
2192
2171
  //#endregion
2193
2172
  //#region src/theme/preset-vunor.ts
2194
2173
  function createVunorExtractor() {
@@ -2324,7 +2303,6 @@ function getFixedWind() {
2324
2303
  });
2325
2304
  return wind;
2326
2305
  }
2327
-
2328
2306
  //#endregion
2329
2307
  //#region src/theme.ts
2330
2308
  /**
@@ -2351,6 +2329,5 @@ function vunorShortcuts(customShortcuts, baseShortcuts = mergedVunorShortcuts) {
2351
2329
  for (const [key, val] of Object.entries(merged)) merged[key] = typeof val === "string" ? val : toUnoShortcut(val);
2352
2330
  return merged;
2353
2331
  }
2354
-
2355
2332
  //#endregion
2356
- export { componentClasses, defineShortcuts, getComponentClasses, mergeVunorShortcuts, mergedVunorShortcuts, presetVunor, rawVunorShortcuts, toUnoShortcut, vunorShortcuts };
2333
+ export { componentClasses, defineShortcuts, getComponentClasses, mergeVunorShortcuts, mergedVunorShortcuts, presetVunor, rawVunorShortcuts, toUnoShortcut, vunorShortcuts };