@nice2dev/ui-3d 1.1.0 → 1.1.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 (206) hide show
  1. package/dist/cjs/collaborative/collaborativeScene.js +16 -8
  2. package/dist/cjs/collaborative/collaborativeScene.js.map +1 -1
  3. package/dist/cjs/core/i18n.js +3 -3
  4. package/dist/cjs/dance/DanceBridge.js +65 -30
  5. package/dist/cjs/dance/DanceBridge.js.map +1 -1
  6. package/dist/cjs/dance/DanceScoreEngine.js +37 -23
  7. package/dist/cjs/dance/DanceScoreEngine.js.map +1 -1
  8. package/dist/cjs/dance/PoseDetector.js +92 -49
  9. package/dist/cjs/dance/PoseDetector.js.map +1 -1
  10. package/dist/cjs/material/NiceMaterialEditor.js +134 -91
  11. package/dist/cjs/material/NiceMaterialEditor.js.map +1 -1
  12. package/dist/cjs/material/materialEditorUtils.js +86 -55
  13. package/dist/cjs/material/materialEditorUtils.js.map +1 -1
  14. package/dist/cjs/model/ModelEditor.js +16 -14
  15. package/dist/cjs/model/ModelEditor.js.map +1 -1
  16. package/dist/cjs/model/ModelEditorLeftPanel.js +21 -15
  17. package/dist/cjs/model/ModelEditorLeftPanel.js.map +1 -1
  18. package/dist/cjs/model/ModelEditorMenuBar.js +23 -10
  19. package/dist/cjs/model/ModelEditorMenuBar.js.map +1 -1
  20. package/dist/cjs/model/ModelEditorRightPanel.js +32 -27
  21. package/dist/cjs/model/ModelEditorRightPanel.js.map +1 -1
  22. package/dist/cjs/model/ModelEditorSubComponents.js +20 -20
  23. package/dist/cjs/model/ModelEditorSubComponents.js.map +1 -1
  24. package/dist/cjs/model/ModelEditorTimeline.js +12 -11
  25. package/dist/cjs/model/ModelEditorTimeline.js.map +1 -1
  26. package/dist/cjs/model/ModelEditorToolbar.js +5 -5
  27. package/dist/cjs/model/ModelEditorToolbar.js.map +1 -1
  28. package/dist/cjs/model/ModelEditorViewport.js +12 -8
  29. package/dist/cjs/model/ModelEditorViewport.js.map +1 -1
  30. package/dist/cjs/model/ModelViewer.js +16 -15
  31. package/dist/cjs/model/ModelViewer.js.map +1 -1
  32. package/dist/cjs/model/NiceArmatureEditor.js +53 -30
  33. package/dist/cjs/model/NiceArmatureEditor.js.map +1 -1
  34. package/dist/cjs/model/NiceMorphTargetEditor.js +51 -30
  35. package/dist/cjs/model/NiceMorphTargetEditor.js.map +1 -1
  36. package/dist/cjs/model/NiceOctree.js +62 -37
  37. package/dist/cjs/model/NiceOctree.js.map +1 -1
  38. package/dist/cjs/model/NicePhysicsSimulation.js +74 -36
  39. package/dist/cjs/model/NicePhysicsSimulation.js.map +1 -1
  40. package/dist/cjs/model/NiceProceduralGeometry.js +101 -31
  41. package/dist/cjs/model/NiceProceduralGeometry.js.map +1 -1
  42. package/dist/cjs/model/NiceTerrainEditor.js +88 -38
  43. package/dist/cjs/model/NiceTerrainEditor.js.map +1 -1
  44. package/dist/cjs/model/NiceWeightPainter.js +46 -24
  45. package/dist/cjs/model/NiceWeightPainter.js.map +1 -1
  46. package/dist/cjs/model/NiceXRPreview.js +89 -43
  47. package/dist/cjs/model/NiceXRPreview.js.map +1 -1
  48. package/dist/cjs/model/cadModeUtils.js +2 -2
  49. package/dist/cjs/model/cadModeUtils.js.map +1 -1
  50. package/dist/cjs/model/editorShortcuts.js +69 -35
  51. package/dist/cjs/model/editorShortcuts.js.map +1 -1
  52. package/dist/cjs/model/modelEditorTypes.js +56 -52
  53. package/dist/cjs/model/modelEditorTypes.js.map +1 -1
  54. package/dist/cjs/model/modelEditorUtils.js +356 -131
  55. package/dist/cjs/model/modelEditorUtils.js.map +1 -1
  56. package/dist/cjs/model/simsModeUtils.js +819 -74
  57. package/dist/cjs/model/simsModeUtils.js.map +1 -1
  58. package/dist/cjs/model/useModelEditor.js +501 -394
  59. package/dist/cjs/model/useModelEditor.js.map +1 -1
  60. package/dist/cjs/model/useModelViewer.js +117 -86
  61. package/dist/cjs/model/useModelViewer.js.map +1 -1
  62. package/dist/cjs/particle/NiceParticleEditor.js +126 -69
  63. package/dist/cjs/particle/NiceParticleEditor.js.map +1 -1
  64. package/dist/cjs/particle/particleEditorUtils.js +64 -27
  65. package/dist/cjs/particle/particleEditorUtils.js.map +1 -1
  66. package/dist/cjs/rendering/NiceCascadedShadows.js +35 -23
  67. package/dist/cjs/rendering/NiceCascadedShadows.js.map +1 -1
  68. package/dist/cjs/rendering/NiceRenderExport.js +26 -12
  69. package/dist/cjs/rendering/NiceRenderExport.js.map +1 -1
  70. package/dist/cjs/rendering/NiceSSAO.js +28 -23
  71. package/dist/cjs/rendering/NiceSSAO.js.map +1 -1
  72. package/dist/cjs/rendering/NiceSSR.js +22 -18
  73. package/dist/cjs/rendering/NiceSSR.js.map +1 -1
  74. package/dist/cjs/rendering/NiceWebGPURenderer.js +60 -37
  75. package/dist/cjs/rendering/NiceWebGPURenderer.js.map +1 -1
  76. package/dist/cjs/ui/dist/NiceErrorBoundary-D75yr_WE.js +572 -0
  77. package/dist/cjs/ui/dist/NiceErrorBoundary-D75yr_WE.js.map +1 -0
  78. package/dist/cjs/ui/dist/NiceForm-CKoJA6NG.js +4979 -0
  79. package/dist/cjs/ui/dist/NiceForm-CKoJA6NG.js.map +1 -0
  80. package/dist/cjs/ui/dist/NiceModal-1QX7NhyH.js +98 -0
  81. package/dist/cjs/ui/dist/NiceModal-1QX7NhyH.js.map +1 -0
  82. package/dist/cjs/ui/dist/NiceModuleLifecyclePanel-CMrPbSw9.js +5244 -0
  83. package/dist/cjs/ui/dist/NiceModuleLifecyclePanel-CMrPbSw9.js.map +1 -0
  84. package/dist/cjs/ui/dist/NicePagination-DbE-uOkl.js +174 -0
  85. package/dist/cjs/ui/dist/NicePagination-DbE-uOkl.js.map +1 -0
  86. package/dist/cjs/ui/dist/NicePinCodeInput-B8cI8zu8.js +10459 -0
  87. package/dist/cjs/ui/dist/NicePinCodeInput-B8cI8zu8.js.map +1 -0
  88. package/dist/cjs/ui/dist/NiceSavedQueryPanel-CZ5bYOe_.js +6313 -0
  89. package/dist/cjs/ui/dist/NiceSavedQueryPanel-CZ5bYOe_.js.map +1 -0
  90. package/dist/cjs/ui/dist/NiceTabs-DzLHzwuA.js +1639 -0
  91. package/dist/cjs/ui/dist/NiceTabs-DzLHzwuA.js.map +1 -0
  92. package/dist/cjs/ui/dist/NiceWindow-DeC83yfE.js +807 -0
  93. package/dist/cjs/ui/dist/NiceWindow-DeC83yfE.js.map +1 -0
  94. package/dist/cjs/ui/dist/charts-BAS21jkC.js +3833 -0
  95. package/dist/cjs/ui/dist/charts-BAS21jkC.js.map +1 -0
  96. package/dist/cjs/ui/dist/core-Da43q-pO.js +11683 -0
  97. package/dist/cjs/ui/dist/core-Da43q-pO.js.map +1 -0
  98. package/dist/cjs/ui/dist/index-pAuGTbuB.js +28876 -0
  99. package/dist/cjs/ui/dist/index-pAuGTbuB.js.map +1 -0
  100. package/dist/cjs/uv/NiceUVEditor.js +115 -86
  101. package/dist/cjs/uv/NiceUVEditor.js.map +1 -1
  102. package/dist/cjs/uv/uvEditorUtils.js +41 -23
  103. package/dist/cjs/uv/uvEditorUtils.js.map +1 -1
  104. package/dist/esm/collaborative/collaborativeScene.js +16 -8
  105. package/dist/esm/collaborative/collaborativeScene.js.map +1 -1
  106. package/dist/esm/dance/DanceBridge.js +55 -20
  107. package/dist/esm/dance/DanceBridge.js.map +1 -1
  108. package/dist/esm/dance/DanceScoreEngine.js +29 -15
  109. package/dist/esm/dance/DanceScoreEngine.js.map +1 -1
  110. package/dist/esm/dance/PoseDetector.js +73 -30
  111. package/dist/esm/dance/PoseDetector.js.map +1 -1
  112. package/dist/esm/material/NiceMaterialEditor.js +115 -72
  113. package/dist/esm/material/NiceMaterialEditor.js.map +1 -1
  114. package/dist/esm/material/materialEditorUtils.js +86 -55
  115. package/dist/esm/material/materialEditorUtils.js.map +1 -1
  116. package/dist/esm/model/ModelEditor.js +16 -14
  117. package/dist/esm/model/ModelEditor.js.map +1 -1
  118. package/dist/esm/model/ModelEditorLeftPanel.js +21 -15
  119. package/dist/esm/model/ModelEditorLeftPanel.js.map +1 -1
  120. package/dist/esm/model/ModelEditorMenuBar.js +23 -10
  121. package/dist/esm/model/ModelEditorMenuBar.js.map +1 -1
  122. package/dist/esm/model/ModelEditorRightPanel.js +32 -27
  123. package/dist/esm/model/ModelEditorRightPanel.js.map +1 -1
  124. package/dist/esm/model/ModelEditorSubComponents.js +17 -17
  125. package/dist/esm/model/ModelEditorSubComponents.js.map +1 -1
  126. package/dist/esm/model/ModelEditorTimeline.js +12 -11
  127. package/dist/esm/model/ModelEditorTimeline.js.map +1 -1
  128. package/dist/esm/model/ModelEditorToolbar.js +5 -5
  129. package/dist/esm/model/ModelEditorToolbar.js.map +1 -1
  130. package/dist/esm/model/ModelEditorViewport.js +12 -8
  131. package/dist/esm/model/ModelEditorViewport.js.map +1 -1
  132. package/dist/esm/model/ModelViewer.js +8 -7
  133. package/dist/esm/model/ModelViewer.js.map +1 -1
  134. package/dist/esm/model/NiceArmatureEditor.js +36 -13
  135. package/dist/esm/model/NiceArmatureEditor.js.map +1 -1
  136. package/dist/esm/model/NiceMorphTargetEditor.js +34 -13
  137. package/dist/esm/model/NiceMorphTargetEditor.js.map +1 -1
  138. package/dist/esm/model/NiceOctree.js +47 -22
  139. package/dist/esm/model/NiceOctree.js.map +1 -1
  140. package/dist/esm/model/NicePhysicsSimulation.js +51 -13
  141. package/dist/esm/model/NicePhysicsSimulation.js.map +1 -1
  142. package/dist/esm/model/NiceProceduralGeometry.js +94 -24
  143. package/dist/esm/model/NiceProceduralGeometry.js.map +1 -1
  144. package/dist/esm/model/NiceTerrainEditor.js +70 -20
  145. package/dist/esm/model/NiceTerrainEditor.js.map +1 -1
  146. package/dist/esm/model/NiceWeightPainter.js +33 -11
  147. package/dist/esm/model/NiceWeightPainter.js.map +1 -1
  148. package/dist/esm/model/NiceXRPreview.js +72 -26
  149. package/dist/esm/model/NiceXRPreview.js.map +1 -1
  150. package/dist/esm/model/cadModeUtils.js +2 -2
  151. package/dist/esm/model/cadModeUtils.js.map +1 -1
  152. package/dist/esm/model/editorShortcuts.js +69 -35
  153. package/dist/esm/model/editorShortcuts.js.map +1 -1
  154. package/dist/esm/model/modelEditorTypes.js +56 -52
  155. package/dist/esm/model/modelEditorTypes.js.map +1 -1
  156. package/dist/esm/model/modelEditorUtils.js +356 -131
  157. package/dist/esm/model/modelEditorUtils.js.map +1 -1
  158. package/dist/esm/model/simsModeUtils.js +819 -74
  159. package/dist/esm/model/simsModeUtils.js.map +1 -1
  160. package/dist/esm/model/useModelEditor.js +384 -277
  161. package/dist/esm/model/useModelEditor.js.map +1 -1
  162. package/dist/esm/model/useModelViewer.js +56 -25
  163. package/dist/esm/model/useModelViewer.js.map +1 -1
  164. package/dist/esm/particle/NiceParticleEditor.js +116 -59
  165. package/dist/esm/particle/NiceParticleEditor.js.map +1 -1
  166. package/dist/esm/particle/particleEditorUtils.js +64 -27
  167. package/dist/esm/particle/particleEditorUtils.js.map +1 -1
  168. package/dist/esm/rendering/NiceCascadedShadows.js +24 -12
  169. package/dist/esm/rendering/NiceCascadedShadows.js.map +1 -1
  170. package/dist/esm/rendering/NiceRenderExport.js +22 -8
  171. package/dist/esm/rendering/NiceRenderExport.js.map +1 -1
  172. package/dist/esm/rendering/NiceSSAO.js +11 -6
  173. package/dist/esm/rendering/NiceSSAO.js.map +1 -1
  174. package/dist/esm/rendering/NiceSSR.js +9 -5
  175. package/dist/esm/rendering/NiceSSR.js.map +1 -1
  176. package/dist/esm/rendering/NiceWebGPURenderer.js +40 -17
  177. package/dist/esm/rendering/NiceWebGPURenderer.js.map +1 -1
  178. package/dist/esm/ui/dist/NiceErrorBoundary-D75yr_WE.js +563 -0
  179. package/dist/esm/ui/dist/NiceErrorBoundary-D75yr_WE.js.map +1 -0
  180. package/dist/esm/ui/dist/NiceForm-CKoJA6NG.js +4960 -0
  181. package/dist/esm/ui/dist/NiceForm-CKoJA6NG.js.map +1 -0
  182. package/dist/esm/ui/dist/NiceModal-1QX7NhyH.js +96 -0
  183. package/dist/esm/ui/dist/NiceModal-1QX7NhyH.js.map +1 -0
  184. package/dist/esm/ui/dist/NiceModuleLifecyclePanel-CMrPbSw9.js +5201 -0
  185. package/dist/esm/ui/dist/NiceModuleLifecyclePanel-CMrPbSw9.js.map +1 -0
  186. package/dist/esm/ui/dist/NicePagination-DbE-uOkl.js +172 -0
  187. package/dist/esm/ui/dist/NicePagination-DbE-uOkl.js.map +1 -0
  188. package/dist/esm/ui/dist/NicePinCodeInput-B8cI8zu8.js +10408 -0
  189. package/dist/esm/ui/dist/NicePinCodeInput-B8cI8zu8.js.map +1 -0
  190. package/dist/esm/ui/dist/NiceSavedQueryPanel-CZ5bYOe_.js +6296 -0
  191. package/dist/esm/ui/dist/NiceSavedQueryPanel-CZ5bYOe_.js.map +1 -0
  192. package/dist/esm/ui/dist/NiceTabs-DzLHzwuA.js +1630 -0
  193. package/dist/esm/ui/dist/NiceTabs-DzLHzwuA.js.map +1 -0
  194. package/dist/esm/ui/dist/NiceWindow-DeC83yfE.js +796 -0
  195. package/dist/esm/ui/dist/NiceWindow-DeC83yfE.js.map +1 -0
  196. package/dist/esm/ui/dist/charts-BAS21jkC.js +3809 -0
  197. package/dist/esm/ui/dist/charts-BAS21jkC.js.map +1 -0
  198. package/dist/esm/ui/dist/core-Da43q-pO.js +11502 -0
  199. package/dist/esm/ui/dist/core-Da43q-pO.js.map +1 -0
  200. package/dist/esm/ui/dist/index-pAuGTbuB.js +28792 -0
  201. package/dist/esm/ui/dist/index-pAuGTbuB.js.map +1 -0
  202. package/dist/esm/uv/NiceUVEditor.js +91 -62
  203. package/dist/esm/uv/NiceUVEditor.js.map +1 -1
  204. package/dist/esm/uv/uvEditorUtils.js +41 -23
  205. package/dist/esm/uv/uvEditorUtils.js.map +1 -1
  206. package/package.json +2 -2
