jky-component-lib 0.0.114 → 0.0.118

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.
@@ -1,3 +1,7 @@
1
1
 
2
- /* 轨迹回放组件不需要额外样式 */
3
- /* 所有样式通过 TailwindCSS 工具类或外部组件控制 */
2
+ /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
+ .amap-icon img,
4
+ .amap-marker-content img {
5
+ width: 25px;
6
+ height: 34px;
7
+ }
@@ -1,7 +1,3 @@
1
1
 
2
- /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
- .amap-icon img,
4
- .amap-marker-content img {
5
- width: 25px;
6
- height: 34px;
7
- }
2
+ /* 轨迹回放组件不需要额外样式 */
3
+ /* 所有样式通过 TailwindCSS 工具类或外部组件控制 */
@@ -226,11 +226,6 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
226
226
  fields?: any;
227
227
  }) => any) | undefined;
228
228
  }>, {
229
- size: import('element-plus').ComponentSize;
230
- grid: import('./types').GridConfig;
231
- gutter: number;
232
- defaultSpan: number;
233
- responsive: boolean;
234
229
  watchDeep: boolean;
235
230
  showFooter: boolean;
236
231
  footerClass: string;
@@ -39,24 +39,19 @@ var __async = (__this, __arguments, generator) => {
39
39
  };
40
40
  import { defineComponent, useModel, provide, useAttrs, ref, computed, watch, resolveComponent, openBlock, createBlock, unref, mergeProps, withCtx, createElementBlock, Fragment, renderList, createElementVNode, normalizeClass, createTextVNode, toDisplayString, createCommentVNode, createVNode, mergeModels } from "vue";
41
41
  import { ElForm } from "element-plus";
42
- import { omit } from "lodash-es";
43
42
  import _sfc_main$1 from "./FormItem.vue.js";
44
43
  /* empty css */
45
44
  const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
46
- name: "JkyForm"
47
- // inheritAttrs: false,
45
+ name: "JkyForm",
46
+ inheritAttrs: false
48
47
  }), {
49
48
  __name: "Form",
50
49
  props: /* @__PURE__ */ mergeModels({
50
+ formProps: {},
51
51
  items: {},
52
52
  showTitle: { type: Boolean },
53
53
  title: {},
54
- gutter: { default: 0 },
55
- defaultSpan: { default: 24 },
56
- responsive: { type: Boolean, default: true },
57
- grid: { type: [Boolean, Object], default: false },
58
- className: {},
59
- readonly: { type: Boolean },
54
+ disabled: { type: Boolean },
60
55
  watchDeep: { type: Boolean, default: true },
61
56
  showFooter: { type: Boolean, default: true },
62
57
  footerClass: { default: "" },
@@ -67,22 +62,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
67
62
  showCount: { default: 999 },
68
63
  onSubmit: {},
69
64
  onReset: {},
70
- model: {},
71
- rules: {},
72
- labelPosition: {},
73
- requireAsteriskPosition: {},
74
- labelWidth: {},
75
- labelSuffix: {},
76
- inline: { type: Boolean },
77
- inlineMessage: { type: Boolean },
78
- statusIcon: { type: Boolean },
79
- showMessage: { type: Boolean },
80
- validateOnRuleChange: { type: Boolean },
81
- hideRequiredAsterisk: { type: Boolean },
82
- scrollToError: { type: Boolean },
83
- scrollIntoViewOptions: { type: Boolean },
84
- size: { default: "default" },
85
- disabled: { type: Boolean }
65
+ inline: { type: Boolean }
86
66
  }, {
87
67
  "modelValue": { required: true, default: () => ({}) },
88
68
  "modelModifiers": {}
@@ -92,7 +72,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
92
72
  const props = __props;
93
73
  const emit = __emit;
94
74
  const modelValue = useModel(__props, "modelValue");
95
- const customProps = ["items", "showTitle", "title", "gutter", "defaultSpan", "responsive", "watchDeep", "grid", "showFooter", "submitText", "cancelText", "submitDisabled", "cancelDisabled", "showCount"];
96
75
  provide("formModel", modelValue);
97
76
  const attrs = useAttrs();
98
77
  const formRef = ref();
@@ -109,23 +88,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
109
88
  const _showMoreButton = computed(() => {
110
89
  return props.items && props.items.length > props.showCount;
111
90
  });
91
+ const innerProps = computed(() => {
92
+ const _attrs = attrs["form-props"] || attrs.formProps || {};
93
+ return __spreadValues(__spreadValues(__spreadValues({}, attrs), _attrs), props.formProps);
94
+ });
112
95
  function toggleShowMore() {
113
96
  showAllItems.value = !showAllItems.value;
114
97
  }
115
- const _gridStyle = computed(() => {
116
- if (!attrs.inline || !props.grid || typeof props.grid === "boolean") {
117
- return {};
118
- }
119
- const style = {};
120
- const breakpoints = ["xs", "sm", "md", "lg", "xl", "2xl", "3xl"];
121
- breakpoints.forEach((breakpoint) => {
122
- const columns = props.grid[breakpoint];
123
- if (columns !== void 0) {
124
- style[`--jky-form-grid-cols-${breakpoint}`] = columns;
125
- }
126
- });
127
- return style;
128
- });
129
98
  watch(
130
99
  () => modelValue.value,
131
100
  (newVal, oldVal) => {
@@ -189,12 +158,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
189
158
  const _component_ElFormItem = resolveComponent("ElFormItem");
190
159
  return openBlock(), createBlock(unref(ElForm), mergeProps({
191
160
  ref_key: "formRef",
192
- ref: formRef
193
- }, unref(omit)(props, customProps), {
194
- class: ["jky-form", [_ctx.$attrs.inline && "jky-form--inline", props.grid && "jky-form--grid"]],
161
+ ref: formRef,
162
+ class: "jky-form",
195
163
  model: modelValue.value,
196
- style: [_gridStyle.value]
197
- }), {
164
+ inline: props.inline
165
+ }, innerProps.value), {
198
166
  default: withCtx(() => [
199
167
  (openBlock(true), createElementBlock(Fragment, null, renderList(_visibleItems.value, (item) => {
200
168
  return openBlock(), createBlock(_sfc_main$1, {
@@ -202,57 +170,59 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
202
170
  field: item.field,
203
171
  config: item,
204
172
  model: modelValue.value,
205
- readonly: __props.readonly,
206
173
  disabled: __props.disabled
207
- }, null, 8, ["field", "config", "model", "readonly", "disabled"]);
174
+ }, null, 8, ["field", "config", "model", "disabled"]);
208
175
  }), 128)),
209
176
  _showMoreButton.value || props.showFooter ? (openBlock(), createBlock(_component_ElFormItem, {
210
177
  key: 0,
211
178
  "label-width": 0
212
179
  }, {
213
- default: withCtx(() => [
214
- createElementVNode("div", {
215
- class: normalizeClass(["w-full flex gap-2", [props.grid && _ctx.$attrs.inline ? "justify-center" : "justify-end", props.footerClass]])
216
- }, [
217
- _showMoreButton.value ? (openBlock(), createBlock(_component_ElButton, {
218
- key: 0,
219
- type: "primary",
220
- onClick: toggleShowMore
221
- }, {
222
- default: withCtx(() => [
223
- createTextVNode(toDisplayString(showAllItems.value ? "收起" : `展开 (${props.items.length - props.showCount})`), 1)
224
- ]),
225
- _: 1
226
- })) : createCommentVNode("", true),
227
- props.showFooter ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
228
- createVNode(_component_ElButton, {
229
- disabled: __props.cancelDisabled || __props.disabled,
230
- onClick: handleCancel
231
- }, {
232
- default: withCtx(() => [
233
- createTextVNode(toDisplayString(__props.cancelText), 1)
234
- ]),
235
- _: 1
236
- }, 8, ["disabled"]),
237
- createVNode(_component_ElButton, {
180
+ default: withCtx(() => {
181
+ var _a;
182
+ return [
183
+ createElementVNode("div", {
184
+ class: normalizeClass(["w-full flex gap-2", [__props.inline ? "justify-start" : "justify-end", __props.footerClass]])
185
+ }, [
186
+ _showMoreButton.value ? (openBlock(), createBlock(_component_ElButton, {
187
+ key: 0,
238
188
  type: "primary",
239
- disabled: __props.submitDisabled || __props.disabled,
240
- loading: false,
241
- onClick: handleSubmit
189
+ onClick: toggleShowMore
242
190
  }, {
243
191
  default: withCtx(() => [
244
- createTextVNode(toDisplayString(__props.submitText), 1)
192
+ createTextVNode(toDisplayString(showAllItems.value ? "收起" : `展开 (${props.items.length - props.showCount})`), 1)
245
193
  ]),
246
194
  _: 1
247
- }, 8, ["disabled"])
248
- ], 64)) : createCommentVNode("", true)
249
- ], 2)
250
- ]),
195
+ })) : createCommentVNode("", true),
196
+ props.showFooter ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
197
+ createVNode(_component_ElButton, {
198
+ disabled: (_a = props.cancelDisabled) != null ? _a : props.disabled,
199
+ onClick: handleCancel
200
+ }, {
201
+ default: withCtx(() => [
202
+ createTextVNode(toDisplayString(__props.cancelText), 1)
203
+ ]),
204
+ _: 1
205
+ }, 8, ["disabled"]),
206
+ createVNode(_component_ElButton, {
207
+ type: "primary",
208
+ disabled: props.submitDisabled || props.disabled,
209
+ loading: false,
210
+ onClick: handleSubmit
211
+ }, {
212
+ default: withCtx(() => [
213
+ createTextVNode(toDisplayString(__props.submitText), 1)
214
+ ]),
215
+ _: 1
216
+ }, 8, ["disabled"])
217
+ ], 64)) : createCommentVNode("", true)
218
+ ], 2)
219
+ ];
220
+ }),
251
221
  _: 1
252
222
  })) : createCommentVNode("", true)
