asterui 0.12.16 → 0.12.18
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/components/Card.d.ts +14 -2
- package/dist/components/Checkbox.d.ts +3 -1
- package/dist/components/Form.d.ts +7 -1
- package/dist/components/Input.d.ts +10 -2
- package/dist/components/Select.d.ts +8 -0
- package/dist/index.d.ts +0 -2
- package/dist/index.js +134 -136
- package/dist/index.js.map +1 -1
- package/dist/index10.js +70 -65
- package/dist/index10.js.map +1 -1
- package/dist/index100.js +43 -11
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +11 -44
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +12 -10
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +7 -14
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +12 -7
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +29 -11
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +16 -29
- package/dist/index106.js.map +1 -1
- package/dist/index13.js +86 -68
- package/dist/index13.js.map +1 -1
- package/dist/index34.js +198 -158
- package/dist/index34.js.map +1 -1
- package/dist/index42.js +185 -148
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +19 -19
- package/dist/index43.js.map +1 -1
- package/dist/index46.js +134 -18
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +10 -134
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +35 -13
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +34 -35
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +81 -34
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +166 -71
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +144 -167
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +11 -152
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +20 -10
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +14 -22
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +7 -14
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +333 -6
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +47 -334
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +122 -47
- package/dist/index59.js.map +1 -1
- package/dist/index60.js +108 -120
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +167 -107
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +29 -167
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +120 -30
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +80 -116
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +19 -85
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +73 -19
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +54 -71
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +44 -56
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +49 -42
- package/dist/index69.js.map +1 -1
- package/dist/index70.js +121 -50
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +102 -118
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +72 -105
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +68 -41
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +19 -66
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +55 -18
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +251 -55
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +22 -254
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +31 -22
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +93 -30
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +324 -89
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +73 -322
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +39 -79
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +23 -40
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +93 -21
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +148 -87
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +152 -147
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +63 -159
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +35 -65
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +234 -35
- package/dist/index89.js.map +1 -1
- package/dist/index90.js +31 -231
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +210 -34
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +198 -195
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +241 -159
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +166 -283
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +253 -173
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +14 -258
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +31 -12
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +5 -32
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +13 -5
- package/dist/index99.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/Label.d.ts +0 -15
- package/dist/index107.js +0 -21
- package/dist/index107.js.map +0 -1
package/dist/index47.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index47.js","sources":["../src/components/Layout.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, useCallback, useEffect } from 'react'\n\nexport interface LayoutProps {\n children: React.ReactNode\n className?: string\n style?: React.CSSProperties\n}\n\nexport interface LayoutHeaderProps {\n children: React.ReactNode\n className?: string\n style?: React.CSSProperties\n}\n\nexport interface LayoutFooterProps {\n children: React.ReactNode\n className?: string\n style?: React.CSSProperties\n}\n\nexport interface LayoutContentProps {\n children: React.ReactNode\n className?: string\n style?: React.CSSProperties\n}\n\nexport interface LayoutSiderProps {\n children: React.ReactNode\n width?: number | string\n collapsedWidth?: number | string\n collapsed?: boolean\n defaultCollapsed?: boolean\n collapsible?: boolean\n onCollapse?: (collapsed: boolean) => void\n trigger?: React.ReactNode | null\n breakpoint?: 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n onBreakpoint?: (broken: boolean) => void\n className?: string\n style?: React.CSSProperties\n}\n\ninterface SiderContextValue {\n collapsed: boolean\n collapsedWidth: number | string\n width: number | string\n}\n\nconst SiderContext = createContext<SiderContextValue | null>(null)\n\nexport function useSiderContext() {\n return useContext(SiderContext)\n}\n\nfunction LayoutRoot({ children, className = '', style }: LayoutProps) {\n // Check if any child is a Sider to determine flex direction\n const childArray = React.Children.toArray(children)\n const hasSider = childArray.some(\n (child) => React.isValidElement(child) && (child.type as any).displayName === 'LayoutSider'\n )\n\n const layoutClasses = [\n 'flex',\n 'min-h-0',\n hasSider ? 'flex-row' : 'flex-col',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n // If we have a Sider, auto-add flex-1 to non-Sider Layout children\n const processedChildren = hasSider\n ? childArray.map((child) => {\n if (\n React.isValidElement(child) &&\n (child.type === LayoutRoot || (child.type as any).displayName === 'LayoutRoot') &&\n (child.type as any).displayName !== 'LayoutSider'\n ) {\n // Clone the Layout child and add flex-1 if not already present\n const existingClassName = (child.props as any).className || ''\n if (!existingClassName.includes('flex-1')) {\n return React.cloneElement(child as React.ReactElement<any>, {\n className: `flex-1 ${existingClassName}`.trim(),\n })\n }\n }\n return child\n })\n : children\n\n return (\n <div className={layoutClasses} style={style}>\n {processedChildren}\n </div>\n )\n}\n\nLayoutRoot.displayName = 'LayoutRoot'\n\nfunction LayoutHeader({ children, className = '', style }: LayoutHeaderProps) {\n const headerClasses = [\n 'flex',\n 'items-center',\n 'px-6',\n 'h-16',\n 'bg-base-300',\n 'flex-shrink-0',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <header className={headerClasses} style={style}>\n {children}\n </header>\n )\n}\n\nfunction LayoutFooter({ children, className = '', style }: LayoutFooterProps) {\n const footerClasses = [\n 'px-6',\n 'py-4',\n 'text-center',\n 'bg-base-300',\n 'flex-shrink-0',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <footer className={footerClasses} style={style}>\n {children}\n </footer>\n )\n}\n\nfunction LayoutContent({ children, className = '', style }: LayoutContentProps) {\n // flex-1 by default so Content fills available space\n const contentClasses = ['flex-1', 'min-h-0', 'overflow-auto', className].filter(Boolean).join(' ')\n\n return (\n <main className={contentClasses} style={style}>\n {children}\n </main>\n )\n}\n\nconst BREAKPOINT_MAP: Record<string, string> = {\n sm: '(max-width: 639px)',\n md: '(max-width: 767px)',\n lg: '(max-width: 1023px)',\n xl: '(max-width: 1279px)',\n '2xl': '(max-width: 1535px)',\n}\n\nfunction LayoutSider({\n children,\n width = 200,\n collapsedWidth = 80,\n collapsed: controlledCollapsed,\n defaultCollapsed = false,\n collapsible = false,\n onCollapse,\n trigger,\n breakpoint,\n onBreakpoint,\n className = '',\n style,\n}: LayoutSiderProps) {\n const [internalCollapsed, setInternalCollapsed] = useState(defaultCollapsed)\n const [broken, setBroken] = useState(false)\n\n const collapsed = controlledCollapsed ?? internalCollapsed\n\n // Handle responsive breakpoint\n useEffect(() => {\n if (!breakpoint) return\n\n const mediaQuery = window.matchMedia(BREAKPOINT_MAP[breakpoint])\n\n const handleChange = (e: MediaQueryListEvent | MediaQueryList) => {\n const isBroken = e.matches\n setBroken(isBroken)\n onBreakpoint?.(isBroken)\n\n // Auto-collapse when breakpoint is crossed\n if (controlledCollapsed === undefined) {\n setInternalCollapsed(isBroken)\n }\n if (isBroken !== broken) {\n onCollapse?.(isBroken)\n }\n }\n\n // Check initial state\n handleChange(mediaQuery)\n\n // Listen for changes\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [breakpoint, onBreakpoint, controlledCollapsed, onCollapse, broken])\n\n const handleCollapse = useCallback(() => {\n const newCollapsed = !collapsed\n if (controlledCollapsed === undefined) {\n setInternalCollapsed(newCollapsed)\n }\n onCollapse?.(newCollapsed)\n }, [collapsed, controlledCollapsed, onCollapse])\n\n const currentWidth = collapsed ? collapsedWidth : width\n\n const siderClasses = [\n 'flex',\n 'flex-col',\n 'bg-base-200',\n 'flex-shrink-0',\n 'transition-all',\n 'duration-200',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const defaultTrigger = collapsible && trigger !== null && (\n <button\n onClick={handleCollapse}\n className=\"flex items-center justify-center h-10 w-full bg-base-300 hover:bg-base-content/10 transition-colors\"\n aria-label={collapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n >\n <svg\n className={`w-4 h-4 transition-transform ${collapsed ? 'rotate-180' : ''}`}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n )\n\n return (\n <SiderContext.Provider value={{ collapsed, collapsedWidth, width }}>\n <aside\n className={siderClasses}\n style={{\n width: typeof currentWidth === 'number' ? `${currentWidth}px` : currentWidth,\n ...style,\n }}\n >\n <div className=\"flex-1 overflow-auto\">{children}</div>\n {trigger !== null && (trigger ?? defaultTrigger)}\n </aside>\n </SiderContext.Provider>\n )\n}\n\nLayoutSider.displayName = 'LayoutSider'\n\nexport const Layout = Object.assign(LayoutRoot, {\n Header: LayoutHeader,\n Footer: LayoutFooter,\n Content: LayoutContent,\n Sider: LayoutSider,\n})\n"],"names":["SiderContext","createContext","useSiderContext","useContext","LayoutRoot","children","className","style","childArray","React","hasSider","child","layoutClasses","processedChildren","existingClassName","jsx","LayoutHeader","headerClasses","LayoutFooter","footerClasses","LayoutContent","contentClasses","BREAKPOINT_MAP","LayoutSider","width","collapsedWidth","controlledCollapsed","defaultCollapsed","collapsible","onCollapse","trigger","breakpoint","onBreakpoint","internalCollapsed","setInternalCollapsed","useState","broken","setBroken","collapsed","useEffect","mediaQuery","handleChange","e","isBroken","handleCollapse","useCallback","newCollapsed","currentWidth","siderClasses","defaultTrigger","jsxs","Layout"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index47.js","sources":["../src/components/List.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface ListProps extends React.HTMLAttributes<HTMLUListElement> {\n children: React.ReactNode\n}\n\nexport interface ListRowProps extends React.LiHTMLAttributes<HTMLLIElement> {\n children: React.ReactNode\n}\n\nfunction ListRoot({ children, className = '', ...rest }: ListProps) {\n const classes = ['list', className].filter(Boolean).join(' ')\n return <ul className={classes} {...rest}>{children}</ul>\n}\n\nfunction ListRow({ children, className = '', ...rest }: ListRowProps) {\n const classes = ['list-row', className].filter(Boolean).join(' ')\n return <li className={classes} {...rest}>{children}</li>\n}\n\nexport const List = Object.assign(ListRoot, {\n Row: ListRow,\n})\n"],"names":["ListRoot","children","className","rest","classes","ListRow","List"],"mappings":";AAUA,SAASA,EAAS,EAAE,UAAAC,GAAU,WAAAC,IAAY,IAAI,GAAGC,KAAmB;AAClE,QAAMC,IAAU,CAAC,QAAQF,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAC5D,2BAAQ,MAAA,EAAG,WAAWE,GAAU,GAAGD,GAAO,UAAAF,GAAS;AACrD;AAEA,SAASI,EAAQ,EAAE,UAAAJ,GAAU,WAAAC,IAAY,IAAI,GAAGC,KAAsB;AACpE,QAAMC,IAAU,CAAC,YAAYF,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAChE,2BAAQ,MAAA,EAAG,WAAWE,GAAU,GAAGD,GAAO,UAAAF,GAAS;AACrD;AAEO,MAAMK,IAAO,OAAO,OAAON,GAAU;AAAA,EAC1C,KAAKK;AACP,CAAC;"}
|
package/dist/index48.js
CHANGED
|
@@ -1,16 +1,38 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { jsxs as a, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
const f = ({
|
|
3
|
+
size: r = "md",
|
|
4
|
+
type: t = "spinner",
|
|
5
|
+
className: d = "",
|
|
6
|
+
spinning: l = !0,
|
|
7
|
+
children: n,
|
|
8
|
+
tip: e,
|
|
9
|
+
...i
|
|
10
|
+
}) => {
|
|
11
|
+
const c = {
|
|
12
|
+
xs: "loading-xs",
|
|
13
|
+
sm: "loading-sm",
|
|
14
|
+
md: "loading-md",
|
|
15
|
+
lg: "loading-lg"
|
|
16
|
+
}, o = ["loading", {
|
|
17
|
+
spinner: "loading-spinner",
|
|
18
|
+
dots: "loading-dots",
|
|
19
|
+
ring: "loading-ring",
|
|
20
|
+
ball: "loading-ball",
|
|
21
|
+
bars: "loading-bars",
|
|
22
|
+
infinity: "loading-infinity"
|
|
23
|
+
}[t], c[r], d].filter(Boolean).join(" ");
|
|
24
|
+
return n ? /* @__PURE__ */ a("div", { className: "relative", ...i, children: [
|
|
25
|
+
l && /* @__PURE__ */ a("div", { className: "absolute inset-0 flex flex-col items-center justify-center bg-base-100/50 backdrop-blur-sm z-10", children: [
|
|
26
|
+
/* @__PURE__ */ s("span", { className: o }),
|
|
27
|
+
e && /* @__PURE__ */ s("p", { className: "mt-2 text-sm", children: e })
|
|
28
|
+
] }),
|
|
29
|
+
/* @__PURE__ */ s("div", { className: l ? "pointer-events-none" : "", children: n })
|
|
30
|
+
] }) : l ? /* @__PURE__ */ a("div", { className: "flex flex-col items-center gap-2", ...i, children: [
|
|
31
|
+
/* @__PURE__ */ s("span", { className: o }),
|
|
32
|
+
e && /* @__PURE__ */ s("p", { className: "text-sm", children: e })
|
|
33
|
+
] }) : null;
|
|
34
|
+
};
|
|
13
35
|
export {
|
|
14
|
-
|
|
36
|
+
f as Loading
|
|
15
37
|
};
|
|
16
38
|
//# sourceMappingURL=index48.js.map
|
package/dist/index48.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index48.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index48.js","sources":["../src/components/Loading.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface LoadingProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: 'xs' | 'sm' | 'md' | 'lg'\n type?: 'spinner' | 'dots' | 'ring' | 'ball' | 'bars' | 'infinity'\n spinning?: boolean\n children?: React.ReactNode\n tip?: string\n}\n\nexport const Loading: React.FC<LoadingProps> = ({\n size = 'md',\n type = 'spinner',\n className = '',\n spinning = true,\n children,\n tip,\n ...rest\n}) => {\n const sizeClasses = {\n xs: 'loading-xs',\n sm: 'loading-sm',\n md: 'loading-md',\n lg: 'loading-lg',\n }\n\n const typeClasses = {\n spinner: 'loading-spinner',\n dots: 'loading-dots',\n ring: 'loading-ring',\n ball: 'loading-ball',\n bars: 'loading-bars',\n infinity: 'loading-infinity',\n }\n\n const spinnerClasses = ['loading', typeClasses[type], sizeClasses[size], className]\n .filter(Boolean)\n .join(' ')\n\n if (children) {\n return (\n <div className=\"relative\" {...rest}>\n {spinning && (\n <div className=\"absolute inset-0 flex flex-col items-center justify-center bg-base-100/50 backdrop-blur-sm z-10\">\n <span className={spinnerClasses}></span>\n {tip && <p className=\"mt-2 text-sm\">{tip}</p>}\n </div>\n )}\n <div className={spinning ? 'pointer-events-none' : ''}>{children}</div>\n </div>\n )\n }\n\n if (!spinning) {\n return null\n }\n\n return (\n <div className=\"flex flex-col items-center gap-2\" {...rest}>\n <span className={spinnerClasses}></span>\n {tip && <p className=\"text-sm\">{tip}</p>}\n </div>\n )\n}\n"],"names":["Loading","size","type","className","spinning","children","tip","rest","sizeClasses","spinnerClasses","jsxs","jsx"],"mappings":";AAUO,MAAMA,IAAkC,CAAC;AAAA,EAC9C,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,UAAAC,IAAW;AAAA,EACX,UAAAC;AAAA,EACA,KAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,GAYAC,IAAiB,CAAC,WATJ;AAAA,IAClB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,EAAA,EAGmCP,CAAI,GAAGM,EAAYP,CAAI,GAAGE,CAAS,EAC/E,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SAAIE,IAEA,gBAAAK,EAAC,OAAA,EAAI,WAAU,YAAY,GAAGH,GAC3B,UAAA;AAAA,IAAAH,KACC,gBAAAM,EAAC,OAAA,EAAI,WAAU,mGACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,QAAA,EAAK,WAAWF,EAAA,CAAgB;AAAA,MAChCH,KAAO,gBAAAK,EAAC,KAAA,EAAE,WAAU,gBAAgB,UAAAL,EAAA,CAAI;AAAA,IAAA,GAC3C;AAAA,sBAED,OAAA,EAAI,WAAWF,IAAW,wBAAwB,IAAK,UAAAC,EAAA,CAAS;AAAA,EAAA,GACnE,IAICD,IAKH,gBAAAM,EAAC,OAAA,EAAI,WAAU,oCAAoC,GAAGH,GACpD,UAAA;AAAA,IAAA,gBAAAI,EAAC,QAAA,EAAK,WAAWF,EAAA,CAAgB;AAAA,IAChCH,KAAO,gBAAAK,EAAC,KAAA,EAAE,WAAU,WAAW,UAAAL,EAAA,CAAI;AAAA,EAAA,GACtC,IAPO;AASX;"}
|
package/dist/index49.js
CHANGED
|
@@ -1,38 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
};
|
|
1
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as o } from "react";
|
|
3
|
+
const i = {
|
|
4
|
+
squircle: "mask-squircle",
|
|
5
|
+
heart: "mask-heart",
|
|
6
|
+
hexagon: "mask-hexagon",
|
|
7
|
+
"hexagon-2": "mask-hexagon-2",
|
|
8
|
+
decagon: "mask-decagon",
|
|
9
|
+
pentagon: "mask-pentagon",
|
|
10
|
+
diamond: "mask-diamond",
|
|
11
|
+
square: "mask-square",
|
|
12
|
+
circle: "mask-circle",
|
|
13
|
+
star: "mask-star",
|
|
14
|
+
"star-2": "mask-star-2",
|
|
15
|
+
triangle: "mask-triangle",
|
|
16
|
+
"triangle-2": "mask-triangle-2",
|
|
17
|
+
"triangle-3": "mask-triangle-3",
|
|
18
|
+
"triangle-4": "mask-triangle-4"
|
|
19
|
+
}, k = {
|
|
20
|
+
"half-1": "mask-half-1",
|
|
21
|
+
"half-2": "mask-half-2"
|
|
22
|
+
}, g = o(
|
|
23
|
+
({ shape: s, half: a, children: e, className: r = "", ...n }, m) => {
|
|
24
|
+
const t = [
|
|
25
|
+
"mask",
|
|
26
|
+
i[s],
|
|
27
|
+
a ? k[a] : "",
|
|
28
|
+
r
|
|
29
|
+
].filter(Boolean).join(" ");
|
|
30
|
+
return /* @__PURE__ */ l("div", { ref: m, className: t, ...n, children: e });
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
g.displayName = "Mask";
|
|
35
34
|
export {
|
|
36
|
-
|
|
35
|
+
g as Mask
|
|
37
36
|
};
|
|
38
37
|
//# sourceMappingURL=index49.js.map
|
package/dist/index49.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index49.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index49.js","sources":["../src/components/Mask.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nexport type MaskShape =\n | 'squircle'\n | 'heart'\n | 'hexagon'\n | 'hexagon-2'\n | 'decagon'\n | 'pentagon'\n | 'diamond'\n | 'square'\n | 'circle'\n | 'star'\n | 'star-2'\n | 'triangle'\n | 'triangle-2'\n | 'triangle-3'\n | 'triangle-4'\n\nexport type MaskHalf = 'half-1' | 'half-2'\n\nexport interface MaskProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Shape of the mask */\n shape: MaskShape\n /** Show only half of the mask */\n half?: MaskHalf\n /** Content to mask (typically an image) */\n children: React.ReactNode\n /** Additional CSS classes */\n className?: string\n}\n\nconst shapeClasses: Record<MaskShape, string> = {\n squircle: 'mask-squircle',\n heart: 'mask-heart',\n hexagon: 'mask-hexagon',\n 'hexagon-2': 'mask-hexagon-2',\n decagon: 'mask-decagon',\n pentagon: 'mask-pentagon',\n diamond: 'mask-diamond',\n square: 'mask-square',\n circle: 'mask-circle',\n star: 'mask-star',\n 'star-2': 'mask-star-2',\n triangle: 'mask-triangle',\n 'triangle-2': 'mask-triangle-2',\n 'triangle-3': 'mask-triangle-3',\n 'triangle-4': 'mask-triangle-4',\n}\n\nconst halfClasses: Record<MaskHalf, string> = {\n 'half-1': 'mask-half-1',\n 'half-2': 'mask-half-2',\n}\n\nexport const Mask = forwardRef<HTMLDivElement, MaskProps>(\n ({ shape, half, children, className = '', ...props }, ref) => {\n const classes = [\n 'mask',\n shapeClasses[shape],\n half ? halfClasses[half] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div ref={ref} className={classes} {...props}>\n {children}\n </div>\n )\n }\n)\n\nMask.displayName = 'Mask'\n"],"names":["shapeClasses","halfClasses","Mask","forwardRef","shape","half","children","className","props","ref","classes"],"mappings":";;AAgCA,MAAMA,IAA0C;AAAA,EAC9C,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAChB,GAEMC,IAAwC;AAAA,EAC5C,UAAU;AAAA,EACV,UAAU;AACZ,GAEaC,IAAOC;AAAA,EAClB,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,UAAAC,GAAU,WAAAC,IAAY,IAAI,GAAGC,EAAA,GAASC,MAAQ;AAC5D,UAAMC,IAAU;AAAA,MACd;AAAA,MACAV,EAAaI,CAAK;AAAA,MAClBC,IAAOJ,EAAYI,CAAI,IAAI;AAAA,MAC3BE;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,6BACG,OAAA,EAAI,KAAAE,GAAU,WAAWC,GAAU,GAAGF,GACpC,UAAAF,GACH;AAAA,EAEJ;AACF;AAEAJ,EAAK,cAAc;"}
|
package/dist/index50.js
CHANGED
|
@@ -1,37 +1,84 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
import { jsx as H } from "react/jsx-runtime";
|
|
2
|
+
import I, { useRef as R, useState as b, useCallback as K, useLayoutEffect as A } from "react";
|
|
3
|
+
const d = {
|
|
4
|
+
sm: 640,
|
|
5
|
+
md: 768,
|
|
6
|
+
lg: 1024,
|
|
7
|
+
xl: 1280,
|
|
8
|
+
"2xl": 1536
|
|
9
|
+
};
|
|
10
|
+
function L(t, e) {
|
|
11
|
+
return typeof t == "number" ? t : t ? t["2xl"] !== void 0 && e >= d["2xl"] ? t["2xl"] : t.xl !== void 0 && e >= d.xl ? t.xl : t.lg !== void 0 && e >= d.lg ? t.lg : t.md !== void 0 && e >= d.md ? t.md : t.sm !== void 0 && e >= d.sm ? t.sm : t.xs !== void 0 ? t.xs : 3 : 3;
|
|
12
|
+
}
|
|
13
|
+
const O = ({
|
|
14
|
+
children: t,
|
|
15
|
+
columns: e = 3,
|
|
16
|
+
gap: r = 16,
|
|
17
|
+
className: z = "",
|
|
18
|
+
style: M,
|
|
19
|
+
...P
|
|
20
|
+
}) => {
|
|
21
|
+
const u = R(null), [l, T] = b([]), [y, N] = b(0), w = R([]), c = I.Children.toArray(t), s = K(() => {
|
|
22
|
+
const i = u.current;
|
|
23
|
+
if (!i || c.length === 0) return;
|
|
24
|
+
const n = i.offsetWidth, m = typeof window < "u" ? window.innerWidth : n, a = L(e, m), j = (n - r * (a - 1)) / a, o = new Array(a).fill(0), W = [];
|
|
25
|
+
c.forEach((_, x) => {
|
|
26
|
+
const C = w.current[x];
|
|
27
|
+
if (!C) return;
|
|
28
|
+
let h = 0, E = o[0];
|
|
29
|
+
for (let f = 1; f < a; f++)
|
|
30
|
+
o[f] < E && (E = o[f], h = f);
|
|
31
|
+
const k = h * (j + r), B = o[h];
|
|
32
|
+
W[x] = { left: k, top: B };
|
|
33
|
+
const F = C.offsetHeight;
|
|
34
|
+
o[h] += F + r;
|
|
35
|
+
}), T(W), N(Math.max(...o) - r);
|
|
36
|
+
}, [t, e, r, c.length]);
|
|
37
|
+
A(() => {
|
|
38
|
+
s();
|
|
39
|
+
const i = () => {
|
|
40
|
+
s();
|
|
41
|
+
};
|
|
42
|
+
return window.addEventListener("resize", i), () => window.removeEventListener("resize", i);
|
|
43
|
+
}, [s]), A(() => {
|
|
44
|
+
const i = setTimeout(s, 0);
|
|
45
|
+
return () => clearTimeout(i);
|
|
46
|
+
}, [t, s]);
|
|
47
|
+
const v = u.current?.offsetWidth ?? 0, S = typeof window < "u" ? window.innerWidth : v, g = L(e, S), p = v > 0 ? (v - r * (g - 1)) / g : 0;
|
|
48
|
+
return /* @__PURE__ */ H(
|
|
49
|
+
"div",
|
|
50
|
+
{
|
|
51
|
+
ref: u,
|
|
52
|
+
className: z,
|
|
53
|
+
style: {
|
|
54
|
+
position: "relative",
|
|
55
|
+
height: y > 0 ? y : void 0,
|
|
56
|
+
...M
|
|
57
|
+
},
|
|
58
|
+
...P,
|
|
59
|
+
children: c.map((i, n) => /* @__PURE__ */ H(
|
|
60
|
+
"div",
|
|
61
|
+
{
|
|
62
|
+
ref: (m) => {
|
|
63
|
+
w.current[n] = m;
|
|
64
|
+
},
|
|
65
|
+
style: {
|
|
66
|
+
position: l.length > 0 ? "absolute" : "relative",
|
|
67
|
+
left: l[n]?.left ?? 0,
|
|
68
|
+
top: l[n]?.top ?? 0,
|
|
69
|
+
width: p > 0 ? p : "100%",
|
|
70
|
+
visibility: l.length > 0 ? "visible" : "hidden"
|
|
71
|
+
},
|
|
72
|
+
children: i
|
|
73
|
+
},
|
|
74
|
+
n
|
|
75
|
+
))
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
};
|
|
79
|
+
O.displayName = "Masonry";
|
|
34
80
|
export {
|
|
35
|
-
|
|
81
|
+
O as Masonry,
|
|
82
|
+
O as default
|
|
36
83
|
};
|
|
37
84
|
//# sourceMappingURL=index50.js.map
|
package/dist/index50.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index50.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index50.js","sources":["../src/components/Masonry.tsx"],"sourcesContent":["import React, { useRef, useState, useLayoutEffect, useCallback } from 'react'\n\nexport interface MasonryProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n columns?:\n | number\n | {\n xs?: number\n sm?: number\n md?: number\n lg?: number\n xl?: number\n '2xl'?: number\n }\n gap?: number\n}\n\n// Tailwind breakpoints in pixels\nconst BREAKPOINTS = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n}\n\nfunction getColumnsForWidth(\n columns: MasonryProps['columns'],\n width: number\n): number {\n if (typeof columns === 'number') {\n return columns\n }\n\n if (!columns) return 3\n\n // Find the appropriate column count for current width\n // Start from largest breakpoint and work down\n if (columns['2xl'] !== undefined && width >= BREAKPOINTS['2xl']) {\n return columns['2xl']\n }\n if (columns.xl !== undefined && width >= BREAKPOINTS.xl) {\n return columns.xl\n }\n if (columns.lg !== undefined && width >= BREAKPOINTS.lg) {\n return columns.lg\n }\n if (columns.md !== undefined && width >= BREAKPOINTS.md) {\n return columns.md\n }\n if (columns.sm !== undefined && width >= BREAKPOINTS.sm) {\n return columns.sm\n }\n if (columns.xs !== undefined) {\n return columns.xs\n }\n\n // Default fallback\n return 3\n}\n\nexport const Masonry: React.FC<MasonryProps> = ({\n children,\n columns = 3,\n gap = 16,\n className = '',\n style,\n ...rest\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const [positions, setPositions] = useState<\n Array<{ left: number; top: number }>\n >([])\n const [containerHeight, setContainerHeight] = useState(0)\n const itemRefs = useRef<(HTMLDivElement | null)[]>([])\n\n const childArray = React.Children.toArray(children)\n\n const calculateLayout = useCallback(() => {\n const container = containerRef.current\n if (!container || childArray.length === 0) return\n\n const containerWidth = container.offsetWidth\n // Use viewport width for responsive breakpoints (matches Tailwind behavior)\n const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : containerWidth\n const numColumns = getColumnsForWidth(columns, viewportWidth)\n const columnWidth = (containerWidth - gap * (numColumns - 1)) / numColumns\n\n // Track height of each column\n const columnHeights = new Array(numColumns).fill(0)\n const newPositions: Array<{ left: number; top: number }> = []\n\n // Place each item in the shortest column\n childArray.forEach((_, index) => {\n const itemEl = itemRefs.current[index]\n if (!itemEl) return\n\n // Find shortest column\n let shortestColumn = 0\n let minHeight = columnHeights[0]\n for (let i = 1; i < numColumns; i++) {\n if (columnHeights[i] < minHeight) {\n minHeight = columnHeights[i]\n shortestColumn = i\n }\n }\n\n // Calculate position\n const left = shortestColumn * (columnWidth + gap)\n const top = columnHeights[shortestColumn]\n\n newPositions[index] = { left, top }\n\n // Update column height\n const itemHeight = itemEl.offsetHeight\n columnHeights[shortestColumn] += itemHeight + gap\n })\n\n setPositions(newPositions)\n setContainerHeight(Math.max(...columnHeights) - gap)\n }, [children, columns, gap, childArray.length])\n\n // Calculate layout after render and on resize\n useLayoutEffect(() => {\n calculateLayout()\n\n const handleResize = () => {\n calculateLayout()\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [calculateLayout])\n\n // Recalculate when children change\n useLayoutEffect(() => {\n // Small delay to ensure refs are populated\n const timer = setTimeout(calculateLayout, 0)\n return () => clearTimeout(timer)\n }, [children, calculateLayout])\n\n const containerWidth = containerRef.current?.offsetWidth ?? 0\n const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : containerWidth\n const numColumns = getColumnsForWidth(columns, viewportWidth)\n const columnWidth =\n containerWidth > 0\n ? (containerWidth - gap * (numColumns - 1)) / numColumns\n : 0\n\n return (\n <div\n ref={containerRef}\n className={className}\n style={{\n position: 'relative',\n height: containerHeight > 0 ? containerHeight : undefined,\n ...style,\n }}\n {...rest}\n >\n {childArray.map((child, index) => (\n <div\n key={index}\n ref={(el) => {\n itemRefs.current[index] = el\n }}\n style={{\n position: positions.length > 0 ? 'absolute' : 'relative',\n left: positions[index]?.left ?? 0,\n top: positions[index]?.top ?? 0,\n width: columnWidth > 0 ? columnWidth : '100%',\n visibility: positions.length > 0 ? 'visible' : 'hidden',\n }}\n >\n {child}\n </div>\n ))}\n </div>\n )\n}\n\nMasonry.displayName = 'Masonry'\n\nexport default Masonry\n"],"names":["BREAKPOINTS","getColumnsForWidth","columns","width","Masonry","children","gap","className","style","rest","containerRef","useRef","positions","setPositions","useState","containerHeight","setContainerHeight","itemRefs","childArray","React","calculateLayout","useCallback","container","containerWidth","viewportWidth","numColumns","columnWidth","columnHeights","newPositions","index","itemEl","shortestColumn","minHeight","i","left","top","itemHeight","useLayoutEffect","handleResize","timer","jsx","child","el"],"mappings":"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"}
|