@youversion/platform-react-ui 0.5.8 → 0.7.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 +7 -8
- package/dist/components/SignInButton.d.ts +5 -15
- package/dist/components/SignInButton.d.ts.map +1 -1
- package/dist/components/SignInButton.stories.d.ts +2 -12
- package/dist/components/SignInButton.stories.d.ts.map +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/verse-of-the-day.stories.d.ts.map +1 -1
- package/dist/index.cjs +611 -644
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +603 -633
- package/dist/lib/inject-styles.d.ts +2 -0
- package/dist/lib/inject-styles.d.ts.map +1 -0
- package/dist/tailwind.css +1 -1
- package/package.json +4 -5
- package/dist/hooks/index.d.ts +0 -2
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/useAuthentication.d.ts +0 -8
- package/dist/hooks/useAuthentication.d.ts.map +0 -1
- package/dist/providers/YVPErrorBoundary.d.ts +0 -17
- package/dist/providers/YVPErrorBoundary.d.ts.map +0 -1
- package/dist/providers/YVPErrorBoundary.test.d.ts +0 -2
- package/dist/providers/YVPErrorBoundary.test.d.ts.map +0 -1
- package/dist/providers/YVPProvider.d.ts +0 -20
- package/dist/providers/YVPProvider.d.ts.map +0 -1
- package/dist/providers/index.d.ts +0 -3
- package/dist/providers/index.d.ts.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -33,14 +33,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
33
33
|
var index_exports = {};
|
|
34
34
|
__export(index_exports, {
|
|
35
35
|
ApiClient: () => ApiClient,
|
|
36
|
-
AuthClient: () => AuthClient,
|
|
37
|
-
AuthenticationStrategyRegistry: () => AuthenticationStrategyRegistry,
|
|
38
36
|
BOOK_CANON: () => BOOK_CANON,
|
|
39
37
|
BOOK_IDS: () => BOOK_IDS,
|
|
40
38
|
BibleChapterPicker: () => BibleChapterPicker,
|
|
41
39
|
BibleClient: () => BibleClient,
|
|
42
40
|
BibleReader: () => BibleReader,
|
|
43
|
-
BibleSDKProvider: () => import_platform_react_hooks7.BibleSDKProvider,
|
|
44
41
|
BibleTextView: () => BibleTextView,
|
|
45
42
|
BibleVersionPicker: () => BibleVersionPicker,
|
|
46
43
|
BibleWidgetView: () => BibleWidgetView,
|
|
@@ -53,18 +50,26 @@ __export(index_exports, {
|
|
|
53
50
|
SignInWithYouVersionResult: () => SignInWithYouVersionResult,
|
|
54
51
|
URLBuilder: () => URLBuilder,
|
|
55
52
|
VerseOfTheDay: () => VerseOfTheDay,
|
|
56
|
-
WebAuthenticationStrategy: () => WebAuthenticationStrategy,
|
|
57
|
-
YVPErrorBoundary: () => YVPErrorBoundary,
|
|
58
|
-
YVPProvider: () => YVPProvider,
|
|
59
53
|
YouVersionAPI: () => YouVersionAPI,
|
|
60
54
|
YouVersionAPIUsers: () => YouVersionAPIUsers,
|
|
61
55
|
YouVersionPlatformConfiguration: () => YouVersionPlatformConfiguration,
|
|
56
|
+
YouVersionProvider: () => import_platform_react_hooks8.YouVersionProvider,
|
|
62
57
|
YouVersionUserInfo: () => YouVersionUserInfo,
|
|
63
|
-
|
|
64
|
-
useYVP: () => useYVP
|
|
58
|
+
useYVAuth: () => import_platform_react_hooks8.useYVAuth
|
|
65
59
|
});
|
|
66
60
|
module.exports = __toCommonJS(index_exports);
|
|
67
61
|
|
|
62
|
+
// src/lib/inject-styles.ts
|
|
63
|
+
function injectStyles() {
|
|
64
|
+
if (typeof document === "undefined") return;
|
|
65
|
+
const id = "__yv-sdk-styles";
|
|
66
|
+
if (document.getElementById(id)) return;
|
|
67
|
+
const style = document.createElement("style");
|
|
68
|
+
style.id = id;
|
|
69
|
+
style.textContent = '/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */\n@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;700&family=Source+Serif+Pro:wght@400;700&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-outline-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--yv-font-sans:"Inter",sans-serif;--yv-font-serif:"Source Serif Pro",serif;--yv-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--yv-color-white:#fff;--yv-spacing:.25rem;--yv-breakpoint-sm:40rem;--yv-container-sm:24rem;--yv-container-md:28rem;--yv-container-lg:32rem;--yv-text-xs:.75rem;--yv-text-xs--line-height:calc(1/.75);--yv-text-sm:.875rem;--yv-text-sm--line-height:calc(1.25/.875);--yv-text-base:1rem;--yv-text-base--line-height:calc(1.5/1);--yv-text-xl:1.25rem;--yv-text-xl--line-height:calc(1.75/1.25);--yv-text-2xl:1.5rem;--yv-text-2xl--line-height:calc(2/1.5);--yv-font-weight-normal:400;--yv-font-weight-medium:500;--yv-font-weight-bold:700;--yv-tracking-widest:.1em;--yv-leading-snug:1.375;--yv-leading-normal:1.5;--yv-radius-2xl:1rem;--yv-radius-3xl:1.5rem;--yv-animate-spin:spin 1s linear infinite;--yv-blur-sm:8px;--yv-default-transition-duration:.15s;--yv-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--yv-default-font-family:"Inter",sans-serif;--yv-default-mono-font-family:var(--yv-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--yv-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--yv-default-font-feature-settings,normal);font-variation-settings:var(--yv-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--yv-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--yv-default-mono-font-feature-settings,normal);font-variation-settings:var(--yv-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}[data-yv-sdk] *{outline-color:var(--yv-ring)}@supports (color:color-mix(in lab, red, red)){[data-yv-sdk] *{outline-color:color-mix(in oklab,var(--yv-ring)50%,transparent)}}[data-yv-sdk]{background-color:var(--yv-background);color:var(--yv-foreground);font-family:Inter,sans-serif}}@layer components;@layer utilities{.yv\\:pointer-events-auto{pointer-events:auto}.yv\\:pointer-events-none{pointer-events:none}.yv\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.yv\\:absolute{position:absolute}.yv\\:relative{position:relative}.yv\\:inset-0{inset:calc(var(--yv-spacing)*0)}.yv\\:top-1\\/2{top:50%}.yv\\:left-1\\/2{left:50%}.yv\\:left-3{left:calc(var(--yv-spacing)*3)}.yv\\:z-20{z-index:20}.yv\\:z-50{z-index:50}.yv\\:order-first{order:-9999}.yv\\:order-last{order:9999}.yv\\:col-start-1{grid-column-start:1}.yv\\:col-start-2{grid-column-start:2}.yv\\:row-span-2{grid-row:span 2/span 2}.yv\\:row-start-1{grid-row-start:1}.yv\\:\\!m-0{margin:calc(var(--yv-spacing)*0)!important}.yv\\:mx-6{margin-inline:calc(var(--yv-spacing)*6)}.yv\\:my-0{margin-block:calc(var(--yv-spacing)*0)}.yv\\:mt-4{margin-top:calc(var(--yv-spacing)*4)}.yv\\:ml-2{margin-left:calc(var(--yv-spacing)*2)}.yv\\:line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.yv\\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.yv\\:block{display:block}.yv\\:flex{display:flex}.yv\\:grid{display:grid}.yv\\:inline-flex{display:inline-flex}.yv\\:field-sizing-content{field-sizing:content}.yv\\:aspect-square{aspect-ratio:1}.yv\\:size-4{width:calc(var(--yv-spacing)*4);height:calc(var(--yv-spacing)*4)}.yv\\:size-6{width:calc(var(--yv-spacing)*6);height:calc(var(--yv-spacing)*6)}.yv\\:size-8{width:calc(var(--yv-spacing)*8);height:calc(var(--yv-spacing)*8)}.yv\\:size-9{width:calc(var(--yv-spacing)*9);height:calc(var(--yv-spacing)*9)}.yv\\:size-10{width:calc(var(--yv-spacing)*10);height:calc(var(--yv-spacing)*10)}.yv\\:size-12{width:calc(var(--yv-spacing)*12);height:calc(var(--yv-spacing)*12)}.yv\\:h-4{height:calc(var(--yv-spacing)*4)}.yv\\:h-5{height:calc(var(--yv-spacing)*5)}.yv\\:h-6{height:calc(var(--yv-spacing)*6)}.yv\\:h-6\\!{height:calc(var(--yv-spacing)*6)!important}.yv\\:h-8{height:calc(var(--yv-spacing)*8)}.yv\\:h-9{height:calc(var(--yv-spacing)*9)}.yv\\:h-10{height:calc(var(--yv-spacing)*10)}.yv\\:h-\\[66vh\\]{height:66vh}.yv\\:h-\\[calc\\(100\\%-1px\\)\\]{height:calc(100% - 1px)}.yv\\:h-auto{height:auto}.yv\\:h-full{height:100%}.yv\\:h-screen{height:100vh}.yv\\:max-h-\\[66vh\\]{max-height:66vh}.yv\\:min-h-16{min-height:calc(var(--yv-spacing)*16)}.yv\\:w-4{width:calc(var(--yv-spacing)*4)}.yv\\:w-6{width:calc(var(--yv-spacing)*6)}.yv\\:w-6\\!{width:calc(var(--yv-spacing)*6)!important}.yv\\:w-8{width:calc(var(--yv-spacing)*8)}.yv\\:w-10{width:calc(var(--yv-spacing)*10)}.yv\\:w-72{width:calc(var(--yv-spacing)*72)}.yv\\:w-96{width:calc(var(--yv-spacing)*96)}.yv\\:w-fit{width:fit-content}.yv\\:w-full{width:100%}.yv\\:max-w-lg{max-width:var(--yv-container-lg)}.yv\\:max-w-md{max-width:var(--yv-container-md)}.yv\\:max-w-screen-sm{max-width:var(--yv-breakpoint-sm)}.yv\\:min-w-0{min-width:calc(var(--yv-spacing)*0)}.yv\\:min-w-5{min-width:calc(var(--yv-spacing)*5)}.yv\\:flex-1{flex:1}.yv\\:shrink-0{flex-shrink:0}.yv\\:grow{flex-grow:1}.yv\\:basis-full{flex-basis:100%}.yv\\:origin-\\(--radix-popover-content-transform-origin\\){transform-origin:var(--radix-popover-content-transform-origin)}.yv\\:origin-center{transform-origin:50%}.yv\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.yv\\:translate-x-2{--tw-translate-x:calc(var(--yv-spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.yv\\:translate-x-3{--tw-translate-x:calc(var(--yv-spacing)*3);translate:var(--tw-translate-x)var(--tw-translate-y)}.yv\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.yv\\:translate-y-0\\.5{--tw-translate-y:calc(var(--yv-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.yv\\:scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.yv\\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.yv\\:animate-spin{animation:var(--yv-animate-spin)}.yv\\:cursor-pointer{cursor:pointer}.yv\\:cursor-text{cursor:text}.yv\\:resize-none{resize:none}.yv\\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.yv\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.yv\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.yv\\:grid-cols-\\[1fr_auto\\]{grid-template-columns:1fr auto}.yv\\:grid-cols-\\[auto_1fr\\]{grid-template-columns:auto 1fr}.yv\\:grid-rows-\\[auto_1fr_auto\\]{grid-template-rows:auto 1fr auto}.yv\\:flex-col{flex-direction:column}.yv\\:flex-row{flex-direction:row}.yv\\:flex-wrap{flex-wrap:wrap}.yv\\:items-center{align-items:center}.yv\\:items-end{align-items:flex-end}.yv\\:items-start{align-items:flex-start}.yv\\:items-stretch{align-items:stretch}.yv\\:justify-between{justify-content:space-between}.yv\\:justify-center{justify-content:center}.yv\\:justify-start{justify-content:flex-start}.yv\\:gap-1{gap:calc(var(--yv-spacing)*1)}.yv\\:gap-1\\.5{gap:calc(var(--yv-spacing)*1.5)}.yv\\:gap-2{gap:calc(var(--yv-spacing)*2)}.yv\\:gap-2\\.5{gap:calc(var(--yv-spacing)*2.5)}.yv\\:gap-3{gap:calc(var(--yv-spacing)*3)}.yv\\:gap-4{gap:calc(var(--yv-spacing)*4)}.yv\\:gap-6{gap:calc(var(--yv-spacing)*6)}.yv\\:self-start{align-self:flex-start}.yv\\:self-stretch{align-self:stretch}.yv\\:justify-self-end{justify-self:flex-end}.yv\\:justify-self-start{justify-self:flex-start}.yv\\:overflow-hidden{overflow:hidden}.yv\\:overflow-y-auto{overflow-y:auto}.yv\\:rounded-2xl{border-radius:var(--yv-radius-2xl)}.yv\\:rounded-3xl{border-radius:var(--yv-radius-3xl)}.yv\\:rounded-\\[4px\\]{border-radius:4px}.yv\\:rounded-\\[8px\\]{border-radius:8px}.yv\\:rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\]{border-radius:calc(var(--radius) - 5px)}.yv\\:rounded-full{border-radius:3.40282e38px}.yv\\:rounded-lg{border-radius:var(--yv-radius)}.yv\\:rounded-md{border-radius:calc(var(--yv-radius) - 2px)}.yv\\:rounded-none{border-radius:0}.yv\\:rounded-sm{border-radius:calc(var(--yv-radius) - 4px)}.yv\\:rounded-t-2xl{border-top-left-radius:var(--yv-radius-2xl);border-top-right-radius:var(--yv-radius-2xl)}.yv\\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.yv\\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.yv\\:rounded-b-2xl{border-bottom-right-radius:var(--yv-radius-2xl);border-bottom-left-radius:var(--yv-radius-2xl)}.yv\\:border{border-style:var(--tw-border-style);border-width:1px}.yv\\:border-0{border-style:var(--tw-border-style);border-width:0}.yv\\:border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.yv\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.yv\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.yv\\:border-none{--tw-border-style:none;border-style:none}.yv\\:border-border{border-color:var(--yv-border)}.yv\\:border-input{border-color:var(--yv-input)}.yv\\:border-muted{border-color:var(--yv-muted)}.yv\\:border-transparent{border-color:#0000}.yv\\:bg-background{background-color:var(--yv-background)}.yv\\:bg-border{background-color:var(--yv-border)}.yv\\:bg-card{background-color:var(--yv-card)}.yv\\:bg-destructive{background-color:var(--yv-destructive)}.yv\\:bg-input{background-color:var(--yv-input)}.yv\\:bg-muted,.yv\\:bg-muted\\/50{background-color:var(--yv-muted)}@supports (color:color-mix(in lab, red, red)){.yv\\:bg-muted\\/50{background-color:color-mix(in oklab,var(--yv-muted)50%,transparent)}}.yv\\:bg-popover{background-color:var(--yv-popover)}.yv\\:bg-primary{background-color:var(--yv-primary)}.yv\\:bg-transparent{background-color:#0000}.yv\\:fill-primary-foreground{fill:var(--yv-primary-foreground)}.yv\\:p-0{padding:calc(var(--yv-spacing)*0)}.yv\\:p-0\\.5{padding:calc(var(--yv-spacing)*.5)}.yv\\:p-3{padding:calc(var(--yv-spacing)*3)}.yv\\:p-4{padding:calc(var(--yv-spacing)*4)}.yv\\:p-6{padding:calc(var(--yv-spacing)*6)}.yv\\:p-12{padding:calc(var(--yv-spacing)*12)}.yv\\:px-1{padding-inline:calc(var(--yv-spacing)*1)}.yv\\:px-2{padding-inline:calc(var(--yv-spacing)*2)}.yv\\:px-2\\.5{padding-inline:calc(var(--yv-spacing)*2.5)}.yv\\:px-3{padding-inline:calc(var(--yv-spacing)*3)}.yv\\:px-4{padding-inline:calc(var(--yv-spacing)*4)}.yv\\:px-6{padding-inline:calc(var(--yv-spacing)*6)}.yv\\:py-0\\.5{padding-block:calc(var(--yv-spacing)*.5)}.yv\\:py-1{padding-block:calc(var(--yv-spacing)*1)}.yv\\:py-1\\.5{padding-block:calc(var(--yv-spacing)*1.5)}.yv\\:py-2{padding-block:calc(var(--yv-spacing)*2)}.yv\\:py-3{padding-block:calc(var(--yv-spacing)*3)}.yv\\:py-4{padding-block:calc(var(--yv-spacing)*4)}.yv\\:py-8{padding-block:calc(var(--yv-spacing)*8)}.yv\\:py-12{padding-block:calc(var(--yv-spacing)*12)}.yv\\:pt-0{padding-top:calc(var(--yv-spacing)*0)}.yv\\:pt-3{padding-top:calc(var(--yv-spacing)*3)}.yv\\:pr-3{padding-right:calc(var(--yv-spacing)*3)}.yv\\:pb-3{padding-bottom:calc(var(--yv-spacing)*3)}.yv\\:pb-4{padding-bottom:calc(var(--yv-spacing)*4)}.yv\\:pl-3{padding-left:calc(var(--yv-spacing)*3)}.yv\\:pl-9{padding-left:calc(var(--yv-spacing)*9)}.yv\\:text-center{text-align:center}.yv\\:text-left{text-align:left}.yv\\:align-super{vertical-align:super}.yv\\:font-mono{font-family:var(--yv-font-mono)}.yv\\:font-sans{font-family:Inter,sans-serif}.yv\\:font-serif{font-family:Source Serif Pro,serif}.yv\\:font-serif\\!{font-family:Source Serif Pro,serif!important}.yv\\:text-2xl{font-size:var(--yv-text-2xl);line-height:var(--tw-leading,var(--yv-text-2xl--line-height))}.yv\\:text-base{font-size:var(--yv-text-base);line-height:var(--tw-leading,var(--yv-text-base--line-height))}.yv\\:text-sm{font-size:var(--yv-text-sm);line-height:var(--tw-leading,var(--yv-text-sm--line-height))}.yv\\:text-xl{font-size:var(--yv-text-xl);line-height:var(--tw-leading,var(--yv-text-xl--line-height))}.yv\\:text-xs{font-size:var(--yv-text-xs);line-height:var(--tw-leading,var(--yv-text-xs--line-height))}.yv\\:text-\\[0\\.5rem\\]{font-size:.5rem}.yv\\:text-\\[0\\.6em\\]{font-size:.6em}.yv\\:text-\\[0\\.75em\\]{font-size:.75em}.yv\\:text-\\[2\\.5rem\\]{font-size:2.5rem}.yv\\:leading-none{--tw-leading:1;line-height:1}.yv\\:leading-normal{--tw-leading:var(--yv-leading-normal);line-height:var(--yv-leading-normal)}.yv\\:leading-snug{--tw-leading:var(--yv-leading-snug);line-height:var(--yv-leading-snug)}.yv\\:font-bold{--tw-font-weight:var(--yv-font-weight-bold);font-weight:var(--yv-font-weight-bold)}.yv\\:font-medium{--tw-font-weight:var(--yv-font-weight-medium);font-weight:var(--yv-font-weight-medium)}.yv\\:font-normal{--tw-font-weight:var(--yv-font-weight-normal);font-weight:var(--yv-font-weight-normal)}.yv\\:tracking-widest{--tw-tracking:var(--yv-tracking-widest);letter-spacing:var(--yv-tracking-widest)}.yv\\:text-balance{text-wrap:balance}.yv\\:whitespace-nowrap{white-space:nowrap}.yv\\:text-\\(--yv-gray-30\\){color:var(--yv-gray-30)}.yv\\:text-foreground{color:var(--yv-foreground)}.yv\\:text-muted-foreground{color:var(--yv-muted-foreground)}.yv\\:text-popover-foreground{color:var(--yv-popover-foreground)}.yv\\:text-primary{color:var(--yv-primary)}.yv\\:text-primary-foreground{color:var(--yv-primary-foreground)}.yv\\:text-white{color:var(--yv-color-white)}.yv\\:uppercase{text-transform:uppercase}.yv\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.yv\\:underline-offset-4{text-underline-offset:4px}.yv\\:opacity-0{opacity:0}.yv\\:opacity-100{opacity:1}.yv\\:shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.yv\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.yv\\:shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.yv\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.yv\\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.yv\\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.yv\\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.yv\\:blur-none{--tw-blur: ;filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.yv\\:blur-sm{--tw-blur:blur(var(--yv-blur-sm));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.yv\\:transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--yv-default-transition-timing-function));transition-duration:var(--tw-duration,var(--yv-default-transition-duration))}.yv\\:transition-\\[filter\\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--yv-default-transition-timing-function));transition-duration:var(--tw-duration,var(--yv-default-transition-duration))}.yv\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--yv-default-transition-timing-function));transition-duration:var(--tw-duration,var(--yv-default-transition-duration))}.yv\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--yv-default-transition-timing-function));transition-duration:var(--tw-duration,var(--yv-default-transition-duration))}.yv\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--yv-default-transition-timing-function));transition-duration:var(--tw-duration,var(--yv-default-transition-duration))}.yv\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.yv\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.yv\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.yv\\:outline-none{--tw-outline-style:none;outline-style:none}.yv\\:select-none{-webkit-user-select:none;user-select:none}:is(.yv\\:\\*\\:max-w-lg>*){max-width:var(--yv-container-lg)}:is(.yv\\:\\*\\:shrink-0>*){flex-shrink:0}.yv\\:group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:translate-y-0\\.5:is(:where(.yv\\:group\\/item):has([data-slot=item-description]) *){--tw-translate-y:calc(var(--yv-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.yv\\:group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:self-start:is(:where(.yv\\:group\\/item):has([data-slot=item-description]) *){align-self:flex-start}.yv\\:group-has-\\[\\>input\\]\\/input-group\\:pt-2\\.5:is(:where(.yv\\:group\\/input-group):has(>input) *){padding-top:calc(var(--yv-spacing)*2.5)}.yv\\:group-has-\\[\\>input\\]\\/input-group\\:pb-2\\.5:is(:where(.yv\\:group\\/input-group):has(>input) *){padding-bottom:calc(var(--yv-spacing)*2.5)}.yv\\:group-data-\\[disabled\\=true\\]\\/input-group\\:opacity-50:is(:where(.yv\\:group\\/input-group)[data-disabled=true] *){opacity:.5}.yv\\:selection\\:bg-primary ::selection{background-color:var(--yv-primary)}.yv\\:selection\\:bg-primary::selection{background-color:var(--yv-primary)}.yv\\:selection\\:text-primary-foreground ::selection{color:var(--yv-primary-foreground)}.yv\\:selection\\:text-primary-foreground::selection{color:var(--yv-primary-foreground)}.yv\\:file\\:inline-flex::file-selector-button{display:inline-flex}.yv\\:file\\:h-7::file-selector-button{height:calc(var(--yv-spacing)*7)}.yv\\:file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.yv\\:file\\:bg-transparent::file-selector-button{background-color:#0000}.yv\\:file\\:text-sm::file-selector-button{font-size:var(--yv-text-sm);line-height:var(--tw-leading,var(--yv-text-sm--line-height))}.yv\\:file\\:font-medium::file-selector-button{--tw-font-weight:var(--yv-font-weight-medium);font-weight:var(--yv-font-weight-medium)}.yv\\:file\\:text-foreground::file-selector-button{color:var(--yv-foreground)}.yv\\:placeholder\\:text-muted-foreground::placeholder{color:var(--yv-muted-foreground)}.yv\\:last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.yv\\:hover\\:border-border:hover{border-color:var(--yv-border)}.yv\\:hover\\:bg-accent:hover{background-color:var(--yv-accent)}.yv\\:hover\\:bg-card:hover{background-color:var(--yv-card)}.yv\\:hover\\:bg-destructive\\/90:hover{background-color:var(--yv-destructive)}@supports (color:color-mix(in lab, red, red)){.yv\\:hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--yv-destructive)90%,transparent)}}.yv\\:hover\\:bg-muted:hover,.yv\\:hover\\:bg-muted\\/80:hover{background-color:var(--yv-muted)}@supports (color:color-mix(in lab, red, red)){.yv\\:hover\\:bg-muted\\/80:hover{background-color:color-mix(in oklab,var(--yv-muted)80%,transparent)}}.yv\\:hover\\:bg-primary\\/90:hover{background-color:var(--yv-primary)}@supports (color:color-mix(in lab, red, red)){.yv\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--yv-primary)90%,transparent)}}.yv\\:hover\\:text-accent-foreground:hover{color:var(--yv-accent-foreground)}.yv\\:hover\\:underline:hover{text-decoration-line:underline}}.yv\\:focus-visible\\:border-ring:focus-visible{border-color:var(--yv-ring)}.yv\\:focus-visible\\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.yv\\:focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.yv\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--yv-destructive)}@supports (color:color-mix(in lab, red, red)){.yv\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--yv-destructive)20%,transparent)}}.yv\\:focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--yv-ring)}@supports (color:color-mix(in lab, red, red)){.yv\\:focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--yv-ring)50%,transparent)}}.yv\\:focus-visible\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.yv\\:focus-visible\\:outline-ring:focus-visible{outline-color:var(--yv-ring)}.yv\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.yv\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.yv\\:disabled\\:opacity-50:disabled{opacity:.5}.yv\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:border-ring:has([data-slot=input-group-control]:focus-visible){border-color:var(--yv-ring)}.yv\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-\\[3px\\]:has([data-slot=input-group-control]:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.yv\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:var(--yv-ring)}@supports (color:color-mix(in lab, red, red)){.yv\\:has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:color-mix(in oklab,var(--yv-ring)50%,transparent)}}.yv\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:border-destructive:has([data-slot][aria-invalid=true]){border-color:var(--yv-destructive)}.yv\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:var(--yv-destructive)}@supports (color:color-mix(in lab, red, red)){.yv\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab,var(--yv-destructive)20%,transparent)}}.yv\\:has-\\[\\>\\[data-align\\=block-end\\]\\]\\:h-auto:has(>[data-align=block-end]){height:auto}.yv\\:has-\\[\\>\\[data-align\\=block-end\\]\\]\\:flex-col:has(>[data-align=block-end]){flex-direction:column}.yv\\:has-\\[\\>\\[data-align\\=block-start\\]\\]\\:h-auto:has(>[data-align=block-start]){height:auto}.yv\\:has-\\[\\>\\[data-align\\=block-start\\]\\]\\:flex-col:has(>[data-align=block-start]){flex-direction:column}.yv\\:has-\\[\\>\\[data-slot\\=button-group\\]\\]\\:gap-2:has(>[data-slot=button-group]){gap:calc(var(--yv-spacing)*2)}.yv\\:has-\\[\\>button\\]\\:mr-\\[-0\\.45rem\\]:has(>button){margin-right:-.45rem}.yv\\:has-\\[\\>button\\]\\:ml-\\[-0\\.45rem\\]:has(>button){margin-left:-.45rem}.yv\\:has-\\[\\>kbd\\]\\:mr-\\[-0\\.35rem\\]:has(>kbd){margin-right:-.35rem}.yv\\:has-\\[\\>kbd\\]\\:ml-\\[-0\\.35rem\\]:has(>kbd){margin-left:-.35rem}.yv\\:has-\\[\\>svg\\]\\:p-0:has(>svg){padding:calc(var(--yv-spacing)*0)}.yv\\:has-\\[\\>svg\\]\\:px-2:has(>svg){padding-inline:calc(var(--yv-spacing)*2)}.yv\\:has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--yv-spacing)*2.5)}.yv\\:has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--yv-spacing)*3)}.yv\\:has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--yv-spacing)*4)}.yv\\:has-\\[\\>textarea\\]\\:h-auto:has(>textarea){height:auto}.yv\\:aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--yv-destructive)}.yv\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--yv-destructive)}@supports (color:color-mix(in lab, red, red)){.yv\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--yv-destructive)20%,transparent)}}.yv\\:data-\\[orientation\\=horizontal\\]\\:h-px[data-orientation=horizontal]{height:1px}.yv\\:data-\\[orientation\\=horizontal\\]\\:w-full[data-orientation=horizontal]{width:100%}.yv\\:data-\\[orientation\\=vertical\\]\\:h-auto[data-orientation=vertical]{height:auto}.yv\\:data-\\[orientation\\=vertical\\]\\:h-full[data-orientation=vertical]{height:100%}.yv\\:data-\\[orientation\\=vertical\\]\\:w-px[data-orientation=vertical]{width:1px}.yv\\:data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.yv\\:data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.yv\\:data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.yv\\:data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.yv\\:data-\\[size\\=default\\]\\:p-4[data-size=default]{padding:calc(var(--yv-spacing)*4)}.yv\\:data-\\[size\\=lg\\]\\:p-8[data-size=lg]{padding:calc(var(--yv-spacing)*8)}.yv\\:data-\\[state\\=active\\]\\:bg-background[data-state=active]{background-color:var(--yv-background)}.yv\\:data-\\[state\\=active\\]\\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.yv\\:data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=closed]{animation:accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.yv\\:data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.yv\\:data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.yv\\:data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.yv\\:data-\\[state\\=open\\]\\:animate-accordion-down[data-state=open]{animation:accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.yv\\:data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.yv\\:data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.yv\\:data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media not all and (min-width:40rem){.yv\\:max-sm\\:px-4{padding-inline:calc(var(--yv-spacing)*4)}}@media (min-width:40rem){.yv\\:sm\\:w-sm{width:var(--yv-container-sm)}}@media (min-width:48rem){.yv\\:md\\:text-sm{font-size:var(--yv-text-sm);line-height:var(--tw-leading,var(--yv-text-sm--line-height))}}.yv\\:dark\\:border-input:is([data-yv-sdk][data-yv-theme=dark] *){border-color:var(--yv-input)}.yv\\:dark\\:bg-destructive\\/60:is([data-yv-sdk][data-yv-theme=dark] *){background-color:var(--yv-destructive)}@supports (color:color-mix(in lab, red, red)){.yv\\:dark\\:bg-destructive\\/60:is([data-yv-sdk][data-yv-theme=dark] *){background-color:color-mix(in oklab,var(--yv-destructive)60%,transparent)}}.yv\\:dark\\:bg-input\\/30:is([data-yv-sdk][data-yv-theme=dark] *){background-color:var(--yv-input)}@supports (color:color-mix(in lab, red, red)){.yv\\:dark\\:bg-input\\/30:is([data-yv-sdk][data-yv-theme=dark] *){background-color:color-mix(in oklab,var(--yv-input)30%,transparent)}}.yv\\:dark\\:bg-transparent:is([data-yv-sdk][data-yv-theme=dark] *){background-color:#0000}.yv\\:dark\\:text-muted-foreground:is([data-yv-sdk][data-yv-theme=dark] *){color:var(--yv-muted-foreground)}@media (hover:hover){.yv\\:dark\\:hover\\:bg-accent\\/50:is([data-yv-sdk][data-yv-theme=dark] *):hover{background-color:var(--yv-accent)}@supports (color:color-mix(in lab, red, red)){.yv\\:dark\\:hover\\:bg-accent\\/50:is([data-yv-sdk][data-yv-theme=dark] *):hover{background-color:color-mix(in oklab,var(--yv-accent)50%,transparent)}}.yv\\:dark\\:hover\\:bg-input\\/50:is([data-yv-sdk][data-yv-theme=dark] *):hover{background-color:var(--yv-input)}@supports (color:color-mix(in lab, red, red)){.yv\\:dark\\:hover\\:bg-input\\/50:is([data-yv-sdk][data-yv-theme=dark] *):hover{background-color:color-mix(in oklab,var(--yv-input)50%,transparent)}}}.yv\\:dark\\:focus-visible\\:ring-destructive\\/40:is([data-yv-sdk][data-yv-theme=dark] *):focus-visible{--tw-ring-color:var(--yv-destructive)}@supports (color:color-mix(in lab, red, red)){.yv\\:dark\\:focus-visible\\:ring-destructive\\/40:is([data-yv-sdk][data-yv-theme=dark] *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--yv-destructive)40%,transparent)}}.yv\\:dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40:is([data-yv-sdk][data-yv-theme=dark] *):has([data-slot][aria-invalid=true]){--tw-ring-color:var(--yv-destructive)}@supports (color:color-mix(in lab, red, red)){.yv\\:dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40:is([data-yv-sdk][data-yv-theme=dark] *):has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab,var(--yv-destructive)40%,transparent)}}.yv\\:dark\\:aria-invalid\\:ring-destructive\\/40:is([data-yv-sdk][data-yv-theme=dark] *)[aria-invalid=true]{--tw-ring-color:var(--yv-destructive)}@supports (color:color-mix(in lab, red, red)){.yv\\:dark\\:aria-invalid\\:ring-destructive\\/40:is([data-yv-sdk][data-yv-theme=dark] *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--yv-destructive)40%,transparent)}}.yv\\:dark\\:data-\\[state\\=active\\]\\:border-input:is([data-yv-sdk][data-yv-theme=dark] *)[data-state=active]{border-color:var(--yv-input)}.yv\\:dark\\:data-\\[state\\=active\\]\\:bg-input\\/30:is([data-yv-sdk][data-yv-theme=dark] *)[data-state=active]{background-color:var(--yv-input)}@supports (color:color-mix(in lab, red, red)){.yv\\:dark\\:data-\\[state\\=active\\]\\:bg-input\\/30:is([data-yv-sdk][data-yv-theme=dark] *)[data-state=active]{background-color:color-mix(in oklab,var(--yv-input)30%,transparent)}}.yv\\:dark\\:data-\\[state\\=active\\]\\:text-foreground:is([data-yv-sdk][data-yv-theme=dark] *)[data-state=active]{color:var(--yv-foreground)}.yv\\:\\[\\&_img\\]\\:size-full img{width:100%;height:100%}.yv\\:\\[\\&_img\\]\\:object-cover img{object-fit:cover}.yv\\:\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.yv\\:\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.yv\\:\\[\\&_svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--yv-spacing)*4);height:calc(var(--yv-spacing)*4)}.yv\\:\\[\\&\\+\\[data-slot\\=item-content\\]\\]\\:flex-none+[data-slot=item-content]{flex:none}.yv\\:\\[\\.border-b\\]\\:pb-3.border-b{padding-bottom:calc(var(--yv-spacing)*3)}.yv\\:\\[\\.border-t\\]\\:pt-3.border-t{padding-top:calc(var(--yv-spacing)*3)}.yv\\:\\[a\\]\\:transition-colors:is(a){transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--yv-default-transition-timing-function));transition-duration:var(--tw-duration,var(--yv-default-transition-duration))}@media (hover:hover){.yv\\:\\[a\\]\\:hover\\:bg-accent\\/50:is(a):hover{background-color:var(--yv-accent)}@supports (color:color-mix(in lab, red, red)){.yv\\:\\[a\\]\\:hover\\:bg-accent\\/50:is(a):hover{background-color:color-mix(in oklab,var(--yv-accent)50%,transparent)}}}.yv\\:\\[\\&\\>\\*\\]\\:focus-visible\\:relative>:focus-visible{position:relative}.yv\\:\\[\\&\\>\\*\\]\\:focus-visible\\:z-10>:focus-visible{z-index:10}.yv\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-t-none>:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.yv\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-l-none>:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.yv\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-t-0>:not(:first-child){border-top-style:var(--tw-border-style);border-top-width:0}.yv\\:\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-l-0>:not(:first-child){border-left-style:var(--tw-border-style);border-left-width:0}.yv\\:\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-r-none>:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.yv\\:\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-b-none>:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.yv\\:has-\\[select\\[aria-hidden\\=true\\]\\:last-child\\]\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:last-of-type\\]\\:rounded-r-md:has(:is(select[aria-hidden=true]:last-child))>[data-slot=select-trigger]:last-of-type{border-top-right-radius:calc(var(--yv-radius) - 2px);border-bottom-right-radius:calc(var(--yv-radius) - 2px)}.yv\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:not\\(\\[class\\*\\=w-\\]\\)\\]\\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:fit-content}.yv\\:\\[\\&\\>a\\]\\:underline>a{text-decoration-line:underline}.yv\\:\\[\\&\\>a\\]\\:underline-offset-4>a{text-underline-offset:4px}.yv\\:\\[\\&\\>a\\:hover\\]\\:text-primary>a:hover{color:var(--yv-primary)}.yv\\:\\[\\&\\>input\\]\\:flex-1>input{flex:1}.yv\\:has-\\[\\>\\[data-align\\=block-end\\]\\]\\:\\[\\&\\>input\\]\\:pt-3:has(>[data-align=block-end])>input{padding-top:calc(var(--yv-spacing)*3)}.yv\\:has-\\[\\>\\[data-align\\=block-start\\]\\]\\:\\[\\&\\>input\\]\\:pb-3:has(>[data-align=block-start])>input{padding-bottom:calc(var(--yv-spacing)*3)}.yv\\:has-\\[\\>\\[data-align\\=inline-end\\]\\]\\:\\[\\&\\>input\\]\\:pr-2:has(>[data-align=inline-end])>input{padding-right:calc(var(--yv-spacing)*2)}.yv\\:has-\\[\\>\\[data-align\\=inline-start\\]\\]\\:\\[\\&\\>input\\]\\:pl-2:has(>[data-align=inline-start])>input{padding-left:calc(var(--yv-spacing)*2)}.yv\\:\\[\\&\\>kbd\\]\\:rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\]>kbd{border-radius:calc(var(--radius) - 5px)}.yv\\:\\[\\&\\>p\\]\\:inline-block>p{display:inline-block}.yv\\:\\[\\&\\>svg\\]\\:pointer-events-none>svg{pointer-events:none}.yv\\:\\[\\&\\>svg\\]\\:size-3>svg{width:calc(var(--yv-spacing)*3);height:calc(var(--yv-spacing)*3)}.yv\\:\\[\\&\\>svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-3\\.5>svg:not([class*=size-]){width:calc(var(--yv-spacing)*3.5);height:calc(var(--yv-spacing)*3.5)}.yv\\:\\[\\&\\>svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-4>svg:not([class*=size-]){width:calc(var(--yv-spacing)*4);height:calc(var(--yv-spacing)*4)}.yv\\:\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180[data-state=open]>svg{rotate:180deg}@media (hover:hover){a.yv\\:\\[a\\&\\]\\:hover\\:bg-accent:hover{background-color:var(--yv-accent)}a.yv\\:\\[a\\&\\]\\:hover\\:bg-destructive\\/90:hover{background-color:var(--yv-destructive)}@supports (color:color-mix(in lab, red, red)){a.yv\\:\\[a\\&\\]\\:hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--yv-destructive)90%,transparent)}}a.yv\\:\\[a\\&\\]\\:hover\\:bg-muted\\/90:hover{background-color:var(--yv-muted)}@supports (color:color-mix(in lab, red, red)){a.yv\\:\\[a\\&\\]\\:hover\\:bg-muted\\/90:hover{background-color:color-mix(in oklab,var(--yv-muted)90%,transparent)}}a.yv\\:\\[a\\&\\]\\:hover\\:bg-primary\\/90:hover{background-color:var(--yv-primary)}@supports (color:color-mix(in lab, red, red)){a.yv\\:\\[a\\&\\]\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--yv-primary)90%,transparent)}}a.yv\\:\\[a\\&\\]\\:hover\\:text-accent-foreground:hover{color:var(--yv-accent-foreground)}}.trim-both{text-box-trim:trim-both}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}[data-slot=yv-bible-renderer]{all:unset;--yv-reader-font-family:var(--font-sans),var(--font-serif);--yv-reader-font-size:20px;--yv-reader-line-height:1.625;-webkit-tap-highlight-color:#0000;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}[data-slot=yv-bible-renderer] *{line-height:var(--yv-reader-line-height);font-family:var(--yv-reader-font-family);font-size:var(--yv-reader-font-size);-webkit-tap-highlight-color:#0000;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;margin:0;padding:0}[data-slot=yv-bible-renderer]{color:var(--yv-foreground)}:is([data-slot=yv-bible-renderer]>*){width:100%;max-width:var(--yv-container-lg)}[data-slot=yv-bible-renderer] .id,[data-slot=yv-bible-renderer] .ide,[data-slot=yv-bible-renderer] .sts,[data-slot=yv-bible-renderer] .rem,[data-slot=yv-bible-renderer] .toc1,[data-slot=yv-bible-renderer] .toc2,[data-slot=yv-bible-renderer] .toc3,[data-slot=yv-bible-renderer] .imte,[data-slot=yv-bible-renderer] .ie,[data-slot=yv-bible-renderer] .mte,[data-slot=yv-bible-renderer] .cl{display:none}[data-slot=yv-bible-renderer] .version{margin-top:1.6em;padding:1.2em}[data-slot=yv-bible-renderer] .chapter>.label{display:none}[data-slot=yv-bible-renderer] .verse>.label,[data-slot=yv-bible-renderer] .fv,[data-slot=yv-bible-renderer] .yv-vlbl{color:var(--yv-muted-foreground);vertical-align:baseline;white-space:nowrap;padding-right:.3em;font-size:.5em;line-height:1em;display:inline;position:relative;top:-.6em}[data-slot=yv-bible-renderer][data-show-verse-numbers=false] .yv-vlbl,[data-slot=yv-bible-renderer] .yv-n{display:none}[data-slot=yv-bible-renderer] .vp{color:var(--yv-gray-20);vertical-align:baseline;font-size:.5em;line-height:1em;display:inline;position:relative;top:-.6em}[data-slot=yv-bible-renderer] .verse>.label+.content,[data-slot=yv-bible-renderer] .yv-vlbl+.content,[data-slot=yv-bible-renderer] .fv+.content{white-space:normal}[data-slot=yv-bible-renderer] .yv-v,[data-slot=yv-bible-renderer] .verse{white-space:nowrap;display:inline}[data-slot=yv-bible-renderer] .imt,[data-slot=yv-bible-renderer] .imt1,[data-slot=yv-bible-renderer] .mt,[data-slot=yv-bible-renderer] .mt1,[data-slot=yv-bible-renderer] .ms,[data-slot=yv-bible-renderer] .ms1{margin:1em 0 0;font-size:1.3em;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .iot{margin:.5em 0;font-size:1.3em;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .io,[data-slot=yv-bible-renderer] .io1{margin-left:1em;list-style-type:disc;display:list-item}[data-slot=yv-bible-renderer] .io2,[data-slot=yv-bible-renderer] .io3{margin-left:2em;list-style-type:disc;display:list-item}[data-slot=yv-bible-renderer] .ipi{text-indent:1.5em}[data-slot=yv-bible-renderer] .imt2,[data-slot=yv-bible-renderer] .imt3,[data-slot=yv-bible-renderer] .imt4,[data-slot=yv-bible-renderer] .mt2,[data-slot=yv-bible-renderer] .mt3,[data-slot=yv-bible-renderer] .mt4{margin:.5em 0;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .is,[data-slot=yv-bible-renderer] .s,[data-slot=yv-bible-renderer] .s1,[data-slot=yv-bible-renderer] .ms1,[data-slot=yv-bible-renderer] .is1,[data-slot=yv-bible-renderer] .is2{margin:0 0 .5em;font-size:1.1em;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .heading{margin:0 0 .5em;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .s1 .note .heading,[data-slot=yv-bible-renderer] .s .note .heading{font-size:.67em;font-style:normal;font-weight:400}[data-slot=yv-bible-renderer] .s1 .note_close,[data-slot=yv-bible-renderer] .s .note_close{font-size:.67em}[data-slot=yv-bible-renderer] .s .note,[data-slot=yv-bible-renderer] .is .note,[data-slot=yv-bible-renderer] .s1 .note,[data-slot=yv-bible-renderer] .ms1 .note,[data-slot=yv-bible-renderer] .is1 .note,[data-slot=yv-bible-renderer] .is2 .note,[data-slot=yv-bible-renderer] .mr .note{font-size:.9em}[data-slot=yv-bible-renderer] .note .fr{padding-right:.25em}[data-slot=yv-bible-renderer] .note .fq,[data-slot=yv-bible-renderer] .note .fqa{font-style:italic}[data-slot=yv-bible-renderer] .note .fv{vertical-align:super;font-size:.75em}[data-slot=yv-bible-renderer] .note .fk{font-style:italic;font-weight:700}[data-slot=yv-bible-renderer] .p,[data-slot=yv-bible-renderer] .ip{text-indent:1em;margin-bottom:0}[data-slot=yv-bible-renderer] .pi+.p,[data-slot=yv-bible-renderer] .pi1+.p,[data-slot=yv-bible-renderer] .s+.pi,[data-slot=yv-bible-renderer] .s+.pi1,[data-slot=yv-bible-renderer] .s1+.pi,[data-slot=yv-bible-renderer] .s1+.pi1,[data-slot=yv-bible-renderer] .ms+.p,[data-slot=yv-bible-renderer] .ms1+.p,[data-slot=yv-bible-renderer] .ms2+.p,[data-slot=yv-bible-renderer] .q+.m,[data-slot=yv-bible-renderer] .q1+.m,[data-slot=yv-bible-renderer] .q2+.m,[data-slot=yv-bible-renderer] .q3+.m{text-indent:0;margin-top:.5em}[data-slot=yv-bible-renderer] .label+.p{text-indent:0}[data-slot=yv-bible-renderer] .chapter div:first-child{margin-top:0}[data-slot=yv-bible-renderer] .d+.d{margin-top:-1.25em}[data-slot=yv-bible-renderer] .p+.s,[data-slot=yv-bible-renderer] .p+.s1,[data-slot=yv-bible-renderer] .p+.s2,[data-slot=yv-bible-renderer] .p+.ms,[data-slot=yv-bible-renderer] .p+.ms1,[data-slot=yv-bible-renderer] .p+.ms2,[data-slot=yv-bible-renderer] .p+.q,[data-slot=yv-bible-renderer] .p+.q1,[data-slot=yv-bible-renderer] .p+.li,[data-slot=yv-bible-renderer] .p+.li1,[data-slot=yv-bible-renderer] .li+.li2,[data-slot=yv-bible-renderer] .li1+.li2,[data-slot=yv-bible-renderer] .li2+.li,[data-slot=yv-bible-renderer] .li2+.li1,[data-slot=yv-bible-renderer] .m+.s,[data-slot=yv-bible-renderer] .m+.s1,[data-slot=yv-bible-renderer] .m+.s2,[data-slot=yv-bible-renderer] .q+p,[data-slot=yv-bible-renderer] .q1+.p,[data-slot=yv-bible-renderer] .q2+.p,[data-slot=yv-bible-renderer] .q+.s,[data-slot=yv-bible-renderer] .q+.s1,[data-slot=yv-bible-renderer] .q+.s2,[data-slot=yv-bible-renderer] .q+.ms,[data-slot=yv-bible-renderer] .q+.ms1,[data-slot=yv-bible-renderer] .q+.ms2,[data-slot=yv-bible-renderer] .q1+.s,[data-slot=yv-bible-renderer] .q1+.s1,[data-slot=yv-bible-renderer] .q1+.s2,[data-slot=yv-bible-renderer] .q1+.ms,[data-slot=yv-bible-renderer] .q1+.ms1,[data-slot=yv-bible-renderer] .q1+.ms2,[data-slot=yv-bible-renderer] .q2+.s,[data-slot=yv-bible-renderer] .q2+.s1,[data-slot=yv-bible-renderer] .q2+.s2,[data-slot=yv-bible-renderer] .q2+.ms,[data-slot=yv-bible-renderer] .q2+.m1,[data-slot=yv-bible-renderer] .q2+.m2,[data-slot=yv-bible-renderer] .q3+.s,[data-slot=yv-bible-renderer] .q3+.s1,[data-slot=yv-bible-renderer] .q3+.s2,[data-slot=yv-bible-renderer] .q3+.ms,[data-slot=yv-bible-renderer] .q3+.m1,[data-slot=yv-bible-renderer] .q3+.m2,[data-slot=yv-bible-renderer] .imt+.is,[data-slot=yv-bible-renderer] .imt+.is1,[data-slot=yv-bible-renderer] .imt1+.is,[data-slot=yv-bible-renderer] .imt1+.is1,[data-slot=yv-bible-renderer] .ip+.is,[data-slot=yv-bible-renderer] .ip+.is1,[data-slot=yv-bible-renderer] .io+.is,[data-slot=yv-bible-renderer] .io+.is1,[data-slot=yv-bible-renderer] .io1+.is,[data-slot=yv-bible-renderer] .io1+.is1,[data-slot=yv-bible-renderer] .io2+.is,[data-slot=yv-bible-renderer] .io2+.is1,[data-slot=yv-bible-renderer] .io3+.is,[data-slot=yv-bible-renderer] .io3+.is1,[data-slot=yv-bible-renderer] .ip+.io,[data-slot=yv-bible-renderer] .ip+.io1,[data-slot=yv-bible-renderer] .ip+.io2,[data-slot=yv-bible-renderer] .ip+.io3,[data-slot=yv-bible-renderer] .table+.p,[data-slot=yv-bible-renderer] .p+.table,[data-slot=yv-bible-renderer] .pi1+.s,[data-slot=yv-bible-renderer] .pi+.s{margin-top:1em}[data-slot=yv-bible-renderer] .p+.pm,[data-slot=yv-bible-renderer] .p+.pmo,[data-slot=yv-bible-renderer] .p+.pmc,[data-slot=yv-bible-renderer] .p+.q1,[data-slot=yv-bible-renderer] .p+.q2,[data-slot=yv-bible-renderer] .p+.q3,[data-slot=yv-bible-renderer] .p+.q4,[data-slot=yv-bible-renderer] .p+.qr,[data-slot=yv-bible-renderer] .p+.qm1,[data-slot=yv-bible-renderer] .p+.qm2,[data-slot=yv-bible-renderer] .p+.pmr,[data-slot=yv-bible-renderer] .m+.pm,[data-slot=yv-bible-renderer] .m+.pmo,[data-slot=yv-bible-renderer] .m+.pmc,[data-slot=yv-bible-renderer] .m+.q1,[data-slot=yv-bible-renderer] .m+.q2,[data-slot=yv-bible-renderer] .m+.q3,[data-slot=yv-bible-renderer] .m+.q4,[data-slot=yv-bible-renderer] .m+.qr,[data-slot=yv-bible-renderer] .m+.qm1,[data-slot=yv-bible-renderer] .m+.qm2,[data-slot=yv-bible-renderer] .m+.pmr,[data-slot=yv-bible-renderer] .mi+.pm,[data-slot=yv-bible-renderer] .mi+.pmo,[data-slot=yv-bible-renderer] .mi+.pmc,[data-slot=yv-bible-renderer] .mi+.q1,[data-slot=yv-bible-renderer] .mi+.q2,[data-slot=yv-bible-renderer] .mi+.q3,[data-slot=yv-bible-renderer] .mi+.q4,[data-slot=yv-bible-renderer] .mi+.qr,[data-slot=yv-bible-renderer] .mi+.qm1,[data-slot=yv-bible-renderer] .mi+.qm2,[data-slot=yv-bible-renderer] .mi+.pmr,[data-slot=yv-bible-renderer] .pi1+.pm,[data-slot=yv-bible-renderer] .pi1+.pmo,[data-slot=yv-bible-renderer] .pi1+.pmc,[data-slot=yv-bible-renderer] .pi1+.q1,[data-slot=yv-bible-renderer] .pi1+.q2,[data-slot=yv-bible-renderer] .pi1+.q3,[data-slot=yv-bible-renderer] .pi1+.q4,[data-slot=yv-bible-renderer] .pi1+.qr,[data-slot=yv-bible-renderer] .pi1+.qm1,[data-slot=yv-bible-renderer] .pi1+.qm2,[data-slot=yv-bible-renderer] .pi1+.pmr,[data-slot=yv-bible-renderer] .pi2+.pm,[data-slot=yv-bible-renderer] .pi2+.pmo,[data-slot=yv-bible-renderer] .pi2+.pmc,[data-slot=yv-bible-renderer] .pi2+.q1,[data-slot=yv-bible-renderer] .pi2+.q2,[data-slot=yv-bible-renderer] .pi2+.q3,[data-slot=yv-bible-renderer] .pi2+.q4,[data-slot=yv-bible-renderer] .pi2+.qr,[data-slot=yv-bible-renderer] .pi2+.qm1,[data-slot=yv-bible-renderer] .pi2+.qm2,[data-slot=yv-bible-renderer] .pi2+.pmr,[data-slot=yv-bible-renderer] .pi3+.pm,[data-slot=yv-bible-renderer] .pi3+.pmo,[data-slot=yv-bible-renderer] .pi3+.pmc,[data-slot=yv-bible-renderer] .pi3+.q1,[data-slot=yv-bible-renderer] .pi3+.q2,[data-slot=yv-bible-renderer] .pi3+.q3,[data-slot=yv-bible-renderer] .pi3+.q4,[data-slot=yv-bible-renderer] .pi3+.qr,[data-slot=yv-bible-renderer] .pi3+.qm1,[data-slot=yv-bible-renderer] .pi3+.qm2,[data-slot=yv-bible-renderer] .pi3+.pmr,[data-slot=yv-bible-renderer] .li+.pm,[data-slot=yv-bible-renderer] .li+.pmo,[data-slot=yv-bible-renderer] .li+.pmc,[data-slot=yv-bible-renderer] .li+.q1,[data-slot=yv-bible-renderer] .li+.q2,[data-slot=yv-bible-renderer] .li+.q3,[data-slot=yv-bible-renderer] .li+.q4,[data-slot=yv-bible-renderer] .li+.qr,[data-slot=yv-bible-renderer] .li+.qm1,[data-slot=yv-bible-renderer] .li+.qm2,[data-slot=yv-bible-renderer] .li+.pmr,[data-slot=yv-bible-renderer] .li1+.pm,[data-slot=yv-bible-renderer] .li1+.pmo,[data-slot=yv-bible-renderer] .li1+.pmc,[data-slot=yv-bible-renderer] .li1+.q1,[data-slot=yv-bible-renderer] .li1+.q2,[data-slot=yv-bible-renderer] .li1+.q3,[data-slot=yv-bible-renderer] .li1+.q4,[data-slot=yv-bible-renderer] .li1+.qr,[data-slot=yv-bible-renderer] .li1+.qm1,[data-slot=yv-bible-renderer] .li1+.qm2,[data-slot=yv-bible-renderer] .li1+.pmr,[data-slot=yv-bible-renderer] .li2+.pm,[data-slot=yv-bible-renderer] .li2+.pmo,[data-slot=yv-bible-renderer] .li2+.pmc,[data-slot=yv-bible-renderer] .li2+.q1,[data-slot=yv-bible-renderer] .li2+.q2,[data-slot=yv-bible-renderer] .li2+.q3,[data-slot=yv-bible-renderer] .li2+.q4,[data-slot=yv-bible-renderer] .li2+.qr,[data-slot=yv-bible-renderer] .li2+.qm1,[data-slot=yv-bible-renderer] .li2+.qm2,[data-slot=yv-bible-renderer] .li2+.pmr,[data-slot=yv-bible-renderer] .li3+.pm,[data-slot=yv-bible-renderer] .li3+.pmo,[data-slot=yv-bible-renderer] .li3+.pmc,[data-slot=yv-bible-renderer] .li3+.q1,[data-slot=yv-bible-renderer] .li3+.q2,[data-slot=yv-bible-renderer] .li3+.q3,[data-slot=yv-bible-renderer] .li3+.q4,[data-slot=yv-bible-renderer] .li3+.qr,[data-slot=yv-bible-renderer] .li3+.qm1,[data-slot=yv-bible-renderer] .li3+.qm2,[data-slot=yv-bible-renderer] .li3+.pmr,[data-slot=yv-bible-renderer] .li4+.pm,[data-slot=yv-bible-renderer] .li4+.pmo,[data-slot=yv-bible-renderer] .li4+.pmc,[data-slot=yv-bible-renderer] .li4+.q1,[data-slot=yv-bible-renderer] .li4+.q2,[data-slot=yv-bible-renderer] .li4+.q3,[data-slot=yv-bible-renderer] .li4+.q4,[data-slot=yv-bible-renderer] .li4+.qr,[data-slot=yv-bible-renderer] .li4+.qm1,[data-slot=yv-bible-renderer] .li4+.qm2,[data-slot=yv-bible-renderer] .li4+.pmr,[data-slot=yv-bible-renderer] .lpi+.pm,[data-slot=yv-bible-renderer] .lpi+.pmo,[data-slot=yv-bible-renderer] .lpi+.pmc,[data-slot=yv-bible-renderer] .lpi+.q1,[data-slot=yv-bible-renderer] .lpi+.q2,[data-slot=yv-bible-renderer] .lpi+.q3,[data-slot=yv-bible-renderer] .lpi+.q4,[data-slot=yv-bible-renderer] .lpi+.qr,[data-slot=yv-bible-renderer] .lpi+.qm1,[data-slot=yv-bible-renderer] .lpi+.qm2,[data-slot=yv-bible-renderer] .lpi+.pmr{margin-top:0}[data-slot=yv-bible-renderer] .wj{color:var(--yv-red)}[data-slot=yv-bible-renderer] .nd,[data-slot=yv-bible-renderer] .sc{font-variant:small-caps}[data-slot=yv-bible-renderer] .b{height:1em;line-height:2em;display:block}[data-slot=yv-bible-renderer] .m,[data-slot=yv-bible-renderer] .nb{margin-bottom:calc(var(--yv-reader-font-size)*.5);text-indent:0;display:block}[data-slot=yv-bible-renderer] .q,[data-slot=yv-bible-renderer] .q1{text-indent:-2em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:2em;display:block}[data-slot=yv-bible-renderer] .q2{text-indent:-1em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:2em;display:block}[data-slot=yv-bible-renderer] .q3{text-indent:-2em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:3em;display:block}[data-slot=yv-bible-renderer] .q4{text-indent:-2em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:4em;display:block}[data-slot=yv-bible-renderer] .pi,[data-slot=yv-bible-renderer] .pi1{text-indent:1em;margin-bottom:calc(var(--yv-reader-font-size)*.5);padding-left:0;display:block}[data-slot=yv-bible-renderer] .pi2{text-indent:2em;margin-bottom:calc(var(--yv-reader-font-size)*.5);padding-left:1em;display:block}[data-slot=yv-bible-renderer] .pi3{text-indent:4em;margin-bottom:calc(var(--yv-reader-font-size)*.5);padding-left:3em;display:block}[data-slot=yv-bible-renderer] .mi,[data-slot=yv-bible-renderer] .pm,[data-slot=yv-bible-renderer] .pmo,[data-slot=yv-bible-renderer] .pmc,[data-slot=yv-bible-renderer] .pmr{text-indent:0;margin-bottom:calc(var(--yv-reader-font-size)*.5);padding-left:2em;display:block}[data-slot=yv-bible-renderer] .pr,[data-slot=yv-bible-renderer] .qr{text-align:right;margin-bottom:calc(var(--yv-reader-font-size)*.5);display:block}[data-slot=yv-bible-renderer] .pc,[data-slot=yv-bible-renderer] .qc{font-variant:small-caps;text-align:center;margin-bottom:calc(var(--yv-reader-font-size)*.5);font-weight:700;display:block}[data-slot=yv-bible-renderer] .iq,[data-slot=yv-bible-renderer] .iq1{text-indent:-2em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:2em;display:block}[data-slot=yv-bible-renderer] .iq2{text-indent:-1em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:2em;display:block}[data-slot=yv-bible-renderer] .iq3{text-indent:-2em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:3em;display:block}[data-slot=yv-bible-renderer] .iq4{text-indent:-2em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:4em;display:block}[data-slot=yv-bible-renderer] .qm,[data-slot=yv-bible-renderer] .qm1{text-indent:-2em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:2em;display:block}[data-slot=yv-bible-renderer] .qm2{text-indent:-1em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:2em;display:block}[data-slot=yv-bible-renderer] .qm3{text-indent:-2em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:3em;display:block}[data-slot=yv-bible-renderer] .qm4{text-indent:-2em;margin-bottom:calc(var(--yv-reader-font-size)*.3);padding-left:4em;display:block}[data-slot=yv-bible-renderer] .add,[data-slot=yv-bible-renderer] .it,[data-slot=yv-bible-renderer] .tl,[data-slot=yv-bible-renderer] .qt{font-style:italic}[data-slot=yv-bible-renderer] .qs{text-align:right;margin-top:calc(var(--yv-reader-font-size)*.5);margin-bottom:calc(var(--yv-reader-font-size)*.5);font-style:italic;display:block}[data-slot=yv-bible-renderer] .s2{margin:0 0 .5em;font-size:1em;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .s3,[data-slot=yv-bible-renderer] .s4{margin:0 0 .5em;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .ms2{margin:.5em 0;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .r,[data-slot=yv-bible-renderer] .sp,[data-slot=yv-bible-renderer] .sr{margin:0 0 .5em;font-style:italic;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .qa{margin:0 0 .5em;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .d{margin:.5em 0;font-style:italic;font-weight:700;line-height:1.8em;display:block}[data-slot=yv-bible-renderer] .li,[data-slot=yv-bible-renderer] .li1{margin-left:1em;list-style-type:disc;display:list-item}[data-slot=yv-bible-renderer] .li2{margin-left:2em;list-style-type:disc;display:list-item}[data-slot=yv-bible-renderer] .li3,[data-slot=yv-bible-renderer] .li4{list-style-type:disc;display:list-item}[data-slot=yv-bible-renderer] br{line-height:inherit}[data-slot=yv-bible-renderer] .content{display:inline}[data-slot=yv-bible-renderer] .footnote,[data-slot=yv-bible-renderer] .crossref{vertical-align:super;white-space:nowrap;font-size:.6em;line-height:0}[data-slot=yv-bible-renderer] .sub,[data-slot=yv-bible-renderer] .sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}[data-slot=yv-bible-renderer] .sup{top:-.25em}[data-slot=yv-bible-renderer] .sub{bottom:-.1em}[data-slot=yv-bible-renderer] table{background:var(--yv-background);border:1px solid var(--yv-border);width:100%;margin-bottom:calc(var(--yv-reader-font-size)*1);margin-top:calc(var(--yv-reader-font-size)*.75);table-layout:auto;font-size:inherit;border-collapse:separate;border-spacing:0;border-radius:.5rem;line-height:normal;overflow:hidden}[data-slot=yv-bible-renderer] table tr:nth-child(odd){background-color:var(--yv-card)}[data-slot=yv-bible-renderer] table td,[data-slot=yv-bible-renderer] .tc{text-align:inherit;vertical-align:top;padding:.25em}[data-slot=yv-bible-renderer] table td:not(:last-child),[data-slot=yv-bible-renderer] table th:not(:last-child){border-right:1px solid var(--yv-border)}[data-slot=yv-bible-renderer] table tr:not(:last-child) td,[data-slot=yv-bible-renderer] table tr:not(:last-child) th{border-bottom:1px solid var(--yv-border)}[data-slot=yv-bible-renderer] table td[colspan],[data-slot=yv-bible-renderer] table th[colspan]{border-right:none}[data-slot=yv-bible-renderer] table th,[data-slot=yv-bible-renderer] .th,[data-slot=yv-bible-renderer] .th1{background:var(--yv-foreground);color:var(--yv-primary-foreground);vertical-align:top;padding:.25em;font-weight:700}[data-slot=yv-bible-renderer] .tcr,[data-slot=yv-bible-renderer] .tcr1{text-align:right;vertical-align:top;padding:.25em}[data-slot=yv-bible-renderer] .thr,[data-slot=yv-bible-renderer] .thr1{background:var(--yv-foreground);color:var(--yv-primary-foreground);text-align:right;vertical-align:top;padding:.25em;font-weight:700}[data-slot=yv-bible-renderer][dir=rtl]{text-align:right;direction:rtl}[data-slot=yv-bible-renderer][dir=rtl] .p,[data-slot=yv-bible-renderer][dir=rtl] .m{text-align:right}[data-yv-sdk]{--yv-red:oklch(64% .22 15);--yv-red-dark-mode:oklch(68% .19 15);--yv-warm-neutral:oklch(96% .005 20);--yv-warm-neutral-dm:oklch(25% .005 20);--yv-teal-10:oklch(95% .01 195);--yv-teal-20:oklch(78% .01 180);--yv-teal-30-dm:oklch(58% .08 195);--yv-teal-30:oklch(52% .06 195);--yv-teal-40:oklch(35% .04 195);--yv-teal-50:oklch(18% .02 195);--yv-blue-10:oklch(96% .02 240);--yv-blue-20:oklch(78% .04 240);--yv-blue-30-dm:oklch(62% .12 240);--yv-blue-30:oklch(58% .08 240);--yv-blue-40:oklch(38% .06 240);--yv-blue-50:oklch(22% .04 240);--yv-purple-10:oklch(94% .02 320);--yv-purple-20:oklch(76% .04 320);--yv-purple-30-dm:oklch(52% .08 320);--yv-purple-30:oklch(48% .06 320);--yv-purple-40:oklch(32% .04 320);--yv-purple-50:oklch(18% .02 320);--yv-magenta-10:oklch(94% .04 15);--yv-magenta-20:oklch(76% .06 15);--yv-magenta-30-dm:oklch(52% .12 15);--yv-magenta-30:oklch(48% .08 15);--yv-magenta-40:oklch(28% .06 15);--yv-magenta-50:oklch(14% .04 15);--yv-orange-10:oklch(93% .04 45);--yv-orange-20:oklch(76% .06 45);--yv-orange-30-dm:oklch(62% .12 45);--yv-orange-30:oklch(58% .08 45);--yv-orange-40:oklch(38% .06 45);--yv-orange-50:oklch(22% .04 45);--yv-yellow-10:oklch(96% .04 90);--yv-yellow-20:oklch(84% .06 90);--yv-yellow-30-dm:oklch(68% .12 90);--yv-yellow-30:oklch(68% .08 90);--yv-yellow-40:oklch(52% .08 90);--yv-yellow-50:oklch(32% .06 90);--yv-green-10:oklch(93% .02 150);--yv-green-20:oklch(78% .04 150);--yv-green-30-dm:oklch(58% .08 150);--yv-green-30:oklch(54% .06 150);--yv-green-40:oklch(36% .04 150);--yv-green-50:oklch(18% .02 150);--yv-white:oklch(100% 0 0);--yv-gray-2:oklch(98.8% .001 17.2);--yv-gray-5:oklch(96.5% .001 17.2);--yv-gray-10:oklch(92.5% .001 17.2);--yv-gray-15:oklch(89.3% .0022 17.2);--yv-gray-20:oklch(78.8% .001 17.2);--yv-gray-25:oklch(58.8% .001 17.2);--yv-gray-30:oklch(47.8% .001 17.2);--yv-gray-35:oklch(37.8% .001 17.2);--yv-gray-40:oklch(29.8% .001 17.2);--yv-gray-45:oklch(21.8% .001 17.2);--yv-gray-48:oklch(17.8% .001 17.2);--yv-gray-50:oklch(13.8% .001 17.2);--yv-background:var(--yv-white);--yv-foreground:var(--yv-gray-50);--yv-card:var(--yv-gray-2);--yv-card-foreground:var(--yv-gray-50);--yv-popover:var(--yv-white);--yv-popover-foreground:var(--yv-gray-50);--yv-primary:var(--yv-gray-50);--yv-primary-foreground:var(--yv-white);--yv-secondary:var(--yv-warm-neutral);--yv-secondary-foreground:var(--yv-gray-50);--yv-muted:var(--yv-gray-5);--yv-muted-foreground:var(--yv-gray-30);--yv-accent:var(--yv-gray-5);--yv-accent-foreground:var(--yv-gray-50);--yv-destructive:var(--yv-red);--yv-destructive-foreground:var(--yv-white);--yv-border:var(--yv-gray-15);--yv-input:var(--yv-gray-5);--yv-ring:var(--yv-blue-30);--yv-chart-1:var(--yv-blue-30);--yv-chart-2:var(--yv-green-30);--yv-chart-3:var(--yv-purple-30);--yv-chart-4:var(--yv-orange-30);--yv-chart-5:var(--yv-magenta-30);--yv-radius:2rem;--yv-sidebar:var(--yv-gray-2);--yv-sidebar-foreground:var(--yv-gray-50);--yv-sidebar-primary:var(--yv-teal-30);--yv-sidebar-primary-foreground:var(--yv-white);--yv-sidebar-accent:var(--yv-gray-5);--yv-sidebar-accent-foreground:var(--yv-gray-50);--yv-sidebar-border:var(--yv-gray-15);--yv-sidebar-ring:var(--yv-blue-30)}[data-yv-sdk][data-yv-theme=dark]{--yv-red:oklch(68% .19 15);--yv-red-dark-mode:oklch(64% .22 15);--yv-warm-neutral:oklch(25% .005 20);--yv-warm-neutral-dm:oklch(96% .005 20);--yv-background:var(--yv-gray-50);--yv-foreground:var(--yv-white);--yv-card:var(--yv-gray-45);--yv-card-foreground:var(--yv-white);--yv-popover:var(--yv-gray-48);--yv-popover-foreground:var(--yv-white);--yv-primary:var(--yv-red-dark-mode);--yv-primary-foreground:var(--yv-white);--yv-secondary:var(--yv-warm-neutral-dm);--yv-secondary-foreground:var(--yv-white);--yv-muted:var(--yv-gray-40);--yv-muted-foreground:var(--yv-gray-10);--yv-accent:var(--yv-gray-30);--yv-accent-foreground:var(--yv-gray-2);--yv-destructive:var(--yv-red);--yv-destructive-foreground:var(--yv-white);--yv-border:var(--yv-gray-35);--yv-input:var(--yv-gray-40);--yv-ring:var(--yv-blue-30-dm);--yv-chart-1:var(--yv-blue-30-dm);--yv-chart-2:var(--yv-green-30-dm);--yv-chart-3:var(--yv-purple-30-dm);--yv-chart-4:var(--yv-orange-30-dm);--yv-chart-5:var(--yv-magenta-30-dm);--yv-sidebar:var(--yv-gray-48);--yv-sidebar-foreground:var(--yv-white);--yv-sidebar-primary:var(--yv-teal-30-dm);--yv-sidebar-primary-foreground:var(--yv-white);--yv-sidebar-accent:var(--yv-gray-40);--yv-sidebar-accent-foreground:var(--yv-white);--yv-sidebar-border:var(--yv-gray-35);--yv-sidebar-ring:var(--yv-blue-30-dm)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}to{height:0}}';
|
|
70
|
+
document.head.appendChild(style);
|
|
71
|
+
}
|
|
72
|
+
|
|
68
73
|
// src/components/bible-chapter-picker.tsx
|
|
69
74
|
var import_react = require("react");
|
|
70
75
|
var import_react_use_controllable_state = require("@radix-ui/react-use-controllable-state");
|
|
@@ -571,12 +576,12 @@ var NEVER = Object.freeze({
|
|
|
571
576
|
// @__NO_SIDE_EFFECTS__
|
|
572
577
|
function $constructor(name, initializer3, params) {
|
|
573
578
|
function init(inst, def) {
|
|
574
|
-
var
|
|
579
|
+
var _a2;
|
|
575
580
|
Object.defineProperty(inst, "_zod", {
|
|
576
581
|
value: inst._zod ?? {},
|
|
577
582
|
enumerable: false
|
|
578
583
|
});
|
|
579
|
-
(
|
|
584
|
+
(_a2 = inst._zod).traits ?? (_a2.traits = /* @__PURE__ */ new Set());
|
|
580
585
|
inst._zod.traits.add(name);
|
|
581
586
|
initializer3(inst, def);
|
|
582
587
|
for (const k in _.prototype) {
|
|
@@ -591,10 +596,10 @@ function $constructor(name, initializer3, params) {
|
|
|
591
596
|
}
|
|
592
597
|
Object.defineProperty(Definition, "name", { value: name });
|
|
593
598
|
function _(def) {
|
|
594
|
-
var
|
|
599
|
+
var _a2;
|
|
595
600
|
const inst = params?.Parent ? new Definition() : this;
|
|
596
601
|
init(inst, def);
|
|
597
|
-
(
|
|
602
|
+
(_a2 = inst._zod).deferred ?? (_a2.deferred = []);
|
|
598
603
|
for (const fn of inst._zod.deferred) {
|
|
599
604
|
fn();
|
|
600
605
|
}
|
|
@@ -1167,8 +1172,8 @@ function aborted(x, startIndex = 0) {
|
|
|
1167
1172
|
}
|
|
1168
1173
|
function prefixIssues(path, issues) {
|
|
1169
1174
|
return issues.map((iss) => {
|
|
1170
|
-
var
|
|
1171
|
-
(
|
|
1175
|
+
var _a2;
|
|
1176
|
+
(_a2 = iss).path ?? (_a2.path = []);
|
|
1172
1177
|
iss.path.unshift(path);
|
|
1173
1178
|
return iss;
|
|
1174
1179
|
});
|
|
@@ -1332,7 +1337,7 @@ function formatError(error46, mapper = (issue2) => issue2.message) {
|
|
|
1332
1337
|
function treeifyError(error46, mapper = (issue2) => issue2.message) {
|
|
1333
1338
|
const result = { errors: [] };
|
|
1334
1339
|
const processError = (error47, path = []) => {
|
|
1335
|
-
var
|
|
1340
|
+
var _a2, _b;
|
|
1336
1341
|
for (const issue2 of error47.issues) {
|
|
1337
1342
|
if (issue2.code === "invalid_union" && issue2.errors.length) {
|
|
1338
1343
|
issue2.errors.map((issues) => processError({ issues }, issue2.path));
|
|
@@ -1353,7 +1358,7 @@ function treeifyError(error46, mapper = (issue2) => issue2.message) {
|
|
|
1353
1358
|
const terminal = i === fullpath.length - 1;
|
|
1354
1359
|
if (typeof el === "string") {
|
|
1355
1360
|
curr.properties ?? (curr.properties = {});
|
|
1356
|
-
(
|
|
1361
|
+
(_a2 = curr.properties)[el] ?? (_a2[el] = { errors: [] });
|
|
1357
1362
|
curr = curr.properties[el];
|
|
1358
1363
|
} else {
|
|
1359
1364
|
curr.items ?? (curr.items = []);
|
|
@@ -1642,10 +1647,10 @@ var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
|
|
|
1642
1647
|
|
|
1643
1648
|
// ../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/checks.js
|
|
1644
1649
|
var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
|
|
1645
|
-
var
|
|
1650
|
+
var _a2;
|
|
1646
1651
|
inst._zod ?? (inst._zod = {});
|
|
1647
1652
|
inst._zod.def = def;
|
|
1648
|
-
(
|
|
1653
|
+
(_a2 = inst._zod).onattach ?? (_a2.onattach = []);
|
|
1649
1654
|
});
|
|
1650
1655
|
var numericOriginMap = {
|
|
1651
1656
|
number: "number",
|
|
@@ -1711,8 +1716,8 @@ var $ZodCheckGreaterThan = /* @__PURE__ */ $constructor("$ZodCheckGreaterThan",
|
|
|
1711
1716
|
var $ZodCheckMultipleOf = /* @__PURE__ */ $constructor("$ZodCheckMultipleOf", (inst, def) => {
|
|
1712
1717
|
$ZodCheck.init(inst, def);
|
|
1713
1718
|
inst._zod.onattach.push((inst2) => {
|
|
1714
|
-
var
|
|
1715
|
-
(
|
|
1719
|
+
var _a2;
|
|
1720
|
+
(_a2 = inst2._zod.bag).multipleOf ?? (_a2.multipleOf = def.value);
|
|
1716
1721
|
});
|
|
1717
1722
|
inst._zod.check = (payload) => {
|
|
1718
1723
|
if (typeof payload.value !== typeof def.value)
|
|
@@ -1839,9 +1844,9 @@ var $ZodCheckBigIntFormat = /* @__PURE__ */ $constructor("$ZodCheckBigIntFormat"
|
|
|
1839
1844
|
};
|
|
1840
1845
|
});
|
|
1841
1846
|
var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, def) => {
|
|
1842
|
-
var
|
|
1847
|
+
var _a2;
|
|
1843
1848
|
$ZodCheck.init(inst, def);
|
|
1844
|
-
(
|
|
1849
|
+
(_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
|
|
1845
1850
|
const val = payload.value;
|
|
1846
1851
|
return !nullish(val) && val.size !== void 0;
|
|
1847
1852
|
});
|
|
@@ -1867,9 +1872,9 @@ var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, d
|
|
|
1867
1872
|
};
|
|
1868
1873
|
});
|
|
1869
1874
|
var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, def) => {
|
|
1870
|
-
var
|
|
1875
|
+
var _a2;
|
|
1871
1876
|
$ZodCheck.init(inst, def);
|
|
1872
|
-
(
|
|
1877
|
+
(_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
|
|
1873
1878
|
const val = payload.value;
|
|
1874
1879
|
return !nullish(val) && val.size !== void 0;
|
|
1875
1880
|
});
|
|
@@ -1895,9 +1900,9 @@ var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, d
|
|
|
1895
1900
|
};
|
|
1896
1901
|
});
|
|
1897
1902
|
var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (inst, def) => {
|
|
1898
|
-
var
|
|
1903
|
+
var _a2;
|
|
1899
1904
|
$ZodCheck.init(inst, def);
|
|
1900
|
-
(
|
|
1905
|
+
(_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
|
|
1901
1906
|
const val = payload.value;
|
|
1902
1907
|
return !nullish(val) && val.size !== void 0;
|
|
1903
1908
|
});
|
|
@@ -1925,9 +1930,9 @@ var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (i
|
|
|
1925
1930
|
};
|
|
1926
1931
|
});
|
|
1927
1932
|
var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (inst, def) => {
|
|
1928
|
-
var
|
|
1933
|
+
var _a2;
|
|
1929
1934
|
$ZodCheck.init(inst, def);
|
|
1930
|
-
(
|
|
1935
|
+
(_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
|
|
1931
1936
|
const val = payload.value;
|
|
1932
1937
|
return !nullish(val) && val.length !== void 0;
|
|
1933
1938
|
});
|
|
@@ -1954,9 +1959,9 @@ var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (ins
|
|
|
1954
1959
|
};
|
|
1955
1960
|
});
|
|
1956
1961
|
var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (inst, def) => {
|
|
1957
|
-
var
|
|
1962
|
+
var _a2;
|
|
1958
1963
|
$ZodCheck.init(inst, def);
|
|
1959
|
-
(
|
|
1964
|
+
(_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
|
|
1960
1965
|
const val = payload.value;
|
|
1961
1966
|
return !nullish(val) && val.length !== void 0;
|
|
1962
1967
|
});
|
|
@@ -1983,9 +1988,9 @@ var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (ins
|
|
|
1983
1988
|
};
|
|
1984
1989
|
});
|
|
1985
1990
|
var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals", (inst, def) => {
|
|
1986
|
-
var
|
|
1991
|
+
var _a2;
|
|
1987
1992
|
$ZodCheck.init(inst, def);
|
|
1988
|
-
(
|
|
1993
|
+
(_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
|
|
1989
1994
|
const val = payload.value;
|
|
1990
1995
|
return !nullish(val) && val.length !== void 0;
|
|
1991
1996
|
});
|
|
@@ -2014,7 +2019,7 @@ var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals"
|
|
|
2014
2019
|
};
|
|
2015
2020
|
});
|
|
2016
2021
|
var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat", (inst, def) => {
|
|
2017
|
-
var
|
|
2022
|
+
var _a2, _b;
|
|
2018
2023
|
$ZodCheck.init(inst, def);
|
|
2019
2024
|
inst._zod.onattach.push((inst2) => {
|
|
2020
2025
|
const bag = inst2._zod.bag;
|
|
@@ -2025,7 +2030,7 @@ var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat"
|
|
|
2025
2030
|
}
|
|
2026
2031
|
});
|
|
2027
2032
|
if (def.pattern)
|
|
2028
|
-
(
|
|
2033
|
+
(_a2 = inst._zod).check ?? (_a2.check = (payload) => {
|
|
2029
2034
|
def.pattern.lastIndex = 0;
|
|
2030
2035
|
if (def.pattern.test(payload.value))
|
|
2031
2036
|
return;
|
|
@@ -2227,7 +2232,7 @@ var version = {
|
|
|
2227
2232
|
|
|
2228
2233
|
// ../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/schemas.js
|
|
2229
2234
|
var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
2230
|
-
var
|
|
2235
|
+
var _a2;
|
|
2231
2236
|
inst ?? (inst = {});
|
|
2232
2237
|
inst._zod.def = def;
|
|
2233
2238
|
inst._zod.bag = inst._zod.bag || {};
|
|
@@ -2242,7 +2247,7 @@ var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
|
2242
2247
|
}
|
|
2243
2248
|
}
|
|
2244
2249
|
if (checks.length === 0) {
|
|
2245
|
-
(
|
|
2250
|
+
(_a2 = inst._zod).deferred ?? (_a2.deferred = []);
|
|
2246
2251
|
inst._zod.deferred?.push(() => {
|
|
2247
2252
|
inst._zod.run = inst._zod.parse;
|
|
2248
2253
|
});
|
|
@@ -10683,7 +10688,7 @@ var JSONSchemaGenerator = class {
|
|
|
10683
10688
|
this.seen = /* @__PURE__ */ new Map();
|
|
10684
10689
|
}
|
|
10685
10690
|
process(schema, _params = { path: [], schemaPath: [] }) {
|
|
10686
|
-
var
|
|
10691
|
+
var _a2;
|
|
10687
10692
|
const def = schema._zod.def;
|
|
10688
10693
|
const formatMap = {
|
|
10689
10694
|
guid: "uuid",
|
|
@@ -11192,7 +11197,7 @@ var JSONSchemaGenerator = class {
|
|
|
11192
11197
|
delete result.schema.default;
|
|
11193
11198
|
}
|
|
11194
11199
|
if (this.io === "input" && result.schema._prefault)
|
|
11195
|
-
(
|
|
11200
|
+
(_a2 = result.schema).default ?? (_a2.default = result.schema._prefault);
|
|
11196
11201
|
delete result.schema._prefault;
|
|
11197
11202
|
const _result = this.seen.get(schema);
|
|
11198
11203
|
return _result.schema;
|
|
@@ -13015,6 +13020,44 @@ var YouVersionPlatformConfiguration = (_a = class {
|
|
|
13015
13020
|
localStorage.setItem("x-yvp-installation-id", newId);
|
|
13016
13021
|
return newId;
|
|
13017
13022
|
}
|
|
13023
|
+
static saveAuthData(accessToken, refreshToken, idToken, expiryDate) {
|
|
13024
|
+
if (accessToken !== null) {
|
|
13025
|
+
localStorage.setItem("accessToken", accessToken);
|
|
13026
|
+
} else {
|
|
13027
|
+
localStorage.removeItem("accessToken");
|
|
13028
|
+
}
|
|
13029
|
+
if (refreshToken !== null) {
|
|
13030
|
+
localStorage.setItem("refreshToken", refreshToken);
|
|
13031
|
+
} else {
|
|
13032
|
+
localStorage.removeItem("refreshToken");
|
|
13033
|
+
}
|
|
13034
|
+
if (idToken !== null) {
|
|
13035
|
+
localStorage.setItem("idToken", idToken);
|
|
13036
|
+
} else {
|
|
13037
|
+
localStorage.removeItem("idToken");
|
|
13038
|
+
}
|
|
13039
|
+
if (expiryDate !== null) {
|
|
13040
|
+
localStorage.setItem("expiryDate", expiryDate.toISOString());
|
|
13041
|
+
} else {
|
|
13042
|
+
localStorage.removeItem("expiryDate");
|
|
13043
|
+
}
|
|
13044
|
+
}
|
|
13045
|
+
static clearAuthTokens() {
|
|
13046
|
+
this.saveAuthData(null, null, null, null);
|
|
13047
|
+
}
|
|
13048
|
+
static get accessToken() {
|
|
13049
|
+
return localStorage.getItem("accessToken");
|
|
13050
|
+
}
|
|
13051
|
+
static get refreshToken() {
|
|
13052
|
+
return localStorage.getItem("refreshToken");
|
|
13053
|
+
}
|
|
13054
|
+
static get idToken() {
|
|
13055
|
+
return localStorage.getItem("idToken");
|
|
13056
|
+
}
|
|
13057
|
+
static get tokenExpiryDate() {
|
|
13058
|
+
const dateString = localStorage.getItem("expiryDate");
|
|
13059
|
+
return dateString ? new Date(dateString) : null;
|
|
13060
|
+
}
|
|
13018
13061
|
static get appKey() {
|
|
13019
13062
|
return this._appKey;
|
|
13020
13063
|
}
|
|
@@ -13030,34 +13073,25 @@ var YouVersionPlatformConfiguration = (_a = class {
|
|
|
13030
13073
|
static set installationId(value) {
|
|
13031
13074
|
this._installationId = value || this.getOrSetInstallationId();
|
|
13032
13075
|
}
|
|
13033
|
-
static setAccessToken(token) {
|
|
13034
|
-
if (token !== null && (typeof token !== "string" || token.trim().length === 0)) {
|
|
13035
|
-
throw new Error("Access token must be a non-empty string or null");
|
|
13036
|
-
}
|
|
13037
|
-
this._accessToken = token;
|
|
13038
|
-
}
|
|
13039
|
-
static get accessToken() {
|
|
13040
|
-
return this._accessToken;
|
|
13041
|
-
}
|
|
13042
13076
|
static get apiHost() {
|
|
13043
13077
|
return this._apiHost;
|
|
13044
13078
|
}
|
|
13045
13079
|
static set apiHost(value) {
|
|
13046
13080
|
this._apiHost = value;
|
|
13047
13081
|
}
|
|
13048
|
-
static get
|
|
13049
|
-
return this.
|
|
13082
|
+
static get refreshTokenKey() {
|
|
13083
|
+
return this._refreshTokenKey;
|
|
13050
13084
|
}
|
|
13051
|
-
static set
|
|
13052
|
-
this.
|
|
13085
|
+
static set refreshTokenKey(value) {
|
|
13086
|
+
this._refreshTokenKey = value;
|
|
13053
13087
|
}
|
|
13054
|
-
static get
|
|
13055
|
-
return this.
|
|
13088
|
+
static get expiryDateKey() {
|
|
13089
|
+
return this._expiryDateKey;
|
|
13056
13090
|
}
|
|
13057
|
-
static set
|
|
13058
|
-
this.
|
|
13091
|
+
static set expiryDateKey(value) {
|
|
13092
|
+
this._expiryDateKey = value;
|
|
13059
13093
|
}
|
|
13060
|
-
}, __publicField(_a, "_appKey", null), __publicField(_a, "_installationId", null), __publicField(_a, "
|
|
13094
|
+
}, __publicField(_a, "_appKey", null), __publicField(_a, "_installationId", null), __publicField(_a, "_apiHost", "api.youversion.com"), __publicField(_a, "_refreshTokenKey", null), __publicField(_a, "_expiryDateKey", null), _a);
|
|
13061
13095
|
var HighlightsClient = class {
|
|
13062
13096
|
/**
|
|
13063
13097
|
* Creates a new HighlightsClient instance.
|
|
@@ -13177,74 +13211,6 @@ var HighlightsClient = class {
|
|
|
13177
13211
|
await this.client.delete(`/v1/highlights/${passageId}`, params);
|
|
13178
13212
|
}
|
|
13179
13213
|
};
|
|
13180
|
-
var AuthClient = class {
|
|
13181
|
-
/**
|
|
13182
|
-
* Creates an instance of AuthClient.
|
|
13183
|
-
* @param client - The ApiClient instance to use for requests.
|
|
13184
|
-
*/
|
|
13185
|
-
constructor(client) {
|
|
13186
|
-
__publicField(this, "client");
|
|
13187
|
-
this.client = client;
|
|
13188
|
-
}
|
|
13189
|
-
/**
|
|
13190
|
-
* Retrieves the current authenticated user.
|
|
13191
|
-
*
|
|
13192
|
-
* @param lat - The long access token (LAT) used for authentication.
|
|
13193
|
-
* @returns A promise that resolves to the authenticated User.
|
|
13194
|
-
*/
|
|
13195
|
-
async getUser(lat) {
|
|
13196
|
-
return this.client.get(`/auth/me`, { lat });
|
|
13197
|
-
}
|
|
13198
|
-
};
|
|
13199
|
-
var _a2;
|
|
13200
|
-
var AuthenticationStrategyRegistry = (_a2 = class {
|
|
13201
|
-
/**
|
|
13202
|
-
* Registers a platform-specific authentication strategy
|
|
13203
|
-
*
|
|
13204
|
-
* @param strategy - The authentication strategy to register
|
|
13205
|
-
* @throws Error if strategy is null, undefined, or missing required methods
|
|
13206
|
-
*/
|
|
13207
|
-
static register(strategy) {
|
|
13208
|
-
if (!strategy) {
|
|
13209
|
-
throw new Error("Authentication strategy cannot be null or undefined");
|
|
13210
|
-
}
|
|
13211
|
-
if (typeof strategy.authenticate !== "function") {
|
|
13212
|
-
throw new Error("Authentication strategy must implement authenticate method");
|
|
13213
|
-
}
|
|
13214
|
-
this.strategy = strategy;
|
|
13215
|
-
}
|
|
13216
|
-
/**
|
|
13217
|
-
* Gets the currently registered authentication strategy
|
|
13218
|
-
*
|
|
13219
|
-
* @returns The registered authentication strategy
|
|
13220
|
-
* @throws Error if no strategy has been registered
|
|
13221
|
-
*/
|
|
13222
|
-
static get() {
|
|
13223
|
-
if (!this.strategy) {
|
|
13224
|
-
throw new Error(
|
|
13225
|
-
"No authentication strategy registered. Please register a platform-specific strategy using AuthenticationStrategyRegistry.register()"
|
|
13226
|
-
);
|
|
13227
|
-
}
|
|
13228
|
-
return this.strategy;
|
|
13229
|
-
}
|
|
13230
|
-
/**
|
|
13231
|
-
* Checks if a strategy is currently registered
|
|
13232
|
-
*
|
|
13233
|
-
* @returns true if a strategy is registered, false otherwise
|
|
13234
|
-
*/
|
|
13235
|
-
static isRegistered() {
|
|
13236
|
-
return this.strategy !== null;
|
|
13237
|
-
}
|
|
13238
|
-
/**
|
|
13239
|
-
* Resets the registry by removing the current strategy
|
|
13240
|
-
*
|
|
13241
|
-
* This method is primarily intended for testing scenarios
|
|
13242
|
-
* where you need to clean up between test cases.
|
|
13243
|
-
*/
|
|
13244
|
-
static reset() {
|
|
13245
|
-
this.strategy = null;
|
|
13246
|
-
}
|
|
13247
|
-
}, __publicField(_a2, "strategy", null), _a2);
|
|
13248
13214
|
var SessionStorageStrategy = class {
|
|
13249
13215
|
setItem(key, value) {
|
|
13250
13216
|
if (typeof sessionStorage === "undefined") {
|
|
@@ -13289,94 +13255,120 @@ var MemoryStorageStrategy = class {
|
|
|
13289
13255
|
this.store.clear();
|
|
13290
13256
|
}
|
|
13291
13257
|
};
|
|
13292
|
-
var
|
|
13293
|
-
|
|
13294
|
-
|
|
13295
|
-
__publicField(this, "
|
|
13296
|
-
__publicField(this, "
|
|
13297
|
-
__publicField(this, "
|
|
13298
|
-
|
|
13299
|
-
|
|
13300
|
-
|
|
13301
|
-
this.
|
|
13302
|
-
this.
|
|
13303
|
-
|
|
13304
|
-
|
|
13305
|
-
authUrl.searchParams.set("redirect_uri", this.redirectUri);
|
|
13306
|
-
return this.authenticateWithRedirect(authUrl);
|
|
13258
|
+
var YouVersionUserInfo = class {
|
|
13259
|
+
constructor(data) {
|
|
13260
|
+
__publicField(this, "name");
|
|
13261
|
+
__publicField(this, "userId");
|
|
13262
|
+
__publicField(this, "email");
|
|
13263
|
+
__publicField(this, "avatarUrlFormat");
|
|
13264
|
+
if (!data || typeof data !== "object") {
|
|
13265
|
+
throw new Error("Invalid user data provided");
|
|
13266
|
+
}
|
|
13267
|
+
this.name = data.name;
|
|
13268
|
+
this.userId = data.id;
|
|
13269
|
+
this.email = data.email;
|
|
13270
|
+
this.avatarUrlFormat = data.avatar_url;
|
|
13307
13271
|
}
|
|
13308
|
-
|
|
13309
|
-
|
|
13310
|
-
|
|
13311
|
-
|
|
13312
|
-
|
|
13313
|
-
if (
|
|
13314
|
-
|
|
13315
|
-
|
|
13316
|
-
|
|
13317
|
-
|
|
13318
|
-
|
|
13319
|
-
|
|
13320
|
-
|
|
13321
|
-
|
|
13322
|
-
const storageStrategy = new SessionStorageStrategy();
|
|
13323
|
-
const returnUrl = storageStrategy.getItem("youversion-auth-return") ?? "/";
|
|
13324
|
-
storageStrategy.removeItem("youversion-auth-return");
|
|
13325
|
-
window.history.replaceState({}, "", returnUrl);
|
|
13326
|
-
return true;
|
|
13272
|
+
getAvatarUrl(width = 200, height = 200) {
|
|
13273
|
+
if (!this.avatarUrlFormat) {
|
|
13274
|
+
return null;
|
|
13275
|
+
}
|
|
13276
|
+
let urlString = this.avatarUrlFormat;
|
|
13277
|
+
if (urlString.startsWith("//")) {
|
|
13278
|
+
urlString = "https:" + urlString;
|
|
13279
|
+
}
|
|
13280
|
+
urlString = urlString.replace("{width}", width.toString());
|
|
13281
|
+
urlString = urlString.replace("{height}", height.toString());
|
|
13282
|
+
try {
|
|
13283
|
+
return new URL(urlString);
|
|
13284
|
+
} catch {
|
|
13285
|
+
return null;
|
|
13327
13286
|
}
|
|
13328
|
-
return false;
|
|
13329
13287
|
}
|
|
13330
|
-
|
|
13331
|
-
|
|
13332
|
-
|
|
13333
|
-
|
|
13334
|
-
|
|
13335
|
-
|
|
13336
|
-
|
|
13288
|
+
get avatarUrl() {
|
|
13289
|
+
return this.getAvatarUrl();
|
|
13290
|
+
}
|
|
13291
|
+
};
|
|
13292
|
+
var SignInWithYouVersionPKCEAuthorizationRequestBuilder = class {
|
|
13293
|
+
static async make(appKey, permissions, redirectURL) {
|
|
13294
|
+
const codeVerifier = this.randomURLSafeString(32);
|
|
13295
|
+
const codeChallenge = await this.codeChallenge(codeVerifier);
|
|
13296
|
+
const state = this.randomURLSafeString(24);
|
|
13297
|
+
const nonce = this.randomURLSafeString(24);
|
|
13298
|
+
const parameters = {
|
|
13299
|
+
codeVerifier,
|
|
13300
|
+
codeChallenge,
|
|
13301
|
+
state,
|
|
13302
|
+
nonce
|
|
13303
|
+
};
|
|
13304
|
+
const url2 = this.authorizeURL(appKey, permissions, redirectURL, parameters);
|
|
13305
|
+
return { url: url2, parameters };
|
|
13306
|
+
}
|
|
13307
|
+
static authorizeURL(appKey, permissions, redirectURL, parameters) {
|
|
13308
|
+
const components = new URL(`https://${YouVersionPlatformConfiguration.apiHost}/auth/authorize`);
|
|
13309
|
+
const redirectUrlString = redirectURL.toString().endsWith("/") ? redirectURL.toString().slice(0, -1) : redirectURL.toString();
|
|
13310
|
+
const queryParams = new URLSearchParams({
|
|
13311
|
+
response_type: "code",
|
|
13312
|
+
client_id: appKey,
|
|
13313
|
+
redirect_uri: redirectUrlString,
|
|
13314
|
+
nonce: parameters.nonce,
|
|
13315
|
+
state: parameters.state,
|
|
13316
|
+
code_challenge: parameters.codeChallenge,
|
|
13317
|
+
code_challenge_method: "S256"
|
|
13318
|
+
});
|
|
13319
|
+
const installId = YouVersionPlatformConfiguration.installationId;
|
|
13320
|
+
if (installId) {
|
|
13321
|
+
queryParams.set("x-yvp-installation-id", installId);
|
|
13322
|
+
}
|
|
13323
|
+
const scopeValue = this.scopeValue(permissions);
|
|
13324
|
+
if (scopeValue) {
|
|
13325
|
+
queryParams.set("scope", scopeValue);
|
|
13337
13326
|
}
|
|
13338
|
-
|
|
13339
|
-
|
|
13327
|
+
components.search = queryParams.toString();
|
|
13328
|
+
return components;
|
|
13340
13329
|
}
|
|
13341
|
-
|
|
13342
|
-
|
|
13343
|
-
|
|
13344
|
-
|
|
13345
|
-
const
|
|
13346
|
-
|
|
13347
|
-
|
|
13348
|
-
|
|
13349
|
-
|
|
13350
|
-
|
|
13351
|
-
|
|
13352
|
-
|
|
13353
|
-
|
|
13354
|
-
|
|
13355
|
-
|
|
13356
|
-
|
|
13357
|
-
authenticateWithRedirect(authUrl) {
|
|
13358
|
-
_a3.cleanup();
|
|
13359
|
-
this.storage.setItem("youversion-auth-return", window.location.href);
|
|
13360
|
-
return new Promise((resolve, reject) => {
|
|
13361
|
-
_a3.pendingAuthResolve = resolve;
|
|
13362
|
-
_a3.pendingAuthReject = reject;
|
|
13363
|
-
_a3.timeoutId = setTimeout(() => {
|
|
13364
|
-
_a3.cleanup();
|
|
13365
|
-
reject(new Error("Authentication timeout"));
|
|
13366
|
-
}, this.timeout);
|
|
13367
|
-
try {
|
|
13368
|
-
window.location.href = authUrl.toString();
|
|
13369
|
-
} catch (error46) {
|
|
13370
|
-
_a3.cleanup();
|
|
13371
|
-
reject(
|
|
13372
|
-
new Error(
|
|
13373
|
-
`Failed to navigate to auth URL: ${error46 instanceof Error ? error46.message : "Unknown error"}`
|
|
13374
|
-
)
|
|
13375
|
-
);
|
|
13330
|
+
static tokenURLRequest(code, codeVerifier, redirectUri) {
|
|
13331
|
+
const apiHost = YouVersionPlatformConfiguration.apiHost;
|
|
13332
|
+
const appKey = YouVersionPlatformConfiguration.appKey;
|
|
13333
|
+
const url2 = new URL(`https://${apiHost}/auth/token`);
|
|
13334
|
+
const parameters = new URLSearchParams({
|
|
13335
|
+
grant_type: "authorization_code",
|
|
13336
|
+
code,
|
|
13337
|
+
redirect_uri: redirectUri,
|
|
13338
|
+
client_id: appKey ?? "",
|
|
13339
|
+
code_verifier: codeVerifier
|
|
13340
|
+
});
|
|
13341
|
+
return new Request(url2, {
|
|
13342
|
+
method: "POST",
|
|
13343
|
+
body: parameters,
|
|
13344
|
+
headers: {
|
|
13345
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
13376
13346
|
}
|
|
13377
13347
|
});
|
|
13378
13348
|
}
|
|
13379
|
-
|
|
13349
|
+
static randomURLSafeString(byteCount) {
|
|
13350
|
+
const bytes = new Uint8Array(byteCount);
|
|
13351
|
+
crypto.getRandomValues(bytes);
|
|
13352
|
+
return this.base64URLEncodedString(bytes);
|
|
13353
|
+
}
|
|
13354
|
+
static async codeChallenge(verifier) {
|
|
13355
|
+
const data = new TextEncoder().encode(verifier);
|
|
13356
|
+
const digest = await crypto.subtle.digest("SHA-256", data);
|
|
13357
|
+
return this.base64URLEncodedString(new Uint8Array(digest));
|
|
13358
|
+
}
|
|
13359
|
+
static base64URLEncodedString(data) {
|
|
13360
|
+
const base643 = btoa(String.fromCharCode.apply(null, Array.from(data)));
|
|
13361
|
+
return base643.replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
|
|
13362
|
+
}
|
|
13363
|
+
static scopeValue(permissions) {
|
|
13364
|
+
const scopeArray = Array.from(permissions).sort();
|
|
13365
|
+
let scopeWithOpenID = scopeArray.join(" ");
|
|
13366
|
+
if (!scopeWithOpenID.split(" ").includes("openid")) {
|
|
13367
|
+
scopeWithOpenID += (scopeWithOpenID === "" ? "" : " ") + "openid";
|
|
13368
|
+
}
|
|
13369
|
+
return scopeWithOpenID || null;
|
|
13370
|
+
}
|
|
13371
|
+
};
|
|
13380
13372
|
var SignInWithYouVersionPermission = {
|
|
13381
13373
|
bibles: "bibles",
|
|
13382
13374
|
highlights: "highlights",
|
|
@@ -13385,71 +13377,335 @@ var SignInWithYouVersionPermission = {
|
|
|
13385
13377
|
bibleActivity: "bible_activity"
|
|
13386
13378
|
};
|
|
13387
13379
|
var SignInWithYouVersionResult = class {
|
|
13388
|
-
constructor(
|
|
13380
|
+
constructor({
|
|
13381
|
+
accessToken,
|
|
13382
|
+
expiresIn,
|
|
13383
|
+
refreshToken,
|
|
13384
|
+
idToken,
|
|
13385
|
+
permissions,
|
|
13386
|
+
yvpUserId,
|
|
13387
|
+
name,
|
|
13388
|
+
profilePicture,
|
|
13389
|
+
email: email3
|
|
13390
|
+
}) {
|
|
13389
13391
|
__publicField(this, "accessToken");
|
|
13392
|
+
__publicField(this, "expiryDate");
|
|
13393
|
+
__publicField(this, "refreshToken");
|
|
13394
|
+
__publicField(this, "idToken");
|
|
13390
13395
|
__publicField(this, "permissions");
|
|
13391
|
-
__publicField(this, "errorMsg");
|
|
13392
13396
|
__publicField(this, "yvpUserId");
|
|
13393
|
-
|
|
13394
|
-
|
|
13395
|
-
|
|
13396
|
-
|
|
13397
|
-
|
|
13398
|
-
|
|
13399
|
-
|
|
13400
|
-
|
|
13401
|
-
|
|
13402
|
-
|
|
13403
|
-
|
|
13404
|
-
|
|
13405
|
-
this.permissions = perms;
|
|
13406
|
-
this.errorMsg = null;
|
|
13407
|
-
this.yvpUserId = userId;
|
|
13408
|
-
} else if (status === "canceled") {
|
|
13409
|
-
this.accessToken = null;
|
|
13410
|
-
this.permissions = [];
|
|
13411
|
-
this.errorMsg = null;
|
|
13412
|
-
this.yvpUserId = null;
|
|
13413
|
-
} else {
|
|
13414
|
-
this.accessToken = null;
|
|
13415
|
-
this.permissions = [];
|
|
13416
|
-
this.errorMsg = "Authentication failed";
|
|
13417
|
-
this.yvpUserId = null;
|
|
13418
|
-
}
|
|
13397
|
+
__publicField(this, "name");
|
|
13398
|
+
__publicField(this, "profilePicture");
|
|
13399
|
+
__publicField(this, "email");
|
|
13400
|
+
this.accessToken = accessToken;
|
|
13401
|
+
this.expiryDate = expiresIn ? new Date(Date.now() + expiresIn * 1e3) : /* @__PURE__ */ new Date();
|
|
13402
|
+
this.refreshToken = refreshToken;
|
|
13403
|
+
this.idToken = idToken;
|
|
13404
|
+
this.permissions = permissions;
|
|
13405
|
+
this.yvpUserId = yvpUserId;
|
|
13406
|
+
this.name = name;
|
|
13407
|
+
this.profilePicture = profilePicture;
|
|
13408
|
+
this.email = email3;
|
|
13419
13409
|
}
|
|
13420
13410
|
};
|
|
13421
|
-
var
|
|
13422
|
-
|
|
13423
|
-
|
|
13424
|
-
|
|
13425
|
-
|
|
13426
|
-
|
|
13427
|
-
|
|
13428
|
-
|
|
13411
|
+
var YouVersionAPIUsers = class {
|
|
13412
|
+
/**
|
|
13413
|
+
* Presents the YouVersion login flow to the user and returns the login result upon completion.
|
|
13414
|
+
*
|
|
13415
|
+
* This function authenticates the user with YouVersion, requesting the specified required and optional permissions.
|
|
13416
|
+
* The function redirects to the YouVersion authorization URL and expects the callback to be handled separately.
|
|
13417
|
+
*
|
|
13418
|
+
* @param permissions - The set of permissions that must be granted by the user for successful login.
|
|
13419
|
+
* @param redirectURL - The URL to redirect back to after authentication.
|
|
13420
|
+
* @throws An error if authentication fails or configuration is invalid.
|
|
13421
|
+
*/
|
|
13422
|
+
static async signIn(permissions, redirectURL) {
|
|
13423
|
+
const appKey = YouVersionPlatformConfiguration.appKey;
|
|
13424
|
+
if (!appKey) {
|
|
13425
|
+
throw new Error("YouVersionPlatformConfiguration.appKey must be set before calling signIn");
|
|
13429
13426
|
}
|
|
13430
|
-
|
|
13431
|
-
|
|
13432
|
-
|
|
13433
|
-
|
|
13427
|
+
const authorizationRequest = await SignInWithYouVersionPKCEAuthorizationRequestBuilder.make(
|
|
13428
|
+
appKey,
|
|
13429
|
+
permissions,
|
|
13430
|
+
new URL(redirectURL)
|
|
13431
|
+
);
|
|
13432
|
+
localStorage.setItem(
|
|
13433
|
+
"youversion-auth-code-verifier",
|
|
13434
|
+
authorizationRequest.parameters.codeVerifier
|
|
13435
|
+
);
|
|
13436
|
+
const redirectUrlString = redirectURL.toString().endsWith("/") ? redirectURL.toString().slice(0, -1) : redirectURL.toString();
|
|
13437
|
+
localStorage.setItem("youversion-auth-redirect-uri", redirectUrlString);
|
|
13438
|
+
localStorage.setItem("youversion-auth-state", authorizationRequest.parameters.state);
|
|
13439
|
+
window.location.href = authorizationRequest.url.toString();
|
|
13434
13440
|
}
|
|
13435
|
-
|
|
13436
|
-
|
|
13441
|
+
/**
|
|
13442
|
+
* Handles the OAuth callback after user authentication.
|
|
13443
|
+
*
|
|
13444
|
+
* Call this method when your app loads to check if the current URL contains
|
|
13445
|
+
* an OAuth callback with authorization code. If found, it exchanges the code
|
|
13446
|
+
* for tokens and stores them.
|
|
13447
|
+
*
|
|
13448
|
+
* @returns Promise<SignInWithYouVersionResult | null> - SignInWithYouVersionResult if callback was handled, null otherwise
|
|
13449
|
+
* @throws An error if token exchange fails
|
|
13450
|
+
*/
|
|
13451
|
+
static async handleAuthCallback() {
|
|
13452
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
13453
|
+
const code = urlParams.get("code");
|
|
13454
|
+
const state = urlParams.get("state");
|
|
13455
|
+
const error46 = urlParams.get("error");
|
|
13456
|
+
if (!state && !error46) {
|
|
13437
13457
|
return null;
|
|
13438
13458
|
}
|
|
13439
|
-
|
|
13440
|
-
|
|
13441
|
-
|
|
13459
|
+
if (error46) {
|
|
13460
|
+
const errorDescription = urlParams.get("error_description") || error46;
|
|
13461
|
+
throw new Error(`OAuth authentication failed: ${errorDescription}`);
|
|
13462
|
+
}
|
|
13463
|
+
const storedState = localStorage.getItem("youversion-auth-state");
|
|
13464
|
+
if (state !== storedState) {
|
|
13465
|
+
throw new Error("Invalid state parameter - possible CSRF attack");
|
|
13466
|
+
}
|
|
13467
|
+
if (!code && state) {
|
|
13468
|
+
this.obtainLocation(window.location.href, state);
|
|
13469
|
+
}
|
|
13470
|
+
const codeVerifier = localStorage.getItem("youversion-auth-code-verifier");
|
|
13471
|
+
const redirectUri = localStorage.getItem("youversion-auth-redirect-uri");
|
|
13472
|
+
if (!code || !codeVerifier || !redirectUri) {
|
|
13473
|
+
throw new Error("Missing required authentication parameters");
|
|
13442
13474
|
}
|
|
13443
|
-
urlString = urlString.replace("{width}", width.toString());
|
|
13444
|
-
urlString = urlString.replace("{height}", height.toString());
|
|
13445
13475
|
try {
|
|
13446
|
-
|
|
13447
|
-
|
|
13448
|
-
|
|
13476
|
+
const tokenRequest = SignInWithYouVersionPKCEAuthorizationRequestBuilder.tokenURLRequest(
|
|
13477
|
+
code,
|
|
13478
|
+
codeVerifier,
|
|
13479
|
+
redirectUri
|
|
13480
|
+
);
|
|
13481
|
+
const response = await fetch(tokenRequest);
|
|
13482
|
+
if (!response.ok) {
|
|
13483
|
+
throw new Error(`Token exchange failed: ${response.status} ${response.statusText}`);
|
|
13484
|
+
}
|
|
13485
|
+
const responseText = await response.text();
|
|
13486
|
+
const tokens = JSON.parse(responseText);
|
|
13487
|
+
const result = this.extractSignInResult(tokens);
|
|
13488
|
+
YouVersionPlatformConfiguration.saveAuthData(
|
|
13489
|
+
result.accessToken || null,
|
|
13490
|
+
result.refreshToken || null,
|
|
13491
|
+
result.idToken || null,
|
|
13492
|
+
result.expiryDate || null
|
|
13493
|
+
);
|
|
13494
|
+
localStorage.removeItem("youversion-auth-code-verifier");
|
|
13495
|
+
localStorage.removeItem("youversion-auth-redirect-uri");
|
|
13496
|
+
localStorage.removeItem("youversion-auth-state");
|
|
13497
|
+
const cleanUrl = new URL(window.location.href);
|
|
13498
|
+
cleanUrl.search = "";
|
|
13499
|
+
window.history.replaceState({}, "", cleanUrl.toString());
|
|
13500
|
+
return result;
|
|
13501
|
+
} catch (error210) {
|
|
13502
|
+
localStorage.removeItem("youversion-auth-code-verifier");
|
|
13503
|
+
localStorage.removeItem("youversion-auth-redirect-uri");
|
|
13504
|
+
localStorage.removeItem("youversion-auth-state");
|
|
13505
|
+
throw error210;
|
|
13449
13506
|
}
|
|
13450
13507
|
}
|
|
13451
|
-
|
|
13452
|
-
|
|
13508
|
+
/**
|
|
13509
|
+
* Redirects to the server callback endpoint to obtain authorization code
|
|
13510
|
+
*/
|
|
13511
|
+
static obtainLocation(callbackURL, state) {
|
|
13512
|
+
const url2 = new URL(callbackURL);
|
|
13513
|
+
const params = new URLSearchParams(url2.search);
|
|
13514
|
+
if (params.get("state") !== state) {
|
|
13515
|
+
throw new Error("Invalid state parameter");
|
|
13516
|
+
}
|
|
13517
|
+
const serverCallbackUrl = new URL(
|
|
13518
|
+
`https://${YouVersionPlatformConfiguration.apiHost}/auth/callback`
|
|
13519
|
+
);
|
|
13520
|
+
params.forEach((value, key) => {
|
|
13521
|
+
serverCallbackUrl.searchParams.set(key, value);
|
|
13522
|
+
});
|
|
13523
|
+
window.location.href = serverCallbackUrl.toString();
|
|
13524
|
+
}
|
|
13525
|
+
/**
|
|
13526
|
+
* Extracts sign-in result from token response
|
|
13527
|
+
*/
|
|
13528
|
+
static extractSignInResult(tokens) {
|
|
13529
|
+
const idClaims = this.decodeJWT(tokens.id_token);
|
|
13530
|
+
const permissions = tokens.scope.split(" ").map((p) => p.trim()).filter((p) => p.length > 0).filter(
|
|
13531
|
+
(p) => Object.values(SignInWithYouVersionPermission).includes(
|
|
13532
|
+
p
|
|
13533
|
+
)
|
|
13534
|
+
);
|
|
13535
|
+
const resultData = {
|
|
13536
|
+
accessToken: tokens.access_token,
|
|
13537
|
+
expiresIn: tokens.expires_in,
|
|
13538
|
+
refreshToken: tokens.refresh_token,
|
|
13539
|
+
idToken: tokens.id_token,
|
|
13540
|
+
permissions,
|
|
13541
|
+
yvpUserId: idClaims.sub,
|
|
13542
|
+
name: idClaims.name,
|
|
13543
|
+
profilePicture: idClaims.profile_picture,
|
|
13544
|
+
email: idClaims.email
|
|
13545
|
+
};
|
|
13546
|
+
return new SignInWithYouVersionResult(resultData);
|
|
13547
|
+
}
|
|
13548
|
+
/**
|
|
13549
|
+
* Decodes JWT payload for UI display purposes.
|
|
13550
|
+
*
|
|
13551
|
+
* Note: We intentionally do not verify the JWT signature here because:
|
|
13552
|
+
*
|
|
13553
|
+
* 1. YouVersion's backend verifies all tokens on API requests
|
|
13554
|
+
* 2. This decoded data is only used for UI display
|
|
13555
|
+
* 3. No security decisions are made based on these claims
|
|
13556
|
+
*
|
|
13557
|
+
* @private
|
|
13558
|
+
*/
|
|
13559
|
+
static decodeJWT(token) {
|
|
13560
|
+
const segments = token.split(".");
|
|
13561
|
+
if (segments.length !== 3) {
|
|
13562
|
+
return {};
|
|
13563
|
+
}
|
|
13564
|
+
let base643 = segments[1]?.replace(/-/g, "+").replace(/_/g, "/");
|
|
13565
|
+
while (base643 && base643.length % 4 !== 0) {
|
|
13566
|
+
base643 += "=";
|
|
13567
|
+
}
|
|
13568
|
+
try {
|
|
13569
|
+
if (base643) {
|
|
13570
|
+
const data = atob(base643);
|
|
13571
|
+
return JSON.parse(data);
|
|
13572
|
+
} else {
|
|
13573
|
+
return {};
|
|
13574
|
+
}
|
|
13575
|
+
} catch (error46) {
|
|
13576
|
+
if (process.env.NODE_ENV === "development") {
|
|
13577
|
+
console.error("JWT decode failed:", error46);
|
|
13578
|
+
}
|
|
13579
|
+
return {};
|
|
13580
|
+
}
|
|
13581
|
+
}
|
|
13582
|
+
static signOut() {
|
|
13583
|
+
YouVersionPlatformConfiguration.clearAuthTokens();
|
|
13584
|
+
}
|
|
13585
|
+
/**
|
|
13586
|
+
* Retrieves user information for the authenticated user by decoding the provided JWT access token.
|
|
13587
|
+
*
|
|
13588
|
+
* This function extracts the user's profile information directly from the JWT token payload.
|
|
13589
|
+
*
|
|
13590
|
+
* @param accessToken - The JWT access token obtained from the login process.
|
|
13591
|
+
* @returns A Promise resolving to a YouVersionUserInfo object containing the user's profile information.
|
|
13592
|
+
* @throws An error if the access token is invalid or cannot be decoded.
|
|
13593
|
+
*/
|
|
13594
|
+
static userInfo(idToken) {
|
|
13595
|
+
if (!idToken || typeof idToken !== "string") {
|
|
13596
|
+
throw new Error("Invalid access token: must be a non-empty string");
|
|
13597
|
+
}
|
|
13598
|
+
try {
|
|
13599
|
+
const claims = this.decodeJWT(idToken);
|
|
13600
|
+
if (!claims || Object.keys(claims).length === 0) {
|
|
13601
|
+
throw new Error("Invalid JWT token: Unable to decode token payload");
|
|
13602
|
+
}
|
|
13603
|
+
const userInfoData = {
|
|
13604
|
+
id: claims.sub,
|
|
13605
|
+
name: claims.name,
|
|
13606
|
+
avatar_url: claims.profile_picture,
|
|
13607
|
+
email: claims.email
|
|
13608
|
+
};
|
|
13609
|
+
return new YouVersionUserInfo(userInfoData);
|
|
13610
|
+
} catch (error46) {
|
|
13611
|
+
if (error46 instanceof Error) {
|
|
13612
|
+
throw new Error(`Failed to decode user information from JWT: ${error46.message}`);
|
|
13613
|
+
} else {
|
|
13614
|
+
throw new Error("Failed to decode user information from JWT: Unknown error");
|
|
13615
|
+
}
|
|
13616
|
+
}
|
|
13617
|
+
}
|
|
13618
|
+
/**
|
|
13619
|
+
* Refreshes the access token using the stored refresh token.
|
|
13620
|
+
*
|
|
13621
|
+
* @returns Promise<SignInWithYouVersionResult | null> - New tokens if refresh succeeds, null otherwise
|
|
13622
|
+
* @throws An error if refresh fails or no refresh token is available
|
|
13623
|
+
*/
|
|
13624
|
+
static async refreshTokens() {
|
|
13625
|
+
const refreshToken = YouVersionPlatformConfiguration.refreshToken;
|
|
13626
|
+
const appKey = YouVersionPlatformConfiguration.appKey;
|
|
13627
|
+
const existingIdToken = YouVersionPlatformConfiguration.idToken;
|
|
13628
|
+
if (!refreshToken || !existingIdToken) {
|
|
13629
|
+
throw new Error("No refresh token or id token available");
|
|
13630
|
+
}
|
|
13631
|
+
if (!appKey) {
|
|
13632
|
+
throw new Error(
|
|
13633
|
+
"YouVersionPlatformConfiguration.appKey must be set before refreshing tokens"
|
|
13634
|
+
);
|
|
13635
|
+
}
|
|
13636
|
+
try {
|
|
13637
|
+
const url2 = new URL(`https://${YouVersionPlatformConfiguration.apiHost}/auth/token`);
|
|
13638
|
+
const parameters = new URLSearchParams({
|
|
13639
|
+
grant_type: "refresh_token",
|
|
13640
|
+
refresh_token: refreshToken,
|
|
13641
|
+
client_id: appKey
|
|
13642
|
+
});
|
|
13643
|
+
const request = new Request(url2, {
|
|
13644
|
+
method: "POST",
|
|
13645
|
+
body: parameters,
|
|
13646
|
+
headers: {
|
|
13647
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
13648
|
+
}
|
|
13649
|
+
});
|
|
13650
|
+
const response = await fetch(request);
|
|
13651
|
+
if (!response.ok) {
|
|
13652
|
+
throw new Error(`Token refresh failed: ${response.status} ${response.statusText}`);
|
|
13653
|
+
}
|
|
13654
|
+
const tokens = await response.json();
|
|
13655
|
+
const result = new SignInWithYouVersionResult({
|
|
13656
|
+
accessToken: tokens.access_token,
|
|
13657
|
+
expiresIn: tokens.expires_in,
|
|
13658
|
+
refreshToken: tokens.refresh_token,
|
|
13659
|
+
idToken: existingIdToken,
|
|
13660
|
+
permissions: tokens.scope.split(" ").map((p) => p.trim()).filter((p) => p.length > 0).filter(
|
|
13661
|
+
(p) => Object.values(SignInWithYouVersionPermission).includes(
|
|
13662
|
+
p
|
|
13663
|
+
)
|
|
13664
|
+
)
|
|
13665
|
+
});
|
|
13666
|
+
YouVersionPlatformConfiguration.saveAuthData(
|
|
13667
|
+
result.accessToken || null,
|
|
13668
|
+
result.refreshToken || null,
|
|
13669
|
+
result.idToken || null,
|
|
13670
|
+
result.expiryDate || null
|
|
13671
|
+
);
|
|
13672
|
+
return result;
|
|
13673
|
+
} catch (error46) {
|
|
13674
|
+
if (error46 instanceof Error) {
|
|
13675
|
+
throw new Error(`Token refresh failed: ${error46.message}`);
|
|
13676
|
+
} else {
|
|
13677
|
+
throw new Error("Token refresh failed: Unknown error");
|
|
13678
|
+
}
|
|
13679
|
+
}
|
|
13680
|
+
}
|
|
13681
|
+
/**
|
|
13682
|
+
* Checks if the current access token is expired or about to expire.
|
|
13683
|
+
*
|
|
13684
|
+
* @returns true if token is expired or about to expire
|
|
13685
|
+
*/
|
|
13686
|
+
static isTokenExpired() {
|
|
13687
|
+
const expiryDate = YouVersionPlatformConfiguration.tokenExpiryDate;
|
|
13688
|
+
if (!expiryDate) {
|
|
13689
|
+
return true;
|
|
13690
|
+
}
|
|
13691
|
+
return (/* @__PURE__ */ new Date()).getTime() >= expiryDate.getTime();
|
|
13692
|
+
}
|
|
13693
|
+
/**
|
|
13694
|
+
* Refreshes the access token if it's expired or about to expire.
|
|
13695
|
+
*
|
|
13696
|
+
* @returns Promise<boolean> - true if refresh was successful or not needed, false if failed
|
|
13697
|
+
*/
|
|
13698
|
+
static async refreshTokenIfNeeded() {
|
|
13699
|
+
if (!this.isTokenExpired()) {
|
|
13700
|
+
return true;
|
|
13701
|
+
}
|
|
13702
|
+
try {
|
|
13703
|
+
const result = await this.refreshTokens();
|
|
13704
|
+
return !!result;
|
|
13705
|
+
} catch {
|
|
13706
|
+
YouVersionPlatformConfiguration.clearAuthTokens();
|
|
13707
|
+
return false;
|
|
13708
|
+
}
|
|
13453
13709
|
}
|
|
13454
13710
|
};
|
|
13455
13711
|
var YouVersionAPI = class {
|
|
@@ -13506,117 +13762,6 @@ var URLBuilder = class {
|
|
|
13506
13762
|
);
|
|
13507
13763
|
}
|
|
13508
13764
|
}
|
|
13509
|
-
static userURL(accessToken) {
|
|
13510
|
-
if (typeof accessToken !== "string" || accessToken.trim().length === 0) {
|
|
13511
|
-
throw new Error("accessToken must be a non-empty string");
|
|
13512
|
-
}
|
|
13513
|
-
try {
|
|
13514
|
-
const url2 = new URL(this.baseURL);
|
|
13515
|
-
url2.pathname = "/auth/me";
|
|
13516
|
-
const searchParams = new URLSearchParams();
|
|
13517
|
-
searchParams.append("lat", accessToken);
|
|
13518
|
-
url2.search = searchParams.toString();
|
|
13519
|
-
return url2;
|
|
13520
|
-
} catch (error46) {
|
|
13521
|
-
throw new Error(
|
|
13522
|
-
`Failed to construct user URL: ${error46 instanceof Error ? error46.message : "Unknown error"}`
|
|
13523
|
-
);
|
|
13524
|
-
}
|
|
13525
|
-
}
|
|
13526
|
-
};
|
|
13527
|
-
var MAX_RETRY_ATTEMPTS = 3;
|
|
13528
|
-
var RETRY_DELAY_MS = 1e3;
|
|
13529
|
-
var YouVersionAPIUsers = class {
|
|
13530
|
-
/**
|
|
13531
|
-
* Presents the YouVersion login flow to the user and returns the login result upon completion.
|
|
13532
|
-
*
|
|
13533
|
-
* This function authenticates the user with YouVersion, requesting the specified required and optional permissions.
|
|
13534
|
-
* The function returns a promise that resolves when the user completes or cancels the login flow,
|
|
13535
|
-
* returning the login result containing the authorization code and granted permissions.
|
|
13536
|
-
*
|
|
13537
|
-
* @param requiredPermissions - The set of permissions that must be granted by the user for successful login.
|
|
13538
|
-
* @param optionalPermissions - The set of permissions that will be requested from the user but are not required for successful login.
|
|
13539
|
-
* @returns A Promise resolving to a SignInWithYouVersionResult containing the authorization code and granted permissions upon successful login.
|
|
13540
|
-
* @throws An error if authentication fails or is cancelled by the user.
|
|
13541
|
-
*/
|
|
13542
|
-
static async signIn(requiredPermissions, optionalPermissions) {
|
|
13543
|
-
if (!requiredPermissions || !(requiredPermissions instanceof Set)) {
|
|
13544
|
-
throw new Error("Invalid requiredPermissions: must be a Set");
|
|
13545
|
-
}
|
|
13546
|
-
if (!optionalPermissions || !(optionalPermissions instanceof Set)) {
|
|
13547
|
-
throw new Error("Invalid optionalPermissions: must be a Set");
|
|
13548
|
-
}
|
|
13549
|
-
const appKey = YouVersionPlatformConfiguration.appKey;
|
|
13550
|
-
if (!appKey) {
|
|
13551
|
-
throw new Error("YouVersionPlatformConfiguration.appKey must be set before calling signIn");
|
|
13552
|
-
}
|
|
13553
|
-
const url2 = URLBuilder.authURL(appKey, requiredPermissions, optionalPermissions);
|
|
13554
|
-
const strategy = AuthenticationStrategyRegistry.get();
|
|
13555
|
-
const callbackUrl = await strategy.authenticate(url2);
|
|
13556
|
-
const result = new SignInWithYouVersionResult(callbackUrl);
|
|
13557
|
-
if (result.accessToken) {
|
|
13558
|
-
YouVersionPlatformConfiguration.setAccessToken(result.accessToken);
|
|
13559
|
-
}
|
|
13560
|
-
return result;
|
|
13561
|
-
}
|
|
13562
|
-
static signOut() {
|
|
13563
|
-
YouVersionPlatformConfiguration.setAccessToken(null);
|
|
13564
|
-
}
|
|
13565
|
-
/**
|
|
13566
|
-
* Retrieves user information for the authenticated user using the provided access token.
|
|
13567
|
-
*
|
|
13568
|
-
* This function fetches the user's profile information from the YouVersion API, decoding it into a YouVersionUserInfo model.
|
|
13569
|
-
*
|
|
13570
|
-
* @param accessToken - The access token obtained from the login process.
|
|
13571
|
-
* @returns A Promise resolving to a YouVersionUserInfo object containing the user's profile information.
|
|
13572
|
-
* @throws An error if the URL is invalid, the network request fails, or the response cannot be decoded.
|
|
13573
|
-
*/
|
|
13574
|
-
static async userInfo(accessToken) {
|
|
13575
|
-
if (!accessToken || typeof accessToken !== "string") {
|
|
13576
|
-
throw new Error("Invalid access token: must be a non-empty string");
|
|
13577
|
-
}
|
|
13578
|
-
if (YouVersionPlatformConfiguration.isPreviewMode && accessToken === "preview") {
|
|
13579
|
-
return YouVersionPlatformConfiguration.previewUserInfo || new YouVersionUserInfo({
|
|
13580
|
-
first_name: "Preview",
|
|
13581
|
-
last_name: "User",
|
|
13582
|
-
id: "preview-user",
|
|
13583
|
-
avatar_url: void 0
|
|
13584
|
-
});
|
|
13585
|
-
}
|
|
13586
|
-
const url2 = URLBuilder.userURL(accessToken);
|
|
13587
|
-
const request = YouVersionAPI.addStandardHeaders(url2);
|
|
13588
|
-
let lastError = null;
|
|
13589
|
-
for (let attempt = 1; attempt <= MAX_RETRY_ATTEMPTS; attempt++) {
|
|
13590
|
-
try {
|
|
13591
|
-
const response = await fetch(request);
|
|
13592
|
-
if (response.status === 401) {
|
|
13593
|
-
throw new Error(
|
|
13594
|
-
"Authentication failed: Invalid or expired access token. Please sign in again."
|
|
13595
|
-
);
|
|
13596
|
-
}
|
|
13597
|
-
if (response.status === 403) {
|
|
13598
|
-
throw new Error("Access denied: Insufficient permissions to retrieve user information");
|
|
13599
|
-
}
|
|
13600
|
-
if (response.status !== 200) {
|
|
13601
|
-
throw new Error(
|
|
13602
|
-
`Failed to retrieve user information: Server responded with status ${response.status}`
|
|
13603
|
-
);
|
|
13604
|
-
}
|
|
13605
|
-
const data = await response.json();
|
|
13606
|
-
return data;
|
|
13607
|
-
} catch (error46) {
|
|
13608
|
-
lastError = error46 instanceof Error ? error46 : new Error("Failed to parse server response");
|
|
13609
|
-
if (error46 instanceof Error && (error46.message.includes("401") || error46.message.includes("403"))) {
|
|
13610
|
-
throw error46;
|
|
13611
|
-
}
|
|
13612
|
-
if (attempt < MAX_RETRY_ATTEMPTS) {
|
|
13613
|
-
await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS * attempt));
|
|
13614
|
-
continue;
|
|
13615
|
-
}
|
|
13616
|
-
}
|
|
13617
|
-
}
|
|
13618
|
-
throw lastError || new Error("Failed to retrieve user information after multiple attempts");
|
|
13619
|
-
}
|
|
13620
13765
|
};
|
|
13621
13766
|
var BOOK_IDS = [
|
|
13622
13767
|
"GEN",
|
|
@@ -15000,185 +15145,15 @@ function Toolbar({ border = "top" }) {
|
|
|
15000
15145
|
var BibleReader = Object.assign({}, { Root: Root5, Content: Content4, Toolbar });
|
|
15001
15146
|
|
|
15002
15147
|
// src/components/SignInButton.tsx
|
|
15003
|
-
var
|
|
15148
|
+
var import_react5 = __toESM(require("react"), 1);
|
|
15004
15149
|
var import_lucide_react4 = require("lucide-react");
|
|
15005
|
-
|
|
15006
|
-
// src/providers/YVPProvider.tsx
|
|
15007
|
-
var import_react6 = require("react");
|
|
15008
|
-
|
|
15009
|
-
// src/providers/YVPErrorBoundary.tsx
|
|
15010
|
-
var import_react5 = require("react");
|
|
15011
|
-
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
15012
|
-
var YVPErrorBoundary = class extends import_react5.Component {
|
|
15013
|
-
constructor(props) {
|
|
15014
|
-
super(props);
|
|
15015
|
-
this.state = { hasError: false, error: null };
|
|
15016
|
-
}
|
|
15017
|
-
static getDerivedStateFromError(error46) {
|
|
15018
|
-
return { hasError: true, error: error46 };
|
|
15019
|
-
}
|
|
15020
|
-
componentDidCatch(error46, errorInfo) {
|
|
15021
|
-
const { onError } = this.props;
|
|
15022
|
-
if (onError) {
|
|
15023
|
-
onError(error46, errorInfo);
|
|
15024
|
-
}
|
|
15025
|
-
if (process.env.NODE_ENV === "development") {
|
|
15026
|
-
console.error("YVP Error Boundary caught error:", error46, errorInfo);
|
|
15027
|
-
}
|
|
15028
|
-
}
|
|
15029
|
-
render() {
|
|
15030
|
-
const { hasError, error: error46 } = this.state;
|
|
15031
|
-
const { children, fallback } = this.props;
|
|
15032
|
-
const isDevelopment = process.env.NODE_ENV === "development";
|
|
15033
|
-
if (hasError) {
|
|
15034
|
-
if (fallback) {
|
|
15035
|
-
return fallback;
|
|
15036
|
-
}
|
|
15037
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { padding: "20px", textAlign: "center" }, children: [
|
|
15038
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h2", { children: "Something went wrong" }),
|
|
15039
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { children: "We encountered an error while loading YouVersion Platform components." }),
|
|
15040
|
-
isDevelopment && error46 && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("details", { style: { marginTop: "10px" }, children: [
|
|
15041
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("summary", { children: "Error details (development only)" }),
|
|
15042
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("pre", { style: { textAlign: "left", overflow: "auto" }, children: error46.toString() })
|
|
15043
|
-
] })
|
|
15044
|
-
] });
|
|
15045
|
-
}
|
|
15046
|
-
return children;
|
|
15047
|
-
}
|
|
15048
|
-
};
|
|
15049
|
-
|
|
15050
|
-
// src/providers/YVPProvider.tsx
|
|
15051
|
-
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
15052
|
-
var YVPContext = (0, import_react6.createContext)(null);
|
|
15053
|
-
function YVPProvider({
|
|
15054
|
-
config: config2,
|
|
15055
|
-
children,
|
|
15056
|
-
errorFallback,
|
|
15057
|
-
onError,
|
|
15058
|
-
theme = "light"
|
|
15059
|
-
}) {
|
|
15060
|
-
const [authState, setAuthState] = (0, import_react6.useState)({
|
|
15061
|
-
isAuthenticated: false,
|
|
15062
|
-
isLoading: false,
|
|
15063
|
-
accessToken: null,
|
|
15064
|
-
result: null,
|
|
15065
|
-
error: null
|
|
15066
|
-
});
|
|
15067
|
-
(0, import_react6.useEffect)(() => {
|
|
15068
|
-
const initializeAuth = () => {
|
|
15069
|
-
YouVersionPlatformConfiguration.appKey = config2.appKey;
|
|
15070
|
-
YouVersionPlatformConfiguration.installationId = config2.installationId ?? null;
|
|
15071
|
-
const strategy = new WebAuthenticationStrategy({
|
|
15072
|
-
redirectUri: config2.redirectUri || ""
|
|
15073
|
-
});
|
|
15074
|
-
AuthenticationStrategyRegistry.register(strategy);
|
|
15075
|
-
const existingToken = YouVersionPlatformConfiguration.accessToken;
|
|
15076
|
-
if (existingToken) {
|
|
15077
|
-
setAuthState({
|
|
15078
|
-
isAuthenticated: true,
|
|
15079
|
-
isLoading: false,
|
|
15080
|
-
accessToken: existingToken,
|
|
15081
|
-
result: null,
|
|
15082
|
-
error: null
|
|
15083
|
-
});
|
|
15084
|
-
return;
|
|
15085
|
-
}
|
|
15086
|
-
WebAuthenticationStrategy.handleCallback();
|
|
15087
|
-
const storedCallback = WebAuthenticationStrategy.getStoredCallback();
|
|
15088
|
-
if (storedCallback) {
|
|
15089
|
-
try {
|
|
15090
|
-
const result = new SignInWithYouVersionResult(storedCallback);
|
|
15091
|
-
const { accessToken, errorMsg } = result;
|
|
15092
|
-
if (accessToken) {
|
|
15093
|
-
YouVersionPlatformConfiguration.setAccessToken(accessToken);
|
|
15094
|
-
}
|
|
15095
|
-
setAuthState({
|
|
15096
|
-
isAuthenticated: !!accessToken,
|
|
15097
|
-
isLoading: false,
|
|
15098
|
-
accessToken: accessToken ?? null,
|
|
15099
|
-
result,
|
|
15100
|
-
error: errorMsg ? new Error(errorMsg) : null
|
|
15101
|
-
});
|
|
15102
|
-
} catch (error46) {
|
|
15103
|
-
setAuthState({
|
|
15104
|
-
isAuthenticated: false,
|
|
15105
|
-
isLoading: false,
|
|
15106
|
-
accessToken: null,
|
|
15107
|
-
result: null,
|
|
15108
|
-
error: error46
|
|
15109
|
-
});
|
|
15110
|
-
}
|
|
15111
|
-
} else {
|
|
15112
|
-
setAuthState({
|
|
15113
|
-
isAuthenticated: false,
|
|
15114
|
-
isLoading: false,
|
|
15115
|
-
accessToken: null,
|
|
15116
|
-
result: null,
|
|
15117
|
-
error: null
|
|
15118
|
-
});
|
|
15119
|
-
}
|
|
15120
|
-
};
|
|
15121
|
-
initializeAuth();
|
|
15122
|
-
}, [config2.appKey, config2.installationId, config2.redirectUri]);
|
|
15123
|
-
const signOut = (0, import_react6.useCallback)(() => {
|
|
15124
|
-
YouVersionPlatformConfiguration.setAccessToken(null);
|
|
15125
|
-
setAuthState({
|
|
15126
|
-
isAuthenticated: false,
|
|
15127
|
-
isLoading: false,
|
|
15128
|
-
accessToken: null,
|
|
15129
|
-
result: null,
|
|
15130
|
-
error: null
|
|
15131
|
-
});
|
|
15132
|
-
}, []);
|
|
15133
|
-
const fetchUserInfo = (0, import_react6.useCallback)(async () => {
|
|
15134
|
-
if (!authState.isAuthenticated || !authState.accessToken) {
|
|
15135
|
-
throw new Error("User is not authenticated");
|
|
15136
|
-
}
|
|
15137
|
-
return YouVersionAPIUsers.userInfo(authState.accessToken);
|
|
15138
|
-
}, [authState.isAuthenticated, authState.accessToken]);
|
|
15139
|
-
const value = {
|
|
15140
|
-
config: config2,
|
|
15141
|
-
client: ApiClient,
|
|
15142
|
-
auth: authState,
|
|
15143
|
-
signOut,
|
|
15144
|
-
fetchUserInfo
|
|
15145
|
-
};
|
|
15146
|
-
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(YVPErrorBoundary, { fallback: errorFallback, onError, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(YVPContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "yv:contents", "data-yv-sdk": true, "data-yv-theme": theme, children }) }) });
|
|
15147
|
-
}
|
|
15148
|
-
function useYVP() {
|
|
15149
|
-
const context = (0, import_react6.useContext)(YVPContext);
|
|
15150
|
-
if (!context) {
|
|
15151
|
-
throw new Error("useYVP must be used within a YVPProvider");
|
|
15152
|
-
}
|
|
15153
|
-
return context;
|
|
15154
|
-
}
|
|
15155
|
-
|
|
15156
|
-
// src/hooks/useAuthentication.ts
|
|
15157
|
-
var import_react7 = require("react");
|
|
15158
|
-
function useAuthentication() {
|
|
15159
|
-
const { auth, signOut, fetchUserInfo, client: _client } = useYVP();
|
|
15160
|
-
const signIn = (0, import_react7.useCallback)(
|
|
15161
|
-
async (requiredPermissions = [], optionalPermissions = []) => {
|
|
15162
|
-
return await YouVersionAPIUsers.signIn(
|
|
15163
|
-
new Set(requiredPermissions),
|
|
15164
|
-
new Set(optionalPermissions)
|
|
15165
|
-
);
|
|
15166
|
-
},
|
|
15167
|
-
[]
|
|
15168
|
-
);
|
|
15169
|
-
return {
|
|
15170
|
-
auth,
|
|
15171
|
-
signIn,
|
|
15172
|
-
signOut,
|
|
15173
|
-
fetchUserInfo
|
|
15174
|
-
};
|
|
15175
|
-
}
|
|
15150
|
+
var import_platform_react_hooks5 = require("@youversion/platform-react-hooks");
|
|
15176
15151
|
|
|
15177
15152
|
// src/components/youversion-logo.tsx
|
|
15178
|
-
var
|
|
15179
|
-
var
|
|
15153
|
+
var React8 = require("react");
|
|
15154
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
15180
15155
|
function YouVersionLogo(props) {
|
|
15181
|
-
return /* @__PURE__ */ (0,
|
|
15156
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
15182
15157
|
"svg",
|
|
15183
15158
|
{
|
|
15184
15159
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -15188,7 +15163,7 @@ function YouVersionLogo(props) {
|
|
|
15188
15163
|
"aria-label": "YouVersion",
|
|
15189
15164
|
...props,
|
|
15190
15165
|
children: [
|
|
15191
|
-
/* @__PURE__ */ (0,
|
|
15166
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
15192
15167
|
"mask",
|
|
15193
15168
|
{
|
|
15194
15169
|
id: "youversion-logo-mask",
|
|
@@ -15200,7 +15175,7 @@ function YouVersionLogo(props) {
|
|
|
15200
15175
|
style: {
|
|
15201
15176
|
maskType: "alpha"
|
|
15202
15177
|
},
|
|
15203
|
-
children: /* @__PURE__ */ (0,
|
|
15178
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
15204
15179
|
"path",
|
|
15205
15180
|
{
|
|
15206
15181
|
fill: "url(#youversion-logo-gradient-a)",
|
|
@@ -15211,9 +15186,9 @@ function YouVersionLogo(props) {
|
|
|
15211
15186
|
)
|
|
15212
15187
|
}
|
|
15213
15188
|
),
|
|
15214
|
-
/* @__PURE__ */ (0,
|
|
15215
|
-
/* @__PURE__ */ (0,
|
|
15216
|
-
/* @__PURE__ */ (0,
|
|
15189
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("g", { mask: "url(#youversion-logo-mask)", children: [
|
|
15190
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { fill: "url(#youversion-logo-gradient-c)", d: "M0 0h26v26H0z" }),
|
|
15191
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
15217
15192
|
"path",
|
|
15218
15193
|
{
|
|
15219
15194
|
fill: "#FEF5EB",
|
|
@@ -15222,8 +15197,8 @@ function YouVersionLogo(props) {
|
|
|
15222
15197
|
clipRule: "evenodd"
|
|
15223
15198
|
}
|
|
15224
15199
|
),
|
|
15225
|
-
/* @__PURE__ */ (0,
|
|
15226
|
-
/* @__PURE__ */ (0,
|
|
15200
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { fill: "#FF3D4D", d: "M4.774 20.468h4.073v3.055l-2.036-1.019-2.037 1.019v-3.055Z" }),
|
|
15201
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
15227
15202
|
"path",
|
|
15228
15203
|
{
|
|
15229
15204
|
fill: "#FEF5EB",
|
|
@@ -15231,8 +15206,8 @@ function YouVersionLogo(props) {
|
|
|
15231
15206
|
}
|
|
15232
15207
|
)
|
|
15233
15208
|
] }),
|
|
15234
|
-
/* @__PURE__ */ (0,
|
|
15235
|
-
/* @__PURE__ */ (0,
|
|
15209
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("defs", { children: [
|
|
15210
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
15236
15211
|
"linearGradient",
|
|
15237
15212
|
{
|
|
15238
15213
|
id: "youversion-logo-gradient-a",
|
|
@@ -15242,12 +15217,12 @@ function YouVersionLogo(props) {
|
|
|
15242
15217
|
y2: 26,
|
|
15243
15218
|
gradientUnits: "userSpaceOnUse",
|
|
15244
15219
|
children: [
|
|
15245
|
-
/* @__PURE__ */ (0,
|
|
15246
|
-
/* @__PURE__ */ (0,
|
|
15220
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("stop", { stopColor: "#C93D34" }),
|
|
15221
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("stop", { offset: 1, stopColor: "#7A2629" })
|
|
15247
15222
|
]
|
|
15248
15223
|
}
|
|
15249
15224
|
),
|
|
15250
|
-
/* @__PURE__ */ (0,
|
|
15225
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
15251
15226
|
"linearGradient",
|
|
15252
15227
|
{
|
|
15253
15228
|
id: "youversion-logo-gradient-c",
|
|
@@ -15257,8 +15232,8 @@ function YouVersionLogo(props) {
|
|
|
15257
15232
|
y2: 26,
|
|
15258
15233
|
gradientUnits: "userSpaceOnUse",
|
|
15259
15234
|
children: [
|
|
15260
|
-
/* @__PURE__ */ (0,
|
|
15261
|
-
/* @__PURE__ */ (0,
|
|
15235
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("stop", { stopColor: "#C93D34" }),
|
|
15236
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("stop", { offset: 1, stopColor: "#7A2629" })
|
|
15262
15237
|
]
|
|
15263
15238
|
}
|
|
15264
15239
|
)
|
|
@@ -15269,51 +15244,46 @@ function YouVersionLogo(props) {
|
|
|
15269
15244
|
}
|
|
15270
15245
|
|
|
15271
15246
|
// src/components/SignInButton.tsx
|
|
15272
|
-
var
|
|
15273
|
-
var SignInButton =
|
|
15247
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
15248
|
+
var SignInButton = import_react5.default.forwardRef(
|
|
15274
15249
|
({
|
|
15275
15250
|
background = "light",
|
|
15276
15251
|
className,
|
|
15277
15252
|
disabled,
|
|
15278
15253
|
onAuthError,
|
|
15279
15254
|
onClick,
|
|
15280
|
-
|
|
15281
|
-
optionalPermissions = [],
|
|
15255
|
+
permissions = [],
|
|
15282
15256
|
radius = "rounded",
|
|
15283
|
-
|
|
15257
|
+
redirectUrl,
|
|
15284
15258
|
size = "default",
|
|
15285
15259
|
variant = "default",
|
|
15286
15260
|
...props
|
|
15287
15261
|
}, ref) => {
|
|
15288
|
-
const { signIn, auth } =
|
|
15289
|
-
const [localLoading, setLocalLoading] = import_react8.default.useState(false);
|
|
15262
|
+
const { signIn, auth } = (0, import_platform_react_hooks5.useYVAuth)();
|
|
15290
15263
|
const handleClick = async (e) => {
|
|
15291
15264
|
e.preventDefault();
|
|
15292
15265
|
if (onClick) {
|
|
15293
15266
|
onClick(e);
|
|
15294
15267
|
}
|
|
15295
|
-
setLocalLoading(true);
|
|
15296
15268
|
try {
|
|
15297
|
-
|
|
15298
|
-
|
|
15299
|
-
|
|
15300
|
-
}
|
|
15269
|
+
await signIn({
|
|
15270
|
+
redirectUrl,
|
|
15271
|
+
permissions
|
|
15272
|
+
});
|
|
15301
15273
|
} catch (error46) {
|
|
15302
15274
|
if (onAuthError) {
|
|
15303
15275
|
onAuthError(error46);
|
|
15304
15276
|
}
|
|
15305
|
-
} finally {
|
|
15306
|
-
setLocalLoading(false);
|
|
15307
15277
|
}
|
|
15308
15278
|
};
|
|
15309
|
-
const buttonLoading =
|
|
15279
|
+
const buttonLoading = auth.isLoading;
|
|
15310
15280
|
let buttonCopy = "Sign in with YouVersion";
|
|
15311
15281
|
if (size === "short") {
|
|
15312
15282
|
buttonCopy = "Sign in";
|
|
15313
15283
|
}
|
|
15314
|
-
const loadingSpinner = /* @__PURE__ */ (0,
|
|
15284
|
+
const loadingSpinner = /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react4.Loader2, { className: "yv:z-20 yv:absolute yv:left-1/2 yv:top-1/2 yv:animate-spin yv:-translate-x-1/2 yv:-translate-y-1/2 yv:fill-primary-foreground yv:text-primary" });
|
|
15315
15285
|
if (size === "icon") {
|
|
15316
|
-
return /* @__PURE__ */ (0,
|
|
15286
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
15317
15287
|
Button,
|
|
15318
15288
|
{
|
|
15319
15289
|
...props,
|
|
@@ -15322,6 +15292,7 @@ var SignInButton = import_react8.default.forwardRef(
|
|
|
15322
15292
|
variant === "outline" ? "yv:border" : "yv:border-none",
|
|
15323
15293
|
className
|
|
15324
15294
|
),
|
|
15295
|
+
"data-yv-sdk": true,
|
|
15325
15296
|
disabled: buttonLoading ? true : disabled ?? false,
|
|
15326
15297
|
ref,
|
|
15327
15298
|
onClick: (e) => void handleClick(e),
|
|
@@ -15336,13 +15307,13 @@ var SignInButton = import_react8.default.forwardRef(
|
|
|
15336
15307
|
variant: background === "light" ? "outline" : "default",
|
|
15337
15308
|
children: [
|
|
15338
15309
|
buttonLoading ? loadingSpinner : null,
|
|
15339
|
-
/* @__PURE__ */ (0,
|
|
15340
|
-
/* @__PURE__ */ (0,
|
|
15310
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(YouVersionLogo, {}),
|
|
15311
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "yv:sr-only", children: buttonCopy })
|
|
15341
15312
|
]
|
|
15342
15313
|
}
|
|
15343
15314
|
);
|
|
15344
15315
|
}
|
|
15345
|
-
return /* @__PURE__ */ (0,
|
|
15316
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
15346
15317
|
Button,
|
|
15347
15318
|
{
|
|
15348
15319
|
...props,
|
|
@@ -15351,6 +15322,7 @@ var SignInButton = import_react8.default.forwardRef(
|
|
|
15351
15322
|
variant === "outline" ? "yv:border" : "yv:border-none",
|
|
15352
15323
|
className
|
|
15353
15324
|
),
|
|
15325
|
+
"data-yv-sdk": true,
|
|
15354
15326
|
disabled: buttonLoading ? true : disabled ?? false,
|
|
15355
15327
|
ref,
|
|
15356
15328
|
onClick: (e) => void handleClick(e),
|
|
@@ -15365,7 +15337,7 @@ var SignInButton = import_react8.default.forwardRef(
|
|
|
15365
15337
|
variant: background === "light" ? "outline" : "default",
|
|
15366
15338
|
children: [
|
|
15367
15339
|
buttonLoading ? loadingSpinner : null,
|
|
15368
|
-
/* @__PURE__ */ (0,
|
|
15340
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(YouVersionLogo, {}),
|
|
15369
15341
|
buttonCopy
|
|
15370
15342
|
]
|
|
15371
15343
|
}
|
|
@@ -15375,12 +15347,12 @@ var SignInButton = import_react8.default.forwardRef(
|
|
|
15375
15347
|
SignInButton.displayName = "SignInButton";
|
|
15376
15348
|
|
|
15377
15349
|
// src/components/verse-of-the-day.tsx
|
|
15378
|
-
var
|
|
15350
|
+
var import_react7 = __toESM(require("react"), 1);
|
|
15379
15351
|
|
|
15380
15352
|
// src/components/icons/votd.tsx
|
|
15381
|
-
var
|
|
15382
|
-
var
|
|
15383
|
-
var SvgComponent = (props) => /* @__PURE__ */ (0,
|
|
15353
|
+
var import_react6 = require("react");
|
|
15354
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
15355
|
+
var SvgComponent = (props) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
15384
15356
|
"svg",
|
|
15385
15357
|
{
|
|
15386
15358
|
width: "44",
|
|
@@ -15390,8 +15362,8 @@ var SvgComponent = (props) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
|
15390
15362
|
fill: "none",
|
|
15391
15363
|
xmlns: "http://www.w3.org/2000/svg",
|
|
15392
15364
|
children: [
|
|
15393
|
-
/* @__PURE__ */ (0,
|
|
15394
|
-
/* @__PURE__ */ (0,
|
|
15365
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("title", { children: "Sun" }),
|
|
15366
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
15395
15367
|
"path",
|
|
15396
15368
|
{
|
|
15397
15369
|
fillRule: "evenodd",
|
|
@@ -15405,8 +15377,8 @@ var SvgComponent = (props) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
|
15405
15377
|
);
|
|
15406
15378
|
|
|
15407
15379
|
// src/components/icons/share.tsx
|
|
15408
|
-
var
|
|
15409
|
-
var SvgComponent2 = (props) => /* @__PURE__ */ (0,
|
|
15380
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
15381
|
+
var SvgComponent2 = (props) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
15410
15382
|
"svg",
|
|
15411
15383
|
{
|
|
15412
15384
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -15416,14 +15388,14 @@ var SvgComponent2 = (props) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
|
15416
15388
|
fill: "none",
|
|
15417
15389
|
...props,
|
|
15418
15390
|
children: [
|
|
15419
|
-
/* @__PURE__ */ (0,
|
|
15391
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
15420
15392
|
"path",
|
|
15421
15393
|
{
|
|
15422
15394
|
fill: "currentColor",
|
|
15423
15395
|
d: "M16.121 9.187a1 1 0 0 1-1.414 0L13 7.48V15a1 1 0 1 1-2 0V7.348L9.121 9.227a1 1 0 1 1-1.414-1.414l3.52-3.52a1 1 0 0 1 1.414 0l3.48 3.48a1 1 0 0 1 0 1.414Z"
|
|
15424
15396
|
}
|
|
15425
15397
|
),
|
|
15426
|
-
/* @__PURE__ */ (0,
|
|
15398
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
15427
15399
|
"path",
|
|
15428
15400
|
{
|
|
15429
15401
|
fill: "currentColor",
|
|
@@ -15435,8 +15407,8 @@ var SvgComponent2 = (props) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
|
15435
15407
|
);
|
|
15436
15408
|
|
|
15437
15409
|
// src/components/bible-app-logo-lockup.tsx
|
|
15438
|
-
var
|
|
15439
|
-
var SvgComponent3 = (props) => /* @__PURE__ */ (0,
|
|
15410
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
15411
|
+
var SvgComponent3 = (props) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
15440
15412
|
"svg",
|
|
15441
15413
|
{
|
|
15442
15414
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -15446,8 +15418,8 @@ var SvgComponent3 = (props) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
|
15446
15418
|
fill: "none",
|
|
15447
15419
|
...props,
|
|
15448
15420
|
children: [
|
|
15449
|
-
/* @__PURE__ */ (0,
|
|
15450
|
-
/* @__PURE__ */ (0,
|
|
15421
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("title", { children: "Bible App" }),
|
|
15422
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
15451
15423
|
"mask",
|
|
15452
15424
|
{
|
|
15453
15425
|
id: "bible-app-logo-lockup-mask",
|
|
@@ -15459,7 +15431,7 @@ var SvgComponent3 = (props) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
|
15459
15431
|
style: {
|
|
15460
15432
|
maskType: "alpha"
|
|
15461
15433
|
},
|
|
15462
|
-
children: /* @__PURE__ */ (0,
|
|
15434
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
15463
15435
|
"path",
|
|
15464
15436
|
{
|
|
15465
15437
|
fill: "url(#bible-app-logo-lockup-gradient-a)",
|
|
@@ -15470,9 +15442,9 @@ var SvgComponent3 = (props) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
|
15470
15442
|
)
|
|
15471
15443
|
}
|
|
15472
15444
|
),
|
|
15473
|
-
/* @__PURE__ */ (0,
|
|
15474
|
-
/* @__PURE__ */ (0,
|
|
15475
|
-
/* @__PURE__ */ (0,
|
|
15445
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("g", { mask: "url(#bible-app-logo-lockup-mask)", children: [
|
|
15446
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { fill: "url(#bible-app-logo-lockup-gradient-c)", d: "M63.562 0H80v16.438H63.562z" }),
|
|
15447
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
15476
15448
|
"path",
|
|
15477
15449
|
{
|
|
15478
15450
|
fill: "#FEF5EB",
|
|
@@ -15481,18 +15453,18 @@ var SvgComponent3 = (props) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
|
15481
15453
|
clipRule: "evenodd"
|
|
15482
15454
|
}
|
|
15483
15455
|
),
|
|
15484
|
-
/* @__PURE__ */ (0,
|
|
15485
|
-
/* @__PURE__ */ (0,
|
|
15456
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { fill: "#FF3D4D", d: "M66.58 12.94h2.575v1.932l-1.287-.644-1.288.644v-1.931Z" }),
|
|
15457
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("g", { fill: "#FEF5EB", clipPath: "url(#bible-app-logo-lockup-clip)", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { d: "M70.602 5.614c.173.105.374.156.603.156.219 0 .42-.055.593-.17.178-.113.31-.273.407-.474.1-.206.146-.439.146-.694a1.57 1.57 0 0 0-.142-.694 1.05 1.05 0 0 0-.402-.452 1.135 1.135 0 0 0-.598-.156c-.219 0-.42.055-.598.17a1.15 1.15 0 0 0-.406.474 1.626 1.626 0 0 0-.142.694c0 .265.046.498.142.694.091.197.223.347.397.452Zm-.096-1.16c0-.232.027-.438.087-.616a.906.906 0 0 1 .246-.406.512.512 0 0 1 .356-.142c.133 0 .247.046.357.137.11.091.196.224.26.402.069.174.1.379.1.616 0 .233-.032.439-.09.617a.951.951 0 0 1-.248.41.516.516 0 0 1-.356.142.537.537 0 0 1-.356-.137.95.95 0 0 1-.265-.401 1.995 1.995 0 0 1-.091-.621ZM76.675 9.14a3.91 3.91 0 0 1-.014-.68l.005-.056h-.178l-.005.046a1.256 1.256 0 0 1-.073.36.324.324 0 0 1-.141.16.704.704 0 0 1-.302.05h-.25a.696.696 0 0 1-.17-.013.073.073 0 0 1-.046-.05.654.654 0 0 1-.018-.174v-.78h.178c.082 0 .142.022.183.059.041.036.069.1.082.187.014.096.019.15.023.169l.005.041H76.122l-.004-.05a8.485 8.485 0 0 1-.023-.489v-.164c0-.119.005-.228.01-.324l.004-.05H75.936l-.005.04-.01.07c-.009.077-.022.14-.036.186a.188.188 0 0 1-.073.11c-.032.027-.082.046-.155.046h-.178v-.768c0-.086.009-.141.018-.173.01-.028.023-.041.046-.046a.637.637 0 0 1 .169-.018h.287c.119 0 .201.018.251.046a.241.241 0 0 1 .105.132c.023.064.046.174.06.32l.004.045h.178l-.009-.054a2.264 2.264 0 0 1-.009-.21c0-.12.01-.252.023-.402l.005-.055h-1.832v.164l.046.005a.719.719 0 0 1 .165.023.07.07 0 0 1 .05.05c.009.032.018.087.018.173v1.708c0 .087-.01.142-.018.174a.07.07 0 0 1-.05.05.72.72 0 0 1-.165.023l-.046.004v.165h1.9v-.05ZM74.543 5.724l-.005-.055a3.91 3.91 0 0 1-.014-.717l.005-.055h-.178l-.005.046a1.678 1.678 0 0 1-.073.38.31.31 0 0 1-.146.173.693.693 0 0 1-.301.054h-.251a.695.695 0 0 1-.17-.013.072.072 0 0 1-.045-.05.653.653 0 0 1-.018-.174V3.587c0-.087.009-.142.018-.174a.072.072 0 0 1 .046-.05.82.82 0 0 1 .168-.023l.046-.004v-.164h-.982V3.34l.046.005a.72.72 0 0 1 .165.023.07.07 0 0 1 .05.05c.009.032.018.087.018.173v1.713c0 .087-.01.141-.018.173a.07.07 0 0 1-.05.05.72.72 0 0 1-.165.023l-.046.005v.164l1.904.005ZM68.762 8.034c-.091-.095-.233-.164-.411-.205a.685.685 0 0 0 .27-.2.61.61 0 0 0 .136-.389.522.522 0 0 0-.21-.434c-.137-.11-.329-.16-.57-.16l-.996-.009V6.806l.046.005a.72.72 0 0 1 .164.023.07.07 0 0 1 .05.05c.01.032.019.087.019.173v1.717c0 .087-.01.142-.019.174a.07.07 0 0 1-.05.05.72.72 0 0 1-.164.023l-.046.004v.169l1.073-.004c.178 0 .329-.028.461-.087a.705.705 0 0 0 .306-.256.666.666 0 0 0 .11-.374.555.555 0 0 0-.17-.439Zm-1.078-.977a.71.71 0 0 1 .018-.173c.01-.032.028-.046.046-.06a.349.349 0 0 1 .142-.018c.164 0 .269.041.333.11.064.073.1.187.1.356a.637.637 0 0 1-.105.383c-.059.083-.173.133-.356.133h-.182v-.73h.004Zm.662 1.818c-.096.091-.242.137-.452.137a.375.375 0 0 1-.146-.019c-.023-.009-.036-.027-.046-.054a.639.639 0 0 1-.018-.17v-.826h.242c.21 0 .352.046.434.128.087.082.132.205.132.379 0 .2-.05.338-.146.425ZM72.232 8.034s-.004 0 0 0c-.004 0-.004 0 0 0a.812.812 0 0 0-.41-.205.686.686 0 0 0 .269-.2.61.61 0 0 0 .137-.389.522.522 0 0 0-.21-.434c-.138-.11-.33-.16-.571-.16l-.996-.009V6.806l.046.005a.72.72 0 0 1 .164.023.07.07 0 0 1 .05.05c.01.032.019.087.019.173v1.717c0 .087-.01.142-.018.174a.07.07 0 0 1-.05.05.72.72 0 0 1-.165.023l-.046.004v.169l1.073-.004c.178 0 .33-.028.462-.087a.706.706 0 0 0 .305-.256.667.667 0 0 0 .11-.374.588.588 0 0 0-.169-.439Zm-.242-1.191c-.004 0-.004 0 0 0Zm-.835.214c0-.082.009-.137.018-.173.009-.032.027-.046.045-.06a.35.35 0 0 1 .142-.018c.164 0 .27.041.333.11.064.073.1.187.1.356a.637.637 0 0 1-.104.383c-.06.083-.174.133-.356.133h-.183v-.73h.004Zm.662 1.818c-.096.091-.242.137-.452.137a.36.36 0 0 1-.147-.019c-.022-.009-.036-.027-.045-.054a.634.634 0 0 1-.019-.17v-.826h.243c.21 0 .351.046.433.128.087.082.133.205.133.379 0 .2-.05.338-.146.425ZM69.2 6.637V6.806l.046.005a.72.72 0 0 1 .164.023.07.07 0 0 1 .05.05c.01.032.019.087.019.173v1.717c0 .087-.01.142-.019.174a.07.07 0 0 1-.05.05.72.72 0 0 1-.164.023l-.046.004v.169h.982V9.03l-.046-.005a.824.824 0 0 1-.169-.023.073.073 0 0 1-.046-.05.654.654 0 0 1-.018-.173V7.062c0-.087.01-.142.018-.174a.073.073 0 0 1 .046-.05.824.824 0 0 1 .17-.023l.045-.004v-.164l-.982-.01ZM68.328 5.724v-.165l-.046-.004a.823.823 0 0 1-.169-.023.072.072 0 0 1-.045-.05.648.648 0 0 1-.019-.174v-.785h1.028v.78c0 .087-.01.142-.019.174a.07.07 0 0 1-.05.05.72.72 0 0 1-.164.023l-.046.005v.164h.982V5.55l-.046-.004a.821.821 0 0 1-.169-.023.072.072 0 0 1-.045-.05.653.653 0 0 1-.019-.174V3.587c0-.087.01-.142.019-.174a.072.072 0 0 1 .045-.05.821.821 0 0 1 .17-.023l.045-.004v-.169h-.982v.164l.046.005a.719.719 0 0 1 .164.023.07.07 0 0 1 .05.05c.01.032.019.087.019.173v.767h-1.028v-.762c0-.087.01-.142.019-.174a.072.072 0 0 1 .045-.05.824.824 0 0 1 .17-.023l.045-.004v-.164h-.982V3.34l.046.005a.72.72 0 0 1 .164.023.07.07 0 0 1 .05.05c.01.032.019.087.019.173v1.713c0 .086-.01.141-.019.173a.07.07 0 0 1-.05.05.72.72 0 0 1-.164.023l-.046.005v.169h.982ZM74.465 3.372c.027.023.06.064.1.142l.699 1.287v.503c0 .086-.01.141-.018.173a.07.07 0 0 1-.05.05.72.72 0 0 1-.165.023l-.046.005v.169l.927-.005.05.005v-.165l-.045-.004a.82.82 0 0 1-.169-.023.072.072 0 0 1-.046-.05.652.652 0 0 1-.018-.174v-.616l.539-1.069a1.07 1.07 0 0 1 .132-.205.244.244 0 0 1 .11-.078l.036-.009v-.16h-.703l-.05-.004v.164h.046c.1 0 .164.018.205.041.032.018.05.046.05.096a.673.673 0 0 1-.086.274l-.402.795-.53-1.014a.195.195 0 0 1-.027-.1c0-.014.004-.023.009-.033a.047.047 0 0 1 .027-.022c.028-.019.082-.028.16-.028h.05v-.173h-.885v.178h.05c.004 0 .023.004.05.027ZM74.538 8.701c0-.119.005-.21.01-.278l.004-.055h-.178l-.005.045a1.678 1.678 0 0 1-.073.38.32.32 0 0 1-.142.173.693.693 0 0 1-.3.055h-.252a.696.696 0 0 1-.169-.014.072.072 0 0 1-.046-.05.648.648 0 0 1-.018-.174V7.066c0-.086.01-.141.018-.173a.072.072 0 0 1 .046-.05.824.824 0 0 1 .169-.023l.046-.005v-.164h-.982V6.82l.046.004a.719.719 0 0 1 .164.023.07.07 0 0 1 .05.05c.01.032.018.087.018.174v1.703c0 .087-.009.142-.018.174a.07.07 0 0 1-.05.05.72.72 0 0 1-.164.023l-.046.004v.164h1.9l-.005-.054a5.229 5.229 0 0 1-.023-.434Z" }) })
|
|
15486
15458
|
] }),
|
|
15487
|
-
/* @__PURE__ */ (0,
|
|
15459
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
15488
15460
|
"path",
|
|
15489
15461
|
{
|
|
15490
15462
|
fill: "currentColor",
|
|
15491
15463
|
d: "M1 2.706h3.248c.684 0 1.245.066 1.683.198.438.122.785.298 1.039.526.263.219.443.482.539.789a3.1 3.1 0 0 1 .145.96c0 .394-.088.762-.263 1.104-.176.333-.496.61-.96.829.298.131.543.28.736.447.193.167.346.346.46.54.114.183.193.38.237.59a3.206 3.206 0 0 1-.118 1.71c-.114.342-.307.64-.579.895-.272.245-.627.442-1.065.591-.438.14-.978.21-1.618.21H1V2.707ZM4.431 6.56c.622 0 1.056-.114 1.302-.342.245-.228.368-.557.368-.987 0-.447-.145-.767-.434-.96-.28-.201-.772-.302-1.473-.302H2.538v2.59h1.894Zm0 4.26c.377 0 .688-.035.933-.105.255-.07.452-.17.592-.302.15-.132.255-.29.316-.474s.092-.39.092-.618c0-.473-.136-.833-.408-1.078-.263-.254-.723-.382-1.38-.382H2.537v2.96h1.894Zm6.373-8.114v1.486H9.253V2.706h1.552Zm-.026 2.552v6.838h-1.5V5.258h1.5ZM13.976 8.9c.009.439.061.798.158 1.079.105.28.236.504.394.67.167.167.355.28.566.342.21.062.43.092.657.092.246 0 .474-.043.684-.131.21-.088.395-.224.552-.408.158-.193.28-.443.369-.75.087-.306.131-.683.131-1.13 0-.43-.048-.794-.145-1.092a2.062 2.062 0 0 0-.355-.736 1.314 1.314 0 0 0-.539-.421 1.566 1.566 0 0 0-.631-.132 2.06 2.06 0 0 0-.842.158 1.493 1.493 0 0 0-.565.447 1.9 1.9 0 0 0-.329.697c-.07.263-.105.557-.105.881V8.9Zm.013-6.194v3.446c.272-.36.583-.631.934-.816.36-.192.775-.289 1.249-.289.49 0 .916.088 1.276.263.359.176.657.421.894.737a3.2 3.2 0 0 1 .526 1.144c.123.438.184.925.184 1.46 0 .56-.07 1.07-.21 1.525-.14.447-.342.828-.605 1.144a2.768 2.768 0 0 1-.947.736c-.368.167-.78.25-1.236.25-.412 0-.794-.079-1.144-.236-.351-.158-.671-.421-.96-.79v.816h-1.447v-9.39h1.486Zm8.053 0v9.39h-1.5v-9.39h1.5Zm7.8 7.365c-.123.71-.426 1.262-.908 1.657-.482.386-1.175.578-2.078.578-1.087 0-1.916-.31-2.485-.933-.561-.632-.842-1.517-.842-2.657 0-.587.079-1.109.237-1.565.166-.456.394-.837.684-1.144a2.868 2.868 0 0 1 1.052-.71c.412-.167.863-.25 1.354-.25.526 0 .982.083 1.368.25.386.158.706.386.96.684.254.29.443.64.565 1.052.123.403.184.855.184 1.354v.658h-4.905c.018.622.176 1.127.474 1.512.298.386.75.579 1.354.579.474 0 .829-.092 1.065-.276.237-.184.395-.447.474-.79h1.446Zm-1.368-2.065c0-.561-.132-1.004-.395-1.328-.263-.325-.684-.487-1.262-.487-.553 0-.973.167-1.263.5-.29.324-.456.763-.5 1.315h3.42Zm8.715-5.3h1.578l3.577 9.39h-1.696l-.881-2.393h-3.643l-.868 2.393h-1.644l3.577-9.39Zm2.144 5.668-1.394-3.866-1.381 3.866h2.775Zm3.992-3.116h1.46v.946c.28-.377.6-.661.96-.854.367-.202.788-.303 1.262-.303.482 0 .903.088 1.262.263.36.167.658.408.894.723.246.316.426.697.54 1.145.122.438.184.929.184 1.472 0 .553-.07 1.057-.21 1.513a3.46 3.46 0 0 1-.606 1.157 2.642 2.642 0 0 1-.933.736c-.368.167-.785.25-1.25.25-.368 0-.727-.07-1.078-.21-.35-.14-.68-.399-.986-.776v3.327h-1.5v-9.39Zm1.485 3.537c0 .447.049.82.145 1.118.097.29.224.522.382.697.166.175.355.298.565.368.22.07.447.105.684.105.245 0 .473-.043.684-.131.21-.088.394-.228.552-.421.158-.193.28-.443.368-.75.088-.306.132-.679.132-1.117 0-.447-.048-.82-.145-1.118a1.933 1.933 0 0 0-.368-.737 1.229 1.229 0 0 0-.526-.407 1.718 1.718 0 0 0-.631-.119c-.535 0-.978.176-1.329.526-.342.351-.513.903-.513 1.657v.33Zm6.541-3.537h1.46v.946c.28-.377.6-.661.96-.854a2.585 2.585 0 0 1 1.262-.303c.482 0 .903.088 1.263.263.36.167.657.408.894.723.245.316.425.697.54 1.145.122.438.183.929.183 1.472 0 .553-.07 1.057-.21 1.513a3.46 3.46 0 0 1-.605 1.157 2.642 2.642 0 0 1-.934.736c-.368.167-.784.25-1.25.25a2.88 2.88 0 0 1-1.078-.21c-.35-.14-.679-.399-.986-.776v3.327h-1.499v-9.39Zm1.486 3.537c0 .447.048.82.145 1.118.096.29.223.522.381.697.167.175.355.298.566.368.219.07.447.105.683.105.246 0 .474-.043.684-.131a1.41 1.41 0 0 0 .553-.421c.157-.193.28-.443.368-.75.087-.306.131-.679.131-1.117 0-.447-.048-.82-.144-1.118a1.933 1.933 0 0 0-.369-.737 1.228 1.228 0 0 0-.526-.407 1.717 1.717 0 0 0-.63-.119c-.536 0-.978.176-1.329.526-.342.351-.513.903-.513 1.657v.33Z"
|
|
15492
15464
|
}
|
|
15493
15465
|
),
|
|
15494
|
-
/* @__PURE__ */ (0,
|
|
15495
|
-
/* @__PURE__ */ (0,
|
|
15466
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("defs", { children: [
|
|
15467
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
15496
15468
|
"linearGradient",
|
|
15497
15469
|
{
|
|
15498
15470
|
id: "bible-app-logo-lockup-gradient-a",
|
|
@@ -15502,12 +15474,12 @@ var SvgComponent3 = (props) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
|
15502
15474
|
y2: 16.438,
|
|
15503
15475
|
gradientUnits: "userSpaceOnUse",
|
|
15504
15476
|
children: [
|
|
15505
|
-
/* @__PURE__ */ (0,
|
|
15506
|
-
/* @__PURE__ */ (0,
|
|
15477
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("stop", { stopColor: "#C93D34" }),
|
|
15478
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("stop", { offset: 1, stopColor: "#7A2629" })
|
|
15507
15479
|
]
|
|
15508
15480
|
}
|
|
15509
15481
|
),
|
|
15510
|
-
/* @__PURE__ */ (0,
|
|
15482
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
15511
15483
|
"linearGradient",
|
|
15512
15484
|
{
|
|
15513
15485
|
id: "bible-app-logo-lockup-gradient-c",
|
|
@@ -15517,20 +15489,20 @@ var SvgComponent3 = (props) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
|
15517
15489
|
y2: 16.438,
|
|
15518
15490
|
gradientUnits: "userSpaceOnUse",
|
|
15519
15491
|
children: [
|
|
15520
|
-
/* @__PURE__ */ (0,
|
|
15521
|
-
/* @__PURE__ */ (0,
|
|
15492
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("stop", { stopColor: "#C93D34" }),
|
|
15493
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("stop", { offset: 1, stopColor: "#7A2629" })
|
|
15522
15494
|
]
|
|
15523
15495
|
}
|
|
15524
15496
|
),
|
|
15525
|
-
/* @__PURE__ */ (0,
|
|
15497
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("clipPath", { id: "bible-app-logo-lockup-clip", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { fill: "#fff", d: "M65.52 2.472h12.521V9.68h-12.52z" }) })
|
|
15526
15498
|
] })
|
|
15527
15499
|
]
|
|
15528
15500
|
}
|
|
15529
15501
|
);
|
|
15530
15502
|
|
|
15531
15503
|
// src/components/verse-of-the-day.tsx
|
|
15532
|
-
var
|
|
15533
|
-
var
|
|
15504
|
+
var import_platform_react_hooks6 = require("@youversion/platform-react-hooks");
|
|
15505
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
15534
15506
|
async function share({ title, text, url: url2 }) {
|
|
15535
15507
|
if (navigator.share) {
|
|
15536
15508
|
try {
|
|
@@ -15556,21 +15528,21 @@ function VerseOfTheDay({
|
|
|
15556
15528
|
showBibleAppAttribution = true,
|
|
15557
15529
|
size = "default"
|
|
15558
15530
|
}) {
|
|
15559
|
-
const day =
|
|
15560
|
-
const verseRef =
|
|
15561
|
-
const { data, loading: loadingVerseOfTheDay, error: errorVerseOfTheDay } = (0,
|
|
15531
|
+
const day = import_react7.default.useMemo(() => dayOfYear || (0, import_platform_react_hooks6.getDayOfYear)(/* @__PURE__ */ new Date()), [dayOfYear]);
|
|
15532
|
+
const verseRef = import_react7.default.useRef(null);
|
|
15533
|
+
const { data, loading: loadingVerseOfTheDay, error: errorVerseOfTheDay } = (0, import_platform_react_hooks6.useVerseOfTheDay)(day);
|
|
15562
15534
|
const {
|
|
15563
15535
|
passage,
|
|
15564
15536
|
loading: loadingPassage,
|
|
15565
15537
|
error: errorPassage
|
|
15566
|
-
} = (0,
|
|
15538
|
+
} = (0, import_platform_react_hooks6.usePassage)({
|
|
15567
15539
|
versionId,
|
|
15568
15540
|
usfm: data?.passage_id || "",
|
|
15569
15541
|
options: {
|
|
15570
15542
|
enabled: !loadingVerseOfTheDay && !errorVerseOfTheDay && !!data?.passage_id
|
|
15571
15543
|
}
|
|
15572
15544
|
});
|
|
15573
|
-
const { version: version2, loading: loadingVersion } = (0,
|
|
15545
|
+
const { version: version2, loading: loadingVersion } = (0, import_platform_react_hooks6.useVersion)(versionId);
|
|
15574
15546
|
let referenceText = "";
|
|
15575
15547
|
if (loadingPassage || loadingVerseOfTheDay || loadingVersion) {
|
|
15576
15548
|
referenceText = "Loading...";
|
|
@@ -15589,34 +15561,34 @@ function VerseOfTheDay({
|
|
|
15589
15561
|
await share({ text });
|
|
15590
15562
|
}
|
|
15591
15563
|
};
|
|
15592
|
-
return /* @__PURE__ */ (0,
|
|
15564
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
15593
15565
|
"section",
|
|
15594
15566
|
{
|
|
15595
15567
|
"data-size": size,
|
|
15596
15568
|
className: "yv:data-[size=lg]:p-8 yv:data-[size=default]:p-4 yv:*:shrink-0 yv:font-sans yv:flex yv:flex-col yv:gap-3 yv:max-w-screen-sm yv:p-4 yv:shadow yv:rounded-2xl",
|
|
15597
15569
|
children: [
|
|
15598
|
-
/* @__PURE__ */ (0,
|
|
15599
|
-
showSunIcon ? /* @__PURE__ */ (0,
|
|
15570
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "yv:flex yv:items-center yv:gap-2", children: [
|
|
15571
|
+
showSunIcon ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
15600
15572
|
"div",
|
|
15601
15573
|
{
|
|
15602
15574
|
"data-slot": "card-icon",
|
|
15603
15575
|
className: "yv:col-start-1 yv:row-start-1 yv:self-start yv:justify-self-start",
|
|
15604
|
-
children: /* @__PURE__ */ (0,
|
|
15576
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SvgComponent, { className: "yv:shrink-0 yv:h-10 yv:w-10" })
|
|
15605
15577
|
}
|
|
15606
15578
|
) : null,
|
|
15607
|
-
/* @__PURE__ */ (0,
|
|
15579
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "yv:grow yv:grid", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
15608
15580
|
"p",
|
|
15609
15581
|
{
|
|
15610
15582
|
className: "trim-both yv:line-clamp-1 yv:text-muted-foreground yv:uppercase yv:text-xs yv:font-medium yv:select-none",
|
|
15611
15583
|
children: "Verse of The Day"
|
|
15612
15584
|
}
|
|
15613
15585
|
) }),
|
|
15614
|
-
showShareButton ? /* @__PURE__ */ (0,
|
|
15586
|
+
showShareButton ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
15615
15587
|
"div",
|
|
15616
15588
|
{
|
|
15617
15589
|
"data-slot": "card-action",
|
|
15618
15590
|
className: "yv:col-start-2 yv:row-span-2 yv:row-start-1 yv:self-start yv:justify-self-end",
|
|
15619
|
-
children: /* @__PURE__ */ (0,
|
|
15591
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
15620
15592
|
Button,
|
|
15621
15593
|
{
|
|
15622
15594
|
"aria-label": "Share",
|
|
@@ -15624,13 +15596,13 @@ function VerseOfTheDay({
|
|
|
15624
15596
|
onClick: () => void handleShareVerse(),
|
|
15625
15597
|
size: "icon",
|
|
15626
15598
|
variant: "ghost",
|
|
15627
|
-
children: /* @__PURE__ */ (0,
|
|
15599
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SvgComponent2, { className: "yv:h-6! yv:w-6!" })
|
|
15628
15600
|
}
|
|
15629
15601
|
)
|
|
15630
15602
|
}
|
|
15631
15603
|
) : null
|
|
15632
15604
|
] }),
|
|
15633
|
-
/* @__PURE__ */ (0,
|
|
15605
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { children: passage ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
15634
15606
|
Verse.Html,
|
|
15635
15607
|
{
|
|
15636
15608
|
ref: verseRef,
|
|
@@ -15639,12 +15611,12 @@ function VerseOfTheDay({
|
|
|
15639
15611
|
html: passage?.content || ""
|
|
15640
15612
|
}
|
|
15641
15613
|
) : null }),
|
|
15642
|
-
/* @__PURE__ */ (0,
|
|
15643
|
-
showBibleAppAttribution ? /* @__PURE__ */ (0,
|
|
15614
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "yv:text-(--yv-gray-30) yv:font-medium yv:text-sm", children: referenceText }),
|
|
15615
|
+
showBibleAppAttribution ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
15644
15616
|
"div",
|
|
15645
15617
|
{
|
|
15646
15618
|
className: "yv:grid yv:grid-cols-1 yv:mt-4 yv:justify-between yv:items-center yv:gap-2 yv:w-full",
|
|
15647
|
-
children: /* @__PURE__ */ (0,
|
|
15619
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SvgComponent3, { "data-slot": "attribution", className: "yv:justify-self-end" })
|
|
15648
15620
|
}
|
|
15649
15621
|
) : null
|
|
15650
15622
|
]
|
|
@@ -15653,33 +15625,33 @@ function VerseOfTheDay({
|
|
|
15653
15625
|
}
|
|
15654
15626
|
|
|
15655
15627
|
// src/components/bible-widget-view.tsx
|
|
15656
|
-
var
|
|
15657
|
-
var
|
|
15628
|
+
var import_platform_react_hooks7 = require("@youversion/platform-react-hooks");
|
|
15629
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
15658
15630
|
function BibleWidgetView({
|
|
15659
15631
|
reference,
|
|
15660
15632
|
versionId,
|
|
15661
15633
|
background = "light"
|
|
15662
15634
|
}) {
|
|
15663
|
-
const { version: version2 } = (0,
|
|
15664
|
-
const { passage } = (0,
|
|
15635
|
+
const { version: version2 } = (0, import_platform_react_hooks7.useVersion)(versionId);
|
|
15636
|
+
const { passage } = (0, import_platform_react_hooks7.usePassage)({
|
|
15665
15637
|
versionId,
|
|
15666
15638
|
usfm: reference,
|
|
15667
15639
|
include_headings: true,
|
|
15668
15640
|
include_notes: true
|
|
15669
15641
|
});
|
|
15670
|
-
return /* @__PURE__ */ (0,
|
|
15642
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
15671
15643
|
"section",
|
|
15672
15644
|
{
|
|
15673
15645
|
"data-yv-sdk": true,
|
|
15674
15646
|
"data-yv-theme": background === "dark" ? "dark" : "light",
|
|
15675
15647
|
className: "yv:flex yv:flex-col yv:bg-card yv:p-6 yv:max-w-md yv:rounded-2xl",
|
|
15676
15648
|
children: [
|
|
15677
|
-
passage?.human_reference ? /* @__PURE__ */ (0,
|
|
15649
|
+
passage?.human_reference ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("h2", { className: "yv:font-bold yv:tracking-widest yv:text-xs yv:uppercase", children: [
|
|
15678
15650
|
passage.human_reference,
|
|
15679
15651
|
" ",
|
|
15680
15652
|
version2?.local_abbreviation
|
|
15681
15653
|
] }) : null,
|
|
15682
|
-
/* @__PURE__ */ (0,
|
|
15654
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
15683
15655
|
BibleTextView,
|
|
15684
15656
|
{
|
|
15685
15657
|
fontSize: 16,
|
|
@@ -15688,9 +15660,9 @@ function BibleWidgetView({
|
|
|
15688
15660
|
versionId
|
|
15689
15661
|
}
|
|
15690
15662
|
),
|
|
15691
|
-
/* @__PURE__ */ (0,
|
|
15692
|
-
/* @__PURE__ */ (0,
|
|
15693
|
-
/* @__PURE__ */ (0,
|
|
15663
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "yv:grid yv:grid-cols-[1fr_auto] yv:gap-4 yv:items-center yv:mt-4", children: [
|
|
15664
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "yv:text-balance yv:text-muted-foreground yv:justify-self-start yv:font-bold yv:text-[0.5rem]", children: version2?.copyright_short }),
|
|
15665
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "yv:justify-self-end", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SvgComponent3, { fontSize: 12 }) })
|
|
15694
15666
|
] })
|
|
15695
15667
|
]
|
|
15696
15668
|
}
|
|
@@ -15698,18 +15670,16 @@ function BibleWidgetView({
|
|
|
15698
15670
|
}
|
|
15699
15671
|
|
|
15700
15672
|
// src/index.ts
|
|
15701
|
-
var
|
|
15673
|
+
var import_platform_react_hooks8 = require("@youversion/platform-react-hooks");
|
|
15674
|
+
injectStyles();
|
|
15702
15675
|
// Annotate the CommonJS export names for ESM import in node:
|
|
15703
15676
|
0 && (module.exports = {
|
|
15704
15677
|
ApiClient,
|
|
15705
|
-
AuthClient,
|
|
15706
|
-
AuthenticationStrategyRegistry,
|
|
15707
15678
|
BOOK_CANON,
|
|
15708
15679
|
BOOK_IDS,
|
|
15709
15680
|
BibleChapterPicker,
|
|
15710
15681
|
BibleClient,
|
|
15711
15682
|
BibleReader,
|
|
15712
|
-
BibleSDKProvider,
|
|
15713
15683
|
BibleTextView,
|
|
15714
15684
|
BibleVersionPicker,
|
|
15715
15685
|
BibleWidgetView,
|
|
@@ -15722,13 +15692,10 @@ var import_platform_react_hooks7 = require("@youversion/platform-react-hooks");
|
|
|
15722
15692
|
SignInWithYouVersionResult,
|
|
15723
15693
|
URLBuilder,
|
|
15724
15694
|
VerseOfTheDay,
|
|
15725
|
-
WebAuthenticationStrategy,
|
|
15726
|
-
YVPErrorBoundary,
|
|
15727
|
-
YVPProvider,
|
|
15728
15695
|
YouVersionAPI,
|
|
15729
15696
|
YouVersionAPIUsers,
|
|
15730
15697
|
YouVersionPlatformConfiguration,
|
|
15698
|
+
YouVersionProvider,
|
|
15731
15699
|
YouVersionUserInfo,
|
|
15732
|
-
|
|
15733
|
-
useYVP
|
|
15700
|
+
useYVAuth
|
|
15734
15701
|
});
|