253
223
  ]),
254
224
  _: 1
255
- }, 16, ["model", "class", "style"]);
225
+ }, 16, ["model", "inline"]);
256
226
  };
257
227
  }
258
228
  }));
@@ -1,6 +1,6 @@
1
1
  import { FormItemProps } from './types';
2
2
  declare const _default: import('vue').DefineComponent<FormItemProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<FormItemProps> & Readonly<{}>, {
3
3
  disabled: boolean;
4
- readonly: boolean;
4
+ readonly: boolean | ((context: import('./types').FormItemPropsContext<T>) => boolean);
5
5
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
6
  export default _default;
@@ -84,8 +84,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
84
84
  field: {},
85
85
  config: {},
86
86
  model: {},
87
- readonly: { type: Boolean, default: false },
87
+ readonly: { type: [Boolean, Function], default: false },
88
88
  disabled: { type: Boolean, default: false },
89
+ span: {},
89
90
  label: {},
90
91
  labelWidth: {},
91
92
  labelPosition: {},
@@ -4,15 +4,6 @@
4
4
  --jky-form-item-border-width: 4px;
5
5
  --jky-form-item-border-color: var(--el-color-primary);
6
6
  --jky-form-item-bg-color: rgba(var(--el-color-primary-rgb), 0.5);
7
-
8
- /* Grid 布局默认列数(可通过响应式变量覆盖) */
9
- --jky-form-grid-cols-xs: 1;
10
- --jky-form-grid-cols-sm: 2;
11
- --jky-form-grid-cols-md: 2;
12
- --jky-form-grid-cols-lg: 3;
13
- --jky-form-grid-cols-xl: 3;
14
- --jky-form-grid-cols-2xl: 4;
15
- --jky-form-grid-cols-3xl: 4;
16
7
  }
17
8
 
18
9
 
@@ -20,50 +11,3 @@
20
11
  .jky-form {
21
12
  /* 表单容器样式 */
22
13
  }
23
-
24
-
25
- /* Grid 布局模式 */
26
- .jky-form--grid {
27
- display: grid;
28
- grid-template-columns: repeat(var(--jky-form-grid-cols-xs), minmax(0, 1fr));
29
- gap: var(--el-form-item-gutter, 16px);
30
- }
31
- .el-form--inline.jky-form--grid .el-form-item {
32
- margin-right: 0;
33
- .el-form-item__content {
34
- align-items: flex-start;
35
- }
36
- }
37
-
38
-
39
- /* 响应式断点 */
40
- @media (min-width: 640px) {
41
- .jky-form--grid {
42
- grid-template-columns: repeat(var(--jky-form-grid-cols-sm, var(--jky-form-grid-cols-xs)), minmax(0, 1fr));
43
- }
44
- }
45
- @media (min-width: 768px) {
46
- .jky-form--grid {
47
- grid-template-columns: repeat(var(--jky-form-grid-cols-md, var(--jky-form-grid-cols-sm)), minmax(0, 1fr));
48
- }
49
- }
50
- @media (min-width: 1024px) {
51
- .jky-form--grid {
52
- grid-template-columns: repeat(var(--jky-form-grid-cols-lg, var(--jky-form-grid-cols-md)), minmax(0, 1fr));
53
- }
54
- }
55
- @media (min-width: 1280px) {
56
- .jky-form--grid {
57
- grid-template-columns: repeat(var(--jky-form-grid-cols-xl, var(--jky-form-grid-cols-lg)), minmax(0, 1fr));
58
- }
59
- }
60
- @media (min-width: 1536px) {
61
- .jky-form--grid {
62
- grid-template-columns: repeat(var(--jky-form-grid-cols-2xl, var(--jky-form-grid-cols-xl)), minmax(0, 1fr));
63
- }
64
- }
65
- @media (min-width: 1920px) {
66
- .jky-form--grid {
67
- grid-template-columns: repeat(var(--jky-form-grid-cols-3xl, var(--jky-form-grid-cols-2xl)), minmax(0, 1fr));
68
- }
69
- }
@@ -1,4 +1,4 @@
1
- const version = "0.0.114";
1
+ const version = "0.0.118";
2
2
  export {
3
3
  version
4
4
  };
