@gkucmierz/nano-ui 1.5.0 → 1.5.3

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.
package/dist/nano-ui.css CHANGED
@@ -1,2 +1,2 @@
1
- .global-tooltip[data-v-37c91a21]{--nu-tooltip-bg:#0f172af2;--nu-tooltip-color:#f8fafc;--nu-tooltip-radius:8px;--nu-tooltip-padding:8px 14px;--nu-tooltip-shadow:0 8px 24px #0000004d;--nu-tooltip-border:1px solid #ffffff1a;--nu-tooltip-arrow-border:#ffffff1a;z-index:99999;background:var(--nu-tooltip-bg);-webkit-backdrop-filter:blur(8px);color:var(--nu-tooltip-color);padding:var(--nu-tooltip-padding);border-radius:var(--nu-tooltip-radius);text-align:center;white-space:normal;word-wrap:break-word;pointer-events:none;width:max-content;max-width:min(350px,100vw - 32px);box-shadow:var(--nu-tooltip-shadow);border:var(--nu-tooltip-border);opacity:0;visibility:hidden;font-size:.85rem;font-weight:500;line-height:1.4;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);position:fixed;top:0;left:0;transform:translateY(4px)scale(.95)}.global-tooltip[data-v-37c91a21]:after{content:"";left:calc(50% + var(--arrow-offset,0px));background:var(--nu-tooltip-bg);-webkit-backdrop-filter:blur(8px);border-right:1px solid var(--nu-tooltip-arrow-border);border-bottom:1px solid var(--nu-tooltip-arrow-border);clip-path:polygon(100% 0,100% 100%,0 100%);border-radius:0 0 2px;width:10px;height:10px;margin-left:-5px;position:absolute;bottom:-5px;transform:rotate(45deg)}.global-tooltip.tooltip-bottom[data-v-37c91a21]:after{border-bottom:none;border-right:none;border-left:1px solid var(--nu-tooltip-arrow-border);border-top:1px solid var(--nu-tooltip-arrow-border);clip-path:polygon(0 0,100% 0,0 100%);border-radius:2px 0 0;top:-5px;bottom:auto}.global-tooltip.visible[data-v-37c91a21]{opacity:1;visibility:visible}:root{--nano-modal-bg:#1e1e24;--nano-modal-glass-bg:#1e1e24d9;--nano-modal-border:#ffffff1a;--nano-modal-text:#fff;--nano-modal-text-muted:#a0a0a0;--nano-modal-backdrop:#0009;--nano-modal-radius:12px;--nano-btn-primary:#3498db;--nano-btn-primary-hover:#2980b9;--nano-btn-secondary:#34495e;--nano-btn-secondary-hover:#2c3e50}.nano-modal-overlay{z-index:99999;background:var(--nano-modal-backdrop);box-sizing:border-box;outline:none;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;display:flex;position:fixed;top:0;left:0}.nano-modal-overlay.nano-glass{-webkit-backdrop-filter:blur(8px)}.nano-modal-window{background:var(--nano-modal-bg);border:1px solid var(--nano-modal-border);border-radius:var(--nano-modal-radius);max-height:90vh;color:var(--nano-modal-text);flex-direction:column;display:flex;position:relative;box-shadow:0 24px 48px #00000080}.nano-modal-window:not([style*="position: absolute"]){margin:auto}.nano-glass .nano-modal-window{background:var(--nano-modal-glass-bg);-webkit-backdrop-filter:blur(16px)}.nano-modal-header{border-bottom:1px solid var(--nano-modal-border);-webkit-user-select:none;user-select:none;background:#0003;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.nano-modal-header.is-draggable{cursor:grab}.nano-modal-header.is-draggable:active{cursor:grabbing}.nano-modal-title{margin:0;font-size:1.25rem;font-weight:600;line-height:1.4}.nano-modal-close-btn{color:var(--nano-modal-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.nano-modal-close-btn:hover{color:var(--nano-modal-text);background:#ffffff1a}.nano-modal-body{flex:1;padding:24px;overflow-y:auto}.nano-modal-footer{border-top:1px solid var(--nano-modal-border);background:#00000026;justify-content:flex-end;padding:16px 24px;display:flex}.nano-modal-actions{gap:12px;display:flex}.nano-btn{cursor:pointer;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:.95rem;font-weight:600;transition:all .2s}.nano-btn-primary{background:var(--nano-btn-primary)}.nano-btn-primary:hover{background:var(--nano-btn-primary-hover)}.nano-btn-secondary{background:var(--nano-btn-secondary)}.nano-btn-secondary:hover{background:var(--nano-btn-secondary-hover)}.nano-modal-resizer{cursor:se-resize;width:16px;height:16px;color:var(--nano-modal-text-muted);z-index:10;justify-content:center;align-items:center;transition:color .2s;display:flex;position:absolute;bottom:4px;right:4px}.nano-modal-resizer:hover{color:var(--nano-modal-text)}.nano-modal-fade-enter-active,.nano-modal-fade-leave-active{transition:opacity .25s}.nano-modal-fade-enter-active .nano-modal-window{transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.nano-modal-fade-leave-active .nano-modal-window{transition:transform .2s ease-in}.nano-modal-fade-enter-from,.nano-modal-fade-leave-to{opacity:0}.nano-modal-fade-enter-from .nano-modal-window{transform:scale(.9)translateY(10px)}.nano-modal-fade-leave-to .nano-modal-window{transform:scale(.95)translateY(-10px)}.donut-canvas-wrapper[data-v-a055ea0b]{flex-shrink:0;justify-content:center;align-items:center;width:120px;height:120px;transition:width .45s cubic-bezier(.25,1,.5,1),height .45s cubic-bezier(.25,1,.5,1);display:flex;position:relative}.donut-canvas-wrapper.is-expanded[data-v-a055ea0b]{width:100%;max-width:760px;height:320px}@media (width<=760px){.donut-canvas-wrapper.is-expanded[data-v-a055ea0b]{height:42vw}}.items-svg-chart[data-v-a055ea0b]{width:100%;height:100%;display:block;overflow:visible}.slice-group-3d[data-v-a055ea0b]{cursor:pointer;transition:transform .25s cubic-bezier(.25,1,.5,1),opacity .25s}.slice-group-3d.is-dimmed[data-v-a055ea0b]{opacity:.35}.label-group[data-v-a055ea0b]{transition:opacity .25s}.label-group path[data-v-a055ea0b]{transition:d .25s cubic-bezier(.25,1,.5,1),stroke-width .2s,opacity .2s}.label-group text[data-v-a055ea0b]{transition:transform .25s cubic-bezier(.25,1,.5,1),font-weight .2s,opacity .2s}.label-group.is-hovered path[data-v-a055ea0b]{stroke-width:2.2px}.label-group.is-hovered text[data-v-a055ea0b]{font-weight:700}.label-group.is-dimmed[data-v-a055ea0b]{opacity:.25}.no-transitions .label-group[data-v-a055ea0b],.no-transitions .label-group path[data-v-a055ea0b],.no-transitions .label-group text[data-v-a055ea0b],.no-transitions .slice-group-3d[data-v-a055ea0b]{transition:none!important}.center-text-value[data-v-a055ea0b]{fill:#fff;filter:drop-shadow(0 0 3px #000c)}.center-text-label[data-v-a055ea0b]{fill:#94a3b8;filter:drop-shadow(0 0 2px #000c)}:root[data-theme=light] .center-text-value[data-v-a055ea0b]{fill:#0f172a;filter:drop-shadow(0 0 3px #ffffffe6)}:root[data-theme=light] .center-text-label[data-v-a055ea0b]{fill:#475569;filter:drop-shadow(0 0 2px #ffffffe6)}.nano-scrub-track[data-v-5ed42841]{cursor:ew-resize;-webkit-user-select:none;user-select:none;background:#00e5ff05;border:1px dashed #00e5ff40;border-radius:8px;justify-content:center;align-items:center;width:100%;height:32px;transition:border-color .2s,background-color .2s;display:flex;position:relative;overflow:hidden}.nano-scrub-track[data-v-5ed42841]:hover{background:#00e5ff0a;border-color:#00e5ff66}.nano-scrub-progress[data-v-5ed42841]{pointer-events:none;background:#00e5ff0f;height:100%;position:absolute;top:0;left:0}.nano-scrub-label[data-v-5ed42841]{color:#00e5ff;letter-spacing:.03rem;z-index:1;pointer-events:none;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.nano-scrub-overlay[data-v-5ed42841]{z-index:99999;pointer-events:none;-webkit-user-select:none;user-select:none;width:100vw;height:100vh;position:fixed;top:0;left:0}.nano-scrub-anchor[data-v-5ed42841]{background:#00e5ff;border-radius:50%;width:10px;height:10px;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 12px #00e5ff,0 0 24px #00e5ff66}.nano-scrub-svg-line[data-v-5ed42841]{width:100vw;height:100vh;position:fixed;top:0;left:0}.nano-scrub-popup[data-v-5ed42841]{pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172af2;border:1px solid #00e5ff59;border-radius:10px;flex-direction:column;gap:6px;min-width:200px;padding:12px 16px;display:flex;position:fixed;box-shadow:0 10px 30px #0009,0 0 20px #00e5ff26}.nano-scrub-popup-title[data-v-5ed42841]{text-transform:uppercase;color:#64748b;letter-spacing:.06rem;font-size:10px;font-weight:700}.nano-scrub-popup-val[data-v-5ed42841]{color:#fff;letter-spacing:.05rem;font-family:monospace;font-size:1.25rem;font-weight:800}.nano-scrub-popup-res[data-v-5ed42841]{color:#00e5ff;font-size:11px;font-weight:700}span.ripple{background-color:var(--nano-ripple-color,#fff6);pointer-events:none;border-radius:50%;animation:.6s linear nano-ripple-anim;position:absolute;transform:scale(0)}@keyframes nano-ripple-anim{to{opacity:0;transform:scale(4)}}
1
+ .global-tooltip[data-v-37c91a21]{--nu-tooltip-bg:#0f172af2;--nu-tooltip-color:#f8fafc;--nu-tooltip-radius:8px;--nu-tooltip-padding:8px 14px;--nu-tooltip-shadow:0 8px 24px #0000004d;--nu-tooltip-border:1px solid #ffffff1a;--nu-tooltip-arrow-border:#ffffff1a;z-index:99999;background:var(--nu-tooltip-bg);-webkit-backdrop-filter:blur(8px);color:var(--nu-tooltip-color);padding:var(--nu-tooltip-padding);border-radius:var(--nu-tooltip-radius);text-align:center;white-space:normal;word-wrap:break-word;pointer-events:none;width:max-content;max-width:min(350px,100vw - 32px);box-shadow:var(--nu-tooltip-shadow);border:var(--nu-tooltip-border);opacity:0;visibility:hidden;font-size:.85rem;font-weight:500;line-height:1.4;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);position:fixed;top:0;left:0;transform:translateY(4px)scale(.95)}.global-tooltip[data-v-37c91a21]:after{content:"";left:calc(50% + var(--arrow-offset,0px));background:var(--nu-tooltip-bg);-webkit-backdrop-filter:blur(8px);border-right:1px solid var(--nu-tooltip-arrow-border);border-bottom:1px solid var(--nu-tooltip-arrow-border);clip-path:polygon(100% 0,100% 100%,0 100%);border-radius:0 0 2px;width:10px;height:10px;margin-left:-5px;position:absolute;bottom:-5px;transform:rotate(45deg)}.global-tooltip.tooltip-bottom[data-v-37c91a21]:after{border-bottom:none;border-right:none;border-left:1px solid var(--nu-tooltip-arrow-border);border-top:1px solid var(--nu-tooltip-arrow-border);clip-path:polygon(0 0,100% 0,0 100%);border-radius:2px 0 0;top:-5px;bottom:auto}.global-tooltip.visible[data-v-37c91a21]{opacity:1;visibility:visible}:root{--nano-modal-bg:#1e1e24;--nano-modal-glass-bg:#1e1e24d9;--nano-modal-border:#ffffff1a;--nano-modal-text:#fff;--nano-modal-text-muted:#a0a0a0;--nano-modal-backdrop:#0009;--nano-modal-radius:12px;--nano-btn-primary:#3498db;--nano-btn-primary-hover:#2980b9;--nano-btn-secondary:#34495e;--nano-btn-secondary-hover:#2c3e50}.nano-modal-overlay{z-index:99999;background:var(--nano-modal-backdrop);box-sizing:border-box;outline:none;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;display:flex;position:fixed;top:0;left:0}.nano-modal-overlay.nano-glass{-webkit-backdrop-filter:blur(8px)}.nano-modal-window{background:var(--nano-modal-bg);border:1px solid var(--nano-modal-border);border-radius:var(--nano-modal-radius);max-height:90vh;color:var(--nano-modal-text);flex-direction:column;display:flex;position:relative;box-shadow:0 24px 48px #00000080}.nano-modal-window:not([style*="position: absolute"]){margin:auto}.nano-glass .nano-modal-window{background:var(--nano-modal-glass-bg);-webkit-backdrop-filter:blur(16px)}.nano-modal-header{border-bottom:1px solid var(--nano-modal-border);-webkit-user-select:none;user-select:none;background:#0003;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.nano-modal-header.is-draggable{cursor:grab}.nano-modal-header.is-draggable:active{cursor:grabbing}.nano-modal-title{margin:0;font-size:1.25rem;font-weight:600;line-height:1.4}.nano-modal-close-btn{color:var(--nano-modal-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.nano-modal-close-btn:hover{color:var(--nano-modal-text);background:#ffffff1a}.nano-modal-body{flex:1;padding:24px;overflow-y:auto}.nano-modal-footer{border-top:1px solid var(--nano-modal-border);background:#00000026;justify-content:flex-end;padding:16px 24px;display:flex}.nano-modal-actions{gap:12px;display:flex}.nano-btn{cursor:pointer;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:.95rem;font-weight:600;transition:all .2s}.nano-btn-primary{background:var(--nano-btn-primary)}.nano-btn-primary:hover{background:var(--nano-btn-primary-hover)}.nano-btn-secondary{background:var(--nano-btn-secondary)}.nano-btn-secondary:hover{background:var(--nano-btn-secondary-hover)}.nano-modal-resizer{cursor:se-resize;width:16px;height:16px;color:var(--nano-modal-text-muted);z-index:10;justify-content:center;align-items:center;transition:color .2s;display:flex;position:absolute;bottom:4px;right:4px}.nano-modal-resizer:hover{color:var(--nano-modal-text)}.nano-modal-fade-enter-active,.nano-modal-fade-leave-active{transition:opacity .25s}.nano-modal-fade-enter-active .nano-modal-window{transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.nano-modal-fade-leave-active .nano-modal-window{transition:transform .2s ease-in}.nano-modal-fade-enter-from,.nano-modal-fade-leave-to{opacity:0}.nano-modal-fade-enter-from .nano-modal-window{transform:scale(.9)translateY(10px)}.nano-modal-fade-leave-to .nano-modal-window{transform:scale(.95)translateY(-10px)}.donut-canvas-wrapper[data-v-f4b6c80f]{flex-shrink:0;justify-content:center;align-items:center;width:120px;height:120px;transition:width .45s cubic-bezier(.25,1,.5,1),height .45s cubic-bezier(.25,1,.5,1);display:flex;position:relative}.donut-canvas-wrapper.is-expanded[data-v-f4b6c80f]{width:100%;max-width:760px;height:320px}@media (width<=760px){.donut-canvas-wrapper.is-expanded[data-v-f4b6c80f]{height:42vw}}.items-svg-chart[data-v-f4b6c80f]{width:100%;height:100%;display:block;overflow:visible}.slice-group-3d[data-v-f4b6c80f]{cursor:pointer;transition:transform .25s cubic-bezier(.25,1,.5,1),opacity .25s}.slice-group-3d.is-dimmed[data-v-f4b6c80f]{opacity:.35}.label-group[data-v-f4b6c80f]{transition:opacity .25s}.label-group path[data-v-f4b6c80f]{transition:d .25s cubic-bezier(.25,1,.5,1),stroke-width .2s,opacity .2s}.label-group text[data-v-f4b6c80f]{transition:transform .25s cubic-bezier(.25,1,.5,1),font-weight .2s,opacity .2s}.label-group.is-hovered path[data-v-f4b6c80f]{stroke-width:2.2px}.label-group.is-hovered text[data-v-f4b6c80f]{font-weight:700}.label-group.is-dimmed[data-v-f4b6c80f]{opacity:.25}.no-transitions .label-group[data-v-f4b6c80f],.no-transitions .label-group path[data-v-f4b6c80f],.no-transitions .label-group text[data-v-f4b6c80f],.no-transitions .slice-group-3d[data-v-f4b6c80f]{transition:none!important}.center-text-value[data-v-f4b6c80f]{fill:#fff;filter:drop-shadow(0 0 3px #000c)}.center-text-label[data-v-f4b6c80f]{fill:#94a3b8;filter:drop-shadow(0 0 2px #000c)}:root[data-theme=light] .center-text-value[data-v-f4b6c80f]{fill:#0f172a;filter:drop-shadow(0 0 3px #ffffffe6)}:root[data-theme=light] .center-text-label[data-v-f4b6c80f]{fill:#475569;filter:drop-shadow(0 0 2px #ffffffe6)}.nano-scrub-track[data-v-429ba0d9]{cursor:ew-resize;-webkit-user-select:none;user-select:none;background:#00e5ff05;border:1px dashed #00e5ff40;border-radius:8px;justify-content:center;align-items:center;width:100%;height:44px;transition:border-color .2s,background-color .2s;display:flex;position:relative;overflow:hidden}.nano-scrub-track[data-v-429ba0d9]:hover{background:#00e5ff0a;border-color:#00e5ff66}.nano-scrub-progress[data-v-429ba0d9]{pointer-events:none;background:#00e5ff0f;height:100%;position:absolute;top:0;left:0}.nano-scrub-label[data-v-429ba0d9]{color:#00e5ff;letter-spacing:.03rem;z-index:1;pointer-events:none;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.nano-scrub-overlay[data-v-429ba0d9]{z-index:99999;pointer-events:none;-webkit-user-select:none;user-select:none;width:100vw;height:100vh;position:fixed;top:0;left:0}.nano-scrub-anchor[data-v-429ba0d9]{background:#00e5ff;border-radius:50%;width:10px;height:10px;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 12px #00e5ff,0 0 24px #00e5ff66}.nano-scrub-svg-line[data-v-429ba0d9]{width:100vw;height:100vh;position:fixed;top:0;left:0}.nano-scrub-popup[data-v-429ba0d9]{pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172af2;border:1px solid #00e5ff59;border-radius:10px;flex-direction:column;gap:6px;min-width:200px;padding:12px 16px;display:flex;position:fixed;box-shadow:0 10px 30px #0009,0 0 20px #00e5ff26}.nano-scrub-popup-title[data-v-429ba0d9]{text-transform:uppercase;color:#64748b;letter-spacing:.06rem;font-size:10px;font-weight:700}.nano-scrub-popup-val[data-v-429ba0d9]{color:#fff;letter-spacing:.05rem;font-family:monospace;font-size:1.25rem;font-weight:800}.nano-scrub-popup-res[data-v-429ba0d9]{color:#00e5ff;font-size:11px;font-weight:700}span.ripple{background-color:var(--nano-ripple-color,#fff6);pointer-events:none;border-radius:50%;animation:.6s linear nano-ripple-anim;position:absolute;transform:scale(0)}@keyframes nano-ripple-anim{to{opacity:0;transform:scale(4)}}
2
2
  /*$vite$:1*/
package/dist/nano-ui.js CHANGED
@@ -1,6 +1,6 @@
1
- import { Fragment as e, Teleport as t, Transition as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, nextTick as u, normalizeClass as d, normalizeStyle as f, onMounted as p, onUnmounted as m, openBlock as h, reactive as g, ref as _, renderList as v, renderSlot as y, resolveDirective as b, toDisplayString as x, unref as S, watch as C, withCtx as w, withDirectives as T, withKeys as E, withModifiers as D } from "vue";
1
+ import { Fragment as e, Teleport as t, Transition as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, mergeProps as u, nextTick as d, normalizeClass as f, normalizeStyle as p, onMounted as m, onUnmounted as h, openBlock as g, reactive as _, ref as v, renderList as y, renderSlot as b, resolveDirective as x, toDisplayString as S, unref as C, watch as w, withCtx as T, withDirectives as E, withKeys as D, withModifiers as O } from "vue";
2
2
  //#region node_modules/@gkucmierz/analytics/dist/analytics.js
3
- var O = new class {
3
+ var k = new class {
4
4
  constructor() {
5
5
  this.appId = null, this.serverUrl = null, this.sessionId = null, this.isRealUser = !1, this.sessionActive = !1, this.eventQueue = [], this.botFlags = [];
6
6
  }
@@ -95,124 +95,124 @@ var O = new class {
95
95
  });
96
96
  }
97
97
  }();
98
- typeof window < "u" && (window.Analytics = O);
98
+ typeof window < "u" && (window.Analytics = k);
99
99
  //#endregion
100
100
  //#region src/directives/ripple.js
101
- var k = { mounted(e, t) {
101
+ var A = { mounted(e, t) {
102
102
  e.style.position = "relative", e.style.overflow = "hidden", e.addEventListener("click", function(n) {
103
103
  let r = e.getBoundingClientRect(), i = n.clientX - r.left, a = n.clientY - r.top, o = document.createElement("span"), s = Math.max(r.width, r.height), c = s / 2;
104
104
  o.style.width = o.style.height = `${s}px`, o.style.left = `${i - c}px`, o.style.top = `${a - c}px`, o.classList.add("ripple"), t.value && typeof t.value == "string" && (o.style.backgroundColor = t.value), e.appendChild(o), setTimeout(() => {
105
105
  o.remove();
106
106
  }, 600);
107
107
  });
108
- } }, A = g({
108
+ } }, j = _({
109
109
  isVisible: !1,
110
110
  text: "",
111
111
  customClass: "",
112
112
  targetRect: null
113
113
  });
114
- function j(e, t) {
114
+ function M(e, t) {
115
115
  if (!t) return;
116
116
  let n = typeof t == "object" ? t.text : t, r = typeof t == "object" && t.class || "";
117
117
  if (!n) return;
118
118
  e.hasAttribute("aria-label") || e.setAttribute("aria-label", n);
119
119
  let i = e.getBoundingClientRect();
120
- A.targetRect = {
120
+ j.targetRect = {
121
121
  top: i.top,
122
122
  left: i.left,
123
123
  width: i.width,
124
124
  bottom: i.bottom,
125
125
  right: i.right
126
- }, A.text = n, A.customClass = r, A.isVisible = !0;
126
+ }, j.text = n, j.customClass = r, j.isVisible = !0;
127
127
  }
128
- typeof window < "u" && window.addEventListener("scroll", M, {
128
+ typeof window < "u" && window.addEventListener("scroll", N, {
129
129
  passive: !0,
130
130
  capture: !0
131
131
  });
132
- function M() {
133
- A.isVisible = !1;
132
+ function N() {
133
+ j.isVisible = !1;
134
134
  }
135
135
  //#endregion
136
136
  //#region src/directives/tooltip.js
137
- var N = {
137
+ var P = {
138
138
  mounted(e, t) {
139
139
  e._tooltipOptions = t.value;
140
140
  let n = null, r = !1;
141
141
  e._handleMouseEnter = () => {
142
- r || j(e, e._tooltipOptions);
142
+ r || M(e, e._tooltipOptions);
143
143
  }, e._handleMouseLeave = () => {
144
- r || M();
144
+ r || N();
145
145
  }, e._handleFocus = () => {
146
- r || j(e, e._tooltipOptions);
146
+ r || M(e, e._tooltipOptions);
147
147
  }, e._handleBlur = () => {
148
- r || M();
148
+ r || N();
149
149
  }, e._handleTouchStart = () => {
150
150
  r = !0, n && clearTimeout(n), n = setTimeout(() => {
151
- j(e, e._tooltipOptions);
151
+ M(e, e._tooltipOptions);
152
152
  }, 400);
153
153
  }, e._handleTouchEnd = () => {
154
- n && clearTimeout(n), M(), setTimeout(() => {
154
+ n && clearTimeout(n), N(), setTimeout(() => {
155
155
  r = !1;
156
156
  }, 500);
157
157
  }, e._handleTouchCancel = () => {
158
- n && clearTimeout(n), M(), setTimeout(() => {
158
+ n && clearTimeout(n), N(), setTimeout(() => {
159
159
  r = !1;
160
160
  }, 500);
161
161
  }, e._handleContextMenu = (t) => {
162
162
  let n = typeof e._tooltipOptions == "object" ? e._tooltipOptions.text : e._tooltipOptions;
163
- r && A.isVisible && A.text === n && t.preventDefault();
163
+ r && j.isVisible && j.text === n && t.preventDefault();
164
164
  }, e.addEventListener("mouseenter", e._handleMouseEnter), e.addEventListener("mouseleave", e._handleMouseLeave), e.addEventListener("focus", e._handleFocus), e.addEventListener("blur", e._handleBlur), e.addEventListener("touchstart", e._handleTouchStart, { passive: !0 }), e.addEventListener("touchend", e._handleTouchEnd), e.addEventListener("touchmove", e._handleTouchCancel, { passive: !0 }), e.addEventListener("touchcancel", e._handleTouchCancel), e.addEventListener("contextmenu", e._handleContextMenu);
165
165
  },
166
166
  updated(e, t) {
167
167
  e._tooltipOptions = t.value;
168
168
  let n = typeof t.value == "object" ? t.value.text : t.value;
169
- A.isVisible && A.text !== n && (e.matches(":hover") || document.activeElement === e) && j(e, t.value);
169
+ j.isVisible && j.text !== n && (e.matches(":hover") || document.activeElement === e) && M(e, t.value);
170
170
  },
171
171
  unmounted(e) {
172
- e._handleMouseEnter && (e.removeEventListener("mouseenter", e._handleMouseEnter), e.removeEventListener("mouseleave", e._handleMouseLeave), e.removeEventListener("focus", e._handleFocus), e.removeEventListener("blur", e._handleBlur), e.removeEventListener("touchstart", e._handleTouchStart), e.removeEventListener("touchend", e._handleTouchEnd), e.removeEventListener("touchmove", e._handleTouchCancel), e.removeEventListener("touchcancel", e._handleTouchCancel), e.removeEventListener("contextmenu", e._handleContextMenu)), M();
172
+ e._handleMouseEnter && (e.removeEventListener("mouseenter", e._handleMouseEnter), e.removeEventListener("mouseleave", e._handleMouseLeave), e.removeEventListener("focus", e._handleFocus), e.removeEventListener("blur", e._handleBlur), e.removeEventListener("touchstart", e._handleTouchStart), e.removeEventListener("touchend", e._handleTouchEnd), e.removeEventListener("touchmove", e._handleTouchCancel), e.removeEventListener("touchcancel", e._handleTouchCancel), e.removeEventListener("contextmenu", e._handleContextMenu)), N();
173
173
  }
174
- }, P = (e, t) => {
174
+ }, F = (e, t) => {
175
175
  let n = e.__vccOpts || e;
176
176
  for (let [e, r] of t) n[e] = r;
177
177
  return n;
178
- }, F = /* @__PURE__ */ P({
178
+ }, I = /* @__PURE__ */ F({
179
179
  __name: "GlobalTooltip",
180
180
  setup(e) {
181
- let t = _(null), n = _(0), r = _(0), i = _(0), a = _(!1);
182
- return C(() => A.isVisible, async (e) => {
181
+ let t = v(null), n = v(0), r = v(0), i = v(0), a = v(!1);
182
+ return w(() => j.isVisible, async (e) => {
183
183
  if (e) {
184
- if (await u(), !t.value || !A.targetRect) return;
185
- let e = A.targetRect, o = t.value.getBoundingClientRect(), s = window.innerWidth, c = window.innerHeight, l = e.top, d = c - e.bottom, f = e.top - o.height - 8;
186
- a.value = !1, (f < 8 || l < o.height + 8 && d > l) && (f = e.bottom + 8, a.value = !0), f + o.height > c - 8 && (f = c - o.height - 8), f < 8 && (f = 8);
184
+ if (await d(), !t.value || !j.targetRect) return;
185
+ let e = j.targetRect, o = t.value.getBoundingClientRect(), s = window.innerWidth, c = window.innerHeight, l = e.top, u = c - e.bottom, f = e.top - o.height - 8;
186
+ a.value = !1, (f < 8 || l < o.height + 8 && u > l) && (f = e.bottom + 8, a.value = !0), f + o.height > c - 8 && (f = c - o.height - 8), f < 8 && (f = 8);
187
187
  let p = e.left + e.width / 2, m = p - o.width / 2;
188
188
  m < 8 ? m = 8 : m + o.width > s - 8 && (m = s - o.width - 8);
189
189
  let h = p - (m + o.width / 2), g = o.width / 2 - 12;
190
190
  h > g && (h = g), h < -g && (h = -g), i.value = h, n.value = m, r.value = f;
191
191
  }
192
- }), (e, s) => (h(), o("div", {
192
+ }), (e, s) => (g(), o("div", {
193
193
  ref_key: "tooltipRef",
194
194
  ref: t,
195
- class: d([
195
+ class: f([
196
196
  "global-tooltip",
197
197
  {
198
- visible: S(A).isVisible,
198
+ visible: C(j).isVisible,
199
199
  "tooltip-bottom": a.value
200
200
  },
201
- S(A).customClass
201
+ C(j).customClass
202
202
  ]),
203
- style: f({
203
+ style: p({
204
204
  transform: `translate(${n.value}px, ${r.value}px)`,
205
205
  "--arrow-offset": `${i.value}px`
206
206
  })
207
- }, x(S(A).text), 7));
207
+ }, S(C(j).text), 7));
208
208
  }
209
- }, [["__scopeId", "data-v-37c91a21"]]), I = { class: "nano-modal-title" }, L = {
209
+ }, [["__scopeId", "data-v-37c91a21"]]), L = { class: "nano-modal-title" }, R = {
210
210
  key: 1,
211
211
  class: "nano-modal-body"
212
- }, R = {
212
+ }, z = {
213
213
  key: 2,
214
214
  class: "nano-modal-footer"
215
- }, z = { class: "nano-modal-actions" }, B = {
215
+ }, B = { class: "nano-modal-actions" }, V = {
216
216
  __name: "NanoModal",
217
217
  props: {
218
218
  visible: {
@@ -293,79 +293,79 @@ var N = {
293
293
  "ok",
294
294
  "cancel"
295
295
  ],
296
- setup(e, { emit: p }) {
297
- let g = e, v = p, S = _(null), O = _(null), k = _(null), A = _(null), j = _(null), M = _(null), N = _(!1), P = _(!1), F = 0, B = 0, ee = 0, te = 0, V = 0, ne = 0, re = 0, ie = 0, ae = r(() => {
296
+ setup(e, { emit: u }) {
297
+ let m = e, _ = u, y = v(null), C = v(null), k = v(null), A = v(null), j = v(null), M = v(null), N = v(!1), P = v(!1), F = 0, I = 0, V = 0, ee = 0, H = 0, te = 0, ne = 0, re = 0, ie = r(() => {
298
298
  let e = {};
299
- return j.value === null ? (e.maxWidth = typeof g.width == "number" ? `${g.width}px` : g.width, e.width = "100%") : (e.width = `${j.value}px`, e.maxWidth = "none"), M.value === null ? g.height !== "auto" && (e.height = typeof g.height == "number" ? `${g.height}px` : g.height) : (e.height = `${M.value}px`, e.maxHeight = "none"), k.value !== null && A.value !== null && (e.position = "absolute", e.left = `${k.value}px`, e.top = `${A.value}px`, e.transform = "none", e.margin = "0"), e;
300
- }), oe = (e) => {
301
- if (g.draggable && !(e.target.tagName === "BUTTON" || e.target.closest("button"))) {
302
- if (N.value = !0, F = e.clientX, B = e.clientY, k.value === null) {
303
- let e = O.value.getBoundingClientRect();
299
+ return j.value === null ? (e.maxWidth = typeof m.width == "number" ? `${m.width}px` : m.width, e.width = "100%") : (e.width = `${j.value}px`, e.maxWidth = "none"), M.value === null ? m.height !== "auto" && (e.height = typeof m.height == "number" ? `${m.height}px` : m.height) : (e.height = `${M.value}px`, e.maxHeight = "none"), k.value !== null && A.value !== null && (e.position = "absolute", e.left = `${k.value}px`, e.top = `${A.value}px`, e.transform = "none", e.margin = "0"), e;
300
+ }), ae = (e) => {
301
+ if (m.draggable && !(e.target.tagName === "BUTTON" || e.target.closest("button"))) {
302
+ if (N.value = !0, F = e.clientX, I = e.clientY, k.value === null) {
303
+ let e = C.value.getBoundingClientRect();
304
304
  k.value = e.left, A.value = e.top, j.value === null && (j.value = e.width), M.value === null && (M.value = e.height);
305
305
  }
306
- ee = k.value, te = A.value, window.addEventListener("mousemove", se), window.addEventListener("mouseup", ce);
306
+ V = k.value, ee = A.value, window.addEventListener("mousemove", oe), window.addEventListener("mouseup", se);
307
307
  }
308
- }, se = (e) => {
308
+ }, oe = (e) => {
309
309
  if (!N.value) return;
310
- let t = ee + (e.clientX - F), n = te + (e.clientY - B), r = window.innerWidth, i = window.innerHeight, a = O.value.getBoundingClientRect();
310
+ let t = V + (e.clientX - F), n = ee + (e.clientY - I), r = window.innerWidth, i = window.innerHeight, a = C.value.getBoundingClientRect();
311
311
  t < 0 && (t = 0), n < 0 && (n = 0), t + a.width > r && (t = r - a.width), n + a.height > i && (n = i - a.height), k.value = t, A.value = n;
312
- }, ce = () => {
313
- N.value = !1, window.removeEventListener("mousemove", se), window.removeEventListener("mouseup", ce);
312
+ }, se = () => {
313
+ N.value = !1, window.removeEventListener("mousemove", oe), window.removeEventListener("mouseup", se);
314
+ }, ce = (e) => {
315
+ if (!m.resizable) return;
316
+ e.preventDefault(), e.stopPropagation(), P.value = !0, H = e.clientX, te = e.clientY;
317
+ let t = C.value.getBoundingClientRect();
318
+ k.value === null && (k.value = t.left, A.value = t.top), ne = t.width, re = t.height, window.addEventListener("mousemove", le), window.addEventListener("mouseup", ue);
314
319
  }, le = (e) => {
315
- if (!g.resizable) return;
316
- e.preventDefault(), e.stopPropagation(), P.value = !0, V = e.clientX, ne = e.clientY;
317
- let t = O.value.getBoundingClientRect();
318
- k.value === null && (k.value = t.left, A.value = t.top), re = t.width, ie = t.height, window.addEventListener("mousemove", ue), window.addEventListener("mouseup", de);
319
- }, ue = (e) => {
320
320
  if (!P.value) return;
321
- let t = re + (e.clientX - V), n = ie + (e.clientY - ne);
322
- t < g.minWidth && (t = g.minWidth), n < g.minHeight && (n = g.minHeight);
321
+ let t = ne + (e.clientX - H), n = re + (e.clientY - te);
322
+ t < m.minWidth && (t = m.minWidth), n < m.minHeight && (n = m.minHeight);
323
323
  let r = window.innerWidth - k.value, i = window.innerHeight - A.value;
324
324
  t > r && (t = r), n > i && (n = i), j.value = t, M.value = n;
325
- }, de = () => {
326
- P.value = !1, window.removeEventListener("mousemove", ue), window.removeEventListener("mouseup", de);
327
- }, fe = (e) => {
328
- g.visible && e.key === "Escape" && (e.preventDefault(), e.stopPropagation(), pe());
325
+ }, ue = () => {
326
+ P.value = !1, window.removeEventListener("mousemove", le), window.removeEventListener("mouseup", ue);
327
+ }, de = (e) => {
328
+ m.visible && e.key === "Escape" && (e.preventDefault(), e.stopPropagation(), fe());
329
329
  };
330
- C(() => g.visible, async (e) => {
331
- e ? (k.value = null, A.value = null, j.value = null, M.value = null, document.body.style.overflow = "hidden", window.addEventListener("keydown", fe, { capture: !0 }), await u(), S.value && S.value.focus()) : (document.body.style.overflow = "", window.removeEventListener("keydown", fe, { capture: !0 }), ce(), de());
332
- }), m(() => {
333
- document.body.style.overflow = "", window.removeEventListener("keydown", fe, { capture: !0 }), ce(), de();
330
+ w(() => m.visible, async (e) => {
331
+ e ? (k.value = null, A.value = null, j.value = null, M.value = null, document.body.style.overflow = "hidden", window.addEventListener("keydown", de, { capture: !0 }), await d(), y.value && y.value.focus()) : (document.body.style.overflow = "", window.removeEventListener("keydown", de, { capture: !0 }), se(), ue());
332
+ }), h(() => {
333
+ document.body.style.overflow = "", window.removeEventListener("keydown", de, { capture: !0 }), se(), ue();
334
334
  });
335
- let pe = () => v("close"), me = () => {
336
- g.closeOnBackdrop && pe();
337
- }, he = () => v("ok"), ge = () => {
338
- v("cancel"), pe();
335
+ let fe = () => _("close"), pe = () => {
336
+ m.closeOnBackdrop && fe();
337
+ }, me = () => _("ok"), he = () => {
338
+ _("cancel"), fe();
339
339
  };
340
340
  return (r, u) => {
341
- let p = b("ripple");
342
- return h(), i(t, { to: "body" }, [l(n, { name: "nano-modal-fade" }, {
343
- default: w(() => [e.visible ? (h(), o("div", {
341
+ let d = x("ripple");
342
+ return g(), i(t, { to: "body" }, [l(n, { name: "nano-modal-fade" }, {
343
+ default: T(() => [e.visible ? (g(), o("div", {
344
344
  key: 0,
345
- class: d(["nano-modal-overlay", { "nano-glass": e.glassmorphism }]),
346
- onClick: D(me, ["self"]),
347
- onKeydown: u[1] ||= E(D((...e) => r.handleEsc && r.handleEsc(...e), ["stop"]), ["esc"]),
345
+ class: f(["nano-modal-overlay", { "nano-glass": e.glassmorphism }]),
346
+ onClick: O(pe, ["self"]),
347
+ onKeydown: u[1] ||= D(O((...e) => r.handleEsc && r.handleEsc(...e), ["stop"]), ["esc"]),
348
348
  tabindex: "-1",
349
349
  ref_key: "modalOverlay",
350
- ref: S
350
+ ref: y
351
351
  }, [s("div", {
352
- class: d(["nano-modal-window", {
352
+ class: f(["nano-modal-window", {
353
353
  "is-dragging": N.value,
354
354
  "is-resizing": P.value
355
355
  }]),
356
- style: f(ae.value),
356
+ style: p(ie.value),
357
357
  ref_key: "modalWindow",
358
- ref: O
358
+ ref: C
359
359
  }, [
360
- e.showHeader ? (h(), o("div", {
360
+ e.showHeader ? (g(), o("div", {
361
361
  key: 0,
362
- class: d(["nano-modal-header", { "is-draggable": e.draggable }]),
363
- onMousedown: oe
364
- }, [y(r.$slots, "header", {}, () => [s("h2", I, x(e.title), 1)]), s("button", {
362
+ class: f(["nano-modal-header", { "is-draggable": e.draggable }]),
363
+ onMousedown: ae
364
+ }, [b(r.$slots, "header", {}, () => [s("h2", L, S(e.title), 1)]), s("button", {
365
365
  class: "nano-modal-close-btn",
366
- onClick: D(pe, ["stop"]),
366
+ onClick: O(fe, ["stop"]),
367
367
  "aria-label": "Close",
368
- onMousedown: u[0] ||= D(() => {}, ["stop"])
368
+ onMousedown: u[0] ||= O(() => {}, ["stop"])
369
369
  }, [...u[2] ||= [s("svg", {
370
370
  xmlns: "http://www.w3.org/2000/svg",
371
371
  width: "24",
@@ -387,20 +387,20 @@ var N = {
387
387
  x2: "18",
388
388
  y2: "18"
389
389
  })], -1)]], 32)], 34)) : a("", !0),
390
- e.showBody ? (h(), o("div", L, [y(r.$slots, "body")])) : a("", !0),
391
- e.showFooter ? (h(), o("div", R, [y(r.$slots, "footer", {}, () => [s("div", z, [e.showCancel ? T((h(), o("button", {
390
+ e.showBody ? (g(), o("div", R, [b(r.$slots, "body")])) : a("", !0),
391
+ e.showFooter ? (g(), o("div", z, [b(r.$slots, "footer", {}, () => [s("div", B, [e.showCancel ? E((g(), o("button", {
392
392
  key: 0,
393
393
  class: "nano-btn nano-btn-secondary",
394
- onClick: ge
395
- }, [c(x(e.cancelText), 1)])), [[p]]) : a("", !0), e.showOk ? T((h(), o("button", {
396
- key: 1,
397
- class: d(["nano-btn", "nano-btn-" + e.okVariant]),
398
394
  onClick: he
399
- }, [c(x(e.okText), 1)], 2)), [[p]]) : a("", !0)])])])) : a("", !0),
400
- e.resizable ? (h(), o("div", {
395
+ }, [c(S(e.cancelText), 1)])), [[d]]) : a("", !0), e.showOk ? E((g(), o("button", {
396
+ key: 1,
397
+ class: f(["nano-btn", "nano-btn-" + e.okVariant]),
398
+ onClick: me
399
+ }, [c(S(e.okText), 1)], 2)), [[d]]) : a("", !0)])])])) : a("", !0),
400
+ e.resizable ? (g(), o("div", {
401
401
  key: 3,
402
402
  class: "nano-modal-resizer",
403
- onMousedown: le
403
+ onMousedown: ce
404
404
  }, [...u[3] ||= [s("svg", {
405
405
  width: "10",
406
406
  height: "10",
@@ -419,7 +419,7 @@ var N = {
419
419
  })]);
420
420
  };
421
421
  }
422
- }, ee = ["viewBox"], te = { key: 0 }, V = [
422
+ }, ee = ["viewBox"], H = { key: 0 }, te = [
423
423
  "id",
424
424
  "x1",
425
425
  "y1",
@@ -433,7 +433,7 @@ var N = {
433
433
  "id",
434
434
  "y1",
435
435
  "y2"
436
- ], ce = ["stop-color"], le = ["stop-color"], ue = { key: 1 }, de = ["x", "y"], fe = { key: 2 }, pe = ["d", "fill"], me = ["d", "stroke"], he = ["d", "fill"], ge = ["d", "fill"], _e = ["d", "fill"], ve = ["d", "stroke"], ye = ["d", "fill"], be = ["d", "stroke"], xe = ["d", "stroke-width"], Se = ["transform"], Ce = ["font-size"], we = ["font-size"], Te = ["d", "fill"], Ee = ["d", "stroke"], De = ["d", "fill"], Oe = ["d", "fill"], ke = ["d", "fill"], Ae = ["d", "stroke"], je = ["d", "fill"], Me = ["d", "stroke"], Ne = ["d", "stroke-width"], Pe = ["onMouseenter", "onClick"], Fe = ["d"], Ie = ["d"], Le = ["onMouseenter", "onClick"], Re = ["d", "stroke"], ze = ["y", "fill"], Be = ["onMouseenter", "onClick"], Ve = ["d", "stroke"], He = ["y", "fill"], H = /* @__PURE__ */ P({
436
+ ], ce = ["stop-color"], le = ["stop-color"], ue = { key: 1 }, de = ["x", "y"], fe = { key: 2 }, pe = ["d", "fill"], me = ["d", "stroke"], he = ["d", "fill"], ge = ["d", "fill"], _e = ["d", "fill"], ve = ["d", "stroke"], ye = ["d", "fill"], be = ["d", "stroke"], xe = ["d", "stroke-width"], Se = ["transform"], Ce = ["font-size"], we = ["font-size"], Te = ["d", "fill"], Ee = ["d", "stroke"], De = ["d", "fill"], Oe = ["d", "fill"], ke = ["d", "fill"], Ae = ["d", "stroke"], je = ["d", "fill"], Me = ["d", "stroke"], Ne = ["d", "stroke-width"], Pe = ["onMouseenter", "onClick"], Fe = ["d"], Ie = ["d"], Le = ["onMouseenter", "onClick"], Re = ["d", "stroke"], ze = ["y", "fill"], Be = ["onMouseenter", "onClick"], Ve = ["d", "stroke"], He = ["y", "fill"], Ue = /* @__PURE__ */ F({
437
437
  __name: "ThreeDDonutChart",
438
438
  props: {
439
439
  data: {
@@ -532,26 +532,26 @@ var N = {
532
532
  },
533
533
  emits: ["update:hoveredItemId", "update:selectedItemId"],
534
534
  setup(t, { expose: n, emit: i }) {
535
- let c = t, l = i, g = null, y = _(null), b = _(null), S = r({
535
+ let c = t, l = i, u = null, _ = v(null), b = v(null), x = r({
536
536
  get() {
537
537
  return c.selectedItemId !== void 0 && c.selectedItemId !== null ? c.selectedItemId : b.value;
538
538
  },
539
539
  set(e) {
540
540
  b.value = e, l("update:selectedItemId", e);
541
541
  }
542
- }), w = r(() => j.value ? null : y.value === null ? c.selectable ? S.value : null : y.value), T = !1, E = (e) => {
543
- !c.selectable || j.value || (T = !0, S.value === e ? S.value = null : S.value = e);
542
+ }), C = r(() => j.value ? null : _.value === null ? c.selectable ? x.value : null : _.value), T = !1, E = (e) => {
543
+ !c.selectable || j.value || (T = !0, x.value === e ? x.value = null : x.value = e);
544
544
  }, D = (e) => {
545
- j.value || (y.value = e);
546
- }, O = _(null), k = (e) => {
545
+ j.value || (_.value = e);
546
+ }, O = v(null), k = (e) => {
547
547
  if (c.selectable) {
548
548
  if (T) {
549
549
  T = !1;
550
550
  return;
551
551
  }
552
- O.value && O.value.contains(e.target) && (S.value = null);
552
+ O.value && O.value.contains(e.target) && (x.value = null);
553
553
  }
554
- }, A = _([]), j = r(() => (c.data || []).filter((e) => e.value > .001).length <= 1), M = [
554
+ }, A = v([]), j = r(() => (c.data || []).filter((e) => e.value > .001).length <= 1), M = [
555
555
  "#3b82f6",
556
556
  "#10b981",
557
557
  "#a855f7",
@@ -631,12 +631,12 @@ var N = {
631
631
  percentage: n
632
632
  };
633
633
  });
634
- }), H = r(() => A.value.reduce((e, t) => e + t.value, 0)), Ue = r(() => {
634
+ }), V = r(() => A.value.reduce((e, t) => e + t.value, 0)), Ue = r(() => {
635
635
  if (c.centerValue !== void 0 && c.centerValue !== "") return c.centerValue;
636
- let e = nt.value.find((e) => e.item.id === w.value);
637
- return e ? c.centerValueFormatter ? c.centerValueFormatter(e.item.value, e.item) : L(e.item.value) : c.centerValueFormatter ? c.centerValueFormatter(H.value, null) : c.valueDecimals === void 0 ? Math.round(H.value) : L(H.value);
636
+ let e = $.value.find((e) => e.item.id === C.value);
637
+ return e ? c.centerValueFormatter ? c.centerValueFormatter(e.item.value, e.item) : L(e.item.value) : c.centerValueFormatter ? c.centerValueFormatter(V.value, null) : c.valueDecimals === void 0 ? Math.round(V.value) : L(V.value);
638
638
  }), We = r(() => {
639
- let e = nt.value.find((e) => e.item.id === w.value);
639
+ let e = $.value.find((e) => e.item.id === C.value);
640
640
  return e ? R(e.item.name, 12).toUpperCase() : (c.centerLabel || "").toUpperCase();
641
641
  }), Ge = (e, t = !1) => {
642
642
  let n = new Map(A.value.map((e) => [e.id, e])), r = new Map(e.map((e) => [e.id, e])), i = [];
@@ -697,18 +697,18 @@ var N = {
697
697
  l < o ? (o = l, a = e, s = u) : l === o && u < s && (a = e, s = u);
698
698
  }
699
699
  return a;
700
- }, qe = r(() => c.autoRotate && B.value && B.value.length > 0 ? Ke(B.value, c.rotationAngle) : c.rotationAngle), U = _(qe.value), W = _(!1), Je = _(!1), Ye = null, G = c.is3D, K = _(c.isExpanded ? 380 : 60), q = _(c.isExpanded ? 160 : 60), J = _(c.isExpanded ? 180 : 48), Y = _(c.isExpanded ? G ? 180 * c.slopeRatio : 180 : G ? 48 * c.slopeRatio : 48), X = _(c.isExpanded ? 180 * (1 - c.thickness) : 48 * (1 - c.thickness)), Z = _(c.isExpanded ? G ? 180 * (1 - c.thickness) * c.slopeRatio : 180 * (1 - c.thickness) : G ? 48 * (1 - c.thickness) * c.slopeRatio : 48 * (1 - c.thickness)), Xe = c.isExpanded && G ? 32 : 0, Q = _(G && c.slopeRatio > .5 ? Xe * (2 - 2 * c.slopeRatio) : Xe), Ze = _(c.isExpanded ? 760 : 120), Qe = _(c.isExpanded ? 320 : 120), $ = _(c.isExpanded && c.showLabels ? 1 : 0), $e = r(() => {
701
- let e = (J.value - 48) / 132;
700
+ }, qe = r(() => c.autoRotate && B.value && B.value.length > 0 ? Ke(B.value, c.rotationAngle) : c.rotationAngle), U = v(qe.value), Je = v(!1), Ye = v(!1), Xe = null, W = c.is3D, G = v(c.isExpanded ? 380 : 60), K = v(c.isExpanded ? 160 : 60), q = v(c.isExpanded ? 180 : 48), J = v(c.isExpanded ? W ? 180 * c.slopeRatio : 180 : W ? 48 * c.slopeRatio : 48), Y = v(c.isExpanded ? 180 * (1 - c.thickness) : 48 * (1 - c.thickness)), X = v(c.isExpanded ? W ? 180 * (1 - c.thickness) * c.slopeRatio : 180 * (1 - c.thickness) : W ? 48 * (1 - c.thickness) * c.slopeRatio : 48 * (1 - c.thickness)), Ze = c.isExpanded && W ? 32 : 0, Z = v(W && c.slopeRatio > .5 ? Ze * (2 - 2 * c.slopeRatio) : Ze), Qe = v(c.isExpanded ? 760 : 120), $e = v(c.isExpanded ? 320 : 120), Q = v(c.isExpanded && c.showLabels ? 1 : 0), et = r(() => {
701
+ let e = (q.value - 48) / 132;
702
702
  return 13 + 6 * Math.max(0, Math.min(1, e));
703
- }), et = r(() => {
704
- let e = (J.value - 48) / 132;
703
+ }), tt = r(() => {
704
+ let e = (q.value - 48) / 132;
705
705
  return 7 + 1.5 * Math.max(0, Math.min(1, e));
706
- }), tt = r(() => q.value - Q.value / 2), nt = r(() => {
707
- let e = A.value, t = H.value;
706
+ }), nt = r(() => K.value - Z.value / 2), $ = r(() => {
707
+ let e = A.value, t = V.value;
708
708
  if (t === 0) return [];
709
- let n = [], r = U.value * Math.PI / 180, i = K.value;
710
- q.value;
711
- let a = J.value, o = Y.value, s = X.value, l = Z.value, u = Q.value, d = tt.value, f = e.filter((e) => e.value > .001);
709
+ let n = [], r = U.value * Math.PI / 180, i = G.value;
710
+ K.value;
711
+ let a = q.value, o = J.value, s = Y.value, l = X.value, u = Z.value, d = nt.value, f = e.filter((e) => e.value > .001);
712
712
  if (f.length === 1) {
713
713
  let t = f[0], n = e.indexOf(t), r = F(t, n), p = `M ${i - a} ${d} A ${a} ${o} 0 0 1 ${i + a} ${d} A ${a} ${o} 0 0 1 ${i - a} ${d} M ${i - s} ${d} A ${s} ${l} 0 0 0 ${i + s} ${d} A ${s} ${l} 0 0 0 ${i - s} ${d} Z`, m = "", h = "";
714
714
  u > 0 && (m = `M ${i + a} ${d} A ${a} ${o} 0 0 1 ${i - a} ${d} L ${i - a} ${d + u} A ${a} ${o} 0 0 0 ${i + a} ${d + u} Z`, h = `M ${i - s} ${d} A ${s} ${l} 0 0 1 ${i + s} ${d} L ${i + s} ${d + u} A ${s} ${l} 0 0 0 ${i - s} ${d + u} Z`);
@@ -806,7 +806,7 @@ var N = {
806
806
  M ? (P = `M ${h} ${v} A ${a} ${o} 0 ${T} 1 ${y} ${b} M ${x} ${S} A ${s} ${l} 0 ${T} 0 ${C} ${w}`, N || (P += ` L ${h} ${v}`)) : (P = `M ${h} ${v} A ${a} ${o} 0 ${T} 1 ${y} ${b} L ${x} ${S} A ${s} ${l} 0 ${T} 0 ${C} ${w}`, N || (P += " Z"));
807
807
  let F = "", I = "", L = "", R = "", z = "", B = "";
808
808
  u > 0 && (F = `M ${h} ${v} A ${a} ${o} 0 ${T} 1 ${y} ${b} L ${y} ${b + u} A ${a} ${o} 0 ${T} 0 ${h} ${v + u} Z`, I = `M ${C} ${w} A ${s} ${l} 0 ${T} 1 ${x} ${S} L ${x} ${S + u} A ${s} ${l} 0 ${T} 0 ${C} ${w + u} Z`, M ? (L = `M ${h} ${v} A ${a} ${o} 0 ${T} 1 ${y} ${b} M ${y} ${b + u} A ${a} ${o} 0 ${T} 0 ${h} ${v + u}`, N || (L += ` L ${h} ${v}`)) : (L = `M ${h} ${v} A ${a} ${o} 0 ${T} 1 ${y} ${b} L ${y} ${b + u} A ${a} ${o} 0 ${T} 0 ${h} ${v + u}`, N || (L += " Z")), M ? (R = `M ${C} ${w} A ${s} ${l} 0 ${T} 1 ${x} ${S} M ${x} ${S + u} A ${s} ${l} 0 ${T} 0 ${C} ${w + u}`, N || (R += ` L ${C} ${w}`)) : (R = `M ${C} ${w} A ${s} ${l} 0 ${T} 1 ${x} ${S} L ${x} ${S + u} A ${s} ${l} 0 ${T} 0 ${C} ${w + u}`, N || (R += " Z")), Math.abs(r - A) < .001 && (z = `M ${h} ${v} L ${C} ${w} L ${C} ${w + u} L ${h} ${v + u} Z`), Math.abs(p - j) < .001 && (B = `M ${y} ${b} L ${x} ${S} L ${x} ${S + u} L ${y} ${b + u} Z`));
809
- let ee = d + o * Math.sin(m), te = i + a * Math.cos(g), V = d + o * Math.sin(g), ne = i + (a + 25) * Math.cos(g), re = d + (o + 35 * c.slopeRatio) * Math.sin(g), ie = i + (a + s) / 2 * Math.cos(g), ae = d + (o + l) / 2 * Math.sin(g), oe = a - s, se = o - l;
809
+ let V = d + o * Math.sin(m), ee = i + a * Math.cos(g), H = d + o * Math.sin(g), te = i + (a + 25) * Math.cos(g), ne = d + (o + 35 * c.slopeRatio) * Math.sin(g), re = i + (a + s) / 2 * Math.cos(g), ie = d + (o + l) / 2 * Math.sin(g), ae = a - s, oe = o - l;
810
810
  n.push({
811
811
  item: e,
812
812
  index: f,
@@ -819,41 +819,41 @@ var N = {
819
819
  topStrokePath: P,
820
820
  outerWallStrokePath: L,
821
821
  innerWallStrokePath: R,
822
- midY: ee,
822
+ midY: V,
823
823
  topPath: E,
824
824
  outerWallPath: F,
825
825
  innerWallPath: I,
826
826
  startCutPath: z,
827
827
  endCutPath: B,
828
- x0: te,
829
- y0: V,
830
- x1: ne,
831
- y1: re,
832
- topGradX1: ie - oe / 2,
833
- topGradY1: ae - se / 2,
834
- topGradX2: ie + oe / 2,
835
- topGradY2: ae + se / 2,
836
- wallY1: V,
837
- wallY2: V + u
828
+ x0: ee,
829
+ y0: H,
830
+ x1: te,
831
+ y1: ne,
832
+ topGradX1: re - ae / 2,
833
+ topGradY1: ie - oe / 2,
834
+ topGradX2: re + ae / 2,
835
+ topGradY2: ie + oe / 2,
836
+ wallY1: H,
837
+ wallY2: H + u
838
838
  });
839
839
  }), r += p;
840
840
  }), n.sort((e, t) => {
841
- let n = w.value === e.item.id, r = w.value === t.item.id;
841
+ let n = C.value === e.item.id, r = C.value === t.item.id;
842
842
  return n && !r ? 1 : !n && r ? -1 : e.midY - t.midY;
843
843
  });
844
844
  }), rt = r(() => {
845
845
  let e = /* @__PURE__ */ new Set(), t = [];
846
- return nt.value.forEach((n) => {
846
+ return $.value.forEach((n) => {
847
847
  e.has(n.item.id) || (e.add(n.item.id), t.push(n));
848
848
  }), t;
849
- }), it = (e) => w.value === e.item.id ? { transform: `translate(${10 * Math.cos(e.originalMidAngle)}px, ${10 * Math.sin(e.originalMidAngle)}px)` } : {}, at = r(() => {
850
- if ($.value <= .001) return {
849
+ }), it = (e) => C.value === e.item.id ? { transform: `translate(${10 * Math.cos(e.originalMidAngle)}px, ${10 * Math.sin(e.originalMidAngle)}px)` } : {}, at = r(() => {
850
+ if (Q.value <= .001) return {
851
851
  left: [],
852
852
  right: []
853
853
  };
854
854
  let e = [], t = [];
855
855
  return rt.value.forEach((n) => {
856
- let r = Math.cos(n.originalMidAngle) < 0, i = Math.sin(n.originalMidAngle) > 0, a = Q.value, o = n.y0 + (i ? a : 0), s = n.y1 + (i ? a : 0), c = {
856
+ let r = Math.cos(n.originalMidAngle) < 0, i = Math.sin(n.originalMidAngle) > 0, a = Z.value, o = n.y0 + (i ? a : 0), s = n.y1 + (i ? a : 0), c = {
857
857
  item: n.item,
858
858
  index: n.index,
859
859
  color: n.color,
@@ -872,12 +872,12 @@ var N = {
872
872
  right: t
873
873
  };
874
874
  }), ot = r(() => at.value.left), st = r(() => at.value.right), ct = (e) => {
875
- let t = w.value === e.item.id, n = e.x0, r = e.y0, i = e.finalY;
875
+ let t = C.value === e.item.id, n = e.x0, r = e.y0, i = e.finalY;
876
876
  if (t) {
877
877
  let t = 10 * Math.cos(e.originalMidAngle || 0), a = 10 * Math.sin(e.originalMidAngle || 0);
878
878
  n += t, r += a, i -= 5;
879
879
  }
880
- let a = n + 30 * Math.cos(e.originalMidAngle || 0), o = r + 30 * Math.sin(e.originalMidAngle || 0), s = e.isLeft, c = Math.sin(e.originalMidAngle || 0) < 0, l = K.value, u = J.value, d = s ? l - u - 15 : l + u + 15, f = s ? Math.min(d, a - 30) : Math.max(d, a + 30);
880
+ let a = n + 30 * Math.cos(e.originalMidAngle || 0), o = r + 30 * Math.sin(e.originalMidAngle || 0), s = e.isLeft, c = Math.sin(e.originalMidAngle || 0) < 0, l = G.value, u = q.value, d = s ? l - u - 15 : l + u + 15, f = s ? Math.min(d, a - 30) : Math.max(d, a + 30);
881
881
  return `M ${n} ${r} C ${a} ${o}, ${f} ${c ? Math.min(o, i) : Math.max(o, i)}, ${s ? 90 : 670} ${i}`;
882
882
  }, lt = (e = 450) => {
883
883
  if (c.currentLowFxMode || c.immediate) {
@@ -885,94 +885,94 @@ var N = {
885
885
  e.value = e.targetValue, e.percentage = e.targetPercentage === void 0 ? 0 : e.targetPercentage;
886
886
  }), A.value = A.value.filter((e) => e.targetValue > 0), U.value = qe.value;
887
887
  let e = c.is3D;
888
- K.value = c.isExpanded ? 380 : 60, q.value = c.isExpanded ? 160 : 60, J.value = c.isExpanded ? 180 : 48, Y.value = c.isExpanded ? e ? 180 * c.slopeRatio : 180 : e ? 48 * c.slopeRatio : 48, X.value = c.isExpanded ? 180 * (1 - c.thickness) : 48 * (1 - c.thickness), Z.value = c.isExpanded ? e ? 180 * (1 - c.thickness) * c.slopeRatio : 180 * (1 - c.thickness) : e ? 48 * (1 - c.thickness) * c.slopeRatio : 48 * (1 - c.thickness);
888
+ G.value = c.isExpanded ? 380 : 60, K.value = c.isExpanded ? 160 : 60, q.value = c.isExpanded ? 180 : 48, J.value = c.isExpanded ? e ? 180 * c.slopeRatio : 180 : e ? 48 * c.slopeRatio : 48, Y.value = c.isExpanded ? 180 * (1 - c.thickness) : 48 * (1 - c.thickness), X.value = c.isExpanded ? e ? 180 * (1 - c.thickness) * c.slopeRatio : 180 * (1 - c.thickness) : e ? 48 * (1 - c.thickness) * c.slopeRatio : 48 * (1 - c.thickness);
889
889
  let t = c.isExpanded && e ? 32 : 0;
890
- Q.value = e && c.slopeRatio > .5 ? t * (2 - 2 * c.slopeRatio) : t, Ze.value = c.isExpanded ? 760 : 120, Qe.value = c.isExpanded ? 320 : 120, $.value = c.isExpanded && c.showLabels ? 1 : 0, W.value = !1;
890
+ Z.value = e && c.slopeRatio > .5 ? t * (2 - 2 * c.slopeRatio) : t, Qe.value = c.isExpanded ? 760 : 120, $e.value = c.isExpanded ? 320 : 120, Q.value = c.isExpanded && c.showLabels ? 1 : 0, Je.value = !1;
891
891
  return;
892
892
  }
893
- g && cancelAnimationFrame(g), W.value = !0;
894
- let t = performance.now(), n = U.value, r = qe.value, i = K.value, a = q.value, o = J.value, s = Y.value, l = X.value, u = Z.value, d = Q.value, f = Ze.value, p = Qe.value, m = $.value, h = c.is3D, _ = c.isExpanded ? 380 : 60, v = c.isExpanded ? 160 : 60, y = c.isExpanded ? 180 : 48, b = c.isExpanded ? h ? 180 * c.slopeRatio : 180 : h ? 48 * c.slopeRatio : 48, x = c.isExpanded ? 180 * (1 - c.thickness) : 48 * (1 - c.thickness), S = c.isExpanded ? h ? 180 * (1 - c.thickness) * c.slopeRatio : 180 * (1 - c.thickness) : h ? 48 * (1 - c.thickness) * c.slopeRatio : 48 * (1 - c.thickness), C = c.isExpanded && h ? 32 : 0, w = h && c.slopeRatio > .5 ? C * (2 - 2 * c.slopeRatio) : C, T = c.isExpanded ? 760 : 120, E = c.isExpanded ? 320 : 120, D = c.isExpanded && c.showLabels ? 1 : 0, O = (c) => {
895
- let h = c - t, C = Math.min(1, h / e), k = 1 - (1 - C) ** 3;
893
+ u && cancelAnimationFrame(u), Je.value = !0;
894
+ let t = performance.now(), n = U.value, r = qe.value, i = G.value, a = K.value, o = q.value, s = J.value, l = Y.value, d = X.value, f = Z.value, p = Qe.value, m = $e.value, h = Q.value, g = c.is3D, _ = c.isExpanded ? 380 : 60, v = c.isExpanded ? 160 : 60, y = c.isExpanded ? 180 : 48, b = c.isExpanded ? g ? 180 * c.slopeRatio : 180 : g ? 48 * c.slopeRatio : 48, x = c.isExpanded ? 180 * (1 - c.thickness) : 48 * (1 - c.thickness), S = c.isExpanded ? g ? 180 * (1 - c.thickness) * c.slopeRatio : 180 * (1 - c.thickness) : g ? 48 * (1 - c.thickness) * c.slopeRatio : 48 * (1 - c.thickness), C = c.isExpanded && g ? 32 : 0, w = g && c.slopeRatio > .5 ? C * (2 - 2 * c.slopeRatio) : C, T = c.isExpanded ? 760 : 120, E = c.isExpanded ? 320 : 120, D = c.isExpanded && c.showLabels ? 1 : 0, O = (c) => {
895
+ let g = c - t, C = Math.min(1, g / e), k = 1 - (1 - C) ** 3;
896
896
  A.value.forEach((e) => {
897
897
  e.value = e.startValue + (e.targetValue - e.startValue) * k;
898
898
  let t = e.startPercentage === void 0 ? 0 : e.startPercentage, n = e.targetPercentage === void 0 ? 0 : e.targetPercentage;
899
899
  e.percentage = Math.round(t + (n - t) * k);
900
- }), U.value = n + (r - n) * k, K.value = i + (_ - i) * k, q.value = a + (v - a) * k, J.value = o + (y - o) * k, Y.value = s + (b - s) * k, X.value = l + (x - l) * k, Z.value = u + (S - u) * k, Q.value = d + (w - d) * k, Ze.value = f + (T - f) * k, Qe.value = p + (E - p) * k, $.value = m + (D - m) * k, C < 1 ? g = requestAnimationFrame(O) : (g = null, A.value.forEach((e) => {
900
+ }), U.value = n + (r - n) * k, G.value = i + (_ - i) * k, K.value = a + (v - a) * k, q.value = o + (y - o) * k, J.value = s + (b - s) * k, Y.value = l + (x - l) * k, X.value = d + (S - d) * k, Z.value = f + (w - f) * k, Qe.value = p + (T - p) * k, $e.value = m + (E - m) * k, Q.value = h + (D - h) * k, C < 1 ? u = requestAnimationFrame(O) : (u = null, A.value.forEach((e) => {
901
901
  e.value = e.targetValue, e.percentage = e.targetPercentage === void 0 ? 0 : e.targetPercentage;
902
- }), A.value = A.value.filter((e) => e.targetValue > 0), K.value = _, q.value = v, J.value = y, Y.value = b, X.value = x, Z.value = S, Q.value = w, Ze.value = T, Qe.value = E, $.value = D, W.value = !1);
902
+ }), A.value = A.value.filter((e) => e.targetValue > 0), G.value = _, K.value = v, q.value = y, J.value = b, Y.value = x, X.value = S, Z.value = w, Qe.value = T, $e.value = E, Q.value = D, Je.value = !1);
903
903
  };
904
- g = requestAnimationFrame(O);
904
+ u = requestAnimationFrame(O);
905
905
  }, ut = (e) => {
906
906
  if (e.isSingleSlice) return !0;
907
- let t = nt.value, n = -1;
907
+ let t = $.value, n = -1;
908
908
  for (let r = t.length - 1; r >= 0; r--) if (t[r].item.id === e.item.id) {
909
909
  n = r;
910
910
  break;
911
911
  }
912
912
  return t.indexOf(e) === n;
913
913
  };
914
- return C(B, (e) => {
914
+ return w(B, (e) => {
915
915
  let t = c.immediate || c.currentLowFxMode;
916
916
  Ge(e || [], t), t || lt();
917
917
  }, {
918
918
  deep: !0,
919
919
  immediate: !0
920
- }), C(() => c.rotationAngle, () => {
921
- Je.value = !0, Ye && clearTimeout(Ye), Ye = setTimeout(() => {
922
- Je.value = !1;
920
+ }), w(() => c.rotationAngle, () => {
921
+ Ye.value = !0, Xe && clearTimeout(Xe), Xe = setTimeout(() => {
922
+ Ye.value = !1;
923
923
  }, 100);
924
- }), C(qe, (e) => {
924
+ }), w(qe, (e) => {
925
925
  c.immediate || c.currentLowFxMode ? U.value = e : lt();
926
- }), C(() => c.isExpanded, () => {
927
- u(() => {
926
+ }), w(() => c.isExpanded, () => {
927
+ d(() => {
928
928
  lt();
929
929
  });
930
- }), C(() => c.is3D, () => {
931
- u(() => {
930
+ }), w(() => c.is3D, () => {
931
+ d(() => {
932
932
  lt();
933
933
  });
934
- }), C(() => c.showLabels, () => {
935
- u(() => {
934
+ }), w(() => c.showLabels, () => {
935
+ d(() => {
936
936
  lt();
937
937
  });
938
- }), C(() => c.slopeRatio, (e) => {
938
+ }), w(() => c.slopeRatio, (e) => {
939
939
  if (c.is3D) {
940
- Y.value = c.isExpanded ? 180 * e : 48;
940
+ J.value = c.isExpanded ? 180 * e : 48;
941
941
  let t = c.isExpanded ? 180 : 48, n = c.isExpanded ? 180 * e : 48;
942
- X.value = t * (1 - c.thickness), Z.value = n * (1 - c.thickness);
942
+ Y.value = t * (1 - c.thickness), X.value = n * (1 - c.thickness);
943
943
  let r = c.isExpanded ? 32 : 0;
944
- Q.value = e > .5 ? r * (2 - 2 * e) : r;
944
+ Z.value = e > .5 ? r * (2 - 2 * e) : r;
945
945
  }
946
- }), C(() => c.thickness, (e) => {
946
+ }), w(() => c.thickness, (e) => {
947
947
  let t = c.is3D, n = c.isExpanded ? 180 : 48, r = c.isExpanded ? t ? 180 * c.slopeRatio : 180 : t ? 48 * c.slopeRatio : 48;
948
- X.value = n * (1 - e), Z.value = r * (1 - e);
949
- }), C(() => c.hoveredItemId, (e) => {
950
- y.value !== e && (y.value = e);
951
- }), C(y, (e) => {
948
+ Y.value = n * (1 - e), X.value = r * (1 - e);
949
+ }), w(() => c.hoveredItemId, (e) => {
950
+ _.value !== e && (_.value = e);
951
+ }), w(_, (e) => {
952
952
  c.hoveredItemId !== e && l("update:hoveredItemId", e);
953
- }), p(() => {
954
- document.addEventListener("click", k), u(() => {
953
+ }), m(() => {
954
+ document.addEventListener("click", k), d(() => {
955
955
  lt();
956
956
  });
957
- }), m(() => {
958
- document.removeEventListener("click", k), g && cancelAnimationFrame(g);
957
+ }), h(() => {
958
+ document.removeEventListener("click", k), u && cancelAnimationFrame(u);
959
959
  }), n({ redraw: () => {
960
- g && cancelAnimationFrame(g), g = null, A.value.forEach((e) => {
960
+ u && cancelAnimationFrame(u), u = null, A.value.forEach((e) => {
961
961
  e.value = e.targetValue;
962
962
  }), A.value = A.value.filter((e) => e.targetValue > 0);
963
- } }), (n, r) => (h(), o("div", {
963
+ } }), (n, r) => (g(), o("div", {
964
964
  ref_key: "wrapperRef",
965
965
  ref: O,
966
- class: d(["donut-canvas-wrapper", {
966
+ class: f(["donut-canvas-wrapper", {
967
967
  "is-expanded": t.isExpanded,
968
- "no-transitions": W.value || Je.value
968
+ "no-transitions": Je.value || Ye.value || t.immediate
969
969
  }])
970
- }, [(h(), o("svg", {
971
- viewBox: `0 0 ${Ze.value} ${Qe.value}`,
970
+ }, [(g(), o("svg", {
971
+ viewBox: `0 0 ${Qe.value} ${$e.value}`,
972
972
  class: "items-svg-chart",
973
973
  xmlns: "http://www.w3.org/2000/svg"
974
- }, [B.value && B.value.length > 0 ? (h(), o("defs", te, [
975
- (h(!0), o(e, null, v(rt.value, (e) => (h(), o("linearGradient", {
974
+ }, [B.value && B.value.length > 0 ? (g(), o("defs", H, [
975
+ (g(!0), o(e, null, y(rt.value, (e) => (g(), o("linearGradient", {
976
976
  key: "top-grad-" + z(e.item.id),
977
977
  id: "top-grad-" + z(e.item.id),
978
978
  gradientUnits: "userSpaceOnUse",
@@ -986,8 +986,8 @@ var N = {
986
986
  }, null, 8, ne), s("stop", {
987
987
  offset: "100%",
988
988
  "stop-color": N(e.color, .85)
989
- }, null, 8, re)], 8, V))), 128)),
990
- (h(!0), o(e, null, v(rt.value, (e) => (h(), o("linearGradient", {
989
+ }, null, 8, re)], 8, te))), 128)),
990
+ (g(!0), o(e, null, y(rt.value, (e) => (g(), o("linearGradient", {
991
991
  key: "outer-grad-" + z(e.item.id),
992
992
  id: "outer-grad-" + z(e.item.id),
993
993
  gradientUnits: "userSpaceOnUse",
@@ -1002,7 +1002,7 @@ var N = {
1002
1002
  offset: "100%",
1003
1003
  "stop-color": N(e.color, .5)
1004
1004
  }, null, 8, oe)], 8, ie))), 128)),
1005
- (h(!0), o(e, null, v(rt.value, (e) => (h(), o("linearGradient", {
1005
+ (g(!0), o(e, null, y(rt.value, (e) => (g(), o("linearGradient", {
1006
1006
  key: "inner-grad-" + z(e.item.id),
1007
1007
  id: "inner-grad-" + z(e.item.id),
1008
1008
  gradientUnits: "userSpaceOnUse",
@@ -1017,7 +1017,7 @@ var N = {
1017
1017
  offset: "100%",
1018
1018
  "stop-color": N(e.color, .4)
1019
1019
  }, null, 8, le)], 8, se))), 128))
1020
- ])) : a("", !0), !B.value || B.value.length === 0 ? (h(), o("g", ue, [s("text", {
1020
+ ])) : a("", !0), !B.value || B.value.length === 0 ? (g(), o("g", ue, [s("text", {
1021
1021
  x: t.isExpanded ? 380 : 60,
1022
1022
  y: t.isExpanded ? 160 : 60,
1023
1023
  fill: "#64748b",
@@ -1025,21 +1025,21 @@ var N = {
1025
1025
  "font-family": "system-ui, -apple-system, sans-serif",
1026
1026
  "text-anchor": "middle",
1027
1027
  "dominant-baseline": "middle"
1028
- }, x(t.emptyText || "No data"), 9, de)])) : (h(), o("g", fe, [
1029
- (h(!0), o(e, null, v(nt.value.filter((e) => e.midY < tt.value), (e) => (h(), o("g", {
1028
+ }, S(t.emptyText || "No data"), 9, de)])) : (g(), o("g", fe, [
1029
+ (g(!0), o(e, null, y($.value.filter((e) => e.midY < nt.value), (e) => (g(), o("g", {
1030
1030
  key: "slice-sub-back-" + e.item.id + "-" + e.midAngle,
1031
- class: d(["slice-group-3d", {
1032
- "is-hovered": w.value === e.item.id,
1033
- "is-dimmed": w.value !== null && w.value !== e.item.id
1031
+ class: f(["slice-group-3d", {
1032
+ "is-hovered": C.value === e.item.id,
1033
+ "is-dimmed": C.value !== null && C.value !== e.item.id
1034
1034
  }]),
1035
- style: f(it(e))
1035
+ style: p(it(e))
1036
1036
  }, [
1037
- t.isExpanded && e.innerWallPath ? (h(), o("path", {
1037
+ t.isExpanded && e.innerWallPath ? (g(), o("path", {
1038
1038
  key: 0,
1039
1039
  d: e.innerWallPath,
1040
1040
  fill: `url(#inner-grad-${z(e.item.id)})`
1041
1041
  }, null, 8, pe)) : a("", !0),
1042
- t.isExpanded && e.innerWallStrokePath ? (h(), o("path", {
1042
+ t.isExpanded && e.innerWallStrokePath ? (g(), o("path", {
1043
1043
  key: 1,
1044
1044
  d: e.innerWallStrokePath,
1045
1045
  fill: "none",
@@ -1047,22 +1047,22 @@ var N = {
1047
1047
  "stroke-width": "0.8",
1048
1048
  "stroke-linejoin": "round"
1049
1049
  }, null, 8, me)) : a("", !0),
1050
- t.isExpanded && e.startCutPath ? (h(), o("path", {
1050
+ t.isExpanded && e.startCutPath ? (g(), o("path", {
1051
1051
  key: 2,
1052
1052
  d: e.startCutPath,
1053
1053
  fill: N(e.color, .65)
1054
1054
  }, null, 8, he)) : a("", !0),
1055
- t.isExpanded && e.endCutPath ? (h(), o("path", {
1055
+ t.isExpanded && e.endCutPath ? (g(), o("path", {
1056
1056
  key: 3,
1057
1057
  d: e.endCutPath,
1058
1058
  fill: N(e.color, .75)
1059
1059
  }, null, 8, ge)) : a("", !0),
1060
- t.isExpanded && e.outerWallPath ? (h(), o("path", {
1060
+ t.isExpanded && e.outerWallPath ? (g(), o("path", {
1061
1061
  key: 4,
1062
1062
  d: e.outerWallPath,
1063
1063
  fill: `url(#outer-grad-${z(e.item.id)})`
1064
1064
  }, null, 8, _e)) : a("", !0),
1065
- t.isExpanded && e.outerWallStrokePath ? (h(), o("path", {
1065
+ t.isExpanded && e.outerWallStrokePath ? (g(), o("path", {
1066
1066
  key: 5,
1067
1067
  d: e.outerWallStrokePath,
1068
1068
  fill: "none",
@@ -1070,12 +1070,12 @@ var N = {
1070
1070
  "stroke-width": "0.8",
1071
1071
  "stroke-linejoin": "round"
1072
1072
  }, null, 8, ve)) : a("", !0),
1073
- ut(e) ? (h(), o("path", {
1073
+ ut(e) ? (g(), o("path", {
1074
1074
  key: 6,
1075
1075
  d: e.originalTopPath,
1076
1076
  fill: `url(#top-grad-${z(e.item.id)})`
1077
1077
  }, null, 8, ye)) : a("", !0),
1078
- ut(e) ? (h(), o("path", {
1078
+ ut(e) ? (g(), o("path", {
1079
1079
  key: 7,
1080
1080
  d: e.topStrokePath,
1081
1081
  fill: "none",
@@ -1083,7 +1083,7 @@ var N = {
1083
1083
  "stroke-width": "0.8",
1084
1084
  "stroke-linejoin": "round"
1085
1085
  }, null, 8, be)) : a("", !0),
1086
- ut(e) ? (h(), o("path", {
1086
+ ut(e) ? (g(), o("path", {
1087
1087
  key: 8,
1088
1088
  d: e.topStrokePath,
1089
1089
  fill: "none",
@@ -1092,43 +1092,43 @@ var N = {
1092
1092
  "stroke-linejoin": "round"
1093
1093
  }, null, 8, xe)) : a("", !0)
1094
1094
  ], 6))), 128)),
1095
- c.showCenterText ? (h(), o("g", {
1095
+ c.showCenterText ? (g(), o("g", {
1096
1096
  key: 0,
1097
- transform: `translate(${K.value}, ${q.value})`,
1097
+ transform: `translate(${G.value}, ${K.value})`,
1098
1098
  class: "center-text-group"
1099
1099
  }, [s("text", {
1100
1100
  x: "0",
1101
1101
  y: "-3",
1102
1102
  class: "center-text-value",
1103
- "font-size": $e.value,
1103
+ "font-size": et.value,
1104
1104
  "font-weight": "bold",
1105
1105
  "font-family": "'JetBrains Mono', monospace",
1106
1106
  "text-anchor": "middle",
1107
1107
  "dominant-baseline": "middle"
1108
- }, x(Ue.value), 9, Ce), s("text", {
1108
+ }, S(Ue.value), 9, Ce), s("text", {
1109
1109
  x: "0",
1110
1110
  y: "10",
1111
1111
  class: "center-text-label",
1112
- "font-size": et.value,
1112
+ "font-size": tt.value,
1113
1113
  "font-family": "system-ui, -apple-system, sans-serif",
1114
1114
  "font-weight": "600",
1115
1115
  "text-anchor": "middle",
1116
1116
  "dominant-baseline": "middle"
1117
- }, x(We.value), 9, we)], 8, Se)) : a("", !0),
1118
- (h(!0), o(e, null, v(nt.value.filter((e) => e.midY >= tt.value), (e) => (h(), o("g", {
1117
+ }, S(We.value), 9, we)], 8, Se)) : a("", !0),
1118
+ (g(!0), o(e, null, y($.value.filter((e) => e.midY >= nt.value), (e) => (g(), o("g", {
1119
1119
  key: "slice-sub-front-" + e.item.id + "-" + e.midAngle,
1120
- class: d(["slice-group-3d", {
1121
- "is-hovered": w.value === e.item.id,
1122
- "is-dimmed": w.value !== null && w.value !== e.item.id
1120
+ class: f(["slice-group-3d", {
1121
+ "is-hovered": C.value === e.item.id,
1122
+ "is-dimmed": C.value !== null && C.value !== e.item.id
1123
1123
  }]),
1124
- style: f(it(e))
1124
+ style: p(it(e))
1125
1125
  }, [
1126
- t.isExpanded && e.innerWallPath ? (h(), o("path", {
1126
+ t.isExpanded && e.innerWallPath ? (g(), o("path", {
1127
1127
  key: 0,
1128
1128
  d: e.innerWallPath,
1129
1129
  fill: `url(#inner-grad-${z(e.item.id)})`
1130
1130
  }, null, 8, Te)) : a("", !0),
1131
- t.isExpanded && e.innerWallStrokePath ? (h(), o("path", {
1131
+ t.isExpanded && e.innerWallStrokePath ? (g(), o("path", {
1132
1132
  key: 1,
1133
1133
  d: e.innerWallStrokePath,
1134
1134
  fill: "none",
@@ -1136,22 +1136,22 @@ var N = {
1136
1136
  "stroke-width": "0.8",
1137
1137
  "stroke-linejoin": "round"
1138
1138
  }, null, 8, Ee)) : a("", !0),
1139
- t.isExpanded && e.startCutPath ? (h(), o("path", {
1139
+ t.isExpanded && e.startCutPath ? (g(), o("path", {
1140
1140
  key: 2,
1141
1141
  d: e.startCutPath,
1142
1142
  fill: N(e.color, .65)
1143
1143
  }, null, 8, De)) : a("", !0),
1144
- t.isExpanded && e.endCutPath ? (h(), o("path", {
1144
+ t.isExpanded && e.endCutPath ? (g(), o("path", {
1145
1145
  key: 3,
1146
1146
  d: e.endCutPath,
1147
1147
  fill: N(e.color, .75)
1148
1148
  }, null, 8, Oe)) : a("", !0),
1149
- t.isExpanded && e.outerWallPath ? (h(), o("path", {
1149
+ t.isExpanded && e.outerWallPath ? (g(), o("path", {
1150
1150
  key: 4,
1151
1151
  d: e.outerWallPath,
1152
1152
  fill: `url(#outer-grad-${z(e.item.id)})`
1153
1153
  }, null, 8, ke)) : a("", !0),
1154
- t.isExpanded && e.outerWallStrokePath ? (h(), o("path", {
1154
+ t.isExpanded && e.outerWallStrokePath ? (g(), o("path", {
1155
1155
  key: 5,
1156
1156
  d: e.outerWallStrokePath,
1157
1157
  fill: "none",
@@ -1159,12 +1159,12 @@ var N = {
1159
1159
  "stroke-width": "0.8",
1160
1160
  "stroke-linejoin": "round"
1161
1161
  }, null, 8, Ae)) : a("", !0),
1162
- ut(e) ? (h(), o("path", {
1162
+ ut(e) ? (g(), o("path", {
1163
1163
  key: 6,
1164
1164
  d: e.originalTopPath,
1165
1165
  fill: `url(#top-grad-${z(e.item.id)})`
1166
1166
  }, null, 8, je)) : a("", !0),
1167
- ut(e) ? (h(), o("path", {
1167
+ ut(e) ? (g(), o("path", {
1168
1168
  key: 7,
1169
1169
  d: e.topStrokePath,
1170
1170
  fill: "none",
@@ -1172,7 +1172,7 @@ var N = {
1172
1172
  "stroke-width": "0.8",
1173
1173
  "stroke-linejoin": "round"
1174
1174
  }, null, 8, Me)) : a("", !0),
1175
- ut(e) ? (h(), o("path", {
1175
+ ut(e) ? (g(), o("path", {
1176
1176
  key: 8,
1177
1177
  d: e.topStrokePath,
1178
1178
  fill: "none",
@@ -1181,37 +1181,37 @@ var N = {
1181
1181
  "stroke-linejoin": "round"
1182
1182
  }, null, 8, Ne)) : a("", !0)
1183
1183
  ], 6))), 128)),
1184
- (h(!0), o(e, null, v(rt.value, (e) => (h(), o("g", {
1184
+ (g(!0), o(e, null, y(rt.value, (e) => (g(), o("g", {
1185
1185
  key: "hover-trigger-" + e.item.id,
1186
1186
  class: "hover-trigger-group",
1187
- style: f({ cursor: c.selectable && !j.value ? "pointer" : "default" }),
1187
+ style: p({ cursor: c.selectable && !j.value ? "pointer" : "default" }),
1188
1188
  onMouseenter: (t) => D(e.item.id),
1189
- onMouseleave: r[0] ||= (e) => y.value = null,
1189
+ onMouseleave: r[0] ||= (e) => _.value = null,
1190
1190
  onClick: (t) => E(e.item.id)
1191
1191
  }, [s("path", {
1192
1192
  d: e.hoverPath || e.originalTopPath,
1193
1193
  fill: "transparent"
1194
- }, null, 8, Fe), e.originalOuterWallPath ? (h(), o("path", {
1194
+ }, null, 8, Fe), e.originalOuterWallPath ? (g(), o("path", {
1195
1195
  key: 0,
1196
1196
  d: e.originalOuterWallPath,
1197
1197
  fill: "transparent"
1198
1198
  }, null, 8, Ie)) : a("", !0)], 44, Pe))), 128)),
1199
1199
  s("g", {
1200
1200
  class: "labels-layer",
1201
- style: f({
1202
- opacity: $.value,
1203
- pointerEvents: $.value > .01 ? "auto" : "none"
1201
+ style: p({
1202
+ opacity: Q.value,
1203
+ pointerEvents: Q.value > .01 ? "auto" : "none"
1204
1204
  })
1205
- }, [(h(!0), o(e, null, v(ot.value, (e, t) => (h(), o("g", {
1205
+ }, [(g(!0), o(e, null, y(ot.value, (e, t) => (g(), o("g", {
1206
1206
  key: "label-left-" + e.item.id,
1207
- class: d(["label-group", {
1208
- "is-hovered": w.value === e.item.id,
1209
- "is-dimmed": w.value !== null && w.value !== e.item.id
1207
+ class: f(["label-group", {
1208
+ "is-hovered": C.value === e.item.id,
1209
+ "is-dimmed": C.value !== null && C.value !== e.item.id
1210
1210
  }]),
1211
1211
  onMouseenter: (t) => D(e.item.id),
1212
- onMouseleave: r[1] ||= (e) => y.value = null,
1212
+ onMouseleave: r[1] ||= (e) => _.value = null,
1213
1213
  onClick: (t) => E(e.item.id),
1214
- style: f({ cursor: c.selectable && !j.value ? "pointer" : "default" })
1214
+ style: p({ cursor: c.selectable && !j.value ? "pointer" : "default" })
1215
1215
  }, [s("path", {
1216
1216
  d: ct(e),
1217
1217
  fill: "none",
@@ -1226,17 +1226,17 @@ var N = {
1226
1226
  "font-family": "system-ui, -apple-system, sans-serif",
1227
1227
  "text-anchor": "end",
1228
1228
  "dominant-baseline": "middle",
1229
- style: f(w.value === e.item.id ? "transform: translate(0, -5px);" : "")
1230
- }, x(R(e.item.name, 24)) + " " + x(L(e.item.value)) + " " + x(e.item.unit || "") + " (" + x(e.item.percentage) + "%) ", 13, ze)], 46, Le))), 128)), (h(!0), o(e, null, v(st.value, (e, t) => (h(), o("g", {
1229
+ style: p(C.value === e.item.id ? "transform: translate(0, -5px);" : "")
1230
+ }, S(R(e.item.name, 24)) + " " + S(L(e.item.value)) + " " + S(e.item.unit || "") + " (" + S(e.item.percentage) + "%) ", 13, ze)], 46, Le))), 128)), (g(!0), o(e, null, y(st.value, (e, t) => (g(), o("g", {
1231
1231
  key: "label-right-" + e.item.id,
1232
- class: d(["label-group", {
1233
- "is-hovered": w.value === e.item.id,
1234
- "is-dimmed": w.value !== null && w.value !== e.item.id
1232
+ class: f(["label-group", {
1233
+ "is-hovered": C.value === e.item.id,
1234
+ "is-dimmed": C.value !== null && C.value !== e.item.id
1235
1235
  }]),
1236
1236
  onMouseenter: (t) => D(e.item.id),
1237
- onMouseleave: r[2] ||= (e) => y.value = null,
1237
+ onMouseleave: r[2] ||= (e) => _.value = null,
1238
1238
  onClick: (t) => E(e.item.id),
1239
- style: f({ cursor: c.selectable && !j.value ? "pointer" : "default" })
1239
+ style: p({ cursor: c.selectable && !j.value ? "pointer" : "default" })
1240
1240
  }, [s("path", {
1241
1241
  d: ct(e),
1242
1242
  fill: "none",
@@ -1251,22 +1251,22 @@ var N = {
1251
1251
  "font-family": "system-ui, -apple-system, sans-serif",
1252
1252
  "text-anchor": "start",
1253
1253
  "dominant-baseline": "middle",
1254
- style: f(w.value === e.item.id ? "transform: translate(0, -5px);" : "")
1255
- }, x(R(e.item.name, 24)) + " " + x(L(e.item.value)) + " " + x(e.item.unit || "") + " (" + x(e.item.percentage) + "%) ", 13, He)], 46, Be))), 128))], 4)
1254
+ style: p(C.value === e.item.id ? "transform: translate(0, -5px);" : "")
1255
+ }, S(R(e.item.name, 24)) + " " + S(L(e.item.value)) + " " + S(e.item.unit || "") + " (" + S(e.item.percentage) + "%) ", 13, He)], 46, Be))), 128))], 4)
1256
1256
  ]))], 8, ee))], 2));
1257
1257
  }
1258
- }, [["__scopeId", "data-v-a055ea0b"]]), Ue = { class: "nano-scrub-label" }, We = {
1258
+ }, [["__scopeId", "data-v-f4b6c80f"]]), We = { class: "nano-scrub-label" }, Ge = {
1259
1259
  key: 0,
1260
1260
  class: "nano-scrub-overlay"
1261
- }, Ge = {
1261
+ }, Ke = {
1262
1262
  key: 1,
1263
1263
  class: "nano-scrub-svg-line"
1264
- }, Ke = [
1264
+ }, qe = [
1265
1265
  "x1",
1266
1266
  "y1",
1267
1267
  "x2",
1268
1268
  "y2"
1269
- ], qe = { class: "nano-scrub-popup-val" }, U = { class: "nano-scrub-popup-res" }, W = /* @__PURE__ */ P({
1269
+ ], U = { class: "nano-scrub-popup-val" }, Je = { class: "nano-scrub-popup-res" }, Ye = /* @__PURE__ */ F(/* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
1270
1270
  __name: "PrecisionScrubber",
1271
1271
  props: {
1272
1272
  modelValue: {
@@ -1292,91 +1292,96 @@ var N = {
1292
1292
  },
1293
1293
  emits: ["update:modelValue"],
1294
1294
  setup(n, { emit: c }) {
1295
- let l = n, u = c, d = _(null), p = _(!1), m = _(!1), g = _(0), v = _(0), y = _(0), b = _(0), S = _(0), C = _(0), w = _(0), T = _(""), E = _({
1295
+ let l = n, d = c, f = v(null), m = v(!1), h = v(!1), _ = v(0), y = v(0), b = v(0), x = v(0), C = v(0), w = v(0), T = v(0), E = v(""), D = v({
1296
1296
  left: 0,
1297
1297
  width: 0
1298
- }), D = r(() => {
1298
+ }), O = r(() => {
1299
1299
  let e = l.max - l.min;
1300
1300
  return e <= 0 ? 0 : (l.modelValue - l.min) / e * 100;
1301
- }), O = r(() => l.formatValue(l.modelValue)), k = (e) => {
1301
+ }), k = r(() => l.formatValue(l.modelValue)), A = (e) => {
1302
1302
  if (e.button !== 0 || l.max - l.min <= 0) return;
1303
- p.value = !0, m.value = !1;
1303
+ m.value = !0, h.value = !1;
1304
1304
  let t = e.currentTarget.getBoundingClientRect();
1305
- E.value = {
1305
+ D.value = {
1306
1306
  left: t.left,
1307
- width: t.width
1307
+ width: t.width,
1308
+ top: t.top,
1309
+ bottom: t.bottom,
1310
+ height: t.height
1308
1311
  };
1309
1312
  let n = e.clientX;
1310
- g.value = n, v.value = l.modelValue, S.value = l.modelValue, y.value = n, b.value = e.clientY, C.value = n, w.value = e.clientY, T.value = "Coarse (Full range)", document.addEventListener("mousemove", A), document.addEventListener("mouseup", j), e.preventDefault();
1311
- }, A = (e) => {
1312
- if (!p.value) return;
1313
- C.value = e.clientX, w.value = e.clientY;
1314
- let t = e.clientY - b.value, n = Math.abs(t), r = l.max - l.min;
1315
- if (!(r <= 0)) if (!m.value && n >= 15 && (m.value = !0, y.value = e.clientX, Math.abs(e.clientX - g.value) < 8 ? S.value = v.value : S.value = l.modelValue), m.value) {
1316
- let e = Math.max(0, Math.abs(t) - 15), n = .25, r = 1.08, i = e + (r ** +e - 1), a = Math.round(-Math.sign(t) * n * i), o = S.value + a;
1317
- o > l.max && (o = l.max), o < l.min && (o = l.min), u("update:modelValue", o);
1318
- let s = n * (1 + r ** +e * Math.log(r));
1319
- s >= 1e9 ? T.value = `Coarse (±${M(Math.round(s))} / px)` : s >= 1e6 ? T.value = `Medium (±${M(Math.round(s))} / px)` : s >= 1 ? T.value = `Fine (±${M(Math.round(s))} / px)` : T.value = `Ultra-Fine (±1 index per ${Math.round(1 / s)}px)`;
1313
+ _.value = n, y.value = l.modelValue, C.value = l.modelValue, b.value = n, x.value = e.clientY, w.value = n, T.value = e.clientY, E.value = "Coarse (Full range)", document.addEventListener("mousemove", j), document.addEventListener("mouseup", M), e.preventDefault();
1314
+ }, j = (e) => {
1315
+ if (!m.value) return;
1316
+ w.value = e.clientX, T.value = e.clientY;
1317
+ let t = l.max - l.min;
1318
+ if (t <= 0) return;
1319
+ let n = D.value, r = 0, i = !1;
1320
+ if (e.clientY < n.top ? (i = !0, r = n.top - e.clientY) : e.clientY > n.bottom && (i = !0, r = e.clientY - n.bottom), !h.value && i && (h.value = !0, b.value = e.clientX, x.value = e.clientY > n.bottom ? n.bottom : n.top, Math.abs(e.clientX - _.value) < 8 ? C.value = y.value : C.value = l.modelValue), h.value) {
1321
+ let t = r, i = .25, a = 1.08, o = t + (a ** +t - 1), s = e.clientY < n.top ? -1 : 1, c = Math.round(-s * i * o), u = C.value + c;
1322
+ u > l.max && (u = l.max), u < l.min && (u = l.min), d("update:modelValue", u);
1323
+ let f = i * (1 + a ** +t * Math.log(a));
1324
+ f >= 1e9 ? E.value = `Coarse (±${N(Math.round(f))} / px)` : f >= 1e6 ? E.value = `Medium (±${N(Math.round(f))} / px)` : f >= 1 ? E.value = `Fine (±${N(Math.round(f))} / px)` : E.value = `Ultra-Fine (±1 index per ${Math.round(1 / f)}px)`;
1320
1325
  } else {
1321
- let t = E.value, n = t.width - 16, i = Math.min(1, Math.max(0, (e.clientX - t.left - 8) / n));
1322
- u("update:modelValue", l.min + Math.round(i * r)), T.value = "Coarse (Full range)";
1326
+ let r = n.width - 16, i = Math.min(1, Math.max(0, (e.clientX - n.left - 8) / r));
1327
+ d("update:modelValue", l.min + Math.round(i * t)), E.value = "Coarse (Full range)";
1323
1328
  }
1324
- }, j = (e) => {
1325
- if (p.value && !m.value) {
1329
+ }, M = (e) => {
1330
+ if (m.value && !h.value) {
1326
1331
  let t = l.max - l.min;
1327
- if (t > 0 && E.value.width > 0) {
1328
- let n = E.value, r = n.width - 16, i = Math.min(1, Math.max(0, (e.clientX - n.left - 8) / r));
1329
- u("update:modelValue", l.min + Math.round(i * t));
1332
+ if (t > 0 && D.value.width > 0) {
1333
+ let n = D.value, r = n.width - 16, i = Math.min(1, Math.max(0, (e.clientX - n.left - 8) / r));
1334
+ d("update:modelValue", l.min + Math.round(i * t));
1330
1335
  }
1331
1336
  }
1332
- p.value = !1, document.removeEventListener("mousemove", A), document.removeEventListener("mouseup", j);
1333
- }, M = (e) => String(e).replace(/\B(?=(\d{3})+(?!\d))/g, " ");
1334
- return (r, c) => (h(), o(e, null, [s("div", {
1337
+ m.value = !1, document.removeEventListener("mousemove", j), document.removeEventListener("mouseup", M);
1338
+ }, N = (e) => String(e).replace(/\B(?=(\d{3})+(?!\d))/g, " ");
1339
+ return (r, c) => (g(), o(e, null, [s("div", u({
1335
1340
  class: "nano-scrub-track",
1336
- onMousedown: k,
1341
+ onMousedown: A,
1337
1342
  ref_key: "trackRef",
1338
- ref: d
1339
- }, [s("div", {
1343
+ ref: f
1344
+ }, r.$attrs), [s("div", {
1340
1345
  class: "nano-scrub-progress",
1341
- style: f({ width: D.value + "%" })
1342
- }, null, 4), s("span", Ue, x(n.label), 1)], 544), (h(), i(t, { to: "body" }, [p.value ? (h(), o("div", We, [
1343
- m.value ? (h(), o("div", {
1346
+ style: p({ width: O.value + "%" })
1347
+ }, null, 4), s("span", We, S(n.label), 1)], 16), (g(), i(t, { to: "body" }, [m.value ? (g(), o("div", Ge, [
1348
+ h.value ? (g(), o("div", {
1344
1349
  key: 0,
1345
1350
  class: "nano-scrub-anchor",
1346
- style: f({
1347
- left: y.value + "px",
1348
- top: b.value + "px"
1351
+ style: p({
1352
+ left: b.value + "px",
1353
+ top: x.value + "px"
1349
1354
  })
1350
1355
  }, null, 4)) : a("", !0),
1351
- m.value ? (h(), o("svg", Ge, [s("line", {
1352
- x1: y.value,
1353
- y1: b.value,
1354
- x2: C.value,
1355
- y2: w.value,
1356
+ h.value ? (g(), o("svg", Ke, [s("line", {
1357
+ x1: b.value,
1358
+ y1: x.value,
1359
+ x2: w.value,
1360
+ y2: T.value,
1356
1361
  stroke: "#00e5ff",
1357
1362
  "stroke-dasharray": "4,4",
1358
1363
  "stroke-width": "1.5",
1359
1364
  opacity: "0.6"
1360
- }, null, 8, Ke)])) : a("", !0),
1365
+ }, null, 8, qe)])) : a("", !0),
1361
1366
  s("div", {
1362
1367
  class: "nano-scrub-popup",
1363
- style: f({
1364
- left: C.value + 15 + "px",
1365
- top: w.value + 15 + "px"
1368
+ style: p({
1369
+ left: w.value + 15 + "px",
1370
+ top: T.value + 15 + "px"
1366
1371
  })
1367
1372
  }, [
1368
1373
  c[0] ||= s("div", { class: "nano-scrub-popup-title" }, "Scrubbing Mode", -1),
1369
- s("div", qe, x(O.value), 1),
1370
- s("div", U, x(T.value), 1)
1374
+ s("div", U, S(k.value), 1),
1375
+ s("div", Je, S(E.value), 1)
1371
1376
  ], 4)
1372
1377
  ])) : a("", !0)]))], 64));
1373
1378
  }
1374
- }, [["__scopeId", "data-v-5ed42841"]]);
1379
+ }), [["__scopeId", "data-v-429ba0d9"]]);
1375
1380
  //#endregion
1376
1381
  //#region src/index.js
1377
- O.init("nano-ui", "https://analytics.7u.pl");
1378
- var Je = { install(e) {
1379
- e.directive("ripple", k), e.directive("tooltip", N), e.component("GlobalTooltip", F), e.component("NanoModal", B), e.component("ThreeDDonutChart", H), e.component("PrecisionScrubber", W);
1382
+ k.init("nano-ui", "https://analytics.7u.pl");
1383
+ var Xe = { install(e) {
1384
+ e.directive("ripple", A), e.directive("tooltip", P), e.component("GlobalTooltip", I), e.component("NanoModal", V), e.component("ThreeDDonutChart", Ue), e.component("PrecisionScrubber", Ye);
1380
1385
  } };
1381
1386
  //#endregion
1382
- export { F as GlobalTooltip, B as NanoModal, W as PrecisionScrubber, k as Ripple, H as ThreeDDonutChart, Je as default, M as hideTooltip, j as showTooltip, N as tooltipDirective, A as tooltipState };
1387
+ export { I as GlobalTooltip, V as NanoModal, Ye as PrecisionScrubber, A as Ripple, Ue as ThreeDDonutChart, Xe as default, N as hideTooltip, M as showTooltip, P as tooltipDirective, j as tooltipState };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gkucmierz/nano-ui",
3
- "version": "1.5.0",
3
+ "version": "1.5.3",
4
4
  "license": "ISC",
5
5
  "description": "High-performance, minimal footprint Vue 3 UI library, interactive 3D charts, and directives.",
6
6
  "type": "module",