layplux 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/cjs/components/center-view/index.cjs +18 -28
  2. package/dist/cjs/components/corner-glow/index.cjs +11 -28
  3. package/dist/cjs/components/dropdown/index.cjs +136 -130
  4. package/dist/cjs/components/icon/index.cjs +29 -51
  5. package/dist/cjs/components/index.cjs +24 -25
  6. package/dist/cjs/components/panel-view/index.cjs +111 -114
  7. package/dist/cjs/components/popup/index.cjs +166 -151
  8. package/dist/cjs/components/title/index.cjs +34 -47
  9. package/dist/cjs/components/tooltip/index.cjs +70 -61
  10. package/dist/cjs/components/widget/index.cjs +52 -72
  11. package/dist/cjs/index.cjs +13 -40
  12. package/dist/cjs/layout/glass-overlay.cjs +15 -28
  13. package/dist/cjs/layout/layered-manager.cjs +20 -29
  14. package/dist/cjs/layout/layplux.cjs +19 -32
  15. package/dist/cjs/layout/root-pane.cjs +20 -38
  16. package/dist/cjs/layout/skeleton/bottom-area.cjs +26 -43
  17. package/dist/cjs/layout/skeleton/bottom-left-area.cjs +12 -29
  18. package/dist/cjs/layout/skeleton/bottom-right-area.cjs +11 -28
  19. package/dist/cjs/layout/skeleton/center-area.cjs +278 -371
  20. package/dist/cjs/layout/skeleton/index.cjs +7 -24
  21. package/dist/cjs/layout/skeleton/left-bottom-area.cjs +12 -29
  22. package/dist/cjs/layout/skeleton/left-top-area.cjs +12 -29
  23. package/dist/cjs/layout/skeleton/right-bottom-area.cjs +11 -28
  24. package/dist/cjs/layout/skeleton/right-top-area.cjs +11 -28
  25. package/dist/cjs/layout/skeleton/skeleton.cjs +55 -60
  26. package/dist/cjs/layout/skeleton/top-area.cjs +26 -43
  27. package/dist/cjs/locales/en-US.cjs +11 -30
  28. package/dist/cjs/locales/index.cjs +12 -30
  29. package/dist/cjs/locales/zh-CN.cjs +11 -30
  30. package/dist/cjs/managers/area.cjs +12 -25
  31. package/dist/cjs/managers/index.cjs +12 -20
  32. package/dist/cjs/managers/pane.cjs +12 -26
  33. package/dist/cjs/managers/skeleton.cjs +112 -124
  34. package/dist/cjs/managers/theme.cjs +8 -29
  35. package/dist/cjs/managers/widget-container.cjs +31 -31
  36. package/dist/cjs/managers/widget.cjs +63 -50
  37. package/dist/cjs/types/config.cjs +2 -16
  38. package/dist/cjs/types/index.cjs +2 -18
  39. package/dist/cjs/types/locale.cjs +2 -16
  40. package/dist/cjs/utils/event-bus.cjs +53 -49
  41. package/dist/cjs/utils/focus-tracker.cjs +66 -42
  42. package/dist/cjs/utils/index.cjs +23 -31
  43. package/dist/cjs/utils/unique-id.cjs +5 -24
  44. package/dist/cjs/utils/vue.cjs +20 -30
  45. package/dist/esm/components/center-view/index.mjs +15 -7
  46. package/dist/esm/components/corner-glow/index.mjs +8 -7
  47. package/dist/esm/components/dropdown/index.mjs +117 -101
  48. package/dist/esm/components/icon/index.mjs +24 -30
  49. package/dist/esm/components/index.mjs +7 -8
  50. package/dist/esm/components/panel-view/index.mjs +107 -98
  51. package/dist/esm/components/popup/index.mjs +155 -130
  52. package/dist/esm/components/title/index.mjs +29 -24
  53. package/dist/esm/components/tooltip/index.mjs +67 -40
  54. package/dist/esm/components/widget/index.mjs +45 -48
  55. package/dist/esm/index.mjs +4 -10
  56. package/dist/esm/layout/glass-overlay.mjs +12 -7
  57. package/dist/esm/layout/layered-manager.mjs +17 -8
  58. package/dist/esm/layout/layplux.mjs +14 -11
  59. package/dist/esm/layout/root-pane.mjs +16 -16
  60. package/dist/esm/layout/skeleton/bottom-area.mjs +23 -22
  61. package/dist/esm/layout/skeleton/bottom-left-area.mjs +9 -8
  62. package/dist/esm/layout/skeleton/bottom-right-area.mjs +8 -7
  63. package/dist/esm/layout/skeleton/center-area.mjs +251 -333
  64. package/dist/esm/layout/skeleton/index.mjs +1 -4
  65. package/dist/esm/layout/skeleton/left-bottom-area.mjs +9 -8
  66. package/dist/esm/layout/skeleton/left-top-area.mjs +9 -8
  67. package/dist/esm/layout/skeleton/right-bottom-area.mjs +8 -7
  68. package/dist/esm/layout/skeleton/right-top-area.mjs +8 -7
  69. package/dist/esm/layout/skeleton/skeleton.mjs +52 -39
  70. package/dist/esm/layout/skeleton/top-area.mjs +23 -22
  71. package/dist/esm/locales/en-US.mjs +9 -10
  72. package/dist/esm/locales/index.mjs +7 -9
  73. package/dist/esm/locales/zh-CN.mjs +9 -10
  74. package/dist/esm/managers/area.mjs +10 -5
  75. package/dist/esm/managers/index.mjs +3 -3
  76. package/dist/esm/managers/pane.mjs +9 -5
  77. package/dist/esm/managers/skeleton.mjs +97 -95
  78. package/dist/esm/managers/theme.mjs +6 -9
  79. package/dist/esm/managers/widget-container.mjs +28 -10
  80. package/dist/esm/managers/widget.mjs +55 -25
  81. package/dist/esm/types/config.mjs +1 -0
  82. package/dist/esm/types/index.mjs +1 -1
  83. package/dist/esm/types/locale.mjs +1 -0
  84. package/dist/esm/utils/event-bus.mjs +46 -17
  85. package/dist/esm/utils/focus-tracker.mjs +63 -23
  86. package/dist/esm/utils/index.mjs +7 -10
  87. package/dist/esm/utils/unique-id.mjs +3 -4
  88. package/dist/esm/utils/vue.mjs +13 -5
  89. package/dist/types/managers/skeleton.d.ts.map +1 -1
  90. package/dist/umd/index.js +0 -2
  91. package/package.json +11 -8