@@ -54,7 +54,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
54
54
  asideWithScrollbar: { type: Boolean, default: true },
55
55
  mainClass: {},
56
56
  mainWithCard: { type: Boolean, default: false },
57
- mainWithScrollbar: { type: Boolean, default: false },
57
+ mainWithScrollbar: { type: Boolean, default: true },
58
58
  contentClass: {},
59
59
  cachable: { type: Boolean, default: true },
60
60
  transitionName: { default: "fade" },
@@ -299,7 +299,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
299
299
  default: withCtx(() => [
300
300
  createVNode(_component_ElAutoResizer, null, {
301
301
  default: withCtx(({ height, width }) => [
302
- props.mainWithScrollbar ? (openBlock(), createBlock(unref(ElScrollbar), { key: 0 }, {
302
+ props.mainWithScrollbar ? (openBlock(), createBlock(unref(ElScrollbar), {
303
+ key: 0,
304
+ "view-class": "h-full"
305
+ }, {
303
306
  default: withCtx(() => [
304
307
  createVNode(unref(RouterView), null, {
305
308
  default: withCtx(({ Component, route: currentRoute }) => [
@@ -7,7 +7,11 @@
7
7
  .el-menu {
8
8
  border-right: none;
9
9
  }
10
-
10
+ .el-auto-resizer {
11
+ .el-scrollbar__view {
12
+ height: 100%;
13
+ }
14
+ }
11
15
  /* 顶部激活菜单项的自定义样式 */
12
16
  .jky-page-layout__active-top-menu {
13
17
  /* 这里可以添加自定义样式,例如: */
@@ -236,11 +236,6 @@ declare function __VLS_template(): {
236
236
  fields?: any;
237
237
  }) => any;
238
238
  }, import('vue').PublicProps, {
239
- size: import('element-plus').ComponentSize;
240
- grid: import('../form').GridConfig;
241
- gutter: number;
242
- defaultSpan: number;
243
- responsive: boolean;
244
239
  watchDeep: boolean;
245
240
  showFooter: boolean;
246
241
  footerClass: string;
@@ -569,11 +564,6 @@ declare function __VLS_template(): {
569
564
  };
570
565
  }) | undefined;
571
566
  }, {}, {}, {}, {
572
- size: import('element-plus').ComponentSize;
573
- grid: import('../form').GridConfig;
574
- gutter: number;
575
- defaultSpan: number;
576
- responsive: boolean;
577
567
  watchDeep: boolean;
578
568
  showFooter: boolean;
579
569
  footerClass: string;
@@ -2992,11 +2982,6 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
2992
2982
  fields?: any;
2993
2983
  }) => any;
2994
2984
  }, import('vue').PublicProps, {
2995
- size: import('element-plus').ComponentSize;
2996
- grid: import('../form').GridConfig;
2997
- gutter: number;
2998
- defaultSpan: number;
2999
- responsive: boolean;
3000
2985
  watchDeep: boolean;
3001
2986
  showFooter: boolean;
3002
2987
  footerClass: string;
@@ -3325,11 +3310,6 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
3325
3310
  };
3326
3311
  }) | undefined;
3327
3312
  }, {}, {}, {}, {
3328
- size: import('element-plus').ComponentSize;
3329
- grid: import('../form').GridConfig;
3330
- gutter: number;
3331
- defaultSpan: number;
3332
- responsive: boolean;
3333
3313
  watchDeep: boolean;
3334
3314
  showFooter: boolean;
3335
3315
  footerClass: string;
@@ -152,7 +152,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
152
152
  emit("refresh");
153
153
  }
154
154
  }
155
+ const sortValue = ref("desc");
155
156
  const defaultRightButtons = computed(() => {
157
+ const sortButton = {
158
+ label: "排序",
159
+ icon: sortValue.value === "desc" ? "icon-[ph--sort-descending-bold]" : "icon-[ph--sort-ascending-bold]",
160
+ class: "ml-3",
161
+ onClick() {
162
+ sortValue.value = sortValue.value === "desc" ? "asc" : "desc";
163
+ handleRefresh();
164
+ }
165
+ };
156
166
  const refreshButton = {
157
167
  label: "刷新",
158
168
  icon: "icon-[mdi--refresh]",
@@ -165,7 +175,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
165
175
  class: "ml-3",
166
176
  onClick: () => toggleFullscreen()
167
177
  };
168
- return [refreshButton, fullscreenButton];
178
+ return [sortButton, refreshButton, fullscreenButton];
169
179
  });
170
180
  const showPagination = computed(() => {
171
181
  var _a, _b;
@@ -195,7 +205,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
195
205
  const responseProps = ((_b = props.dataSource) == null ? void 0 : _b.responseProps) || {};
196
206
  const pageNoField = responseProps.pageNoField || "pageNo";
197
207
  const pageSizeField = responseProps.pageSizeField || "pageSize";
208
+ const orderField = responseProps.orderField || "order";
198
209
  const baseParams = {
210
+ [orderField]: sortValue.value,
199
211
  [pageNoField]: pageNo,
200
212
  [pageSizeField]: pageSize
201
213
  };
@@ -376,7 +388,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
376
388
  createVNode(unref(JkyForm), mergeProps({
377
389
  ref_key: "formRef",
378
390
  ref: formRef
379
- }, __spreadValues({ inline: true, grid: true }, __props.formProps), {
391
+ }, __spreadValues({ inline: true }, __props.formProps), {
380
392
  modelValue: form.value,
381
393
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => form.value = $event),
382
394
  "show-footer": true,
@@ -271,11 +271,6 @@ declare const _default: import('vue').DefineComponent<PageTableV2Props, {
271
271
  fields?: any;
272
272
  }) => any;
273
273
  }, import('vue').PublicProps, {
274
- size: import('element-plus').ComponentSize;
275
- grid: import('../form').GridConfig;
276
- gutter: number;
277
- defaultSpan: number;
278
- responsive: boolean;
279
274
  watchDeep: boolean;
280
275
  showFooter: boolean;
281
276
  footerClass: string;
@@ -604,11 +599,6 @@ declare const _default: import('vue').DefineComponent<PageTableV2Props, {
604
599
  };
605
600
  }) | undefined;
606
601
  }, {}, {}, {}, {
607
- size: import('element-plus').ComponentSize;
608
- grid: import('../form').GridConfig;
609
- gutter: number;
610
- defaultSpan: number;
611
- responsive: boolean;
612
602
  watchDeep: boolean;
613
603
  showFooter: boolean;
614
604
  footerClass: string;
package/dist/es/style.css CHANGED
@@ -1562,6 +1562,38 @@
1562
1562
  mask-repeat: no-repeat;
1563
1563
  }
1564
1564
 
1565
+ .icon-\[ph--sort-ascending-bold\] {
1566
+ width: 1em;
1567
+ height: 1em;
1568
+ -webkit-mask-image: var(--svg);
1569
+ -webkit-mask-image: var(--svg);
1570
+ -webkit-mask-image: var(--svg);
1571
+ mask-image: var(--svg);
1572
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cpath fill='black' d='M128 128a12 12 0 0 1-12 12H48a12 12 0 0 1 0-24h68a12 12 0 0 1 12 12M48 76h132a12 12 0 0 0 0-24H48a12 12 0 0 0 0 24m52 104H48a12 12 0 0 0 0 24h52a12 12 0 0 0 0-24m132.49-20.49a12 12 0 0 0-17 0L196 179v-67a12 12 0 0 0-24 0v67l-19.51-19.52a12 12 0 0 0-17 17l40 40a12 12 0 0 0 17 0l40-40a12 12 0 0 0 0-16.97'/%3E%3C/svg%3E");
1573
+ background-color: currentColor;
1574
+ display: inline-block;
1575
+ -webkit-mask-size: 100% 100%;
1576
+ mask-size: 100% 100%;
1577
+ -webkit-mask-repeat: no-repeat;
1578
+ mask-repeat: no-repeat;
1579
+ }
1580
+
1581
+ .icon-\[ph--sort-descending-bold\] {
1582
+ width: 1em;
1583
+ height: 1em;
1584
+ -webkit-mask-image: var(--svg);
1585
+ -webkit-mask-image: var(--svg);
1586
+ -webkit-mask-image: var(--svg);
1587
+ mask-image: var(--svg);
1588
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cpath fill='black' d='M36 128a12 12 0 0 1 12-12h68a12 12 0 0 1 0 24H48a12 12 0 0 1-12-12m12-52h52a12 12 0 0 0 0-24H48a12 12 0 0 0 0 24m132 104H48a12 12 0 0 0 0 24h132a12 12 0 0 0 0-24m52.49-100.49l-40-40a12 12 0 0 0-17 0l-40 40a12 12 0 0 0 17 17L172 77v67a12 12 0 0 0 24 0V77l19.51 19.52a12 12 0 0 0 17-17Z'/%3E%3C/svg%3E");
1589
+ background-color: currentColor;
1590
+ display: inline-block;
1591
+ -webkit-mask-size: 100% 100%;
1592
+ mask-size: 100% 100%;
1593
+ -webkit-mask-repeat: no-repeat;
1594
+ mask-repeat: no-repeat;
1595
+ }
1596
+
1565
1597
  .icon-\[radix-icons--exit-full-screen\] {
1566
1598
  width: 1em;
1567
1599
  height: 1em;
@@ -1867,6 +1899,10 @@
1867
1899
  justify-content: flex-end;
1868
1900
  }
1869
1901
 
1902
+ .justify-start {
1903
+ justify-content: flex-start;
1904
+ }
1905
+
1870
1906
  .gap-1 {
1871
1907
  gap: calc(var(--spacing) * 1);
1872
1908
  }
@@ -3015,6 +3051,12 @@
3015
3051
  grid-template-columns: repeat(4, minmax(0, 1fr));
3016
3052
  }
3017
3053
  }
3054
+
3055
+ @media (min-width: 80rem) {
3056
+ .xl\:grid-cols-2 {
3057
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3058
+ }
3059
+ }
3018
3060
  }
3019
3061
 
3020
3062
  @property --tw-translate-x {
@@ -1 +1 @@
1
- .jky-add-input,:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}.jky-form,:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5);--jky-form-grid-cols-xs:1;--jky-form-grid-cols-sm:2;--jky-form-grid-cols-md:2;--jky-form-grid-cols-lg:3;--jky-form-grid-cols-xl:3;--jky-form-grid-cols-2xl:4;--jky-form-grid-cols-3xl:4}.jky-form--grid{display:grid;gap:var(--el-form-item-gutter,16px);grid-template-columns:repeat(var(--jky-form-grid-cols-xs),minmax(0,1fr))}.el-form--inline.jky-form--grid .el-form-item{margin-right:0;.el-form-item__content{align-items:flex-start}}@media (min-width:640px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-sm,var(--jky-form-grid-cols-xs)),minmax(0,1fr))}}@media (min-width:768px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-md,var(--jky-form-grid-cols-sm)),minmax(0,1fr))}}@media (min-width:1024px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-lg,var(--jky-form-grid-cols-md)),minmax(0,1fr))}}@media (min-width:1280px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-xl,var(--jky-form-grid-cols-lg)),minmax(0,1fr))}}@media (min-width:1536px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-2xl,var(--jky-form-grid-cols-xl)),minmax(0,1fr))}}@media (min-width:1920px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-3xl,var(--jky-form-grid-cols-2xl)),minmax(0,1fr))}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
1
+ .jky-add-input,:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}.jky-form,:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5)}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}.el-auto-resizer{.el-scrollbar__view{height:100%}}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
@@ -1,3 +1,7 @@
1
1
 
