@clubmed/trident-ui 1.5.1-beta.1 → 1.6.0-beta.2

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.
@@ -1,49 +1,63 @@
1
- import { jsx as r, jsxs as d } from "react/jsx-runtime";
2
- import { useRef as f } from "react";
3
- import { Backdrop as p } from "./Backdrop.js";
4
- import { Button as u } from "./Buttons/v2/Button.js";
5
- import { c as x } from "../chunks/clsx.js";
6
- const h = ({ closeLabel: o, onClose: e }) => /* @__PURE__ */ r(
7
- u,
1
+ import { jsx as r, jsxs as x } from "react/jsx-runtime";
2
+ import { useRef as v } from "react";
3
+ import { t as l } from "../chunks/bundle-mjs.js";
4
+ import { Backdrop as g } from "./Backdrop.js";
5
+ import { Button as w } from "./Buttons/v2/Button.js";
6
+ import { c as s } from "../chunks/clsx.js";
7
+ import { useSlots as N } from "../hooks/useSlots.js";
8
+ const y = ({ closeLabel: t, onClose: e }) => /* @__PURE__ */ r(
9
+ w,
8
10
  {
9
11
  color: "black",
10
12
  variant: "circle",
11
13
  icon: "CrossDefault",
12
14
  className: "mx-auto",
13
- "aria-label": o,
15
+ "aria-label": t,
14
16
  onClick: e
15
17
  }
16
- ), k = ({
17
- title: o,
18
+ ), R = ({
19
+ title: t,
18
20
  children: e,
19
- closeLabel: l,
21
+ closeLabel: p,
20
22
  onClose: a,
21
- isVisible: t,
22
- className: s = "sm:w-360",
23
- Footer: c = h
23
+ isVisible: o,
24
+ className: d = "sm:w-360",
25
+ bodyClassName: f,
26
+ Footer: n = y
24
27
  }) => {
25
- const n = f(t), i = n.current, m = !t && i;
26
- return n.current = t, /* @__PURE__ */ r(p, { isVisible: t, onClose: a, children: /* @__PURE__ */ r(
28
+ const { children: h, popinFooter: c } = N(e, ["popinFooter"]), m = v(o), u = m.current, i = !o && u;
29
+ return m.current = o, /* @__PURE__ */ r(g, { isVisible: o, onClose: a, children: /* @__PURE__ */ r(
27
30
  "div",
28
31
  {
29
- className: x(
30
- "border-lightGrey rounded-16 pointer-events-auto mx-20 w-full border bg-white origin-center will-change[transform,opacity]",
31
- {
32
- "animate-zoomIn": t,
33
- "animate-zoomOut": !t && m,
34
- "opacity-0 scale-90": !t && !m
35
- },
36
- s
32
+ className: l(
33
+ s(
34
+ "border-lightGrey rounded-16 pointer-events-auto mx-20 w-full border bg-white origin-center will-change[transform,opacity]",
35
+ {
36
+ "animate-zoomIn": o,
37
+ "animate-zoomOut": !o && i,
38
+ "opacity-0 scale-90": !o && !i
39
+ },
40
+ d
41
+ )
37
42
  ),
38
- children: /* @__PURE__ */ d("div", { className: "p-40 text-center max-h-[90vh] flex flex-col", children: [
39
- o && /* @__PURE__ */ r("div", { className: "mt-12 text-h5 text-start font-serif", children: o }),
40
- /* @__PURE__ */ r("div", { className: "mt-12 mb-40 last:mb-0 text-start overflow-auto", children: e }),
41
- c && /* @__PURE__ */ r("div", { children: /* @__PURE__ */ r(c, { closeLabel: l, onClose: a }) })
42
- ] })
43
+ children: /* @__PURE__ */ x(
44
+ "div",
45
+ {
46
+ className: l(
47
+ s("text-center max-h-[90vh] flex flex-col p-40 gap-40", f)
48
+ ),
49
+ children: [
50
+ t && /* @__PURE__ */ r("div", { className: "text-h5 mt-0 -mb-20 text-start font-serif", children: t }),
51
+ /* @__PURE__ */ r("div", { className: "text-start overflow-auto", children: h }),
52
+ !c?.length && n && /* @__PURE__ */ r("div", { children: /* @__PURE__ */ r(n, { closeLabel: p, onClose: a }) }),
53
+ c
54
+ ]
55
+ }
56
+ )
43
57
  }
44
58
  ) });
45
59
  };
46
60
  export {
47
- k as Popin
61
+ R as Popin
48
62
  };
49
63
  //# sourceMappingURL=Popin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popin.js","sources":["../../lib/molecules/Popin.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport type { FunctionComponent, PropsWithChildren, ReactNode } from 'react';\n\nimport { Backdrop } from './Backdrop';\nimport { Button } from './Buttons/v2/Button';\nimport clsx from 'clsx';\n\nexport type ClosePopinCallback = () => void;\n\nexport interface PopinFooterProps {\n closeLabel: string;\n onClose: ClosePopinCallback;\n}\n\nconst PopinFooter = ({ closeLabel, onClose }: PopinFooterProps) => {\n return (\n <Button\n color=\"black\"\n variant=\"circle\"\n icon=\"CrossDefault\"\n className=\"mx-auto\"\n aria-label={closeLabel}\n onClick={onClose}\n />\n );\n};\n\nexport interface PopinProps {\n title: ReactNode;\n closeLabel: string;\n onClose: ClosePopinCallback;\n isVisible: boolean;\n className?: string;\n showCloseButton?: boolean;\n Footer?: FunctionComponent<PopinFooterProps> | false;\n}\n\nexport const Popin: FunctionComponent<PropsWithChildren<PopinProps>> = ({\n title,\n children,\n closeLabel,\n onClose,\n isVisible,\n className = 'sm:w-360',\n Footer = PopinFooter,\n}) => {\n // Prevent initial mount flash when closed: only animate leave if it was visible before\n const wasVisibleRef = useRef(isVisible);\n const wasVisible = wasVisibleRef.current;\n const isLeaving = !isVisible && wasVisible;\n\n // update ref for next render\n wasVisibleRef.current = isVisible;\n return (\n <Backdrop isVisible={isVisible} onClose={onClose}>\n <div\n className={clsx(\n 'border-lightGrey rounded-16 pointer-events-auto mx-20 w-full border bg-white origin-center will-change[transform,opacity]',\n {\n 'animate-zoomIn': isVisible,\n 'animate-zoomOut': !isVisible && isLeaving,\n 'opacity-0 scale-90': !isVisible && !isLeaving,\n },\n className,\n )}\n >\n <div className=\"p-40 text-center max-h-[90vh] flex flex-col\">\n {title && <div className=\"mt-12 text-h5 text-start font-serif\">{title}</div>}\n <div className=\"mt-12 mb-40 last:mb-0 text-start overflow-auto\">{children}</div>\n {Footer && (\n <div>\n <Footer closeLabel={closeLabel} onClose={onClose} />\n </div>\n )}\n </div>\n </div>\n </Backdrop>\n );\n};\n"],"names":["PopinFooter","closeLabel","onClose","jsx","Button","Popin","title","children","isVisible","className","Footer","wasVisibleRef","useRef","wasVisible","isLeaving","Backdrop","clsx","jsxs"],"mappings":";;;;;AAcA,MAAMA,IAAc,CAAC,EAAE,YAAAC,GAAY,SAAAC,QAE/B,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,WAAU;AAAA,IACV,cAAYH;AAAA,IACZ,SAASC;AAAA,EAAA;AAAA,GAeFG,IAA0D,CAAC;AAAA,EACtE,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAN;AAAA,EACA,SAAAC;AAAA,EACA,WAAAM;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,QAAAC,IAASV;AACX,MAAM;AAEJ,QAAMW,IAAgBC,EAAOJ,CAAS,GAChCK,IAAaF,EAAc,SAC3BG,IAAY,CAACN,KAAaK;AAGhC,SAAAF,EAAc,UAAUH,GAEtB,gBAAAL,EAACY,GAAA,EAAS,WAAAP,GAAsB,SAAAN,GAC9B,UAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWa;AAAA,QACT;AAAA,QACA;AAAA,UACE,kBAAkBR;AAAA,UAClB,mBAAmB,CAACA,KAAaM;AAAA,UACjC,sBAAsB,CAACN,KAAa,CAACM;AAAA,QAAA;AAAA,QAEvCL;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAQ,EAAC,OAAA,EAAI,WAAU,+CACZ,UAAA;AAAA,QAAAX,KAAS,gBAAAH,EAAC,OAAA,EAAI,WAAU,uCAAuC,UAAAG,GAAM;AAAA,QACtE,gBAAAH,EAAC,OAAA,EAAI,WAAU,kDAAkD,UAAAI,EAAA,CAAS;AAAA,QACzEG,KACC,gBAAAP,EAAC,OAAA,EACC,4BAACO,GAAA,EAAO,YAAAT,GAAwB,SAAAC,GAAkB,EAAA,CACpD;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"Popin.js","sources":["../../lib/molecules/Popin.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport type { FunctionComponent, PropsWithChildren, ReactNode } from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport { Backdrop, type BackdropProps } from './Backdrop';\nimport { Button } from './Buttons/v2/Button';\nimport clsx from 'clsx';\nimport { useSlots } from '@/hooks/useSlots';\n\nexport type ClosePopinCallback = () => void;\n\nexport interface PopinFooterProps {\n closeLabel?: string;\n onClose: ClosePopinCallback;\n}\n\nconst PopinFooter = ({ closeLabel, onClose }: PopinFooterProps) => {\n return (\n <Button\n color=\"black\"\n variant=\"circle\"\n icon=\"CrossDefault\"\n className=\"mx-auto\"\n aria-label={closeLabel}\n onClick={onClose}\n />\n );\n};\n\nexport interface PopinProps {\n title?: ReactNode;\n closeLabel?: string;\n onClose: ClosePopinCallback;\n isVisible: boolean;\n className?: string;\n bodyClassName?: string;\n showCloseButton?: boolean;\n target?: BackdropProps['target'];\n /**\n * @deprecated use popinFooter slot instead\n */\n Footer?: FunctionComponent<PopinFooterProps> | false;\n}\n\nexport const Popin: FunctionComponent<PropsWithChildren<PopinProps>> = ({\n title,\n children,\n closeLabel,\n onClose,\n isVisible,\n className = 'sm:w-360',\n bodyClassName,\n Footer = PopinFooter,\n}) => {\n const { children: popinBody, popinFooter } = useSlots(children, ['popinFooter']);\n\n // Prevent initial mount flash when closed: only animate leave if it was visible before\n const wasVisibleRef = useRef(isVisible);\n const wasVisible = wasVisibleRef.current;\n const isLeaving = !isVisible && wasVisible;\n\n // update ref for next render\n wasVisibleRef.current = isVisible;\n return (\n <Backdrop isVisible={isVisible} onClose={onClose}>\n <div\n className={twMerge(\n clsx(\n 'border-lightGrey rounded-16 pointer-events-auto mx-20 w-full border bg-white origin-center will-change[transform,opacity]',\n {\n 'animate-zoomIn': isVisible,\n 'animate-zoomOut': !isVisible && isLeaving,\n 'opacity-0 scale-90': !isVisible && !isLeaving,\n },\n className,\n ),\n )}\n >\n <div\n className={twMerge(\n clsx('text-center max-h-[90vh] flex flex-col p-40 gap-40', bodyClassName),\n )}\n >\n {title && <div className=\"text-h5 mt-0 -mb-20 text-start font-serif\">{title}</div>}\n <div className=\"text-start overflow-auto\">{popinBody}</div>\n {!popinFooter?.length && Footer && (\n <div>\n <Footer closeLabel={closeLabel} onClose={onClose} />\n </div>\n )}\n\n {popinFooter}\n </div>\n </div>\n </Backdrop>\n );\n};\n"],"names":["PopinFooter","closeLabel","onClose","jsx","Button","Popin","title","children","isVisible","className","bodyClassName","Footer","popinBody","popinFooter","useSlots","wasVisibleRef","useRef","wasVisible","isLeaving","Backdrop","twMerge","clsx","jsxs"],"mappings":";;;;;;;AAeA,MAAMA,IAAc,CAAC,EAAE,YAAAC,GAAY,SAAAC,QAE/B,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,WAAU;AAAA,IACV,cAAYH;AAAA,IACZ,SAASC;AAAA,EAAA;AAAA,GAoBFG,IAA0D,CAAC;AAAA,EACtE,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAN;AAAA,EACA,SAAAC;AAAA,EACA,WAAAM;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,eAAAC;AAAA,EACA,QAAAC,IAASX;AACX,MAAM;AACJ,QAAM,EAAE,UAAUY,GAAW,aAAAC,EAAA,IAAgBC,EAASP,GAAU,CAAC,aAAa,CAAC,GAGzEQ,IAAgBC,EAAOR,CAAS,GAChCS,IAAaF,EAAc,SAC3BG,IAAY,CAACV,KAAaS;AAGhC,SAAAF,EAAc,UAAUP,GAEtB,gBAAAL,EAACgB,GAAA,EAAS,WAAAX,GAAsB,SAAAN,GAC9B,UAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWiB;AAAA,QACTC;AAAA,UACE;AAAA,UACA;AAAA,YACE,kBAAkBb;AAAA,YAClB,mBAAmB,CAACA,KAAaU;AAAA,YACjC,sBAAsB,CAACV,KAAa,CAACU;AAAA,UAAA;AAAA,UAEvCT;AAAA,QAAA;AAAA,MACF;AAAA,MAGF,UAAA,gBAAAa;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWF;AAAA,YACTC,EAAK,sDAAsDX,CAAa;AAAA,UAAA;AAAA,UAGzE,UAAA;AAAA,YAAAJ,KAAS,gBAAAH,EAAC,OAAA,EAAI,WAAU,6CAA6C,UAAAG,GAAM;AAAA,YAC5E,gBAAAH,EAAC,OAAA,EAAI,WAAU,4BAA4B,UAAAS,GAAU;AAAA,YACpD,CAACC,GAAa,UAAUF,KACvB,gBAAAR,EAAC,SACC,UAAA,gBAAAA,EAACQ,GAAA,EAAO,YAAAV,GAAwB,SAAAC,EAAA,CAAkB,EAAA,CACpD;AAAA,YAGDW;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -0,0 +1,11 @@
1
+ import { FunctionComponent, PropsWithChildren } from 'react';
2
+ export interface PortalProps {
3
+ key?: string;
4
+ target?: string;
5
+ disabled?: boolean;
6
+ }
7
+ export declare function Portal({ children, target, disabled, key, }: PropsWithChildren<PortalProps>): import('react').ReactNode;
8
+ /**
9
+ * Wrap a component onto a portal
10
+ */
11
+ export declare function withPortal<Props extends PropsWithChildren>(target: string, Cmp: FunctionComponent<Props>): (props: Props) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,31 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { useState as i, useEffect as f, Children as d } from "react";
3
+ import { createPortal as m } from "react-dom";
4
+ const p = (t) => {
5
+ if (typeof document > "u")
6
+ return console.warn("createDivElementWithId() can not be run outside of a browser"), null;
7
+ const e = document.createElement("div");
8
+ return e.id = t, e.classList.add("relative", "isolate", "z-1"), document.body.append(e), e;
9
+ };
10
+ function C({
11
+ children: t,
12
+ target: e = "portal",
13
+ disabled: n = !1,
14
+ key: u
15
+ }) {
16
+ const [a, s] = i(!1), [o, c] = i(null);
17
+ return f(() => {
18
+ if (s(!0), o === null) {
19
+ const r = document.getElementById(e) || p(e);
20
+ r && c(r);
21
+ }
22
+ }, [e]), a ? n ? t : d.count(t) && o ? m(t, o, u) : null : null;
23
+ }
24
+ function P(t, e) {
25
+ return (n) => /* @__PURE__ */ l(C, { target: t, children: /* @__PURE__ */ l(e, { ...n }) });
26
+ }
27
+ export {
28
+ C as Portal,
29
+ P as withPortal
30
+ };
31
+ //# sourceMappingURL=Portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Portal.js","sources":["../../../lib/molecules/Portal/Portal.tsx"],"sourcesContent":["import {\n Children,\n type FunctionComponent,\n type PropsWithChildren,\n useEffect,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\n\nconst createDivElementWithId = (id: string) => {\n /* c8 ignore next 4 */\n if (typeof document === 'undefined') {\n console.warn('createDivElementWithId() can not be run outside of a browser');\n return null;\n }\n\n const element = document.createElement('div');\n element.id = id;\n element.classList.add('relative', 'isolate', 'z-1');\n document.body.append(element);\n\n return element;\n};\n\nexport interface PortalProps {\n key?: string;\n target?: string;\n disabled?: boolean;\n}\n\nexport function Portal({\n children,\n target = 'portal',\n disabled = false,\n key,\n}: PropsWithChildren<PortalProps>) {\n const [isClient, setIsClient] = useState(false);\n const [portalContainer, setPortalContainer] = useState<Element | null>(null);\n\n useEffect(() => {\n setIsClient(true);\n\n if (portalContainer === null) {\n const container = document.getElementById(target) || createDivElementWithId(target);\n\n if (container) {\n setPortalContainer(container);\n }\n }\n }, [target]);\n\n if (!isClient) {\n return null;\n }\n\n if (disabled) {\n return children;\n }\n\n return Children.count(children) && portalContainer\n ? createPortal(children, portalContainer, key)\n : null;\n}\n\n/**\n * Wrap a component onto a portal\n */\nexport function withPortal<Props extends PropsWithChildren>(\n target: string,\n Cmp: FunctionComponent<Props>,\n) {\n return (props: Props) => (\n <Portal target={target}>\n <Cmp {...props} />\n </Portal>\n );\n}\n"],"names":["createDivElementWithId","id","element","Portal","children","target","disabled","key","isClient","setIsClient","useState","portalContainer","setPortalContainer","useEffect","container","Children","createPortal","withPortal","Cmp","props","jsx"],"mappings":";;;AASA,MAAMA,IAAyB,CAACC,MAAe;AAE7C,MAAI,OAAO,WAAa;AACtB,mBAAQ,KAAK,8DAA8D,GACpE;AAGT,QAAMC,IAAU,SAAS,cAAc,KAAK;AAC5C,SAAAA,EAAQ,KAAKD,GACbC,EAAQ,UAAU,IAAI,YAAY,WAAW,KAAK,GAClD,SAAS,KAAK,OAAOA,CAAO,GAErBA;AACT;AAQO,SAASC,EAAO;AAAA,EACrB,UAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC,IAAW;AAAA,EACX,KAAAC;AACF,GAAmC;AACjC,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxC,CAACC,GAAiBC,CAAkB,IAAIF,EAAyB,IAAI;AAc3E,SAZAG,EAAU,MAAM;AAGd,QAFAJ,EAAY,EAAI,GAEZE,MAAoB,MAAM;AAC5B,YAAMG,IAAY,SAAS,eAAeT,CAAM,KAAKL,EAAuBK,CAAM;AAElF,MAAIS,KACFF,EAAmBE,CAAS;AAAA,IAEhC;AAAA,EACF,GAAG,CAACT,CAAM,CAAC,GAENG,IAIDF,IACKF,IAGFW,EAAS,MAAMX,CAAQ,KAAKO,IAC/BK,EAAaZ,GAAUO,GAAiBJ,CAAG,IAC3C,OATK;AAUX;AAKO,SAASU,EACdZ,GACAa,GACA;AACA,SAAO,CAACC,MACN,gBAAAC,EAACjB,GAAA,EAAO,QAAAE,GACN,UAAA,gBAAAe,EAACF,GAAA,EAAK,GAAGC,EAAA,CAAO,EAAA,CAClB;AAEJ;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clubmed/trident-ui",
3
- "version": "1.5.1-beta.1",
3
+ "version": "1.6.0-beta.2",
4
4
  "type": "module",
5
5
  "description": "Shared ClubMed React UI components",
6
6
  "keywords": [
@@ -31,16 +31,16 @@
31
31
  "import": "./atoms/Icons/index.js",
32
32
  "default": "./atoms/Icons/index.js"
33
33
  },
34
- "./atoms/Icons/svg": {
35
- "types": "./atoms/Icons/svg/index.d.ts",
36
- "import": "./atoms/Icons/svg/index.js",
37
- "default": "./atoms/Icons/svg/index.js"
38
- },
39
34
  "./atoms/Icons/svg-use": {
40
35
  "types": "./atoms/Icons/svg-use/index.d.ts",
41
36
  "import": "./atoms/Icons/svg-use/index.js",
42
37
  "default": "./atoms/Icons/svg-use/index.js"
43
38
  },
39
+ "./atoms/Icons/svg": {
40
+ "types": "./atoms/Icons/svg/index.d.ts",
41
+ "import": "./atoms/Icons/svg/index.js",
42
+ "default": "./atoms/Icons/svg/index.js"
43
+ },
44
44
  "./molecules/Tabs": {
45
45
  "types": "./molecules/Tabs/index.d.ts",
46
46
  "import": "./molecules/Tabs/index.js",
@@ -116,15 +116,17 @@
116
116
  "chromatic": "chromatic"
117
117
  },
118
118
  "dependencies": {
119
- "@juggle/resize-observer": "^3.4.0",
120
- "@use-gesture/react": "^10.2.26",
121
- "clsx": "^2.1.1",
122
- "date-fns": "^2.30.0",
123
- "react-day-picker": "^8.10.0",
124
- "react-hot-toast": "^2.4.1",
125
- "react-use-measure": "^2.1.1",
126
- "use-boop": "^1.1.1",
127
- "use-resize-observer": "^9.1.0"
119
+ "@juggle/resize-observer": ">=3.4.0",
120
+ "@use-gesture/react": ">=10.2.26",
121
+ "clsx": ">=2.1.1",
122
+ "date-fns": ">=2.30.0",
123
+ "react-day-picker": ">=8.10.0",
124
+ "react-hot-toast": ">=2.4.1",
125
+ "react-transition-state": ">=2.3.2",
126
+ "react-use-measure": ">=2.1.1",
127
+ "use-boop": ">=1.1.1",
128
+ "use-resize-observer": ">=9.1.0",
129
+ "tailwind-merge": ">=3.4.0"
128
130
  },
129
131
  "devDependencies": {
130
132
  "@chromatic-com/storybook": "^4.1.1",
@@ -180,6 +182,7 @@
180
182
  "react": "^18.2.0",
181
183
  "react-dom": "^18.2.0",
182
184
  "react-syntax-highlighter": "^15.5.0",
185
+ "remark-gfm": "^4.0.1",
183
186
  "rollup-preserve-directives": "^1.1.1",
184
187
  "storybook": "9.1.7",
185
188
  "svgtofont": "^4.2.0",