layplux 0.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 (201) hide show
  1. package/dist/cjs/components/center-view/index.cjs +41 -0
  2. package/dist/cjs/components/corner-glow/index.cjs +31 -0
  3. package/dist/cjs/components/dropdown/index.cjs +162 -0
  4. package/dist/cjs/components/icon/index.cjs +59 -0
  5. package/dist/cjs/components/index.cjs +25 -0
  6. package/dist/cjs/components/panel-view/index.cjs +166 -0
  7. package/dist/cjs/components/popup/index.cjs +280 -0
  8. package/dist/cjs/components/title/index.cjs +76 -0
  9. package/dist/cjs/components/tooltip/index.cjs +68 -0
  10. package/dist/cjs/components/widget/index.cjs +104 -0
  11. package/dist/cjs/index.cjs +40 -0
  12. package/dist/cjs/layout/glass-overlay.cjs +31 -0
  13. package/dist/cjs/layout/layered-manager.cjs +35 -0
  14. package/dist/cjs/layout/layplux.cjs +41 -0
  15. package/dist/cjs/layout/root-pane.cjs +46 -0
  16. package/dist/cjs/layout/skeleton/bottom-area.cjs +64 -0
  17. package/dist/cjs/layout/skeleton/bottom-left-area.cjs +42 -0
  18. package/dist/cjs/layout/skeleton/bottom-right-area.cjs +38 -0
  19. package/dist/cjs/layout/skeleton/center-area.cjs +467 -0
  20. package/dist/cjs/layout/skeleton/index.cjs +24 -0
  21. package/dist/cjs/layout/skeleton/left-bottom-area.cjs +42 -0
  22. package/dist/cjs/layout/skeleton/left-top-area.cjs +42 -0
  23. package/dist/cjs/layout/skeleton/right-bottom-area.cjs +38 -0
  24. package/dist/cjs/layout/skeleton/right-top-area.cjs +38 -0
  25. package/dist/cjs/layout/skeleton/skeleton.cjs +66 -0
  26. package/dist/cjs/layout/skeleton/top-area.cjs +64 -0
  27. package/dist/cjs/locales/en-US.cjs +34 -0
  28. package/dist/cjs/locales/index.cjs +39 -0
  29. package/dist/cjs/locales/zh-CN.cjs +34 -0
  30. package/dist/cjs/managers/area.cjs +32 -0
  31. package/dist/cjs/managers/index.cjs +20 -0
  32. package/dist/cjs/managers/pane.cjs +34 -0
  33. package/dist/cjs/managers/skeleton.cjs +208 -0
  34. package/dist/cjs/managers/theme.cjs +37 -0
  35. package/dist/cjs/managers/widget-container.cjs +96 -0
  36. package/dist/cjs/managers/widget.cjs +103 -0
  37. package/dist/cjs/types/config.cjs +16 -0
  38. package/dist/cjs/types/index.cjs +18 -0
  39. package/dist/cjs/types/locale.cjs +16 -0
  40. package/dist/cjs/utils/event-bus.cjs +154 -0
  41. package/dist/cjs/utils/focus-tracker.cjs +154 -0
  42. package/dist/cjs/utils/index.cjs +31 -0
  43. package/dist/cjs/utils/unique-id.cjs +27 -0
  44. package/dist/cjs/utils/vue.cjs +37 -0
  45. package/dist/esm/components/center-view/index.mjs +21 -0
  46. package/dist/esm/components/corner-glow/index.mjs +11 -0
  47. package/dist/esm/components/dropdown/index.mjs +146 -0
  48. package/dist/esm/components/icon/index.mjs +39 -0
  49. package/dist/esm/components/index.mjs +8 -0
  50. package/dist/esm/components/panel-view/index.mjs +152 -0
  51. package/dist/esm/components/popup/index.mjs +268 -0
  52. package/dist/esm/components/title/index.mjs +56 -0
  53. package/dist/esm/components/tooltip/index.mjs +48 -0
  54. package/dist/esm/components/widget/index.mjs +84 -0
  55. package/dist/esm/index.mjs +10 -0
  56. package/dist/esm/layout/glass-overlay.mjs +11 -0
  57. package/dist/esm/layout/layered-manager.mjs +15 -0
  58. package/dist/esm/layout/layplux.mjs +21 -0
  59. package/dist/esm/layout/root-pane.mjs +26 -0
  60. package/dist/esm/layout/skeleton/bottom-area.mjs +44 -0
  61. package/dist/esm/layout/skeleton/bottom-left-area.mjs +22 -0
  62. package/dist/esm/layout/skeleton/bottom-right-area.mjs +18 -0
  63. package/dist/esm/layout/skeleton/center-area.mjs +454 -0
  64. package/dist/esm/layout/skeleton/index.mjs +4 -0
  65. package/dist/esm/layout/skeleton/left-bottom-area.mjs +22 -0
  66. package/dist/esm/layout/skeleton/left-top-area.mjs +22 -0
  67. package/dist/esm/layout/skeleton/right-bottom-area.mjs +18 -0
  68. package/dist/esm/layout/skeleton/right-top-area.mjs +18 -0
  69. package/dist/esm/layout/skeleton/skeleton.mjs +46 -0
  70. package/dist/esm/layout/skeleton/top-area.mjs +44 -0
  71. package/dist/esm/locales/en-US.mjs +14 -0
  72. package/dist/esm/locales/index.mjs +19 -0
  73. package/dist/esm/locales/zh-CN.mjs +14 -0
  74. package/dist/esm/managers/area.mjs +12 -0
  75. package/dist/esm/managers/index.mjs +3 -0
  76. package/dist/esm/managers/pane.mjs +14 -0
  77. package/dist/esm/managers/skeleton.mjs +192 -0
  78. package/dist/esm/managers/theme.mjs +17 -0
  79. package/dist/esm/managers/widget-container.mjs +76 -0
  80. package/dist/esm/managers/widget.mjs +83 -0
  81. package/dist/esm/types/config.mjs +0 -0
  82. package/dist/esm/types/index.mjs +1 -0
  83. package/dist/esm/types/locale.mjs +0 -0
  84. package/dist/esm/utils/event-bus.mjs +124 -0
  85. package/dist/esm/utils/focus-tracker.mjs +135 -0
  86. package/dist/esm/utils/index.mjs +10 -0
  87. package/dist/esm/utils/unique-id.mjs +7 -0
  88. package/dist/esm/utils/vue.mjs +17 -0
  89. package/dist/style/base/_tokens-dark.scss +51 -0
  90. package/dist/style/base/_tokens.scss +56 -0
  91. package/dist/style/components/_bottom-area.scss +30 -0
  92. package/dist/style/components/_bottom-left-area.scss +8 -0
  93. package/dist/style/components/_bottom-right-area.scss +8 -0
  94. package/dist/style/components/_center-area.scss +162 -0
  95. package/dist/style/components/_corner-glow.scss +17 -0
  96. package/dist/style/components/_dropdown.scss +91 -0
  97. package/dist/style/components/_glass-pane.scss +6 -0
  98. package/dist/style/components/_layered-manager.scss +6 -0
  99. package/dist/style/components/_left-bottom-area.scss +8 -0
  100. package/dist/style/components/_left-top-area.scss +9 -0
  101. package/dist/style/components/_pane-view.scss +79 -0
  102. package/dist/style/components/_popup.scss +19 -0
  103. package/dist/style/components/_right-bottom-area.scss +8 -0
  104. package/dist/style/components/_right-top-area.scss +8 -0
  105. package/dist/style/components/_root-pane.scss +17 -0
  106. package/dist/style/components/_skeleton.scss +38 -0
  107. package/dist/style/components/_title-view.scss +176 -0
  108. package/dist/style/components/_tooltip.scss +65 -0
  109. package/dist/style/components/_top-area.scss +25 -0
  110. package/dist/style/index.css +768 -0
  111. package/dist/style/layplux.scss +21 -0
  112. package/dist/types/components/center-view/index.d.ts +16 -0
  113. package/dist/types/components/center-view/index.d.ts.map +1 -0
  114. package/dist/types/components/corner-glow/index.d.ts +2 -0
  115. package/dist/types/components/corner-glow/index.d.ts.map +1 -0
  116. package/dist/types/components/dropdown/index.d.ts +116 -0
  117. package/dist/types/components/dropdown/index.d.ts.map +1 -0
  118. package/dist/types/components/icon/index.d.ts +22 -0
  119. package/dist/types/components/icon/index.d.ts.map +1 -0
  120. package/dist/types/components/index.d.ts +9 -0
  121. package/dist/types/components/index.d.ts.map +1 -0
  122. package/dist/types/components/panel-view/index.d.ts +22 -0
  123. package/dist/types/components/panel-view/index.d.ts.map +1 -0
  124. package/dist/types/components/popup/index.d.ts +99 -0
  125. package/dist/types/components/popup/index.d.ts.map +1 -0
  126. package/dist/types/components/title/index.d.ts +57 -0
  127. package/dist/types/components/title/index.d.ts.map +1 -0
  128. package/dist/types/components/tooltip/index.d.ts +69 -0
  129. package/dist/types/components/tooltip/index.d.ts.map +1 -0
  130. package/dist/types/components/widget/index.d.ts +15 -0
  131. package/dist/types/components/widget/index.d.ts.map +1 -0
  132. package/dist/types/index.d.ts +10 -0
  133. package/dist/types/index.d.ts.map +1 -0
  134. package/dist/types/layout/glass-overlay.d.ts +2 -0
  135. package/dist/types/layout/glass-overlay.d.ts.map +1 -0
  136. package/dist/types/layout/layered-manager.d.ts +8 -0
  137. package/dist/types/layout/layered-manager.d.ts.map +1 -0
  138. package/dist/types/layout/layplux.d.ts +25 -0
  139. package/dist/types/layout/layplux.d.ts.map +1 -0
  140. package/dist/types/layout/root-pane.d.ts +8 -0
  141. package/dist/types/layout/root-pane.d.ts.map +1 -0
  142. package/dist/types/layout/skeleton/bottom-area.d.ts +9 -0
  143. package/dist/types/layout/skeleton/bottom-area.d.ts.map +1 -0
  144. package/dist/types/layout/skeleton/bottom-left-area.d.ts +9 -0
  145. package/dist/types/layout/skeleton/bottom-left-area.d.ts.map +1 -0
  146. package/dist/types/layout/skeleton/bottom-right-area.d.ts +9 -0
  147. package/dist/types/layout/skeleton/bottom-right-area.d.ts.map +1 -0
  148. package/dist/types/layout/skeleton/center-area.d.ts +11 -0
  149. package/dist/types/layout/skeleton/center-area.d.ts.map +1 -0
  150. package/dist/types/layout/skeleton/index.d.ts +2 -0
  151. package/dist/types/layout/skeleton/index.d.ts.map +1 -0
  152. package/dist/types/layout/skeleton/left-bottom-area.d.ts +9 -0
  153. package/dist/types/layout/skeleton/left-bottom-area.d.ts.map +1 -0
  154. package/dist/types/layout/skeleton/left-top-area.d.ts +9 -0
  155. package/dist/types/layout/skeleton/left-top-area.d.ts.map +1 -0
  156. package/dist/types/layout/skeleton/right-bottom-area.d.ts +9 -0
  157. package/dist/types/layout/skeleton/right-bottom-area.d.ts.map +1 -0
  158. package/dist/types/layout/skeleton/right-top-area.d.ts +9 -0
  159. package/dist/types/layout/skeleton/right-top-area.d.ts.map +1 -0
  160. package/dist/types/layout/skeleton/skeleton.d.ts +8 -0
  161. package/dist/types/layout/skeleton/skeleton.d.ts.map +1 -0
  162. package/dist/types/layout/skeleton/top-area.d.ts +9 -0
  163. package/dist/types/layout/skeleton/top-area.d.ts.map +1 -0
  164. package/dist/types/locales/en-US.d.ts +3 -0
  165. package/dist/types/locales/en-US.d.ts.map +1 -0
  166. package/dist/types/locales/index.d.ts +7 -0
  167. package/dist/types/locales/index.d.ts.map +1 -0
  168. package/dist/types/locales/zh-CN.d.ts +3 -0
  169. package/dist/types/locales/zh-CN.d.ts.map +1 -0
  170. package/dist/types/managers/area.d.ts +10 -0
  171. package/dist/types/managers/area.d.ts.map +1 -0
  172. package/dist/types/managers/index.d.ts +5 -0
  173. package/dist/types/managers/index.d.ts.map +1 -0
  174. package/dist/types/managers/pane.d.ts +8 -0
  175. package/dist/types/managers/pane.d.ts.map +1 -0
  176. package/dist/types/managers/skeleton.d.ts +38 -0
  177. package/dist/types/managers/skeleton.d.ts.map +1 -0
  178. package/dist/types/managers/theme.d.ts +2 -0
  179. package/dist/types/managers/theme.d.ts.map +1 -0
  180. package/dist/types/managers/widget-container.d.ts +21 -0
  181. package/dist/types/managers/widget-container.d.ts.map +1 -0
  182. package/dist/types/managers/widget.d.ts +26 -0
  183. package/dist/types/managers/widget.d.ts.map +1 -0
  184. package/dist/types/types/config.d.ts +54 -0
  185. package/dist/types/types/config.d.ts.map +1 -0
  186. package/dist/types/types/index.d.ts +2 -0
  187. package/dist/types/types/index.d.ts.map +1 -0
  188. package/dist/types/types/locale.d.ts +12 -0
  189. package/dist/types/types/locale.d.ts.map +1 -0
  190. package/dist/types/utils/event-bus.d.ts +18 -0
  191. package/dist/types/utils/event-bus.d.ts.map +1 -0
  192. package/dist/types/utils/focus-tracker.d.ts +37 -0
  193. package/dist/types/utils/focus-tracker.d.ts.map +1 -0
  194. package/dist/types/utils/index.d.ts +6 -0
  195. package/dist/types/utils/index.d.ts.map +1 -0
  196. package/dist/types/utils/unique-id.d.ts +2 -0
  197. package/dist/types/utils/unique-id.d.ts.map +1 -0
  198. package/dist/types/utils/vue.d.ts +5 -0
  199. package/dist/types/utils/vue.d.ts.map +1 -0
  200. package/dist/umd/index.js +4000 -0
  201. package/package.json +46 -0
