@veltra/desktop 1.2.34 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/components/action/action-group.vue.d.ts +2 -2
  2. package/dist/components/action/action.vue.d.ts +2 -2
  3. package/dist/components/batch-edit/style2.css +0 -3
  4. package/dist/components/button/style2.css +23 -7
  5. package/dist/components/calendar/style2.css +3 -0
  6. package/dist/components/card/style2.css +12 -10
  7. package/dist/components/cascade/cascade.vue.d.ts +3 -3
  8. package/dist/components/check-tag/style2.css +6 -1
  9. package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
  10. package/dist/components/checkbox/checkbox.js +10 -10
  11. package/dist/components/checkbox/checkbox.js.map +1 -1
  12. package/dist/components/checkbox/style2.css +20 -3
  13. package/dist/components/checkbox-group/checkbox-group.vue.d.ts +1 -1
  14. package/dist/components/code-editor/style2.css +2 -2
  15. package/dist/components/contextmenu/style2.css +2 -2
  16. package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
  17. package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
  18. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
  19. package/dist/components/dialog/style2.css +3 -3
  20. package/dist/components/drawer/style2.css +1 -1
  21. package/dist/components/dropdown/style2.css +1 -1
  22. package/dist/components/empty/empty.vue.d.ts +1 -1
  23. package/dist/components/float-button/style2.css +1 -1
  24. package/dist/components/group-nav/style2.css +1 -1
  25. package/dist/components/input/style2.css +5 -4
  26. package/dist/components/message/style2.css +7 -7
  27. package/dist/components/message-confirm/style2.css +1 -1
  28. package/dist/components/multi-select/multi-select.vue.d.ts +1 -1
  29. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +2 -2
  30. package/dist/components/nav/style2.css +2 -2
  31. package/dist/components/notification/style2.css +1 -1
  32. package/dist/components/number/number.vue.d.ts +1 -1
  33. package/dist/components/pop-confirm/pop-confirm.vue.d.ts +1 -1
  34. package/dist/components/progress-nodes/progress-nodes.vue.d.ts +1 -1
  35. package/dist/components/radio/radio.js +5 -5
  36. package/dist/components/radio/radio.js.map +1 -1
  37. package/dist/components/radio/style2.css +12 -0
  38. package/dist/components/radio-group/radio-group.vue.d.ts +1 -1
  39. package/dist/components/rich-text-editor/style2.css +1 -1
  40. package/dist/components/scroll/style2.css +3 -3
  41. package/dist/components/select/select.vue.d.ts +1 -1
  42. package/dist/components/slider/slider-thumb.js +4 -2
  43. package/dist/components/slider/slider-thumb.js.map +1 -1
  44. package/dist/components/slider/style2.css +7 -0
  45. package/dist/components/switch/style2.css +15 -1
  46. package/dist/components/switch/switch.js +0 -1
  47. package/dist/components/switch/switch.js.map +1 -1
  48. package/dist/components/tabs/style2.css +7 -4
  49. package/dist/components/text/style2.css +5 -5
  50. package/dist/components/tip/style2.css +2 -2
  51. package/dist/components/tree/tree.vue.d.ts +3 -3
  52. package/dist/components/tree-select/tree-select.vue.d.ts +2 -2
  53. package/package.json +6 -6
  54. package/src/components/batch-edit/style.scss +0 -5
  55. package/src/components/button/style.scss +16 -9
  56. package/src/components/calendar/style.scss +4 -0
  57. package/src/components/card/style.scss +4 -2
  58. package/src/components/check-tag/style.scss +7 -1
  59. package/src/components/checkbox/checkbox.vue +8 -2
  60. package/src/components/checkbox/style.scss +32 -3
  61. package/src/components/code-editor/style.scss +2 -2
  62. package/src/components/contextmenu/style.scss +1 -3
  63. package/src/components/dialog/style.scss +3 -3
  64. package/src/components/drawer/style.scss +1 -1
  65. package/src/components/dropdown/style.scss +1 -1
  66. package/src/components/float-button/style.scss +1 -1
  67. package/src/components/group-nav/style.scss +1 -3
  68. package/src/components/input/style.scss +4 -3
  69. package/src/components/message/style.scss +2 -2
  70. package/src/components/message-confirm/style.scss +1 -1
  71. package/src/components/nav/style.scss +2 -6
  72. package/src/components/notification/style.scss +1 -1
  73. package/src/components/radio/radio.vue +8 -9
  74. package/src/components/radio/style.scss +21 -0
  75. package/src/components/rich-text-editor/style.scss +1 -1
  76. package/src/components/scroll/style.scss +3 -3
  77. package/src/components/slider/slider-thumb.vue +1 -1
  78. package/src/components/slider/style.scss +10 -0
  79. package/src/components/switch/style.scss +25 -1
  80. package/src/components/switch/switch.vue +0 -1
  81. package/src/components/tabs/style.scss +7 -5
  82. package/src/components/text/style.scss +5 -5
  83. package/src/components/tip/style.scss +2 -2
@@ -264,7 +264,7 @@
264
264
  background-repeat: no-repeat;
265
265
  border: 1px solid var(--u-border-color);
266
266
  border-radius: calc(var(--u-radius-large) + 6px);
267
- box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 12px 28px rgba(15, 23, 42, 0.08);
267
+ box-shadow: var(--u-shadow-lg);
268
268
  }
269
269
  .u-nav__container {
270
270
  padding: 8px;
@@ -344,7 +344,7 @@
344
344
  -webkit-backdrop-filter: var(--u-bg-filter);
345
345
  border: 1px solid var(--u-border-color);
346
346
  border-radius: calc(var(--u-radius-large) + 4px);
347
- box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14), 0 2px 8px rgba(15, 23, 42, 0.08);
347
+ box-shadow: var(--u-shadow-lg);
348
348
  }
349
349
  .u-collapsed-nav__panel .u-tip__arrow {
350
350
  display: none;
@@ -22,7 +22,7 @@
22
22
  transition: opacity 0.3s, transform 0.4s, top 0.4s;
23
23
  border: var(--u-border);
24
24
  background-color: var(--u-bg-color-top);
25
- box-shadow: var(--u-shadow);
25
+ box-shadow: var(--u-shadow-lg);
26
26
  margin: 4px;
27
27
  overflow: hidden;
28
28
  }
@@ -1,8 +1,8 @@
1
1
  import { NumberProps } from "../../types/number.js";
2
2
  //#region src/components/number/number.vue.d.ts
