Hey is a decentralized and permissionless social media app built with Lens Protocol ๐ŸŒฟ

๐ŸŒ Merged the UI package into the Web app, updating imports and removing the UI package (#merge-ui-to-web)

Summary: Merged the UI package into the Web app, updating imports and removing the UI package.

Highlights:

โ€ข Replaced `@hey/ui` imports with `@/components/Shared/UI` across multiple files.
โ€ข Deleted the `packages/ui` directory, including its `index.ts`, `package.json`, and `tailwind-preset.ts`.
โ€ข Updated `tailwind.config.js` to include custom theme settings directly.

Read more: https://pierre.co/yo/hey/merge-ui-to-web

authored by yoginth.com and committed by

Pierre c622ed4a ce9bb4d2

+605 -533
+7 -1
apps/web/package.json
··· 19 19 "@hey/data": "workspace:*", 20 20 "@hey/helpers": "workspace:*", 21 21 "@hey/indexer": "workspace:*", 22 - "@hey/ui": "workspace:*", 22 + "@hookform/resolvers": "^4.1.3", 23 23 "@lens-chain/sdk": "canary", 24 24 "@lens-chain/storage-client": "^1.0.3", 25 25 "@lens-protocol/metadata": "next", 26 26 "@livepeer/react": "^4.3.0", 27 27 "@next/bundle-analyzer": "^15.2.4", 28 28 "@radix-ui/react-hover-card": "^1.1.6", 29 + "@radix-ui/react-slider": "^1.2.3", 30 + "@radix-ui/react-switch": "^1.1.3", 31 + "@radix-ui/react-tooltip": "^1.1.8", 29 32 "@tanstack/react-query": "^5.69.0", 30 33 "@trpc/client": "^11.0.0", 31 34 "@trpc/tanstack-react-query": "^11.0.0", 32 35 "@uidotdev/usehooks": "^2.4.1", 33 36 "axios": "^1.8.4", 34 37 "browser-image-compression": "^2.0.2", 38 + "clsx": "^2.1.1", 35 39 "connectkit": "^1.8.2", 36 40 "esbuild": "^0.25.1", 37 41 "next": "^15.2.4", ··· 44 48 "react-device-detect": "^2.2.3", 45 49 "react-dom": "^19.0.0", 46 50 "react-easy-crop": "^5.4.1", 51 + "react-hook-form": "^7.54.2", 47 52 "react-hot-toast": "^2.5.2", 48 53 "react-markdown": "^10.1.0", 49 54 "react-tracked": "^2.0.1", ··· 56 61 "remark-parse": "^11.0.0", 57 62 "remark-stringify": "^11.0.0", 58 63 "strip-markdown": "^6.0.0", 64 + "tailwind-merge": "3.0.2", 59 65 "unified": "^11.0.5", 60 66 "unist-util-visit-parents": "^6.0.1", 61 67 "viem": "^2.23.15",
+1 -1
apps/web/src/components/Account/AccountFeed.tsx
··· 1 1 import SinglePost from "@/components/Post/SinglePost"; 2 2 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountFeedStore } from "@/store/non-persisted/useAccountFeedStore"; 4 5 import { ChatBubbleBottomCenterIcon } from "@heroicons/react/24/outline"; 5 6 import { AccountFeedType } from "@hey/data/enums"; ··· 10 11 type PostsRequest, 11 12 usePostsQuery 12 13 } from "@hey/indexer"; 13 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 14 14 import { useEffect, useRef } from "react"; 15 15 import type { StateSnapshot, VirtuosoHandle } from "react-virtuoso"; 16 16 import { Virtuoso } from "react-virtuoso";
+1 -1
apps/web/src/components/Account/CreatorTool.tsx
··· 1 + import { Toggle } from "@/components/Shared/UI"; 1 2 import ToggleWrapper from "@/components/Staff/Accounts/Overview/Tool/ToggleWrapper"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import { trpc } from "@/helpers/trpc"; 4 5 import { Permission, PermissionId } from "@hey/data/permissions"; 5 6 import type { AccountFragment } from "@hey/indexer"; 6 - import { Toggle } from "@hey/ui"; 7 7 import { useMutation, useQuery } from "@tanstack/react-query"; 8 8 import { useEffect, useState } from "react"; 9 9 import toast from "react-hot-toast";
+1 -1
apps/web/src/components/Account/DeletedDetails.tsx
··· 1 1 import Slug from "@/components/Shared/Slug"; 2 + import { H3, Image } from "@/components/Shared/UI"; 2 3 import { STATIC_IMAGES_URL } from "@hey/data/constants"; 3 4 import getAccount from "@hey/helpers/getAccount"; 4 5 import type { AccountFragment } from "@hey/indexer"; 5 - import { H3, Image } from "@hey/ui"; 6 6 7 7 interface DeletedDetailsProps { 8 8 account: AccountFragment;
+1 -1
apps/web/src/components/Account/Details.tsx
··· 2 2 import Verified from "@/components/Shared/Account/Icons/Verified"; 3 3 import Markup from "@/components/Shared/Markup"; 4 4 import Slug from "@/components/Shared/Slug"; 5 + import { Button, H3, Image, LightBox, Tooltip } from "@/components/Shared/UI"; 5 6 import hasAccess from "@/helpers/hasAccess"; 6 7 import { useAccountStore } from "@/store/persisted/useAccountStore"; 7 8 import { ··· 18 19 import getFavicon from "@hey/helpers/getFavicon"; 19 20 import getMentions from "@hey/helpers/getMentions"; 20 21 import type { AccountFragment } from "@hey/indexer"; 21 - import { Button, H3, Image, LightBox, Tooltip } from "@hey/ui"; 22 22 import { useTheme } from "next-themes"; 23 23 import Link from "next/link"; 24 24 import { useRouter } from "next/router";
+1 -1
apps/web/src/components/Account/FeedType.tsx
··· 1 + import { TabButton } from "@/components/Shared/UI"; 1 2 import { 2 3 ChatBubbleLeftIcon, 3 4 FilmIcon, ··· 5 6 ShoppingBagIcon 6 7 } from "@heroicons/react/24/outline"; 7 8 import { AccountFeedType } from "@hey/data/enums"; 8 - import { TabButton } from "@hey/ui"; 9 9 import type { Dispatch, JSX, SetStateAction } from "react"; 10 10 import MediaFilter from "./Filters/MediaFilter"; 11 11
+2 -2
apps/web/src/components/Account/Filters/MediaFilter.tsx
··· 1 1 import MenuTransition from "@/components/Shared/MenuTransition"; 2 + import { Checkbox, Tooltip } from "@/components/Shared/UI"; 3 + import cn from "@/helpers/cn"; 2 4 import { useAccountFeedStore } from "@/store/non-persisted/useAccountFeedStore"; 3 5 import { Menu, MenuButton, MenuItem, MenuItems } from "@headlessui/react"; 4 6 import { AdjustmentsVerticalIcon } from "@heroicons/react/24/outline"; 5 - import { Checkbox, Tooltip } from "@hey/ui"; 6 - import cn from "@hey/ui/cn"; 7 7 import type { ChangeEvent } from "react"; 8 8 9 9 const MediaFilter = () => {
+1 -1
apps/web/src/components/Account/Followerings.tsx
··· 1 1 import Followers from "@/components/Shared/Modal/Followers"; 2 2 import Following from "@/components/Shared/Modal/Following"; 3 3 import GraphStatsShimmer from "@/components/Shared/Shimmer/GraphStatsShimmer"; 4 + import { H4, Modal } from "@/components/Shared/UI"; 4 5 import getAccount from "@hey/helpers/getAccount"; 5 6 import humanize from "@hey/helpers/humanize"; 6 7 import { type AccountFragment, useAccountStatsQuery } from "@hey/indexer"; 7 - import { H4, Modal } from "@hey/ui"; 8 8 import plur from "plur"; 9 9 import { type FC, useState } from "react"; 10 10
+2 -2
apps/web/src/components/Account/FollowersYouKnowOverview.tsx
··· 1 1 import FollowersYouKnow from "@/components/Shared/Modal/FollowersYouKnow"; 2 + import { Modal, StackedAvatars } from "@/components/Shared/UI"; 3 + import cn from "@/helpers/cn"; 2 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 3 5 import getAccount from "@hey/helpers/getAccount"; 4 6 import getAvatar from "@hey/helpers/getAvatar"; 5 7 import { type Follower, useFollowersYouKnowQuery } from "@hey/indexer"; 6 - import { Modal, StackedAvatars } from "@hey/ui"; 7 - import cn from "@hey/ui/cn"; 8 8 import { type ReactNode, useState } from "react"; 9 9 10 10 interface FollowersYouKnowOverviewProps {
+1 -1
apps/web/src/components/Account/InternalTools.tsx
··· 1 + import { Card } from "@/components/Shared/UI"; 1 2 import hasAccess from "@/helpers/hasAccess"; 2 3 import { Features } from "@hey/data/features"; 3 4 import type { AccountFragment } from "@hey/indexer"; 4 - import { Card } from "@hey/ui"; 5 5 import CreatorTool from "./CreatorTool"; 6 6 import StaffTool from "./StaffTool"; 7 7
+1 -1
apps/web/src/components/Account/Menu/Block.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { useBlockAlertStore } from "@/store/non-persisted/alert/useBlockAlertStore"; 2 3 import { MenuItem } from "@headlessui/react"; 3 4 import { NoSymbolIcon } from "@heroicons/react/24/outline"; 4 5 import getAccount from "@hey/helpers/getAccount"; 5 6 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 6 7 import type { AccountFragment } from "@hey/indexer"; 7 - import cn from "@hey/ui/cn"; 8 8 9 9 interface BlockProps { 10 10 account: AccountFragment;
+1 -1
apps/web/src/components/Account/Menu/CopyLink.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { MenuItem } from "@headlessui/react"; 2 3 import { LinkIcon } from "@heroicons/react/24/outline"; 3 4 import getAccount from "@hey/helpers/getAccount"; 4 5 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 5 6 import type { AccountFragment } from "@hey/indexer"; 6 - import cn from "@hey/ui/cn"; 7 7 import toast from "react-hot-toast"; 8 8 9 9 interface CopyLinkProps {
+1 -1
apps/web/src/components/Account/Menu/Mute.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { useMuteAlertStore } from "@/store/non-persisted/alert/useMuteAlertStore"; 2 3 import { MenuItem } from "@headlessui/react"; 3 4 import { SpeakerWaveIcon, SpeakerXMarkIcon } from "@heroicons/react/24/outline"; 4 5 import getAccount from "@hey/helpers/getAccount"; 5 6 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 6 7 import type { AccountFragment } from "@hey/indexer"; 7 - import cn from "@hey/ui/cn"; 8 8 9 9 interface MuteProps { 10 10 account: AccountFragment;
+1 -1
apps/web/src/components/Account/Menu/Report.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { useReportAccountModalStore } from "@/store/non-persisted/modal/useReportAccountModalStore"; 2 3 import { MenuItem } from "@headlessui/react"; 3 4 import { FlagIcon } from "@heroicons/react/24/outline"; 4 5 import type { AccountFragment } from "@hey/indexer"; 5 - import cn from "@hey/ui/cn"; 6 6 7 7 interface ReportProps { 8 8 account: AccountFragment;
+5 -1
apps/web/src/components/Account/Shimmer.tsx
··· 1 1 import GraphStatsShimmer from "@/components/Shared/Shimmer/GraphStatsShimmer"; 2 2 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 3 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 3 + import { 4 + GridItemEight, 5 + GridItemFour, 6 + GridLayout 7 + } from "@/components/Shared/UI"; 4 8 5 9 const AccountPageShimmer = () => { 6 10 return (
+1 -1
apps/web/src/components/Account/SuspendedDetails.tsx
··· 1 1 import Slug from "@/components/Shared/Slug"; 2 + import { H3, Image } from "@/components/Shared/UI"; 2 3 import { STATIC_IMAGES_URL } from "@hey/data/constants"; 3 4 import getAccount from "@hey/helpers/getAccount"; 4 5 import type { AccountFragment } from "@hey/indexer"; 5 - import { H3, Image } from "@hey/ui"; 6 6 7 7 interface SuspendedDetailsProps { 8 8 account: AccountFragment;
+6 -1
apps/web/src/components/Account/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NewPost from "@/components/Composer/NewPost"; 3 3 import Cover from "@/components/Shared/Cover"; 4 + import { 5 + EmptyState, 6 + GridItemEight, 7 + GridItemFour, 8 + GridLayout 9 + } from "@/components/Shared/UI"; 4 10 import hasAccess from "@/helpers/hasAccess"; 5 11 import { trpc } from "@/helpers/trpc"; 6 12 import Custom404 from "@/pages/404"; ··· 13 19 import getAccount from "@hey/helpers/getAccount"; 14 20 import isAccountDeleted from "@hey/helpers/isAccountDeleted"; 15 21 import { useAccountQuery } from "@hey/indexer"; 16 - import { EmptyState, GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 17 22 import { useQuery } from "@tanstack/react-query"; 18 23 import { useRouter } from "next/router"; 19 24 import AccountFeed from "./AccountFeed";
+1 -1
apps/web/src/components/Bookmarks/BookmarksFeed.tsx
··· 1 1 import SinglePost from "@/components/Post/SinglePost"; 2 2 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { BookmarkIcon } from "@heroicons/react/24/outline"; 4 5 import { 5 6 type MainContentFocus, ··· 7 8 type PostBookmarksRequest, 8 9 usePostBookmarksQuery 9 10 } from "@hey/indexer"; 10 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 11 11 import { useRef } from "react"; 12 12 import type { StateSnapshot, VirtuosoHandle } from "react-virtuoso"; 13 13 import { Virtuoso } from "react-virtuoso";
+5 -1
apps/web/src/components/Bookmarks/index.tsx
··· 3 3 import FeedFocusType from "@/components/Shared/FeedFocusType"; 4 4 import Footer from "@/components/Shared/Footer"; 5 5 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 6 + import { 7 + GridItemEight, 8 + GridItemFour, 9 + GridLayout 10 + } from "@/components/Shared/UI"; 6 11 import { useAccountStore } from "@/store/persisted/useAccountStore"; 7 12 import { APP_NAME } from "@hey/data/constants"; 8 13 import type { MainContentFocus } from "@hey/indexer"; 9 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 10 14 import { useState } from "react"; 11 15 import BookmarksFeed from "./BookmarksFeed"; 12 16
+1 -1
apps/web/src/components/Comment/CommentFeed.tsx
··· 1 1 import { useHiddenCommentFeedStore } from "@/components/Post"; 2 2 import SinglePost from "@/components/Post/SinglePost"; 3 3 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 4 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 4 5 import { ChatBubbleLeftIcon } from "@heroicons/react/24/outline"; 5 6 import { 6 7 PageSize, ··· 9 10 PostVisibilityFilter, 10 11 usePostReferencesQuery 11 12 } from "@hey/indexer"; 12 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 13 13 import { Virtuoso } from "react-virtuoso"; 14 14 15 15 interface CommentFeedProps {
+1 -1
apps/web/src/components/Comment/NoneRelevantFeed.tsx
··· 1 1 import { useHiddenCommentFeedStore } from "@/components/Post"; 2 2 import SinglePost from "@/components/Post/SinglePost"; 3 + import { Card, StackedAvatars } from "@/components/Shared/UI"; 3 4 import { ChevronDownIcon, ChevronUpIcon } from "@heroicons/react/24/outline"; 4 5 import getAvatar from "@hey/helpers/getAvatar"; 5 6 import { ··· 9 10 PostVisibilityFilter, 10 11 usePostReferencesQuery 11 12 } from "@hey/indexer"; 12 - import { Card, StackedAvatars } from "@hey/ui"; 13 13 import { useState } from "react"; 14 14 import { Virtuoso } from "react-virtuoso"; 15 15
+2 -2
apps/web/src/components/Composer/Actions/Attachment.tsx
··· 1 1 import MenuTransition from "@/components/Shared/MenuTransition"; 2 + import { Spinner, Tooltip } from "@/components/Shared/UI"; 3 + import cn from "@/helpers/cn"; 2 4 import useUploadAttachments from "@/hooks/useUploadAttachments"; 3 5 import { usePostAttachmentStore } from "@/store/non-persisted/post/usePostAttachmentStore"; 4 6 import { Menu, MenuButton, MenuItem, MenuItems } from "@headlessui/react"; ··· 7 9 PhotoIcon, 8 10 VideoCameraIcon 9 11 } from "@heroicons/react/24/outline"; 10 - import { Spinner, Tooltip } from "@hey/ui"; 11 - import cn from "@hey/ui/cn"; 12 12 import { 13 13 MediaAudioMimeType, 14 14 MediaImageMimeType
+1 -1
apps/web/src/components/Composer/Actions/CollectSettings/AmountConfig.tsx
··· 1 1 import ToggleWithHelper from "@/components/Shared/ToggleWithHelper"; 2 + import { Input, Select } from "@/components/Shared/UI"; 2 3 import { useCollectActionStore } from "@/store/non-persisted/post/useCollectActionStore"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { CurrencyDollarIcon } from "@heroicons/react/24/outline"; 5 6 import { DEFAULT_COLLECT_TOKEN, STATIC_IMAGES_URL } from "@hey/data/constants"; 6 7 import { tokens } from "@hey/data/tokens"; 7 8 import type { CollectActionType } from "@hey/types/hey"; 8 - import { Input, Select } from "@hey/ui"; 9 9 10 10 interface AmountConfigProps { 11 11 setCollectType: (data: CollectActionType) => void;
+1 -1
apps/web/src/components/Composer/Actions/CollectSettings/CollectForm.tsx
··· 1 1 import LicensePicker from "@/components/Composer/LicensePicker"; 2 2 import ToggleWithHelper from "@/components/Shared/ToggleWithHelper"; 3 + import { Button } from "@/components/Shared/UI"; 3 4 import { useCollectActionStore } from "@/store/non-persisted/post/useCollectActionStore"; 4 5 import { usePostLicenseStore } from "@/store/non-persisted/post/usePostLicenseStore"; 5 6 import type { CollectActionType } from "@hey/types/hey"; 6 - import { Button } from "@hey/ui"; 7 7 import type { Dispatch, SetStateAction } from "react"; 8 8 import { isAddress } from "viem"; 9 9 import AmountConfig from "./AmountConfig";
+1 -1
apps/web/src/components/Composer/Actions/CollectSettings/CollectLimitConfig.tsx
··· 1 1 import ToggleWithHelper from "@/components/Shared/ToggleWithHelper"; 2 + import { Input } from "@/components/Shared/UI"; 2 3 import { useCollectActionStore } from "@/store/non-persisted/post/useCollectActionStore"; 3 4 import { StarIcon } from "@heroicons/react/24/outline"; 4 5 import type { CollectActionType } from "@hey/types/hey"; 5 - import { Input } from "@hey/ui"; 6 6 7 7 interface CollectLimitConfigProps { 8 8 setCollectType: (data: CollectActionType) => void;
+1 -1
apps/web/src/components/Composer/Actions/CollectSettings/SplitConfig.tsx
··· 1 1 import SearchAccounts from "@/components/Shared/SearchAccounts"; 2 2 import ToggleWithHelper from "@/components/Shared/ToggleWithHelper"; 3 + import { Button, H6, Input } from "@/components/Shared/UI"; 3 4 import { useCollectActionStore } from "@/store/non-persisted/post/useCollectActionStore"; 4 5 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 6 import { ··· 11 12 import { ADDRESS_PLACEHOLDER } from "@hey/data/constants"; 12 13 import splitNumber from "@hey/helpers/splitNumber"; 13 14 import type { CollectActionType } from "@hey/types/hey"; 14 - import { Button, H6, Input } from "@hey/ui"; 15 15 import { useState } from "react"; 16 16 import { isAddress } from "viem"; 17 17
+1 -1
apps/web/src/components/Composer/Actions/CollectSettings/TimeLimitConfig.tsx
··· 1 1 import ToggleWithHelper from "@/components/Shared/ToggleWithHelper"; 2 + import { RangeSlider } from "@/components/Shared/UI"; 2 3 import { useCollectActionStore } from "@/store/non-persisted/post/useCollectActionStore"; 3 4 import { ClockIcon } from "@heroicons/react/24/outline"; 4 5 import formatDate from "@hey/helpers/datetime/formatDate"; 5 6 import getNumberOfDaysFromDate from "@hey/helpers/datetime/getNumberOfDaysFromDate"; 6 7 import getTimeAddedNDay from "@hey/helpers/datetime/getTimeAddedNDay"; 7 8 import type { CollectActionType } from "@hey/types/hey"; 8 - import { RangeSlider } from "@hey/ui"; 9 9 10 10 interface TimeLimitConfigProps { 11 11 setCollectType: (data: CollectActionType) => void;
+1 -1
apps/web/src/components/Composer/Actions/CollectSettings/index.tsx
··· 1 + import { Modal, Tooltip } from "@/components/Shared/UI"; 1 2 import { useCollectActionStore } from "@/store/non-persisted/post/useCollectActionStore"; 2 3 import { usePostLicenseStore } from "@/store/non-persisted/post/usePostLicenseStore"; 3 4 import { ShoppingBagIcon } from "@heroicons/react/24/outline"; 4 - import { Modal, Tooltip } from "@hey/ui"; 5 5 import { useState } from "react"; 6 6 import CollectForm from "./CollectForm"; 7 7
+1 -1
apps/web/src/components/Composer/Actions/Gif/Categories.tsx
··· 1 + import { H5 } from "@/components/Shared/UI"; 1 2 import { GIPHY_KEY } from "@hey/data/constants"; 2 3 import type { Category } from "@hey/types/giphy"; 3 - import { H5 } from "@hey/ui"; 4 4 import { useQuery } from "@tanstack/react-query"; 5 5 import axios from "axios"; 6 6 import type { Dispatch, SetStateAction } from "react";
+1 -1
apps/web/src/components/Composer/Actions/Gif/GifSelector.tsx
··· 1 + import { Input } from "@/components/Shared/UI"; 1 2 import { STATIC_IMAGES_URL } from "@hey/data/constants"; 2 3 import type { IGif } from "@hey/types/giphy"; 3 - import { Input } from "@hey/ui"; 4 4 import { useDebounce } from "@uidotdev/usehooks"; 5 5 import type { Dispatch, SetStateAction } from "react"; 6 6 import { useState } from "react";
+2 -2
apps/web/src/components/Composer/Actions/Gif/index.tsx
··· 1 + import { Modal, Tooltip } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import { usePostAttachmentStore } from "@/store/non-persisted/post/usePostAttachmentStore"; 2 4 import { GifIcon } from "@heroicons/react/24/outline"; 3 5 import type { IGif } from "@hey/types/giphy"; 4 - import { Modal, Tooltip } from "@hey/ui"; 5 - import cn from "@hey/ui/cn"; 6 6 import { useState } from "react"; 7 7 import GifSelector from "./GifSelector"; 8 8
+1 -1
apps/web/src/components/Composer/Actions/LivestreamSettings/LivestreamEditor.tsx
··· 1 + import { Card, Spinner, Tooltip } from "@/components/Shared/UI"; 1 2 import Video from "@/components/Shared/Video"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import { trpc } from "@/helpers/trpc"; ··· 9 10 VideoCameraSlashIcon 10 11 } from "@heroicons/react/24/outline"; 11 12 import { XCircleIcon } from "@heroicons/react/24/solid"; 12 - import { Card, Spinner, Tooltip } from "@hey/ui"; 13 13 import { getSrc } from "@livepeer/react/external"; 14 14 import { useMutation } from "@tanstack/react-query"; 15 15 import type { ReactNode } from "react";
+2 -2
apps/web/src/components/Composer/Actions/LivestreamSettings/index.tsx
··· 1 + import { Tooltip } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import { usePostAttachmentStore } from "@/store/non-persisted/post/usePostAttachmentStore"; 2 4 import { usePostLiveStore } from "@/store/non-persisted/post/usePostLiveStore"; 3 5 import { VideoCameraIcon } from "@heroicons/react/24/outline"; 4 - import { Tooltip } from "@hey/ui"; 5 - import cn from "@hey/ui/cn"; 6 6 7 7 const LivestreamSettings = () => { 8 8 const { resetLiveVideoConfig, setShowLiveVideoEditor, showLiveVideoEditor } =
+1 -1
apps/web/src/components/Composer/ChooseThumbnail.tsx
··· 1 1 import ThumbnailsShimmer from "@/components/Shared/Shimmer/ThumbnailsShimmer"; 2 + import { Spinner } from "@/components/Shared/UI"; 2 3 import { uploadFileToIPFS } from "@/helpers/uploadToIPFS"; 3 4 import { usePostAttachmentStore } from "@/store/non-persisted/post/usePostAttachmentStore"; 4 5 import { usePostVideoStore } from "@/store/non-persisted/post/usePostVideoStore"; 5 6 import { CheckCircleIcon, PhotoIcon } from "@heroicons/react/24/outline"; 6 7 import { generateVideoThumbnails } from "@hey/helpers/generateVideoThumbnails"; 7 8 import getFileFromDataURL from "@hey/helpers/getFileFromDataURL"; 8 - import { Spinner } from "@hey/ui"; 9 9 import type { ChangeEvent } from "react"; 10 10 import { useEffect, useState } from "react"; 11 11 import { toast } from "react-hot-toast";
+1 -1
apps/web/src/components/Composer/Editor/Editor.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 1 2 import { defineEditorExtension } from "@/helpers/prosekit/extension"; 2 3 import { htmlFromMarkdown } from "@/helpers/prosekit/markdown"; 3 4 import useContentChange from "@/hooks/prosekit/useContentChange"; ··· 6 7 import { usePostStore } from "@/store/non-persisted/post/usePostStore"; 7 8 import { useAccountStore } from "@/store/persisted/useAccountStore"; 8 9 import getAvatar from "@hey/helpers/getAvatar"; 9 - import { Image } from "@hey/ui"; 10 10 import "prosekit/basic/style.css"; 11 11 import { createEditor } from "prosekit/core"; 12 12 import { ProseKit } from "prosekit/react";
+1 -1
apps/web/src/components/Composer/Editor/EmojiPicker.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { EditorExtension } from "@/helpers/prosekit/extension"; 2 3 import useEmojis from "@/hooks/prosekit/useEmojis"; 3 4 import { EditorRegex } from "@hey/data/regex"; 4 5 import type { Emoji } from "@hey/types/misc"; 5 - import cn from "@hey/ui/cn"; 6 6 import { useEditor } from "prosekit/react"; 7 7 import { 8 8 AutocompleteItem,
+2 -2
apps/web/src/components/Composer/Editor/MentionPicker.tsx
··· 1 1 import Verified from "@/components/Shared/Account/Icons/Verified"; 2 + import { Image } from "@/components/Shared/UI"; 3 + import cn from "@/helpers/cn"; 2 4 import type { EditorExtension } from "@/helpers/prosekit/extension"; 3 5 import type { MentionAccount } from "@/hooks/prosekit/useMentionQuery"; 4 6 import useMentionQuery from "@/hooks/prosekit/useMentionQuery"; 5 7 import { EditorRegex } from "@hey/data/regex"; 6 - import { Image } from "@hey/ui"; 7 - import cn from "@hey/ui/cn"; 8 8 import { useEditor } from "prosekit/react"; 9 9 import { 10 10 AutocompleteItem,
+1 -1
apps/web/src/components/Composer/Editor/Toggle.tsx
··· 1 - import { Tooltip } from "@hey/ui"; 1 + import { Tooltip } from "@/components/Shared/UI"; 2 2 import type { ReactNode } from "react"; 3 3 4 4 interface ToggleProps {
+1 -1
apps/web/src/components/Composer/LicensePicker.tsx
··· 1 + import { Select, Tooltip } from "@/components/Shared/UI"; 1 2 import getAssetLicense from "@/helpers/getAssetLicense"; 2 3 import { usePostLicenseStore } from "@/store/non-persisted/post/usePostLicenseStore"; 3 4 import { MetadataLicenseType } from "@hey/indexer"; 4 - import { Select, Tooltip } from "@hey/ui"; 5 5 import Link from "next/link"; 6 6 7 7 const LicensePicker = () => {
+2 -2
apps/web/src/components/Composer/NewAttachments.tsx
··· 1 1 import ChooseThumbnail from "@/components/Composer/ChooseThumbnail"; 2 + import { Image } from "@/components/Shared/UI"; 3 + import cn from "@/helpers/cn"; 2 4 import { usePostAttachmentStore } from "@/store/non-persisted/post/usePostAttachmentStore"; 3 5 import { usePostVideoStore } from "@/store/non-persisted/post/usePostVideoStore"; 4 6 import { XMarkIcon } from "@heroicons/react/24/solid"; 5 7 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 6 8 import type { NewAttachment } from "@hey/types/misc"; 7 - import { Image } from "@hey/ui"; 8 - import cn from "@hey/ui/cn"; 9 9 import { useEffect, useRef } from "react"; 10 10 import Audio from "../Shared/Audio"; 11 11
+1 -1
apps/web/src/components/Composer/NewPost.tsx
··· 1 + import { Card, Image } from "@/components/Shared/UI"; 1 2 import { usePostStore } from "@/store/non-persisted/post/usePostStore"; 2 3 import { useAccountStore } from "@/store/persisted/useAccountStore"; 3 4 import getAvatar from "@hey/helpers/getAvatar"; 4 - import { Card, Image } from "@hey/ui"; 5 5 import { useRouter } from "next/router"; 6 6 import { useEffect, useState } from "react"; 7 7 import NewPublication from "./NewPublication";
+1 -1
apps/web/src/components/Composer/NewPublication.tsx
··· 3 3 import { AudioPostSchema } from "@/components/Shared/Audio"; 4 4 import Wrapper from "@/components/Shared/Embed/Wrapper"; 5 5 import EmojiPicker from "@/components/Shared/EmojiPicker"; 6 + import { Button, Card, H6 } from "@/components/Shared/UI"; 6 7 import trackEvent from "@/helpers/analytics"; 7 8 import errorToast from "@/helpers/errorToast"; 8 9 import uploadMetadata from "@/helpers/uploadMetadata"; ··· 33 34 import type { PostFragment } from "@hey/indexer"; 34 35 import type { IGif } from "@hey/types/giphy"; 35 36 import type { NewAttachment } from "@hey/types/misc"; 36 - import { Button, Card, H6 } from "@hey/ui"; 37 37 import { useEffect, useState } from "react"; 38 38 import toast from "react-hot-toast"; 39 39 import Attachment from "./Actions/Attachment";
+1 -1
apps/web/src/components/Explore/ExploreFeed.tsx
··· 1 1 import SinglePost from "@/components/Post/SinglePost"; 2 2 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { ChatBubbleBottomCenterIcon } from "@heroicons/react/24/outline"; 4 5 import { 5 6 type MlexplorePostsRequest, 6 7 PageSize, 7 8 useMlPostsExploreQuery 8 9 } from "@hey/indexer"; 9 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 10 10 import { useRef } from "react"; 11 11 import type { StateSnapshot, VirtuosoHandle } from "react-virtuoso"; 12 12 import { Virtuoso } from "react-virtuoso";
+1 -1
apps/web/src/components/Explore/ImageFeed.tsx
··· 1 1 import SingleImagePost from "@/components/Post/SingleImagePost"; 2 2 import ImagePostsShimmer from "@/components/Shared/Shimmer/ImagePostsShimmer"; 3 + import { EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { ChatBubbleBottomCenterIcon } from "@heroicons/react/24/outline"; 4 5 import { 5 6 type MlexplorePostsRequest, 6 7 PageSize, 7 8 useMlPostsExploreQuery 8 9 } from "@hey/indexer"; 9 - import { EmptyState, ErrorMessage } from "@hey/ui"; 10 10 11 11 interface ImageFeedProps { 12 12 feedType: any;
+6 -2
apps/web/src/components/Explore/index.tsx
··· 1 1 import WhoToFollow from "@/components/Home/Sidebar/WhoToFollow"; 2 2 import FeedFocusType from "@/components/Shared/FeedFocusType"; 3 3 import Footer from "@/components/Shared/Footer"; 4 + import { 5 + GridItemEight, 6 + GridItemFour, 7 + GridLayout 8 + } from "@/components/Shared/UI"; 9 + import cn from "@/helpers/cn"; 4 10 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 11 import { Tab, TabGroup, TabList, TabPanel, TabPanels } from "@headlessui/react"; 6 12 import { MainContentFocus } from "@hey/indexer"; 7 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 8 - import cn from "@hey/ui/cn"; 9 13 import { useRouter } from "next/router"; 10 14 import { useState } from "react"; 11 15 import ExploreFeed from "./ExploreFeed";
+1 -1
apps/web/src/components/Group/Details.tsx
··· 1 1 import JoinLeaveButton from "@/components/Shared/Group/JoinLeaveButton"; 2 2 import Markup from "@/components/Shared/Markup"; 3 + import { Button, H3, Image, LightBox } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { Cog6ToothIcon } from "@heroicons/react/24/outline"; 5 6 import getAvatar from "@hey/helpers/getAvatar"; 6 7 import getMentions from "@hey/helpers/getMentions"; 7 8 import type { GroupFragment } from "@hey/indexer"; 8 - import { Button, H3, Image, LightBox } from "@hey/ui"; 9 9 import { useRouter } from "next/router"; 10 10 import { useState } from "react"; 11 11 import MembersCount from "./MembersCount";
+1 -1
apps/web/src/components/Group/GroupFeed.tsx
··· 1 1 import SinglePost from "@/components/Post/SinglePost"; 2 2 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { ChatBubbleBottomCenterIcon } from "@heroicons/react/24/outline"; 4 5 import { PageSize, type PostsRequest, usePostsQuery } from "@hey/indexer"; 5 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 6 6 import { useEffect, useRef } from "react"; 7 7 import type { StateSnapshot, VirtuosoHandle } from "react-virtuoso"; 8 8 import { Virtuoso } from "react-virtuoso";
+1 -1
apps/web/src/components/Group/MembersCount.tsx
··· 1 1 import Members from "@/components/Shared/Modal/Members"; 2 2 import GraphStatsShimmer from "@/components/Shared/Shimmer/GraphStatsShimmer"; 3 + import { H4, Modal } from "@/components/Shared/UI"; 3 4 import humanize from "@hey/helpers/humanize"; 4 5 import { type GroupFragment, useGroupStatsQuery } from "@hey/indexer"; 5 - import { H4, Modal } from "@hey/ui"; 6 6 import { useState } from "react"; 7 7 8 8 interface MembersCountProps {
+8 -1
apps/web/src/components/Group/Settings/Overview/Form.tsx
··· 1 1 import AvatarUpload from "@/components/Shared/AvatarUpload"; 2 2 import CoverUpload from "@/components/Shared/CoverUpload"; 3 + import { 4 + Button, 5 + Card, 6 + Form, 7 + Input, 8 + TextArea, 9 + useZodForm 10 + } from "@/components/Shared/UI"; 3 11 import trackEvent from "@/helpers/analytics"; 4 12 import errorToast from "@/helpers/errorToast"; 5 13 import uploadMetadata from "@/helpers/uploadMetadata"; ··· 10 18 import { Events } from "@hey/data/events"; 11 19 import { Regex } from "@hey/data/regex"; 12 20 import { type GroupFragment, useSetGroupMetadataMutation } from "@hey/indexer"; 13 - import { Button, Card, Form, Input, TextArea, useZodForm } from "@hey/ui"; 14 21 import { group as groupMetadata } from "@lens-protocol/metadata"; 15 22 import { useState } from "react"; 16 23 import toast from "react-hot-toast";
+6 -1
apps/web/src/components/Group/Settings/Overview/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 + import { 4 + GridItemEight, 5 + GridItemFour, 6 + GridLayout, 7 + PageLoading 8 + } from "@/components/Shared/UI"; 3 9 import Custom404 from "@/pages/404"; 4 10 import Custom500 from "@/pages/500"; 5 11 import { useAccountStore } from "@/store/persisted/useAccountStore"; 6 12 import { APP_NAME } from "@hey/data/constants"; 7 13 import { useGroupQuery } from "@hey/indexer"; 8 - import { GridItemEight, GridItemFour, GridLayout, PageLoading } from "@hey/ui"; 9 14 import { useRouter } from "next/router"; 10 15 import SettingsSidebar from "../Sidebar"; 11 16 import GroupSettingsForm from "./Form";
+1 -1
apps/web/src/components/Group/Settings/Rules/ApprovalRule.tsx
··· 1 1 import ToggleWithHelper from "@/components/Shared/ToggleWithHelper"; 2 + import { Card, CardHeader } from "@/components/Shared/UI"; 2 3 import trackEvent from "@/helpers/analytics"; 3 4 import errorToast from "@/helpers/errorToast"; 4 5 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 11 12 GroupRuleType, 12 13 useUpdateGroupRulesMutation 13 14 } from "@hey/indexer"; 14 - import { Card, CardHeader } from "@hey/ui"; 15 15 import { useState } from "react"; 16 16 import toast from "react-hot-toast"; 17 17
+8 -1
apps/web/src/components/Group/Settings/Rules/SuperJoin.tsx
··· 1 + import { 2 + Button, 3 + Card, 4 + CardHeader, 5 + Image, 6 + Input, 7 + Tooltip 8 + } from "@/components/Shared/UI"; 1 9 import trackEvent from "@/helpers/analytics"; 2 10 import errorToast from "@/helpers/errorToast"; 3 11 import { getSimplePaymentDetails } from "@/helpers/rules"; ··· 19 27 type GroupRules, 20 28 useUpdateGroupRulesMutation 21 29 } from "@hey/indexer"; 22 - import { Button, Card, CardHeader, Image, Input, Tooltip } from "@hey/ui"; 23 30 import { useRouter } from "next/router"; 24 31 import { type RefObject, useEffect, useRef, useState } from "react"; 25 32 import toast from "react-hot-toast";
+6 -1
apps/web/src/components/Group/Settings/Rules/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 + import { 4 + GridItemEight, 5 + GridItemFour, 6 + GridLayout, 7 + PageLoading 8 + } from "@/components/Shared/UI"; 3 9 import Custom404 from "@/pages/404"; 4 10 import Custom500 from "@/pages/500"; 5 11 import { useAccountStore } from "@/store/persisted/useAccountStore"; 6 12 import { APP_NAME } from "@hey/data/constants"; 7 13 import { useGroupQuery } from "@hey/indexer"; 8 - import { GridItemEight, GridItemFour, GridLayout, PageLoading } from "@hey/ui"; 9 14 import { useRouter } from "next/router"; 10 15 import SettingsSidebar from "../Sidebar"; 11 16 import ApprovalRule from "./ApprovalRule";
+5 -1
apps/web/src/components/Group/Shimmer.tsx
··· 1 1 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 2 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 2 + import { 3 + GridItemEight, 4 + GridItemFour, 5 + GridLayout 6 + } from "@/components/Shared/UI"; 3 7 4 8 const GroupPageShimmer = () => { 5 9 return (
+6 -6
apps/web/src/components/Group/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NewPost from "@/components/Composer/NewPost"; 3 3 import Cover from "@/components/Shared/Cover"; 4 - import Custom404 from "@/pages/404"; 5 - import Custom500 from "@/pages/500"; 6 - import { useAccountStore } from "@/store/persisted/useAccountStore"; 7 - import { APP_NAME, STATIC_IMAGES_URL } from "@hey/data/constants"; 8 - import { useGroupQuery } from "@hey/indexer"; 9 4 import { 10 5 GridItemEight, 11 6 GridItemFour, 12 7 GridLayout, 13 8 WarningMessage 14 - } from "@hey/ui"; 9 + } from "@/components/Shared/UI"; 10 + import Custom404 from "@/pages/404"; 11 + import Custom500 from "@/pages/500"; 12 + import { useAccountStore } from "@/store/persisted/useAccountStore"; 13 + import { APP_NAME, STATIC_IMAGES_URL } from "@hey/data/constants"; 14 + import { useGroupQuery } from "@hey/indexer"; 15 15 import { useRouter } from "next/router"; 16 16 import Details from "./Details"; 17 17 import GroupFeed from "./GroupFeed";
+1 -1
apps/web/src/components/Groups/List.tsx
··· 1 1 import GroupListShimmer from "@/components/Shared/Shimmer/GroupListShimmer"; 2 2 import SingleGroup from "@/components/Shared/SingleGroup"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { UserGroupIcon } from "@heroicons/react/24/outline"; 5 6 import { ··· 8 9 PageSize, 9 10 useGroupsQuery 10 11 } from "@hey/indexer"; 11 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 12 12 import { Virtuoso } from "react-virtuoso"; 13 13 import { GroupsTabFocus } from "."; 14 14
+1 -1
apps/web/src/components/Groups/ListFocusType.tsx
··· 1 - import cn from "@hey/ui/cn"; 1 + import cn from "@/helpers/cn"; 2 2 import type { Dispatch, SetStateAction } from "react"; 3 3 import { GroupsTabFocus } from "."; 4 4
+1 -1
apps/web/src/components/Groups/Sidebar/Create/CreateGroup.tsx
··· 1 + import { Button, Card, H5, Modal } from "@/components/Shared/UI"; 1 2 import { APP_NAME } from "@hey/data/constants"; 2 - import { Button, Card, H5, Modal } from "@hey/ui"; 3 3 import { useState } from "react"; 4 4 import { createTrackedSelector } from "react-tracked"; 5 5 import { create } from "zustand";
+7 -1
apps/web/src/components/Groups/Sidebar/Create/CreateGroupModal.tsx
··· 1 1 import AvatarUpload from "@/components/Shared/AvatarUpload"; 2 + import { 3 + Button, 4 + Form, 5 + Input, 6 + TextArea, 7 + useZodForm 8 + } from "@/components/Shared/UI"; 2 9 import trackEvent from "@/helpers/analytics"; 3 10 import errorToast from "@/helpers/errorToast"; 4 11 import uploadMetadata from "@/helpers/uploadMetadata"; ··· 8 15 import { Events } from "@hey/data/events"; 9 16 import { Regex } from "@hey/data/regex"; 10 17 import { useCreateGroupMutation } from "@hey/indexer"; 11 - import { Button, Form, Input, TextArea, useZodForm } from "@hey/ui"; 12 18 import { group } from "@lens-protocol/metadata"; 13 19 import { useState } from "react"; 14 20 import toast from "react-hot-toast";
+1 -1
apps/web/src/components/Groups/Sidebar/Create/Minting.tsx
··· 1 + import { H4, Spinner } from "@/components/Shared/UI"; 1 2 import { useGroupQuery } from "@hey/indexer"; 2 - import { H4, Spinner } from "@hey/ui"; 3 3 import { useCreateGroupStore } from "./CreateGroup"; 4 4 5 5 const Minting = () => {
+1 -1
apps/web/src/components/Groups/Sidebar/Create/Success.tsx
··· 1 + import { H4 } from "@/components/Shared/UI"; 1 2 import { STATIC_IMAGES_URL } from "@hey/data/constants"; 2 - import { H4 } from "@hey/ui"; 3 3 import Image from "next/image"; 4 4 import { useRouter } from "next/router"; 5 5 import { useEffect } from "react";
+5 -1
apps/web/src/components/Groups/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import Footer from "@/components/Shared/Footer"; 3 3 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 4 + import { 5 + GridItemEight, 6 + GridItemFour, 7 + GridLayout 8 + } from "@/components/Shared/UI"; 4 9 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 10 import { APP_NAME } from "@hey/data/constants"; 6 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 7 11 import { useState } from "react"; 8 12 import List from "./List"; 9 13 import ListFocusType from "./ListFocusType";
+1 -1
apps/web/src/components/Home/FeedType.tsx
··· 1 1 import New from "@/components/Shared/Badges/New"; 2 + import { TabButton } from "@/components/Shared/UI"; 2 3 import { useHomeTabStore } from "@/store/persisted/useHomeTabStore"; 3 4 import { HomeFeedType } from "@hey/data/enums"; 4 - import { TabButton } from "@hey/ui"; 5 5 import type { JSX } from "react"; 6 6 7 7 const FeedType = () => {
+1 -1
apps/web/src/components/Home/ForYou.tsx
··· 1 1 import SinglePost from "@/components/Post/SinglePost"; 2 2 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { LightBulbIcon } from "@heroicons/react/24/outline"; 5 6 import { ··· 7 8 PageSize, 8 9 useMlPostsForYouQuery 9 10 } from "@hey/indexer"; 10 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 11 11 import { Virtuoso } from "react-virtuoso"; 12 12 13 13 const ForYou = () => {
+1 -1
apps/web/src/components/Home/Highlights.tsx
··· 1 1 import SinglePost from "@/components/Post/SinglePost"; 2 2 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { LightBulbIcon } from "@heroicons/react/24/outline"; 5 6 import { ··· 7 8 type TimelineHighlightsRequest, 8 9 useTimelineHighlightsQuery 9 10 } from "@hey/indexer"; 10 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 11 11 import { Virtuoso } from "react-virtuoso"; 12 12 13 13 const Highlights = () => {
+1 -1
apps/web/src/components/Home/Sidebar/Gitcoin.tsx
··· 1 1 import CountdownTimer from "@/components/Shared/CountdownTimer"; 2 + import { Button, Card } from "@/components/Shared/UI"; 2 3 import { rubikMonoOneFont } from "@/helpers/fonts"; 3 4 import { APP_NAME, APP_URL, STATIC_IMAGES_URL } from "@hey/data/constants"; 4 - import { Button, Card } from "@hey/ui"; 5 5 import Image from "next/image"; 6 6 import Link from "next/link"; 7 7
+1 -1
apps/web/src/components/Home/Sidebar/SetAccount.tsx
··· 1 + import { Card, H5 } from "@/components/Shared/UI"; 1 2 import { useAccountStore } from "@/store/persisted/useAccountStore"; 2 3 import { MinusCircleIcon } from "@heroicons/react/24/outline"; 3 4 import { CheckCircleIcon } from "@heroicons/react/24/solid"; 4 5 import { APP_NAME } from "@hey/data/constants"; 5 - import { Card, H5 } from "@hey/ui"; 6 6 import Link from "next/link"; 7 7 8 8 interface StatusProps {
+1 -1
apps/web/src/components/Home/Sidebar/StaffPicks.tsx
··· 1 1 import SingleAccountShimmer from "@/components/Shared/Shimmer/SingleAccountShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { Card, EmptyState, ErrorMessage, H5 } from "@/components/Shared/UI"; 3 4 import { trpc } from "@/helpers/trpc"; 4 5 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 6 import { CursorArrowRippleIcon as CursorArrowRippleIconOutline } from "@heroicons/react/24/outline"; 6 7 import type { StaffPicksRouterOutput } from "@hey/api/src/routers/staffPicks"; 7 8 import { useStaffPicksQuery } from "@hey/indexer"; 8 - import { Card, EmptyState, ErrorMessage, H5 } from "@hey/ui"; 9 9 import { useQuery } from "@tanstack/react-query"; 10 10 11 11 interface BatchRange {
+1 -1
apps/web/src/components/Home/Sidebar/WhoToFollow.tsx
··· 1 1 import DismissRecommendedAccount from "@/components/Shared/DismissRecommendedAccount"; 2 2 import SingleAccountShimmer from "@/components/Shared/Shimmer/SingleAccountShimmer"; 3 3 import SingleAccount from "@/components/Shared/SingleAccount"; 4 + import { Card, ErrorMessage, H5, Modal } from "@/components/Shared/UI"; 4 5 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 6 import { 6 7 type AccountFragment, 7 8 PageSize, 8 9 useMlAccountRecommendationsQuery 9 10 } from "@hey/indexer"; 10 - import { Card, ErrorMessage, H5, Modal } from "@hey/ui"; 11 11 import { useState } from "react"; 12 12 import Suggested from "../Suggested"; 13 13
+1 -1
apps/web/src/components/Home/Suggested.tsx
··· 1 1 import DismissRecommendedAccount from "@/components/Shared/DismissRecommendedAccount"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { EmptyState } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { UsersIcon } from "@heroicons/react/24/outline"; 5 6 import type { AccountFragment } from "@hey/indexer"; 6 - import { EmptyState } from "@hey/ui"; 7 7 import { Virtuoso } from "react-virtuoso"; 8 8 9 9 interface SuggestedProps {
+1 -1
apps/web/src/components/Home/Timeline/index.tsx
··· 1 1 import SinglePost from "@/components/Post/SinglePost"; 2 2 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { UserGroupIcon } from "@heroicons/react/24/outline"; 5 6 import { type TimelineRequest, useTimelineQuery } from "@hey/indexer"; 6 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 7 7 import { memo, useRef } from "react"; 8 8 import type { StateSnapshot, VirtuosoHandle } from "react-virtuoso"; 9 9 import { Virtuoso } from "react-virtuoso";
+8 -1
apps/web/src/components/Home/index.tsx
··· 1 1 import NewPost from "@/components/Composer/NewPost"; 2 2 import ExploreFeed from "@/components/Explore/ExploreFeed"; 3 + import { 4 + GridItemEight, 5 + GridItemFour, 6 + GridLayout 7 + } from "@/components/Shared/UI"; 3 8 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 9 import { useHomeTabStore } from "@/store/persisted/useHomeTabStore"; 10 + import { APP_NAME } from "@hey/data/constants"; 5 11 import { HomeFeedType } from "@hey/data/enums"; 6 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 12 + import MetaTags from "../Common/MetaTags"; 7 13 import FeedType from "./FeedType"; 8 14 import ForYou from "./ForYou"; 9 15 import Hero from "./Hero"; ··· 21 27 <> 22 28 {!loggedInWithProfile && <Hero />} 23 29 <GridLayout> 30 + <MetaTags title={APP_NAME} /> 24 31 <GridItemEight className="space-y-5"> 25 32 {loggedInWithProfile ? ( 26 33 <>
+1 -1
apps/web/src/components/Notification/Account.tsx
··· 1 1 import Verified from "@/components/Shared/Account/Icons/Verified"; 2 2 import AccountPreview from "@/components/Shared/AccountPreview"; 3 + import { Image } from "@/components/Shared/UI"; 3 4 import getAccount from "@hey/helpers/getAccount"; 4 5 import getAvatar from "@hey/helpers/getAvatar"; 5 6 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 6 7 import type { AccountFragment } from "@hey/indexer"; 7 - import { Image } from "@hey/ui"; 8 8 import Link from "next/link"; 9 9 10 10 interface NotificationProfileProps {
+1 -1
apps/web/src/components/Notification/FeedType.tsx
··· 1 + import { TabButton } from "@/components/Shared/UI"; 1 2 import { 2 3 AtSymbolIcon, 3 4 BellIcon, ··· 6 7 ShoppingBagIcon 7 8 } from "@heroicons/react/24/outline"; 8 9 import { NotificationFeedType } from "@hey/data/enums"; 9 - import { TabButton } from "@hey/ui"; 10 10 11 11 interface FeedTypeProps { 12 12 feedType: NotificationFeedType;
+2 -2
apps/web/src/components/Notification/List.tsx
··· 1 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import { usePreferencesStore } from "@/store/persisted/usePreferencesStore"; 2 4 import { BellIcon } from "@heroicons/react/24/outline"; 3 5 import { NotificationFeedType } from "@hey/data/enums"; ··· 6 8 NotificationType, 7 9 useNotificationsQuery 8 10 } from "@hey/indexer"; 9 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 10 - import cn from "@hey/ui/cn"; 11 11 import { Virtuoso } from "react-virtuoso"; 12 12 import NotificationShimmer from "./Shimmer"; 13 13 import CommentNotification from "./Type/CommentNotification";
+1 -1
apps/web/src/components/Notification/NotificationIcon.tsx
··· 1 + import { Tooltip } from "@/components/Shared/UI"; 1 2 import { BellIcon } from "@heroicons/react/24/outline"; 2 - import { Tooltip } from "@hey/ui"; 3 3 import Link from "next/link"; 4 4 5 5 const NotificationIcon = () => {
+1 -1
apps/web/src/components/Notification/Settings.tsx
··· 1 1 import IncludeLowScore from "@/components/Settings/Preferences/IncludeLowScore"; 2 + import { Modal, Tooltip } from "@/components/Shared/UI"; 2 3 import { Cog6ToothIcon } from "@heroicons/react/24/outline"; 3 - import { Modal, Tooltip } from "@hey/ui"; 4 4 import { useState } from "react"; 5 5 6 6 const Settings = () => {
+1 -1
apps/web/src/components/Pages/Copyright.tsx
··· 1 1 import Footer from "@/components/Shared/Footer"; 2 + import { H2, H4 } from "@/components/Shared/UI"; 2 3 import { APP_NAME } from "@hey/data/constants"; 3 - import { H2, H4 } from "@hey/ui"; 4 4 import Link from "next/link"; 5 5 6 6 const Copyright = () => {
+1 -1
apps/web/src/components/Pages/Guidelines.tsx
··· 1 1 import Footer from "@/components/Shared/Footer"; 2 + import { H2, H4 } from "@/components/Shared/UI"; 2 3 import { APP_NAME } from "@hey/data/constants"; 3 - import { H2, H4 } from "@hey/ui"; 4 4 import Link from "next/link"; 5 5 6 6 const Guidelines = () => {
+1 -1
apps/web/src/components/Pages/Privacy.tsx
··· 1 1 import Footer from "@/components/Shared/Footer"; 2 + import { H2, H4 } from "@/components/Shared/UI"; 2 3 import { APP_NAME } from "@hey/data/constants"; 3 - import { H2, H4 } from "@hey/ui"; 4 4 import Link from "next/link"; 5 5 6 6 const Privacy = () => {
+1 -1
apps/web/src/components/Pages/Terms.tsx
··· 1 1 import Footer from "@/components/Shared/Footer"; 2 - import { H2, H4 } from "@hey/ui"; 2 + import { H2, H4 } from "@/components/Shared/UI"; 3 3 import Link from "next/link"; 4 4 5 5 const Terms = () => {
+1 -1
apps/web/src/components/Post/Actions/Comment.tsx
··· 1 + import { Tooltip } from "@/components/Shared/UI"; 1 2 import { ChatBubbleLeftIcon } from "@heroicons/react/24/outline"; 2 3 import humanize from "@hey/helpers/humanize"; 3 4 import nFormatter from "@hey/helpers/nFormatter"; 4 5 import type { PostFragment } from "@hey/indexer"; 5 - import { Tooltip } from "@hey/ui"; 6 6 import { useRouter } from "next/router"; 7 7 8 8 interface CommentProps {
+2 -2
apps/web/src/components/Post/Actions/Like.tsx
··· 1 + import { Tooltip } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 3 + import cn from "@/helpers/cn"; 2 4 import errorToast from "@/helpers/errorToast"; 3 5 import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; 4 6 import { useAccountStore } from "@/store/persisted/useAccountStore"; ··· 15 17 useAddReactionMutation, 16 18 useUndoReactionMutation 17 19 } from "@hey/indexer"; 18 - import { Tooltip } from "@hey/ui"; 19 - import cn from "@hey/ui/cn"; 20 20 import { useCounter, useToggle } from "@uidotdev/usehooks"; 21 21 import toast from "react-hot-toast"; 22 22
+1 -1
apps/web/src/components/Post/Actions/Menu/Bookmark.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import errorToast from "@/helpers/errorToast"; 2 3 import type { ApolloCache } from "@apollo/client"; 3 4 import { MenuItem } from "@headlessui/react"; ··· 10 11 useBookmarkPostMutation, 11 12 useUndoBookmarkPostMutation 12 13 } from "@hey/indexer"; 13 - import cn from "@hey/ui/cn"; 14 14 import { useRouter } from "next/router"; 15 15 import { toast } from "react-hot-toast"; 16 16
+1 -1
apps/web/src/components/Post/Actions/Menu/CopyPostText.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { MenuItem } from "@headlessui/react"; 2 3 import { ClipboardDocumentIcon } from "@heroicons/react/24/outline"; 3 4 import getPostData from "@hey/helpers/getPostData"; 4 5 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 5 6 import type { PostFragment } from "@hey/indexer"; 6 - import cn from "@hey/ui/cn"; 7 7 import toast from "react-hot-toast"; 8 8 9 9 interface CopyPostTextProps {
+1 -1
apps/web/src/components/Post/Actions/Menu/Delete.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { useDeletePostAlertStore } from "@/store/non-persisted/alert/useDeletePostAlertStore"; 2 3 import { MenuItem } from "@headlessui/react"; 3 4 import { TrashIcon } from "@heroicons/react/24/outline"; 4 5 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 5 6 import type { PostFragment } from "@hey/indexer"; 6 - import cn from "@hey/ui/cn"; 7 7 8 8 interface DeleteProps { 9 9 post: PostFragment;
+1 -1
apps/web/src/components/Post/Actions/Menu/HideComment.tsx
··· 1 1 import { useHiddenCommentFeedStore } from "@/components/Post"; 2 + import cn from "@/helpers/cn"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import type { ApolloCache } from "@apollo/client"; ··· 10 11 useHideReplyMutation, 11 12 useUnhideReplyMutation 12 13 } from "@hey/indexer"; 13 - import cn from "@hey/ui/cn"; 14 14 import { toast } from "react-hot-toast"; 15 15 16 16 interface HideCommentProps {
+1 -1
apps/web/src/components/Post/Actions/Menu/NotInterested.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import errorToast from "@/helpers/errorToast"; 2 3 import type { ApolloCache } from "@apollo/client"; 3 4 import { MenuItem } from "@headlessui/react"; ··· 10 11 useAddPostNotInterestedMutation, 11 12 useUndoPostNotInterestedMutation 12 13 } from "@hey/indexer"; 13 - import cn from "@hey/ui/cn"; 14 14 import { toast } from "react-hot-toast"; 15 15 16 16 interface NotInterestedProps {
+1 -1
apps/web/src/components/Post/Actions/Menu/Report.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { useReportPostModalStore } from "@/store/non-persisted/modal/useReportPostModalStore"; 2 3 import { MenuItem } from "@headlessui/react"; 3 4 import { ExclamationTriangleIcon } from "@heroicons/react/24/outline"; 4 5 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 5 6 import type { PostFragment } from "@hey/indexer"; 6 - import cn from "@hey/ui/cn"; 7 7 8 8 interface ReportProps { 9 9 post: PostFragment;
+1 -1
apps/web/src/components/Post/Actions/Menu/Share.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { MenuItem } from "@headlessui/react"; 2 3 import { ClipboardDocumentIcon } from "@heroicons/react/24/outline"; 3 4 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 4 5 import type { PostFragment } from "@hey/indexer"; 5 - import cn from "@hey/ui/cn"; 6 6 import toast from "react-hot-toast"; 7 7 8 8 interface ShareProps {
+1 -1
apps/web/src/components/Post/Actions/Menu/index.tsx
··· 1 1 import MenuTransition from "@/components/Shared/MenuTransition"; 2 + import cn from "@/helpers/cn"; 2 3 import { useAccountStore } from "@/store/persisted/useAccountStore"; 3 4 import { Menu, MenuButton, MenuItems } from "@headlessui/react"; 4 5 import { EllipsisHorizontalIcon } from "@heroicons/react/24/outline"; 5 6 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 6 7 import type { PostFragment } from "@hey/indexer"; 7 - import cn from "@hey/ui/cn"; 8 8 import { Fragment } from "react"; 9 9 import Bookmark from "./Bookmark"; 10 10 import CopyPostText from "./CopyPostText";
+1 -1
apps/web/src/components/Post/Actions/Share/Quote.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { useNewPostModalStore } from "@/store/non-persisted/modal/useNewPostModalStore"; 2 3 import { usePostStore } from "@/store/non-persisted/post/usePostStore"; 3 4 import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; ··· 6 7 import { ChatBubbleBottomCenterTextIcon } from "@heroicons/react/24/outline"; 7 8 import { Errors } from "@hey/data/errors"; 8 9 import type { PostFragment } from "@hey/indexer"; 9 - import cn from "@hey/ui/cn"; 10 10 import toast from "react-hot-toast"; 11 11 12 12 interface QuoteProps {
+1 -1
apps/web/src/components/Post/Actions/Share/Repost.tsx
··· 1 1 import trackEvent from "@/helpers/analytics"; 2 + import cn from "@/helpers/cn"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; 4 5 import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; ··· 13 14 type PostFragment, 14 15 useRepostMutation 15 16 } from "@hey/indexer"; 16 - import cn from "@hey/ui/cn"; 17 17 import { useCounter } from "@uidotdev/usehooks"; 18 18 import type { Dispatch, SetStateAction } from "react"; 19 19 import { toast } from "react-hot-toast";
+1 -1
apps/web/src/components/Post/Actions/Share/UndoRepost.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import errorToast from "@/helpers/errorToast"; 2 3 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; ··· 7 8 import { Errors } from "@hey/data/errors"; 8 9 import { isRepost } from "@hey/helpers/postHelpers"; 9 10 import { type AnyPostFragment, useDeletePostMutation } from "@hey/indexer"; 10 - import cn from "@hey/ui/cn"; 11 11 import type { Dispatch, SetStateAction } from "react"; 12 12 import { toast } from "react-hot-toast"; 13 13
+2 -2
apps/web/src/components/Post/Actions/Share/index.tsx
··· 1 1 import MenuTransition from "@/components/Shared/MenuTransition"; 2 + import { Spinner, Tooltip } from "@/components/Shared/UI"; 3 + import cn from "@/helpers/cn"; 2 4 import { Menu, MenuButton, MenuItems } from "@headlessui/react"; 3 5 import { ArrowsRightLeftIcon } from "@heroicons/react/24/outline"; 4 6 import humanize from "@hey/helpers/humanize"; ··· 6 8 import { isRepost } from "@hey/helpers/postHelpers"; 7 9 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 8 10 import type { AnyPostFragment } from "@hey/indexer"; 9 - import { Spinner, Tooltip } from "@hey/ui"; 10 - import cn from "@hey/ui/cn"; 11 11 import { useState } from "react"; 12 12 import Quote from "./Quote"; 13 13 import Repost from "./Repost";
+2 -2
apps/web/src/components/Post/FullPost.tsx
··· 1 + import { Card, Tooltip } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import hasAccess from "@/helpers/hasAccess"; 2 4 import { trpc } from "@/helpers/trpc"; 3 5 import { QueueListIcon } from "@heroicons/react/24/outline"; ··· 5 7 import formatDate from "@hey/helpers/datetime/formatDate"; 6 8 import { isRepost } from "@hey/helpers/postHelpers"; 7 9 import type { AnyPostFragment } from "@hey/indexer"; 8 - import { Card, Tooltip } from "@hey/ui"; 9 - import cn from "@hey/ui/cn"; 10 10 import { useQuery } from "@tanstack/react-query"; 11 11 import { useHiddenCommentFeedStore } from "."; 12 12 import PostActions from "./Actions";
+1 -1
apps/web/src/components/Post/HiddenPost.tsx
··· 1 - import { Card } from "@hey/ui"; 1 + import { Card } from "@/components/Shared/UI"; 2 2 3 3 interface HiddenPostProps { 4 4 type?: string;
+1 -1
apps/web/src/components/Post/Metadata.tsx
··· 1 + import { Card } from "@/components/Shared/UI"; 1 2 import getAssetLicense from "@/helpers/getAssetLicense"; 2 3 import { ScaleIcon } from "@heroicons/react/24/outline"; 3 4 import getPostData from "@hey/helpers/getPostData"; 4 5 import type { PostMetadataFragment } from "@hey/indexer"; 5 - import { Card } from "@hey/ui"; 6 6 import { memo } from "react"; 7 7 8 8 interface MetadataProps {
+8 -1
apps/web/src/components/Post/OpenAction/CollectAction/CollectActionBody.tsx
··· 3 3 import Collectors from "@/components/Shared/Modal/Collectors"; 4 4 import Slug from "@/components/Shared/Slug"; 5 5 import { 6 + H3, 7 + H4, 8 + HelpTooltip, 9 + Modal, 10 + Tooltip, 11 + WarningMessage 12 + } from "@/components/Shared/UI"; 13 + import { 6 14 CheckCircleIcon, 7 15 ClockIcon, 8 16 CurrencyDollarIcon, ··· 24 32 type SimpleCollectActionFragment, 25 33 useCollectActionQuery 26 34 } from "@hey/indexer"; 27 - import { H3, H4, HelpTooltip, Modal, Tooltip, WarningMessage } from "@hey/ui"; 28 35 import { useCounter } from "@uidotdev/usehooks"; 29 36 import Link from "next/link"; 30 37 import plur from "plur";
+1 -1
apps/web/src/components/Post/OpenAction/CollectAction/CollectActionButton.tsx
··· 1 1 import FundButton from "@/components/Shared/Fund/FundButton"; 2 2 import LoginButton from "@/components/Shared/LoginButton"; 3 + import { Button } from "@/components/Shared/UI"; 3 4 import trackEvent from "@/helpers/analytics"; 4 5 import errorToast from "@/helpers/errorToast"; 5 6 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 16 17 type PostFragment, 17 18 useExecutePostActionMutation 18 19 } from "@hey/indexer"; 19 - import { Button } from "@hey/ui"; 20 20 import { useState } from "react"; 21 21 import toast from "react-hot-toast"; 22 22 import { type Address, formatUnits } from "viem";
+1 -1
apps/web/src/components/Post/OpenAction/CollectAction/SmallCollectButton.tsx
··· 1 + import { Button, Modal } from "@/components/Shared/UI"; 1 2 import type { PostFragment } from "@hey/indexer"; 2 - import { Button, Modal } from "@hey/ui"; 3 3 import { useState } from "react"; 4 4 import CollectActionBody from "./CollectActionBody"; 5 5
+1 -1
apps/web/src/components/Post/OpenAction/CollectAction/Splits.tsx
··· 1 1 import Slug from "@/components/Shared/Slug"; 2 + import { Image } from "@/components/Shared/UI"; 2 3 import { BLOCK_EXPLORER_URL } from "@hey/data/constants"; 3 4 import formatAddress from "@hey/helpers/formatAddress"; 4 5 import getAccount from "@hey/helpers/getAccount"; 5 6 import getAvatar from "@hey/helpers/getAvatar"; 6 7 import { type RecipientPercent, useAccountsBulkQuery } from "@hey/indexer"; 7 - import { Image } from "@hey/ui"; 8 8 import Link from "next/link"; 9 9 10 10 interface SplitsProps {
+1 -1
apps/web/src/components/Post/OpenAction/CollectAction/index.tsx
··· 1 + import { Modal, Tooltip } from "@/components/Shared/UI"; 1 2 import { ShoppingBagIcon } from "@heroicons/react/24/outline"; 2 3 import humanize from "@hey/helpers/humanize"; 3 4 import nFormatter from "@hey/helpers/nFormatter"; 4 5 import type { PostFragment } from "@hey/indexer"; 5 - import { Modal, Tooltip } from "@hey/ui"; 6 6 import plur from "plur"; 7 7 import { useState } from "react"; 8 8 import CollectActionBody from "./CollectActionBody";
+2 -2
apps/web/src/components/Post/OpenAction/TipAction/Action.tsx
··· 1 1 import FundButton from "@/components/Shared/Fund/FundButton"; 2 2 import LoginButton from "@/components/Shared/LoginButton"; 3 + import { Button, Input, Spinner } from "@/components/Shared/UI"; 3 4 import trackEvent from "@/helpers/analytics"; 5 + import cn from "@/helpers/cn"; 4 6 import errorToast from "@/helpers/errorToast"; 5 7 import usePreventScrollOnNumberInput from "@/hooks/usePreventScrollOnNumberInput"; 6 8 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 18 20 type PostFragment, 19 21 useExecutePostActionMutation 20 22 } from "@hey/indexer"; 21 - import { Button, Input, Spinner } from "@hey/ui"; 22 - import cn from "@hey/ui/cn"; 23 23 import type { ChangeEvent, RefObject } from "react"; 24 24 import { useRef, useState } from "react"; 25 25 import toast from "react-hot-toast";
+2 -2
apps/web/src/components/Post/OpenAction/TipAction/index.tsx
··· 1 1 import MenuTransition from "@/components/Shared/MenuTransition"; 2 2 import { TipIcon } from "@/components/Shared/TipIcon"; 3 + import { Tooltip } from "@/components/Shared/UI"; 4 + import cn from "@/helpers/cn"; 3 5 import { Menu, MenuButton, MenuItem, MenuItems } from "@headlessui/react"; 4 6 import nFormatter from "@hey/helpers/nFormatter"; 5 7 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 6 8 import type { PostFragment } from "@hey/indexer"; 7 - import { Tooltip } from "@hey/ui"; 8 - import cn from "@hey/ui/cn"; 9 9 import Action from "./Action"; 10 10 11 11 interface TipActionProps {
+1 -1
apps/web/src/components/Post/PostAccount.tsx
··· 1 1 import Verified from "@/components/Shared/Account/Icons/Verified"; 2 + import { Image } from "@/components/Shared/UI"; 2 3 import formatRelativeOrAbsolute from "@hey/helpers/datetime/formatRelativeOrAbsolute"; 3 4 import getAccount from "@hey/helpers/getAccount"; 4 5 import getAvatar from "@hey/helpers/getAvatar"; 5 6 import type { AccountFragment, PostGroupInfoFragment } from "@hey/indexer"; 6 - import { Image } from "@hey/ui"; 7 7 import Link from "next/link"; 8 8 import { useRouter } from "next/router"; 9 9 import type { ReactNode } from "react";
+2 -2
apps/web/src/components/Post/PostAvatar.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import getAccount from "@hey/helpers/getAccount"; 2 4 import getAvatar from "@hey/helpers/getAvatar"; 3 5 import { isRepost } from "@hey/helpers/postHelpers"; 4 6 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 5 7 import type { AnyPostFragment, TimelineItemFragment } from "@hey/indexer"; 6 - import { Image } from "@hey/ui"; 7 - import cn from "@hey/ui/cn"; 8 8 import Link from "next/link"; 9 9 import { useRouter } from "next/router"; 10 10 import { memo } from "react";
+2 -2
apps/web/src/components/Post/PostBody.tsx
··· 2 2 import Quote from "@/components/Shared/Embed/Quote"; 3 3 import Markup from "@/components/Shared/Markup"; 4 4 import Oembed from "@/components/Shared/Oembed"; 5 + import { H6 } from "@/components/Shared/UI"; 5 6 import Video from "@/components/Shared/Video"; 7 + import cn from "@/helpers/cn"; 6 8 import { EyeIcon } from "@heroicons/react/24/outline"; 7 9 import getPostData from "@hey/helpers/getPostData"; 8 10 import getURLs from "@hey/helpers/getURLs"; 9 11 import { isRepost } from "@hey/helpers/postHelpers"; 10 12 import type { AnyPostFragment } from "@hey/indexer"; 11 - import { H6 } from "@hey/ui"; 12 - import cn from "@hey/ui/cn"; 13 13 import { getSrc } from "@livepeer/react/external"; 14 14 import Link from "next/link"; 15 15 import { memo } from "react";
+1 -1
apps/web/src/components/Post/PostStats.tsx
··· 1 1 import Collectors from "@/components/Shared/Modal/Collectors"; 2 2 import Likes from "@/components/Shared/Modal/Likes"; 3 3 import Reposts from "@/components/Shared/Modal/Reposts"; 4 + import { Modal } from "@/components/Shared/UI"; 4 5 import nFormatter from "@hey/helpers/nFormatter"; 5 6 import type { PostFragment } from "@hey/indexer"; 6 - import { Modal } from "@hey/ui"; 7 7 import Link from "next/link"; 8 8 import plur from "plur"; 9 9 import { memo, useState } from "react";
+1 -1
apps/web/src/components/Post/Quotes.tsx
··· 1 1 import PostListShimmer from "@/components/Shared/Shimmer/PostListShimmer"; 2 + import { Card, EmptyState, ErrorMessage, H5 } from "@/components/Shared/UI"; 2 3 import { 3 4 ArrowLeftIcon, 4 5 ChatBubbleBottomCenterTextIcon ··· 10 11 type PostReferencesRequest, 11 12 usePostReferencesQuery 12 13 } from "@hey/indexer"; 13 - import { Card, EmptyState, ErrorMessage, H5 } from "@hey/ui"; 14 14 import Link from "next/link"; 15 15 import { Virtuoso } from "react-virtuoso"; 16 16 import SinglePost from "./SinglePost";
+1 -1
apps/web/src/components/Post/RelevantPeople.tsx
··· 1 1 import SingleAccountShimmer from "@/components/Shared/Shimmer/SingleAccountShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { Card, ErrorMessage, Modal } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { 5 6 type AccountFragment, 6 7 type PostMentionFragment, 7 8 useAccountsBulkQuery 8 9 } from "@hey/indexer"; 9 - import { Card, ErrorMessage, Modal } from "@hey/ui"; 10 10 import { useState } from "react"; 11 11 import MoreRelevantPeople from "./MoreRelevantPeople"; 12 12
+6 -1
apps/web/src/components/Post/Shimmer.tsx
··· 3 3 import PostShimmer from "@/components/Shared/Shimmer/PostShimmer"; 4 4 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 5 5 import SingleAccountShimmer from "@/components/Shared/Shimmer/SingleAccountShimmer"; 6 - import { Card, GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 6 + import { 7 + Card, 8 + GridItemEight, 9 + GridItemFour, 10 + GridLayout 11 + } from "@/components/Shared/UI"; 7 12 8 13 interface PublicationPageShimmerProps { 9 14 publicationList?: boolean;
+1 -1
apps/web/src/components/Post/SinglePost.tsx
··· 1 1 import ActionType from "@/components/Home/Timeline/EventType"; 2 2 import PostWrapper from "@/components/Shared/PostWrapper"; 3 + import cn from "@/helpers/cn"; 3 4 import type { AnyPostFragment, TimelineItemFragment } from "@hey/indexer"; 4 - import cn from "@hey/ui/cn"; 5 5 import { memo } from "react"; 6 6 import PostActions from "./Actions"; 7 7 import HiddenPost from "./HiddenPost";
+7 -7
apps/web/src/components/Post/index.tsx
··· 4 4 import NewPublication from "@/components/Composer/NewPublication"; 5 5 import Footer from "@/components/Shared/Footer"; 6 6 import SingleAccount from "@/components/Shared/SingleAccount"; 7 + import { 8 + Card, 9 + GridItemEight, 10 + GridItemFour, 11 + GridLayout, 12 + WarningMessage 13 + } from "@/components/Shared/UI"; 7 14 import Custom404 from "@/pages/404"; 8 15 import Custom500 from "@/pages/500"; 9 16 import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; ··· 19 26 usePostQuery, 20 27 usePostReferencesQuery 21 28 } from "@hey/indexer"; 22 - import { 23 - Card, 24 - GridItemEight, 25 - GridItemFour, 26 - GridLayout, 27 - WarningMessage 28 - } from "@hey/ui"; 29 29 import { useRouter } from "next/router"; 30 30 import { createTrackedSelector } from "react-tracked"; 31 31 import { create } from "zustand";
+1 -1
apps/web/src/components/Search/Accounts.tsx
··· 1 1 import SingleAccountsShimmer from "@/components/Shared/Shimmer/SingleAccountsShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { UsersIcon } from "@heroicons/react/24/outline"; 4 5 import { type AccountsRequest, PageSize, useAccountsQuery } from "@hey/indexer"; 5 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 6 6 import { Virtuoso } from "react-virtuoso"; 7 7 8 8 interface AccountsProps {
+1 -1
apps/web/src/components/Search/Posts.tsx
··· 1 1 import SinglePost from "@/components/Post/SinglePost"; 2 2 import PostsShimmer from "@/components/Shared/Shimmer/PostsShimmer"; 3 + import { Card, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { ChatBubbleBottomCenterIcon } from "@heroicons/react/24/outline"; 4 5 import { PageSize, type PostsRequest, usePostsQuery } from "@hey/indexer"; 5 - import { Card, EmptyState, ErrorMessage } from "@hey/ui"; 6 6 import { useRef } from "react"; 7 7 import type { StateSnapshot, VirtuosoHandle } from "react-virtuoso"; 8 8 import { Virtuoso } from "react-virtuoso";
+5 -1
apps/web/src/components/Search/index.tsx
··· 1 1 import Sidebar from "@/components/Shared/Sidebar"; 2 + import { 3 + GridItemEight, 4 + GridItemFour, 5 + GridLayout 6 + } from "@/components/Shared/UI"; 2 7 import Custom404 from "@/pages/404"; 3 8 import { PencilSquareIcon, UsersIcon } from "@heroicons/react/24/outline"; 4 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 5 9 import { useRouter } from "next/router"; 6 10 import Accounts from "./Accounts"; 7 11 import Posts from "./Posts";
+8 -1
apps/web/src/components/Settings/Account/SuperFollow.tsx
··· 1 + import { 2 + Button, 3 + Card, 4 + CardHeader, 5 + Image, 6 + Input, 7 + Tooltip 8 + } from "@/components/Shared/UI"; 1 9 import trackEvent from "@/helpers/analytics"; 2 10 import errorToast from "@/helpers/errorToast"; 3 11 import { getSimplePaymentDetails } from "@/helpers/rules"; ··· 21 29 useMeLazyQuery, 22 30 useUpdateAccountFollowRulesMutation 23 31 } from "@hey/indexer"; 24 - import { Button, Card, CardHeader, Image, Input, Tooltip } from "@hey/ui"; 25 32 import { useRouter } from "next/router"; 26 33 import { type RefObject, useEffect, useRef, useState } from "react"; 27 34 import toast from "react-hot-toast";
+1 -1
apps/web/src/components/Settings/Account/Verification.tsx
··· 1 + import { Button, Card, H5, Modal } from "@/components/Shared/UI"; 1 2 import isVerified from "@/helpers/isVerified"; 2 3 import { useAccountStore } from "@/store/persisted/useAccountStore"; 3 4 import { CheckBadgeIcon } from "@heroicons/react/24/solid"; 4 - import { Button, Card, H5, Modal } from "@hey/ui"; 5 5 import { useState } from "react"; 6 6 7 7 const Verification = () => {
+5 -1
apps/web/src/components/Settings/Account/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 + import { 4 + GridItemEight, 5 + GridItemFour, 6 + GridLayout 7 + } from "@/components/Shared/UI"; 3 8 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 9 import { APP_NAME } from "@hey/data/constants"; 5 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 6 10 import SettingsSidebar from "../Sidebar"; 7 11 import SuperFollow from "./SuperFollow"; 8 12 import Verification from "./Verification";
+1 -1
apps/web/src/components/Settings/Blocked/List.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { Button, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useBlockAlertStore } from "@/store/non-persisted/alert/useBlockAlertStore"; 4 5 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 6 import { NoSymbolIcon } from "@heroicons/react/24/outline"; ··· 8 9 PageSize, 9 10 useAccountsBlockedQuery 10 11 } from "@hey/indexer"; 11 - import { Button, EmptyState, ErrorMessage } from "@hey/ui"; 12 12 import { Virtuoso } from "react-virtuoso"; 13 13 14 14 const List = () => {
+3 -3
apps/web/src/components/Settings/Blocked/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 - import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 - import { APP_NAME } from "@hey/data/constants"; 5 3 import { 6 4 Card, 7 5 CardHeader, 8 6 GridItemEight, 9 7 GridItemFour, 10 8 GridLayout 11 - } from "@hey/ui"; 9 + } from "@/components/Shared/UI"; 10 + import { useAccountStore } from "@/store/persisted/useAccountStore"; 11 + import { APP_NAME } from "@hey/data/constants"; 12 12 import SettingsSidebar from "../Sidebar"; 13 13 import List from "./List"; 14 14
+9 -9
apps/web/src/components/Settings/Danger/Delete.tsx
··· 1 1 import SingleAccount from "@/components/Shared/SingleAccount"; 2 + import { 3 + Button, 4 + Card, 5 + CardHeader, 6 + H5, 7 + Modal, 8 + Spinner, 9 + WarningMessage 10 + } from "@/components/Shared/UI"; 2 11 import useHandleWrongNetwork from "@/hooks/useHandleWrongNetwork"; 3 12 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 13 import { TrashIcon } from "@heroicons/react/24/outline"; ··· 9 18 } from "@hey/data/constants"; 10 19 import { Errors } from "@hey/data/errors"; 11 20 import type { AccountFragment } from "@hey/indexer"; 12 - import { 13 - Button, 14 - Card, 15 - CardHeader, 16 - H5, 17 - Modal, 18 - Spinner, 19 - WarningMessage 20 - } from "@hey/ui"; 21 21 import Link from "next/link"; 22 22 import { useState } from "react"; 23 23 import toast from "react-hot-toast";
+5 -1
apps/web/src/components/Settings/Danger/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 3 import WrongWallet from "@/components/Shared/Settings/WrongWallet"; 4 + import { 5 + GridItemEight, 6 + GridItemFour, 7 + GridLayout 8 + } from "@/components/Shared/UI"; 4 9 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 10 import { APP_NAME } from "@hey/data/constants"; 6 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 7 11 import { useAccount } from "wagmi"; 8 12 import SettingsSidebar from "../Sidebar"; 9 13 import DeleteSettings from "./Delete";
+1 -1
apps/web/src/components/Settings/Developer/Tokens.tsx
··· 1 + import { Button, Card, CardHeader, H6 } from "@/components/Shared/UI"; 1 2 import errorToast from "@/helpers/errorToast"; 2 3 import useHandleWrongNetwork from "@/hooks/useHandleWrongNetwork"; 3 4 import { hydrateAuthTokens } from "@/store/persisted/useAuthStore"; 4 5 import { Errors } from "@hey/data/errors"; 5 6 import { useAuthenticateMutation, useChallengeMutation } from "@hey/indexer"; 6 - import { Button, Card, CardHeader, H6 } from "@hey/ui"; 7 7 import { useState } from "react"; 8 8 import toast from "react-hot-toast"; 9 9 import { useAccount, useSignMessage } from "wagmi";
+5 -1
apps/web/src/components/Settings/Developer/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 + import { 4 + GridItemEight, 5 + GridItemFour, 6 + GridLayout 7 + } from "@/components/Shared/UI"; 3 8 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 9 import { APP_NAME } from "@hey/data/constants"; 5 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 6 10 import SettingsSidebar from "../Sidebar"; 7 11 import Tokens from "./Tokens"; 8 12
+1 -1
apps/web/src/components/Settings/Funds/Balances.tsx
··· 1 1 import FundButton from "@/components/Shared/Fund/FundButton"; 2 2 import Loader from "@/components/Shared/Loader"; 3 + import { ErrorMessage, Image } from "@/components/Shared/UI"; 3 4 import { 4 5 DEFAULT_COLLECT_TOKEN, 5 6 NATIVE_TOKEN_SYMBOL ··· 7 8 import { tokens } from "@hey/data/tokens"; 8 9 import getTokenImage from "@hey/helpers/getTokenImage"; 9 10 import { useAccountBalancesQuery } from "@hey/indexer"; 10 - import { ErrorMessage, Image } from "@hey/ui"; 11 11 import type { Address } from "viem"; 12 12 import Unwrap from "./Unwrap"; 13 13 import Withdraw from "./Withdraw";
+1 -1
apps/web/src/components/Settings/Funds/Unwrap.tsx
··· 1 + import { Button, Input, Modal } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import usePollTransactionStatus from "@/hooks/usePollTransactionStatus"; ··· 5 6 import { NATIVE_TOKEN_SYMBOL } from "@hey/data/constants"; 6 7 import { Events } from "@hey/data/events"; 7 8 import { useUnwrapTokensMutation } from "@hey/indexer"; 8 - import { Button, Input, Modal } from "@hey/ui"; 9 9 import { useState } from "react"; 10 10 import toast from "react-hot-toast"; 11 11
+1 -1
apps/web/src/components/Settings/Funds/Withdraw.tsx
··· 1 + import { Button, Input, Modal } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import usePollTransactionStatus from "@/hooks/usePollTransactionStatus"; 4 5 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; 5 6 import { Events } from "@hey/data/events"; 6 7 import { useWithdrawMutation } from "@hey/indexer"; 7 - import { Button, Input, Modal } from "@hey/ui"; 8 8 import { useState } from "react"; 9 9 import toast from "react-hot-toast"; 10 10 import type { Address } from "viem";
+1 -1
apps/web/src/components/Settings/Funds/Wrap.tsx
··· 1 + import { Button, Input, Modal } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import usePollTransactionStatus from "@/hooks/usePollTransactionStatus"; ··· 5 6 import { WRAPPED_NATIVE_TOKEN_SYMBOL } from "@hey/data/constants"; 6 7 import { Events } from "@hey/data/events"; 7 8 import { useWrapTokensMutation } from "@hey/indexer"; 8 - import { Button, Input, Modal } from "@hey/ui"; 9 9 import { useState } from "react"; 10 10 import toast from "react-hot-toast"; 11 11
+3 -3
apps/web/src/components/Settings/Funds/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 - import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 - import { APP_NAME } from "@hey/data/constants"; 5 3 import { 6 4 Card, 7 5 CardHeader, 8 6 GridItemEight, 9 7 GridItemFour, 10 8 GridLayout 11 - } from "@hey/ui"; 9 + } from "@/components/Shared/UI"; 10 + import { useAccountStore } from "@/store/persisted/useAccountStore"; 11 + import { APP_NAME } from "@hey/data/constants"; 12 12 import SettingsSidebar from "../Sidebar"; 13 13 import Balances from "./Balances"; 14 14
+1 -1
apps/web/src/components/Settings/Manager/AccountManager/AddAccountManager.tsx
··· 1 1 import SearchAccounts from "@/components/Shared/SearchAccounts"; 2 + import { Button } from "@/components/Shared/UI"; 2 3 import trackEvent from "@/helpers/analytics"; 3 4 import errorToast from "@/helpers/errorToast"; 4 5 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 8 9 import { Errors } from "@hey/data/errors"; 9 10 import { Events } from "@hey/data/events"; 10 11 import { useAddAccountManagerMutation } from "@hey/indexer"; 11 - import { Button } from "@hey/ui"; 12 12 import type { Dispatch, SetStateAction } from "react"; 13 13 import { useState } from "react"; 14 14 import toast from "react-hot-toast";
+1 -1
apps/web/src/components/Settings/Manager/AccountManager/Management/List.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { Button, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import errorToast from "@/helpers/errorToast"; 4 5 import { UsersIcon } from "@heroicons/react/24/outline"; 5 6 import { ··· 10 11 useHideManagedAccountMutation, 11 12 useUnhideManagedAccountMutation 12 13 } from "@hey/indexer"; 13 - import { Button, EmptyState, ErrorMessage } from "@hey/ui"; 14 14 import { useEffect } from "react"; 15 15 import toast from "react-hot-toast"; 16 16 import { Virtuoso } from "react-virtuoso";
+1 -1
apps/web/src/components/Settings/Manager/AccountManager/Managers/List.tsx
··· 1 1 import LazySingleAccount from "@/components/Shared/LazySingleAccount"; 2 2 import Loader from "@/components/Shared/Loader"; 3 + import { Button, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import errorToast from "@/helpers/errorToast"; 4 5 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; 5 6 import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; ··· 14 15 useAccountManagersQuery, 15 16 useRemoveAccountManagerMutation 16 17 } from "@hey/indexer"; 17 - import { Button, EmptyState, ErrorMessage } from "@hey/ui"; 18 18 import { useState } from "react"; 19 19 import toast from "react-hot-toast"; 20 20 import { Virtuoso } from "react-virtuoso";
+1 -1
apps/web/src/components/Settings/Manager/AccountManager/index.tsx
··· 1 1 import WrongWallet from "@/components/Shared/Settings/WrongWallet"; 2 + import { Button, Card, Modal, TabButton } from "@/components/Shared/UI"; 2 3 import { useAccountStore } from "@/store/persisted/useAccountStore"; 3 4 import { PlusCircleIcon } from "@heroicons/react/24/outline"; 4 - import { Button, Card, Modal, TabButton } from "@hey/ui"; 5 5 import { useState } from "react"; 6 6 import { useAccount } from "wagmi"; 7 7 import AddAccountManager from "./AddAccountManager";
+1 -1
apps/web/src/components/Settings/Manager/Signless.tsx
··· 1 + import { Button, Card, CardHeader } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 6 7 import { Errors } from "@hey/data/errors"; 7 8 import { Events } from "@hey/data/events"; 8 9 import { useEnableSignlessMutation } from "@hey/indexer"; 9 - import { Button, Card, CardHeader } from "@hey/ui"; 10 10 import { useState } from "react"; 11 11 import toast from "react-hot-toast"; 12 12
+5 -1
apps/web/src/components/Settings/Manager/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 + import { 4 + GridItemEight, 5 + GridItemFour, 6 + GridLayout 7 + } from "@/components/Shared/UI"; 3 8 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 9 import { APP_NAME } from "@hey/data/constants"; 5 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 6 10 import SettingsSidebar from "../Sidebar"; 7 11 import AccountManager from "./AccountManager"; 8 12 import Signless from "./Signless";
+1 -1
apps/web/src/components/Settings/Preferences/AppIcon.tsx
··· 1 + import { Card, CardHeader, Tooltip } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import { trpc } from "@/helpers/trpc"; ··· 6 7 import { CheckCircleIcon as CheckCircleIconSolid } from "@heroicons/react/24/solid"; 7 8 import { APP_NAME, STATIC_IMAGES_URL } from "@hey/data/constants"; 8 9 import { Events } from "@hey/data/events"; 9 - import { Card, CardHeader, Tooltip } from "@hey/ui"; 10 10 import { useMutation } from "@tanstack/react-query"; 11 11 import Image from "next/image"; 12 12 import toast from "react-hot-toast";
+3 -3
apps/web/src/components/Settings/Preferences/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 - import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 - import { APP_NAME } from "@hey/data/constants"; 5 3 import { 6 4 Card, 7 5 CardHeader, 8 6 GridItemEight, 9 7 GridItemFour, 10 8 GridLayout 11 - } from "@hey/ui"; 9 + } from "@/components/Shared/UI"; 10 + import { useAccountStore } from "@/store/persisted/useAccountStore"; 11 + import { APP_NAME } from "@hey/data/constants"; 12 12 import SettingsSidebar from "../Sidebar"; 13 13 import AppIcon from "./AppIcon"; 14 14 import IncludeLowScore from "./IncludeLowScore";
+8 -1
apps/web/src/components/Settings/Profile/Account.tsx
··· 1 1 import AvatarUpload from "@/components/Shared/AvatarUpload"; 2 2 import CoverUpload from "@/components/Shared/CoverUpload"; 3 + import { 4 + Button, 5 + Card, 6 + Form, 7 + Input, 8 + TextArea, 9 + useZodForm 10 + } from "@/components/Shared/UI"; 3 11 import trackEvent from "@/helpers/analytics"; 4 12 import errorToast from "@/helpers/errorToast"; 5 13 import uploadMetadata from "@/helpers/uploadMetadata"; ··· 13 21 import getAccountAttribute from "@hey/helpers/getAccountAttribute"; 14 22 import trimify from "@hey/helpers/trimify"; 15 23 import { useMeLazyQuery, useSetAccountMetadataMutation } from "@hey/indexer"; 16 - import { Button, Card, Form, Input, TextArea, useZodForm } from "@hey/ui"; 17 24 import type { 18 25 AccountOptions, 19 26 MetadataAttribute
+5 -1
apps/web/src/components/Settings/Profile/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 + import { 4 + GridItemEight, 5 + GridItemFour, 6 + GridLayout 7 + } from "@/components/Shared/UI"; 3 8 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 9 import { APP_NAME } from "@hey/data/constants"; 5 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 6 10 import SettingsSidebar from "../Sidebar"; 7 11 import AccountSettingsForm from "./Account"; 8 12
+1 -1
apps/web/src/components/Settings/Sessions/List.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 + import { Button, EmptyState, ErrorMessage } from "@/components/Shared/UI"; 2 3 import trackEvent from "@/helpers/analytics"; 3 4 import errorToast from "@/helpers/errorToast"; 4 5 import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; ··· 13 14 useAuthenticatedSessionsQuery, 14 15 useRevokeAuthenticationMutation 15 16 } from "@hey/indexer"; 16 - import { Button, EmptyState, ErrorMessage } from "@hey/ui"; 17 17 import { useState } from "react"; 18 18 import toast from "react-hot-toast"; 19 19 import { Virtuoso } from "react-virtuoso";
+3 -3
apps/web/src/components/Settings/Sessions/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 - import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 - import { APP_NAME } from "@hey/data/constants"; 5 3 import { 6 4 Card, 7 5 CardHeader, 8 6 GridItemEight, 9 7 GridItemFour, 10 8 GridLayout 11 - } from "@hey/ui"; 9 + } from "@/components/Shared/UI"; 10 + import { useAccountStore } from "@/store/persisted/useAccountStore"; 11 + import { APP_NAME } from "@hey/data/constants"; 12 12 import SettingsSidebar from "../Sidebar"; 13 13 import List from "./List"; 14 14
+1 -1
apps/web/src/components/Settings/Username/LinkUsername.tsx
··· 1 1 import LazySmallSingleAccount from "@/components/Shared/LazySmallSingleAccount"; 2 2 import Loader from "@/components/Shared/Loader"; 3 3 import Slug from "@/components/Shared/Slug"; 4 + import { Button, Card, CardHeader, EmptyState } from "@/components/Shared/UI"; 4 5 import errorToast from "@/helpers/errorToast"; 5 6 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; 6 7 import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; ··· 11 12 useAssignUsernameToAccountMutation, 12 13 useUsernamesQuery 13 14 } from "@hey/indexer"; 14 - import { Button, Card, CardHeader, EmptyState } from "@hey/ui"; 15 15 import { useState } from "react"; 16 16 import toast from "react-hot-toast"; 17 17
+1 -1
apps/web/src/components/Settings/Username/UnlinkUsername.tsx
··· 1 1 import Slug from "@/components/Shared/Slug"; 2 + import { Button, Card, CardHeader } from "@/components/Shared/UI"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; 4 5 import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; ··· 6 7 import { Errors } from "@hey/data/errors"; 7 8 import getAccount from "@hey/helpers/getAccount"; 8 9 import { useUnassignUsernameFromAccountMutation } from "@hey/indexer"; 9 - import { Button, Card, CardHeader } from "@hey/ui"; 10 10 import { useState } from "react"; 11 11 import toast from "react-hot-toast"; 12 12
+5 -1
apps/web/src/components/Settings/Username/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import NotLoggedIn from "@/components/Shared/NotLoggedIn"; 3 + import { 4 + GridItemEight, 5 + GridItemFour, 6 + GridLayout 7 + } from "@/components/Shared/UI"; 3 8 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 9 import { APP_NAME } from "@hey/data/constants"; 5 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 6 10 import SettingsSidebar from "../Sidebar"; 7 11 import LinkUsername from "./LinkUsername"; 8 12 import UnlinkUsername from "./UnlinkUsername";
+1 -1
apps/web/src/components/Shared/Account/Follow.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 12 13 type LoggedInAccountOperationsFragment, 13 14 useFollowMutation 14 15 } from "@hey/indexer"; 15 - import { Button } from "@hey/ui"; 16 16 import { useState } from "react"; 17 17 import toast from "react-hot-toast"; 18 18
+1 -1
apps/web/src/components/Shared/Account/FollowWithRulesCheck.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 1 2 import { getSimplePaymentDetails } from "@/helpers/rules"; 2 3 import { useSuperFollowModalStore } from "@/store/non-persisted/modal/useSuperFollowModalStore"; 3 4 import type { AccountFollowRules, AccountFragment } from "@hey/indexer"; 4 - import { Button } from "@hey/ui"; 5 5 import Follow from "./Follow"; 6 6 7 7 interface FollowWithRulesCheckProps {
+2 -2
apps/web/src/components/Shared/Account/Icons/Verified.tsx
··· 1 + import { Tooltip } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import isVerified from "@/helpers/isVerified"; 2 4 import { CheckBadgeIcon } from "@heroicons/react/24/solid"; 3 - import { Tooltip } from "@hey/ui"; 4 - import cn from "@hey/ui/cn"; 5 5 6 6 interface VerifiedProps { 7 7 address: string;
+1 -1
apps/web/src/components/Shared/Account/SuperFollow.tsx
··· 1 + import { H3, H5 } from "@/components/Shared/UI"; 1 2 import { getSimplePaymentDetails } from "@/helpers/rules"; 2 3 import { useSuperFollowModalStore } from "@/store/non-persisted/modal/useSuperFollowModalStore"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; ··· 7 8 import getAccount from "@hey/helpers/getAccount"; 8 9 import getTokenImage from "@hey/helpers/getTokenImage"; 9 10 import type { AccountFollowRules, AccountFragment } from "@hey/indexer"; 10 - import { H3, H5 } from "@hey/ui"; 11 11 import type { Address } from "viem"; 12 12 import { useBalance } from "wagmi"; 13 13 import FundButton from "../Fund/FundButton";
+1 -1
apps/web/src/components/Shared/Account/Suspend.tsx
··· 1 + import { Toggle } from "@/components/Shared/UI"; 1 2 import ToggleWrapper from "@/components/Staff/Accounts/Overview/Tool/ToggleWrapper"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import { trpc } from "@/helpers/trpc"; 4 5 import { Permission, PermissionId } from "@hey/data/permissions"; 5 - import { Toggle } from "@hey/ui"; 6 6 import { useMutation, useQuery } from "@tanstack/react-query"; 7 7 import toast from "react-hot-toast"; 8 8
+1 -1
apps/web/src/components/Shared/Account/Unfollow.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 12 13 type LoggedInAccountOperationsFragment, 13 14 useUnfollowMutation 14 15 } from "@hey/indexer"; 15 - import { Button } from "@hey/ui"; 16 16 import { useState } from "react"; 17 17 import toast from "react-hot-toast"; 18 18
+1 -1
apps/web/src/components/Shared/AccountPreview.tsx
··· 1 1 import FollowersYouKnowOverview from "@/components/Account/FollowersYouKnowOverview"; 2 + import { Card, Image } from "@/components/Shared/UI"; 2 3 import getAccount from "@hey/helpers/getAccount"; 3 4 import getAvatar from "@hey/helpers/getAvatar"; 4 5 import getMentions from "@hey/helpers/getMentions"; 5 6 import nFormatter from "@hey/helpers/nFormatter"; 6 7 import truncateByWords from "@hey/helpers/truncateByWords"; 7 8 import { type AccountStats, useFullAccountLazyQuery } from "@hey/indexer"; 8 - import { Card, Image } from "@hey/ui"; 9 9 import * as HoverCard from "@radix-ui/react-hover-card"; 10 10 import plur from "plur"; 11 11 import type { ReactNode } from "react";
+1 -1
apps/web/src/components/Shared/Alert/BlockOrUnblockAccount.tsx
··· 1 + import { Alert } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 14 15 useBlockMutation, 15 16 useUnblockMutation 16 17 } from "@hey/indexer"; 17 - import { Alert } from "@hey/ui"; 18 18 import { useState } from "react"; 19 19 import { toast } from "react-hot-toast"; 20 20
+1 -1
apps/web/src/components/Shared/Alert/DeletePost.tsx
··· 1 + import { Alert } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 7 8 import { Errors } from "@hey/data/errors"; 8 9 import { Events } from "@hey/data/events"; 9 10 import { useDeletePostMutation } from "@hey/indexer"; 10 - import { Alert } from "@hey/ui"; 11 11 import { toast } from "react-hot-toast"; 12 12 13 13 const DeletePost = () => {
+1 -1
apps/web/src/components/Shared/Alert/MuteOrUnmuteAccount.tsx
··· 1 + import { Alert } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import { useMuteAlertStore } from "@/store/non-persisted/alert/useMuteAlertStore"; ··· 12 13 useMuteMutation, 13 14 useUnmuteMutation 14 15 } from "@hey/indexer"; 15 - import { Alert } from "@hey/ui"; 16 16 import { useState } from "react"; 17 17 import { toast } from "react-hot-toast"; 18 18
+2 -2
apps/web/src/components/Shared/Attachments.tsx
··· 1 + import { Image, LightBox } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import { ATTACHMENT } from "@hey/data/constants"; 2 4 import imageKit from "@hey/helpers/imageKit"; 3 5 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 4 6 import type { MetadataAsset } from "@hey/types/misc"; 5 - import { Image, LightBox } from "@hey/ui"; 6 - import cn from "@hey/ui/cn"; 7 7 import { getSrc } from "@livepeer/react/external"; 8 8 import { memo, useState } from "react"; 9 9 import Audio from "./Audio";
+2 -2
apps/web/src/components/Shared/Audio/CoverImage.tsx
··· 1 + import { Image, Spinner } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import errorToast from "@/helpers/errorToast"; 2 4 import { uploadFileToIPFS } from "@/helpers/uploadToIPFS"; 3 5 import { PhotoIcon } from "@heroicons/react/24/outline"; 4 6 import { ATTACHMENT } from "@hey/data/constants"; 5 7 import imageKit from "@hey/helpers/imageKit"; 6 8 import sanitizeDStorageUrl from "@hey/helpers/sanitizeDStorageUrl"; 7 - import { Image, Spinner } from "@hey/ui"; 8 - import cn from "@hey/ui/cn"; 9 9 import type { ChangeEvent, Ref } from "react"; 10 10 import { useState } from "react"; 11 11
+1 -1
apps/web/src/components/Shared/Auth/AuthMessage.tsx
··· 1 - import { H4 } from "@hey/ui"; 1 + import { H4 } from "@/components/Shared/UI"; 2 2 3 3 interface AuthMessageProps { 4 4 description: string;
+1 -1
apps/web/src/components/Shared/Auth/Login.tsx
··· 1 1 import SwitchNetwork from "@/components/Shared/SwitchNetwork"; 2 + import { Button, Card, ErrorMessage } from "@/components/Shared/UI"; 2 3 import { CHAIN } from "@/constants"; 3 4 import trackEvent from "@/helpers/analytics"; 4 5 import errorToast from "@/helpers/errorToast"; ··· 12 13 useAuthenticateMutation, 13 14 useChallengeMutation 14 15 } from "@hey/indexer"; 15 - import { Button, Card, ErrorMessage } from "@hey/ui"; 16 16 import { useRouter } from "next/router"; 17 17 import type { Dispatch, SetStateAction } from "react"; 18 18 import { useState } from "react";
+1 -1
apps/web/src/components/Shared/Auth/Signup/ChooseUsername.tsx
··· 1 + import { Button, Form, Input, useZodForm } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import uploadMetadata from "@/helpers/uploadMetadata"; ··· 18 19 useChallengeMutation, 19 20 useCreateAccountWithUsernameMutation 20 21 } from "@hey/indexer"; 21 - import { Button, Form, Input, useZodForm } from "@hey/ui"; 22 22 import { account as accountMetadata } from "@lens-protocol/metadata"; 23 23 import { useState } from "react"; 24 24 import toast from "react-hot-toast";
+1 -1
apps/web/src/components/Shared/Auth/Signup/Minting.tsx
··· 1 + import { H4, Spinner } from "@/components/Shared/UI"; 1 2 import { useAccountQuery } from "@hey/indexer"; 2 - import { H4, Spinner } from "@hey/ui"; 3 3 import { useSignupStore } from "."; 4 4 5 5 const Minting = () => {
+1 -1
apps/web/src/components/Shared/Auth/Signup/Success.tsx
··· 1 + import { H4 } from "@/components/Shared/UI"; 1 2 import { signIn } from "@/store/persisted/useAuthStore"; 2 3 import { APP_NAME, STATIC_IMAGES_URL } from "@hey/data/constants"; 3 4 import { Errors } from "@hey/data/errors"; 4 5 import { useSwitchAccountMutation } from "@hey/indexer"; 5 - import { H4 } from "@hey/ui"; 6 6 import Image from "next/image"; 7 7 import { useRouter } from "next/router"; 8 8 import { useEffect } from "react";
+1 -1
apps/web/src/components/Shared/Auth/SignupCard.tsx
··· 1 + import { Button, Card } from "@/components/Shared/UI"; 1 2 import { useAuthModalStore } from "@/store/non-persisted/modal/useAuthModalStore"; 2 3 import { APP_NAME, STATIC_IMAGES_URL } from "@hey/data/constants"; 3 - import { Button, Card } from "@hey/ui"; 4 4 import Image from "next/image"; 5 5 import { useSignupStore } from "./Signup"; 6 6
+5 -4
apps/web/src/components/Shared/AvatarUpload.tsx
··· 1 1 import ChooseFile from "@/components/Shared/ChooseFile"; 2 + import { Button, Image, Modal } from "@/components/Shared/UI"; 2 3 import uploadCroppedImage, { readFile } from "@/helpers/accountPictureUtils"; 4 + import cn from "@/helpers/cn"; 3 5 import getCroppedImg from "@/helpers/cropUtils"; 4 6 import errorToast from "@/helpers/errorToast"; 5 7 import { AVATAR, DEFAULT_AVATAR } from "@hey/data/constants"; 6 8 import { Errors } from "@hey/data/errors"; 7 9 import imageKit from "@hey/helpers/imageKit"; 8 10 import sanitizeDStorageUrl from "@hey/helpers/sanitizeDStorageUrl"; 9 - import { Button, Image, Modal } from "@hey/ui"; 10 - import cn from "@hey/ui/cn"; 11 11 import type { ChangeEvent } from "react"; 12 12 import { useState } from "react"; 13 13 import Cropper, { type Area } from "react-easy-crop"; ··· 84 84 <Image 85 85 alt="Account picture crop preview" 86 86 className={cn("rounded-lg", isSmall ? "max-w-[200px]" : "max-w-sm")} 87 - onError={({ currentTarget }) => { 88 - currentTarget.src = sanitizeDStorageUrl(src); 87 + onError={(event: React.SyntheticEvent<HTMLImageElement>) => { 88 + const target = event.currentTarget; 89 + target.src = sanitizeDStorageUrl(src); 89 90 }} 90 91 src={uploadedPicture || renderPictureUrl} 91 92 />
+1 -1
apps/web/src/components/Shared/Badges/Alpha.tsx
··· 1 + import { Badge } from "@/components/Shared/UI"; 1 2 import { PuzzlePieceIcon } from "@heroicons/react/24/outline"; 2 - import { Badge } from "@hey/ui"; 3 3 4 4 const Alpha = () => { 5 5 return (
+1 -1
apps/web/src/components/Shared/Badges/Beta.tsx
··· 1 + import { Badge } from "@/components/Shared/UI"; 1 2 import { StarIcon } from "@heroicons/react/24/solid"; 2 - import { Badge } from "@hey/ui"; 3 3 4 4 const Beta = () => { 5 5 return (
+1 -1
apps/web/src/components/Shared/Badges/New.tsx
··· 1 + import { Badge } from "@/components/Shared/UI"; 1 2 import { SparklesIcon } from "@heroicons/react/24/solid"; 2 - import { Badge } from "@hey/ui"; 3 3 4 4 const New = () => { 5 5 return (
+1 -1
apps/web/src/components/Shared/CommentWarning.tsx
··· 1 + import { Card, H6 } from "@/components/Shared/UI"; 1 2 import { ChatBubbleLeftIcon } from "@heroicons/react/24/outline"; 2 - import { Card, H6 } from "@hey/ui"; 3 3 4 4 const CommentWarning = () => { 5 5 return (
+4 -3
apps/web/src/components/Shared/CoverUpload.tsx
··· 1 1 import ChooseFile from "@/components/Shared/ChooseFile"; 2 + import { Button, Image, Modal } from "@/components/Shared/UI"; 2 3 import uploadCroppedImage, { readFile } from "@/helpers/accountPictureUtils"; 3 4 import getCroppedImg from "@/helpers/cropUtils"; 4 5 import errorToast from "@/helpers/errorToast"; ··· 7 8 import { Errors } from "@hey/data/errors"; 8 9 import imageKit from "@hey/helpers/imageKit"; 9 10 import sanitizeDStorageUrl from "@hey/helpers/sanitizeDStorageUrl"; 10 - import { Button, Image, Modal } from "@hey/ui"; 11 11 import type { ChangeEvent } from "react"; 12 12 import { useState } from "react"; 13 13 import Cropper, { type Area } from "react-easy-crop"; ··· 84 84 <Image 85 85 alt="Cover picture crop preview" 86 86 className="h-[175px] w-[675px] rounded-lg object-cover" 87 - onError={({ currentTarget }) => { 88 - currentTarget.src = sanitizeDStorageUrl(src); 87 + onError={(event: React.SyntheticEvent<HTMLImageElement>) => { 88 + const target = event.currentTarget; 89 + target.src = sanitizeDStorageUrl(src); 89 90 }} 90 91 src={uploadedPicture || renderPictureUrl} 91 92 />
+2 -2
apps/web/src/components/Shared/Embed/Wrapper.tsx
··· 1 + import { Card } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 2 - import { Card } from "@hey/ui"; 3 - import cn from "@hey/ui/cn"; 4 4 import type { ReactNode } from "react"; 5 5 6 6 interface WrapperProps {
+2 -2
apps/web/src/components/Shared/EmojiPicker/List.tsx
··· 1 + import { ErrorMessage, Input } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import useEmojis from "@/hooks/prosekit/useEmojis"; 2 4 import { MagnifyingGlassIcon, XMarkIcon } from "@heroicons/react/24/outline"; 3 5 import { Errors } from "@hey/data/errors"; 4 6 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 5 7 import type { Emoji } from "@hey/types/misc"; 6 - import { ErrorMessage, Input } from "@hey/ui"; 7 - import cn from "@hey/ui/cn"; 8 8 import type { ChangeEvent } from "react"; 9 9 import { useEffect, useRef, useState } from "react"; 10 10 import Loader from "../Loader";
+1 -1
apps/web/src/components/Shared/EmojiPicker/index.tsx
··· 1 + import { Tooltip } from "@/components/Shared/UI"; 1 2 import { FaceSmileIcon } from "@heroicons/react/24/outline"; 2 3 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 3 - import { Tooltip } from "@hey/ui"; 4 4 import { useClickAway } from "@uidotdev/usehooks"; 5 5 import type { Dispatch, MutableRefObject, SetStateAction } from "react"; 6 6 import List from "./List";
+1 -1
apps/web/src/components/Shared/FallbackAccountName.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import getAccount from "@hey/helpers/getAccount"; 2 3 import type { AccountFragment } from "@hey/indexer"; 3 - import cn from "@hey/ui/cn"; 4 4 import Link from "next/link"; 5 5 import type { ReactNode } from "react"; 6 6 import Slug from "./Slug";
+1 -1
apps/web/src/components/Shared/FeedFocusType.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { MainContentFocus } from "@hey/indexer"; 2 - import cn from "@hey/ui/cn"; 3 3 import type { Dispatch, SetStateAction } from "react"; 4 4 5 5 interface FeedLinkProps {
+1 -1
apps/web/src/components/Shared/Fund/FundAccount/Fund.tsx
··· 1 + import { Button, Card, Input, Spinner } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import usePollTransactionStatus from "@/hooks/usePollTransactionStatus"; ··· 11 12 } from "@hey/data/constants"; 12 13 import { Events } from "@hey/data/events"; 13 14 import { useDepositMutation } from "@hey/indexer"; 14 - import { Button, Card, Input, Spinner } from "@hey/ui"; 15 15 import { type ChangeEvent, type RefObject, useRef, useState } from "react"; 16 16 import toast from "react-hot-toast"; 17 17 import { formatUnits } from "viem";
+1 -1
apps/web/src/components/Shared/Fund/FundAccount/index.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 1 2 import { useAccountStore } from "@/store/persisted/useAccountStore"; 2 3 import { 3 4 DEFAULT_COLLECT_TOKEN, ··· 6 7 STATIC_IMAGES_URL, 7 8 WRAPPED_NATIVE_TOKEN_SYMBOL 8 9 } from "@hey/data/constants"; 9 - import { Image } from "@hey/ui"; 10 10 import { formatUnits } from "viem"; 11 11 import { useBalance } from "wagmi"; 12 12 import Loader from "../../Loader";
+1 -1
apps/web/src/components/Shared/Fund/FundButton.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 1 2 import { useFundModalStore } from "@/store/non-persisted/modal/useFundModalStore"; 2 - import { Button } from "@hey/ui"; 3 3 4 4 interface FundButtonProps { 5 5 label?: string;
+1 -1
apps/web/src/components/Shared/GlobalBanners/Suspended.tsx
··· 1 + import { GridItemEight, GridLayout } from "@/components/Shared/UI"; 1 2 import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; 2 3 import { NoSymbolIcon } from "@heroicons/react/24/outline"; 3 4 import { APP_NAME } from "@hey/data/constants"; 4 - import { GridItemEight, GridLayout } from "@hey/ui"; 5 5 import Link from "next/link"; 6 6 7 7 const Suspended = () => {
+1 -1
apps/web/src/components/Shared/GlobalModals.tsx
··· 1 1 import NewPublication from "@/components/Composer/NewPublication"; 2 2 import ReportPost from "@/components/Shared/Modal/ReportPost"; 3 + import { Modal } from "@/components/Shared/UI"; 3 4 import { useAuthModalStore } from "@/store/non-persisted/modal/useAuthModalStore"; 4 5 import { useFundModalStore } from "@/store/non-persisted/modal/useFundModalStore"; 5 6 import { useNewPostModalStore } from "@/store/non-persisted/modal/useNewPostModalStore"; ··· 8 9 import { useSuperFollowModalStore } from "@/store/non-persisted/modal/useSuperFollowModalStore"; 9 10 import { useSuperJoinModalStore } from "@/store/non-persisted/modal/useSuperJoinModalStore"; 10 11 import { useSwitchAccountModalStore } from "@/store/non-persisted/modal/useSwitchAccountModalStore"; 11 - import { Modal } from "@hey/ui"; 12 12 import SuperFollow from "./Account/SuperFollow"; 13 13 import Auth from "./Auth"; 14 14 import { useSignupStore } from "./Auth/Signup";
+1 -1
apps/web/src/components/Shared/Group/Join.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 6 7 import { Errors } from "@hey/data/errors"; 7 8 import { Events } from "@hey/data/events"; 8 9 import { type GroupFragment, useJoinGroupMutation } from "@hey/indexer"; 9 - import { Button } from "@hey/ui"; 10 10 import { useState } from "react"; 11 11 import toast from "react-hot-toast"; 12 12
+1 -1
apps/web/src/components/Shared/Group/JoinWithRulesCheck.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 1 2 import { 2 3 getMembershipApprovalDetails, 3 4 getSimplePaymentDetails 4 5 } from "@/helpers/rules"; 5 6 import { useSuperJoinModalStore } from "@/store/non-persisted/modal/useSuperJoinModalStore"; 6 7 import type { GroupFragment, GroupRules } from "@hey/indexer"; 7 - import { Button } from "@hey/ui"; 8 8 import Join from "./Join"; 9 9 10 10 interface JoinWithRulesCheckProps {
+1 -1
apps/web/src/components/Shared/Group/Leave.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import useTransactionLifecycle from "@/hooks/useTransactionLifecycle"; ··· 10 11 type LoggedInGroupOperationsFragment, 11 12 useLeaveGroupMutation 12 13 } from "@hey/indexer"; 13 - import { Button } from "@hey/ui"; 14 14 import { useState } from "react"; 15 15 import toast from "react-hot-toast"; 16 16
+1 -1
apps/web/src/components/Shared/Group/SuperJoin.tsx
··· 1 + import { H3, H5 } from "@/components/Shared/UI"; 1 2 import { 2 3 getMembershipApprovalDetails, 3 4 getSimplePaymentDetails ··· 9 10 import { tokens } from "@hey/data/tokens"; 10 11 import getTokenImage from "@hey/helpers/getTokenImage"; 11 12 import type { Group, GroupRules } from "@hey/indexer"; 12 - import { H3, H5 } from "@hey/ui"; 13 13 import type { Address } from "viem"; 14 14 import { useBalance } from "wagmi"; 15 15 import FundButton from "../Fund/FundButton";
+2 -2
apps/web/src/components/Shared/Loader.tsx
··· 1 - import { Spinner } from "@hey/ui"; 2 - import cn from "@hey/ui/cn"; 1 + import { Spinner } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 3 3 4 4 interface LoaderProps { 5 5 className?: string;
+2 -2
apps/web/src/components/Shared/LoginButton.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import { useAuthModalStore } from "@/store/non-persisted/modal/useAuthModalStore"; 2 4 import { STATIC_IMAGES_URL } from "@hey/data/constants"; 3 - import { Button } from "@hey/ui"; 4 - import cn from "@hey/ui/cn"; 5 5 import type { MouseEvent } from "react"; 6 6 7 7 interface LoginButtonProps {
+2 -2
apps/web/src/components/Shared/MetaDetails.tsx
··· 1 - import { H6 } from "@hey/ui"; 2 - import cn from "@hey/ui/cn"; 1 + import { H6 } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 3 3 import type { ReactNode } from "react"; 4 4 import { toast } from "react-hot-toast"; 5 5
+1 -1
apps/web/src/components/Shared/Modal/Collectors.tsx
··· 1 1 import AccountListShimmer from "@/components/Shared/Shimmer/AccountListShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { ShoppingBagIcon } from "@heroicons/react/24/outline"; 5 6 import { 6 7 type WhoExecutedActionOnPostRequest, 7 8 useWhoExecutedActionOnPostQuery 8 9 } from "@hey/indexer"; 9 - import { EmptyState, ErrorMessage } from "@hey/ui"; 10 10 import { Virtuoso } from "react-virtuoso"; 11 11 12 12 interface CollectorsProps {
+1 -1
apps/web/src/components/Shared/Modal/Followers.tsx
··· 1 1 import AccountListShimmer from "@/components/Shared/Shimmer/AccountListShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { UsersIcon } from "@heroicons/react/24/outline"; 5 6 import type { FollowersRequest } from "@hey/indexer"; 6 7 import { PageSize, useFollowersQuery } from "@hey/indexer"; 7 - import { EmptyState, ErrorMessage } from "@hey/ui"; 8 8 import { Virtuoso } from "react-virtuoso"; 9 9 10 10 interface FollowersProps {
+1 -1
apps/web/src/components/Shared/Modal/FollowersYouKnow.tsx
··· 1 1 import AccountListShimmer from "@/components/Shared/Shimmer/AccountListShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { UsersIcon } from "@heroicons/react/24/outline"; 5 6 import { 6 7 type FollowersYouKnowRequest, 7 8 useFollowersYouKnowQuery 8 9 } from "@hey/indexer"; 9 - import { EmptyState, ErrorMessage } from "@hey/ui"; 10 10 import { Virtuoso } from "react-virtuoso"; 11 11 12 12 interface FollowersYouKnowProps {
+1 -1
apps/web/src/components/Shared/Modal/Following.tsx
··· 1 1 import AccountListShimmer from "@/components/Shared/Shimmer/AccountListShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { UsersIcon } from "@heroicons/react/24/outline"; 5 6 import type { FollowingRequest } from "@hey/indexer"; 6 7 import { PageSize, useFollowingQuery } from "@hey/indexer"; 7 - import { EmptyState, ErrorMessage } from "@hey/ui"; 8 8 import { Virtuoso } from "react-virtuoso"; 9 9 10 10 interface FollowingProps {
+1 -1
apps/web/src/components/Shared/Modal/Likes.tsx
··· 1 1 import AccountListShimmer from "@/components/Shared/Shimmer/AccountListShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { HeartIcon } from "@heroicons/react/24/outline"; 5 6 import { ··· 7 8 type PostReactionsRequest, 8 9 usePostReactionsQuery 9 10 } from "@hey/indexer"; 10 - import { EmptyState, ErrorMessage } from "@hey/ui"; 11 11 import { Virtuoso } from "react-virtuoso"; 12 12 13 13 interface LikesProps {
+1 -1
apps/web/src/components/Shared/Modal/Members/index.tsx
··· 1 1 import AccountListShimmer from "@/components/Shared/Shimmer/AccountListShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { UsersIcon } from "@heroicons/react/24/outline"; 5 6 import { ··· 8 9 PageSize, 9 10 useGroupMembersQuery 10 11 } from "@hey/indexer"; 11 - import { EmptyState, ErrorMessage } from "@hey/ui"; 12 12 import { Virtuoso } from "react-virtuoso"; 13 13 14 14 interface MembersProps {
+1 -1
apps/web/src/components/Shared/Modal/ReportAccount/Reason.tsx
··· 1 + import { Select } from "@/components/Shared/UI"; 1 2 import convertToTitleCase from "@hey/helpers/convertToTitleCase"; 2 3 import { AccountReportReason } from "@hey/indexer"; 3 - import { Select } from "@hey/ui"; 4 4 import type { Dispatch, SetStateAction } from "react"; 5 5 6 6 interface ReasonProps {
+8 -8
apps/web/src/components/Shared/Modal/ReportAccount/index.tsx
··· 1 1 import SingleAccount from "@/components/Shared/SingleAccount"; 2 - import errorToast from "@/helpers/errorToast"; 3 - import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; 4 - import { CheckCircleIcon } from "@heroicons/react/24/solid"; 5 - import { Errors } from "@hey/data/errors"; 6 - import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 7 - import type { AccountFragment, AccountReportReason } from "@hey/indexer"; 8 - import { useReportAccountMutation } from "@hey/indexer"; 9 2 import { 10 3 Button, 11 4 Card, ··· 14 7 Form, 15 8 TextArea, 16 9 useZodForm 17 - } from "@hey/ui"; 10 + } from "@/components/Shared/UI"; 11 + import errorToast from "@/helpers/errorToast"; 12 + import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; 13 + import { CheckCircleIcon } from "@heroicons/react/24/solid"; 14 + import { Errors } from "@hey/data/errors"; 15 + import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 16 + import type { AccountFragment, AccountReportReason } from "@hey/indexer"; 17 + import { useReportAccountMutation } from "@hey/indexer"; 18 18 import { useState } from "react"; 19 19 import toast from "react-hot-toast"; 20 20 import { z } from "zod";
+1 -1
apps/web/src/components/Shared/Modal/ReportPost/Reason.tsx
··· 1 + import { Select } from "@/components/Shared/UI"; 1 2 import convertToTitleCase from "@hey/helpers/convertToTitleCase"; 2 3 import { PostReportReason } from "@hey/indexer"; 3 - import { Select } from "@hey/ui"; 4 4 import type { Dispatch, SetStateAction } from "react"; 5 5 6 6 interface ReasonProps {
+7 -7
apps/web/src/components/Shared/Modal/ReportPost/index.tsx
··· 1 - import errorToast from "@/helpers/errorToast"; 2 - import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; 3 - import { CheckCircleIcon } from "@heroicons/react/24/solid"; 4 - import { Errors } from "@hey/data/errors"; 5 - import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 6 - import { type PostReportReason, useReportPostMutation } from "@hey/indexer"; 7 1 import { 8 2 Button, 9 3 EmptyState, ··· 11 5 Form, 12 6 TextArea, 13 7 useZodForm 14 - } from "@hey/ui"; 8 + } from "@/components/Shared/UI"; 9 + import errorToast from "@/helpers/errorToast"; 10 + import { useAccountStatus } from "@/store/non-persisted/useAccountStatus"; 11 + import { CheckCircleIcon } from "@heroicons/react/24/solid"; 12 + import { Errors } from "@hey/data/errors"; 13 + import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 14 + import { type PostReportReason, useReportPostMutation } from "@hey/indexer"; 15 15 import { useState } from "react"; 16 16 import toast from "react-hot-toast"; 17 17 import { z } from "zod";
+1 -1
apps/web/src/components/Shared/Modal/Reposts.tsx
··· 1 1 import AccountListShimmer from "@/components/Shared/Shimmer/AccountListShimmer"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { EmptyState, ErrorMessage } from "@/components/Shared/UI"; 3 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 5 import { ArrowsRightLeftIcon } from "@heroicons/react/24/outline"; 5 6 import { ··· 8 9 type WhoReferencedPostRequest, 9 10 useWhoReferencedPostQuery 10 11 } from "@hey/indexer"; 11 - import { EmptyState, ErrorMessage } from "@hey/ui"; 12 12 import { Virtuoso } from "react-virtuoso"; 13 13 14 14 interface RepostsProps {
+2 -2
apps/web/src/components/Shared/Navbar/BottomNavigation.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import { useAccountStore } from "@/store/persisted/useAccountStore"; 2 4 import { 3 5 BellIcon, ··· 11 13 } from "@heroicons/react/24/solid"; 12 14 import getAccount from "@hey/helpers/getAccount"; 13 15 import getAvatar from "@hey/helpers/getAvatar"; 14 - import { Image } from "@hey/ui"; 15 - import cn from "@hey/ui/cn"; 16 16 import Link from "next/link"; 17 17 import { useRouter } from "next/router"; 18 18
+2 -2
apps/web/src/components/Shared/Navbar/MobileDrawerMenu.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import hasAccess from "@/helpers/hasAccess"; 2 4 import { useMobileDrawerModalStore } from "@/store/non-persisted/modal/useMobileDrawerModalStore"; 3 5 import { useAccountStore } from "@/store/persisted/useAccountStore"; ··· 5 7 import { Features } from "@hey/data/features"; 6 8 import getAccount from "@hey/helpers/getAccount"; 7 9 import getAvatar from "@hey/helpers/getAvatar"; 8 - import { Image } from "@hey/ui"; 9 - import cn from "@hey/ui/cn"; 10 10 import Link from "next/link"; 11 11 import Slug from "../Slug"; 12 12 import Bookmarks from "./NavItems/Bookmarks";
+2 -2
apps/web/src/components/Shared/Navbar/MoreNavItems.tsx
··· 1 + import { H6 } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import { useAccountStore } from "@/store/persisted/useAccountStore"; 2 4 import { Menu, MenuButton, MenuItem, MenuItems } from "@headlessui/react"; 3 - import { H6 } from "@hey/ui"; 4 - import cn from "@hey/ui/cn"; 5 5 import MenuTransition from "../MenuTransition"; 6 6 import Bookmarks from "./NavItems/Bookmarks"; 7 7 import Groups from "./NavItems/Groups";
+1 -1
apps/web/src/components/Shared/Navbar/NavItems/Bookmarks.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { BookmarkIcon } from "@heroicons/react/24/outline"; 2 - import cn from "@hey/ui/cn"; 3 3 import Link from "next/link"; 4 4 5 5 interface BookmarksProps {
+1 -1
apps/web/src/components/Shared/Navbar/NavItems/Groups.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { UserGroupIcon } from "@heroicons/react/24/outline"; 2 - import cn from "@hey/ui/cn"; 3 3 import Link from "next/link"; 4 4 5 5 interface GroupsProps {
+1 -1
apps/web/src/components/Shared/Navbar/NavItems/Logout.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import errorToast from "@/helpers/errorToast"; 2 3 import getCurrentSession from "@/helpers/getCurrentSession"; 3 4 import { signOut } from "@/store/persisted/useAuthStore"; 4 5 import { usePreferencesStore } from "@/store/persisted/usePreferencesStore"; 5 6 import { ArrowRightStartOnRectangleIcon } from "@heroicons/react/24/outline"; 6 7 import { useRevokeAuthenticationMutation } from "@hey/indexer"; 7 - import cn from "@hey/ui/cn"; 8 8 import { useRouter } from "next/router"; 9 9 import { useState } from "react"; 10 10 import toast from "react-hot-toast";
+1 -1
apps/web/src/components/Shared/Navbar/NavItems/Settings.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { Cog6ToothIcon } from "@heroicons/react/24/outline"; 2 - import cn from "@hey/ui/cn"; 3 3 4 4 interface SettingsProps { 5 5 className?: string;
+1 -1
apps/web/src/components/Shared/Navbar/NavItems/StaffTools.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { ShieldCheckIcon } from "@heroicons/react/24/outline"; 2 - import cn from "@hey/ui/cn"; 3 3 4 4 interface StaffToolsProps { 5 5 className?: string;
+1 -1
apps/web/src/components/Shared/Navbar/NavItems/Support.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { HandRaisedIcon } from "@heroicons/react/24/outline"; 2 - import cn from "@hey/ui/cn"; 3 3 import Link from "next/link"; 4 4 5 5 interface SupportProps {
+1 -1
apps/web/src/components/Shared/Navbar/NavItems/SwitchAccount.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { useSwitchAccountModalStore } from "@/store/non-persisted/modal/useSwitchAccountModalStore"; 2 3 import { ArrowsRightLeftIcon } from "@heroicons/react/24/outline"; 3 - import cn from "@hey/ui/cn"; 4 4 5 5 interface SwitchAccountProps { 6 6 className?: string;
+1 -1
apps/web/src/components/Shared/Navbar/NavItems/ThemeSwitch.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { MoonIcon, SunIcon } from "@heroicons/react/24/outline"; 2 - import cn from "@hey/ui/cn"; 3 3 import { useTheme } from "next-themes"; 4 4 5 5 interface ThemeSwitchProps {
+1 -1
apps/web/src/components/Shared/Navbar/NavItems/YourAccount.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { UserIcon } from "@heroicons/react/24/outline"; 2 - import cn from "@hey/ui/cn"; 3 3 4 4 interface YourAccountProps { 5 5 className?: string;
+1 -1
apps/web/src/components/Shared/Navbar/Search/RecentAccounts.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { H6 } from "@/components/Shared/UI"; 3 4 import { useSearchStore } from "@/store/persisted/useSearchStore"; 4 5 import { XMarkIcon } from "@heroicons/react/24/outline"; 5 6 import getAccount from "@hey/helpers/getAccount"; 6 7 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 7 8 import { useAccountsBulkQuery } from "@hey/indexer"; 8 - import { H6 } from "@hey/ui"; 9 9 import { useRouter } from "next/router"; 10 10 11 11 interface RecentAccountsProps {
+2 -2
apps/web/src/components/Shared/Navbar/Search/index.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { Card, Input } from "@/components/Shared/UI"; 4 + import cn from "@/helpers/cn"; 3 5 import { useSearchStore } from "@/store/persisted/useSearchStore"; 4 6 import { MagnifyingGlassIcon, XMarkIcon } from "@heroicons/react/24/outline"; 5 7 import getAccount from "@hey/helpers/getAccount"; ··· 9 11 PageSize, 10 12 useAccountsLazyQuery 11 13 } from "@hey/indexer"; 12 - import { Card, Input } from "@hey/ui"; 13 - import cn from "@hey/ui/cn"; 14 14 import { useClickAway, useDebounce } from "@uidotdev/usehooks"; 15 15 import { useRouter } from "next/router"; 16 16 import type { ChangeEvent, MutableRefObject } from "react";
+2 -2
apps/web/src/components/Shared/Navbar/SignedAccount.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import hasAccess from "@/helpers/hasAccess"; 2 4 import { useMobileDrawerModalStore } from "@/store/non-persisted/modal/useMobileDrawerModalStore"; 3 5 import { useAccountStore } from "@/store/persisted/useAccountStore"; ··· 5 7 import { Features } from "@hey/data/features"; 6 8 import getAccount from "@hey/helpers/getAccount"; 7 9 import getAvatar from "@hey/helpers/getAvatar"; 8 - import { Image } from "@hey/ui"; 9 - import cn from "@hey/ui/cn"; 10 10 import MenuTransition from "../MenuTransition"; 11 11 import Slug from "../Slug"; 12 12 import { NextLink } from "./MenuItems";
+1 -1
apps/web/src/components/Shared/Navbar/SignupButton.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 1 2 import { useAuthModalStore } from "@/store/non-persisted/modal/useAuthModalStore"; 2 - import { Button } from "@hey/ui"; 3 3 import { useSignupStore } from "../Auth/Signup"; 4 4 5 5 const SignupButton = () => {
+2 -2
apps/web/src/components/Shared/Navbar/index.tsx
··· 1 1 import NotificationIcon from "@/components/Notification/NotificationIcon"; 2 + import { H6 } from "@/components/Shared/UI"; 3 + import cn from "@/helpers/cn"; 2 4 import { useAccountStore } from "@/store/persisted/useAccountStore"; 3 5 import { usePreferencesStore } from "@/store/persisted/usePreferencesStore"; 4 6 import { MagnifyingGlassIcon, XMarkIcon } from "@heroicons/react/24/outline"; 5 7 import { STATIC_IMAGES_URL } from "@hey/data/constants"; 6 - import { H6 } from "@hey/ui"; 7 - import cn from "@hey/ui/cn"; 8 8 import Image from "next/image"; 9 9 import Link from "next/link"; 10 10 import { useRouter } from "next/router";
+1 -1
apps/web/src/components/Shared/NotLoggedIn.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import LoginButton from "@/components/Shared/LoginButton"; 3 + import { H2 } from "@/components/Shared/UI"; 3 4 import { APP_NAME, STATIC_IMAGES_URL } from "@hey/data/constants"; 4 - import { H2 } from "@hey/ui"; 5 5 import Image from "next/image"; 6 6 7 7 const NotLoggedIn = () => {
+1 -1
apps/web/src/components/Shared/Oembed/Embed.tsx
··· 1 + import { Card, Image } from "@/components/Shared/UI"; 1 2 import type { OembedRouterOutput } from "@hey/api/src/routers/oembed"; 2 3 import { ATTACHMENT } from "@hey/data/constants"; 3 4 import imageKit from "@hey/helpers/imageKit"; 4 5 import stopEventPropagation from "@hey/helpers/stopEventPropagation"; 5 - import { Card, Image } from "@hey/ui"; 6 6 import Link from "next/link"; 7 7 8 8 interface EmbedProps {
+1 -1
apps/web/src/components/Shared/Oembed/EmptyOembed.tsx
··· 1 + import { Card, Image } from "@/components/Shared/UI"; 1 2 import { LinkIcon } from "@heroicons/react/24/outline"; 2 3 import { PLACEHOLDER_IMAGE } from "@hey/data/constants"; 3 - import { Card, Image } from "@hey/ui"; 4 4 5 5 interface EmptyOembedProps { 6 6 url: string;
+1 -1
apps/web/src/components/Shared/SearchAccounts.tsx
··· 1 + import { Card, Input } from "@/components/Shared/UI"; 1 2 import { 2 3 type AccountFragment, 3 4 type AccountsRequest, 4 5 PageSize, 5 6 useAccountsLazyQuery 6 7 } from "@hey/indexer"; 7 - import { Card, Input } from "@hey/ui"; 8 8 import type { ChangeEvent } from "react"; 9 9 import Loader from "./Loader"; 10 10 import SmallSingleAccount from "./SmallSingleAccount";
+1 -1
apps/web/src/components/Shared/Settings/WrongWallet.tsx
··· 1 - import { Card, H5 } from "@hey/ui"; 1 + import { Card, H5 } from "@/components/Shared/UI"; 2 2 import WalletSelector from "../Auth/WalletSelector"; 3 3 4 4 const WrongWallet = () => {
+1 -1
apps/web/src/components/Shared/Shimmer/PostListShimmer.tsx
··· 1 + import { Card } from "@/components/Shared/UI"; 1 2 import { ArrowLeftIcon } from "@heroicons/react/24/outline"; 2 - import { Card } from "@hey/ui"; 3 3 import PostShimmer from "./PostShimmer"; 4 4 5 5 const PostListShimmer = () => {
+1 -1
apps/web/src/components/Shared/Shimmer/PostsShimmer.tsx
··· 1 - import { Card } from "@hey/ui"; 1 + import { Card } from "@/components/Shared/UI"; 2 2 import PostShimmer from "./PostShimmer"; 3 3 4 4 const PostsShimmer = () => {
+1 -1
apps/web/src/components/Shared/Shimmer/SingleAccountShimmer.tsx
··· 1 - import cn from "@hey/ui/cn"; 1 + import cn from "@/helpers/cn"; 2 2 3 3 interface SingleAccountShimmerProps { 4 4 className?: string;
+1 -1
apps/web/src/components/Shared/Shimmer/SingleAccountsShimmer.tsx
··· 1 - import { Card } from "@hey/ui"; 1 + import { Card } from "@/components/Shared/UI"; 2 2 import SingleAccountShimmer from "./SingleAccountShimmer"; 3 3 4 4 interface SingleAccountsShimmerProps {
+1 -1
apps/web/src/components/Shared/Shimmer/SingleGroupShimmer.tsx
··· 1 - import cn from "@hey/ui/cn"; 1 + import cn from "@/helpers/cn"; 2 2 3 3 interface SingleGroupShimmerProps { 4 4 className?: string;
+1 -1
apps/web/src/components/Shared/Shimmer/SmallSingleAccountShimmer.tsx
··· 1 - import cn from "@hey/ui/cn"; 1 + import cn from "@/helpers/cn"; 2 2 3 3 interface SmallSingleAccountShimmerProps { 4 4 hideSlug?: boolean;
+2 -2
apps/web/src/components/Shared/Sidebar/SidebarMenu.tsx
··· 1 + import { Card } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import { Menu, MenuButton, MenuItem, MenuItems } from "@headlessui/react"; 2 - import { Card } from "@hey/ui"; 3 - import cn from "@hey/ui/cn"; 4 4 import { useRouter } from "next/router"; 5 5 import { useState } from "react"; 6 6 import type { SidebarProps } from ".";
+1 -1
apps/web/src/components/Shared/Sidebar/SidebarTabs.tsx
··· 1 - import cn from "@hey/ui/cn"; 1 + import cn from "@/helpers/cn"; 2 2 import Link from "next/link"; 3 3 import { useRouter } from "next/router"; 4 4 import type { ReactNode } from "react";
+2 -2
apps/web/src/components/Shared/SingleAccount.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import getAccount from "@hey/helpers/getAccount"; 2 4 import getAvatar from "@hey/helpers/getAvatar"; 3 5 import getMentions from "@hey/helpers/getMentions"; 4 6 import type { AccountFragment } from "@hey/indexer"; 5 - import { Image } from "@hey/ui"; 6 - import cn from "@hey/ui/cn"; 7 7 import Link from "next/link"; 8 8 import { memo } from "react"; 9 9 import FollowUnfollowButton from "./Account/FollowUnfollowButton";
+2 -2
apps/web/src/components/Shared/SingleGroup.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import getAvatar from "@hey/helpers/getAvatar"; 2 4 import getMentions from "@hey/helpers/getMentions"; 3 5 import type { GroupFragment } from "@hey/indexer"; 4 - import { Image } from "@hey/ui"; 5 - import cn from "@hey/ui/cn"; 6 6 import Link from "next/link"; 7 7 import { memo } from "react"; 8 8 import JoinLeaveButton from "./Group/JoinLeaveButton";
+1 -1
apps/web/src/components/Shared/Slug.tsx
··· 1 - import cn from "@hey/ui/cn"; 1 + import cn from "@/helpers/cn"; 2 2 3 3 interface SlugProps { 4 4 className?: string;
+2 -2
apps/web/src/components/Shared/SmallSingleAccount.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 2 + import cn from "@/helpers/cn"; 1 3 import formatRelativeOrAbsolute from "@hey/helpers/datetime/formatRelativeOrAbsolute"; 2 4 import getAccount from "@hey/helpers/getAccount"; 3 5 import getAvatar from "@hey/helpers/getAvatar"; 4 6 import type { AccountFragment } from "@hey/indexer"; 5 - import { Image } from "@hey/ui"; 6 - import cn from "@hey/ui/cn"; 7 7 import Link from "next/link"; 8 8 import { memo } from "react"; 9 9 import Verified from "./Account/Icons/Verified";
+2 -2
apps/web/src/components/Shared/SwitchAccounts.tsx
··· 1 + import { ErrorMessage, Image, Spinner } from "@/components/Shared/UI"; 1 2 import trackEvent from "@/helpers/analytics"; 3 + import cn from "@/helpers/cn"; 2 4 import errorToast from "@/helpers/errorToast"; 3 5 import { useAccountStore } from "@/store/persisted/useAccountStore"; 4 6 import { signIn, signOut } from "@/store/persisted/useAuthStore"; ··· 11 13 useAccountsAvailableQuery, 12 14 useSwitchAccountMutation 13 15 } from "@hey/indexer"; 14 - import { ErrorMessage, Image, Spinner } from "@hey/ui"; 15 - import cn from "@hey/ui/cn"; 16 16 import { useRouter } from "next/router"; 17 17 import { useState } from "react"; 18 18 import toast from "react-hot-toast";
+1 -1
apps/web/src/components/Shared/SwitchNetwork.tsx
··· 1 + import { Button } from "@/components/Shared/UI"; 1 2 import { ArrowsRightLeftIcon } from "@heroicons/react/24/outline"; 2 - import { Button } from "@hey/ui"; 3 3 import { useSwitchChain } from "wagmi"; 4 4 5 5 interface SwitchNetworkProps {
+1 -1
apps/web/src/components/Shared/ToggleWithHelper.tsx
··· 1 - import { H6, Toggle } from "@hey/ui"; 1 + import { H6, Toggle } from "@/components/Shared/UI"; 2 2 import type { ReactNode } from "react"; 3 3 4 4 interface ToggleWithHelperProps {
+32
apps/web/src/components/Shared/UI/index.ts
··· 1 + export { Alert } from "./Alert"; 2 + export { Badge } from "./Badge"; 3 + export { Button } from "./Button"; 4 + export { Card } from "./Card"; 5 + export { default as CardHeader } from "./CardHeader"; 6 + export { Checkbox } from "./Checkbox"; 7 + export { EmptyState } from "./EmptyState"; 8 + export { ErrorMessage } from "./ErrorMessage"; 9 + export { FieldError, Form, useZodForm } from "./Form"; 10 + export { 11 + GridItemEight, 12 + GridItemFour, 13 + GridItemTwelve, 14 + GridLayout 15 + } from "./GridLayout"; 16 + export { default as HelpTooltip } from "./HelpTooltip"; 17 + export { Image } from "./Image"; 18 + export { Input } from "./Input"; 19 + export { LightBox } from "./LightBox"; 20 + export { Modal } from "./Modal"; 21 + export { default as NumberedStat } from "./NumberedStat"; 22 + export { PageLoading } from "./PageLoading"; 23 + export { RangeSlider } from "./RangeSlider"; 24 + export { Select } from "./Select"; 25 + export { Spinner } from "./Spinner"; 26 + export { default as StackedAvatars } from "./StackedAvatars"; 27 + export { default as TabButton } from "./TabButton"; 28 + export { TextArea } from "./TextArea"; 29 + export { Toggle } from "./Toggle"; 30 + export { Tooltip } from "./Tooltip"; 31 + export { H2, H3, H4, H5, H6 } from "./Typography"; 32 + export { WarningMessage } from "./WarningMessage";
+1 -1
apps/web/src/components/Shared/Video.tsx
··· 1 + import { Spinner } from "@/components/Shared/UI"; 1 2 import { LockClosedIcon, NoSymbolIcon } from "@heroicons/react/24/outline"; 2 3 import { 3 4 ArrowsPointingInIcon, ··· 7 8 SpeakerWaveIcon, 8 9 SpeakerXMarkIcon 9 10 } from "@heroicons/react/24/solid"; 10 - import { Spinner } from "@hey/ui"; 11 11 import type { Src } from "@livepeer/react"; 12 12 import * as Player from "@livepeer/react/player"; 13 13 import { type ReactNode, memo } from "react";
+1 -1
apps/web/src/components/Shared/WalletAccount.tsx
··· 1 + import { Image } from "@/components/Shared/UI"; 1 2 import { ArrowTopRightOnSquareIcon } from "@heroicons/react/24/outline"; 2 3 import { BLOCK_EXPLORER_URL, DEFAULT_AVATAR } from "@hey/data/constants"; 3 4 import formatAddress from "@hey/helpers/formatAddress"; 4 - import { Image } from "@hey/ui"; 5 5 import Link from "next/link"; 6 6 import type { Address } from "viem"; 7 7 import { useEnsName } from "wagmi";
+8 -2
apps/web/src/components/Staff/Accounts/List.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 2 import SingleAccount from "@/components/Shared/SingleAccount"; 3 + import { 4 + Card, 5 + EmptyState, 6 + ErrorMessage, 7 + Input, 8 + Select 9 + } from "@/components/Shared/UI"; 10 + import cn from "@/helpers/cn"; 3 11 import { ArrowPathIcon, UsersIcon } from "@heroicons/react/24/outline"; 4 12 import { 5 13 AccountsOrderBy, ··· 8 16 useAccountsLazyQuery, 9 17 useAccountsQuery 10 18 } from "@hey/indexer"; 11 - import { Card, EmptyState, ErrorMessage, Input, Select } from "@hey/ui"; 12 - import cn from "@hey/ui/cn"; 13 19 import { useDebounce } from "@uidotdev/usehooks"; 14 20 import { useEffect, useState } from "react"; 15 21 import { Virtuoso } from "react-virtuoso";
+1 -1
apps/web/src/components/Staff/Accounts/Overview/Tool/AccountOverview.tsx
··· 1 1 import MetaDetails from "@/components/Shared/MetaDetails"; 2 + import { H5 } from "@/components/Shared/UI"; 2 3 import { BanknotesIcon, HashtagIcon } from "@heroicons/react/24/outline"; 3 4 import { ShieldCheckIcon } from "@heroicons/react/24/solid"; 4 5 import formatAddress from "@hey/helpers/formatAddress"; 5 6 import type { AccountFragment } from "@hey/indexer"; 6 - import { H5 } from "@hey/ui"; 7 7 8 8 interface AccountOverviewProps { 9 9 account: AccountFragment;
+1 -1
apps/web/src/components/Staff/Accounts/Overview/Tool/AccountPreferences.tsx
··· 1 1 import MetaDetails from "@/components/Shared/MetaDetails"; 2 + import { H5 } from "@/components/Shared/UI"; 2 3 import { BellIcon, CursorArrowRaysIcon } from "@heroicons/react/24/outline"; 3 4 import { 4 5 CheckCircleIcon, ··· 7 8 } from "@heroicons/react/24/solid"; 8 9 import type { PreferencesRouterOutput } from "@hey/api/src/routers/preferences"; 9 10 import { STATIC_IMAGES_URL } from "@hey/data/constants"; 10 - import { H5 } from "@hey/ui"; 11 11 import Image from "next/image"; 12 12 13 13 interface AccountPreferencesProps {
+1 -1
apps/web/src/components/Staff/Accounts/Overview/Tool/ManagedAccounts.tsx
··· 1 1 import SmallSingleAccount from "@/components/Shared/SmallSingleAccount"; 2 + import { H5 } from "@/components/Shared/UI"; 2 3 import { UsersIcon } from "@heroicons/react/24/outline"; 3 4 import { useAccountsAvailableQuery } from "@hey/indexer"; 4 - import { H5 } from "@hey/ui"; 5 5 import Link from "next/link"; 6 6 7 7 interface ManagedAccountsProps {
+1 -1
apps/web/src/components/Staff/Accounts/Overview/Tool/Permissions.tsx
··· 1 + import { H5 } from "@/components/Shared/UI"; 1 2 import { FlagIcon } from "@heroicons/react/24/outline"; 2 - import { H5 } from "@hey/ui"; 3 3 import { useEffect, useState } from "react"; 4 4 import UpdatePermissions from "./UpdatePermissions"; 5 5
+1 -1
apps/web/src/components/Staff/Accounts/Overview/Tool/UpdatePermissions.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 + import { Toggle } from "@/components/Shared/UI"; 2 3 import errorToast from "@/helpers/errorToast"; 3 4 import { trpc } from "@/helpers/trpc"; 4 - import { Toggle } from "@hey/ui"; 5 5 import { useMutation, useQuery } from "@tanstack/react-query"; 6 6 import type { Dispatch, SetStateAction } from "react"; 7 7 import toast from "react-hot-toast";
+8 -8
apps/web/src/components/Staff/Accounts/Overview/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 2 import Loader from "@/components/Shared/Loader"; 3 + import { 4 + Card, 5 + EmptyState, 6 + ErrorMessage, 7 + GridItemEight, 8 + GridItemFour, 9 + GridLayout 10 + } from "@/components/Shared/UI"; 3 11 import AccountStaffTool from "@/components/Staff/Accounts/Overview/Tool"; 4 12 import StaffSidebar from "@/components/Staff/Sidebar"; 5 13 import hasAccess from "@/helpers/hasAccess"; ··· 9 17 import { APP_NAME } from "@hey/data/constants"; 10 18 import { Features } from "@hey/data/features"; 11 19 import { useAccountQuery } from "@hey/indexer"; 12 - import { 13 - Card, 14 - EmptyState, 15 - ErrorMessage, 16 - GridItemEight, 17 - GridItemFour, 18 - GridLayout 19 - } from "@hey/ui"; 20 20 import { useRouter } from "next/router"; 21 21 22 22 const Overview = () => {
+5 -1
apps/web/src/components/Staff/Accounts/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 + import { 3 + GridItemEight, 4 + GridItemFour, 5 + GridLayout 6 + } from "@/components/Shared/UI"; 2 7 import hasAccess from "@/helpers/hasAccess"; 3 8 import Custom404 from "@/pages/404"; 4 9 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 10 import { APP_NAME } from "@hey/data/constants"; 6 11 import { Features } from "@hey/data/features"; 7 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 8 12 import StaffSidebar from "../Sidebar"; 9 13 import List from "./List"; 10 14
+6 -1
apps/web/src/components/Staff/Overview/App.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 + import { 3 + Card, 4 + CardHeader, 5 + ErrorMessage, 6 + NumberedStat 7 + } from "@/components/Shared/UI"; 2 8 import { BLOCK_EXPLORER_URL, HEY_APP, HEY_TREASURY } from "@hey/data/constants"; 3 - import { Card, CardHeader, ErrorMessage, NumberedStat } from "@hey/ui"; 4 9 import Link from "next/link"; 5 10 import { formatEther } from "viem"; 6 11 import { useBalance } from "wagmi";
+6 -1
apps/web/src/components/Staff/Overview/Sponsorship.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 + import { 3 + Card, 4 + CardHeader, 5 + ErrorMessage, 6 + NumberedStat 7 + } from "@/components/Shared/UI"; 2 8 import { BLOCK_EXPLORER_URL, HEY_SPONSOR } from "@hey/data/constants"; 3 - import { Card, CardHeader, ErrorMessage, NumberedStat } from "@hey/ui"; 4 9 import Link from "next/link"; 5 10 import { formatEther } from "viem"; 6 11 import { useBalance } from "wagmi";
+5 -1
apps/web/src/components/Staff/Overview/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 + import { 3 + GridItemEight, 4 + GridItemFour, 5 + GridLayout 6 + } from "@/components/Shared/UI"; 2 7 import hasAccess from "@/helpers/hasAccess"; 3 8 import Custom404 from "@/pages/404"; 4 9 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 10 import { APP_NAME } from "@hey/data/constants"; 6 11 import { Features } from "@hey/data/features"; 7 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 8 12 import StaffSidebar from "../Sidebar"; 9 13 import App from "./App"; 10 14 import Sponsorship from "./Sponsorship";
+8 -2
apps/web/src/components/Staff/Permissions/List.tsx
··· 1 1 import Loader from "@/components/Shared/Loader"; 2 + import { 3 + Badge, 4 + Card, 5 + CardHeader, 6 + EmptyState, 7 + ErrorMessage 8 + } from "@/components/Shared/UI"; 9 + import cn from "@/helpers/cn"; 2 10 import { trpc } from "@/helpers/trpc"; 3 11 import { AdjustmentsHorizontalIcon } from "@heroicons/react/24/outline"; 4 12 import type { PermissionsRouterOutput } from "@hey/api/src/routers/internal/permissions"; 5 13 import { Permission } from "@hey/data/permissions"; 6 14 import formatDate from "@hey/helpers/datetime/formatDate"; 7 - import { Badge, Card, CardHeader, EmptyState, ErrorMessage } from "@hey/ui"; 8 - import cn from "@hey/ui/cn"; 9 15 import { useQuery } from "@tanstack/react-query"; 10 16 import { useEffect, useState } from "react"; 11 17
+5 -1
apps/web/src/components/Staff/Permissions/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 + import { 3 + GridItemEight, 4 + GridItemFour, 5 + GridLayout 6 + } from "@/components/Shared/UI"; 2 7 import hasAccess from "@/helpers/hasAccess"; 3 8 import Custom404 from "@/pages/404"; 4 9 import { useAccountStore } from "@/store/persisted/useAccountStore"; 5 10 import { APP_NAME } from "@hey/data/constants"; 6 11 import { Features } from "@hey/data/features"; 7 - import { GridItemEight, GridItemFour, GridLayout } from "@hey/ui"; 8 12 import StaffSidebar from "../Sidebar"; 9 13 import List from "./List"; 10 14
+1 -1
apps/web/src/components/Support/index.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 + import { Card, GridItemTwelve, GridLayout, H3 } from "@/components/Shared/UI"; 2 3 import { APP_NAME } from "@hey/data/constants"; 3 - import { Card, GridItemTwelve, GridLayout, H3 } from "@hey/ui"; 4 4 import Link from "next/link"; 5 5 6 6 const Support = () => {
+1 -1
apps/web/src/pages/404.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 + import { Button, H2 } from "@/components/Shared/UI"; 2 3 import { HomeIcon } from "@heroicons/react/24/outline"; 3 4 import { APP_NAME, STATIC_IMAGES_URL } from "@hey/data/constants"; 4 - import { Button, H2 } from "@hey/ui"; 5 5 import Link from "next/link"; 6 6 7 7 const Custom404 = () => {
+2 -2
apps/web/src/pages/500.tsx
··· 1 1 import MetaTags from "@/components/Common/MetaTags"; 2 + import { Button, H2 } from "@/components/Shared/UI"; 3 + import cn from "@/helpers/cn"; 2 4 import { heyFont } from "@/helpers/fonts"; 3 5 import { HomeIcon } from "@heroicons/react/24/outline"; 4 6 import { APP_NAME } from "@hey/data/constants"; 5 - import { Button, H2 } from "@hey/ui"; 6 - import cn from "@hey/ui/cn"; 7 7 import Link from "next/link"; 8 8 9 9 const Custom500 = () => {
+33 -3
apps/web/tailwind.config.js
··· 1 - const base = require("@hey/ui/tailwind-preset"); 1 + import colors from "tailwindcss/colors"; 2 2 3 3 /** @type {import('tailwindcss').Config} */ 4 4 module.exports = { 5 - ...base, 6 - content: ["./src/**/*.{ts,tsx}", "../../packages/ui/src/*.{ts,tsx}"], 5 + darkMode: "class", 6 + theme: { 7 + extend: { 8 + animation: { 9 + shimmer: "shimmer 2s cubic-bezier(0.4, 0, 0.6, 1) infinite" 10 + }, 11 + colors: { 12 + brand: { 13 + 100: "#ffe3e5", 14 + 200: "#ffcbd3", 15 + 300: "#ffa1ad", 16 + 400: "#ff6c82", 17 + 50: "#fff0f2", 18 + 500: "#fb3a5d", 19 + 600: "#e91546", 20 + 700: "#c50b3b", 21 + 800: "#a40d39", 22 + 900: "#8c0f36", 23 + 950: "#4f0219" 24 + }, 25 + gray: colors.neutral, 26 + green: colors.emerald 27 + }, 28 + keyframes: { 29 + shimmer: { 30 + "0%, 100%": { opacity: 1 }, 31 + "50%": { opacity: 0.5 } 32 + } 33 + } 34 + } 35 + }, 36 + content: ["./src/**/*.{ts,tsx}"], 7 37 plugins: [require("@tailwindcss/aspect-ratio"), require("@tailwindcss/forms")] 8 38 };
packages/ui/cn.ts apps/web/src/helpers/cn.ts
-32
packages/ui/index.ts
··· 1 - export { Alert } from "./src/Alert"; 2 - export { Badge } from "./src/Badge"; 3 - export { Button } from "./src/Button"; 4 - export { Card } from "./src/Card"; 5 - export { default as CardHeader } from "./src/CardHeader"; 6 - export { Checkbox } from "./src/Checkbox"; 7 - export { EmptyState } from "./src/EmptyState"; 8 - export { ErrorMessage } from "./src/ErrorMessage"; 9 - export { FieldError, Form, useZodForm } from "./src/Form"; 10 - export { 11 - GridItemEight, 12 - GridItemFour, 13 - GridItemTwelve, 14 - GridLayout 15 - } from "./src/GridLayout"; 16 - export { default as HelpTooltip } from "./src/HelpTooltip"; 17 - export { Image } from "./src/Image"; 18 - export { Input } from "./src/Input"; 19 - export { LightBox } from "./src/LightBox"; 20 - export { Modal } from "./src/Modal"; 21 - export { default as NumberedStat } from "./src/NumberedStat"; 22 - export { PageLoading } from "./src/PageLoading"; 23 - export { RangeSlider } from "./src/RangeSlider"; 24 - export { Select } from "./src/Select"; 25 - export { Spinner } from "./src/Spinner"; 26 - export { default as StackedAvatars } from "./src/StackedAvatars"; 27 - export { default as TabButton } from "./src/TabButton"; 28 - export { TextArea } from "./src/TextArea"; 29 - export { Toggle } from "./src/Toggle"; 30 - export { Tooltip } from "./src/Tooltip"; 31 - export { H2, H3, H4, H5, H6 } from "./src/Typography"; 32 - export { WarningMessage } from "./src/WarningMessage";
-33
packages/ui/package.json
··· 1 - { 2 - "name": "@hey/ui", 3 - "version": "0.0.0", 4 - "private": true, 5 - "license": "AGPL-3.0", 6 - "main": "index.ts", 7 - "scripts": { 8 - "typecheck": "tsc --pretty" 9 - }, 10 - "dependencies": { 11 - "@headlessui/react": "2.2.0", 12 - "@heroicons/react": "^2.2.0", 13 - "@hey/data": "workspace:*", 14 - "@hey/helpers": "workspace:*", 15 - "@hookform/resolvers": "^4.1.3", 16 - "@radix-ui/react-slider": "^1.2.3", 17 - "@radix-ui/react-switch": "^1.1.3", 18 - "@radix-ui/react-tooltip": "^1.1.8", 19 - "clsx": "^2.1.1", 20 - "next": "^15.2.4", 21 - "react": "^19.0.0", 22 - "react-hook-form": "^7.54.2", 23 - "tailwind-merge": "3.0.2", 24 - "zod": "^3.24.2" 25 - }, 26 - "devDependencies": { 27 - "@hey/config": "workspace:*", 28 - "@types/node": "^22.13.13", 29 - "@types/react": "^19.0.12", 30 - "tailwindcss": "3.4.17", 31 - "typescript": "^5.7.3" 32 - } 33 - }
packages/ui/src/Alert.tsx apps/web/src/components/Shared/UI/Alert.tsx
+1 -1
packages/ui/src/Badge.tsx apps/web/src/components/Shared/UI/Badge.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { DetailedHTMLProps, HTMLAttributes, ReactNode } from "react"; 2 3 import { forwardRef } from "react"; 3 - import cn from "../cn"; 4 4 5 5 interface BadgeProps 6 6 extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
+1 -1
packages/ui/src/Button.tsx apps/web/src/components/Shared/UI/Button.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { ButtonHTMLAttributes, DetailedHTMLProps, ReactNode } from "react"; 2 3 import { forwardRef } from "react"; 3 - import cn from "../cn"; 4 4 5 5 interface ButtonProps 6 6 extends DetailedHTMLProps<
+1 -1
packages/ui/src/Card.tsx apps/web/src/components/Shared/UI/Card.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { ElementType, MouseEvent, ReactNode } from "react"; 2 - import cn from "../cn"; 3 3 4 4 interface CardProps { 5 5 as?: ElementType;
packages/ui/src/CardHeader.tsx apps/web/src/components/Shared/UI/CardHeader.tsx
+1 -1
packages/ui/src/Checkbox.tsx apps/web/src/components/Shared/UI/Checkbox.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { ComponentProps } from "react"; 2 3 import { forwardRef, useId } from "react"; 3 - import cn from "../cn"; 4 4 5 5 interface CheckboxProps extends Omit<ComponentProps<"input">, "prefix"> { 6 6 className?: string;
+1 -1
packages/ui/src/EmptyState.tsx apps/web/src/components/Shared/UI/EmptyState.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { ReactNode } from "react"; 2 - import cn from "../cn"; 3 3 import { Card } from "./Card"; 4 4 5 5 interface EmptyStateProps {
+1 -1
packages/ui/src/ErrorMessage.tsx apps/web/src/components/Shared/UI/ErrorMessage.tsx
··· 1 - import cn from "../cn"; 1 + import cn from "@/helpers/cn"; 2 2 import { H6 } from "./Typography"; 3 3 4 4 interface ErrorMessageProps {
+1 -1
packages/ui/src/Form.tsx apps/web/src/components/Shared/UI/Form.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { zodResolver } from "@hookform/resolvers/zod"; 2 3 import type { ComponentProps } from "react"; 3 4 import type { ··· 8 9 } from "react-hook-form"; 9 10 import { FormProvider, useForm, useFormContext } from "react-hook-form"; 10 11 import type { TypeOf, ZodSchema } from "zod"; 11 - import cn from "../cn"; 12 12 import { H6 } from "./Typography"; 13 13 14 14 interface UseZodFormProps<T extends ZodSchema<FieldValues>>
+1 -1
packages/ui/src/GridLayout.tsx apps/web/src/components/Shared/UI/GridLayout.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { ReactNode } from "react"; 2 - import cn from "../cn"; 3 3 4 4 interface GridProps { 5 5 children: ReactNode;
packages/ui/src/HelpTooltip.tsx apps/web/src/components/Shared/UI/HelpTooltip.tsx
packages/ui/src/Image.tsx apps/web/src/components/Shared/UI/Image.tsx
+1 -1
packages/ui/src/Input.tsx apps/web/src/components/Shared/UI/Input.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { ComponentProps, ReactNode } from "react"; 2 3 import { forwardRef, useId } from "react"; 3 - import cn from "../cn"; 4 4 import { FieldError } from "./Form"; 5 5 import HelpTooltip from "./HelpTooltip"; 6 6
packages/ui/src/LightBox.tsx apps/web/src/components/Shared/UI/LightBox.tsx
+1 -1
packages/ui/src/Modal.tsx apps/web/src/components/Shared/UI/Modal.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { 2 3 Dialog, 3 4 DialogPanel, ··· 8 9 import { XMarkIcon } from "@heroicons/react/24/outline"; 9 10 import type { ReactNode, SyntheticEvent } from "react"; 10 11 import { Fragment } from "react"; 11 - import cn from "../cn"; 12 12 13 13 interface ModalProps { 14 14 children: ReactNode | ReactNode[];
packages/ui/src/NumberedStat.tsx apps/web/src/components/Shared/UI/NumberedStat.tsx
+1 -1
packages/ui/src/PageLoading.tsx apps/web/src/components/Shared/UI/PageLoading.tsx
··· 1 - import { Spinner } from "../src/Spinner"; 1 + import { Spinner } from "./Spinner"; 2 2 3 3 interface PageLoadingProps { 4 4 message?: string;
+1 -1
packages/ui/src/RangeSlider.tsx apps/web/src/components/Shared/UI/RangeSlider.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import * as SliderPrimitive from "@radix-ui/react-slider"; 2 3 import { forwardRef } from "react"; 3 - import cn from "../cn"; 4 4 5 5 interface RangeSliderProps extends SliderPrimitive.SliderProps { 6 6 className?: string;
+1 -1
packages/ui/src/Select.tsx apps/web/src/components/Shared/UI/Select.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { 2 3 Listbox, 3 4 ListboxButton, ··· 8 9 import { MagnifyingGlassIcon } from "@heroicons/react/24/outline"; 9 10 import { CheckCircleIcon, ChevronDownIcon } from "@heroicons/react/24/solid"; 10 11 import { Fragment, type ReactNode, forwardRef, useState } from "react"; 11 - import cn from "../cn"; 12 12 import { Input } from "./Input"; 13 13 14 14 interface SelectProps {
+1 -1
packages/ui/src/Spinner.tsx apps/web/src/components/Shared/UI/Spinner.tsx
··· 1 - import cn from "../cn"; 1 + import cn from "@/helpers/cn"; 2 2 3 3 interface SpinnerProps { 4 4 className?: string;
packages/ui/src/StackedAvatars.tsx apps/web/src/components/Shared/UI/StackedAvatars.tsx
+1 -1
packages/ui/src/TabButton.tsx apps/web/src/components/Shared/UI/TabButton.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import { useRouter } from "next/router"; 2 3 import type { ReactNode } from "react"; 3 - import cn from "../cn"; 4 4 5 5 interface TabButtonProps { 6 6 active: boolean;
packages/ui/src/TextArea.tsx apps/web/src/components/Shared/UI/TextArea.tsx
+1 -1
packages/ui/src/Toggle.tsx apps/web/src/components/Shared/UI/Toggle.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import * as Switch from "@radix-ui/react-switch"; 2 - import cn from "../cn"; 3 3 4 4 interface ToggleProps { 5 5 disabled?: boolean;
packages/ui/src/Tooltip.tsx apps/web/src/components/Shared/UI/Tooltip.tsx
+1 -1
packages/ui/src/Typography.tsx apps/web/src/components/Shared/UI/Typography.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { JSX, ReactNode } from "react"; 2 3 import { createElement, forwardRef } from "react"; 3 - import cn from "../cn"; 4 4 5 5 interface TypographyProps { 6 6 as?: keyof JSX.IntrinsicElements;
+1 -1
packages/ui/src/WarningMessage.tsx apps/web/src/components/Shared/UI/WarningMessage.tsx
··· 1 + import cn from "@/helpers/cn"; 1 2 import type { ReactNode } from "react"; 2 - import cn from "../cn"; 3 3 import { H6 } from "./Typography"; 4 4 5 5 interface WarningMessageProps {
-37
packages/ui/tailwind-preset.ts
··· 1 - import colors from "tailwindcss/colors"; 2 - 3 - /** @type {import('tailwindcss').Config} */ 4 - module.exports = { 5 - darkMode: "class", 6 - theme: { 7 - extend: { 8 - animation: { 9 - shimmer: "shimmer 2s cubic-bezier(0.4, 0, 0.6, 1) infinite" 10 - }, 11 - colors: { 12 - brand: { 13 - "100": "#ffe3e5", 14 - "200": "#ffcbd3", 15 - "300": "#ffa1ad", 16 - "400": "#ff6c82", 17 - "50": "#fff0f2", 18 - "500": "#fb3a5d", 19 - "600": "#e91546", 20 - "700": "#c50b3b", 21 - "800": "#a40d39", 22 - "900": "#8c0f36", 23 - "950": "#4f0219" 24 - }, 25 - gray: colors.neutral, 26 - green: colors.emerald 27 - }, 28 - keyframes: { 29 - shimmer: { 30 - "0%, 100%": { opacity: 1 }, 31 - "50%": { opacity: 0.5 } 32 - } 33 - } 34 - } 35 - }, 36 - variants: { extend: {} } 37 - };
-3
packages/ui/tsconfig.json
··· 1 - { 2 - "extends": "@hey/config/react.tsconfig.json" 3 - }
+21 -64
pnpm-lock.yaml
··· 157 157 '@hey/indexer': 158 158 specifier: workspace:* 159 159 version: link:../../packages/indexer 160 - '@hey/ui': 161 - specifier: workspace:* 162 - version: link:../../packages/ui 160 + '@hookform/resolvers': 161 + specifier: ^4.1.3 162 + version: 4.1.3(react-hook-form@7.54.2(react@19.0.0)) 163 163 '@lens-chain/sdk': 164 164 specifier: canary 165 165 version: 0.0.0-canary-20250304124140(viem@2.23.15(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)) ··· 178 178 '@radix-ui/react-hover-card': 179 179 specifier: ^1.1.6 180 180 version: 1.1.6(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 181 + '@radix-ui/react-slider': 182 + specifier: ^1.2.3 183 + version: 1.2.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 184 + '@radix-ui/react-switch': 185 + specifier: ^1.1.3 186 + version: 1.1.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 187 + '@radix-ui/react-tooltip': 188 + specifier: ^1.1.8 189 + version: 1.1.8(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 181 190 '@tanstack/react-query': 182 191 specifier: ^5.69.0 183 192 version: 5.69.0(react@19.0.0) ··· 196 205 browser-image-compression: 197 206 specifier: ^2.0.2 198 207 version: 2.0.2 208 + clsx: 209 + specifier: ^2.1.1 210 + version: 2.1.1 199 211 connectkit: 200 212 specifier: ^1.8.2 201 213 version: 1.8.2(@babel/core@7.26.10)(@tanstack/react-query@5.69.0(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react-is@16.13.1)(react@19.0.0)(viem@2.23.15(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(wagmi@2.14.15(@tanstack/query-core@5.69.0)(@tanstack/react-query@5.69.0(react@19.0.0))(@types/react@19.0.12)(bufferutil@4.0.9)(immer@10.1.1)(react@19.0.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.23.15(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)) ··· 232 244 react-easy-crop: 233 245 specifier: ^5.4.1 234 246 version: 5.4.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 247 + react-hook-form: 248 + specifier: ^7.54.2 249 + version: 7.54.2(react@19.0.0) 235 250 react-hot-toast: 236 251 specifier: ^2.5.2 237 252 version: 2.5.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) ··· 268 283 strip-markdown: 269 284 specifier: ^6.0.0 270 285 version: 6.0.0 286 + tailwind-merge: 287 + specifier: 3.0.2 288 + version: 3.0.2 271 289 unified: 272 290 specifier: ^11.0.5 273 291 version: 11.0.5 ··· 427 445 '@hey/config': 428 446 specifier: workspace:* 429 447 version: link:../config 430 - typescript: 431 - specifier: ^5.7.3 432 - version: 5.8.2 433 - 434 - packages/ui: 435 - dependencies: 436 - '@headlessui/react': 437 - specifier: 2.2.0 438 - version: 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 439 - '@heroicons/react': 440 - specifier: ^2.2.0 441 - version: 2.2.0(react@19.0.0) 442 - '@hey/data': 443 - specifier: workspace:* 444 - version: link:../data 445 - '@hey/helpers': 446 - specifier: workspace:* 447 - version: link:../helpers 448 - '@hookform/resolvers': 449 - specifier: ^4.1.3 450 - version: 4.1.3(react-hook-form@7.54.2(react@19.0.0)) 451 - '@radix-ui/react-slider': 452 - specifier: ^1.2.3 453 - version: 1.2.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 454 - '@radix-ui/react-switch': 455 - specifier: ^1.1.3 456 - version: 1.1.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 457 - '@radix-ui/react-tooltip': 458 - specifier: ^1.1.8 459 - version: 1.1.8(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 460 - clsx: 461 - specifier: ^2.1.1 462 - version: 2.1.1 463 - next: 464 - specifier: ^15.2.4 465 - version: 15.2.4(@babel/core@7.26.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 466 - react: 467 - specifier: ^19.0.0 468 - version: 19.0.0 469 - react-hook-form: 470 - specifier: ^7.54.2 471 - version: 7.54.2(react@19.0.0) 472 - tailwind-merge: 473 - specifier: 3.0.2 474 - version: 3.0.2 475 - zod: 476 - specifier: ^3.24.2 477 - version: 3.24.2 478 - devDependencies: 479 - '@hey/config': 480 - specifier: workspace:* 481 - version: link:../config 482 - '@types/node': 483 - specifier: ^22.13.13 484 - version: 22.13.13 485 - '@types/react': 486 - specifier: ^19.0.12 487 - version: 19.0.12 488 - tailwindcss: 489 - specifier: 3.4.17 490 - version: 3.4.17(ts-node@10.9.2(@types/node@22.13.13)(typescript@5.8.2)) 491 448 typescript: 492 449 specifier: ^5.7.3 493 450 version: 5.8.2