2
- /* 轨迹回放组件不需要额外样式 */
3
- /* 所有样式通过 TailwindCSS 工具类或外部组件控制 */
2
+ /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
+ .amap-icon img,
4
+ .amap-marker-content img {
5
+ width: 25px;
6
+ height: 34px;
7
+ }
@@ -1,7 +1,3 @@
1
1
 
2
- /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
- .amap-icon img,
4
- .amap-marker-content img {
5
- width: 25px;
6
- height: 34px;
7
- }
2
+ /* 轨迹回放组件不需要额外样式 */
3
+ /* 所有样式通过 TailwindCSS 工具类或外部组件控制 */
@@ -226,11 +226,6 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
226
226
  fields?: any;
227
227
  }) => any) | undefined;
228
228
  }>, {
229
- size: import('element-plus').ComponentSize;
230
- grid: import('./types').GridConfig;
231
- gutter: number;
232
- defaultSpan: number;
233
- responsive: boolean;
234
229
  watchDeep: boolean;
235
230
  showFooter: boolean;
236
231
  footerClass: string;
@@ -41,24 +41,19 @@ var __async = (__this, __arguments, generator) => {
41
41
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
42
42
  const vue = require("vue");
43
43
  const ElementPlus = require("element-plus");
44
- const lodashEs = require("lodash-es");
45
44
  const FormItem_vue_vue_type_script_setup_true_lang = require("./FormItem.vue.js");
46
45
  ;/* empty css */
47
46
  const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, {
48
- name: "JkyForm"
49
- // inheritAttrs: false,
47
+ name: "JkyForm",
48
+ inheritAttrs: false
50
49
  }), {
51
50
  __name: "Form",
52
51
  props: /* @__PURE__ */ vue.mergeModels({
52
+ formProps: {},
53
53
  items: {},
54
54
  showTitle: { type: Boolean },
55
55
  title: {},
56
- gutter: { default: 0 },
57
- defaultSpan: { default: 24 },
58
- responsive: { type: Boolean, default: true },
59
- grid: { type: [Boolean, Object], default: false },
60
- className: {},
61
- readonly: { type: Boolean },
56
+ disabled: { type: Boolean },
62
57
  watchDeep: { type: Boolean, default: true },
63
58
  showFooter: { type: Boolean, default: true },
64
59
  footerClass: { default: "" },
@@ -69,22 +64,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
69
64
  showCount: { default: 999 },
70
65
  onSubmit: {},
71
66
  onReset: {},
72
- model: {},
73
- rules: {},
74
- labelPosition: {},
75
- requireAsteriskPosition: {},
76
- labelWidth: {},
77
- labelSuffix: {},
78
- inline: { type: Boolean },
79
- inlineMessage: { type: Boolean },
80
- statusIcon: { type: Boolean },
81
- showMessage: { type: Boolean },
82
- validateOnRuleChange: { type: Boolean },
83
- hideRequiredAsterisk: { type: Boolean },
84
- scrollToError: { type: Boolean },
85
- scrollIntoViewOptions: { type: Boolean },
86
- size: { default: "default" },
87
- disabled: { type: Boolean }
67
+ inline: { type: Boolean }
88
68
  }, {
89
69
  "modelValue": { required: true, default: () => ({}) },
90
70
  "modelModifiers": {}
@@ -94,7 +74,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
94
74
  const props = __props;
95
75
  const emit = __emit;
96
76
  const modelValue = vue.useModel(__props, "modelValue");
97
- const customProps = ["items", "showTitle", "title", "gutter", "defaultSpan", "responsive", "watchDeep", "grid", "showFooter", "submitText", "cancelText", "submitDisabled", "cancelDisabled", "showCount"];
98
77
  vue.provide("formModel", modelValue);
99
78
  const attrs = vue.useAttrs();
100
79
  const formRef = vue.ref();
@@ -111,23 +90,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
111
90
  const _showMoreButton = vue.computed(() => {
112
91
  return props.items && props.items.length > props.showCount;
113
92
  });
93
+ const innerProps = vue.computed(() => {
94
+ const _attrs = attrs["form-props"] || attrs.formProps || {};
95
+ return __spreadValues(__spreadValues(__spreadValues({}, attrs), _attrs), props.formProps);
96
+ });
114
97
  function toggleShowMore() {
115
98
  showAllItems.value = !showAllItems.value;
116
99
  }
117
- const _gridStyle = vue.computed(() => {
118
- if (!attrs.inline || !props.grid || typeof props.grid === "boolean") {
119
- return {};
120
- }
121
- const style = {};
122
- const breakpoints = ["xs", "sm", "md", "lg", "xl", "2xl", "3xl"];
123
- breakpoints.forEach((breakpoint) => {
124
- const columns = props.grid[breakpoint];
125
- if (columns !== void 0) {
126
- style[`--jky-form-grid-cols-${breakpoint}`] = columns;
127
- }
128
- });
129
- return style;
130
- });
131
100
  vue.watch(
132
101
  () => modelValue.value,
133
102
  (newVal, oldVal) => {
@@ -191,12 +160,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
191
160
  const _component_ElFormItem = vue.resolveComponent("ElFormItem");
192
161
  return vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElForm), vue.mergeProps({
193
162
  ref_key: "formRef",
194
- ref: formRef
195
- }, vue.unref(lodashEs.omit)(props, customProps), {
196
- class: ["jky-form", [_ctx.$attrs.inline && "jky-form--inline", props.grid && "jky-form--grid"]],
163
+ ref: formRef,
164
+ class: "jky-form",
197
165
  model: modelValue.value,
198
- style: [_gridStyle.value]
199
- }), {
166
+ inline: props.inline
167
+ }, innerProps.value), {
200
168
  default: vue.withCtx(() => [
201
169
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_visibleItems.value, (item) => {
202
170
  return vue.openBlock(), vue.createBlock(FormItem_vue_vue_type_script_setup_true_lang.default, {
@@ -204,57 +172,59 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
204
172
  field: item.field,
205
173
  config: item,
206
174
  model: modelValue.value,
207
- readonly: __props.readonly,
208
175
  disabled: __props.disabled
209
- }, null, 8, ["field", "config", "model", "readonly", "disabled"]);
176
+ }, null, 8, ["field", "config", "model", "disabled"]);
210
177
  }), 128)),
211
178
  _showMoreButton.value || props.showFooter ? (vue.openBlock(), vue.createBlock(_component_ElFormItem, {
212
179
  key: 0,
213
180
  "label-width": 0
214
181
  }, {
215
- default: vue.withCtx(() => [
216
- vue.createElementVNode("div", {
217
- class: vue.normalizeClass(["w-full flex gap-2", [props.grid && _ctx.$attrs.inline ? "justify-center" : "justify-end", props.footerClass]])
218
- }, [
219
- _showMoreButton.value ? (vue.openBlock(), vue.createBlock(_component_ElButton, {
220
- key: 0,
221
- type: "primary",
222
- onClick: toggleShowMore
223
- }, {
224
- default: vue.withCtx(() => [
225
- vue.createTextVNode(vue.toDisplayString(showAllItems.value ? "收起" : `展开 (${props.items.length - props.showCount})`), 1)
226
- ]),
227
- _: 1
228
- })) : vue.createCommentVNode("", true),
229
- props.showFooter ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
230
- vue.createVNode(_component_ElButton, {
231
- disabled: __props.cancelDisabled || __props.disabled,
232
- onClick: handleCancel
233
- }, {
234
- default: vue.withCtx(() => [
235
- vue.createTextVNode(vue.toDisplayString(__props.cancelText), 1)
236
- ]),
237
- _: 1
238
- }, 8, ["disabled"]),
239
- vue.createVNode(_component_ElButton, {
182
+ default: vue.withCtx(() => {
183
+ var _a;
184
+ return [
185
+ vue.createElementVNode("div", {
186
+ class: vue.normalizeClass(["w-full flex gap-2", [__props.inline ? "justify-start" : "justify-end", __props.footerClass]])
187
+ }, [
188
+ _showMoreButton.value ? (vue.openBlock(), vue.createBlock(_component_ElButton, {
189
+ key: 0,
240
190
  type: "primary",
241
- disabled: __props.submitDisabled || __props.disabled,
242
- loading: false,
243
- onClick: handleSubmit
191
+ onClick: toggleShowMore
244
192
  }, {
245
193
  default: vue.withCtx(() => [
246
- vue.createTextVNode(vue.toDisplayString(__props.submitText), 1)
194
+ vue.createTextVNode(vue.toDisplayString(showAllItems.value ? "收起" : `展开 (${props.items.length - props.showCount})`), 1)
247
195
  ]),
248
196
  _: 1
249
- }, 8, ["disabled"])
250
- ], 64)) : vue.createCommentVNode("", true)
251
- ], 2)
252
- ]),
197
+ })) : vue.createCommentVNode("", true),
198
+ props.showFooter ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
199
+ vue.createVNode(_component_ElButton, {
200
+ disabled: (_a = props.cancelDisabled) != null ? _a : props.disabled,
201
+ onClick: handleCancel
202
+ }, {
203
+ default: vue.withCtx(() => [
204
+ vue.createTextVNode(vue.toDisplayString(__props.cancelText), 1)
205
+ ]),
206
+ _: 1
207
+ }, 8, ["disabled"]),
208
+ vue.createVNode(_component_ElButton, {
209
+ type: "primary",
210
+ disabled: props.submitDisabled || props.disabled,
211
+ loading: false,
212
+ onClick: handleSubmit
213
+ }, {
214
+ default: vue.withCtx(() => [
215
+ vue.createTextVNode(vue.toDisplayString(__props.submitText), 1)
216
+ ]),
217
+ _: 1
218
+ }, 8, ["disabled"])
219
+ ], 64)) : vue.createCommentVNode("", true)
220
+ ], 2)
221
+ ];
222
+ }),
253
223
  _: 1
