@agent-ui-kit/web-components 0.0.15 → 0.0.17
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 +1700 -361
- package/dist/api.tokens.json +3 -3
- package/dist/api.tokens.yaml +3 -3
- package/dist/blocks/action-toolbar/action-toolbar.d.ts +0 -0
- package/dist/blocks/agent-artifact-card/agent-artifact-card.d.ts +0 -0
- package/dist/blocks/agent-chat-response/agent-chat-response.d.ts +0 -0
- package/dist/blocks/agent-code-result/agent-code-result.d.ts +0 -0
- package/dist/blocks/agent-context-panel/agent-context-panel.d.ts +0 -0
- package/dist/blocks/agent-feedback-controls/agent-feedback-controls.d.ts +0 -0
- package/dist/blocks/agent-follow-up-chips/agent-follow-up-chips.d.ts +0 -0
- package/dist/blocks/agent-model-selector/agent-model-selector.d.ts +0 -0
- package/dist/blocks/agent-prompt-input/agent-prompt-input.d.ts +0 -0
- package/dist/blocks/agent-streaming-message/agent-streaming-message.d.ts +0 -0
- package/dist/blocks/agent-suggestion-card/agent-suggestion-card.d.ts +0 -0
- package/dist/blocks/agent-task-card/agent-task-card.d.ts +0 -0
- package/dist/blocks/agent-thinking-state/agent-thinking-state.d.ts +0 -0
- package/dist/blocks/agent-tool-use-card/agent-tool-use-card.d.ts +0 -0
- package/dist/blocks/auth-card/auth-card.d.ts +0 -0
- package/dist/blocks/commerce-pricing-table/commerce-pricing-table.d.ts +0 -0
- package/dist/blocks/comms-chat-thread/comms-chat-thread.d.ts +0 -0
- package/dist/blocks/comms-notification-list/comms-notification-list.d.ts +0 -0
- package/dist/blocks/content-article-card/content-article-card.d.ts +0 -0
- package/dist/blocks/dashboard-kpi-grid/dashboard-kpi-grid.d.ts +0 -0
- package/dist/blocks/data-activity-log/data-activity-log.d.ts +0 -0
- package/dist/blocks/data-metric-card/data-metric-card.d.ts +0 -0
- package/dist/blocks/data-table/data-table.d.ts +0 -0
- package/dist/blocks/data-timeline/data-timeline.d.ts +0 -0
- package/dist/blocks/feedback-alert-banner/feedback-alert-banner.d.ts +0 -0
- package/dist/blocks/feedback-empty-state/feedback-empty-state.d.ts +0 -0
- package/dist/blocks/feedback-progress-stepper/feedback-progress-stepper.d.ts +0 -0
- package/dist/blocks/form-settings-section/form-settings-section.d.ts +0 -0
- package/dist/blocks/game-battleship/game-battleship.d.ts +0 -0
- package/dist/blocks/game-chess/game-chess.d.ts +0 -0
- package/dist/blocks/game-connect-four/game-connect-four.d.ts +0 -0
- package/dist/blocks/game-tic-tac-toe/game-tic-tac-toe.d.ts +0 -0
- package/dist/blocks/list-kanban-board/list-kanban-board.d.ts +0 -0
- package/dist/blocks/media-image-gallery/media-image-gallery.d.ts +0 -0
- package/dist/blocks/nav-sidebar/nav-sidebar.d.ts +0 -0
- package/dist/blocks/onboard-stepper/onboard-stepper.d.ts +0 -0
- package/dist/blocks/overlay-confirmation-modal/overlay-confirmation-modal.d.ts +0 -0
- package/dist/blocks/overlay-dropdown-menu/overlay-dropdown-menu.d.ts +0 -0
- package/dist/blocks/user-profile-card/user-profile-card.d.ts +0 -0
- package/dist/blocks/user-team-list/user-team-list.d.ts +0 -0
- package/dist/chunks/{agent-BF_R_HJk.js → agent-XMhz_6OA.js} +27 -22
- package/dist/chunks/{agent-BF_R_HJk.js.map → agent-XMhz_6OA.js.map} +1 -1
- package/dist/chunks/{meter-Dju8ik6C.js → form-oekEhwja.js} +402 -188
- package/dist/chunks/form-oekEhwja.js.map +1 -0
- package/dist/components/agent.js +1 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts +14 -0
- package/dist/components/checkbox-group/index.d.ts +1 -0
- package/dist/components/editor.js +1 -1
- 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/index.d.ts +2 -0
- package/dist/components/noodles/noodle-controller.d.ts +1 -1
- package/dist/components.js +89 -87
- package/dist/docs/blocks/action-toolbar.yaml +73 -0
- package/dist/docs/blocks/agent-artifact-card.yaml +67 -0
- package/dist/docs/blocks/agent-chat-response.yaml +65 -0
- package/dist/docs/blocks/agent-chat.yaml +33 -25
- package/dist/docs/blocks/agent-code-result.yaml +41 -0
- package/dist/docs/blocks/agent-context-panel.yaml +96 -0
- package/dist/docs/blocks/agent-feedback-controls.yaml +101 -0
- package/dist/docs/blocks/agent-follow-up-chips.yaml +37 -0
- package/dist/docs/blocks/agent-model-selector.yaml +83 -0
- package/dist/docs/blocks/agent-prompt-input.yaml +49 -0
- package/dist/docs/blocks/agent-streaming-message.yaml +46 -0
- package/dist/docs/blocks/agent-suggestion-card.yaml +68 -0
- package/dist/docs/blocks/agent-task-card.yaml +112 -0
- package/dist/docs/blocks/agent-thinking-state.yaml +56 -0
- package/dist/docs/blocks/agent-tool-use-card.yaml +142 -0
- package/dist/docs/blocks/announcement-card.yaml +14 -10
- package/dist/docs/blocks/auth-card.yaml +74 -0
- 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/commerce-pricing-table.yaml +142 -0
- package/dist/docs/blocks/comms-chat-thread.yaml +88 -0
- package/dist/docs/blocks/comms-notification-list.yaml +88 -0
- package/dist/docs/blocks/content-article-card.yaml +47 -0
- package/dist/docs/blocks/contributors.yaml +17 -11
- package/dist/docs/blocks/cyber-threat.yaml +158 -4
- package/dist/docs/blocks/dashboard-kpi-grid.yaml +72 -0
- package/dist/docs/blocks/dashboard-layout.yaml +24 -18
- package/dist/docs/blocks/data-activity-log.yaml +99 -0
- package/dist/docs/blocks/data-eng-dag.yaml +222 -6
- package/dist/docs/blocks/data-metric-card.yaml +50 -0
- package/dist/docs/blocks/data-table.yaml +106 -0
- package/dist/docs/blocks/data-timeline.yaml +103 -0
- 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/feedback-alert-banner.yaml +42 -0
- package/dist/docs/blocks/feedback-empty-state.yaml +18 -0
- package/dist/docs/blocks/feedback-progress-stepper.yaml +82 -0
- package/dist/docs/blocks/financial-risk.yaml +161 -4
- package/dist/docs/blocks/flow-editor.yaml +27 -18
- package/dist/docs/blocks/form-settings-section.yaml +129 -0
- package/dist/docs/blocks/game-battleship.yaml +184 -0
- package/dist/docs/blocks/game-chess.yaml +83 -0
- package/dist/docs/blocks/game-connect-four.yaml +80 -0
- package/dist/docs/blocks/game-tic-tac-toe.yaml +51 -0
- 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/list-kanban-board.yaml +158 -0
- 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 +37 -17
- package/dist/docs/blocks/marketing-automation.yaml +209 -4
- package/dist/docs/blocks/media-image-gallery.yaml +39 -0
- 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/nav-sidebar.yaml +84 -0
- package/dist/docs/blocks/notification-list.yaml +18 -13
- package/dist/docs/blocks/onboard-stepper.yaml +111 -0
- package/dist/docs/blocks/oncology-pathway.yaml +227 -4
- package/dist/docs/blocks/overlay-confirmation-modal.yaml +60 -0
- package/dist/docs/blocks/overlay-dropdown-menu.yaml +72 -0
- 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 +16 -12
- 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 +22 -22
- package/dist/docs/blocks/sidebar-nav.yaml +21 -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/blocks/user-profile-card.yaml +52 -0
- package/dist/docs/blocks/user-team-list.yaml +116 -0
- package/dist/docs/components/agent-activity.yaml +27 -7
- package/dist/docs/components/agent-feed.yaml +2 -2
- package/dist/docs/components/agent-prompt.yaml +1 -1
- package/dist/docs/components/agent-seeds.yaml +1 -1
- package/dist/docs/components/breadcrumb.yaml +35 -8
- package/dist/docs/components/button.yaml +14 -2
- package/dist/docs/components/calendar-picker.yaml +3 -2
- package/dist/docs/components/chip.yaml +1 -1
- package/dist/docs/components/color-picker.yaml +33 -7
- package/dist/docs/components/color-slider.yaml +7 -7
- package/dist/docs/components/container.yaml +2 -1
- package/dist/docs/components/heading.yaml +4 -0
- package/dist/docs/components/index.yaml +11 -1
- package/dist/docs/components/input.yaml +10 -9
- package/dist/docs/components/meter.yaml +37 -14
- package/dist/docs/components/nav-item.yaml +7 -7
- package/dist/docs/components/stat.yaml +164 -0
- package/dist/docs/components/stepper.yaml +23 -23
- package/dist/docs/components/time-field.yaml +35 -2
- package/dist/element.js +1 -1
- package/dist/icons.js +137 -128
- package/dist/icons.js.map +1 -1
- package/dist/reactivity.js +1 -1
- package/dist/register.js +299 -297
- package/dist/register.js.map +1 -1
- package/dist/store.js +1 -1
- package/dist/traits.js +2 -2
- package/package.json +1 -1
- package/dist/chunks/meter-Dju8ik6C.js.map +0 -1
package/dist/register.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { A as T, l as S, m as I, n as $, o as
|
|
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
5
|
import "./icons.js";
|
|
6
|
-
import { f as lt,
|
|
7
|
-
class
|
|
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 {
|
|
8
8
|
static attributes = {
|
|
9
9
|
key: { type: "string", default: "" },
|
|
10
10
|
label: { type: "string", default: "" },
|
|
@@ -15,7 +15,7 @@ class Fe extends T {
|
|
|
15
15
|
align: { type: "enum", values: ["start", "center", "end"], default: "start" }
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
class
|
|
18
|
+
class Ue extends T {
|
|
19
19
|
static attributes = {
|
|
20
20
|
background: { type: "string", default: "none" },
|
|
21
21
|
orientation: { type: "string", default: "horizontal" },
|
|
@@ -34,7 +34,7 @@ class ze extends T {
|
|
|
34
34
|
#l = 0;
|
|
35
35
|
#i = 0;
|
|
36
36
|
#m = 0;
|
|
37
|
-
#
|
|
37
|
+
#p = 0;
|
|
38
38
|
// Zoom state
|
|
39
39
|
#r = 1;
|
|
40
40
|
// ── Public API ──
|
|
@@ -95,8 +95,8 @@ class ze extends T {
|
|
|
95
95
|
i.appendChild(r);
|
|
96
96
|
}
|
|
97
97
|
e.appendChild(i), t.appendChild(e), this.#n = e, this.#t = i;
|
|
98
|
-
const
|
|
99
|
-
|
|
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();
|
|
100
100
|
}
|
|
101
101
|
// ── Transform ──
|
|
102
102
|
#o() {
|
|
@@ -120,10 +120,10 @@ class ze extends T {
|
|
|
120
120
|
#y = (t) => {
|
|
121
121
|
if (t.button !== 0) return;
|
|
122
122
|
const e = t.target, i = this.#t;
|
|
123
|
-
i && i.contains(e) || (this.#u = !0, this.#l = t.clientX, this.#i = t.clientY, this.#m = this.#a, this.#
|
|
123
|
+
i && i.contains(e) || (this.#u = !0, this.#l = t.clientX, this.#i = t.clientY, this.#m = this.#a, this.#p = this.#s, this.#e.setPointerCapture(t.pointerId), this.setAttribute("data-canvas-panning", ""));
|
|
124
124
|
};
|
|
125
125
|
#w = (t) => {
|
|
126
|
-
this.#u && (this.#a = this.#m + (t.clientX - this.#l), this.#s = this.#
|
|
126
|
+
this.#u && (this.#a = this.#m + (t.clientX - this.#l), this.#s = this.#p + (t.clientY - this.#i), this.#o());
|
|
127
127
|
};
|
|
128
128
|
#v = (t) => {
|
|
129
129
|
this.#u && (this.#u = !1, this.removeAttribute("data-canvas-panning"), this.#d());
|
|
@@ -133,8 +133,8 @@ class ze extends T {
|
|
|
133
133
|
t.preventDefault();
|
|
134
134
|
const e = t.deltaY > 0 ? -0.05 : 0.05, i = Math.max(0.1, Math.min(10, this.#r + e * this.#r));
|
|
135
135
|
if (this.#e) {
|
|
136
|
-
const s = this.#e.getBoundingClientRect(),
|
|
137
|
-
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;
|
|
138
138
|
}
|
|
139
139
|
this.#r = i, this.#o(), this.#b();
|
|
140
140
|
};
|
|
@@ -157,19 +157,19 @@ class ze extends T {
|
|
|
157
157
|
}
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
|
-
function M(
|
|
161
|
-
if (!
|
|
162
|
-
const t = /* @__PURE__ */ new Date(
|
|
160
|
+
function M(p) {
|
|
161
|
+
if (!p) return null;
|
|
162
|
+
const t = /* @__PURE__ */ new Date(p + "T00:00:00");
|
|
163
163
|
return isNaN(t.getTime()) ? null : t;
|
|
164
164
|
}
|
|
165
|
-
function
|
|
166
|
-
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");
|
|
167
167
|
return `${t}-${e}-${i}`;
|
|
168
168
|
}
|
|
169
|
-
function N(
|
|
170
|
-
return
|
|
169
|
+
function N(p, t) {
|
|
170
|
+
return p.getFullYear() === t.getFullYear() && p.getMonth() === t.getMonth() && p.getDate() === t.getDate();
|
|
171
171
|
}
|
|
172
|
-
class
|
|
172
|
+
class We {
|
|
173
173
|
view;
|
|
174
174
|
focusedYear;
|
|
175
175
|
focusedMonth;
|
|
@@ -237,21 +237,21 @@ class Ue {
|
|
|
237
237
|
}
|
|
238
238
|
// ── Private Computations ──
|
|
239
239
|
#n() {
|
|
240
|
-
const t = this.focusedYear.value, e = this.focusedMonth.value, i = M(this.value.value), s = /* @__PURE__ */ new Date(),
|
|
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
241
|
for (let h = 0; h < 42; h++) {
|
|
242
|
-
const d = new Date(u.getFullYear(), u.getMonth(), u.getDate() + h), v =
|
|
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
243
|
let g = !1, y = !1, P = !1;
|
|
244
|
-
if (
|
|
245
|
-
const E =
|
|
244
|
+
if (n && o) {
|
|
245
|
+
const E = n <= o ? n : o, D = n <= o ? o : n;
|
|
246
246
|
g = d >= E && d <= D, y = N(d, E), P = N(d, D);
|
|
247
247
|
}
|
|
248
248
|
m.push({
|
|
249
249
|
date: v,
|
|
250
250
|
day: d.getDate(),
|
|
251
251
|
inMonth: l,
|
|
252
|
-
isToday:
|
|
252
|
+
isToday: f,
|
|
253
253
|
isSelected: b,
|
|
254
|
-
isDisabled:
|
|
254
|
+
isDisabled: C,
|
|
255
255
|
inRange: g,
|
|
256
256
|
isRangeStart: y,
|
|
257
257
|
isRangeEnd: P
|
|
@@ -261,21 +261,21 @@ class Ue {
|
|
|
261
261
|
}
|
|
262
262
|
#t() {
|
|
263
263
|
const t = this.focusedYear.value, e = this.focusedMonth.value;
|
|
264
|
-
return ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"].map((s,
|
|
265
|
-
month:
|
|
264
|
+
return ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"].map((s, n) => ({
|
|
265
|
+
month: n,
|
|
266
266
|
name: s,
|
|
267
|
-
isCurrent:
|
|
268
|
-
isSelected:
|
|
267
|
+
isCurrent: n === e && t === (/* @__PURE__ */ new Date()).getFullYear(),
|
|
268
|
+
isSelected: n === e
|
|
269
269
|
}));
|
|
270
270
|
}
|
|
271
271
|
#e() {
|
|
272
272
|
const t = this.focusedYear.value, e = Math.floor(t / 10) * 10, i = (/* @__PURE__ */ new Date()).getFullYear(), s = [];
|
|
273
|
-
for (let
|
|
273
|
+
for (let n = e - 1; n <= e + 10; n++)
|
|
274
274
|
s.push({
|
|
275
|
-
year:
|
|
276
|
-
inDecade:
|
|
277
|
-
isCurrent:
|
|
278
|
-
isSelected:
|
|
275
|
+
year: n,
|
|
276
|
+
inDecade: n >= e && n < e + 10,
|
|
277
|
+
isCurrent: n === i,
|
|
278
|
+
isSelected: n === t
|
|
279
279
|
});
|
|
280
280
|
return s;
|
|
281
281
|
}
|
|
@@ -306,7 +306,7 @@ class Ue {
|
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
|
-
class
|
|
309
|
+
class Oe extends T {
|
|
310
310
|
static attributes = {
|
|
311
311
|
value: { type: "string", default: "" },
|
|
312
312
|
min: { type: "string", default: "" },
|
|
@@ -315,7 +315,7 @@ class He extends T {
|
|
|
315
315
|
range: { type: "boolean", default: !1 }
|
|
316
316
|
};
|
|
317
317
|
#n;
|
|
318
|
-
#t = new
|
|
318
|
+
#t = new We();
|
|
319
319
|
#e = S(!1);
|
|
320
320
|
// WHY: Track focused cell index for keyboard navigation within the grid
|
|
321
321
|
#a = S(0);
|
|
@@ -376,7 +376,7 @@ class He extends T {
|
|
|
376
376
|
});
|
|
377
377
|
}
|
|
378
378
|
dispose() {
|
|
379
|
-
this.querySelector('aui-button[data-role="prev"]')?.removeEventListener("click", this.#m), this.querySelector('aui-button[data-role="next"]')?.removeEventListener("click", this.#
|
|
379
|
+
this.querySelector('aui-button[data-role="prev"]')?.removeEventListener("click", this.#m), this.querySelector('aui-button[data-role="next"]')?.removeEventListener("click", this.#p), this.querySelector('aui-button[data-role="title"]')?.removeEventListener("click", this.#r);
|
|
380
380
|
const t = this.querySelector("[data-cal-grid]");
|
|
381
381
|
t?.removeEventListener("click", this.#h), t?.removeEventListener("pointermove", this.#o), t?.removeEventListener("pointerdown", this.#d), t?.removeEventListener("pointerup", this.#b), this.removeEventListener("keydown", this.#E), super.dispose();
|
|
382
382
|
}
|
|
@@ -390,10 +390,10 @@ class He extends T {
|
|
|
390
390
|
<div data-cal-weekdays></div>
|
|
391
391
|
<div data-cal-grid role="grid"></div>
|
|
392
392
|
`;
|
|
393
|
-
for (const
|
|
394
|
-
|
|
393
|
+
for (const n of this.querySelectorAll("[data-cal-header] aui-button"))
|
|
394
|
+
n.setAttribute("tabindex", "-1");
|
|
395
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"]');
|
|
396
|
-
t?.addEventListener("click", this.#m), e?.addEventListener("click", this.#
|
|
396
|
+
t?.addEventListener("click", this.#m), e?.addEventListener("click", this.#p), i?.addEventListener("click", this.#r);
|
|
397
397
|
const s = this.querySelector("[data-cal-grid]");
|
|
398
398
|
s?.addEventListener("click", this.#h), s?.addEventListener("pointermove", this.#o), s?.addEventListener("pointerdown", this.#d), s?.addEventListener("pointerup", this.#b);
|
|
399
399
|
}
|
|
@@ -402,34 +402,34 @@ class He extends T {
|
|
|
402
402
|
if (!(!e || !i || !s)) {
|
|
403
403
|
if (e.textContent = this.#t.title.value, t === "day") {
|
|
404
404
|
this.setAttribute("view", "day"), i.innerHTML = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map((o) => `<span data-cal-weekday>${o}</span>`).join("");
|
|
405
|
-
const
|
|
406
|
-
s.innerHTML =
|
|
405
|
+
const n = this.#t.days.value;
|
|
406
|
+
s.innerHTML = n.map((o, r) => {
|
|
407
407
|
let c = `data-date="${o.date}" data-index="${r}" tabindex="-1"`;
|
|
408
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>`;
|
|
409
409
|
}).join("");
|
|
410
410
|
} else if (t === "month") {
|
|
411
411
|
this.setAttribute("view", "month"), i.innerHTML = "";
|
|
412
|
-
const
|
|
413
|
-
s.innerHTML =
|
|
412
|
+
const n = this.#t.months.value;
|
|
413
|
+
s.innerHTML = n.map((o) => {
|
|
414
414
|
let r = `data-month="${o.month}" tabindex="-1"`;
|
|
415
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>`;
|
|
416
416
|
}).join("");
|
|
417
417
|
} else {
|
|
418
418
|
this.setAttribute("view", "year"), i.innerHTML = "";
|
|
419
|
-
const
|
|
420
|
-
s.innerHTML =
|
|
419
|
+
const n = this.#t.years.value;
|
|
420
|
+
s.innerHTML = n.map((o) => {
|
|
421
421
|
let r = `data-year="${o.year}" tabindex="-1"`;
|
|
422
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>`;
|
|
423
423
|
}).join("");
|
|
424
424
|
}
|
|
425
|
-
for (const
|
|
426
|
-
|
|
425
|
+
for (const n of s.querySelectorAll("[data-cal-day]:not([disabled]), [data-cal-cell]"))
|
|
426
|
+
n.setAttribute("tabindex", "-1");
|
|
427
427
|
}
|
|
428
428
|
}
|
|
429
429
|
#m = () => {
|
|
430
430
|
this.#y();
|
|
431
431
|
};
|
|
432
|
-
#
|
|
432
|
+
#p = () => {
|
|
433
433
|
this.#w();
|
|
434
434
|
};
|
|
435
435
|
#r = () => {
|
|
@@ -439,13 +439,13 @@ class He extends T {
|
|
|
439
439
|
this.#A(t);
|
|
440
440
|
};
|
|
441
441
|
#o = (t) => {
|
|
442
|
-
this.#
|
|
442
|
+
this.#C(t);
|
|
443
443
|
};
|
|
444
444
|
#d = (t) => {
|
|
445
445
|
this.#k(t);
|
|
446
446
|
};
|
|
447
447
|
#b = (t) => {
|
|
448
|
-
this.#
|
|
448
|
+
this.#f(t);
|
|
449
449
|
};
|
|
450
450
|
#y() {
|
|
451
451
|
const t = this.#t.view.value;
|
|
@@ -463,8 +463,8 @@ class He extends T {
|
|
|
463
463
|
if (this.#e.value) return;
|
|
464
464
|
const e = t.target.closest("[data-cal-day], [data-cal-cell]");
|
|
465
465
|
if (!e || e.hasAttribute("disabled")) return;
|
|
466
|
-
const i = e.dataset.date, s = e.dataset.month,
|
|
467
|
-
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));
|
|
468
468
|
}
|
|
469
469
|
#c(t) {
|
|
470
470
|
this.range ? this.#s === "idle" ? ($(() => {
|
|
@@ -494,7 +494,7 @@ class He extends T {
|
|
|
494
494
|
this.#t.selectDate(i), this.#t.setRange(i, null);
|
|
495
495
|
}), this.setAttribute("value", i), this.#s = "selecting"));
|
|
496
496
|
}
|
|
497
|
-
#
|
|
497
|
+
#f(t) {
|
|
498
498
|
if (!this.#u || (this.#u = !1, this.#s !== "selecting")) return;
|
|
499
499
|
const e = t.target.closest("[data-cal-day]");
|
|
500
500
|
if (!e || e.hasAttribute("disabled")) return;
|
|
@@ -503,7 +503,7 @@ class He extends T {
|
|
|
503
503
|
const s = this.#t.rangeStart.value;
|
|
504
504
|
s && s !== i && this.#g(i);
|
|
505
505
|
}
|
|
506
|
-
#
|
|
506
|
+
#C(t) {
|
|
507
507
|
if (this.#e.value || !this.range || this.#s !== "selecting") return;
|
|
508
508
|
const e = t.target.closest("[data-cal-day]");
|
|
509
509
|
if (!e || e.hasAttribute("disabled")) return;
|
|
@@ -515,7 +515,7 @@ class He extends T {
|
|
|
515
515
|
#E = (t) => {
|
|
516
516
|
if (this.#e.value || this.#t.view.value !== "day") return;
|
|
517
517
|
const i = this.#t.days.value;
|
|
518
|
-
let s = this.#a.value,
|
|
518
|
+
let s = this.#a.value, n = !0;
|
|
519
519
|
switch (t.key) {
|
|
520
520
|
case "ArrowRight":
|
|
521
521
|
s += 1;
|
|
@@ -548,17 +548,17 @@ class He extends T {
|
|
|
548
548
|
break;
|
|
549
549
|
}
|
|
550
550
|
default:
|
|
551
|
-
|
|
551
|
+
n = !1;
|
|
552
552
|
}
|
|
553
|
-
|
|
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());
|
|
554
554
|
};
|
|
555
555
|
}
|
|
556
|
-
let
|
|
557
|
-
function H(
|
|
558
|
-
return `${
|
|
556
|
+
let Xe = 0;
|
|
557
|
+
function H(p) {
|
|
558
|
+
return `${p}-${Date.now().toString(36)}-${(++Xe).toString(36)}`;
|
|
559
559
|
}
|
|
560
|
-
const
|
|
561
|
-
class
|
|
560
|
+
const _e = 50, L = "http://www.w3.org/2000/svg";
|
|
561
|
+
class Be {
|
|
562
562
|
host;
|
|
563
563
|
// ── Public mutable options ──
|
|
564
564
|
selector;
|
|
@@ -581,13 +581,13 @@ class Xe {
|
|
|
581
581
|
#l = null;
|
|
582
582
|
#i = null;
|
|
583
583
|
#m = null;
|
|
584
|
-
#
|
|
584
|
+
#p = null;
|
|
585
585
|
#r = 0;
|
|
586
586
|
#h = !1;
|
|
587
587
|
#o = !1;
|
|
588
588
|
#d = null;
|
|
589
589
|
constructor(t, e = {}) {
|
|
590
|
-
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)
|
|
591
591
|
for (const i of e.connections)
|
|
592
592
|
this.#e.set(i.id, {
|
|
593
593
|
...i,
|
|
@@ -599,10 +599,10 @@ class Xe {
|
|
|
599
599
|
// ── Lifecycle ──
|
|
600
600
|
attach() {
|
|
601
601
|
if (this.#n) return;
|
|
602
|
-
this.#n = !0, getComputedStyle(this.host).position === "static" && (this.host.style.position = "relative"), this.host.style.isolation = "isolate", this.#b(), this.#w(), this.#R(), this.showPorts && this.#S(), this.host.addEventListener("aui:magnet-snap", this.#
|
|
602
|
+
this.#n = !0, getComputedStyle(this.host).position === "static" && (this.host.style.position = "relative"), this.host.style.isolation = "isolate", this.#b(), this.#w(), this.#R(), this.showPorts && this.#S(), this.host.addEventListener("aui:magnet-snap", this.#x), this.host.addEventListener("aui:magnet-drop", this.#x), this.host.addEventListener("aui:drag-move", this.#x), this.#f();
|
|
603
603
|
}
|
|
604
604
|
detach() {
|
|
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.#
|
|
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);
|
|
606
606
|
}
|
|
607
607
|
destroy() {
|
|
608
608
|
this.#L(), this.detach(), this.#e.clear();
|
|
@@ -610,17 +610,17 @@ class Xe {
|
|
|
610
610
|
// ── Public API ──
|
|
611
611
|
/** Add a connection. Returns the connection ID. */
|
|
612
612
|
connect(t, e, i = "right", s = "left") {
|
|
613
|
-
const
|
|
614
|
-
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", {
|
|
615
615
|
bubbles: !0,
|
|
616
616
|
composed: !0,
|
|
617
|
-
detail: { id:
|
|
618
|
-
})),
|
|
617
|
+
detail: { id: n, from: t, to: e, fromPort: i, toPort: s }
|
|
618
|
+
})), n;
|
|
619
619
|
}
|
|
620
620
|
/** Remove a connection by ID. */
|
|
621
621
|
disconnect(t) {
|
|
622
622
|
const e = this.#e.get(t);
|
|
623
|
-
return e ? (this.#e.delete(t), this.#
|
|
623
|
+
return e ? (this.#e.delete(t), this.#f(), this.host.dispatchEvent(new CustomEvent("aui:noodle-disconnect", {
|
|
624
624
|
bubbles: !0,
|
|
625
625
|
composed: !0,
|
|
626
626
|
detail: { id: t, from: e.from, to: e.to, fromPort: e.fromPort, toPort: e.toPort }
|
|
@@ -629,7 +629,7 @@ class Xe {
|
|
|
629
629
|
/** Remove all connections. */
|
|
630
630
|
clear() {
|
|
631
631
|
const t = [...this.#e.values()];
|
|
632
|
-
this.#e.clear(), this.#
|
|
632
|
+
this.#e.clear(), this.#f();
|
|
633
633
|
for (const e of t)
|
|
634
634
|
this.host.dispatchEvent(new CustomEvent("aui:noodle-disconnect", {
|
|
635
635
|
bubbles: !0,
|
|
@@ -650,12 +650,12 @@ class Xe {
|
|
|
650
650
|
fromPort: e.fromPort ?? "right",
|
|
651
651
|
toPort: e.toPort ?? "left"
|
|
652
652
|
});
|
|
653
|
-
this.#
|
|
653
|
+
this.#f();
|
|
654
654
|
}
|
|
655
655
|
/** Force re-render all paths and rebuild port indicators.
|
|
656
656
|
* Call after programmatic element moves or when the set of port elements changes. */
|
|
657
657
|
update() {
|
|
658
|
-
this.#
|
|
658
|
+
this.#f(), this.showPorts && !this.#l && this.#S();
|
|
659
659
|
}
|
|
660
660
|
// ── SVG overlay ──
|
|
661
661
|
#b() {
|
|
@@ -677,36 +677,36 @@ class Xe {
|
|
|
677
677
|
/** Convert client (screen) coordinates to the host's layout coordinate space,
|
|
678
678
|
* accounting for CSS transforms (zoom/pan) on the host or its ancestors. */
|
|
679
679
|
#A(t, e) {
|
|
680
|
-
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);
|
|
681
681
|
return {
|
|
682
682
|
x: (t - i.left) / s,
|
|
683
|
-
y: (e - i.top) /
|
|
683
|
+
y: (e - i.top) / n
|
|
684
684
|
};
|
|
685
685
|
}
|
|
686
686
|
// ── Path computation ──
|
|
687
687
|
#c(t, e) {
|
|
688
688
|
const i = this.host.querySelector(`#${CSS.escape(t)}`);
|
|
689
689
|
if (!i) return null;
|
|
690
|
-
let s = 0,
|
|
690
|
+
let s = 0, n = 0, o = i;
|
|
691
691
|
for (; o && o !== this.host; ) {
|
|
692
|
-
s += o.offsetLeft,
|
|
692
|
+
s += o.offsetLeft, n += o.offsetTop;
|
|
693
693
|
const u = o.style.translate;
|
|
694
694
|
if (u) {
|
|
695
695
|
const m = u.match(/-?[\d.]+/g);
|
|
696
|
-
m && (s += parseFloat(m[0]) || 0,
|
|
696
|
+
m && (s += parseFloat(m[0]) || 0, n += parseFloat(m[1]) || 0);
|
|
697
697
|
}
|
|
698
698
|
o = o.offsetParent;
|
|
699
699
|
}
|
|
700
700
|
const r = i.offsetWidth, c = i.offsetHeight;
|
|
701
701
|
switch (e) {
|
|
702
702
|
case "top":
|
|
703
|
-
return { x: s + r / 2, y:
|
|
703
|
+
return { x: s + r / 2, y: n };
|
|
704
704
|
case "right":
|
|
705
|
-
return { x: s + r, y:
|
|
705
|
+
return { x: s + r, y: n + c / 2 };
|
|
706
706
|
case "bottom":
|
|
707
|
-
return { x: s + r / 2, y:
|
|
707
|
+
return { x: s + r / 2, y: n + c };
|
|
708
708
|
case "left":
|
|
709
|
-
return { x: s, y:
|
|
709
|
+
return { x: s, y: n + c / 2 };
|
|
710
710
|
}
|
|
711
711
|
}
|
|
712
712
|
#g(t, e, i, s) {
|
|
@@ -733,13 +733,13 @@ class Xe {
|
|
|
733
733
|
}
|
|
734
734
|
case "bezier":
|
|
735
735
|
default: {
|
|
736
|
-
const s = Math.max(Math.abs(i.x - e.x), Math.abs(i.y - e.y)),
|
|
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
737
|
return `M ${e.x} ${e.y} C ${o} ${r}, ${c} ${u}, ${i.x} ${i.y}`;
|
|
738
738
|
}
|
|
739
739
|
}
|
|
740
740
|
}
|
|
741
741
|
// ── Rendering ──
|
|
742
|
-
#
|
|
742
|
+
#f() {
|
|
743
743
|
if (!(!this.#a || !this.#s)) {
|
|
744
744
|
this.#o = !0, this.#a.textContent = "", this.#s.textContent = "", this.#i && this.#a.appendChild(this.#i);
|
|
745
745
|
for (const t of this.#e.values()) {
|
|
@@ -757,15 +757,15 @@ class Xe {
|
|
|
757
757
|
});
|
|
758
758
|
}
|
|
759
759
|
}
|
|
760
|
-
#
|
|
760
|
+
#C() {
|
|
761
761
|
this.#h || (this.#h = !0, this.#r = requestAnimationFrame(() => {
|
|
762
|
-
this.#h = !1, this.#
|
|
762
|
+
this.#h = !1, this.#f(), this.showPorts && this.#D();
|
|
763
763
|
}));
|
|
764
764
|
}
|
|
765
765
|
/** Full update: recreate port indicators (for child list changes). */
|
|
766
766
|
#E() {
|
|
767
767
|
this.#h || (this.#h = !0, this.#r = requestAnimationFrame(() => {
|
|
768
|
-
this.#h = !1, this.#
|
|
768
|
+
this.#h = !1, this.#f(), this.showPorts && !this.#l && this.#S();
|
|
769
769
|
}));
|
|
770
770
|
}
|
|
771
771
|
// ── Port indicators (edit mode) ──
|
|
@@ -775,9 +775,9 @@ class Xe {
|
|
|
775
775
|
for (const e of t) {
|
|
776
776
|
const i = (e.getAttribute("data-noodle-port") ?? "").split(/\s+/).filter(Boolean), s = e.id;
|
|
777
777
|
if (s)
|
|
778
|
-
for (const
|
|
778
|
+
for (const n of i) {
|
|
779
779
|
const o = document.createElement("div");
|
|
780
|
-
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);
|
|
781
781
|
}
|
|
782
782
|
}
|
|
783
783
|
this.#D(), this.#l || queueMicrotask(() => {
|
|
@@ -801,10 +801,10 @@ class Xe {
|
|
|
801
801
|
const e = t.target.closest("[data-noodle-port-indicator]");
|
|
802
802
|
if (!e) return;
|
|
803
803
|
t.preventDefault(), t.stopPropagation();
|
|
804
|
-
const i = e.getAttribute("data-noodle-target"), s = e.getAttribute("data-noodle-side"),
|
|
805
|
-
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) {
|
|
806
806
|
this.#l = {
|
|
807
|
-
fromElement:
|
|
807
|
+
fromElement: n,
|
|
808
808
|
fromPort: s,
|
|
809
809
|
fromId: i,
|
|
810
810
|
pointerId: t.pointerId,
|
|
@@ -827,7 +827,7 @@ class Xe {
|
|
|
827
827
|
if (!e || !this.#i) return;
|
|
828
828
|
const i = this.#c(e.fromId, e.fromPort);
|
|
829
829
|
if (!i) return;
|
|
830
|
-
const { x: s, y:
|
|
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
831
|
this.#i.setAttribute("d", m), this.#Y(t.clientX, t.clientY);
|
|
832
832
|
};
|
|
833
833
|
#$ = (t) => {
|
|
@@ -835,8 +835,8 @@ class Xe {
|
|
|
835
835
|
if (!e) return;
|
|
836
836
|
const i = this.#N(t.clientX, t.clientY);
|
|
837
837
|
if (i) {
|
|
838
|
-
const s = i.getAttribute("data-noodle-target"),
|
|
839
|
-
(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);
|
|
840
840
|
}
|
|
841
841
|
this.#L();
|
|
842
842
|
};
|
|
@@ -851,11 +851,11 @@ class Xe {
|
|
|
851
851
|
// ── Proximity helpers ──
|
|
852
852
|
/** Find the nearest droppable port within DROP_SNAP_RADIUS of a screen point. */
|
|
853
853
|
#N(t, e) {
|
|
854
|
-
let i = null, s =
|
|
855
|
-
for (const
|
|
856
|
-
if (!
|
|
857
|
-
const o =
|
|
858
|
-
u < s && (s = u, i =
|
|
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);
|
|
859
859
|
}
|
|
860
860
|
return i;
|
|
861
861
|
}
|
|
@@ -866,9 +866,9 @@ class Xe {
|
|
|
866
866
|
s === i ? s.setAttribute("data-noodle-drop-ready", "") : s.removeAttribute("data-noodle-drop-ready");
|
|
867
867
|
if (i && this.#i && this.#l) {
|
|
868
868
|
this.#i.setAttribute("stroke", this.color), this.#i.style.opacity = "1", this.#i.removeAttribute("stroke-dasharray");
|
|
869
|
-
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);
|
|
870
870
|
if (r && o) {
|
|
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,
|
|
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
872
|
this.#i.setAttribute("d", `M ${r.x} ${r.y} C ${m} ${h}, ${d} ${v}, ${o.x} ${o.y}`);
|
|
873
873
|
}
|
|
874
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"));
|
|
@@ -881,12 +881,12 @@ class Xe {
|
|
|
881
881
|
const s = this.#e.get(i);
|
|
882
882
|
if (!s) return;
|
|
883
883
|
t.preventDefault(), t.stopPropagation(), this.#o = !0;
|
|
884
|
-
const
|
|
885
|
-
if (!
|
|
884
|
+
const n = this.#c(s.from, s.fromPort), o = this.#c(s.to, s.toPort);
|
|
885
|
+
if (!n || !o) {
|
|
886
886
|
this.#o = !1;
|
|
887
887
|
return;
|
|
888
888
|
}
|
|
889
|
-
const { x: r, y: c } = this.#A(t.clientX, t.clientY), u = Math.hypot(r -
|
|
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;
|
|
890
890
|
this.disconnect(i);
|
|
891
891
|
const v = this.#u.find(
|
|
892
892
|
(g) => g.getAttribute("data-noodle-target") === h && g.getAttribute("data-noodle-side") === d
|
|
@@ -914,10 +914,10 @@ class Xe {
|
|
|
914
914
|
y === h && P === d || g.setAttribute("data-noodle-droppable", "");
|
|
915
915
|
}
|
|
916
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
|
|
918
|
-
if (
|
|
919
|
-
const g = Math.max(Math.abs(b -
|
|
920
|
-
this.#i.setAttribute("d", `M ${
|
|
917
|
+
const f = this.#c(h, d), { x: b, y: C } = this.#A(t.clientX, t.clientY);
|
|
918
|
+
if (f) {
|
|
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}`);
|
|
921
921
|
}
|
|
922
922
|
this.#a?.appendChild(this.#i), this.host.dispatchEvent(new CustomEvent("aui:noodle-drag", {
|
|
923
923
|
bubbles: !0,
|
|
@@ -926,14 +926,14 @@ class Xe {
|
|
|
926
926
|
})), document.addEventListener("pointermove", this.#P), document.addEventListener("pointerup", this.#$), document.addEventListener("pointercancel", this.#M);
|
|
927
927
|
};
|
|
928
928
|
// ── Movement tracking ──
|
|
929
|
-
#
|
|
930
|
-
this.#
|
|
929
|
+
#x = () => {
|
|
930
|
+
this.#C();
|
|
931
931
|
};
|
|
932
932
|
#R() {
|
|
933
|
-
this.#m = new ResizeObserver(() => this.#
|
|
933
|
+
this.#m = new ResizeObserver(() => this.#C()), this.#m.observe(this.host), this.#p = new MutationObserver((t) => {
|
|
934
934
|
if (this.#o) return;
|
|
935
|
-
t.some((i) => i.type === "childList") ? this.#E() : this.#
|
|
936
|
-
}), this.#
|
|
935
|
+
t.some((i) => i.type === "childList") ? this.#E() : this.#C();
|
|
936
|
+
}), this.#p.observe(this.host, {
|
|
937
937
|
childList: !0,
|
|
938
938
|
subtree: !0,
|
|
939
939
|
attributes: !0,
|
|
@@ -941,10 +941,10 @@ class Xe {
|
|
|
941
941
|
});
|
|
942
942
|
}
|
|
943
943
|
#F() {
|
|
944
|
-
this.#m?.disconnect(), this.#m = null, this.#
|
|
944
|
+
this.#m?.disconnect(), this.#m = null, this.#p?.disconnect(), this.#p = null;
|
|
945
945
|
}
|
|
946
946
|
}
|
|
947
|
-
class
|
|
947
|
+
class Ke extends T {
|
|
948
948
|
static attributes = {
|
|
949
949
|
editable: { type: "boolean", default: !1 },
|
|
950
950
|
color: { type: "string", default: "" },
|
|
@@ -984,7 +984,7 @@ class _e extends T {
|
|
|
984
984
|
}
|
|
985
985
|
// ── Lifecycle ──
|
|
986
986
|
activate() {
|
|
987
|
-
this.#n = new
|
|
987
|
+
this.#n = new Be(this, this.#t());
|
|
988
988
|
}
|
|
989
989
|
dispose() {
|
|
990
990
|
this.#n?.destroy(), this.#n = null;
|
|
@@ -1009,9 +1009,9 @@ class _e extends T {
|
|
|
1009
1009
|
isNaN(r) || (t.tension = r);
|
|
1010
1010
|
}
|
|
1011
1011
|
this.hasAttribute("show-ports") && (t.showPorts = this.getAttribute("show-ports") !== "false");
|
|
1012
|
-
const
|
|
1013
|
-
if (
|
|
1014
|
-
const r = Number(
|
|
1012
|
+
const n = this.getAttribute("port-size");
|
|
1013
|
+
if (n) {
|
|
1014
|
+
const r = Number(n);
|
|
1015
1015
|
isNaN(r) || (t.portSize = r);
|
|
1016
1016
|
}
|
|
1017
1017
|
const o = this.getAttribute("curve");
|
|
@@ -1024,7 +1024,7 @@ class _e extends T {
|
|
|
1024
1024
|
i.editable = e !== null, i.update();
|
|
1025
1025
|
break;
|
|
1026
1026
|
case "color":
|
|
1027
|
-
i.color = e ?? "var(--aui-accent
|
|
1027
|
+
i.color = e ?? "var(--aui-accent)", i.update();
|
|
1028
1028
|
break;
|
|
1029
1029
|
case "stroke-width": {
|
|
1030
1030
|
const s = Number(e);
|
|
@@ -1056,11 +1056,11 @@ class _e extends T {
|
|
|
1056
1056
|
}
|
|
1057
1057
|
}
|
|
1058
1058
|
}
|
|
1059
|
-
const
|
|
1060
|
-
function k(
|
|
1061
|
-
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(" ");
|
|
1062
1062
|
}
|
|
1063
|
-
class
|
|
1063
|
+
class Je extends T {
|
|
1064
1064
|
static attributes = {
|
|
1065
1065
|
src: { type: "string", default: "./preview.json" }
|
|
1066
1066
|
};
|
|
@@ -1074,7 +1074,7 @@ class Ke extends T {
|
|
|
1074
1074
|
this.#u();
|
|
1075
1075
|
}
|
|
1076
1076
|
dispose() {
|
|
1077
|
-
document.removeEventListener("keydown", this.#
|
|
1077
|
+
document.removeEventListener("keydown", this.#p);
|
|
1078
1078
|
}
|
|
1079
1079
|
async #u() {
|
|
1080
1080
|
let t;
|
|
@@ -1084,35 +1084,35 @@ class Ke extends T {
|
|
|
1084
1084
|
this.textContent = "Failed to load preview.json";
|
|
1085
1085
|
return;
|
|
1086
1086
|
}
|
|
1087
|
-
const { section: e, param: i, items: s, links:
|
|
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
1088
|
m.setAttribute("data-role", "navbar");
|
|
1089
1089
|
const h = document.createElement("aui-select");
|
|
1090
1090
|
h.setAttribute("mode", "bar"), h.setAttribute("width", "full");
|
|
1091
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 = `${
|
|
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
1093
|
const v = "aui-preview-scheme", l = localStorage.getItem(v);
|
|
1094
1094
|
l && (document.documentElement.dataset.theme = l, document.documentElement.style.colorScheme = l);
|
|
1095
|
-
const
|
|
1096
|
-
|
|
1097
|
-
const b = document.createElement("aui-icon"),
|
|
1098
|
-
b.setAttribute("name",
|
|
1099
|
-
const A = document.documentElement,
|
|
1100
|
-
A.dataset.theme = w, A.style.colorScheme = w, localStorage.setItem(v, w), b.setAttribute("name",
|
|
1095
|
+
const f = document.createElement("aui-button");
|
|
1096
|
+
f.setAttribute("ghost", ""), f.setAttribute("size", "sm"), f.setAttribute("hide-label", ""), f.setAttribute("label", "Toggle color scheme");
|
|
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", () => {
|
|
1099
|
+
const A = document.documentElement, x = A.dataset.theme === "dark", w = x ? "light" : "dark";
|
|
1100
|
+
A.dataset.theme = w, A.style.colorScheme = w, localStorage.setItem(v, w), b.setAttribute("name", x ? "moon" : "sun");
|
|
1101
1101
|
});
|
|
1102
1102
|
const g = document.createElement("aui-select");
|
|
1103
|
-
if (g.setAttribute("placeholder", k(e)), g.setAttribute("outline", ""), g.setAttribute("data-role", "page-select"),
|
|
1103
|
+
if (g.setAttribute("placeholder", k(e)), g.setAttribute("outline", ""), g.setAttribute("data-role", "page-select"), n.length) {
|
|
1104
1104
|
const A = document.createElement("aui-optgroup");
|
|
1105
1105
|
A.setAttribute("label", "Sections");
|
|
1106
|
-
for (const
|
|
1106
|
+
for (const x of n) {
|
|
1107
1107
|
const w = document.createElement("aui-option");
|
|
1108
|
-
w.setAttribute("value", `go-${
|
|
1108
|
+
w.setAttribute("value", `go-${x.label.toLowerCase()}`), w.dataset.href = x.href, w.textContent = x.label, A.appendChild(w);
|
|
1109
1109
|
}
|
|
1110
1110
|
g.appendChild(A);
|
|
1111
1111
|
}
|
|
1112
1112
|
let y = null, P = "";
|
|
1113
1113
|
for (const A of s) {
|
|
1114
|
-
const
|
|
1115
|
-
|
|
1114
|
+
const x = A.group || k(e);
|
|
1115
|
+
x !== P && (y = document.createElement("aui-optgroup"), y.setAttribute("label", x), g.appendChild(y), P = x);
|
|
1116
1116
|
const w = document.createElement("aui-option");
|
|
1117
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);
|
|
1118
1118
|
}
|
|
@@ -1126,19 +1126,19 @@ class Ke extends T {
|
|
|
1126
1126
|
const w = A.target.closest("aui-option")?.dataset?.href;
|
|
1127
1127
|
w && (window.location.href = w);
|
|
1128
1128
|
}), g.addEventListener("change", (A) => {
|
|
1129
|
-
const
|
|
1130
|
-
if (
|
|
1131
|
-
window.location.href =
|
|
1129
|
+
const x = A.target.value, z = g.querySelector(`aui-option[value="${x}"]`)?.dataset?.href;
|
|
1130
|
+
if (z) {
|
|
1131
|
+
window.location.href = z;
|
|
1132
1132
|
return;
|
|
1133
1133
|
}
|
|
1134
1134
|
const U = new URL(window.location.href);
|
|
1135
|
-
U.searchParams.set(i,
|
|
1135
|
+
U.searchParams.set(i, x), window.location.href = U.toString();
|
|
1136
1136
|
}), u) {
|
|
1137
|
-
const
|
|
1138
|
-
document.title = `${k(u)} — AgentUI ${k(e)}`, await this.#h(
|
|
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);
|
|
1139
1139
|
} else
|
|
1140
1140
|
document.title = `AgentUI — ${k(e)}`, await this.#o(s, r);
|
|
1141
|
-
this.#e = t, this.#a = u, this.#l(t, i), document.addEventListener("keydown", this.#
|
|
1141
|
+
this.#e = t, this.#a = u, this.#l(t, i), document.addEventListener("keydown", this.#p), requestAnimationFrame(() => this.#d());
|
|
1142
1142
|
}
|
|
1143
1143
|
// ── Command palette ──
|
|
1144
1144
|
#l(t, e) {
|
|
@@ -1146,8 +1146,8 @@ class Ke extends T {
|
|
|
1146
1146
|
i.setAttribute("size", "sm");
|
|
1147
1147
|
const s = document.createElement("aui-command");
|
|
1148
1148
|
s.setAttribute("max-width", "full");
|
|
1149
|
-
const
|
|
1150
|
-
|
|
1149
|
+
const n = document.createElement("aui-command-input");
|
|
1150
|
+
n.setAttribute("placeholder", `Go to ${k(t.section)}…`), s.appendChild(n);
|
|
1151
1151
|
const o = document.createElement("aui-command-list");
|
|
1152
1152
|
if (t.links.length) {
|
|
1153
1153
|
const m = document.createElement("aui-command-group");
|
|
@@ -1191,7 +1191,7 @@ class Ke extends T {
|
|
|
1191
1191
|
this.#s?.removeAttribute("open");
|
|
1192
1192
|
}
|
|
1193
1193
|
// ── Keyboard navigation ──
|
|
1194
|
-
#
|
|
1194
|
+
#p = (t) => {
|
|
1195
1195
|
if ((t.metaKey || t.ctrlKey) && t.key === "k") {
|
|
1196
1196
|
t.preventDefault(), this.#s?.hasAttribute("open") ? this.#m() : this.#i();
|
|
1197
1197
|
return;
|
|
@@ -1207,15 +1207,15 @@ class Ke extends T {
|
|
|
1207
1207
|
if (!this.#e) return;
|
|
1208
1208
|
const { items: e, param: i } = this.#e;
|
|
1209
1209
|
if (!e.length) return;
|
|
1210
|
-
let
|
|
1211
|
-
|
|
1212
|
-
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];
|
|
1213
1213
|
if (!o) return;
|
|
1214
1214
|
const r = new URL(window.location.href);
|
|
1215
1215
|
r.searchParams.set(i, o.slug), window.location.href = r.toString();
|
|
1216
1216
|
}
|
|
1217
1217
|
async #h(t, e) {
|
|
1218
|
-
const i = `${e}${t}`, s = t.replace(/\.html$/, ""),
|
|
1218
|
+
const i = `${e}${t}`, s = t.replace(/\.html$/, ""), n = `${e}${s}.css`, o = `${e}${s}.ts`;
|
|
1219
1219
|
try {
|
|
1220
1220
|
const l = await fetch(i);
|
|
1221
1221
|
l.ok && (this.#t.innerHTML = await l.text());
|
|
@@ -1231,15 +1231,15 @@ class Ke extends T {
|
|
|
1231
1231
|
}));
|
|
1232
1232
|
let h = u, d = 0;
|
|
1233
1233
|
const v = [];
|
|
1234
|
-
for (const { el: l, height:
|
|
1235
|
-
v.push({ el: l, y: h, width: b }), b > d && (d = b), h +=
|
|
1236
|
-
for (const { el: l, y:
|
|
1237
|
-
l.style.position = "absolute", l.style.left = `${(d - b) / 2}px`, l.style.top = `${
|
|
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
1238
|
this.#t.style.width = `${d}px`, this.#t.style.height = `${h}px`;
|
|
1239
1239
|
try {
|
|
1240
|
-
if ((await fetch(
|
|
1241
|
-
const
|
|
1242
|
-
|
|
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
1243
|
}
|
|
1244
1244
|
} catch {
|
|
1245
1245
|
}
|
|
@@ -1251,19 +1251,19 @@ class Ke extends T {
|
|
|
1251
1251
|
} catch {
|
|
1252
1252
|
}
|
|
1253
1253
|
for (const l of Array.from(this.#t.querySelectorAll("script"))) {
|
|
1254
|
-
const
|
|
1255
|
-
for (const b of l.attributes)
|
|
1256
|
-
|
|
1254
|
+
const f = document.createElement("script");
|
|
1255
|
+
for (const b of l.attributes) f.setAttribute(b.name, b.value);
|
|
1256
|
+
f.textContent = l.textContent, l.replaceWith(f);
|
|
1257
1257
|
}
|
|
1258
1258
|
requestAnimationFrame(() => this.#d());
|
|
1259
1259
|
}
|
|
1260
1260
|
async #o(t, e) {
|
|
1261
|
-
const
|
|
1261
|
+
const n = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set();
|
|
1262
1262
|
let r = 200, c = 0;
|
|
1263
1263
|
for (const u of t) {
|
|
1264
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 (!
|
|
1266
|
-
|
|
1265
|
+
if (!n.has(v)) {
|
|
1266
|
+
n.add(v);
|
|
1267
1267
|
const y = document.createElement("link");
|
|
1268
1268
|
y.rel = "stylesheet", y.href = v, document.head.appendChild(y);
|
|
1269
1269
|
}
|
|
@@ -1277,18 +1277,18 @@ class Ke extends T {
|
|
|
1277
1277
|
} catch {
|
|
1278
1278
|
}
|
|
1279
1279
|
}
|
|
1280
|
-
let
|
|
1280
|
+
let f = "";
|
|
1281
1281
|
try {
|
|
1282
1282
|
const y = await fetch(d);
|
|
1283
|
-
y.ok && (
|
|
1283
|
+
y.ok && (f = await y.text());
|
|
1284
1284
|
} catch {
|
|
1285
1285
|
continue;
|
|
1286
1286
|
}
|
|
1287
|
-
if (!
|
|
1287
|
+
if (!f.trim()) continue;
|
|
1288
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>${
|
|
1290
|
-
const
|
|
1291
|
-
b.style.position = "absolute", b.style.top = `${r}px`, b.__measuredWidth = g, g > c && (c = g), r +=
|
|
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
1292
|
}
|
|
1293
1293
|
for (const u of Array.from(this.#t.children)) {
|
|
1294
1294
|
const m = u.__measuredWidth ?? u.offsetWidth;
|
|
@@ -1302,129 +1302,131 @@ class Ke extends T {
|
|
|
1302
1302
|
}
|
|
1303
1303
|
}
|
|
1304
1304
|
et();
|
|
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
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
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);
|
|
1409
1411
|
const q = /* @__PURE__ */ new WeakMap();
|
|
1410
|
-
function Y(
|
|
1411
|
-
if (
|
|
1412
|
-
const t =
|
|
1412
|
+
function Y(p) {
|
|
1413
|
+
if (p instanceof T || q.has(p)) return;
|
|
1414
|
+
const t = p.getAttribute("traits");
|
|
1413
1415
|
if (!t) return;
|
|
1414
|
-
const e = O(t), i = X(e,
|
|
1415
|
-
for (const { entry:
|
|
1416
|
-
const o =
|
|
1417
|
-
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
|
|
1418
1420
|
});
|
|
1419
1421
|
s.push(o);
|
|
1420
1422
|
}
|
|
1421
|
-
q.set(
|
|
1423
|
+
q.set(p, s);
|
|
1422
1424
|
}
|
|
1423
|
-
function F(
|
|
1424
|
-
const t = q.get(
|
|
1425
|
+
function F(p) {
|
|
1426
|
+
const t = q.get(p);
|
|
1425
1427
|
if (t) {
|
|
1426
1428
|
for (const e of t) e();
|
|
1427
|
-
q.delete(
|
|
1429
|
+
q.delete(p);
|
|
1428
1430
|
}
|
|
1429
1431
|
}
|
|
1430
1432
|
function W() {
|
|
@@ -1437,15 +1439,15 @@ function W() {
|
|
|
1437
1439
|
if (i.nodeType !== 1) continue;
|
|
1438
1440
|
const s = i;
|
|
1439
1441
|
s.hasAttribute("traits") && Y(s);
|
|
1440
|
-
for (const
|
|
1441
|
-
Y(
|
|
1442
|
+
for (const n of s.querySelectorAll("[traits]"))
|
|
1443
|
+
Y(n);
|
|
1442
1444
|
}
|
|
1443
1445
|
for (const i of e.removedNodes) {
|
|
1444
1446
|
if (i.nodeType !== 1) continue;
|
|
1445
1447
|
const s = i;
|
|
1446
1448
|
F(s);
|
|
1447
|
-
for (const
|
|
1448
|
-
F(
|
|
1449
|
+
for (const n of s.querySelectorAll("[traits]"))
|
|
1450
|
+
F(n);
|
|
1449
1451
|
}
|
|
1450
1452
|
}
|
|
1451
1453
|
if (e.type === "attributes" && e.attributeName === "traits") {
|
|
@@ -1461,8 +1463,8 @@ function W() {
|
|
|
1461
1463
|
});
|
|
1462
1464
|
}
|
|
1463
1465
|
document.body ? W() : document.addEventListener("DOMContentLoaded", W, { once: !0 });
|
|
1464
|
-
document.addEventListener("click", (
|
|
1465
|
-
const t =
|
|
1466
|
+
document.addEventListener("click", (p) => {
|
|
1467
|
+
const t = p.target?.closest?.("[popover-trigger]");
|
|
1466
1468
|
if (!t) return;
|
|
1467
1469
|
const e = t.getAttribute("popover-trigger");
|
|
1468
1470
|
if (!e) return;
|
|
@@ -1475,8 +1477,8 @@ document.addEventListener("click", (f) => {
|
|
|
1475
1477
|
} catch {
|
|
1476
1478
|
}
|
|
1477
1479
|
});
|
|
1478
|
-
for (const
|
|
1479
|
-
document.addEventListener(
|
|
1480
|
+
for (const p of ["pointermove", "pointerdown", "pointerup", "mouseover", "mouseenter", "mouseleave"])
|
|
1481
|
+
document.addEventListener(p, (t) => {
|
|
1480
1482
|
t.target?.closest?.("[popover], dialog") && t.stopPropagation();
|
|
1481
1483
|
}, !0);
|
|
1482
1484
|
//# sourceMappingURL=register.js.map
|