{"version":3,"mappings":"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","names":["BookPrompts","book","prompts","jsx","Fragment","jsxs","Container","Heading","prompt","BookPromptGroup","Divider","BookSeriesHeader","context","size","releasedBooks","bs","isInPast","releasedBooksCount","primaryWorksCount","BookGroupHeaderWrapper","Text","Badge","pluralize","_a","TextLink","AboutSeries","BookSeriesGroup","bookSeries","activeBook","books","BookGroup","BookGroupSeriesItem","BookSerieses","FollowingReviews","exclude","reviews","limit","ids","r","filteredReviews","review","BookReviews","PopularReviews","SimilarUserReviews","TopBookReviews","isLoggedIn","useIsLoggedIn","networkActivity","usePage","TopBookLists","topLists","list","BookListGroup","SimilarBooksHeader","SimilarBooks","similarBooks","SvgStore","props","React.createElement","fetchIsbn13","_b","_d","_c","_f","_e","fetchIsbn10","affiliateLinkBookshop","isbn13","affiliateLinkBookshopUk","affiliateLinkAmazon","isbn10","affiliateLinkAmazonUk","getAffiliatesLinks","compact","BuyBookButtonButton","onClick","loading","open","affiliateLinks","Button","classNames","Icon","store","LoadingSpinner","faChevronDown","BuyBookButtonContent","lazy","__vitePreload","BuyBookButton","setOpen","useState","portalRef","useRef","buyBookButtonRef","Suspense","Drawer","BookButtons","ReportBookMenu","onDuplicate","onClose","admin","useCurrentUser","u","DrawerButton","faClone","DrawerDivider","faPencil","ReportButton","faBug","ReportBookButton","buttonRef","faFlag","DuplicateModal","ReportBookButtonContent","showDuplicateModal","setShowDuplicateModal","dispatch","useDispatch","toggleDuplicate","searchActions","SvgIdCard","librarianRolesForUser","user","roles","uniq","ApplyLibrarianButton","librarianRoles","idIcon","LoggedInBookLinks","TagGroup","tags","category","showAllSpoilers","setShowAllSpoilers","hasSpoilers","useMemo","tag","TagListLinks","BookTags","tagGroups","genres","moods","contentWarnings","TopBookCharacters","bookCharacters","characters","bookCharacter","BookCharacterLink","CurrentUserDetails","BookInfo","ExpandingText","LoadingBook","Show","BookLayout","DefaultLayoutWrapper"],"ignoreList":[],"sources":["../../../app/javascript/features/books/components/BookPrompts.tsx","../../../app/javascript/components/BookGroup/headers/BookSeriesHeader.tsx","../../../app/javascript/components/BookGroup/groups/BookSeriesGroup.tsx","../../../app/javascript/features/books/components/BookSerieses.tsx","../../../app/javascript/features/books/components/reviews/FollowingReviews.tsx","../../../app/javascript/components/books/PopularReviews.tsx","../../../app/javascript/features/books/components/reviews/SimilarUserReviews.tsx","../../../app/javascript/features/books/components/reviews/TopBookReviews.tsx","../../../app/javascript/features/books/components/TopBookLists.tsx","../../../app/javascript/features/books/components/SimilarBooksHeader.tsx","../../../app/javascript/features/books/components/SimilarBooks.tsx","../../../app/javascript/icons/duotone/store.svg","../../../app/javascript/lib/affiliates.ts","../../../app/javascript/components/BuyBookButton/BuyBookButtonButton.tsx","../../../app/javascript/components/BuyBookButton/index.tsx","../../../app/javascript/features/books/components/BookButtons.tsx","../../../app/javascript/components/ReportDropdown/ReportBookButton/ReportBookMenu.tsx","../../../app/javascript/components/ReportDropdown/ReportBookButton/ReportBookButton.tsx","../../../app/javascript/components/ReportDropdown/ReportBookButton/ReportBookButtonContent.tsx","../../../app/javascript/icons/duotone/id-card.svg","../../../app/javascript/lib/policies/librarianRolesForUser.ts","../../../app/javascript/features/books/components/ApplyLibrarian.tsx","../../../app/javascript/features/books/components/LoggedInBookLink.tsx","../../../app/javascript/components/tags/TagGroup.tsx","../../../app/javascript/features/books/components/BookTags.tsx","../../../app/javascript/features/books/components/TopBookCharacters.tsx","../../../app/javascript/features/books/components/BookInfo.tsx","../../../app/javascript/pages/clientverse/books/show.tsx"],"sourcesContent":["import BookPromptGroup from \"components/BookGroup/groups/BookPromptGroup\";\nimport Divider from \"components/ui/Divider\";\nimport Container from \"hardcover-ui/components/Container\";\nimport Heading from \"hardcover-ui/components/Heading\";\nimport { PageSerializersBooksShow, PromptSerializersPrompt } from \"types/serializers\";\n\nexport default function BookPrompts({ book, prompts }: { book: PageSerializersBooksShow; prompts: PromptSerializersPrompt[] }) {\n\n if (prompts.length === 0) {\n return <>;\n }\n\n return (\n \n \n Top Prompts\n \n\n
\n {prompts.map((prompt) => (\n \n ))}\n
\n\n \n
\n );\n}\n","import Heading from \"hardcover-ui/components/Heading\";\nimport Text from \"hardcover-ui/components/Text\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport pluralize from \"lib/pluralize\";\nimport { isInPast } from \"lib/dateUtils\";\nimport Badge from \"hardcover-ui/components/Badge\";\nimport AboutSeries from \"components/series/AboutSeries\";\nimport { BookGroupSizeType, BookSeriesContextType } from \"../types\";\nimport BookGroupHeaderWrapper from \"./parts/BookGroupHeaderWrapper\";\n\nexport default function BookSeriesHeader({\n context,\n size,\n}: {\n context: BookSeriesContextType;\n size: BookGroupSizeType;\n}) {\n const uniqBookSeries = context.series.bookSeries;\n const releasedBooks = uniqBookSeries.filter((bs) => {\n return isInPast(bs.book.releaseDate);\n });\n const releasedBooksCount = releasedBooks.length;\n const primaryWorksCount = releasedBooks.filter(\n (bs) => bs.position && Math.round(bs.position) === bs.position\n ).length;\n\n return (\n \n
\n \n {context.activeBookSeries.featured && Featured }\n Series\n \n {primaryWorksCount > 0 ? (\n <>\n \n {primaryWorksCount.toLocaleString()}{\" \"}\n {pluralize(\"primary book\", primaryWorksCount)}\n \n {primaryWorksCount !== releasedBooksCount && (\n \n {releasedBooksCount.toLocaleString()}{\" \"}\n {pluralize(\"released book\", releasedBooksCount)}\n \n )}\n \n ) : (\n \n {releasedBooksCount.toLocaleString()}{\" \"}\n {pluralize(\"released book\", releasedBooksCount)}\n \n )}\n
\n \n {context.activeBookSeries.details?.length > 0 && (\n #{context.activeBookSeries.details} in \n )}\n \n {context.series.name}\n \n \n \n
\n );\n}\n","import BookGroup from \"components/BookGroup\";\nimport { BookGroupSizeType } from \"components/BookGroup/types\";\nimport BookGroupSeriesItem from \"components/BookGroup/items/BookGroupSeriesItem\";\nimport BookSeriesHeader from \"components/BookGroup/headers/BookSeriesHeader\";\nimport { PageSerializersBooksShow, SeriesSerializersBookSeriesGroup } from \"types/serializers\";\n\nexport default function BookSeriesGroup({\n bookSeries,\n activeBook,\n size,\n}: {\n activeBook: PageSerializersBooksShow;\n bookSeries: SeriesSerializersBookSeriesGroup;\n size: BookGroupSizeType;\n}) {\n const books = bookSeries.series.bookSeries.map((bs) => {\n return {\n ...bs.book,\n featuredSeries: {\n id: bs.id,\n details: bs.details,\n position: bs.position,\n featured: bs.featured,\n series: bookSeries.series,\n }\n }\n });\n\n return (\n \n );\n}\n","import Container from \"hardcover-ui/components/Container\";\nimport Heading from \"hardcover-ui/components/Heading\";\nimport BookSeriesGroup from \"components/BookGroup/groups/BookSeriesGroup\";\nimport Divider from \"components/ui/Divider\";\nimport { PageSerializersBooksShow, SeriesSerializersBookSeriesGroup } from \"types/serializers\";\n\nexport default function BookSerieses({ book, bookSeries }: { book: PageSerializersBooksShow; bookSeries: SeriesSerializersBookSeriesGroup[] }) {\n if (!bookSeries || bookSeries.length === 0) {\n return <>;\n }\n\n return (\n \n \n Series\n \n\n
\n {bookSeries.map((bs) => (\n \n ))}\n
\n \n
\n );\n}\n","import Heading from \"hardcover-ui/components/Heading\";\nimport Text from \"hardcover-ui/components/Text\";\nimport Divider from \"components/ui/Divider\";\nimport BookReviews from \"components/BookReview/BookReviews\";\nimport { PageSerializersBooksShow, UserBookSerializersUserBookReview } from \"types/serializers\";\n\nexport default function FollowingReviews({\n exclude = [],\n reviews,\n book,\n limit = 3,\n}: {\n exclude?: UserBookSerializersUserBookReview[];\n book: PageSerializersBooksShow;\n reviews: UserBookSerializersUserBookReview[];\n limit?: number;\n}) {\n const ids = exclude.map((r) => r.id);\n const filteredReviews = reviews.filter((review) => ids.indexOf(review.id) === -1).slice(0, limit);\n if (filteredReviews.length === 0) {\n return false;\n }\n\n return (\n
\n
\n \n Friend Reviews\n \n \n Reviews by readers you follow.\n \n
\n\n \n \n
\n );\n}\n","import Heading from \"hardcover-ui/components/Heading\";\nimport Text from \"hardcover-ui/components/Text\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport Divider from \"components/ui/Divider\";\nimport BookReviews from \"../BookReview/BookReviews\";\nimport { PageSerializersBooksShow, UserBookSerializersUserBookReview } from \"types/serializers\";\n\nexport default function PopularReviews({\n book,\n reviews,\n limit = 3,\n}: {\n book: PageSerializersBooksShow\n reviews: UserBookSerializersUserBookReview[];\n limit?: number;\n}) {\n return (\n
\n
\n \n Popular Reviews\n \n \n Reviews with the most likes.\n \n
\n\n {reviews.length > 0 ? (\n \n ) : (\n \n There are no reviews for this book. Add yours and it'll show up right\n here!\n \n )}\n \n
\n );\n}\n","import Heading from \"hardcover-ui/components/Heading\";\nimport Text from \"hardcover-ui/components/Text\";\nimport Divider from \"components/ui/Divider\";\nimport BookReviews from \"components/BookReview/BookReviews\";\nimport { PageSerializersBooksShow, UserBookSerializersUserBookReview } from \"types/serializers\";\n\nexport default function SimilarUserReviews({\n exclude,\n reviews,\n book,\n limit = 3,\n}: {\n exclude: UserBookSerializersUserBookReview[];\n book: PageSerializersBooksShow;\n reviews: UserBookSerializersUserBookReview[];\n limit?: number;\n}) {\n const ids = exclude.map((r) => r.id);\n const filteredReviews = reviews.filter((review) => ids.indexOf(review.id) === -1).slice(0, limit);;\n if (filteredReviews.length === 0) {\n return false;\n }\n\n return (\n
\n
\n \n Reviews by Readers Like You\n \n \n By readers who rate books most similar to you.\n \n
\n\n \n \n
\n );\n}\n","import { usePage } from \"@inertiajs/react\";\nimport Container from \"hardcover-ui/components/Container\";\nimport useIsLoggedIn from \"hooks/user/useIsLoggedIn\";\nimport { BookPageProps } from \"pages/clientverse/books/show.props\";\nimport FollowingReviews from \"./FollowingReviews\";\nimport PopularReviews from \"components/books/PopularReviews\";\nimport SimilarUserReviews from \"./SimilarUserReviews\";\nimport { PageSerializersBooksShow } from \"types/serializers\";\n\nexport default function TopBookReviews({ book }: { book: PageSerializersBooksShow; }) {\n const isLoggedIn = useIsLoggedIn();\n const { reviews } = book;\n const { networkActivity } = usePage().props;\n\n return (\n \n