254
224
  })) : vue.createCommentVNode("", true)
255
225
  ]),
256
226
  _: 1
257
- }, 16, ["model", "class", "style"]);
227
+ }, 16, ["model", "inline"]);
258
228
  };
259
229
  }
260
230
  }));
@@ -1,6 +1,6 @@
1
1
  import { FormItemProps } from './types';
2
2
  declare const _default: import('vue').DefineComponent<FormItemProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<FormItemProps> & Readonly<{}>, {
3
3
  disabled: boolean;
4
- readonly: boolean;
4
+ readonly: boolean | ((context: import('./types').FormItemPropsContext<T>) => boolean);
5
5
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
6
  export default _default;
@@ -86,8 +86,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
86
86
  field: {},
87
87
  config: {},
88
88
  model: {},
89
- readonly: { type: Boolean, default: false },
89
+ readonly: { type: [Boolean, Function], default: false },
90
90
  disabled: { type: Boolean, default: false },
91
+ span: {},
91
92
  label: {},
92
93
  labelWidth: {},
93
94
  labelPosition: {},
@@ -4,15 +4,6 @@
4
4
  --jky-form-item-border-width: 4px;
5
5
  --jky-form-item-border-color: var(--el-color-primary);
6
6
  --jky-form-item-bg-color: rgba(var(--el-color-primary-rgb), 0.5);
7
-
8
- /* Grid 布局默认列数(可通过响应式变量覆盖) */
9
- --jky-form-grid-cols-xs: 1;
10
- --jky-form-grid-cols-sm: 2;
11
- --jky-form-grid-cols-md: 2;
12
- --jky-form-grid-cols-lg: 3;
13
- --jky-form-grid-cols-xl: 3;
14
- --jky-form-grid-cols-2xl: 4;
15
- --jky-form-grid-cols-3xl: 4;
16
7
  }
