@customafk/lunas-ui 0.0.89 → 0.0.90
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/{button-C15dJ7DD.d.ts → button--4Up8V16.d.ts} +6 -6
- package/dist/{button-BcvUtvUx.d.cts → button-DvLPviNh.d.cts} +6 -6
- package/dist/cards/grid-product-card.cjs +1 -1
- package/dist/cards/grid-product-card.js +1 -1
- package/dist/cards/product-card.cjs +1 -1
- package/dist/cards/product-card.js +1 -1
- package/dist/cards/simple-card.d.cts +2 -2
- package/dist/{command-DSoZmOak.d.ts → command-DCxlE_7w.d.ts} +12 -12
- package/dist/{command-CjM13Tvj.d.cts → command-DvZTC5Zs.d.cts} +11 -11
- package/dist/data-display/empty.d.cts +2 -2
- package/dist/data-display/empty.d.ts +2 -2
- package/dist/data-display/statistic.d.cts +2 -2
- package/dist/data-display/statistic.d.ts +2 -2
- package/dist/{dialog-l2nFk0v1.d.ts → dialog-BqaZEo5j.d.ts} +12 -12
- package/dist/dialogs/detail-dialog/component/sidebar.d.cts +4 -4
- package/dist/dialogs/detail-dialog/component/sidebar.d.ts +4 -4
- package/dist/dialogs/form-dialog.d.cts +2 -2
- package/dist/dialogs/form-dialog.d.ts +2 -2
- package/dist/forms/combobox-field.d.cts +2 -2
- package/dist/forms/combobox-field.d.ts +2 -2
- package/dist/forms/date-field.d.cts +2 -2
- package/dist/forms/date-field.d.ts +2 -2
- package/dist/forms/form-wrapper.d.cts +2 -2
- package/dist/forms/form-wrapper.d.ts +2 -2
- package/dist/forms/multi-select-field.d.cts +2 -2
- package/dist/forms/multi-select-field.d.ts +2 -2
- package/dist/forms/number-field.d.cts +2 -2
- package/dist/forms/number-field.d.ts +2 -2
- package/dist/forms/password-field.d.cts +2 -2
- package/dist/forms/password-field.d.ts +2 -2
- package/dist/forms/select-field.d.cts +2 -2
- package/dist/forms/select-field.d.ts +2 -2
- package/dist/forms/switch-field.d.cts +2 -2
- package/dist/forms/switch-field.d.ts +2 -2
- package/dist/forms/text-field.d.cts +2 -2
- package/dist/forms/text-field.d.ts +2 -2
- package/dist/forms/textarea-field.d.cts +2 -2
- package/dist/forms/textarea-field.d.ts +2 -2
- package/dist/image-BENkCNFO.cjs +2 -0
- package/dist/image-BENkCNFO.cjs.map +1 -0
- package/dist/image-CQ2i6x3d.js +2 -0
- package/dist/image-CQ2i6x3d.js.map +1 -0
- package/dist/{input-C3yhFrhm.d.ts → input-ChVagjGs.d.cts} +3 -3
- package/dist/{input-BFZu6Cb8.d.cts → input-_Uc9Nudu.d.ts} +3 -3
- package/dist/{label-DSlGeKZK.d.ts → label--w6MDGCn.d.ts} +3 -3
- package/dist/label-BkmYDt9h.d.cts +11 -0
- package/dist/layouts/app-layout/index.d.cts +5 -5
- package/dist/layouts/app-layout/index.d.ts +28 -28
- package/dist/layouts/flex.d.cts +5 -5
- package/dist/layouts/flex.d.ts +7 -7
- package/dist/layouts/service-layout/index.cjs +1 -1
- package/dist/layouts/service-layout/index.cjs.map +1 -1
- package/dist/layouts/service-layout/index.d.cts +5 -5
- package/dist/layouts/service-layout/index.d.ts +15 -15
- package/dist/layouts/service-layout/index.js +1 -1
- package/dist/layouts/service-layout/index.js.map +1 -1
- package/dist/pages/FeatureDeveloping.cjs.map +1 -1
- package/dist/pages/FeatureDeveloping.d.cts +2 -2
- package/dist/pages/FeatureDeveloping.d.ts +2 -2
- package/dist/pages/FeatureDeveloping.js.map +1 -1
- package/dist/pages/FeatureFixing.d.ts +2 -2
- package/dist/pages/NotAuthorized.d.cts +2 -2
- package/dist/pages/NotAuthorized.d.ts +2 -2
- package/dist/pages/NotFound.d.cts +2 -2
- package/dist/pages/NotFound.d.ts +2 -2
- package/dist/products/product-quantity-control.d.cts +2 -2
- package/dist/products/product-quantity-control.d.ts +2 -2
- package/dist/{separator-37DVXMoq.d.ts → separator-CLCuP1xE.d.ts} +3 -3
- package/dist/{separator-CM1kQQxq.d.cts → separator-CrQFgLB_.d.cts} +3 -3
- package/dist/table/index.d.cts +2 -2
- package/dist/table/index.d.ts +2 -2
- package/dist/{toggle-DTyO_oae.d.cts → toggle-1Tlu1OKT.d.ts} +4 -4
- package/dist/{toggle-CIqx9KlR.d.ts → toggle-ZmWe85dU.d.cts} +5 -5
- package/dist/{tooltip-C5kKsbnD.d.ts → tooltip-BEEk7osU.d.ts} +6 -6
- package/dist/{tooltip-etV38FoO.d.cts → tooltip-BgwfJliB.d.cts} +6 -6
- package/dist/typography/paragraph.d.cts +2 -2
- package/dist/typography/paragraph.d.ts +2 -2
- package/dist/typography/title.d.cts +2 -2
- package/dist/typography/title.d.ts +2 -2
- package/dist/ui/alert-dialog.d.cts +12 -12
- package/dist/ui/alert-dialog.d.ts +12 -12
- package/dist/ui/alert.d.cts +7 -7
- package/dist/ui/alert.d.ts +7 -7
- package/dist/ui/aspect-ratio.d.cts +2 -2
- package/dist/ui/aspect-ratio.d.ts +2 -2
- package/dist/ui/avatar.d.cts +4 -4
- package/dist/ui/avatar.d.ts +4 -4
- package/dist/ui/badge.d.cts +5 -5
- package/dist/ui/badge.d.ts +3 -3
- package/dist/ui/breadcrumb.d.cts +8 -8
- package/dist/ui/breadcrumb.d.ts +8 -8
- package/dist/ui/button-group.d.cts +8 -8
- package/dist/ui/button-group.d.ts +8 -8
- package/dist/ui/button.d.cts +1 -1
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/calendar.d.cts +4 -4
- package/dist/ui/calendar.d.ts +4 -4
- package/dist/ui/card.d.cts +8 -8
- package/dist/ui/card.d.ts +8 -8
- package/dist/ui/carousel.d.cts +7 -7
- package/dist/ui/carousel.d.ts +7 -7
- package/dist/ui/collapsible.d.cts +4 -4
- package/dist/ui/collapsible.d.ts +4 -4
- package/dist/ui/command.d.cts +1 -1
- package/dist/ui/command.d.ts +2 -2
- package/dist/ui/context-menu.d.cts +16 -16
- package/dist/ui/context-menu.d.ts +16 -16
- package/dist/ui/dialog.d.ts +1 -1
- package/dist/ui/drawer.d.cts +11 -11
- package/dist/ui/drawer.d.ts +11 -11
- package/dist/ui/dropdown-menu.d.cts +16 -16
- package/dist/ui/dropdown-menu.d.ts +16 -16
- package/dist/ui/empty.d.cts +7 -7
- package/dist/ui/empty.d.ts +7 -7
- package/dist/ui/field.d.cts +15 -15
- package/dist/ui/field.d.ts +15 -15
- package/dist/ui/file-uploader.d.cts +2 -2
- package/dist/ui/file-uploader.d.ts +2 -2
- package/dist/ui/form.d.cts +7 -7
- package/dist/ui/form.d.ts +7 -7
- package/dist/ui/hover-card.d.cts +4 -4
- package/dist/ui/hover-card.d.ts +4 -4
- package/dist/ui/image.cjs +1 -1
- package/dist/ui/image.d.cts +1 -0
- package/dist/ui/image.d.ts +1 -0
- package/dist/ui/image.js +1 -1
- package/dist/ui/input-otp.d.cts +5 -5
- package/dist/ui/input-otp.d.ts +5 -5
- package/dist/ui/input.d.cts +1 -1
- package/dist/ui/input.d.ts +1 -1
- package/dist/ui/inputs/search-input.d.cts +3 -3
- package/dist/ui/inputs/search-input.d.ts +3 -3
- package/dist/ui/item.d.cts +15 -15
- package/dist/ui/item.d.ts +15 -15
- package/dist/ui/label.d.cts +1 -1
- package/dist/ui/label.d.ts +1 -1
- package/dist/ui/menubar.d.cts +17 -17
- package/dist/ui/menubar.d.ts +17 -17
- package/dist/ui/multi-select.d.cts +1 -1
- package/dist/ui/multi-select.d.ts +2 -2
- package/dist/ui/navigation-menu.d.cts +11 -11
- package/dist/ui/navigation-menu.d.ts +11 -11
- package/dist/ui/pagination.d.cts +9 -9
- package/dist/ui/pagination.d.ts +9 -9
- package/dist/ui/popover.d.cts +5 -5
- package/dist/ui/popover.d.ts +5 -5
- package/dist/ui/progress.d.cts +2 -2
- package/dist/ui/progress.d.ts +2 -2
- package/dist/ui/radio-group.d.cts +3 -3
- package/dist/ui/radio-group.d.ts +3 -3
- package/dist/ui/resizable.d.cts +4 -4
- package/dist/ui/resizable.d.ts +4 -4
- package/dist/ui/scroll-area.d.cts +3 -3
- package/dist/ui/scroll-area.d.ts +3 -3
- package/dist/ui/select.d.cts +11 -11
- package/dist/ui/select.d.ts +11 -11
- package/dist/ui/separator.d.cts +1 -1
- package/dist/ui/separator.d.ts +1 -1
- package/dist/ui/sheet.d.cts +9 -9
- package/dist/ui/sheet.d.ts +9 -9
- package/dist/ui/sidebar.d.cts +30 -30
- package/dist/ui/sidebar.d.ts +30 -30
- package/dist/ui/skeleton.d.cts +2 -2
- package/dist/ui/skeleton.d.ts +2 -2
- package/dist/ui/slider.d.cts +2 -2
- package/dist/ui/slider.d.ts +2 -2
- package/dist/ui/sonner.d.cts +2 -2
- package/dist/ui/sonner.d.ts +2 -2
- package/dist/ui/spinner.d.cts +2 -2
- package/dist/ui/spinner.d.ts +2 -2
- package/dist/ui/switch.d.cts +2 -2
- package/dist/ui/switch.d.ts +2 -2
- package/dist/ui/table.d.cts +9 -9
- package/dist/ui/table.d.ts +9 -9
- package/dist/ui/tabs.d.cts +5 -5
- package/dist/ui/tabs.d.ts +5 -5
- package/dist/ui/textarea.d.cts +2 -2
- package/dist/ui/textarea.d.ts +2 -2
- package/dist/ui/toggle-group.d.cts +4 -4
- package/dist/ui/toggle-group.d.ts +4 -4
- package/dist/ui/toggle.d.cts +1 -1
- package/dist/ui/toggle.d.ts +1 -1
- package/dist/ui/tooltip.d.cts +1 -1
- package/dist/ui/tooltip.d.ts +1 -1
- package/package.json +1 -1
- package/dist/image-C0mClPAY.cjs +0 -2
- package/dist/image-C0mClPAY.cjs.map +0 -1
- package/dist/image-CiQhTTyt.js +0 -2
- package/dist/image-CiQhTTyt.js.map +0 -1
- package/dist/label-BaRuPui8.d.cts +0 -11
package/dist/ui/textarea.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime250 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region packages/components/ui/textarea.d.ts
|
|
4
4
|
declare function Textarea({
|
|
@@ -8,7 +8,7 @@ declare function Textarea({
|
|
|
8
8
|
...props
|
|
9
9
|
}: React.ComponentProps<'textarea'> & {
|
|
10
10
|
onValueChange?: (value: string) => void;
|
|
11
|
-
}):
|
|
11
|
+
}): react_jsx_runtime250.JSX.Element;
|
|
12
12
|
//#endregion
|
|
13
13
|
export { Textarea };
|
|
14
14
|
//# sourceMappingURL=textarea.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { toggleVariants } from "../toggle-
|
|
2
|
-
import * as
|
|
1
|
+
import { toggleVariants } from "../toggle-ZmWe85dU.cjs";
|
|
2
|
+
import * as react_jsx_runtime273 from "react/jsx-runtime";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
import { ToggleGroup as ToggleGroup$1 } from "radix-ui";
|
|
5
5
|
|
|
@@ -10,14 +10,14 @@ declare function ToggleGroup({
|
|
|
10
10
|
size,
|
|
11
11
|
children,
|
|
12
12
|
...props
|
|
13
|
-
}: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants>):
|
|
13
|
+
}: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants>): react_jsx_runtime273.JSX.Element;
|
|
14
14
|
declare function ToggleGroupItem({
|
|
15
15
|
className,
|
|
16
16
|
children,
|
|
17
17
|
variant,
|
|
18
18
|
size,
|
|
19
19
|
...props
|
|
20
|
-
}: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>):
|
|
20
|
+
}: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react_jsx_runtime273.JSX.Element;
|
|
21
21
|
//#endregion
|
|
22
22
|
export { ToggleGroup, ToggleGroupItem };
|
|
23
23
|
//# sourceMappingURL=toggle-group.d.cts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { toggleVariants } from "../toggle-
|
|
2
|
-
import * as
|
|
1
|
+
import { toggleVariants } from "../toggle-1Tlu1OKT.js";
|
|
2
|
+
import * as react_jsx_runtime255 from "react/jsx-runtime";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
import { ToggleGroup as ToggleGroup$1 } from "radix-ui";
|
|
5
5
|
|
|
@@ -10,14 +10,14 @@ declare function ToggleGroup({
|
|
|
10
10
|
size,
|
|
11
11
|
children,
|
|
12
12
|
...props
|
|
13
|
-
}: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants>):
|
|
13
|
+
}: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants>): react_jsx_runtime255.JSX.Element;
|
|
14
14
|
declare function ToggleGroupItem({
|
|
15
15
|
className,
|
|
16
16
|
children,
|
|
17
17
|
variant,
|
|
18
18
|
size,
|
|
19
19
|
...props
|
|
20
|
-
}: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>):
|
|
20
|
+
}: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react_jsx_runtime255.JSX.Element;
|
|
21
21
|
//#endregion
|
|
22
22
|
export { ToggleGroup, ToggleGroupItem };
|
|
23
23
|
//# sourceMappingURL=toggle-group.d.ts.map
|
package/dist/ui/toggle.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Toggle, toggleVariants } from "../toggle-
|
|
1
|
+
import { Toggle, toggleVariants } from "../toggle-ZmWe85dU.cjs";
|
|
2
2
|
export { Toggle, toggleVariants };
|
package/dist/ui/toggle.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Toggle, toggleVariants } from "../toggle-
|
|
1
|
+
import { Toggle, toggleVariants } from "../toggle-1Tlu1OKT.js";
|
|
2
2
|
export { Toggle, toggleVariants };
|
package/dist/ui/tooltip.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../tooltip-
|
|
1
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../tooltip-BgwfJliB.cjs";
|
|
2
2
|
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
package/dist/ui/tooltip.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../tooltip-
|
|
1
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../tooltip-BEEk7osU.js";
|
|
2
2
|
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
package/package.json
CHANGED
package/dist/image-C0mClPAY.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./skeleton-BC2E_ohw.cjs`);let n=require(`lucide-react`);n=e.__toESM(n);let r=require(`@customafk/react-toolkit/utils`);r=e.__toESM(r);let i=require(`react`);i=e.__toESM(i);let a=require(`react/jsx-runtime`);a=e.__toESM(a);const o=({src:e,alt:o,width:s,height:c,maxRetries:l=3,retryDelay:u=500,className:d,onClick:f})=>{let p=(0,i.useRef)(null),[m,h]=(0,i.useState)(e),[g,_]=(0,i.useState)(0),[v,y]=(0,i.useState)(!1),[b,x]=(0,i.useState)(!1),S=(0,i.useCallback)(()=>{y(!0)},[]),C=(0,i.useCallback)(()=>{if(g<l){x(!1);let t=g+1;_(t),setTimeout(()=>{let n=`?retry=${Date.now()}&attempt=${t}`;h(e+n)},u*t);return}x(!0),y(!0),h(e)},[l,g,u,e]);return b?(0,a.jsx)(`div`,{style:{width:s,height:c},className:(0,r.cn)(`@container relative inline-block`,d),children:(0,a.jsxs)(`div`,{className:`bg-danger-muted shadow-card flex size-full flex-col items-center justify-center gap-y-2 rounded-md`,children:[(0,a.jsx)(n.AlertCircleIcon,{className:`text-danger size-8 @max-[52px]:size-6`}),(0,a.jsx)(`span`,{className:`text-danger-weak text-center text-xs @max-[96px]:sr-only`,children:`Image failed to load`})]})}):(0,a.jsxs)(`div`,{style:{width:s,height:c},className:(0,r.cn)(`relative flex items-center justify-center overflow-hidden rounded-md`,d),onClick:f,children:[!v&&(0,a.jsx)(t.Skeleton,{className:`absolute inset-0 flex size-full animate-pulse items-center justify-center`}),(0,a.jsx)(`img`,{src:m,className:`absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60`}),(0,a.jsx)(`img`,{id:m,ref:p,src:m,alt:o,loading:`lazy`,className:(0,r.cn)(`shadow-card relative h-[120%] w-auto object-cover transition-opacity duration-300`,v&&`opacity-100`,!v&&`pointer-events-none opacity-0`),onLoad:S,onError:C})]})};Object.defineProperty(exports,`Image`,{enumerable:!0,get:function(){return o}});
|
|
2
|
-
//# sourceMappingURL=image-C0mClPAY.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-C0mClPAY.cjs","names":["Image: React.FC<Props>","AlertCircleIcon","Skeleton"],"sources":["../packages/components/ui/image.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { AlertCircleIcon } from 'lucide-react';\n\nimport { Skeleton } from './skeleton';\n\ntype Props = {\n src?: string;\n alt?: string;\n width?: number | string;\n height?: number | string;\n maxRetries?: number;\n retryDelay?: number;\n className?: string;\n onClick?: () => void;\n};\nexport const Image: React.FC<Props> = ({ src, alt, width, height, maxRetries = 3, retryDelay = 500, className, onClick }) => {\n const imageRef = useRef<HTMLImageElement>(null);\n const [currentSrc, setCurrentSrc] = useState<string | undefined>(src);\n const [retryCount, setRetryCount] = useState<number>(0);\n const [isLoaded, setIsLoaded] = useState<boolean>(false);\n const [hasError, setHasError] = useState<boolean>(false);\n\n const handleLoad = useCallback(() => {\n setIsLoaded(true);\n }, []);\n\n const handleError = useCallback(() => {\n if (retryCount < maxRetries) {\n // imageRef.current?.style.setProperty('display', 'none')\n setHasError(false);\n const newRetryCount = retryCount + 1;\n setRetryCount(newRetryCount);\n\n // Retry with exponential backoff and cache busting\n setTimeout(() => {\n const cacheBuster = `?retry=${Date.now()}&attempt=${newRetryCount}`;\n setCurrentSrc(src + cacheBuster);\n }, retryDelay * newRetryCount);\n return;\n }\n\n setHasError(true);\n setIsLoaded(true);\n setCurrentSrc(src);\n }, [maxRetries, retryCount, retryDelay, src]);\n\n if (hasError) {\n return (\n <div style={{ width, height }} className={cn('@container relative inline-block', className)}>\n <div className=\"bg-danger-muted shadow-card flex size-full flex-col items-center justify-center gap-y-2 rounded-md\">\n <AlertCircleIcon className=\"text-danger size-8 @max-[52px]:size-6\" />\n <span className=\"text-danger-weak text-center text-xs @max-[96px]:sr-only\">Image failed to load</span>\n </div>\n </div>\n );\n }\n\n return (\n <div style={{ width, height }} className={cn('relative flex items-center justify-center overflow-hidden rounded-md', className)} onClick={onClick}>\n {!isLoaded && <Skeleton className=\"absolute inset-0 flex size-full animate-pulse items-center justify-center\" />}\n <img src={currentSrc} className=\"absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60\" />\n <img\n id={currentSrc}\n ref={imageRef}\n src={currentSrc}\n alt={alt}\n loading=\"lazy\"\n className={cn(\n 'shadow-card relative h-[120%] w-auto object-cover transition-opacity duration-300',\n isLoaded && 'opacity-100',\n !isLoaded && 'pointer-events-none opacity-0'\n )}\n onLoad={handleLoad}\n onError={handleError}\n />\n </div>\n );\n};\n"],"mappings":"iRAiBA,MAAaA,GAA0B,CAAE,MAAK,MAAK,QAAO,SAAQ,aAAa,EAAG,aAAa,IAAK,YAAW,aAAc,CAC3H,IAAM,GAAA,EAAA,EAAA,QAAoC,KAAK,CACzC,CAAC,EAAY,IAAA,EAAA,EAAA,UAA8C,EAAI,CAC/D,CAAC,EAAY,IAAA,EAAA,EAAA,UAAkC,EAAE,CACjD,CAAC,EAAU,IAAA,EAAA,EAAA,UAAiC,GAAM,CAClD,CAAC,EAAU,IAAA,EAAA,EAAA,UAAiC,GAAM,CAElD,GAAA,EAAA,EAAA,iBAA+B,CACnC,EAAY,GAAK,EAChB,EAAE,CAAC,CAEA,GAAA,EAAA,EAAA,iBAAgC,CACpC,GAAI,EAAa,EAAY,CAE3B,EAAY,GAAM,CAClB,IAAM,EAAgB,EAAa,EACnC,EAAc,EAAc,CAG5B,eAAiB,CACf,IAAM,EAAc,UAAU,KAAK,KAAK,CAAC,WAAW,IACpD,EAAc,EAAM,EAAY,EAC/B,EAAa,EAAc,CAC9B,OAGF,EAAY,GAAK,CACjB,EAAY,GAAK,CACjB,EAAc,EAAI,EACjB,CAAC,EAAY,EAAY,EAAY,EAAI,CAAC,CAa7C,OAXI,GAEA,EAAA,EAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,WAAA,EAAA,EAAA,IAAc,mCAAoC,EAAU,WACzF,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,gHACb,EAAA,EAAA,KAACC,EAAAA,gBAAAA,CAAgB,UAAU,wCAAA,CAA0C,EACrE,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,oEAA2D,wBAA2B,CAAA,EAClG,EACF,EAKR,EAAA,EAAA,MAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,WAAA,EAAA,EAAA,IAAc,uEAAwE,EAAU,CAAW,oBACvI,CAAC,IAAY,EAAA,EAAA,KAACC,EAAAA,SAAAA,CAAS,UAAU,4EAAA,CAA8E,EAChH,EAAA,EAAA,KAAC,MAAA,CAAI,IAAK,EAAY,UAAU,+EAAgF,EAChH,EAAA,EAAA,KAAC,MAAA,CACC,GAAI,EACJ,IAAK,EACL,IAAK,EACA,MACL,QAAQ,OACR,WAAA,EAAA,EAAA,IACE,oFACA,GAAY,cACZ,CAAC,GAAY,gCACd,CACD,OAAQ,EACR,QAAS,GACT,GACE"}
|
package/dist/image-CiQhTTyt.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Skeleton as e}from"./skeleton-ByN-MrQO.js";import{AlertCircleIcon as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{useCallback as r,useRef as i,useState as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c=({src:c,alt:l,width:u,height:d,maxRetries:f=3,retryDelay:p=500,className:m,onClick:h})=>{let g=i(null),[_,v]=a(c),[y,b]=a(0),[x,S]=a(!1),[C,w]=a(!1),T=r(()=>{S(!0)},[]),E=r(()=>{if(y<f){w(!1);let e=y+1;b(e),setTimeout(()=>{let t=`?retry=${Date.now()}&attempt=${e}`;v(c+t)},p*e);return}w(!0),S(!0),v(c)},[f,y,p,c]);return C?o(`div`,{style:{width:u,height:d},className:n(`@container relative inline-block`,m),children:s(`div`,{className:`bg-danger-muted shadow-card flex size-full flex-col items-center justify-center gap-y-2 rounded-md`,children:[o(t,{className:`text-danger size-8 @max-[52px]:size-6`}),o(`span`,{className:`text-danger-weak text-center text-xs @max-[96px]:sr-only`,children:`Image failed to load`})]})}):s(`div`,{style:{width:u,height:d},className:n(`relative flex items-center justify-center overflow-hidden rounded-md`,m),onClick:h,children:[!x&&o(e,{className:`absolute inset-0 flex size-full animate-pulse items-center justify-center`}),o(`img`,{src:_,className:`absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60`}),o(`img`,{id:_,ref:g,src:_,alt:l,loading:`lazy`,className:n(`shadow-card relative h-[120%] w-auto object-cover transition-opacity duration-300`,x&&`opacity-100`,!x&&`pointer-events-none opacity-0`),onLoad:T,onError:E})]})};export{c as Image};
|
|
2
|
-
//# sourceMappingURL=image-CiQhTTyt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-CiQhTTyt.js","names":["Image: React.FC<Props>"],"sources":["../packages/components/ui/image.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { AlertCircleIcon } from 'lucide-react';\n\nimport { Skeleton } from './skeleton';\n\ntype Props = {\n src?: string;\n alt?: string;\n width?: number | string;\n height?: number | string;\n maxRetries?: number;\n retryDelay?: number;\n className?: string;\n onClick?: () => void;\n};\nexport const Image: React.FC<Props> = ({ src, alt, width, height, maxRetries = 3, retryDelay = 500, className, onClick }) => {\n const imageRef = useRef<HTMLImageElement>(null);\n const [currentSrc, setCurrentSrc] = useState<string | undefined>(src);\n const [retryCount, setRetryCount] = useState<number>(0);\n const [isLoaded, setIsLoaded] = useState<boolean>(false);\n const [hasError, setHasError] = useState<boolean>(false);\n\n const handleLoad = useCallback(() => {\n setIsLoaded(true);\n }, []);\n\n const handleError = useCallback(() => {\n if (retryCount < maxRetries) {\n // imageRef.current?.style.setProperty('display', 'none')\n setHasError(false);\n const newRetryCount = retryCount + 1;\n setRetryCount(newRetryCount);\n\n // Retry with exponential backoff and cache busting\n setTimeout(() => {\n const cacheBuster = `?retry=${Date.now()}&attempt=${newRetryCount}`;\n setCurrentSrc(src + cacheBuster);\n }, retryDelay * newRetryCount);\n return;\n }\n\n setHasError(true);\n setIsLoaded(true);\n setCurrentSrc(src);\n }, [maxRetries, retryCount, retryDelay, src]);\n\n if (hasError) {\n return (\n <div style={{ width, height }} className={cn('@container relative inline-block', className)}>\n <div className=\"bg-danger-muted shadow-card flex size-full flex-col items-center justify-center gap-y-2 rounded-md\">\n <AlertCircleIcon className=\"text-danger size-8 @max-[52px]:size-6\" />\n <span className=\"text-danger-weak text-center text-xs @max-[96px]:sr-only\">Image failed to load</span>\n </div>\n </div>\n );\n }\n\n return (\n <div style={{ width, height }} className={cn('relative flex items-center justify-center overflow-hidden rounded-md', className)} onClick={onClick}>\n {!isLoaded && <Skeleton className=\"absolute inset-0 flex size-full animate-pulse items-center justify-center\" />}\n <img src={currentSrc} className=\"absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60\" />\n <img\n id={currentSrc}\n ref={imageRef}\n src={currentSrc}\n alt={alt}\n loading=\"lazy\"\n className={cn(\n 'shadow-card relative h-[120%] w-auto object-cover transition-opacity duration-300',\n isLoaded && 'opacity-100',\n !isLoaded && 'pointer-events-none opacity-0'\n )}\n onLoad={handleLoad}\n onError={handleError}\n />\n </div>\n );\n};\n"],"mappings":"qQAiBA,MAAaA,GAA0B,CAAE,MAAK,MAAK,QAAO,SAAQ,aAAa,EAAG,aAAa,IAAK,YAAW,aAAc,CAC3H,IAAM,EAAW,EAAyB,KAAK,CACzC,CAAC,EAAY,GAAiB,EAA6B,EAAI,CAC/D,CAAC,EAAY,GAAiB,EAAiB,EAAE,CACjD,CAAC,EAAU,GAAe,EAAkB,GAAM,CAClD,CAAC,EAAU,GAAe,EAAkB,GAAM,CAElD,EAAa,MAAkB,CACnC,EAAY,GAAK,EAChB,EAAE,CAAC,CAEA,EAAc,MAAkB,CACpC,GAAI,EAAa,EAAY,CAE3B,EAAY,GAAM,CAClB,IAAM,EAAgB,EAAa,EACnC,EAAc,EAAc,CAG5B,eAAiB,CACf,IAAM,EAAc,UAAU,KAAK,KAAK,CAAC,WAAW,IACpD,EAAc,EAAM,EAAY,EAC/B,EAAa,EAAc,CAC9B,OAGF,EAAY,GAAK,CACjB,EAAY,GAAK,CACjB,EAAc,EAAI,EACjB,CAAC,EAAY,EAAY,EAAY,EAAI,CAAC,CAa7C,OAXI,EAEA,EAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,UAAW,EAAG,mCAAoC,EAAU,UACzF,EAAC,MAAA,CAAI,UAAU,+GACb,EAAC,EAAA,CAAgB,UAAU,wCAAA,CAA0C,CACrE,EAAC,OAAA,CAAK,UAAU,oEAA2D,wBAA2B,CAAA,EAClG,EACF,CAKR,EAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,UAAW,EAAG,uEAAwE,EAAU,CAAW,oBACvI,CAAC,GAAY,EAAC,EAAA,CAAS,UAAU,4EAAA,CAA8E,CAChH,EAAC,MAAA,CAAI,IAAK,EAAY,UAAU,+EAAgF,CAChH,EAAC,MAAA,CACC,GAAI,EACJ,IAAK,EACL,IAAK,EACA,MACL,QAAQ,OACR,UAAW,EACT,oFACA,GAAY,cACZ,CAAC,GAAY,gCACd,CACD,OAAQ,EACR,QAAS,GACT,GACE"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime100 from "react/jsx-runtime";
|
|
2
|
-
import { Label } from "radix-ui";
|
|
3
|
-
|
|
4
|
-
//#region packages/components/ui/label.d.ts
|
|
5
|
-
declare function Label$1({
|
|
6
|
-
className,
|
|
7
|
-
...props
|
|
8
|
-
}: React.ComponentProps<typeof Label.Root>): react_jsx_runtime100.JSX.Element;
|
|
9
|
-
//#endregion
|
|
10
|
-
export { Label$1 as Label };
|
|
11
|
-
//# sourceMappingURL=label-BaRuPui8.d.cts.map
|