3
3
  declare const __VLS_export: import("vue").DefineComponent<NumberProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<NumberProps> & Readonly<{}>, {
4
- duration: number;
5
4
  format: "currency" | "percent" | "decimal";
5
+ duration: number;
6
6
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
7
  declare const _default: typeof __VLS_export;
8
8
  //#endregion
@@ -13,8 +13,8 @@ declare const __VLS_base: import("vue").DefineComponent<PopConfirmProps, {}, {},
13
13
  onCancel?: (() => any) | undefined;
14
14
  }>, {
15
15
  trigger: "hover" | "click";
16
- icon: import("vue").Component;
17
16
  direction: TipDirection;
17
+ icon: import("vue").Component;
18
18
  iconColor: string;
19
19
  confirmText: string;
20
20
  cancelText: string;
@@ -19,8 +19,8 @@ declare const __VLS_base: import("vue").DefineComponent<ProgressNodesProps, {},
19
19
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
20
20
  onClick?: ((node: Record<string, any>, index: number) => any) | undefined;
21
21
  }>, {
22
- valueKey: string;
23
22
  labelKey: string;
23
+ valueKey: string;
24
24
  colorType: import("@veltra/utils").ColorType;
25
25
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
26
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -45,15 +45,15 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
45
45
  });
46
46
  return (_ctx, _cache) => {
47
47
  return openBlock(), createElementBlock("label", { class: normalizeClass(classList.value) }, [
48
- createCommentVNode(" radio框 "),
49
- createElementVNode("section", { class: normalizeClass(unref(cls).e("button")) }, [withDirectives(createElementVNode("input", {
48
+ withDirectives(createElementVNode("input", {
50
49
  type: "radio",
51
50
  class: normalizeClass(unref(cls).e("native")),
52
51
  value: __props.value,
53
52
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
54
- disabled: unref(disabled),
55
- hidden: ""
56
- }, null, 10, _hoisted_1), [[vModelRadio, model.value]]), createVNode(Transition, { name: "zoom-in" }, {
53
+ disabled: unref(disabled)
54
+ }, null, 10, _hoisted_1), [[vModelRadio, model.value]]),
55
+ createCommentVNode(" radio框 "),
56
+ createElementVNode("section", { class: normalizeClass(unref(cls).e("button")) }, [createVNode(Transition, { name: "zoom-in" }, {
57
57
  default: withCtx(() => [radioChecked.value ? (openBlock(), createElementBlock("span", {
58
58
  key: 0,
59
59
  class: normalizeClass(unref(cls).e("inner"))
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","names":[],"sources":["../../../src/components/radio/radio.vue"],"sourcesContent":["<template>\n <label :class=\"classList\">\n <!-- radio框 -->\n <section :class=\"cls.e('button')\">\n <input\n type=\"radio\"\n :class=\"cls.e('native')\"\n :value=\"value\"\n v-model=\"model\"\n :disabled=\"disabled\"\n hidden\n />\n\n <transition name=\"zoom-in\">\n <span :class=\"cls.e('inner')\" v-if=\"radioChecked\"></span>\n </transition>\n </section>\n\n <span :class=\"cls.e('label')\">\n <slot>{{ label }}</slot>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { bem } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { RadioProps, RadioEmits } from '../../types'\n\ndefineOptions({ name: 'URadio' })\n\nconst model = defineModel<any>()\n\nconst props = withDefaults(defineProps<RadioProps>(), { disabled: undefined })\n\ndefineEmits<RadioEmits>()\n\nconst cls = bem('radio')\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled } = useFormFallbackProps([formProps ?? {}, props], {\n size: 'default',\n disabled: false\n})\n\nconst radioChecked = computed(() => model.value === props.value)\n\nconst classList = computed(() => {\n return [\n cls.b,\n cls.m(size.value),\n bem.is('disabled', disabled.value),\n bem.is('checked', radioChecked.value)\n ]\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCA,MAAM,QAAQ,SAAgB,SAAA,YAAC;EAE/B,MAAM,QAAQ;EAId,MAAM,MAAM,IAAI,OAAO;EAEvB,MAAM,EAAE,cAAc,kBAAkB;EAExC,MAAM,EAAE,MAAM,aAAa,qBAAqB,CAAC,aAAa,CAAC,GAAG,KAAK,GAAG;GACxE,MAAM;GACN,UAAU;EACZ,CAAC;EAED,MAAM,eAAe,eAAe,MAAM,UAAU,MAAM,KAAK;EAE/D,MAAM,YAAY,eAAe;GAC/B,OAAO;IACL,IAAI;IACJ,IAAI,EAAE,KAAK,KAAK;IAChB,IAAI,GAAG,YAAY,SAAS,KAAK;IACjC,IAAI,GAAG,WAAW,aAAa,KAAK;GACtC;EACF,CAAC;;uBAzDC,mBAoBQ,SAAA,EApBA,OAAK,eAAE,UAAA,KAAS,EAAA,GAAA;IACtB,mBAAA,UAAA;IACA,mBAaU,WAAA,EAbA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,QAAA,CAAA,EAAA,GAAA,CAAA,eACpB,mBAOE,SAAA;KANA,MAAK;KACJ,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,QAAA,CAAA;KACZ,OAAO,QAAA;kEACC,MAAK,QAAA;KACb,UAAU,MAAA,QAAA;KACX,QAAA;6CAFS,MAAA,KAAK,CAAA,CAAA,GAKhB,YAEa,YAAA,EAFD,MAAK,UAAS,GAAA;4BACiC,CAArB,aAAA,SAAA,UAAA,GAApC,mBAAyD,QAAA;;MAAlD,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,OAAA,CAAA;;;;IAIvB,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,OAAA,CAAA,EAAA,GAAA,CACjB,WAAwB,KAAA,QAAA,WAAA,CAAA,SAAA,CAAA,gBAAA,gBAAf,QAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"radio.js","names":[],"sources":["../../../src/components/radio/radio.vue"],"sourcesContent":["<template>\n <label :class=\"classList\">\n <input\n type=\"radio\"\n :class=\"cls.e('native')\"\n :value=\"value\"\n v-model=\"model\"\n :disabled=\"disabled\"\n />\n\n <!-- radio框 -->\n <section :class=\"cls.e('button')\">\n <transition name=\"zoom-in\">\n <span :class=\"cls.e('inner')\" v-if=\"radioChecked\"></span>\n </transition>\n </section>\n\n <span :class=\"cls.e('label')\">\n <slot>{{ label }}</slot>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { bem } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { RadioProps, RadioEmits } from '../../types'\n\ndefineOptions({ name: 'URadio' })\n\nconst model = defineModel<any>()\n\nconst props = withDefaults(defineProps<RadioProps>(), { disabled: undefined })\n\ndefineEmits<RadioEmits>()\n\nconst cls = bem('radio')\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled } = useFormFallbackProps([formProps ?? {}, props], {\n size: 'default',\n disabled: false\n})\n\nconst radioChecked = computed(() => model.value === props.value)\n\nconst classList = computed(() => {\n return [\n cls.b,\n cls.m(size.value),\n bem.is('disabled', disabled.value),\n bem.is('checked', radioChecked.value)\n ]\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCA,MAAM,QAAQ,SAAgB,SAAA,YAAC;EAE/B,MAAM,QAAQ;EAId,MAAM,MAAM,IAAI,OAAO;EAEvB,MAAM,EAAE,cAAc,kBAAkB;EAExC,MAAM,EAAE,MAAM,aAAa,qBAAqB,CAAC,aAAa,CAAC,GAAG,KAAK,GAAG;GACxE,MAAM;GACN,UAAU;EACZ,CAAC;EAED,MAAM,eAAe,eAAe,MAAM,UAAU,MAAM,KAAK;EAE/D,MAAM,YAAY,eAAe;GAC/B,OAAO;IACL,IAAI;IACJ,IAAI,EAAE,KAAK,KAAK;IAChB,IAAI,GAAG,YAAY,SAAS,KAAK;IACjC,IAAI,GAAG,WAAW,aAAa,KAAK;GACtC;EACF,CAAC;;uBAxDC,mBAmBQ,SAAA,EAnBA,OAAK,eAAE,UAAA,KAAS,EAAA,GAAA;mBACtB,mBAME,SAAA;KALA,MAAK;KACJ,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,QAAA,CAAA;KACZ,OAAO,QAAA;kEACC,MAAK,QAAA;KACb,UAAU,MAAA,QAAA;6CADF,MAAA,KAAK,CAAA,CAAA;IAIhB,mBAAA,UAAA;IACA,mBAIU,WAAA,EAJA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,QAAA,CAAA,EAAA,GAAA,CACpB,YAEa,YAAA,EAFD,MAAK,UAAS,GAAA;4BACiC,CAArB,aAAA,SAAA,UAAA,GAApC,mBAAyD,QAAA;;MAAlD,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,OAAA,CAAA;;;;IAIvB,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,OAAA,CAAA,EAAA,GAAA,CACjB,WAAwB,KAAA,QAAA,WAAA,CAAA,SAAA,CAAA,gBAAA,gBAAf,QAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA"}
@@ -71,12 +71,18 @@
71
71
  border-radius: 50%;
72
72
  border: var(--u-border-width) var(--u-border-style) var(--u-radio-border, #ccc);
73
73
  overflow: hidden;
74
+ transition: border-color var(--u-transition-fast) var(--u-transition-ease), box-shadow var(--u-transition-fast) var(--u-transition-ease);
74
75
  }
75
76
  .u-radio.is-checked .u-radio__button {
76
77
  border-color: var(--u-color-primary);
77
78
  }
78
79
  .u-radio__native {
80
+ position: absolute;
81
+ width: 0;
82
+ height: 0;
79
83
  opacity: 0;
84
+ margin: 0;
85
+ pointer-events: none;
80
86
  }
81
87
  .u-radio__label {
82
88
  padding-left: var(--u-gap-small);
@@ -87,6 +93,12 @@
87
93
  display: block;
88
94
  height: 100%;
89
95
  }
96
+ .u-radio:not(.is-disabled):hover .u-radio__button {
97
+ border-color: var(--u-color-primary);
98
+ }
99
+ .u-radio:not(.is-disabled) .u-radio__native:focus-visible + .u-radio__button {
100
+ box-shadow: var(--u-focus-ring);
101
+ }
90
102
  .u-radio.is-disabled {
91
103
  color: var(--u-text-color-disabled);
92
104
  cursor: not-allowed;
@@ -14,8 +14,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
14
14
  "onUpdate:modelValue"?: ((value: any) => any) | undefined;
15
15
  onChange?: ((item: Record<string, any>) => any) | undefined;
16
16
  }>, {
17
- valueKey: string;
18
17
  labelKey: string;
18
+ valueKey: string;
19
19
  disabled: boolean;
20
20
  readonly: boolean;
21
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -30,7 +30,7 @@
30
30
  }
31
31
  .u-rich-text-editor:focus-within {
32
32
  border-color: var(--u-color-primary);
33
- box-shadow: 0 0 0 2px rgba(var(--u-color-primary), 0.1);
33
+ box-shadow: 0 0 0 2px var(--u-color-primary-a-22);
34
34
  }
35
35
  .u-rich-text-editor--small {
36
36
  border-radius: var(--u-radius-small);
@@ -46,18 +46,18 @@
46
46
  cursor: default;
47
47
  position: absolute;
48
48
  border-radius: 6px;
49
- background-color: rgba(153, 153, 153, 0.4);
49
+ background-color: var(--u-text-color-assist-a-40);
50
50
  will-change: transform;
51
51
  transition: opacity 0.3s ease-in, background-color 0.3s ease-in, height 0.15s ease-in, width 0.15s ease-in;
52
52
  z-index: 1;
53
53
  }
54
54
  .u-scroll__bar-x:hover, .u-scroll__bar-y:hover {
55
- background-color: rgba(153, 153, 153, 0.6);
55
+ background-color: var(--u-text-color-assist-a-60);
56
56
  border-radius: 10px;
57
57
  }
58
58
  .u-scroll__bar-x.is-active, .u-scroll__bar-y.is-active {
59
59
  opacity: 1;
60
- background-color: #999;
60
+ background-color: var(--u-text-color-assist);
61
61
  border-radius: 10px;
62
62
  }
63
63
  .u-scroll.is-always .u-scroll__bar-y {
@@ -24,8 +24,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
24
24
  "onUpdate:text"?: ((value: any) => any) | undefined;
25
25
  "onUpdate:label"?: ((label?: string | undefined) => any) | undefined;
26
26
  }>, {
27
- valueKey: string;
28
27
  labelKey: string;
28
+ valueKey: string;
29
29
  clearable: boolean;
30
30
  placeholder: string;
31
31
  disabled: boolean;
@@ -2,6 +2,7 @@ import { sliderContextKey } from "./di.js";
2
2
  import { computed, createElementBlock, defineComponent, inject, normalizeClass, normalizeStyle, openBlock, unref, useTemplateRef, watch } from "vue";
3
3
  import { useDrag, useUserAction } from "@veltra/compositions";
4
4
  //#region src/components/slider/slider-thumb.vue
5
+ const _hoisted_1 = ["tabindex"];
5
6
  const _sfc_main = /*@__PURE__*/ defineComponent({
6
7
  __name: "slider-thumb",
7
8
  props: { modelValue: {} },
@@ -44,8 +45,9 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
44
45
  return openBlock(), createElementBlock("div", {
45
46
  ref: "thumb",
46
47
  class: normalizeClass(unref(cls).e("thumb")),
47
- style: normalizeStyle(style.value)
48
- }, null, 6);
48
+ style: normalizeStyle(style.value),
49
+ tabindex: unref(disabled) ? -1 : 0
50
+ }, null, 14, _hoisted_1);
49
51
  };
50
52
  }
51
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"slider-thumb.js","names":[],"sources":["../../../src/components/slider/slider-thumb.vue"],"sourcesContent":["<template>\n <div ref=\"thumb\" :class=\"cls.e('thumb')\" :style></div>\n</template>\n<script lang=\"ts\" setup>\nimport { useDrag, useUserAction } from '@veltra/compositions'\nimport { computed, inject, useTemplateRef, watch } from 'vue'\n\nimport { sliderContextKey } from './di'\n\nconst props = defineProps<{ modelValue: number }>()\n\nconst emit = defineEmits<{ (e: 'update:modelValue', value: number): void }>()\n\nconst { cls, range, disabled, sliderProps, getOffsetByStep } = inject(sliderContextKey)!\n\nconst thumbRef = useTemplateRef('thumb')\n\nconst style = computed(() => {\n if (sliderProps.vertical) {\n return { transform: `translate(0, ${props.modelValue}px)` }\n }\n return { transform: `translate(${props.modelValue}px, 0)` }\n})\n\nconst { userAction, isUserActive } = useUserAction()\n\nfunction updateModel(offset: number) {\n offset = getOffsetByStep(offset)\n emit('update:modelValue', offset)\n return offset\n}\n\nconst dragger = useDrag({\n target: computed(() => (disabled.value ? null : thumbRef.value)),\n\n onDrag: userAction(({ offsetX, offsetY }) => {\n updateModel(sliderProps.vertical ? offsetY : offsetX)\n }),\n rangeX: range,\n rangeY: range,\n onDragEnd: userAction(({ offsetX, offsetY }) => {\n const offset = updateModel(sliderProps.vertical ? offsetY : offsetX)\n updateDragger(offset)\n })\n})\n\nfunction updateDragger(offset: number) {\n if (sliderProps.vertical) {\n dragger.update({ offsetY: offset })\n } else {\n dragger.update({ offsetX: offset })\n }\n}\n\nwatch(\n () => props.modelValue,\n (offset) => {\n if (isUserActive()) return\n updateDragger(offset)\n }\n)\n</script>\n"],"mappings":";;;;;;;;;EASA,MAAM,QAAQ;EAEd,MAAM,OAAO;EAEb,MAAM,EAAE,KAAK,OAAO,UAAU,aAAa,oBAAoB,OAAO,gBAAgB;EAEtF,MAAM,WAAW,eAAe,OAAO;EAEvC,MAAM,QAAQ,eAAe;GAC3B,IAAI,YAAY,UACd,OAAO,EAAE,WAAW,gBAAgB,MAAM,WAAW,KAAK;GAE5D,OAAO,EAAE,WAAW,aAAa,MAAM,WAAW,QAAQ;EAC5D,CAAC;EAED,MAAM,EAAE,YAAY,iBAAiB,cAAc;EAEnD,SAAS,YAAY,QAAgB;GACnC,SAAS,gBAAgB,MAAM;GAC/B,KAAK,qBAAqB,MAAM;GAChC,OAAO;EACT;EAEA,MAAM,UAAU,QAAQ;GACtB,QAAQ,eAAgB,SAAS,QAAQ,OAAO,SAAS,KAAM;GAE/D,QAAQ,YAAY,EAAE,SAAS,cAAc;IAC3C,YAAY,YAAY,WAAW,UAAU,OAAO;GACtD,CAAC;GACD,QAAQ;GACR,QAAQ;GACR,WAAW,YAAY,EAAE,SAAS,cAAc;IAE9C,cADe,YAAY,YAAY,WAAW,UAAU,OAC9C,CAAM;GACtB,CAAC;EACH,CAAC;EAED,SAAS,cAAc,QAAgB;GACrC,IAAI,YAAY,UACd,QAAQ,OAAO,EAAE,SAAS,OAAO,CAAC;QAElC,QAAQ,OAAO,EAAE,SAAS,OAAO,CAAC;EAEtC;EAEA,YACQ,MAAM,aACX,WAAW;GACV,IAAI,aAAa,GAAG;GACpB,cAAc,MAAM;EACtB,CACF;;uBA3DE,mBAAsD,OAAA;IAAjD,KAAI;IAAS,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,OAAA,CAAA;IAAY,OAAK,eAAL,MAAA,KAAK"}
1
+ {"version":3,"file":"slider-thumb.js","names":[],"sources":["../../../src/components/slider/slider-thumb.vue"],"sourcesContent":["<template>\n <div ref=\"thumb\" :class=\"cls.e('thumb')\" :style :tabindex=\"disabled ? -1 : 0\"></div>\n</template>\n<script lang=\"ts\" setup>\nimport { useDrag, useUserAction } from '@veltra/compositions'\nimport { computed, inject, useTemplateRef, watch } from 'vue'\n\nimport { sliderContextKey } from './di'\n\nconst props = defineProps<{ modelValue: number }>()\n\nconst emit = defineEmits<{ (e: 'update:modelValue', value: number): void }>()\n\nconst { cls, range, disabled, sliderProps, getOffsetByStep } = inject(sliderContextKey)!\n\nconst thumbRef = useTemplateRef('thumb')\n\nconst style = computed(() => {\n if (sliderProps.vertical) {\n return { transform: `translate(0, ${props.modelValue}px)` }\n }\n return { transform: `translate(${props.modelValue}px, 0)` }\n})\n\nconst { userAction, isUserActive } = useUserAction()\n\nfunction updateModel(offset: number) {\n offset = getOffsetByStep(offset)\n emit('update:modelValue', offset)\n return offset\n}\n\nconst dragger = useDrag({\n target: computed(() => (disabled.value ? null : thumbRef.value)),\n\n onDrag: userAction(({ offsetX, offsetY }) => {\n updateModel(sliderProps.vertical ? offsetY : offsetX)\n }),\n rangeX: range,\n rangeY: range,\n onDragEnd: userAction(({ offsetX, offsetY }) => {\n const offset = updateModel(sliderProps.vertical ? offsetY : offsetX)\n updateDragger(offset)\n })\n})\n\nfunction updateDragger(offset: number) {\n if (sliderProps.vertical) {\n dragger.update({ offsetY: offset })\n } else {\n dragger.update({ offsetX: offset })\n }\n}\n\nwatch(\n () => props.modelValue,\n (offset) => {\n if (isUserActive()) return\n updateDragger(offset)\n }\n)\n</script>\n"],"mappings":";;;;;;;;;;EASA,MAAM,QAAQ;EAEd,MAAM,OAAO;EAEb,MAAM,EAAE,KAAK,OAAO,UAAU,aAAa,oBAAoB,OAAO,gBAAgB;EAEtF,MAAM,WAAW,eAAe,OAAO;EAEvC,MAAM,QAAQ,eAAe;GAC3B,IAAI,YAAY,UACd,OAAO,EAAE,WAAW,gBAAgB,MAAM,WAAW,KAAK;GAE5D,OAAO,EAAE,WAAW,aAAa,MAAM,WAAW,QAAQ;EAC5D,CAAC;EAED,MAAM,EAAE,YAAY,iBAAiB,cAAc;EAEnD,SAAS,YAAY,QAAgB;GACnC,SAAS,gBAAgB,MAAM;GAC/B,KAAK,qBAAqB,MAAM;GAChC,OAAO;EACT;EAEA,MAAM,UAAU,QAAQ;GACtB,QAAQ,eAAgB,SAAS,QAAQ,OAAO,SAAS,KAAM;GAE/D,QAAQ,YAAY,EAAE,SAAS,cAAc;IAC3C,YAAY,YAAY,WAAW,UAAU,OAAO;GACtD,CAAC;GACD,QAAQ;GACR,QAAQ;GACR,WAAW,YAAY,EAAE,SAAS,cAAc;IAE9C,cADe,YAAY,YAAY,WAAW,UAAU,OAC9C,CAAM;GACtB,CAAC;EACH,CAAC;EAED,SAAS,cAAc,QAAgB;GACrC,IAAI,YAAY,UACd,QAAQ,OAAO,EAAE,SAAS,OAAO,CAAC;QAElC,QAAQ,OAAO,EAAE,SAAS,OAAO,CAAC;EAEtC;EAEA,YACQ,MAAM,aACX,WAAW;GACV,IAAI,aAAa,GAAG;GACpB,cAAc,MAAM;EACtB,CACF;;uBA3DE,mBAAoF,OAAA;IAA/E,KAAI;IAAS,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,OAAA,CAAA;IAAY,OAAK,eAAL,MAAA,KAAK;IAAE,UAAU,MAAA,QAAA,IAAQ,KAAA"}
@@ -163,7 +163,14 @@
163
163
  cursor: grab;
164
164
  z-index: 1;
165
165
  border: 4px solid var(--u-color-primary);
166
+ transition: box-shadow var(--u-transition-fast) var(--u-transition-ease);
167
+ }
168
+ .u-slider__thumb:hover {
169
+ box-shadow: 0 0 0 3px var(--u-color-primary-a-8);
166
170
  }
167
171
  .u-slider__thumb:active {
168
172
  cursor: grabbing;
169
173
  }
174
+ .u-slider__thumb:focus-visible {
175
+ box-shadow: var(--u-focus-ring);
176
+ }
@@ -38,6 +38,16 @@
38
38
  .u-switch.is-readonly {
39
39
  cursor: default;
40
40
  }
41
+ .u-switch:not(.is-disabled):not(.is-readonly):hover .u-switch__button {
42
+ background-color: var(--u-color-primary-light-7);
43
+ border-color: var(--u-color-primary-light-5);
44
+ }
45
+ .u-switch:not(.is-disabled):not(.is-readonly):hover.is-checked .u-switch__button {
46
+ background-color: var(--u-color-primary-dark-1);
47
+ }
48
+ .u-switch:not(.is-disabled):not(.is-readonly) .u-switch__native:focus-visible ~ .u-switch__button {
49
+ box-shadow: var(--u-focus-ring);
50
+ }
41
51
  .u-switch--small .u-switch__button {
42
52
  height: var(--u-switch-height-small);
43
53
  width: calc(var(--u-switch-height-small) * 2 - 4px);
@@ -63,8 +73,12 @@
63
73
  height: calc(var(--u-switch-height-large) - 4px);
64
74
  }
65
75
  .u-switch__native {
76
+ position: absolute;
77
+ width: 0;
78
+ height: 0;
66
79
  opacity: 0;
67
- visibility: hidden;
80
+ margin: 0;
81
+ pointer-events: none;
68
82
  }
69
83
  .u-switch__button {
70
84
  display: flex;
@@ -59,7 +59,6 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
59
59
  createElementVNode("input", {
60
60
  type: "checkbox",
61
61
  class: normalizeClass(unref(cls).e("native")),
62
- hidden: "",
63
62
  checked: model.value,
64
63
  disabled: unref(disabled),
65
64
  onInput: handleInput
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","names":[],"sources":["../../../src/components/switch/switch.vue"],"sourcesContent":["<template>\n <label :class=\"switchClass\" @click.stop>\n <input\n type=\"checkbox\"\n :class=\"cls.e('native')\"\n hidden\n :checked=\"model\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n />\n <span :class=\"[cls.e('text'), bem.is('selected', !model)]\" v-if=\"inactiveText\">\n {{ inactiveText }}\n </span>\n\n <div :class=\"cls.e('button')\">\n <span :class=\"cls.e('thumb')\"></span>\n </div>\n\n <span v-if=\"activeText\" :class=\"[cls.e('text'), bem.is('selected', model)]\">\n {{ activeText }}\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { bem } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { SwitchEmits, SwitchProps, _SwitchExposed } from '../../types'\n\ndefineOptions({ name: 'USwitch' })\n\nconst props = withDefaults(defineProps<SwitchProps>(), { disabled: undefined, readonly: undefined })\n\nconst emit = defineEmits<SwitchEmits>()\n\nconst model = defineModel<boolean>()\n\nconst cls = bem('switch')\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props])\n\nconst switchClass = computed(() => {\n return [\n cls.b,\n cls.m(size.value),\n bem.is('disabled', disabled.value),\n bem.is('readonly', readonly.value),\n bem.is('checked', model.value)\n ]\n})\n\nconst handleInput = (e: Event) => {\n if (disabled.value || readonly.value) return\n\n const newValue = (e.target as HTMLInputElement).checked\n model.value = newValue\n emit('change', newValue)\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCA,MAAM,QAAQ;EAEd,MAAM,OAAO;EAEb,MAAM,QAAQ,SAAoB,SAAA,YAAC;EAEnC,MAAM,MAAM,IAAI,QAAQ;EAExB,MAAM,EAAE,cAAc,kBAAkB;EAExC,MAAM,EAAE,MAAM,UAAU,aAAa,qBAAqB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;EAElF,MAAM,cAAc,eAAe;GACjC,OAAO;IACL,IAAI;IACJ,IAAI,EAAE,KAAK,KAAK;IAChB,IAAI,GAAG,YAAY,SAAS,KAAK;IACjC,IAAI,GAAG,YAAY,SAAS,KAAK;IACjC,IAAI,GAAG,WAAW,MAAM,KAAK;GAC/B;EACF,CAAC;EAED,MAAM,eAAe,MAAa;GAChC,IAAI,SAAS,SAAS,SAAS,OAAO;GAEtC,MAAM,WAAY,EAAE,OAA4B;GAChD,MAAM,QAAQ;GACd,KAAK,UAAU,QAAQ;EACzB;;uBA7DE,mBAoBQ,SAAA;IApBA,OAAK,eAAE,YAAA,KAAW;IAAG,SAAK,OAAA,OAAA,OAAA,KAAA,oBAAN,CAAA,GAAW,CAAA,MAAA,CAAA;;IACrC,mBAOE,SAAA;KANA,MAAK;KACJ,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,QAAA,CAAA;KACb,QAAA;KACC,SAAS,MAAA;KACT,UAAU,MAAA,QAAA;KACV,SAAO;;IAEuD,QAAA,gBAAA,UAAA,GAAjE,mBAEO,QAAA;;KAFA,OAAK,eAAA,CAAG,MAAA,GAAA,CAAG,CAAC,EAAC,MAAA,GAAU,MAAA,GAAA,CAAG,CAAC,GAAE,YAAA,CAAc,MAAA,KAAK,CAAA,CAAA;uBAClD,QAAA,YAAY,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA;IAGjB,mBAEM,OAAA,EAFA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,QAAA,CAAA,EAAA,GAAA,CAChB,mBAAqC,QAAA,EAA9B,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,OAAA,CAAA,EAAA,GAAA,MAAA,CAAA,CAAA,GAAA,CAAA;IAGT,QAAA,cAAA,UAAA,GAAZ,mBAEO,QAAA;;KAFkB,OAAK,eAAA,CAAG,MAAA,GAAA,CAAG,CAAC,EAAC,MAAA,GAAU,MAAA,GAAA,CAAG,CAAC,GAAE,YAAa,MAAA,KAAK,CAAA,CAAA;uBACnE,QAAA,UAAU,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA"}
1
+ {"version":3,"file":"switch.js","names":[],"sources":["../../../src/components/switch/switch.vue"],"sourcesContent":["<template>\n <label :class=\"switchClass\" @click.stop>\n <input\n type=\"checkbox\"\n :class=\"cls.e('native')\"\n :checked=\"model\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n />\n <span :class=\"[cls.e('text'), bem.is('selected', !model)]\" v-if=\"inactiveText\">\n {{ inactiveText }}\n </span>\n\n <div :class=\"cls.e('button')\">\n <span :class=\"cls.e('thumb')\"></span>\n </div>\n\n <span v-if=\"activeText\" :class=\"[cls.e('text'), bem.is('selected', model)]\">\n {{ activeText }}\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { bem } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { SwitchEmits, SwitchProps, _SwitchExposed } from '../../types'\n\ndefineOptions({ name: 'USwitch' })\n\nconst props = withDefaults(defineProps<SwitchProps>(), { disabled: undefined, readonly: undefined })\n\nconst emit = defineEmits<SwitchEmits>()\n\nconst model = defineModel<boolean>()\n\nconst cls = bem('switch')\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props])\n\nconst switchClass = computed(() => {\n return [\n cls.b,\n cls.m(size.value),\n bem.is('disabled', disabled.value),\n bem.is('readonly', readonly.value),\n bem.is('checked', model.value)\n ]\n})\n\nconst handleInput = (e: Event) => {\n if (disabled.value || readonly.value) return\n\n const newValue = (e.target as HTMLInputElement).checked\n model.value = newValue\n emit('change', newValue)\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCA,MAAM,QAAQ;EAEd,MAAM,OAAO;EAEb,MAAM,QAAQ,SAAoB,SAAA,YAAC;EAEnC,MAAM,MAAM,IAAI,QAAQ;EAExB,MAAM,EAAE,cAAc,kBAAkB;EAExC,MAAM,EAAE,MAAM,UAAU,aAAa,qBAAqB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;EAElF,MAAM,cAAc,eAAe;GACjC,OAAO;IACL,IAAI;IACJ,IAAI,EAAE,KAAK,KAAK;IAChB,IAAI,GAAG,YAAY,SAAS,KAAK;IACjC,IAAI,GAAG,YAAY,SAAS,KAAK;IACjC,IAAI,GAAG,WAAW,MAAM,KAAK;GAC/B;EACF,CAAC;EAED,MAAM,eAAe,MAAa;GAChC,IAAI,SAAS,SAAS,SAAS,OAAO;GAEtC,MAAM,WAAY,EAAE,OAA4B;GAChD,MAAM,QAAQ;GACd,KAAK,UAAU,QAAQ;EACzB;;uBA5DE,mBAmBQ,SAAA;IAnBA,OAAK,eAAE,YAAA,KAAW;IAAG,SAAK,OAAA,OAAA,OAAA,KAAA,oBAAN,CAAA,GAAW,CAAA,MAAA,CAAA;;IACrC,mBAME,SAAA;KALA,MAAK;KACJ,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,QAAA,CAAA;KACZ,SAAS,MAAA;KACT,UAAU,MAAA,QAAA;KACV,SAAO;;IAEuD,QAAA,gBAAA,UAAA,GAAjE,mBAEO,QAAA;;KAFA,OAAK,eAAA,CAAG,MAAA,GAAA,CAAG,CAAC,EAAC,MAAA,GAAU,MAAA,GAAA,CAAG,CAAC,GAAE,YAAA,CAAc,MAAA,KAAK,CAAA,CAAA;uBAClD,QAAA,YAAY,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA;IAGjB,mBAEM,OAAA,EAFA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,QAAA,CAAA,EAAA,GAAA,CAChB,mBAAqC,QAAA,EAA9B,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,OAAA,CAAA,EAAA,GAAA,MAAA,CAAA,CAAA,GAAA,CAAA;IAGT,QAAA,cAAA,UAAA,GAAZ,mBAEO,QAAA;;KAFkB,OAAK,eAAA,CAAG,MAAA,GAAA,CAAG,CAAC,EAAC,MAAA,GAAU,MAAA,GAAA,CAAG,CAAC,GAAE,YAAa,MAAA,KAAK,CAAA,CAAA;uBACnE,QAAA,UAAU,GAAA,CAAA,KAAA,mBAAA,QAAA,IAAA"}
@@ -115,7 +115,10 @@
115
115
  .u-tabs-bar__item.is-active {
116
116
  color: var(--u-color-primary);
117
117
  background-color: var(--u-tabs-active-bg, var(--u-bg-color-top));
118
- box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(15, 23, 42, 0.06);
118
+ box-shadow: var(--u-shadow-sm);
119
+ }
120
+ .u-tabs-bar__item:focus-visible {
121
+ box-shadow: var(--u-focus-ring);
119
122
  }
120
123
  .u-tabs-bar__item-label {
121
124
  display: inline-flex;
@@ -143,10 +146,10 @@
143
146
  }
144
147
  .u-tabs-bar__close:hover {
145
148
  color: var(--u-text-color-title);
146
- background-color: rgba(15, 23, 42, 0.08);
149
+ background-color: var(--u-text-color-title-a-8);
147
150
  }
148
151
  .u-tabs-bar__close:active {
149
- background-color: rgba(15, 23, 42, 0.14);
152
+ background-color: var(--u-text-color-title-a-11);
150
153
  }
151
154
  .u-tabs-bar--horizontal .u-tabs-bar__item .u-tabs-bar__close {
152
155
  width: 0;
@@ -182,7 +185,7 @@
182
185
  .u-tabs-bar__nav:hover:not(:disabled) {
183
186
  color: var(--u-text-color-title);
184
187
  background-color: var(--u-tabs-active-bg, var(--u-bg-color-top));
185
- box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(15, 23, 42, 0.06);
188
+ box-shadow: var(--u-shadow-sm);
186
189
  }
187
190
  .u-tabs-bar__nav:disabled {
188
191
  cursor: not-allowed;
@@ -24,27 +24,27 @@
24
24
  .u-text.is-main-title {
25
25
  font-size: 18px;
26
26
  font-weight: 600;
27
- color: #333;
27
+ color: var(--u-text-color-title);
28
28
  }
29
29
  .u-text.is-title {
30
30
  font-size: 16px;
31
31
  font-weight: 600;
32
- color: #333;
32
+ color: var(--u-text-color-main);
33
33
  }
34
34
  .u-text.is-sub-title {
35
35
  font-size: 16px;
36
36
  font-weight: 500;
37
- color: #999;
37
+ color: var(--u-text-color-placeholder);
38
38
  }
39
39
  .u-text.is-content {
40
40
  font-size: 14px;
41
41
  font-weight: 300;
42
- color: #666;
42
+ color: var(--u-text-color-second);
43
43
  }
44
44
  .u-text.is-additional {
45
45
  font-size: 12px;
46
46
  font-weight: 300;
47
- color: #999;
47
+ color: var(--u-text-color-assist);
48
48
  }
49
49
  .u-text.is-italic {
50
50
  font-style: italic;
@@ -22,7 +22,7 @@
22
22
  position: absolute;
23
23
  left: 0;
24
24
  top: 0;
25
- box-shadow: var(--u-shadow);
25
+ box-shadow: var(--u-shadow-lg);
26
26
  border-radius: var(--u-radius-default);
27
27
  color: var(--u-text-color-main);
28
28
  }
@@ -40,7 +40,7 @@
40
40
  .u-tip__arrow {
41
41
  position: absolute;
42
42
  z-index: -1;
43
- box-shadow: var(--u-shadow);
43
+ box-shadow: var(--u-shadow-lg);
44
44
  background-color: var(--u-bg-color-top);
45
45
  transform: rotate(45deg);
46
46
  }
@@ -19,11 +19,11 @@ declare const __VLS_base: import("vue").DefineComponent<TreeProps, _TreeExposed,
19
19
  "onNode-contextmenu"?: ((event: MouseEvent, node: TreeNode<Record<string, any>>) => any) | undefined;
20
20
  "onSelected-synced"?: ((selected?: Record<string, any> | undefined) => any) | undefined;
21
21
  }>, {
22
- valueKey: string;
23
- labelKey: string;
24
- data: Record<string, any>[];
25
22
  expandOnClickNode: boolean;
23
+ labelKey: string;
24
+ valueKey: string;
26
25
  childrenKey: string;
26
+ data: Record<string, any>[];
27
27
  checkStrictly: boolean;
28
28
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
29
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -24,15 +24,15 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
24
24
  onClear?: (() => any) | undefined;
25
25
  "onUpdate:text"?: ((text?: string | undefined) => any) | undefined;
26
26
  }>, {
27
- valueKey: string;
27
+ expandAll: boolean;
28
28
  labelKey: string;
29
+ valueKey: string;
29
30
  clearable: boolean;
30
31
  placeholder: string;
31
32
  filterable: boolean;
32
33
  minWidth: string;
33
34
  disabled: boolean;
34
35
  readonly: boolean;
35
- expandAll: boolean;
36
36
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
37
37
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
38
38
  declare const _default: typeof __VLS_export;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veltra/desktop",
3
- "version": "1.2.34",
3
+ "version": "1.3.0",
4
4
  "files": [
5
5
  "dist",
6
6
  "src"
@@ -57,11 +57,11 @@
57
57
  "@cat-kit/core": ">=1.1.8",
58
58
  "@cat-kit/excel": ">=1.0.0",
59
59
  "@cat-kit/fe": "^1.1.8",
60
- "@veltra/compositions": "1.2.34",
61
- "@veltra/directives": "1.2.34",
62
- "@veltra/icons": "1.2.34",
63
- "@veltra/styles": "1.2.34",
64
- "@veltra/utils": "1.2.34",
60
+ "@veltra/compositions": "1.3.0",
61
+ "@veltra/directives": "1.3.0",
62
+ "@veltra/icons": "1.3.0",
63
+ "@veltra/styles": "1.3.0",
64
+ "@veltra/utils": "1.3.0",
65
65
  "vue": ">=3.5.39"
66
66
  },
67
67
  "devDependencies": {
@@ -10,11 +10,6 @@ $root-name: batch-edit;
10
10
  border-radius: fn.use-var(radius, default);
11
11
  min-height: 0;
12
12
 
13
- &:focus,
14
- &:focus-visible {
15
- outline: none;
16
- }
17
-
18
13
  // 根节点设 max-height 时,列表与侧栏表单均不超出该高度(内部各自滚动)
19
14
  > :not(.u-layout__resizer) {
20
15
  min-height: 0;
@@ -8,7 +8,6 @@ $root-name: button;
8
8
  @include m.b($root-name) {
9
9
  color: fn.component-var(button, default-color, fn.use-var(text-color, main));
10
10
  box-sizing: border-box;
11
- border-radius: 9999px;
12
11
  line-height: 1;
13
12
  outline: none;
14
13
  text-decoration: none;
@@ -21,9 +20,10 @@ $root-name: button;
21
20
  background-color: fn.component-var(button, default-bg, fn.use-var(color, default));
22
21
  box-shadow: fn.use-var(shadow, emboss);
23
22
  transition:
24
- background-color 0.25s,
25
- box-shadow 0.2s;
26
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
23
+ background-color fn.use-var(transition, fast) fn.use-var(transition, ease),
24
+ border-color fn.use-var(transition, fast) fn.use-var(transition, ease),
25
+ color fn.use-var(transition, fast) fn.use-var(transition, ease),
26
+ box-shadow fn.use-var(transition, fast) fn.use-var(transition, ease);
27
27
  -webkit-tap-highlight-color: transparent; /* For some Androids */
28
28
  gap: fn.use-var(gap-small);
29
29
 
@@ -42,6 +42,10 @@ $root-name: button;
42
42
  box-shadow: none;
43
43
  }
44
44
 
45
+ &:focus-visible {
46
+ box-shadow: fn.use-var(focus-ring);
47
+ }
48
+
45
49
  @include m.is(disabled, loading) {
46
50
  box-shadow: none !important;
47
51
  }
@@ -65,6 +69,7 @@ $root-name: button;
65
69
  height: fn.use-var(form-component-height, $size);
66
70
  line-height: fn.use-var(form-component-height, $size);
67
71
  font-size: fn.use-var(font-size-main, $size);
72
+ border-radius: fn.use-var(radius, $size);
68
73
 
69
74
  @include m.is(circle) {
70
75
  width: fn.use-var(form-component-height, $size);
@@ -197,11 +202,13 @@ $root-name: button;
197
202
  @include m.b($root-name) {
198
203
  border-radius: 0;
199
204
 
200
- &:first-child {
201
- border-radius: 9999px 0 0 9999px;
202
- }
203
- &:last-child {
204
- border-radius: 0 9999px 9999px 0;
205
+ @include m.size using ($size) {
206
+ &:first-child {
207
+ border-radius: fn.use-var(radius, $size) 0 0 fn.use-var(radius, $size);
208
+ }
209
+ &:last-child {
210
+ border-radius: 0 fn.use-var(radius, $size) fn.use-var(radius, $size) 0;
211
+ }
205
212
  }
206
213
  }
207
214
  }
@@ -27,6 +27,10 @@ $root-name: calendar;
27
27
  position: relative;
28
28
  @include m.flex($justify: center, $align: center);
29
29
 
30
+ &:hover {
31
+ background-color: fn.use-var(bg-color, hover);
32
+ }
33
+
30
34
  @include m.m(pre, next) {
31
35
  color: fn.use-var(text-color, disabled);
32
36
  }
@@ -7,12 +7,14 @@ $root-name: card;
7
7
  @include m.b($root-name) {
8
8
  border-radius: fn.use-var(radius, default);
9
9
  background-color: fn.use-var(bg-color, top);
10
- box-shadow: fn.use-var(shadow);
10
+ border: fn.use-var(border-muted);
11
+ box-shadow: fn.use-var(shadow, sm);
11
12
  backdrop-filter: fn.use-var(bg-filter);
12
13
  -webkit-backdrop-filter: fn.use-var(bg-filter);
13
14
  overflow: hidden;
14
15
 
15
16
  @include m.is(integrate) {
17
+ border: none;
16
18
  box-shadow: none;
17
19
  --u-card-header-bg: transparent;
18
20
  --u-card-action-bg: transparent;
@@ -27,7 +29,7 @@ $root-name: card;
27
29
  font-size: fn.use-var(font-size-main, $size);
28
30
 
29
31
  @include m.b(card__header, card__content, card__action) {
30
- padding: fn.use-var(gap, $size);
32
+ padding: fn.component-var(card, padding-#{$size}, fn.use-var(gap, $size));
31
33
  }
32
34
 
33
35
  @include m.bem($root-name, header) {
@@ -10,7 +10,7 @@
10
10
  vertical-align: middle;
11
11
  height: 24px;
12
12
  padding: 0 9px;
13
- color: #333;
13
+ color: fn.use-var(text-color, main);
14
14
  border: 1px solid fn.use-var(color-primary);
15
15
  border-radius: fn.use-var(radius-default);
16
16
  background: fn.use-var(color-primary-light-9);
@@ -24,4 +24,10 @@
24
24
  border: 1px solid fn.use-var(color-primary-dark-3);
25
25
  background-color: fn.use-var(color-primary-dark-3);
26
26
  }
27
+
28
+ @include m.is(disabled) {
29
+ cursor: not-allowed;
30
+ color: fn.use-var(text-color, disabled);
31
+ background-color: fn.use-var(color, disabled);
32
+ }
27
33
  }
@@ -1,5 +1,13 @@
1
1
  <template>
2
2
  <label :class="className">
3
+ <input
4
+ type="checkbox"
5
+ :class="cls.e('native')"
6
+ :checked="checked"
7
+ :disabled="disabled"
8
+ @click="handleInput"
9
+ />
10
+
3
11
  <span :class="cls.e('wrap')">
4
12
  <transition name="zoom-in" mode="out-in">
5
13
  <svg viewBox="0 0 64 64" v-if="checked" fill="currentColor">
@@ -11,8 +19,6 @@
11
19
  </transition>
12
20
  </span>
13
21
 
14
- <input type="checkbox" :checked="checked" :disabled="disabled" hidden @click="handleInput" />
15
-
16
22
  <span :class="cls.e('label')" v-if="$slots.default"><slot /> </span>
17
23
  </label>
18
24
  </template>