17
8
 
18
9
 
@@ -20,50 +11,3 @@
20
11
  .jky-form {
21
12
  /* 表单容器样式 */
22
13
  }
23
-
24
-
25
- /* Grid 布局模式 */
26
- .jky-form--grid {
27
- display: grid;
28
- grid-template-columns: repeat(var(--jky-form-grid-cols-xs), minmax(0, 1fr));
29
- gap: var(--el-form-item-gutter, 16px);
30
- }
31
- .el-form--inline.jky-form--grid .el-form-item {
32
- margin-right: 0;
33
- .el-form-item__content {
34
- align-items: flex-start;
35
- }
36
- }
37
-
38
-
39
- /* 响应式断点 */
40
- @media (min-width: 640px) {
41
- .jky-form--grid {
42
- grid-template-columns: repeat(var(--jky-form-grid-cols-sm, var(--jky-form-grid-cols-xs)), minmax(0, 1fr));
43
- }
44
- }
45
- @media (min-width: 768px) {
46
- .jky-form--grid {
47
- grid-template-columns: repeat(var(--jky-form-grid-cols-md, var(--jky-form-grid-cols-sm)), minmax(0, 1fr));
48
- }
49
- }
50
- @media (min-width: 1024px) {
51
- .jky-form--grid {
52
- grid-template-columns: repeat(var(--jky-form-grid-cols-lg, var(--jky-form-grid-cols-md)), minmax(0, 1fr));
53
- }
54
- }
55
- @media (min-width: 1280px) {
56
- .jky-form--grid {
57
- grid-template-columns: repeat(var(--jky-form-grid-cols-xl, var(--jky-form-grid-cols-lg)), minmax(0, 1fr));
58
- }
59
- }
60
- @media (min-width: 1536px) {
61
- .jky-form--grid {
62
- grid-template-columns: repeat(var(--jky-form-grid-cols-2xl, var(--jky-form-grid-cols-xl)), minmax(0, 1fr));
63
- }
64
- }
65
- @media (min-width: 1920px) {
66
- .jky-form--grid {
67
- grid-template-columns: repeat(var(--jky-form-grid-cols-3xl, var(--jky-form-grid-cols-2xl)), minmax(0, 1fr));
68
- }
69
- }
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const version = "0.0.114";
3
+ const version = "0.0.118";
4
4
  exports.version = version;