Reviews

\n
\n \n\n {isLoggedIn ? (\n <>\n \n \n \n ) : (\n <>\n )}\n
\n
\n );\n}\n","import BookListGroup from \"components/BookGroup/groups/BookListGroup\";\nimport Divider from \"components/ui/Divider\";\nimport Container from \"hardcover-ui/components/Container\";\nimport Heading from \"hardcover-ui/components/Heading\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport { ListSerializersListGroup, PageSerializersBooksShow } from \"types/serializers\";\n\nexport default function TopBookLists({ book, topLists }: { book: PageSerializersBooksShow; topLists: ListSerializersListGroup[] }) {\n if (topLists.length === 0) {\n return <>;\n }\n\n return (\n \n
\n \n Top Lists\n \n \n See all ({book.listsCount.toLocaleString()})\n \n
\n\n
\n {topLists.map((list) => (\n \n ))}\n
\n\n \n
\n );\n}\n","import pluralize from \"lib/pluralize\";\nimport BookType from \"types/BookType\";\nimport Heading from \"hardcover-ui/components/Heading\";\nimport Text from \"hardcover-ui/components/Text\";\nimport Badge from \"hardcover-ui/components/Badge\";\nimport BookGroupHeaderWrapper from \"components/BookGroup/headers/parts/BookGroupHeaderWrapper\";\nimport { BookGroupSizeType } from \"components/BookGroup/types\";\n\nexport default function SimilarBooksHeader({\n books,\n size,\n}: {\n books: BookType[];\n size: BookGroupSizeType;\n}) {\n return (\n \n
\n \n Books\n \n \n {books.length.toLocaleString()} {pluralize(\"book\", books.length)}\n \n
\n\n \n Readers of This Book Also Enjoyed\n \n\n \n If you enjoyed this book, then our algorithm says you may also enjoy\n these.\n \n
\n );\n}\n","import BookGroup from \"components/BookGroup\";\nimport Divider from \"components/ui/Divider\";\nimport Container from \"hardcover-ui/components/Container\";\nimport SimilarBooksHeader from \"./SimilarBooksHeader\";\nimport { BookSerializersBookByline } from \"types/serializers\";\n\nexport default function SimilarBooks({ similarBooks }: { similarBooks: BookSerializersBookByline[] }) {\n if (similarBooks.length === 0) {\n return <>;\n }\n\n return (\n \n

