@alfadocs/ui-kit 1.42.0 → 1.44.0
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/_chunks/{calendar-ChJQzRw-.js → calendar-U6N0F99w.js} +383 -359
- package/dist/_chunks/calendar-workspace-DBYAtdyd.js +12161 -0
- package/dist/_chunks/control-room-rail-Cv7GpMqX.js +354 -0
- package/dist/_chunks/{face-scheme-Dg6ZyLKb.js → face-scheme-Bm6pe7R8.js} +265 -275
- package/dist/_chunks/help-me-write-templates-GUeEn3Ff.js +741 -0
- package/dist/_chunks/{marketplace-app-shell-D_g9BaDI.js → marketplace-app-shell-DdwPj03y.js} +3 -3
- package/dist/_chunks/{notes-panel-CRAovkjx.js → notes-panel-CY4KmDo-.js} +159 -152
- package/dist/_chunks/{panel-subview-PMBRPFOa.js → panel-subview-CYnuX-KR.js} +61 -40
- package/dist/_chunks/rich-text-editor-BYE6kK4u.js +3839 -0
- package/dist/_chunks/{sidebar-ClTY9lLI.js → sidebar-DbZXLl8h.js} +2 -2
- package/dist/_chunks/tab-bar-Cw9UK18Z.js +228 -0
- package/dist/_chunks/{tool-rail-D89USYE6.js → tool-rail-CCFqDfAn.js} +282 -276
- package/dist/_chunks/undo-2-CYNAzclj.js +26 -0
- package/dist/_chunks/use-edge-resize-BHesP0kg.js +149 -0
- package/dist/_chunks/use-scroll-overflow-UbLrUfBo.js +72 -0
- package/dist/_chunks/variables-menu-vXUaSBj4.js +401 -0
- package/dist/agent-catalog.json +84 -3
- package/dist/agent-i18n/en.json +14 -3
- package/dist/components/calendar/calendar.d.ts +6 -0
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/control-room-rail/control-room-rail.d.ts +9 -0
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +4 -0
- package/dist/components/panel-subview/index.js +1 -1
- package/dist/components/panel-subview/panel-subview.d.ts +6 -0
- package/dist/components/rich-text-editor/editor-toolbar.d.ts +35 -3
- package/dist/components/rich-text-editor/index.d.ts +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/rich-text-editor/rich-text-editor.d.ts +98 -15
- package/dist/components/sidebar/index.js +1 -1
- package/dist/components/tab-bar/index.js +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/components/tool-rail/tool-rail.d.ts +16 -0
- package/dist/components/variables-menu/index.d.ts +4 -0
- package/dist/components/variables-menu/index.js +6 -0
- package/dist/components/variables-menu/variables-menu.agent.d.ts +10 -0
- package/dist/components/variables-menu/variables-menu.d.ts +53 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +35 -32
- package/dist/hooks/use-edge-resize.d.ts +13 -1
- package/dist/host-compat.css +5 -5
- package/dist/i18n/locales/ar.d.ts +77 -6
- package/dist/i18n/locales/ar.js +78 -7
- package/dist/i18n/locales/de.d.ts +77 -6
- package/dist/i18n/locales/de.js +78 -7
- package/dist/i18n/locales/el.d.ts +77 -6
- package/dist/i18n/locales/el.js +78 -7
- package/dist/i18n/locales/en.d.ts +77 -6
- package/dist/i18n/locales/en.js +85 -7
- package/dist/i18n/locales/es.d.ts +77 -6
- package/dist/i18n/locales/es.js +78 -7
- package/dist/i18n/locales/fr.d.ts +77 -6
- package/dist/i18n/locales/fr.js +78 -7
- package/dist/i18n/locales/hi.d.ts +77 -6
- package/dist/i18n/locales/hi.js +78 -7
- package/dist/i18n/locales/it.d.ts +77 -6
- package/dist/i18n/locales/it.js +78 -7
- package/dist/i18n/locales/ja.d.ts +77 -6
- package/dist/i18n/locales/ja.js +78 -7
- package/dist/i18n/locales/nl.d.ts +77 -6
- package/dist/i18n/locales/nl.js +78 -7
- package/dist/i18n/locales/pl.d.ts +77 -6
- package/dist/i18n/locales/pl.js +78 -7
- package/dist/i18n/locales/pt.d.ts +77 -6
- package/dist/i18n/locales/pt.js +78 -7
- package/dist/i18n/locales/ro.d.ts +77 -6
- package/dist/i18n/locales/ro.js +78 -7
- package/dist/i18n/locales/ru.d.ts +77 -6
- package/dist/i18n/locales/ru.js +78 -7
- package/dist/i18n/locales/sq.d.ts +77 -6
- package/dist/i18n/locales/sq.js +78 -7
- package/dist/i18n/locales/sv.d.ts +77 -6
- package/dist/i18n/locales/sv.js +78 -7
- package/dist/i18n/locales/tr.d.ts +77 -6
- package/dist/i18n/locales/tr.js +78 -7
- package/dist/i18n/locales/zh.d.ts +77 -6
- package/dist/i18n/locales/zh.js +78 -7
- package/dist/index.js +916 -913
- package/dist/locales/ar.json +78 -7
- package/dist/locales/de.json +78 -7
- package/dist/locales/el.json +78 -7
- package/dist/locales/en.json +78 -7
- package/dist/locales/es.json +78 -7
- package/dist/locales/fr.json +78 -7
- package/dist/locales/hi.json +78 -7
- package/dist/locales/it.json +78 -7
- package/dist/locales/ja.json +78 -7
- package/dist/locales/nl.json +78 -7
- package/dist/locales/pl.json +78 -7
- package/dist/locales/pt.json +78 -7
- package/dist/locales/ro.json +78 -7
- package/dist/locales/ru.json +78 -7
- package/dist/locales/sq.json +78 -7
- package/dist/locales/sv.json +78 -7
- package/dist/locales/tr.json +78 -7
- package/dist/locales/zh.json +78 -7
- package/dist/patterns/calendar/calendar-bookings-panel.d.ts +8 -3
- package/dist/patterns/calendar/calendar-care-rules.d.ts +49 -0
- package/dist/patterns/calendar/calendar-task-editor.d.ts +31 -0
- package/dist/patterns/calendar/calendar-workspace.d.ts +8 -1
- package/dist/patterns/calendar/calendar-workspace.model.d.ts +39 -12
- package/dist/patterns/calendar/calendar.data.d.ts +9 -0
- package/dist/patterns/calendar/calendar.journey.d.ts +35 -3
- package/dist/patterns/calendar/calendar.model.d.ts +23 -1
- package/dist/patterns/calendar/calendar.sheets.d.ts +21 -3
- package/dist/patterns/calendar/calendar.surface.d.ts +6 -1
- package/dist/patterns/calendar/calendar.types.d.ts +32 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts +58 -26
- package/dist/patterns/help-me-write-templates/index.d.ts +1 -1
- package/dist/patterns/help-me-write-templates/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/tokens.css +6 -6
- package/package.json +5 -1
- package/dist/_chunks/calendar-workspace-qlxrxCqm.js +0 -11392
- package/dist/_chunks/control-room-rail-CnNZusR5.js +0 -337
- package/dist/_chunks/help-me-write-templates-B-m7zgJa.js +0 -775
- package/dist/_chunks/highlighter-DSkckT2Q.js +0 -15
- package/dist/_chunks/rich-text-editor-DUMeifwc.js +0 -3176
- package/dist/_chunks/tab-bar-rDkLiaA6.js +0 -268
- package/dist/_chunks/use-edge-resize-ZnGG7gyO.js +0 -139
- package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +0 -32
- package/dist/_chunks/wand-sparkles-DAjKyhz7.js +0 -27
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
import { jsx as a, jsxs as C, Fragment as Ir } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import * as
|
|
2
|
+
import { forwardRef as Ui, useId as Vi, useRef as N, useState as T, useCallback as g, useMemo as xn, useEffect as ne, useImperativeHandle as Yi } from "react";
|
|
3
|
+
import * as Fe from "@radix-ui/react-tooltip";
|
|
4
4
|
import { c as Xi } from "./index-D2ZczOXr.js";
|
|
5
5
|
import { useTranslation as qi } from "react-i18next";
|
|
6
6
|
import { u as Gi } from "./registry-DvAUVLHh.js";
|
|
7
7
|
import { m as tt, M as Ji, A as Qi } from "./annotation-marker-CsUJGZjQ.js";
|
|
8
8
|
import { B as P } from "./button-CaUe1uyd.js";
|
|
9
|
-
import { I as
|
|
9
|
+
import { I as Ke } from "./icon-button-CehAeZoP.js";
|
|
10
10
|
import { B as es } from "./button-group-R32U7SyV.js";
|
|
11
11
|
import { C as ts } from "./combobox-DnSdYssy.js";
|
|
12
12
|
import { I as vn } from "./icon-button-group-DkkdIygu.js";
|
|
13
13
|
import { T as Ar } from "./text-input-CUvCb6ST.js";
|
|
14
|
-
import { C as
|
|
14
|
+
import { C as Ze } from "./card-DPmk26CL.js";
|
|
15
15
|
import { S as Tt } from "./separator-CYU_bGFn.js";
|
|
16
16
|
import { S as ns } from "./slider-DN1CWkKB.js";
|
|
17
17
|
import { S as rs } from "./switch-OILsBLWo.js";
|
|
18
|
-
import { c as
|
|
18
|
+
import { c as Be } from "./createLucideIcon-DhHxpK9K.js";
|
|
19
19
|
import { T as is } from "./type-ggmfVs23.js";
|
|
20
20
|
import { C as ss } from "./circle-j7oZoouK.js";
|
|
21
21
|
import { S as os } from "./square-DASBRZ0U.js";
|
|
22
22
|
import { M as as } from "./minus-BQDHq1c1.js";
|
|
23
23
|
import { A as cs } from "./arrow-up-right-C2v_MKsK.js";
|
|
24
|
-
import { H as ls } from "./
|
|
25
|
-
import { M as
|
|
26
|
-
import { E as
|
|
27
|
-
import { T as
|
|
28
|
-
import { C as
|
|
29
|
-
import { U as
|
|
30
|
-
import { Z as
|
|
31
|
-
import { M as
|
|
24
|
+
import { H as ls, U as ds } from "./undo-2-CYNAzclj.js";
|
|
25
|
+
import { M as us } from "./map-pin-BaY37-Km.js";
|
|
26
|
+
import { E as fs } from "./eraser-CHOGQfVv.js";
|
|
27
|
+
import { T as hs } from "./trash-2-uumy3fy1.js";
|
|
28
|
+
import { C as ms } from "./camera-VSklPDCv.js";
|
|
29
|
+
import { U as ps } from "./upload-BfT2hzMg.js";
|
|
30
|
+
import { Z as gs, a as ys } from "./zoom-out-Dnif4kJx.js";
|
|
31
|
+
import { M as xs } from "./maximize-2-BYd2Kti7.js";
|
|
32
32
|
/**
|
|
33
33
|
* @license lucide-react v1.22.0 - ISC
|
|
34
34
|
*
|
|
35
35
|
* This source code is licensed under the ISC license.
|
|
36
36
|
* See the LICENSE file in the root directory of this source tree.
|
|
37
37
|
*/
|
|
38
|
-
const
|
|
38
|
+
const vs = [
|
|
39
39
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
40
40
|
["path", { d: "M9 3v18", key: "fh3hqa" }],
|
|
41
41
|
["path", { d: "M15 3v18", key: "14nvp0" }]
|
|
42
|
-
],
|
|
42
|
+
], ws = Be("columns-3", vs);
|
|
43
43
|
/**
|
|
44
44
|
* @license lucide-react v1.22.0 - ISC
|
|
45
45
|
*
|
|
46
46
|
* This source code is licensed under the ISC license.
|
|
47
47
|
* See the LICENSE file in the root directory of this source tree.
|
|
48
48
|
*/
|
|
49
|
-
const
|
|
49
|
+
const ks = [
|
|
50
50
|
[
|
|
51
51
|
"path",
|
|
52
52
|
{
|
|
@@ -54,14 +54,14 @@ const ws = [
|
|
|
54
54
|
key: "edeuup"
|
|
55
55
|
}
|
|
56
56
|
]
|
|
57
|
-
],
|
|
57
|
+
], bs = Be("mouse-pointer-2", ks);
|
|
58
58
|
/**
|
|
59
59
|
* @license lucide-react v1.22.0 - ISC
|
|
60
60
|
*
|
|
61
61
|
* This source code is licensed under the ISC license.
|
|
62
62
|
* See the LICENSE file in the root directory of this source tree.
|
|
63
63
|
*/
|
|
64
|
-
const
|
|
64
|
+
const Cs = [
|
|
65
65
|
[
|
|
66
66
|
"path",
|
|
67
67
|
{
|
|
@@ -69,14 +69,14 @@ const bs = [
|
|
|
69
69
|
key: "1a8usu"
|
|
70
70
|
}
|
|
71
71
|
]
|
|
72
|
-
],
|
|
72
|
+
], Ss = Be("pen", Cs);
|
|
73
73
|
/**
|
|
74
74
|
* @license lucide-react v1.22.0 - ISC
|
|
75
75
|
*
|
|
76
76
|
* This source code is licensed under the ISC license.
|
|
77
77
|
* See the LICENSE file in the root directory of this source tree.
|
|
78
78
|
*/
|
|
79
|
-
const
|
|
79
|
+
const Ms = [
|
|
80
80
|
[
|
|
81
81
|
"path",
|
|
82
82
|
{ d: "M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13", key: "orapub" }
|
|
@@ -98,39 +98,29 @@ const Ss = [
|
|
|
98
98
|
}
|
|
99
99
|
],
|
|
100
100
|
["path", { d: "m15 5 4 4", key: "1mk7zo" }]
|
|
101
|
-
],
|
|
101
|
+
], Ns = Be("pencil-ruler", Ms);
|
|
102
102
|
/**
|
|
103
103
|
* @license lucide-react v1.22.0 - ISC
|
|
104
104
|
*
|
|
105
105
|
* This source code is licensed under the ISC license.
|
|
106
106
|
* See the LICENSE file in the root directory of this source tree.
|
|
107
107
|
*/
|
|
108
|
-
const
|
|
109
|
-
["path", { d: "M9 14 4 9l5-5", key: "102s5s" }],
|
|
110
|
-
["path", { d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11", key: "f3b9sd" }]
|
|
111
|
-
], Is = Ee("undo-2", Ns);
|
|
112
|
-
/**
|
|
113
|
-
* @license lucide-react v1.22.0 - ISC
|
|
114
|
-
*
|
|
115
|
-
* This source code is licensed under the ISC license.
|
|
116
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
117
|
-
*/
|
|
118
|
-
const As = [
|
|
108
|
+
const Is = [
|
|
119
109
|
["path", { d: "m19 16-3 3", key: "lp3y45" }],
|
|
120
110
|
["path", { d: "M2 21a8 8 0 0 1 12.664-6.5", key: "1ap0vn" }],
|
|
121
111
|
["path", { d: "M22 19h-6l3 3", key: "13fjle" }],
|
|
122
112
|
["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }]
|
|
123
|
-
], Tr =
|
|
113
|
+
], Tr = Be("user-round-arrow-left", Is);
|
|
124
114
|
/**
|
|
125
115
|
* @license lucide-react v1.22.0 - ISC
|
|
126
116
|
*
|
|
127
117
|
* This source code is licensed under the ISC license.
|
|
128
118
|
* See the LICENSE file in the root directory of this source tree.
|
|
129
119
|
*/
|
|
130
|
-
const
|
|
120
|
+
const As = [
|
|
131
121
|
["circle", { cx: "12", cy: "8", r: "5", key: "1hypcn" }],
|
|
132
122
|
["path", { d: "M20 21a8 8 0 0 0-16 0", key: "rfgkzh" }]
|
|
133
|
-
],
|
|
123
|
+
], Ts = Be("user-round", As), Es = {
|
|
134
124
|
type: "string",
|
|
135
125
|
enum: [
|
|
136
126
|
"none",
|
|
@@ -147,13 +137,13 @@ const Ts = [
|
|
|
147
137
|
}, ke = {
|
|
148
138
|
type: "string",
|
|
149
139
|
description: "Face-zone id (e.g. 'glabella', 'nasolabialFold', 'forehead', 'mandibularAngleLeft' on the front view; 'cheekbone', 'masseter', 'chin' on a profile view)."
|
|
150
|
-
},
|
|
140
|
+
}, _s = {
|
|
151
141
|
type: "string",
|
|
152
142
|
enum: ["front", "profile-left", "profile-right"],
|
|
153
143
|
description: "Active view id: 'front', 'profile-left', or 'profile-right'."
|
|
154
144
|
}, nt = {
|
|
155
145
|
enum: ["observation", "treatment", "concern", "note"]
|
|
156
|
-
},
|
|
146
|
+
}, zs = {
|
|
157
147
|
id: "face-scheme",
|
|
158
148
|
// pick — focus a zone (transient); set_value / edit_inline — record / clear
|
|
159
149
|
// findings on a zone; view_change — switch the active view (front / left /
|
|
@@ -348,7 +338,7 @@ const Ts = [
|
|
|
348
338
|
argsType: "{ view: FaceViewId }",
|
|
349
339
|
argsSchema: {
|
|
350
340
|
type: "object",
|
|
351
|
-
properties: { view:
|
|
341
|
+
properties: { view: _s },
|
|
352
342
|
required: ["view"]
|
|
353
343
|
},
|
|
354
344
|
idempotent: !0,
|
|
@@ -380,7 +370,7 @@ const Ts = [
|
|
|
380
370
|
argsType: "{ tool: FaceAnnotationTool | 'none' }",
|
|
381
371
|
argsSchema: {
|
|
382
372
|
type: "object",
|
|
383
|
-
properties: { tool:
|
|
373
|
+
properties: { tool: Es },
|
|
384
374
|
required: ["tool"]
|
|
385
375
|
},
|
|
386
376
|
idempotent: !0,
|
|
@@ -514,7 +504,7 @@ const Ts = [
|
|
|
514
504
|
description: 'Each clickable zone `<g>` carries its zone id as `data-zone` (plus `data-side` for the anatomical side, and `data-zone-selected="true"` while in the multi-selection). Each free-form annotation `<g>` carries `data-annotation` (its id), `data-annotation-kind`, `data-annotation-zone` (its linked zone id, when linked), and `data-selected="true"` while selected. The root `<div>` carries the active view id as `data-view` — only the zones for the active view are in the DOM.'
|
|
515
505
|
}
|
|
516
506
|
}
|
|
517
|
-
},
|
|
507
|
+
}, Ls = "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.18/vision_bundle.mjs", Rs = "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.18/wasm", $s = "https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task", Fs = {
|
|
518
508
|
"right-eye": [33, 133],
|
|
519
509
|
// subject's right eye, outer + inner corners
|
|
520
510
|
"left-eye": [263, 362],
|
|
@@ -529,7 +519,7 @@ const Ts = [
|
|
|
529
519
|
subnasale: [2]
|
|
530
520
|
// base of the nose / top of the philtrum
|
|
531
521
|
}, wn = /* @__PURE__ */ new Map();
|
|
532
|
-
function
|
|
522
|
+
function Ks(n, r, o, l) {
|
|
533
523
|
const d = `${n}|${r}|${o}`, c = wn.get(d);
|
|
534
524
|
if (c) return c;
|
|
535
525
|
l == null || l("loading");
|
|
@@ -546,23 +536,23 @@ function Zs(n, r, o, l) {
|
|
|
546
536
|
})();
|
|
547
537
|
return wn.set(d, m), m.catch(() => wn.delete(d)), m;
|
|
548
538
|
}
|
|
549
|
-
function
|
|
539
|
+
function Zs(n) {
|
|
550
540
|
const r = new Image();
|
|
551
541
|
return r.crossOrigin = "anonymous", r.src = n, r.decode().then(() => r);
|
|
552
542
|
}
|
|
553
|
-
async function
|
|
543
|
+
async function Os(n, r) {
|
|
554
544
|
if (typeof window > "u" || typeof Image > "u")
|
|
555
545
|
throw new Error("detectFaceLandmarks runs in the browser only.");
|
|
556
546
|
const {
|
|
557
547
|
viewWidth: o,
|
|
558
548
|
viewHeight: l,
|
|
559
|
-
visionModuleUrl: d =
|
|
560
|
-
wasmBaseUrl: c =
|
|
561
|
-
modelAssetPath: m =
|
|
549
|
+
visionModuleUrl: d = Ls,
|
|
550
|
+
wasmBaseUrl: c = Rs,
|
|
551
|
+
modelAssetPath: m = $s,
|
|
562
552
|
onStage: h
|
|
563
553
|
} = r, [p, y] = await Promise.all([
|
|
564
|
-
|
|
565
|
-
|
|
554
|
+
Zs(n),
|
|
555
|
+
Ks(d, c, m, h)
|
|
566
556
|
]);
|
|
567
557
|
h == null || h("detecting");
|
|
568
558
|
const b = y.detect(p).faceLandmarks[0];
|
|
@@ -571,7 +561,7 @@ async function Ps(n, r) {
|
|
|
571
561
|
x: L + R.x * v * w,
|
|
572
562
|
y: X + R.y * k * w
|
|
573
563
|
}), I = [];
|
|
574
|
-
for (const [R, H] of Object.entries(
|
|
564
|
+
for (const [R, H] of Object.entries(Fs)) {
|
|
575
565
|
let q = 0, pe = 0, re = 0;
|
|
576
566
|
for (const be of H) {
|
|
577
567
|
const le = b[be];
|
|
@@ -583,14 +573,14 @@ async function Ps(n, r) {
|
|
|
583
573
|
}
|
|
584
574
|
return I.length >= 3 ? I : null;
|
|
585
575
|
}
|
|
586
|
-
const
|
|
576
|
+
const Ps = "https://cdn.jsdelivr.net/npm/onnxruntime-web@1.19.2/dist/ort.min.mjs", Ds = "https://cdn.jsdelivr.net/npm/onnxruntime-web@1.19.2/dist/", F = 640, Bs = [8, 16, 32], js = [
|
|
587
577
|
"right-eye",
|
|
588
578
|
"left-eye",
|
|
589
579
|
"nose-tip",
|
|
590
580
|
"mouth-right",
|
|
591
581
|
"mouth-left"
|
|
592
582
|
], kn = /* @__PURE__ */ new Map();
|
|
593
|
-
async function
|
|
583
|
+
async function Ws(n, r, o, l) {
|
|
594
584
|
const d = `${n}|${r}|${o}`, c = kn.get(d);
|
|
595
585
|
if (c) return c;
|
|
596
586
|
l == null || l("loading");
|
|
@@ -607,14 +597,14 @@ async function Hs(n, r, o, l) {
|
|
|
607
597
|
})();
|
|
608
598
|
return kn.set(d, m), m.catch(() => kn.delete(d)), m;
|
|
609
599
|
}
|
|
610
|
-
function
|
|
600
|
+
function Hs(n) {
|
|
611
601
|
const r = new Image();
|
|
612
602
|
return r.crossOrigin = "anonymous", r.src = n, r.decode().then(() => r);
|
|
613
603
|
}
|
|
614
604
|
async function Us() {
|
|
615
605
|
return (await import("./face_detection_yunet_2023mar-BnsRs4bD.js")).default;
|
|
616
606
|
}
|
|
617
|
-
function
|
|
607
|
+
function Vs(n, r) {
|
|
618
608
|
const o = r.naturalWidth || r.width, l = r.naturalHeight || r.height, d = Math.min(F / o, F / l), c = Math.round(o * d), m = Math.round(l * d), h = Math.floor((F - c) / 2), p = Math.floor((F - m) / 2), y = document.createElement("canvas");
|
|
619
609
|
y.width = F, y.height = F;
|
|
620
610
|
const S = y.getContext("2d");
|
|
@@ -631,7 +621,7 @@ function Ys(n, r) {
|
|
|
631
621
|
};
|
|
632
622
|
}
|
|
633
623
|
const Er = (n) => 1 / (1 + Math.exp(-n));
|
|
634
|
-
function
|
|
624
|
+
function Ys(n, r) {
|
|
635
625
|
let o = !1;
|
|
636
626
|
const l = n.cls_8.data;
|
|
637
627
|
for (let c = 0; c < Math.min(l.length, 256); c++)
|
|
@@ -640,7 +630,7 @@ function Xs(n, r) {
|
|
|
640
630
|
break;
|
|
641
631
|
}
|
|
642
632
|
let d = null;
|
|
643
|
-
for (const c of
|
|
633
|
+
for (const c of Bs) {
|
|
644
634
|
const m = n[`cls_${c}`].data, h = n[`obj_${c}`].data, p = n[`kps_${c}`].data, y = F / c, S = F / c, b = y * S;
|
|
645
635
|
for (let v = 0; v < b; v++) {
|
|
646
636
|
let k = m[v], w = h[v];
|
|
@@ -658,29 +648,29 @@ function Xs(n, r) {
|
|
|
658
648
|
}
|
|
659
649
|
return d;
|
|
660
650
|
}
|
|
661
|
-
async function
|
|
651
|
+
async function Xs(n, r) {
|
|
662
652
|
if (typeof window > "u" || typeof Image > "u")
|
|
663
653
|
throw new Error("detectFaceYuNet runs in the browser only.");
|
|
664
654
|
const {
|
|
665
655
|
viewWidth: o,
|
|
666
656
|
viewHeight: l,
|
|
667
|
-
ortModuleUrl: d =
|
|
668
|
-
ortWasmBaseUrl: c =
|
|
657
|
+
ortModuleUrl: d = Ps,
|
|
658
|
+
ortWasmBaseUrl: c = Ds,
|
|
669
659
|
modelUrl: m = await Us(),
|
|
670
660
|
scoreThreshold: h = 0.6,
|
|
671
661
|
onStage: p
|
|
672
662
|
} = r, [y, { ort: S, session: b }] = await Promise.all([
|
|
673
|
-
|
|
674
|
-
|
|
663
|
+
Hs(n),
|
|
664
|
+
Ws(d, c, m, p)
|
|
675
665
|
]);
|
|
676
666
|
p == null || p("detecting");
|
|
677
|
-
const { tensor: v, scale: k, padX: w, padY: L } =
|
|
667
|
+
const { tensor: v, scale: k, padX: w, padY: L } = Vs(S.Tensor, y), X = await b.run({ [b.inputNames[0]]: v }), $ = Ys(X, h);
|
|
678
668
|
if (!$) return null;
|
|
679
669
|
const I = y.naturalWidth || y.width, R = y.naturalHeight || y.height, H = Math.max(o / I, l / R), q = (o - I * H) / 2, pe = (l - R * H) / 2;
|
|
680
670
|
return $.keypoints.map(([re, be], le) => {
|
|
681
671
|
const ge = (re - w) / k, ye = (be - L) / k;
|
|
682
672
|
return {
|
|
683
|
-
id:
|
|
673
|
+
id: js[le],
|
|
684
674
|
photo: {
|
|
685
675
|
x: q + ge * H,
|
|
686
676
|
y: pe + ye * H
|
|
@@ -692,7 +682,7 @@ const bn = "0 0 808 944", Cn = { x: 404, y: 472 }, jr = {
|
|
|
692
682
|
id: "faceContour",
|
|
693
683
|
labelKey: "faceContour",
|
|
694
684
|
d: "M688.38,439.4c-9.78,0-15.37,4.04-17.86,6.47,1.31-10.99,2.5-20.62,3.49-28.2,7.55-57.89,5.03-94.39,5.03-94.39-15.15-165.92-111.73-221.46-186.21-239.39h0s-.1-.02-.1-.02c-6.18-1.49-12.21-2.72-18.02-3.73l-.96-.2c-46.02-9.51-93.5-9.51-139.52,0l-.95.2c-5.82,1.01-11.85,2.24-18.04,3.73l-.08.02h0c-74.48,17.94-171.06,73.48-186.21,239.39,0,0-2.52,36.5,5.03,94.39,1,7.68,2.2,17.45,3.53,28.61-2.25-2.35-7.91-6.88-18.26-6.88-13.97,0-29.06,16.21-20.12,63.71,8.94,47.5,17.3,80.48,18.43,97.24,1.11,16.47,24.08,47.91,41.43,38.23.9,8.33,1.42,13.17,1.42,13.17,0,0,8.81,59.15,56.63,104.46,12.62,11.95,25.84,23.46,38.49,33.94,7.14-4.56,24-16.96,29.06-35.21.9-3.24,1.73-6.33,2.52-9.29,2.46-9.17,4.59-17.1,7.4-24.46,3.44-9.01,7.62-16.28,13.25-23.04-47.54-46.57-49.82-89.3-48.75-104.93-21.75-2.47-38.06-19.4-47.37-49.37-7.27-23.39-7.77-46.39-7.79-47.36-.02-1.34.43-2.57,1.21-3.54-.47-2.21-.65-3.58-.67-3.77-.28-2.23.97-4.38,3.05-5.24.34-.14.69-.23,1.04-.29.47-3.26,2.23-10.86,8.8-18.21,10.82-12.11,28.95-17.92,53.93-17.22,41.5,1.13,55.11,17.49,59.58,28.15,1.45.85,2.49,2.34,2.68,4.14,0,.05.02.21.05.45.22.48.36,1,.42,1.56.04.41.34,3.71.16,8.68.17,6.11.1,14.39-.75,23.68-.27,2.9-.6,5.73-.98,8.49,4.1-9.94,7.68-20.29,11.15-30.32l.31-.89-10.84-54.18c-2.15-3.39-8.76-12.5-21.75-19.51-21.63-11.68-51.16-12.3-85.4-1.8-2.58.79-5.32-.61-6.19-3.16l-53.03-154.45c-.88-1.09-1.31-2.52-1.05-4.01.26-1.43,6.68-35.35,39.46-69.52,19.15-19.96,43.37-35.84,72.01-47.21,35.3-14.02,77.45-21.18,125.28-21.27h0s.98,0,.98,0c47.83.1,89.98,7.25,125.28,21.27,28.63,11.37,52.86,27.26,72.01,47.21,30.62,31.92,38.24,63.61,39.32,68.82.29.8.42,1.35.47,1.59.17.87.11,1.77-.17,2.61l-53.21,154.96c-.88,2.55-3.62,3.95-6.19,3.16-34.24-10.5-63.77-9.88-85.4,1.8-11.42,6.17-17.92,13.96-20.78,18.06l-11.25,56.25.04.11c2.95,8.52,5.98,17.28,9.34,25.81-.14-1.26-.28-2.53-.4-3.82-.53-5.79-.75-11.19-.81-15.92-1.11-9.09-.51-15.85-.45-16.44.11-1.1.59-2.08,1.3-2.85.19-.72.52-1.37.96-1.94,3.86-10.54,16.77-28.3,60.04-29.48,24.93-.69,43.04,5.1,53.85,17.2,6.53,7.3,8.3,14.85,8.78,18.13.53.04,1.05.16,1.56.37,2.08.86,3.32,3.01,3.05,5.24-.02.14-.12.93-.37,2.25,1.7.96,2.84,2.8,2.8,4.89-.02.97-.52,23.97-7.79,47.36-8.99,28.91-24.49,45.69-45.11,49.05,1.16,15.29-.68,58.78-49.42,106.1,5.35,6.56,9.36,13.63,12.68,22.33,2.81,7.36,4.94,15.28,7.4,24.45.79,2.96,1.62,6.05,2.52,9.29,5.07,18.28,21.97,30.69,29.09,35.23,12.65-10.48,25.88-21.99,38.5-33.95,47.82-45.31,56.63-104.46,56.63-104.46,0,0,.51-4.77,1.4-13,17.31,9.1,39.99-22.04,41.09-38.41,1.13-16.77,9.49-49.74,18.43-97.24,8.94-47.5-6.15-63.71-20.12-63.71Z"
|
|
695
|
-
},
|
|
685
|
+
}, qs = [
|
|
696
686
|
{
|
|
697
687
|
id: "lateralNeckRight",
|
|
698
688
|
labelKey: "lateralNeckRight",
|
|
@@ -869,7 +859,7 @@ const bn = "0 0 808 944", Cn = { x: 404, y: 472 }, jr = {
|
|
|
869
859
|
cy: 487,
|
|
870
860
|
side: "left"
|
|
871
861
|
}
|
|
872
|
-
],
|
|
862
|
+
], Gs = [
|
|
873
863
|
{ id: "right-eye", labelKey: "rightEye", x: 268, y: 487 },
|
|
874
864
|
{ id: "left-eye", labelKey: "leftEye", x: 535, y: 487 },
|
|
875
865
|
{ id: "nose-tip", labelKey: "noseTip", x: 403, y: 620 },
|
|
@@ -968,8 +958,8 @@ const bn = "0 0 808 944", Cn = { x: 404, y: 472 }, jr = {
|
|
|
968
958
|
pivot: Cn,
|
|
969
959
|
contour: jr,
|
|
970
960
|
// The generator guarantees every clickable zone carries cx/cy/side.
|
|
971
|
-
zones:
|
|
972
|
-
landmarks:
|
|
961
|
+
zones: qs,
|
|
962
|
+
landmarks: Gs
|
|
973
963
|
},
|
|
974
964
|
// The reshaped profile zones face +x; the right profile is the same mesh
|
|
975
965
|
// mirrored. Both fit on the eye/nose-tip/mouth anchors — auto-detect and manual
|
|
@@ -997,7 +987,7 @@ const bn = "0 0 808 944", Cn = { x: 404, y: 472 }, jr = {
|
|
|
997
987
|
landmarks: Lr,
|
|
998
988
|
mirror: !0
|
|
999
989
|
}
|
|
1000
|
-
},
|
|
990
|
+
}, Js = [
|
|
1001
991
|
"front",
|
|
1002
992
|
"profile-left",
|
|
1003
993
|
"profile-right"
|
|
@@ -1011,7 +1001,7 @@ const bn = "0 0 808 944", Cn = { x: 404, y: 472 }, jr = {
|
|
|
1011
1001
|
treatment: { shape: "square", tone: "success" },
|
|
1012
1002
|
concern: { shape: "triangle", tone: "warning" },
|
|
1013
1003
|
note: { shape: "diamond", tone: "neutral" }
|
|
1014
|
-
},
|
|
1004
|
+
}, Qs = [
|
|
1015
1005
|
"marker",
|
|
1016
1006
|
"pen",
|
|
1017
1007
|
"highlighter",
|
|
@@ -1020,7 +1010,7 @@ const bn = "0 0 808 944", Cn = { x: 404, y: 472 }, jr = {
|
|
|
1020
1010
|
"rect",
|
|
1021
1011
|
"ellipse",
|
|
1022
1012
|
"text"
|
|
1023
|
-
],
|
|
1013
|
+
], ia = {
|
|
1024
1014
|
marker: "marker",
|
|
1025
1015
|
pen: "pen",
|
|
1026
1016
|
highlighter: "highlighter",
|
|
@@ -1030,13 +1020,13 @@ const bn = "0 0 808 944", Cn = { x: 404, y: 472 }, jr = {
|
|
|
1030
1020
|
ellipse: "ellipse",
|
|
1031
1021
|
text: "text"
|
|
1032
1022
|
};
|
|
1033
|
-
function
|
|
1023
|
+
function sa(n) {
|
|
1034
1024
|
return n === "arrow" || n === "line" || n === "rect" || n === "ellipse";
|
|
1035
1025
|
}
|
|
1036
|
-
function
|
|
1026
|
+
function oa(n) {
|
|
1037
1027
|
return n === "pen" || n === "highlighter";
|
|
1038
1028
|
}
|
|
1039
|
-
function
|
|
1029
|
+
function aa(n) {
|
|
1040
1030
|
return n === "marker" || n === "text";
|
|
1041
1031
|
}
|
|
1042
1032
|
function Hr(n) {
|
|
@@ -1066,11 +1056,11 @@ function Nn(n, r, o) {
|
|
|
1066
1056
|
}
|
|
1067
1057
|
}
|
|
1068
1058
|
}
|
|
1069
|
-
function
|
|
1059
|
+
function eo(n, r, o = 16) {
|
|
1070
1060
|
const l = r.x - n.x, d = r.y - n.y, c = Math.hypot(l, d) || 1, m = l / c, h = d / c, p = 0.5, y = Math.cos(p), S = Math.sin(p), b = r.x - o * (m * y - h * S), v = r.y - o * (h * y + m * S), k = r.x - o * (m * y + h * S), w = r.y - o * (h * y - m * S);
|
|
1071
1061
|
return `M ${r.x} ${r.y} L ${b} ${v} M ${r.x} ${r.y} L ${k} ${w}`;
|
|
1072
1062
|
}
|
|
1073
|
-
function
|
|
1063
|
+
function to(n) {
|
|
1074
1064
|
switch (n.kind) {
|
|
1075
1065
|
case "marker":
|
|
1076
1066
|
case "text":
|
|
@@ -1089,7 +1079,7 @@ function no(n) {
|
|
|
1089
1079
|
}
|
|
1090
1080
|
}
|
|
1091
1081
|
}
|
|
1092
|
-
function
|
|
1082
|
+
function no(n) {
|
|
1093
1083
|
switch (n.kind) {
|
|
1094
1084
|
case "marker":
|
|
1095
1085
|
case "text":
|
|
@@ -1106,8 +1096,8 @@ function ro(n) {
|
|
|
1106
1096
|
return { x: (n.from.x + n.to.x) / 2, y: (n.from.y + n.to.y) / 2 };
|
|
1107
1097
|
}
|
|
1108
1098
|
}
|
|
1109
|
-
const
|
|
1110
|
-
function
|
|
1099
|
+
const ro = 28, Mn = 26;
|
|
1100
|
+
function io(n, r = 30) {
|
|
1111
1101
|
switch (n.kind) {
|
|
1112
1102
|
case "marker":
|
|
1113
1103
|
return { type: "circle", cx: n.x, cy: n.y, r: Mn };
|
|
@@ -1131,7 +1121,7 @@ function so(n, r = 30) {
|
|
|
1131
1121
|
}
|
|
1132
1122
|
}
|
|
1133
1123
|
}
|
|
1134
|
-
const
|
|
1124
|
+
const Pe = [1, 0, 0, 1, 0, 0];
|
|
1135
1125
|
function _t(n) {
|
|
1136
1126
|
return `matrix(${n[0]} ${n[1]} ${n[2]} ${n[3]} ${n[4]} ${n[5]})`;
|
|
1137
1127
|
}
|
|
@@ -1141,13 +1131,13 @@ function rt(n, r) {
|
|
|
1141
1131
|
y: n[1] * r.x + n[3] * r.y + n[5]
|
|
1142
1132
|
};
|
|
1143
1133
|
}
|
|
1144
|
-
function
|
|
1134
|
+
function so(n) {
|
|
1145
1135
|
const r = n[0] * n[3] - n[1] * n[2], o = n[3] / r, l = -n[1] / r, d = -n[2] / r, c = n[0] / r;
|
|
1146
1136
|
return [o, l, d, c, -(o * n[4] + d * n[5]), -(l * n[4] + c * n[5])];
|
|
1147
1137
|
}
|
|
1148
|
-
const
|
|
1138
|
+
const oo = 0.84;
|
|
1149
1139
|
function $r(n, r, o, l = {}) {
|
|
1150
|
-
const d = `0 0 ${o.width} ${o.height}`, c = l.fraction ??
|
|
1140
|
+
const d = `0 0 ${o.width} ${o.height}`, c = l.fraction ?? oo;
|
|
1151
1141
|
if (c <= 0 || c > 1) return d;
|
|
1152
1142
|
const m = [
|
|
1153
1143
|
{ x: n.x, y: n.y },
|
|
@@ -1170,12 +1160,12 @@ function $r(n, r, o, l = {}) {
|
|
|
1170
1160
|
const X = Math.min(Math.max(h + b / 2 - L / 2, 0), o.width - L), $ = Math.min(Math.max(p + v / 2 - w / 2, 0), o.height - w);
|
|
1171
1161
|
return `${Math.round(X)} ${Math.round($)} ${Math.round(L)} ${Math.round(w)}`;
|
|
1172
1162
|
}
|
|
1173
|
-
const
|
|
1163
|
+
const ao = 1, Ur = 8, it = { k: 1, fx: 0.5, fy: 0.5 }, De = (n) => Math.min(Math.max(n, 0), 1);
|
|
1174
1164
|
function zt(n) {
|
|
1175
1165
|
const [r = 0, o = 0, l = 0, d = 0] = n.split(/\s+/).map(Number);
|
|
1176
1166
|
return { x: r, y: o, width: l, height: d };
|
|
1177
1167
|
}
|
|
1178
|
-
function
|
|
1168
|
+
function co(n) {
|
|
1179
1169
|
return `${Math.round(n.x)} ${Math.round(n.y)} ${Math.round(n.width)} ${Math.round(n.height)}`;
|
|
1180
1170
|
}
|
|
1181
1171
|
function st(n, r) {
|
|
@@ -1189,44 +1179,44 @@ function st(n, r) {
|
|
|
1189
1179
|
};
|
|
1190
1180
|
}
|
|
1191
1181
|
function Fr(n, r, o, l) {
|
|
1192
|
-
const d = Math.min(Math.max(r.k * l,
|
|
1182
|
+
const d = Math.min(Math.max(r.k * l, ao), Ur);
|
|
1193
1183
|
if (d <= 1) return it;
|
|
1194
1184
|
if (d === r.k || !Number.isFinite(d)) return r;
|
|
1195
|
-
const c = st(n, r), m = n.width / d, h = n.height / d, p = c.width > 0 ?
|
|
1185
|
+
const c = st(n, r), m = n.width / d, h = n.height / d, p = c.width > 0 ? De((o.x - c.x) / c.width) : 0.5, y = c.height > 0 ? De((o.y - c.y) / c.height) : 0.5, S = o.x - p * m, b = o.y - y * h, v = n.width - m, k = n.height - h;
|
|
1196
1186
|
return {
|
|
1197
1187
|
k: d,
|
|
1198
|
-
fx: v > 0 ?
|
|
1199
|
-
fy: k > 0 ?
|
|
1188
|
+
fx: v > 0 ? De((S - n.x) / v) : 0.5,
|
|
1189
|
+
fy: k > 0 ? De((b - n.y) / k) : 0.5
|
|
1200
1190
|
};
|
|
1201
1191
|
}
|
|
1202
|
-
function
|
|
1192
|
+
function lo(n, r, o, l) {
|
|
1203
1193
|
if (r.k <= 1) return r;
|
|
1204
1194
|
const d = st(n, r), c = n.width - d.width, m = n.height - d.height;
|
|
1205
1195
|
return {
|
|
1206
1196
|
k: r.k,
|
|
1207
|
-
fx: c > 0 ?
|
|
1208
|
-
fy: m > 0 ?
|
|
1197
|
+
fx: c > 0 ? De((d.x - o - n.x) / c) : 0.5,
|
|
1198
|
+
fy: m > 0 ? De((d.y - l - n.y) / m) : 0.5
|
|
1209
1199
|
};
|
|
1210
1200
|
}
|
|
1211
1201
|
const Ft = Math.PI / 180;
|
|
1212
|
-
function
|
|
1202
|
+
function uo(n, r) {
|
|
1213
1203
|
const o = n.rotation * Ft, l = Math.cos(o), d = Math.sin(o), c = Math.tan(n.shear * Ft), m = n.scaleX * l, h = n.scaleX * d, p = n.scaleY * (c * l - d), y = n.scaleY * (c * d + l), S = n.translateX + r.x - (m * r.x + p * r.y), b = n.translateY + r.y - (h * r.x + y * r.y);
|
|
1214
1204
|
return [m, h, p, y, S, b];
|
|
1215
1205
|
}
|
|
1216
|
-
function
|
|
1206
|
+
function fo(n, r) {
|
|
1217
1207
|
const [o, l, d, c, m, h] = n, p = Math.hypot(o, l), y = Math.atan2(l, o) / Ft, S = o * c - l * d, b = p === 0 ? 0 : S / p, v = Math.atan2(o * d + l * c, S) / Ft, k = m - r.x + (o * r.x + d * r.y), w = h - r.y + (l * r.x + c * r.y);
|
|
1218
1208
|
return { scaleX: p, scaleY: b, rotation: y, shear: v, translateX: k, translateY: w };
|
|
1219
1209
|
}
|
|
1220
1210
|
function Kr(n, r) {
|
|
1221
1211
|
const o = Math.min(n.length, r.length);
|
|
1222
|
-
if (o < 3) return
|
|
1212
|
+
if (o < 3) return Pe;
|
|
1223
1213
|
let l = 0, d = 0, c = 0, m = 0, h = 0, p = 0, y = 0, S = 0, b = 0, v = 0, k = 0;
|
|
1224
1214
|
for (let ie = 0; ie < o; ie++) {
|
|
1225
1215
|
const _ = n[ie], D = r[ie];
|
|
1226
1216
|
!_ || !D || (l += _.x * _.x, d += _.x * _.y, c += _.x, m += _.y * _.y, h += _.y, p += D.x * _.x, y += D.x * _.y, S += D.x, b += D.y * _.x, v += D.y * _.y, k += D.y);
|
|
1227
1217
|
}
|
|
1228
1218
|
const w = l * (m * o - h * h) - d * (d * o - h * c) + c * (d * h - m * c);
|
|
1229
|
-
if (Math.abs(w) < 1e-9) return
|
|
1219
|
+
if (Math.abs(w) < 1e-9) return Pe;
|
|
1230
1220
|
const L = m * o - h * h, X = c * h - d * o, $ = d * h - c * m, I = l * o - c * c, R = c * d - l * h, H = l * m - d * d, q = (ie, _, D) => [
|
|
1231
1221
|
(L * ie + X * _ + $ * D) / w,
|
|
1232
1222
|
(X * ie + I * _ + R * D) / w,
|
|
@@ -1234,7 +1224,7 @@ function Kr(n, r) {
|
|
|
1234
1224
|
], [pe, re, be] = q(p, y, S), [le, ge, ye] = q(b, v, k);
|
|
1235
1225
|
return [pe, le, re, ge, be, ye];
|
|
1236
1226
|
}
|
|
1237
|
-
function
|
|
1227
|
+
function ho(n) {
|
|
1238
1228
|
const r = (p) => {
|
|
1239
1229
|
var y;
|
|
1240
1230
|
return (y = n.find((S) => S.id === p)) == null ? void 0 : y.photo;
|
|
@@ -1247,20 +1237,20 @@ function mo(n) {
|
|
|
1247
1237
|
{ id: "mouth", photo: h(c, m) }
|
|
1248
1238
|
];
|
|
1249
1239
|
}
|
|
1250
|
-
function
|
|
1240
|
+
function mo() {
|
|
1251
1241
|
return typeof navigator < "u" && typeof navigator.mediaDevices < "u" && typeof navigator.mediaDevices.getUserMedia == "function";
|
|
1252
1242
|
}
|
|
1253
|
-
function
|
|
1243
|
+
function po(n) {
|
|
1254
1244
|
const r = n instanceof Error ? n.name : "";
|
|
1255
1245
|
return r === "NotAllowedError" || r === "SecurityError" ? "permission-denied" : r === "NotFoundError" || r === "OverconstrainedError" ? "no-camera" : r === "NotReadableError" || r === "AbortError" ? "not-readable" : "capture-failed";
|
|
1256
1246
|
}
|
|
1257
|
-
const
|
|
1247
|
+
const go = {
|
|
1258
1248
|
"permission-denied": "faceScheme.capture.error.permissionDenied",
|
|
1259
1249
|
"no-camera": "faceScheme.capture.error.noCamera",
|
|
1260
1250
|
"not-readable": "faceScheme.capture.error.notReadable",
|
|
1261
1251
|
"insecure-context": "faceScheme.capture.error.insecureContext",
|
|
1262
1252
|
"capture-failed": "faceScheme.capture.error.captureFailed"
|
|
1263
|
-
},
|
|
1253
|
+
}, Oe = {
|
|
1264
1254
|
neutral: "ds:[fill:var(--muted-foreground)]",
|
|
1265
1255
|
info: "ds:[fill:var(--info)]",
|
|
1266
1256
|
success: "ds:[fill:var(--success)]",
|
|
@@ -1274,25 +1264,25 @@ const yo = {
|
|
|
1274
1264
|
warning: "ds:[stroke:var(--warning)]",
|
|
1275
1265
|
error: "ds:[stroke:var(--destructive)]",
|
|
1276
1266
|
accent: "ds:[stroke:var(--accent)]"
|
|
1277
|
-
},
|
|
1267
|
+
}, yo = 13, xo = 5, vo = 24, Rt = 5, wo = 26, Zr = 30, $t = 14, Or = [], Pr = "__draft__", Dr = [
|
|
1278
1268
|
"profile-left",
|
|
1279
1269
|
"front",
|
|
1280
1270
|
"profile-right"
|
|
1281
|
-
],
|
|
1271
|
+
], ko = {
|
|
1282
1272
|
"profile-left": /* @__PURE__ */ a(Tr, { "aria-hidden": "true" }),
|
|
1283
|
-
front: /* @__PURE__ */ a(
|
|
1273
|
+
front: /* @__PURE__ */ a(Ts, { "aria-hidden": "true" }),
|
|
1284
1274
|
"profile-right": /* @__PURE__ */ a(Tr, { "aria-hidden": "true", className: "ds:-scale-x-100" })
|
|
1285
|
-
},
|
|
1286
|
-
select:
|
|
1287
|
-
marker:
|
|
1288
|
-
pen:
|
|
1275
|
+
}, bo = {
|
|
1276
|
+
select: bs,
|
|
1277
|
+
marker: us,
|
|
1278
|
+
pen: Ss,
|
|
1289
1279
|
highlighter: ls,
|
|
1290
1280
|
arrow: cs,
|
|
1291
1281
|
line: as,
|
|
1292
1282
|
rect: os,
|
|
1293
1283
|
ellipse: ss,
|
|
1294
1284
|
text: is
|
|
1295
|
-
},
|
|
1285
|
+
}, Co = [
|
|
1296
1286
|
"accent",
|
|
1297
1287
|
"info",
|
|
1298
1288
|
"success",
|
|
@@ -1330,21 +1320,21 @@ const yo = {
|
|
|
1330
1320
|
],
|
|
1331
1321
|
defaultVariants: { interactive: !1, marked: !1, selected: !1 }
|
|
1332
1322
|
}
|
|
1333
|
-
),
|
|
1323
|
+
), So = {
|
|
1334
1324
|
scaleX: { min: 0.3, max: 1.8, step: 0.01 },
|
|
1335
1325
|
scaleY: { min: 0.3, max: 1.8, step: 0.01 },
|
|
1336
1326
|
rotation: { min: -20, max: 20, step: 0.5 },
|
|
1337
1327
|
shear: { min: -20, max: 20, step: 0.5 },
|
|
1338
1328
|
translateX: { min: -240, max: 240, step: 1 },
|
|
1339
1329
|
translateY: { min: -240, max: 240, step: 1 }
|
|
1340
|
-
},
|
|
1330
|
+
}, Mo = [
|
|
1341
1331
|
"scaleX",
|
|
1342
1332
|
"scaleY",
|
|
1343
1333
|
"rotation",
|
|
1344
1334
|
"shear",
|
|
1345
1335
|
"translateX",
|
|
1346
1336
|
"translateY"
|
|
1347
|
-
],
|
|
1337
|
+
], No = Ui(
|
|
1348
1338
|
({
|
|
1349
1339
|
id: n,
|
|
1350
1340
|
patientPhoto: r,
|
|
@@ -1377,7 +1367,7 @@ const yo = {
|
|
|
1377
1367
|
defaultAnnotationShape: ie = "circle",
|
|
1378
1368
|
defaultAnnotationColor: _ = "accent",
|
|
1379
1369
|
registration: D,
|
|
1380
|
-
defaultRegistration:
|
|
1370
|
+
defaultRegistration: Vr,
|
|
1381
1371
|
onRegistrationChange: ot,
|
|
1382
1372
|
registrationMode: Yr = "off",
|
|
1383
1373
|
autoDetect: je,
|
|
@@ -1389,7 +1379,7 @@ const yo = {
|
|
|
1389
1379
|
ariaLabel: Xr,
|
|
1390
1380
|
className: qr
|
|
1391
1381
|
}, Gr) => {
|
|
1392
|
-
const { t: f } = qi(), G =
|
|
1382
|
+
const { t: f } = qi(), G = Vi(), lt = n ?? G, An = N(null), dt = N(null), ut = N(null), We = N(null), Tn = N(null), En = N(null), Ot = N(!1), Pt = l !== void 0, [Jr, Qr] = T(
|
|
1393
1383
|
l ?? d
|
|
1394
1384
|
), A = Pt ? l : Jr, K = N(A);
|
|
1395
1385
|
K.current = A;
|
|
@@ -1429,12 +1419,12 @@ const yo = {
|
|
|
1429
1419
|
[pt, gt]
|
|
1430
1420
|
), J = z && w === "multi", yt = L !== void 0, [ri, ii] = T(
|
|
1431
1421
|
X ?? []
|
|
1432
|
-
),
|
|
1433
|
-
de.current =
|
|
1422
|
+
), U = yt ? L : ri, de = N(U);
|
|
1423
|
+
de.current = U;
|
|
1434
1424
|
const $n = xn(
|
|
1435
|
-
() => new Set(
|
|
1436
|
-
[
|
|
1437
|
-
),
|
|
1425
|
+
() => new Set(U),
|
|
1426
|
+
[U]
|
|
1427
|
+
), Ee = g(
|
|
1438
1428
|
(e) => {
|
|
1439
1429
|
yt || (de.current = e), yt || ii(e), $ == null || $(e);
|
|
1440
1430
|
},
|
|
@@ -1442,14 +1432,14 @@ const yo = {
|
|
|
1442
1432
|
), Fn = g(
|
|
1443
1433
|
(e) => {
|
|
1444
1434
|
const t = de.current;
|
|
1445
|
-
|
|
1435
|
+
Ee(
|
|
1446
1436
|
t.includes(e) ? t.filter((i) => i !== e) : [...t, e]
|
|
1447
1437
|
);
|
|
1448
1438
|
},
|
|
1449
|
-
[
|
|
1450
|
-
),
|
|
1451
|
-
de.current.length > 0 &&
|
|
1452
|
-
}, [
|
|
1439
|
+
[Ee]
|
|
1440
|
+
), Ue = g(() => {
|
|
1441
|
+
de.current.length > 0 && Ee([]);
|
|
1442
|
+
}, [Ee]), [Kn, Zn] = T(""), xt = g(
|
|
1453
1443
|
(e, t, i) => {
|
|
1454
1444
|
const s = { ...j.current };
|
|
1455
1445
|
let u = !1;
|
|
@@ -1474,8 +1464,8 @@ const yo = {
|
|
|
1474
1464
|
},
|
|
1475
1465
|
[oe]
|
|
1476
1466
|
), Wt = D !== void 0, [si, oi] = T(
|
|
1477
|
-
|
|
1478
|
-
), vt = Wt ? D : si, Q = vt[A] ??
|
|
1467
|
+
Vr ?? {}
|
|
1468
|
+
), vt = Wt ? D : si, Q = vt[A] ?? Pe, Ht = N(Q);
|
|
1479
1469
|
Ht.current = Q;
|
|
1480
1470
|
const On = N(vt);
|
|
1481
1471
|
On.current = vt;
|
|
@@ -1485,17 +1475,17 @@ const yo = {
|
|
|
1485
1475
|
Wt || oi(t), ot == null || ot(t);
|
|
1486
1476
|
},
|
|
1487
1477
|
[Wt, ot, A]
|
|
1488
|
-
),
|
|
1489
|
-
() =>
|
|
1478
|
+
), Ut = xn(
|
|
1479
|
+
() => fo(Q, M.pivot),
|
|
1490
1480
|
[Q, M.pivot]
|
|
1491
1481
|
), ce = g(
|
|
1492
1482
|
(e) => M.mirror ? { x: B - e.x, y: e.y } : e,
|
|
1493
1483
|
[M.mirror, B]
|
|
1494
|
-
), [
|
|
1484
|
+
), [Vt, Pn] = T(
|
|
1495
1485
|
() => M.landmarks.map((e) => ce(rt(Q, e)))
|
|
1496
1486
|
), wt = N(null), [ai, Dn] = T(null), Bn = N(null), [xe, Se] = T(it), Yt = N(xe);
|
|
1497
1487
|
Yt.current = xe;
|
|
1498
|
-
const kt = N(M.viewBox),
|
|
1488
|
+
const kt = N(M.viewBox), _e = N(null);
|
|
1499
1489
|
ne(() => {
|
|
1500
1490
|
wt.current === null && Pn(
|
|
1501
1491
|
M.landmarks.map((e) => ce(rt(Q, e)))
|
|
@@ -1542,9 +1532,9 @@ const yo = {
|
|
|
1542
1532
|
Number.isFinite(e) && e > 0 ? e / t.k : 1
|
|
1543
1533
|
)
|
|
1544
1534
|
);
|
|
1545
|
-
}, []), qt = g(() => Se(it), []),
|
|
1546
|
-
if (!(!
|
|
1547
|
-
|
|
1535
|
+
}, []), qt = g(() => Se(it), []), Un = g((e) => {
|
|
1536
|
+
if (!(!_e.current || _e.current.id !== e.pointerId)) {
|
|
1537
|
+
_e.current = null;
|
|
1548
1538
|
try {
|
|
1549
1539
|
e.currentTarget.releasePointerCapture(e.pointerId);
|
|
1550
1540
|
} catch {
|
|
@@ -1559,15 +1549,15 @@ const yo = {
|
|
|
1559
1549
|
(e) => {
|
|
1560
1550
|
const t = wt.current;
|
|
1561
1551
|
if (t === null) return;
|
|
1562
|
-
const i = ve(e.clientX, e.clientY), s =
|
|
1552
|
+
const i = ve(e.clientX, e.clientY), s = Vt.map((x, Y) => Y === t ? i : x);
|
|
1563
1553
|
Pn(s);
|
|
1564
1554
|
const u = M.landmarks.map((x) => ({ x: x.x, y: x.y }));
|
|
1565
1555
|
ae(Kr(u, s.map(ce)));
|
|
1566
1556
|
},
|
|
1567
|
-
[
|
|
1557
|
+
[Vt, ve, M.landmarks, ae, ce]
|
|
1568
1558
|
), di = g(() => {
|
|
1569
1559
|
wt.current = null, Dn(null);
|
|
1570
|
-
}, []), [
|
|
1560
|
+
}, []), [Ve, ue] = T("idle"), [Vn, ze] = T(
|
|
1571
1561
|
null
|
|
1572
1562
|
), [Yn, ui] = T({}), Me = (o == null ? void 0 : o[A]) ?? (A === "front" ? r : void 0), ee = Yn[A] ?? (Me == null ? void 0 : Me.src), Gt = I !== void 0, [fi, hi] = T(R ?? {}), Ct = Gt ? I : fi, W = N(Ct);
|
|
1573
1563
|
W.current = Ct;
|
|
@@ -1592,7 +1582,7 @@ const yo = {
|
|
|
1592
1582
|
const t = dt.current;
|
|
1593
1583
|
if (!t) return null;
|
|
1594
1584
|
const i = rt(
|
|
1595
|
-
|
|
1585
|
+
so(Ht.current),
|
|
1596
1586
|
ce(e)
|
|
1597
1587
|
), s = t.querySelectorAll(
|
|
1598
1588
|
"[data-zone] > path:first-of-type"
|
|
@@ -1609,7 +1599,7 @@ const yo = {
|
|
|
1609
1599
|
[ce]
|
|
1610
1600
|
), Ae = g(
|
|
1611
1601
|
(e) => {
|
|
1612
|
-
const t = e.id ?? Xn(), i = { ...e, id: t }, s = i.zoneId === void 0 ? { ...i, zoneId: qn(
|
|
1602
|
+
const t = e.id ?? Xn(), i = { ...e, id: t }, s = i.zoneId === void 0 ? { ...i, zoneId: qn(no(i)) } : i, u = W.current[K.current] ?? [];
|
|
1613
1603
|
return Z([...u, s]), O(t), t;
|
|
1614
1604
|
},
|
|
1615
1605
|
[Z, Xn, O, qn]
|
|
@@ -1634,8 +1624,8 @@ const yo = {
|
|
|
1634
1624
|
(W.current[K.current] ?? []).length > 0 && Z([]);
|
|
1635
1625
|
}, [Z]), tn = le !== void 0, [gi, yi] = T(
|
|
1636
1626
|
ge
|
|
1637
|
-
),
|
|
1638
|
-
nn.current =
|
|
1627
|
+
), V = z ? (tn ? le : gi) ?? null : null, nn = N(V);
|
|
1628
|
+
nn.current = V;
|
|
1639
1629
|
const rn = g(
|
|
1640
1630
|
(e) => {
|
|
1641
1631
|
tn || yi(e), ye == null || ye(e);
|
|
@@ -1655,18 +1645,18 @@ const yo = {
|
|
|
1655
1645
|
}, [Xe]), ne(() => {
|
|
1656
1646
|
Ie !== null && ht(!0);
|
|
1657
1647
|
}, [Ie]);
|
|
1658
|
-
const Qn = N(
|
|
1648
|
+
const Qn = N(U.length);
|
|
1659
1649
|
ne(() => {
|
|
1660
|
-
Qn.current === 0 &&
|
|
1661
|
-
}, [
|
|
1662
|
-
const er = N(
|
|
1650
|
+
Qn.current === 0 && U.length > 0 && ht(!0), Qn.current = U.length;
|
|
1651
|
+
}, [U.length]);
|
|
1652
|
+
const er = N(V), tr = N(A);
|
|
1663
1653
|
ne(() => {
|
|
1664
|
-
(er.current !==
|
|
1665
|
-
}, [
|
|
1654
|
+
(er.current !== V || tr.current !== A) && (er.current = V, tr.current = A, O(null));
|
|
1655
|
+
}, [V, A, O]), ne(() => {
|
|
1666
1656
|
const e = te.current;
|
|
1667
1657
|
e !== null && !Ne.some((t) => t.id === e) && O(null);
|
|
1668
1658
|
}, [Ne, O]);
|
|
1669
|
-
const qe =
|
|
1659
|
+
const qe = V !== null, wi = g(
|
|
1670
1660
|
(e) => {
|
|
1671
1661
|
var s, u;
|
|
1672
1662
|
const t = nn.current;
|
|
@@ -1747,21 +1737,21 @@ const yo = {
|
|
|
1747
1737
|
if (It(null), !e) return;
|
|
1748
1738
|
const t = W.current[K.current] ?? [], i = t.find((s) => s.id === e);
|
|
1749
1739
|
i && i.kind === "text" && i.text.trim() === "" && Z(t.filter((s) => s.id !== e));
|
|
1750
|
-
}, [Z]),
|
|
1740
|
+
}, [Z]), Le = g(() => {
|
|
1751
1741
|
var t;
|
|
1752
1742
|
(t = We.current) == null || t.getTracks().forEach((i) => i.stop()), We.current = null;
|
|
1753
1743
|
const e = ut.current;
|
|
1754
1744
|
e && (e.srcObject = null);
|
|
1755
1745
|
}, []), dn = g(() => {
|
|
1756
|
-
|
|
1757
|
-
}, [
|
|
1746
|
+
Le(), ue("idle");
|
|
1747
|
+
}, [Le]), un = g(async () => {
|
|
1758
1748
|
var e;
|
|
1759
1749
|
if (Kt) {
|
|
1760
|
-
if (!
|
|
1761
|
-
|
|
1750
|
+
if (!mo()) {
|
|
1751
|
+
ze("insecure-context"), ue("error");
|
|
1762
1752
|
return;
|
|
1763
1753
|
}
|
|
1764
|
-
|
|
1754
|
+
ze(null), ue("requesting");
|
|
1765
1755
|
try {
|
|
1766
1756
|
const t = await navigator.mediaDevices.getUserMedia({
|
|
1767
1757
|
video: { facingMode: Zt },
|
|
@@ -1784,10 +1774,10 @@ const yo = {
|
|
|
1784
1774
|
}
|
|
1785
1775
|
ue("streaming");
|
|
1786
1776
|
} catch (t) {
|
|
1787
|
-
|
|
1777
|
+
Le(), ze(po(t)), ue("error");
|
|
1788
1778
|
}
|
|
1789
1779
|
}
|
|
1790
|
-
}, [Kt, Zt,
|
|
1780
|
+
}, [Kt, Zt, Le]), Ge = g(
|
|
1791
1781
|
(e, t, i) => {
|
|
1792
1782
|
ui((s) => ({ ...s, [A]: e })), ct == null || ct({ src: e, width: t, height: i, view: A });
|
|
1793
1783
|
},
|
|
@@ -1795,24 +1785,24 @@ const yo = {
|
|
|
1795
1785
|
), Ci = g(() => {
|
|
1796
1786
|
const e = ut.current, t = (e == null ? void 0 : e.videoWidth) || (e == null ? void 0 : e.clientWidth) || 0, i = (e == null ? void 0 : e.videoHeight) || (e == null ? void 0 : e.clientHeight) || 0;
|
|
1797
1787
|
if (!e || e.readyState < 2 || t === 0 || i === 0) {
|
|
1798
|
-
|
|
1788
|
+
ze("capture-failed"), ue("error");
|
|
1799
1789
|
return;
|
|
1800
1790
|
}
|
|
1801
1791
|
const s = document.createElement("canvas");
|
|
1802
1792
|
s.width = t, s.height = i;
|
|
1803
1793
|
const u = s.getContext("2d");
|
|
1804
1794
|
if (!u) {
|
|
1805
|
-
|
|
1795
|
+
ze("capture-failed"), ue("error");
|
|
1806
1796
|
return;
|
|
1807
1797
|
}
|
|
1808
1798
|
try {
|
|
1809
1799
|
u.drawImage(e, 0, 0, t, i);
|
|
1810
1800
|
} catch {
|
|
1811
|
-
|
|
1801
|
+
ze("capture-failed"), ue("error");
|
|
1812
1802
|
return;
|
|
1813
1803
|
}
|
|
1814
|
-
|
|
1815
|
-
}, [
|
|
1804
|
+
Le(), Ge(s.toDataURL("image/jpeg", 0.92), t, i), ue("idle");
|
|
1805
|
+
}, [Le, Ge]), Si = g(
|
|
1816
1806
|
(e) => {
|
|
1817
1807
|
var s;
|
|
1818
1808
|
const t = (s = e.target.files) == null ? void 0 : s[0];
|
|
@@ -1831,12 +1821,12 @@ const yo = {
|
|
|
1831
1821
|
var e;
|
|
1832
1822
|
Ot.current = !0, (e = We.current) == null || e.getTracks().forEach((t) => t.stop()), We.current = null;
|
|
1833
1823
|
}), []);
|
|
1834
|
-
const fe =
|
|
1824
|
+
const fe = Ve === "streaming", ir = N(!1);
|
|
1835
1825
|
ne(() => {
|
|
1836
1826
|
var e;
|
|
1837
1827
|
ir.current && !fe && ((e = En.current) == null || e.focus()), ir.current = fe;
|
|
1838
1828
|
}, [fe]);
|
|
1839
|
-
const [At, Mi] = T("idle"),
|
|
1829
|
+
const [At, Mi] = T("idle"), Re = g(
|
|
1840
1830
|
(e) => {
|
|
1841
1831
|
Mi(e), at == null || at(e);
|
|
1842
1832
|
},
|
|
@@ -1844,12 +1834,12 @@ const yo = {
|
|
|
1844
1834
|
), fn = g(async () => {
|
|
1845
1835
|
if (!je || !ee || M.landmarks.length === 0)
|
|
1846
1836
|
return !1;
|
|
1847
|
-
const e = typeof je == "object" ? je : {}, t = (i) =>
|
|
1837
|
+
const e = typeof je == "object" ? je : {}, t = (i) => Re(i === "detecting" ? "detecting" : "loading");
|
|
1848
1838
|
try {
|
|
1849
|
-
|
|
1839
|
+
Re("loading");
|
|
1850
1840
|
let i;
|
|
1851
1841
|
if (M.id === "front")
|
|
1852
|
-
i = await
|
|
1842
|
+
i = await Os(ee, {
|
|
1853
1843
|
viewWidth: B,
|
|
1854
1844
|
viewHeight: se,
|
|
1855
1845
|
onStage: t,
|
|
@@ -1857,7 +1847,7 @@ const yo = {
|
|
|
1857
1847
|
modelAssetPath: e.modelAssetPath
|
|
1858
1848
|
});
|
|
1859
1849
|
else {
|
|
1860
|
-
const s = await
|
|
1850
|
+
const s = await Xs(ee, {
|
|
1861
1851
|
viewWidth: B,
|
|
1862
1852
|
viewHeight: se,
|
|
1863
1853
|
onStage: t,
|
|
@@ -1865,11 +1855,11 @@ const yo = {
|
|
|
1865
1855
|
ortWasmBaseUrl: e.ortWasmBaseUrl,
|
|
1866
1856
|
modelUrl: e.yunetModelUrl
|
|
1867
1857
|
});
|
|
1868
|
-
i = s &&
|
|
1858
|
+
i = s && ho(s);
|
|
1869
1859
|
}
|
|
1870
|
-
return !i || i.length < 3 ? (
|
|
1860
|
+
return !i || i.length < 3 ? (Re("no-face"), !1) : (bt(i), Re("done"), !0);
|
|
1871
1861
|
} catch {
|
|
1872
|
-
return
|
|
1862
|
+
return Re("error"), !1;
|
|
1873
1863
|
}
|
|
1874
1864
|
}, [
|
|
1875
1865
|
je,
|
|
@@ -1878,7 +1868,7 @@ const yo = {
|
|
|
1878
1868
|
M.landmarks,
|
|
1879
1869
|
B,
|
|
1880
1870
|
se,
|
|
1881
|
-
|
|
1871
|
+
Re,
|
|
1882
1872
|
bt
|
|
1883
1873
|
]), sr = g((e) => {
|
|
1884
1874
|
var t, i;
|
|
@@ -1898,7 +1888,7 @@ const yo = {
|
|
|
1898
1888
|
},
|
|
1899
1889
|
getRegistration: () => Ht.current,
|
|
1900
1890
|
setRegistration: (e) => ae(e),
|
|
1901
|
-
resetRegistration: () => ae(
|
|
1891
|
+
resetRegistration: () => ae(Pe),
|
|
1902
1892
|
fitToLandmarks: bt,
|
|
1903
1893
|
detect: fn,
|
|
1904
1894
|
startCapture: () => void un(),
|
|
@@ -1932,8 +1922,8 @@ const yo = {
|
|
|
1932
1922
|
},
|
|
1933
1923
|
setAnnotationZone: Jt,
|
|
1934
1924
|
getSelectedZones: () => de.current,
|
|
1935
|
-
setSelectedZones: (e) =>
|
|
1936
|
-
clearZoneSelection:
|
|
1925
|
+
setSelectedZones: (e) => Ee([...e]),
|
|
1926
|
+
clearZoneSelection: Ue,
|
|
1937
1927
|
applyFindingToSelection: (e, t) => xt(de.current, e, t),
|
|
1938
1928
|
removeFindingFromSelection: (e) => jt(de.current, e),
|
|
1939
1929
|
setFindingBulk: xt
|
|
@@ -1956,15 +1946,15 @@ const yo = {
|
|
|
1956
1946
|
rn,
|
|
1957
1947
|
O,
|
|
1958
1948
|
Jt,
|
|
1959
|
-
|
|
1960
|
-
|
|
1949
|
+
Ee,
|
|
1950
|
+
Ue,
|
|
1961
1951
|
xt,
|
|
1962
1952
|
jt,
|
|
1963
1953
|
Hn,
|
|
1964
1954
|
qt
|
|
1965
1955
|
]
|
|
1966
1956
|
);
|
|
1967
|
-
Yi(Gr, () => hn, [hn]), Gi(
|
|
1957
|
+
Yi(Gr, () => hn, [hn]), Gi(zs, hn, lt);
|
|
1968
1958
|
const or = g(
|
|
1969
1959
|
(e) => {
|
|
1970
1960
|
const t = f(`faceScheme.zone.${e.labelKey}`), i = j.current[e.id] ?? [];
|
|
@@ -1990,10 +1980,10 @@ const yo = {
|
|
|
1990
1980
|
]
|
|
1991
1981
|
), Ni = Me != null && Me.altKey ? f(Me.altKey) : f("faceScheme.photo.defaultAlt"), Ii = M.mirror ? `translate(${B} 0) scale(-1 1) ${_t(Q)}` : _t(Q), Ai = g(
|
|
1992
1982
|
(e, t) => {
|
|
1993
|
-
ae(
|
|
1983
|
+
ae(uo({ ...Ut, [e]: t }, M.pivot));
|
|
1994
1984
|
},
|
|
1995
|
-
[ae,
|
|
1996
|
-
), cr = !!je && !!ee && M.landmarks.length > 0, mn = Kt, lr = m &&
|
|
1985
|
+
[ae, Ut, M.pivot]
|
|
1986
|
+
), cr = !!je && !!ee && M.landmarks.length > 0, mn = Kt, lr = m && Js.length > 1, Je = z && pe, he = z && re, pn = J || Je || Ce || he, dr = Dt && pn, we = mt === "all" && lr;
|
|
1997
1987
|
ne(() => {
|
|
1998
1988
|
Se(it);
|
|
1999
1989
|
}, [A, he]), ne(() => {
|
|
@@ -2016,10 +2006,10 @@ const yo = {
|
|
|
2016
2006
|
return e.addEventListener("wheel", t, { passive: !1 }), () => e.removeEventListener("wheel", t);
|
|
2017
2007
|
}, [he, ve, we, A, fe]);
|
|
2018
2008
|
const Qe = dr && !we, Ti = Qe ? "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:lg:flex-row ds:lg:items-stretch ds:lg:justify-center" : "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", Ei = Qe ? "ds:flex ds:w-full ds:min-w-0 ds:flex-col ds:gap-[var(--spacing-sm)] ds:lg:w-[28rem] ds:lg:shrink-0" : "ds:flex ds:w-full ds:min-w-0 ds:flex-col ds:gap-[var(--spacing-sm)]", _i = Qe ? "ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-md)] ds:lg:w-[28rem] ds:lg:shrink-0 ds:lg:self-stretch" : "ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-md)]", zi = Qe ? "ds:lg:h-0 ds:lg:min-h-full" : void 0, Li = Qe ? "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:lg:min-h-0 ds:lg:flex-1 ds:lg:overflow-y-auto" : "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", ur = lr, Ri = ur || mn || pn, fr = pn ? /* @__PURE__ */ a(
|
|
2019
|
-
|
|
2009
|
+
Ke,
|
|
2020
2010
|
{
|
|
2021
2011
|
size: "sm",
|
|
2022
|
-
icon: /* @__PURE__ */ a(
|
|
2012
|
+
icon: /* @__PURE__ */ a(Ns, { "aria-hidden": "true" }),
|
|
2023
2013
|
"aria-label": f("faceScheme.panel.toggle"),
|
|
2024
2014
|
"aria-expanded": Dt,
|
|
2025
2015
|
"aria-controls": Dt ? _n : void 0,
|
|
@@ -2027,7 +2017,7 @@ const yo = {
|
|
|
2027
2017
|
onClick: () => ht((e) => !e)
|
|
2028
2018
|
},
|
|
2029
2019
|
"panel"
|
|
2030
|
-
) : null, $i =
|
|
2020
|
+
) : null, $i = V ?? "select", hr = `${G}-draw`, mr = `${G}-fit`, pr = `${G}-zoom`, gr = `${G}-tools`, yr = `${G}-tones`, xr = `${G}-shapes`, Fi = `${G}-ann-zone`, et = Ie !== null ? Ne.find((e) => e.id === Ie) : void 0, Ki = M.zones.map((e) => ({
|
|
2031
2021
|
value: e.id,
|
|
2032
2022
|
label: f(`faceScheme.zone.${e.labelKey}`)
|
|
2033
2023
|
})), me = "ds:text-[length:var(--font-size-xs)] ds:font-medium ds:text-[var(--muted-foreground)]", vr = `${G}-zones`, wr = `${G}-zones-apply`, Zi = J ? /* @__PURE__ */ C(
|
|
@@ -2046,7 +2036,7 @@ const yo = {
|
|
|
2046
2036
|
"aria-live": "polite",
|
|
2047
2037
|
className: "ds:text-[length:var(--font-size-xs)] ds:text-[var(--foreground)]",
|
|
2048
2038
|
children: f("faceScheme.zonesPanel.selectedTotal", {
|
|
2049
|
-
n:
|
|
2039
|
+
n: U.length
|
|
2050
2040
|
})
|
|
2051
2041
|
}
|
|
2052
2042
|
),
|
|
@@ -2059,7 +2049,7 @@ const yo = {
|
|
|
2059
2049
|
"aria-labelledby": wr,
|
|
2060
2050
|
className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-xs)]",
|
|
2061
2051
|
children: Rr.map((e) => {
|
|
2062
|
-
const t = Et[e], i =
|
|
2052
|
+
const t = Et[e], i = U.length > 0 && U.every(
|
|
2063
2053
|
(s) => (He[s] ?? []).some((u) => u.type === e)
|
|
2064
2054
|
);
|
|
2065
2055
|
return /* @__PURE__ */ a(
|
|
@@ -2068,12 +2058,12 @@ const yo = {
|
|
|
2068
2058
|
size: "sm",
|
|
2069
2059
|
intent: "outline",
|
|
2070
2060
|
"aria-pressed": i,
|
|
2071
|
-
disabled:
|
|
2061
|
+
disabled: U.length === 0,
|
|
2072
2062
|
startIcon: /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ a(
|
|
2073
2063
|
"path",
|
|
2074
2064
|
{
|
|
2075
2065
|
d: tt(t.shape, 12, 12, 9),
|
|
2076
|
-
className:
|
|
2066
|
+
className: Oe[t.tone]
|
|
2077
2067
|
}
|
|
2078
2068
|
) }),
|
|
2079
2069
|
onClick: () => {
|
|
@@ -2111,8 +2101,8 @@ const yo = {
|
|
|
2111
2101
|
size: "sm",
|
|
2112
2102
|
intent: "outline",
|
|
2113
2103
|
className: "ds:self-start",
|
|
2114
|
-
onClick:
|
|
2115
|
-
disabled:
|
|
2104
|
+
onClick: Ue,
|
|
2105
|
+
disabled: U.length === 0,
|
|
2116
2106
|
children: f("faceScheme.zonesPanel.clearSelection")
|
|
2117
2107
|
}
|
|
2118
2108
|
)
|
|
@@ -2139,11 +2129,11 @@ const yo = {
|
|
|
2139
2129
|
className: "ds:self-start",
|
|
2140
2130
|
value: $i,
|
|
2141
2131
|
onValueChange: (e) => rn(e === "select" ? null : e),
|
|
2142
|
-
children: ["select", ...
|
|
2132
|
+
children: ["select", ...Qs].map(
|
|
2143
2133
|
(e) => {
|
|
2144
|
-
const t =
|
|
2134
|
+
const t = bo[e];
|
|
2145
2135
|
return /* @__PURE__ */ a(
|
|
2146
|
-
|
|
2136
|
+
Ke,
|
|
2147
2137
|
{
|
|
2148
2138
|
value: e,
|
|
2149
2139
|
icon: /* @__PURE__ */ a(t, { "aria-hidden": "true" }),
|
|
@@ -2180,8 +2170,8 @@ const yo = {
|
|
|
2180
2170
|
);
|
|
2181
2171
|
}
|
|
2182
2172
|
},
|
|
2183
|
-
children:
|
|
2184
|
-
|
|
2173
|
+
children: Co.map((e) => /* @__PURE__ */ a(
|
|
2174
|
+
Ke,
|
|
2185
2175
|
{
|
|
2186
2176
|
value: e,
|
|
2187
2177
|
icon: /* @__PURE__ */ a("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ a(
|
|
@@ -2190,7 +2180,7 @@ const yo = {
|
|
|
2190
2180
|
cx: 8,
|
|
2191
2181
|
cy: 8,
|
|
2192
2182
|
r: 6,
|
|
2193
|
-
className:
|
|
2183
|
+
className: Oe[e]
|
|
2194
2184
|
}
|
|
2195
2185
|
) }),
|
|
2196
2186
|
"aria-label": f(`faceScheme.annotate.tone.${e}`)
|
|
@@ -2200,7 +2190,7 @@ const yo = {
|
|
|
2200
2190
|
}
|
|
2201
2191
|
)
|
|
2202
2192
|
] }),
|
|
2203
|
-
|
|
2193
|
+
V === "marker" && /* @__PURE__ */ C("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
|
|
2204
2194
|
/* @__PURE__ */ a("span", { id: xr, className: me, children: f("faceScheme.annotate.shapeLabel") }),
|
|
2205
2195
|
/* @__PURE__ */ a(
|
|
2206
2196
|
vn,
|
|
@@ -2213,7 +2203,7 @@ const yo = {
|
|
|
2213
2203
|
value: sn,
|
|
2214
2204
|
onValueChange: (e) => xi(e),
|
|
2215
2205
|
children: Ji.map((e) => /* @__PURE__ */ a(
|
|
2216
|
-
|
|
2206
|
+
Ke,
|
|
2217
2207
|
{
|
|
2218
2208
|
value: e,
|
|
2219
2209
|
icon: /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ a(
|
|
@@ -2275,7 +2265,7 @@ const yo = {
|
|
|
2275
2265
|
{
|
|
2276
2266
|
size: "sm",
|
|
2277
2267
|
intent: "outline",
|
|
2278
|
-
startIcon: /* @__PURE__ */ a(
|
|
2268
|
+
startIcon: /* @__PURE__ */ a(fs, { "aria-hidden": "true" }),
|
|
2279
2269
|
onClick: () => {
|
|
2280
2270
|
const e = te.current;
|
|
2281
2271
|
e !== null && St(e);
|
|
@@ -2289,7 +2279,7 @@ const yo = {
|
|
|
2289
2279
|
{
|
|
2290
2280
|
size: "sm",
|
|
2291
2281
|
intent: "outline",
|
|
2292
|
-
startIcon: /* @__PURE__ */ a(
|
|
2282
|
+
startIcon: /* @__PURE__ */ a(ds, { "aria-hidden": "true" }),
|
|
2293
2283
|
onClick: Qt,
|
|
2294
2284
|
disabled: Ne.length === 0,
|
|
2295
2285
|
children: f("faceScheme.annotate.undo")
|
|
@@ -2300,7 +2290,7 @@ const yo = {
|
|
|
2300
2290
|
{
|
|
2301
2291
|
size: "sm",
|
|
2302
2292
|
intent: "outline",
|
|
2303
|
-
startIcon: /* @__PURE__ */ a(
|
|
2293
|
+
startIcon: /* @__PURE__ */ a(hs, { "aria-hidden": "true" }),
|
|
2304
2294
|
onClick: en,
|
|
2305
2295
|
disabled: Ne.length === 0,
|
|
2306
2296
|
children: f("faceScheme.annotate.clear")
|
|
@@ -2324,8 +2314,8 @@ const yo = {
|
|
|
2324
2314
|
return /* @__PURE__ */ a(
|
|
2325
2315
|
"path",
|
|
2326
2316
|
{
|
|
2327
|
-
d: tt(e.shape, e.x, e.y,
|
|
2328
|
-
className:
|
|
2317
|
+
d: tt(e.shape, e.x, e.y, yo),
|
|
2318
|
+
className: Oe[t],
|
|
2329
2319
|
pointerEvents: "none"
|
|
2330
2320
|
}
|
|
2331
2321
|
);
|
|
@@ -2336,7 +2326,7 @@ const yo = {
|
|
|
2336
2326
|
{
|
|
2337
2327
|
d: Hr(e.points),
|
|
2338
2328
|
fill: "none",
|
|
2339
|
-
strokeWidth: e.kind === "highlighter" ?
|
|
2329
|
+
strokeWidth: e.kind === "highlighter" ? vo : xo,
|
|
2340
2330
|
strokeOpacity: e.kind === "highlighter" ? 0.35 : 1,
|
|
2341
2331
|
strokeLinecap: "round",
|
|
2342
2332
|
strokeLinejoin: "round",
|
|
@@ -2358,7 +2348,7 @@ const yo = {
|
|
|
2358
2348
|
/* @__PURE__ */ a(
|
|
2359
2349
|
"path",
|
|
2360
2350
|
{
|
|
2361
|
-
d:
|
|
2351
|
+
d: eo(e.from, e.to, wo),
|
|
2362
2352
|
fill: "none",
|
|
2363
2353
|
strokeWidth: Rt,
|
|
2364
2354
|
strokeLinecap: "round",
|
|
@@ -2391,7 +2381,7 @@ const yo = {
|
|
|
2391
2381
|
paintOrder: "stroke",
|
|
2392
2382
|
strokeWidth: 6,
|
|
2393
2383
|
strokeLinejoin: "round",
|
|
2394
|
-
className: `${
|
|
2384
|
+
className: `${Oe[t]} ds:[stroke:var(--background)] ds:[font-family:var(--font-sans)] ds:[font-weight:500]`,
|
|
2395
2385
|
pointerEvents: "none",
|
|
2396
2386
|
children: e.text
|
|
2397
2387
|
}
|
|
@@ -2407,7 +2397,7 @@ const yo = {
|
|
|
2407
2397
|
);
|
|
2408
2398
|
}
|
|
2409
2399
|
}, Di = (e) => {
|
|
2410
|
-
const t =
|
|
2400
|
+
const t = io(e, Zr);
|
|
2411
2401
|
switch (t.type) {
|
|
2412
2402
|
case "stroke":
|
|
2413
2403
|
return /* @__PURE__ */ a(
|
|
@@ -2417,7 +2407,7 @@ const yo = {
|
|
|
2417
2407
|
d: t.d,
|
|
2418
2408
|
fill: "none",
|
|
2419
2409
|
stroke: "transparent",
|
|
2420
|
-
strokeWidth:
|
|
2410
|
+
strokeWidth: ro,
|
|
2421
2411
|
strokeLinecap: "round",
|
|
2422
2412
|
strokeLinejoin: "round",
|
|
2423
2413
|
pointerEvents: "stroke",
|
|
@@ -2461,10 +2451,10 @@ const yo = {
|
|
|
2461
2451
|
Bn.current = kr;
|
|
2462
2452
|
const yn = ee ? ai ?? kr ?? M.viewBox : we || !Ce ? M.schematicViewBox : M.viewBox;
|
|
2463
2453
|
kt.current = yn;
|
|
2464
|
-
const br = he && xe.k > 1, Bi = br ?
|
|
2454
|
+
const br = he && xe.k > 1, Bi = br ? co(st(zt(yn), xe)) : yn, Cr = br && V === null, Sr = (e) => {
|
|
2465
2455
|
if (e !== A) {
|
|
2466
|
-
const t = Sn[e], i = (o == null ? void 0 : o[e]) ?? (e === "front" ? r : void 0), s = Yn[e] ?? (i == null ? void 0 : i.src), u = vt[e] ??
|
|
2467
|
-
return /* @__PURE__ */ a(
|
|
2456
|
+
const t = Sn[e], i = (o == null ? void 0 : o[e]) ?? (e === "front" ? r : void 0), s = Yn[e] ?? (i == null ? void 0 : i.src), u = vt[e] ?? Pe, x = t.mirror ? `translate(${B} 0) scale(-1 1) ${_t(u)}` : _t(u), Y = Ct[e] ?? Or;
|
|
2457
|
+
return /* @__PURE__ */ a(Ze, { variant: "elevated", interactive: !0, asChild: !0, children: /* @__PURE__ */ a(
|
|
2468
2458
|
"button",
|
|
2469
2459
|
{
|
|
2470
2460
|
type: "button",
|
|
@@ -2523,7 +2513,7 @@ const yo = {
|
|
|
2523
2513
|
E.cy,
|
|
2524
2514
|
11
|
|
2525
2515
|
),
|
|
2526
|
-
className:
|
|
2516
|
+
className: Oe[Nr.tone]
|
|
2527
2517
|
},
|
|
2528
2518
|
Mr.type
|
|
2529
2519
|
);
|
|
@@ -2537,8 +2527,8 @@ const yo = {
|
|
|
2537
2527
|
}
|
|
2538
2528
|
) });
|
|
2539
2529
|
}
|
|
2540
|
-
return /* @__PURE__ */ a(
|
|
2541
|
-
|
|
2530
|
+
return /* @__PURE__ */ a(Fe.Provider, { delayDuration: 200, children: /* @__PURE__ */ a(
|
|
2531
|
+
Ze,
|
|
2542
2532
|
{
|
|
2543
2533
|
variant: "elevated",
|
|
2544
2534
|
"data-testid": "face-scheme-figure",
|
|
@@ -2564,7 +2554,7 @@ const yo = {
|
|
|
2564
2554
|
i,
|
|
2565
2555
|
'[data-zone],[data-annotation],[data-annotation-hit],[data-testid="face-scheme-handles"]'
|
|
2566
2556
|
))) {
|
|
2567
|
-
|
|
2557
|
+
_e.current = {
|
|
2568
2558
|
id: t.pointerId,
|
|
2569
2559
|
x: t.clientX,
|
|
2570
2560
|
y: t.clientY
|
|
@@ -2576,21 +2566,21 @@ const yo = {
|
|
|
2576
2566
|
}
|
|
2577
2567
|
} : void 0,
|
|
2578
2568
|
onPointerMove: he ? (t) => {
|
|
2579
|
-
const i =
|
|
2569
|
+
const i = _e.current;
|
|
2580
2570
|
if (!i || i.id !== t.pointerId) return;
|
|
2581
2571
|
const s = t.currentTarget.getBoundingClientRect();
|
|
2582
2572
|
if (s.width <= 0 || s.height <= 0) return;
|
|
2583
2573
|
const u = zt(kt.current), x = st(u, Yt.current), Y = (t.clientX - i.x) * x.width / s.width, E = (t.clientY - i.y) * x.height / s.height;
|
|
2584
|
-
|
|
2574
|
+
_e.current = {
|
|
2585
2575
|
id: i.id,
|
|
2586
2576
|
x: t.clientX,
|
|
2587
2577
|
y: t.clientY
|
|
2588
|
-
}, Se((Te) =>
|
|
2578
|
+
}, Se((Te) => lo(u, Te, Y, E));
|
|
2589
2579
|
} : void 0,
|
|
2590
|
-
onPointerUp: he ?
|
|
2591
|
-
onPointerCancel: he ?
|
|
2580
|
+
onPointerUp: he ? Un : void 0,
|
|
2581
|
+
onPointerCancel: he ? Un : void 0,
|
|
2592
2582
|
onKeyDown: J ? (t) => {
|
|
2593
|
-
t.key === "Escape" &&
|
|
2583
|
+
t.key === "Escape" && Ue();
|
|
2594
2584
|
} : void 0,
|
|
2595
2585
|
children: [
|
|
2596
2586
|
ee && /* @__PURE__ */ a(
|
|
@@ -2608,8 +2598,8 @@ const yo = {
|
|
|
2608
2598
|
),
|
|
2609
2599
|
/* @__PURE__ */ a("g", { transform: Ii, children: M.zones.map((t) => {
|
|
2610
2600
|
const i = He[t.id] ?? [], s = i.length > 0, u = J && $n.has(t.id);
|
|
2611
|
-
return /* @__PURE__ */ C(
|
|
2612
|
-
/* @__PURE__ */ a(
|
|
2601
|
+
return /* @__PURE__ */ C(Fe.Root, { children: [
|
|
2602
|
+
/* @__PURE__ */ a(Fe.Trigger, { asChild: !0, children: /* @__PURE__ */ C(
|
|
2613
2603
|
"g",
|
|
2614
2604
|
{
|
|
2615
2605
|
"data-zone": t.id,
|
|
@@ -2622,7 +2612,7 @@ const yo = {
|
|
|
2622
2612
|
tabIndex: z || v ? 0 : -1,
|
|
2623
2613
|
onClick: () => ar(t),
|
|
2624
2614
|
onKeyDown: (x) => {
|
|
2625
|
-
x.key === "Enter" || x.key === " " ? (x.preventDefault(), ar(t)) : x.key === "Escape" && J &&
|
|
2615
|
+
x.key === "Enter" || x.key === " " ? (x.preventDefault(), ar(t)) : x.key === "Escape" && J && Ue();
|
|
2626
2616
|
},
|
|
2627
2617
|
children: [
|
|
2628
2618
|
/* @__PURE__ */ a(
|
|
@@ -2648,7 +2638,7 @@ const yo = {
|
|
|
2648
2638
|
11
|
|
2649
2639
|
),
|
|
2650
2640
|
"aria-hidden": "true",
|
|
2651
|
-
className:
|
|
2641
|
+
className: Oe[E.tone]
|
|
2652
2642
|
},
|
|
2653
2643
|
x.type
|
|
2654
2644
|
);
|
|
@@ -2656,14 +2646,14 @@ const yo = {
|
|
|
2656
2646
|
]
|
|
2657
2647
|
}
|
|
2658
2648
|
) }),
|
|
2659
|
-
/* @__PURE__ */ a(
|
|
2660
|
-
|
|
2649
|
+
/* @__PURE__ */ a(Fe.Portal, { children: /* @__PURE__ */ C(
|
|
2650
|
+
Fe.Content,
|
|
2661
2651
|
{
|
|
2662
2652
|
sideOffset: 4,
|
|
2663
2653
|
className: "ds:z-50 ds:rounded-[var(--radius-sm)] ds:bg-[var(--popover)] ds:px-2 ds:py-1 ds:text-[length:var(--font-size-xs)] ds:text-[var(--popover-foreground)] ds:shadow-[var(--shadow-md)]",
|
|
2664
2654
|
children: [
|
|
2665
2655
|
or(t),
|
|
2666
|
-
/* @__PURE__ */ a(
|
|
2656
|
+
/* @__PURE__ */ a(Fe.Arrow, { className: "ds:[fill:var(--popover)]" })
|
|
2667
2657
|
]
|
|
2668
2658
|
}
|
|
2669
2659
|
) })
|
|
@@ -2671,7 +2661,7 @@ const yo = {
|
|
|
2671
2661
|
}) }),
|
|
2672
2662
|
/* @__PURE__ */ C("g", { "data-testid": "face-scheme-annotations", children: [
|
|
2673
2663
|
Ne.map((t) => {
|
|
2674
|
-
const i =
|
|
2664
|
+
const i = to(t), s = Ie === t.id;
|
|
2675
2665
|
return /* @__PURE__ */ C(
|
|
2676
2666
|
"g",
|
|
2677
2667
|
{
|
|
@@ -2684,7 +2674,7 @@ const yo = {
|
|
|
2684
2674
|
"aria-pressed": z ? s : void 0,
|
|
2685
2675
|
tabIndex: z ? 0 : -1,
|
|
2686
2676
|
className: "ds:outline-none ds:[&:focus-visible>*:first-child]:[stroke-opacity:1] ds:[&[data-selected=true]>*:first-child]:[stroke-opacity:1] ds:[&[data-selected=true]>*:first-child]:[stroke-dasharray:6_4] ds:forced-colors:[&:focus-visible>*:first-child]:[stroke:CanvasText] ds:forced-colors:[&[data-selected=true]>*:first-child]:[stroke:CanvasText]",
|
|
2687
|
-
onClick: z &&
|
|
2677
|
+
onClick: z && V === null ? (u) => {
|
|
2688
2678
|
u.currentTarget.focus(), te.current === t.id ? t.kind === "text" ? It(t.id) : O(null) : O(t.id);
|
|
2689
2679
|
} : void 0,
|
|
2690
2680
|
onKeyDown: (u) => {
|
|
@@ -2705,7 +2695,7 @@ const yo = {
|
|
|
2705
2695
|
}
|
|
2706
2696
|
),
|
|
2707
2697
|
gn(t),
|
|
2708
|
-
z &&
|
|
2698
|
+
z && V === null && Di(t)
|
|
2709
2699
|
]
|
|
2710
2700
|
},
|
|
2711
2701
|
t.id
|
|
@@ -2730,8 +2720,8 @@ const yo = {
|
|
|
2730
2720
|
onPointerCancel: qe ? nr : void 0
|
|
2731
2721
|
}
|
|
2732
2722
|
),
|
|
2733
|
-
Ce && ee &&
|
|
2734
|
-
const s =
|
|
2723
|
+
Ce && ee && V === null && /* @__PURE__ */ a("g", { "aria-hidden": "true", "data-testid": "face-scheme-handles", children: M.landmarks.map((t, i) => {
|
|
2724
|
+
const s = Vt[i] ?? ce(rt(Q, t));
|
|
2735
2725
|
return /* @__PURE__ */ C("g", { children: [
|
|
2736
2726
|
/* @__PURE__ */ a(
|
|
2737
2727
|
"circle",
|
|
@@ -2761,18 +2751,18 @@ const yo = {
|
|
|
2761
2751
|
)
|
|
2762
2752
|
}
|
|
2763
2753
|
) });
|
|
2764
|
-
},
|
|
2754
|
+
}, $e = [];
|
|
2765
2755
|
if (ur) {
|
|
2766
2756
|
for (const e of Dr) {
|
|
2767
2757
|
const t = mt === "single" && A === e;
|
|
2768
|
-
|
|
2758
|
+
$e.push(
|
|
2769
2759
|
/* @__PURE__ */ a(
|
|
2770
2760
|
P,
|
|
2771
2761
|
{
|
|
2772
2762
|
size: "sm",
|
|
2773
2763
|
intent: t ? "primary" : void 0,
|
|
2774
2764
|
"aria-pressed": t,
|
|
2775
|
-
startIcon:
|
|
2765
|
+
startIcon: ko[e],
|
|
2776
2766
|
onClick: () => {
|
|
2777
2767
|
ft(e), zn("single");
|
|
2778
2768
|
},
|
|
@@ -2782,14 +2772,14 @@ const yo = {
|
|
|
2782
2772
|
)
|
|
2783
2773
|
);
|
|
2784
2774
|
}
|
|
2785
|
-
|
|
2775
|
+
$e.push(
|
|
2786
2776
|
/* @__PURE__ */ a(
|
|
2787
2777
|
P,
|
|
2788
2778
|
{
|
|
2789
2779
|
size: "sm",
|
|
2790
2780
|
intent: mt === "all" ? "primary" : void 0,
|
|
2791
2781
|
"aria-pressed": mt === "all",
|
|
2792
|
-
startIcon: /* @__PURE__ */ a(
|
|
2782
|
+
startIcon: /* @__PURE__ */ a(ws, { "aria-hidden": "true" }),
|
|
2793
2783
|
onClick: () => zn("all"),
|
|
2794
2784
|
children: f("faceScheme.viewShort.all")
|
|
2795
2785
|
},
|
|
@@ -2797,30 +2787,30 @@ const yo = {
|
|
|
2797
2787
|
)
|
|
2798
2788
|
);
|
|
2799
2789
|
}
|
|
2800
|
-
return mn && (
|
|
2790
|
+
return mn && ($e.push(
|
|
2801
2791
|
/* @__PURE__ */ a(
|
|
2802
2792
|
P,
|
|
2803
2793
|
{
|
|
2804
2794
|
ref: En,
|
|
2805
2795
|
size: "sm",
|
|
2806
2796
|
intent: "outline",
|
|
2807
|
-
startIcon: /* @__PURE__ */ a(
|
|
2797
|
+
startIcon: /* @__PURE__ */ a(ms, { "aria-hidden": "true" }),
|
|
2808
2798
|
"data-overflow-pin": !0,
|
|
2809
2799
|
onClick: () => void un(),
|
|
2810
|
-
disabled:
|
|
2800
|
+
disabled: Ve === "requesting",
|
|
2811
2801
|
children: f(
|
|
2812
2802
|
ee ? "faceScheme.capture.retake" : "faceScheme.capture.take"
|
|
2813
2803
|
)
|
|
2814
2804
|
},
|
|
2815
2805
|
"capture"
|
|
2816
2806
|
)
|
|
2817
|
-
),
|
|
2807
|
+
), $e.push(
|
|
2818
2808
|
/* @__PURE__ */ a(
|
|
2819
2809
|
P,
|
|
2820
2810
|
{
|
|
2821
2811
|
size: "sm",
|
|
2822
2812
|
intent: "outline",
|
|
2823
|
-
startIcon: /* @__PURE__ */ a(
|
|
2813
|
+
startIcon: /* @__PURE__ */ a(ps, { "aria-hidden": "true" }),
|
|
2824
2814
|
onClick: () => {
|
|
2825
2815
|
var e;
|
|
2826
2816
|
return (e = Tn.current) == null ? void 0 : e.click();
|
|
@@ -2829,7 +2819,7 @@ const yo = {
|
|
|
2829
2819
|
},
|
|
2830
2820
|
"upload"
|
|
2831
2821
|
)
|
|
2832
|
-
)), fr &&
|
|
2822
|
+
)), fr && $e.push(fr), /* @__PURE__ */ C(
|
|
2833
2823
|
"div",
|
|
2834
2824
|
{
|
|
2835
2825
|
ref: An,
|
|
@@ -2850,7 +2840,7 @@ const yo = {
|
|
|
2850
2840
|
overflow: "menu",
|
|
2851
2841
|
collapseToIcons: !0,
|
|
2852
2842
|
className: "ds:text-center",
|
|
2853
|
-
children:
|
|
2843
|
+
children: $e
|
|
2854
2844
|
}
|
|
2855
2845
|
),
|
|
2856
2846
|
mn && /* @__PURE__ */ C("div", { className: "ds:mx-auto ds:flex ds:w-full ds:max-w-[28rem] ds:flex-col", children: [
|
|
@@ -2873,11 +2863,11 @@ const yo = {
|
|
|
2873
2863
|
{
|
|
2874
2864
|
role: "status",
|
|
2875
2865
|
"aria-live": "polite",
|
|
2876
|
-
className:
|
|
2877
|
-
children:
|
|
2866
|
+
className: Ve === "requesting" ? "ds:text-start ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)] ds:empty:hidden" : "ds:text-start ds:text-[length:var(--font-size-xs)] ds:text-[var(--destructive)] ds:empty:hidden",
|
|
2867
|
+
children: Ve === "requesting" ? f(
|
|
2878
2868
|
"faceScheme.capture.requesting",
|
|
2879
2869
|
"Waiting for camera permission…"
|
|
2880
|
-
) :
|
|
2870
|
+
) : Ve === "error" && Vn ? f(go[Vn]) : ""
|
|
2881
2871
|
}
|
|
2882
2872
|
)
|
|
2883
2873
|
] }),
|
|
@@ -2919,7 +2909,7 @@ const yo = {
|
|
|
2919
2909
|
// matching aspects within them.
|
|
2920
2910
|
/* @__PURE__ */ a("div", { className: "ds:grid ds:grid-cols-1 ds:items-center ds:gap-[var(--spacing-md)] ds:md:grid-cols-3", children: Dr.map((e) => /* @__PURE__ */ a("div", { className: "ds:min-w-0", children: Sr(e) }, e)) })
|
|
2921
2911
|
) : Sr(A)),
|
|
2922
|
-
In && Ln && /* @__PURE__ */ a(
|
|
2912
|
+
In && Ln && /* @__PURE__ */ a(Ze, { variant: "elevated", "data-testid": "face-scheme-legend", children: /* @__PURE__ */ a(Ze.Body, { children: /* @__PURE__ */ a(
|
|
2923
2913
|
"ul",
|
|
2924
2914
|
{
|
|
2925
2915
|
"aria-label": f("faceScheme.legendLabel"),
|
|
@@ -2947,13 +2937,13 @@ const yo = {
|
|
|
2947
2937
|
) }) })
|
|
2948
2938
|
] }),
|
|
2949
2939
|
dr && /* @__PURE__ */ a("div", { className: _i, children: /* @__PURE__ */ a(
|
|
2950
|
-
|
|
2940
|
+
Ze,
|
|
2951
2941
|
{
|
|
2952
2942
|
variant: "elevated",
|
|
2953
2943
|
"data-testid": "face-scheme-panel",
|
|
2954
2944
|
id: _n,
|
|
2955
2945
|
className: zi,
|
|
2956
|
-
children: /* @__PURE__ */ C(
|
|
2946
|
+
children: /* @__PURE__ */ C(Ze.Body, { className: Li, children: [
|
|
2957
2947
|
Zi,
|
|
2958
2948
|
J && (Je || Ce) && /* @__PURE__ */ a(Tt, {}),
|
|
2959
2949
|
Oi,
|
|
@@ -2968,8 +2958,8 @@ const yo = {
|
|
|
2968
2958
|
children: [
|
|
2969
2959
|
/* @__PURE__ */ a("span", { id: mr, className: me, children: f("faceScheme.panel.fit") }),
|
|
2970
2960
|
/* @__PURE__ */ a("p", { className: "ds:m-0 ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]", children: f("faceScheme.registration.hint") }),
|
|
2971
|
-
/* @__PURE__ */ a("div", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-xs)] ds:sm:grid-cols-2", children:
|
|
2972
|
-
const t =
|
|
2961
|
+
/* @__PURE__ */ a("div", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-xs)] ds:sm:grid-cols-2", children: Mo.map((e) => {
|
|
2962
|
+
const t = So[e], i = e === "scaleX" || e === "scaleY";
|
|
2973
2963
|
return /* @__PURE__ */ C(
|
|
2974
2964
|
"div",
|
|
2975
2965
|
{
|
|
@@ -2980,7 +2970,7 @@ const yo = {
|
|
|
2980
2970
|
ns,
|
|
2981
2971
|
{
|
|
2982
2972
|
"aria-label": f(`faceScheme.registration.${e}`),
|
|
2983
|
-
value: [
|
|
2973
|
+
value: [Ut[e]],
|
|
2984
2974
|
min: t.min,
|
|
2985
2975
|
max: t.max,
|
|
2986
2976
|
step: t.step,
|
|
@@ -3012,7 +3002,7 @@ const yo = {
|
|
|
3012
3002
|
{
|
|
3013
3003
|
size: "sm",
|
|
3014
3004
|
intent: "outline",
|
|
3015
|
-
onClick: () => ae(
|
|
3005
|
+
onClick: () => ae(Pe),
|
|
3016
3006
|
children: f("faceScheme.registration.reset")
|
|
3017
3007
|
}
|
|
3018
3008
|
),
|
|
@@ -3042,10 +3032,10 @@ const yo = {
|
|
|
3042
3032
|
/* @__PURE__ */ a("span", { id: pr, className: me, children: f("faceScheme.zoomLabel") }),
|
|
3043
3033
|
/* @__PURE__ */ C("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
|
|
3044
3034
|
/* @__PURE__ */ a(
|
|
3045
|
-
|
|
3035
|
+
Ke,
|
|
3046
3036
|
{
|
|
3047
3037
|
size: "sm",
|
|
3048
|
-
icon: /* @__PURE__ */ a(
|
|
3038
|
+
icon: /* @__PURE__ */ a(gs, { "aria-hidden": "true" }),
|
|
3049
3039
|
"aria-label": f("faceScheme.zoomOut"),
|
|
3050
3040
|
disabled: xe.k <= 1,
|
|
3051
3041
|
onClick: () => Wn(1 / 1.3)
|
|
@@ -3065,12 +3055,12 @@ const yo = {
|
|
|
3065
3055
|
}
|
|
3066
3056
|
),
|
|
3067
3057
|
/* @__PURE__ */ a(
|
|
3068
|
-
|
|
3058
|
+
Ke,
|
|
3069
3059
|
{
|
|
3070
3060
|
size: "sm",
|
|
3071
|
-
icon: /* @__PURE__ */ a(
|
|
3061
|
+
icon: /* @__PURE__ */ a(ys, { "aria-hidden": "true" }),
|
|
3072
3062
|
"aria-label": f("faceScheme.zoomIn"),
|
|
3073
|
-
disabled: xe.k >=
|
|
3063
|
+
disabled: xe.k >= Ur,
|
|
3074
3064
|
onClick: () => Wn(1.3)
|
|
3075
3065
|
}
|
|
3076
3066
|
),
|
|
@@ -3079,7 +3069,7 @@ const yo = {
|
|
|
3079
3069
|
{
|
|
3080
3070
|
size: "sm",
|
|
3081
3071
|
intent: "outline",
|
|
3082
|
-
startIcon: /* @__PURE__ */ a(
|
|
3072
|
+
startIcon: /* @__PURE__ */ a(xs, { "aria-hidden": "true" }),
|
|
3083
3073
|
disabled: xe.k <= 1,
|
|
3084
3074
|
onClick: qt,
|
|
3085
3075
|
children: f("faceScheme.resetView")
|
|
@@ -3110,31 +3100,31 @@ const yo = {
|
|
|
3110
3100
|
);
|
|
3111
3101
|
}
|
|
3112
3102
|
);
|
|
3113
|
-
|
|
3103
|
+
No.displayName = "FaceScheme";
|
|
3114
3104
|
export {
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3105
|
+
ia as A,
|
|
3106
|
+
Qs as F,
|
|
3107
|
+
Pe as I,
|
|
3118
3108
|
Et as a,
|
|
3119
3109
|
Rr as b,
|
|
3120
3110
|
Sn as c,
|
|
3121
|
-
|
|
3122
|
-
|
|
3111
|
+
Js as d,
|
|
3112
|
+
No as e,
|
|
3123
3113
|
_t as f,
|
|
3124
|
-
|
|
3125
|
-
|
|
3114
|
+
no as g,
|
|
3115
|
+
to as h,
|
|
3126
3116
|
rt as i,
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3117
|
+
eo as j,
|
|
3118
|
+
uo as k,
|
|
3119
|
+
fo as l,
|
|
3120
|
+
Os as m,
|
|
3121
|
+
zs as n,
|
|
3132
3122
|
Hr as o,
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3123
|
+
so as p,
|
|
3124
|
+
oa as q,
|
|
3125
|
+
aa as r,
|
|
3126
|
+
sa as s,
|
|
3137
3127
|
Nn as t,
|
|
3138
3128
|
Kr as u
|
|
3139
3129
|
};
|
|
3140
|
-
//# sourceMappingURL=face-scheme-
|
|
3130
|
+
//# sourceMappingURL=face-scheme-Bm6pe7R8.js.map
|