vunor 0.1.6 → 0.2.1

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.
package/README.md CHANGED
@@ -39,15 +39,15 @@ All values are emitted as CSS custom properties, ready for use in any CSS-based
39
39
 
40
40
  ### Semantic Colors
41
41
 
42
- | Name | Default | Purpose |
43
- |------|---------|---------|
44
- | `primary` | `#004eaf` | Main brand color |
45
- | `secondary` | `#edd812` | Accent / highlight |
46
- | `good` | `#7bc76a` | Success / positive |
47
- | `warn` | `#ef9421` | Warning |
48
- | `error` | `#bf5a5f` | Error / negative |
49
- | `grey` | `#858892` | Neutral greys |
50
- | `neutral` | `#5da0c5` | Alternative neutral |
42
+ | Name | Default | Purpose |
43
+ | ----------- | --------- | ------------------- |
44
+ | `primary` | `#004eaf` | Main brand color |
45
+ | `secondary` | `#edd812` | Accent / highlight |
46
+ | `good` | `#7bc76a` | Success / positive |
47
+ | `warn` | `#ef9421` | Warning |
48
+ | `error` | `#bf5a5f` | Error / negative |
49
+ | `grey` | `#858892` | Neutral greys |
50
+ | `neutral` | `#5da0c5` | Alternative neutral |
51
51
 
52
52
  ### Per-Color Fine-Tuning
53
53
 
@@ -98,18 +98,18 @@ All dimensions in Vunor derive from the golden ratio (`k = 1.618`).
98
98
 
99
99
  Font sizes, line heights, and letter spacing are computed from powers of `k`:
100
100
 
101
- | Name | Size | Weight | Bold | Line Height |
102
- |------|------|--------|------|-------------|
103
- | `h1` | k^3.5 | 400 | 700 | k^0.5 |
104
- | `h2` | k^2.5 | 400 | 700 | k^0.5 |
105
- | `h3` | k^2 | 400 | 700 | k^0.5 |
106
- | `h4` | k^1 | 400 | 600 | k^0.5 |
107
- | `h5` | k^0.5 | 400 | 600 | k^0.5 |
108
- | `h6` | k^0.25 | 600 | 700 | k^0.5 |
109
- | `body` | 1 | 400 | 600 | k^0.75 |
110
- | `body-s` | k^-0.5 | 400 | 600 | k^1 |
111
- | `label` | k^-0.25 | 500 | 700 | k^0.5 |
112
- | `caption` | k^-0.5 | 400 | 600 | k^0.5 |
101
+ | Name | Size | Weight | Bold | Line Height |
102
+ | --------- | ------- | ------ | ---- | ----------- |
103
+ | `h1` | k^3.5 | 400 | 700 | k^0.5 |
104
+ | `h2` | k^2.5 | 400 | 700 | k^0.5 |
105
+ | `h3` | k^2 | 400 | 700 | k^0.5 |
106
+ | `h4` | k^1 | 400 | 600 | k^0.5 |
107
+ | `h5` | k^0.5 | 400 | 600 | k^0.5 |
108
+ | `h6` | k^0.25 | 600 | 700 | k^0.5 |
109
+ | `body` | 1 | 400 | 600 | k^0.75 |
110
+ | `body-s` | k^-0.5 | 400 | 600 | k^1 |
111
+ | `label` | k^-0.25 | 500 | 700 | k^0.5 |
112
+ | `caption` | k^-0.5 | 400 | 600 | k^0.5 |
113
113
 
114
114
  Applied as UnoCSS utilities: `text-h1`, `text-body`, `text-label`, etc. Each sets `--font-size`, `--font-bold`, `--font-corrected` (actual rendered glyph height), line-height, letter-spacing, and top/bottom trim correction CSS vars.
115
115
 