Related Books

\n \n\n \n
\n );\n}\n","import * as React from \"react\";\nconst SvgStore = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 576 512\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m490.3 13.1 57.3 90.7c29.7 46.9 3.4 112-52.1 119.4-4 .5-7.9.8-12.1.8-26.1 0-49.2-11.4-65.2-29a87.5 87.5 0 0 1-65.2 29c-26.1 0-49.3-11.4-65.2-29a87.5 87.5 0 0 1-65.2 29c-26.1 0-49.3-11.4-65.2-29a87.7 87.7 0 0 1-65.2 29c-4.1 0-8.2-.3-12.1-.8-55.3-7.4-81.5-72.6-51.9-119.4l57.5-90.7C90.8 5 99.9 0 109.6 0h356.8c9.7 0 18.8 5 23.9 13.1\", className: \"fa-primary\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M64 219.1V448c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V219.1c-5.1 2-10.6 3.4-16.5 4.1-4 .5-7.9.8-12.1.8-12.7 0-24.6-2.7-35.4-7.5V384H128V216.5a88 88 0 0 1-35.6 7.5c-4.1 0-8.2-.3-12.1-.8-5.7-.8-11.2-2.2-16.2-4.1z\", style: {\n opacity: 0.4\n} }));\nexport default SvgStore;\n","import { AffiliateLink } from \"components/BuyBookButton/contants\";\nimport compact from \"lodash/compact\";\nimport { PageSerializersBooksShow } from \"types/serializers\";\n\nexport function fetchIsbn13(book: PageSerializersBooksShow) {\n if (book.defaultPhysicalEdition?.isbn13?.length === 13) {\n return book.defaultPhysicalEdition.isbn13;\n }\n if (book.defaultAudioEdition?.isbn13?.length === 13) {\n return book.defaultAudioEdition.isbn13;\n }\n if (book.defaultEbookEdition?.isbn13?.length === 13) {\n return book.defaultAudioEdition.isbn13;\n }\n}\nexport function fetchIsbn10(book: PageSerializersBooksShow) {\n if (book.defaultPhysicalEdition?.isbn10?.length === 10) {\n return book.defaultPhysicalEdition.isbn10;\n }\n if (book.defaultAudioEdition?.isbn10?.length === 10) {\n return book.defaultAudioEdition.isbn10;\n }\n if (book.defaultEbookEdition?.isbn10?.length === 10) {\n return book.defaultAudioEdition.isbn10;\n }\n}\n\nexport function affiliateLinkBookshop(isbn13?: string) {\n if (!isbn13) {\n return null;\n }\n return {\n link: `https://bookshop.org/a/54943/${isbn13}`,\n title: \"BookShop.org\",\n subtitle: \"Independent Bookstores\",\n };\n}\nexport function affiliateLinkBookshopUk(isbn13?: string) {\n if (!isbn13) {\n return null;\n }\n return {\n link: `https://uk.bookshop.org/a/13479/${isbn13}`,\n title: \"BookShop.org UK\",\n subtitle: \"Independent Bookstores\",\n };\n}\n\nexport function affiliateLinkAmazon(isbn10?: string, isbn13?: string) {\n if (!isbn10 && !isbn13) {\n return null;\n }\n return {\n link: `https://www.amazon.com/dp/product/${\n isbn10 || isbn13\n }/?tag=hardcoverapp-20`,\n title: \"Amazon\",\n subtitle: \"Corporate Behemoth\",\n };\n}\nexport function affiliateLinkAmazonUk(isbn10?: string, isbn13?: string) {\n if (!isbn10 && !isbn13) {\n return null;\n }\n return {\n link: `https://www.amazon.co.uk/gp/product/${\n isbn13 || isbn10\n }/?tag=hardcoverapp-20`,\n title: \"Amazon UK\",\n subtitle: \"Corporate Behemoth\",\n };\n}\n\nexport function getAffiliatesLinks(book: PageSerializersBooksShow): AffiliateLink[] {\n try {\n const isbn13 = fetchIsbn13(book);\n const isbn10 = fetchIsbn10(book);\n return compact([\n affiliateLinkBookshop(isbn13),\n affiliateLinkBookshopUk(isbn13),\n affiliateLinkAmazon(isbn10, isbn13),\n affiliateLinkAmazonUk(isbn10, isbn13),\n ]);\n } catch {\n return [];\n }\n}\n","\nimport Icon from \"hardcover-ui/components/Icon\";\nimport faChevronDown from \"icons/solid/chevron-down.svg\";\nimport classNames from \"lib/classNames\";\nimport store from \"icons/duotone/store.svg\";\nimport LoadingSpinner from \"hardcover-ui/components/LoadingSpinner\";\nimport Badge from \"hardcover-ui/components/Badge\";\nimport Button from \"hardcover-ui/components/Button\";\nimport { getAffiliatesLinks } from \"lib/affiliates\";\nimport pluralize from \"lib/pluralize\";\nimport { PageSerializersBooksShow } from \"types/serializers\";\n\nexport default function BuyBookButtonButton({\n onClick = () => {},\n loading = false,\n open = false,\n book,\n}: {\n onClick?: () => void;\n loading?: boolean;\n open?: boolean;\n book: PageSerializersBooksShow;\n}) {\n const affiliateLinks = getAffiliatesLinks(book);\n\n if (affiliateLinks.length === 0) {\n return false;\n }\n\n return (\n \n \n Available from\n Buy \n \n {affiliateLinks.length} {pluralize(\"Seller\", affiliateLinks.length)}\n \n {loading ? (\n
\n \n
\n ) : (\n \n )}\n \n );\n}\n","import { Suspense, lazy, useRef, useState } from \"react\";\nimport BuyBookButtonButton from \"./BuyBookButtonButton\";\nimport { Drawer } from \"features/Drawer\";\nimport { PageSerializersBooksShow } from \"types/serializers\";\nconst BuyBookButtonContent = lazy(() => import(\"./BuyBookButtonContent\"));\n\nexport default function BuyBookButton({ book }: { book: PageSerializersBooksShow }) {\n const [open, setOpen] = useState(false);\n const portalRef = useRef();\n const buyBookButtonRef = useRef();\n\n return (\n
\n
\n setOpen(true)} />\n
\n\n {open && portalRef.current && buyBookButtonRef.current ? (\n {},\n placement: \"bottom\",\n }}\n />\n }\n >\n setOpen(false),\n placement: \"bottom\",\n }}\n >\n \n \n \n ) : (\n false\n )}\n
\n );\n}\n","import BuyBookButton from \"components/BuyBookButton\";\n\nimport { PageSerializersBooksShow } from \"types/serializers\";\n\nexport default function BookButtons({\n book,\n}: {\n book?: PageSerializersBooksShow;\n}) {\n return ;\n}\n","import { PageSerializersBooksLayout } from \"types/serializers\";\nimport useCurrentUser from \"hooks/fragments/useCurrentUser\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport faClone from \"icons/regular/clone.svg\";\nimport faBug from \"icons/regular/bug.svg\";\nimport faPencil from \"icons/solid/pencil.svg\";\nimport DrawerButton from \"components/ui/DrawerButton\";\nimport DrawerDivider from \"components/ui/DrawerDivider\";\nimport ReportButton from \"../Report/ReportButton\";\n\nexport default function ReportBookMenu({\n book,\n onDuplicate,\n onClose,\n}: {\n book: PageSerializersBooksLayout;\n onDuplicate: () => void;\n onClose: () => void;\n}) {\n const admin = useCurrentUser((u) => u.admin);\n\n return (\n
\n \n \n Flag As Duplicate\n \n\n \n\n \n \n Edit this book\n \n\n \n\n {admin && (\n <>\n \n \n Edit in admin\n \n \n \n )}\n\n \n \n Report a problem\n \n
\n );\n}\n","import Icon from \"hardcover-ui/components/Icon\";\nimport Button from \"hardcover-ui/components/Button\";\nimport { PageSerializersBooksLayout } from \"types/serializers\";\nimport faFlag from \"icons/solid/flag.svg\";\nimport faChevronDown from \"icons/solid/chevron-down.svg\";\nimport { Suspense, useRef, useState } from \"react\";\nimport { Drawer } from \"features/Drawer\";\nimport ReportBookMenu from \"./ReportBookMenu\";\n\nexport interface Props {\n book: PageSerializersBooksLayout;\n onDuplicate: () => void;\n}\n\nexport default function ReportBookButton({ book, onDuplicate }: Props) {\n const [open, setOpen] = useState(false);\n const portalRef = useRef();\n const buttonRef = useRef();\n\n return (\n
\n \n\n\n {open && portalRef.current && buttonRef.current ? (\n {},\n placement: \"bottom\",\n }}\n />\n }\n >\n setOpen(false),\n placement: \"bottom\",\n }}\n >\n { onDuplicate(); setOpen(false); }}\n onClose={() => setOpen(false)}\n />\n \n \n ) : (\n false\n )}\n
\n );\n}\n","import { Suspense, lazy, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { searchActions } from \"store/search/searchSlice\";\nimport ReportBookButton from \"./ReportBookButton\";\nimport { PageSerializersBooksLayout } from \"types/serializers\";\n\nconst DuplicateModal = lazy(() => import(\"../parts/DuplicateModal\"));\n\nexport interface Props {\n book: PageSerializersBooksLayout;\n}\n\nexport default function ReportBookButtonContent({ book }: Props) {\n const [showDuplicateModal, setShowDuplicateModal] = useState(false);\n const dispatch = useDispatch();\n\n const toggleDuplicate = () => {\n setShowDuplicateModal(!showDuplicateModal);\n };\n\n const onClose = () => {\n setShowDuplicateModal(false);\n dispatch(searchActions.reset());\n };\n\n return (\n <>\n \n\n {showDuplicateModal && (\n \n \n \n )}\n \n );\n}\n","import * as React from \"react\";\nconst SvgIdCard = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 576 512\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M64 32C28.7 32 0 60.7 0 96v32h576V96c0-35.3-28.7-64-64-64zm176 224a64 64 0 1 0-128 0 64 64 0 1 0 128 0M64 405.3c0 5.9 4.8 10.7 10.7 10.7h202.6c5.9 0 10.7-4.8 10.7-10.7 0-29.5-23.9-53.3-53.3-53.3H117.3C87.9 352 64 375.9 64 405.3\", className: \"fa-primary\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M576 128H0v288c0 35.3 28.7 64 64 64h448c35.3 0 64-28.7 64-64zM117.3 352h117.4c29.5 0 53.3 23.9 53.3 53.3 0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7 0-29.5 23.9-53.3 53.3-53.3m-5.3-96a64 64 0 1 1 128 0 64 64 0 1 1-128 0m256-64h128c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16m0 64h128c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16m0 64h128c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16\", style: {\n opacity: 0.4\n} }));\nexport default SvgIdCard;\n","import compact from \"lodash/compact\";\nimport uniq from \"lodash/uniq\";\nimport LibrarianType from \"types/LibrarianType\";\nimport UserType from \"types/UserType\";\n\nexport default function librarianRolesForUser(user: UserType) {\n let roles = user.librarianRoles;\n if (user.admin) {\n roles = [\"admin\", \"appender\", \"editor\", \"librarian\"];\n } else if (user.pro) {\n roles = uniq([\n ...roles,\n ...[\"appender\", \"editor\", \"librarian\"],\n ]) as LibrarianType[];\n }\n return compact(roles);\n}\n","import Button from \"hardcover-ui/components/Button\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport useCurrentUser from \"hooks/fragments/useCurrentUser\";\nimport idIcon from \"icons/duotone/id-card.svg\";\nimport librarianRolesForUser from \"lib/policies/librarianRolesForUser\";\n\nexport default function ApplyLibrarianButton() {\n const user = useCurrentUser();\n const librarianRoles = user ? librarianRolesForUser(user) : [];\n\n // If already a librarian, don't show this button\n if (user?.pro || librarianRoles?.indexOf(\"librarian\") !== -1) {\n return false;\n }\n\n return (\n
\n \n Want to edit this book?\n \n \n \n Become a Librarian\n \n
\n );\n}\n","import useIsLoggedIn from \"hooks/user/useIsLoggedIn\";\nimport { PageSerializersBooksShow } from \"types/serializers\";\nimport ReportBookButtonContent from \"components/ReportDropdown/ReportBookButton/ReportBookButtonContent\";\nimport ApplyLibrarianButton from \"./ApplyLibrarian\";\n\nexport default function LoggedInBookLinks({\n book,\n}: {\n book: PageSerializersBooksShow;\n}) {\n const isLoggedIn = useIsLoggedIn();\n\n return (\n
\n {isLoggedIn ? : false}\n \n
\n );\n}\n","import { useMemo, useState } from \"react\";\nimport TagListLinks from \"components/tags/TagListLinks\";\nimport Button from \"hardcover-ui/components/Button\";\nimport Heading from \"hardcover-ui/components/Heading\";\nimport Text from \"hardcover-ui/components/Text\";\nimport pluralize from \"lib/pluralize\";\nimport { TagSerializersBasicTag } from \"types/serializers\";\n\nexport default function TagGroup({ tags }: { tags: TagSerializersBasicTag[] }) {\n const category = tags.length > 0 ? tags[0].category : null;\n const [showAllSpoilers, setShowAllSpoilers] = useState(false);\n if (tags.length === 0) {\n return <>;\n }\n const hasSpoilers = useMemo(() => {\n if (category === \"Content Warning\") {\n return true;\n }\n return (\n tags.filter((tag) => {\n const ratio = tag.spoilerRatio;\n return ratio > 0.5;\n }).length > 0\n );\n }, [tags]);\n\n // If this is a content warning:\n // Always show the \"show button\"\n // Pass true for hideSpoilers\n // Otherwise\n // Only show the \"show button\" if there is a spoiler\n // Pass false for hideSpoilers, unless they've clicked \"show\"\n return (\n
\n
\n \n {pluralize(category, tags.length)}\n \n {hasSpoilers && !showAllSpoilers && (\n \n )}\n
\n \n
\n );\n}\n","import TagGroup from \"components/tags/TagGroup\";\nimport Container from \"hardcover-ui/components/Container\";\nimport { PageSerializersBooksShow } from \"types/serializers\";\n\nexport default function BookTags({ book }: { book: PageSerializersBooksShow }) {\n const tagGroups =\n (book.genres.length > 0 ? 1 : 0) +\n (book.moods.length > 0 ? 1 : 0) +\n (book.contentWarnings?.length > 0 ? 1 : 0);\n\n const genres = book.genres || [];\n const moods = book.moods || [];\n const contentWarnings = book.contentWarnings || [];\n\n if (\n genres.length === 0 &&\n moods.length === 0 &&\n contentWarnings.length === 0\n ) {\n return <>;\n }\n\n return (\n \n

