@aiquants/menu-bar 0.3.0 → 0.5.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/contents/MenuContent.d.ts +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.es.js +48 -48
- package/dist/index.umd.js +1 -1
- package/dist/types/user.d.ts +2 -10
- package/package.json +11 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export type { LinkProps, SessionInfoProps } from './components/SessionInfo';
|
|
2
|
+
export { DefaultLink, SessionInfo } from './components/SessionInfo';
|
|
2
3
|
export type { IMenu, ISubmenu } from './contents/MenuList';
|
|
4
|
+
export { MenuBar } from './MenuBar';
|
|
3
5
|
export type { Theme } from './types';
|
|
4
|
-
export {
|
|
5
|
-
export type { SessionInfoProps, LinkProps } from './components/SessionInfo';
|
|
6
|
-
export type { GoogleUserProfile, UserPhoto } from './types/user';
|
|
6
|
+
export type { GoogleUserProfile } from './types/user';
|
package/dist/index.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import ie, {
|
|
1
|
+
import ie, { useState as V, useCallback as g, useMemo as ce, useRef as N, useEffect as X } from "react";
|
|
2
2
|
import { Link as B } from "react-router-dom";
|
|
3
3
|
import { Link as ue, Lock as de, Download as fe, BarChart as me, Table as xe, FileText as z } from "lucide-react";
|
|
4
4
|
var O = { exports: {} }, _ = {};
|
|
@@ -281,30 +281,19 @@ function be() {
|
|
|
281
281
|
return G || (G = 1, process.env.NODE_ENV === "production" ? O.exports = he() : O.exports = pe()), O.exports;
|
|
282
282
|
}
|
|
283
283
|
var r = be();
|
|
284
|
-
const ve = (o) => {
|
|
285
|
-
const {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
}, [
|
|
297
|
-
l.current ? S() : j();
|
|
298
|
-
}, [j, S]);
|
|
299
|
-
return V(() => {
|
|
300
|
-
a ? k() : b();
|
|
301
|
-
}, [a, k, b]), /* @__PURE__ */ r.jsxs("button", { type: "button", className: "fixed top-5 right-5 z-2147483648 inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden", onClick: R, children: [
|
|
302
|
-
/* @__PURE__ */ r.jsx("span", { className: "absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500", ref: i }),
|
|
303
|
-
/* @__PURE__ */ r.jsx("span", { className: "absolute top-[6px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500", ref: t }),
|
|
304
|
-
/* @__PURE__ */ r.jsx("span", { className: "absolute top-[12px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500", ref: c }),
|
|
305
|
-
/* @__PURE__ */ r.jsx("span", { className: "absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500", ref: p }),
|
|
306
|
-
/* @__PURE__ */ r.jsx("div", { className: "absolute w-full text-xs transition-all duration-500 after:mt-2 after:block", ref: d })
|
|
307
|
-
] });
|
|
284
|
+
const ve = ({ to: o, className: a, children: s }) => /* @__PURE__ */ r.jsx("a", { href: o, className: a, children: s }), Se = (o) => {
|
|
285
|
+
const { user: a, LinkComponent: s = ve } = o;
|
|
286
|
+
return /* @__PURE__ */ r.jsx("div", { className: "max-h-20 max-w-52", children: /* @__PURE__ */ r.jsx("div", { className: "flex grow flex-col", children: a ? /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
|
|
287
|
+
/* @__PURE__ */ r.jsxs("div", { className: "flex flex-row", children: [
|
|
288
|
+
/* @__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: a.photo, "aria-label": "profile photo" }) }),
|
|
289
|
+
/* @__PURE__ */ r.jsxs("div", { className: "mx-1 flex flex-col", children: [
|
|
290
|
+
/* @__PURE__ */ r.jsx(s, { className: "aiquants-session-link my-1 rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィールを編集" }),
|
|
291
|
+
/* @__PURE__ */ r.jsx(s, { className: "aiquants-session-link rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィール" }),
|
|
292
|
+
/* @__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" })
|
|
293
|
+
] })
|
|
294
|
+
] }),
|
|
295
|
+
/* @__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: a.displayName })
|
|
296
|
+
] }) : /* @__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: "ログインはこちら" }) }) });
|
|
308
297
|
}, H = new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/), ge = {
|
|
309
298
|
report: z,
|
|
310
299
|
slip: z,
|
|
@@ -327,7 +316,7 @@ const ve = (o) => {
|
|
|
327
316
|
};
|
|
328
317
|
return o.new ? /* @__PURE__ */ r.jsx("a", { href: o.href, rel: "noopener noreferrer", target: "_blank", ...f, children: s }) : H.test(o.href) ? /* @__PURE__ */ r.jsx("a", { href: o.href, ...f, children: s }) : /* @__PURE__ */ r.jsx(B, { to: o.href, ...f, children: s });
|
|
329
318
|
}, je = (o) => {
|
|
330
|
-
const { menuList: a, onMenuSelected: s } = o, [f, m] =
|
|
319
|
+
const { menuList: a, onMenuSelected: s } = o, [f, m] = V(null), l = g((t) => {
|
|
331
320
|
m((c) => c === t ? null : t);
|
|
332
321
|
}, []), i = ce(() => /* @__PURE__ */ r.jsx(r.Fragment, { children: a.map((t) => /* @__PURE__ */ r.jsx("div", { children: t.href ? /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-list-item before:-mt-1 relative mb-1 ml-1 h-full rounded-l-2xl p-2 align-middle text-sm before:mr-2 before:inline-block before:h-4 before:w-4 before:rounded-full before:align-middle before:content-['']", children: H.test(t.href) ? /* @__PURE__ */ r.jsx("a", { href: t.href, onClick: s, children: /* @__PURE__ */ r.jsx("span", { className: "aiquants-menu-link hover:underline", children: t.title }) }) : /* @__PURE__ */ r.jsx(B, { to: t.href, onClick: s, children: /* @__PURE__ */ r.jsx("span", { className: "aiquants-menu-link hover:underline", children: t.title }) }) }) : /* @__PURE__ */ r.jsxs("details", { className: "menu-accordion-details", open: t.id === f, children: [
|
|
333
322
|
/* @__PURE__ */ r.jsx(
|
|
@@ -356,9 +345,9 @@ const ve = (o) => {
|
|
|
356
345
|
{
|
|
357
346
|
type: "button",
|
|
358
347
|
onClick: t,
|
|
359
|
-
className: "group relative flex w-full items-center justify-center gap-3 rounded-xl border-2 border-white/20 bg-white/10
|
|
348
|
+
className: "group relative flex w-full items-center justify-center gap-3 rounded-xl border-2 border-white/20 bg-white/10 px-4 py-3 font-medium text-sm shadow-lg backdrop-blur-sm transition-all duration-300 hover:scale-[1.02] hover:border-white/30 hover:bg-white/20 hover:shadow-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/50 focus-visible:ring-offset-2 dark:border-gray-600/50 dark:bg-gray-800/80 dark:hover:border-gray-500/70 dark:hover:bg-gray-700/90",
|
|
360
349
|
children: [
|
|
361
|
-
/* @__PURE__ */ r.jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-full bg-white/20 backdrop-blur-sm transition-all duration-300 group-hover:
|
|
350
|
+
/* @__PURE__ */ r.jsx("div", { className: "flex h-6 w-6 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/50 dark:group-hover:bg-gray-500/70", children: /* @__PURE__ */ r.jsx("span", { className: "text-lg transition-transform duration-300 group-hover:scale-110", children: i === "dark" ? "🌞" : "🌙" }) }),
|
|
362
351
|
/* @__PURE__ */ r.jsx("span", { className: "text-white transition-colors duration-300 group-hover:text-white/90 dark:text-gray-200 dark:group-hover:text-white", children: i === "dark" ? "Light Mode" : "Dark Mode" }),
|
|
363
352
|
/* @__PURE__ */ r.jsx("div", { className: "absolute inset-0 rounded-xl 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" })
|
|
364
353
|
]
|
|
@@ -377,8 +366,32 @@ const ve = (o) => {
|
|
|
377
366
|
}, Ee = (o) => {
|
|
378
367
|
const { isOverlay: a, onOverlayClick: s } = o;
|
|
379
368
|
return /* @__PURE__ */ r.jsx("button", { type: "button", className: `fixed inset-0 z-2147483640 cursor-default bg-black/50 transition-opacity duration-500 ${a ? "opacity-100" : "pointer-events-none opacity-0"}`, onClick: s });
|
|
380
|
-
},
|
|
381
|
-
const {
|
|
369
|
+
}, Ne = (o) => {
|
|
370
|
+
const { open: a, onMenuOpen: s, onMenuClose: f, theme: m } = o, l = N(a), i = N(null), t = N(null), c = N(null), p = N(null), d = N(null), k = g(() => {
|
|
371
|
+
if (i.current && t.current && c.current && p.current && d.current) {
|
|
372
|
+
const w = m === "dark" ? "#fff" : "#000";
|
|
373
|
+
i.current.style.backgroundColor = w, i.current.style.width = "100%", i.current.style.height = "3px", i.current.style.transform = "", t.current.style.opacity = "1", t.current.style.backgroundColor = w, c.current.style.opacity = "1", c.current.style.backgroundColor = w, p.current.style.backgroundColor = w, p.current.style.width = "100%", p.current.style.height = "3px", p.current.style.transform = "", d.current.style.color = w, 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"), l.current = !0;
|
|
374
|
+
}
|
|
375
|
+
}, [m]), b = g(() => {
|
|
376
|
+
i.current && t.current && c.current && p.current && d.current && (i.current.style.backgroundColor = "#fff", i.current.style.width = "32px", i.current.style.height = "4px", i.current.style.transform = "translateY(9px) rotate(-45deg)", t.current.style.opacity = "0", c.current.style.opacity = "0", p.current.style.backgroundColor = "#fff", p.current.style.width = "32px", p.current.style.height = "4px", p.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"), l.current = !1);
|
|
377
|
+
}, []), j = g(() => {
|
|
378
|
+
k(), f && f();
|
|
379
|
+
}, [k, f]), S = g(() => {
|
|
380
|
+
b(), s && s();
|
|
381
|
+
}, [b, s]), R = g(() => {
|
|
382
|
+
l.current ? S() : j();
|
|
383
|
+
}, [j, S]);
|
|
384
|
+
return X(() => {
|
|
385
|
+
a ? k() : b();
|
|
386
|
+
}, [a, k, b]), /* @__PURE__ */ r.jsxs("button", { type: "button", className: "fixed top-5 right-5 z-2147483648 inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden", onClick: R, children: [
|
|
387
|
+
/* @__PURE__ */ r.jsx("span", { className: "absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500", ref: i }),
|
|
388
|
+
/* @__PURE__ */ r.jsx("span", { className: "absolute top-[6px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500", ref: t }),
|
|
389
|
+
/* @__PURE__ */ r.jsx("span", { className: "absolute top-[12px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500", ref: c }),
|
|
390
|
+
/* @__PURE__ */ r.jsx("span", { className: "absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500", ref: p }),
|
|
391
|
+
/* @__PURE__ */ r.jsx("div", { className: "absolute w-full text-xs transition-all duration-500 after:mt-2 after:block", ref: d })
|
|
392
|
+
] });
|
|
393
|
+
}, Oe = (o) => {
|
|
394
|
+
const { menuList: a, menuHeader: s, onClickSignout: f, isMenuhide: m, theme: l, toggleTheme: i } = o, [t, c] = V(!1), p = g(() => {
|
|
382
395
|
c(!0);
|
|
383
396
|
}, []), d = g(() => {
|
|
384
397
|
c(!1);
|
|
@@ -391,29 +404,16 @@ const ve = (o) => {
|
|
|
391
404
|
},
|
|
392
405
|
[d]
|
|
393
406
|
);
|
|
394
|
-
return
|
|
407
|
+
return X(() => (t ? window.addEventListener("keydown", b, { passive: !0 }) : window.removeEventListener("keydown", b), () => {
|
|
395
408
|
window.removeEventListener("keydown", b);
|
|
396
409
|
}), [t, b]), m ? /* @__PURE__ */ r.jsx(r.Fragment, {}) : /* @__PURE__ */ r.jsxs("div", { className: `aiquants-menu-bar ${l}`, children: [
|
|
397
|
-
/* @__PURE__ */ r.jsx(
|
|
410
|
+
/* @__PURE__ */ r.jsx(Ne, { onMenuClose: d, onMenuOpen: p, open: !t, theme: l }),
|
|
398
411
|
/* @__PURE__ */ r.jsx(we, { menuList: a, menuHeader: s, onClickSignout: f, onMenuSelected: k, open: t, theme: l, toggleTheme: i }),
|
|
399
412
|
/* @__PURE__ */ r.jsx(Ee, { isOverlay: t, onOverlayClick: d })
|
|
400
413
|
] });
|
|
401
|
-
}, Ne = ({ to: o, className: a, children: s }) => /* @__PURE__ */ r.jsx("a", { href: o, className: a, children: s }), Oe = (o) => {
|
|
402
|
-
const { user: a, LinkComponent: s = Ne } = o;
|
|
403
|
-
return /* @__PURE__ */ r.jsx("div", { className: "max-h-20 max-w-52", children: /* @__PURE__ */ r.jsx("div", { className: "flex grow flex-col", children: a ? /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
|
|
404
|
-
/* @__PURE__ */ r.jsxs("div", { className: "flex flex-row", children: [
|
|
405
|
-
/* @__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: a.photos[0].value, "aria-label": "profile photo" }) }),
|
|
406
|
-
/* @__PURE__ */ r.jsxs("div", { className: "mx-1 flex flex-col", children: [
|
|
407
|
-
/* @__PURE__ */ r.jsx(s, { className: "aiquants-session-link my-1 rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィールを編集" }),
|
|
408
|
-
/* @__PURE__ */ r.jsx(s, { className: "aiquants-session-link rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィール" }),
|
|
409
|
-
/* @__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" })
|
|
410
|
-
] })
|
|
411
|
-
] }),
|
|
412
|
-
/* @__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: a.displayName })
|
|
413
|
-
] }) : /* @__PURE__ */ r.jsx(r.Fragment, { children: /* @__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: "ログインはこちら" }) }) }) });
|
|
414
414
|
};
|
|
415
415
|
export {
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
416
|
+
ve as DefaultLink,
|
|
417
|
+
Oe as MenuBar,
|
|
418
|
+
Se as SessionInfo
|
|
419
419
|
};
|
package/dist/index.umd.js
CHANGED
|
@@ -19,4 +19,4 @@
|
|
|
19
19
|
<%s {...props} />
|
|
20
20
|
React keys must be passed directly to JSX without using spread:
|
|
21
21
|
let props = %s;
|
|
22
|
-
<%s key={someKey} {...props} />`,h,p,R,p),H[p+h]=!0)}if(p=null,d!==void 0&&(o(d),p=""+d),i(n)&&(o(n.key),p=""+n.key),"key"in n){d={};for(var I in n)I!=="key"&&(d[I]=n[I])}else d=n;return p&&t(d,typeof e=="function"?e.displayName||e.name||"Unknown":e),b(e,p,g,j,x(),d,M,L)}function y(e){typeof e=="object"&&e!==null&&e.$$typeof===E&&e._store&&(e._store.validated=1)}var v=l,E=Symbol.for("react.transitional.element"),O=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),N=Symbol.for("react.strict_mode"),ce=Symbol.for("react.profiler"),ie=Symbol.for("react.consumer"),ue=Symbol.for("react.context"),de=Symbol.for("react.forward_ref"),fe=Symbol.for("react.suspense"),me=Symbol.for("react.suspense_list"),xe=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),he=Symbol.for("react.activity"),pe=Symbol.for("react.client.reference"),A=v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J=Object.prototype.hasOwnProperty,be=Array.isArray,P=console.createTask?console.createTask:function(){return null};v={react_stack_bottom_frame:function(e){return e()}};var G,V={},B=v.react_stack_bottom_frame.bind(v,c)(),X=P(m(c)),H={};_.Fragment=C,_.jsx=function(e,n,d,h,j){var g=1e4>A.recentlyCreatedOwnerStacks++;return f(e,n,d,!1,h,j,g?Error("react-stack-top-frame"):B,g?P(m(e)):X)},_.jsxs=function(e,n,d,h,j){var g=1e4>A.recentlyCreatedOwnerStacks++;return f(e,n,d,!0,h,j,g?Error("react-stack-top-frame"):B,g?P(m(e)):X)}}()),_}var W;function K(){return W||(W=1,process.env.NODE_ENV==="production"?S.exports=Z():S.exports=Q()),S.exports}var r=K();const $=s=>{const{open:a,onMenuOpen:o,onMenuClose:m,theme:x}=s,c=l.useRef(a),i=l.useRef(null),t=l.useRef(null),u=l.useRef(null),b=l.useRef(null),f=l.useRef(null),y=l.useCallback(()=>{if(i.current&&t.current&&u.current&&b.current&&f.current){const N=x==="dark"?"#fff":"#000";i.current.style.backgroundColor=N,i.current.style.width="100%",i.current.style.height="3px",i.current.style.transform="",t.current.style.opacity="1",t.current.style.backgroundColor=N,u.current.style.opacity="1",u.current.style.backgroundColor=N,b.current.style.backgroundColor=N,b.current.style.width="100%",b.current.style.height="3px",b.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"),c.current=!0}},[x]),v=l.useCallback(()=>{i.current&&t.current&&u.current&&b.current&&f.current&&(i.current.style.backgroundColor="#fff",i.current.style.width="32px",i.current.style.height="4px",i.current.style.transform="translateY(9px) rotate(-45deg)",t.current.style.opacity="0",u.current.style.opacity="0",b.current.style.backgroundColor="#fff",b.current.style.width="32px",b.current.style.height="4px",b.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"),c.current=!1)},[]),E=l.useCallback(()=>{y(),m&&m()},[y,m]),O=l.useCallback(()=>{v(),o&&o()},[v,o]),C=l.useCallback(()=>{c.current?O():E()},[E,O]);return l.useEffect(()=>{a?y():v()},[a,y,v]),r.jsxs("button",{type:"button",className:"fixed top-5 right-5 z-2147483648 inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden",onClick:C,children:[r.jsx("span",{className:"absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500",ref:i}),r.jsx("span",{className:"absolute top-[6px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500",ref:t}),r.jsx("span",{className:"absolute top-[12px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500",ref:u}),r.jsx("span",{className:"absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500",ref:b}),r.jsx("div",{className:"absolute w-full text-xs transition-all duration-500 after:mt-2 after:block",ref:f})]})},z=new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/),ee={report:w.FileText,slip:w.FileText,table:w.Table,chart:w.BarChart,download:w.Download,lock:w.Lock,href:w.Link},re=({mark:s,children:a})=>{const o=s?ee[s]:void 0;return o?r.jsxs("div",{className:"flex flex-nowrap items-center",children:[r.jsx(o,{className:"h-4 w-4"}),r.jsx("div",{className:"aiquants-menu-link mx-1 hover:underline",children:a})]}):r.jsx("span",{className:"mx-1 text-sky-600 hover:underline dark:text-sky-400",children:a})},ne=({item:s,onMenuSelected:a})=>{if(s.href==="separator")return r.jsx("hr",{className:"aiquants-menu-separator mx-2 my-1 h-px"});const o=r.jsx(re,{mark:s.mark,children:s.title}),m={onClick:a};return s.new?r.jsx("a",{href:s.href,rel:"noopener noreferrer",target:"_blank",...m,children:o}):z.test(s.href)?r.jsx("a",{href:s.href,...m,children:o}):r.jsx(Y.Link,{to:s.href,...m,children:o})},te=s=>{const{menuList:a,onMenuSelected:o}=s,[m,x]=l.useState(null),c=l.useCallback(t=>{x(u=>u===t?null:t)},[]),i=l.useMemo(()=>r.jsx(r.Fragment,{children:a.map(t=>r.jsx("div",{children:t.href?r.jsx("div",{className:"aiquants-menu-list-item before:-mt-1 relative mb-1 ml-1 h-full rounded-l-2xl p-2 align-middle text-sm before:mr-2 before:inline-block before:h-4 before:w-4 before:rounded-full before:align-middle before:content-['']",children:z.test(t.href)?r.jsx("a",{href:t.href,onClick:o,children:r.jsx("span",{className:"aiquants-menu-link hover:underline",children:t.title})}):r.jsx(Y.Link,{to:t.href,onClick:o,children:r.jsx("span",{className:"aiquants-menu-link hover:underline",children:t.title})})}):r.jsxs("details",{className:"menu-accordion-details",open:t.id===m,children:[r.jsx("summary",{className:"aiquants-menu-list-item menu-accordion-summary before:-mt-1 relative mb-1 ml-1 h-full list-none rounded-l-2xl p-2 align-middle text-sm outline-none before:mr-2 before:inline-block before:h-4 before:w-4 before:rounded-full before:align-middle before:content-['']",onClick:u=>{u.preventDefault(),c(t.id)},onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),c(t.id))},children:r.jsx("span",{children:t.title})}),r.jsx("div",{className:"aiquants-menu-submenu pointer-events-auto my-1 mr-1 ml-4 rounded p-2 shadow-md",children:t.submenu.map(u=>r.jsx("div",{className:"menu-accordion-container block w-full whitespace-nowrap text-sm",children:r.jsx(ne,{item:u,onMenuSelected:o})},u.subid))})]})},t.id))}),[a,o,m,c]);return r.jsx("div",{className:"hidden-scrollbar h-0 grow overflow-y-scroll",children:i})},se=s=>{const{menuList:a,menuHeader:o,open:m,onMenuSelected:x,onClickSignout:c,theme:i,toggleTheme:t}=s;return r.jsxs("div",{className:`aiquants-menu-content fixed top-0 right-0 z-2147483642 flex min-h-screen w-[250px] select-none flex-col transition-transform duration-500 ${m?"aiquants-menu-translate-x-0":"aiquants-menu-translate-x-250"}`,children:[r.jsx("div",{className:"flex h-[100px] flex-col",children:o}),r.jsx("div",{className:"flex grow flex-col",children:r.jsx(te,{menuList:a,onMenuSelected:x})}),r.jsx("div",{className:"p-4",children:r.jsxs("button",{type:"button",onClick:t,className:"group relative flex w-full items-center justify-center gap-3 rounded-xl border-2 border-white/20 bg-white/10 backdrop-blur-sm px-4 py-3 text-sm font-medium shadow-lg transition-all duration-300 hover:border-white/30 hover:bg-white/20 hover:shadow-xl hover:scale-[1.02] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/50 focus-visible:ring-offset-2 dark:border-gray-600/50 dark:bg-gray-800/80 dark:hover:border-gray-500/70 dark:hover:bg-gray-700/90",children:[r.jsx("div",{className:"flex h-6 w-6 items-center justify-center rounded-full bg-white/20 backdrop-blur-sm transition-all duration-300 group-hover:bg-white/30 group-hover:scale-110 dark:bg-gray-600/50 dark:group-hover:bg-gray-500/70",children:r.jsx("span",{className:"text-lg transition-transform duration-300 group-hover:scale-110",children:i==="dark"?"🌞":"🌙"})}),r.jsx("span",{className:"text-white transition-colors duration-300 group-hover:text-white/90 dark:text-gray-200 dark:group-hover:text-white",children:i==="dark"?"Light Mode":"Dark Mode"}),r.jsx("div",{className:"absolute inset-0 rounded-xl 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"})]})}),r.jsx("div",{children:r.jsx("button",{type:"button",className:"aiquants-signout-button mx-2 my-5.5 rounded-lg px-5 py-2.5 font-medium text-sm text-white focus:outline-hidden focus:ring-4 focus:ring-blue-300",onClick:c,children:"サインアウト"})})]})},oe=s=>{const{isOverlay:a,onOverlayClick:o}=s;return r.jsx("button",{type:"button",className:`fixed inset-0 z-2147483640 cursor-default bg-black/50 transition-opacity duration-500 ${a?"opacity-100":"pointer-events-none opacity-0"}`,onClick:o})},ae=s=>{const{menuList:a,menuHeader:o,onClickSignout:m,isMenuhide:x,theme:c,toggleTheme:i}=s,[t,u]=l.useState(!1),b=l.useCallback(()=>{u(!0)},[]),f=l.useCallback(()=>{u(!1)},[]),y=l.useCallback(()=>{u(!1)},[]),v=l.useCallback(E=>{if(E.key==="Escape")return f(),!1},[f]);return l.useEffect(()=>(t?window.addEventListener("keydown",v,{passive:!0}):window.removeEventListener("keydown",v),()=>{window.removeEventListener("keydown",v)}),[t,v]),x?r.jsx(r.Fragment,{}):r.jsxs("div",{className:`aiquants-menu-bar ${c}`,children:[r.jsx($,{onMenuClose:f,onMenuOpen:b,open:!t,theme:c}),r.jsx(se,{menuList:a,menuHeader:o,onClickSignout:m,onMenuSelected:y,open:t,theme:c,toggleTheme:i}),r.jsx(oe,{isOverlay:t,onOverlayClick:f})]})},U=({to:s,className:a,children:o})=>r.jsx("a",{href:s,className:a,children:o}),le=s=>{const{user:a,LinkComponent:o=U}=s;return r.jsx("div",{className:"max-h-20 max-w-52",children:r.jsx("div",{className:"flex grow flex-col",children:a?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex flex-row",children:[r.jsx("div",{className:"aiquants-session-photo m-1 h-14 w-14 p-0.5",children:r.jsx("img",{className:"object-contain",src:a.photos[0].value,"aria-label":"profile photo"})}),r.jsxs("div",{className:"mx-1 flex flex-col",children:[r.jsx(o,{className:"aiquants-session-link my-1 rounded-lg px-2 text-center text-xs",to:"/",children:"プロフィールを編集"}),r.jsx(o,{className:"aiquants-session-link rounded-lg px-2 text-center text-xs",to:"/",children:"プロフィール"}),r.jsx(o,{className:"aiquants-session-link my-1 rounded-lg px-2 text-center text-xs",to:"https://myaccount.google.com/",children:"Google Account"})]})]}),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:a.displayName})]}):r.jsx(r.Fragment,{children: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:"ログインはこちら"})})})})};k.DefaultLink=U,k.MenuBar=ae,k.SessionInfo=le,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
|
22
|
+
<%s key={someKey} {...props} />`,h,p,R,p),H[p+h]=!0)}if(p=null,d!==void 0&&(o(d),p=""+d),i(n)&&(o(n.key),p=""+n.key),"key"in n){d={};for(var I in n)I!=="key"&&(d[I]=n[I])}else d=n;return p&&t(d,typeof e=="function"?e.displayName||e.name||"Unknown":e),b(e,p,g,j,x(),d,M,L)}function y(e){typeof e=="object"&&e!==null&&e.$$typeof===E&&e._store&&(e._store.validated=1)}var v=l,E=Symbol.for("react.transitional.element"),O=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),N=Symbol.for("react.strict_mode"),ce=Symbol.for("react.profiler"),ie=Symbol.for("react.consumer"),ue=Symbol.for("react.context"),de=Symbol.for("react.forward_ref"),fe=Symbol.for("react.suspense"),me=Symbol.for("react.suspense_list"),xe=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),he=Symbol.for("react.activity"),pe=Symbol.for("react.client.reference"),A=v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J=Object.prototype.hasOwnProperty,be=Array.isArray,P=console.createTask?console.createTask:function(){return null};v={react_stack_bottom_frame:function(e){return e()}};var G,V={},B=v.react_stack_bottom_frame.bind(v,c)(),X=P(m(c)),H={};_.Fragment=C,_.jsx=function(e,n,d,h,j){var g=1e4>A.recentlyCreatedOwnerStacks++;return f(e,n,d,!1,h,j,g?Error("react-stack-top-frame"):B,g?P(m(e)):X)},_.jsxs=function(e,n,d,h,j){var g=1e4>A.recentlyCreatedOwnerStacks++;return f(e,n,d,!0,h,j,g?Error("react-stack-top-frame"):B,g?P(m(e)):X)}}()),_}var W;function K(){return W||(W=1,process.env.NODE_ENV==="production"?S.exports=Z():S.exports=Q()),S.exports}var r=K();const z=({to:s,className:a,children:o})=>r.jsx("a",{href:s,className:a,children:o}),$=s=>{const{user:a,LinkComponent:o=z}=s;return r.jsx("div",{className:"max-h-20 max-w-52",children:r.jsx("div",{className:"flex grow flex-col",children:a?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex flex-row",children:[r.jsx("div",{className:"aiquants-session-photo m-1 h-14 w-14 p-0.5",children:r.jsx("img",{className:"object-contain",src:a.photo,"aria-label":"profile photo"})}),r.jsxs("div",{className:"mx-1 flex flex-col",children:[r.jsx(o,{className:"aiquants-session-link my-1 rounded-lg px-2 text-center text-xs",to:"/",children:"プロフィールを編集"}),r.jsx(o,{className:"aiquants-session-link rounded-lg px-2 text-center text-xs",to:"/",children:"プロフィール"}),r.jsx(o,{className:"aiquants-session-link my-1 rounded-lg px-2 text-center text-xs",to:"https://myaccount.google.com/",children:"Google Account"})]})]}),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:a.displayName})]}):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:"ログインはこちら"})})})},U=new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/),ee={report:w.FileText,slip:w.FileText,table:w.Table,chart:w.BarChart,download:w.Download,lock:w.Lock,href:w.Link},re=({mark:s,children:a})=>{const o=s?ee[s]:void 0;return o?r.jsxs("div",{className:"flex flex-nowrap items-center",children:[r.jsx(o,{className:"h-4 w-4"}),r.jsx("div",{className:"aiquants-menu-link mx-1 hover:underline",children:a})]}):r.jsx("span",{className:"mx-1 text-sky-600 hover:underline dark:text-sky-400",children:a})},ne=({item:s,onMenuSelected:a})=>{if(s.href==="separator")return r.jsx("hr",{className:"aiquants-menu-separator mx-2 my-1 h-px"});const o=r.jsx(re,{mark:s.mark,children:s.title}),m={onClick:a};return s.new?r.jsx("a",{href:s.href,rel:"noopener noreferrer",target:"_blank",...m,children:o}):U.test(s.href)?r.jsx("a",{href:s.href,...m,children:o}):r.jsx(Y.Link,{to:s.href,...m,children:o})},te=s=>{const{menuList:a,onMenuSelected:o}=s,[m,x]=l.useState(null),c=l.useCallback(t=>{x(u=>u===t?null:t)},[]),i=l.useMemo(()=>r.jsx(r.Fragment,{children:a.map(t=>r.jsx("div",{children:t.href?r.jsx("div",{className:"aiquants-menu-list-item before:-mt-1 relative mb-1 ml-1 h-full rounded-l-2xl p-2 align-middle text-sm before:mr-2 before:inline-block before:h-4 before:w-4 before:rounded-full before:align-middle before:content-['']",children:U.test(t.href)?r.jsx("a",{href:t.href,onClick:o,children:r.jsx("span",{className:"aiquants-menu-link hover:underline",children:t.title})}):r.jsx(Y.Link,{to:t.href,onClick:o,children:r.jsx("span",{className:"aiquants-menu-link hover:underline",children:t.title})})}):r.jsxs("details",{className:"menu-accordion-details",open:t.id===m,children:[r.jsx("summary",{className:"aiquants-menu-list-item menu-accordion-summary before:-mt-1 relative mb-1 ml-1 h-full list-none rounded-l-2xl p-2 align-middle text-sm outline-none before:mr-2 before:inline-block before:h-4 before:w-4 before:rounded-full before:align-middle before:content-['']",onClick:u=>{u.preventDefault(),c(t.id)},onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),c(t.id))},children:r.jsx("span",{children:t.title})}),r.jsx("div",{className:"aiquants-menu-submenu pointer-events-auto my-1 mr-1 ml-4 rounded p-2 shadow-md",children:t.submenu.map(u=>r.jsx("div",{className:"menu-accordion-container block w-full whitespace-nowrap text-sm",children:r.jsx(ne,{item:u,onMenuSelected:o})},u.subid))})]})},t.id))}),[a,o,m,c]);return r.jsx("div",{className:"hidden-scrollbar h-0 grow overflow-y-scroll",children:i})},se=s=>{const{menuList:a,menuHeader:o,open:m,onMenuSelected:x,onClickSignout:c,theme:i,toggleTheme:t}=s;return r.jsxs("div",{className:`aiquants-menu-content fixed top-0 right-0 z-2147483642 flex min-h-screen w-[250px] select-none flex-col transition-transform duration-500 ${m?"aiquants-menu-translate-x-0":"aiquants-menu-translate-x-250"}`,children:[r.jsx("div",{className:"flex h-[100px] flex-col",children:o}),r.jsx("div",{className:"flex grow flex-col",children:r.jsx(te,{menuList:a,onMenuSelected:x})}),r.jsx("div",{className:"p-4",children:r.jsxs("button",{type:"button",onClick:t,className:"group relative flex w-full items-center justify-center gap-3 rounded-xl border-2 border-white/20 bg-white/10 px-4 py-3 font-medium text-sm shadow-lg backdrop-blur-sm transition-all duration-300 hover:scale-[1.02] hover:border-white/30 hover:bg-white/20 hover:shadow-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/50 focus-visible:ring-offset-2 dark:border-gray-600/50 dark:bg-gray-800/80 dark:hover:border-gray-500/70 dark:hover:bg-gray-700/90",children:[r.jsx("div",{className:"flex h-6 w-6 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/50 dark:group-hover:bg-gray-500/70",children:r.jsx("span",{className:"text-lg transition-transform duration-300 group-hover:scale-110",children:i==="dark"?"🌞":"🌙"})}),r.jsx("span",{className:"text-white transition-colors duration-300 group-hover:text-white/90 dark:text-gray-200 dark:group-hover:text-white",children:i==="dark"?"Light Mode":"Dark Mode"}),r.jsx("div",{className:"absolute inset-0 rounded-xl 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"})]})}),r.jsx("div",{children:r.jsx("button",{type:"button",className:"aiquants-signout-button mx-2 my-5.5 rounded-lg px-5 py-2.5 font-medium text-sm text-white focus:outline-hidden focus:ring-4 focus:ring-blue-300",onClick:c,children:"サインアウト"})})]})},oe=s=>{const{isOverlay:a,onOverlayClick:o}=s;return r.jsx("button",{type:"button",className:`fixed inset-0 z-2147483640 cursor-default bg-black/50 transition-opacity duration-500 ${a?"opacity-100":"pointer-events-none opacity-0"}`,onClick:o})},ae=s=>{const{open:a,onMenuOpen:o,onMenuClose:m,theme:x}=s,c=l.useRef(a),i=l.useRef(null),t=l.useRef(null),u=l.useRef(null),b=l.useRef(null),f=l.useRef(null),y=l.useCallback(()=>{if(i.current&&t.current&&u.current&&b.current&&f.current){const N=x==="dark"?"#fff":"#000";i.current.style.backgroundColor=N,i.current.style.width="100%",i.current.style.height="3px",i.current.style.transform="",t.current.style.opacity="1",t.current.style.backgroundColor=N,u.current.style.opacity="1",u.current.style.backgroundColor=N,b.current.style.backgroundColor=N,b.current.style.width="100%",b.current.style.height="3px",b.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"),c.current=!0}},[x]),v=l.useCallback(()=>{i.current&&t.current&&u.current&&b.current&&f.current&&(i.current.style.backgroundColor="#fff",i.current.style.width="32px",i.current.style.height="4px",i.current.style.transform="translateY(9px) rotate(-45deg)",t.current.style.opacity="0",u.current.style.opacity="0",b.current.style.backgroundColor="#fff",b.current.style.width="32px",b.current.style.height="4px",b.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"),c.current=!1)},[]),E=l.useCallback(()=>{y(),m&&m()},[y,m]),O=l.useCallback(()=>{v(),o&&o()},[v,o]),C=l.useCallback(()=>{c.current?O():E()},[E,O]);return l.useEffect(()=>{a?y():v()},[a,y,v]),r.jsxs("button",{type:"button",className:"fixed top-5 right-5 z-2147483648 inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden",onClick:C,children:[r.jsx("span",{className:"absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500",ref:i}),r.jsx("span",{className:"absolute top-[6px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500",ref:t}),r.jsx("span",{className:"absolute top-[12px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500",ref:u}),r.jsx("span",{className:"absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none transition-all duration-500",ref:b}),r.jsx("div",{className:"absolute w-full text-xs transition-all duration-500 after:mt-2 after:block",ref:f})]})},le=s=>{const{menuList:a,menuHeader:o,onClickSignout:m,isMenuhide:x,theme:c,toggleTheme:i}=s,[t,u]=l.useState(!1),b=l.useCallback(()=>{u(!0)},[]),f=l.useCallback(()=>{u(!1)},[]),y=l.useCallback(()=>{u(!1)},[]),v=l.useCallback(E=>{if(E.key==="Escape")return f(),!1},[f]);return l.useEffect(()=>(t?window.addEventListener("keydown",v,{passive:!0}):window.removeEventListener("keydown",v),()=>{window.removeEventListener("keydown",v)}),[t,v]),x?r.jsx(r.Fragment,{}):r.jsxs("div",{className:`aiquants-menu-bar ${c}`,children:[r.jsx(ae,{onMenuClose:f,onMenuOpen:b,open:!t,theme:c}),r.jsx(se,{menuList:a,menuHeader:o,onClickSignout:m,onMenuSelected:y,open:t,theme:c,toggleTheme:i}),r.jsx(oe,{isOverlay:t,onOverlayClick:f})]})};k.DefaultLink=z,k.MenuBar=le,k.SessionInfo=$,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
package/dist/types/user.d.ts
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* User profile photo information.
|
|
3
|
-
* ユーザープロフィール写真情報。
|
|
4
|
-
*/
|
|
5
|
-
export interface UserPhoto {
|
|
6
|
-
/** Photo URL */
|
|
7
|
-
value: string;
|
|
8
|
-
}
|
|
9
1
|
/**
|
|
10
2
|
* Google user profile information.
|
|
11
3
|
* Googleユーザープロフィール情報。
|
|
@@ -13,8 +5,8 @@ export interface UserPhoto {
|
|
|
13
5
|
export interface GoogleUserProfile {
|
|
14
6
|
/** User display name */
|
|
15
7
|
displayName: string;
|
|
16
|
-
/**
|
|
17
|
-
|
|
8
|
+
/** user photo url */
|
|
9
|
+
photo: string;
|
|
18
10
|
/** User ID */
|
|
19
11
|
id?: string;
|
|
20
12
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiquants/menu-bar",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A React menu bar component with authentication support and theming",
|
|
6
6
|
"keywords": [
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
],
|
|
16
16
|
"author": {
|
|
17
17
|
"name": "fehde-k",
|
|
18
|
-
"url": "https://
|
|
18
|
+
"url": "https://x.com/fehdek"
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"main": "dist/index.umd.js",
|
|
@@ -38,8 +38,10 @@
|
|
|
38
38
|
"build": "vite build",
|
|
39
39
|
"dev": "vite build --watch",
|
|
40
40
|
"typecheck": "tsc --noEmit",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
41
|
+
"license-check": "pnpm dlx license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;Unlicense\"",
|
|
42
|
+
"license-check:json": "pnpm dlx license-checker --production --onlyAllow \"MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;Unlicense\" --json",
|
|
43
|
+
"clean": "rimraf dist",
|
|
44
|
+
"prepublishOnly": "npm run clean && npm run typecheck && npm run test --if-present && npm run build",
|
|
43
45
|
"publish:patch": "npm version patch && npm publish",
|
|
44
46
|
"publish:minor": "npm version minor && npm publish",
|
|
45
47
|
"publish:major": "npm version major && npm publish"
|
|
@@ -61,6 +63,7 @@
|
|
|
61
63
|
"react": "^19.1.0",
|
|
62
64
|
"react-dom": "^19.1.0",
|
|
63
65
|
"react-router-dom": "^7.7.1",
|
|
66
|
+
"rimraf": "^6.0.1",
|
|
64
67
|
"typescript": "^5.3.3",
|
|
65
68
|
"vite": "^7.0.6",
|
|
66
69
|
"vite-plugin-dts": "^3.7.2",
|
|
@@ -70,5 +73,8 @@
|
|
|
70
73
|
"autoprefixer": "^10.4.0",
|
|
71
74
|
"postcss": "^8.4.0"
|
|
72
75
|
},
|
|
73
|
-
"dependencies": {}
|
|
76
|
+
"dependencies": {},
|
|
77
|
+
"publishConfig": {
|
|
78
|
+
"access": "public"
|
|
79
|
+
}
|
|
74
80
|
}
|