@@ -127,15 +127,15 @@ typography: {
127
127
 
128
128
  Spacing tokens follow the same golden-ratio progression:
129
129
 
130
- | Token | Scale | ~Value |
131
- |-------|-------|--------|
130
+ | Token | Scale | ~Value |
131
+ | ------ | ----- | ------ |
132
132
  | `$xxs` | 1/k^3 | 0.24em |
133
- | `$xs` | 1/k^2 | 0.38em |
134
- | `$s` | 1/k | 0.62em |
135
- | `$m` | 1 | 1em |
136
- | `$l` | k | 1.62em |
137
- | `$xl` | k^2 | 2.62em |
138
- | `$xxl` | k^3 | 4.24em |
133
+ | `$xs` | 1/k^2 | 0.38em |
134
+ | `$s` | 1/k | 0.62em |
135
+ | `$m` | 1 | 1em |
136
+ | `$l` | k | 1.62em |
137
+ | `$xl` | k^2 | 2.62em |
138
+ | `$xxl` | k^3 | 4.24em |
139
139
 
140
140
  Used as `p-$m`, `m-$l`, `gap-$s`, etc. Text-aware margin utilities (`text-mt-$m`, `text-mb-$s`) compensate for line-height to maintain optically correct spacing.
141
141
 
@@ -160,11 +160,11 @@ import { defineShortcuts } from 'vunor/theme'
160
160
 
161
161
  const shortcuts = defineShortcuts({
162
162
  // 'btn' is the shortcut name (used as a CSS class)
163
- 'btn': {
164
- '': 'h-fingertip flex items-center', // base classes (no prefix)
165
- 'hover:': 'bg-current/05', // → "hover:bg-current/05"
166
- 'dark:': 'text-white', // → "dark:text-white"
167
- '[&.btn-round]:': 'rounded-full', // → "[&.btn-round]:rounded-full"
163
+ btn: {
164
+ '': 'h-fingertip flex items-center', // base classes (no prefix)
165
+ 'hover:': 'bg-current/05', // → "hover:bg-current/05"
166
+ 'dark:': 'text-white', // → "dark:text-white"
167
+ '[&.btn-round]:': 'rounded-full', // → "[&.btn-round]:rounded-full"
168
168
  },
169
169
  })
170
170
  ```
@@ -206,10 +206,10 @@ import { vunorShortcuts, defineShortcuts } from 'vunor/theme'
206
206
 
207
207
  const myOverrides = defineShortcuts({
208
208
  'c8-filled': {
209
- '': 'rounded-full', // only overrides base classes
209
+ '': 'rounded-full', // only overrides base classes
210
210
  },
211
211
  'i8-flat': {
212
- '': 'border-b-2', // only overrides base classes
212
+ '': 'border-b-2', // only overrides base classes
213
213
  },
214
214
  })
215
215
 
@@ -262,9 +262,7 @@ Surfaces apply specific palette stops as background + text + icon:
262
262
  Fine-grained color control via CSS custom properties:
263
263
 
264
264
  ```html
265
- <div class="current-bg-primary-500 bg-current text-current">
266
- Colored via CSS vars
267
- </div>
265
+ <div class="current-bg-primary-500 bg-current text-current">Colored via CSS vars</div>
268
266
  ```
269
267
 
270
268
  - `scope-{color}` sets `--scope-color-*` vars for a palette
@@ -275,12 +273,12 @@ Fine-grained color control via CSS custom properties:
275
273
 
276
274
  Button and clickable element design variants:
277
275
 
278
- | Class | Description |
279
- |-------|-------------|
280
- | `c8-filled` | Solid background, white text |
281
- | `c8-flat` | Transparent background, colored text |
276
+ | Class | Description |
277
+ | ------------- | --------------------------------------- |
278
+ | `c8-filled` | Solid background, white text |
279
+ | `c8-flat` | Transparent background, colored text |
282
280
  | `c8-outlined` | Border + colored text, transparent fill |
283
- | `c8-light` | Light tinted background, colored text |
281
+ | `c8-light` | Light tinted background, colored text |
284
282
 
285
283
  Each includes hover, active, focus, and disabled states. Apply on any element alongside `scope-{color}`:
286
284
 
@@ -293,11 +291,11 @@ Each includes hover, active, focus, and disabled states. Apply on any element al
293
291
 
294
292
  Input field design variants:
295
293
 
296
- | Class | Description |
297
- |-------|-------------|
298
- | `i8-flat` | Bottom border only (minimal) |
299
- | `i8-filled` | Full border with background |
300
- | `i8-round` | Pill-shaped (fully rounded) |
294
+ | Class | Description |
295
+ | ----------- | ---------------------------- |
296
+ | `i8-flat` | Bottom border only (minimal) |
297
+ | `i8-filled` | Full border with background |
298
+ | `i8-round` | Pill-shaped (fully rounded) |
301
299
 
302
300
  Common sub-shortcuts: `i8-input`, `i8-label` (floating label), `i8-hint`, `i8-prepend` / `i8-append`, `i8-before` / `i8-after`.
303
301
 
@@ -333,7 +331,7 @@ export default defineConfig({
333
331
  spacingFactor: 1.618,
334
332
 
335
333
  // -- Global border radius --
336
- baseRadius: '0.5em', // default: 0.618em (1/golden-ratio)
334
+ baseRadius: '0.5em', // default: 0.618em (1/golden-ratio)
337
335
 
338
336
  // -- Typography overrides --
339
337
  typography: {
@@ -448,54 +446,54 @@ The components are consumers of the theme system described above -- they use `c8
448
446
 
449
447
  ### Layout
450
448
 
451
- | Component | Description |
452
- |-----------|-------------|
453
- | `VuAppLayout` | App shell with header, sidebar, footer slots |
454
- | `VuCard` | Card container with typography-driven spacing |
455
- | `VuCardHeader` | Card header with title and actions |
456
- | `VuCardInner` | Nested card section |
457
- | `VuTabs` | Tabbed content panels |
458
- | `VuDialog` | Modal dialog with overlay |
459
- | `VuPopover` | Floating popover anchored to a trigger |
449
+ | Component | Description |
450
+ | -------------- | --------------------------------------------- |
451
+ | `VuAppLayout` | App shell with header, sidebar, footer slots |
452
+ | `VuCard` | Card container with typography-driven spacing |
453
+ | `VuCardHeader` | Card header with title and actions |
454
+ | `VuCardInner` | Nested card section |
455
+ | `VuTabs` | Tabbed content panels |
456
+ | `VuDialog` | Modal dialog with overlay |
457
+ | `VuPopover` | Floating popover anchored to a trigger |
460
458
 
461
459
  ### Form Inputs
462
460
 
463
- | Component | Description |
464
- |-----------|-------------|
465
- | `VuInput` | Text / textarea input with floating label |
466
- | `VuSelect` | Dropdown select |
467
- | `VuCombobox` | Searchable dropdown with filtering |
468
- | `VuCheckbox` | Checkbox with indeterminate state |
469
- | `VuRadioGroup` | Radio button group |
470
- | `VuSlider` | Range slider |
471
- | `VuDatePicker` | Date picker with calendar popup |
472
- | `VuLabel` | Form label |
461
+ | Component | Description |
462
+ | -------------- | ----------------------------------------- |
463
+ | `VuInput` | Text / textarea input with floating label |
464
+ | `VuSelect` | Dropdown select |
465
+ | `VuCombobox` | Searchable dropdown with filtering |
466
+ | `VuCheckbox` | Checkbox with indeterminate state |
467
+ | `VuRadioGroup` | Radio button group |
468
+ | `VuSlider` | Range slider |
469
+ | `VuDatePicker` | Date picker with calendar popup |
470
+ | `VuLabel` | Form label |
473
471
 
474
472
  ### Actions
475
473
 
476
- | Component | Description |
477
- |-----------|-------------|
478
- | `VuButton` | Button with icon, loading, and link support |
479
- | `VuMenu` | Navigation / command menu |
480
- | `VuMenuItem` | Menu item |
481
- | `VuPagination` | Page navigation |
474
+ | Component | Description |
475
+ | -------------- | ------------------------------------------- |
476
+ | `VuButton` | Button with icon, loading, and link support |
477
+ | `VuMenu` | Navigation / command menu |
478
+ | `VuMenuItem` | Menu item |
479
+ | `VuPagination` | Page navigation |
482
480
 
483
481
  ### Feedback
484
482
 
485
- | Component | Description |
486
- |-----------|-------------|
487
- | `VuAppToasts` | Toast notification container |
488
- | `VuProgressBar` | Progress bar |
489
- | `VuLoadingIndicator` | Circular loading spinner |
490
- | `VuInnerLoading` | Overlay loading within a container |
483
+ | Component | Description |
484
+ | -------------------- | ---------------------------------- |
485
+ | `VuAppToasts` | Toast notification container |
486
+ | `VuProgressBar` | Progress bar |
487
+ | `VuLoadingIndicator` | Circular loading spinner |
488
+ | `VuInnerLoading` | Overlay loading within a container |
491
489
 
492
490
  ### Utility
493
491
 
494
- | Component | Description |
495
- |-----------|-------------|
496
- | `VuIcon` | Icon display (integrates with UnoCSS icons) |
497
- | `VuOverflowContainer` | Handles content overflow |
498
- | `VuCalendar` | Standalone calendar grid |
492
+ | Component | Description |
493
+ | --------------------- | ------------------------------------------- |
494
+ | `VuIcon` | Icon display (integrates with UnoCSS icons) |
495
+ | `VuOverflowContainer` | Handles content overflow |
496
+ | `VuCalendar` | Standalone calendar grid |
499
497
 
500
498
  ## Package Exports
501
499
 
@@ -4,7 +4,7 @@ type __VLS_Props = ToastProviderProps & {
4
4
  class?: TVueCssClass;
5
5
  };
6
6
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
7
- swipeDirection: "left" | "right" | "down" | "up";
7
+ swipeDirection: "left" | "right" | "up" | "down";
8
8
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
9
  declare const _default: typeof __VLS_export;
10
10
  export default _default;
@@ -16,8 +16,8 @@ type __VLS_Slots = {} & {
16
16
  'icon-right'?: (props: typeof __VLS_22) => any;
17
17
  };
18
18
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
19
- iconSide: "left" | "right";
20
19
  as: string;
20
+ iconSide: "left" | "right";
21
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
23
23
  declare const _default: typeof __VLS_export;
@@ -1,7 +1,7 @@
1
1
  import { createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
2
2
  import { Primitive } from "reka-ui";
3
- import VuLoadingIndicator from "vunor/LoadingIndicator";
4
3
  import VuIcon from "vunor/Icon";
4
+ import VuLoadingIndicator from "vunor/LoadingIndicator";
5
5
  //#region src/components/Button/ButtonBase.vue?vue&type=script&setup=true&lang.ts
6
6
  const _hoisted_1 = {
7
7
  key: 0,
@@ -21,14 +21,14 @@ var CardHeader_default = /* @__PURE__ */ defineComponent({
21
21
  },
22
22
  setup(__props) {
23
23
  const props = __props;
24
- const _as = computed(() => props.as || [
24
+ const _as = computed(() => props.as || ([
25
25
  "h1",
26
26
  "h2",
27
27
  "h3",
28
28
  "h4",
29
29
  "h5",
30
30
  "h6"
31
- ].includes(props.level || "") ? props.level : "h6");
31
+ ].includes(props.level || "") ? props.level : "h6"));
32
32
  useCardPI().inject();
33
33
  return (_ctx, _cache) => {
34
34
  return openBlock(), createBlock(unref(Primitive), {
@@ -1,32 +1,3 @@
1
- interface TComboboxItem {
2
- icon?: string;
3
- search?: string;
4
- value: string | null | undefined;
5
- label?: string;
6
- disabled?: boolean;
7
- }
8
- type TComboboxItems<T extends TComboboxItem = TComboboxItem> = Array<T | string> | Record<string, Array<T | string>>;
9
- interface TComboboxProps<T extends TComboboxItem> {
10
- disabledValues?: Array<string | null | undefined>;
11
- defaultValue?: string | null | undefined;
12
- popupClass?: string | Record<string, boolean>;
13
- popupRound?: boolean;
14
- valueClass?: string | Record<string, boolean>;
15
- iconClass?: string | Record<string, boolean>;
16
- class?: string | Record<string, boolean>;
17
- items: TComboboxItems<T>;
18
- disabled?: boolean;
19
- placeholder?: string;
20
- popupPosition?: 'inline' | 'popper';
21
- side?: 'top' | 'right' | 'bottom' | 'left';
22
- sideOffset?: number;
23
- sticky?: 'partial' | 'always';
24
- updatePositionStrategy?: 'always' | 'optimized';
25
- bodyLock?: boolean;
26
- multiple?: boolean;
27
- checkboxItems?: boolean;
28
- dropdownIcon?: string;
29
- }
30
1
  import type { ComputedRef } from 'vue';
31
2
  declare function useHtmlInputAttrs(): ComputedRef<TInputAttrs> | undefined;
32
3
  declare function useInputProps(): ComputedRef<TInputProps> | undefined;
@@ -85,6 +56,35 @@ interface TInputBaseEmits {
85
56
  interface TInputEmits extends TInputBaseEmits {
86
57
  (e: 'beforeClick' | 'afterClick' | 'click', event: MouseEvent): void;
87
58
  }
59
+ interface TComboboxItem {
60
+ icon?: string;
61
+ search?: string;
62
+ value: string | null | undefined;
63
+ label?: string;
64
+ disabled?: boolean;
65
+ }
66
+ type TComboboxItems<T extends TComboboxItem = TComboboxItem> = Array<T | string> | Record<string, Array<T | string>>;
67
+ interface TComboboxProps<T extends TComboboxItem> {
68
+ disabledValues?: Array<string | null | undefined>;
69
+ defaultValue?: string | null | undefined;
70
+ popupClass?: string | Record<string, boolean>;
71
+ popupRound?: boolean;
72
+ valueClass?: string | Record<string, boolean>;
73
+ iconClass?: string | Record<string, boolean>;
74
+ class?: string | Record<string, boolean>;
75
+ items: TComboboxItems<T>;
76
+ disabled?: boolean;
77
+ placeholder?: string;
78
+ popupPosition?: 'inline' | 'popper';
79
+ side?: 'top' | 'right' | 'bottom' | 'left';
80
+ sideOffset?: number;
81
+ sticky?: 'partial' | 'always';
82
+ updatePositionStrategy?: 'always' | 'optimized';
83
+ bodyLock?: boolean;
84
+ multiple?: boolean;
85
+ checkboxItems?: boolean;
86
+ dropdownIcon?: string;
87
+ }
88
88
 
89
89
 
90
90
  declare const __VLS_export: <T extends TComboboxItem = TComboboxItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
@@ -96,7 +96,6 @@ declare const __VLS_export: <T extends TComboboxItem = TComboboxItem>(__VLS_prop
96
96
  modelValue?: string | string[];
97
97
  searchTerm?: string;
98
98
  }) & {
99
- onEnter?: ((event: KeyboardEvent) => any) | undefined;
100
99
  onPrependClick?: ((event: MouseEvent) => any) | undefined;
101
100
  onAppendClick?: ((event: MouseEvent) => any) | undefined;
102
101
  onBlur?: ((event: FocusEvent) => any) | undefined;
@@ -104,8 +103,9 @@ declare const __VLS_export: <T extends TComboboxItem = TComboboxItem>(__VLS_prop
104
103
  onBeforeClick?: ((event: MouseEvent) => any) | undefined;
105
104
  onAfterClick?: ((event: MouseEvent) => any) | undefined;
106
105
  onClick?: ((event: MouseEvent) => any) | undefined;
107
- "onUpdate:modelValue"?: ((value: string | string[] | undefined) => any) | undefined;
106
+ onEnter?: ((event: KeyboardEvent) => any) | undefined;
108
107
  "onUpdate:open"?: ((value: boolean | undefined) => any) | undefined;
108
+ "onUpdate:modelValue"?: ((value: string | string[] | undefined) => any) | undefined;
109
109
  "onUpdate:searchTerm"?: ((value: string | undefined) => any) | undefined;
110
110
  }> & (typeof globalThis extends {
111
111
  __VLS_PROPS_FALLBACK: infer P;
@@ -155,7 +155,7 @@ declare const __VLS_export: <T extends TComboboxItem = TComboboxItem>(__VLS_prop
155
155
  } & {
156
156
  after?: (props: {}) => any;
157
157
  };
158
- emit: (TInputEmits & ((e: "enter", event: KeyboardEvent) => void)) & (((event: "update:modelValue", value: string | string[] | undefined) => void) & ((event: "update:open", value: boolean | undefined) => void) & ((event: "update:searchTerm", value: string | undefined) => void));
158
+ emit: (TInputEmits & ((e: "enter", event: KeyboardEvent) => void)) & (((event: "update:open", value: boolean | undefined) => void) & ((event: "update:modelValue", value: string | string[] | undefined) => void) & ((event: "update:searchTerm", value: string | undefined) => void));
159
159
  }>) => import("vue").VNode & {
160
160
  __ctx?: Awaited<typeof __VLS_setup>;
161
161
  };
package/dist/Combobox.mjs CHANGED
@@ -4,8 +4,8 @@ import { useInputBaseProps, useInputProps } from "vunor";
4
4
  import VuIcon from "vunor/Icon";
5
5
  import { createReusableTemplate } from "@vueuse/core";
6
6
  import VuCheckbox from "vunor/Checkbox";
7
- import VuInputBase from "vunor/InputBase";
8
7
  import VuInput from "vunor/Input";
8
+ import VuInputBase from "vunor/InputBase";
9
9
  //#region src/components/Combobox/Combobox.vue?vue&type=script&setup=true&lang.ts
10
10
  const _hoisted_1 = ["onFocus", "onBlur"];
11
11
  const _hoisted_2 = {
@@ -56,9 +56,9 @@ interface TInputBaseEmits {
56
56
  interface TInputEmits extends TInputBaseEmits {
57
57
  (e: 'beforeClick' | 'afterClick' | 'click', event: MouseEvent): void;
58
58
  }
59
- import type { DatePickerRootProps } from 'reka-ui';
60
59
 
61
60
  import type { DateValue } from '@internationalized/date';
61
+ import type { DatePickerRootProps } from 'reka-ui';
62
62
  import type { TVueCssClass } from 'vunor/utils';
63
63
  type __VLS_Props = DatePickerRootProps & {
64
64
  popupRounded?: boolean;
@@ -71,11 +71,11 @@ type __VLS_ModelProps = {
71
71
  };
72
72
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
73
73
  declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
74
- "update:modelValue": (value: DateValue | undefined) => any;
75
74
  "update:open": (value: boolean | undefined) => any;
75
+ "update:modelValue": (value: DateValue | undefined) => any;
76
76
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
77
- "onUpdate:modelValue"?: ((value: DateValue | undefined) => any) | undefined;
78
77
  "onUpdate:open"?: ((value: boolean | undefined) => any) | undefined;
78
+ "onUpdate:modelValue"?: ((value: DateValue | undefined) => any) | undefined;
79
79
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
80
80
  declare const _default: typeof __VLS_export;
81
81
  export default _default;
@@ -78,13 +78,13 @@ type __VLS_Slots = {} & {
78
78
  append?: (props: typeof __VLS_30) => any;
79
79
  };
80
80
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
81
- "update:modelValue": (value: DateValue | undefined) => any;
82
81
  "update:open": (value: boolean | undefined) => any;
82
+ "update:modelValue": (value: DateValue | undefined) => any;
83
83
  } & {
84
84
  "keydown-enter": () => any;
85
85
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
86
- "onUpdate:modelValue"?: ((value: DateValue | undefined) => any) | undefined;
87
86
  "onUpdate:open"?: ((value: boolean | undefined) => any) | undefined;
87
+ "onUpdate:modelValue"?: ((value: DateValue | undefined) => any) | undefined;
88
88
  "onKeydown-enter"?: (() => any) | undefined;
89
89
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
90
90
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -2,8 +2,8 @@ import { t as useInputProps } from "./utils-6bTTIoaw.js";
2
2
  import { computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeProps, openBlock, ref, renderSlot, resolveComponent, unref, useModel, watch, withCtx, withKeys } from "vue";
3
3
  import { DatePickerRoot, DatePickerTrigger } from "reka-ui";
4
4
  import VuIcon from "vunor/Icon";
5
- import VuDatePickerPopup from "vunor/DatePickerPopup";
6
5
  import VuDatePickerInner from "vunor/DatePickerInner";
6
+ import VuDatePickerPopup from "vunor/DatePickerPopup";
7
7
  //#region src/components/DatePicker/DatePickerBase.vue?vue&type=script&setup=true&lang.ts
8
8
  const _hoisted_1 = ["onClick"];
9
9
  //#endregion
package/dist/DevTools.mjs CHANGED
@@ -2,12 +2,12 @@ import { Fragment, createCommentVNode, createElementBlock, createElementVNode, c
2
2
  import VuButton$1 from "vunor/Button";
3
3
  import VuCard$1 from "vunor/Card";
4
4
  import VuCheckbox from "vunor/Checkbox";
5
+ import { color, palitra } from "@prostojs/palitra";
6
+ import defu from "defu";
5
7
  import VuCardHeader$1 from "vunor/CardHeader";
6
8
  import VuCardInner from "vunor/CardInner";
7
9
  import VuSlider from "vunor/Slider";
8
10
  import VuTabs from "vunor/Tabs";
9
- import { color, palitra } from "@prostojs/palitra";
10
- import defu from "defu";
11
11
  //#region src/theme/palitra.ts
12
12
  const defaultOpts = {
13
13
  colors: {
@@ -296,6 +296,34 @@ function multiplySaturation(colors, m = .5) {
296
296
  return newObj;
297
297
  }
298
298
  //#endregion
299
+ //#region src/theme/rules/palette.ts
300
+ function colorToRgbWithOpacity(c) {
301
+ const [r, g, b, _a] = color(c).rgba();
302
+ return `${r} ${g} ${b}`;
303
+ }
304
+ const CURRENT_SLOTS = [
305
+ "text-muted",
306
+ "icon-muted",
307
+ "text-hover",
308
+ "bg-hover",
309
+ "border-hover",
310
+ "text",
311
+ "bg",
312
+ "icon",
313
+ "border",
314
+ "outline",
315
+ "caret",
316
+ "hl"
317
+ ];
318
+ const slotAlt = CURRENT_SLOTS.join("|");
319
+ const sourceAlt = [
320
+ ...CURRENT_SLOTS,
321
+ "muted",
322
+ "hover"
323
+ ].map((s) => `-${s}`).join("|");
324
+ new RegExp(`^current-(${slotAlt})-(.+)$`);
325
+ new RegExp(`^(text|bg|icon|border|outline|caret|fill|shadow|ring)-current(${sourceAlt})?(\\/\\d{1,3})?$`);
326
+ //#endregion
299
327
  //#region src/components/DevTools/DevTools.vue?vue&type=script&setup=true&lang.ts
300
328
  const _hoisted_1 = { key: 0 };
301
329
  const _hoisted_2 = { class: "flex items-center gap-$xs mb-$xs" };
@@ -331,10 +359,6 @@ var DevTools_default = /* @__PURE__ */ defineComponent({
331
359
  }),
332
360
  emits: ["update:open"],
333
361
  setup(__props) {
334
- function colorToRgbWithOpacity(c) {
335
- const [r, g, b] = color(c).rgba();
336
- return `${r} ${g} ${b}`;
337
- }
338
362
  function debounce(func, wait) {
339
363
  let timeoutId;
340
364
  return (...args) => {
package/dist/Input.d.mts CHANGED
@@ -77,11 +77,11 @@ declare var __VLS_1: {}, __VLS_14: {
77
77
  onBlur?: (event: FocusEvent) => void;
78
78
  onFocus?: (event: FocusEvent) => void;
79
79
  type?: string | undefined;
80
- disabled?: boolean | undefined;
81
80
  placeholder?: string | undefined;
82
81
  rows?: number | undefined;
83
82
  required?: boolean | undefined;
84
83
  maxlength?: number | undefined;
84
+ disabled?: boolean | undefined;
85
85
  readonly?: boolean | undefined;
86
86
  autocomplete?: string | undefined;
87
87
  }, __VLS_23: {}, __VLS_26: {
@@ -1,8 +1,8 @@
1
1
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeModels, mergeProps, normalizeClass, openBlock, ref, renderSlot, toDisplayString, unref, useModel, vModelDynamic, vModelText, withCtx, withDirectives } from "vue";
2
2
  import { Primitive } from "reka-ui";
3
3
  import { useHtmlInputAttrs, useInputDataAttrs, useInputPi } from "vunor";
4
- import VuLoadingIndicator from "vunor/LoadingIndicator";
5
4
  import VuIcon from "vunor/Icon";
5
+ import VuLoadingIndicator from "vunor/LoadingIndicator";
6
6
  //#region src/components/Input/InputBase.vue?vue&type=script&setup=true&lang.ts
7
7
  const _hoisted_1 = {
8
8
  key: 0,
@@ -52,7 +52,7 @@ var Pagination_default = /* @__PURE__ */ defineComponent({
52
52
  default: withCtx(({ items }) => [
53
53
  !__props.showEdges && __props.showArrows ? (openBlock(), createBlock(unref(PaginationFirst), {
54
54
  key: 0,
55
- class: "size-fingertip flex items-center justify-center btn btn-square c8-flat disabled:opacity-30"
55
+ class: "btn btn-square c8-flat disabled-soft"
56
56
  }, {
57
57
  default: withCtx(() => [createVNode(VuIcon, {
58
58
  name: "i--chevron-left-2",
@@ -62,7 +62,7 @@ var Pagination_default = /* @__PURE__ */ defineComponent({
62
62
  })) : createCommentVNode("v-if", true),
63
63
  __props.showArrows ? (openBlock(), createBlock(unref(PaginationPrev), {
64
64
  key: 1,
65
- class: "size-fingertip flex items-center justify-center mr-4 btn btn-square c8-flat disabled:opacity-30"
65
+ class: "btn btn-square c8-flat disabled-soft mr-4"
66
66
  }, {
67
67
  default: withCtx(() => [createVNode(VuIcon, {
68
68
  name: "i--chevron-left",
@@ -73,7 +73,7 @@ var Pagination_default = /* @__PURE__ */ defineComponent({
73
73
  (openBlock(true), createElementBlock(Fragment, null, renderList(items, (page, index) => {
74
74
  return openBlock(), createElementBlock(Fragment, null, [page.type === "page" ? (openBlock(), createBlock(unref(PaginationListItem), {
75
75
  key: index,
76
- class: "size-fingertip btn btn-square c8-flat",
76
+ class: "btn btn-square c8-flat",
77
77
  value: page.value
78
78
  }, {
79
79
  default: withCtx(() => [createTextVNode(toDisplayString(page.value), 1)]),
@@ -89,7 +89,7 @@ var Pagination_default = /* @__PURE__ */ defineComponent({
89
89
  }), 256)),
90
90
  __props.showArrows ? (openBlock(), createBlock(unref(PaginationNext), {
91
91
  key: 2,
92
- class: "size-fingertip flex items-center justify-center ml-4 btn btn-square c8-flat disabled:opacity-30"
92
+ class: "btn btn-square c8-flat disabled-soft ml-4"
93
93
  }, {
94
94
  default: withCtx(() => [createVNode(VuIcon, {
95
95
  name: "i--chevron-right",
@@ -99,7 +99,7 @@ var Pagination_default = /* @__PURE__ */ defineComponent({
99
99
  })) : createCommentVNode("v-if", true),
100
100
  !__props.showEdges && __props.showArrows ? (openBlock(), createBlock(unref(PaginationLast), {
101
101
  key: 3,
102
- class: "size-fingertip flex items-center justify-center btn btn-square c8-flat disabled:opacity-30"
102
+ class: "btn btn-square c8-flat disabled-soft"
103
103
  }, {
104
104
  default: withCtx(() => [createVNode(VuIcon, {
105
105
  name: "i--chevron-right-2",
package/dist/Select.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, mergeModels, mergeProps, normalizeClass, openBlock, unref, useModel, withCtx } from "vue";
2
2
  import { SelectTrigger, SelectValue } from "reka-ui";
3
3
  import { useInputBaseProps, useInputProps } from "vunor";
4
- import VuInputBase from "vunor/InputBase";
5
4
  import VuInput from "vunor/Input";
5
+ import VuInputBase from "vunor/InputBase";
6
6
  import VuSelectBase from "vunor/SelectBase";
7
7
  //#endregion
8
8
  //#region src/components/Select/Select.vue
@@ -30,8 +30,8 @@ declare const __VLS_export: <T extends TSelectItem>(__VLS_props: NonNullable<Awa
30
30
  open?: boolean;
31
31
  modelValue?: string;
32
32
  }) & {
33
- "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
34
33
  "onUpdate:open"?: ((value: boolean | undefined) => any) | undefined;
34
+ "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
35
35
  }> & (typeof globalThis extends {
36
36
  __VLS_PROPS_FALLBACK: infer P;
37
37
  } ? P : {});
@@ -53,7 +53,7 @@ declare const __VLS_export: <T extends TSelectItem>(__VLS_props: NonNullable<Awa
53
53
  } & {
54
54
  item?: (props: T) => any;
55
55
  };
56
- emit: ((event: "update:modelValue", value: string | undefined) => void) & ((event: "update:open", value: boolean | undefined) => void);
56
+ emit: ((event: "update:open", value: boolean | undefined) => void) & ((event: "update:modelValue", value: string | undefined) => void);
57
57
  }>) => import("vue").VNode & {
58
58
  __ctx?: Awaited<typeof __VLS_setup>;
59
59
  };
package/dist/theme.d.mts CHANGED
@@ -333,6 +333,9 @@ declare const presetVunor: PresetFactory<TVunorTheme, TVunorUnoPresetOpts & {
333
333
  palette?: TVunorPaletteOptions;
334
334
  }>;
335
335
  //#endregion
336
+ //#region src/theme/shortcuts/raw.d.ts
337
+ declare const rawVunorShortcuts: TVunorShortcut[];
338
+ //#endregion
336
339
  //#region src/theme/utils/shortcut-obj.d.ts
337
340
  /**
338
341
  * Build uno shortcut from vunor shortcut object
@@ -354,10 +357,6 @@ declare const componentClasses: Record<string, string[]>;
354
357
  declare function getComponentClasses(...components: string[]): string[];
355
358
  //#endregion
356
359
  //#region src/theme.d.ts
357
- /**
358
- * Array of raw vunor shortcuts (not merged)
359
- */
360
- declare const rawVunorShortcuts: TVunorShortcut[];
361
360
  /**
362
361
  * Vunor shortcuts (merged version of rawVunorShortcuts)
363
362
  */