@@ -56,7 +56,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
56
56
  asideWithScrollbar: { type: Boolean, default: true },
57
57
  mainClass: {},
58
58
  mainWithCard: { type: Boolean, default: false },
59
- mainWithScrollbar: { type: Boolean, default: false },
59
+ mainWithScrollbar: { type: Boolean, default: true },
60
60
  contentClass: {},
61
61
  cachable: { type: Boolean, default: true },
62
62
  transitionName: { default: "fade" },
@@ -301,7 +301,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
301
301
  default: vue.withCtx(() => [
302
302
  vue.createVNode(_component_ElAutoResizer, null, {
303
303
  default: vue.withCtx(({ height, width }) => [
304
- props.mainWithScrollbar ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElScrollbar), { key: 0 }, {
304
+ props.mainWithScrollbar ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElScrollbar), {
305
+ key: 0,
306
+ "view-class": "h-full"
307
+ }, {
305
308
  default: vue.withCtx(() => [
306
309
  vue.createVNode(vue.unref(vueRouter.RouterView), null, {
307
310
  default: vue.withCtx(({ Component, route: currentRoute }) => [
@@ -7,7 +7,11 @@
7
7
  .el-menu {
8
8
  border-right: none;
9
9
  }
10
-
10
+ .el-auto-resizer {
11
+ .el-scrollbar__view {
12
+ height: 100%;
13
+ }
14
+ }
11
15
  /* 顶部激活菜单项的自定义样式 */
12
16
  .jky-page-layout__active-top-menu {
13
17
  /* 这里可以添加自定义样式,例如: */
@@ -236,11 +236,6 @@ declare function __VLS_template(): {
236
236
  fields?: any;
237
237
  }) => any;
238
238
  }, import('vue').PublicProps, {
239
- size: import('element-plus').ComponentSize;
240
- grid: import('../form').GridConfig;
241
- gutter: number;
242
- defaultSpan: number;
243
- responsive: boolean;
244
239
  watchDeep: boolean;
245
240
  showFooter: boolean;
246
241
  footerClass: string;
@@ -569,11 +564,6 @@ declare function __VLS_template(): {
569
564
  };
570
565
  }) | undefined;
571
566
  }, {}, {}, {}, {
572
- size: import('element-plus').ComponentSize;
573
- grid: import('../form').GridConfig;
574
- gutter: number;
575
- defaultSpan: number;
576
- responsive: boolean;
577
567
  watchDeep: boolean;
578
568
  showFooter: boolean;
579
569
  footerClass: string;
@@ -2992,11 +2982,6 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
2992
2982
  fields?: any;
2993
2983
  }) => any;
2994
2984
  }, import('vue').PublicProps, {
2995
- size: import('element-plus').ComponentSize;
2996
- grid: import('../form').GridConfig;
2997
- gutter: number;
2998
- defaultSpan: number;
2999
- responsive: boolean;
3000
2985
  watchDeep: boolean;
3001
2986
  showFooter: boolean;
3002
2987
  footerClass: string;
@@ -3325,11 +3310,6 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
3325
3310
  };
3326
3311
  }) | undefined;
3327
3312
  }, {}, {}, {}, {
3328
- size: import('element-plus').ComponentSize;
3329
- grid: import('../form').GridConfig;
3330
- gutter: number;
3331
- defaultSpan: number;
3332
- responsive: boolean;
3333
3313
  watchDeep: boolean;
3334
3314
  showFooter: boolean;
3335
3315
  footerClass: string;
@@ -154,7 +154,17 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
154
154
  emit("refresh");
155
155
  }
156
156
  }
157
+ const sortValue = vue.ref("desc");
157
158
  const defaultRightButtons = vue.computed(() => {
159
+ const sortButton = {
160
+ label: "排序",
161
+ icon: sortValue.value === "desc" ? "icon-[ph--sort-descending-bold]" : "icon-[ph--sort-ascending-bold]",
162
+ class: "ml-3",
163
+ onClick() {
164
+ sortValue.value = sortValue.value === "desc" ? "asc" : "desc";
165
+ handleRefresh();
166
+ }
167
+ };
158
168
  const refreshButton = {
159
169
  label: "刷新",
160
170
  icon: "icon-[mdi--refresh]",
@@ -167,7 +177,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
167
177
  class: "ml-3",
168
178
  onClick: () => toggleFullscreen()
169
179
  };
170
- return [refreshButton, fullscreenButton];
180
+ return [sortButton, refreshButton, fullscreenButton];
171
181
  });
172
182
  const showPagination = vue.computed(() => {
173
183
  var _a, _b;
@@ -197,7 +207,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
197
207
  const responseProps = ((_b = props.dataSource) == null ? void 0 : _b.responseProps) || {};
198
208
  const pageNoField = responseProps.pageNoField || "pageNo";
199
209
  const pageSizeField = responseProps.pageSizeField || "pageSize";
210
+ const orderField = responseProps.orderField || "order";
200
211
  const baseParams = {
212
+ [orderField]: sortValue.value,
201
213
  [pageNoField]: pageNo,
202
214
  [pageSizeField]: pageSize
203
215
  };
@@ -378,7 +390,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
378
390
  vue.createVNode(vue.unref(index.JkyForm), vue.mergeProps({
379
391
  ref_key: "formRef",
380
392
  ref: formRef
381
- }, __spreadValues({ inline: true, grid: true }, __props.formProps), {
393
+ }, __spreadValues({ inline: true }, __props.formProps), {
382
394
  modelValue: form.value,
383
395
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => form.value = $event),
384
396
  "show-footer": true,
@@ -271,11 +271,6 @@ declare const _default: import('vue').DefineComponent<PageTableV2Props, {
271
271
  fields?: any;
272
272
  }) => any;
273
273
  }, import('vue').PublicProps, {
274
- size: import('element-plus').ComponentSize;
275
- grid: import('../form').GridConfig;
276
- gutter: number;
277
- defaultSpan: number;
278
- responsive: boolean;
279
274
  watchDeep: boolean;
280
275
  showFooter: boolean;
281
276
  footerClass: string;
@@ -604,11 +599,6 @@ declare const _default: import('vue').DefineComponent<PageTableV2Props, {
604
599
  };
605
600
  }) | undefined;
606
601
  }, {}, {}, {}, {
607
- size: import('element-plus').ComponentSize;
608
- grid: import('../form').GridConfig;
609
- gutter: number;
610
- defaultSpan: number;
611
- responsive: boolean;
612
602
  watchDeep: boolean;
613
603
  showFooter: boolean;
614
604
  footerClass: string;
@@ -1562,6 +1562,38 @@
1562
1562
  mask-repeat: no-repeat;
1563
1563
  }
1564
1564
 
1565
+ .icon-\[ph--sort-ascending-bold\] {
1566
+ width: 1em;
1567
+ height: 1em;
1568
+ -webkit-mask-image: var(--svg);
1569
+ -webkit-mask-image: var(--svg);
1570
+ -webkit-mask-image: var(--svg);
1571
+ mask-image: var(--svg);
1572
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cpath fill='black' d='M128 128a12 12 0 0 1-12 12H48a12 12 0 0 1 0-24h68a12 12 0 0 1 12 12M48 76h132a12 12 0 0 0 0-24H48a12 12 0 0 0 0 24m52 104H48a12 12 0 0 0 0 24h52a12 12 0 0 0 0-24m132.49-20.49a12 12 0 0 0-17 0L196 179v-67a12 12 0 0 0-24 0v67l-19.51-19.52a12 12 0 0 0-17 17l40 40a12 12 0 0 0 17 0l40-40a12 12 0 0 0 0-16.97'/%3E%3C/svg%3E");
1573
+ background-color: currentColor;
1574
+ display: inline-block;
1575
+ -webkit-mask-size: 100% 100%;
1576
+ mask-size: 100% 100%;
1577
+ -webkit-mask-repeat: no-repeat;
1578
+ mask-repeat: no-repeat;
1579
+ }
1580
+
1581
+ .icon-\[ph--sort-descending-bold\] {
1582
+ width: 1em;
1583
+ height: 1em;
1584
+ -webkit-mask-image: var(--svg);
1585
+ -webkit-mask-image: var(--svg);
1586
+ -webkit-mask-image: var(--svg);
1587
+ mask-image: var(--svg);
1588
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cpath fill='black' d='M36 128a12 12 0 0 1 12-12h68a12 12 0 0 1 0 24H48a12 12 0 0 1-12-12m12-52h52a12 12 0 0 0 0-24H48a12 12 0 0 0 0 24m132 104H48a12 12 0 0 0 0 24h132a12 12 0 0 0 0-24m52.49-100.49l-40-40a12 12 0 0 0-17 0l-40 40a12 12 0 0 0 17 17L172 77v67a12 12 0 0 0 24 0V77l19.51 19.52a12 12 0 0 0 17-17Z'/%3E%3C/svg%3E");
1589
+ background-color: currentColor;
1590
+ display: inline-block;
1591
+ -webkit-mask-size: 100% 100%;
1592
+ mask-size: 100% 100%;
1593
+ -webkit-mask-repeat: no-repeat;
1594
+ mask-repeat: no-repeat;
1595
+ }
1596
+
1565
1597
  .icon-\[radix-icons--exit-full-screen\] {
1566
1598
  width: 1em;
1567
1599
  height: 1em;
@@ -1867,6 +1899,10 @@
1867
1899
  justify-content: flex-end;
1868
1900
  }
1869
1901
 
1902
+ .justify-start {
1903
+ justify-content: flex-start;
1904
+ }
1905
+
1870
1906
  .gap-1 {
1871
1907
  gap: calc(var(--spacing) * 1);
1872
1908
  }
@@ -3015,6 +3051,12 @@
3015
3051
  grid-template-columns: repeat(4, minmax(0, 1fr));
3016
3052
  }
3017
3053
  }
3054
+
3055
+ @media (min-width: 80rem) {
3056
+ .xl\:grid-cols-2 {
3057
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3058
+ }
3059
+ }
3018
3060
  }
