@majapisoftwares/ui 4.1.9 → 4.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,8 @@
1
1
  import * as Dialog from "@radix-ui/react-dialog";
2
2
  import { VisuallyHidden } from "radix-ui";
3
- import { useCallback } from "react";
4
- import { ChevronRightIcon, MagnifyingGlassIcon, } from "@heroicons/react/24/solid";
3
+ import { Fragment, useCallback } from "react";
4
+ import { ChevronRightIcon } from "@heroicons/react/20/solid";
5
+ import { MagnifyingGlassIcon } from "@heroicons/react/24/solid";
5
6
  import { useLocalStorage } from "react-use";
6
7
  import { take, uniqBy } from "lodash-es";
7
8
  import Image from "next/image";
@@ -21,57 +22,60 @@ export default function Spotlight({ recentSearchesId, open, setOpen, setQuery, q
21
22
  onClickItem?.(item);
22
23
  handleClose(item);
23
24
  }, [handleClose, onClickItem]);
24
- return (<Dialog.Root open={open} onOpenChange={setOpen}>
25
- <Dialog.Portal>
26
- <Dialog.Overlay className={clsx("fixed inset-0 z-20 flex justify-center bg-black/30 backdrop-blur-xs", "data-[state=closed]:animate-fade-out data-[state=open]:animate-slide-up-and-fade will-change-[opacity,transform]", overlayClassName)}>
27
- <Dialog.Content className={clsx("fixed mx-auto w-full max-w-(--breakpoint-md) px-4 py-4 focus:outline-hidden md:py-8", "data-[state=closed]:animate-fade-out data-[state=open]:animate-elastic-slide-up-and-fade will-change-[transform,opacity]", dialogContentClassName)}>
28
- <VisuallyHidden.Root>
29
- <Dialog.Title />
30
- <Dialog.Description />
31
- </VisuallyHidden.Root>
32
- <div className={clsx("flex w-full flex-col justify-center rounded-sm border border-zinc-800 bg-zinc-900", className)}>
33
- <div className="px-4 py-4">
34
- <Input className={clsx("w-full bg-zinc-900", contentClassName)} inputClassName={clsx("border-none rounded-t-md rounded-b-none dark:bg-zinc-900 dark:focus:ring-0", inputClassName)} autoFocus={true} leading={<MagnifyingGlassIcon className={clsx("h-5 w-5 text-white", iconClassName)}/>} value={query} onChange={(e) => setQuery(e.target.value)}/>
35
- </div>
36
- <div className="w-full border-t border-zinc-800">
37
- <div className="flex flex-col">
38
- {query ? (<>
39
- {loading && (<div className="flex items-center gap-4 px-4 py-2">
40
- {getItemPicture && <Skeleton className="h-16 w-28"/>}
41
- <Skeleton className="h-6 w-32"/>
42
- </div>)}
43
- {!loading && !results?.length && (<div className={clsx("flex justify-center border-b border-zinc-800 px-6 py-10 text-zinc-600", noResultsClassName)}>
44
- {noResultsLabel}
45
- </div>)}
46
- {!loading && !!results?.length && (<>
47
- {results.map((item) => (<UnstyledButton key={getItemId(item)} href={getItemHref?.(item)} className="flex w-full items-center gap-4 border-t border-zinc-800 px-4 py-2 hover:bg-zinc-800/90" onClick={handleItemClick(item)}>
48
- {getItemPicture && (<Image src={getItemPicture(item)} alt={getItemLabel(item)} width={200} height={378} className="h-16 w-28 rounded-sm object-cover"/>)}
49
- <div className="text-white">
50
- {getItemLabel(item)}
51
- </div>
52
- </UnstyledButton>))}
53
- {showSeeMoreButton && (<div className="flex w-full justify-center px-4 py-2">
54
- <Button variant="filled" type="submit" className={clsx("w-full dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700", buttonClassName)} trailing={<ChevronRightIcon />} onClick={onSeeMoreClick} href={seeMoreHref}>
55
- {buttonLabel}
56
- </Button>
57
- </div>)}
58
- </>)}
59
- </>) : (<>
60
- {recentQueries?.length ? (<div className={clsx("px-6 py-2 text-zinc-400", recentSearchClassName)}>
61
- {recentlySearchedLabel}
62
- </div>) : (<div className={clsx("flex justify-center border-zinc-800 px-6 py-10 text-zinc-600", noResultsClassName)}>
63
- {noRecentSearchLabel}
64
- </div>)}
65
- {recentQueries?.map((item) => (<UnstyledButton key={getItemId(item)} href={getItemHref?.(item)} className="flex w-full items-center gap-4 border-t border-zinc-800 px-4 py-2 hover:bg-zinc-800/90" onClick={handleItemClick(item)}>
66
- {getItemPicture && (<Image src={getItemPicture(item)} alt={getItemLabel(item)} width={200} height={378} className="max-h-16 max-w-28 rounded-sm object-cover"/>)}
67
- <div className="text-white">{getItemLabel(item)}</div>
68
- </UnstyledButton>))}
69
- </>)}
70
- </div>
71
- </div>
72
- </div>
73
- </Dialog.Content>
74
- </Dialog.Overlay>
75
- </Dialog.Portal>
25
+ return (<Dialog.Root open={open} onOpenChange={setOpen}>
26
+ <Dialog.Portal>
27
+ <Dialog.Overlay className={clsx("fixed inset-0 z-20 flex justify-center bg-white/30 backdrop-blur-xs dark:bg-black/30", "data-[state=closed]:animate-fade-out data-[state=open]:animate-slide-up-and-fade will-change-[opacity,transform]", overlayClassName)}>
28
+ <Dialog.Content className={clsx("fixed mx-auto w-full max-w-(--breakpoint-md) px-4 py-4 focus:outline-hidden md:py-8", "data-[state=closed]:animate-fade-out data-[state=open]:animate-elastic-slide-up-and-fade will-change-[transform,opacity]", dialogContentClassName)}>
29
+ <VisuallyHidden.Root>
30
+ <Dialog.Title />
31
+ <Dialog.Description />
32
+ </VisuallyHidden.Root>
33
+ <div className={clsx("flex w-full flex-col justify-center rounded-sm border border-zinc-200 bg-zinc-100 dark:border-zinc-800 dark:bg-zinc-900", className)}>
34
+ <div className="px-4 py-4">
35
+ <Input className={clsx("w-full", contentClassName)} inputClassName={clsx("border-none rounded-none shadow-none rounded-b-none dark:bg-zinc-900 dark:focus:ring-0 focus:ring-0 bg-transparent", inputClassName)} autoFocus={true} leading={<MagnifyingGlassIcon className={clsx("h-5 w-5 text-black dark:text-white", iconClassName)}/>} value={query} onChange={(e) => setQuery(e.target.value)}/>
36
+ </div>
37
+ <div className="w-full border-t border-zinc-200 p-4 dark:border-zinc-800">
38
+ <div className="flex flex-col gap-2">
39
+ {query ? (<>
40
+ {loading && (<div className="flex items-center gap-4">
41
+ {getItemPicture && <Skeleton className="h-16 w-28"/>}
42
+ <Skeleton className="h-6 w-32"/>
43
+ </div>)}
44
+ {!loading && !results?.length && (<div className={clsx("flex justify-center py-5 text-zinc-400 dark:text-zinc-600", noResultsClassName)}>
45
+ {noResultsLabel}
46
+ </div>)}
47
+ {!loading && !!results?.length && (<>
48
+ {results.map((item, i) => (<Fragment key={getItemId(item)}>
49
+ {i > 0 && (<div className="h-px bg-zinc-200 dark:bg-zinc-800"/>)}
50
+ <UnstyledButton key={getItemId(item)} href={getItemHref?.(item)} className="flex w-full items-center gap-4 rounded-sm hover:bg-zinc-200/90 dark:hover:bg-zinc-800/90" onClick={handleItemClick(item)}>
51
+ {getItemPicture && (<Image src={getItemPicture(item)} alt={getItemLabel(item)} width={200} height={378} className="h-16 w-28 rounded-sm object-cover"/>)}
52
+ <div className="text-black dark:text-white">
53
+ {getItemLabel(item)}
54
+ </div>
55
+ </UnstyledButton>
56
+ </Fragment>))}
57
+ {showSeeMoreButton && (<Button variant="filled" type="submit" className={clsx("mt-2 w-full dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700", buttonClassName)} trailing={<ChevronRightIcon />} onClick={onSeeMoreClick} href={seeMoreHref}>
58
+ {buttonLabel}
59
+ </Button>)}
60
+ </>)}
61
+ </>) : (<>
62
+ {recentQueries?.length ? (<div className={clsx("mb-2 text-zinc-600 dark:text-zinc-400", recentSearchClassName)}>
63
+ {recentlySearchedLabel}
64
+ </div>) : (<div className={clsx("flex justify-center py-5 text-zinc-400 dark:text-zinc-600", noResultsClassName)}>
65
+ {noRecentSearchLabel}
66
+ </div>)}
67
+ {recentQueries?.map((item) => (<UnstyledButton key={getItemId(item)} href={getItemHref?.(item)} className="flex w-full items-center gap-4 hover:bg-zinc-200/90 dark:hover:bg-zinc-800/90" onClick={handleItemClick(item)}>
68
+ {getItemPicture && (<Image src={getItemPicture(item)} alt={getItemLabel(item)} width={200} height={378} className="max-h-16 max-w-28 rounded-sm object-cover"/>)}
69
+ <div className="text-black dark:text-white">
70
+ {getItemLabel(item)}
71
+ </div>
72
+ </UnstyledButton>))}
73
+ </>)}
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </Dialog.Content>
78
+ </Dialog.Overlay>
79
+ </Dialog.Portal>
76
80
  </Dialog.Root>);
77
81
  }
package/package.json CHANGED
@@ -4,6 +4,6 @@
4
4
  "type": "git",
5
5
  "url": "https://github.com/majapisoftwares/ui.git"
6
6
  },
7
- "version": "4.1.9",
7
+ "version": "4.1.10",
8
8
  "type": "module"
9
9
  }