@aiquants/menu-bar 1.13.0 → 1.14.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,12 +1,12 @@
1
- import de, { useMemo as Z, useState as Y, useRef as E, useEffect as A, useCallback as y, useLayoutEffect as fe } from "react";
2
- import { Link as me, Lock as he, Download as pe, BarChart as xe, Table as be, FileText as G, Pin as ge, PinOff as ve } from "lucide-react";
3
- import { useLocation as ye, Link as ee } from "react-router-dom";
1
+ import fe, { useMemo as Z, useState as Y, useRef as E, useEffect as A, useCallback as y, useLayoutEffect as me } from "react";
2
+ import { Link as he, Lock as pe, Download as xe, BarChart as be, Table as ge, FileText as G, Pin as ve, PinOff as ye } from "lucide-react";
3
+ import { useLocation as ke, Link as re } from "react-router-dom";
4
4
  var P = { exports: {} }, R = {};
5
5
  var J;
6
- function ke() {
6
+ function we() {
7
7
  if (J) return R;
8
8
  J = 1;
9
- var n = /* @__PURE__ */ Symbol.for("react.transitional.element"), t = /* @__PURE__ */ Symbol.for("react.fragment");
9
+ var t = /* @__PURE__ */ Symbol.for("react.transitional.element"), n = /* @__PURE__ */ Symbol.for("react.fragment");
10
10
  function s(l, c, d) {
11
11
  var u = null;
12
12
  if (d !== void 0 && (u = "" + d), c.key !== void 0 && (u = "" + c.key), "key" in c) {
@@ -15,23 +15,23 @@ function ke() {
15
15
  h !== "key" && (d[h] = c[h]);
16
16
  } else d = c;
17
17
  return c = d.ref, {
18
- $$typeof: n,
18
+ $$typeof: t,
19
19
  type: l,
20
20
  key: u,
21
21
  ref: c !== void 0 ? c : null,
22
22
  props: d
23
23
  };
24
24
  }
25
- return R.Fragment = t, R.jsx = s, R.jsxs = s, R;
25
+ return R.Fragment = n, R.jsx = s, R.jsxs = s, R;
26
26
  }
27
27
  var C = {};
28
28
  var B;
29
- function we() {
29
+ function je() {
30
30
  return B || (B = 1, process.env.NODE_ENV !== "production" && (function() {
31
- function n(e) {
31
+ function t(e) {
32
32
  if (e == null) return null;
33
33
  if (typeof e == "function")
34
- return e.$$typeof === ie ? null : e.displayName || e.name || null;
34
+ return e.$$typeof === ce ? null : e.displayName || e.name || null;
35
35
  if (typeof e == "string") return e;
36
36
  switch (e) {
37
37
  case N:
@@ -40,11 +40,11 @@ function we() {
40
40
  return "Profiler";
41
41
  case j:
42
42
  return "StrictMode";
43
- case oe:
44
- return "Suspense";
45
43
  case se:
44
+ return "Suspense";
45
+ case ae:
46
46
  return "SuspenseList";
47
- case le:
47
+ case ie:
48
48
  return "Activity";
49
49
  }
50
50
  if (typeof e == "object")
@@ -53,30 +53,30 @@ function we() {
53
53
  ), e.$$typeof) {
54
54
  case T:
55
55
  return "Portal";
56
- case te:
56
+ case ne:
57
57
  return e.displayName || "Context";
58
58
  case S:
59
59
  return (e._context.displayName || "Context") + ".Consumer";
60
- case ne:
60
+ case oe:
61
61
  var o = e.render;
62
62
  return e = e.displayName, e || (e = o.displayName || o.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
63
- case ae:
64
- return o = e.displayName || null, o !== null ? o : n(e.type) || "Memo";
63
+ case le:
64
+ return o = e.displayName || null, o !== null ? o : t(e.type) || "Memo";
65
65
  case M:
66
66
  o = e._payload, e = e._init;
67
67
  try {
68
- return n(e(o));
68
+ return t(e(o));
69
69
  } catch {
70
70
  }
71
71
  }
72
72
  return null;
73
73
  }
74
- function t(e) {
74
+ function n(e) {
75
75
  return "" + e;
76
76
  }
77
77
  function s(e) {
78
78
  try {
79
- t(e);
79
+ n(e);
80
80
  var o = !1;
81
81
  } catch {
82
82
  o = !0;
@@ -88,7 +88,7 @@ function we() {
88
88
  o,
89
89
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
90
90
  g
91
- ), t(e);
91
+ ), n(e);
92
92
  }
93
93
  }
94
94
  function l(e) {
@@ -96,7 +96,7 @@ function we() {
96
96
  if (typeof e == "object" && e !== null && e.$$typeof === M)
97
97
  return "<...>";
98
98
  try {
99
- var o = n(e);
99
+ var o = t(e);
100
100
  return o ? "<" + o + ">" : "<...>";
101
101
  } catch {
102
102
  return "<...>";
@@ -110,7 +110,7 @@ function we() {
110
110
  return Error("react-stack-top-frame");
111
111
  }
112
112
  function u(e) {
113
- if (F.call(e, "key")) {
113
+ if (z.call(e, "key")) {
114
114
  var o = Object.getOwnPropertyDescriptor(e, "key").get;
115
115
  if (o && o.isReactWarning) return !1;
116
116
  }
@@ -118,7 +118,7 @@ function we() {
118
118
  }
119
119
  function h(e, o) {
120
120
  function m() {
121
- z || (z = !0, console.error(
121
+ F || (F = !0, console.error(
122
122
  "%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)",
123
123
  o
124
124
  ));
@@ -129,7 +129,7 @@ function we() {
129
129
  });
130
130
  }
131
131
  function x() {
132
- var e = n(this.type);
132
+ var e = t(this.type);
133
133
  return W[e] || (W[e] = !0, console.error(
134
134
  "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."
135
135
  )), e = this.props.ref, e !== void 0 ? e : null;
@@ -171,7 +171,7 @@ function we() {
171
171
  var v = o.children;
172
172
  if (v !== void 0)
173
173
  if (g)
174
- if (ce(v)) {
174
+ if (ue(v)) {
175
175
  for (g = 0; g < v.length; g++)
176
176
  a(v[g]);
177
177
  Object.freeze && Object.freeze(v);
@@ -180,10 +180,10 @@ function we() {
180
180
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
181
181
  );
182
182
  else a(v);
183
- if (F.call(o, "key")) {
184
- v = n(e);
185
- var _ = Object.keys(o).filter(function(ue) {
186
- return ue !== "key";
183
+ if (z.call(o, "key")) {
184
+ v = t(e);
185
+ var _ = Object.keys(o).filter(function(de) {
186
+ return de !== "key";
187
187
  });
188
188
  g = 0 < _.length ? "{key: someKey, " + _.join(": ..., ") + ": ...}" : "{key: someKey}", V[v + g] || (_ = 0 < _.length ? "{" + _.join(": ..., ") + ": ...}" : "{}", console.error(
189
189
  `A props object containing a "key" prop is being spread into JSX:
@@ -221,7 +221,7 @@ React keys must be passed directly to JSX without using spread:
221
221
  function f(e) {
222
222
  return typeof e == "object" && e !== null && e.$$typeof === k;
223
223
  }
224
- var w = de, k = /* @__PURE__ */ Symbol.for("react.transitional.element"), T = /* @__PURE__ */ Symbol.for("react.portal"), N = /* @__PURE__ */ Symbol.for("react.fragment"), j = /* @__PURE__ */ Symbol.for("react.strict_mode"), b = /* @__PURE__ */ Symbol.for("react.profiler"), S = /* @__PURE__ */ Symbol.for("react.consumer"), te = /* @__PURE__ */ Symbol.for("react.context"), ne = /* @__PURE__ */ Symbol.for("react.forward_ref"), oe = /* @__PURE__ */ Symbol.for("react.suspense"), se = /* @__PURE__ */ Symbol.for("react.suspense_list"), ae = /* @__PURE__ */ Symbol.for("react.memo"), M = /* @__PURE__ */ Symbol.for("react.lazy"), le = /* @__PURE__ */ Symbol.for("react.activity"), ie = /* @__PURE__ */ Symbol.for("react.client.reference"), L = w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, F = Object.prototype.hasOwnProperty, ce = Array.isArray, I = console.createTask ? console.createTask : function() {
224
+ var w = fe, k = /* @__PURE__ */ Symbol.for("react.transitional.element"), T = /* @__PURE__ */ Symbol.for("react.portal"), N = /* @__PURE__ */ Symbol.for("react.fragment"), j = /* @__PURE__ */ Symbol.for("react.strict_mode"), b = /* @__PURE__ */ Symbol.for("react.profiler"), S = /* @__PURE__ */ Symbol.for("react.consumer"), ne = /* @__PURE__ */ Symbol.for("react.context"), oe = /* @__PURE__ */ Symbol.for("react.forward_ref"), se = /* @__PURE__ */ Symbol.for("react.suspense"), ae = /* @__PURE__ */ Symbol.for("react.suspense_list"), le = /* @__PURE__ */ Symbol.for("react.memo"), M = /* @__PURE__ */ Symbol.for("react.lazy"), ie = /* @__PURE__ */ Symbol.for("react.activity"), ce = /* @__PURE__ */ Symbol.for("react.client.reference"), L = w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, z = Object.prototype.hasOwnProperty, ue = Array.isArray, I = console.createTask ? console.createTask : function() {
225
225
  return null;
226
226
  };
227
227
  w = {
@@ -229,7 +229,7 @@ React keys must be passed directly to JSX without using spread:
229
229
  return e();
230
230
  }
231
231
  };
232
- var z, W = {}, U = w.react_stack_bottom_frame.bind(
232
+ var F, W = {}, U = w.react_stack_bottom_frame.bind(
233
233
  w,
234
234
  d
235
235
  )(), H = I(l(d)), V = {};
@@ -257,95 +257,95 @@ React keys must be passed directly to JSX without using spread:
257
257
  })()), C;
258
258
  }
259
259
  var Q;
260
- function je() {
261
- return Q || (Q = 1, process.env.NODE_ENV === "production" ? P.exports = ke() : P.exports = we()), P.exports;
260
+ function Ee() {
261
+ return Q || (Q = 1, process.env.NODE_ENV === "production" ? P.exports = we() : P.exports = je()), P.exports;
262
262
  }
263
- var r = je();
264
- const Ee = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2NiZDVlMSI+PHBhdGggZD0iTTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMCAyYy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00eiIvPjwvc3ZnPg==", Ne = ({ to: n, className: t, children: s }) => /* @__PURE__ */ r.jsx("a", { href: n, className: t, children: s }), Ie = (n) => {
265
- const { user: t, LinkComponent: s = Ne } = n;
266
- return /* @__PURE__ */ r.jsx("div", { className: "max-h-20 max-w-52", children: /* @__PURE__ */ r.jsx("div", { className: "flex grow flex-col", children: t ? /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
263
+ var r = Ee();
264
+ const Ne = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2NiZDVlMSI+PHBhdGggZD0iTTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMCAyYy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00eiIvPjwvc3ZnPg==", _e = ({ to: t, className: n, children: s }) => /* @__PURE__ */ r.jsx("a", { href: t, className: n, children: s }), qe = (t) => {
265
+ const { user: n, LinkComponent: s = _e } = t;
266
+ return /* @__PURE__ */ r.jsx("div", { className: "max-h-20 max-w-52", children: /* @__PURE__ */ r.jsx("div", { className: "flex grow flex-col", children: n ? /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
267
267
  /* @__PURE__ */ r.jsxs("div", { className: "flex flex-row", children: [
268
- /* @__PURE__ */ r.jsx("div", { className: "aiquants-session-photo m-1 h-14 w-14 p-0.5", children: /* @__PURE__ */ r.jsx("img", { className: "object-contain", src: t.photo || Ee, "aria-label": "profile photo" }) }),
268
+ /* @__PURE__ */ r.jsx("div", { className: "aiquants-session-photo m-1 h-14 w-14 p-0.5", children: /* @__PURE__ */ r.jsx("img", { className: "object-contain", src: n.photo || Ne, "aria-label": "profile photo" }) }),
269
269
  /* @__PURE__ */ r.jsxs("div", { className: "mx-1 flex flex-col", children: [
270
270
  /* @__PURE__ */ r.jsx(s, { className: "aiquants-session-link my-1 rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィールを編集" }),
271
271
  /* @__PURE__ */ r.jsx(s, { className: "aiquants-session-link rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィール" }),
272
272
  /* @__PURE__ */ r.jsx(s, { className: "aiquants-session-link my-1 rounded-lg px-2 text-center text-xs", to: "https://myaccount.google.com/", children: "Google Account" })
273
273
  ] })
274
274
  ] }),
275
- /* @__PURE__ */ r.jsx("div", { className: "aiquants-session-info mb-1 min-h-[1em] w-full rounded-r-lg px-2 py-0.5 text-xs", children: t.displayName })
275
+ /* @__PURE__ */ r.jsx("div", { className: "aiquants-session-info mb-1 min-h-[1em] w-full rounded-r-lg px-2 py-0.5 text-xs", children: n.displayName })
276
276
  ] }) : /* @__PURE__ */ r.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: "ログインはこちら" }) }) });
277
- }, re = new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/), _e = {
277
+ }, te = new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/), Te = {
278
278
  report: G,
279
279
  slip: G,
280
- table: be,
281
- chart: xe,
282
- download: pe,
283
- lock: he,
284
- href: me
285
- }, Te = ({ mark: n, children: t }) => {
286
- const s = n ? _e[n] : void 0;
280
+ table: ge,
281
+ chart: be,
282
+ download: xe,
283
+ lock: pe,
284
+ href: he
285
+ }, Re = ({ mark: t, children: n }) => {
286
+ const s = t ? Te[t] : void 0;
287
287
  return s ? /* @__PURE__ */ r.jsxs("div", { className: "flex flex-nowrap items-center", children: [
288
288
  /* @__PURE__ */ r.jsx(s, { className: "h-4 w-4" }),
289
- /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-link mx-1 hover:underline", children: t })
290
- ] }) : /* @__PURE__ */ r.jsx("span", { className: "mx-1 text-sky-600 hover:underline dark:text-sky-400", children: t });
291
- }, $ = (n, t) => t ? {
289
+ /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-link mx-1 hover:underline", children: n })
290
+ ] }) : /* @__PURE__ */ r.jsx("span", { className: "mx-1 text-sky-600 hover:underline dark:text-sky-400", children: n });
291
+ }, $ = (t, n) => n ? {
292
292
  menu: {
293
- id: n.id,
294
- title: n.title,
295
- href: n.href
293
+ id: t.id,
294
+ title: t.title,
295
+ href: t.href
296
296
  },
297
297
  submenu: {
298
- subid: t.subid,
299
- title: t.title,
300
- href: t.href,
301
- mark: t.mark,
302
- new: t.new
298
+ subid: n.subid,
299
+ title: n.title,
300
+ href: n.href,
301
+ mark: n.mark,
302
+ new: n.new
303
303
  }
304
304
  } : {
305
305
  menu: {
306
- id: n.id,
307
- title: n.title,
308
- href: n.href
306
+ id: t.id,
307
+ title: t.title,
308
+ href: t.href
309
309
  }
310
- }, Re = ({ item: n, parentMenu: t, onMenuSelected: s }) => {
311
- if (n.href === "separator")
310
+ }, Ce = ({ item: t, parentMenu: n, onMenuSelected: s }) => {
311
+ if (t.href === "separator")
312
312
  return /* @__PURE__ */ r.jsx("hr", { className: "aiquants-menu-separator mx-2 my-1 h-px" });
313
- const l = /* @__PURE__ */ r.jsx(Te, { mark: n.mark, children: n.title }), c = {
313
+ const l = /* @__PURE__ */ r.jsx(Re, { mark: t.mark, children: t.title }), c = {
314
314
  onClick: () => {
315
- s && s($(t, n));
315
+ s && s($(n, t));
316
316
  }
317
317
  };
318
- return n.new ? /* @__PURE__ */ r.jsx("a", { href: n.href, rel: "noopener noreferrer", target: "_blank", ...c, children: l }) : re.test(n.href) ? /* @__PURE__ */ r.jsx("a", { href: n.href, ...c, children: l }) : /* @__PURE__ */ r.jsx(ee, { to: n.href, ...c, children: l });
319
- }, X = (n, t) => {
320
- const s = t !== "/" && t.endsWith("/") ? t.slice(0, -1) : t;
321
- for (const l of n) {
322
- if (l.href === s)
318
+ return t.new ? /* @__PURE__ */ r.jsx("a", { href: t.href, rel: "noopener noreferrer", target: "_blank", ...c, children: l }) : te.test(t.href) ? /* @__PURE__ */ r.jsx("a", { href: t.href, ...c, children: l }) : /* @__PURE__ */ r.jsx(re, { to: t.href, ...c, children: l });
319
+ }, X = (t) => t ? t.split(/[?#]/)[0].replace(/(?!^\/)\/$/, "") : "", K = (t, n) => {
320
+ const s = n !== "/" && n.endsWith("/") ? n.slice(0, -1) : n;
321
+ for (const l of t) {
322
+ if (X(l.href) === s)
323
323
  return l.id;
324
324
  if (l.submenu) {
325
325
  for (const c of l.submenu)
326
- if (c.href === s)
326
+ if (X(c.href) === s)
327
327
  return l.id;
328
328
  }
329
329
  }
330
330
  return null;
331
- }, Ce = (n) => {
332
- const { menuList: t, onMenuSelected: s } = n;
331
+ }, Se = (t) => {
332
+ const { menuList: n, onMenuSelected: s } = t;
333
333
  let l = "";
334
334
  try {
335
- l = ye().pathname;
335
+ l = ke().pathname;
336
336
  } catch {
337
337
  typeof window < "u" && (l = window.location.pathname);
338
338
  }
339
- const c = Z(() => X(t, l), [t, l]), [d, u] = Y(c), h = E(l), x = E(c !== null);
339
+ const c = Z(() => K(n, l), [n, l]), [d, u] = Y(c), h = E(l), x = E(c !== null);
340
340
  A(() => {
341
- if (h.current !== l && (h.current = l, x.current = !1, u(null)), !x.current) {
342
- const a = X(t, l);
341
+ if (h.current !== l && (h.current = l, x.current = !1), !x.current) {
342
+ const a = K(n, l);
343
343
  a !== null && (u(a), x.current = !0);
344
344
  }
345
- }, [l, t]);
345
+ }, [l, n]);
346
346
  const i = y((a) => {
347
347
  u((f) => f === a ? null : a);
348
- }, []), p = Z(() => /* @__PURE__ */ r.jsx(r.Fragment, { children: t.map((a) => /* @__PURE__ */ r.jsx("div", { children: a.href ? /* @__PURE__ */ r.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: re.test(a.href) ? /* @__PURE__ */ r.jsx(
348
+ }, []), p = Z(() => /* @__PURE__ */ r.jsx(r.Fragment, { children: n.map((a) => /* @__PURE__ */ r.jsx("div", { children: a.href ? /* @__PURE__ */ r.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: te.test(a.href) ? /* @__PURE__ */ r.jsx(
349
349
  "a",
350
350
  {
351
351
  href: a.href,
@@ -355,7 +355,7 @@ const Ee = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj
355
355
  children: /* @__PURE__ */ r.jsx("span", { className: "aiquants-menu-link hover:underline", children: a.title })
356
356
  }
357
357
  ) : /* @__PURE__ */ r.jsx(
358
- ee,
358
+ re,
359
359
  {
360
360
  to: a.href,
361
361
  onClick: () => {
@@ -377,14 +377,14 @@ const Ee = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj
377
377
  children: /* @__PURE__ */ r.jsx("span", { children: a.title })
378
378
  }
379
379
  ),
380
- /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-submenu pointer-events-auto my-1 mr-1 ml-4 rounded p-2 shadow-md", children: a.submenu.map((f) => /* @__PURE__ */ r.jsx("div", { className: "menu-accordion-container block w-full whitespace-nowrap text-sm", children: /* @__PURE__ */ r.jsx(Re, { item: f, parentMenu: a, onMenuSelected: s }) }, f.subid)) })
381
- ] }) }, a.id)) }), [t, s, d, i]);
380
+ /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-submenu pointer-events-auto my-1 mr-1 ml-4 rounded p-2 shadow-md", children: a.submenu.map((f) => /* @__PURE__ */ r.jsx("div", { className: "menu-accordion-container block w-full whitespace-nowrap text-sm", children: /* @__PURE__ */ r.jsx(Ce, { item: f, parentMenu: a, onMenuSelected: s }) }, f.subid)) })
381
+ ] }) }, a.id)) }), [n, s, d, i]);
382
382
  return /* @__PURE__ */ r.jsx("div", { className: "hidden-scrollbar h-0 grow overflow-y-scroll", children: p });
383
- }, Se = (n) => {
384
- const { menuList: t, menuHeader: s, open: l, onMenuSelected: c, onClickSignout: d, theme: u, toggleTheme: h, isPinned: x, onTogglePin: i } = n;
383
+ }, Oe = (t) => {
384
+ const { menuList: n, menuHeader: s, open: l, onMenuSelected: c, onClickSignout: d, theme: u, toggleTheme: h, isPinned: x, onTogglePin: i } = t;
385
385
  return /* @__PURE__ */ r.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 ${l ? "aiquants-menu-translate-x-0" : "aiquants-menu-translate-x-250"}`, children: [
386
386
  /* @__PURE__ */ r.jsx("div", { className: "flex h-[100px] flex-col", children: s }),
387
- /* @__PURE__ */ r.jsx("div", { className: "flex grow flex-col", children: /* @__PURE__ */ r.jsx(Ce, { menuList: t, onMenuSelected: c }) }),
387
+ /* @__PURE__ */ r.jsx("div", { className: "flex grow flex-col", children: /* @__PURE__ */ r.jsx(Se, { menuList: n, onMenuSelected: c }) }),
388
388
  /* @__PURE__ */ r.jsx("div", { className: "px-4 pt-2 pb-4", children: /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
389
389
  /* @__PURE__ */ r.jsx(
390
390
  "button",
@@ -393,7 +393,7 @@ const Ee = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj
393
393
  onClick: i,
394
394
  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 ${x ? "bg-amber-500/90 hover:bg-amber-600" : "border border-white/15 bg-white/10 hover:bg-white/20"}`,
395
395
  title: x ? "ピン留め解除" : "ピン留め",
396
- children: x ? /* @__PURE__ */ r.jsx(ge, { size: 14 }) : /* @__PURE__ */ r.jsx(ve, { size: 14 })
396
+ children: x ? /* @__PURE__ */ r.jsx(ve, { size: 14 }) : /* @__PURE__ */ r.jsx(ye, { size: 14 })
397
397
  }
398
398
  ),
399
399
  /* @__PURE__ */ r.jsxs(
@@ -420,11 +420,11 @@ const Ee = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj
420
420
  )
421
421
  ] }) })
422
422
  ] });
423
- }, Oe = (n) => {
424
- const { isOverlay: t, onOverlayClick: s } = n;
425
- 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 });
426
- }, Pe = (n) => {
427
- const { open: t, onMenuOpen: s, onMenuClose: l, theme: c } = n, d = E(t), u = E(null), h = E(null), x = E(null), i = E(null), p = E(null), a = y(() => {
423
+ }, Pe = (t) => {
424
+ const { isOverlay: n, onOverlayClick: s } = t;
425
+ return /* @__PURE__ */ r.jsx("button", { type: "button", className: `fixed inset-0 z-2147483640 cursor-default bg-black/50 transition-opacity duration-500 ${n ? "opacity-100" : "pointer-events-none opacity-0"}`, onClick: s });
426
+ }, Ae = (t) => {
427
+ const { open: n, onMenuOpen: s, onMenuClose: l, theme: c } = t, d = E(n), u = E(null), h = E(null), x = E(null), i = E(null), p = E(null), a = y(() => {
428
428
  if (u.current && h.current && x.current && i.current && p.current) {
429
429
  const b = c === "dark" ? "#fff" : "#000";
430
430
  u.current.style.backgroundColor = b, u.current.style.width = "100%", u.current.style.height = "3px", u.current.style.transform = "", h.current.style.opacity = "1", h.current.style.backgroundColor = b, x.current.style.opacity = "1", x.current.style.backgroundColor = b, i.current.style.backgroundColor = b, i.current.style.width = "100%", i.current.style.height = "3px", i.current.style.transform = "", p.current.style.color = b, p.current.classList.remove("after:content-['close']"), p.current.classList.remove("after:ml-0.5"), p.current.classList.add("after:content-['menu']"), p.current.classList.add("after:-ml-0.5"), d.current = !0;
@@ -443,26 +443,26 @@ const Ee = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj
443
443
  b.preventDefault();
444
444
  }, []);
445
445
  return A(() => {
446
- t ? a() : f();
447
- }, [t, a, f]), /* @__PURE__ */ r.jsxs("button", { type: "button", className: "aiquants-menu-switch fixed z-2147483647 inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden", onClick: T, onFocus: N, onMouseDown: j, tabIndex: -1, children: [
446
+ n ? a() : f();
447
+ }, [n, a, f]), /* @__PURE__ */ r.jsxs("button", { type: "button", className: "aiquants-menu-switch fixed z-2147483647 inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden", onClick: T, onFocus: N, onMouseDown: j, tabIndex: -1, children: [
448
448
  /* @__PURE__ */ r.jsx("span", { className: "absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none", ref: u }),
449
449
  /* @__PURE__ */ r.jsx("span", { className: "absolute top-1.5 left-0 box-border inline-block h-[3px] w-full select-none", ref: h }),
450
450
  /* @__PURE__ */ r.jsx("span", { className: "absolute top-3 left-0 box-border inline-block h-[3px] w-full select-none", ref: x }),
451
451
  /* @__PURE__ */ r.jsx("span", { className: "absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none", ref: i }),
452
452
  /* @__PURE__ */ r.jsx("div", { className: "absolute w-full text-xs after:mt-2 after:block", ref: p })
453
453
  ] });
454
- }, K = typeof window < "u" ? fe : A, qe = (n) => {
455
- const { menuList: t, menuHeader: s, onClickSignout: l, isMenuhide: c, theme: d, toggleTheme: u, onMenuNavigate: h, onPinChange: x } = n, [i, p] = Y(() => {
454
+ }, ee = typeof window < "u" ? me : A, De = (t) => {
455
+ const { menuList: n, menuHeader: s, onClickSignout: l, isMenuhide: c, theme: d, toggleTheme: u, onMenuNavigate: h, onPinChange: x } = t, [i, p] = Y(() => {
456
456
  try {
457
457
  return localStorage.getItem("aiquants-menu-pinned") === "true";
458
458
  } catch {
459
459
  return !1;
460
460
  }
461
461
  }), [a, f] = Y(i);
462
- K(() => {
462
+ ee(() => {
463
463
  const b = i ? "250px" : "0px";
464
464
  document.documentElement.style.setProperty("--aiquants-menu-pinned-width", b), x?.(i);
465
- }, [i, x]), K(() => () => {
465
+ }, [i, x]), ee(() => () => {
466
466
  document.documentElement.style.setProperty("--aiquants-menu-pinned-width", "0px");
467
467
  }, []);
468
468
  const w = y(() => {
@@ -503,13 +503,13 @@ const Ee = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj
503
503
  return A(() => (a ? window.addEventListener("keydown", j, { passive: !0 }) : window.removeEventListener("keydown", j), () => {
504
504
  window.removeEventListener("keydown", j);
505
505
  }), [a, j]), c ? null : /* @__PURE__ */ r.jsxs("div", { className: `aiquants-menu-bar ${d}`, children: [
506
- /* @__PURE__ */ r.jsx(Pe, { onMenuClose: k, onMenuOpen: w, open: !a, theme: d }),
507
- /* @__PURE__ */ r.jsx(Se, { menuList: t, menuHeader: s, onClickSignout: l, onMenuSelected: N, open: a, theme: d, toggleTheme: u, isPinned: i, onTogglePin: T }),
508
- /* @__PURE__ */ r.jsx(Oe, { isOverlay: a && !i, onOverlayClick: k })
506
+ /* @__PURE__ */ r.jsx(Ae, { onMenuClose: k, onMenuOpen: w, open: !a, theme: d }),
507
+ /* @__PURE__ */ r.jsx(Oe, { menuList: n, menuHeader: s, onClickSignout: l, onMenuSelected: N, open: a, theme: d, toggleTheme: u, isPinned: i, onTogglePin: T }),
508
+ /* @__PURE__ */ r.jsx(Pe, { isOverlay: a && !i, onOverlayClick: k })
509
509
  ] });
510
510
  };
511
511
  export {
512
- Ne as DefaultLink,
513
- qe as MenuBar,
514
- Ie as SessionInfo
512
+ _e as DefaultLink,
513
+ De as MenuBar,
514
+ qe as SessionInfo
515
515
  };
package/dist/index.umd.js CHANGED
@@ -1,6 +1,6 @@
1
- (function(k,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("react"),require("lucide-react"),require("react-router-dom")):typeof define=="function"&&define.amd?define(["exports","react","lucide-react","react-router-dom"],a):(k=typeof globalThis<"u"?globalThis:k||self,a(k["@aiquants/menu-bar"]={},k.React,k["lucide-react"],k.ReactRouterDOM))})(this,(function(k,a,j,A){"use strict";var O={exports:{}},C={};var W;function ee(){if(W)return C;W=1;var r=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function o(i,u,f){var d=null;if(f!==void 0&&(d=""+f),u.key!==void 0&&(d=""+u.key),"key"in u){f={};for(var p in u)p!=="key"&&(f[p]=u[p])}else f=u;return u=f.ref,{$$typeof:r,type:i,key:d,ref:u!==void 0?u:null,props:f}}return C.Fragment=n,C.jsx=o,C.jsxs=o,C}var R={};var U;function te(){return U||(U=1,process.env.NODE_ENV!=="production"&&(function(){function r(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ve?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case T:return"Fragment";case g:return"Profiler";case N:return"StrictMode";case pe:return"Suspense";case xe:return"SuspenseList";case ge:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case S:return"Portal";case me:return e.displayName||"Context";case P:return(e._context.displayName||"Context")+".Consumer";case he:var s=e.render;return e=e.displayName,e||(e=s.displayName||s.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case be:return s=e.displayName||null,s!==null?s:r(e.type)||"Memo";case I:s=e._payload,e=e._init;try{return r(e(s))}catch{}}return null}function n(e){return""+e}function o(e){try{n(e);var s=!1}catch{s=!0}if(s){s=console;var h=s.error,v=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return h.call(s,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",v),n(e)}}function i(e){if(e===T)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===I)return"<...>";try{var s=r(e);return s?"<"+s+">":"<...>"}catch{return"<...>"}}function u(){var e=D.A;return e===null?null:e.getOwner()}function f(){return Error("react-stack-top-frame")}function d(e){if(B.call(e,"key")){var s=Object.getOwnPropertyDescriptor(e,"key").get;if(s&&s.isReactWarning)return!1}return e.key!==void 0}function p(e,s){function h(){Q||(Q=!0,console.error("%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)",s))}h.isReactWarning=!0,Object.defineProperty(e,"key",{get:h,configurable:!0})}function b(){var e=r(this.type);return X[e]||(X[e]=!0,console.error("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.")),e=this.props.ref,e!==void 0?e:null}function c(e,s,h,v,M,F){var y=h.ref;return e={$$typeof:w,type:e,key:s,props:h,_owner:v},(y!==void 0?y:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:b}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:M}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:F}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function x(e,s,h,v,M,F){var y=s.children;if(y!==void 0)if(v)if(ye(y)){for(v=0;v<y.length;v++)l(y[v]);Object.freeze&&Object.freeze(y)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else l(y);if(B.call(s,"key")){y=r(e);var _=Object.keys(s).filter(function(ke){return ke!=="key"});v=0<_.length?"{key: someKey, "+_.join(": ..., ")+": ...}":"{key: someKey}",$[y+v]||(_=0<_.length?"{"+_.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ (function(k,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("react"),require("lucide-react"),require("react-router-dom")):typeof define=="function"&&define.amd?define(["exports","react","lucide-react","react-router-dom"],a):(k=typeof globalThis<"u"?globalThis:k||self,a(k["@aiquants/menu-bar"]={},k.React,k["lucide-react"],k.ReactRouterDOM))})(this,(function(k,a,j,A){"use strict";var O={exports:{}},C={};var W;function te(){if(W)return C;W=1;var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function o(i,u,f){var d=null;if(f!==void 0&&(d=""+f),u.key!==void 0&&(d=""+u.key),"key"in u){f={};for(var p in u)p!=="key"&&(f[p]=u[p])}else f=u;return u=f.ref,{$$typeof:n,type:i,key:d,ref:u!==void 0?u:null,props:f}}return C.Fragment=r,C.jsx=o,C.jsxs=o,C}var R={};var U;function ne(){return U||(U=1,process.env.NODE_ENV!=="production"&&(function(){function n(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ye?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case T:return"Fragment";case g:return"Profiler";case N:return"StrictMode";case xe:return"Suspense";case be:return"SuspenseList";case ve:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case S:return"Portal";case he:return e.displayName||"Context";case P:return(e._context.displayName||"Context")+".Consumer";case pe:var s=e.render;return e=e.displayName,e||(e=s.displayName||s.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ge:return s=e.displayName||null,s!==null?s:n(e.type)||"Memo";case I:s=e._payload,e=e._init;try{return n(e(s))}catch{}}return null}function r(e){return""+e}function o(e){try{r(e);var s=!1}catch{s=!0}if(s){s=console;var h=s.error,v=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return h.call(s,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",v),r(e)}}function i(e){if(e===T)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===I)return"<...>";try{var s=n(e);return s?"<"+s+">":"<...>"}catch{return"<...>"}}function u(){var e=D.A;return e===null?null:e.getOwner()}function f(){return Error("react-stack-top-frame")}function d(e){if(Q.call(e,"key")){var s=Object.getOwnPropertyDescriptor(e,"key").get;if(s&&s.isReactWarning)return!1}return e.key!==void 0}function p(e,s){function h(){X||(X=!0,console.error("%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)",s))}h.isReactWarning=!0,Object.defineProperty(e,"key",{get:h,configurable:!0})}function b(){var e=n(this.type);return q[e]||(q[e]=!0,console.error("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.")),e=this.props.ref,e!==void 0?e:null}function c(e,s,h,v,M,F){var y=h.ref;return e={$$typeof:w,type:e,key:s,props:h,_owner:v},(y!==void 0?y:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:b}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:M}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:F}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function x(e,s,h,v,M,F){var y=s.children;if(y!==void 0)if(v)if(ke(y)){for(v=0;v<y.length;v++)l(y[v]);Object.freeze&&Object.freeze(y)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else l(y);if(Q.call(s,"key")){y=n(e);var _=Object.keys(s).filter(function(we){return we!=="key"});v=0<_.length?"{key: someKey, "+_.join(": ..., ")+": ...}":"{key: someKey}",ee[y+v]||(_=0<_.length?"{"+_.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
5
5
  let props = %s;
6
- <%s key={someKey} {...props} />`,v,y,_,y),$[y+v]=!0)}if(y=null,h!==void 0&&(o(h),y=""+h),d(s)&&(o(s.key),y=""+s.key),"key"in s){h={};for(var z in s)z!=="key"&&(h[z]=s[z])}else h=s;return y&&p(h,typeof e=="function"?e.displayName||e.name||"Unknown":e),c(e,y,h,u(),M,F)}function l(e){m(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===I&&(e._payload.status==="fulfilled"?m(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function m(e){return typeof e=="object"&&e!==null&&e.$$typeof===w}var E=a,w=Symbol.for("react.transitional.element"),S=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),N=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),P=Symbol.for("react.consumer"),me=Symbol.for("react.context"),he=Symbol.for("react.forward_ref"),pe=Symbol.for("react.suspense"),xe=Symbol.for("react.suspense_list"),be=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),ge=Symbol.for("react.activity"),ve=Symbol.for("react.client.reference"),D=E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,B=Object.prototype.hasOwnProperty,ye=Array.isArray,Y=console.createTask?console.createTask:function(){return null};E={react_stack_bottom_frame:function(e){return e()}};var Q,X={},q=E.react_stack_bottom_frame.bind(E,f)(),K=Y(i(f)),$={};R.Fragment=T,R.jsx=function(e,s,h){var v=1e4>D.recentlyCreatedOwnerStacks++;return x(e,s,h,!1,v?Error("react-stack-top-frame"):q,v?Y(i(e)):K)},R.jsxs=function(e,s,h){var v=1e4>D.recentlyCreatedOwnerStacks++;return x(e,s,h,!0,v?Error("react-stack-top-frame"):q,v?Y(i(e)):K)}})()),R}var H;function ne(){return H||(H=1,process.env.NODE_ENV==="production"?O.exports=ee():O.exports=te()),O.exports}var t=ne();const re="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2NiZDVlMSI+PHBhdGggZD0iTTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMCAyYy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00eiIvPjwvc3ZnPg==",V=({to:r,className:n,children:o})=>t.jsx("a",{href:r,className:n,children:o}),se=r=>{const{user:n,LinkComponent:o=V}=r;return t.jsx("div",{className:"max-h-20 max-w-52",children:t.jsx("div",{className:"flex grow flex-col",children:n?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-row",children:[t.jsx("div",{className:"aiquants-session-photo m-1 h-14 w-14 p-0.5",children:t.jsx("img",{className:"object-contain",src:n.photo||re,"aria-label":"profile photo"})}),t.jsxs("div",{className:"mx-1 flex flex-col",children:[t.jsx(o,{className:"aiquants-session-link my-1 rounded-lg px-2 text-center text-xs",to:"/",children:"プロフィールを編集"}),t.jsx(o,{className:"aiquants-session-link rounded-lg px-2 text-center text-xs",to:"/",children:"プロフィール"}),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"})]})]}),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:n.displayName})]}):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:"ログインはこちら"})})})},Z=new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/),oe={report:j.FileText,slip:j.FileText,table:j.Table,chart:j.BarChart,download:j.Download,lock:j.Lock,href:j.Link},ae=({mark:r,children:n})=>{const o=r?oe[r]:void 0;return o?t.jsxs("div",{className:"flex flex-nowrap items-center",children:[t.jsx(o,{className:"h-4 w-4"}),t.jsx("div",{className:"aiquants-menu-link mx-1 hover:underline",children:n})]}):t.jsx("span",{className:"mx-1 text-sky-600 hover:underline dark:text-sky-400",children:n})},L=(r,n)=>n?{menu:{id:r.id,title:r.title,href:r.href},submenu:{subid:n.subid,title:n.title,href:n.href,mark:n.mark,new:n.new}}:{menu:{id:r.id,title:r.title,href:r.href}},le=({item:r,parentMenu:n,onMenuSelected:o})=>{if(r.href==="separator")return t.jsx("hr",{className:"aiquants-menu-separator mx-2 my-1 h-px"});const i=t.jsx(ae,{mark:r.mark,children:r.title}),u={onClick:()=>{o&&o(L(n,r))}};return r.new?t.jsx("a",{href:r.href,rel:"noopener noreferrer",target:"_blank",...u,children:i}):Z.test(r.href)?t.jsx("a",{href:r.href,...u,children:i}):t.jsx(A.Link,{to:r.href,...u,children:i})},G=(r,n)=>{const o=n!=="/"&&n.endsWith("/")?n.slice(0,-1):n;for(const i of r){if(i.href===o)return i.id;if(i.submenu){for(const u of i.submenu)if(u.href===o)return i.id}}return null},ie=r=>{const{menuList:n,onMenuSelected:o}=r;let i="";try{i=A.useLocation().pathname}catch{typeof window<"u"&&(i=window.location.pathname)}const u=a.useMemo(()=>G(n,i),[n,i]),[f,d]=a.useState(u),p=a.useRef(i),b=a.useRef(u!==null);a.useEffect(()=>{if(p.current!==i&&(p.current=i,b.current=!1,d(null)),!b.current){const l=G(n,i);l!==null&&(d(l),b.current=!0)}},[i,n]);const c=a.useCallback(l=>{d(m=>m===l?null:l)},[]),x=a.useMemo(()=>t.jsx(t.Fragment,{children:n.map(l=>t.jsx("div",{children:l.href?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:Z.test(l.href)?t.jsx("a",{href:l.href,onClick:()=>{o&&o(L(l))},children:t.jsx("span",{className:"aiquants-menu-link hover:underline",children:l.title})}):t.jsx(A.Link,{to:l.href,onClick:()=>{o&&o(L(l))},children:t.jsx("span",{className:"aiquants-menu-link hover:underline",children:l.title})})}):t.jsxs("details",{className:"menu-accordion-details",open:l.id===f,children:[t.jsx("summary",{className:"aiquants-menu-list-item menu-accordion-summary relative mb-1 ml-1 h-full list-none rounded-l-2xl p-2 align-middle text-sm outline-none before:-mt-1 before:mr-2 before:inline-block before:h-4 before:w-4 before:rounded-full before:align-middle before:content-['']",onClick:m=>{m.preventDefault(),c(l.id)},onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),c(l.id))},children:t.jsx("span",{children:l.title})}),t.jsx("div",{className:"aiquants-menu-submenu pointer-events-auto my-1 mr-1 ml-4 rounded p-2 shadow-md",children:l.submenu.map(m=>t.jsx("div",{className:"menu-accordion-container block w-full whitespace-nowrap text-sm",children:t.jsx(le,{item:m,parentMenu:l,onMenuSelected:o})},m.subid))})]})},l.id))}),[n,o,f,c]);return t.jsx("div",{className:"hidden-scrollbar h-0 grow overflow-y-scroll",children:x})},ce=r=>{const{menuList:n,menuHeader:o,open:i,onMenuSelected:u,onClickSignout:f,theme:d,toggleTheme:p,isPinned:b,onTogglePin:c}=r;return 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 ${i?"aiquants-menu-translate-x-0":"aiquants-menu-translate-x-250"}`,children:[t.jsx("div",{className:"flex h-[100px] flex-col",children:o}),t.jsx("div",{className:"flex grow flex-col",children:t.jsx(ie,{menuList:n,onMenuSelected:u})}),t.jsx("div",{className:"px-4 pt-2 pb-4",children:t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsx("button",{type:"button",onClick:c,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"}`,title:b?"ピン留め解除":"ピン留め",children:b?t.jsx(j.Pin,{size:14}):t.jsx(j.PinOff,{size:14})}),t.jsxs("button",{type:"button",onClick:p,className:"group relative flex flex-1 items-center gap-2 rounded-lg border border-white/15 bg-white/10 px-3 py-2 font-medium 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",children:[t.jsx("div",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-white/20 backdrop-blur-sm transition-all duration-300 group-hover:scale-110 group-hover:bg-white/30 dark:bg-gray-600/60 dark:group-hover:bg-gray-500/70",children:t.jsx("span",{className:"text-sm transition-transform duration-300 group-hover:scale-110",children:d==="dark"?"🌞":"🌙"})}),t.jsx("span",{className:"text-white transition-colors duration-300 group-hover:text-white/90 dark:text-gray-200 dark:group-hover:text-white",children:d==="dark"?"Light":"Dark"}),t.jsx("div",{className:"absolute inset-0 rounded-lg bg-gradient-to-r from-transparent via-white/5 to-transparent opacity-0 transition-opacity duration-300 group-hover:opacity-100 dark:via-gray-400/10"})]}),t.jsx("button",{type:"button",className:"aiquants-signout-button flex items-center justify-center 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",onClick:f,children:"サインアウト"})]})})]})},ue=r=>{const{isOverlay:n,onOverlayClick:o}=r;return t.jsx("button",{type:"button",className:`fixed inset-0 z-2147483640 cursor-default bg-black/50 transition-opacity duration-500 ${n?"opacity-100":"pointer-events-none opacity-0"}`,onClick:o})},de=r=>{const{open:n,onMenuOpen:o,onMenuClose:i,theme:u}=r,f=a.useRef(n),d=a.useRef(null),p=a.useRef(null),b=a.useRef(null),c=a.useRef(null),x=a.useRef(null),l=a.useCallback(()=>{if(d.current&&p.current&&b.current&&c.current&&x.current){const g=u==="dark"?"#fff":"#000";d.current.style.backgroundColor=g,d.current.style.width="100%",d.current.style.height="3px",d.current.style.transform="",p.current.style.opacity="1",p.current.style.backgroundColor=g,b.current.style.opacity="1",b.current.style.backgroundColor=g,c.current.style.backgroundColor=g,c.current.style.width="100%",c.current.style.height="3px",c.current.style.transform="",x.current.style.color=g,x.current.classList.remove("after:content-['close']"),x.current.classList.remove("after:ml-0.5"),x.current.classList.add("after:content-['menu']"),x.current.classList.add("after:-ml-0.5"),f.current=!0}},[u]),m=a.useCallback(()=>{d.current&&p.current&&b.current&&c.current&&x.current&&(d.current.style.backgroundColor="#fff",d.current.style.width="32px",d.current.style.height="4px",d.current.style.transform="translateY(9px) rotate(-45deg)",p.current.style.opacity="0",b.current.style.opacity="0",c.current.style.backgroundColor="#fff",c.current.style.width="32px",c.current.style.height="4px",c.current.style.transform="translateY(-9px) rotate(45deg)",x.current.style.color="#fff",x.current.classList.remove("after:content-['menu']"),x.current.classList.remove("after:-ml-0.5"),x.current.classList.add("after:content-['close']"),x.current.classList.add("after:ml-0.5"),f.current=!1)},[]),E=a.useCallback(()=>{l(),i&&i()},[l,i]),w=a.useCallback(()=>{m(),o&&o()},[m,o]),S=a.useCallback(()=>{f.current?w():E()},[E,w]),T=a.useCallback(g=>{g.currentTarget.blur()},[]),N=a.useCallback(g=>{g.preventDefault()},[]);return a.useEffect(()=>{n?l():m()},[n,l,m]),t.jsxs("button",{type:"button",className:"aiquants-menu-switch fixed z-2147483647 inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden",onClick:S,onFocus:T,onMouseDown:N,tabIndex:-1,children:[t.jsx("span",{className:"absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none",ref:d}),t.jsx("span",{className:"absolute top-1.5 left-0 box-border inline-block h-[3px] w-full select-none",ref:p}),t.jsx("span",{className:"absolute top-3 left-0 box-border inline-block h-[3px] w-full select-none",ref:b}),t.jsx("span",{className:"absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none",ref:c}),t.jsx("div",{className:"absolute w-full text-xs after:mt-2 after:block",ref:x})]})},J=typeof window<"u"?a.useLayoutEffect:a.useEffect,fe=r=>{const{menuList:n,menuHeader:o,onClickSignout:i,isMenuhide:u,theme:f,toggleTheme:d,onMenuNavigate:p,onPinChange:b}=r,[c,x]=a.useState(()=>{try{return localStorage.getItem("aiquants-menu-pinned")==="true"}catch{return!1}}),[l,m]=a.useState(c);J(()=>{const g=c?"250px":"0px";document.documentElement.style.setProperty("--aiquants-menu-pinned-width",g),b?.(c)},[c,b]),J(()=>()=>{document.documentElement.style.setProperty("--aiquants-menu-pinned-width","0px")},[]);const E=a.useCallback(()=>{m(!0)},[]),w=a.useCallback(()=>{m(!1),x(!1);try{localStorage.removeItem("aiquants-menu-pinned")}catch{}},[]),S=a.useCallback(()=>{x(g=>{const P=!g;if(P)try{localStorage.setItem("aiquants-menu-pinned","true")}catch{}else try{localStorage.removeItem("aiquants-menu-pinned")}catch{}return P})},[]),T=a.useCallback(g=>{p&&p(g),c||m(!1)},[p,c]),N=a.useCallback(g=>{if(g.key==="Escape")return w(),!1},[w]);return a.useEffect(()=>(l?window.addEventListener("keydown",N,{passive:!0}):window.removeEventListener("keydown",N),()=>{window.removeEventListener("keydown",N)}),[l,N]),u?null:t.jsxs("div",{className:`aiquants-menu-bar ${f}`,children:[t.jsx(de,{onMenuClose:w,onMenuOpen:E,open:!l,theme:f}),t.jsx(ce,{menuList:n,menuHeader:o,onClickSignout:i,onMenuSelected:T,open:l,theme:f,toggleTheme:d,isPinned:c,onTogglePin:S}),t.jsx(ue,{isOverlay:l&&!c,onOverlayClick:w})]})};k.DefaultLink=V,k.MenuBar=fe,k.SessionInfo=se,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})}));
6
+ <%s key={someKey} {...props} />`,v,y,_,y),ee[y+v]=!0)}if(y=null,h!==void 0&&(o(h),y=""+h),d(s)&&(o(s.key),y=""+s.key),"key"in s){h={};for(var z in s)z!=="key"&&(h[z]=s[z])}else h=s;return y&&p(h,typeof e=="function"?e.displayName||e.name||"Unknown":e),c(e,y,h,u(),M,F)}function l(e){m(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===I&&(e._payload.status==="fulfilled"?m(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function m(e){return typeof e=="object"&&e!==null&&e.$$typeof===w}var E=a,w=Symbol.for("react.transitional.element"),S=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),N=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),P=Symbol.for("react.consumer"),he=Symbol.for("react.context"),pe=Symbol.for("react.forward_ref"),xe=Symbol.for("react.suspense"),be=Symbol.for("react.suspense_list"),ge=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),ve=Symbol.for("react.activity"),ye=Symbol.for("react.client.reference"),D=E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Q=Object.prototype.hasOwnProperty,ke=Array.isArray,Y=console.createTask?console.createTask:function(){return null};E={react_stack_bottom_frame:function(e){return e()}};var X,q={},K=E.react_stack_bottom_frame.bind(E,f)(),$=Y(i(f)),ee={};R.Fragment=T,R.jsx=function(e,s,h){var v=1e4>D.recentlyCreatedOwnerStacks++;return x(e,s,h,!1,v?Error("react-stack-top-frame"):K,v?Y(i(e)):$)},R.jsxs=function(e,s,h){var v=1e4>D.recentlyCreatedOwnerStacks++;return x(e,s,h,!0,v?Error("react-stack-top-frame"):K,v?Y(i(e)):$)}})()),R}var H;function re(){return H||(H=1,process.env.NODE_ENV==="production"?O.exports=te():O.exports=ne()),O.exports}var t=re();const se="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2NiZDVlMSI+PHBhdGggZD0iTTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMCAyYy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00eiIvPjwvc3ZnPg==",V=({to:n,className:r,children:o})=>t.jsx("a",{href:n,className:r,children:o}),oe=n=>{const{user:r,LinkComponent:o=V}=n;return t.jsx("div",{className:"max-h-20 max-w-52",children:t.jsx("div",{className:"flex grow flex-col",children:r?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-row",children:[t.jsx("div",{className:"aiquants-session-photo m-1 h-14 w-14 p-0.5",children:t.jsx("img",{className:"object-contain",src:r.photo||se,"aria-label":"profile photo"})}),t.jsxs("div",{className:"mx-1 flex flex-col",children:[t.jsx(o,{className:"aiquants-session-link my-1 rounded-lg px-2 text-center text-xs",to:"/",children:"プロフィールを編集"}),t.jsx(o,{className:"aiquants-session-link rounded-lg px-2 text-center text-xs",to:"/",children:"プロフィール"}),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"})]})]}),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})]}):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:"ログインはこちら"})})})},Z=new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/),ae={report:j.FileText,slip:j.FileText,table:j.Table,chart:j.BarChart,download:j.Download,lock:j.Lock,href:j.Link},le=({mark:n,children:r})=>{const o=n?ae[n]:void 0;return o?t.jsxs("div",{className:"flex flex-nowrap items-center",children:[t.jsx(o,{className:"h-4 w-4"}),t.jsx("div",{className:"aiquants-menu-link mx-1 hover:underline",children:r})]}):t.jsx("span",{className:"mx-1 text-sky-600 hover:underline dark:text-sky-400",children:r})},L=(n,r)=>r?{menu:{id:n.id,title:n.title,href:n.href},submenu:{subid:r.subid,title:r.title,href:r.href,mark:r.mark,new:r.new}}:{menu:{id:n.id,title:n.title,href:n.href}},ie=({item:n,parentMenu:r,onMenuSelected:o})=>{if(n.href==="separator")return t.jsx("hr",{className:"aiquants-menu-separator mx-2 my-1 h-px"});const i=t.jsx(le,{mark:n.mark,children:n.title}),u={onClick:()=>{o&&o(L(r,n))}};return n.new?t.jsx("a",{href:n.href,rel:"noopener noreferrer",target:"_blank",...u,children:i}):Z.test(n.href)?t.jsx("a",{href:n.href,...u,children:i}):t.jsx(A.Link,{to:n.href,...u,children:i})},G=n=>n?n.split(/[?#]/)[0].replace(/(?!^\/)\/$/,""):"",J=(n,r)=>{const o=r!=="/"&&r.endsWith("/")?r.slice(0,-1):r;for(const i of n){if(G(i.href)===o)return i.id;if(i.submenu){for(const u of i.submenu)if(G(u.href)===o)return i.id}}return null},ce=n=>{const{menuList:r,onMenuSelected:o}=n;let i="";try{i=A.useLocation().pathname}catch{typeof window<"u"&&(i=window.location.pathname)}const u=a.useMemo(()=>J(r,i),[r,i]),[f,d]=a.useState(u),p=a.useRef(i),b=a.useRef(u!==null);a.useEffect(()=>{if(p.current!==i&&(p.current=i,b.current=!1),!b.current){const l=J(r,i);l!==null&&(d(l),b.current=!0)}},[i,r]);const c=a.useCallback(l=>{d(m=>m===l?null:l)},[]),x=a.useMemo(()=>t.jsx(t.Fragment,{children:r.map(l=>t.jsx("div",{children:l.href?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:Z.test(l.href)?t.jsx("a",{href:l.href,onClick:()=>{o&&o(L(l))},children:t.jsx("span",{className:"aiquants-menu-link hover:underline",children:l.title})}):t.jsx(A.Link,{to:l.href,onClick:()=>{o&&o(L(l))},children:t.jsx("span",{className:"aiquants-menu-link hover:underline",children:l.title})})}):t.jsxs("details",{className:"menu-accordion-details",open:l.id===f,children:[t.jsx("summary",{className:"aiquants-menu-list-item menu-accordion-summary relative mb-1 ml-1 h-full list-none rounded-l-2xl p-2 align-middle text-sm outline-none before:-mt-1 before:mr-2 before:inline-block before:h-4 before:w-4 before:rounded-full before:align-middle before:content-['']",onClick:m=>{m.preventDefault(),c(l.id)},onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),c(l.id))},children:t.jsx("span",{children:l.title})}),t.jsx("div",{className:"aiquants-menu-submenu pointer-events-auto my-1 mr-1 ml-4 rounded p-2 shadow-md",children:l.submenu.map(m=>t.jsx("div",{className:"menu-accordion-container block w-full whitespace-nowrap text-sm",children:t.jsx(ie,{item:m,parentMenu:l,onMenuSelected:o})},m.subid))})]})},l.id))}),[r,o,f,c]);return t.jsx("div",{className:"hidden-scrollbar h-0 grow overflow-y-scroll",children:x})},ue=n=>{const{menuList:r,menuHeader:o,open:i,onMenuSelected:u,onClickSignout:f,theme:d,toggleTheme:p,isPinned:b,onTogglePin:c}=n;return 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 ${i?"aiquants-menu-translate-x-0":"aiquants-menu-translate-x-250"}`,children:[t.jsx("div",{className:"flex h-[100px] flex-col",children:o}),t.jsx("div",{className:"flex grow flex-col",children:t.jsx(ce,{menuList:r,onMenuSelected:u})}),t.jsx("div",{className:"px-4 pt-2 pb-4",children:t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsx("button",{type:"button",onClick:c,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"}`,title:b?"ピン留め解除":"ピン留め",children:b?t.jsx(j.Pin,{size:14}):t.jsx(j.PinOff,{size:14})}),t.jsxs("button",{type:"button",onClick:p,className:"group relative flex flex-1 items-center gap-2 rounded-lg border border-white/15 bg-white/10 px-3 py-2 font-medium 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",children:[t.jsx("div",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-white/20 backdrop-blur-sm transition-all duration-300 group-hover:scale-110 group-hover:bg-white/30 dark:bg-gray-600/60 dark:group-hover:bg-gray-500/70",children:t.jsx("span",{className:"text-sm transition-transform duration-300 group-hover:scale-110",children:d==="dark"?"🌞":"🌙"})}),t.jsx("span",{className:"text-white transition-colors duration-300 group-hover:text-white/90 dark:text-gray-200 dark:group-hover:text-white",children:d==="dark"?"Light":"Dark"}),t.jsx("div",{className:"absolute inset-0 rounded-lg bg-gradient-to-r from-transparent via-white/5 to-transparent opacity-0 transition-opacity duration-300 group-hover:opacity-100 dark:via-gray-400/10"})]}),t.jsx("button",{type:"button",className:"aiquants-signout-button flex items-center justify-center 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",onClick:f,children:"サインアウト"})]})})]})},de=n=>{const{isOverlay:r,onOverlayClick:o}=n;return 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})},fe=n=>{const{open:r,onMenuOpen:o,onMenuClose:i,theme:u}=n,f=a.useRef(r),d=a.useRef(null),p=a.useRef(null),b=a.useRef(null),c=a.useRef(null),x=a.useRef(null),l=a.useCallback(()=>{if(d.current&&p.current&&b.current&&c.current&&x.current){const g=u==="dark"?"#fff":"#000";d.current.style.backgroundColor=g,d.current.style.width="100%",d.current.style.height="3px",d.current.style.transform="",p.current.style.opacity="1",p.current.style.backgroundColor=g,b.current.style.opacity="1",b.current.style.backgroundColor=g,c.current.style.backgroundColor=g,c.current.style.width="100%",c.current.style.height="3px",c.current.style.transform="",x.current.style.color=g,x.current.classList.remove("after:content-['close']"),x.current.classList.remove("after:ml-0.5"),x.current.classList.add("after:content-['menu']"),x.current.classList.add("after:-ml-0.5"),f.current=!0}},[u]),m=a.useCallback(()=>{d.current&&p.current&&b.current&&c.current&&x.current&&(d.current.style.backgroundColor="#fff",d.current.style.width="32px",d.current.style.height="4px",d.current.style.transform="translateY(9px) rotate(-45deg)",p.current.style.opacity="0",b.current.style.opacity="0",c.current.style.backgroundColor="#fff",c.current.style.width="32px",c.current.style.height="4px",c.current.style.transform="translateY(-9px) rotate(45deg)",x.current.style.color="#fff",x.current.classList.remove("after:content-['menu']"),x.current.classList.remove("after:-ml-0.5"),x.current.classList.add("after:content-['close']"),x.current.classList.add("after:ml-0.5"),f.current=!1)},[]),E=a.useCallback(()=>{l(),i&&i()},[l,i]),w=a.useCallback(()=>{m(),o&&o()},[m,o]),S=a.useCallback(()=>{f.current?w():E()},[E,w]),T=a.useCallback(g=>{g.currentTarget.blur()},[]),N=a.useCallback(g=>{g.preventDefault()},[]);return a.useEffect(()=>{r?l():m()},[r,l,m]),t.jsxs("button",{type:"button",className:"aiquants-menu-switch fixed z-2147483647 inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden",onClick:S,onFocus:T,onMouseDown:N,tabIndex:-1,children:[t.jsx("span",{className:"absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none",ref:d}),t.jsx("span",{className:"absolute top-1.5 left-0 box-border inline-block h-[3px] w-full select-none",ref:p}),t.jsx("span",{className:"absolute top-3 left-0 box-border inline-block h-[3px] w-full select-none",ref:b}),t.jsx("span",{className:"absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none",ref:c}),t.jsx("div",{className:"absolute w-full text-xs after:mt-2 after:block",ref:x})]})},B=typeof window<"u"?a.useLayoutEffect:a.useEffect,me=n=>{const{menuList:r,menuHeader:o,onClickSignout:i,isMenuhide:u,theme:f,toggleTheme:d,onMenuNavigate:p,onPinChange:b}=n,[c,x]=a.useState(()=>{try{return localStorage.getItem("aiquants-menu-pinned")==="true"}catch{return!1}}),[l,m]=a.useState(c);B(()=>{const g=c?"250px":"0px";document.documentElement.style.setProperty("--aiquants-menu-pinned-width",g),b?.(c)},[c,b]),B(()=>()=>{document.documentElement.style.setProperty("--aiquants-menu-pinned-width","0px")},[]);const E=a.useCallback(()=>{m(!0)},[]),w=a.useCallback(()=>{m(!1),x(!1);try{localStorage.removeItem("aiquants-menu-pinned")}catch{}},[]),S=a.useCallback(()=>{x(g=>{const P=!g;if(P)try{localStorage.setItem("aiquants-menu-pinned","true")}catch{}else try{localStorage.removeItem("aiquants-menu-pinned")}catch{}return P})},[]),T=a.useCallback(g=>{p&&p(g),c||m(!1)},[p,c]),N=a.useCallback(g=>{if(g.key==="Escape")return w(),!1},[w]);return a.useEffect(()=>(l?window.addEventListener("keydown",N,{passive:!0}):window.removeEventListener("keydown",N),()=>{window.removeEventListener("keydown",N)}),[l,N]),u?null:t.jsxs("div",{className:`aiquants-menu-bar ${f}`,children:[t.jsx(fe,{onMenuClose:w,onMenuOpen:E,open:!l,theme:f}),t.jsx(ue,{menuList:r,menuHeader:o,onClickSignout:i,onMenuSelected:T,open:l,theme:f,toggleTheme:d,isPinned:c,onTogglePin:S}),t.jsx(de,{isOverlay:l&&!c,onOverlayClick:w})]})};k.DefaultLink=V,k.MenuBar=me,k.SessionInfo=oe,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiquants/menu-bar",
3
- "version": "1.13.0",
3
+ "version": "1.14.0",
4
4
  "private": false,
5
5
  "description": "A React menu bar component with authentication support and theming",
6
6
  "keywords": [
@@ -39,8 +39,8 @@
39
39
  "npm": ">=8.0.0"
40
40
  },
41
41
  "peerDependencies": {
42
- "react": "^19.1.0",
43
- "react-dom": "^19.1.0",
42
+ "react": "^19.2.7",
43
+ "react-dom": "^19.2.7",
44
44
  "react-router-dom": "^7.7.1"
45
45
  },
46
46
  "devDependencies": {
@@ -53,8 +53,8 @@
53
53
  "jsdom": "^26.1.0",
54
54
  "lucide-react": "^0.561.0",
55
55
  "postcss": "^8.5.6",
56
- "react": "^19.2.3",
57
- "react-dom": "^19.2.3",
56
+ "react": "^19.2.7",
57
+ "react-dom": "^19.2.7",
58
58
  "react-router-dom": "^7.11.0",
59
59
  "rimraf": "^6.1.2",
60
60
  "tailwindcss": "^4.1.18",