3019
3061
 
3020
3062
  @property --tw-translate-x {
@@ -1 +1 @@
1
- .jky-add-input,:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}.jky-form,:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5);--jky-form-grid-cols-xs:1;--jky-form-grid-cols-sm:2;--jky-form-grid-cols-md:2;--jky-form-grid-cols-lg:3;--jky-form-grid-cols-xl:3;--jky-form-grid-cols-2xl:4;--jky-form-grid-cols-3xl:4}.jky-form--grid{display:grid;gap:var(--el-form-item-gutter,16px);grid-template-columns:repeat(var(--jky-form-grid-cols-xs),minmax(0,1fr))}.el-form--inline.jky-form--grid .el-form-item{margin-right:0;.el-form-item__content{align-items:flex-start}}@media (min-width:640px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-sm,var(--jky-form-grid-cols-xs)),minmax(0,1fr))}}@media (min-width:768px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-md,var(--jky-form-grid-cols-sm)),minmax(0,1fr))}}@media (min-width:1024px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-lg,var(--jky-form-grid-cols-md)),minmax(0,1fr))}}@media (min-width:1280px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-xl,var(--jky-form-grid-cols-lg)),minmax(0,1fr))}}@media (min-width:1536px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-2xl,var(--jky-form-grid-cols-xl)),minmax(0,1fr))}}@media (min-width:1920px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-3xl,var(--jky-form-grid-cols-2xl)),minmax(0,1fr))}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
1
+ .jky-add-input,:root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}.jky-amap-container{overflow:hidden;position:relative;.amap-copyright,.amap-logo{display:none!important}}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}.jky-form,:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5)}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}.jky-page-header,:root{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--jky-page-header-bg-color:#1890ff}.jky-page-header--dark{--jky-page-header-title-color:#fff;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-icon-color:#fff;--el-text-color-regular:#fff}.jky-page-header--light{--jky-page-header-title-color:#000;--jky-page-header-text-color:rgba(0,0,0,.85);--jky-page-header-icon-color:#000;--el-text-color-regular:#000}.jky-page-header,:root{--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-size:16px;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}.el-auto-resizer{.el-scrollbar__view{height:100%}}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}.jky-action-column{.el-button+.el-button{margin-left:0}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jky-component-lib",
3
3
  "type": "module",
4
- "version": "0.0.114",
4
+ "version": "0.0.118",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -72,7 +72,8 @@
72
72
  "lint:fix": "eslint . --fix",
73
73
  "typecheck": "vue-tsc --noEmit",
74
74
  "clean": "rimraf dist",
75
- "release": "bumpp && bun run build && bun publish"
75
+ "release": "bumpp && bun run build && bun publish",
76
+ "deploy:docs": "node scripts/deploy-docs.js"
76
77
  },
77
78
  "peerDependencies": {
78
79
  "@codemirror/lang-css": "^6.0.0",