@aiquants/menu-bar 1.17.9 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,149 +1,149 @@
1
- import ke, { forwardRef as me, createElement as B, useMemo as re, useState as z, useRef as C, useEffect as L, useCallback as w, useLayoutEffect as pe } from "react";
2
- import { useLocation as we, Link as he } from "react-router-dom";
3
- var D = { exports: {} }, O = {};
4
- var oe;
5
- function je() {
6
- if (oe) return O;
7
- oe = 1;
8
- var n = /* @__PURE__ */ Symbol.for("react.transitional.element"), r = /* @__PURE__ */ Symbol.for("react.fragment");
9
- function o(a, c, i) {
10
- var u = null;
11
- if (i !== void 0 && (u = "" + i), c.key !== void 0 && (u = "" + c.key), "key" in c) {
12
- i = {};
13
- for (var p in c)
14
- p !== "key" && (i[p] = c[p]);
15
- } else i = c;
16
- return c = i.ref, {
1
+ import Ee, { forwardRef as be, createElement as re, useCallback as k, useSyncExternalStore as _e, useMemo as oe, useState as J, useRef as T, useEffect as $, useLayoutEffect as xe } from "react";
2
+ import { useLocation as Se, Link as ge } from "react-router-dom";
3
+ var Z = { exports: {} }, V = {};
4
+ var ie;
5
+ function Ce() {
6
+ if (ie) return V;
7
+ ie = 1;
8
+ var n = /* @__PURE__ */ Symbol.for("react.transitional.element"), t = /* @__PURE__ */ Symbol.for("react.fragment");
9
+ function s(a, l, o) {
10
+ var c = null;
11
+ if (o !== void 0 && (c = "" + o), l.key !== void 0 && (c = "" + l.key), "key" in l) {
12
+ o = {};
13
+ for (var h in l)
14
+ h !== "key" && (o[h] = l[h]);
15
+ } else o = l;
16
+ return l = o.ref, {
17
17
  $$typeof: n,
18
18
  type: a,
19
- key: u,
20
- ref: c !== void 0 ? c : null,
21
- props: i
19
+ key: c,
20
+ ref: l !== void 0 ? l : null,
21
+ props: o
22
22
  };
23
23
  }
24
- return O.Fragment = r, O.jsx = o, O.jsxs = o, O;
24
+ return V.Fragment = t, V.jsx = s, V.jsxs = s, V;
25
25
  }
26
- var I = {};
27
- var se;
28
- function Ne() {
29
- return se || (se = 1, process.env.NODE_ENV !== "production" && (function() {
26
+ var W = {};
27
+ var le;
28
+ function Pe() {
29
+ return le || (le = 1, process.env.NODE_ENV !== "production" && (function() {
30
30
  function n(e) {
31
31
  if (e == null) return null;
32
32
  if (typeof e == "function")
33
- return e.$$typeof === k ? null : e.displayName || e.name || null;
33
+ return e.$$typeof === X ? null : e.displayName || e.name || null;
34
34
  if (typeof e == "string") return e;
35
35
  switch (e) {
36
36
  case m:
37
37
  return "Fragment";
38
38
  case N:
39
39
  return "Profiler";
40
- case _:
40
+ case M:
41
41
  return "StrictMode";
42
- case P:
42
+ case z:
43
43
  return "Suspense";
44
- case H:
44
+ case B:
45
45
  return "SuspenseList";
46
- case q:
46
+ case Y:
47
47
  return "Activity";
48
48
  }
49
49
  if (typeof e == "object")
50
50
  switch (typeof e.tag == "number" && console.error(
51
51
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
52
52
  ), e.$$typeof) {
53
- case s:
53
+ case i:
54
54
  return "Portal";
55
- case F:
55
+ case I:
56
56
  return e.displayName || "Context";
57
- case Y:
57
+ case j:
58
58
  return (e._context.displayName || "Context") + ".Consumer";
59
- case V:
60
- var l = e.render;
61
- return e = e.displayName, e || (e = l.displayName || l.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
62
- case W:
63
- return l = e.displayName || null, l !== null ? l : n(e.type) || "Memo";
64
- case T:
65
- l = e._payload, e = e._init;
59
+ case L:
60
+ var u = e.render;
61
+ return e = e.displayName, e || (e = u.displayName || u.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
62
+ case Q:
63
+ return u = e.displayName || null, u !== null ? u : n(e.type) || "Memo";
64
+ case D:
65
+ u = e._payload, e = e._init;
66
66
  try {
67
- return n(e(l));
67
+ return n(e(u));
68
68
  } catch {
69
69
  }
70
70
  }
71
71
  return null;
72
72
  }
73
- function r(e) {
73
+ function t(e) {
74
74
  return "" + e;
75
75
  }
76
- function o(e) {
76
+ function s(e) {
77
77
  try {
78
- r(e);
79
- var l = !1;
78
+ t(e);
79
+ var u = !1;
80
80
  } catch {
81
- l = !0;
81
+ u = !0;
82
82
  }
83
- if (l) {
84
- l = console;
85
- var h = l.error, y = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
86
- return h.call(
87
- l,
83
+ if (u) {
84
+ u = console;
85
+ var b = u.error, g = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
86
+ return b.call(
87
+ u,
88
88
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
89
- y
90
- ), r(e);
89
+ g
90
+ ), t(e);
91
91
  }
92
92
  }
93
93
  function a(e) {
94
94
  if (e === m) return "<>";
95
- if (typeof e == "object" && e !== null && e.$$typeof === T)
95
+ if (typeof e == "object" && e !== null && e.$$typeof === D)
96
96
  return "<...>";
97
97
  try {
98
- var l = n(e);
99
- return l ? "<" + l + ">" : "<...>";
98
+ var u = n(e);
99
+ return u ? "<" + u + ">" : "<...>";
100
100
  } catch {
101
101
  return "<...>";
102
102
  }
103
103
  }
104
- function c() {
105
- var e = E.A;
104
+ function l() {
105
+ var e = R.A;
106
106
  return e === null ? null : e.getOwner();
107
107
  }
108
- function i() {
108
+ function o() {
109
109
  return Error("react-stack-top-frame");
110
110
  }
111
- function u(e) {
112
- if (R.call(e, "key")) {
113
- var l = Object.getOwnPropertyDescriptor(e, "key").get;
114
- if (l && l.isReactWarning) return !1;
111
+ function c(e) {
112
+ if (F.call(e, "key")) {
113
+ var u = Object.getOwnPropertyDescriptor(e, "key").get;
114
+ if (u && u.isReactWarning) return !1;
115
115
  }
116
116
  return e.key !== void 0;
117
117
  }
118
- function p(e, l) {
119
- function h() {
120
- X || (X = !0, console.error(
118
+ function h(e, u) {
119
+ function b() {
120
+ H || (H = !0, console.error(
121
121
  "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
122
- l
122
+ u
123
123
  ));
124
124
  }
125
- h.isReactWarning = !0, Object.defineProperty(e, "key", {
126
- get: h,
125
+ b.isReactWarning = !0, Object.defineProperty(e, "key", {
126
+ get: b,
127
127
  configurable: !0
128
128
  });
129
129
  }
130
- function b() {
130
+ function p() {
131
131
  var e = n(this.type);
132
- return K[e] || (K[e] = !0, console.error(
132
+ return x[e] || (x[e] = !0, console.error(
133
133
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
134
134
  )), e = this.props.ref, e !== void 0 ? e : null;
135
135
  }
136
- function d(e, l, h, y, $, J) {
137
- var v = h.ref;
136
+ function f(e, u, b, g, G, ee) {
137
+ var y = b.ref;
138
138
  return e = {
139
- $$typeof: S,
139
+ $$typeof: C,
140
140
  type: e,
141
- key: l,
142
- props: h,
143
- _owner: y
144
- }, (v !== void 0 ? v : null) !== null ? Object.defineProperty(e, "ref", {
141
+ key: u,
142
+ props: b,
143
+ _owner: g
144
+ }, (y !== void 0 ? y : null) !== null ? Object.defineProperty(e, "ref", {
145
145
  enumerable: !1,
146
- get: b
146
+ get: p
147
147
  }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
148
148
  configurable: !1,
149
149
  enumerable: !1,
@@ -158,134 +158,120 @@ function Ne() {
158
158
  configurable: !1,
159
159
  enumerable: !1,
160
160
  writable: !0,
161
- value: $
161
+ value: G
162
162
  }), Object.defineProperty(e, "_debugTask", {
163
163
  configurable: !1,
164
164
  enumerable: !1,
165
165
  writable: !0,
166
- value: J
166
+ value: ee
167
167
  }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
168
168
  }
169
- function f(e, l, h, y, $, J) {
170
- var v = l.children;
171
- if (v !== void 0)
172
- if (y)
173
- if (U(v)) {
174
- for (y = 0; y < v.length; y++)
175
- g(v[y]);
176
- Object.freeze && Object.freeze(v);
169
+ function d(e, u, b, g, G, ee) {
170
+ var y = u.children;
171
+ if (y !== void 0)
172
+ if (g)
173
+ if (K(y)) {
174
+ for (g = 0; g < y.length; g++)
175
+ w(y[g]);
176
+ Object.freeze && Object.freeze(y);
177
177
  } else
178
178
  console.error(
179
179
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
180
180
  );
181
- else g(v);
182
- if (R.call(l, "key")) {
183
- v = n(e);
184
- var A = Object.keys(l).filter(function(ge) {
185
- return ge !== "key";
181
+ else w(y);
182
+ if (F.call(u, "key")) {
183
+ y = n(e);
184
+ var q = Object.keys(u).filter(function(Ne) {
185
+ return Ne !== "key";
186
186
  });
187
- y = 0 < A.length ? "{key: someKey, " + A.join(": ..., ") + ": ...}" : "{key: someKey}", ne[v + y] || (A = 0 < A.length ? "{" + A.join(": ..., ") + ": ...}" : "{}", console.error(
187
+ g = 0 < q.length ? "{key: someKey, " + q.join(": ..., ") + ": ...}" : "{key: someKey}", U[y + g] || (q = 0 < q.length ? "{" + q.join(": ..., ") + ": ...}" : "{}", console.error(
188
188
  `A props object containing a "key" prop is being spread into JSX:
189
189
  let props = %s;
190
190
  <%s {...props} />
191
191
  React keys must be passed directly to JSX without using spread:
192
192
  let props = %s;
193
193
  <%s key={someKey} {...props} />`,
194
+ g,
194
195
  y,
195
- v,
196
- A,
197
- v
198
- ), ne[v + y] = !0);
196
+ q,
197
+ y
198
+ ), U[y + g] = !0);
199
199
  }
200
- if (v = null, h !== void 0 && (o(h), v = "" + h), u(l) && (o(l.key), v = "" + l.key), "key" in l) {
201
- h = {};
202
- for (var G in l)
203
- G !== "key" && (h[G] = l[G]);
204
- } else h = l;
205
- return v && p(
206
- h,
200
+ if (y = null, b !== void 0 && (s(b), y = "" + b), c(u) && (s(u.key), y = "" + u.key), "key" in u) {
201
+ b = {};
202
+ for (var te in u)
203
+ te !== "key" && (b[te] = u[te]);
204
+ } else b = u;
205
+ return y && h(
206
+ b,
207
207
  typeof e == "function" ? e.displayName || e.name || "Unknown" : e
208
- ), d(
208
+ ), f(
209
209
  e,
210
- v,
211
- h,
212
- c(),
213
- $,
214
- J
210
+ y,
211
+ b,
212
+ l(),
213
+ G,
214
+ ee
215
215
  );
216
216
  }
217
- function g(e) {
218
- j(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === T && (e._payload.status === "fulfilled" ? j(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
217
+ function w(e) {
218
+ v(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === D && (e._payload.status === "fulfilled" ? v(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
219
219
  }
220
- function j(e) {
221
- return typeof e == "object" && e !== null && e.$$typeof === S;
220
+ function v(e) {
221
+ return typeof e == "object" && e !== null && e.$$typeof === C;
222
222
  }
223
- var x = ke, S = /* @__PURE__ */ Symbol.for("react.transitional.element"), s = /* @__PURE__ */ Symbol.for("react.portal"), m = /* @__PURE__ */ Symbol.for("react.fragment"), _ = /* @__PURE__ */ Symbol.for("react.strict_mode"), N = /* @__PURE__ */ Symbol.for("react.profiler"), Y = /* @__PURE__ */ Symbol.for("react.consumer"), F = /* @__PURE__ */ Symbol.for("react.context"), V = /* @__PURE__ */ Symbol.for("react.forward_ref"), P = /* @__PURE__ */ Symbol.for("react.suspense"), H = /* @__PURE__ */ Symbol.for("react.suspense_list"), W = /* @__PURE__ */ Symbol.for("react.memo"), T = /* @__PURE__ */ Symbol.for("react.lazy"), q = /* @__PURE__ */ Symbol.for("react.activity"), k = /* @__PURE__ */ Symbol.for("react.client.reference"), E = x.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, R = Object.prototype.hasOwnProperty, U = Array.isArray, Z = console.createTask ? console.createTask : function() {
223
+ var S = Ee, C = /* @__PURE__ */ Symbol.for("react.transitional.element"), i = /* @__PURE__ */ Symbol.for("react.portal"), m = /* @__PURE__ */ Symbol.for("react.fragment"), M = /* @__PURE__ */ Symbol.for("react.strict_mode"), N = /* @__PURE__ */ Symbol.for("react.profiler"), j = /* @__PURE__ */ Symbol.for("react.consumer"), I = /* @__PURE__ */ Symbol.for("react.context"), L = /* @__PURE__ */ Symbol.for("react.forward_ref"), z = /* @__PURE__ */ Symbol.for("react.suspense"), B = /* @__PURE__ */ Symbol.for("react.suspense_list"), Q = /* @__PURE__ */ Symbol.for("react.memo"), D = /* @__PURE__ */ Symbol.for("react.lazy"), Y = /* @__PURE__ */ Symbol.for("react.activity"), X = /* @__PURE__ */ Symbol.for("react.client.reference"), R = S.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, F = Object.prototype.hasOwnProperty, K = Array.isArray, O = console.createTask ? console.createTask : function() {
224
224
  return null;
225
225
  };
226
- x = {
226
+ S = {
227
227
  react_stack_bottom_frame: function(e) {
228
228
  return e();
229
229
  }
230
230
  };
231
- var X, K = {}, ee = x.react_stack_bottom_frame.bind(
232
- x,
233
- i
234
- )(), te = Z(a(i)), ne = {};
235
- I.Fragment = m, I.jsx = function(e, l, h) {
236
- var y = 1e4 > E.recentlyCreatedOwnerStacks++;
237
- return f(
231
+ var H, x = {}, E = S.react_stack_bottom_frame.bind(
232
+ S,
233
+ o
234
+ )(), A = O(a(o)), U = {};
235
+ W.Fragment = m, W.jsx = function(e, u, b) {
236
+ var g = 1e4 > R.recentlyCreatedOwnerStacks++;
237
+ return d(
238
238
  e,
239
- l,
240
- h,
239
+ u,
240
+ b,
241
241
  !1,
242
- y ? Error("react-stack-top-frame") : ee,
243
- y ? Z(a(e)) : te
242
+ g ? Error("react-stack-top-frame") : E,
243
+ g ? O(a(e)) : A
244
244
  );
245
- }, I.jsxs = function(e, l, h) {
246
- var y = 1e4 > E.recentlyCreatedOwnerStacks++;
247
- return f(
245
+ }, W.jsxs = function(e, u, b) {
246
+ var g = 1e4 > R.recentlyCreatedOwnerStacks++;
247
+ return d(
248
248
  e,
249
- l,
250
- h,
249
+ u,
250
+ b,
251
251
  !0,
252
- y ? Error("react-stack-top-frame") : ee,
253
- y ? Z(a(e)) : te
252
+ g ? Error("react-stack-top-frame") : E,
253
+ g ? O(a(e)) : A
254
254
  );
255
255
  };
256
- })()), I;
256
+ })()), W;
257
257
  }
258
- var ae;
259
- function Ee() {
260
- return ae || (ae = 1, process.env.NODE_ENV === "production" ? D.exports = je() : D.exports = Ne()), D.exports;
258
+ var ce;
259
+ function Me() {
260
+ return ce || (ce = 1, process.env.NODE_ENV === "production" ? Z.exports = Ce() : Z.exports = Pe()), Z.exports;
261
261
  }
262
- var t = Ee();
263
- const _e = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2NiZDVlMSI+PHBhdGggZD0iTTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMCAyYy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00eiIvPjwvc3ZnPg==", Se = ({ to: n, className: r, children: o }) => /* @__PURE__ */ t.jsx("a", { href: n, className: r, children: o }), nt = (n) => {
264
- const { user: r, LinkComponent: o = Se } = n;
265
- return /* @__PURE__ */ t.jsx("div", { className: "max-h-20 max-w-52", children: /* @__PURE__ */ t.jsx("div", { className: "flex grow flex-col", children: r ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
266
- /* @__PURE__ */ t.jsxs("div", { className: "flex flex-row", children: [
267
- /* @__PURE__ */ t.jsx("div", { className: "aiquants-session-photo m-1 h-14 w-14 p-0.5", children: /* @__PURE__ */ t.jsx("img", { className: "object-contain", src: r.photo || _e, "aria-label": "profile photo" }) }),
268
- /* @__PURE__ */ t.jsxs("div", { className: "mx-1 flex flex-col", children: [
269
- /* @__PURE__ */ t.jsx(o, { className: "aiquants-session-link my-1 rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィールを編集" }),
270
- /* @__PURE__ */ t.jsx(o, { className: "aiquants-session-link rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィール" }),
271
- /* @__PURE__ */ t.jsx(o, { className: "aiquants-session-link my-1 rounded-lg px-2 text-center text-xs", to: "https://myaccount.google.com/", children: "Google Account" })
272
- ] })
273
- ] }),
274
- /* @__PURE__ */ t.jsx("div", { className: "aiquants-session-info mb-1 min-h-[1em] w-full rounded-r-lg px-2 py-0.5 text-xs", children: r.displayName })
275
- ] }) : /* @__PURE__ */ t.jsx("div", { className: "aiquants-session-info mb-1 min-h-[1em] w-9/12 rounded-r-lg py-0.5 pl-1 text-xs", children: "ログインはこちら" }) }) });
276
- };
277
- const Ce = (n) => n.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Te = (n) => n.replace(
262
+ var r = Me();
263
+ const Te = (n) => n.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Re = (n) => n.replace(
278
264
  /^([A-Z])|[\s-_]+(\w)/g,
279
- (r, o, a) => a ? a.toUpperCase() : o.toLowerCase()
280
- ), le = (n) => {
281
- const r = Te(n);
282
- return r.charAt(0).toUpperCase() + r.slice(1);
283
- }, be = (...n) => n.filter((r, o, a) => !!r && r.trim() !== "" && a.indexOf(r) === o).join(" ").trim(), Re = (n) => {
284
- for (const r in n)
285
- if (r.startsWith("aria-") || r === "role" || r === "title")
265
+ (t, s, a) => a ? a.toUpperCase() : s.toLowerCase()
266
+ ), ue = (n) => {
267
+ const t = Re(n);
268
+ return t.charAt(0).toUpperCase() + t.slice(1);
269
+ }, ye = (...n) => n.filter((t, s, a) => !!t && t.trim() !== "" && a.indexOf(t) === s).join(" ").trim(), Oe = (n) => {
270
+ for (const t in n)
271
+ if (t.startsWith("aria-") || t === "role" || t === "title")
286
272
  return !0;
287
273
  };
288
- var Me = {
274
+ var Ae = {
289
275
  xmlns: "http://www.w3.org/2000/svg",
290
276
  width: 24,
291
277
  height: 24,
@@ -296,51 +282,162 @@ var Me = {
296
282
  strokeLinecap: "round",
297
283
  strokeLinejoin: "round"
298
284
  };
299
- const Pe = me(
285
+ const Ie = be(
300
286
  ({
301
287
  color: n = "currentColor",
302
- size: r = 24,
303
- strokeWidth: o = 2,
288
+ size: t = 24,
289
+ strokeWidth: s = 2,
304
290
  absoluteStrokeWidth: a,
305
- className: c = "",
306
- children: i,
307
- iconNode: u,
308
- ...p
309
- }, b) => B(
291
+ className: l = "",
292
+ children: o,
293
+ iconNode: c,
294
+ ...h
295
+ }, p) => re(
310
296
  "svg",
311
297
  {
312
- ref: b,
313
- ...Me,
314
- width: r,
315
- height: r,
298
+ ref: p,
299
+ ...Ae,
300
+ width: t,
301
+ height: t,
316
302
  stroke: n,
317
- strokeWidth: a ? Number(o) * 24 / Number(r) : o,
318
- className: be("lucide", c),
319
- ...!i && !Re(p) && { "aria-hidden": "true" },
320
- ...p
303
+ strokeWidth: a ? Number(s) * 24 / Number(t) : s,
304
+ className: ye("lucide", l),
305
+ ...!o && !Oe(h) && { "aria-hidden": "true" },
306
+ ...h
321
307
  },
322
308
  [
323
- ...u.map(([d, f]) => B(d, f)),
324
- ...Array.isArray(i) ? i : [i]
309
+ ...c.map(([f, d]) => re(f, d)),
310
+ ...Array.isArray(o) ? o : [o]
325
311
  ]
326
312
  )
327
313
  );
328
- const M = (n, r) => {
329
- const o = me(
330
- ({ className: a, ...c }, i) => B(Pe, {
331
- ref: i,
332
- iconNode: r,
333
- className: be(
334
- `lucide-${Ce(le(n))}`,
314
+ const P = (n, t) => {
315
+ const s = be(
316
+ ({ className: a, ...l }, o) => re(Ie, {
317
+ ref: o,
318
+ iconNode: t,
319
+ className: ye(
320
+ `lucide-${Te(ue(n))}`,
335
321
  `lucide-${n}`,
336
322
  a
337
323
  ),
338
- ...c
324
+ ...l
339
325
  })
340
326
  );
341
- return o.displayName = le(n), o;
327
+ return s.displayName = ue(n), s;
342
328
  };
343
- const Ae = [
329
+ const Le = [
330
+ ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
331
+ ["path", { d: "M10 14 21 3", key: "gplh6r" }],
332
+ ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
333
+ ], qe = P("external-link", Le);
334
+ const $e = [
335
+ ["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
336
+ ["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
337
+ ], ze = P("user", $e), De = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2NiZDVlMSI+PHBhdGggZD0iTTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMCAyYy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00eiIvPjwvc3ZnPg==", Ye = ({ to: n, className: t, children: s }) => /* @__PURE__ */ r.jsx("a", { href: n, className: t, children: s }), mt = (n) => {
338
+ const { user: t, LinkComponent: s = Ye } = n;
339
+ return /* @__PURE__ */ r.jsx("div", { className: "w-full", children: t ? /* @__PURE__ */ r.jsxs("div", { className: "aiquants-session-card group relative flex flex-col gap-1.5 rounded-lg border border-white/20 bg-white/10 p-2 shadow-sm transition-all duration-200 hover:border-white/30 hover:bg-white/15 dark:border-slate-700/60 dark:bg-slate-800/60 dark:hover:border-slate-600/80 dark:hover:bg-slate-800/90", children: [
340
+ /* @__PURE__ */ r.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
341
+ /* @__PURE__ */ r.jsxs("div", { className: "relative shrink-0", children: [
342
+ /* @__PURE__ */ r.jsx("div", { className: "h-7 w-7 overflow-hidden rounded-full border border-white/40 shadow-xs dark:border-slate-500", children: /* @__PURE__ */ r.jsx("img", { className: "h-full w-full rounded-full object-cover", src: t.photo || De, alt: t.displayName || "user profile" }) }),
343
+ /* @__PURE__ */ r.jsx("span", { className: "absolute -right-0.5 -bottom-0.5 h-2 w-2 rounded-full border border-slate-900 bg-emerald-400", title: "Online" })
344
+ ] }),
345
+ /* @__PURE__ */ r.jsxs("div", { className: "min-w-0 flex-1 leading-tight", children: [
346
+ /* @__PURE__ */ r.jsx("div", { className: "truncate font-semibold text-[11px] text-white tracking-tight dark:text-slate-100", title: t.displayName, children: t.displayName }),
347
+ /* @__PURE__ */ r.jsx("div", { className: "mt-0.5 text-[9px] text-white/70 tracking-tight dark:text-slate-400", children: "Google Account" })
348
+ ] })
349
+ ] }),
350
+ /* @__PURE__ */ r.jsxs("div", { className: "grid grid-cols-2 gap-1 border-white/15 border-t pt-1 dark:border-slate-700/50", children: [
351
+ /* @__PURE__ */ r.jsxs(
352
+ s,
353
+ {
354
+ className: "flex items-center justify-center gap-1 rounded border border-white/15 bg-white/10 px-1.5 py-0.5 font-medium text-[10px] text-white transition-all duration-150 hover:bg-white/25 active:scale-95 dark:border-slate-600/50 dark:bg-slate-700/50 dark:text-slate-200 dark:hover:bg-slate-600/80",
355
+ to: "/",
356
+ children: [
357
+ /* @__PURE__ */ r.jsx(ze, { size: 10, className: "shrink-0 opacity-80" }),
358
+ /* @__PURE__ */ r.jsx("span", { className: "truncate", children: "プロフィール" })
359
+ ]
360
+ }
361
+ ),
362
+ /* @__PURE__ */ r.jsxs(
363
+ s,
364
+ {
365
+ className: "flex items-center justify-center gap-1 rounded border border-white/15 bg-white/10 px-1.5 py-0.5 font-medium text-[10px] text-white transition-all duration-150 hover:bg-white/25 active:scale-95 dark:border-slate-600/50 dark:bg-slate-700/50 dark:text-slate-200 dark:hover:bg-slate-600/80",
366
+ to: "https://myaccount.google.com/",
367
+ children: [
368
+ /* @__PURE__ */ r.jsx(qe, { size: 10, className: "shrink-0 opacity-80" }),
369
+ /* @__PURE__ */ r.jsx("span", { className: "truncate", children: "Google" })
370
+ ]
371
+ }
372
+ )
373
+ ] })
374
+ ] }) : /* @__PURE__ */ r.jsx("div", { className: "aiquants-session-card flex items-center justify-between rounded-lg border border-white/20 bg-white/10 p-2 shadow-xs dark:border-slate-700/60 dark:bg-slate-800/60", children: /* @__PURE__ */ r.jsx("span", { className: "font-medium text-white/90 text-xs dark:text-slate-200", children: "ログインしてください" }) }) });
375
+ }, se = "aiquants-menu-pin-change";
376
+ let _ = { pinned: !1, width: 0 };
377
+ const ve = (n = 240) => {
378
+ if (typeof window > "u" || typeof document > "u")
379
+ return { pinned: !1, width: 0 };
380
+ try {
381
+ const t = getComputedStyle(document.documentElement).getPropertyValue("--aiquants-menu-pinned-width").trim();
382
+ if (t) {
383
+ const o = Number.parseInt(t, 10);
384
+ if (!Number.isNaN(o)) {
385
+ const c = o > 0, h = c ? o || n : 0;
386
+ return _.pinned === c && _.width === h || (_ = { pinned: c, width: h }), _;
387
+ }
388
+ }
389
+ const a = localStorage.getItem("aiquants-menu-pinned") === "true", l = a ? n : 0;
390
+ return _.pinned === a && _.width === l || (_ = { pinned: a, width: l }), _;
391
+ } catch {
392
+ return { pinned: !1, width: 0 };
393
+ }
394
+ }, de = (n, t) => {
395
+ if (typeof window > "u") return;
396
+ const s = { pinned: n, width: t };
397
+ (_.pinned !== n || _.width !== t) && (_ = s);
398
+ const a = new CustomEvent(se, {
399
+ detail: s,
400
+ bubbles: !0,
401
+ cancelable: !1
402
+ });
403
+ window.dispatchEvent(a);
404
+ }, He = (n, t) => {
405
+ if (typeof window > "u")
406
+ return () => {
407
+ };
408
+ const { immediate: s = !0, defaultPinnedWidth: a = 240 } = t ?? {};
409
+ if (s) {
410
+ const o = ve(a);
411
+ n(o);
412
+ }
413
+ const l = (o) => {
414
+ const c = o;
415
+ c.detail && n(c.detail);
416
+ };
417
+ return window.addEventListener(se, l, { passive: !0 }), () => {
418
+ window.removeEventListener(se, l);
419
+ };
420
+ }, pt = (n) => {
421
+ const t = n?.defaultPinnedWidth ?? 240, s = n?.initialPinned ?? !1, a = k(
422
+ (c) => He(
423
+ () => {
424
+ c();
425
+ },
426
+ { immediate: !1, defaultPinnedWidth: t }
427
+ ),
428
+ [t]
429
+ ), l = k(() => ve(t), [t]), o = k(() => ({
430
+ pinned: s,
431
+ width: s ? t : 0
432
+ }), [s, t]);
433
+ return _e(a, l, o);
434
+ };
435
+ const Ve = [
436
+ ["path", { d: "m16 17 5-5-5-5", key: "1bji2h" }],
437
+ ["path", { d: "M21 12H9", key: "dn1m92" }],
438
+ ["path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", key: "1uf3rs" }]
439
+ ], We = P("log-out", Ve);
440
+ const Fe = [
344
441
  ["path", { d: "M12 17v5", key: "bb1du9" }],
345
442
  [
346
443
  "path",
@@ -349,8 +446,8 @@ const Ae = [
349
446
  key: "1nkz8b"
350
447
  }
351
448
  ]
352
- ], xe = M("pin", Ae);
353
- const Oe = [
449
+ ], ke = P("pin", Fe);
450
+ const Ue = [
354
451
  ["path", { d: "M12 17v5", key: "bb1du9" }],
355
452
  ["path", { d: "M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89", key: "znwnzq" }],
356
453
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
@@ -361,18 +458,18 @@ const Oe = [
361
458
  key: "c9qhm2"
362
459
  }
363
460
  ]
364
- ], ye = M("pin-off", Oe);
365
- const Ie = [
461
+ ], we = P("pin-off", Ue);
462
+ const Ge = [
366
463
  ["path", { d: "M5 21v-6", key: "1hz6c0" }],
367
464
  ["path", { d: "M12 21V9", key: "uvy0l4" }],
368
465
  ["path", { d: "M19 21V3", key: "11j9sm" }]
369
- ], Le = M("chart-no-axes-column-increasing", Ie);
370
- const qe = [
466
+ ], Ze = P("chart-no-axes-column-increasing", Ge);
467
+ const Je = [
371
468
  ["path", { d: "M12 15V3", key: "m9g1x1" }],
372
469
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
373
470
  ["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
374
- ], $e = M("download", qe);
375
- const De = [
471
+ ], Be = P("download", Je);
472
+ const Qe = [
376
473
  [
377
474
  "path",
378
475
  {
@@ -384,46 +481,46 @@ const De = [
384
481
  ["path", { d: "M10 9H8", key: "b1mrlr" }],
385
482
  ["path", { d: "M16 13H8", key: "t4e002" }],
386
483
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
387
- ], ie = M("file-text", De);
388
- const ze = [
484
+ ], fe = P("file-text", Qe);
485
+ const Xe = [
389
486
  ["path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71", key: "1cjeqo" }],
390
487
  ["path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71", key: "19qd67" }]
391
- ], Ye = M("link", ze);
392
- const Fe = [
488
+ ], Ke = P("link", Xe);
489
+ const et = [
393
490
  ["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
394
491
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
395
- ], Ve = M("lock", Fe);
396
- const He = [
492
+ ], tt = P("lock", et);
493
+ const nt = [
397
494
  ["path", { d: "M12 3v18", key: "108xh3" }],
398
495
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
399
496
  ["path", { d: "M3 9h18", key: "1pudct" }],
400
497
  ["path", { d: "M3 15h18", key: "5xshup" }]
401
- ], We = M("table", He), Ue = typeof window < "u" ? pe : L, ce = "aiquants-menu-scroll", ve = new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/), Ze = {
402
- report: ie,
403
- slip: ie,
404
- table: We,
405
- chart: Le,
406
- download: $e,
407
- lock: Ve,
408
- href: Ye
409
- }, Je = ({ mark: n, children: r }) => {
410
- const o = n ? Ze[n] : void 0;
411
- return o ? /* @__PURE__ */ t.jsxs("div", { className: "flex flex-nowrap items-center", children: [
412
- /* @__PURE__ */ t.jsx(o, { className: "h-4 w-4" }),
413
- /* @__PURE__ */ t.jsx("div", { className: "aiquants-menu-link mx-1 hover:underline", children: r })
414
- ] }) : /* @__PURE__ */ t.jsx("span", { className: "mx-1 text-sky-600 hover:underline dark:text-sky-400", children: r });
415
- }, Q = (n, r) => r ? {
498
+ ], rt = P("table", nt), st = typeof window < "u" ? xe : $, he = "aiquants-menu-scroll", je = new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/), at = {
499
+ report: fe,
500
+ slip: fe,
501
+ table: rt,
502
+ chart: Ze,
503
+ download: Be,
504
+ lock: tt,
505
+ href: Ke
506
+ }, ot = ({ mark: n, children: t }) => {
507
+ const s = n ? at[n] : void 0;
508
+ return s ? /* @__PURE__ */ r.jsxs("div", { className: "flex flex-nowrap items-center", children: [
509
+ /* @__PURE__ */ r.jsx(s, { className: "h-3.5 w-3.5 shrink-0" }),
510
+ /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-link mx-1 hover:underline", children: t })
511
+ ] }) : /* @__PURE__ */ r.jsx("span", { className: "mx-1 text-sky-600 hover:underline dark:text-sky-400", children: t });
512
+ }, ae = (n, t) => t ? {
416
513
  menu: {
417
514
  id: n.id,
418
515
  title: n.title,
419
516
  href: n.href
420
517
  },
421
518
  submenu: {
422
- subid: r.subid,
423
- title: r.title,
424
- href: r.href,
425
- mark: r.mark,
426
- new: r.new
519
+ subid: t.subid,
520
+ title: t.title,
521
+ href: t.href,
522
+ mark: t.mark,
523
+ new: t.new
427
524
  }
428
525
  } : {
429
526
  menu: {
@@ -431,288 +528,316 @@ const He = [
431
528
  title: n.title,
432
529
  href: n.href
433
530
  }
434
- }, Ge = ({ item: n, parentMenu: r, onMenuSelected: o }) => {
531
+ }, it = ({ item: n, parentMenu: t, onMenuSelected: s }) => {
435
532
  if (n.href === "separator")
436
- return /* @__PURE__ */ t.jsx("hr", { className: "aiquants-menu-separator mx-2 my-1 h-px" });
437
- const a = /* @__PURE__ */ t.jsx(Je, { mark: n.mark, children: n.title }), c = {
533
+ return /* @__PURE__ */ r.jsx("hr", { className: "aiquants-menu-separator mx-2 my-1 h-px" });
534
+ const a = /* @__PURE__ */ r.jsx(ot, { mark: n.mark, children: n.title }), l = {
438
535
  onClick: () => {
439
- o && o(Q(r, n));
536
+ s && s(ae(t, n));
440
537
  }
441
538
  };
442
- return n.new ? /* @__PURE__ */ t.jsx("a", { href: n.href, rel: "noopener noreferrer", target: "_blank", ...c, children: a }) : ve.test(n.href) ? /* @__PURE__ */ t.jsx("a", { href: n.href, ...c, children: a }) : /* @__PURE__ */ t.jsx(he, { to: n.href, ...c, children: a });
443
- }, ue = (n) => n ? n.split(/[?#]/)[0].replace(/(?!^\/)\/$/, "") : "", de = (n, r) => {
444
- const o = r !== "/" && r.endsWith("/") ? r.slice(0, -1) : r;
539
+ return n.new ? /* @__PURE__ */ r.jsx("a", { href: n.href, rel: "noopener noreferrer", target: "_blank", ...l, children: a }) : je.test(n.href) ? /* @__PURE__ */ r.jsx("a", { href: n.href, ...l, children: a }) : /* @__PURE__ */ r.jsx(ge, { to: n.href, ...l, children: a });
540
+ }, me = (n) => n ? n.split(/[?#]/)[0].replace(/(?!^\/)\/$/, "") : "", pe = (n, t) => {
541
+ const s = t !== "/" && t.endsWith("/") ? t.slice(0, -1) : t;
445
542
  for (const a of n) {
446
- if (ue(a.href) === o)
543
+ if (me(a.href) === s)
447
544
  return a.id;
448
545
  if (a.submenu) {
449
- for (const c of a.submenu)
450
- if (ue(c.href) === o)
546
+ for (const l of a.submenu)
547
+ if (me(l.href) === s)
451
548
  return a.id;
452
549
  }
453
550
  }
454
551
  return null;
455
- }, Be = (n) => {
456
- const { menuList: r, onMenuSelected: o, pinnedSubmenuIds: a = [], onToggleSubmenuPin: c } = n;
457
- let i = "";
552
+ }, lt = (n) => {
553
+ const { menuList: t, onMenuSelected: s, pinnedSubmenuIds: a = [], onToggleSubmenuPin: l } = n;
554
+ let o = "";
458
555
  try {
459
- i = we().pathname;
556
+ o = Se().pathname;
460
557
  } catch {
461
- typeof window < "u" && (i = window.location.pathname);
558
+ typeof window < "u" && (o = window.location.pathname);
462
559
  }
463
- const u = re(() => de(r, i), [r, i]), [p, b] = z(u), d = C(i), f = C(u !== null);
464
- L(() => {
465
- if (d.current !== i && (d.current = i, f.current = !1), !f.current) {
466
- const s = de(r, i);
467
- s !== null && (b(s), f.current = !0);
560
+ const c = oe(() => pe(t, o), [t, o]), [h, p] = J(c), f = T(o), d = T(c !== null);
561
+ $(() => {
562
+ if (f.current !== o && (f.current = o, d.current = !1), !d.current) {
563
+ const i = pe(t, o);
564
+ i !== null && (p(i), d.current = !0);
468
565
  }
469
- }, [i, r]);
470
- const g = w(
471
- (s) => {
472
- a.includes(s) || b((_) => _ === s ? null : s);
566
+ }, [o, t]);
567
+ const w = k(
568
+ (i) => {
569
+ a.includes(i) || p((M) => M === i ? null : i);
473
570
  },
474
571
  [a]
475
- ), j = C(null);
476
- Ue(() => {
477
- const s = j.current;
478
- if (s)
572
+ ), v = T(null);
573
+ st(() => {
574
+ const i = v.current;
575
+ if (i)
479
576
  try {
480
- const m = sessionStorage.getItem(ce);
577
+ const m = sessionStorage.getItem(he);
481
578
  if (m !== null) {
482
- const _ = Number.parseFloat(m);
483
- Number.isNaN(_) || (s.scrollTop = _);
579
+ const M = Number.parseFloat(m);
580
+ Number.isNaN(M) || (i.scrollTop = M);
484
581
  }
485
582
  } catch {
486
583
  }
487
584
  }, []);
488
- const x = w(() => {
489
- const s = j.current;
490
- if (s)
585
+ const S = k(() => {
586
+ const i = v.current;
587
+ if (i)
491
588
  try {
492
- sessionStorage.setItem(ce, String(s.scrollTop));
589
+ sessionStorage.setItem(he, String(i.scrollTop));
493
590
  } catch {
494
591
  }
495
- }, []), S = re(() => /* @__PURE__ */ t.jsx(t.Fragment, { children: r.map((s) => /* @__PURE__ */ t.jsx("div", { children: s.href ? /* @__PURE__ */ t.jsx("div", { className: "aiquants-menu-list-item relative mb-1 ml-1 h-full rounded-l-2xl p-2 align-middle text-sm before:-mt-1 before:mr-2 before:inline-block before:h-4 before:w-4 before:rounded-full before:align-middle before:content-['']", children: ve.test(s.href) ? /* @__PURE__ */ t.jsx(
592
+ }, []), C = oe(() => /* @__PURE__ */ r.jsx(r.Fragment, { children: t.map((i) => /* @__PURE__ */ r.jsx("div", { children: i.href ? /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-list-item relative mb-0.5 ml-1 flex items-center rounded-l-xl px-2.5 py-1 text-xs before:mr-2 before:inline-block before:h-2 before:w-2 before:shrink-0 before:rounded-full before:content-[''] sm:text-sm", children: je.test(i.href) ? /* @__PURE__ */ r.jsx(
496
593
  "a",
497
594
  {
498
- href: s.href,
595
+ href: i.href,
499
596
  onClick: () => {
500
- o && o(Q(s));
597
+ s && s(ae(i));
501
598
  },
502
- children: /* @__PURE__ */ t.jsx("span", { className: "aiquants-menu-link hover:underline", children: s.title })
599
+ children: /* @__PURE__ */ r.jsx("span", { className: "aiquants-menu-link hover:underline", children: i.title })
503
600
  }
504
- ) : /* @__PURE__ */ t.jsx(
505
- he,
601
+ ) : /* @__PURE__ */ r.jsx(
602
+ ge,
506
603
  {
507
- to: s.href,
604
+ to: i.href,
508
605
  onClick: () => {
509
- o && o(Q(s));
606
+ s && s(ae(i));
510
607
  },
511
- children: /* @__PURE__ */ t.jsx("span", { className: "aiquants-menu-link hover:underline", children: s.title })
608
+ children: /* @__PURE__ */ r.jsx("span", { className: "aiquants-menu-link hover:underline", children: i.title })
512
609
  }
513
- ) }) : /* @__PURE__ */ t.jsxs("details", { className: "aiquants-menu-accordion-details", open: s.id === p || a.includes(s.id), children: [
514
- /* @__PURE__ */ t.jsxs(
610
+ ) }) : /* @__PURE__ */ r.jsxs("details", { className: "aiquants-menu-accordion-details", open: i.id === h || a.includes(i.id), children: [
611
+ /* @__PURE__ */ r.jsxs(
515
612
  "summary",
516
613
  {
517
- className: "aiquants-menu-list-item aiquants-menu-accordion-summary relative mb-1 ml-1 h-full list-none rounded-l-2xl p-2 text-sm outline-none before:mr-2 before:inline-block before:h-4 before:w-4 before:rounded-full before:content-['']",
614
+ className: "aiquants-menu-list-item aiquants-menu-accordion-summary relative mb-0.5 ml-1 list-none rounded-l-xl px-2.5 py-1 text-xs outline-none before:mr-2 before:inline-block before:h-2 before:w-2 before:shrink-0 before:rounded-full before:content-[''] sm:text-sm",
518
615
  onClick: (m) => {
519
- m.preventDefault(), g(s.id);
616
+ m.preventDefault(), w(i.id);
520
617
  },
521
618
  onKeyDown: (m) => {
522
- (m.key === "Enter" || m.key === " ") && (m.preventDefault(), g(s.id));
619
+ (m.key === "Enter" || m.key === " ") && (m.preventDefault(), w(i.id));
523
620
  },
524
621
  children: [
525
- /* @__PURE__ */ t.jsx("span", { children: s.title }),
526
- /* @__PURE__ */ t.jsx(
622
+ /* @__PURE__ */ r.jsx("span", { children: i.title }),
623
+ /* @__PURE__ */ r.jsx(
527
624
  "button",
528
625
  {
529
626
  type: "button",
530
627
  onClick: (m) => {
531
- m.stopPropagation(), m.preventDefault(), c && c(s.id);
628
+ m.stopPropagation(), m.preventDefault(), l && l(i.id);
532
629
  },
533
- className: `aiquants-submenu-pin-button ${a.includes(s.id) ? "pinned" : ""}`,
534
- title: a.includes(s.id) ? "ピン留め解除" : "ピン留め",
535
- children: a.includes(s.id) ? /* @__PURE__ */ t.jsx(xe, { size: 14 }) : /* @__PURE__ */ t.jsx(ye, { size: 14 })
630
+ className: `aiquants-submenu-pin-button ${a.includes(i.id) ? "pinned" : ""}`,
631
+ title: a.includes(i.id) ? "ピン留め解除" : "ピン留め",
632
+ children: a.includes(i.id) ? /* @__PURE__ */ r.jsx(ke, { size: 13 }) : /* @__PURE__ */ r.jsx(we, { size: 13 })
536
633
  }
537
634
  )
538
635
  ]
539
636
  }
540
637
  ),
541
- /* @__PURE__ */ t.jsx("div", { className: "aiquants-menu-submenu pointer-events-auto my-1 mr-1 ml-4 rounded p-2 shadow-md", children: s.submenu.map((m) => /* @__PURE__ */ t.jsx("div", { className: "aiquants-menu-accordion-container block w-full whitespace-nowrap text-sm", children: /* @__PURE__ */ t.jsx(Ge, { item: m, parentMenu: s, onMenuSelected: o }) }, m.subid)) })
542
- ] }) }, s.id)) }), [r, o, p, g, a]);
543
- return /* @__PURE__ */ t.jsx("div", { ref: j, onScroll: x, className: "hidden-scrollbar h-0 grow overflow-y-scroll", children: S });
544
- }, Qe = (n) => {
545
- const { menuList: r, menuHeader: o, open: a, onMenuSelected: c, onClickSignout: i, theme: u, toggleTheme: p, isPinned: b, onTogglePin: d, pinnedSubmenuIds: f, onToggleSubmenuPin: g } = n;
546
- return /* @__PURE__ */ t.jsxs("div", { className: `aiquants-menu-content fixed top-0 right-0 z-2147483642 flex min-h-dvh w-[250px] select-none flex-col transition-transform duration-500 ${a ? "aiquants-menu-translate-x-0" : "aiquants-menu-translate-x-250"}`, children: [
547
- /* @__PURE__ */ t.jsx("div", { className: "flex h-[100px] flex-col", children: o }),
548
- /* @__PURE__ */ t.jsx("div", { className: "flex grow flex-col", children: /* @__PURE__ */ t.jsx(Be, { menuList: r, onMenuSelected: c, pinnedSubmenuIds: f, onToggleSubmenuPin: g }) }),
549
- /* @__PURE__ */ t.jsx("div", { className: "px-4 pt-2 pb-4", children: /* @__PURE__ */ t.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
550
- /* @__PURE__ */ t.jsx(
638
+ /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-submenu pointer-events-auto my-0.5 mr-1 ml-3.5 rounded-lg px-2 py-1 shadow-sm", children: i.submenu.map((m) => /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-accordion-container block w-full whitespace-nowrap py-0.5 text-xs", children: /* @__PURE__ */ r.jsx(it, { item: m, parentMenu: i, onMenuSelected: s }) }, m.subid)) })
639
+ ] }) }, i.id)) }), [t, s, h, w, a]);
640
+ return /* @__PURE__ */ r.jsx("div", { ref: v, onScroll: S, className: "hidden-scrollbar h-0 grow overflow-y-scroll", children: C });
641
+ }, ct = (n) => {
642
+ const { menuList: t, menuHeader: s, open: a, onMenuSelected: l, onClickSignout: o, theme: c, toggleTheme: h, isPinned: p, onTogglePin: f, pinnedSubmenuIds: d, onToggleSubmenuPin: w } = n;
643
+ return /* @__PURE__ */ r.jsxs("div", { className: `aiquants-menu-content fixed top-0 right-0 z-2147483642 flex min-h-dvh w-[240px] select-none flex-col transition-transform duration-500 ${a ? "aiquants-menu-translate-x-0" : "aiquants-menu-translate-x-250"}`, children: [
644
+ /* @__PURE__ */ r.jsx("div", { className: "flex shrink-0 flex-col justify-center border-white/15 border-b px-2.5 py-2 dark:border-slate-700/60", children: s }),
645
+ /* @__PURE__ */ r.jsx("div", { className: "flex grow flex-col overflow-y-auto", children: /* @__PURE__ */ r.jsx(lt, { menuList: t, onMenuSelected: l, pinnedSubmenuIds: d, onToggleSubmenuPin: w }) }),
646
+ /* @__PURE__ */ r.jsx("div", { className: "border-white/15 border-t px-2.5 py-1.5 dark:border-slate-700/60", children: /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between gap-1.5", children: [
647
+ /* @__PURE__ */ r.jsx(
551
648
  "button",
552
649
  {
553
650
  type: "button",
554
- onClick: d,
651
+ onClick: f,
555
652
  "data-aqmb-pin-button": !0,
556
- className: `flex items-center justify-center rounded-md px-3 py-2 text-white text-xs shadow-sm transition-colors duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-300/60 ${b ? "bg-amber-500/90 hover:bg-amber-600" : "border border-white/15 bg-white/10 hover:bg-white/20"}`,
557
- title: b ? "ピン留め解除" : "ピン留め",
558
- "aria-label": b ? "ピン留め解除" : "ピン留め",
559
- children: b ? /* @__PURE__ */ t.jsx(xe, { size: 14 }) : /* @__PURE__ */ t.jsx(ye, { size: 14 })
653
+ className: `flex h-7 items-center justify-center rounded-md px-2 text-[11px] text-white shadow-2xs transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-300/60 ${p ? "bg-amber-500 hover:bg-amber-600 dark:bg-amber-600 dark:hover:bg-amber-500" : "border border-white/20 bg-white/10 hover:bg-white/20 dark:border-slate-600/60 dark:bg-slate-700/60 dark:hover:bg-slate-600"}`,
654
+ title: p ? "ピン留め解除" : "ピン留め",
655
+ "aria-label": p ? "ピン留め解除" : "ピン留め",
656
+ children: p ? /* @__PURE__ */ r.jsx(ke, { size: 12 }) : /* @__PURE__ */ r.jsx(we, { size: 12 })
560
657
  }
561
658
  ),
562
- /* @__PURE__ */ t.jsx(
659
+ /* @__PURE__ */ r.jsx(
563
660
  "button",
564
661
  {
565
662
  type: "button",
566
- onClick: p,
663
+ onClick: h,
567
664
  "data-aqmb-theme-button": !0,
568
- className: "group relative flex items-center justify-center rounded-md border border-white/15 bg-white/10 px-3 py-2 text-white text-xs shadow-sm backdrop-blur-sm transition-all duration-300 hover:border-white/25 hover:bg-white/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 focus-visible:ring-offset-0 dark:border-gray-600/40 dark:bg-gray-800/80 dark:hover:border-gray-500/60 dark:hover:bg-gray-700",
569
- title: u === "dark" ? "ライトモードに切り替え" : "ダークモードに切り替え",
570
- "aria-label": u === "dark" ? "ライトモードに切り替え" : "ダークモードに切り替え",
571
- children: /* @__PURE__ */ t.jsx("span", { className: "text-sm transition-transform duration-300 group-hover:scale-110", children: u === "dark" ? "🌞" : "🌙" })
665
+ className: "group relative flex h-7 items-center justify-center rounded-md border border-white/20 bg-white/10 px-2 text-[11px] text-white shadow-2xs backdrop-blur-xs transition-all duration-200 hover:bg-white/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 dark:border-slate-600/60 dark:bg-slate-700/60 dark:hover:bg-slate-600",
666
+ title: c === "dark" ? "ライトモードに切り替え" : "ダークモードに切り替え",
667
+ "aria-label": c === "dark" ? "ライトモードに切り替え" : "ダークモードに切り替え",
668
+ children: /* @__PURE__ */ r.jsx("span", { className: "text-xs transition-transform duration-200 group-hover:scale-110", children: c === "dark" ? "🌞" : "🌙" })
572
669
  }
573
670
  ),
574
- /* @__PURE__ */ t.jsx(
671
+ /* @__PURE__ */ r.jsxs(
575
672
  "button",
576
673
  {
577
674
  type: "button",
578
675
  "data-aqmb-signout-button": !0,
579
- className: "aiquants-signout-button flex flex-1 items-center justify-center whitespace-nowrap rounded-md bg-red-500/90 px-3 py-2 font-medium text-white text-xs shadow-sm transition-colors duration-300 hover:bg-red-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-red-300/60",
580
- onClick: i,
581
- children: /* @__PURE__ */ t.jsx("span", { children: "サインアウト" })
676
+ className: "aiquants-signout-button flex h-7 flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md bg-red-500/90 px-2.5 font-medium text-[11px] text-white shadow-2xs transition-colors duration-200 hover:bg-red-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-red-300/60 dark:bg-red-600/90 dark:hover:bg-red-500",
677
+ onClick: o,
678
+ children: [
679
+ /* @__PURE__ */ r.jsx(We, { size: 11, className: "shrink-0" }),
680
+ /* @__PURE__ */ r.jsx("span", { children: "サインアウト" })
681
+ ]
582
682
  }
583
683
  )
584
684
  ] }) })
585
685
  ] });
586
- }, Xe = (n) => {
587
- const { isOverlay: r, onOverlayClick: o } = n;
588
- return /* @__PURE__ */ t.jsx("button", { type: "button", className: `fixed inset-0 z-2147483640 cursor-default bg-black/50 transition-opacity duration-500 ${r ? "opacity-100" : "pointer-events-none opacity-0"}`, onClick: o });
589
- }, Ke = (n) => {
590
- const { open: r, onMenuOpen: o, onMenuClose: a, theme: c } = n, i = C(r), u = C(null), p = C(null), b = C(null), d = C(null), f = C(null), g = w(() => {
591
- if (u.current && p.current && b.current && d.current && f.current) {
592
- const N = c === "dark" ? "#fff" : "#000";
593
- u.current.style.backgroundColor = N, u.current.style.width = "100%", u.current.style.height = "3px", u.current.style.transform = "", p.current.style.opacity = "1", p.current.style.backgroundColor = N, b.current.style.opacity = "1", b.current.style.backgroundColor = N, d.current.style.backgroundColor = N, d.current.style.width = "100%", d.current.style.height = "3px", d.current.style.transform = "", f.current.style.color = N, f.current.classList.remove("after:content-['close']"), f.current.classList.remove("after:ml-0.5"), f.current.classList.add("after:content-['menu']"), f.current.classList.add("after:-ml-0.5"), i.current = !0;
686
+ }, ut = (n) => {
687
+ const { isOverlay: t, onOverlayClick: s } = n;
688
+ return /* @__PURE__ */ r.jsx("button", { type: "button", className: `fixed inset-0 z-2147483640 cursor-default bg-black/50 transition-opacity duration-500 ${t ? "opacity-100" : "pointer-events-none opacity-0"}`, onClick: s });
689
+ }, dt = (n) => {
690
+ const { open: t, onMenuOpen: s, onMenuClose: a, theme: l } = n, o = T(t), c = T(null), h = T(null), p = T(null), f = T(null), d = T(null), w = k(() => {
691
+ if (c.current && h.current && p.current && f.current && d.current) {
692
+ const N = l === "dark" ? "#fff" : "#000";
693
+ c.current.style.backgroundColor = N, c.current.style.width = "100%", c.current.style.height = "3px", c.current.style.transform = "", h.current.style.opacity = "1", h.current.style.backgroundColor = N, p.current.style.opacity = "1", p.current.style.backgroundColor = N, f.current.style.backgroundColor = N, f.current.style.width = "100%", f.current.style.height = "3px", f.current.style.transform = "", d.current.style.color = N, d.current.classList.remove("after:content-['close']"), d.current.classList.remove("after:ml-0.5"), d.current.classList.add("after:content-['menu']"), d.current.classList.add("after:-ml-0.5"), o.current = !0;
594
694
  }
595
- }, [c]), j = w(() => {
596
- u.current && p.current && b.current && d.current && f.current && (u.current.style.backgroundColor = "#fff", u.current.style.width = "32px", u.current.style.height = "4px", u.current.style.transform = "translateY(9px) rotate(-45deg)", p.current.style.opacity = "0", b.current.style.opacity = "0", d.current.style.backgroundColor = "#fff", d.current.style.width = "32px", d.current.style.height = "4px", d.current.style.transform = "translateY(-9px) rotate(45deg)", f.current.style.color = "#fff", f.current.classList.remove("after:content-['menu']"), f.current.classList.remove("after:-ml-0.5"), f.current.classList.add("after:content-['close']"), f.current.classList.add("after:ml-0.5"), i.current = !1);
597
- }, []), x = w(() => {
598
- g(), a && a();
599
- }, [g, a]), S = w(() => {
600
- j(), o && o();
601
- }, [j, o]), s = w(() => {
602
- i.current ? S() : x();
603
- }, [x, S]), m = w((N) => {
695
+ }, [l]), v = k(() => {
696
+ c.current && h.current && p.current && f.current && d.current && (c.current.style.backgroundColor = "#fff", c.current.style.width = "32px", c.current.style.height = "4px", c.current.style.transform = "translateY(9px) rotate(-45deg)", h.current.style.opacity = "0", p.current.style.opacity = "0", f.current.style.backgroundColor = "#fff", f.current.style.width = "32px", f.current.style.height = "4px", f.current.style.transform = "translateY(-9px) rotate(45deg)", d.current.style.color = "#fff", d.current.classList.remove("after:content-['menu']"), d.current.classList.remove("after:-ml-0.5"), d.current.classList.add("after:content-['close']"), d.current.classList.add("after:ml-0.5"), o.current = !1);
697
+ }, []), S = k(() => {
698
+ w(), a && a();
699
+ }, [w, a]), C = k(() => {
700
+ v(), s && s();
701
+ }, [v, s]), i = k(() => {
702
+ o.current ? C() : S();
703
+ }, [S, C]), m = k((N) => {
604
704
  N.currentTarget.blur();
605
- }, []), _ = w((N) => {
705
+ }, []), M = k((N) => {
606
706
  N.preventDefault();
607
707
  }, []);
608
- return L(() => {
609
- r ? g() : j();
610
- }, [r, g, j]), /* @__PURE__ */ t.jsxs("button", { type: "button", "data-aqmb-menu-switch": !0, className: "aiquants-menu-switch fixed z-2147483647 inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden", onClick: s, onFocus: m, onMouseDown: _, tabIndex: -1, children: [
611
- /* @__PURE__ */ t.jsx("span", { className: "absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none", ref: u }),
612
- /* @__PURE__ */ t.jsx("span", { className: "absolute top-1.5 left-0 box-border inline-block h-[3px] w-full select-none", ref: p }),
613
- /* @__PURE__ */ t.jsx("span", { className: "absolute top-3 left-0 box-border inline-block h-[3px] w-full select-none", ref: b }),
614
- /* @__PURE__ */ t.jsx("span", { className: "absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none", ref: d }),
615
- /* @__PURE__ */ t.jsx("div", { className: "absolute w-full text-xs after:mt-2 after:block", ref: f })
708
+ return $(() => {
709
+ t ? w() : v();
710
+ }, [t, w, v]), /* @__PURE__ */ r.jsxs("button", { type: "button", "data-aqmb-menu-switch": !0, className: "aiquants-menu-switch inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden", onClick: i, onFocus: m, onMouseDown: M, tabIndex: -1, children: [
711
+ /* @__PURE__ */ r.jsx("span", { className: "absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none", ref: c }),
712
+ /* @__PURE__ */ r.jsx("span", { className: "absolute top-1.5 left-0 box-border inline-block h-[3px] w-full select-none", ref: h }),
713
+ /* @__PURE__ */ r.jsx("span", { className: "absolute top-3 left-0 box-border inline-block h-[3px] w-full select-none", ref: p }),
714
+ /* @__PURE__ */ r.jsx("span", { className: "absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none", ref: f }),
715
+ /* @__PURE__ */ r.jsx("div", { className: "absolute w-full text-xs after:mt-2 after:block", ref: d })
616
716
  ] });
617
- }, fe = typeof window < "u" ? pe : L, rt = (n) => {
618
- const { menuList: r, menuHeader: o, onClickSignout: a, isMenuhide: c, theme: i, toggleTheme: u, onMenuNavigate: p, onPinChange: b, pinnedSubmenuIds: d, initialPinnedSubmenuIds: f, onSubmenuPinChange: g, closeOnEscape: j = "auto" } = n, [x, S] = z(() => {
717
+ }, ne = typeof window < "u" ? xe : $, bt = (n) => {
718
+ const {
719
+ menuList: t,
720
+ menuHeader: s,
721
+ onClickSignout: a,
722
+ isMenuhide: l,
723
+ isMenuHide: o,
724
+ theme: c,
725
+ toggleTheme: h,
726
+ onMenuNavigate: p,
727
+ isPinned: f,
728
+ pinnedWidth: d = 240,
729
+ onPinChange: w,
730
+ pinnedSubmenuIds: v,
731
+ initialPinnedSubmenuIds: S,
732
+ onSubmenuPinChange: C,
733
+ closeOnEscape: i = "auto"
734
+ } = n, m = o ?? l ?? !1, [M, N] = J(() => {
619
735
  try {
620
736
  return localStorage.getItem("aiquants-menu-pinned") === "true";
621
737
  } catch {
622
738
  return !1;
623
739
  }
624
- }), [s, m] = z(x), [_, N] = z(() => {
625
- if (f)
626
- return f;
740
+ }), j = f !== void 0 ? f : M, [I, L] = J(j);
741
+ $(() => {
742
+ j && L(!0);
743
+ }, [j]);
744
+ const [z, B] = J(() => {
745
+ if (S)
746
+ return S;
627
747
  try {
628
- const k = localStorage.getItem("aiquants-submenu-pinned");
629
- if (k) {
630
- const E = JSON.parse(k);
748
+ const x = localStorage.getItem("aiquants-submenu-pinned");
749
+ if (x) {
750
+ const E = JSON.parse(x);
631
751
  if (Array.isArray(E))
632
- return E.filter((R) => typeof R == "number");
752
+ return E.filter((A) => typeof A == "number");
633
753
  }
634
754
  } catch {
635
755
  }
636
756
  return [];
637
- }), Y = d !== void 0 ? d : _, F = w(
638
- (k) => {
639
- const E = d !== void 0 ? d : _, R = E.includes(k) ? E.filter((U) => U !== k) : [...E, k];
640
- if (d === void 0) {
641
- N(R);
757
+ }), Q = v !== void 0 ? v : z, D = k(
758
+ (x) => {
759
+ const E = v !== void 0 ? v : z, A = E.includes(x) ? E.filter((U) => U !== x) : [...E, x];
760
+ if (v === void 0) {
761
+ B(A);
642
762
  try {
643
- localStorage.setItem("aiquants-submenu-pinned", JSON.stringify(R));
763
+ localStorage.setItem("aiquants-submenu-pinned", JSON.stringify(A));
644
764
  } catch {
645
765
  }
646
766
  }
647
- g && g(R);
767
+ C && C(A);
648
768
  },
649
- [d, _, g]
650
- );
651
- fe(() => {
652
- const k = x ? "250px" : "0px";
653
- document.documentElement.style.setProperty("--aiquants-menu-pinned-width", k), b?.(x);
654
- }, [x, b]), fe(() => () => {
655
- document.documentElement.style.setProperty("--aiquants-menu-pinned-width", "0px");
769
+ [v, z, C]
770
+ ), Y = T(w);
771
+ ne(() => {
772
+ Y.current = w;
773
+ }, [w]), ne(() => {
774
+ const x = j ? d : 0, E = `${x}px`;
775
+ document.documentElement.style.setProperty("--aiquants-menu-pinned-width", E), de(j, x);
776
+ }, [j, d]), ne(() => () => {
777
+ document.documentElement.style.setProperty("--aiquants-menu-pinned-width", "0px"), de(!1, 0);
656
778
  }, []);
657
- const V = w(() => {
658
- m(!0);
659
- }, []), P = w(() => {
660
- m(!1), S(!1);
661
- try {
662
- localStorage.removeItem("aiquants-menu-pinned");
663
- } catch {
779
+ const X = k(() => {
780
+ L(!0);
781
+ }, []), R = k(() => {
782
+ if (L(!1), f === void 0) {
783
+ N(!1);
784
+ try {
785
+ localStorage.removeItem("aiquants-menu-pinned");
786
+ } catch {
787
+ }
664
788
  }
665
- }, []), H = w(() => {
666
- S((k) => {
667
- const E = !k;
668
- if (E)
669
- try {
670
- localStorage.setItem("aiquants-menu-pinned", "true");
671
- } catch {
672
- }
673
- else
674
- try {
675
- localStorage.removeItem("aiquants-menu-pinned");
676
- } catch {
677
- }
678
- return E;
679
- });
680
- }, []), W = w(
681
- (k) => {
682
- p && p(k), x || m(!1);
789
+ Y.current?.(!1, 0);
790
+ }, [f]), F = k(() => {
791
+ const x = !j, E = x ? d : 0;
792
+ if (f === void 0) {
793
+ N(x);
794
+ try {
795
+ x ? localStorage.setItem("aiquants-menu-pinned", "true") : localStorage.removeItem("aiquants-menu-pinned");
796
+ } catch {
797
+ }
798
+ }
799
+ Y.current?.(x, E);
800
+ }, [j, f, d]), K = k(
801
+ (x) => {
802
+ p && p(x), j || L(!1);
683
803
  },
684
- [p, x]
685
- ), T = w(
686
- (k) => {
687
- k.key === "Escape" && P();
804
+ [p, j]
805
+ ), O = k(
806
+ (x) => {
807
+ x.key === "Escape" && R();
688
808
  },
689
- [P]
690
- ), q = j === !0 || j === "auto" && !x;
691
- return L(() => (s && q ? window.addEventListener("keydown", T, { passive: !0 }) : window.removeEventListener("keydown", T), () => {
692
- window.removeEventListener("keydown", T);
693
- }), [s, q, T]), c ? null : /* @__PURE__ */ t.jsxs("div", { className: `aiquants-menu-bar ${i}`, children: [
694
- /* @__PURE__ */ t.jsx(Ke, { onMenuClose: P, onMenuOpen: V, open: !s, theme: i }),
695
- /* @__PURE__ */ t.jsx(
696
- Qe,
809
+ [R]
810
+ ), H = i === !0 || i === "auto" && !j;
811
+ return $(() => (I && H ? window.addEventListener("keydown", O) : window.removeEventListener("keydown", O), () => {
812
+ window.removeEventListener("keydown", O);
813
+ }), [I, H, O]), m ? null : /* @__PURE__ */ r.jsxs("div", { className: `aiquants-menu-bar ${c}`, children: [
814
+ /* @__PURE__ */ r.jsx(dt, { onMenuClose: R, onMenuOpen: X, open: !I, theme: c }),
815
+ /* @__PURE__ */ r.jsx(
816
+ ct,
697
817
  {
698
- menuList: r,
699
- menuHeader: o,
818
+ menuList: t,
819
+ menuHeader: s,
700
820
  onClickSignout: a,
701
- onMenuSelected: W,
702
- open: s,
703
- theme: i,
704
- toggleTheme: u,
705
- isPinned: x,
706
- onTogglePin: H,
707
- pinnedSubmenuIds: Y,
708
- onToggleSubmenuPin: F
821
+ onMenuSelected: K,
822
+ open: I,
823
+ theme: c,
824
+ toggleTheme: h,
825
+ isPinned: j,
826
+ onTogglePin: F,
827
+ pinnedSubmenuIds: Q,
828
+ onToggleSubmenuPin: D
709
829
  }
710
830
  ),
711
- /* @__PURE__ */ t.jsx(Xe, { isOverlay: s && !x, onOverlayClick: P })
831
+ /* @__PURE__ */ r.jsx(ut, { isOverlay: I && !j, onOverlayClick: R })
712
832
  ] });
713
833
  };
714
834
  export {
715
- Se as DefaultLink,
716
- rt as MenuBar,
717
- nt as SessionInfo
835
+ Ye as DefaultLink,
836
+ se as MENU_PIN_CHANGE_EVENT,
837
+ bt as MenuBar,
838
+ mt as SessionInfo,
839
+ de as dispatchMenuPinChange,
840
+ ve as getInitialPinState,
841
+ He as subscribeMenuPinChange,
842
+ pt as useMenuPinState
718
843
  };