@@ -0,0 +1,41 @@
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 center_view_exports = {};
20
+ __export(center_view_exports, {
21
+ CenterView: () => CenterView
22
+ });
23
+ module.exports = __toCommonJS(center_view_exports);
24
+ var import_jsx_runtime = require("vue/jsx-runtime");
25
+ var import_vue = require("vue");
26
+ const CenterView = (0, import_vue.defineComponent)({
27
+ name: "CenterView",
28
+ props: {
29
+ widget: Object,
30
+ anchor: {
31
+ type: String,
32
+ required: true
33
+ }
34
+ },
35
+ setup(props) {
36
+ return () => {
37
+ if (!props.widget) return null;
38
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_vue.Teleport, { defer: true, to: props.anchor, children: props.widget.renderContent() });
39
+ };
40
+ }
41
+ });
@@ -0,0 +1,31 @@
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 corner_glow_exports = {};
20
+ __export(corner_glow_exports, {
21
+ CornerGlow: () => CornerGlow
22
+ });
23
+ module.exports = __toCommonJS(corner_glow_exports);
24
+ var import_jsx_runtime = require("vue/jsx-runtime");
25
+ var import_vue = require("vue");
26
+ const CornerGlow = (0, import_vue.defineComponent)({
27
+ name: "CornerGlow",
28
+ setup() {
29
+ return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "corner-glow" });
30
+ }
31
+ });
@@ -0,0 +1,162 @@
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 dropdown_exports = {};
20
+ __export(dropdown_exports, {
21
+ Dropdown: () => Dropdown,
22
+ DropdownDivider: () => DropdownDivider,
23
+ DropdownItem: () => DropdownItem,
24
+ DropdownMenu: () => DropdownMenu,
25
+ DropdownSubmenu: () => DropdownSubmenu
26
+ });
27
+ module.exports = __toCommonJS(dropdown_exports);
28
+ var import_jsx_runtime = require("vue/jsx-runtime");
29
+ var import_vue = require("vue");
30
+ var import_popup = require("../popup");
31
+ var import_icon = require("../icon");
32
+ const DROPDOWN_CLOSE = Symbol("dropdown-close");
33
+ const DROPDOWN_ON_CLICK = Symbol("dropdown-on-click");
34
+ const Dropdown = (0, import_vue.defineComponent)({
35
+ name: "LaypluxDropdown",
36
+ props: {
37
+ visible: Boolean,
38
+ trigger: { type: String, default: "click" },
39
+ placement: { type: String, default: "bottom-start" },
40
+ disabled: { type: Boolean, default: false },
41
+ destroyOnClose: { type: Boolean, default: true },
42
+ onClick: Function,
43
+ getContainer: { type: Function }
44
+ },
45
+ emits: ["update:visible"],
46
+ setup(props, { emit, slots }) {
47
+ const closeDropdown = () => {
48
+ emit("update:visible", false);
49
+ };
50
+ (0, import_vue.provide)(DROPDOWN_CLOSE, closeDropdown);
51
+ (0, import_vue.provide)(DROPDOWN_ON_CLICK, props.onClick);
52
+ return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
53
+ import_popup.Popup,
54
+ {
55
+ visible: props.visible,
56
+ trigger: props.trigger,
57
+ placement: props.placement,
58
+ disabled: props.disabled,
59
+ destroyOnClose: props.destroyOnClose,
60
+ getContainer: props.getContainer,
61
+ "onUpdate:visible": (v) => emit("update:visible", v),
62
+ children: {
63
+ default: () => slots.default?.(),
64
+ content: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "layplux-dropdown", children: slots.overlay?.() })
65
+ }
66
+ }
67
+ );
68
+ }
69
+ });
70
+ const DropdownMenu = (0, import_vue.defineComponent)({
71
+ name: "LaypluxDropdownMenu",
72
+ setup(_props, { slots }) {
73
+ return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "layplux-dropdown-menu", children: slots.default?.() });
74
+ }
75
+ });
76
+ const DropdownItem = (0, import_vue.defineComponent)({
77
+ name: "LaypluxDropdownItem",
78
+ props: {
79
+ eventKey: { type: String, required: true },
80
+ disabled: { type: Boolean, default: false },
81
+ danger: { type: Boolean, default: false }
82
+ },
83
+ setup(props, { slots }) {
84
+ const closeDropdown = (0, import_vue.inject)(DROPDOWN_CLOSE);
85
+ const onItemClick = (0, import_vue.inject)(DROPDOWN_ON_CLICK);
86
+ const handleClick = () => {
87
+ if (props.disabled) return;
88
+ onItemClick?.(props.eventKey);
89
+ closeDropdown?.();
90
+ };
91
+ return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
+ "div",
93
+ {
94
+ class: [
95
+ "layplux-dropdown-menu__item",
96
+ props.disabled && "layplux-dropdown-menu__item--disabled",
97
+ props.danger && "layplux-dropdown-menu__item--danger"
98
+ ],
99
+ onClick: handleClick,
100
+ children: slots.default?.()
101
+ }
102
+ );
103
+ }
104
+ });
105
+ const DropdownDivider = (0, import_vue.defineComponent)({
106
+ name: "LaypluxDropdownDivider",
107
+ setup() {
108
+ return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "layplux-dropdown-menu__divider" });
109
+ }
110
+ });
111
+ const DropdownSubmenu = (0, import_vue.defineComponent)({
112
+ name: "LaypluxDropdownSubmenu",
113
+ props: {
114
+ title: { type: String },
115
+ icon: Object,
116
+ disabled: { type: Boolean, default: false },
117
+ getContainer: { type: Function }
118
+ },
119
+ setup(props, { slots }) {
120
+ const closeParent = (0, import_vue.inject)(DROPDOWN_CLOSE);
121
+ const onParentClick = (0, import_vue.inject)(DROPDOWN_ON_CLICK);
122
+ if (closeParent) {
123
+ (0, import_vue.provide)(DROPDOWN_CLOSE, closeParent);
124
+ }
125
+ const handleClick = (key) => {
126
+ onParentClick?.(key);
127
+ closeParent?.();
128
+ };
129
+ (0, import_vue.provide)(DROPDOWN_ON_CLICK, handleClick);
130
+ return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
131
+ import_popup.Popup,
132
+ {
133
+ trigger: "hover",
134
+ placement: "right-start",
135
+ offset: { x: 4, y: 0 },
136
+ mouseEnterDelay: 150,
137
+ mouseLeaveDelay: 100,
138
+ destroyOnClose: true,
139
+ disabled: props.disabled,
140
+ getContainer: props.getContainer,
141
+ children: {
142
+ default: () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
143
+ "div",
144
+ {
145
+ class: [
146
+ "layplux-dropdown-menu__item",
147
+ "layplux-dropdown-menu__item--submenu",
148
+ props.disabled && "layplux-dropdown-menu__item--disabled"
149
+ ],
150
+ children: [
151
+ props.icon,
152
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: props.title }),
153
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.ChevronRightIcon, { size: 12, class: "layplux-dropdown-menu__submenu-arrow" })
154
+ ]
155
+ }
156
+ ),
157
+ content: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "layplux-dropdown", children: slots.default?.() })
158
+ }
159
+ }
160
+ );
161
+ }
162
+ });
@@ -0,0 +1,59 @@
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 icon_exports = {};
20
+ __export(icon_exports, {
21
+ ChevronRightIcon: () => ChevronRightIcon,
22
+ MinimizeIcon: () => MinimizeIcon,
23
+ MoreIcon: () => MoreIcon
24
+ });
25
+ module.exports = __toCommonJS(icon_exports);
26
+ var import_jsx_runtime = require("vue/jsx-runtime");
27
+ var import_vue = require("vue");
28
+ const iconProps = {
29
+ size: { type: [Number, String], default: 16 }
30
+ };
31
+ function createIcon(d, viewBox = "0 0 16 16") {
32
+ return (0, import_vue.defineComponent)({
33
+ name: "LaypluxIcon",
34
+ props: iconProps,
35
+ setup(props) {
36
+ return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
37
+ "svg",
38
+ {
39
+ xmlns: "http://www.w3.org/2000/svg",
40
+ viewBox,
41
+ width: props.size,
42
+ height: props.size,
43
+ fill: "currentColor",
44
+ style: { flexShrink: 0 },
45
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d })
46
+ }
47
+ );
48
+ }
49
+ });
50
+ }
51
+ const MoreIcon = createIcon(
52
+ "M16 12a2 2 0 0 1 2-2a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2m-6 0a2 2 0 0 1 2-2a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2m-6 0a2 2 0 0 1 2-2a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2",
53
+ "0 0 24 24"
54
+ );
55
+ const MinimizeIcon = createIcon("M19 13H5v-2h14z", "0 0 24 24");
56
+ const ChevronRightIcon = createIcon(
57
+ "M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6z",
58
+ "0 0 24 24"
59
+ );
@@ -0,0 +1,25 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var components_exports = {};
17
+ module.exports = __toCommonJS(components_exports);
18
+ __reExport(components_exports, require("./corner-glow"), module.exports);
19
+ __reExport(components_exports, require("./panel-view"), module.exports);
20
+ __reExport(components_exports, require("./widget"), module.exports);
21
+ __reExport(components_exports, require("./title"), module.exports);
22
+ __reExport(components_exports, require("./panel-view"), module.exports);
23
+ __reExport(components_exports, require("./dropdown"), module.exports);
24
+ __reExport(components_exports, require("./tooltip"), module.exports);
25
+ __reExport(components_exports, require("./center-view"), module.exports);
@@ -0,0 +1,166 @@
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 panel_view_exports = {};
20
+ __export(panel_view_exports, {
21
+ PanelView: () => PanelView
22
+ });
23
+ module.exports = __toCommonJS(panel_view_exports);
24
+ var import_jsx_runtime = require("vue/jsx-runtime");
25
+ var import_vue = require("vue");
26
+ var import_dropdown = require("../dropdown");
27
+ var import_icon = require("../icon");
28
+ var import_utils = require("../../utils");
29
+ var import_locales = require("../../locales");
30
+ const viewModeKeys = /* @__PURE__ */ new Set(["DockPinned", "DockUnpinned", "Undock"]);
31
+ function findItem(items, key) {
32
+ if (!items) return;
33
+ for (const item of items) {
34
+ if (item.key === key) return item;
35
+ if (item.children?.length) {
36
+ const found = findItem(item.children, key);
37
+ if (found) return found;
38
+ }
39
+ }
40
+ }
41
+ const PanelView = (0, import_vue.defineComponent)({
42
+ name: "PanelView",
43
+ props: {
44
+ anchor: String,
45
+ title: String,
46
+ widget: Object,
47
+ menuItems: Array
48
+ },
49
+ setup(props, { slots }) {
50
+ const panelRef = (0, import_vue.ref)();
51
+ const defaultLocale = (0, import_vue.ref)((0, import_locales.getBuiltInLocale)("zh-CN"));
52
+ const locale = (0, import_vue.inject)("layplux-locale", defaultLocale);
53
+ const handleClick = (key) => {
54
+ const widget = props.widget;
55
+ widget?.event?.emitGlobal(`panel:${widget.name}:menu-click`, { widget, key });
56
+ const widgetProps = widget?.config.props;
57
+ const panelItems = widgetProps?.panelMenuItems;
58
+ const panelItem = findItem(panelItems, key);
59
+ if (panelItem?.onClick) {
60
+ panelItem.onClick(key, widget);
61
+ return;
62
+ }
63
+ if (viewModeKeys.has(key)) {
64
+ widget?.pane.setViewMode(key);
65
+ } else if (key === "help") {
66
+ widgetProps?.onHelpClick?.();
67
+ }
68
+ };
69
+ function handlePanelClick() {
70
+ props.widget?.focusable.active();
71
+ }
72
+ function renderItems(items, currentMode) {
73
+ return items.map((item) => {
74
+ if (item.type === "divider") {
75
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dropdown.DropdownDivider, {}, item.key ?? "divider");
76
+ }
77
+ const k = item.key ?? "";
78
+ if (item.children?.length) {
79
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
80
+ import_dropdown.DropdownSubmenu,
81
+ {
82
+ title: item.label,
83
+ icon: item.icon,
84
+ getContainer: () => panelRef.value,
85
+ children: renderItems(item.children, currentMode)
86
+ },
87
+ k
88
+ );
89
+ }
90
+ const disabled = currentMode !== void 0 && viewModeKeys.has(k) && currentMode === k;
91
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dropdown.DropdownItem, { eventKey: k, disabled, children: [
92
+ item.icon,
93
+ " ",
94
+ item.label
95
+ ] }, k);
96
+ });
97
+ }
98
+ return () => {
99
+ const widget = props.widget;
100
+ const currentMode = widget?.pane.viewMode.value;
101
+ const widgetProps = widget?.config.props;
102
+ const hasCustomItems = props.menuItems && props.menuItems.length > 0;
103
+ const panelMenuItems = widgetProps?.panelMenuItems;
104
+ const hasPanelMenuItems = panelMenuItems && panelMenuItems.length > 0;
105
+ const showHelp = widgetProps?.showHelp !== false;
106
+ const loc = locale.value.panel;
107
+ const finalInnerItems = [
108
+ {
109
+ key: "viewMode",
110
+ label: loc.viewMode,
111
+ children: [
112
+ { key: "DockPinned", label: loc.dockPinned },
113
+ { key: "DockUnpinned", label: loc.dockUnpinned },
114
+ { key: "Undock", label: loc.undock }
115
+ ]
116
+ },
117
+ { type: "divider" },
118
+ ...showHelp ? [{ key: "help", label: loc.help }] : []
119
+ ];
120
+ const panelTitleExtra = widgetProps?.panelTitleExtra;
121
+ const panelActionsExtra = widgetProps?.panelActionsExtra;
122
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ref: panelRef, id: widget?.id, class: "layplux-panel", onClick: handlePanelClick, children: [
123
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { class: "layplux-panel__header", children: [
124
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { class: "layplux-panel__title", children: props.title ?? widget?.name }),
125
+ panelTitleExtra && (0, import_utils.createContent)(panelTitleExtra),
126
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { class: "layplux-panel__actions", children: [
127
+ panelActionsExtra && (0, import_utils.createContent)(panelActionsExtra),
128
+ slots.actionsExtra?.(),
129
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
130
+ import_dropdown.Dropdown,
131
+ {
132
+ trigger: "click",
133
+ placement: "bottom-start",
134
+ onClick: handleClick,
135
+ getContainer: () => panelRef.value,
136
+ children: {
137
+ default: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { class: "layplux-panel__action-btn", title: loc.more, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.MoreIcon, { size: 16 }) }),
138
+ overlay: () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dropdown.DropdownMenu, { children: [
139
+ hasPanelMenuItems && renderItems(panelMenuItems),
140
+ hasPanelMenuItems && hasCustomItems && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dropdown.DropdownDivider, {}),
141
+ hasCustomItems && renderItems(props.menuItems),
142
+ (hasPanelMenuItems || hasCustomItems) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dropdown.DropdownDivider, {}),
143
+ renderItems(finalInnerItems, currentMode)
144
+ ] })
145
+ }
146
+ }
147
+ ),
148
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
149
+ "button",
150
+ {
151
+ class: "layplux-panel__action-btn",
152
+ title: loc.minimize,
153
+ onClick: () => {
154
+ widget?.event?.emitGlobal(`panel:${widget.name}:minimize`, { widget });
155
+ widget?.container?.deactivate();
156
+ },
157
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.MinimizeIcon, { size: 16 })
158
+ }
159
+ )
160
+ ] })
161
+ ] }),
162
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { id: props.anchor, class: "layplux-panel__body" })
163
+ ] });
164
+ };
165
+ }
166
+ });