@agent-ui-kit/web-components 0.0.14 → 0.0.16
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/agent-ui.css +1 -1
- package/dist/api.colors.json +2 -2
- package/dist/api.colors.yaml +2 -2
- package/dist/api.components.json +3878 -636
- package/dist/api.tokens.json +35 -3
- package/dist/api.tokens.yaml +27 -3
- package/dist/chunks/{agent-C72JZNe6.js → agent-XMhz_6OA.js} +85 -76
- package/dist/chunks/{agent-C72JZNe6.js.map → agent-XMhz_6OA.js.map} +1 -1
- package/dist/chunks/{empty-state-5M3uR5CM.js → form-oekEhwja.js} +1409 -960
- package/dist/chunks/form-oekEhwja.js.map +1 -0
- package/dist/components/agent.js +6 -6
- package/dist/components/avatar/avatar.d.ts +0 -0
- package/dist/components/badge/badge.d.ts +0 -0
- package/dist/components/bar/bar.d.ts +0 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +2 -0
- package/dist/components/button-group/button-group.d.ts +0 -0
- package/dist/components/checkbox-group/checkbox-group.d.ts +14 -0
- package/dist/components/checkbox-group/index.d.ts +1 -0
- package/dist/components/code/code.d.ts +0 -0
- package/dist/components/color-area/color-area.d.ts +2 -1
- package/dist/components/color-picker/color-picker.d.ts +1 -0
- package/dist/components/color-picker/oklch-utils.d.ts +18 -0
- package/dist/components/color-slider/color-slider.d.ts +1 -1
- package/dist/components/color-swatch/color-swatch.d.ts +0 -0
- package/dist/components/content/content.d.ts +0 -0
- package/dist/components/description-list/description-list.d.ts +0 -0
- package/dist/components/divider/divider.d.ts +0 -0
- package/dist/components/editor.js +1 -1
- package/dist/components/fieldset/fieldset.d.ts +0 -0
- package/dist/components/footer/footer.d.ts +0 -0
- package/dist/components/form/form.d.ts +12 -0
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/graph.js +1 -1
- package/dist/components/grid/grid.d.ts +0 -0
- package/dist/components/header/header.d.ts +0 -0
- package/dist/components/heading/heading.d.ts +0 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/input-group/input-group.d.ts +0 -0
- package/dist/components/inset/inset.d.ts +0 -0
- package/dist/components/kbd/kbd.d.ts +0 -0
- package/dist/components/noodles/noodle-controller.d.ts +1 -1
- package/dist/components/stack/stack.d.ts +0 -0
- package/dist/components/stat/stat.d.ts +4 -0
- package/dist/components/text/text.d.ts +0 -0
- package/dist/components/time-field/time-field.d.ts +1 -0
- package/dist/components/wrap/wrap.d.ts +0 -0
- package/dist/components.js +115 -126
- package/dist/components.js.map +1 -1
- package/dist/docs/blocks/agent-chat.yaml +33 -25
- package/dist/docs/blocks/announcement-card.yaml +14 -10
- package/dist/docs/blocks/bpm-process.yaml +216 -4
- package/dist/docs/blocks/chart-activity.yaml +12 -10
- package/dist/docs/blocks/chart-card.yaml +14 -11
- package/dist/docs/blocks/chart-donut.yaml +27 -23
- package/dist/docs/blocks/chart-grouped.yaml +14 -11
- package/dist/docs/blocks/chart-horizontal.yaml +13 -10
- package/dist/docs/blocks/chart-interactive.yaml +20 -17
- package/dist/docs/blocks/chart-labeled.yaml +14 -11
- package/dist/docs/blocks/checkout-form.yaml +26 -16
- package/dist/docs/blocks/clinical-trial.yaml +180 -4
- package/dist/docs/blocks/contributors.yaml +17 -11
- package/dist/docs/blocks/cyber-threat.yaml +158 -4
- package/dist/docs/blocks/dashboard-layout.yaml +25 -18
- package/dist/docs/blocks/data-eng-dag.yaml +222 -6
- package/dist/docs/blocks/date-picker.yaml +11 -10
- package/dist/docs/blocks/ddx-workflow.yaml +202 -6
- package/dist/docs/blocks/empty-state.yaml +8 -11
- package/dist/docs/blocks/env-variables.yaml +29 -20
- package/dist/docs/blocks/feature-upgrade.yaml +25 -18
- package/dist/docs/blocks/financial-risk.yaml +161 -4
- package/dist/docs/blocks/flow-editor.yaml +27 -18
- package/dist/docs/blocks/gen-ai-pipeline.yaml +232 -5
- package/dist/docs/blocks/issue-assign.yaml +25 -14
- package/dist/docs/blocks/keyboard-shortcuts.yaml +14 -9
- package/dist/docs/blocks/login-branded.yaml +62 -23
- package/dist/docs/blocks/login-email-only.yaml +14 -13
- package/dist/docs/blocks/login-form.yaml +17 -11
- package/dist/docs/blocks/login-simple.yaml +18 -12
- package/dist/docs/blocks/login-social.yaml +21 -14
- package/dist/docs/blocks/login-two-column.yaml +42 -22
- package/dist/docs/blocks/marketing-automation.yaml +209 -4
- package/dist/docs/blocks/member-list.yaml +23 -18
- package/dist/docs/blocks/ml-pipeline.yaml +163 -4
- package/dist/docs/blocks/nav-card.yaml +13 -11
- package/dist/docs/blocks/notification-list.yaml +18 -13
- package/dist/docs/blocks/oncology-pathway.yaml +227 -4
- package/dist/docs/blocks/pricing-card.yaml +20 -13
- package/dist/docs/blocks/processing-state.yaml +14 -11
- package/dist/docs/blocks/profile-card.yaml +22 -16
- package/dist/docs/blocks/saas-onboarding.yaml +222 -4
- package/dist/docs/blocks/settings-form.yaml +20 -11
- package/dist/docs/blocks/settings-panel.yaml +23 -22
- package/dist/docs/blocks/sidebar-nav.yaml +23 -15
- package/dist/docs/blocks/signup-form.yaml +17 -11
- package/dist/docs/blocks/stat-cards.yaml +12 -13
- package/dist/docs/blocks/status-card.yaml +20 -17
- package/dist/docs/blocks/suggested-labs.yaml +20 -13
- package/dist/docs/blocks/supply-chain.yaml +160 -4
- package/dist/docs/blocks/survey-card.yaml +21 -13
- package/dist/docs/blocks/tabbed-panel.yaml +21 -15
- package/dist/docs/blocks/team-empty.yaml +8 -9
- package/dist/docs/blocks/usage-billing.yaml +20 -16
- package/dist/docs/components/accordion-item.yaml +13 -21
- package/dist/docs/components/accordion.yaml +23 -29
- package/dist/docs/components/agent-activity.yaml +49 -41
- package/dist/docs/components/agent-feed.yaml +15 -22
- package/dist/docs/components/agent-input.yaml +238 -0
- package/dist/docs/components/agent-message.yaml +29 -48
- package/dist/docs/components/agent-panel.yaml +21 -24
- package/dist/docs/components/agent-prompt.yaml +29 -47
- package/dist/docs/components/agent-seeds.yaml +16 -24
- package/dist/docs/components/agent-text.yaml +14 -24
- package/dist/docs/components/agent-thread.yaml +15 -24
- package/dist/docs/components/alert.yaml +41 -39
- package/dist/docs/components/avatar-group.yaml +72 -45
- package/dist/docs/components/avatar.yaml +99 -0
- package/dist/docs/components/badge.yaml +110 -0
- package/dist/docs/components/bar.yaml +84 -0
- package/dist/docs/components/breadcrumb-item.yaml +8 -17
- package/dist/docs/components/breadcrumb.yaml +91 -29
- package/dist/docs/components/button-group.yaml +93 -0
- package/dist/docs/components/button.yaml +188 -261
- package/dist/docs/components/calendar-picker.yaml +16 -35
- package/dist/docs/components/calendar-range-picker.yaml +11 -29
- package/dist/docs/components/calendar.yaml +11 -29
- package/dist/docs/components/canvas.yaml +44 -61
- package/dist/docs/components/checkbox.yaml +37 -49
- package/dist/docs/components/chip.yaml +89 -55
- package/dist/docs/components/code-block.yaml +54 -53
- package/dist/docs/components/code.yaml +37 -0
- package/dist/docs/components/color-area.yaml +119 -0
- package/dist/docs/components/color-field.yaml +121 -0
- package/dist/docs/components/color-picker.yaml +87 -35
- package/dist/docs/components/color-slider.yaml +153 -0
- package/dist/docs/components/color-swatch.yaml +98 -0
- package/dist/docs/components/command.yaml +13 -18
- package/dist/docs/components/container.yaml +84 -73
- package/dist/docs/components/content.yaml +100 -0
- package/dist/docs/components/context-menu.yaml +11 -20
- package/dist/docs/components/date-field.yaml +81 -33
- package/dist/docs/components/description-list.yaml +81 -0
- package/dist/docs/components/disclosure-group.yaml +61 -42
- package/dist/docs/components/disclosure.yaml +60 -46
- package/dist/docs/components/divider.yaml +63 -0
- package/dist/docs/components/dropdown-menu.yaml +16 -25
- package/dist/docs/components/feed.yaml +15 -24
- package/dist/docs/components/field.yaml +50 -71
- package/dist/docs/components/fieldset.yaml +92 -0
- package/dist/docs/components/footer.yaml +147 -0
- package/dist/docs/components/grid.yaml +87 -0
- package/dist/docs/components/gripper.yaml +11 -23
- package/dist/docs/components/header.yaml +168 -0
- package/dist/docs/components/heading.yaml +58 -0
- package/dist/docs/components/hover-card.yaml +17 -25
- package/dist/docs/components/icon.yaml +32 -65
- package/dist/docs/components/index.yaml +11 -1
- package/dist/docs/components/input-group.yaml +102 -0
- package/dist/docs/components/input-otp.yaml +20 -19
- package/dist/docs/components/input.yaml +100 -139
- package/dist/docs/components/inset.yaml +59 -0
- package/dist/docs/components/kbd.yaml +57 -0
- package/dist/docs/components/link.yaml +36 -45
- package/dist/docs/components/meter.yaml +54 -42
- package/dist/docs/components/nav-item.yaml +54 -43
- package/dist/docs/components/noodles.yaml +72 -104
- package/dist/docs/components/option.yaml +12 -23
- package/dist/docs/components/pagination.yaml +21 -18
- package/dist/docs/components/pane.yaml +18 -32
- package/dist/docs/components/panes.yaml +19 -27
- package/dist/docs/components/progress-circle.yaml +64 -55
- package/dist/docs/components/progress.yaml +35 -51
- package/dist/docs/components/radio-group.yaml +99 -40
- package/dist/docs/components/radio.yaml +40 -41
- package/dist/docs/components/range.yaml +24 -27
- package/dist/docs/components/segmented-control.yaml +58 -17
- package/dist/docs/components/select.yaml +80 -100
- package/dist/docs/components/skeleton.yaml +39 -39
- package/dist/docs/components/sparkline.yaml +28 -45
- package/dist/docs/components/spinner.yaml +32 -33
- package/dist/docs/components/stack.yaml +126 -0
- package/dist/docs/components/stat.yaml +164 -0
- package/dist/docs/components/stepper.yaml +46 -53
- package/dist/docs/components/switch.yaml +36 -47
- package/dist/docs/components/tab-panel.yaml +27 -18
- package/dist/docs/components/tab.yaml +25 -22
- package/dist/docs/components/table-header.yaml +22 -12
- package/dist/docs/components/tabs.yaml +103 -20
- package/dist/docs/components/tag-group.yaml +63 -47
- package/dist/docs/components/text.yaml +67 -0
- package/dist/docs/components/textarea.yaml +43 -60
- package/dist/docs/components/time-field.yaml +108 -34
- package/dist/docs/components/toast.yaml +13 -30
- package/dist/docs/components/tooltip.yaml +56 -49
- package/dist/docs/components/tree-item.yaml +9 -10
- package/dist/docs/components/tree.yaml +127 -10
- package/dist/docs/components/wrap.yaml +60 -0
- package/dist/docs/traits/toggle-theme.yaml +34 -0
- package/dist/element.js +1 -1
- package/dist/icons.js +79 -59
- package/dist/icons.js.map +1 -1
- package/dist/reactivity.js +2 -2
- package/dist/register.d.ts +0 -1
- package/dist/register.js +368 -352
- package/dist/register.js.map +1 -1
- package/dist/store.js +1 -1
- package/dist/traits/toggle-theme/toggle-theme.d.ts +0 -0
- package/dist/traits/toggle-theme/toggle-theme.trait.d.ts +2 -0
- package/dist/traits.js +528 -485
- package/dist/traits.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/empty-state-5M3uR5CM.js.map +0 -1
package/dist/register.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { A as T,
|
|
1
|
+
import { A as T, l as S, m as I, n as $, o as G, p as a, q as O, v as X, d as _, k as B, f as K, j, b as J, i as V, g as Z, e as Q, h as tt } from "./chunks/agent-XMhz_6OA.js";
|
|
2
2
|
import { registerBuiltinTraits as et } from "./traits.js";
|
|
3
3
|
import { AuiEditor as it, AuiEditorLayer as st } from "./components/editor.js";
|
|
4
4
|
import { AuiGraphUi as at, AuiGraphLayer as nt, AuiGraphNode as ot, AuiGraphNoodle as rt, AuiGraphPort as ut } from "./components/graph.js";
|
|
5
|
-
import
|
|
6
|
-
|
|
5
|
+
import "./icons.js";
|
|
6
|
+
import { f as lt, P as dt, j as ct, ae as ht, a1 as mt, a2 as pt, ap as ft, x as bt, C as gt, F as vt, N as At, as as yt, a3 as wt, Q as xt, L as Ct, U as Et, T as kt, a7 as St, ar as Pt, an as $t, af as Mt, ag as Lt, A as Dt, a as Tt, d as It, e as Nt, a6 as Yt, a5 as qt, Y as Rt, r as Ft, u as Gt, w as zt, v as Ut, t as Ht, s as Wt, _ as Ot, Z as Xt, ah as _t, ak as Bt, ai as Kt, am as jt, al as Jt, aj as Vt, at as Zt, au as Qt, I as te, a4 as ee, g as ie, h as se, b as ae, V as ne, X as oe, W as re, a8 as ue, ab as le, a9 as de, aa as ce, $ as he, m as me, ac as pe, l as fe, D as be, c as ge, a0 as ve, E as Ae, ao as ye, n as we, q as xe, o as Ce, aq as Ee, B as ke, y as Se, G as Pe, M as $e, p as Me, J as Le, z as De, ad as Te, O as Ie, i as Ne, S as Ye, H as qe, R as Re, k as Fe, K as Ge } from "./chunks/form-oekEhwja.js";
|
|
7
|
+
class ze extends T {
|
|
7
8
|
static attributes = {
|
|
8
9
|
key: { type: "string", default: "" },
|
|
9
10
|
label: { type: "string", default: "" },
|
|
@@ -14,7 +15,7 @@ class Re extends T {
|
|
|
14
15
|
align: { type: "enum", values: ["start", "center", "end"], default: "start" }
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
|
-
class
|
|
18
|
+
class Ue extends T {
|
|
18
19
|
static attributes = {
|
|
19
20
|
background: { type: "string", default: "none" },
|
|
20
21
|
orientation: { type: "string", default: "horizontal" },
|
|
@@ -94,8 +95,8 @@ class Fe extends T {
|
|
|
94
95
|
i.appendChild(r);
|
|
95
96
|
}
|
|
96
97
|
e.appendChild(i), t.appendChild(e), this.#n = e, this.#t = i;
|
|
97
|
-
const
|
|
98
|
-
|
|
98
|
+
const n = this.hasAttribute("pan-enabled") || this.hasAttribute("infinite"), o = this.hasAttribute("zoom-enabled") || this.hasAttribute("infinite");
|
|
99
|
+
n && (t.addEventListener("pointerdown", this.#y), t.addEventListener("pointermove", this.#w), t.addEventListener("pointerup", this.#v), t.addEventListener("pointercancel", this.#v)), o && t.addEventListener("wheel", this.#A, { passive: !1 }), this.#o();
|
|
99
100
|
}
|
|
100
101
|
// ── Transform ──
|
|
101
102
|
#o() {
|
|
@@ -132,8 +133,8 @@ class Fe extends T {
|
|
|
132
133
|
t.preventDefault();
|
|
133
134
|
const e = t.deltaY > 0 ? -0.05 : 0.05, i = Math.max(0.1, Math.min(10, this.#r + e * this.#r));
|
|
134
135
|
if (this.#e) {
|
|
135
|
-
const s = this.#e.getBoundingClientRect(),
|
|
136
|
-
this.#a =
|
|
136
|
+
const s = this.#e.getBoundingClientRect(), n = (t.clientX - s.left) / s.width, o = (t.clientY - s.top) / s.height, r = i / this.#r;
|
|
137
|
+
this.#a = n * s.width * (1 - r) + this.#a * r, this.#s = o * s.height * (1 - r) + this.#s * r;
|
|
137
138
|
}
|
|
138
139
|
this.#r = i, this.#o(), this.#b();
|
|
139
140
|
};
|
|
@@ -156,19 +157,19 @@ class Fe extends T {
|
|
|
156
157
|
}
|
|
157
158
|
};
|
|
158
159
|
}
|
|
159
|
-
function
|
|
160
|
-
if (!
|
|
161
|
-
const t = /* @__PURE__ */ new Date(
|
|
160
|
+
function M(p) {
|
|
161
|
+
if (!p) return null;
|
|
162
|
+
const t = /* @__PURE__ */ new Date(p + "T00:00:00");
|
|
162
163
|
return isNaN(t.getTime()) ? null : t;
|
|
163
164
|
}
|
|
164
|
-
function
|
|
165
|
-
const t =
|
|
165
|
+
function He(p) {
|
|
166
|
+
const t = p.getFullYear(), e = String(p.getMonth() + 1).padStart(2, "0"), i = String(p.getDate()).padStart(2, "0");
|
|
166
167
|
return `${t}-${e}-${i}`;
|
|
167
168
|
}
|
|
168
|
-
function N(
|
|
169
|
-
return
|
|
169
|
+
function N(p, t) {
|
|
170
|
+
return p.getFullYear() === t.getFullYear() && p.getMonth() === t.getMonth() && p.getDate() === t.getDate();
|
|
170
171
|
}
|
|
171
|
-
class
|
|
172
|
+
class We {
|
|
172
173
|
view;
|
|
173
174
|
focusedYear;
|
|
174
175
|
focusedMonth;
|
|
@@ -183,7 +184,7 @@ class Ge {
|
|
|
183
184
|
years;
|
|
184
185
|
title;
|
|
185
186
|
constructor(t = {}) {
|
|
186
|
-
const e = /* @__PURE__ */ new Date(), i =
|
|
187
|
+
const e = /* @__PURE__ */ new Date(), i = M(t.value ?? null) ?? e;
|
|
187
188
|
this.view = S("day"), this.focusedYear = S(i.getFullYear()), this.focusedMonth = S(i.getMonth()), this.value = S(t.value ?? null), this.rangeStart = S(t.rangeStart ?? null), this.rangeEnd = S(t.rangeEnd ?? null), this.min = S(t.min ?? null), this.max = S(t.max ?? null), this.days = I(() => this.#n()), this.months = I(() => this.#t()), this.years = I(() => this.#e()), this.title = I(() => this.#a());
|
|
188
189
|
}
|
|
189
190
|
// ── Navigation ──
|
|
@@ -231,50 +232,50 @@ class Ge {
|
|
|
231
232
|
}
|
|
232
233
|
// ── Validation ──
|
|
233
234
|
isDateDisabled(t) {
|
|
234
|
-
const e =
|
|
235
|
+
const e = M(this.min.value), i = M(this.max.value), s = M(t);
|
|
235
236
|
return !!(!s || e && s < e || i && s > i);
|
|
236
237
|
}
|
|
237
238
|
// ── Private Computations ──
|
|
238
239
|
#n() {
|
|
239
|
-
const t = this.focusedYear.value, e = this.focusedMonth.value, i =
|
|
240
|
-
for (let
|
|
241
|
-
const
|
|
242
|
-
let
|
|
243
|
-
if (
|
|
244
|
-
const E =
|
|
245
|
-
|
|
240
|
+
const t = this.focusedYear.value, e = this.focusedMonth.value, i = M(this.value.value), s = /* @__PURE__ */ new Date(), n = M(this.rangeStart.value), o = M(this.rangeEnd.value), c = new Date(t, e, 1).getDay(), u = new Date(t, e, 1 - c), m = [];
|
|
241
|
+
for (let h = 0; h < 42; h++) {
|
|
242
|
+
const d = new Date(u.getFullYear(), u.getMonth(), u.getDate() + h), v = He(d), l = d.getMonth() === e, f = N(d, s), b = i ? N(d, i) : !1, C = this.isDateDisabled(v);
|
|
243
|
+
let g = !1, y = !1, P = !1;
|
|
244
|
+
if (n && o) {
|
|
245
|
+
const E = n <= o ? n : o, D = n <= o ? o : n;
|
|
246
|
+
g = d >= E && d <= D, y = N(d, E), P = N(d, D);
|
|
246
247
|
}
|
|
247
|
-
|
|
248
|
+
m.push({
|
|
248
249
|
date: v,
|
|
249
|
-
day:
|
|
250
|
-
inMonth:
|
|
250
|
+
day: d.getDate(),
|
|
251
|
+
inMonth: l,
|
|
251
252
|
isToday: f,
|
|
252
|
-
isSelected:
|
|
253
|
+
isSelected: b,
|
|
253
254
|
isDisabled: C,
|
|
254
|
-
inRange:
|
|
255
|
+
inRange: g,
|
|
255
256
|
isRangeStart: y,
|
|
256
257
|
isRangeEnd: P
|
|
257
258
|
});
|
|
258
259
|
}
|
|
259
|
-
return
|
|
260
|
+
return m;
|
|
260
261
|
}
|
|
261
262
|
#t() {
|
|
262
263
|
const t = this.focusedYear.value, e = this.focusedMonth.value;
|
|
263
|
-
return ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"].map((s,
|
|
264
|
-
month:
|
|
264
|
+
return ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"].map((s, n) => ({
|
|
265
|
+
month: n,
|
|
265
266
|
name: s,
|
|
266
|
-
isCurrent:
|
|
267
|
-
isSelected:
|
|
267
|
+
isCurrent: n === e && t === (/* @__PURE__ */ new Date()).getFullYear(),
|
|
268
|
+
isSelected: n === e
|
|
268
269
|
}));
|
|
269
270
|
}
|
|
270
271
|
#e() {
|
|
271
272
|
const t = this.focusedYear.value, e = Math.floor(t / 10) * 10, i = (/* @__PURE__ */ new Date()).getFullYear(), s = [];
|
|
272
|
-
for (let
|
|
273
|
+
for (let n = e - 1; n <= e + 10; n++)
|
|
273
274
|
s.push({
|
|
274
|
-
year:
|
|
275
|
-
inDecade:
|
|
276
|
-
isCurrent:
|
|
277
|
-
isSelected:
|
|
275
|
+
year: n,
|
|
276
|
+
inDecade: n >= e && n < e + 10,
|
|
277
|
+
isCurrent: n === i,
|
|
278
|
+
isSelected: n === t
|
|
278
279
|
});
|
|
279
280
|
return s;
|
|
280
281
|
}
|
|
@@ -305,7 +306,7 @@ class Ge {
|
|
|
305
306
|
}
|
|
306
307
|
}
|
|
307
308
|
}
|
|
308
|
-
class
|
|
309
|
+
class Oe extends T {
|
|
309
310
|
static attributes = {
|
|
310
311
|
value: { type: "string", default: "" },
|
|
311
312
|
min: { type: "string", default: "" },
|
|
@@ -314,7 +315,7 @@ class Ue extends T {
|
|
|
314
315
|
range: { type: "boolean", default: !1 }
|
|
315
316
|
};
|
|
316
317
|
#n;
|
|
317
|
-
#t = new
|
|
318
|
+
#t = new We();
|
|
318
319
|
#e = S(!1);
|
|
319
320
|
// WHY: Track focused cell index for keyboard navigation within the grid
|
|
320
321
|
#a = S(0);
|
|
@@ -389,8 +390,8 @@ class Ue extends T {
|
|
|
389
390
|
<div data-cal-weekdays></div>
|
|
390
391
|
<div data-cal-grid role="grid"></div>
|
|
391
392
|
`;
|
|
392
|
-
for (const
|
|
393
|
-
|
|
393
|
+
for (const n of this.querySelectorAll("[data-cal-header] aui-button"))
|
|
394
|
+
n.setAttribute("tabindex", "-1");
|
|
394
395
|
const t = this.querySelector('aui-button[data-role="prev"]'), e = this.querySelector('aui-button[data-role="next"]'), i = this.querySelector('aui-button[data-role="title"]');
|
|
395
396
|
t?.addEventListener("click", this.#m), e?.addEventListener("click", this.#p), i?.addEventListener("click", this.#r);
|
|
396
397
|
const s = this.querySelector("[data-cal-grid]");
|
|
@@ -401,28 +402,28 @@ class Ue extends T {
|
|
|
401
402
|
if (!(!e || !i || !s)) {
|
|
402
403
|
if (e.textContent = this.#t.title.value, t === "day") {
|
|
403
404
|
this.setAttribute("view", "day"), i.innerHTML = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map((o) => `<span data-cal-weekday>${o}</span>`).join("");
|
|
404
|
-
const
|
|
405
|
-
s.innerHTML =
|
|
406
|
-
let
|
|
407
|
-
return o.inMonth || (
|
|
405
|
+
const n = this.#t.days.value;
|
|
406
|
+
s.innerHTML = n.map((o, r) => {
|
|
407
|
+
let c = `data-date="${o.date}" data-index="${r}" tabindex="-1"`;
|
|
408
|
+
return o.inMonth || (c += " data-outside"), o.isToday && (c += ' data-today aria-current="date"'), o.isSelected && (c += ' data-selected aria-selected="true"'), o.isDisabled && (c += " disabled"), o.inRange && (c += " data-in-range"), o.isRangeStart && (c += " data-range-start"), o.isRangeEnd && (c += " data-range-end"), `<div data-cal-day ${c}>${o.day}</div>`;
|
|
408
409
|
}).join("");
|
|
409
410
|
} else if (t === "month") {
|
|
410
411
|
this.setAttribute("view", "month"), i.innerHTML = "";
|
|
411
|
-
const
|
|
412
|
-
s.innerHTML =
|
|
412
|
+
const n = this.#t.months.value;
|
|
413
|
+
s.innerHTML = n.map((o) => {
|
|
413
414
|
let r = `data-month="${o.month}" tabindex="-1"`;
|
|
414
415
|
return o.isCurrent && (r += ' data-today aria-current="date"'), o.isSelected && (r += ' data-selected aria-selected="true"'), `<div data-cal-cell ${r}>${o.name}</div>`;
|
|
415
416
|
}).join("");
|
|
416
417
|
} else {
|
|
417
418
|
this.setAttribute("view", "year"), i.innerHTML = "";
|
|
418
|
-
const
|
|
419
|
-
s.innerHTML =
|
|
419
|
+
const n = this.#t.years.value;
|
|
420
|
+
s.innerHTML = n.map((o) => {
|
|
420
421
|
let r = `data-year="${o.year}" tabindex="-1"`;
|
|
421
422
|
return o.inDecade || (r += " data-outside"), o.isCurrent && (r += ' data-today aria-current="date"'), o.isSelected && (r += ' data-selected aria-selected="true"'), `<div data-cal-cell ${r}>${o.year}</div>`;
|
|
422
423
|
}).join("");
|
|
423
424
|
}
|
|
424
|
-
for (const
|
|
425
|
-
|
|
425
|
+
for (const n of s.querySelectorAll("[data-cal-day]:not([disabled]), [data-cal-cell]"))
|
|
426
|
+
n.setAttribute("tabindex", "-1");
|
|
426
427
|
}
|
|
427
428
|
}
|
|
428
429
|
#m = () => {
|
|
@@ -462,8 +463,8 @@ class Ue extends T {
|
|
|
462
463
|
if (this.#e.value) return;
|
|
463
464
|
const e = t.target.closest("[data-cal-day], [data-cal-cell]");
|
|
464
465
|
if (!e || e.hasAttribute("disabled")) return;
|
|
465
|
-
const i = e.dataset.date, s = e.dataset.month,
|
|
466
|
-
i ? this.#c(i) : s !== void 0 ? this.#t.selectMonth(Number(s)) :
|
|
466
|
+
const i = e.dataset.date, s = e.dataset.month, n = e.dataset.year;
|
|
467
|
+
i ? this.#c(i) : s !== void 0 ? this.#t.selectMonth(Number(s)) : n !== void 0 && this.#t.selectYear(Number(n));
|
|
467
468
|
}
|
|
468
469
|
#c(t) {
|
|
469
470
|
this.range ? this.#s === "idle" ? ($(() => {
|
|
@@ -514,7 +515,7 @@ class Ue extends T {
|
|
|
514
515
|
#E = (t) => {
|
|
515
516
|
if (this.#e.value || this.#t.view.value !== "day") return;
|
|
516
517
|
const i = this.#t.days.value;
|
|
517
|
-
let s = this.#a.value,
|
|
518
|
+
let s = this.#a.value, n = !0;
|
|
518
519
|
switch (t.key) {
|
|
519
520
|
case "ArrowRight":
|
|
520
521
|
s += 1;
|
|
@@ -547,17 +548,17 @@ class Ue extends T {
|
|
|
547
548
|
break;
|
|
548
549
|
}
|
|
549
550
|
default:
|
|
550
|
-
|
|
551
|
+
n = !1;
|
|
551
552
|
}
|
|
552
|
-
|
|
553
|
+
n && (t.preventDefault(), s = Math.max(0, Math.min(41, s)), this.#a.value = s, s < 0 && this.#t.prevMonth(), s > 41 && this.#t.nextMonth());
|
|
553
554
|
};
|
|
554
555
|
}
|
|
555
|
-
let
|
|
556
|
-
function H(
|
|
557
|
-
return `${
|
|
556
|
+
let Xe = 0;
|
|
557
|
+
function H(p) {
|
|
558
|
+
return `${p}-${Date.now().toString(36)}-${(++Xe).toString(36)}`;
|
|
558
559
|
}
|
|
559
|
-
const
|
|
560
|
-
class
|
|
560
|
+
const _e = 50, L = "http://www.w3.org/2000/svg";
|
|
561
|
+
class Be {
|
|
561
562
|
host;
|
|
562
563
|
// ── Public mutable options ──
|
|
563
564
|
selector;
|
|
@@ -586,7 +587,7 @@ class We {
|
|
|
586
587
|
#o = !1;
|
|
587
588
|
#d = null;
|
|
588
589
|
constructor(t, e = {}) {
|
|
589
|
-
if (this.host = t, this.selector = e.selector ?? "[data-noodle-port]", this.editable = e.editable ?? !1, this.color = e.color ?? "var(--aui-accent
|
|
590
|
+
if (this.host = t, this.selector = e.selector ?? "[data-noodle-port]", this.editable = e.editable ?? !1, this.color = e.color ?? "var(--aui-accent)", this.strokeWidth = e.strokeWidth ?? 2, this.tension = e.tension ?? 0.5, this.showPorts = e.showPorts ?? this.editable, this.portSize = e.portSize ?? 10, this.style = e.style ?? "bezier", this.animated = e.animated ?? !1, this.disabled = e.disabled ?? !1, e.connections)
|
|
590
591
|
for (const i of e.connections)
|
|
591
592
|
this.#e.set(i.id, {
|
|
592
593
|
...i,
|
|
@@ -604,17 +605,17 @@ class We {
|
|
|
604
605
|
this.#n && (this.#n = !1, this.#F(), this.#T(), this.#y(), this.#v(), this.host.style.isolation = "", this.host.removeEventListener("aui:magnet-snap", this.#x), this.host.removeEventListener("aui:magnet-drop", this.#x), this.host.removeEventListener("aui:drag-move", this.#x), this.#r && (cancelAnimationFrame(this.#r), this.#r = 0), this.#h = !1);
|
|
605
606
|
}
|
|
606
607
|
destroy() {
|
|
607
|
-
this.#
|
|
608
|
+
this.#L(), this.detach(), this.#e.clear();
|
|
608
609
|
}
|
|
609
610
|
// ── Public API ──
|
|
610
611
|
/** Add a connection. Returns the connection ID. */
|
|
611
612
|
connect(t, e, i = "right", s = "left") {
|
|
612
|
-
const
|
|
613
|
-
return this.#e.set(
|
|
613
|
+
const n = H("noodle"), o = { id: n, from: t, to: e, fromPort: i, toPort: s };
|
|
614
|
+
return this.#e.set(n, o), this.#f(), this.host.dispatchEvent(new CustomEvent("aui:noodle-connect", {
|
|
614
615
|
bubbles: !0,
|
|
615
616
|
composed: !0,
|
|
616
|
-
detail: { id:
|
|
617
|
-
})),
|
|
617
|
+
detail: { id: n, from: t, to: e, fromPort: i, toPort: s }
|
|
618
|
+
})), n;
|
|
618
619
|
}
|
|
619
620
|
/** Remove a connection by ID. */
|
|
620
621
|
disconnect(t) {
|
|
@@ -658,8 +659,8 @@ class We {
|
|
|
658
659
|
}
|
|
659
660
|
// ── SVG overlay ──
|
|
660
661
|
#b() {
|
|
661
|
-
const t = document.createElementNS(
|
|
662
|
-
t.setAttribute("data-noodle-svg", ""), t.style.cssText = "position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0;", this.#s = document.createElementNS(
|
|
662
|
+
const t = document.createElementNS(L, "svg");
|
|
663
|
+
t.setAttribute("data-noodle-svg", ""), t.style.cssText = "position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0;", this.#s = document.createElementNS(L, "g"), this.#s.setAttribute("data-noodle-hits", ""), t.appendChild(this.#s), this.#a = document.createElementNS(L, "g"), this.#a.setAttribute("data-noodle-paths", ""), t.appendChild(this.#a), this.host.appendChild(t), this.#t = t;
|
|
663
664
|
}
|
|
664
665
|
#y() {
|
|
665
666
|
this.#t?.remove(), this.#t = null, this.#a = null, this.#s = null;
|
|
@@ -676,36 +677,36 @@ class We {
|
|
|
676
677
|
/** Convert client (screen) coordinates to the host's layout coordinate space,
|
|
677
678
|
* accounting for CSS transforms (zoom/pan) on the host or its ancestors. */
|
|
678
679
|
#A(t, e) {
|
|
679
|
-
const i = this.host.getBoundingClientRect(), s = i.width / (this.host.clientWidth || 1),
|
|
680
|
+
const i = this.host.getBoundingClientRect(), s = i.width / (this.host.clientWidth || 1), n = i.height / (this.host.clientHeight || 1);
|
|
680
681
|
return {
|
|
681
682
|
x: (t - i.left) / s,
|
|
682
|
-
y: (e - i.top) /
|
|
683
|
+
y: (e - i.top) / n
|
|
683
684
|
};
|
|
684
685
|
}
|
|
685
686
|
// ── Path computation ──
|
|
686
687
|
#c(t, e) {
|
|
687
688
|
const i = this.host.querySelector(`#${CSS.escape(t)}`);
|
|
688
689
|
if (!i) return null;
|
|
689
|
-
let s = 0,
|
|
690
|
+
let s = 0, n = 0, o = i;
|
|
690
691
|
for (; o && o !== this.host; ) {
|
|
691
|
-
s += o.offsetLeft,
|
|
692
|
-
const
|
|
693
|
-
if (
|
|
694
|
-
const
|
|
695
|
-
|
|
692
|
+
s += o.offsetLeft, n += o.offsetTop;
|
|
693
|
+
const u = o.style.translate;
|
|
694
|
+
if (u) {
|
|
695
|
+
const m = u.match(/-?[\d.]+/g);
|
|
696
|
+
m && (s += parseFloat(m[0]) || 0, n += parseFloat(m[1]) || 0);
|
|
696
697
|
}
|
|
697
698
|
o = o.offsetParent;
|
|
698
699
|
}
|
|
699
|
-
const r = i.offsetWidth,
|
|
700
|
+
const r = i.offsetWidth, c = i.offsetHeight;
|
|
700
701
|
switch (e) {
|
|
701
702
|
case "top":
|
|
702
|
-
return { x: s + r / 2, y:
|
|
703
|
+
return { x: s + r / 2, y: n };
|
|
703
704
|
case "right":
|
|
704
|
-
return { x: s + r, y:
|
|
705
|
+
return { x: s + r, y: n + c / 2 };
|
|
705
706
|
case "bottom":
|
|
706
|
-
return { x: s + r / 2, y:
|
|
707
|
+
return { x: s + r / 2, y: n + c };
|
|
707
708
|
case "left":
|
|
708
|
-
return { x: s, y:
|
|
709
|
+
return { x: s, y: n + c / 2 };
|
|
709
710
|
}
|
|
710
711
|
}
|
|
711
712
|
#g(t, e, i, s) {
|
|
@@ -732,8 +733,8 @@ class We {
|
|
|
732
733
|
}
|
|
733
734
|
case "bezier":
|
|
734
735
|
default: {
|
|
735
|
-
const s = Math.max(Math.abs(i.x - e.x), Math.abs(i.y - e.y)),
|
|
736
|
-
return `M ${e.x} ${e.y} C ${o} ${r}, ${
|
|
736
|
+
const s = Math.max(Math.abs(i.x - e.x), Math.abs(i.y - e.y)), n = Math.max(50, s * this.tension), [o, r] = this.#g(e.x, e.y, t.fromPort, n), [c, u] = this.#g(i.x, i.y, t.toPort, n);
|
|
737
|
+
return `M ${e.x} ${e.y} C ${o} ${r}, ${c} ${u}, ${i.x} ${i.y}`;
|
|
737
738
|
}
|
|
738
739
|
}
|
|
739
740
|
}
|
|
@@ -745,10 +746,10 @@ class We {
|
|
|
745
746
|
const e = this.#k(t);
|
|
746
747
|
if (!e) continue;
|
|
747
748
|
if (this.editable) {
|
|
748
|
-
const s = document.createElementNS(
|
|
749
|
+
const s = document.createElementNS(L, "path");
|
|
749
750
|
s.setAttribute("d", e), s.setAttribute("stroke", "transparent"), s.setAttribute("stroke-width", "14"), s.setAttribute("fill", "none"), s.style.pointerEvents = "stroke", s.style.cursor = "pointer", s.dataset.noodleId = t.id, s.addEventListener("pointerdown", this.#q), this.#s.appendChild(s);
|
|
750
751
|
}
|
|
751
|
-
const i = document.createElementNS(
|
|
752
|
+
const i = document.createElementNS(L, "path");
|
|
752
753
|
i.setAttribute("d", e), i.setAttribute("fill", "none"), i.setAttribute("stroke-linecap", "round"), this.disabled ? (i.setAttribute("stroke", "var(--aui-ink-muted)"), i.setAttribute("stroke-width", String(this.strokeWidth)), i.setAttribute("stroke-dasharray", "6 4"), i.style.opacity = "0.6") : (i.setAttribute("stroke", t.color ?? this.color), i.setAttribute("stroke-width", String(this.strokeWidth)), this.animated && (i.setAttribute("stroke-dasharray", "8 4"), i.style.animation = "noodle-flow 0.6s linear infinite")), this.#a.appendChild(i);
|
|
753
754
|
}
|
|
754
755
|
this.#l || queueMicrotask(() => {
|
|
@@ -774,9 +775,9 @@ class We {
|
|
|
774
775
|
for (const e of t) {
|
|
775
776
|
const i = (e.getAttribute("data-noodle-port") ?? "").split(/\s+/).filter(Boolean), s = e.id;
|
|
776
777
|
if (s)
|
|
777
|
-
for (const
|
|
778
|
+
for (const n of i) {
|
|
778
779
|
const o = document.createElement("div");
|
|
779
|
-
o.setAttribute("data-noodle-port-indicator", ""), o.setAttribute("data-noodle-side",
|
|
780
|
+
o.setAttribute("data-noodle-port-indicator", ""), o.setAttribute("data-noodle-side", n), o.setAttribute("data-noodle-target", s), o.style.cssText = `position:absolute;width:${this.portSize}px;height:${this.portSize}px;border-radius:50%;background:${this.color};border:2px solid white;pointer-events:auto;cursor:crosshair;z-index:5;touch-action:none;transform:translate(-50%,-50%);transition:transform 150ms ease,box-shadow 150ms ease;box-shadow:0 1px 3px rgba(0,0,0,0.2);`, o.addEventListener("pointerdown", this.#I), this.host.appendChild(o), this.#u.push(o);
|
|
780
781
|
}
|
|
781
782
|
}
|
|
782
783
|
this.#D(), this.#l || queueMicrotask(() => {
|
|
@@ -800,10 +801,10 @@ class We {
|
|
|
800
801
|
const e = t.target.closest("[data-noodle-port-indicator]");
|
|
801
802
|
if (!e) return;
|
|
802
803
|
t.preventDefault(), t.stopPropagation();
|
|
803
|
-
const i = e.getAttribute("data-noodle-target"), s = e.getAttribute("data-noodle-side"),
|
|
804
|
-
if (
|
|
804
|
+
const i = e.getAttribute("data-noodle-target"), s = e.getAttribute("data-noodle-side"), n = this.host.querySelector(`#${CSS.escape(i)}`);
|
|
805
|
+
if (n) {
|
|
805
806
|
this.#l = {
|
|
806
|
-
fromElement:
|
|
807
|
+
fromElement: n,
|
|
807
808
|
fromPort: s,
|
|
808
809
|
fromId: i,
|
|
809
810
|
pointerId: t.pointerId,
|
|
@@ -811,14 +812,14 @@ class We {
|
|
|
811
812
|
}, e.setAttribute("data-noodle-dragging", "");
|
|
812
813
|
for (const o of this.#u) {
|
|
813
814
|
if (o === e) continue;
|
|
814
|
-
const r = o.getAttribute("data-noodle-target"),
|
|
815
|
-
r === i &&
|
|
815
|
+
const r = o.getAttribute("data-noodle-target"), c = o.getAttribute("data-noodle-side");
|
|
816
|
+
r === i && c === s || o.setAttribute("data-noodle-droppable", "");
|
|
816
817
|
}
|
|
817
|
-
this.#o = !0, this.#i = document.createElementNS(
|
|
818
|
+
this.#o = !0, this.#i = document.createElementNS(L, "path"), this.#i.setAttribute("stroke", "var(--aui-ink-muted)"), this.#i.setAttribute("stroke-width", String(this.strokeWidth)), this.#i.setAttribute("fill", "none"), this.#i.setAttribute("stroke-dasharray", "6 4"), this.#i.setAttribute("stroke-linecap", "round"), this.#i.style.opacity = "0.7", this.#a?.appendChild(this.#i), this.host.dispatchEvent(new CustomEvent("aui:noodle-drag", {
|
|
818
819
|
bubbles: !0,
|
|
819
820
|
composed: !0,
|
|
820
821
|
detail: { from: i, fromPort: s, x: t.clientX, y: t.clientY }
|
|
821
|
-
})), document.addEventListener("pointermove", this.#P), document.addEventListener("pointerup", this.#$), document.addEventListener("pointercancel", this.#
|
|
822
|
+
})), document.addEventListener("pointermove", this.#P), document.addEventListener("pointerup", this.#$), document.addEventListener("pointercancel", this.#M);
|
|
822
823
|
}
|
|
823
824
|
};
|
|
824
825
|
#P = (t) => {
|
|
@@ -826,35 +827,35 @@ class We {
|
|
|
826
827
|
if (!e || !this.#i) return;
|
|
827
828
|
const i = this.#c(e.fromId, e.fromPort);
|
|
828
829
|
if (!i) return;
|
|
829
|
-
const { x: s, y:
|
|
830
|
-
this.#i.setAttribute("d",
|
|
830
|
+
const { x: s, y: n } = this.#A(t.clientX, t.clientY), o = Math.max(Math.abs(s - i.x), Math.abs(n - i.y)), r = Math.max(50, o * this.tension), [c, u] = this.#g(i.x, i.y, e.fromPort, r), m = `M ${i.x} ${i.y} C ${c} ${u}, ${s} ${n}, ${s} ${n}`;
|
|
831
|
+
this.#i.setAttribute("d", m), this.#Y(t.clientX, t.clientY);
|
|
831
832
|
};
|
|
832
833
|
#$ = (t) => {
|
|
833
834
|
const e = this.#l;
|
|
834
835
|
if (!e) return;
|
|
835
836
|
const i = this.#N(t.clientX, t.clientY);
|
|
836
837
|
if (i) {
|
|
837
|
-
const s = i.getAttribute("data-noodle-target"),
|
|
838
|
-
(s !== e.fromId ||
|
|
838
|
+
const s = i.getAttribute("data-noodle-target"), n = i.getAttribute("data-noodle-side");
|
|
839
|
+
(s !== e.fromId || n !== e.fromPort) && this.connect(e.fromId, s, e.fromPort, n);
|
|
839
840
|
}
|
|
840
|
-
this.#
|
|
841
|
+
this.#L();
|
|
841
842
|
};
|
|
842
|
-
#
|
|
843
|
-
this.#
|
|
843
|
+
#M = () => {
|
|
844
|
+
this.#L();
|
|
844
845
|
};
|
|
845
|
-
#
|
|
846
|
+
#L() {
|
|
846
847
|
for (const t of this.#u)
|
|
847
848
|
t.removeAttribute("data-noodle-dragging"), t.removeAttribute("data-noodle-droppable"), t.removeAttribute("data-noodle-drop-ready");
|
|
848
|
-
this.#i?.remove(), this.#i = null, this.#l = null, document.removeEventListener("pointermove", this.#P), document.removeEventListener("pointerup", this.#$), document.removeEventListener("pointercancel", this.#
|
|
849
|
+
this.#i?.remove(), this.#i = null, this.#l = null, document.removeEventListener("pointermove", this.#P), document.removeEventListener("pointerup", this.#$), document.removeEventListener("pointercancel", this.#M), this.#o = !1;
|
|
849
850
|
}
|
|
850
851
|
// ── Proximity helpers ──
|
|
851
852
|
/** Find the nearest droppable port within DROP_SNAP_RADIUS of a screen point. */
|
|
852
853
|
#N(t, e) {
|
|
853
|
-
let i = null, s =
|
|
854
|
-
for (const
|
|
855
|
-
if (!
|
|
856
|
-
const o =
|
|
857
|
-
|
|
854
|
+
let i = null, s = _e;
|
|
855
|
+
for (const n of this.#u) {
|
|
856
|
+
if (!n.hasAttribute("data-noodle-droppable")) continue;
|
|
857
|
+
const o = n.getBoundingClientRect(), r = o.left + o.width / 2, c = o.top + o.height / 2, u = Math.hypot(t - r, e - c);
|
|
858
|
+
u < s && (s = u, i = n);
|
|
858
859
|
}
|
|
859
860
|
return i;
|
|
860
861
|
}
|
|
@@ -865,10 +866,10 @@ class We {
|
|
|
865
866
|
s === i ? s.setAttribute("data-noodle-drop-ready", "") : s.removeAttribute("data-noodle-drop-ready");
|
|
866
867
|
if (i && this.#i && this.#l) {
|
|
867
868
|
this.#i.setAttribute("stroke", this.color), this.#i.style.opacity = "1", this.#i.removeAttribute("stroke-dasharray");
|
|
868
|
-
const s = i.getAttribute("data-noodle-target"),
|
|
869
|
+
const s = i.getAttribute("data-noodle-target"), n = i.getAttribute("data-noodle-side"), o = this.#c(s, n), r = this.#c(this.#l.fromId, this.#l.fromPort);
|
|
869
870
|
if (r && o) {
|
|
870
|
-
const
|
|
871
|
-
this.#i.setAttribute("d", `M ${r.x} ${r.y} C ${
|
|
871
|
+
const c = Math.max(Math.abs(o.x - r.x), Math.abs(o.y - r.y)), u = Math.max(50, c * this.tension), [m, h] = this.#g(r.x, r.y, this.#l.fromPort, u), [d, v] = this.#g(o.x, o.y, n, u);
|
|
872
|
+
this.#i.setAttribute("d", `M ${r.x} ${r.y} C ${m} ${h}, ${d} ${v}, ${o.x} ${o.y}`);
|
|
872
873
|
}
|
|
873
874
|
} else this.#i && (this.#i.setAttribute("stroke", "var(--aui-ink-muted)"), this.#i.style.opacity = "0.7", this.#i.setAttribute("stroke-dasharray", "6 4"));
|
|
874
875
|
}
|
|
@@ -880,49 +881,49 @@ class We {
|
|
|
880
881
|
const s = this.#e.get(i);
|
|
881
882
|
if (!s) return;
|
|
882
883
|
t.preventDefault(), t.stopPropagation(), this.#o = !0;
|
|
883
|
-
const
|
|
884
|
-
if (!
|
|
884
|
+
const n = this.#c(s.from, s.fromPort), o = this.#c(s.to, s.toPort);
|
|
885
|
+
if (!n || !o) {
|
|
885
886
|
this.#o = !1;
|
|
886
887
|
return;
|
|
887
888
|
}
|
|
888
|
-
const { x: r, y:
|
|
889
|
+
const { x: r, y: c } = this.#A(t.clientX, t.clientY), u = Math.hypot(r - n.x, c - n.y), m = Math.hypot(r - o.x, c - o.y), h = u < m ? s.to : s.from, d = u < m ? s.toPort : s.fromPort;
|
|
889
890
|
this.disconnect(i);
|
|
890
891
|
const v = this.#u.find(
|
|
891
|
-
(
|
|
892
|
+
(g) => g.getAttribute("data-noodle-target") === h && g.getAttribute("data-noodle-side") === d
|
|
892
893
|
);
|
|
893
894
|
if (!v) {
|
|
894
895
|
this.#o = !1;
|
|
895
896
|
return;
|
|
896
897
|
}
|
|
897
|
-
const
|
|
898
|
-
if (!
|
|
898
|
+
const l = this.host.querySelector(`#${CSS.escape(h)}`);
|
|
899
|
+
if (!l) {
|
|
899
900
|
this.#o = !1;
|
|
900
901
|
return;
|
|
901
902
|
}
|
|
902
903
|
this.#l = {
|
|
903
|
-
fromElement:
|
|
904
|
-
fromPort:
|
|
905
|
-
fromId:
|
|
904
|
+
fromElement: l,
|
|
905
|
+
fromPort: d,
|
|
906
|
+
fromId: h,
|
|
906
907
|
pointerId: t.pointerId,
|
|
907
908
|
sourceDot: v,
|
|
908
909
|
reconnectId: i
|
|
909
910
|
}, v.setAttribute("data-noodle-dragging", "");
|
|
910
|
-
for (const
|
|
911
|
-
if (
|
|
912
|
-
const y =
|
|
913
|
-
y ===
|
|
911
|
+
for (const g of this.#u) {
|
|
912
|
+
if (g === v) continue;
|
|
913
|
+
const y = g.getAttribute("data-noodle-target"), P = g.getAttribute("data-noodle-side");
|
|
914
|
+
y === h && P === d || g.setAttribute("data-noodle-droppable", "");
|
|
914
915
|
}
|
|
915
|
-
this.#i = document.createElementNS(
|
|
916
|
-
const f = this.#c(
|
|
916
|
+
this.#i = document.createElementNS(L, "path"), this.#i.setAttribute("stroke", "var(--aui-ink-muted)"), this.#i.setAttribute("stroke-width", String(this.strokeWidth)), this.#i.setAttribute("fill", "none"), this.#i.setAttribute("stroke-dasharray", "6 4"), this.#i.setAttribute("stroke-linecap", "round"), this.#i.style.opacity = "0.7";
|
|
917
|
+
const f = this.#c(h, d), { x: b, y: C } = this.#A(t.clientX, t.clientY);
|
|
917
918
|
if (f) {
|
|
918
|
-
const
|
|
919
|
-
this.#i.setAttribute("d", `M ${f.x} ${f.y} C ${P} ${E}, ${
|
|
919
|
+
const g = Math.max(Math.abs(b - f.x), Math.abs(C - f.y)), y = Math.max(50, g * this.tension), [P, E] = this.#g(f.x, f.y, d, y);
|
|
920
|
+
this.#i.setAttribute("d", `M ${f.x} ${f.y} C ${P} ${E}, ${b} ${C}, ${b} ${C}`);
|
|
920
921
|
}
|
|
921
922
|
this.#a?.appendChild(this.#i), this.host.dispatchEvent(new CustomEvent("aui:noodle-drag", {
|
|
922
923
|
bubbles: !0,
|
|
923
924
|
composed: !0,
|
|
924
|
-
detail: { from:
|
|
925
|
-
})), document.addEventListener("pointermove", this.#P), document.addEventListener("pointerup", this.#$), document.addEventListener("pointercancel", this.#
|
|
925
|
+
detail: { from: h, fromPort: d, x: t.clientX, y: t.clientY, reconnect: !0 }
|
|
926
|
+
})), document.addEventListener("pointermove", this.#P), document.addEventListener("pointerup", this.#$), document.addEventListener("pointercancel", this.#M);
|
|
926
927
|
};
|
|
927
928
|
// ── Movement tracking ──
|
|
928
929
|
#x = () => {
|
|
@@ -943,7 +944,7 @@ class We {
|
|
|
943
944
|
this.#m?.disconnect(), this.#m = null, this.#p?.disconnect(), this.#p = null;
|
|
944
945
|
}
|
|
945
946
|
}
|
|
946
|
-
class
|
|
947
|
+
class Ke extends T {
|
|
947
948
|
static attributes = {
|
|
948
949
|
editable: { type: "boolean", default: !1 },
|
|
949
950
|
color: { type: "string", default: "" },
|
|
@@ -983,7 +984,7 @@ class Xe extends T {
|
|
|
983
984
|
}
|
|
984
985
|
// ── Lifecycle ──
|
|
985
986
|
activate() {
|
|
986
|
-
this.#n = new
|
|
987
|
+
this.#n = new Be(this, this.#t());
|
|
987
988
|
}
|
|
988
989
|
dispose() {
|
|
989
990
|
this.#n?.destroy(), this.#n = null;
|
|
@@ -1008,9 +1009,9 @@ class Xe extends T {
|
|
|
1008
1009
|
isNaN(r) || (t.tension = r);
|
|
1009
1010
|
}
|
|
1010
1011
|
this.hasAttribute("show-ports") && (t.showPorts = this.getAttribute("show-ports") !== "false");
|
|
1011
|
-
const
|
|
1012
|
-
if (
|
|
1013
|
-
const r = Number(
|
|
1012
|
+
const n = this.getAttribute("port-size");
|
|
1013
|
+
if (n) {
|
|
1014
|
+
const r = Number(n);
|
|
1014
1015
|
isNaN(r) || (t.portSize = r);
|
|
1015
1016
|
}
|
|
1016
1017
|
const o = this.getAttribute("curve");
|
|
@@ -1023,7 +1024,7 @@ class Xe extends T {
|
|
|
1023
1024
|
i.editable = e !== null, i.update();
|
|
1024
1025
|
break;
|
|
1025
1026
|
case "color":
|
|
1026
|
-
i.color = e ?? "var(--aui-accent
|
|
1027
|
+
i.color = e ?? "var(--aui-accent)", i.update();
|
|
1027
1028
|
break;
|
|
1028
1029
|
case "stroke-width": {
|
|
1029
1030
|
const s = Number(e);
|
|
@@ -1055,11 +1056,11 @@ class Xe extends T {
|
|
|
1055
1056
|
}
|
|
1056
1057
|
}
|
|
1057
1058
|
}
|
|
1058
|
-
const
|
|
1059
|
-
function k(
|
|
1060
|
-
return
|
|
1059
|
+
const je = '<svg width="20" height="20" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M92.2671 346.112C88.1711 262.144 202.347 250.88 288.875 237.568C288.363 202.752 290.923 133.12 221.291 133.12C206.955 133.12 197.227 134.144 186.987 137.216L189.547 147.968C228.459 148.992 238.187 173.056 237.163 193.024C235.115 229.888 196.715 242.688 169.579 242.688C141.419 242.688 104.555 227.328 106.091 186.88C107.627 143.872 163.435 112.64 250.987 112.64C348.779 112.64 403.563 139.776 403.563 244.736V351.744C403.563 369.152 407.659 375.296 417.387 375.296C422.507 375.296 427.627 369.664 431.723 361.984L444.523 369.152C423.019 401.408 391.275 415.744 362.603 415.744C302.699 415.744 279.147 377.856 308.331 313.856L296.043 309.76C277.611 386.048 232.555 415.744 180.331 415.744C135.787 415.744 94.3151 391.68 92.2671 346.112ZM202.859 327.168C208.491 348.672 227.435 357.888 245.355 351.232C267.883 343.04 285.291 311.808 288.363 265.216L288.875 257.536C232.555 267.776 191.083 283.136 202.859 327.168Z" fill="currentColor"/></svg>';
|
|
1060
|
+
function k(p) {
|
|
1061
|
+
return p.split("-").map((t) => t[0].toUpperCase() + t.slice(1)).join(" ");
|
|
1061
1062
|
}
|
|
1062
|
-
class
|
|
1063
|
+
class Je extends T {
|
|
1063
1064
|
static attributes = {
|
|
1064
1065
|
src: { type: "string", default: "./preview.json" }
|
|
1065
1066
|
};
|
|
@@ -1083,61 +1084,61 @@ class Ke extends T {
|
|
|
1083
1084
|
this.textContent = "Failed to load preview.json";
|
|
1084
1085
|
return;
|
|
1085
1086
|
}
|
|
1086
|
-
const { section: e, param: i, items: s, links:
|
|
1087
|
-
|
|
1088
|
-
const
|
|
1089
|
-
|
|
1090
|
-
const
|
|
1091
|
-
|
|
1092
|
-
const v = "aui-preview-scheme",
|
|
1093
|
-
|
|
1087
|
+
const { section: e, param: i, items: s, links: n } = t, r = new URL(this.src, window.location.href).href.replace(/preview\.json$/, ""), u = new URLSearchParams(location.search).get(i), m = document.createElement("div");
|
|
1088
|
+
m.setAttribute("data-role", "navbar");
|
|
1089
|
+
const h = document.createElement("aui-select");
|
|
1090
|
+
h.setAttribute("mode", "bar"), h.setAttribute("width", "full");
|
|
1091
|
+
const d = document.createElement("aui-option");
|
|
1092
|
+
d.setAttribute("value", ""), d.setAttribute("overflow-pin", ""), d.setAttribute("data-preview-logo", ""), d.dataset.href = window.location.pathname, d.innerHTML = `${je} AgentUI`, h.appendChild(d);
|
|
1093
|
+
const v = "aui-preview-scheme", l = localStorage.getItem(v);
|
|
1094
|
+
l && (document.documentElement.dataset.theme = l, document.documentElement.style.colorScheme = l);
|
|
1094
1095
|
const f = document.createElement("aui-button");
|
|
1095
1096
|
f.setAttribute("ghost", ""), f.setAttribute("size", "sm"), f.setAttribute("hide-label", ""), f.setAttribute("label", "Toggle color scheme");
|
|
1096
|
-
const
|
|
1097
|
-
|
|
1097
|
+
const b = document.createElement("aui-icon"), C = document.documentElement.dataset.theme === "dark";
|
|
1098
|
+
b.setAttribute("name", C ? "sun" : "moon"), f.appendChild(b), h.appendChild(f), f.addEventListener("click", () => {
|
|
1098
1099
|
const A = document.documentElement, x = A.dataset.theme === "dark", w = x ? "light" : "dark";
|
|
1099
|
-
A.dataset.theme = w, A.style.colorScheme = w, localStorage.setItem(v, w),
|
|
1100
|
+
A.dataset.theme = w, A.style.colorScheme = w, localStorage.setItem(v, w), b.setAttribute("name", x ? "moon" : "sun");
|
|
1100
1101
|
});
|
|
1101
|
-
const
|
|
1102
|
-
if (
|
|
1102
|
+
const g = document.createElement("aui-select");
|
|
1103
|
+
if (g.setAttribute("placeholder", k(e)), g.setAttribute("outline", ""), g.setAttribute("data-role", "page-select"), n.length) {
|
|
1103
1104
|
const A = document.createElement("aui-optgroup");
|
|
1104
1105
|
A.setAttribute("label", "Sections");
|
|
1105
|
-
for (const x of
|
|
1106
|
+
for (const x of n) {
|
|
1106
1107
|
const w = document.createElement("aui-option");
|
|
1107
1108
|
w.setAttribute("value", `go-${x.label.toLowerCase()}`), w.dataset.href = x.href, w.textContent = x.label, A.appendChild(w);
|
|
1108
1109
|
}
|
|
1109
|
-
|
|
1110
|
+
g.appendChild(A);
|
|
1110
1111
|
}
|
|
1111
1112
|
let y = null, P = "";
|
|
1112
1113
|
for (const A of s) {
|
|
1113
1114
|
const x = A.group || k(e);
|
|
1114
|
-
x !== P && (y = document.createElement("aui-optgroup"), y.setAttribute("label", x),
|
|
1115
|
+
x !== P && (y = document.createElement("aui-optgroup"), y.setAttribute("label", x), g.appendChild(y), P = x);
|
|
1115
1116
|
const w = document.createElement("aui-option");
|
|
1116
|
-
w.setAttribute("value", A.slug), A.file && (w.dataset.file = A.file), A.slug ===
|
|
1117
|
+
w.setAttribute("value", A.slug), A.file && (w.dataset.file = A.file), A.slug === u && w.setAttribute("selected", ""), w.textContent = A.name || k(A.slug), y.appendChild(w);
|
|
1117
1118
|
}
|
|
1118
|
-
|
|
1119
|
+
u && g.setAttribute("value", u), h.appendChild(g), m.appendChild(h), this.appendChild(m);
|
|
1119
1120
|
const E = document.createElement("aui-editor");
|
|
1120
1121
|
E.setAttribute("data-role", "canvas"), E.setAttribute("background", "dots");
|
|
1121
1122
|
const D = document.createElement("aui-editor-layer");
|
|
1122
1123
|
D.setAttribute("name", "content");
|
|
1123
1124
|
const R = document.createElement("div");
|
|
1124
|
-
if (R.setAttribute("data-role", "content"), D.appendChild(R), E.appendChild(D), this.appendChild(E), this.#n = E, this.#t = R,
|
|
1125
|
+
if (R.setAttribute("data-role", "content"), D.appendChild(R), E.appendChild(D), this.appendChild(E), this.#n = E, this.#t = R, h.addEventListener("click", (A) => {
|
|
1125
1126
|
const w = A.target.closest("aui-option")?.dataset?.href;
|
|
1126
1127
|
w && (window.location.href = w);
|
|
1127
|
-
}),
|
|
1128
|
-
const x = A.target.value,
|
|
1129
|
-
if (
|
|
1130
|
-
window.location.href =
|
|
1128
|
+
}), g.addEventListener("change", (A) => {
|
|
1129
|
+
const x = A.target.value, z = g.querySelector(`aui-option[value="${x}"]`)?.dataset?.href;
|
|
1130
|
+
if (z) {
|
|
1131
|
+
window.location.href = z;
|
|
1131
1132
|
return;
|
|
1132
1133
|
}
|
|
1133
1134
|
const U = new URL(window.location.href);
|
|
1134
1135
|
U.searchParams.set(i, x), window.location.href = U.toString();
|
|
1135
|
-
}),
|
|
1136
|
-
const x = s.find((w) => w.slug ===
|
|
1137
|
-
document.title = `${k(
|
|
1136
|
+
}), u) {
|
|
1137
|
+
const x = s.find((w) => w.slug === u)?.file || `${u}/${u}.html`;
|
|
1138
|
+
document.title = `${k(u)} — AgentUI ${k(e)}`, await this.#h(x, r);
|
|
1138
1139
|
} else
|
|
1139
1140
|
document.title = `AgentUI — ${k(e)}`, await this.#o(s, r);
|
|
1140
|
-
this.#e = t, this.#a =
|
|
1141
|
+
this.#e = t, this.#a = u, this.#l(t, i), document.addEventListener("keydown", this.#p), requestAnimationFrame(() => this.#d());
|
|
1141
1142
|
}
|
|
1142
1143
|
// ── Command palette ──
|
|
1143
1144
|
#l(t, e) {
|
|
@@ -1145,36 +1146,36 @@ class Ke extends T {
|
|
|
1145
1146
|
i.setAttribute("size", "sm");
|
|
1146
1147
|
const s = document.createElement("aui-command");
|
|
1147
1148
|
s.setAttribute("max-width", "full");
|
|
1148
|
-
const
|
|
1149
|
-
|
|
1149
|
+
const n = document.createElement("aui-command-input");
|
|
1150
|
+
n.setAttribute("placeholder", `Go to ${k(t.section)}…`), s.appendChild(n);
|
|
1150
1151
|
const o = document.createElement("aui-command-list");
|
|
1151
1152
|
if (t.links.length) {
|
|
1152
|
-
const
|
|
1153
|
-
|
|
1154
|
-
for (const
|
|
1155
|
-
const
|
|
1156
|
-
|
|
1153
|
+
const m = document.createElement("aui-command-group");
|
|
1154
|
+
m.setAttribute("label", "Sections");
|
|
1155
|
+
for (const h of t.links) {
|
|
1156
|
+
const d = document.createElement("aui-command-item");
|
|
1157
|
+
d.setAttribute("value", `section:${h.label}`), d.dataset.href = h.href, d.textContent = h.label, m.appendChild(d);
|
|
1157
1158
|
}
|
|
1158
|
-
o.appendChild(
|
|
1159
|
+
o.appendChild(m);
|
|
1159
1160
|
}
|
|
1160
|
-
let r = null,
|
|
1161
|
-
for (const
|
|
1162
|
-
const
|
|
1163
|
-
|
|
1164
|
-
const
|
|
1165
|
-
|
|
1161
|
+
let r = null, c = "";
|
|
1162
|
+
for (const m of t.items) {
|
|
1163
|
+
const h = m.group || k(t.section);
|
|
1164
|
+
h !== c && (r = document.createElement("aui-command-group"), r.setAttribute("label", h), o.appendChild(r), c = h);
|
|
1165
|
+
const d = document.createElement("aui-command-item");
|
|
1166
|
+
d.setAttribute("value", m.slug), m.summary && d.setAttribute("keywords", m.summary), d.textContent = m.name || k(m.slug), r.appendChild(d);
|
|
1166
1167
|
}
|
|
1167
1168
|
s.appendChild(o);
|
|
1168
|
-
const
|
|
1169
|
-
|
|
1170
|
-
const { value:
|
|
1169
|
+
const u = document.createElement("aui-command-empty");
|
|
1170
|
+
u.textContent = "No results.", s.appendChild(u), s.addEventListener("select", (m) => {
|
|
1171
|
+
const { value: h } = m.detail, v = s.querySelector(`aui-command-item[value="${CSS.escape(h)}"]`)?.dataset?.href;
|
|
1171
1172
|
if (v) {
|
|
1172
1173
|
window.location.href = v;
|
|
1173
1174
|
return;
|
|
1174
1175
|
}
|
|
1175
|
-
if (
|
|
1176
|
-
const
|
|
1177
|
-
|
|
1176
|
+
if (h.startsWith("section:")) return;
|
|
1177
|
+
const l = new URL(window.location.href);
|
|
1178
|
+
l.searchParams.set(e, h), window.location.href = l.toString();
|
|
1178
1179
|
}), s.addEventListener("dismiss", () => this.#m()), i.addEventListener("close", () => {
|
|
1179
1180
|
this.#s?.removeAttribute("open");
|
|
1180
1181
|
}), i.appendChild(s), this.appendChild(i), this.#s = i;
|
|
@@ -1206,34 +1207,42 @@ class Ke extends T {
|
|
|
1206
1207
|
if (!this.#e) return;
|
|
1207
1208
|
const { items: e, param: i } = this.#e;
|
|
1208
1209
|
if (!e.length) return;
|
|
1209
|
-
let
|
|
1210
|
-
|
|
1211
|
-
const o = e[
|
|
1210
|
+
let n = (this.#a ? e.findIndex((c) => c.slug === this.#a) : -1) + t;
|
|
1211
|
+
n >= e.length && (n = 0), n < 0 && (n = e.length - 1);
|
|
1212
|
+
const o = e[n];
|
|
1212
1213
|
if (!o) return;
|
|
1213
1214
|
const r = new URL(window.location.href);
|
|
1214
1215
|
r.searchParams.set(i, o.slug), window.location.href = r.toString();
|
|
1215
1216
|
}
|
|
1216
1217
|
async #h(t, e) {
|
|
1217
|
-
const i =
|
|
1218
|
+
const i = `${e}${t}`, s = t.replace(/\.html$/, ""), n = `${e}${s}.css`, o = `${e}${s}.ts`;
|
|
1218
1219
|
try {
|
|
1219
|
-
const
|
|
1220
|
-
|
|
1220
|
+
const l = await fetch(i);
|
|
1221
|
+
l.ok && (this.#t.innerHTML = await l.text());
|
|
1221
1222
|
} catch {
|
|
1222
1223
|
}
|
|
1223
|
-
await new Promise((
|
|
1224
|
+
await new Promise((l) => requestAnimationFrame(() => requestAnimationFrame(l))), await new Promise((l) => requestAnimationFrame(() => requestAnimationFrame(l)));
|
|
1224
1225
|
const r = Array.from(this.#t.children).filter(
|
|
1225
|
-
(
|
|
1226
|
-
),
|
|
1227
|
-
el:
|
|
1228
|
-
height:
|
|
1229
|
-
width:
|
|
1226
|
+
(l) => l.nodeType === 1 && l.tagName !== "SCRIPT"
|
|
1227
|
+
), c = 96, u = 200, m = r.map((l) => ({
|
|
1228
|
+
el: l,
|
|
1229
|
+
height: l.offsetHeight,
|
|
1230
|
+
width: l.offsetWidth
|
|
1230
1231
|
}));
|
|
1231
|
-
let
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
const
|
|
1236
|
-
|
|
1232
|
+
let h = u, d = 0;
|
|
1233
|
+
const v = [];
|
|
1234
|
+
for (const { el: l, height: f, width: b } of m)
|
|
1235
|
+
v.push({ el: l, y: h, width: b }), b > d && (d = b), h += f + c;
|
|
1236
|
+
for (const { el: l, y: f, width: b } of v)
|
|
1237
|
+
l.style.position = "absolute", l.style.left = `${(d - b) / 2}px`, l.style.top = `${f}px`, l.tagName === "AUI-GRAPH-UI" || l.tagName === "AUI-EDITOR" || (G(l, "drag", { config: { mode: "free", modifier: "alt" } }), G(l, "resize", { config: { modifier: "alt" } }));
|
|
1238
|
+
this.#t.style.width = `${d}px`, this.#t.style.height = `${h}px`;
|
|
1239
|
+
try {
|
|
1240
|
+
if ((await fetch(n, { method: "HEAD" })).ok) {
|
|
1241
|
+
const f = document.createElement("link");
|
|
1242
|
+
f.rel = "stylesheet", f.href = n, document.head.appendChild(f);
|
|
1243
|
+
}
|
|
1244
|
+
} catch {
|
|
1245
|
+
}
|
|
1237
1246
|
try {
|
|
1238
1247
|
await import(
|
|
1239
1248
|
/* @vite-ignore */
|
|
@@ -1241,179 +1250,186 @@ class Ke extends T {
|
|
|
1241
1250
|
);
|
|
1242
1251
|
} catch {
|
|
1243
1252
|
}
|
|
1244
|
-
for (const
|
|
1253
|
+
for (const l of Array.from(this.#t.querySelectorAll("script"))) {
|
|
1245
1254
|
const f = document.createElement("script");
|
|
1246
|
-
for (const
|
|
1247
|
-
f.textContent =
|
|
1255
|
+
for (const b of l.attributes) f.setAttribute(b.name, b.value);
|
|
1256
|
+
f.textContent = l.textContent, l.replaceWith(f);
|
|
1248
1257
|
}
|
|
1249
1258
|
requestAnimationFrame(() => this.#d());
|
|
1250
1259
|
}
|
|
1251
1260
|
async #o(t, e) {
|
|
1252
|
-
const
|
|
1253
|
-
let r = 200,
|
|
1254
|
-
for (const
|
|
1255
|
-
const
|
|
1256
|
-
if (!
|
|
1257
|
-
|
|
1261
|
+
const n = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set();
|
|
1262
|
+
let r = 200, c = 0;
|
|
1263
|
+
for (const u of t) {
|
|
1264
|
+
const m = u.file || `${u.slug}/${u.slug}.html`, h = m.replace(/\.html$/, ""), d = `${e}${m}`, v = `${e}${h}.css`, l = `${e}${h}.ts`;
|
|
1265
|
+
if (!n.has(v)) {
|
|
1266
|
+
n.add(v);
|
|
1258
1267
|
const y = document.createElement("link");
|
|
1259
1268
|
y.rel = "stylesheet", y.href = v, document.head.appendChild(y);
|
|
1260
1269
|
}
|
|
1261
|
-
if (!o.has(
|
|
1262
|
-
o.add(
|
|
1270
|
+
if (!o.has(l)) {
|
|
1271
|
+
o.add(l);
|
|
1263
1272
|
try {
|
|
1264
1273
|
await import(
|
|
1265
1274
|
/* @vite-ignore */
|
|
1266
|
-
|
|
1275
|
+
l
|
|
1267
1276
|
);
|
|
1268
1277
|
} catch {
|
|
1269
1278
|
}
|
|
1270
1279
|
}
|
|
1271
1280
|
let f = "";
|
|
1272
1281
|
try {
|
|
1273
|
-
const y = await fetch(
|
|
1282
|
+
const y = await fetch(d);
|
|
1274
1283
|
y.ok && (f = await y.text());
|
|
1275
1284
|
} catch {
|
|
1276
1285
|
continue;
|
|
1277
1286
|
}
|
|
1278
1287
|
if (!f.trim()) continue;
|
|
1279
|
-
const
|
|
1280
|
-
|
|
1281
|
-
const C =
|
|
1282
|
-
|
|
1288
|
+
const b = document.createElement("div");
|
|
1289
|
+
b.setAttribute("data-role", "gallery-item"), b.innerHTML = `<h3 style="margin:0 0 1rem;font-family:var(--aui-font-family);font-size:var(--aui-font-lg);font-weight:var(--aui-font-weight-semibold);color:var(--aui-ink-muted);">${u.name || k(u.slug)}</h3>${f}`, this.#t.appendChild(b), await new Promise((y) => requestAnimationFrame(y));
|
|
1290
|
+
const C = b.offsetHeight, g = b.offsetWidth;
|
|
1291
|
+
b.style.position = "absolute", b.style.top = `${r}px`, b.__measuredWidth = g, g > c && (c = g), r += C + 96;
|
|
1292
|
+
}
|
|
1293
|
+
for (const u of Array.from(this.#t.children)) {
|
|
1294
|
+
const m = u.__measuredWidth ?? u.offsetWidth;
|
|
1295
|
+
u.style.left = `${(c - m) / 2}px`;
|
|
1283
1296
|
}
|
|
1284
|
-
this.#t.style.width = `${
|
|
1297
|
+
this.#t.style.width = `${c}px`, this.#t.style.height = `${r}px`, requestAnimationFrame(() => this.#d());
|
|
1285
1298
|
}
|
|
1286
1299
|
#d() {
|
|
1287
|
-
const t = this.#n, e = this.#n.clientWidth, i = this.#t.offsetWidth, s = (e - i) / 2;
|
|
1300
|
+
const t = this.#n, e = this.#n.clientWidth, i = this.#t.offsetWidth, s = Math.max(16, (e - i) / 2);
|
|
1288
1301
|
t.panTo?.(s, 0);
|
|
1289
1302
|
}
|
|
1290
1303
|
}
|
|
1291
1304
|
et();
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1305
|
+
a("aui-button", lt);
|
|
1306
|
+
a("aui-input", dt);
|
|
1307
|
+
a("aui-checkbox", ct);
|
|
1308
|
+
a("aui-switch", ht);
|
|
1309
|
+
a("aui-radio", mt);
|
|
1310
|
+
a("aui-radio-group", pt);
|
|
1311
|
+
a("aui-textarea", ft);
|
|
1312
|
+
a("aui-container", bt);
|
|
1313
|
+
a("aui-dialog", gt);
|
|
1314
|
+
a("aui-drawer", vt);
|
|
1315
|
+
a("aui-icon", At);
|
|
1316
|
+
a("aui-tooltip", yt);
|
|
1317
|
+
a("aui-range", wt);
|
|
1318
|
+
a("aui-input-otp", xt);
|
|
1319
|
+
a("aui-gripper", Ct);
|
|
1320
|
+
a("aui-option", Et);
|
|
1321
|
+
a("aui-optgroup", kt);
|
|
1322
|
+
a("aui-select", St);
|
|
1323
|
+
a("aui-toast", Pt);
|
|
1324
|
+
a("aui-tabs", $t);
|
|
1325
|
+
a("aui-tab", Mt);
|
|
1326
|
+
a("aui-tab-panel", Lt);
|
|
1327
|
+
a("aui-accordion", Dt);
|
|
1328
|
+
a("aui-accordion-item", Tt);
|
|
1329
|
+
a("aui-breadcrumb", It);
|
|
1330
|
+
a("aui-breadcrumb-item", Nt);
|
|
1331
|
+
a("aui-segmented-control", Yt);
|
|
1332
|
+
a("aui-segment", qt);
|
|
1333
|
+
a("aui-pagination", Rt);
|
|
1334
|
+
a("aui-command", Ft);
|
|
1335
|
+
a("aui-command-input", Gt);
|
|
1336
|
+
a("aui-command-list", zt);
|
|
1337
|
+
a("aui-command-item", Ut);
|
|
1338
|
+
a("aui-command-group", Ht);
|
|
1339
|
+
a("aui-command-empty", Wt);
|
|
1340
|
+
a("aui-panes", Ot);
|
|
1341
|
+
a("aui-pane", Xt);
|
|
1342
|
+
a("aui-table", _t);
|
|
1343
|
+
a("aui-table-head", Bt);
|
|
1344
|
+
a("aui-table-body", Kt);
|
|
1345
|
+
a("aui-table-row", jt);
|
|
1346
|
+
a("aui-table-header", Jt);
|
|
1347
|
+
a("aui-table-cell", Vt);
|
|
1348
|
+
a("aui-table-column", ze);
|
|
1349
|
+
a("aui-tree", Zt);
|
|
1350
|
+
a("aui-tree-item", Qt);
|
|
1351
|
+
a("aui-feed", te);
|
|
1352
|
+
a("aui-root", ee);
|
|
1353
|
+
a("aui-canvas", Ue);
|
|
1354
|
+
a("aui-calendar", Oe);
|
|
1355
|
+
a("aui-calendar-picker", ie);
|
|
1356
|
+
a("aui-calendar-range-picker", se);
|
|
1357
|
+
a("aui-noodles", Ke);
|
|
1358
|
+
a("aui-agent-feed", _);
|
|
1359
|
+
a("aui-agent-thread", B);
|
|
1360
|
+
a("aui-agent-message", K);
|
|
1361
|
+
a("aui-agent-text", j);
|
|
1362
|
+
a("aui-agent-activity", J);
|
|
1363
|
+
a("aui-agent-seeds", V);
|
|
1364
|
+
a("aui-agent-panel", Z);
|
|
1365
|
+
a("aui-agent-input", Q);
|
|
1366
|
+
a("aui-agent-prompt", tt);
|
|
1367
|
+
a("aui-app-shell", ae);
|
|
1368
|
+
a("aui-page", ne);
|
|
1369
|
+
a("aui-page-main", oe);
|
|
1370
|
+
a("aui-page-context", re);
|
|
1371
|
+
a("aui-sidebar", ue);
|
|
1372
|
+
a("aui-sidebar-header", le);
|
|
1373
|
+
a("aui-sidebar-content", de);
|
|
1374
|
+
a("aui-sidebar-footer", ce);
|
|
1375
|
+
a("aui-preview-app", Je);
|
|
1376
|
+
a("aui-editor", it);
|
|
1377
|
+
a("aui-editor-layer", st);
|
|
1378
|
+
a("aui-graph-ui", at);
|
|
1379
|
+
a("aui-graph-layer", nt);
|
|
1380
|
+
a("aui-graph-node", ot);
|
|
1381
|
+
a("aui-graph-noodle", rt);
|
|
1382
|
+
a("aui-graph-port", ut);
|
|
1383
|
+
a("aui-progress", he);
|
|
1384
|
+
a("aui-code-block", me);
|
|
1385
|
+
a("aui-sparkline", pe);
|
|
1386
|
+
a("aui-chip", fe);
|
|
1387
|
+
a("aui-disclosure", be);
|
|
1388
|
+
a("aui-avatar-group", ge);
|
|
1389
|
+
a("aui-progress-circle", ve);
|
|
1390
|
+
a("aui-disclosure-group", Ae);
|
|
1391
|
+
a("aui-tag-group", ye);
|
|
1392
|
+
a("aui-color-area", we);
|
|
1393
|
+
a("aui-color-slider", xe);
|
|
1394
|
+
a("aui-color-field", Ce);
|
|
1395
|
+
a("aui-time-field", Ee);
|
|
1396
|
+
a("aui-date-field", ke);
|
|
1397
|
+
a("aui-context-menu", Se);
|
|
1398
|
+
a("aui-dropdown-menu", Pe);
|
|
1399
|
+
a("aui-hover-card", $e);
|
|
1400
|
+
a("aui-color-picker", Me);
|
|
1401
|
+
a("aui-file-upload", Le);
|
|
1402
|
+
a("aui-copy-button", De);
|
|
1403
|
+
a("aui-stat", Te);
|
|
1404
|
+
a("aui-image", Ie);
|
|
1405
|
+
a("aui-carousel", Ne);
|
|
1406
|
+
a("aui-notification-center", Ye);
|
|
1407
|
+
a("aui-empty-state", qe);
|
|
1408
|
+
a("aui-meter", Re);
|
|
1409
|
+
a("aui-checkbox-group", Fe);
|
|
1410
|
+
a("aui-form", Ge);
|
|
1395
1411
|
const q = /* @__PURE__ */ new WeakMap();
|
|
1396
|
-
function Y(
|
|
1397
|
-
if (
|
|
1398
|
-
const t =
|
|
1412
|
+
function Y(p) {
|
|
1413
|
+
if (p instanceof T || q.has(p)) return;
|
|
1414
|
+
const t = p.getAttribute("traits");
|
|
1399
1415
|
if (!t) return;
|
|
1400
|
-
const e =
|
|
1401
|
-
for (const { entry:
|
|
1402
|
-
const o =
|
|
1403
|
-
config:
|
|
1416
|
+
const e = O(t), i = X(e, p.localName), s = [];
|
|
1417
|
+
for (const { entry: n } of i) {
|
|
1418
|
+
const o = G(p, n.name, {
|
|
1419
|
+
config: n.config
|
|
1404
1420
|
});
|
|
1405
1421
|
s.push(o);
|
|
1406
1422
|
}
|
|
1407
|
-
q.set(
|
|
1423
|
+
q.set(p, s);
|
|
1408
1424
|
}
|
|
1409
|
-
function F(
|
|
1410
|
-
const t = q.get(
|
|
1425
|
+
function F(p) {
|
|
1426
|
+
const t = q.get(p);
|
|
1411
1427
|
if (t) {
|
|
1412
1428
|
for (const e of t) e();
|
|
1413
|
-
q.delete(
|
|
1429
|
+
q.delete(p);
|
|
1414
1430
|
}
|
|
1415
1431
|
}
|
|
1416
|
-
function
|
|
1432
|
+
function W() {
|
|
1417
1433
|
for (const t of document.querySelectorAll("[traits]"))
|
|
1418
1434
|
Y(t);
|
|
1419
1435
|
new MutationObserver((t) => {
|
|
@@ -1423,15 +1439,15 @@ function O() {
|
|
|
1423
1439
|
if (i.nodeType !== 1) continue;
|
|
1424
1440
|
const s = i;
|
|
1425
1441
|
s.hasAttribute("traits") && Y(s);
|
|
1426
|
-
for (const
|
|
1427
|
-
Y(
|
|
1442
|
+
for (const n of s.querySelectorAll("[traits]"))
|
|
1443
|
+
Y(n);
|
|
1428
1444
|
}
|
|
1429
1445
|
for (const i of e.removedNodes) {
|
|
1430
1446
|
if (i.nodeType !== 1) continue;
|
|
1431
1447
|
const s = i;
|
|
1432
1448
|
F(s);
|
|
1433
|
-
for (const
|
|
1434
|
-
F(
|
|
1449
|
+
for (const n of s.querySelectorAll("[traits]"))
|
|
1450
|
+
F(n);
|
|
1435
1451
|
}
|
|
1436
1452
|
}
|
|
1437
1453
|
if (e.type === "attributes" && e.attributeName === "traits") {
|
|
@@ -1446,9 +1462,9 @@ function O() {
|
|
|
1446
1462
|
attributeFilter: ["traits"]
|
|
1447
1463
|
});
|
|
1448
1464
|
}
|
|
1449
|
-
document.body ?
|
|
1450
|
-
document.addEventListener("click", (
|
|
1451
|
-
const t =
|
|
1465
|
+
document.body ? W() : document.addEventListener("DOMContentLoaded", W, { once: !0 });
|
|
1466
|
+
document.addEventListener("click", (p) => {
|
|
1467
|
+
const t = p.target?.closest?.("[popover-trigger]");
|
|
1452
1468
|
if (!t) return;
|
|
1453
1469
|
const e = t.getAttribute("popover-trigger");
|
|
1454
1470
|
if (!e) return;
|
|
@@ -1461,8 +1477,8 @@ document.addEventListener("click", (m) => {
|
|
|
1461
1477
|
} catch {
|
|
1462
1478
|
}
|
|
1463
1479
|
});
|
|
1464
|
-
for (const
|
|
1465
|
-
document.addEventListener(
|
|
1480
|
+
for (const p of ["pointermove", "pointerdown", "pointerup", "mouseover", "mouseenter", "mouseleave"])
|
|
1481
|
+
document.addEventListener(p, (t) => {
|
|
1466
1482
|
t.target?.closest?.("[popover], dialog") && t.stopPropagation();
|
|
1467
1483
|
}, !0);
|
|
1468
1484
|
//# sourceMappingURL=register.js.map
|