@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,563 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { d as ks, c as xs, W as me, e as Ws, b as Is } from './core-Da43q-pO.js';
3
+ import _e$1, { useState, useCallback, useEffect, useRef, forwardRef, Component } from 'react';
4
+
5
+ const J = {
6
+ info: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z", clipRule: "evenodd" }) }),
7
+ success: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" }) }),
8
+ warning: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z", clipRule: "evenodd" }) }),
9
+ error: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z", clipRule: "evenodd" }) })
10
+ }, he = ({
11
+ variant: n = "info",
12
+ title: t,
13
+ children: s,
14
+ closable: r,
15
+ onClose: i,
16
+ icon: c,
17
+ size: l = "md",
18
+ className: m,
19
+ style: d,
20
+ displayStyle: b
21
+ }) => {
22
+ const h = ks("card", b);
23
+ return /* @__PURE__ */ jsxs(
24
+ "div",
25
+ {
26
+ className: `nice-alert nice-alert--${n} nice-alert--${l} nice-alert--ds-${h} ${m || ""}`,
27
+ style: d,
28
+ role: "alert",
29
+ children: [
30
+ /* @__PURE__ */ jsx("div", { className: `nice-alert__icon nice-alert__icon--${n}`, children: c || J[n] }),
31
+ /* @__PURE__ */ jsxs("div", { className: "nice-alert__content", children: [
32
+ t && /* @__PURE__ */ jsx("div", { className: "nice-alert__title", children: t }),
33
+ /* @__PURE__ */ jsx("div", { children: s })
34
+ ] }),
35
+ r && /* @__PURE__ */ jsx("button", { type: "button", className: "nice-alert__close", onClick: i, "aria-label": "Close", children: "✕" })
36
+ ]
37
+ }
38
+ );
39
+ }, fe = ({
40
+ open: n,
41
+ onClose: t,
42
+ title: s,
43
+ position: r = "right",
44
+ size: i = "md",
45
+ children: c,
46
+ footer: l,
47
+ transitionDuration: m,
48
+ className: d,
49
+ style: b,
50
+ displayStyle: h
51
+ }) => {
52
+ const v = xs("modal", h), g = ks("modal", h), { t: f } = me(), N = useRef(null);
53
+ return Ws(N, n), useEffect(() => {
54
+ if (!n)
55
+ return;
56
+ const p = (o) => {
57
+ o.key === "Escape" && t();
58
+ };
59
+ return document.addEventListener("keydown", p), document.body.style.overflow = "hidden", () => {
60
+ document.removeEventListener("keydown", p), document.body.style.overflow = "";
61
+ };
62
+ }, [n, t]), n ? /* @__PURE__ */ jsxs(Fragment, { children: [
63
+ /* @__PURE__ */ jsx("div", { className: "nice-drawer-overlay", onClick: t }),
64
+ /* @__PURE__ */ jsxs(
65
+ "div",
66
+ {
67
+ ref: N,
68
+ className: `nice-drawer nice-drawer--${r} nice-drawer--${i} nice-drawer--ds-${g} ${d || ""}`,
69
+ style: {
70
+ ...v,
71
+ ...b,
72
+ ...m != null ? { transitionDuration: `${m}ms` } : {}
73
+ },
74
+ role: "dialog",
75
+ "aria-modal": "true",
76
+ "aria-label": s,
77
+ children: [
78
+ s && /* @__PURE__ */ jsxs("div", { className: "nice-drawer__header", children: [
79
+ /* @__PURE__ */ jsx("h3", { className: "nice-drawer__title", children: s }),
80
+ /* @__PURE__ */ jsx(
81
+ "button",
82
+ {
83
+ type: "button",
84
+ className: "nice-drawer__close",
85
+ onClick: t,
86
+ "aria-label": f("controls.close", "Close"),
87
+ children: /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z" }) })
88
+ }
89
+ )
90
+ ] }),
91
+ /* @__PURE__ */ jsx("div", { className: "nice-drawer__body", children: c }),
92
+ l && /* @__PURE__ */ jsx("div", { className: "nice-drawer__footer", children: l })
93
+ ]
94
+ }
95
+ )
96
+ ] }) : null;
97
+ }, _e = ({
98
+ toasts: n,
99
+ onDismiss: t,
100
+ position: s = "top-right"
101
+ }) => /* @__PURE__ */ jsx("div", { className: `nice-toast-container nice-toast-container--${s}`, children: n.map((r) => /* @__PURE__ */ jsx(ne, { toast: r, onDismiss: t }, r.id)) }), ne = ({
102
+ toast: n,
103
+ onDismiss: t
104
+ }) => {
105
+ const [s, r] = useState(false);
106
+ return useEffect(() => {
107
+ if (!n.duration && n.duration !== 0) {
108
+ const i = setTimeout(() => r(true), 4e3);
109
+ return () => clearTimeout(i);
110
+ }
111
+ if (n.duration > 0) {
112
+ const i = setTimeout(() => r(true), n.duration);
113
+ return () => clearTimeout(i);
114
+ }
115
+ }, [n.duration]), useEffect(() => {
116
+ if (s) {
117
+ const i = setTimeout(() => t(n.id), 200);
118
+ return () => clearTimeout(i);
119
+ }
120
+ }, [s, n.id, t]), /* @__PURE__ */ jsxs(
121
+ "div",
122
+ {
123
+ className: `nice-toast nice-toast--${n.variant} ${s ? "nice-toast--exiting" : ""}`,
124
+ role: "alert",
125
+ style: { position: "relative" },
126
+ children: [
127
+ /* @__PURE__ */ jsx("div", { className: "nice-toast__icon", children: J[n.variant] }),
128
+ /* @__PURE__ */ jsxs("div", { className: "nice-toast__content", children: [
129
+ n.title && /* @__PURE__ */ jsx("div", { className: "nice-toast__title", children: n.title }),
130
+ /* @__PURE__ */ jsx("div", { className: "nice-toast__message", children: n.message })
131
+ ] }),
132
+ /* @__PURE__ */ jsx("button", { type: "button", className: "nice-toast__close", onClick: () => r(true), children: "✕" })
133
+ ]
134
+ }
135
+ );
136
+ };
137
+ let ie = 0;
138
+ function pe() {
139
+ const [n, t] = useState([]), s = useCallback(
140
+ (i, c, l) => {
141
+ const m = `toast-${++ie}`;
142
+ return t((d) => [
143
+ ...d,
144
+ { id: m, variant: i, message: c, title: l?.title, duration: l?.duration }
145
+ ]), m;
146
+ },
147
+ []
148
+ ), r = useCallback((i) => {
149
+ t((c) => c.filter((l) => l.id !== i));
150
+ }, []);
151
+ return {
152
+ toasts: n,
153
+ dismiss: r,
154
+ info: (i, c) => s("info", i, c),
155
+ success: (i, c) => s("success", i, c),
156
+ warning: (i, c) => s("warning", i, c),
157
+ error: (i, c) => s("error", i, c)
158
+ };
159
+ }
160
+ const te = {
161
+ info: /* @__PURE__ */ jsx("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" }) }),
162
+ warning: /* @__PURE__ */ jsx("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" }) }),
163
+ error: /* @__PURE__ */ jsx("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" }) }),
164
+ success: /* @__PURE__ */ jsx("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }) })
165
+ }, be = ({
166
+ visible: n,
167
+ message: t,
168
+ header: s,
169
+ icon: r,
170
+ variant: i = "warning",
171
+ acceptLabel: c,
172
+ rejectLabel: l,
173
+ onAccept: m,
174
+ onReject: d,
175
+ closeOnOverlay: b = false,
176
+ closeOnEscape: h = true,
177
+ size: v = "md",
178
+ className: g,
179
+ style: f
180
+ }) => {
181
+ const { t: N } = me();
182
+ if (_e$1.useEffect(() => {
183
+ if (!n || !h)
184
+ return;
185
+ const w = (y) => {
186
+ y.key === "Escape" && d();
187
+ };
188
+ return document.addEventListener("keydown", w), () => document.removeEventListener("keydown", w);
189
+ }, [n, h, d]), _e$1.useEffect(() => (n ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
190
+ document.body.style.overflow = "";
191
+ }), [n]), !n)
192
+ return null;
193
+ const p = r ?? te[i], o = c ?? N("confirm.accept", "Yes"), $ = l ?? N("confirm.reject", "No");
194
+ return /* @__PURE__ */ jsx("div", { className: "nice-modal-overlay", onClick: b ? d : void 0, children: /* @__PURE__ */ jsxs(
195
+ "div",
196
+ {
197
+ className: `nice-confirm nice-confirm--${i} nice-confirm--${v} ${g || ""}`,
198
+ style: f,
199
+ role: "alertdialog",
200
+ "aria-modal": "true",
201
+ "aria-label": s,
202
+ "aria-describedby": "nice-confirm-message",
203
+ onClick: (w) => w.stopPropagation(),
204
+ children: [
205
+ s && /* @__PURE__ */ jsx("div", { className: "nice-confirm__header", children: /* @__PURE__ */ jsx("h3", { className: "nice-confirm__title", children: s }) }),
206
+ /* @__PURE__ */ jsxs("div", { className: "nice-confirm__body", children: [
207
+ p && /* @__PURE__ */ jsx("div", { className: `nice-confirm__icon nice-confirm__icon--${i}`, children: p }),
208
+ /* @__PURE__ */ jsx("div", { id: "nice-confirm-message", className: "nice-confirm__message", children: t })
209
+ ] }),
210
+ /* @__PURE__ */ jsxs("div", { className: "nice-confirm__footer", children: [
211
+ /* @__PURE__ */ jsx(
212
+ "button",
213
+ {
214
+ type: "button",
215
+ className: "nice-btn nice-btn--ghost nice-btn--md",
216
+ onClick: d,
217
+ children: $
218
+ }
219
+ ),
220
+ /* @__PURE__ */ jsx(
221
+ "button",
222
+ {
223
+ type: "button",
224
+ className: `nice-btn nice-btn--${i === "error" ? "error" : "primary"} nice-btn--md`,
225
+ onClick: m,
226
+ autoFocus: true,
227
+ children: o
228
+ }
229
+ )
230
+ ] })
231
+ ]
232
+ }
233
+ ) });
234
+ };
235
+ const oe = forwardRef(
236
+ ({
237
+ visible: n,
238
+ onAcceptAll: t,
239
+ onRejectAll: s,
240
+ onSave: r,
241
+ categories: i = ["necessary", "analytics", "marketing", "preferences"],
242
+ defaults: c,
243
+ position: l = "bottom",
244
+ size: m = "md",
245
+ policyUrl: d,
246
+ showDetails: b = false,
247
+ className: h,
248
+ style: v,
249
+ id: g,
250
+ ...f
251
+ }, N) => {
252
+ const p = Is(g), { t: o } = me(), [$, w] = useState(true), y = n ?? $, [C, T] = useState(b), [u, z] = useState(() => {
253
+ const _ = {
254
+ necessary: true,
255
+ analytics: false,
256
+ marketing: false,
257
+ preferences: false
258
+ };
259
+ return c && Object.assign(_, c), _.necessary = true, _;
260
+ }), S = {
261
+ necessary: o("cookie.necessary", "Necessary"),
262
+ analytics: o("cookie.analytics", "Analytics"),
263
+ marketing: o("cookie.marketing", "Marketing"),
264
+ preferences: o("cookie.preferences", "Preferences")
265
+ }, E = {
266
+ necessary: o(
267
+ "cookie.necessaryDesc",
268
+ "Required for the website to function. Cannot be disabled."
269
+ ),
270
+ analytics: o(
271
+ "cookie.analyticsDesc",
272
+ "Help us understand how visitors interact with the website."
273
+ ),
274
+ marketing: o("cookie.marketingDesc", "Used to deliver relevant advertisements."),
275
+ preferences: o("cookie.preferencesDesc", "Allow the website to remember your choices.")
276
+ }, R = useCallback(() => {
277
+ const _ = {
278
+ necessary: true,
279
+ analytics: true,
280
+ marketing: true,
281
+ preferences: true
282
+ };
283
+ t?.(), r?.(_), w(false);
284
+ }, [t, r]), M = useCallback(() => {
285
+ const _ = {
286
+ necessary: true,
287
+ analytics: false,
288
+ marketing: false,
289
+ preferences: false
290
+ };
291
+ s?.(), r?.(_), w(false);
292
+ }, [s, r]), F = useCallback(() => {
293
+ r?.({ ...u, necessary: true }), w(false);
294
+ }, [u, r]);
295
+ return y ? /* @__PURE__ */ jsx(
296
+ "div",
297
+ {
298
+ ref: N,
299
+ id: p,
300
+ className: `nice-cookie-consent nice-cookie-consent--${l} nice-cookie-consent--${m} ${h ?? ""}`,
301
+ style: v,
302
+ role: "dialog",
303
+ "aria-label": o("cookie.label", "Cookie Consent"),
304
+ "aria-modal": "true",
305
+ ...f,
306
+ children: /* @__PURE__ */ jsxs("div", { className: "nice-cookie-consent__content", children: [
307
+ /* @__PURE__ */ jsxs("p", { className: "nice-cookie-consent__message", children: [
308
+ o(
309
+ "cookie.message",
310
+ "We use cookies to enhance your experience. By continuing to visit this site you agree to our use of cookies."
311
+ ),
312
+ d && /* @__PURE__ */ jsxs(Fragment, { children: [
313
+ " ",
314
+ /* @__PURE__ */ jsx(
315
+ "a",
316
+ {
317
+ href: d,
318
+ className: "nice-cookie-consent__link",
319
+ target: "_blank",
320
+ rel: "noopener noreferrer",
321
+ children: o("cookie.learnMore", "Learn more")
322
+ }
323
+ )
324
+ ] })
325
+ ] }),
326
+ C && /* @__PURE__ */ jsx("div", { className: "nice-cookie-consent__details", children: i.map((_) => /* @__PURE__ */ jsxs("label", { className: "nice-cookie-consent__category", children: [
327
+ /* @__PURE__ */ jsx(
328
+ "input",
329
+ {
330
+ type: "checkbox",
331
+ checked: u[_],
332
+ disabled: _ === "necessary",
333
+ onChange: (j) => z((P) => ({ ...P, [_]: j.target.checked })),
334
+ className: "nice-cookie-consent__checkbox"
335
+ }
336
+ ),
337
+ /* @__PURE__ */ jsxs("div", { className: "nice-cookie-consent__cat-info", children: [
338
+ /* @__PURE__ */ jsx("strong", { children: S[_] }),
339
+ /* @__PURE__ */ jsx("span", { className: "nice-cookie-consent__cat-desc", children: E[_] })
340
+ ] })
341
+ ] }, _)) }),
342
+ /* @__PURE__ */ jsxs("div", { className: "nice-cookie-consent__actions", children: [
343
+ !C && /* @__PURE__ */ jsx(
344
+ "button",
345
+ {
346
+ type: "button",
347
+ className: "nice-cookie-consent__btn nice-cookie-consent__btn--details",
348
+ onClick: () => T(true),
349
+ children: o("cookie.customize", "Customize")
350
+ }
351
+ ),
352
+ C && /* @__PURE__ */ jsx(
353
+ "button",
354
+ {
355
+ type: "button",
356
+ className: "nice-cookie-consent__btn nice-cookie-consent__btn--save",
357
+ onClick: F,
358
+ children: o("cookie.savePreferences", "Save preferences")
359
+ }
360
+ ),
361
+ /* @__PURE__ */ jsx(
362
+ "button",
363
+ {
364
+ type: "button",
365
+ className: "nice-cookie-consent__btn nice-cookie-consent__btn--reject",
366
+ onClick: M,
367
+ children: o("cookie.rejectAll", "Reject all")
368
+ }
369
+ ),
370
+ /* @__PURE__ */ jsx(
371
+ "button",
372
+ {
373
+ type: "button",
374
+ className: "nice-cookie-consent__btn nice-cookie-consent__btn--accept",
375
+ onClick: R,
376
+ children: o("cookie.acceptAll", "Accept all")
377
+ }
378
+ )
379
+ ] })
380
+ ] })
381
+ }
382
+ ) : null;
383
+ }
384
+ );
385
+ oe.displayName = "NiceCookieConsent";
386
+ const le = forwardRef(
387
+ ({
388
+ onSubmit: n,
389
+ onForgotPassword: t,
390
+ onRegister: s,
391
+ loading: r = false,
392
+ error: i,
393
+ variant: c = "primary",
394
+ size: l = "md",
395
+ showRememberMe: m = true,
396
+ showForgotPassword: d = true,
397
+ showRegister: b = false,
398
+ title: h,
399
+ logo: v,
400
+ usernameLabel: g,
401
+ passwordLabel: f,
402
+ usernamePlaceholder: N,
403
+ passwordPlaceholder: p,
404
+ className: o,
405
+ style: $,
406
+ id: w,
407
+ ...y
408
+ }, C) => {
409
+ const T = Is(w), { t: u } = me(), [z, S] = useState(""), [E, R] = useState(""), [M, F] = useState(false), [_, j] = useState(false), P = `${T}-user`, q = `${T}-pass`, H = `${T}-remember`, K = useCallback(
410
+ (x) => {
411
+ x.preventDefault(), !r && n?.({ username: z, password: E, rememberMe: M });
412
+ },
413
+ [r, z, E, M, n]
414
+ );
415
+ return /* @__PURE__ */ jsxs(
416
+ "form",
417
+ {
418
+ ref: C,
419
+ id: T,
420
+ className: `nice-login nice-login--${c} nice-login--${l} ${o ?? ""}`,
421
+ style: $,
422
+ onSubmit: K,
423
+ noValidate: true,
424
+ ...y,
425
+ children: [
426
+ v && /* @__PURE__ */ jsx("div", { className: "nice-login__logo", children: v }),
427
+ h && /* @__PURE__ */ jsx("h2", { className: "nice-login__title", children: h ?? u("login.title", "Sign In") }),
428
+ i && /* @__PURE__ */ jsx("div", { className: "nice-login__error", role: "alert", children: i }),
429
+ /* @__PURE__ */ jsxs("div", { className: "nice-login__field", children: [
430
+ /* @__PURE__ */ jsx("label", { htmlFor: P, className: "nice-login__label", children: g ?? u("login.username", "Username") }),
431
+ /* @__PURE__ */ jsx(
432
+ "input",
433
+ {
434
+ id: P,
435
+ className: "nice-login__input",
436
+ type: "text",
437
+ value: z,
438
+ onChange: (x) => S(x.target.value),
439
+ placeholder: N ?? u("login.usernamePlaceholder", "Enter your username"),
440
+ autoComplete: "username",
441
+ required: true,
442
+ disabled: r,
443
+ "aria-required": "true"
444
+ }
445
+ )
446
+ ] }),
447
+ /* @__PURE__ */ jsxs("div", { className: "nice-login__field", children: [
448
+ /* @__PURE__ */ jsx("label", { htmlFor: q, className: "nice-login__label", children: f ?? u("login.password", "Password") }),
449
+ /* @__PURE__ */ jsxs("div", { className: "nice-login__password-wrap", children: [
450
+ /* @__PURE__ */ jsx(
451
+ "input",
452
+ {
453
+ id: q,
454
+ className: "nice-login__input",
455
+ type: _ ? "text" : "password",
456
+ value: E,
457
+ onChange: (x) => R(x.target.value),
458
+ placeholder: p ?? u("login.passwordPlaceholder", "Enter your password"),
459
+ autoComplete: "current-password",
460
+ required: true,
461
+ disabled: r,
462
+ "aria-required": "true"
463
+ }
464
+ ),
465
+ /* @__PURE__ */ jsx(
466
+ "button",
467
+ {
468
+ type: "button",
469
+ className: "nice-login__toggle-password",
470
+ onClick: () => j(!_),
471
+ "aria-label": _ ? u("login.hidePassword", "Hide password") : u("login.showPassword", "Show password"),
472
+ tabIndex: -1,
473
+ children: _ ? "🙈" : "👁"
474
+ }
475
+ )
476
+ ] })
477
+ ] }),
478
+ /* @__PURE__ */ jsxs("div", { className: "nice-login__options", children: [
479
+ m && /* @__PURE__ */ jsxs("label", { className: "nice-login__remember", htmlFor: H, children: [
480
+ /* @__PURE__ */ jsx(
481
+ "input",
482
+ {
483
+ id: H,
484
+ type: "checkbox",
485
+ checked: M,
486
+ onChange: (x) => F(x.target.checked),
487
+ disabled: r
488
+ }
489
+ ),
490
+ /* @__PURE__ */ jsx("span", { children: u("login.rememberMe", "Remember me") })
491
+ ] }),
492
+ d && t && /* @__PURE__ */ jsx(
493
+ "button",
494
+ {
495
+ type: "button",
496
+ className: "nice-login__forgot",
497
+ onClick: t,
498
+ disabled: r,
499
+ children: u("login.forgotPassword", "Forgot password?")
500
+ }
501
+ )
502
+ ] }),
503
+ /* @__PURE__ */ jsx(
504
+ "button",
505
+ {
506
+ type: "submit",
507
+ className: `nice-login__submit nice-login__submit--${c}`,
508
+ disabled: r || !z || !E,
509
+ children: r ? u("login.loading", "Signing in...") : u("login.submit", "Sign In")
510
+ }
511
+ ),
512
+ b && s && /* @__PURE__ */ jsxs("p", { className: "nice-login__register", children: [
513
+ u("login.noAccount", "Don't have an account?"),
514
+ " ",
515
+ /* @__PURE__ */ jsx(
516
+ "button",
517
+ {
518
+ type: "button",
519
+ className: "nice-login__register-link",
520
+ onClick: s,
521
+ disabled: r,
522
+ children: u("login.register", "Register")
523
+ }
524
+ )
525
+ ] })
526
+ ]
527
+ }
528
+ );
529
+ }
530
+ );
531
+ le.displayName = "NiceLoginForm";
532
+ const O = class O extends Component {
533
+ constructor() {
534
+ super(...arguments), this.state = {
535
+ hasError: false,
536
+ error: null
537
+ }, this.handleReset = () => {
538
+ this.setState({ hasError: false, error: null });
539
+ };
540
+ }
541
+ static getDerivedStateFromError(t) {
542
+ return { hasError: true, error: t };
543
+ }
544
+ componentDidCatch(t, s) {
545
+ this.props.onError?.(t, s);
546
+ }
547
+ render() {
548
+ if (this.state.hasError && this.state.error) {
549
+ const { fallback: t, showRetry: s = true, retryLabel: r = "Retry", title: i = "Something went wrong" } = this.props;
550
+ return typeof t == "function" ? t(this.state.error, this.handleReset) : t || /* @__PURE__ */ jsxs("div", { className: "nice-error-boundary", role: "alert", children: [
551
+ /* @__PURE__ */ jsx("div", { className: "nice-error-boundary__icon", children: "⚠️" }),
552
+ /* @__PURE__ */ jsx("h2", { className: "nice-error-boundary__title", children: i }),
553
+ /* @__PURE__ */ jsx("p", { className: "nice-error-boundary__message", children: this.state.error.message }),
554
+ s && /* @__PURE__ */ jsx("button", { type: "button", className: "nice-btn nice-btn--primary", onClick: this.handleReset, children: r })
555
+ ] });
556
+ }
557
+ return this.props.children;
558
+ }
559
+ };
560
+ O.displayName = "NiceErrorBoundary";
561
+
562
+ export { he as N, be as a, oe as b, fe as c, le as e, _e as i, J as j, pe as u };
563
+ //# sourceMappingURL=NiceErrorBoundary-D75yr_WE.js.map