@jarrodmedrano/ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -0
- package/dist/components/auth/providers.cjs +83 -0
- package/dist/components/auth/providers.cjs.map +1 -0
- package/dist/components/auth/providers.d.ts +19 -0
- package/dist/components/auth/providers.d.ts.map +1 -0
- package/dist/components/auth/providers.js +59 -0
- package/dist/components/auth/providers.js.map +1 -0
- package/dist/components/card/back-button.cjs +45 -0
- package/dist/components/card/back-button.cjs.map +1 -0
- package/dist/components/card/back-button.d.ts +7 -0
- package/dist/components/card/back-button.d.ts.map +1 -0
- package/dist/components/card/back-button.js +11 -0
- package/dist/components/card/back-button.js.map +1 -0
- package/dist/components/card/card-wrapper.cjs +56 -0
- package/dist/components/card/card-wrapper.cjs.map +1 -0
- package/dist/components/card/card-wrapper.d.ts +11 -0
- package/dist/components/card/card-wrapper.d.ts.map +1 -0
- package/dist/components/card/card-wrapper.js +36 -0
- package/dist/components/card/card-wrapper.js.map +1 -0
- package/dist/components/card/header.cjs +52 -0
- package/dist/components/card/header.cjs.map +1 -0
- package/dist/components/card/header.d.ts +8 -0
- package/dist/components/card/header.d.ts.map +1 -0
- package/dist/components/card/header.js +18 -0
- package/dist/components/card/header.js.map +1 -0
- package/dist/components/combobox/ComboList.cjs +78 -0
- package/dist/components/combobox/ComboList.cjs.map +1 -0
- package/dist/components/combobox/ComboList.d.ts +14 -0
- package/dist/components/combobox/ComboList.d.ts.map +1 -0
- package/dist/components/combobox/ComboList.js +61 -0
- package/dist/components/combobox/ComboList.js.map +1 -0
- package/dist/components/combobox/index.cjs +119 -0
- package/dist/components/combobox/index.cjs.map +1 -0
- package/dist/components/combobox/index.d.ts +6 -0
- package/dist/components/combobox/index.d.ts.map +1 -0
- package/dist/components/combobox/index.js +101 -0
- package/dist/components/combobox/index.js.map +1 -0
- package/dist/components/dashboard/account-select.cjs +69 -0
- package/dist/components/dashboard/account-select.cjs.map +1 -0
- package/dist/components/dashboard/account-select.d.ts +12 -0
- package/dist/components/dashboard/account-select.d.ts.map +1 -0
- package/dist/components/dashboard/account-select.js +41 -0
- package/dist/components/dashboard/account-select.js.map +1 -0
- package/dist/components/dashboard/account-switcher.cjs +72 -0
- package/dist/components/dashboard/account-switcher.cjs.map +1 -0
- package/dist/components/dashboard/account-switcher.d.ts +12 -0
- package/dist/components/dashboard/account-switcher.d.ts.map +1 -0
- package/dist/components/dashboard/account-switcher.js +44 -0
- package/dist/components/dashboard/account-switcher.js.map +1 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.cjs +100 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.d.ts +3 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.js +81 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.js.map +1 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.cjs +77 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.d.ts +9 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.js +40 -0
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.js.map +1 -0
- package/dist/components/dashboard/sidebar/EntityList.cjs +121 -0
- package/dist/components/dashboard/sidebar/EntityList.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/EntityList.d.ts +3 -0
- package/dist/components/dashboard/sidebar/EntityList.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/EntityList.js +87 -0
- package/dist/components/dashboard/sidebar/EntityList.js.map +1 -0
- package/dist/components/dashboard/sidebar/EntityList.styles.cjs +95 -0
- package/dist/components/dashboard/sidebar/EntityList.styles.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/EntityList.styles.d.ts +14 -0
- package/dist/components/dashboard/sidebar/EntityList.styles.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/EntityList.styles.js +57 -0
- package/dist/components/dashboard/sidebar/EntityList.styles.js.map +1 -0
- package/dist/components/dashboard/sidebar/SectionHeader.cjs +99 -0
- package/dist/components/dashboard/sidebar/SectionHeader.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/SectionHeader.d.ts +3 -0
- package/dist/components/dashboard/sidebar/SectionHeader.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/SectionHeader.js +81 -0
- package/dist/components/dashboard/sidebar/SectionHeader.js.map +1 -0
- package/dist/components/dashboard/sidebar/SectionHeader.styles.cjs +116 -0
- package/dist/components/dashboard/sidebar/SectionHeader.styles.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/SectionHeader.styles.d.ts +18 -0
- package/dist/components/dashboard/sidebar/SectionHeader.styles.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/SectionHeader.styles.js +77 -0
- package/dist/components/dashboard/sidebar/SectionHeader.styles.js.map +1 -0
- package/dist/components/dashboard/sidebar/index.cjs +41 -0
- package/dist/components/dashboard/sidebar/index.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/index.d.ts +6 -0
- package/dist/components/dashboard/sidebar/index.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/index.js +12 -0
- package/dist/components/dashboard/sidebar/index.js.map +1 -0
- package/dist/components/dashboard/sidebar/sidebar.cjs +50 -0
- package/dist/components/dashboard/sidebar/sidebar.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/sidebar.d.ts +15 -0
- package/dist/components/dashboard/sidebar/sidebar.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/sidebar.js +26 -0
- package/dist/components/dashboard/sidebar/sidebar.js.map +1 -0
- package/dist/components/dashboard/sidebar/tabs.cjs +52 -0
- package/dist/components/dashboard/sidebar/tabs.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/tabs.d.ts +3 -0
- package/dist/components/dashboard/sidebar/tabs.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/tabs.js +37 -0
- package/dist/components/dashboard/sidebar/tabs.js.map +1 -0
- package/dist/components/dashboard/sidebar/types.cjs +17 -0
- package/dist/components/dashboard/sidebar/types.cjs.map +1 -0
- package/dist/components/dashboard/sidebar/types.d.ts +36 -0
- package/dist/components/dashboard/sidebar/types.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar/types.js +1 -0
- package/dist/components/dashboard/sidebar/types.js.map +1 -0
- package/dist/components/dashboard/sidebar-nav.cjs +99 -0
- package/dist/components/dashboard/sidebar-nav.cjs.map +1 -0
- package/dist/components/dashboard/sidebar-nav.d.ts +24 -0
- package/dist/components/dashboard/sidebar-nav.d.ts.map +1 -0
- package/dist/components/dashboard/sidebar-nav.js +75 -0
- package/dist/components/dashboard/sidebar-nav.js.map +1 -0
- package/dist/components/dashboard/utils/build-nav.cjs +103 -0
- package/dist/components/dashboard/utils/build-nav.cjs.map +1 -0
- package/dist/components/dashboard/utils/build-nav.d.ts +7 -0
- package/dist/components/dashboard/utils/build-nav.d.ts.map +1 -0
- package/dist/components/dashboard/utils/build-nav.js +78 -0
- package/dist/components/dashboard/utils/build-nav.js.map +1 -0
- package/dist/components/dashboard/utils.cjs +2 -0
- package/dist/components/dashboard/utils.cjs.map +1 -0
- package/dist/components/dashboard/utils.d.ts +1 -0
- package/dist/components/dashboard/utils.d.ts.map +1 -0
- package/dist/components/dashboard/utils.js +1 -0
- package/dist/components/dashboard/utils.js.map +1 -0
- package/dist/components/dashboard/with-dashboard.cjs +189 -0
- package/dist/components/dashboard/with-dashboard.cjs.map +1 -0
- package/dist/components/dashboard/with-dashboard.d.ts +6 -0
- package/dist/components/dashboard/with-dashboard.d.ts.map +1 -0
- package/dist/components/dashboard/with-dashboard.js +175 -0
- package/dist/components/dashboard/with-dashboard.js.map +1 -0
- package/dist/components/detail/DetailLayout.styles.cjs +116 -0
- package/dist/components/detail/DetailLayout.styles.cjs.map +1 -0
- package/dist/components/detail/DetailLayout.styles.d.ts +18 -0
- package/dist/components/detail/DetailLayout.styles.d.ts.map +1 -0
- package/dist/components/detail/DetailLayout.styles.js +74 -0
- package/dist/components/detail/DetailLayout.styles.js.map +1 -0
- package/dist/components/detail/index.cjs +45 -0
- package/dist/components/detail/index.cjs.map +1 -0
- package/dist/components/detail/index.d.ts +2 -0
- package/dist/components/detail/index.d.ts.map +1 -0
- package/dist/components/detail/index.js +23 -0
- package/dist/components/detail/index.js.map +1 -0
- package/dist/components/flowbite/card-images.cjs +104 -0
- package/dist/components/flowbite/card-images.cjs.map +1 -0
- package/dist/components/flowbite/card-images.d.ts +3 -0
- package/dist/components/flowbite/card-images.d.ts.map +1 -0
- package/dist/components/flowbite/card-images.js +84 -0
- package/dist/components/flowbite/card-images.js.map +1 -0
- package/dist/components/flowbite/gallery.cjs +53 -0
- package/dist/components/flowbite/gallery.cjs.map +1 -0
- package/dist/components/flowbite/gallery.d.ts +3 -0
- package/dist/components/flowbite/gallery.d.ts.map +1 -0
- package/dist/components/flowbite/gallery.js +23 -0
- package/dist/components/flowbite/gallery.js.map +1 -0
- package/dist/components/flowbite/masonry.cjs +73 -0
- package/dist/components/flowbite/masonry.cjs.map +1 -0
- package/dist/components/flowbite/masonry.d.ts +13 -0
- package/dist/components/flowbite/masonry.d.ts.map +1 -0
- package/dist/components/flowbite/masonry.js +43 -0
- package/dist/components/flowbite/masonry.js.map +1 -0
- package/dist/components/flowbite/search-hero.cjs +109 -0
- package/dist/components/flowbite/search-hero.cjs.map +1 -0
- package/dist/components/flowbite/search-hero.d.ts +6 -0
- package/dist/components/flowbite/search-hero.d.ts.map +1 -0
- package/dist/components/flowbite/search-hero.js +89 -0
- package/dist/components/flowbite/search-hero.js.map +1 -0
- package/dist/components/generic/copyright.cjs +32 -0
- package/dist/components/generic/copyright.cjs.map +1 -0
- package/dist/components/generic/copyright.d.ts +4 -0
- package/dist/components/generic/copyright.d.ts.map +1 -0
- package/dist/components/generic/copyright.js +8 -0
- package/dist/components/generic/copyright.js.map +1 -0
- package/dist/components/generic/icons.cjs +186 -0
- package/dist/components/generic/icons.cjs.map +1 -0
- package/dist/components/generic/icons.d.ts +19 -0
- package/dist/components/generic/icons.d.ts.map +1 -0
- package/dist/components/generic/icons.js +164 -0
- package/dist/components/generic/icons.js.map +1 -0
- package/dist/components/header/header.cjs +130 -0
- package/dist/components/header/header.cjs.map +1 -0
- package/dist/components/header/header.d.ts +14 -0
- package/dist/components/header/header.d.ts.map +1 -0
- package/dist/components/header/header.js +106 -0
- package/dist/components/header/header.js.map +1 -0
- package/dist/components/header/internal/main-nav.cjs +65 -0
- package/dist/components/header/internal/main-nav.cjs.map +1 -0
- package/dist/components/header/internal/main-nav.d.ts +4 -0
- package/dist/components/header/internal/main-nav.d.ts.map +1 -0
- package/dist/components/header/internal/main-nav.js +31 -0
- package/dist/components/header/internal/main-nav.js.map +1 -0
- package/dist/components/header/internal/mobile-nav.cjs +209 -0
- package/dist/components/header/internal/mobile-nav.cjs.map +1 -0
- package/dist/components/header/internal/mobile-nav.d.ts +2 -0
- package/dist/components/header/internal/mobile-nav.d.ts.map +1 -0
- package/dist/components/header/internal/mobile-nav.js +177 -0
- package/dist/components/header/internal/mobile-nav.js.map +1 -0
- package/dist/components/header/internal/mode-toggle.cjs +73 -0
- package/dist/components/header/internal/mode-toggle.cjs.map +1 -0
- package/dist/components/header/internal/mode-toggle.d.ts +8 -0
- package/dist/components/header/internal/mode-toggle.d.ts.map +1 -0
- package/dist/components/header/internal/mode-toggle.js +54 -0
- package/dist/components/header/internal/mode-toggle.js.map +1 -0
- package/dist/components/header/internal/site-header.cjs +62 -0
- package/dist/components/header/internal/site-header.cjs.map +1 -0
- package/dist/components/header/internal/site-header.d.ts +15 -0
- package/dist/components/header/internal/site-header.d.ts.map +1 -0
- package/dist/components/header/internal/site-header.js +38 -0
- package/dist/components/header/internal/site-header.js.map +1 -0
- package/dist/components/header/langbutton/langbutton.cjs +54 -0
- package/dist/components/header/langbutton/langbutton.cjs.map +1 -0
- package/dist/components/header/langbutton/langbutton.d.ts +4 -0
- package/dist/components/header/langbutton/langbutton.d.ts.map +1 -0
- package/dist/components/header/langbutton/langbutton.js +35 -0
- package/dist/components/header/langbutton/langbutton.js.map +1 -0
- package/dist/components/header/userbutton/user-dropdown.cjs +72 -0
- package/dist/components/header/userbutton/user-dropdown.cjs.map +1 -0
- package/dist/components/header/userbutton/user-dropdown.d.ts +10 -0
- package/dist/components/header/userbutton/user-dropdown.d.ts.map +1 -0
- package/dist/components/header/userbutton/user-dropdown.js +64 -0
- package/dist/components/header/userbutton/user-dropdown.js.map +1 -0
- package/dist/components/header/userbutton/userbutton.cjs +50 -0
- package/dist/components/header/userbutton/userbutton.cjs.map +1 -0
- package/dist/components/header/userbutton/userbutton.d.ts +10 -0
- package/dist/components/header/userbutton/userbutton.d.ts.map +1 -0
- package/dist/components/header/userbutton/userbutton.js +16 -0
- package/dist/components/header/userbutton/userbutton.js.map +1 -0
- package/dist/components/hooks/use-page-nav.cjs +89 -0
- package/dist/components/hooks/use-page-nav.cjs.map +1 -0
- package/dist/components/hooks/use-page-nav.d.ts +5 -0
- package/dist/components/hooks/use-page-nav.d.ts.map +1 -0
- package/dist/components/hooks/use-page-nav.js +61 -0
- package/dist/components/hooks/use-page-nav.js.map +1 -0
- package/dist/components/hooks/use-user-entities.cjs +30 -0
- package/dist/components/hooks/use-user-entities.cjs.map +1 -0
- package/dist/components/hooks/use-user-entities.d.ts +2 -0
- package/dist/components/hooks/use-user-entities.d.ts.map +1 -0
- package/dist/components/hooks/use-user-entities.js +6 -0
- package/dist/components/hooks/use-user-entities.js.map +1 -0
- package/dist/components/icons/apple.cjs +47 -0
- package/dist/components/icons/apple.cjs.map +1 -0
- package/dist/components/icons/apple.d.ts +2 -0
- package/dist/components/icons/apple.d.ts.map +1 -0
- package/dist/components/icons/apple.js +23 -0
- package/dist/components/icons/apple.js.map +1 -0
- package/dist/components/icons/facebook.cjs +49 -0
- package/dist/components/icons/facebook.cjs.map +1 -0
- package/dist/components/icons/facebook.d.ts +2 -0
- package/dist/components/icons/facebook.d.ts.map +1 -0
- package/dist/components/icons/facebook.js +25 -0
- package/dist/components/icons/facebook.js.map +1 -0
- package/dist/components/icons/github.cjs +49 -0
- package/dist/components/icons/github.cjs.map +1 -0
- package/dist/components/icons/github.d.ts +2 -0
- package/dist/components/icons/github.d.ts.map +1 -0
- package/dist/components/icons/github.js +25 -0
- package/dist/components/icons/github.js.map +1 -0
- package/dist/components/icons/google.cjs +49 -0
- package/dist/components/icons/google.cjs.map +1 -0
- package/dist/components/icons/google.d.ts +2 -0
- package/dist/components/icons/google.d.ts.map +1 -0
- package/dist/components/icons/google.js +25 -0
- package/dist/components/icons/google.js.map +1 -0
- package/dist/components/icons/logo.cjs +49 -0
- package/dist/components/icons/logo.cjs.map +1 -0
- package/dist/components/icons/logo.d.ts +4 -0
- package/dist/components/icons/logo.d.ts.map +1 -0
- package/dist/components/icons/logo.js +25 -0
- package/dist/components/icons/logo.js.map +1 -0
- package/dist/components/lightbox/GallerySection.cjs +53 -0
- package/dist/components/lightbox/GallerySection.cjs.map +1 -0
- package/dist/components/lightbox/GallerySection.d.ts +12 -0
- package/dist/components/lightbox/GallerySection.d.ts.map +1 -0
- package/dist/components/lightbox/GallerySection.js +29 -0
- package/dist/components/lightbox/GallerySection.js.map +1 -0
- package/dist/components/lightbox/ImageLightbox.cjs +244 -0
- package/dist/components/lightbox/ImageLightbox.cjs.map +1 -0
- package/dist/components/lightbox/ImageLightbox.d.ts +3 -0
- package/dist/components/lightbox/ImageLightbox.d.ts.map +1 -0
- package/dist/components/lightbox/ImageLightbox.js +220 -0
- package/dist/components/lightbox/ImageLightbox.js.map +1 -0
- package/dist/components/lightbox/ImageLightbox.types.cjs +17 -0
- package/dist/components/lightbox/ImageLightbox.types.cjs.map +1 -0
- package/dist/components/lightbox/ImageLightbox.types.d.ts +28 -0
- package/dist/components/lightbox/ImageLightbox.types.d.ts.map +1 -0
- package/dist/components/lightbox/ImageLightbox.types.js +1 -0
- package/dist/components/lightbox/ImageLightbox.types.js.map +1 -0
- package/dist/components/lightbox/index.cjs +38 -0
- package/dist/components/lightbox/index.cjs.map +1 -0
- package/dist/components/lightbox/index.d.ts +8 -0
- package/dist/components/lightbox/index.d.ts.map +1 -0
- package/dist/components/lightbox/index.js +11 -0
- package/dist/components/lightbox/index.js.map +1 -0
- package/dist/components/lightbox/useEntityLightbox.cjs +57 -0
- package/dist/components/lightbox/useEntityLightbox.cjs.map +1 -0
- package/dist/components/lightbox/useEntityLightbox.d.ts +25 -0
- package/dist/components/lightbox/useEntityLightbox.d.ts.map +1 -0
- package/dist/components/lightbox/useEntityLightbox.js +33 -0
- package/dist/components/lightbox/useEntityLightbox.js.map +1 -0
- package/dist/components/lightbox/useLightbox.cjs +59 -0
- package/dist/components/lightbox/useLightbox.cjs.map +1 -0
- package/dist/components/lightbox/useLightbox.d.ts +9 -0
- package/dist/components/lightbox/useLightbox.d.ts.map +1 -0
- package/dist/components/lightbox/useLightbox.js +35 -0
- package/dist/components/lightbox/useLightbox.js.map +1 -0
- package/dist/components/search/search.cjs +71 -0
- package/dist/components/search/search.cjs.map +1 -0
- package/dist/components/search/search.d.ts +2 -0
- package/dist/components/search/search.d.ts.map +1 -0
- package/dist/components/search/search.js +63 -0
- package/dist/components/search/search.js.map +1 -0
- package/dist/components/tailwind/contact.cjs +380 -0
- package/dist/components/tailwind/contact.cjs.map +1 -0
- package/dist/components/tailwind/contact.d.ts +2 -0
- package/dist/components/tailwind/contact.d.ts.map +1 -0
- package/dist/components/tailwind/contact.js +356 -0
- package/dist/components/tailwind/contact.js.map +1 -0
- package/dist/components/tailwind/content-page.cjs +58 -0
- package/dist/components/tailwind/content-page.cjs.map +1 -0
- package/dist/components/tailwind/content-page.d.ts +18 -0
- package/dist/components/tailwind/content-page.d.ts.map +1 -0
- package/dist/components/tailwind/content-page.js +32 -0
- package/dist/components/tailwind/content-page.js.map +1 -0
- package/dist/components/tailwind/feature.cjs +95 -0
- package/dist/components/tailwind/feature.cjs.map +1 -0
- package/dist/components/tailwind/feature.d.ts +2 -0
- package/dist/components/tailwind/feature.d.ts.map +1 -0
- package/dist/components/tailwind/feature.js +75 -0
- package/dist/components/tailwind/feature.js.map +1 -0
- package/dist/components/tailwind/featurelist.cjs +99 -0
- package/dist/components/tailwind/featurelist.cjs.map +1 -0
- package/dist/components/tailwind/featurelist.d.ts +2 -0
- package/dist/components/tailwind/featurelist.d.ts.map +1 -0
- package/dist/components/tailwind/featurelist.js +65 -0
- package/dist/components/tailwind/featurelist.js.map +1 -0
- package/dist/components/tailwind/footer.cjs +104 -0
- package/dist/components/tailwind/footer.cjs.map +1 -0
- package/dist/components/tailwind/footer.d.ts +2 -0
- package/dist/components/tailwind/footer.d.ts.map +1 -0
- package/dist/components/tailwind/footer.js +80 -0
- package/dist/components/tailwind/footer.js.map +1 -0
- package/dist/components/tailwind/hero.cjs +130 -0
- package/dist/components/tailwind/hero.cjs.map +1 -0
- package/dist/components/tailwind/hero.d.ts +22 -0
- package/dist/components/tailwind/hero.d.ts.map +1 -0
- package/dist/components/tailwind/hero.js +106 -0
- package/dist/components/tailwind/hero.js.map +1 -0
- package/dist/components/tailwind/pricing.cjs +214 -0
- package/dist/components/tailwind/pricing.cjs.map +1 -0
- package/dist/components/tailwind/pricing.d.ts +6 -0
- package/dist/components/tailwind/pricing.d.ts.map +1 -0
- package/dist/components/tailwind/pricing.js +190 -0
- package/dist/components/tailwind/pricing.js.map +1 -0
- package/dist/components/tailwind/privacy.cjs +138 -0
- package/dist/components/tailwind/privacy.cjs.map +1 -0
- package/dist/components/tailwind/privacy.d.ts +2 -0
- package/dist/components/tailwind/privacy.d.ts.map +1 -0
- package/dist/components/tailwind/privacy.js +114 -0
- package/dist/components/tailwind/privacy.js.map +1 -0
- package/dist/components/tailwind/providerIcons.cjs +48 -0
- package/dist/components/tailwind/providerIcons.cjs.map +1 -0
- package/dist/components/tailwind/providerIcons.d.ts +4 -0
- package/dist/components/tailwind/providerIcons.d.ts.map +1 -0
- package/dist/components/tailwind/providerIcons.js +24 -0
- package/dist/components/tailwind/providerIcons.js.map +1 -0
- package/dist/components/ui/avatar.cjs +120 -0
- package/dist/components/ui/avatar.cjs.map +1 -0
- package/dist/components/ui/avatar.d.ts +7 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +86 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/breadcrumb.cjs +63 -0
- package/dist/components/ui/breadcrumb.cjs.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +10 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +29 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button.cjs +105 -0
- package/dist/components/ui/button.cjs.map +1 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +82 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/card.cjs +129 -0
- package/dist/components/ui/card.cjs.map +1 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +102 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/checkbox.cjs +98 -0
- package/dist/components/ui/checkbox.cjs.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +66 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/command.cjs +200 -0
- package/dist/components/ui/command.cjs.map +1 -0
- package/dist/components/ui/command.d.ts +83 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +160 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/dialog.cjs +204 -0
- package/dist/components/ui/dialog.cjs.map +1 -0
- package/dist/components/ui/dialog.d.ts +14 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +163 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/drawer.cjs +191 -0
- package/dist/components/ui/drawer.cjs.map +1 -0
- package/dist/components/ui/drawer.d.ts +14 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +160 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/dropdown-menu.cjs +323 -0
- package/dist/components/ui/dropdown-menu.cjs.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +26 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +277 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/input.cjs +72 -0
- package/dist/components/ui/input.cjs.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +50 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.cjs +85 -0
- package/dist/components/ui/label.cjs.map +1 -0
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +53 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/menubar.cjs +351 -0
- package/dist/components/ui/menubar.cjs.map +1 -0
- package/dist/components/ui/menubar.d.ts +27 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/menubar.js +304 -0
- package/dist/components/ui/menubar.js.map +1 -0
- package/dist/components/ui/navigation-menu.cjs +257 -0
- package/dist/components/ui/navigation-menu.cjs.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +15 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.js +217 -0
- package/dist/components/ui/navigation-menu.js.map +1 -0
- package/dist/components/ui/popover.cjs +109 -0
- package/dist/components/ui/popover.cjs.map +1 -0
- package/dist/components/ui/popover.d.ts +8 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +74 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/resizable.cjs +124 -0
- package/dist/components/ui/resizable.cjs.map +1 -0
- package/dist/components/ui/resizable.d.ts +26 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/resizable.js +90 -0
- package/dist/components/ui/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area.cjs +132 -0
- package/dist/components/ui/scroll-area.cjs.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +99 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.cjs +254 -0
- package/dist/components/ui/select.cjs.map +1 -0
- package/dist/components/ui/select.d.ts +14 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +213 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/sheet.cjs +203 -0
- package/dist/components/ui/sheet.cjs.map +1 -0
- package/dist/components/ui/sheet.d.ts +14 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +164 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/skeleton.cjs +66 -0
- package/dist/components/ui/skeleton.cjs.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +44 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/spinner.cjs +128 -0
- package/dist/components/ui/spinner.cjs.map +1 -0
- package/dist/components/ui/spinner.d.ts +12 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/components/ui/spinner.js +105 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.cjs +98 -0
- package/dist/components/ui/switch.cjs.map +1 -0
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +66 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/tabs.cjs +136 -0
- package/dist/components/ui/tabs.cjs.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +101 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.cjs +69 -0
- package/dist/components/ui/textarea.cjs.map +1 -0
- package/dist/components/ui/textarea.d.ts +4 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +47 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/toast.cjs +169 -0
- package/dist/components/ui/toast.cjs.map +1 -0
- package/dist/components/ui/toast.d.ts +15 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +131 -0
- package/dist/components/ui/toast.js.map +1 -0
- package/dist/components/ui/toaster.cjs +78 -0
- package/dist/components/ui/toaster.cjs.map +1 -0
- package/dist/components/ui/toaster.d.ts +2 -0
- package/dist/components/ui/toaster.d.ts.map +1 -0
- package/dist/components/ui/toaster.js +63 -0
- package/dist/components/ui/toaster.js.map +1 -0
- package/dist/components/ui/tooltip.cjs +126 -0
- package/dist/components/ui/tooltip.cjs.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +91 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components/ui/use-toast.cjs +187 -0
- package/dist/components/ui/use-toast.cjs.map +1 -0
- package/dist/components/ui/use-toast.d.ts +45 -0
- package/dist/components/ui/use-toast.d.ts.map +1 -0
- package/dist/components/ui/use-toast.js +153 -0
- package/dist/components/ui/use-toast.js.map +1 -0
- package/dist/components/upgrade-prompt/UpgradePrompt.cjs +80 -0
- package/dist/components/upgrade-prompt/UpgradePrompt.cjs.map +1 -0
- package/dist/components/upgrade-prompt/UpgradePrompt.d.ts +12 -0
- package/dist/components/upgrade-prompt/UpgradePrompt.d.ts.map +1 -0
- package/dist/components/upgrade-prompt/UpgradePrompt.js +46 -0
- package/dist/components/upgrade-prompt/UpgradePrompt.js.map +1 -0
- package/dist/components/upgrade-prompt/index.cjs +29 -0
- package/dist/components/upgrade-prompt/index.cjs.map +1 -0
- package/dist/components/upgrade-prompt/index.d.ts +3 -0
- package/dist/components/upgrade-prompt/index.d.ts.map +1 -0
- package/dist/components/upgrade-prompt/index.js +5 -0
- package/dist/components/upgrade-prompt/index.js.map +1 -0
- package/dist/config/docs.d.ts +8 -0
- package/dist/config/docs.d.ts.map +1 -0
- package/dist/config/site.d.ts +12 -0
- package/dist/config/site.d.ts.map +1 -0
- package/dist/hooks/useRecaptcha.d.ts +16 -0
- package/dist/hooks/useRecaptcha.d.ts.map +1 -0
- package/dist/lib/utils.cjs +48 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.d.cjs +17 -0
- package/dist/lib/utils.d.cjs.map +1 -0
- package/dist/lib/utils.d.js +1 -0
- package/dist/lib/utils.d.js.map +1 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +22 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/styles.css +178 -0
- package/dist/types/nav.cjs +17 -0
- package/dist/types/nav.cjs.map +1 -0
- package/dist/types/nav.d.ts +17 -0
- package/dist/types/nav.d.ts.map +1 -0
- package/dist/types/nav.js +1 -0
- package/dist/types/nav.js.map +1 -0
- package/dist/types/sitemap.cjs +17 -0
- package/dist/types/sitemap.cjs.map +1 -0
- package/dist/types/sitemap.d.ts +19 -0
- package/dist/types/sitemap.d.ts.map +1 -0
- package/dist/types/sitemap.js +1 -0
- package/dist/types/sitemap.js.map +1 -0
- package/dist/types/unist.cjs +17 -0
- package/dist/types/unist.cjs.map +1 -0
- package/dist/types/unist.js +1 -0
- package/dist/types/unist.js.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __async = (__this, __arguments, generator) => {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
var fulfilled = (value) => {
|
|
5
|
+
try {
|
|
6
|
+
step(generator.next(value));
|
|
7
|
+
} catch (e) {
|
|
8
|
+
reject(e);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
var rejected = (value) => {
|
|
12
|
+
try {
|
|
13
|
+
step(generator.throw(value));
|
|
14
|
+
} catch (e) {
|
|
15
|
+
reject(e);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
19
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
23
|
+
import { useState } from "react";
|
|
24
|
+
import { Check, Zap } from "lucide-react";
|
|
25
|
+
const FREE_FEATURES = [
|
|
26
|
+
"1 story",
|
|
27
|
+
"10 characters",
|
|
28
|
+
"10 locations",
|
|
29
|
+
"1 timeline",
|
|
30
|
+
"Image galleries",
|
|
31
|
+
"Public sharing"
|
|
32
|
+
];
|
|
33
|
+
const PRO_FEATURES = [
|
|
34
|
+
"Unlimited stories",
|
|
35
|
+
"Unlimited characters",
|
|
36
|
+
"Unlimited locations",
|
|
37
|
+
"Unlimited timelines",
|
|
38
|
+
"Image galleries",
|
|
39
|
+
"Public sharing",
|
|
40
|
+
"Priority support"
|
|
41
|
+
];
|
|
42
|
+
function classNames(...classes) {
|
|
43
|
+
return classes.filter(Boolean).join(" ");
|
|
44
|
+
}
|
|
45
|
+
const Pricing = ({ onSubscribe }) => {
|
|
46
|
+
const [loading, setLoading] = useState(false);
|
|
47
|
+
const [error, setError] = useState(null);
|
|
48
|
+
const handleSubscribe = () => __async(null, null, function* () {
|
|
49
|
+
var _a;
|
|
50
|
+
if (onSubscribe) {
|
|
51
|
+
onSubscribe();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
setLoading(true);
|
|
55
|
+
setError(null);
|
|
56
|
+
try {
|
|
57
|
+
const response = yield fetch("/api/subscription/checkout", {
|
|
58
|
+
method: "POST"
|
|
59
|
+
});
|
|
60
|
+
if (!response.ok) {
|
|
61
|
+
if (response.status === 401) {
|
|
62
|
+
window.location.href = "/signin?redirect=/about/pricing";
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const data2 = yield response.json().catch(() => ({}));
|
|
66
|
+
throw new Error((_a = data2.error) != null ? _a : "Failed to create checkout session");
|
|
67
|
+
}
|
|
68
|
+
const data = yield response.json();
|
|
69
|
+
if (data.url) {
|
|
70
|
+
window.location.href = data.url;
|
|
71
|
+
}
|
|
72
|
+
} catch (err) {
|
|
73
|
+
setError(
|
|
74
|
+
err instanceof Error ? err.message : "Something went wrong. Please try again."
|
|
75
|
+
);
|
|
76
|
+
} finally {
|
|
77
|
+
setLoading(false);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
return /* @__PURE__ */ jsx("div", { className: "bg-gray-900", children: /* @__PURE__ */ jsx("main", { children: /* @__PURE__ */ jsxs("div", { className: "mx-auto mt-16 max-w-7xl px-6 sm:mt-32 lg:px-8", children: [
|
|
81
|
+
/* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-4xl text-center", children: [
|
|
82
|
+
/* @__PURE__ */ jsx("h1", { className: "text-base font-semibold leading-7 text-indigo-400", children: "Pricing" }),
|
|
83
|
+
/* @__PURE__ */ jsx("p", { className: "mt-2 text-4xl font-bold tracking-tight text-white sm:text-5xl", children: "Start free. Upgrade when you're ready." })
|
|
84
|
+
] }),
|
|
85
|
+
/* @__PURE__ */ jsx("p", { className: "mx-auto mt-6 max-w-2xl text-center text-lg leading-8 text-gray-300", children: "Build your story bible for free. Subscribe for unlimited worlds, characters, and creative freedom." }),
|
|
86
|
+
/* @__PURE__ */ jsxs("div", { className: "isolate mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-8 lg:mx-0 lg:max-w-none lg:grid-cols-2", children: [
|
|
87
|
+
/* @__PURE__ */ jsxs("div", { className: "rounded-3xl p-8 ring-1 ring-white/10 xl:p-10", children: [
|
|
88
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-x-4", children: [
|
|
89
|
+
/* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold leading-8 text-white", children: "Preview" }),
|
|
90
|
+
/* @__PURE__ */ jsx("p", { className: "rounded-full bg-white/10 px-2.5 py-1 text-xs font-semibold leading-5 text-white", children: "Free forever" })
|
|
91
|
+
] }),
|
|
92
|
+
/* @__PURE__ */ jsx("p", { className: "mt-4 text-sm leading-6 text-gray-300", children: "Explore Story Bible and start building your creative world with no commitment." }),
|
|
93
|
+
/* @__PURE__ */ jsxs("p", { className: "mt-6 flex items-baseline gap-x-1", children: [
|
|
94
|
+
/* @__PURE__ */ jsx("span", { className: "text-4xl font-bold tracking-tight text-white", children: "$0" }),
|
|
95
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-semibold leading-6 text-gray-300", children: "/month" })
|
|
96
|
+
] }),
|
|
97
|
+
/* @__PURE__ */ jsx(
|
|
98
|
+
"a",
|
|
99
|
+
{
|
|
100
|
+
href: "/signin",
|
|
101
|
+
className: "mt-6 block rounded-md bg-white/10 px-3 py-2 text-center text-sm font-semibold leading-6 text-white hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",
|
|
102
|
+
children: "Get started free"
|
|
103
|
+
}
|
|
104
|
+
),
|
|
105
|
+
/* @__PURE__ */ jsx(
|
|
106
|
+
"ul",
|
|
107
|
+
{
|
|
108
|
+
role: "list",
|
|
109
|
+
className: "mt-8 space-y-3 text-sm leading-6 text-gray-300 xl:mt-10",
|
|
110
|
+
children: FREE_FEATURES.map((feature) => /* @__PURE__ */ jsxs("li", { className: "flex gap-x-3", children: [
|
|
111
|
+
/* @__PURE__ */ jsx(
|
|
112
|
+
Check,
|
|
113
|
+
{
|
|
114
|
+
className: "h-6 w-5 flex-none text-white",
|
|
115
|
+
"aria-hidden": "true"
|
|
116
|
+
}
|
|
117
|
+
),
|
|
118
|
+
feature
|
|
119
|
+
] }, feature))
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
] }),
|
|
123
|
+
/* @__PURE__ */ jsxs("div", { className: "rounded-3xl bg-white/5 p-8 ring-2 ring-indigo-500 xl:p-10", children: [
|
|
124
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-x-4", children: [
|
|
125
|
+
/* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold leading-8 text-white", children: "Pro" }),
|
|
126
|
+
/* @__PURE__ */ jsx("p", { className: "rounded-full bg-indigo-500 px-2.5 py-1 text-xs font-semibold leading-5 text-white", children: "Most popular" })
|
|
127
|
+
] }),
|
|
128
|
+
/* @__PURE__ */ jsx("p", { className: "mt-4 text-sm leading-6 text-gray-300", children: "Unlock unlimited stories, characters, locations, and timelines. Build entire universes." }),
|
|
129
|
+
/* @__PURE__ */ jsxs("p", { className: "mt-6 flex items-baseline gap-x-1", children: [
|
|
130
|
+
/* @__PURE__ */ jsx("span", { className: "text-4xl font-bold tracking-tight text-white", children: "$9.99" }),
|
|
131
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-semibold leading-6 text-gray-300", children: "/month" })
|
|
132
|
+
] }),
|
|
133
|
+
/* @__PURE__ */ jsxs(
|
|
134
|
+
"button",
|
|
135
|
+
{
|
|
136
|
+
onClick: handleSubscribe,
|
|
137
|
+
disabled: loading,
|
|
138
|
+
className: classNames(
|
|
139
|
+
"mt-6 flex w-full items-center justify-center gap-2 rounded-md px-3 py-2 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-500",
|
|
140
|
+
loading ? "cursor-not-allowed bg-indigo-400 text-white" : "shadow-2xs bg-indigo-500 text-white hover:bg-indigo-400"
|
|
141
|
+
),
|
|
142
|
+
children: [
|
|
143
|
+
/* @__PURE__ */ jsx(Zap, { className: "h-4 w-4", "aria-hidden": "true" }),
|
|
144
|
+
loading ? "Redirecting\u2026" : "Subscribe \u2014 $9.99/mo"
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
),
|
|
148
|
+
error && /* @__PURE__ */ jsx("p", { className: "mt-3 text-center text-sm text-red-400", children: error }),
|
|
149
|
+
/* @__PURE__ */ jsx(
|
|
150
|
+
"ul",
|
|
151
|
+
{
|
|
152
|
+
role: "list",
|
|
153
|
+
className: "mt-8 space-y-3 text-sm leading-6 text-gray-300 xl:mt-10",
|
|
154
|
+
children: PRO_FEATURES.map((feature) => /* @__PURE__ */ jsxs("li", { className: "flex gap-x-3", children: [
|
|
155
|
+
/* @__PURE__ */ jsx(
|
|
156
|
+
Check,
|
|
157
|
+
{
|
|
158
|
+
className: "h-6 w-5 flex-none text-white",
|
|
159
|
+
"aria-hidden": "true"
|
|
160
|
+
}
|
|
161
|
+
),
|
|
162
|
+
feature
|
|
163
|
+
] }, feature))
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
] })
|
|
167
|
+
] }),
|
|
168
|
+
/* @__PURE__ */ jsxs("div", { className: "mx-auto mt-24 max-w-2xl pb-24", children: [
|
|
169
|
+
/* @__PURE__ */ jsx("h2", { className: "text-2xl font-bold leading-10 tracking-tight text-white", children: "Frequently asked questions" }),
|
|
170
|
+
/* @__PURE__ */ jsxs("dl", { className: "mt-10 space-y-8", children: [
|
|
171
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
172
|
+
/* @__PURE__ */ jsx("dt", { className: "text-base font-semibold leading-7 text-white", children: "Can I cancel anytime?" }),
|
|
173
|
+
/* @__PURE__ */ jsx("dd", { className: "mt-2 text-base leading-7 text-gray-300", children: "Yes. You can cancel at any time from the subscription management page. You retain Pro access until the end of your current billing period." })
|
|
174
|
+
] }),
|
|
175
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
176
|
+
/* @__PURE__ */ jsx("dt", { className: "text-base font-semibold leading-7 text-white", children: "What happens to my data if I downgrade?" }),
|
|
177
|
+
/* @__PURE__ */ jsx("dd", { className: "mt-2 text-base leading-7 text-gray-300", children: "Your existing stories and characters are never deleted. You'll just be unable to create new ones beyond the preview limits until you resubscribe." })
|
|
178
|
+
] }),
|
|
179
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
180
|
+
/* @__PURE__ */ jsx("dt", { className: "text-base font-semibold leading-7 text-white", children: "Is billing monthly or annually?" }),
|
|
181
|
+
/* @__PURE__ */ jsx("dd", { className: "mt-2 text-base leading-7 text-gray-300", children: "Currently monthly only. Annual billing with a discount is coming soon." })
|
|
182
|
+
] })
|
|
183
|
+
] })
|
|
184
|
+
] })
|
|
185
|
+
] }) }) });
|
|
186
|
+
};
|
|
187
|
+
export {
|
|
188
|
+
Pricing
|
|
189
|
+
};
|
|
190
|
+
//# sourceMappingURL=pricing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../components/tailwind/pricing.tsx"],"sourcesContent":["'use client'\nimport { useState } from 'react'\nimport { Check, Zap } from 'lucide-react'\n\nconst FREE_FEATURES = [\n '1 story',\n '10 characters',\n '10 locations',\n '1 timeline',\n 'Image galleries',\n 'Public sharing',\n]\n\nconst PRO_FEATURES = [\n 'Unlimited stories',\n 'Unlimited characters',\n 'Unlimited locations',\n 'Unlimited timelines',\n 'Image galleries',\n 'Public sharing',\n 'Priority support',\n]\n\nfunction classNames(...classes: string[]) {\n return classes.filter(Boolean).join(' ')\n}\n\ninterface PricingProps {\n onSubscribe?: () => void\n}\n\nexport const Pricing = ({ onSubscribe }: PricingProps) => {\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n const handleSubscribe = async () => {\n if (onSubscribe) {\n onSubscribe()\n return\n }\n setLoading(true)\n setError(null)\n try {\n const response = await fetch('/api/subscription/checkout', {\n method: 'POST',\n })\n if (!response.ok) {\n if (response.status === 401) {\n window.location.href = '/signin?redirect=/about/pricing'\n return\n }\n const data = (await response.json().catch(() => ({}))) as {\n error?: string\n }\n throw new Error(data.error ?? 'Failed to create checkout session')\n }\n const data = (await response.json()) as { url: string }\n if (data.url) {\n window.location.href = data.url\n }\n } catch (err) {\n setError(\n err instanceof Error\n ? err.message\n : 'Something went wrong. Please try again.',\n )\n } finally {\n setLoading(false)\n }\n }\n\n return (\n <div className=\"bg-gray-900\">\n <main>\n {/* Header */}\n <div className=\"mx-auto mt-16 max-w-7xl px-6 sm:mt-32 lg:px-8\">\n <div className=\"mx-auto max-w-4xl text-center\">\n <h1 className=\"text-base font-semibold leading-7 text-indigo-400\">\n Pricing\n </h1>\n <p className=\"mt-2 text-4xl font-bold tracking-tight text-white sm:text-5xl\">\n Start free. Upgrade when you're ready.\n </p>\n </div>\n <p className=\"mx-auto mt-6 max-w-2xl text-center text-lg leading-8 text-gray-300\">\n Build your story bible for free. Subscribe for unlimited worlds,\n characters, and creative freedom.\n </p>\n\n {/* Pricing cards */}\n <div className=\"isolate mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-8 lg:mx-0 lg:max-w-none lg:grid-cols-2\">\n {/* Free tier */}\n <div className=\"rounded-3xl p-8 ring-1 ring-white/10 xl:p-10\">\n <div className=\"flex items-center justify-between gap-x-4\">\n <h2 className=\"text-lg font-semibold leading-8 text-white\">\n Preview\n </h2>\n <p className=\"rounded-full bg-white/10 px-2.5 py-1 text-xs font-semibold leading-5 text-white\">\n Free forever\n </p>\n </div>\n <p className=\"mt-4 text-sm leading-6 text-gray-300\">\n Explore Story Bible and start building your creative world with\n no commitment.\n </p>\n <p className=\"mt-6 flex items-baseline gap-x-1\">\n <span className=\"text-4xl font-bold tracking-tight text-white\">\n $0\n </span>\n <span className=\"text-sm font-semibold leading-6 text-gray-300\">\n /month\n </span>\n </p>\n <a\n href=\"/signin\"\n className=\"mt-6 block rounded-md bg-white/10 px-3 py-2 text-center text-sm font-semibold leading-6 text-white hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white\"\n >\n Get started free\n </a>\n <ul\n role=\"list\"\n className=\"mt-8 space-y-3 text-sm leading-6 text-gray-300 xl:mt-10\"\n >\n {FREE_FEATURES.map((feature) => (\n <li key={feature} className=\"flex gap-x-3\">\n <Check\n className=\"h-6 w-5 flex-none text-white\"\n aria-hidden=\"true\"\n />\n {feature}\n </li>\n ))}\n </ul>\n </div>\n\n {/* Pro tier */}\n <div className=\"rounded-3xl bg-white/5 p-8 ring-2 ring-indigo-500 xl:p-10\">\n <div className=\"flex items-center justify-between gap-x-4\">\n <h2 className=\"text-lg font-semibold leading-8 text-white\">\n Pro\n </h2>\n <p className=\"rounded-full bg-indigo-500 px-2.5 py-1 text-xs font-semibold leading-5 text-white\">\n Most popular\n </p>\n </div>\n <p className=\"mt-4 text-sm leading-6 text-gray-300\">\n Unlock unlimited stories, characters, locations, and timelines.\n Build entire universes.\n </p>\n <p className=\"mt-6 flex items-baseline gap-x-1\">\n <span className=\"text-4xl font-bold tracking-tight text-white\">\n $9.99\n </span>\n <span className=\"text-sm font-semibold leading-6 text-gray-300\">\n /month\n </span>\n </p>\n <button\n onClick={handleSubscribe}\n disabled={loading}\n className={classNames(\n 'mt-6 flex w-full items-center justify-center gap-2 rounded-md px-3 py-2 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-500',\n loading\n ? 'cursor-not-allowed bg-indigo-400 text-white'\n : 'shadow-2xs bg-indigo-500 text-white hover:bg-indigo-400',\n )}\n >\n <Zap className=\"h-4 w-4\" aria-hidden=\"true\" />\n {loading ? 'Redirecting…' : 'Subscribe — $9.99/mo'}\n </button>\n {error && (\n <p className=\"mt-3 text-center text-sm text-red-400\">{error}</p>\n )}\n <ul\n role=\"list\"\n className=\"mt-8 space-y-3 text-sm leading-6 text-gray-300 xl:mt-10\"\n >\n {PRO_FEATURES.map((feature) => (\n <li key={feature} className=\"flex gap-x-3\">\n <Check\n className=\"h-6 w-5 flex-none text-white\"\n aria-hidden=\"true\"\n />\n {feature}\n </li>\n ))}\n </ul>\n </div>\n </div>\n\n {/* FAQ */}\n <div className=\"mx-auto mt-24 max-w-2xl pb-24\">\n <h2 className=\"text-2xl font-bold leading-10 tracking-tight text-white\">\n Frequently asked questions\n </h2>\n <dl className=\"mt-10 space-y-8\">\n <div>\n <dt className=\"text-base font-semibold leading-7 text-white\">\n Can I cancel anytime?\n </dt>\n <dd className=\"mt-2 text-base leading-7 text-gray-300\">\n Yes. You can cancel at any time from the subscription\n management page. You retain Pro access until the end of your\n current billing period.\n </dd>\n </div>\n <div>\n <dt className=\"text-base font-semibold leading-7 text-white\">\n What happens to my data if I downgrade?\n </dt>\n <dd className=\"mt-2 text-base leading-7 text-gray-300\">\n Your existing stories and characters are never deleted.\n You'll just be unable to create new ones beyond the\n preview limits until you resubscribe.\n </dd>\n </div>\n <div>\n <dt className=\"text-base font-semibold leading-7 text-white\">\n Is billing monthly or annually?\n </dt>\n <dd className=\"mt-2 text-base leading-7 text-gray-300\">\n Currently monthly only. Annual billing with a discount is\n coming soon.\n </dd>\n </div>\n </dl>\n </div>\n </div>\n </main>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4EU,SACE,KADF;AA3EV,SAAS,gBAAgB;AACzB,SAAS,OAAO,WAAW;AAE3B,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,eAAe;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,cAAc,SAAmB;AACxC,SAAO,QAAQ,OAAO,OAAO,EAAE,KAAK,GAAG;AACzC;AAMO,MAAM,UAAU,CAAC,EAAE,YAAY,MAAoB;AACxD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AAEtD,QAAM,kBAAkB,MAAY;AAnCtC;AAoCI,QAAI,aAAa;AACf,kBAAY;AACZ;AAAA,IACF;AACA,eAAW,IAAI;AACf,aAAS,IAAI;AACb,QAAI;AACF,YAAM,WAAW,MAAM,MAAM,8BAA8B;AAAA,QACzD,QAAQ;AAAA,MACV,CAAC;AACD,UAAI,CAAC,SAAS,IAAI;AAChB,YAAI,SAAS,WAAW,KAAK;AAC3B,iBAAO,SAAS,OAAO;AACvB;AAAA,QACF;AACA,cAAMA,QAAQ,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE;AAGpD,cAAM,IAAI,OAAM,KAAAA,MAAK,UAAL,YAAc,mCAAmC;AAAA,MACnE;AACA,YAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,UAAI,KAAK,KAAK;AACZ,eAAO,SAAS,OAAO,KAAK;AAAA,MAC9B;AAAA,IACF,SAAS,KAAK;AACZ;AAAA,QACE,eAAe,QACX,IAAI,UACJ;AAAA,MACN;AAAA,IACF,UAAE;AACA,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAEA,SACE,oBAAC,SAAI,WAAU,eACb,8BAAC,UAEC,+BAAC,SAAI,WAAU,iDACb;AAAA,yBAAC,SAAI,WAAU,iCACb;AAAA,0BAAC,QAAG,WAAU,qDAAoD,qBAElE;AAAA,MACA,oBAAC,OAAE,WAAU,iEAAgE,oDAE7E;AAAA,OACF;AAAA,IACA,oBAAC,OAAE,WAAU,sEAAqE,gHAGlF;AAAA,IAGA,qBAAC,SAAI,WAAU,+FAEb;AAAA,2BAAC,SAAI,WAAU,gDACb;AAAA,6BAAC,SAAI,WAAU,6CACb;AAAA,8BAAC,QAAG,WAAU,8CAA6C,qBAE3D;AAAA,UACA,oBAAC,OAAE,WAAU,mFAAkF,0BAE/F;AAAA,WACF;AAAA,QACA,oBAAC,OAAE,WAAU,wCAAuC,4FAGpD;AAAA,QACA,qBAAC,OAAE,WAAU,oCACX;AAAA,8BAAC,UAAK,WAAU,gDAA+C,gBAE/D;AAAA,UACA,oBAAC,UAAK,WAAU,iDAAgD,oBAEhE;AAAA,WACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YACX;AAAA;AAAA,QAED;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAET,wBAAc,IAAI,CAAC,YAClB,qBAAC,QAAiB,WAAU,gBAC1B;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,WAAU;AAAA,kBACV,eAAY;AAAA;AAAA,cACd;AAAA,cACC;AAAA,iBALM,OAMT,CACD;AAAA;AAAA,QACH;AAAA,SACF;AAAA,MAGA,qBAAC,SAAI,WAAU,6DACb;AAAA,6BAAC,SAAI,WAAU,6CACb;AAAA,8BAAC,QAAG,WAAU,8CAA6C,iBAE3D;AAAA,UACA,oBAAC,OAAE,WAAU,qFAAoF,0BAEjG;AAAA,WACF;AAAA,QACA,oBAAC,OAAE,WAAU,wCAAuC,qGAGpD;AAAA,QACA,qBAAC,OAAE,WAAU,oCACX;AAAA,8BAAC,UAAK,WAAU,gDAA+C,mBAE/D;AAAA,UACA,oBAAC,UAAK,WAAU,iDAAgD,oBAEhE;AAAA,WACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,UAAU;AAAA,YACV,WAAW;AAAA,cACT;AAAA,cACA,UACI,gDACA;AAAA,YACN;AAAA,YAEA;AAAA,kCAAC,OAAI,WAAU,WAAU,eAAY,QAAO;AAAA,cAC3C,UAAU,sBAAiB;AAAA;AAAA;AAAA,QAC9B;AAAA,QACC,SACC,oBAAC,OAAE,WAAU,yCAAyC,iBAAM;AAAA,QAE9D;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAET,uBAAa,IAAI,CAAC,YACjB,qBAAC,QAAiB,WAAU,gBAC1B;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,WAAU;AAAA,kBACV,eAAY;AAAA;AAAA,cACd;AAAA,cACC;AAAA,iBALM,OAMT,CACD;AAAA;AAAA,QACH;AAAA,SACF;AAAA,OACF;AAAA,IAGA,qBAAC,SAAI,WAAU,iCACb;AAAA,0BAAC,QAAG,WAAU,2DAA0D,wCAExE;AAAA,MACA,qBAAC,QAAG,WAAU,mBACZ;AAAA,6BAAC,SACC;AAAA,8BAAC,QAAG,WAAU,gDAA+C,mCAE7D;AAAA,UACA,oBAAC,QAAG,WAAU,0CAAyC,wJAIvD;AAAA,WACF;AAAA,QACA,qBAAC,SACC;AAAA,8BAAC,QAAG,WAAU,gDAA+C,qDAE7D;AAAA,UACA,oBAAC,QAAG,WAAU,0CAAyC,+JAIvD;AAAA,WACF;AAAA,QACA,qBAAC,SACC;AAAA,8BAAC,QAAG,WAAU,gDAA+C,6CAE7D;AAAA,UACA,oBAAC,QAAG,WAAU,0CAAyC,oFAGvD;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF,GACF,GACF;AAEJ;","names":["data"]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var privacy_exports = {};
|
|
20
|
+
__export(privacy_exports, {
|
|
21
|
+
Privacy: () => Privacy
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(privacy_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_content_page = require("./content-page");
|
|
26
|
+
function Privacy() {
|
|
27
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_content_page.ContentPage, { title: "Privacy Policy", lastUpdated: "March 6, 2026", children: [
|
|
28
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_content_page.ContentSection, { title: "Introduction", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: 'Story Bible Ultimate ("we", "us", or "our") is committed to protecting your personal information. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our service.' }) }),
|
|
29
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_content_page.ContentSection, { title: "Information We Collect", children: [
|
|
30
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "We collect information you provide directly to us, including:" }),
|
|
31
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
32
|
+
import_content_page.ContentList,
|
|
33
|
+
{
|
|
34
|
+
items: [
|
|
35
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
36
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Account information:" }),
|
|
37
|
+
" ",
|
|
38
|
+
"name, email address, and password when you register."
|
|
39
|
+
] }),
|
|
40
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
41
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Content:" }),
|
|
42
|
+
" ",
|
|
43
|
+
"stories, characters, locations, timelines, and other creative content you create or upload."
|
|
44
|
+
] }),
|
|
45
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
46
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Communications:" }),
|
|
47
|
+
" ",
|
|
48
|
+
"messages you send us through contact forms or support channels."
|
|
49
|
+
] }),
|
|
50
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
51
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Usage data:" }),
|
|
52
|
+
" ",
|
|
53
|
+
"information about how you interact with our service, including log data, device information, and cookies."
|
|
54
|
+
] })
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
] }),
|
|
59
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_content_page.ContentSection, { title: "How We Use Your Information", children: [
|
|
60
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "We use the information we collect to:" }),
|
|
61
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
62
|
+
import_content_page.ContentList,
|
|
63
|
+
{
|
|
64
|
+
items: [
|
|
65
|
+
"Provide, maintain, and improve our services.",
|
|
66
|
+
"Process transactions and send related information.",
|
|
67
|
+
"Send technical notices, updates, security alerts, and support messages.",
|
|
68
|
+
"Respond to comments, questions, and requests for customer service.",
|
|
69
|
+
"Monitor and analyze trends, usage, and activities to improve the service.",
|
|
70
|
+
"Detect, investigate, and prevent fraudulent transactions and other illegal activities."
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
)
|
|
74
|
+
] }),
|
|
75
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_content_page.ContentSection, { title: "Sharing of Information", children: [
|
|
76
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "We do not sell, trade, or otherwise transfer your personally identifiable information to third parties, except as described below:" }),
|
|
77
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
78
|
+
import_content_page.ContentList,
|
|
79
|
+
{
|
|
80
|
+
items: [
|
|
81
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
82
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Service providers:" }),
|
|
83
|
+
" ",
|
|
84
|
+
"We may share your information with third-party vendors who perform services on our behalf (e.g., hosting, payment processing, analytics)."
|
|
85
|
+
] }),
|
|
86
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
87
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Legal requirements:" }),
|
|
88
|
+
" ",
|
|
89
|
+
"We may disclose your information if required by law or in response to valid legal process."
|
|
90
|
+
] }),
|
|
91
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
92
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Business transfers:" }),
|
|
93
|
+
" ",
|
|
94
|
+
"If we are involved in a merger, acquisition, or sale of assets, your information may be transferred as part of that transaction."
|
|
95
|
+
] })
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
)
|
|
99
|
+
] }),
|
|
100
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_content_page.ContentSection, { title: "Data Retention", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "We retain your personal information for as long as your account is active or as needed to provide you services. You may request deletion of your account and associated data at any time by contacting us." }) }),
|
|
101
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_content_page.ContentSection, { title: "Security", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "We take reasonable measures to help protect information about you from loss, theft, misuse, unauthorized access, disclosure, alteration, and destruction. However, no internet or electronic storage system is 100% secure." }) }),
|
|
102
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_content_page.ContentSection, { title: "Cookies", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "We use cookies and similar tracking technologies to track activity on our service and hold certain information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent." }) }),
|
|
103
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_content_page.ContentSection, { title: "Your Rights", children: [
|
|
104
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "Depending on your location, you may have certain rights regarding your personal information, including:" }),
|
|
105
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
106
|
+
import_content_page.ContentList,
|
|
107
|
+
{
|
|
108
|
+
items: [
|
|
109
|
+
"The right to access your personal information.",
|
|
110
|
+
"The right to correct inaccurate data.",
|
|
111
|
+
"The right to request deletion of your data.",
|
|
112
|
+
"The right to object to or restrict processing of your data.",
|
|
113
|
+
"The right to data portability (receiving your data in a structured format)."
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
),
|
|
117
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "To exercise these rights, please contact us at the address below." })
|
|
118
|
+
] }),
|
|
119
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_content_page.ContentSection, { title: "Children's Privacy", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "Our service is not directed to children under the age of 13. We do not knowingly collect personally identifiable information from children under 13. If we discover that a child under 13 has provided us with personal information, we will delete such information promptly." }) }),
|
|
120
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_content_page.ContentSection, { title: "Changes to This Policy", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: 'We may update this Privacy Policy from time to time. We will notify you of any changes by posting the new policy on this page and updating the "Last updated" date. Continued use of the service after changes constitutes acceptance of the updated policy.' }) }),
|
|
121
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_content_page.ContentSection, { title: "Contact Us", children: [
|
|
122
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "If you have any questions about this Privacy Policy, please reach out:" }),
|
|
123
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
124
|
+
"a",
|
|
125
|
+
{
|
|
126
|
+
href: "/about/contact",
|
|
127
|
+
className: "font-semibold text-indigo-600 hover:text-indigo-500 dark:text-indigo-400 dark:hover:text-indigo-300",
|
|
128
|
+
children: "Contact us via our contact form \u2192"
|
|
129
|
+
}
|
|
130
|
+
) })
|
|
131
|
+
] })
|
|
132
|
+
] });
|
|
133
|
+
}
|
|
134
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
135
|
+
0 && (module.exports = {
|
|
136
|
+
Privacy
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=privacy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../components/tailwind/privacy.tsx"],"sourcesContent":["import { ContentPage, ContentSection, ContentList } from './content-page'\n\nexport function Privacy() {\n return (\n <ContentPage title=\"Privacy Policy\" lastUpdated=\"March 6, 2026\">\n <ContentSection title=\"Introduction\">\n <p>\n Story Bible Ultimate ("we", "us", or\n "our") is committed to protecting your personal information.\n This Privacy Policy explains how we collect, use, disclose, and\n safeguard your information when you use our service.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Information We Collect\">\n <p>We collect information you provide directly to us, including:</p>\n <ContentList\n items={[\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Account information:\n </span>{' '}\n name, email address, and password when you register.\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Content:\n </span>{' '}\n stories, characters, locations, timelines, and other creative\n content you create or upload.\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Communications:\n </span>{' '}\n messages you send us through contact forms or support channels.\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Usage data:\n </span>{' '}\n information about how you interact with our service, including log\n data, device information, and cookies.\n </>,\n ]}\n />\n </ContentSection>\n\n <ContentSection title=\"How We Use Your Information\">\n <p>We use the information we collect to:</p>\n <ContentList\n items={[\n 'Provide, maintain, and improve our services.',\n 'Process transactions and send related information.',\n 'Send technical notices, updates, security alerts, and support messages.',\n 'Respond to comments, questions, and requests for customer service.',\n 'Monitor and analyze trends, usage, and activities to improve the service.',\n 'Detect, investigate, and prevent fraudulent transactions and other illegal activities.',\n ]}\n />\n </ContentSection>\n\n <ContentSection title=\"Sharing of Information\">\n <p>\n We do not sell, trade, or otherwise transfer your personally\n identifiable information to third parties, except as described below:\n </p>\n <ContentList\n items={[\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Service providers:\n </span>{' '}\n We may share your information with third-party vendors who perform\n services on our behalf (e.g., hosting, payment processing,\n analytics).\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Legal requirements:\n </span>{' '}\n We may disclose your information if required by law or in response\n to valid legal process.\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Business transfers:\n </span>{' '}\n If we are involved in a merger, acquisition, or sale of assets,\n your information may be transferred as part of that transaction.\n </>,\n ]}\n />\n </ContentSection>\n\n <ContentSection title=\"Data Retention\">\n <p>\n We retain your personal information for as long as your account is\n active or as needed to provide you services. You may request deletion\n of your account and associated data at any time by contacting us.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Security\">\n <p>\n We take reasonable measures to help protect information about you from\n loss, theft, misuse, unauthorized access, disclosure, alteration, and\n destruction. However, no internet or electronic storage system is 100%\n secure.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Cookies\">\n <p>\n We use cookies and similar tracking technologies to track activity on\n our service and hold certain information. You can instruct your\n browser to refuse all cookies or to indicate when a cookie is being\n sent.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Your Rights\">\n <p>\n Depending on your location, you may have certain rights regarding your\n personal information, including:\n </p>\n <ContentList\n items={[\n 'The right to access your personal information.',\n 'The right to correct inaccurate data.',\n 'The right to request deletion of your data.',\n 'The right to object to or restrict processing of your data.',\n 'The right to data portability (receiving your data in a structured format).',\n ]}\n />\n <p>To exercise these rights, please contact us at the address below.</p>\n </ContentSection>\n\n <ContentSection title=\"Children's Privacy\">\n <p>\n Our service is not directed to children under the age of 13. We do not\n knowingly collect personally identifiable information from children\n under 13. If we discover that a child under 13 has provided us with\n personal information, we will delete such information promptly.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Changes to This Policy\">\n <p>\n We may update this Privacy Policy from time to time. We will notify\n you of any changes by posting the new policy on this page and updating\n the "Last updated" date. Continued use of the service after\n changes constitutes acceptance of the updated policy.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Contact Us\">\n <p>\n If you have any questions about this Privacy Policy, please reach out:\n </p>\n <p>\n <a\n href=\"/about/contact\"\n className=\"font-semibold text-indigo-600 hover:text-indigo-500 dark:text-indigo-400 dark:hover:text-indigo-300\"\n >\n Contact us via our contact form →\n </a>\n </p>\n </ContentSection>\n </ContentPage>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMQ;AANR,0BAAyD;AAElD,SAAS,UAAU;AACxB,SACE,6CAAC,mCAAY,OAAM,kBAAiB,aAAY,iBAC9C;AAAA,gDAAC,sCAAe,OAAM,gBACpB,sDAAC,OAAE,oOAKH,GACF;AAAA,IAEA,6CAAC,sCAAe,OAAM,0BACpB;AAAA,kDAAC,OAAE,2EAA6D;AAAA,MAChE;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,4EACE;AAAA,0DAAC,UAAK,WAAU,+CAA8C,kCAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAEd;AAAA,YACA,4EACE;AAAA,0DAAC,UAAK,WAAU,+CAA8C,sBAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAGd;AAAA,YACA,4EACE;AAAA,0DAAC,UAAK,WAAU,+CAA8C,6BAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAEd;AAAA,YACA,4EACE;AAAA,0DAAC,UAAK,WAAU,+CAA8C,yBAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAGd;AAAA,UACF;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAEA,6CAAC,sCAAe,OAAM,+BACpB;AAAA,kDAAC,OAAE,mDAAqC;AAAA,MACxC;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAEA,6CAAC,sCAAe,OAAM,0BACpB;AAAA,kDAAC,OAAE,gJAGH;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,4EACE;AAAA,0DAAC,UAAK,WAAU,+CAA8C,gCAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAId;AAAA,YACA,4EACE;AAAA,0DAAC,UAAK,WAAU,+CAA8C,iCAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAGd;AAAA,YACA,4EACE;AAAA,0DAAC,UAAK,WAAU,+CAA8C,iCAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAGd;AAAA,UACF;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAEA,4CAAC,sCAAe,OAAM,kBACpB,sDAAC,OAAE,wNAIH,GACF;AAAA,IAEA,4CAAC,sCAAe,OAAM,YACpB,sDAAC,OAAE,yOAKH,GACF;AAAA,IAEA,4CAAC,sCAAe,OAAM,WACpB,sDAAC,OAAE,6NAKH,GACF;AAAA,IAEA,6CAAC,sCAAe,OAAM,eACpB;AAAA,kDAAC,OAAE,qHAGH;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA;AAAA,MACF;AAAA,MACA,4CAAC,OAAE,+EAAiE;AAAA,OACtE;AAAA,IAEA,4CAAC,sCAAe,OAAM,sBACpB,sDAAC,OAAE,4RAKH,GACF;AAAA,IAEA,4CAAC,sCAAe,OAAM,0BACpB,sDAAC,OAAE,0QAKH,GACF;AAAA,IAEA,6CAAC,sCAAe,OAAM,cACpB;AAAA,kDAAC,OAAE,oFAEH;AAAA,MACA,4CAAC,OACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACX;AAAA;AAAA,MAED,GACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../../components/tailwind/privacy.tsx"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,4CAyKtB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ContentPage, ContentSection, ContentList } from "./content-page";
|
|
3
|
+
function Privacy() {
|
|
4
|
+
return /* @__PURE__ */ jsxs(ContentPage, { title: "Privacy Policy", lastUpdated: "March 6, 2026", children: [
|
|
5
|
+
/* @__PURE__ */ jsx(ContentSection, { title: "Introduction", children: /* @__PURE__ */ jsx("p", { children: 'Story Bible Ultimate ("we", "us", or "our") is committed to protecting your personal information. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our service.' }) }),
|
|
6
|
+
/* @__PURE__ */ jsxs(ContentSection, { title: "Information We Collect", children: [
|
|
7
|
+
/* @__PURE__ */ jsx("p", { children: "We collect information you provide directly to us, including:" }),
|
|
8
|
+
/* @__PURE__ */ jsx(
|
|
9
|
+
ContentList,
|
|
10
|
+
{
|
|
11
|
+
items: [
|
|
12
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
13
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Account information:" }),
|
|
14
|
+
" ",
|
|
15
|
+
"name, email address, and password when you register."
|
|
16
|
+
] }),
|
|
17
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
18
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Content:" }),
|
|
19
|
+
" ",
|
|
20
|
+
"stories, characters, locations, timelines, and other creative content you create or upload."
|
|
21
|
+
] }),
|
|
22
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
23
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Communications:" }),
|
|
24
|
+
" ",
|
|
25
|
+
"messages you send us through contact forms or support channels."
|
|
26
|
+
] }),
|
|
27
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
28
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Usage data:" }),
|
|
29
|
+
" ",
|
|
30
|
+
"information about how you interact with our service, including log data, device information, and cookies."
|
|
31
|
+
] })
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
] }),
|
|
36
|
+
/* @__PURE__ */ jsxs(ContentSection, { title: "How We Use Your Information", children: [
|
|
37
|
+
/* @__PURE__ */ jsx("p", { children: "We use the information we collect to:" }),
|
|
38
|
+
/* @__PURE__ */ jsx(
|
|
39
|
+
ContentList,
|
|
40
|
+
{
|
|
41
|
+
items: [
|
|
42
|
+
"Provide, maintain, and improve our services.",
|
|
43
|
+
"Process transactions and send related information.",
|
|
44
|
+
"Send technical notices, updates, security alerts, and support messages.",
|
|
45
|
+
"Respond to comments, questions, and requests for customer service.",
|
|
46
|
+
"Monitor and analyze trends, usage, and activities to improve the service.",
|
|
47
|
+
"Detect, investigate, and prevent fraudulent transactions and other illegal activities."
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
] }),
|
|
52
|
+
/* @__PURE__ */ jsxs(ContentSection, { title: "Sharing of Information", children: [
|
|
53
|
+
/* @__PURE__ */ jsx("p", { children: "We do not sell, trade, or otherwise transfer your personally identifiable information to third parties, except as described below:" }),
|
|
54
|
+
/* @__PURE__ */ jsx(
|
|
55
|
+
ContentList,
|
|
56
|
+
{
|
|
57
|
+
items: [
|
|
58
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Service providers:" }),
|
|
60
|
+
" ",
|
|
61
|
+
"We may share your information with third-party vendors who perform services on our behalf (e.g., hosting, payment processing, analytics)."
|
|
62
|
+
] }),
|
|
63
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
64
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Legal requirements:" }),
|
|
65
|
+
" ",
|
|
66
|
+
"We may disclose your information if required by law or in response to valid legal process."
|
|
67
|
+
] }),
|
|
68
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
69
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-gray-900 dark:text-white", children: "Business transfers:" }),
|
|
70
|
+
" ",
|
|
71
|
+
"If we are involved in a merger, acquisition, or sale of assets, your information may be transferred as part of that transaction."
|
|
72
|
+
] })
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
] }),
|
|
77
|
+
/* @__PURE__ */ jsx(ContentSection, { title: "Data Retention", children: /* @__PURE__ */ jsx("p", { children: "We retain your personal information for as long as your account is active or as needed to provide you services. You may request deletion of your account and associated data at any time by contacting us." }) }),
|
|
78
|
+
/* @__PURE__ */ jsx(ContentSection, { title: "Security", children: /* @__PURE__ */ jsx("p", { children: "We take reasonable measures to help protect information about you from loss, theft, misuse, unauthorized access, disclosure, alteration, and destruction. However, no internet or electronic storage system is 100% secure." }) }),
|
|
79
|
+
/* @__PURE__ */ jsx(ContentSection, { title: "Cookies", children: /* @__PURE__ */ jsx("p", { children: "We use cookies and similar tracking technologies to track activity on our service and hold certain information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent." }) }),
|
|
80
|
+
/* @__PURE__ */ jsxs(ContentSection, { title: "Your Rights", children: [
|
|
81
|
+
/* @__PURE__ */ jsx("p", { children: "Depending on your location, you may have certain rights regarding your personal information, including:" }),
|
|
82
|
+
/* @__PURE__ */ jsx(
|
|
83
|
+
ContentList,
|
|
84
|
+
{
|
|
85
|
+
items: [
|
|
86
|
+
"The right to access your personal information.",
|
|
87
|
+
"The right to correct inaccurate data.",
|
|
88
|
+
"The right to request deletion of your data.",
|
|
89
|
+
"The right to object to or restrict processing of your data.",
|
|
90
|
+
"The right to data portability (receiving your data in a structured format)."
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
/* @__PURE__ */ jsx("p", { children: "To exercise these rights, please contact us at the address below." })
|
|
95
|
+
] }),
|
|
96
|
+
/* @__PURE__ */ jsx(ContentSection, { title: "Children's Privacy", children: /* @__PURE__ */ jsx("p", { children: "Our service is not directed to children under the age of 13. We do not knowingly collect personally identifiable information from children under 13. If we discover that a child under 13 has provided us with personal information, we will delete such information promptly." }) }),
|
|
97
|
+
/* @__PURE__ */ jsx(ContentSection, { title: "Changes to This Policy", children: /* @__PURE__ */ jsx("p", { children: 'We may update this Privacy Policy from time to time. We will notify you of any changes by posting the new policy on this page and updating the "Last updated" date. Continued use of the service after changes constitutes acceptance of the updated policy.' }) }),
|
|
98
|
+
/* @__PURE__ */ jsxs(ContentSection, { title: "Contact Us", children: [
|
|
99
|
+
/* @__PURE__ */ jsx("p", { children: "If you have any questions about this Privacy Policy, please reach out:" }),
|
|
100
|
+
/* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(
|
|
101
|
+
"a",
|
|
102
|
+
{
|
|
103
|
+
href: "/about/contact",
|
|
104
|
+
className: "font-semibold text-indigo-600 hover:text-indigo-500 dark:text-indigo-400 dark:hover:text-indigo-300",
|
|
105
|
+
children: "Contact us via our contact form \u2192"
|
|
106
|
+
}
|
|
107
|
+
) })
|
|
108
|
+
] })
|
|
109
|
+
] });
|
|
110
|
+
}
|
|
111
|
+
export {
|
|
112
|
+
Privacy
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=privacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../components/tailwind/privacy.tsx"],"sourcesContent":["import { ContentPage, ContentSection, ContentList } from './content-page'\n\nexport function Privacy() {\n return (\n <ContentPage title=\"Privacy Policy\" lastUpdated=\"March 6, 2026\">\n <ContentSection title=\"Introduction\">\n <p>\n Story Bible Ultimate ("we", "us", or\n "our") is committed to protecting your personal information.\n This Privacy Policy explains how we collect, use, disclose, and\n safeguard your information when you use our service.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Information We Collect\">\n <p>We collect information you provide directly to us, including:</p>\n <ContentList\n items={[\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Account information:\n </span>{' '}\n name, email address, and password when you register.\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Content:\n </span>{' '}\n stories, characters, locations, timelines, and other creative\n content you create or upload.\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Communications:\n </span>{' '}\n messages you send us through contact forms or support channels.\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Usage data:\n </span>{' '}\n information about how you interact with our service, including log\n data, device information, and cookies.\n </>,\n ]}\n />\n </ContentSection>\n\n <ContentSection title=\"How We Use Your Information\">\n <p>We use the information we collect to:</p>\n <ContentList\n items={[\n 'Provide, maintain, and improve our services.',\n 'Process transactions and send related information.',\n 'Send technical notices, updates, security alerts, and support messages.',\n 'Respond to comments, questions, and requests for customer service.',\n 'Monitor and analyze trends, usage, and activities to improve the service.',\n 'Detect, investigate, and prevent fraudulent transactions and other illegal activities.',\n ]}\n />\n </ContentSection>\n\n <ContentSection title=\"Sharing of Information\">\n <p>\n We do not sell, trade, or otherwise transfer your personally\n identifiable information to third parties, except as described below:\n </p>\n <ContentList\n items={[\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Service providers:\n </span>{' '}\n We may share your information with third-party vendors who perform\n services on our behalf (e.g., hosting, payment processing,\n analytics).\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Legal requirements:\n </span>{' '}\n We may disclose your information if required by law or in response\n to valid legal process.\n </>,\n <>\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n Business transfers:\n </span>{' '}\n If we are involved in a merger, acquisition, or sale of assets,\n your information may be transferred as part of that transaction.\n </>,\n ]}\n />\n </ContentSection>\n\n <ContentSection title=\"Data Retention\">\n <p>\n We retain your personal information for as long as your account is\n active or as needed to provide you services. You may request deletion\n of your account and associated data at any time by contacting us.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Security\">\n <p>\n We take reasonable measures to help protect information about you from\n loss, theft, misuse, unauthorized access, disclosure, alteration, and\n destruction. However, no internet or electronic storage system is 100%\n secure.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Cookies\">\n <p>\n We use cookies and similar tracking technologies to track activity on\n our service and hold certain information. You can instruct your\n browser to refuse all cookies or to indicate when a cookie is being\n sent.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Your Rights\">\n <p>\n Depending on your location, you may have certain rights regarding your\n personal information, including:\n </p>\n <ContentList\n items={[\n 'The right to access your personal information.',\n 'The right to correct inaccurate data.',\n 'The right to request deletion of your data.',\n 'The right to object to or restrict processing of your data.',\n 'The right to data portability (receiving your data in a structured format).',\n ]}\n />\n <p>To exercise these rights, please contact us at the address below.</p>\n </ContentSection>\n\n <ContentSection title=\"Children's Privacy\">\n <p>\n Our service is not directed to children under the age of 13. We do not\n knowingly collect personally identifiable information from children\n under 13. If we discover that a child under 13 has provided us with\n personal information, we will delete such information promptly.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Changes to This Policy\">\n <p>\n We may update this Privacy Policy from time to time. We will notify\n you of any changes by posting the new policy on this page and updating\n the "Last updated" date. Continued use of the service after\n changes constitutes acceptance of the updated policy.\n </p>\n </ContentSection>\n\n <ContentSection title=\"Contact Us\">\n <p>\n If you have any questions about this Privacy Policy, please reach out:\n </p>\n <p>\n <a\n href=\"/about/contact\"\n className=\"font-semibold text-indigo-600 hover:text-indigo-500 dark:text-indigo-400 dark:hover:text-indigo-300\"\n >\n Contact us via our contact form →\n </a>\n </p>\n </ContentSection>\n </ContentPage>\n )\n}\n"],"mappings":"AAMQ,SAYI,UAZJ,KAYI,YAZJ;AANR,SAAS,aAAa,gBAAgB,mBAAmB;AAElD,SAAS,UAAU;AACxB,SACE,qBAAC,eAAY,OAAM,kBAAiB,aAAY,iBAC9C;AAAA,wBAAC,kBAAe,OAAM,gBACpB,8BAAC,OAAE,oOAKH,GACF;AAAA,IAEA,qBAAC,kBAAe,OAAM,0BACpB;AAAA,0BAAC,OAAE,2EAA6D;AAAA,MAChE;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,iCACE;AAAA,kCAAC,UAAK,WAAU,+CAA8C,kCAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAEd;AAAA,YACA,iCACE;AAAA,kCAAC,UAAK,WAAU,+CAA8C,sBAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAGd;AAAA,YACA,iCACE;AAAA,kCAAC,UAAK,WAAU,+CAA8C,6BAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAEd;AAAA,YACA,iCACE;AAAA,kCAAC,UAAK,WAAU,+CAA8C,yBAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAGd;AAAA,UACF;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAEA,qBAAC,kBAAe,OAAM,+BACpB;AAAA,0BAAC,OAAE,mDAAqC;AAAA,MACxC;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAEA,qBAAC,kBAAe,OAAM,0BACpB;AAAA,0BAAC,OAAE,gJAGH;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,iCACE;AAAA,kCAAC,UAAK,WAAU,+CAA8C,gCAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAId;AAAA,YACA,iCACE;AAAA,kCAAC,UAAK,WAAU,+CAA8C,iCAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAGd;AAAA,YACA,iCACE;AAAA,kCAAC,UAAK,WAAU,+CAA8C,iCAE9D;AAAA,cAAQ;AAAA,cAAI;AAAA,eAGd;AAAA,UACF;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAEA,oBAAC,kBAAe,OAAM,kBACpB,8BAAC,OAAE,wNAIH,GACF;AAAA,IAEA,oBAAC,kBAAe,OAAM,YACpB,8BAAC,OAAE,yOAKH,GACF;AAAA,IAEA,oBAAC,kBAAe,OAAM,WACpB,8BAAC,OAAE,6NAKH,GACF;AAAA,IAEA,qBAAC,kBAAe,OAAM,eACpB;AAAA,0BAAC,OAAE,qHAGH;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA;AAAA,MACF;AAAA,MACA,oBAAC,OAAE,+EAAiE;AAAA,OACtE;AAAA,IAEA,oBAAC,kBAAe,OAAM,sBACpB,8BAAC,OAAE,4RAKH,GACF;AAAA,IAEA,oBAAC,kBAAe,OAAM,0BACpB,8BAAC,OAAE,0QAKH,GACF;AAAA,IAEA,qBAAC,kBAAe,OAAM,cACpB;AAAA,0BAAC,OAAE,oFAEH;AAAA,MACA,oBAAC,OACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACX;AAAA;AAAA,MAED,GACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var providerIcons_exports = {};
|
|
20
|
+
__export(providerIcons_exports, {
|
|
21
|
+
ProviderIcons: () => ProviderIcons
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(providerIcons_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_apple = require("../icons/apple");
|
|
26
|
+
var import_facebook = require("../icons/facebook");
|
|
27
|
+
var import_github = require("../icons/github");
|
|
28
|
+
var import_google = require("../icons/google");
|
|
29
|
+
const ProviderIcons = ({ providerName }) => {
|
|
30
|
+
const provider = providerName == null ? void 0 : providerName.toLowerCase();
|
|
31
|
+
switch (provider) {
|
|
32
|
+
case "github":
|
|
33
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_github.GithubIcon, {});
|
|
34
|
+
case "google":
|
|
35
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_google.GoogleIcon, {});
|
|
36
|
+
case "facebook":
|
|
37
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_facebook.FacebookIcon, {});
|
|
38
|
+
case "apple":
|
|
39
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_apple.AppleIcon, {});
|
|
40
|
+
default:
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
45
|
+
0 && (module.exports = {
|
|
46
|
+
ProviderIcons
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=providerIcons.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../components/tailwind/providerIcons.tsx"],"sourcesContent":["import { AppleIcon } from '../icons/apple'\nimport { FacebookIcon } from '../icons/facebook'\nimport { GithubIcon } from '../icons/github'\nimport { GoogleIcon } from '../icons/google'\n\nexport const ProviderIcons = ({ providerName }: { providerName: string }) => {\n const provider = providerName?.toLowerCase()\n switch (provider) {\n case 'github':\n return <GithubIcon />\n case 'google':\n return <GoogleIcon />\n case 'facebook':\n return <FacebookIcon />\n case 'apple':\n return <AppleIcon />\n default:\n return null\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASa;AATb,mBAA0B;AAC1B,sBAA6B;AAC7B,oBAA2B;AAC3B,oBAA2B;AAEpB,MAAM,gBAAgB,CAAC,EAAE,aAAa,MAAgC;AAC3E,QAAM,WAAW,6CAAc;AAC/B,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO,4CAAC,4BAAW;AAAA,IACrB,KAAK;AACH,aAAO,4CAAC,4BAAW;AAAA,IACrB,KAAK;AACH,aAAO,4CAAC,gCAAa;AAAA,IACvB,KAAK;AACH,aAAO,4CAAC,0BAAU;AAAA,IACpB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerIcons.d.ts","sourceRoot":"","sources":["../../../components/tailwind/providerIcons.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,qBAAsB;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,mDAcvE,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { AppleIcon } from "../icons/apple";
|
|
3
|
+
import { FacebookIcon } from "../icons/facebook";
|
|
4
|
+
import { GithubIcon } from "../icons/github";
|
|
5
|
+
import { GoogleIcon } from "../icons/google";
|
|
6
|
+
const ProviderIcons = ({ providerName }) => {
|
|
7
|
+
const provider = providerName == null ? void 0 : providerName.toLowerCase();
|
|
8
|
+
switch (provider) {
|
|
9
|
+
case "github":
|
|
10
|
+
return /* @__PURE__ */ jsx(GithubIcon, {});
|
|
11
|
+
case "google":
|
|
12
|
+
return /* @__PURE__ */ jsx(GoogleIcon, {});
|
|
13
|
+
case "facebook":
|
|
14
|
+
return /* @__PURE__ */ jsx(FacebookIcon, {});
|
|
15
|
+
case "apple":
|
|
16
|
+
return /* @__PURE__ */ jsx(AppleIcon, {});
|
|
17
|
+
default:
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
ProviderIcons
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=providerIcons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../components/tailwind/providerIcons.tsx"],"sourcesContent":["import { AppleIcon } from '../icons/apple'\nimport { FacebookIcon } from '../icons/facebook'\nimport { GithubIcon } from '../icons/github'\nimport { GoogleIcon } from '../icons/google'\n\nexport const ProviderIcons = ({ providerName }: { providerName: string }) => {\n const provider = providerName?.toLowerCase()\n switch (provider) {\n case 'github':\n return <GithubIcon />\n case 'google':\n return <GoogleIcon />\n case 'facebook':\n return <FacebookIcon />\n case 'apple':\n return <AppleIcon />\n default:\n return null\n }\n}\n"],"mappings":"AASa;AATb,SAAS,iBAAiB;AAC1B,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAEpB,MAAM,gBAAgB,CAAC,EAAE,aAAa,MAAgC;AAC3E,QAAM,WAAW,6CAAc;AAC/B,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO,oBAAC,cAAW;AAAA,IACrB,KAAK;AACH,aAAO,oBAAC,cAAW;AAAA,IACrB,KAAK;AACH,aAAO,oBAAC,gBAAa;AAAA,IACvB,KAAK;AACH,aAAO,oBAAC,aAAU;AAAA,IACpB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
|