@@ -0,0 +1,807 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var coreDa43qPO = require('./core-Da43q-pO.js');
5
+ var _e = require('react');
6
+
7
+ const $t = ({
8
+ visible: e,
9
+ onClose: t,
10
+ title: o,
11
+ items: s,
12
+ showCancelButton: u = true,
13
+ cancelText: d,
14
+ className: h,
15
+ style: g
16
+ }) => {
17
+ const { t: p } = coreDa43qPO.W();
18
+ return e ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
19
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-actionsheet__overlay", onClick: t }),
20
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `nice-actionsheet ${h || ""}`, style: g, children: [
21
+ o && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-actionsheet__title", children: o }),
22
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-actionsheet__items", children: s.map((E, r) => /* @__PURE__ */ jsxRuntime.jsxs(
23
+ "button",
24
+ {
25
+ className: `nice-actionsheet__item ${E.type === "danger" ? "nice-actionsheet__item--danger" : ""}`,
26
+ disabled: E.disabled,
27
+ onClick: () => {
28
+ E.onClick?.(), t();
29
+ },
30
+ children: [
31
+ E.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nice-actionsheet__icon", children: E.icon }),
32
+ E.text
33
+ ]
34
+ },
35
+ r
36
+ )) }),
37
+ u && /* @__PURE__ */ jsxRuntime.jsx("button", { className: "nice-actionsheet__cancel", onClick: t, children: d || p("cancel", "Cancel") })
38
+ ] })
39
+ ] }) : null;
40
+ }, Dt = ({
41
+ visible: e,
42
+ onClose: t,
43
+ targetRef: o,
44
+ position: s = "bottom",
45
+ title: u,
46
+ showArrow: d = true,
47
+ width: h,
48
+ children: g,
49
+ className: p,
50
+ style: E,
51
+ displayStyle: r
52
+ }) => {
53
+ coreDa43qPO.d("tooltip", r);
54
+ const b = _e.useRef(null), [Y, f] = _e.useState({ top: 0, left: 0 }), L = _e.useCallback(() => {
55
+ const w = o.current, X = b.current;
56
+ if (!w || !X)
57
+ return;
58
+ const n = w.getBoundingClientRect(), v = X.getBoundingClientRect();
59
+ let a = 0, z = 0;
60
+ const T = 8;
61
+ switch (s) {
62
+ case "top":
63
+ a = n.top - v.height - T, z = n.left + (n.width - v.width) / 2;
64
+ break;
65
+ case "bottom":
66
+ a = n.bottom + T, z = n.left + (n.width - v.width) / 2;
67
+ break;
68
+ case "left":
69
+ a = n.top + (n.height - v.height) / 2, z = n.left - v.width - T;
70
+ break;
71
+ case "right":
72
+ a = n.top + (n.height - v.height) / 2, z = n.right + T;
73
+ break;
74
+ }
75
+ f({ top: a + window.scrollY, left: z + window.scrollX });
76
+ }, [o, s]);
77
+ return _e.useEffect(() => {
78
+ if (e) {
79
+ requestAnimationFrame(L);
80
+ const w = (X) => {
81
+ b.current && !b.current.contains(X.target) && o.current && !o.current.contains(X.target) && t();
82
+ };
83
+ return document.addEventListener("mousedown", w), () => document.removeEventListener("mousedown", w);
84
+ }
85
+ }, [e, L, t, o]), e ? /* @__PURE__ */ jsxRuntime.jsxs(
86
+ "div",
87
+ {
88
+ ref: b,
89
+ className: `nice-popover nice-popover--${s} ${p || ""}`,
90
+ style: { ...E, position: "absolute", top: Y.top, left: Y.left, width: h },
91
+ children: [
92
+ d && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `nice-popover__arrow nice-popover__arrow--${s}` }),
93
+ u && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-popover__title", children: u }),
94
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-popover__content", children: g })
95
+ ]
96
+ }
97
+ ) : null;
98
+ }, Pt = ({
99
+ visible: e,
100
+ message: t,
101
+ container: o,
102
+ showIndicator: s = true,
103
+ shading: u = true,
104
+ className: d,
105
+ style: h
106
+ }) => {
107
+ const { t: g } = coreDa43qPO.W();
108
+ if (!e)
109
+ return null;
110
+ const p = !!o?.current, E = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `nice-loadpanel ${d || ""}`, style: h, children: [
111
+ u && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-loadpanel__shade" }),
112
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nice-loadpanel__box", children: [
113
+ s && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-spinner nice-spinner--md" }),
114
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nice-loadpanel__text", children: t || g("loading", "Loading...") })
115
+ ] })
116
+ ] });
117
+ if (p && o.current) {
118
+ const r = o.current;
119
+ return r.style.position = r.style.position || "relative", E;
120
+ }
121
+ return E;
122
+ }, Yt = ({
123
+ direction: e = "row",
124
+ align: t,
125
+ justify: o,
126
+ wrap: s,
127
+ gap: u,
128
+ flex: d,
129
+ children: h,
130
+ className: g,
131
+ style: p
132
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
133
+ "div",
134
+ {
135
+ className: `nice-box ${g || ""}`,
136
+ style: {
137
+ display: "flex",
138
+ flexDirection: e,
139
+ alignItems: t,
140
+ justifyContent: o,
141
+ flexWrap: s ? "wrap" : void 0,
142
+ gap: u,
143
+ flex: d,
144
+ ...p
145
+ },
146
+ children: h
147
+ }
148
+ ), Xt = ({
149
+ direction: e = "row",
150
+ items: t,
151
+ gap: o,
152
+ className: s,
153
+ style: u
154
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
155
+ "div",
156
+ {
157
+ className: `nice-responsivebox ${s || ""}`,
158
+ style: { display: "flex", flexDirection: e, gap: o, ...u },
159
+ children: t.map((d, h) => /* @__PURE__ */ jsxRuntime.jsx(
160
+ "div",
161
+ {
162
+ style: { flex: d.ratio ?? 1, flexBasis: d.baseSize, flexShrink: d.shrink ?? 1 },
163
+ children: d.children
164
+ },
165
+ h
166
+ ))
167
+ }
168
+ ), Ot = ({
169
+ width: e = 200,
170
+ height: t = 200,
171
+ minWidth: o = 50,
172
+ minHeight: s = 50,
173
+ maxWidth: u = 1 / 0,
174
+ maxHeight: d = 1 / 0,
175
+ handles: h = ["right", "bottom", "bottomRight"],
176
+ onResize: g,
177
+ children: p,
178
+ className: E,
179
+ style: r
180
+ }) => {
181
+ const [b, Y] = _e.useState({ width: e, height: t }), f = _e.useRef(null), L = (n, v) => {
182
+ v.preventDefault();
183
+ const a = v.clientX, z = v.clientY, T = b.width, W = b.height, _ = (i) => {
184
+ const x = i.clientX - a, S = i.clientY - z;
185
+ let I = T, l = W;
186
+ (n.includes("right") || n === "right") && (I = T + x), (n.includes("bottom") || n === "bottom") && (l = W + S), (n.includes("left") || n === "left") && (I = T - x), (n.includes("top") || n === "top") && (l = W - S), I = Math.max(o, Math.min(u, I)), l = Math.max(s, Math.min(d, l)), Y({ width: I, height: l }), g?.({ width: I, height: l });
187
+ }, D = () => {
188
+ document.removeEventListener("pointermove", _), document.removeEventListener("pointerup", D);
189
+ };
190
+ document.addEventListener("pointermove", _), document.addEventListener("pointerup", D);
191
+ }, w = (n) => {
192
+ switch (n) {
193
+ case "top":
194
+ case "bottom":
195
+ return "ns-resize";
196
+ case "left":
197
+ case "right":
198
+ return "ew-resize";
199
+ case "topLeft":
200
+ case "bottomRight":
201
+ return "nwse-resize";
202
+ case "topRight":
203
+ case "bottomLeft":
204
+ return "nesw-resize";
205
+ default:
206
+ return "default";
207
+ }
208
+ }, X = (n) => {
209
+ const v = { position: "absolute", zIndex: 1 }, a = 8;
210
+ return n === "right" ? {
211
+ ...v,
212
+ top: 0,
213
+ right: -a / 2,
214
+ width: a,
215
+ height: "100%",
216
+ cursor: w(n)
217
+ } : n === "bottom" ? {
218
+ ...v,
219
+ left: 0,
220
+ bottom: -a / 2,
221
+ width: "100%",
222
+ height: a,
223
+ cursor: w(n)
224
+ } : n === "left" ? { ...v, top: 0, left: -a / 2, width: a, height: "100%", cursor: w(n) } : n === "top" ? { ...v, top: -a / 2, left: 0, width: "100%", height: a, cursor: w(n) } : n === "bottomRight" ? {
225
+ ...v,
226
+ bottom: -a / 2,
227
+ right: -a / 2,
228
+ width: a * 2,
229
+ height: a * 2,
230
+ cursor: w(n)
231
+ } : n === "bottomLeft" ? {
232
+ ...v,
233
+ bottom: -a / 2,
234
+ left: -a / 2,
235
+ width: a * 2,
236
+ height: a * 2,
237
+ cursor: w(n)
238
+ } : n === "topRight" ? {
239
+ ...v,
240
+ top: -a / 2,
241
+ right: -a / 2,
242
+ width: a * 2,
243
+ height: a * 2,
244
+ cursor: w(n)
245
+ } : n === "topLeft" ? {
246
+ ...v,
247
+ top: -a / 2,
248
+ left: -a / 2,
249
+ width: a * 2,
250
+ height: a * 2,
251
+ cursor: w(n)
252
+ } : v;
253
+ };
254
+ return /* @__PURE__ */ jsxRuntime.jsxs(
255
+ "div",
256
+ {
257
+ ref: f,
258
+ className: `nice-resizable ${E || ""}`,
259
+ style: {
260
+ ...r,
261
+ width: b.width,
262
+ height: b.height,
263
+ position: "relative",
264
+ overflow: "hidden"
265
+ },
266
+ children: [
267
+ p,
268
+ h.map((n) => /* @__PURE__ */ jsxRuntime.jsx("div", { style: X(n), onPointerDown: (v) => L(n, v) }, n))
269
+ ]
270
+ }
271
+ );
272
+ }, qt = ({
273
+ direction: e = "vertical",
274
+ showScrollbar: t = "onInteraction",
275
+ width: o,
276
+ height: s,
277
+ onScroll: u,
278
+ children: d,
279
+ className: h,
280
+ style: g
281
+ }) => {
282
+ const p = e === "horizontal" || e === "both" ? "auto" : "hidden", E = e === "vertical" || e === "both" ? "auto" : "hidden";
283
+ return /* @__PURE__ */ jsxRuntime.jsx(
284
+ "div",
285
+ {
286
+ className: `nice-scrollview ${t === "never" ? "nice-scrollview--hide-sb" : t === "always" ? "nice-scrollview--show-sb" : ""} ${h || ""}`,
287
+ style: { ...g, width: o, height: s, overflowX: p, overflowY: E },
288
+ onScroll: u,
289
+ children: d
290
+ }
291
+ );
292
+ };
293
+ _e.createContext(null);
294
+ const Nt = _e.forwardRef(
295
+ ({ blocked: e, message: t, children: o, className: s, style: u, id: d }, h) => {
296
+ const g = coreDa43qPO.b(d);
297
+ return /* @__PURE__ */ jsxRuntime.jsxs(
298
+ "div",
299
+ {
300
+ ref: h,
301
+ id: g,
302
+ className: `nice-block-ui ${s || ""}`,
303
+ style: { position: "relative", ...u },
304
+ children: [
305
+ o,
306
+ e && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-block-ui__overlay", "aria-busy": "true", role: "alert", children: t && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-block-ui__message", children: t }) })
307
+ ]
308
+ }
309
+ );
310
+ }
311
+ );
312
+ Nt.displayName = "NiceBlockUI";
313
+ const kt = _e.forwardRef(
314
+ ({
315
+ windows: e,
316
+ children: t,
317
+ onChange: o,
318
+ onClose: s,
319
+ onFocus: u,
320
+ showTaskbar: d = true,
321
+ size: h = "md",
322
+ className: g,
323
+ style: p,
324
+ id: E,
325
+ ...r
326
+ }, b) => {
327
+ const Y = coreDa43qPO.b(E), { t: f } = coreDa43qPO.W(), [L, w] = _e.useState(null), X = _e.useRef(null), n = e ?? [], v = Math.max(1, ...n.map((i) => i.zIndex ?? 1)), a = _e.useCallback(
328
+ (i, x) => {
329
+ const S = n.map((I) => I.key === i ? { ...I, ...x } : I);
330
+ o?.(S);
331
+ },
332
+ [n, o]
333
+ ), z = _e.useCallback(
334
+ (i) => {
335
+ a(i, { zIndex: v + 1 }), u?.(i);
336
+ },
337
+ [a, v, u]
338
+ ), T = _e.useCallback(
339
+ (i) => {
340
+ s?.(i), o?.(n.filter((x) => x.key !== i));
341
+ },
342
+ [n, o, s]
343
+ ), W = _e.useCallback(
344
+ (i) => {
345
+ const x = n.find((S) => S.key === i);
346
+ x && a(i, { minimized: !x.minimized, maximized: false });
347
+ },
348
+ [n, a]
349
+ ), _ = _e.useCallback(
350
+ (i) => {
351
+ const x = n.find((S) => S.key === i);
352
+ x && a(i, { maximized: !x.maximized, minimized: false });
353
+ },
354
+ [n, a]
355
+ );
356
+ _e.useEffect(() => {
357
+ if (!L)
358
+ return;
359
+ const i = (S) => {
360
+ const I = n.find((l) => l.key === L.key);
361
+ if (I)
362
+ if (L.mode === "move")
363
+ a(L.key, {
364
+ x: S.clientX - L.offsetX,
365
+ y: S.clientY - L.offsetY
366
+ });
367
+ else {
368
+ const C = X.current?.getBoundingClientRect(), m = C?.left ?? 0, O = C?.top ?? 0;
369
+ a(L.key, {
370
+ width: Math.max(200, S.clientX - m - I.x),
371
+ height: Math.max(100, S.clientY - O - I.y)
372
+ });
373
+ }
374
+ }, x = () => w(null);
375
+ return document.addEventListener("mousemove", i), document.addEventListener("mouseup", x), () => {
376
+ document.removeEventListener("mousemove", i), document.removeEventListener("mouseup", x);
377
+ };
378
+ }, [L, n, a]);
379
+ const D = _e.useCallback(
380
+ (i, x, S) => {
381
+ x.preventDefault();
382
+ const I = n.find((l) => l.key === i);
383
+ I && (z(i), w({
384
+ key: i,
385
+ offsetX: S === "move" ? x.clientX - I.x : 0,
386
+ offsetY: S === "move" ? x.clientY - I.y : 0,
387
+ mode: S
388
+ }));
389
+ },
390
+ [n, z]
391
+ );
392
+ return /* @__PURE__ */ jsxRuntime.jsxs(
393
+ "div",
394
+ {
395
+ ref: (i) => {
396
+ X.current = i, typeof b == "function" ? b(i) : b && (b.current = i);
397
+ },
398
+ id: Y,
399
+ className: `nice-wm nice-wm--${h} ${g ?? ""}`,
400
+ style: { ...p, position: "relative", overflow: "hidden" },
401
+ ...r,
402
+ children: [
403
+ n.map((i) => {
404
+ if (i.minimized)
405
+ return null;
406
+ const x = i.maximized, S = x ? {
407
+ position: "absolute",
408
+ top: 0,
409
+ left: 0,
410
+ width: "100%",
411
+ height: "100%",
412
+ zIndex: i.zIndex ?? 1
413
+ } : {
414
+ position: "absolute",
415
+ top: i.y,
416
+ left: i.x,
417
+ width: i.width,
418
+ height: i.height,
419
+ zIndex: i.zIndex ?? 1
420
+ };
421
+ return /* @__PURE__ */ jsxRuntime.jsxs(
422
+ "div",
423
+ {
424
+ className: `nice-wm__window ${x ? "nice-wm__window--maximized" : ""}`,
425
+ style: S,
426
+ onMouseDown: () => z(i.key),
427
+ role: "dialog",
428
+ "aria-label": i.title,
429
+ children: [
430
+ /* @__PURE__ */ jsxRuntime.jsxs(
431
+ "div",
432
+ {
433
+ className: "nice-wm__titlebar",
434
+ onMouseDown: (I) => !x && D(i.key, I, "move"),
435
+ children: [
436
+ i.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nice-wm__icon", children: i.icon }),
437
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nice-wm__title", children: i.title }),
438
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nice-wm__controls", children: [
439
+ (i.minimizable ?? true) && /* @__PURE__ */ jsxRuntime.jsx(
440
+ "button",
441
+ {
442
+ type: "button",
443
+ className: "nice-wm__ctrl-btn nice-wm__ctrl-btn--min",
444
+ onClick: () => W(i.key),
445
+ title: f("wm.minimize", "Minimize"),
446
+ children: "─"
447
+ }
448
+ ),
449
+ (i.maximizable ?? true) && /* @__PURE__ */ jsxRuntime.jsx(
450
+ "button",
451
+ {
452
+ type: "button",
453
+ className: "nice-wm__ctrl-btn nice-wm__ctrl-btn--max",
454
+ onClick: () => _(i.key),
455
+ title: f("wm.maximize", "Maximize"),
456
+ children: x ? "❐" : "☐"
457
+ }
458
+ ),
459
+ (i.closable ?? true) && /* @__PURE__ */ jsxRuntime.jsx(
460
+ "button",
461
+ {
462
+ type: "button",
463
+ className: "nice-wm__ctrl-btn nice-wm__ctrl-btn--close",
464
+ onClick: () => T(i.key),
465
+ title: f("wm.close", "Close"),
466
+ children: "✕"
467
+ }
468
+ )
469
+ ] })
470
+ ]
471
+ }
472
+ ),
473
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-wm__body", children: i.content }),
474
+ (i.resizable ?? true) && !x && /* @__PURE__ */ jsxRuntime.jsx(
475
+ "div",
476
+ {
477
+ className: "nice-wm__resize-handle",
478
+ onMouseDown: (I) => D(i.key, I, "resize")
479
+ }
480
+ )
481
+ ]
482
+ },
483
+ i.key
484
+ );
485
+ }),
486
+ e === void 0 && t,
487
+ d && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-wm__taskbar", role: "toolbar", "aria-label": f("wm.taskbar", "Taskbar"), children: n.map((i) => /* @__PURE__ */ jsxRuntime.jsxs(
488
+ "button",
489
+ {
490
+ type: "button",
491
+ className: `nice-wm__taskbar-btn ${i.minimized ? "nice-wm__taskbar-btn--minimized" : ""}`,
492
+ onClick: () => {
493
+ i.minimized && W(i.key), z(i.key);
494
+ },
495
+ children: [
496
+ i.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nice-wm__taskbar-icon", children: i.icon }),
497
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nice-wm__taskbar-label", children: i.title })
498
+ ]
499
+ },
500
+ i.key
501
+ )) })
502
+ ]
503
+ }
504
+ );
505
+ }
506
+ );
507
+ kt.displayName = "NiceWindowManager";
508
+ _e.createContext({
509
+ startTutorial: () => {
510
+ },
511
+ stopTutorial: () => {
512
+ },
513
+ isActive: false,
514
+ currentStep: 0,
515
+ nextStep: () => {
516
+ },
517
+ prevStep: () => {
518
+ },
519
+ goToStep: () => {
520
+ }
521
+ });
522
+ function It(e, t, o, s, u) {
523
+ const d = e <= u, h = e + u >= o, g = t <= u, p = t + u >= s;
524
+ return g && d ? "top-left" : g && h ? "top-right" : p && d ? "bottom-left" : p && h ? "bottom-right" : d ? "left" : h ? "right" : g ? "top" : p ? "bottom" : "none";
525
+ }
526
+ function Mt(e) {
527
+ switch (e) {
528
+ case "left":
529
+ return { left: 0, top: 0, width: "50%", height: "100%" };
530
+ case "right":
531
+ return { left: "50%", top: 0, width: "50%", height: "100%" };
532
+ case "top":
533
+ return { left: 0, top: 0, width: "100%", height: "50%" };
534
+ case "bottom":
535
+ return { left: 0, top: "50%", width: "100%", height: "50%" };
536
+ case "top-left":
537
+ return { left: 0, top: 0, width: "50%", height: "50%" };
538
+ case "top-right":
539
+ return { left: "50%", top: 0, width: "50%", height: "50%" };
540
+ case "bottom-left":
541
+ return { left: 0, top: "50%", width: "50%", height: "50%" };
542
+ case "bottom-right":
543
+ return { left: "50%", top: "50%", width: "50%", height: "50%" };
544
+ default:
545
+ return null;
546
+ }
547
+ }
548
+ const St = _e.forwardRef(
549
+ ({
550
+ windowKey: e,
551
+ title: t,
552
+ icon: o,
553
+ children: s,
554
+ footer: u,
555
+ x: d,
556
+ y: h,
557
+ defaultPosition: g,
558
+ width: p = 480,
559
+ height: E = 360,
560
+ minWidth: r = 200,
561
+ minHeight: b = 120,
562
+ maxWidth: Y,
563
+ maxHeight: f,
564
+ zIndex: L = 1,
565
+ closable: w = true,
566
+ minimizable: X = true,
567
+ maximizable: n = true,
568
+ fullscreenable: v = false,
569
+ pinnable: a = false,
570
+ resizable: z = true,
571
+ draggable: T = true,
572
+ snappable: W = true,
573
+ snapThreshold: _ = 20,
574
+ minimized: D,
575
+ maximized: i,
576
+ fullscreen: x,
577
+ pinned: S,
578
+ focused: I,
579
+ onClose: l,
580
+ onMinimize: C,
581
+ onMaximize: m,
582
+ onFullscreen: O,
583
+ onPin: R,
584
+ onFocus: Q,
585
+ onMove: le,
586
+ onResize: M,
587
+ onSnap: q,
588
+ onTitleBarDoubleClick: ae,
589
+ size: Oe = "md",
590
+ statusBar: Me,
591
+ titleBarActions: qe,
592
+ className: Ae,
593
+ style: We,
594
+ id: Se,
595
+ accessMode: Be,
596
+ ...Fe
597
+ }, He) => {
598
+ const Ue = coreDa43qPO.b(Se), Ke = coreDa43qPO.h(Be, Se), { t: de } = coreDa43qPO.W(), ye = _e.useRef(null);
599
+ ye.current == null && (ye.current = `nice-window-${Math.random().toString(36).slice(2, 10)}`);
600
+ const A = e ?? ye.current, Ge = d ?? g?.x ?? 100, Ve = h ?? g?.y ?? 100;
601
+ if (Ke === "hidden")
602
+ return null;
603
+ const [fe, se] = _e.useState({ x: Ge, y: Ve }), [we, _e$1] = _e.useState({ width: p, height: E }), [je, Qe] = _e.useState(false), [Ze, Je] = _e.useState(false), [et, tt] = _e.useState(false), [nt, it] = _e.useState(false), [V, be] = _e.useState("none"), ot = D ?? je, G = i ?? Ze, H = x ?? et, ue = S ?? nt, xe = I ?? true, oe = fe.x, ce = fe.y, Z = we.width, J = we.height, ee = _e.useRef(
604
+ null
605
+ ), U = _e.useRef(null), $ = _e.useRef(null), ct = _e.useCallback(() => {
606
+ l?.(A);
607
+ }, [A, l]), st = _e.useCallback(() => {
608
+ Qe(true), C?.(A);
609
+ }, [A, C]), Ne = _e.useCallback(() => {
610
+ const N = !G;
611
+ Je(N), !N && $.current ? (se({ x: $.current.x, y: $.current.y }), _e$1({ width: $.current.w, height: $.current.h }), $.current = null) : N && ($.current = { x: oe, y: ce, w: Z, h: J }), be("none"), m?.(A, N);
612
+ }, [A, G, oe, ce, Z, J, m]), ke = _e.useCallback(() => {
613
+ const N = !H;
614
+ tt(N), N ? $.current = { x: oe, y: ce, w: Z, h: J } : $.current && (se({ x: $.current.x, y: $.current.y }), _e$1({ width: $.current.w, height: $.current.h }), $.current = null), O?.(A, N);
615
+ }, [A, H, oe, ce, Z, J, O]), rt = _e.useCallback(() => {
616
+ const N = !ue;
617
+ it(N), R?.(A, N);
618
+ }, [A, ue, R]), me = _e.useCallback(() => {
619
+ Q?.(A);
620
+ }, [A, Q]), lt = _e.useCallback(() => {
621
+ ae ? ae(A) : n && Ne();
622
+ }, [A, n, Ne, ae]);
623
+ _e.useEffect(() => {
624
+ const N = (te) => {
625
+ if (!ee.current)
626
+ return;
627
+ const j = te.clientX - ee.current.startX + ee.current.origX, he = te.clientY - ee.current.startY + ee.current.origY;
628
+ se({ x: j, y: he }), le?.(A, { x: j, y: he });
629
+ }, F = (te) => {
630
+ if (ee.current) {
631
+ if (W) {
632
+ const j = It(
633
+ te.clientX,
634
+ te.clientY,
635
+ window.innerWidth,
636
+ window.innerHeight,
637
+ _
638
+ );
639
+ j !== "none" && ($.current = { x: fe.x, y: fe.y, w: Z, h: J }, be(j), q?.(A, j));
640
+ }
641
+ ee.current = null;
642
+ }
643
+ };
644
+ return document.addEventListener("mousemove", N), document.addEventListener("mouseup", F), () => {
645
+ document.removeEventListener("mousemove", N), document.removeEventListener("mouseup", F);
646
+ };
647
+ });
648
+ const at = _e.useCallback(
649
+ (N) => {
650
+ !T || G || H || (N.preventDefault(), V !== "none" && ($.current && (se({ x: $.current.x, y: $.current.y }), _e$1({ width: $.current.w, height: $.current.h })), be("none")), me(), ee.current = { startX: N.clientX, startY: N.clientY, origX: oe, origY: ce });
651
+ },
652
+ [T, G, H, V, oe, ce, me]
653
+ );
654
+ _e.useEffect(() => {
655
+ const N = (te) => {
656
+ if (!U.current)
657
+ return;
658
+ const j = te.clientX - U.current.startX, he = te.clientY - U.current.startY, re = U.current.handle;
659
+ let ne = U.current.origW, ie = U.current.origH;
660
+ if (re.includes("e") && (ne = U.current.origW + j), re.includes("w") && (ne = U.current.origW - j), re.includes("s") && (ie = U.current.origH + he), re.includes("n") && (ie = U.current.origH - he), ne = Math.max(r, Y ? Math.min(Y, ne) : ne), ie = Math.max(b, f ? Math.min(f, ie) : ie), re.includes("w")) {
661
+ const Ee = we.width - ne;
662
+ se((pe) => ({ ...pe, x: pe.x + Ee }));
663
+ }
664
+ if (re.includes("n")) {
665
+ const Ee = we.height - ie;
666
+ se((pe) => ({ ...pe, y: pe.y + Ee }));
667
+ }
668
+ _e$1({ width: ne, height: ie }), M?.(A, { width: ne, height: ie });
669
+ }, F = () => {
670
+ U.current = null;
671
+ };
672
+ return document.addEventListener("mousemove", N), document.addEventListener("mouseup", F), () => {
673
+ document.removeEventListener("mousemove", N), document.removeEventListener("mouseup", F);
674
+ };
675
+ });
676
+ const dt = _e.useCallback(
677
+ (N, F) => {
678
+ !z || G || H || V !== "none" || (F.preventDefault(), F.stopPropagation(), me(), U.current = { startX: F.clientX, startY: F.clientY, origW: Z, origH: J, handle: N });
679
+ },
680
+ [z, G, H, V, Z, J, me]
681
+ );
682
+ if (_e.useEffect(() => {
683
+ if (!xe)
684
+ return;
685
+ const N = (F) => {
686
+ F.key === "Escape" && H && ke();
687
+ };
688
+ return document.addEventListener("keydown", N), () => document.removeEventListener("keydown", N);
689
+ }, [xe, H, ke]), ot)
690
+ return null;
691
+ const Re = V !== "none" ? Mt(V) : null, Le = G || H, ut = H ? { position: "fixed", top: 0, left: 0, width: "100vw", height: "100vh", zIndex: 999999 } : G ? { position: "absolute", top: 0, left: 0, width: "100%", height: "100%", zIndex: L } : Re ? { position: "absolute", ...Re, zIndex: L } : { position: "absolute", top: ce, left: oe, width: Z, height: J, zIndex: L }, mt = ["n", "e", "s", "w", "ne", "se", "sw", "nw"], ht = {
692
+ n: "ns-resize",
693
+ s: "ns-resize",
694
+ e: "ew-resize",
695
+ w: "ew-resize",
696
+ ne: "nesw-resize",
697
+ sw: "nesw-resize",
698
+ nw: "nwse-resize",
699
+ se: "nwse-resize"
700
+ };
701
+ return /* @__PURE__ */ jsxRuntime.jsxs(
702
+ "div",
703
+ {
704
+ ref: He,
705
+ id: Ue,
706
+ className: `nice-window nice-window--${Oe} ${xe ? "nice-window--focused" : ""} ${ue ? "nice-window--pinned" : ""} ${Le ? "nice-window--maximized" : ""} ${V !== "none" ? `nice-window--snapped-${V}` : ""} ${Ae ?? ""}`,
707
+ style: { ...ut, ...We },
708
+ onMouseDown: me,
709
+ role: "dialog",
710
+ "aria-label": t,
711
+ ...Fe,
712
+ children: [
713
+ /* @__PURE__ */ jsxRuntime.jsxs(
714
+ "div",
715
+ {
716
+ className: "nice-window__titlebar",
717
+ onMouseDown: at,
718
+ onDoubleClick: lt,
719
+ children: [
720
+ o && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nice-window__icon", children: o }),
721
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nice-window__title", children: t }),
722
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nice-window__actions", children: [
723
+ qe,
724
+ a && /* @__PURE__ */ jsxRuntime.jsx(
725
+ "button",
726
+ {
727
+ type: "button",
728
+ className: `nice-window__action nice-window__action--pin ${ue ? "nice-window__action--active" : ""}`,
729
+ onClick: rt,
730
+ title: de("window.pin", ue ? "Unpin" : "Pin"),
731
+ children: "📌"
732
+ }
733
+ ),
734
+ X && /* @__PURE__ */ jsxRuntime.jsx(
735
+ "button",
736
+ {
737
+ type: "button",
738
+ className: "nice-window__action nice-window__action--minimize",
739
+ onClick: st,
740
+ title: de("window.minimize", "Minimize"),
741
+ children: "─"
742
+ }
743
+ ),
744
+ n && /* @__PURE__ */ jsxRuntime.jsx(
745
+ "button",
746
+ {
747
+ type: "button",
748
+ className: "nice-window__action nice-window__action--maximize",
749
+ onClick: Ne,
750
+ title: de("window.maximize", G ? "Restore" : "Maximize"),
751
+ children: G ? "❐" : "☐"
752
+ }
753
+ ),
754
+ v && /* @__PURE__ */ jsxRuntime.jsx(
755
+ "button",
756
+ {
757
+ type: "button",
758
+ className: "nice-window__action nice-window__action--fullscreen",
759
+ onClick: ke,
760
+ title: de("window.fullscreen", H ? "Exit Full Screen" : "Full Screen"),
761
+ children: H ? "⇲" : "⇱"
762
+ }
763
+ ),
764
+ w && /* @__PURE__ */ jsxRuntime.jsx(
765
+ "button",
766
+ {
767
+ type: "button",
768
+ className: "nice-window__action nice-window__action--close",
769
+ onClick: ct,
770
+ title: de("window.close", "Close"),
771
+ children: "✕"
772
+ }
773
+ )
774
+ ] })
775
+ ]
776
+ }
777
+ ),
778
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-window__body", children: s }),
779
+ u && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-window__footer", children: u }),
780
+ Me && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nice-window__statusbar", children: Me }),
781
+ z && !Le && V === "none" && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: mt.map((N) => /* @__PURE__ */ jsxRuntime.jsx(
782
+ "div",
783
+ {
784
+ className: `nice-window__resize nice-window__resize--${N}`,
785
+ style: { cursor: ht[N] },
786
+ onMouseDown: (F) => dt(N, F)
787
+ },
788
+ N
789
+ )) })
790
+ ]
791
+ }
792
+ );
793
+ }
794
+ );
795
+ St.displayName = "NiceWindow";
796
+
797
+ exports.N = $t;
798
+ exports.a = Nt;
799
+ exports.b = Yt;
800
+ exports.d = Pt;
801
+ exports.e = Dt;
802
+ exports.f = Ot;
803
+ exports.g = Xt;
804
+ exports.h = qt;
805
+ exports.k = St;
806
+ exports.l = kt;
807
+ //# sourceMappingURL=NiceWindow-DeC83yfE.js.map