@@ -1,97 +1,118 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var popup_exports = {};
20
- __export(popup_exports, {
21
- Popup: () => Popup
22
- });
23
- module.exports = __toCommonJS(popup_exports);
24
- var import_jsx_runtime = require("vue/jsx-runtime");
25
- var import_vue = require("vue");
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+
26
5
  function computePosition(triggerRect, popupW, popupH, placement, offsetX, offsetY) {
27
6
  const vw = window.innerWidth;
28
7
  const vh = window.innerHeight;
29
8
  const PADDING = 8;
30
9
  let top = 0;
31
10
  let left = 0;
32
- const [main, align] = placement.split("-");
33
- if (main === "bottom") {
11
+ const [main, align] = placement.split('-');
12
+
13
+ // Vertical placements
14
+ if (main === 'bottom') {
34
15
  top = triggerRect.bottom + offsetY;
35
- if (align === "start") left = triggerRect.left + offsetX;
36
- else if (align === "end") left = triggerRect.right - popupW + offsetX;
37
- else left = triggerRect.left + triggerRect.width / 2 - popupW / 2 + offsetX;
16
+ if (align === 'start') left = triggerRect.left + offsetX;else if (align === 'end') left = triggerRect.right - popupW + offsetX;else left = triggerRect.left + triggerRect.width / 2 - popupW / 2 + offsetX;
17
+
18
+ // Flip to top if not enough space
38
19
  if (top + popupH > vh - PADDING) {
39
20
  top = triggerRect.top - popupH - offsetY;
40
- placement = align ? `top-${align}` : "top";
21
+ placement = align ? `top-${align}` : 'top';
41
22
  }
42
- } else if (main === "top") {
23
+ } else if (main === 'top') {
43
24
  top = triggerRect.top - popupH - offsetY;
44
- if (align === "start") left = triggerRect.left + offsetX;
45
- else if (align === "end") left = triggerRect.right - popupW + offsetX;
46
- else left = triggerRect.left + triggerRect.width / 2 - popupW / 2 + offsetX;
25
+ if (align === 'start') left = triggerRect.left + offsetX;else if (align === 'end') left = triggerRect.right - popupW + offsetX;else left = triggerRect.left + triggerRect.width / 2 - popupW / 2 + offsetX;
26
+
27
+ // Flip to bottom if not enough space
47
28
  if (top < PADDING) {
48
29
  top = triggerRect.bottom + offsetY;
49
- placement = align ? `bottom-${align}` : "bottom";
30
+ placement = align ? `bottom-${align}` : 'bottom';
50
31
  }
51
- } else if (main === "right") {
32
+ }
33
+ // Horizontal placements
34
+ else if (main === 'right') {
52
35
  left = triggerRect.right + offsetX;
53
- if (align === "start") top = triggerRect.top + offsetY;
54
- else if (align === "end") top = triggerRect.bottom - popupH + offsetY;
55
- else top = triggerRect.top + triggerRect.height / 2 - popupH / 2 + offsetY;
36
+ if (align === 'start') top = triggerRect.top + offsetY;else if (align === 'end') top = triggerRect.bottom - popupH + offsetY;else top = triggerRect.top + triggerRect.height / 2 - popupH / 2 + offsetY;
56
37
  if (left + popupW > vw - PADDING) {
57
38
  left = triggerRect.left - popupW - offsetX;
58
- placement = align ? `left-${align}` : "left";
39
+ placement = align ? `left-${align}` : 'left';
59
40
  }
60
- } else if (main === "left") {
41
+ } else if (main === 'left') {
61
42
  left = triggerRect.left - popupW - offsetX;
62
- if (align === "start") top = triggerRect.top + offsetY;
63
- else if (align === "end") top = triggerRect.bottom - popupH + offsetY;
64
- else top = triggerRect.top + triggerRect.height / 2 - popupH / 2 + offsetY;
43
+ if (align === 'start') top = triggerRect.top + offsetY;else if (align === 'end') top = triggerRect.bottom - popupH + offsetY;else top = triggerRect.top + triggerRect.height / 2 - popupH / 2 + offsetY;
65
44
  if (left < PADDING) {
66
45
  left = triggerRect.right + offsetX;
67
- placement = align ? `right-${align}` : "right";
46
+ placement = align ? `right-${align}` : 'right';
68
47
  }
69
48
  }
49
+
50
+ // Clamp to viewport
70
51
  top = Math.max(PADDING, Math.min(top, vh - popupH - PADDING));
71
52
  left = Math.max(PADDING, Math.min(left, vw - popupW - PADDING));
72
- return { position: { top, left }, placement };
53
+ return {
54
+ position: {
55
+ top,
56
+ left
57
+ },
58
+ placement
59
+ };
73
60
  }
74
- const Popup = (0, import_vue.defineComponent)({
75
- name: "LaypluxPopup",
61
+ const Popup = vue.defineComponent({
62
+ name: 'LaypluxPopup',
76
63
  props: {
77
64
  visible: Boolean,
78
- trigger: { type: String, default: "hover" },
79
- placement: { type: String, default: "bottom" },
80
- offset: { type: Object, default: () => ({ y: 4 }) },
81
- mouseEnterDelay: { type: Number, default: 100 },
82
- mouseLeaveDelay: { type: Number, default: 100 },
83
- disabled: { type: Boolean, default: false },
84
- destroyOnClose: { type: Boolean, default: true },
85
- getContainer: { type: Function, default: () => document.body }
65
+ trigger: {
66
+ type: String,
67
+ default: 'hover'
68
+ },
69
+ placement: {
70
+ type: String,
71
+ default: 'bottom'
72
+ },
73
+ offset: {
74
+ type: Object,
75
+ default: () => ({
76
+ y: 4
77
+ })
78
+ },
79
+ mouseEnterDelay: {
80
+ type: Number,
81
+ default: 100
82
+ },
83
+ mouseLeaveDelay: {
84
+ type: Number,
85
+ default: 100
86
+ },
87
+ disabled: {
88
+ type: Boolean,
89
+ default: false
90
+ },
91
+ destroyOnClose: {
92
+ type: Boolean,
93
+ default: true
94
+ },
95
+ getContainer: {
96
+ type: Function,
97
+ default: () => document.body
98
+ }
86
99
  },
87
- emits: ["update:visible"],
88
- setup(props, { emit, slots }) {
89
- const triggerRef = (0, import_vue.ref)();
90
- const popupRef = (0, import_vue.ref)();
91
- const position = (0, import_vue.ref)({ top: 0, left: 0 });
92
- const currentPlacement = (0, import_vue.ref)(props.placement);
93
- const mounted = (0, import_vue.ref)(false);
94
- const animatingIn = (0, import_vue.ref)(false);
100
+ emits: ['update:visible'],
101
+ setup(props, {
102
+ emit,
103
+ slots
104
+ }) {
105
+ const triggerRef = vue.ref();
106
+ const popupRef = vue.ref();
107
+ const position = vue.ref({
108
+ top: 0,
109
+ left: 0
110
+ });
111
+ const currentPlacement = vue.ref(props.placement);
112
+ // Whether the popup DOM should exist
113
+ const mounted = vue.ref(false);
114
+ // Whether the popup is in its visible animation state
115
+ const animatingIn = vue.ref(false);
95
116
  let enterTimer = null;
96
117
  let leaveTimer = null;
97
118
  let leaveAnimationTimer = null;
@@ -113,15 +134,11 @@ const Popup = (0, import_vue.defineComponent)({
113
134
  if (!triggerRef.value || !popupRef.value) return;
114
135
  const triggerRect = triggerRef.value.getBoundingClientRect();
115
136
  const popupRect = popupRef.value.getBoundingClientRect();
116
- const { x: ox = 0, y: oy = 0 } = props.offset;
117
- const result = computePosition(
118
- triggerRect,
119
- popupRect.width,
120
- popupRect.height,
121
- props.placement,
122
- ox,
123
- oy
124
- );
137
+ const {
138
+ x: ox = 0,
139
+ y: oy = 0
140
+ } = props.offset;
141
+ const result = computePosition(triggerRect, popupRect.width, popupRect.height, props.placement, ox, oy);
125
142
  position.value = result.position;
126
143
  currentPlacement.value = result.placement;
127
144
  };
@@ -130,9 +147,10 @@ const Popup = (0, import_vue.defineComponent)({
130
147
  clearTimers();
131
148
  enterTimer = setTimeout(() => {
132
149
  mounted.value = true;
133
- emit("update:visible", true);
134
- void (0, import_vue.nextTick)(() => {
150
+ emit('update:visible', true);
151
+ void vue.nextTick(() => {
135
152
  updatePosition();
153
+ // Trigger enter animation
136
154
  requestAnimationFrame(() => {
137
155
  animatingIn.value = true;
138
156
  });
@@ -144,10 +162,12 @@ const Popup = (0, import_vue.defineComponent)({
144
162
  const delay = immediate ? 0 : props.mouseLeaveDelay;
145
163
  leaveTimer = setTimeout(() => {
146
164
  animatingIn.value = false;
165
+
166
+ // Wait for CSS transition to finish before removing DOM
147
167
  leaveAnimationTimer = setTimeout(() => {
148
168
  mounted.value = false;
149
- emit("update:visible", false);
150
- }, 200);
169
+ emit('update:visible', false);
170
+ }, 200); // Match CSS transition duration
151
171
  }, delay);
152
172
  };
153
173
  const toggle = () => {
@@ -158,75 +178,80 @@ const Popup = (0, import_vue.defineComponent)({
158
178
  show();
159
179
  }
160
180
  };
161
- (0, import_vue.watch)(
162
- () => props.visible,
163
- (v) => {
164
- if (v && !mounted.value) show();
165
- else if (!v && mounted.value) hide(true);
166
- }
167
- );
168
- (0, import_vue.watch)(
169
- () => props.placement,
170
- (p) => {
171
- currentPlacement.value = p;
172
- }
173
- );
181
+
182
+ // Sync external visible changes
183
+ vue.watch(() => props.visible, v => {
184
+ if (v && !mounted.value) show();else if (!v && mounted.value) hide(true);
185
+ });
186
+
187
+ // Sync external placement changes
188
+ vue.watch(() => props.placement, p => {
189
+ currentPlacement.value = p;
190
+ });
174
191
  const onResize = () => {
175
192
  if (mounted.value && animatingIn.value) updatePosition();
176
193
  };
177
- (0, import_vue.onMounted)(() => {
178
- window.addEventListener("resize", onResize);
179
- window.addEventListener("scroll", onResize, true);
180
- document.addEventListener("mousedown", onClickOutside, true);
181
- document.addEventListener("keydown", onEsc);
194
+ vue.onMounted(() => {
195
+ window.addEventListener('resize', onResize);
196
+ window.addEventListener('scroll', onResize, true);
197
+ document.addEventListener('mousedown', onClickOutside, true);
198
+ document.addEventListener('keydown', onEsc);
182
199
  });
183
- (0, import_vue.onUnmounted)(() => {
200
+ vue.onUnmounted(() => {
184
201
  clearTimers();
185
- window.removeEventListener("resize", onResize);
186
- window.removeEventListener("scroll", onResize, true);
187
- document.removeEventListener("mousedown", onClickOutside, true);
188
- document.removeEventListener("keydown", onEsc);
202
+ window.removeEventListener('resize', onResize);
203
+ window.removeEventListener('scroll', onResize, true);
204
+ document.removeEventListener('mousedown', onClickOutside, true);
205
+ document.removeEventListener('keydown', onEsc);
189
206
  });
190
- const onClickOutside = (e) => {
207
+
208
+ // Click outside
209
+ const onClickOutside = e => {
191
210
  if (!mounted.value) return;
192
211
  const target = e.target;
193
212
  const trigger = triggerRef.value;
194
213
  const popup = popupRef.value;
195
214
  if (trigger && trigger.contains(target)) return;
196
215
  if (popup && popup.contains(target)) return;
197
- if (props.trigger === "click" || props.trigger === "contextmenu") {
216
+ if (props.trigger === 'click' || props.trigger === 'contextmenu') {
198
217
  hide(true);
199
218
  }
200
219
  };
201
- const onEsc = (e) => {
202
- if (e.key === "Escape" && mounted.value) {
220
+
221
+ // ESC key
222
+ const onEsc = e => {
223
+ if (e.key === 'Escape' && mounted.value) {
203
224
  hide(true);
204
225
  }
205
226
  };
227
+
228
+ // Trigger event handlers
206
229
  const onTriggerMouseEnter = () => {
207
- if (props.trigger === "hover") show();
230
+ if (props.trigger === 'hover') show();
208
231
  };
209
232
  const onTriggerMouseLeave = () => {
210
- if (props.trigger === "hover") hide();
233
+ if (props.trigger === 'hover') hide();
211
234
  };
212
- const onTriggerClick = (e) => {
213
- if (props.trigger === "click") {
235
+ const onTriggerClick = e => {
236
+ if (props.trigger === 'click') {
214
237
  e.stopPropagation();
215
238
  toggle();
216
239
  }
217
240
  };
218
241
  const onTriggerFocus = () => {
219
- if (props.trigger === "focus") show();
242
+ if (props.trigger === 'focus') show();
220
243
  };
221
244
  const onTriggerBlur = () => {
222
- if (props.trigger === "focus") hide(true);
245
+ if (props.trigger === 'focus') hide(true);
223
246
  };
224
- const onTriggerContextmenu = (e) => {
225
- if (props.trigger === "contextmenu") {
247
+ const onTriggerContextmenu = e => {
248
+ if (props.trigger === 'contextmenu') {
226
249
  e.preventDefault();
227
250
  show();
228
251
  }
229
252
  };
253
+
254
+ // Popup hover (for safe triangle)
230
255
  const onPopupMouseEnter = () => {
231
256
  if (leaveTimer) {
232
257
  clearTimeout(leaveTimer);
@@ -234,47 +259,37 @@ const Popup = (0, import_vue.defineComponent)({
234
259
  }
235
260
  };
236
261
  const onPopupMouseLeave = () => {
237
- if (props.trigger === "hover") hide();
262
+ if (props.trigger === 'hover') hide();
238
263
  };
239
264
  return () => {
240
265
  const container = props.getContainer();
241
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
242
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
243
- "span",
244
- {
245
- ref: triggerRef,
246
- class: "layplux-popup-trigger",
247
- onMouseenter: onTriggerMouseEnter,
248
- onMouseleave: onTriggerMouseLeave,
249
- onClick: onTriggerClick,
250
- onFocus: onTriggerFocus,
251
- onBlur: onTriggerBlur,
252
- onContextmenu: onTriggerContextmenu,
253
- children: slots.default?.()
254
- }
255
- ),
256
- (mounted.value || !props.destroyOnClose) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_vue.Teleport, { to: container, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
257
- "div",
258
- {
259
- ref: popupRef,
260
- class: [
261
- "layplux-portal",
262
- "layplux-popup",
263
- currentPlacement.value,
264
- animatingIn.value && "layplux-popup--visible"
265
- ],
266
- style: {
267
- position: "fixed",
268
- top: `${position.value.top}px`,
269
- left: `${position.value.left}px`,
270
- zIndex: "var(--layplux-popup-z-index, 2000)"
271
- },
272
- onMouseenter: onPopupMouseEnter,
273
- onMouseleave: onPopupMouseLeave,
274
- children: slots.content?.()
275
- }
276
- ) })
277
- ] });
266
+ return vue.createVNode(vue.Fragment, null, [vue.createVNode("span", {
267
+ "ref": triggerRef,
268
+ "class": "layplux-popup-trigger",
269
+ "onMouseenter": onTriggerMouseEnter,
270
+ "onMouseleave": onTriggerMouseLeave,
271
+ "onClick": onTriggerClick,
272
+ "onFocus": onTriggerFocus,
273
+ "onBlur": onTriggerBlur,
274
+ "onContextmenu": onTriggerContextmenu
275
+ }, [slots.default?.()]), (mounted.value || !props.destroyOnClose) && vue.createVNode(vue.Teleport, {
276
+ "to": container
277
+ }, {
278
+ default: () => [vue.createVNode("div", {
279
+ "ref": popupRef,
280
+ "class": ['layplux-portal', 'layplux-popup', currentPlacement.value, animatingIn.value && 'layplux-popup--visible'],
281
+ "style": {
282
+ position: 'fixed',
283
+ top: `${position.value.top}px`,
284
+ left: `${position.value.left}px`,
285
+ zIndex: 'var(--layplux-popup-z-index, 2000)'
286
+ },
287
+ "onMouseenter": onPopupMouseEnter,
288
+ "onMouseleave": onPopupMouseLeave
289
+ }, [slots.content?.()])]
290
+ })]);
278
291
  };
279
292
  }
280
293
  });
294
+
295
+ exports.Popup = Popup;
@@ -1,43 +1,22 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var title_exports = {};
20
- __export(title_exports, {
21
- TitleView: () => TitleView
22
- });
23
- module.exports = __toCommonJS(title_exports);
24
- var import_jsx_runtime = require("vue/jsx-runtime");
25
- var import_vue = require("vue");
26
- var import_utils = require("../../utils");
27
- const TitleView = (0, import_vue.defineComponent)({
28
- name: "TitleView",
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue$1 = require('../../utils/vue.cjs');
5
+
6
+ const TitleView = vue.defineComponent({
7
+ name: 'TitleView',
29
8
  inheritAttrs: false,
30
9
  props: {
31
10
  icon: [String, Object, Function],
32
11
  title: [String, Object, Function],
33
12
  mode: {
34
13
  type: String,
35
- default: "icon-only"
14
+ default: 'icon-only'
36
15
  },
37
16
  /** 交互状态:idle / active / disabled / error。idle 时 hover 由 CSS :hover 处理 */
38
17
  state: {
39
18
  type: String,
40
- default: "idle"
19
+ default: 'idle'
41
20
  },
42
21
  /** 聚焦/选中态,独立于 state,可与任何状态叠加 */
43
22
  focused: {
@@ -46,31 +25,39 @@ const TitleView = (0, import_vue.defineComponent)({
46
25
  },
47
26
  size: {
48
27
  type: String,
49
- default: "middle"
28
+ default: 'middle'
50
29
  },
51
30
  className: {
52
31
  type: String,
53
- default: ""
32
+ default: ''
54
33
  },
55
34
  onClick: Function
56
35
  },
57
36
  setup(props) {
58
37
  return () => {
59
- const { icon, title, mode, state, size, focused, className, onClick } = props;
60
- const iconNode = icon ? (0, import_utils.createContent)(icon) : null;
61
- const titleNode = title ? (0, import_utils.createContent)(title) : null;
62
- const classes = [
63
- "title-view",
64
- `title-view--${mode}`,
65
- `title-view--${state}`,
66
- `title-view--${size}`,
67
- focused && "title-view--focused",
68
- className
69
- ].filter(Boolean).join(" ");
70
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { class: classes, onClick, children: [
71
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { class: "title-view__icon", children: iconNode }),
72
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { class: "title-view__label", children: titleNode })
73
- ] });
38
+ const {
39
+ icon,
40
+ title,
41
+ mode,
42
+ state,
43
+ size,
44
+ focused,
45
+ className,
46
+ onClick
47
+ } = props;
48
+ const iconNode = icon ? vue$1.createContent(icon) : null;
49
+ const titleNode = title ? vue$1.createContent(title) : null;
50
+ const classes = ['title-view', `title-view--${mode}`, `title-view--${state}`, `title-view--${size}`, focused && 'title-view--focused', className].filter(Boolean).join(' ');
51
+ return vue.createVNode("span", {
52
+ "class": classes,
53
+ "onClick": onClick
54
+ }, [vue.createVNode("span", {
55
+ "class": "title-view__icon"
56
+ }, [iconNode]), vue.createVNode("span", {
57
+ "class": "title-view__label"
58
+ }, [titleNode])]);
74
59
  };
75
60
  }
76
61
  });
62
+
63
+ exports.TitleView = TitleView;