Tags

\n
\n \n \n \n
\n
\n );\n}\n","import Container from \"hardcover-ui/components/Container\";\nimport Heading from \"hardcover-ui/components/Heading\";\nimport Divider from \"components/ui/Divider\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport BookCharacterLink from \"components/characters/BookCharacterLink\";\nimport { PageSerializersBooksShow } from \"types/serializers\";\n\nexport default function TopBookCharacters({\n book,\n limit,\n}: {\n book: PageSerializersBooksShow;\n limit: number;\n}) {\n const { bookCharacters } = book;\n if (!bookCharacters || bookCharacters.length == 0) {\n return false;\n }\n\n const characters = bookCharacters.slice(0, limit);\n\n return (\n \n
\n \n Characters\n \n \n See all ({book.charactersCount})\n \n
\n\n
\n {characters.map((bookCharacter) => (\n \n ))}\n
\n\n \n
\n );\n}\n","import Divider from \"components/ui/Divider\";\nimport ExpandingText from \"components/ui/ExpandingText\";\nimport Container from \"hardcover-ui/components/Container\";\nimport Text from \"hardcover-ui/components/Text\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport useIsLoggedIn from \"hooks/user/useIsLoggedIn\";\nimport BookPrompts from \"./BookPrompts\";\nimport BookSerieses from \"./BookSerieses\";\nimport TopBookReviews from \"./reviews/TopBookReviews\";\nimport TopBookLists from \"./TopBookLists\";\nimport SimilarBooks from \"./SimilarBooks\";\nimport BookButtons from \"./BookButtons\";\nimport LoggedInBookLinks from \"./LoggedInBookLink\";\nimport BookTags from \"./BookTags\";\nimport TopBookCharacters from \"./TopBookCharacters\";\nimport { usePage } from \"@inertiajs/react\";\nimport { BookPageProps } from \"pages/clientverse/books/show.props\";\nimport { lazy, Suspense } from \"react\";\nimport LoadingBook from \"hardcover-ui/components/LoadingBook\";\n\nconst CurrentUserDetails = lazy(() => import(\"./CurrentUserDetails\"));\n\nexport default function BookInfo() {\n const { page: book } = usePage().props;\n\n const isLoggedIn = useIsLoggedIn();\n return (\n <>\n \n {book.description ? (\n <>\n {book.headline && (\n \n {book.headline}\n \n )}\n \n \n ) : (\n \n We don't have a description for this book yet. You can help out the\n author by{\" \"}\n \n adding a description\n \n .\n \n )}\n \n\n \n \n \n\n\n \n \n \n\n \n \n \n \n\n\n \n \n \n\n {isLoggedIn ? }> : false}\n\n \n\n \n\n \n\n \n\n \n\n \n \n );\n}\n","import { DefaultLayoutWrapper } from \"layouts/DefaultLayout\";\nimport BookInfo from \"features/books/components/BookInfo\";\nimport BookLayout from \"features/books/layouts/BookLayout/BookLayout\";\n\nfunction Show() {\n return (\n \n \n \n );\n}\n\nShow.layout = DefaultLayoutWrapper;\nexport default Show;"],"file":"assets/show-Ckkc8tKz.js"}