@bbki.ng/components 2.6.13 → 2.6.14
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.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +3 -3
- package/dist/index.css.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -146,7 +146,7 @@ var Article = (props) => {
|
|
|
146
146
|
return /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
147
147
|
className: (0, import_classnames3.default)("article", className)
|
|
148
148
|
}, /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
149
|
-
className: "mb-
|
|
149
|
+
className: "mb-16 leading-none"
|
|
150
150
|
}, /* @__PURE__ */ import_react3.default.createElement("span", {
|
|
151
151
|
className: "text-[2.25rem] p-16"
|
|
152
152
|
}, title), props.loading && title && /* @__PURE__ */ import_react3.default.createElement(BlinkDot, {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/index.ts","../lib/article/Article.tsx","../lib/blink-dot/BlinkDot.tsx","../lib/blur-cover/BlurCover.tsx","../lib/button/Button.tsx","../lib/logo/Logo.tsx","../lib/nav/Nav.tsx","../lib/breadcrumb/Breadcrumb.tsx","../lib/link/Link.tsx","../lib/tag/Tag.tsx","../lib/panel/Panel.tsx","../lib/page/Page.tsx","../lib/pop-confirm/PopConfirm.tsx","../lib/table/Table.tsx","../lib/skeleton/Seleton.tsx","../lib/list/list.tsx","../lib/drop-image/DropImage.tsx","../lib/drop-image/utils.ts","../lib/drop-image/useDropImage.ts","../lib/layout/layout.tsx","../lib/img/Img.tsx","../lib/img/types.ts","../lib/img/utils.ts","../lib/img/Gallery.tsx","../lib/img/RandomRowsLayout.tsx","../lib/loading-spiral/LoadingSpiral.tsx","../lib/loading-spiral/createSettings.ts","../lib/loading-spiral/constants.ts","../lib/loading-spiral/createOptions.ts","../lib/drop-zone/DropZone.tsx","../lib/context-menu/index.tsx","../lib/form/index.tsx","../lib/label/index.tsx","../lib/input/index.tsx","../lib/canvas/Canvas.tsx","../lib/canvas/useRenderer.ts"],"sourcesContent":["import \"./index.css\";\n\nexport * from \"./article/Article\";\nexport * from \"./button/Button\";\nexport * from \"./logo/Logo\";\nexport * from \"./nav/Nav\";\nexport * from \"./link/Link\";\nexport * from \"./tag/Tag\";\nexport * from \"./panel/Panel\";\nexport * from \"./page/Page\";\nexport * from \"./breadcrumb/Breadcrumb\";\nexport * from \"./pop-confirm/PopConfirm\";\nexport * from \"./table/Table\";\nexport * from \"./skeleton/Seleton\";\nexport * from \"./drop-image/DropImage\";\nexport * from \"./blink-dot/BlinkDot\";\nexport * from \"./layout/layout\";\nexport * from \"./list/list\";\nexport * from \"./img/Img\";\nexport * from \"./img/Gallery\";\nexport * from \"./loading-spiral/LoadingSpiral\";\nexport * from \"./drop-zone/DropZone\";\nexport * from \"./context-menu\";\nexport * from \"./form\";\nexport * from \"./label\";\nexport * from \"./input\";\nexport * from \"./blur-cover/BlurCover\";\nexport * from \"./canvas/Canvas\";\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport React, { FunctionComponent } from \"react\";\nimport { BlinkDot } from \"../blink-dot/BlinkDot\";\nimport { BlurCover } from \"../blur-cover/BlurCover\";\n\nexport type ArticleProps = {\n title: any;\n date?: string;\n className?: string;\n content?: any;\n children: any;\n description?: any;\n loading?: boolean;\n};\n\nexport const Article: FunctionComponent<ArticleProps> = (props) => {\n const { title, content, children, date, className, description } = props;\n return (\n <div className={classNames(\"article\", className)}>\n <div className=\"mb-128 leading-none\">\n <span className=\"text-[2.25rem] p-16\">{title}</span>\n {props.loading && title && (\n <BlinkDot status=\"blink\" className=\"!-top-[42px] !-left-16\" />\n )}\n {date ? (\n <div className=\"py-16 px-18 pb-0 text-gray-400\">\n <small>{date}</small>\n </div>\n ) : null}\n </div>\n {description && <div className=\"mb-128\">{description}</div>}\n <div className=\"text-black relative p-16\">\n {children || content}\n <BlurCover status={props.loading ? \"show\" : \"silent\"} />\n {/*<BlurCover status={\"show\"} />*/}\n </div>\n </div>\n );\n};\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport React from \"react\";\n\nexport type BLinkDotProps = {\n className?: string;\n status?: \"blink\" | \"still\" | \"hidden\";\n};\n\nexport const BlinkDot = (props: BLinkDotProps) => {\n const { className } = props;\n const status = props.status || \"hidden\";\n\n const statusCls = classNames({\n \"animate-ping-fast\": status === \"blink\",\n hidden: status === \"hidden\",\n });\n\n return (\n <span\n className={classNames(\"inline-flex justify-center items-center relative\")}\n >\n <span\n className={`absolute inline-flex h-full w-full rounded-full text-red-600 -top-[28px] -left-[3px] ${statusCls} ${className}`}\n >\n .\n </span>\n </span>\n );\n};\n","import React from \"react\";\nimport cls from \"classnames\";\n\nexport type BlurCoverProps = {\n status: \"silent\" | \"show\";\n className?: string;\n size?: number;\n};\n\nexport const BlurCover = (props: BlurCoverProps) => {\n const { status } = props;\n\n const coverCls = cls(\n \"absolute\",\n \"block\",\n \"text-blur\",\n \"transition-all\",\n \"duration-200\",\n \"top-0\",\n \"left-0\",\n \"h-full\",\n \"w-full\",\n {\n \"z-[49]\": status === \"show\",\n \"opacity-0\": status === \"silent\",\n \"opacity-100\": status === \"show\",\n \"pointer-events-none\": status === \"silent\",\n },\n props.className\n );\n return <div className={coverCls} />;\n};\n","import React from \"react\";\nimport { EventHandler } from \"react\";\nimport classNames from \"classnames\";\n\nexport enum ButtonType {\n DANGER = \"danger\",\n PRIMARY = \"primary\",\n NORMAL = \"normal\",\n DISABLED = \"disabled\",\n}\n\nexport interface ButtonProps {\n className?: string;\n children: React.ReactNode;\n type?: ButtonType;\n onClick: EventHandler<React.MouseEvent<HTMLButtonElement>>;\n btnType?: \"submit\" | \"reset\" | \"button\";\n}\n\nexport function Button(props: ButtonProps) {\n const typeClsMap = {\n [ButtonType.DANGER]: \"text-red-500\",\n [ButtonType.PRIMARY]: \"text-blue-600\",\n [ButtonType.DISABLED]: \"text-gray-400 cursor-not-allowed\",\n [ButtonType.NORMAL]: \"text-black\",\n };\n\n const [pressed, setPressed] = React.useState(false);\n\n const { type = ButtonType.NORMAL, className = \"\", onClick, btnType } = props;\n const shadowTransCls =\n type === ButtonType.DISABLED\n ? \"\"\n : classNames(\n \"transition-all duration-200 ease-in-out shadow-button active:shadow-empty\",\n {\n \"shadow-empty\": pressed,\n \"hover:shadow-button-hover\": !pressed,\n },\n );\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (type === ButtonType.DISABLED) {\n return;\n }\n\n setPressed(true);\n\n setTimeout(() => {\n setPressed(false);\n onClick(e);\n }, 280);\n };\n\n return (\n <button\n className={`${typeClsMap[type]} ${className} ${shadowTransCls} py-8 px-16 transition-all duration-200 ease-in-out`}\n onClick={handleClick}\n type={btnType}\n >\n {props.children}\n </button>\n );\n}\n\nButton.displayName = \"Button\";\n","import * as React from \"react\";\n\nexport type LogoProps = {\n className?: string;\n onClick?: () => void;\n};\n\nexport const Logo = React.memo(\n (props: LogoProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n onClick={props.onClick}\n className={props.className}\n >\n <path\n d=\"M29.1152 21.3106C32.0605 21.3106 34.4481 18.9101 34.4481 15.9489V24.6457C34.4481 25.7585 33.5508 26.6607 32.444 26.6607H15.1207C14.0138 26.6607 13.1166 25.7585 13.1166 24.6457V15.9489C13.1166 18.9101 15.5042 21.3106 18.4494 21.3106C21.3947 21.3106 23.7823 18.9101 23.7823 15.9489C23.7823 18.9101 26.17 21.3106 29.1152 21.3106Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M23.7823 15.9373L23.7823 15.9489C23.7823 15.9451 23.7823 15.9412 23.7823 15.9373Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M23.1143 28.004C23.1205 30.9598 25.5057 33.3541 28.4472 33.3541C31.3886 33.3541 33.7738 30.9598 33.7801 28.004H23.1143Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M13.7846 28.004C13.7846 28.0079 13.7846 28.0117 13.7846 28.0156C13.7908 30.9714 16.1761 33.3657 19.1175 33.3657C22.0589 33.3657 24.4442 30.9714 24.4504 28.0156H13.7846V28.004Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M14.4527 15.9373C14.4527 16.6792 13.8545 17.2806 13.1166 17.2806C12.3786 17.2806 11.7805 16.6792 11.7805 15.9373C11.7805 15.1954 12.3786 14.594 13.1166 14.594C13.8545 14.594 14.4527 15.1954 14.4527 15.9373Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M25.1184 15.2657C25.1184 16.0076 24.5202 16.609 23.7823 16.609C23.0444 16.609 22.4462 16.0076 22.4462 15.2657C22.4462 14.5238 23.0444 13.9224 23.7823 13.9224C24.5202 13.9224 25.1184 14.5238 25.1184 15.2657Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M35.7842 15.9373C35.7842 16.6792 35.186 17.2806 34.4481 17.2806C33.7102 17.2806 33.112 16.6792 33.112 15.9373C33.112 15.1954 33.7102 14.594 34.4481 14.594C35.186 14.594 35.7842 15.1954 35.7842 15.9373Z\"\n fill=\"#9CA3AF\"\n />\n </svg>\n ),\n () => {\n return true;\n }\n);\n","import React from \"react\";\nimport { Breadcrumb, PathObj } from \"../breadcrumb/Breadcrumb\";\nimport { Logo } from \"../logo/Logo\";\nimport { BlinkDot } from \"../blink-dot/BlinkDot\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport type NavProps = {\n paths: PathObj[];\n loading?: boolean;\n mini?: boolean;\n className?: string;\n customLogo?: React.ReactNode;\n};\n\nexport const Nav = (props: NavProps) => {\n if (props.mini) {\n return (\n <div className={`p-8 w-full flex items-center ${props.className}`}>\n <Breadcrumb paths={props.paths} />\n </div>\n );\n }\n\n const nav = useNavigate();\n\n return (\n <div className={`p-8 w-full flex items-center ${props.className}`}>\n {props.customLogo || (\n <Logo\n className=\"mr-8\"\n onClick={() => {\n nav(\"/\");\n }}\n />\n )}\n <Breadcrumb paths={props.paths} loading={props.loading} />\n </div>\n );\n};\n","import React from \"react\";\n// @ts-ignore\nimport classNames from \"classnames\";\nimport { Link } from \"../link/Link\";\n\nexport type PathObj = {\n path?: string;\n name: string;\n};\n\nexport type BreadcrumbProps = {\n paths: PathObj[];\n loading?: boolean;\n};\n\nexport const Breadcrumb = (props: BreadcrumbProps) => {\n const { paths, loading } = props;\n const PathElements = paths.map(({ path, name }, index) => {\n const slash = index === 0 ? null : <span className=\"text-gray-400\">/</span>;\n const isNonEnName = !/^[a-zA-Z~]+$/.test(name);\n const offsetCls = classNames({ \"relative top-[2px]\": isNonEnName });\n const isLast = index === paths.length - 1;\n const status = loading && isLast ? \"blink\" : \"hidden\";\n return (\n <span key={path || name}>\n {slash}\n <Link\n to={path ?? \"\"}\n className={offsetCls}\n readonly={!path}\n status={status}\n >\n {name}\n </Link>\n </span>\n );\n });\n return <div className=\"breadcrumb\">{PathElements}</div>;\n};\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport { Link as BaseLink, LinkProps as BaseLinkProps } from \"react-router-dom\";\nimport React from \"react\";\nimport { BlinkDot } from \"../blink-dot/BlinkDot\";\n\nexport enum LinkColor {\n BLUE = \"blue\",\n RED = \"red\",\n GRAY = \"gray\",\n}\n\nexport interface LinkProps extends BaseLinkProps {\n to: string;\n color?: LinkColor;\n className?: string;\n external?: boolean;\n name?: any;\n children?: any;\n readonly?: boolean;\n status?: \"blink\" | \"still\" | \"hidden\";\n}\n\nconst COLOR_MAPPING = {\n [LinkColor.BLUE]: \"text-blue-600\",\n [LinkColor.RED]: \"text-red-500\",\n [LinkColor.GRAY]: \"text-gray-400\",\n};\n\nconst HOVER_COLOR_MAPPING = {\n [LinkColor.BLUE]:\n \"[&:not(:focus)]:hover:md:bg-blue-100 [&:not(:focus)]:hover:md:text-blue-600\",\n [LinkColor.RED]:\n \"[&:not(:focus)]:hover:md:bg-red-100 [&:not(:focus)]:hover:md:text-red-500\",\n [LinkColor.GRAY]:\n \"[&:not(:focus)]:hover:md:bg-gray-100 [&:not(:focus)]:hover:md:text-gray-400\",\n};\n\nconst FOCUS_BG_COLOR_MAPPING = {\n [LinkColor.BLUE]: \"focus:bg-blue-100\",\n [LinkColor.RED]: \"focus:bg-red-100\",\n [LinkColor.GRAY]: \"focus:bg-gray-100\",\n};\n\nexport const Link = (props: LinkProps) => {\n const {\n color = LinkColor.BLUE,\n external,\n className,\n children,\n status,\n readonly,\n ...rest\n } = props;\n\n const linkCls = classNames(\n className,\n \"rounded\",\n \"!no-underline\",\n \"transition-colors\",\n // \"focus:text-white\",\n COLOR_MAPPING[color],\n HOVER_COLOR_MAPPING[color],\n FOCUS_BG_COLOR_MAPPING[color],\n );\n\n if (external) {\n return (\n <a\n href={props.to}\n className={linkCls}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{ padding: 4 }}\n >\n {children}\n </a>\n );\n }\n\n if (readonly) {\n const isNonEnName = !/^[a-zA-Z~]+$/.test(children);\n const offsetCls = classNames({ \"relative top-[2px]\": isNonEnName });\n return (\n <>\n <span\n className={classNames(\"text-gray-400\", offsetCls)}\n style={{ padding: 4 }}\n >\n {children}\n </span>\n <BlinkDot status={status} />\n </>\n );\n }\n\n return (\n <>\n <BaseLink {...rest} className={linkCls} style={{ padding: 4 }}>\n {children}\n </BaseLink>\n <BlinkDot className=\"-top-3 left-1\" status={status} />\n </>\n );\n};\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { Link, LinkColor, LinkProps } from \"../link/Link\";\n\nexport interface TagProps\n extends Pick<\n LinkProps,\n \"to\" | \"children\" | \"className\" | \"external\" | \"status\" | \"readonly\"\n > {\n prefix?: string;\n name?: string;\n}\n\nexport const Tag = (props: TagProps) => {\n return (\n <Link {...props} color={LinkColor.GRAY}>\n <small>\n {props.prefix || \"#\"}\n {props.children}\n </small>\n </Link>\n );\n};\n\nexport const Tags = (props: { tags: TagProps[]; className?: string }) => {\n const { tags, className } = props;\n return (\n <div className={classNames(className, \"inline-block\")}>\n {tags.map((tag, index) => {\n const isLast = index === tags.length - 1;\n return (\n <Tag\n {...tag}\n key={tag.to}\n className={classNames({ \"mr-8\": !isLast })}\n />\n );\n })}\n </div>\n );\n};\n","import React, { useEffect, useState } from \"react\";\n\nexport type PanelProps = {\n width?: number;\n children: any;\n className?: string;\n};\n\nexport const Panel = (props: PanelProps) => {\n const { className = \"\", children } = props;\n const [show, setShow] = useState(false);\n useEffect(() => {\n setShow(true);\n }, []);\n\n return (\n <div\n className={`transition-all ease-in-out duration-900 ${className} ${\n show ? \"shadow-panel\" : \"shadow-empty\"\n } p-32`}\n >\n {children}\n </div>\n );\n};\n","import React, { ReactElement, ReactNode } from \"react\";\nimport { Article } from \"../article/Article\";\n\ntype PageProps = {\n nav: ReactElement;\n main: ReactElement;\n};\n\nexport const Page = (props: PageProps) => {\n const { nav, main } = props;\n return (\n <main className=\"flex flex-col h-full\">\n <div className={`flx-grow-0 w-full fixed top-0 z-50`}>{nav}</div>\n <section className=\"flex-grow flex-shrink-0 px-6\">{main}</section>\n </main>\n );\n};\n\nexport const NotFound = (props: { children?: any }) => {\n return <Error error={{ name: \"404\", message: \"Not Found\" }} />;\n};\n\nexport const Error = (props: { error: Error }) => {\n const { error } = props;\n return (\n <div className=\"prose\">\n <pre>\n <code className=\"javascript language-javascript\">\n {error.name}:{error.message}\n </code>\n </pre>\n </div>\n );\n};\n\nexport class ErrorBoundary extends React.Component<\n { children: any },\n { error?: Error; hasError: boolean }\n> {\n constructor(props: { children: any }) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, error };\n }\n\n render() {\n if (this.state.error && this.state.hasError) {\n return (\n <Article title=\"出错\">\n <div className=\"relative h-256\">\n <Error error={this.state.error} />\n </div>\n </Article>\n );\n }\n\n return this.props.children;\n }\n}\n","import React, { EventHandler, useState } from \"react\";\nimport { Button, ButtonType } from \"../button/Button\";\nimport { Panel } from \"../panel/Panel\";\nimport { BlinkDot } from \"../blink-dot/BlinkDot\";\n\nexport type PopConfirmProps = {\n onOk?:\n | EventHandler<React.MouseEvent<HTMLButtonElement>>\n | (() => Promise<void>);\n onCancel?: EventHandler<React.MouseEvent<HTMLButtonElement>>;\n className?: string;\n content?: any;\n children?: any;\n width?: number;\n};\n\nexport const PopConfirm = (props: PopConfirmProps) => {\n const [loading, setLoading] = useState(false);\n const { onOk, onCancel, children, content, className } = props;\n return (\n <Panel className={className}>\n <div className=\"mb-32\">{children || content}</div>\n <div className=\"flex justify-end\">\n {onCancel && (\n <Button onClick={onCancel} type={ButtonType.NORMAL}>\n Cancel\n </Button>\n )}\n {onOk && (\n <Button\n onClick={async (e) => {\n setLoading(true);\n await onOk(e);\n setLoading(false);\n }}\n className=\"ml-16 relative\"\n type={loading ? ButtonType.DISABLED : ButtonType.PRIMARY}\n >\n OK\n {loading && <BlinkDot className=\"!absolute top-2 right-2\" />}\n </Button>\n )}\n </div>\n </Panel>\n );\n};\n","import React, { CSSProperties, StyleHTMLAttributes } from \"react\";\nexport type TableProps = {\n rowCount: number;\n rowRenderer: (index: number) => any;\n headerRenderer?: () => any;\n className?: string;\n};\nexport const Table = (props: TableProps) => {\n const { rowCount, rowRenderer, headerRenderer, className } = props;\n const rows = [];\n for (let i = 0; i < rowCount; i++) {\n rows.push(<tr key={i}>{rowRenderer(i)}</tr>);\n }\n return (\n <table className={className}>\n {headerRenderer && (\n <thead>\n <tr>{headerRenderer()}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </table>\n );\n};\n\nTable.HCell = (props: { children: any; style?: CSSProperties }) => (\n <th {...props}>{props.children}</th>\n);\nTable.Cell = (props: { children: any; style?: CSSProperties }) => (\n <td {...props}>{props.children}</td>\n);\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { Article } from \"../article/Article\";\nimport { List } from \"../list/list\";\n\nexport enum SkeletonColor {\n BLUE = \"blue\",\n RED = \"red\",\n GRAY = \"gray\",\n BLACK = \"black\",\n}\n\nconst COLOR_MAPPING = {\n [SkeletonColor.BLUE]: \"bg-blue-100\",\n [SkeletonColor.RED]: \"bg-red-100\",\n [SkeletonColor.GRAY]: \"bg-gray-100\",\n [SkeletonColor.BLACK]: \"bg-gray-200\",\n};\n\nexport interface SkeletonProps {\n className?: string;\n width?: number;\n height?: number;\n bgColor?: SkeletonColor;\n}\n\nexport interface ArticleSkeletonProps extends SkeletonProps {\n titleLength?: number;\n descriptionLength?: number;\n children?: any;\n}\n\nexport interface LinkListSkeletonProps extends ArticleSkeletonProps {\n linksLength: number[];\n}\n\nexport const Skeleton = (props: SkeletonProps) => {\n const {\n bgColor = SkeletonColor.GRAY,\n width = 26,\n height = 24,\n className,\n } = props;\n\n return (\n <div\n className={classNames(\n COLOR_MAPPING[bgColor],\n \"animate-pulse\",\n \"rounded\",\n className\n )}\n style={{ width, height }}\n />\n );\n};\n\nexport const ArticleSkeleton = (props: ArticleSkeletonProps) => {\n const { children, titleLength = 0, descriptionLength } = props;\n return (\n <Article\n title={\n <Skeleton\n width={36 * titleLength}\n height={36}\n bgColor={SkeletonColor.BLACK}\n />\n }\n description={\n descriptionLength && <Skeleton width={16 * descriptionLength} />\n }\n >\n {children}\n </Article>\n );\n};\n\nexport const LinkListSkeleton = (props: LinkListSkeletonProps) => {\n const { linksLength, ...rest } = props;\n const renderSkeleton = (length: number) => {\n return (\n <Skeleton\n className=\"inline-block align-middle\"\n width={length * 16}\n bgColor={SkeletonColor.BLUE}\n />\n );\n };\n\n if (!rest.titleLength) {\n return <List items={linksLength} itemRenderer={renderSkeleton} />;\n }\n\n return (\n <ArticleSkeleton {...rest}>\n <List items={linksLength} itemRenderer={renderSkeleton} />\n </ArticleSkeleton>\n );\n};\n","// @ts-ignore\nimport cls from \"classnames\";\nimport React, { ReactElement, FunctionComponent, ReactNode } from \"react\";\nimport { Link, LinkProps } from \"../link/Link\";\nimport { Article } from \"../article/Article\";\n\nexport interface listProps {\n className?: string;\n compact?: boolean;\n items: any[];\n itemRenderer: (itemProps: any, index: number) => ReactElement;\n horizontal?: boolean;\n footer?: ReactNode;\n}\n\nexport const List: FunctionComponent<listProps> = (props) => {\n const { items, itemRenderer, className, horizontal, compact, footer } = props;\n\n const spaceCls = compact ? \"\" : horizontal ? \"mr-3\" : \"mb-16\";\n return (\n <ul\n className={cls(className, \"list-style-none\", {\n flex: horizontal,\n \"items-center\": horizontal,\n })}\n >\n {items.map((item, index) => {\n return (\n <li\n key={item.id || index}\n className={cls(spaceCls, \"flex-shrink-0\", { \"!my-0\": horizontal })}\n >\n {itemRenderer(item, index)}\n </li>\n );\n })}\n {footer && (\n <li\n key={\"footer\"}\n className={cls(spaceCls, \"flex-shrink-0\", { \"!my-0\": horizontal })}\n >\n {footer}\n </li>\n )}\n </ul>\n );\n};\n\nexport interface TitledListProps extends listProps {\n title?: any;\n description?: any;\n footer?: ReactNode;\n}\n\nexport const TitledList: FunctionComponent<TitledListProps> = (props) => {\n const { title, description, ...rest } = props;\n if (!title) {\n return <List {...rest} />;\n }\n\n return (\n <Article title={title} description={description} className=\"w-fit\">\n <List {...rest} />\n </Article>\n );\n};\n\nexport interface LinkListProps\n extends Omit<listProps, \"itemRenderer\" | \"items\"> {\n title?: string;\n description?: any;\n links: LinkProps[];\n}\n\nexport const LinkList = (props: LinkListProps) => {\n const { title, description, links, ...rest } = props;\n const renderLink = ({ name, to, external, ...rest }: any) => {\n return (\n <Link to={to} key={name} external={external} {...rest}>\n {name}\n </Link>\n );\n };\n\n return (\n <TitledList\n title={title}\n description={description}\n items={links}\n itemRenderer={renderLink}\n {...rest}\n />\n );\n};\n","// @ts-ignore\nimport cls from \"classnames\";\nimport React, {\n FunctionComponent,\n useEffect,\n useCallback,\n Ref,\n ReactNode,\n CSSProperties,\n} from \"react\";\nimport { useState } from \"react\";\nimport { wait } from \"./utils\";\nimport { useDropImage } from \"./useDropImage\";\n\nexport interface ImagePreviewerProps {\n className?: string;\n visible: boolean;\n imageRef: Ref<HTMLImageElement>;\n imageSrc: string;\n imageSize: {\n width: number;\n height: number;\n };\n}\n\nexport interface ImageDropProps<T> {\n uploader: (file: File, img?: HTMLImageElement) => Promise<T>;\n onDrop?: (events: React.DragEvent<Element>, file: File) => void;\n onUploadFinish?: (result: T) => void;\n waitTimeAfterFinish?: number;\n defaultBgColor?: string;\n dragOverBgColor?: string;\n dropAreaStyle?: CSSProperties;\n placeholder?: any;\n className?: string;\n ghost?: boolean;\n children?: (props: ImagePreviewerProps) => ReactNode;\n}\n\nconst ImagePreviewer = (props: ImagePreviewerProps) => {\n const {\n visible: showImagePreviewer,\n imageRef,\n imageSize,\n imageSrc,\n className,\n } = props;\n return (\n <img\n className={cls(\n className,\n \"max-w-[100%]\",\n \"h-[auto]\",\n \"duration-300\",\n \"transition-opacity\",\n \"opacity-100\",\n {\n \"opacity-0\": !showImagePreviewer,\n \"!m-0\": !showImagePreviewer,\n \"!p-0\": !showImagePreviewer,\n }\n )}\n ref={imageRef}\n src={imageSrc}\n width={imageSize.width}\n height={imageSize.height}\n />\n );\n};\n\nconst GhostDropImage: FunctionComponent<ImageDropProps<any>> = (props) => {\n const {\n onDrop = () => {},\n onUploadFinish = () => {},\n uploader,\n waitTimeAfterFinish = 2000,\n className = \"\",\n children,\n placeholder,\n } = props;\n const [coverVisible, setCoverVisible] = useState(false);\n const [imageVisible, setImageVisible] = useState(false);\n const handleDocDragEnter = useCallback(() => {\n setCoverVisible(true);\n }, []);\n\n const {\n handleDragLeave,\n handleDragOver,\n handleDrop,\n\n imageRef,\n imageSize,\n imageSrc,\n\n reset,\n } = useDropImage({\n onImageLoad: () => {\n setImageVisible(true);\n },\n onDrop: async (e, file) => {\n onDrop(e, file);\n setCoverVisible(false);\n const result = await uploader(file);\n await wait(waitTimeAfterFinish);\n onUploadFinish(result);\n setImageVisible(false);\n reset();\n },\n });\n\n useEffect(() => {\n document.addEventListener(\"dragenter\", handleDocDragEnter);\n\n return () => {\n document.removeEventListener(\"dragenter\", handleDocDragEnter);\n };\n }, []);\n\n const coverCls = cls(\"fixed\", \"top-0\", \"left-0\", \"h-full\", \"w-full\", {\n \"lqip-blur\": coverVisible,\n \"z-[999]\": coverVisible,\n block: coverVisible,\n hidden: !coverVisible,\n });\n\n return (\n <>\n <div\n className={coverCls}\n onDragLeave={() => {\n handleDragLeave();\n setCoverVisible(false);\n }}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n />\n {!imageVisible && placeholder}\n {children ? (\n children({\n visible: imageVisible,\n imageRef,\n imageSize,\n imageSrc,\n })\n ) : (\n <ImagePreviewer\n className={className}\n visible={imageVisible}\n imageRef={imageRef}\n imageSrc={imageSrc}\n imageSize={imageSize}\n />\n )}\n </>\n );\n};\n\nexport const DropImage: FunctionComponent<ImageDropProps<any>> = (props) => {\n const {\n uploader,\n defaultBgColor = \"#F3F4F6\",\n onDrop,\n dragOverBgColor = \"#EFF6FF\",\n waitTimeAfterFinish = 2000,\n placeholder = \"\",\n className = \"\",\n onUploadFinish = () => {},\n ghost,\n children,\n dropAreaStyle = {\n width: 300,\n height: 300,\n },\n } = props;\n\n if (ghost) {\n return <GhostDropImage {...props} />;\n }\n\n const [showImagePreviewer, setShowImagePreviewer] = useState(false);\n const {\n handleDragLeave,\n handleDragOver,\n handleDrop,\n imageRef,\n imageSize,\n imageSrc,\n isDragOver,\n reset,\n } = useDropImage({\n onDrop,\n onImageLoad: async (image, file) => {\n await wait(500);\n setShowImagePreviewer(true);\n await onUploadFinish(await uploader(file, image));\n await wait(waitTimeAfterFinish);\n setShowImagePreviewer(false);\n await wait(500);\n reset();\n },\n });\n\n const getDropAreaStyle = () => {\n return Object.assign({}, dropAreaStyle, {\n background: isDragOver ? dragOverBgColor : defaultBgColor,\n width: imageSize.width || dropAreaStyle.width,\n height: imageSize.height || dropAreaStyle.height,\n });\n };\n\n return (\n <div\n className={cls(\n className,\n \"transition-all items-center justify-center flex duration-200 ease-in-out\",\n {\n \"shadow-input\": !imageSrc,\n \"shadow-empty\": imageSrc,\n }\n )}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n style={getDropAreaStyle()}\n >\n {children ? (\n children({\n visible: showImagePreviewer,\n imageRef,\n imageSize,\n imageSrc,\n })\n ) : (\n <ImagePreviewer\n visible={showImagePreviewer}\n imageRef={imageRef}\n imageSrc={imageSrc}\n imageSize={imageSize}\n />\n )}\n {!imageSrc && placeholder}\n </div>\n );\n};\n","export const wait = (d: number) => new Promise((r) => setTimeout(r, d));\nexport const noop = (e: React.DragEvent<Element>, file: File) => {};\n","import {\n useState,\n useCallback,\n useRef,\n DragEvent,\n DragEventHandler,\n} from \"react\";\n\nexport const useDropImage = (params?: {\n portraitImageWidth?: number;\n landscapeImageWidth?: number;\n onDrop?: (e: DragEvent<Element>, file: File) => void;\n onImageLoad?: (img: HTMLImageElement, file: File) => void;\n}) => {\n const [isDragOver, setIsDragOver] = useState(false);\n const [imageSrc, setImageSrc] = useState(\"\");\n const [imageSize, setImageSize] = useState({ width: 0, height: 0 });\n const imageFile = useRef<File | null>();\n\n const {\n portraitImageWidth = 384,\n landscapeImageWidth = 500,\n onDrop = () => {},\n onImageLoad = () => {},\n } = params || {};\n\n const reset = () => {\n setImageSrc(\"\");\n setImageSize({ width: 0, height: 0 });\n setIsDragOver(false);\n imageFile.current = null;\n };\n\n const calcDefaultImgSize = (\n img: { width: number; height: number },\n defaultWidth?: number\n ): { width: number; height: number } => {\n const { width, height } = img;\n const whRatio = width / height;\n const isHorizontal = width > height;\n\n const finalWidth =\n defaultWidth || (isHorizontal ? landscapeImageWidth : portraitImageWidth);\n\n return {\n width: finalWidth,\n height: finalWidth / whRatio,\n };\n };\n\n const setPreviewImageSrcByFile = (file: File) => {\n try {\n setImageSrc(URL.createObjectURL(file));\n } catch (e) {\n setImageSrc(\"\");\n }\n };\n\n const handleDragOver: DragEventHandler = useCallback((ev) => {\n ev.preventDefault();\n setIsDragOver(true);\n if (!ev.dataTransfer) {\n return;\n }\n ev.dataTransfer.dropEffect = \"move\";\n }, []);\n\n const handleDragLeave = useCallback(() => {\n setIsDragOver(false);\n }, []);\n\n const handleDrop: DragEventHandler = useCallback((ev) => {\n ev.preventDefault();\n setIsDragOver(false);\n const file = ev.dataTransfer ? ev.dataTransfer.files[0] : undefined;\n if (!file || !file.type.startsWith(\"image\")) {\n return;\n }\n imageFile.current = file;\n setPreviewImageSrcByFile(file);\n onDrop(ev, file);\n }, []);\n\n const handleImgLoad = (img: HTMLImageElement) => {\n const updateFunc = async () => {\n const p = \"decode\" in img ? img.decode : Promise.resolve;\n try {\n await p();\n } catch (e) {}\n setImageSize(\n calcDefaultImgSize({\n width: img.naturalWidth,\n height: img.naturalHeight,\n })\n );\n if (!imageFile.current) {\n return;\n }\n onImageLoad(img, imageFile.current);\n };\n\n if (img.complete) {\n updateFunc().then();\n return;\n }\n\n img.onload = updateFunc;\n };\n\n const imageRef = useCallback((input: HTMLImageElement) => {\n if (!input) {\n return;\n }\n\n handleImgLoad(input);\n }, []);\n\n return {\n isDragOver,\n\n imageSrc,\n imageRef,\n imageSize,\n\n handleDragOver,\n handleDragLeave,\n handleDrop,\n\n reset,\n };\n};\n","// @ts-ignore\nimport cls from \"classnames\";\nimport React, { ReactElement } from \"react\";\n\nexport type threeColLayoutProps = {\n leftRenderer?: () => ReactElement | null;\n rightRenderer?: () => ReactElement | null;\n middleRenderer?: () => ReactElement | null;\n};\n\nexport const ThreeColLayout = (props: threeColLayoutProps) => {\n const { leftRenderer, middleRenderer, rightRenderer } = props;\n const colCls = cls(\"max-h-full overflow-auto xl:!block py-128\");\n return (\n <div className=\"grid grid-cols-1 xl:grid-cols-3 gap-4 h-full w-full\">\n <div className={cls(\"hidden\", colCls)}>\n {leftRenderer && leftRenderer()}\n </div>\n <div\n className={cls(colCls, \"sm:px-128 xl:px-0 no-scrollbar\", \"relative\", {\n hidden: !middleRenderer,\n })}\n >\n {middleRenderer && middleRenderer()}\n </div>\n <div className={cls(\"hidden\", colCls)}>\n {rightRenderer && rightRenderer()}\n </div>\n </div>\n );\n};\n","// @ts-ignore\nimport classnames from \"classnames\";\nimport React, { useState } from \"react\";\nimport { ImgProps, ossProcessType } from \"./types\";\nimport { addOssWebpProcessStyle, calcDefaultImgSize, delay } from \"./utils\";\n\nconst emptyDataURL =\n \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\";\n\nexport * from \"./types\";\nexport const Img = (props: ImgProps) => {\n const {\n src,\n className,\n renderedWidth,\n avgColor,\n thumbnailSrc,\n processType,\n size,\n removeBlurBgAfterLoad,\n } = props;\n\n const { width, height } = calcDefaultImgSize(\n props,\n renderedWidth,\n size === \"normal\" ? 0.6 : 1\n );\n const [loaded, setLoaded] = useState(false);\n const [decoded, setDecoded] = useState(false);\n\n const baseWrapperStyle = {\n width: \"initial\",\n height: \"initial\",\n backgroundSize: \"cover\",\n backgroundColor: avgColor || \"#f1f1f1\",\n backgroundPosition: \"0% 0%\",\n backgroundImage: `url(${\n thumbnailSrc\n ? thumbnailSrc\n : addOssWebpProcessStyle(src, ossProcessType.THUMBNAIL)\n })`,\n };\n\n const dynamicWrapperStyle =\n loaded && removeBlurBgAfterLoad ? { backgroundImage: \"none\" } : {};\n\n const handleImgLoad = (img: HTMLImageElement) => {\n const updateFunc = async () => {\n const p = \"decode\" in img ? img.decode : Promise.resolve;\n try {\n await p();\n } catch (e) {}\n setDecoded(true);\n setLoaded(true);\n };\n\n if (img.complete) {\n updateFunc().then();\n return;\n }\n\n img.onload = updateFunc;\n };\n\n return (\n <span\n className={classnames(\n className,\n \"inline-block\",\n \"relative\",\n \"overflow-hidden\",\n \"duration-500\",\n \"leading-none\",\n \"align-bottom\",\n \"border-0\"\n )}\n draggable={false}\n style={Object.assign({}, baseWrapperStyle, dynamicWrapperStyle)}\n >\n <img\n ref={(input) => {\n if (!input) {\n return;\n }\n\n handleImgLoad(input);\n }}\n width={width}\n height={height}\n src={addOssWebpProcessStyle(src, processType || ossProcessType.WEBP)}\n decoding=\"async\"\n loading=\"lazy\"\n crossOrigin=\"anonymous\"\n style={{\n contentVisibility: \"auto\",\n }}\n className={classnames(\n \"transition-opacity\",\n \"opacity-100\",\n \"duration-500\",\n {\n \"opacity-0\": !decoded,\n }\n )}\n />\n <img\n src={emptyDataURL}\n className={classnames(\n \"lqip-blur\",\n \"absolute\",\n \"h-full\",\n \"w-full\",\n \"duration-500\",\n \"transition-opacity\",\n {\n \"opacity-100\": !decoded,\n \"opacity-0\": decoded,\n }\n )}\n crossOrigin=\"anonymous\"\n style={{ top: 0, left: 0 }}\n />\n </span>\n );\n};\n","export enum ossProcessType {\n THUMBNAIL = \"thumbnail\",\n WEBP = \"webp\",\n NULL = \"null\",\n oWEBP = \"owebp\",\n PROG = \"prog\",\n}\n\nexport interface Photo {\n src: string;\n width: number;\n height: number;\n processType?: ossProcessType;\n avgColor?: string;\n thumbnailSrc?: string;\n renderedWidth?: number;\n}\n\nexport interface ImgProps extends Photo {\n className?: string;\n size?: \"large\" | \"normal\";\n removeBlurBgAfterLoad?: boolean;\n}\n","import { ossProcessType, Photo } from \"./types\";\n\nexport const addOssWebpProcessStyle = (\n originUrl: string,\n style: ossProcessType\n): string => {\n const OSS_ADDRESS = \"https://zjh-im-res.oss-cn-shenzhen.aliyuncs.com\";\n const isInvalidOSSImgUrl = !originUrl.startsWith(OSS_ADDRESS);\n const isProcessedOssImg = /x-oss-process=style\\/\\w+/.test(originUrl);\n const isWebpImg = /webp$/.test(originUrl);\n\n if (\n isInvalidOSSImgUrl ||\n isProcessedOssImg ||\n (isWebpImg && style === ossProcessType.WEBP) ||\n style === ossProcessType.NULL\n ) {\n return originUrl;\n }\n return `${originUrl}?x-oss-process=style/${style}`;\n};\n\nexport const calcDefaultImgSize = (\n img: Photo,\n defaultWidth?: number,\n scale?: number\n): { width: number; height: number } => {\n const { width, height } = img;\n const whRatio = width / height;\n const isHorizontal = width > height;\n\n const finalWidth =\n (defaultWidth || (isHorizontal ? 576 : 384)) * (scale || 1);\n\n return {\n width: finalWidth,\n height: finalWidth / whRatio,\n };\n};\n\nexport const delay = (time: number) => {\n return new Promise((resolve) => {\n setTimeout(resolve, time);\n });\n};\n","// @ts-ignore\nimport classnames from \"classnames\";\nimport React, { ReactElement, ReactNode } from \"react\";\nimport { RandomRowsLayout, RandomRowsLayoutProps } from \"./RandomRowsLayout\";\nimport { ImgProps } from \"./types\";\nimport { Img } from \"./Img\";\n\nexport type ImageRenderer = (\n Img: ReactElement,\n index: number,\n col: number,\n randBool: boolean\n) => ReactNode;\n\nexport interface GalleryProps\n extends Omit<\n RandomRowsLayoutProps,\n \"classNames\" | \"cellsCount\" | \"cellRenderer\"\n > {\n className?: string;\n images: ImgProps[];\n children?: ReactNode;\n imageRenderer?: ImageRenderer;\n}\n\nconst defaultImageRenderer: ImageRenderer = (img, index, col) => {\n return (\n <div\n className={classnames(\"mb-128\", {\n \"md:mr-64\": col === 0,\n \"md:ml-64\": col !== 0,\n })}\n >\n {img}\n </div>\n );\n};\n\nexport const Gallery = (props: GalleryProps) => {\n const {\n images,\n children,\n imageRenderer = defaultImageRenderer,\n className = \"\",\n ...rest\n } = props;\n\n const renderImage = (index: number, isLargeImage: boolean, col: number) => {\n const image: any = images[index];\n if (!image) {\n return null;\n }\n\n return imageRenderer(\n <Img {...image} size={isLargeImage ? \"large\" : \"normal\"} />,\n index,\n col,\n isLargeImage\n );\n };\n\n return (\n <div className={classnames(\"w-full flex justify-center\", className)}>\n <RandomRowsLayout\n classNames=\"mx-32 mt-128 max-w-screen-xl\"\n cellsCount={images.length}\n cellRenderer={renderImage}\n {...rest}\n />\n {children}\n </div>\n );\n};\n","// @ts-ignore\nimport classnames from \"classnames\";\nimport React from \"react\";\n\nconst last = <T extends any>(arr: T[]): T => {\n if (arr.length < 2) {\n return arr[0];\n }\n\n return arr[arr.length - 1];\n};\n\nconst defaultCellClsGenerator = (\n colNum: number,\n isCenterSingleCell: boolean\n) => {\n const isSingleCell = colNum === 1;\n const singleCellWidth = isCenterSingleCell ? \"full\" : \"1/2\";\n const cellWidth = isSingleCell ? singleCellWidth : \"1/2\";\n\n return `md:basis-${cellWidth}`;\n};\n\nexport const generateRandomBoolean = (p: number = 0.5): boolean =>\n Math.random() < p;\n\nconst generateRandomColNum = (total: number): number[] => {\n const colNumArr = [];\n if (total <= 2) {\n return [total];\n }\n\n let colSum = 0;\n while (colSum < total) {\n const p: number = last<number>(colNumArr) === 2 ? 0.9 : 0.5;\n const num = generateRandomBoolean(p) ? 1 : 2;\n colNumArr.push(num);\n colSum += num;\n }\n return colNumArr;\n};\n\nexport interface RandomRowsLayoutProps {\n classNames?: string;\n cellWrapperClsGenerator?: (colNum: number, randBoolean: boolean) => string;\n cellsCount: number;\n cellRenderer: (\n index: number,\n randomBool: boolean,\n col: number\n ) => React.ReactNode;\n}\n\nconst sumColNumByIdx = (colNums: number[], idx: number): number => {\n let sum = 0;\n for (let i = 0; i < idx; i++) {\n sum += colNums[i];\n }\n return sum;\n};\n\nexport const RandomRowsLayout = React.memo(\n (props: RandomRowsLayoutProps) => {\n const {\n cellsCount,\n cellRenderer,\n classNames = \"\",\n cellWrapperClsGenerator = defaultCellClsGenerator,\n } = props;\n const colNums = generateRandomColNum(cellsCount);\n\n return (\n <div className={classNames}>\n {colNums.map((colNum, row) => {\n const randBool = generateRandomBoolean(\n colNum < 2 ? 0.6 : 0.5 /* 增加单列大图概率 */\n );\n const randBoolArr = [randBool, !randBool];\n return (\n <div className=\"flex items-center flex-wrap\" key={row}>\n {new Array(colNum).fill(null).map((_, col) => {\n const generatedCls = cellWrapperClsGenerator(\n colNum,\n generateRandomBoolean()\n );\n\n const currentIdx = sumColNumByIdx(colNums, row) + col;\n\n const cls = classnames(\n \"flex items-center justify-center flex-shrink-0 flex-grow-0\",\n \"basis-full\",\n generatedCls\n );\n return (\n <div className={cls} key={col}>\n {cellRenderer(currentIdx, randBoolArr[col], col)}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n },\n (prevProps, nextProps) => {\n return prevProps.cellsCount === nextProps.cellsCount;\n }\n);\n","// @ts-ignore\nimport Phenomenon from \"phenomenon\";\n// @ts-ignore\nimport classNames from \"classnames\";\nimport React, { useEffect, useRef } from \"react\";\nimport { createSettings, ISettings } from \"./createSettings\";\nimport { createOptions } from \"./createOptions\";\n\nexport interface LoadingSpiralProps extends ISettings {\n className?: string;\n}\n\nexport const LoadingSpiral = (props?: LoadingSpiralProps) => {\n const { className, step } = props || {};\n const canvasRef = useRef<HTMLCanvasElement>(null)\n\n useEffect(() => {\n if (!canvasRef.current) {\n return;\n }\n\n const phenomenon = new Phenomenon({\n settings: createSettings({ canvas: canvasRef.current, step }),\n context: {\n antialias: true,\n alpha: true,\n },\n });\n\n phenomenon.add(\n \"spiral\",\n createOptions()\n );\n }, []);\n\n return (\n <canvas\n style={{\n maxWidth: 500,\n maxHeight: 500,\n imageRendering: 'pixelated',\n }}\n ref={canvasRef}\n className={classNames(\n \"h-full w-full overflow-hidden flex justify-center items-center aspect-1\",\n className\n )}\n />\n );\n};\n","export interface ISettings {\n canvas?: HTMLCanvasElement;\n step?: number;\n}\n\nexport const createSettings = (settings: ISettings) => {\n const { canvas, step = 0.09 } = settings;\n\n const uniforms = {\n uProgress: {\n type: \"float\",\n value: 0.0,\n },\n };\n\n return {\n uniforms,\n devicePixelRatio: window.devicePixelRatio,\n shouldRender: true,\n canvas,\n onRender: (r: any) => {\n const { uProgress } = r.uniforms;\n uProgress.value += step;\n },\n };\n};\n","export enum ATTR {\n PERCENT = \"aPercent\",\n POINT_SIZE = 'aPointSize'\n}\n\nexport const VERTEX_SHADER = `\n attribute float ${ATTR.PERCENT};\n attribute float ${ATTR.POINT_SIZE};\n\n uniform mat4 uProjectionMatrix;\n uniform mat4 uModelMatrix;\n uniform mat4 uViewMatrix;\n uniform float uProgress;\n\n varying vec3 vColor;\n \n vec3 curve(float _percent) {\n const float PI2 = 3.141592653589793 * 2.0;\n const float _length = 0.3;\n const float radius = 0.056;\n float t = mod(_percent, 0.25) / 0.25;\n t = mod(_percent, 0.25) - (2.0 * (1.0 - t) * t * -0.0185 + t * t * 0.25);\n float x = _length * sin(PI2 * _percent);\n float y = radius * cos(PI2 * 3.0 * _percent);\n\n if (\n floor(_percent / 0.25) == 0.0\n || floor(_percent / 0.25) == 2.0\n ) {\n t = t * -1.0;\n }\n float z = radius * sin(PI2 * 2.0 * (_percent - t));\n return vec3(x, y, z);\n }\n\n mat4 rotateX(float _angle){\n return mat4(\n 1.0, 0.0, 0.0, 0.0,\n 0.0, cos(_angle), -sin(_angle), 0.0,\n 0.0, sin(_angle), cos(_angle), 0.0,\n 0.0, 0.0, 0.0, 1.0\n );\n }\n\n void main(){\n gl_Position = uProjectionMatrix\n * uModelMatrix\n * uViewMatrix\n * rotateX(uProgress)\n * vec4(curve(${ATTR.PERCENT}), 1.0);\n\n gl_PointSize = ${ATTR.POINT_SIZE};\n }\n`;\n\nexport const FRAGMENT_SHADER = `\n precision mediump float;\n uniform float uProgress;\n void main(){\n gl_FragColor = vec4(0.81, 0.83, 0.85, 1.0);\n }\n`;\n","import { ATTR, VERTEX_SHADER, FRAGMENT_SHADER } from \"./constants\";\n\nexport const createOptions = () => {\n const attributes = [\n {\n name: ATTR.PERCENT,\n data: (i: number, total: number) => [i / total],\n size: 1,\n },\n {\n name: ATTR.POINT_SIZE,\n data: () => [window.devicePixelRatio * 1.3],\n size: 1,\n },\n ];\n\n const uniforms = {\n uProgress: {\n type: \"float\",\n value: [0.0],\n },\n }\n\n return {\n uniforms,\n attributes,\n multiplier: 4000,\n vertex: VERTEX_SHADER,\n fragment: FRAGMENT_SHADER,\n };\n};\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport cls from \"classnames\";\n\nexport interface DropZoneProps {\n onDrop: (files: File) => void;\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport const DropZone = (props: DropZoneProps) => {\n const { onDrop, children, className, style } = props;\n\n const [coverVisible, setCoverVisible] = useState(false);\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault();\n setCoverVisible(false);\n const file = e.dataTransfer.files[0];\n onDrop(file);\n };\n\n const handleDocDragEnter = useCallback((e: DragEvent) => {\n e.preventDefault();\n setCoverVisible(true);\n }, []);\n\n useEffect(() => {\n document.addEventListener(\"dragenter\", handleDocDragEnter);\n\n return () => {\n document.removeEventListener(\"dragenter\", handleDocDragEnter);\n };\n }, []);\n\n if (props.disabled) {\n return <>{children}</>;\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault();\n setCoverVisible(true);\n };\n\n const coverCls = cls(\"fixed\", \"top-0\", \"left-0\", \"h-full\", \"w-full\", {\n \"text-blur\": coverVisible,\n \"z-[999]\": coverVisible,\n block: coverVisible,\n hidden: !coverVisible,\n });\n\n return (\n <>\n <div\n className={coverCls}\n onDragLeave={() => {\n setCoverVisible(false);\n }}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n />\n {children}\n </>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport {\n CheckIcon,\n ChevronRightIcon,\n DotFilledIcon,\n} from \"@radix-ui/react-icons\";\n\nimport cn from \"classnames\";\n\nconst ContextMenu = ContextMenuPrimitive.Root;\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"pl-32\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n));\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n));\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-32\",\n className\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-32 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName =\n ContextMenuPrimitive.CheckboxItem.displayName;\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-32 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <DotFilledIcon className=\"h-4 w-4 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-foreground\",\n inset && \"pl-32\",\n className\n )}\n {...props}\n />\n));\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;\n\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n );\n};\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { z } from \"zod\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport {\n Controller,\n useForm,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\";\n\nimport cn from \"classnames\";\nimport { Label } from \"../label\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n);\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"FormItem\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"FormLabel\";\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"FormControl\";\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message) : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-sm font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n useFormField,\n Form,\n z,\n zodResolver,\n useForm,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport cn from \"classnames\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as React from \"react\";\n\nimport cn from \"classnames\";\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import React, { useEffect } from \"react\";\nimport { useRenderer } from \"./useRenderer\";\n\nexport interface AttributeProps {\n name: string;\n size: number;\n data?: any;\n}\n\nexport interface UniformProps {\n type: string;\n value: Array<number>;\n location?: WebGLUniformLocation;\n}\n\nexport interface ICanvasProps extends React.HTMLAttributes<HTMLCanvasElement> {\n fragment: string;\n vertex?: string;\n uniforms?: {\n [key: string]: UniformProps;\n };\n attributes?: Array<AttributeProps>;\n onRender?: (r: any) => void;\n onInstRender?: (r: UniformProps) => void;\n name?: string;\n}\n\nexport const Canvas = (props: ICanvasProps) => {\n const {\n fragment,\n vertex,\n uniforms = {},\n name,\n attributes = [],\n onRender,\n ...rest\n } = props;\n\n const { canvasRef, renderer } = useRenderer(uniforms);\n const instName = name ?? \"default\";\n\n useEffect(() => {\n if (renderer == null || canvasRef.current == null) {\n return;\n }\n\n // deep copy attributes\n const aCopy = attributes.map((attr) => ({\n ...attr,\n data: (i: number, total: number) => attr.data(i, total),\n }));\n\n // deep copy uniforms\n const uCopy = Object.keys(uniforms).reduce((acc: any, key) => {\n acc[key] = {\n ...uniforms[key],\n value: [...uniforms[key].value],\n };\n return acc;\n }, {});\n\n const vertices: Array<any> = [\n { x: -100, y: 100, z: 0 },\n { x: -100, y: -100, z: 0 },\n { x: 100, y: 100, z: 0 },\n { x: 100, y: -100, z: 0 },\n { x: -100, y: -100, z: 0 },\n { x: 100, y: 100, z: 0 },\n ];\n\n renderer.add(instName, {\n uniforms: {\n ...uCopy,\n uProgress: {\n type: \"float\",\n value: 0.0,\n },\n },\n attributes: aCopy,\n fragment,\n vertex,\n mode: 4,\n // @ts-ignore\n geometry: { vertices },\n // @ts-ignore\n onRender: (inst: any) => {\n if (inst.uniforms.uProgress != undefined) {\n inst.uniforms.uProgress.value += 0.09;\n }\n\n if (onRender) {\n onRender(inst);\n }\n },\n });\n\n return () => {\n renderer.remove(instName);\n };\n }, [renderer]);\n\n return (\n <canvas\n style={{\n ...props.style,\n imageRendering: \"pixelated\",\n }}\n ref={canvasRef}\n {...rest}\n />\n );\n};\n","import { UniformProps } from \"./Canvas\";\nimport { useEffect, useRef, useState } from \"react\";\nimport Phenomenon from \"phenomenon\";\n\ntype uniformType = {\n [key: string]: UniformProps;\n};\n\nexport const useRenderer = (uniform: uniformType) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const [renderer, setRenderer] = useState<Phenomenon | null>(null);\n\n useEffect(() => {\n if (!canvasRef.current) {\n return;\n }\n\n const renderer = new Phenomenon({\n settings: {\n uniforms: uniform,\n devicePixelRatio: window.devicePixelRatio,\n shouldRender: true,\n canvas: canvasRef.current,\n mode: 4,\n },\n context: {\n antialias: true,\n alpha: true,\n },\n });\n\n setRenderer(renderer);\n\n return () => {\n renderer?.destroy();\n window.removeEventListener(\"resize\", renderer?.resize);\n };\n }, [canvasRef.current]);\n\n return {\n canvasRef,\n renderer,\n };\n};\n"],"mappings":"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","names":["Error","Label","import_classnames","import_react","classNames","React","import_react","import_classnames","cls","React","React","classNames","import_react","import_classnames","ButtonType","React","classNames","React","import_react","import_react","import_classnames","import_classnames","import_react","LinkColor","classNames","React","BaseLink","React","classNames","import_react_router_dom","React","import_classnames","import_react","React","classNames","import_react","React","import_react","React","Error","import_react","React","import_react","React","import_classnames","import_react","import_classnames","import_react","React","cls","rest","SkeletonColor","COLOR_MAPPING","React","classNames","import_classnames","import_react","import_react","calcDefaultImgSize","React","cls","import_classnames","import_react","cls","React","import_classnames","import_react","ossProcessType","React","classnames","import_classnames","import_react","import_classnames","import_react","React","classNames","cls","classnames","React","classnames","import_classnames","import_react","Phenomenon","React","classNames","import_react","import_classnames","React","cls","React","import_classnames","cn","React","import_zod","import_classnames","React","import_classnames","Label","cn","cn","Label","React","import_classnames","cn","import_react","import_react","import_phenomenon","renderer","Phenomenon","React"]}
|
|
1
|
+
{"version":3,"sources":["../lib/index.ts","../lib/article/Article.tsx","../lib/blink-dot/BlinkDot.tsx","../lib/blur-cover/BlurCover.tsx","../lib/button/Button.tsx","../lib/logo/Logo.tsx","../lib/nav/Nav.tsx","../lib/breadcrumb/Breadcrumb.tsx","../lib/link/Link.tsx","../lib/tag/Tag.tsx","../lib/panel/Panel.tsx","../lib/page/Page.tsx","../lib/pop-confirm/PopConfirm.tsx","../lib/table/Table.tsx","../lib/skeleton/Seleton.tsx","../lib/list/list.tsx","../lib/drop-image/DropImage.tsx","../lib/drop-image/utils.ts","../lib/drop-image/useDropImage.ts","../lib/layout/layout.tsx","../lib/img/Img.tsx","../lib/img/types.ts","../lib/img/utils.ts","../lib/img/Gallery.tsx","../lib/img/RandomRowsLayout.tsx","../lib/loading-spiral/LoadingSpiral.tsx","../lib/loading-spiral/createSettings.ts","../lib/loading-spiral/constants.ts","../lib/loading-spiral/createOptions.ts","../lib/drop-zone/DropZone.tsx","../lib/context-menu/index.tsx","../lib/form/index.tsx","../lib/label/index.tsx","../lib/input/index.tsx","../lib/canvas/Canvas.tsx","../lib/canvas/useRenderer.ts"],"sourcesContent":["import \"./index.css\";\n\nexport * from \"./article/Article\";\nexport * from \"./button/Button\";\nexport * from \"./logo/Logo\";\nexport * from \"./nav/Nav\";\nexport * from \"./link/Link\";\nexport * from \"./tag/Tag\";\nexport * from \"./panel/Panel\";\nexport * from \"./page/Page\";\nexport * from \"./breadcrumb/Breadcrumb\";\nexport * from \"./pop-confirm/PopConfirm\";\nexport * from \"./table/Table\";\nexport * from \"./skeleton/Seleton\";\nexport * from \"./drop-image/DropImage\";\nexport * from \"./blink-dot/BlinkDot\";\nexport * from \"./layout/layout\";\nexport * from \"./list/list\";\nexport * from \"./img/Img\";\nexport * from \"./img/Gallery\";\nexport * from \"./loading-spiral/LoadingSpiral\";\nexport * from \"./drop-zone/DropZone\";\nexport * from \"./context-menu\";\nexport * from \"./form\";\nexport * from \"./label\";\nexport * from \"./input\";\nexport * from \"./blur-cover/BlurCover\";\nexport * from \"./canvas/Canvas\";\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport React, { FunctionComponent } from \"react\";\nimport { BlinkDot } from \"../blink-dot/BlinkDot\";\nimport { BlurCover } from \"../blur-cover/BlurCover\";\n\nexport type ArticleProps = {\n title: any;\n date?: string;\n className?: string;\n content?: any;\n children: any;\n description?: any;\n loading?: boolean;\n};\n\nexport const Article: FunctionComponent<ArticleProps> = (props) => {\n const { title, content, children, date, className, description } = props;\n return (\n <div className={classNames(\"article\", className)}>\n <div className=\"mb-16 leading-none\">\n <span className=\"text-[2.25rem] p-16\">{title}</span>\n {props.loading && title && (\n <BlinkDot status=\"blink\" className=\"!-top-[42px] !-left-16\" />\n )}\n {date ? (\n <div className=\"py-16 px-18 pb-0 text-gray-400\">\n <small>{date}</small>\n </div>\n ) : null}\n </div>\n {description && <div className=\"mb-128\">{description}</div>}\n <div className=\"text-black relative p-16\">\n {children || content}\n <BlurCover status={props.loading ? \"show\" : \"silent\"} />\n {/*<BlurCover status={\"show\"} />*/}\n </div>\n </div>\n );\n};\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport React from \"react\";\n\nexport type BLinkDotProps = {\n className?: string;\n status?: \"blink\" | \"still\" | \"hidden\";\n};\n\nexport const BlinkDot = (props: BLinkDotProps) => {\n const { className } = props;\n const status = props.status || \"hidden\";\n\n const statusCls = classNames({\n \"animate-ping-fast\": status === \"blink\",\n hidden: status === \"hidden\",\n });\n\n return (\n <span\n className={classNames(\"inline-flex justify-center items-center relative\")}\n >\n <span\n className={`absolute inline-flex h-full w-full rounded-full text-red-600 -top-[28px] -left-[3px] ${statusCls} ${className}`}\n >\n .\n </span>\n </span>\n );\n};\n","import React from \"react\";\nimport cls from \"classnames\";\n\nexport type BlurCoverProps = {\n status: \"silent\" | \"show\";\n className?: string;\n size?: number;\n};\n\nexport const BlurCover = (props: BlurCoverProps) => {\n const { status } = props;\n\n const coverCls = cls(\n \"absolute\",\n \"block\",\n \"text-blur\",\n \"transition-all\",\n \"duration-200\",\n \"top-0\",\n \"left-0\",\n \"h-full\",\n \"w-full\",\n {\n \"z-[49]\": status === \"show\",\n \"opacity-0\": status === \"silent\",\n \"opacity-100\": status === \"show\",\n \"pointer-events-none\": status === \"silent\",\n },\n props.className\n );\n return <div className={coverCls} />;\n};\n","import React from \"react\";\nimport { EventHandler } from \"react\";\nimport classNames from \"classnames\";\n\nexport enum ButtonType {\n DANGER = \"danger\",\n PRIMARY = \"primary\",\n NORMAL = \"normal\",\n DISABLED = \"disabled\",\n}\n\nexport interface ButtonProps {\n className?: string;\n children: React.ReactNode;\n type?: ButtonType;\n onClick: EventHandler<React.MouseEvent<HTMLButtonElement>>;\n btnType?: \"submit\" | \"reset\" | \"button\";\n}\n\nexport function Button(props: ButtonProps) {\n const typeClsMap = {\n [ButtonType.DANGER]: \"text-red-500\",\n [ButtonType.PRIMARY]: \"text-blue-600\",\n [ButtonType.DISABLED]: \"text-gray-400 cursor-not-allowed\",\n [ButtonType.NORMAL]: \"text-black\",\n };\n\n const [pressed, setPressed] = React.useState(false);\n\n const { type = ButtonType.NORMAL, className = \"\", onClick, btnType } = props;\n const shadowTransCls =\n type === ButtonType.DISABLED\n ? \"\"\n : classNames(\n \"transition-all duration-200 ease-in-out shadow-button active:shadow-empty\",\n {\n \"shadow-empty\": pressed,\n \"hover:shadow-button-hover\": !pressed,\n },\n );\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (type === ButtonType.DISABLED) {\n return;\n }\n\n setPressed(true);\n\n setTimeout(() => {\n setPressed(false);\n onClick(e);\n }, 280);\n };\n\n return (\n <button\n className={`${typeClsMap[type]} ${className} ${shadowTransCls} py-8 px-16 transition-all duration-200 ease-in-out`}\n onClick={handleClick}\n type={btnType}\n >\n {props.children}\n </button>\n );\n}\n\nButton.displayName = \"Button\";\n","import * as React from \"react\";\n\nexport type LogoProps = {\n className?: string;\n onClick?: () => void;\n};\n\nexport const Logo = React.memo(\n (props: LogoProps) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n onClick={props.onClick}\n className={props.className}\n >\n <path\n d=\"M29.1152 21.3106C32.0605 21.3106 34.4481 18.9101 34.4481 15.9489V24.6457C34.4481 25.7585 33.5508 26.6607 32.444 26.6607H15.1207C14.0138 26.6607 13.1166 25.7585 13.1166 24.6457V15.9489C13.1166 18.9101 15.5042 21.3106 18.4494 21.3106C21.3947 21.3106 23.7823 18.9101 23.7823 15.9489C23.7823 18.9101 26.17 21.3106 29.1152 21.3106Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M23.7823 15.9373L23.7823 15.9489C23.7823 15.9451 23.7823 15.9412 23.7823 15.9373Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M23.1143 28.004C23.1205 30.9598 25.5057 33.3541 28.4472 33.3541C31.3886 33.3541 33.7738 30.9598 33.7801 28.004H23.1143Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M13.7846 28.004C13.7846 28.0079 13.7846 28.0117 13.7846 28.0156C13.7908 30.9714 16.1761 33.3657 19.1175 33.3657C22.0589 33.3657 24.4442 30.9714 24.4504 28.0156H13.7846V28.004Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M14.4527 15.9373C14.4527 16.6792 13.8545 17.2806 13.1166 17.2806C12.3786 17.2806 11.7805 16.6792 11.7805 15.9373C11.7805 15.1954 12.3786 14.594 13.1166 14.594C13.8545 14.594 14.4527 15.1954 14.4527 15.9373Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M25.1184 15.2657C25.1184 16.0076 24.5202 16.609 23.7823 16.609C23.0444 16.609 22.4462 16.0076 22.4462 15.2657C22.4462 14.5238 23.0444 13.9224 23.7823 13.9224C24.5202 13.9224 25.1184 14.5238 25.1184 15.2657Z\"\n fill=\"#9CA3AF\"\n />\n <path\n d=\"M35.7842 15.9373C35.7842 16.6792 35.186 17.2806 34.4481 17.2806C33.7102 17.2806 33.112 16.6792 33.112 15.9373C33.112 15.1954 33.7102 14.594 34.4481 14.594C35.186 14.594 35.7842 15.1954 35.7842 15.9373Z\"\n fill=\"#9CA3AF\"\n />\n </svg>\n ),\n () => {\n return true;\n }\n);\n","import React from \"react\";\nimport { Breadcrumb, PathObj } from \"../breadcrumb/Breadcrumb\";\nimport { Logo } from \"../logo/Logo\";\nimport { BlinkDot } from \"../blink-dot/BlinkDot\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport type NavProps = {\n paths: PathObj[];\n loading?: boolean;\n mini?: boolean;\n className?: string;\n customLogo?: React.ReactNode;\n};\n\nexport const Nav = (props: NavProps) => {\n if (props.mini) {\n return (\n <div className={`p-8 w-full flex items-center ${props.className}`}>\n <Breadcrumb paths={props.paths} />\n </div>\n );\n }\n\n const nav = useNavigate();\n\n return (\n <div className={`p-8 w-full flex items-center ${props.className}`}>\n {props.customLogo || (\n <Logo\n className=\"mr-8\"\n onClick={() => {\n nav(\"/\");\n }}\n />\n )}\n <Breadcrumb paths={props.paths} loading={props.loading} />\n </div>\n );\n};\n","import React from \"react\";\n// @ts-ignore\nimport classNames from \"classnames\";\nimport { Link } from \"../link/Link\";\n\nexport type PathObj = {\n path?: string;\n name: string;\n};\n\nexport type BreadcrumbProps = {\n paths: PathObj[];\n loading?: boolean;\n};\n\nexport const Breadcrumb = (props: BreadcrumbProps) => {\n const { paths, loading } = props;\n const PathElements = paths.map(({ path, name }, index) => {\n const slash = index === 0 ? null : <span className=\"text-gray-400\">/</span>;\n const isNonEnName = !/^[a-zA-Z~]+$/.test(name);\n const offsetCls = classNames({ \"relative top-[2px]\": isNonEnName });\n const isLast = index === paths.length - 1;\n const status = loading && isLast ? \"blink\" : \"hidden\";\n return (\n <span key={path || name}>\n {slash}\n <Link\n to={path ?? \"\"}\n className={offsetCls}\n readonly={!path}\n status={status}\n >\n {name}\n </Link>\n </span>\n );\n });\n return <div className=\"breadcrumb\">{PathElements}</div>;\n};\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport { Link as BaseLink, LinkProps as BaseLinkProps } from \"react-router-dom\";\nimport React from \"react\";\nimport { BlinkDot } from \"../blink-dot/BlinkDot\";\n\nexport enum LinkColor {\n BLUE = \"blue\",\n RED = \"red\",\n GRAY = \"gray\",\n}\n\nexport interface LinkProps extends BaseLinkProps {\n to: string;\n color?: LinkColor;\n className?: string;\n external?: boolean;\n name?: any;\n children?: any;\n readonly?: boolean;\n status?: \"blink\" | \"still\" | \"hidden\";\n}\n\nconst COLOR_MAPPING = {\n [LinkColor.BLUE]: \"text-blue-600\",\n [LinkColor.RED]: \"text-red-500\",\n [LinkColor.GRAY]: \"text-gray-400\",\n};\n\nconst HOVER_COLOR_MAPPING = {\n [LinkColor.BLUE]:\n \"[&:not(:focus)]:hover:md:bg-blue-100 [&:not(:focus)]:hover:md:text-blue-600\",\n [LinkColor.RED]:\n \"[&:not(:focus)]:hover:md:bg-red-100 [&:not(:focus)]:hover:md:text-red-500\",\n [LinkColor.GRAY]:\n \"[&:not(:focus)]:hover:md:bg-gray-100 [&:not(:focus)]:hover:md:text-gray-400\",\n};\n\nconst FOCUS_BG_COLOR_MAPPING = {\n [LinkColor.BLUE]: \"focus:bg-blue-100\",\n [LinkColor.RED]: \"focus:bg-red-100\",\n [LinkColor.GRAY]: \"focus:bg-gray-100\",\n};\n\nexport const Link = (props: LinkProps) => {\n const {\n color = LinkColor.BLUE,\n external,\n className,\n children,\n status,\n readonly,\n ...rest\n } = props;\n\n const linkCls = classNames(\n className,\n \"rounded\",\n \"!no-underline\",\n \"transition-colors\",\n // \"focus:text-white\",\n COLOR_MAPPING[color],\n HOVER_COLOR_MAPPING[color],\n FOCUS_BG_COLOR_MAPPING[color],\n );\n\n if (external) {\n return (\n <a\n href={props.to}\n className={linkCls}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{ padding: 4 }}\n >\n {children}\n </a>\n );\n }\n\n if (readonly) {\n const isNonEnName = !/^[a-zA-Z~]+$/.test(children);\n const offsetCls = classNames({ \"relative top-[2px]\": isNonEnName });\n return (\n <>\n <span\n className={classNames(\"text-gray-400\", offsetCls)}\n style={{ padding: 4 }}\n >\n {children}\n </span>\n <BlinkDot status={status} />\n </>\n );\n }\n\n return (\n <>\n <BaseLink {...rest} className={linkCls} style={{ padding: 4 }}>\n {children}\n </BaseLink>\n <BlinkDot className=\"-top-3 left-1\" status={status} />\n </>\n );\n};\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { Link, LinkColor, LinkProps } from \"../link/Link\";\n\nexport interface TagProps\n extends Pick<\n LinkProps,\n \"to\" | \"children\" | \"className\" | \"external\" | \"status\" | \"readonly\"\n > {\n prefix?: string;\n name?: string;\n}\n\nexport const Tag = (props: TagProps) => {\n return (\n <Link {...props} color={LinkColor.GRAY}>\n <small>\n {props.prefix || \"#\"}\n {props.children}\n </small>\n </Link>\n );\n};\n\nexport const Tags = (props: { tags: TagProps[]; className?: string }) => {\n const { tags, className } = props;\n return (\n <div className={classNames(className, \"inline-block\")}>\n {tags.map((tag, index) => {\n const isLast = index === tags.length - 1;\n return (\n <Tag\n {...tag}\n key={tag.to}\n className={classNames({ \"mr-8\": !isLast })}\n />\n );\n })}\n </div>\n );\n};\n","import React, { useEffect, useState } from \"react\";\n\nexport type PanelProps = {\n width?: number;\n children: any;\n className?: string;\n};\n\nexport const Panel = (props: PanelProps) => {\n const { className = \"\", children } = props;\n const [show, setShow] = useState(false);\n useEffect(() => {\n setShow(true);\n }, []);\n\n return (\n <div\n className={`transition-all ease-in-out duration-900 ${className} ${\n show ? \"shadow-panel\" : \"shadow-empty\"\n } p-32`}\n >\n {children}\n </div>\n );\n};\n","import React, { ReactElement, ReactNode } from \"react\";\nimport { Article } from \"../article/Article\";\n\ntype PageProps = {\n nav: ReactElement;\n main: ReactElement;\n};\n\nexport const Page = (props: PageProps) => {\n const { nav, main } = props;\n return (\n <main className=\"flex flex-col h-full\">\n <div className={`flx-grow-0 w-full fixed top-0 z-50`}>{nav}</div>\n <section className=\"flex-grow flex-shrink-0 px-6\">{main}</section>\n </main>\n );\n};\n\nexport const NotFound = (props: { children?: any }) => {\n return <Error error={{ name: \"404\", message: \"Not Found\" }} />;\n};\n\nexport const Error = (props: { error: Error }) => {\n const { error } = props;\n return (\n <div className=\"prose\">\n <pre>\n <code className=\"javascript language-javascript\">\n {error.name}:{error.message}\n </code>\n </pre>\n </div>\n );\n};\n\nexport class ErrorBoundary extends React.Component<\n { children: any },\n { error?: Error; hasError: boolean }\n> {\n constructor(props: { children: any }) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, error };\n }\n\n render() {\n if (this.state.error && this.state.hasError) {\n return (\n <Article title=\"出错\">\n <div className=\"relative h-256\">\n <Error error={this.state.error} />\n </div>\n </Article>\n );\n }\n\n return this.props.children;\n }\n}\n","import React, { EventHandler, useState } from \"react\";\nimport { Button, ButtonType } from \"../button/Button\";\nimport { Panel } from \"../panel/Panel\";\nimport { BlinkDot } from \"../blink-dot/BlinkDot\";\n\nexport type PopConfirmProps = {\n onOk?:\n | EventHandler<React.MouseEvent<HTMLButtonElement>>\n | (() => Promise<void>);\n onCancel?: EventHandler<React.MouseEvent<HTMLButtonElement>>;\n className?: string;\n content?: any;\n children?: any;\n width?: number;\n};\n\nexport const PopConfirm = (props: PopConfirmProps) => {\n const [loading, setLoading] = useState(false);\n const { onOk, onCancel, children, content, className } = props;\n return (\n <Panel className={className}>\n <div className=\"mb-32\">{children || content}</div>\n <div className=\"flex justify-end\">\n {onCancel && (\n <Button onClick={onCancel} type={ButtonType.NORMAL}>\n Cancel\n </Button>\n )}\n {onOk && (\n <Button\n onClick={async (e) => {\n setLoading(true);\n await onOk(e);\n setLoading(false);\n }}\n className=\"ml-16 relative\"\n type={loading ? ButtonType.DISABLED : ButtonType.PRIMARY}\n >\n OK\n {loading && <BlinkDot className=\"!absolute top-2 right-2\" />}\n </Button>\n )}\n </div>\n </Panel>\n );\n};\n","import React, { CSSProperties, StyleHTMLAttributes } from \"react\";\nexport type TableProps = {\n rowCount: number;\n rowRenderer: (index: number) => any;\n headerRenderer?: () => any;\n className?: string;\n};\nexport const Table = (props: TableProps) => {\n const { rowCount, rowRenderer, headerRenderer, className } = props;\n const rows = [];\n for (let i = 0; i < rowCount; i++) {\n rows.push(<tr key={i}>{rowRenderer(i)}</tr>);\n }\n return (\n <table className={className}>\n {headerRenderer && (\n <thead>\n <tr>{headerRenderer()}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </table>\n );\n};\n\nTable.HCell = (props: { children: any; style?: CSSProperties }) => (\n <th {...props}>{props.children}</th>\n);\nTable.Cell = (props: { children: any; style?: CSSProperties }) => (\n <td {...props}>{props.children}</td>\n);\n","// @ts-ignore\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { Article } from \"../article/Article\";\nimport { List } from \"../list/list\";\n\nexport enum SkeletonColor {\n BLUE = \"blue\",\n RED = \"red\",\n GRAY = \"gray\",\n BLACK = \"black\",\n}\n\nconst COLOR_MAPPING = {\n [SkeletonColor.BLUE]: \"bg-blue-100\",\n [SkeletonColor.RED]: \"bg-red-100\",\n [SkeletonColor.GRAY]: \"bg-gray-100\",\n [SkeletonColor.BLACK]: \"bg-gray-200\",\n};\n\nexport interface SkeletonProps {\n className?: string;\n width?: number;\n height?: number;\n bgColor?: SkeletonColor;\n}\n\nexport interface ArticleSkeletonProps extends SkeletonProps {\n titleLength?: number;\n descriptionLength?: number;\n children?: any;\n}\n\nexport interface LinkListSkeletonProps extends ArticleSkeletonProps {\n linksLength: number[];\n}\n\nexport const Skeleton = (props: SkeletonProps) => {\n const {\n bgColor = SkeletonColor.GRAY,\n width = 26,\n height = 24,\n className,\n } = props;\n\n return (\n <div\n className={classNames(\n COLOR_MAPPING[bgColor],\n \"animate-pulse\",\n \"rounded\",\n className\n )}\n style={{ width, height }}\n />\n );\n};\n\nexport const ArticleSkeleton = (props: ArticleSkeletonProps) => {\n const { children, titleLength = 0, descriptionLength } = props;\n return (\n <Article\n title={\n <Skeleton\n width={36 * titleLength}\n height={36}\n bgColor={SkeletonColor.BLACK}\n />\n }\n description={\n descriptionLength && <Skeleton width={16 * descriptionLength} />\n }\n >\n {children}\n </Article>\n );\n};\n\nexport const LinkListSkeleton = (props: LinkListSkeletonProps) => {\n const { linksLength, ...rest } = props;\n const renderSkeleton = (length: number) => {\n return (\n <Skeleton\n className=\"inline-block align-middle\"\n width={length * 16}\n bgColor={SkeletonColor.BLUE}\n />\n );\n };\n\n if (!rest.titleLength) {\n return <List items={linksLength} itemRenderer={renderSkeleton} />;\n }\n\n return (\n <ArticleSkeleton {...rest}>\n <List items={linksLength} itemRenderer={renderSkeleton} />\n </ArticleSkeleton>\n );\n};\n","// @ts-ignore\nimport cls from \"classnames\";\nimport React, { ReactElement, FunctionComponent, ReactNode } from \"react\";\nimport { Link, LinkProps } from \"../link/Link\";\nimport { Article } from \"../article/Article\";\n\nexport interface listProps {\n className?: string;\n compact?: boolean;\n items: any[];\n itemRenderer: (itemProps: any, index: number) => ReactElement;\n horizontal?: boolean;\n footer?: ReactNode;\n}\n\nexport const List: FunctionComponent<listProps> = (props) => {\n const { items, itemRenderer, className, horizontal, compact, footer } = props;\n\n const spaceCls = compact ? \"\" : horizontal ? \"mr-3\" : \"mb-16\";\n return (\n <ul\n className={cls(className, \"list-style-none\", {\n flex: horizontal,\n \"items-center\": horizontal,\n })}\n >\n {items.map((item, index) => {\n return (\n <li\n key={item.id || index}\n className={cls(spaceCls, \"flex-shrink-0\", { \"!my-0\": horizontal })}\n >\n {itemRenderer(item, index)}\n </li>\n );\n })}\n {footer && (\n <li\n key={\"footer\"}\n className={cls(spaceCls, \"flex-shrink-0\", { \"!my-0\": horizontal })}\n >\n {footer}\n </li>\n )}\n </ul>\n );\n};\n\nexport interface TitledListProps extends listProps {\n title?: any;\n description?: any;\n footer?: ReactNode;\n}\n\nexport const TitledList: FunctionComponent<TitledListProps> = (props) => {\n const { title, description, ...rest } = props;\n if (!title) {\n return <List {...rest} />;\n }\n\n return (\n <Article title={title} description={description} className=\"w-fit\">\n <List {...rest} />\n </Article>\n );\n};\n\nexport interface LinkListProps\n extends Omit<listProps, \"itemRenderer\" | \"items\"> {\n title?: string;\n description?: any;\n links: LinkProps[];\n}\n\nexport const LinkList = (props: LinkListProps) => {\n const { title, description, links, ...rest } = props;\n const renderLink = ({ name, to, external, ...rest }: any) => {\n return (\n <Link to={to} key={name} external={external} {...rest}>\n {name}\n </Link>\n );\n };\n\n return (\n <TitledList\n title={title}\n description={description}\n items={links}\n itemRenderer={renderLink}\n {...rest}\n />\n );\n};\n","// @ts-ignore\nimport cls from \"classnames\";\nimport React, {\n FunctionComponent,\n useEffect,\n useCallback,\n Ref,\n ReactNode,\n CSSProperties,\n} from \"react\";\nimport { useState } from \"react\";\nimport { wait } from \"./utils\";\nimport { useDropImage } from \"./useDropImage\";\n\nexport interface ImagePreviewerProps {\n className?: string;\n visible: boolean;\n imageRef: Ref<HTMLImageElement>;\n imageSrc: string;\n imageSize: {\n width: number;\n height: number;\n };\n}\n\nexport interface ImageDropProps<T> {\n uploader: (file: File, img?: HTMLImageElement) => Promise<T>;\n onDrop?: (events: React.DragEvent<Element>, file: File) => void;\n onUploadFinish?: (result: T) => void;\n waitTimeAfterFinish?: number;\n defaultBgColor?: string;\n dragOverBgColor?: string;\n dropAreaStyle?: CSSProperties;\n placeholder?: any;\n className?: string;\n ghost?: boolean;\n children?: (props: ImagePreviewerProps) => ReactNode;\n}\n\nconst ImagePreviewer = (props: ImagePreviewerProps) => {\n const {\n visible: showImagePreviewer,\n imageRef,\n imageSize,\n imageSrc,\n className,\n } = props;\n return (\n <img\n className={cls(\n className,\n \"max-w-[100%]\",\n \"h-[auto]\",\n \"duration-300\",\n \"transition-opacity\",\n \"opacity-100\",\n {\n \"opacity-0\": !showImagePreviewer,\n \"!m-0\": !showImagePreviewer,\n \"!p-0\": !showImagePreviewer,\n }\n )}\n ref={imageRef}\n src={imageSrc}\n width={imageSize.width}\n height={imageSize.height}\n />\n );\n};\n\nconst GhostDropImage: FunctionComponent<ImageDropProps<any>> = (props) => {\n const {\n onDrop = () => {},\n onUploadFinish = () => {},\n uploader,\n waitTimeAfterFinish = 2000,\n className = \"\",\n children,\n placeholder,\n } = props;\n const [coverVisible, setCoverVisible] = useState(false);\n const [imageVisible, setImageVisible] = useState(false);\n const handleDocDragEnter = useCallback(() => {\n setCoverVisible(true);\n }, []);\n\n const {\n handleDragLeave,\n handleDragOver,\n handleDrop,\n\n imageRef,\n imageSize,\n imageSrc,\n\n reset,\n } = useDropImage({\n onImageLoad: () => {\n setImageVisible(true);\n },\n onDrop: async (e, file) => {\n onDrop(e, file);\n setCoverVisible(false);\n const result = await uploader(file);\n await wait(waitTimeAfterFinish);\n onUploadFinish(result);\n setImageVisible(false);\n reset();\n },\n });\n\n useEffect(() => {\n document.addEventListener(\"dragenter\", handleDocDragEnter);\n\n return () => {\n document.removeEventListener(\"dragenter\", handleDocDragEnter);\n };\n }, []);\n\n const coverCls = cls(\"fixed\", \"top-0\", \"left-0\", \"h-full\", \"w-full\", {\n \"lqip-blur\": coverVisible,\n \"z-[999]\": coverVisible,\n block: coverVisible,\n hidden: !coverVisible,\n });\n\n return (\n <>\n <div\n className={coverCls}\n onDragLeave={() => {\n handleDragLeave();\n setCoverVisible(false);\n }}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n />\n {!imageVisible && placeholder}\n {children ? (\n children({\n visible: imageVisible,\n imageRef,\n imageSize,\n imageSrc,\n })\n ) : (\n <ImagePreviewer\n className={className}\n visible={imageVisible}\n imageRef={imageRef}\n imageSrc={imageSrc}\n imageSize={imageSize}\n />\n )}\n </>\n );\n};\n\nexport const DropImage: FunctionComponent<ImageDropProps<any>> = (props) => {\n const {\n uploader,\n defaultBgColor = \"#F3F4F6\",\n onDrop,\n dragOverBgColor = \"#EFF6FF\",\n waitTimeAfterFinish = 2000,\n placeholder = \"\",\n className = \"\",\n onUploadFinish = () => {},\n ghost,\n children,\n dropAreaStyle = {\n width: 300,\n height: 300,\n },\n } = props;\n\n if (ghost) {\n return <GhostDropImage {...props} />;\n }\n\n const [showImagePreviewer, setShowImagePreviewer] = useState(false);\n const {\n handleDragLeave,\n handleDragOver,\n handleDrop,\n imageRef,\n imageSize,\n imageSrc,\n isDragOver,\n reset,\n } = useDropImage({\n onDrop,\n onImageLoad: async (image, file) => {\n await wait(500);\n setShowImagePreviewer(true);\n await onUploadFinish(await uploader(file, image));\n await wait(waitTimeAfterFinish);\n setShowImagePreviewer(false);\n await wait(500);\n reset();\n },\n });\n\n const getDropAreaStyle = () => {\n return Object.assign({}, dropAreaStyle, {\n background: isDragOver ? dragOverBgColor : defaultBgColor,\n width: imageSize.width || dropAreaStyle.width,\n height: imageSize.height || dropAreaStyle.height,\n });\n };\n\n return (\n <div\n className={cls(\n className,\n \"transition-all items-center justify-center flex duration-200 ease-in-out\",\n {\n \"shadow-input\": !imageSrc,\n \"shadow-empty\": imageSrc,\n }\n )}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n style={getDropAreaStyle()}\n >\n {children ? (\n children({\n visible: showImagePreviewer,\n imageRef,\n imageSize,\n imageSrc,\n })\n ) : (\n <ImagePreviewer\n visible={showImagePreviewer}\n imageRef={imageRef}\n imageSrc={imageSrc}\n imageSize={imageSize}\n />\n )}\n {!imageSrc && placeholder}\n </div>\n );\n};\n","export const wait = (d: number) => new Promise((r) => setTimeout(r, d));\nexport const noop = (e: React.DragEvent<Element>, file: File) => {};\n","import {\n useState,\n useCallback,\n useRef,\n DragEvent,\n DragEventHandler,\n} from \"react\";\n\nexport const useDropImage = (params?: {\n portraitImageWidth?: number;\n landscapeImageWidth?: number;\n onDrop?: (e: DragEvent<Element>, file: File) => void;\n onImageLoad?: (img: HTMLImageElement, file: File) => void;\n}) => {\n const [isDragOver, setIsDragOver] = useState(false);\n const [imageSrc, setImageSrc] = useState(\"\");\n const [imageSize, setImageSize] = useState({ width: 0, height: 0 });\n const imageFile = useRef<File | null>();\n\n const {\n portraitImageWidth = 384,\n landscapeImageWidth = 500,\n onDrop = () => {},\n onImageLoad = () => {},\n } = params || {};\n\n const reset = () => {\n setImageSrc(\"\");\n setImageSize({ width: 0, height: 0 });\n setIsDragOver(false);\n imageFile.current = null;\n };\n\n const calcDefaultImgSize = (\n img: { width: number; height: number },\n defaultWidth?: number\n ): { width: number; height: number } => {\n const { width, height } = img;\n const whRatio = width / height;\n const isHorizontal = width > height;\n\n const finalWidth =\n defaultWidth || (isHorizontal ? landscapeImageWidth : portraitImageWidth);\n\n return {\n width: finalWidth,\n height: finalWidth / whRatio,\n };\n };\n\n const setPreviewImageSrcByFile = (file: File) => {\n try {\n setImageSrc(URL.createObjectURL(file));\n } catch (e) {\n setImageSrc(\"\");\n }\n };\n\n const handleDragOver: DragEventHandler = useCallback((ev) => {\n ev.preventDefault();\n setIsDragOver(true);\n if (!ev.dataTransfer) {\n return;\n }\n ev.dataTransfer.dropEffect = \"move\";\n }, []);\n\n const handleDragLeave = useCallback(() => {\n setIsDragOver(false);\n }, []);\n\n const handleDrop: DragEventHandler = useCallback((ev) => {\n ev.preventDefault();\n setIsDragOver(false);\n const file = ev.dataTransfer ? ev.dataTransfer.files[0] : undefined;\n if (!file || !file.type.startsWith(\"image\")) {\n return;\n }\n imageFile.current = file;\n setPreviewImageSrcByFile(file);\n onDrop(ev, file);\n }, []);\n\n const handleImgLoad = (img: HTMLImageElement) => {\n const updateFunc = async () => {\n const p = \"decode\" in img ? img.decode : Promise.resolve;\n try {\n await p();\n } catch (e) {}\n setImageSize(\n calcDefaultImgSize({\n width: img.naturalWidth,\n height: img.naturalHeight,\n })\n );\n if (!imageFile.current) {\n return;\n }\n onImageLoad(img, imageFile.current);\n };\n\n if (img.complete) {\n updateFunc().then();\n return;\n }\n\n img.onload = updateFunc;\n };\n\n const imageRef = useCallback((input: HTMLImageElement) => {\n if (!input) {\n return;\n }\n\n handleImgLoad(input);\n }, []);\n\n return {\n isDragOver,\n\n imageSrc,\n imageRef,\n imageSize,\n\n handleDragOver,\n handleDragLeave,\n handleDrop,\n\n reset,\n };\n};\n","// @ts-ignore\nimport cls from \"classnames\";\nimport React, { ReactElement } from \"react\";\n\nexport type threeColLayoutProps = {\n leftRenderer?: () => ReactElement | null;\n rightRenderer?: () => ReactElement | null;\n middleRenderer?: () => ReactElement | null;\n};\n\nexport const ThreeColLayout = (props: threeColLayoutProps) => {\n const { leftRenderer, middleRenderer, rightRenderer } = props;\n const colCls = cls(\"max-h-full overflow-auto xl:!block py-128\");\n return (\n <div className=\"grid grid-cols-1 xl:grid-cols-3 gap-4 h-full w-full\">\n <div className={cls(\"hidden\", colCls)}>\n {leftRenderer && leftRenderer()}\n </div>\n <div\n className={cls(colCls, \"sm:px-128 xl:px-0 no-scrollbar\", \"relative\", {\n hidden: !middleRenderer,\n })}\n >\n {middleRenderer && middleRenderer()}\n </div>\n <div className={cls(\"hidden\", colCls)}>\n {rightRenderer && rightRenderer()}\n </div>\n </div>\n );\n};\n","// @ts-ignore\nimport classnames from \"classnames\";\nimport React, { useState } from \"react\";\nimport { ImgProps, ossProcessType } from \"./types\";\nimport { addOssWebpProcessStyle, calcDefaultImgSize, delay } from \"./utils\";\n\nconst emptyDataURL =\n \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\";\n\nexport * from \"./types\";\nexport const Img = (props: ImgProps) => {\n const {\n src,\n className,\n renderedWidth,\n avgColor,\n thumbnailSrc,\n processType,\n size,\n removeBlurBgAfterLoad,\n } = props;\n\n const { width, height } = calcDefaultImgSize(\n props,\n renderedWidth,\n size === \"normal\" ? 0.6 : 1\n );\n const [loaded, setLoaded] = useState(false);\n const [decoded, setDecoded] = useState(false);\n\n const baseWrapperStyle = {\n width: \"initial\",\n height: \"initial\",\n backgroundSize: \"cover\",\n backgroundColor: avgColor || \"#f1f1f1\",\n backgroundPosition: \"0% 0%\",\n backgroundImage: `url(${\n thumbnailSrc\n ? thumbnailSrc\n : addOssWebpProcessStyle(src, ossProcessType.THUMBNAIL)\n })`,\n };\n\n const dynamicWrapperStyle =\n loaded && removeBlurBgAfterLoad ? { backgroundImage: \"none\" } : {};\n\n const handleImgLoad = (img: HTMLImageElement) => {\n const updateFunc = async () => {\n const p = \"decode\" in img ? img.decode : Promise.resolve;\n try {\n await p();\n } catch (e) {}\n setDecoded(true);\n setLoaded(true);\n };\n\n if (img.complete) {\n updateFunc().then();\n return;\n }\n\n img.onload = updateFunc;\n };\n\n return (\n <span\n className={classnames(\n className,\n \"inline-block\",\n \"relative\",\n \"overflow-hidden\",\n \"duration-500\",\n \"leading-none\",\n \"align-bottom\",\n \"border-0\"\n )}\n draggable={false}\n style={Object.assign({}, baseWrapperStyle, dynamicWrapperStyle)}\n >\n <img\n ref={(input) => {\n if (!input) {\n return;\n }\n\n handleImgLoad(input);\n }}\n width={width}\n height={height}\n src={addOssWebpProcessStyle(src, processType || ossProcessType.WEBP)}\n decoding=\"async\"\n loading=\"lazy\"\n crossOrigin=\"anonymous\"\n style={{\n contentVisibility: \"auto\",\n }}\n className={classnames(\n \"transition-opacity\",\n \"opacity-100\",\n \"duration-500\",\n {\n \"opacity-0\": !decoded,\n }\n )}\n />\n <img\n src={emptyDataURL}\n className={classnames(\n \"lqip-blur\",\n \"absolute\",\n \"h-full\",\n \"w-full\",\n \"duration-500\",\n \"transition-opacity\",\n {\n \"opacity-100\": !decoded,\n \"opacity-0\": decoded,\n }\n )}\n crossOrigin=\"anonymous\"\n style={{ top: 0, left: 0 }}\n />\n </span>\n );\n};\n","export enum ossProcessType {\n THUMBNAIL = \"thumbnail\",\n WEBP = \"webp\",\n NULL = \"null\",\n oWEBP = \"owebp\",\n PROG = \"prog\",\n}\n\nexport interface Photo {\n src: string;\n width: number;\n height: number;\n processType?: ossProcessType;\n avgColor?: string;\n thumbnailSrc?: string;\n renderedWidth?: number;\n}\n\nexport interface ImgProps extends Photo {\n className?: string;\n size?: \"large\" | \"normal\";\n removeBlurBgAfterLoad?: boolean;\n}\n","import { ossProcessType, Photo } from \"./types\";\n\nexport const addOssWebpProcessStyle = (\n originUrl: string,\n style: ossProcessType\n): string => {\n const OSS_ADDRESS = \"https://zjh-im-res.oss-cn-shenzhen.aliyuncs.com\";\n const isInvalidOSSImgUrl = !originUrl.startsWith(OSS_ADDRESS);\n const isProcessedOssImg = /x-oss-process=style\\/\\w+/.test(originUrl);\n const isWebpImg = /webp$/.test(originUrl);\n\n if (\n isInvalidOSSImgUrl ||\n isProcessedOssImg ||\n (isWebpImg && style === ossProcessType.WEBP) ||\n style === ossProcessType.NULL\n ) {\n return originUrl;\n }\n return `${originUrl}?x-oss-process=style/${style}`;\n};\n\nexport const calcDefaultImgSize = (\n img: Photo,\n defaultWidth?: number,\n scale?: number\n): { width: number; height: number } => {\n const { width, height } = img;\n const whRatio = width / height;\n const isHorizontal = width > height;\n\n const finalWidth =\n (defaultWidth || (isHorizontal ? 576 : 384)) * (scale || 1);\n\n return {\n width: finalWidth,\n height: finalWidth / whRatio,\n };\n};\n\nexport const delay = (time: number) => {\n return new Promise((resolve) => {\n setTimeout(resolve, time);\n });\n};\n","// @ts-ignore\nimport classnames from \"classnames\";\nimport React, { ReactElement, ReactNode } from \"react\";\nimport { RandomRowsLayout, RandomRowsLayoutProps } from \"./RandomRowsLayout\";\nimport { ImgProps } from \"./types\";\nimport { Img } from \"./Img\";\n\nexport type ImageRenderer = (\n Img: ReactElement,\n index: number,\n col: number,\n randBool: boolean\n) => ReactNode;\n\nexport interface GalleryProps\n extends Omit<\n RandomRowsLayoutProps,\n \"classNames\" | \"cellsCount\" | \"cellRenderer\"\n > {\n className?: string;\n images: ImgProps[];\n children?: ReactNode;\n imageRenderer?: ImageRenderer;\n}\n\nconst defaultImageRenderer: ImageRenderer = (img, index, col) => {\n return (\n <div\n className={classnames(\"mb-128\", {\n \"md:mr-64\": col === 0,\n \"md:ml-64\": col !== 0,\n })}\n >\n {img}\n </div>\n );\n};\n\nexport const Gallery = (props: GalleryProps) => {\n const {\n images,\n children,\n imageRenderer = defaultImageRenderer,\n className = \"\",\n ...rest\n } = props;\n\n const renderImage = (index: number, isLargeImage: boolean, col: number) => {\n const image: any = images[index];\n if (!image) {\n return null;\n }\n\n return imageRenderer(\n <Img {...image} size={isLargeImage ? \"large\" : \"normal\"} />,\n index,\n col,\n isLargeImage\n );\n };\n\n return (\n <div className={classnames(\"w-full flex justify-center\", className)}>\n <RandomRowsLayout\n classNames=\"mx-32 mt-128 max-w-screen-xl\"\n cellsCount={images.length}\n cellRenderer={renderImage}\n {...rest}\n />\n {children}\n </div>\n );\n};\n","// @ts-ignore\nimport classnames from \"classnames\";\nimport React from \"react\";\n\nconst last = <T extends any>(arr: T[]): T => {\n if (arr.length < 2) {\n return arr[0];\n }\n\n return arr[arr.length - 1];\n};\n\nconst defaultCellClsGenerator = (\n colNum: number,\n isCenterSingleCell: boolean\n) => {\n const isSingleCell = colNum === 1;\n const singleCellWidth = isCenterSingleCell ? \"full\" : \"1/2\";\n const cellWidth = isSingleCell ? singleCellWidth : \"1/2\";\n\n return `md:basis-${cellWidth}`;\n};\n\nexport const generateRandomBoolean = (p: number = 0.5): boolean =>\n Math.random() < p;\n\nconst generateRandomColNum = (total: number): number[] => {\n const colNumArr = [];\n if (total <= 2) {\n return [total];\n }\n\n let colSum = 0;\n while (colSum < total) {\n const p: number = last<number>(colNumArr) === 2 ? 0.9 : 0.5;\n const num = generateRandomBoolean(p) ? 1 : 2;\n colNumArr.push(num);\n colSum += num;\n }\n return colNumArr;\n};\n\nexport interface RandomRowsLayoutProps {\n classNames?: string;\n cellWrapperClsGenerator?: (colNum: number, randBoolean: boolean) => string;\n cellsCount: number;\n cellRenderer: (\n index: number,\n randomBool: boolean,\n col: number\n ) => React.ReactNode;\n}\n\nconst sumColNumByIdx = (colNums: number[], idx: number): number => {\n let sum = 0;\n for (let i = 0; i < idx; i++) {\n sum += colNums[i];\n }\n return sum;\n};\n\nexport const RandomRowsLayout = React.memo(\n (props: RandomRowsLayoutProps) => {\n const {\n cellsCount,\n cellRenderer,\n classNames = \"\",\n cellWrapperClsGenerator = defaultCellClsGenerator,\n } = props;\n const colNums = generateRandomColNum(cellsCount);\n\n return (\n <div className={classNames}>\n {colNums.map((colNum, row) => {\n const randBool = generateRandomBoolean(\n colNum < 2 ? 0.6 : 0.5 /* 增加单列大图概率 */\n );\n const randBoolArr = [randBool, !randBool];\n return (\n <div className=\"flex items-center flex-wrap\" key={row}>\n {new Array(colNum).fill(null).map((_, col) => {\n const generatedCls = cellWrapperClsGenerator(\n colNum,\n generateRandomBoolean()\n );\n\n const currentIdx = sumColNumByIdx(colNums, row) + col;\n\n const cls = classnames(\n \"flex items-center justify-center flex-shrink-0 flex-grow-0\",\n \"basis-full\",\n generatedCls\n );\n return (\n <div className={cls} key={col}>\n {cellRenderer(currentIdx, randBoolArr[col], col)}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n },\n (prevProps, nextProps) => {\n return prevProps.cellsCount === nextProps.cellsCount;\n }\n);\n","// @ts-ignore\nimport Phenomenon from \"phenomenon\";\n// @ts-ignore\nimport classNames from \"classnames\";\nimport React, { useEffect, useRef } from \"react\";\nimport { createSettings, ISettings } from \"./createSettings\";\nimport { createOptions } from \"./createOptions\";\n\nexport interface LoadingSpiralProps extends ISettings {\n className?: string;\n}\n\nexport const LoadingSpiral = (props?: LoadingSpiralProps) => {\n const { className, step } = props || {};\n const canvasRef = useRef<HTMLCanvasElement>(null)\n\n useEffect(() => {\n if (!canvasRef.current) {\n return;\n }\n\n const phenomenon = new Phenomenon({\n settings: createSettings({ canvas: canvasRef.current, step }),\n context: {\n antialias: true,\n alpha: true,\n },\n });\n\n phenomenon.add(\n \"spiral\",\n createOptions()\n );\n }, []);\n\n return (\n <canvas\n style={{\n maxWidth: 500,\n maxHeight: 500,\n imageRendering: 'pixelated',\n }}\n ref={canvasRef}\n className={classNames(\n \"h-full w-full overflow-hidden flex justify-center items-center aspect-1\",\n className\n )}\n />\n );\n};\n","export interface ISettings {\n canvas?: HTMLCanvasElement;\n step?: number;\n}\n\nexport const createSettings = (settings: ISettings) => {\n const { canvas, step = 0.09 } = settings;\n\n const uniforms = {\n uProgress: {\n type: \"float\",\n value: 0.0,\n },\n };\n\n return {\n uniforms,\n devicePixelRatio: window.devicePixelRatio,\n shouldRender: true,\n canvas,\n onRender: (r: any) => {\n const { uProgress } = r.uniforms;\n uProgress.value += step;\n },\n };\n};\n","export enum ATTR {\n PERCENT = \"aPercent\",\n POINT_SIZE = 'aPointSize'\n}\n\nexport const VERTEX_SHADER = `\n attribute float ${ATTR.PERCENT};\n attribute float ${ATTR.POINT_SIZE};\n\n uniform mat4 uProjectionMatrix;\n uniform mat4 uModelMatrix;\n uniform mat4 uViewMatrix;\n uniform float uProgress;\n\n varying vec3 vColor;\n \n vec3 curve(float _percent) {\n const float PI2 = 3.141592653589793 * 2.0;\n const float _length = 0.3;\n const float radius = 0.056;\n float t = mod(_percent, 0.25) / 0.25;\n t = mod(_percent, 0.25) - (2.0 * (1.0 - t) * t * -0.0185 + t * t * 0.25);\n float x = _length * sin(PI2 * _percent);\n float y = radius * cos(PI2 * 3.0 * _percent);\n\n if (\n floor(_percent / 0.25) == 0.0\n || floor(_percent / 0.25) == 2.0\n ) {\n t = t * -1.0;\n }\n float z = radius * sin(PI2 * 2.0 * (_percent - t));\n return vec3(x, y, z);\n }\n\n mat4 rotateX(float _angle){\n return mat4(\n 1.0, 0.0, 0.0, 0.0,\n 0.0, cos(_angle), -sin(_angle), 0.0,\n 0.0, sin(_angle), cos(_angle), 0.0,\n 0.0, 0.0, 0.0, 1.0\n );\n }\n\n void main(){\n gl_Position = uProjectionMatrix\n * uModelMatrix\n * uViewMatrix\n * rotateX(uProgress)\n * vec4(curve(${ATTR.PERCENT}), 1.0);\n\n gl_PointSize = ${ATTR.POINT_SIZE};\n }\n`;\n\nexport const FRAGMENT_SHADER = `\n precision mediump float;\n uniform float uProgress;\n void main(){\n gl_FragColor = vec4(0.81, 0.83, 0.85, 1.0);\n }\n`;\n","import { ATTR, VERTEX_SHADER, FRAGMENT_SHADER } from \"./constants\";\n\nexport const createOptions = () => {\n const attributes = [\n {\n name: ATTR.PERCENT,\n data: (i: number, total: number) => [i / total],\n size: 1,\n },\n {\n name: ATTR.POINT_SIZE,\n data: () => [window.devicePixelRatio * 1.3],\n size: 1,\n },\n ];\n\n const uniforms = {\n uProgress: {\n type: \"float\",\n value: [0.0],\n },\n }\n\n return {\n uniforms,\n attributes,\n multiplier: 4000,\n vertex: VERTEX_SHADER,\n fragment: FRAGMENT_SHADER,\n };\n};\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport cls from \"classnames\";\n\nexport interface DropZoneProps {\n onDrop: (files: File) => void;\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport const DropZone = (props: DropZoneProps) => {\n const { onDrop, children, className, style } = props;\n\n const [coverVisible, setCoverVisible] = useState(false);\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault();\n setCoverVisible(false);\n const file = e.dataTransfer.files[0];\n onDrop(file);\n };\n\n const handleDocDragEnter = useCallback((e: DragEvent) => {\n e.preventDefault();\n setCoverVisible(true);\n }, []);\n\n useEffect(() => {\n document.addEventListener(\"dragenter\", handleDocDragEnter);\n\n return () => {\n document.removeEventListener(\"dragenter\", handleDocDragEnter);\n };\n }, []);\n\n if (props.disabled) {\n return <>{children}</>;\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault();\n setCoverVisible(true);\n };\n\n const coverCls = cls(\"fixed\", \"top-0\", \"left-0\", \"h-full\", \"w-full\", {\n \"text-blur\": coverVisible,\n \"z-[999]\": coverVisible,\n block: coverVisible,\n hidden: !coverVisible,\n });\n\n return (\n <>\n <div\n className={coverCls}\n onDragLeave={() => {\n setCoverVisible(false);\n }}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n />\n {children}\n </>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport {\n CheckIcon,\n ChevronRightIcon,\n DotFilledIcon,\n} from \"@radix-ui/react-icons\";\n\nimport cn from \"classnames\";\n\nconst ContextMenu = ContextMenuPrimitive.Root;\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"pl-32\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n));\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n));\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-32\",\n className\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-32 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName =\n ContextMenuPrimitive.CheckboxItem.displayName;\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-32 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <DotFilledIcon className=\"h-4 w-4 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-foreground\",\n inset && \"pl-32\",\n className\n )}\n {...props}\n />\n));\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;\n\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n );\n};\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { z } from \"zod\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport {\n Controller,\n useForm,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\";\n\nimport cn from \"classnames\";\nimport { Label } from \"../label\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n);\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"FormItem\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"FormLabel\";\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"FormControl\";\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message) : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-sm font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n useFormField,\n Form,\n z,\n zodResolver,\n useForm,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport cn from \"classnames\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as React from \"react\";\n\nimport cn from \"classnames\";\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import React, { useEffect } from \"react\";\nimport { useRenderer } from \"./useRenderer\";\n\nexport interface AttributeProps {\n name: string;\n size: number;\n data?: any;\n}\n\nexport interface UniformProps {\n type: string;\n value: Array<number>;\n location?: WebGLUniformLocation;\n}\n\nexport interface ICanvasProps extends React.HTMLAttributes<HTMLCanvasElement> {\n fragment: string;\n vertex?: string;\n uniforms?: {\n [key: string]: UniformProps;\n };\n attributes?: Array<AttributeProps>;\n onRender?: (r: any) => void;\n onInstRender?: (r: UniformProps) => void;\n name?: string;\n}\n\nexport const Canvas = (props: ICanvasProps) => {\n const {\n fragment,\n vertex,\n uniforms = {},\n name,\n attributes = [],\n onRender,\n ...rest\n } = props;\n\n const { canvasRef, renderer } = useRenderer(uniforms);\n const instName = name ?? \"default\";\n\n useEffect(() => {\n if (renderer == null || canvasRef.current == null) {\n return;\n }\n\n // deep copy attributes\n const aCopy = attributes.map((attr) => ({\n ...attr,\n data: (i: number, total: number) => attr.data(i, total),\n }));\n\n // deep copy uniforms\n const uCopy = Object.keys(uniforms).reduce((acc: any, key) => {\n acc[key] = {\n ...uniforms[key],\n value: [...uniforms[key].value],\n };\n return acc;\n }, {});\n\n const vertices: Array<any> = [\n { x: -100, y: 100, z: 0 },\n { x: -100, y: -100, z: 0 },\n { x: 100, y: 100, z: 0 },\n { x: 100, y: -100, z: 0 },\n { x: -100, y: -100, z: 0 },\n { x: 100, y: 100, z: 0 },\n ];\n\n renderer.add(instName, {\n uniforms: {\n ...uCopy,\n uProgress: {\n type: \"float\",\n value: 0.0,\n },\n },\n attributes: aCopy,\n fragment,\n vertex,\n mode: 4,\n // @ts-ignore\n geometry: { vertices },\n // @ts-ignore\n onRender: (inst: any) => {\n if (inst.uniforms.uProgress != undefined) {\n inst.uniforms.uProgress.value += 0.09;\n }\n\n if (onRender) {\n onRender(inst);\n }\n },\n });\n\n return () => {\n renderer.remove(instName);\n };\n }, [renderer]);\n\n return (\n <canvas\n style={{\n ...props.style,\n imageRendering: \"pixelated\",\n }}\n ref={canvasRef}\n {...rest}\n />\n );\n};\n","import { UniformProps } from \"./Canvas\";\nimport { useEffect, useRef, useState } from \"react\";\nimport Phenomenon from \"phenomenon\";\n\ntype uniformType = {\n [key: string]: UniformProps;\n};\n\nexport const useRenderer = (uniform: uniformType) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const [renderer, setRenderer] = useState<Phenomenon | null>(null);\n\n useEffect(() => {\n if (!canvasRef.current) {\n return;\n }\n\n const renderer = new Phenomenon({\n settings: {\n uniforms: uniform,\n devicePixelRatio: window.devicePixelRatio,\n shouldRender: true,\n canvas: canvasRef.current,\n mode: 4,\n },\n context: {\n antialias: true,\n alpha: true,\n },\n });\n\n setRenderer(renderer);\n\n return () => {\n renderer?.destroy();\n window.removeEventListener(\"resize\", renderer?.resize);\n };\n }, [canvasRef.current]);\n\n return {\n canvasRef,\n renderer,\n };\n};\n"],"mappings":"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","names":["Error","Label","import_classnames","import_react","classNames","React","import_react","import_classnames","cls","React","React","classNames","import_react","import_classnames","ButtonType","React","classNames","React","import_react","import_react","import_classnames","import_classnames","import_react","LinkColor","classNames","React","BaseLink","React","classNames","import_react_router_dom","React","import_classnames","import_react","React","classNames","import_react","React","import_react","React","Error","import_react","React","import_react","React","import_classnames","import_react","import_classnames","import_react","React","cls","rest","SkeletonColor","COLOR_MAPPING","React","classNames","import_classnames","import_react","import_react","calcDefaultImgSize","React","cls","import_classnames","import_react","cls","React","import_classnames","import_react","ossProcessType","React","classnames","import_classnames","import_react","import_classnames","import_react","React","classNames","cls","classnames","React","classnames","import_classnames","import_react","Phenomenon","React","classNames","import_react","import_classnames","React","cls","React","import_classnames","cn","React","import_zod","import_classnames","React","import_classnames","Label","cn","cn","Label","React","import_classnames","cn","import_react","import_react","import_phenomenon","renderer","Phenomenon","React"]}
|
package/dist/index.css
CHANGED
|
@@ -1034,6 +1034,9 @@ hljs-emphasis,
|
|
|
1034
1034
|
margin-top: 0px !important;
|
|
1035
1035
|
margin-bottom: 0px !important;
|
|
1036
1036
|
}
|
|
1037
|
+
.mb-16 {
|
|
1038
|
+
margin-bottom: 1rem;
|
|
1039
|
+
}
|
|
1037
1040
|
.mb-128 {
|
|
1038
1041
|
margin-bottom: 8rem;
|
|
1039
1042
|
}
|
|
@@ -1052,9 +1055,6 @@ hljs-emphasis,
|
|
|
1052
1055
|
.mr-3 {
|
|
1053
1056
|
margin-right: 0.75rem;
|
|
1054
1057
|
}
|
|
1055
|
-
.mb-16 {
|
|
1056
|
-
margin-bottom: 1rem;
|
|
1057
|
-
}
|
|
1058
1058
|
.mr-8 {
|
|
1059
1059
|
margin-right: 0.5rem;
|
|
1060
1060
|
}
|