@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/dist/index.js CHANGED
@@ -6,6 +6,17 @@ var __export = (target, all) => {
6
6
  };
7
7
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
8
 
9
+ // src/lib/inject-styles.ts
10
+ function injectStyles() {
11
+ if (typeof document === "undefined") return;
12
+ const id = "__yv-sdk-styles";
13
+ if (document.getElementById(id)) return;
14
+ const style = document.createElement("style");
15
+ style.id = id;
16
+ 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}}';
17
+ document.head.appendChild(style);
18
+ }
19
+
9
20
  // src/components/bible-chapter-picker.tsx
10
21
  import {
11
22
  createContext,
@@ -519,12 +530,12 @@ var NEVER = Object.freeze({
519
530
  // @__NO_SIDE_EFFECTS__
520
531
  function $constructor(name, initializer3, params) {
521
532
  function init(inst, def) {
522
- var _a4;
533
+ var _a2;
523
534
  Object.defineProperty(inst, "_zod", {
524
535
  value: inst._zod ?? {},
525
536
  enumerable: false
526
537
  });
527
- (_a4 = inst._zod).traits ?? (_a4.traits = /* @__PURE__ */ new Set());
538
+ (_a2 = inst._zod).traits ?? (_a2.traits = /* @__PURE__ */ new Set());
528
539
  inst._zod.traits.add(name);
529
540
  initializer3(inst, def);
530
541
  for (const k in _.prototype) {
@@ -539,10 +550,10 @@ function $constructor(name, initializer3, params) {
539
550
  }
540
551
  Object.defineProperty(Definition, "name", { value: name });
541
552
  function _(def) {
542
- var _a4;
553
+ var _a2;
543
554
  const inst = params?.Parent ? new Definition() : this;
544
555
  init(inst, def);
545
- (_a4 = inst._zod).deferred ?? (_a4.deferred = []);
556
+ (_a2 = inst._zod).deferred ?? (_a2.deferred = []);
546
557
  for (const fn of inst._zod.deferred) {
547
558
  fn();
548
559
  }
@@ -1115,8 +1126,8 @@ function aborted(x, startIndex = 0) {
1115
1126
  }
1116
1127
  function prefixIssues(path, issues) {
1117
1128
  return issues.map((iss) => {
1118
- var _a4;
1119
- (_a4 = iss).path ?? (_a4.path = []);
1129
+ var _a2;
1130
+ (_a2 = iss).path ?? (_a2.path = []);
1120
1131
  iss.path.unshift(path);
1121
1132
  return iss;
1122
1133
  });
@@ -1280,7 +1291,7 @@ function formatError(error46, mapper = (issue2) => issue2.message) {
1280
1291
  function treeifyError(error46, mapper = (issue2) => issue2.message) {
1281
1292
  const result = { errors: [] };
1282
1293
  const processError = (error47, path = []) => {
1283
- var _a4, _b;
1294
+ var _a2, _b;
1284
1295
  for (const issue2 of error47.issues) {
1285
1296
  if (issue2.code === "invalid_union" && issue2.errors.length) {
1286
1297
  issue2.errors.map((issues) => processError({ issues }, issue2.path));
@@ -1301,7 +1312,7 @@ function treeifyError(error46, mapper = (issue2) => issue2.message) {
1301
1312
  const terminal = i === fullpath.length - 1;
1302
1313
  if (typeof el === "string") {
1303
1314
  curr.properties ?? (curr.properties = {});
1304
- (_a4 = curr.properties)[el] ?? (_a4[el] = { errors: [] });
1315
+ (_a2 = curr.properties)[el] ?? (_a2[el] = { errors: [] });
1305
1316
  curr = curr.properties[el];
1306
1317
  } else {
1307
1318
  curr.items ?? (curr.items = []);
@@ -1590,10 +1601,10 @@ var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
1590
1601
 
1591
1602
  // ../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/checks.js
1592
1603
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
1593
- var _a4;
1604
+ var _a2;
1594
1605
  inst._zod ?? (inst._zod = {});
1595
1606
  inst._zod.def = def;
1596
- (_a4 = inst._zod).onattach ?? (_a4.onattach = []);
1607
+ (_a2 = inst._zod).onattach ?? (_a2.onattach = []);
1597
1608
  });
1598
1609
  var numericOriginMap = {
1599
1610
  number: "number",
@@ -1659,8 +1670,8 @@ var $ZodCheckGreaterThan = /* @__PURE__ */ $constructor("$ZodCheckGreaterThan",
1659
1670
  var $ZodCheckMultipleOf = /* @__PURE__ */ $constructor("$ZodCheckMultipleOf", (inst, def) => {
1660
1671
  $ZodCheck.init(inst, def);
1661
1672
  inst._zod.onattach.push((inst2) => {
1662
- var _a4;
1663
- (_a4 = inst2._zod.bag).multipleOf ?? (_a4.multipleOf = def.value);
1673
+ var _a2;
1674
+ (_a2 = inst2._zod.bag).multipleOf ?? (_a2.multipleOf = def.value);
1664
1675
  });
1665
1676
  inst._zod.check = (payload) => {
1666
1677
  if (typeof payload.value !== typeof def.value)
@@ -1787,9 +1798,9 @@ var $ZodCheckBigIntFormat = /* @__PURE__ */ $constructor("$ZodCheckBigIntFormat"
1787
1798
  };
1788
1799
  });
1789
1800
  var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, def) => {
1790
- var _a4;
1801
+ var _a2;
1791
1802
  $ZodCheck.init(inst, def);
1792
- (_a4 = inst._zod.def).when ?? (_a4.when = (payload) => {
1803
+ (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
1793
1804
  const val = payload.value;
1794
1805
  return !nullish(val) && val.size !== void 0;
1795
1806
  });
@@ -1815,9 +1826,9 @@ var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, d
1815
1826
  };
1816
1827
  });
1817
1828
  var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, def) => {
1818
- var _a4;
1829
+ var _a2;
1819
1830
  $ZodCheck.init(inst, def);
1820
- (_a4 = inst._zod.def).when ?? (_a4.when = (payload) => {
1831
+ (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
1821
1832
  const val = payload.value;
1822
1833
  return !nullish(val) && val.size !== void 0;
1823
1834
  });
@@ -1843,9 +1854,9 @@ var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, d
1843
1854
  };
1844
1855
  });
1845
1856
  var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (inst, def) => {
1846
- var _a4;
1857
+ var _a2;
1847
1858
  $ZodCheck.init(inst, def);
1848
- (_a4 = inst._zod.def).when ?? (_a4.when = (payload) => {
1859
+ (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
1849
1860
  const val = payload.value;
1850
1861
  return !nullish(val) && val.size !== void 0;
1851
1862
  });
@@ -1873,9 +1884,9 @@ var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (i
1873
1884
  };
1874
1885
  });
1875
1886
  var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (inst, def) => {
1876
- var _a4;
1887
+ var _a2;
1877
1888
  $ZodCheck.init(inst, def);
1878
- (_a4 = inst._zod.def).when ?? (_a4.when = (payload) => {
1889
+ (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
1879
1890
  const val = payload.value;
1880
1891
  return !nullish(val) && val.length !== void 0;
1881
1892
  });
@@ -1902,9 +1913,9 @@ var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (ins
1902
1913
  };
1903
1914
  });
1904
1915
  var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (inst, def) => {
1905
- var _a4;
1916
+ var _a2;
1906
1917
  $ZodCheck.init(inst, def);
1907
- (_a4 = inst._zod.def).when ?? (_a4.when = (payload) => {
1918
+ (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
1908
1919
  const val = payload.value;
1909
1920
  return !nullish(val) && val.length !== void 0;
1910
1921
  });
@@ -1931,9 +1942,9 @@ var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (ins
1931
1942
  };
1932
1943
  });
1933
1944
  var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals", (inst, def) => {
1934
- var _a4;
1945
+ var _a2;
1935
1946
  $ZodCheck.init(inst, def);
1936
- (_a4 = inst._zod.def).when ?? (_a4.when = (payload) => {
1947
+ (_a2 = inst._zod.def).when ?? (_a2.when = (payload) => {
1937
1948
  const val = payload.value;
1938
1949
  return !nullish(val) && val.length !== void 0;
1939
1950
  });
@@ -1962,7 +1973,7 @@ var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals"
1962
1973
  };
1963
1974
  });
1964
1975
  var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat", (inst, def) => {
1965
- var _a4, _b;
1976
+ var _a2, _b;
1966
1977
  $ZodCheck.init(inst, def);
1967
1978
  inst._zod.onattach.push((inst2) => {
1968
1979
  const bag = inst2._zod.bag;
@@ -1973,7 +1984,7 @@ var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat"
1973
1984
  }
1974
1985
  });
1975
1986
  if (def.pattern)
1976
- (_a4 = inst._zod).check ?? (_a4.check = (payload) => {
1987
+ (_a2 = inst._zod).check ?? (_a2.check = (payload) => {
1977
1988
  def.pattern.lastIndex = 0;
1978
1989
  if (def.pattern.test(payload.value))
1979
1990
  return;
@@ -2175,7 +2186,7 @@ var version = {
2175
2186
 
2176
2187
  // ../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/schemas.js
2177
2188
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
2178
- var _a4;
2189
+ var _a2;
2179
2190
  inst ?? (inst = {});
2180
2191
  inst._zod.def = def;
2181
2192
  inst._zod.bag = inst._zod.bag || {};
@@ -2190,7 +2201,7 @@ var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
2190
2201
  }
2191
2202
  }
2192
2203
  if (checks.length === 0) {
2193
- (_a4 = inst._zod).deferred ?? (_a4.deferred = []);
2204
+ (_a2 = inst._zod).deferred ?? (_a2.deferred = []);
2194
2205
  inst._zod.deferred?.push(() => {
2195
2206
  inst._zod.run = inst._zod.parse;
2196
2207
  });
@@ -10631,7 +10642,7 @@ var JSONSchemaGenerator = class {
10631
10642
  this.seen = /* @__PURE__ */ new Map();
10632
10643
  }
10633
10644
  process(schema, _params = { path: [], schemaPath: [] }) {
10634
- var _a4;
10645
+ var _a2;
10635
10646
  const def = schema._zod.def;
10636
10647
  const formatMap = {
10637
10648
  guid: "uuid",
@@ -11140,7 +11151,7 @@ var JSONSchemaGenerator = class {
11140
11151
  delete result.schema.default;
11141
11152
  }
11142
11153
  if (this.io === "input" && result.schema._prefault)
11143
- (_a4 = result.schema).default ?? (_a4.default = result.schema._prefault);
11154
+ (_a2 = result.schema).default ?? (_a2.default = result.schema._prefault);
11144
11155
  delete result.schema._prefault;
11145
11156
  const _result = this.seen.get(schema);
11146
11157
  return _result.schema;
@@ -12963,6 +12974,44 @@ var YouVersionPlatformConfiguration = (_a = class {
12963
12974
  localStorage.setItem("x-yvp-installation-id", newId);
12964
12975
  return newId;
12965
12976
  }
12977
+ static saveAuthData(accessToken, refreshToken, idToken, expiryDate) {
12978
+ if (accessToken !== null) {
12979
+ localStorage.setItem("accessToken", accessToken);
12980
+ } else {
12981
+ localStorage.removeItem("accessToken");
12982
+ }
12983
+ if (refreshToken !== null) {
12984
+ localStorage.setItem("refreshToken", refreshToken);
12985
+ } else {
12986
+ localStorage.removeItem("refreshToken");
12987
+ }
12988
+ if (idToken !== null) {
12989
+ localStorage.setItem("idToken", idToken);
12990
+ } else {
12991
+ localStorage.removeItem("idToken");
12992
+ }
12993
+ if (expiryDate !== null) {
12994
+ localStorage.setItem("expiryDate", expiryDate.toISOString());
12995
+ } else {
12996
+ localStorage.removeItem("expiryDate");
12997
+ }
12998
+ }
12999
+ static clearAuthTokens() {
13000
+ this.saveAuthData(null, null, null, null);
13001
+ }
13002
+ static get accessToken() {
13003
+ return localStorage.getItem("accessToken");
13004
+ }
13005
+ static get refreshToken() {
13006
+ return localStorage.getItem("refreshToken");
13007
+ }
13008
+ static get idToken() {
13009
+ return localStorage.getItem("idToken");
13010
+ }
13011
+ static get tokenExpiryDate() {
13012
+ const dateString = localStorage.getItem("expiryDate");
13013
+ return dateString ? new Date(dateString) : null;
13014
+ }
12966
13015
  static get appKey() {
12967
13016
  return this._appKey;
12968
13017
  }
@@ -12978,34 +13027,25 @@ var YouVersionPlatformConfiguration = (_a = class {
12978
13027
  static set installationId(value) {
12979
13028
  this._installationId = value || this.getOrSetInstallationId();
12980
13029
  }
12981
- static setAccessToken(token) {
12982
- if (token !== null && (typeof token !== "string" || token.trim().length === 0)) {
12983
- throw new Error("Access token must be a non-empty string or null");
12984
- }
12985
- this._accessToken = token;
12986
- }
12987
- static get accessToken() {
12988
- return this._accessToken;
12989
- }
12990
13030
  static get apiHost() {
12991
13031
  return this._apiHost;
12992
13032
  }
12993
13033
  static set apiHost(value) {
12994
13034
  this._apiHost = value;
12995
13035
  }
12996
- static get isPreviewMode() {
12997
- return this._isPreviewMode;
13036
+ static get refreshTokenKey() {
13037
+ return this._refreshTokenKey;
12998
13038
  }
12999
- static set isPreviewMode(value) {
13000
- this._isPreviewMode = value;
13039
+ static set refreshTokenKey(value) {
13040
+ this._refreshTokenKey = value;
13001
13041
  }
13002
- static get previewUserInfo() {
13003
- return this._previewUserInfo;
13042
+ static get expiryDateKey() {
13043
+ return this._expiryDateKey;
13004
13044
  }
13005
- static set previewUserInfo(value) {
13006
- this._previewUserInfo = value;
13045
+ static set expiryDateKey(value) {
13046
+ this._expiryDateKey = value;
13007
13047
  }
13008
- }, __publicField(_a, "_appKey", null), __publicField(_a, "_installationId", null), __publicField(_a, "_accessToken", null), __publicField(_a, "_apiHost", "api.youversion.com"), __publicField(_a, "_isPreviewMode", false), __publicField(_a, "_previewUserInfo", null), _a);
13048
+ }, __publicField(_a, "_appKey", null), __publicField(_a, "_installationId", null), __publicField(_a, "_apiHost", "api.youversion.com"), __publicField(_a, "_refreshTokenKey", null), __publicField(_a, "_expiryDateKey", null), _a);
13009
13049
  var HighlightsClient = class {
13010
13050
  /**
13011
13051
  * Creates a new HighlightsClient instance.
@@ -13125,74 +13165,6 @@ var HighlightsClient = class {
13125
13165
  await this.client.delete(`/v1/highlights/${passageId}`, params);
13126
13166
  }
13127
13167
  };
13128
- var AuthClient = class {
13129
- /**
13130
- * Creates an instance of AuthClient.
13131
- * @param client - The ApiClient instance to use for requests.
13132
- */
13133
- constructor(client) {
13134
- __publicField(this, "client");
13135
- this.client = client;
13136
- }
13137
- /**
13138
- * Retrieves the current authenticated user.
13139
- *
13140
- * @param lat - The long access token (LAT) used for authentication.
13141
- * @returns A promise that resolves to the authenticated User.
13142
- */
13143
- async getUser(lat) {
13144
- return this.client.get(`/auth/me`, { lat });
13145
- }
13146
- };
13147
- var _a2;
13148
- var AuthenticationStrategyRegistry = (_a2 = class {
13149
- /**
13150
- * Registers a platform-specific authentication strategy
13151
- *
13152
- * @param strategy - The authentication strategy to register
13153
- * @throws Error if strategy is null, undefined, or missing required methods
13154
- */
13155
- static register(strategy) {
13156
- if (!strategy) {
13157
- throw new Error("Authentication strategy cannot be null or undefined");
13158
- }
13159
- if (typeof strategy.authenticate !== "function") {
13160
- throw new Error("Authentication strategy must implement authenticate method");
13161
- }
13162
- this.strategy = strategy;
13163
- }
13164
- /**
13165
- * Gets the currently registered authentication strategy
13166
- *
13167
- * @returns The registered authentication strategy
13168
- * @throws Error if no strategy has been registered
13169
- */
13170
- static get() {
13171
- if (!this.strategy) {
13172
- throw new Error(
13173
- "No authentication strategy registered. Please register a platform-specific strategy using AuthenticationStrategyRegistry.register()"
13174
- );
13175
- }
13176
- return this.strategy;
13177
- }
13178
- /**
13179
- * Checks if a strategy is currently registered
13180
- *
13181
- * @returns true if a strategy is registered, false otherwise
13182
- */
13183
- static isRegistered() {
13184
- return this.strategy !== null;
13185
- }
13186
- /**
13187
- * Resets the registry by removing the current strategy
13188
- *
13189
- * This method is primarily intended for testing scenarios
13190
- * where you need to clean up between test cases.
13191
- */
13192
- static reset() {
13193
- this.strategy = null;
13194
- }
13195
- }, __publicField(_a2, "strategy", null), _a2);
13196
13168
  var SessionStorageStrategy = class {
13197
13169
  setItem(key, value) {
13198
13170
  if (typeof sessionStorage === "undefined") {
@@ -13237,94 +13209,120 @@ var MemoryStorageStrategy = class {
13237
13209
  this.store.clear();
13238
13210
  }
13239
13211
  };
13240
- var _a3;
13241
- var WebAuthenticationStrategy = (_a3 = class {
13242
- constructor(options) {
13243
- __publicField(this, "redirectUri");
13244
- __publicField(this, "callbackPath");
13245
- __publicField(this, "timeout");
13246
- __publicField(this, "storage");
13247
- this.callbackPath = options?.callbackPath ?? "/auth/callback";
13248
- this.redirectUri = options?.redirectUri ?? window.location.origin + this.callbackPath;
13249
- this.timeout = options?.timeout ?? 3e5;
13250
- this.storage = options?.storage ?? new SessionStorageStrategy();
13251
- }
13252
- async authenticate(authUrl) {
13253
- authUrl.searchParams.set("redirect_uri", this.redirectUri);
13254
- return this.authenticateWithRedirect(authUrl);
13212
+ var YouVersionUserInfo = class {
13213
+ constructor(data) {
13214
+ __publicField(this, "name");
13215
+ __publicField(this, "userId");
13216
+ __publicField(this, "email");
13217
+ __publicField(this, "avatarUrlFormat");
13218
+ if (!data || typeof data !== "object") {
13219
+ throw new Error("Invalid user data provided");
13220
+ }
13221
+ this.name = data.name;
13222
+ this.userId = data.id;
13223
+ this.email = data.email;
13224
+ this.avatarUrlFormat = data.avatar_url;
13255
13225
  }
13256
- /**
13257
- * Call this method when your app loads to handle the redirect callback
13258
- */
13259
- static handleCallback(callbackPath = "/auth/callback") {
13260
- const currentUrl = new URL(window.location.href);
13261
- if (currentUrl.pathname === callbackPath && currentUrl.searchParams.has("status")) {
13262
- const callbackUrl = new URL(currentUrl.toString());
13263
- if (_a3.pendingAuthResolve) {
13264
- _a3.pendingAuthResolve(callbackUrl);
13265
- _a3.cleanup();
13266
- } else {
13267
- const storageStrategy2 = new SessionStorageStrategy();
13268
- storageStrategy2.setItem("youversion-auth-callback", callbackUrl.toString());
13269
- }
13270
- const storageStrategy = new SessionStorageStrategy();
13271
- const returnUrl = storageStrategy.getItem("youversion-auth-return") ?? "/";
13272
- storageStrategy.removeItem("youversion-auth-return");
13273
- window.history.replaceState({}, "", returnUrl);
13274
- return true;
13226
+ getAvatarUrl(width = 200, height = 200) {
13227
+ if (!this.avatarUrlFormat) {
13228
+ return null;
13229
+ }
13230
+ let urlString = this.avatarUrlFormat;
13231
+ if (urlString.startsWith("//")) {
13232
+ urlString = "https:" + urlString;
13233
+ }
13234
+ urlString = urlString.replace("{width}", width.toString());
13235
+ urlString = urlString.replace("{height}", height.toString());
13236
+ try {
13237
+ return new URL(urlString);
13238
+ } catch {
13239
+ return null;
13275
13240
  }
13276
- return false;
13277
13241
  }
13278
- /**
13279
- * Clean up pending authentication state
13280
- */
13281
- static cleanup() {
13282
- if (_a3.timeoutId) {
13283
- clearTimeout(_a3.timeoutId);
13284
- _a3.timeoutId = null;
13242
+ get avatarUrl() {
13243
+ return this.getAvatarUrl();
13244
+ }
13245
+ };
13246
+ var SignInWithYouVersionPKCEAuthorizationRequestBuilder = class {
13247
+ static async make(appKey, permissions, redirectURL) {
13248
+ const codeVerifier = this.randomURLSafeString(32);
13249
+ const codeChallenge = await this.codeChallenge(codeVerifier);
13250
+ const state = this.randomURLSafeString(24);
13251
+ const nonce = this.randomURLSafeString(24);
13252
+ const parameters = {
13253
+ codeVerifier,
13254
+ codeChallenge,
13255
+ state,
13256
+ nonce
13257
+ };
13258
+ const url2 = this.authorizeURL(appKey, permissions, redirectURL, parameters);
13259
+ return { url: url2, parameters };
13260
+ }
13261
+ static authorizeURL(appKey, permissions, redirectURL, parameters) {
13262
+ const components = new URL(`https://${YouVersionPlatformConfiguration.apiHost}/auth/authorize`);
13263
+ const redirectUrlString = redirectURL.toString().endsWith("/") ? redirectURL.toString().slice(0, -1) : redirectURL.toString();
13264
+ const queryParams = new URLSearchParams({
13265
+ response_type: "code",
13266
+ client_id: appKey,
13267
+ redirect_uri: redirectUrlString,
13268
+ nonce: parameters.nonce,
13269
+ state: parameters.state,
13270
+ code_challenge: parameters.codeChallenge,
13271
+ code_challenge_method: "S256"
13272
+ });
13273
+ const installId = YouVersionPlatformConfiguration.installationId;
13274
+ if (installId) {
13275
+ queryParams.set("x-yvp-installation-id", installId);
13276
+ }
13277
+ const scopeValue = this.scopeValue(permissions);
13278
+ if (scopeValue) {
13279
+ queryParams.set("scope", scopeValue);
13285
13280
  }
13286
- _a3.pendingAuthResolve = null;
13287
- _a3.pendingAuthReject = null;
13281
+ components.search = queryParams.toString();
13282
+ return components;
13288
13283
  }
13289
- /**
13290
- * Retrieve stored callback result if available
13291
- */
13292
- static getStoredCallback() {
13293
- const storageStrategy = new SessionStorageStrategy();
13294
- const stored = storageStrategy.getItem("youversion-auth-callback");
13295
- if (stored) {
13296
- storageStrategy.removeItem("youversion-auth-callback");
13297
- try {
13298
- return new URL(stored);
13299
- } catch {
13300
- return null;
13301
- }
13302
- }
13303
- return null;
13304
- }
13305
- authenticateWithRedirect(authUrl) {
13306
- _a3.cleanup();
13307
- this.storage.setItem("youversion-auth-return", window.location.href);
13308
- return new Promise((resolve, reject) => {
13309
- _a3.pendingAuthResolve = resolve;
13310
- _a3.pendingAuthReject = reject;
13311
- _a3.timeoutId = setTimeout(() => {
13312
- _a3.cleanup();
13313
- reject(new Error("Authentication timeout"));
13314
- }, this.timeout);
13315
- try {
13316
- window.location.href = authUrl.toString();
13317
- } catch (error46) {
13318
- _a3.cleanup();
13319
- reject(
13320
- new Error(
13321
- `Failed to navigate to auth URL: ${error46 instanceof Error ? error46.message : "Unknown error"}`
13322
- )
13323
- );
13284
+ static tokenURLRequest(code, codeVerifier, redirectUri) {
13285
+ const apiHost = YouVersionPlatformConfiguration.apiHost;
13286
+ const appKey = YouVersionPlatformConfiguration.appKey;
13287
+ const url2 = new URL(`https://${apiHost}/auth/token`);
13288
+ const parameters = new URLSearchParams({
13289
+ grant_type: "authorization_code",
13290
+ code,
13291
+ redirect_uri: redirectUri,
13292
+ client_id: appKey ?? "",
13293
+ code_verifier: codeVerifier
13294
+ });
13295
+ return new Request(url2, {
13296
+ method: "POST",
13297
+ body: parameters,
13298
+ headers: {
13299
+ "Content-Type": "application/x-www-form-urlencoded"
13324
13300
  }
13325
13301
  });
13326
13302
  }
13327
- }, __publicField(_a3, "pendingAuthResolve", null), __publicField(_a3, "pendingAuthReject", null), __publicField(_a3, "timeoutId", null), _a3);
13303
+ static randomURLSafeString(byteCount) {
13304
+ const bytes = new Uint8Array(byteCount);
13305
+ crypto.getRandomValues(bytes);
13306
+ return this.base64URLEncodedString(bytes);
13307
+ }
13308
+ static async codeChallenge(verifier) {
13309
+ const data = new TextEncoder().encode(verifier);
13310
+ const digest = await crypto.subtle.digest("SHA-256", data);
13311
+ return this.base64URLEncodedString(new Uint8Array(digest));
13312
+ }
13313
+ static base64URLEncodedString(data) {
13314
+ const base643 = btoa(String.fromCharCode.apply(null, Array.from(data)));
13315
+ return base643.replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
13316
+ }
13317
+ static scopeValue(permissions) {
13318
+ const scopeArray = Array.from(permissions).sort();
13319
+ let scopeWithOpenID = scopeArray.join(" ");
13320
+ if (!scopeWithOpenID.split(" ").includes("openid")) {
13321
+ scopeWithOpenID += (scopeWithOpenID === "" ? "" : " ") + "openid";
13322
+ }
13323
+ return scopeWithOpenID || null;
13324
+ }
13325
+ };
13328
13326
  var SignInWithYouVersionPermission = {
13329
13327
  bibles: "bibles",
13330
13328
  highlights: "highlights",
@@ -13333,71 +13331,335 @@ var SignInWithYouVersionPermission = {
13333
13331
  bibleActivity: "bible_activity"
13334
13332
  };
13335
13333
  var SignInWithYouVersionResult = class {
13336
- constructor(url2) {
13334
+ constructor({
13335
+ accessToken,
13336
+ expiresIn,
13337
+ refreshToken,
13338
+ idToken,
13339
+ permissions,
13340
+ yvpUserId,
13341
+ name,
13342
+ profilePicture,
13343
+ email: email3
13344
+ }) {
13337
13345
  __publicField(this, "accessToken");
13346
+ __publicField(this, "expiryDate");
13347
+ __publicField(this, "refreshToken");
13348
+ __publicField(this, "idToken");
13338
13349
  __publicField(this, "permissions");
13339
- __publicField(this, "errorMsg");
13340
13350
  __publicField(this, "yvpUserId");
13341
- const queryParams = new URLSearchParams(url2.search);
13342
- const status = queryParams.get("status");
13343
- const userId = queryParams.get("yvp_user_id");
13344
- const latValue = queryParams.get("lat");
13345
- const grants = queryParams.get("grants");
13346
- const perms = grants?.split(",").map((grant) => grant.trim()).filter(
13347
- (grant) => Object.values(SignInWithYouVersionPermission).includes(
13348
- grant
13349
- )
13350
- ).map((grant) => grant) ?? [];
13351
- if (status === "success" && latValue && userId) {
13352
- this.accessToken = latValue;
13353
- this.permissions = perms;
13354
- this.errorMsg = null;
13355
- this.yvpUserId = userId;
13356
- } else if (status === "canceled") {
13357
- this.accessToken = null;
13358
- this.permissions = [];
13359
- this.errorMsg = null;
13360
- this.yvpUserId = null;
13361
- } else {
13362
- this.accessToken = null;
13363
- this.permissions = [];
13364
- this.errorMsg = "Authentication failed";
13365
- this.yvpUserId = null;
13366
- }
13351
+ __publicField(this, "name");
13352
+ __publicField(this, "profilePicture");
13353
+ __publicField(this, "email");
13354
+ this.accessToken = accessToken;
13355
+ this.expiryDate = expiresIn ? new Date(Date.now() + expiresIn * 1e3) : /* @__PURE__ */ new Date();
13356
+ this.refreshToken = refreshToken;
13357
+ this.idToken = idToken;
13358
+ this.permissions = permissions;
13359
+ this.yvpUserId = yvpUserId;
13360
+ this.name = name;
13361
+ this.profilePicture = profilePicture;
13362
+ this.email = email3;
13367
13363
  }
13368
13364
  };
13369
- var YouVersionUserInfo = class {
13370
- constructor(data) {
13371
- __publicField(this, "firstName");
13372
- __publicField(this, "lastName");
13373
- __publicField(this, "userId");
13374
- __publicField(this, "avatarUrlFormat");
13375
- if (!data || typeof data !== "object") {
13376
- throw new Error("Invalid user data provided");
13365
+ var YouVersionAPIUsers = class {
13366
+ /**
13367
+ * Presents the YouVersion login flow to the user and returns the login result upon completion.
13368
+ *
13369
+ * This function authenticates the user with YouVersion, requesting the specified required and optional permissions.
13370
+ * The function redirects to the YouVersion authorization URL and expects the callback to be handled separately.
13371
+ *
13372
+ * @param permissions - The set of permissions that must be granted by the user for successful login.
13373
+ * @param redirectURL - The URL to redirect back to after authentication.
13374
+ * @throws An error if authentication fails or configuration is invalid.
13375
+ */
13376
+ static async signIn(permissions, redirectURL) {
13377
+ const appKey = YouVersionPlatformConfiguration.appKey;
13378
+ if (!appKey) {
13379
+ throw new Error("YouVersionPlatformConfiguration.appKey must be set before calling signIn");
13377
13380
  }
13378
- this.firstName = data.first_name;
13379
- this.lastName = data.last_name;
13380
- this.userId = data.id;
13381
- this.avatarUrlFormat = data.avatar_url;
13381
+ const authorizationRequest = await SignInWithYouVersionPKCEAuthorizationRequestBuilder.make(
13382
+ appKey,
13383
+ permissions,
13384
+ new URL(redirectURL)
13385
+ );
13386
+ localStorage.setItem(
13387
+ "youversion-auth-code-verifier",
13388
+ authorizationRequest.parameters.codeVerifier
13389
+ );
13390
+ const redirectUrlString = redirectURL.toString().endsWith("/") ? redirectURL.toString().slice(0, -1) : redirectURL.toString();
13391
+ localStorage.setItem("youversion-auth-redirect-uri", redirectUrlString);
13392
+ localStorage.setItem("youversion-auth-state", authorizationRequest.parameters.state);
13393
+ window.location.href = authorizationRequest.url.toString();
13382
13394
  }
13383
- getAvatarUrl(width = 200, height = 200) {
13384
- if (!this.avatarUrlFormat) {
13395
+ /**
13396
+ * Handles the OAuth callback after user authentication.
13397
+ *
13398
+ * Call this method when your app loads to check if the current URL contains
13399
+ * an OAuth callback with authorization code. If found, it exchanges the code
13400
+ * for tokens and stores them.
13401
+ *
13402
+ * @returns Promise<SignInWithYouVersionResult | null> - SignInWithYouVersionResult if callback was handled, null otherwise
13403
+ * @throws An error if token exchange fails
13404
+ */
13405
+ static async handleAuthCallback() {
13406
+ const urlParams = new URLSearchParams(window.location.search);
13407
+ const code = urlParams.get("code");
13408
+ const state = urlParams.get("state");
13409
+ const error46 = urlParams.get("error");
13410
+ if (!state && !error46) {
13385
13411
  return null;
13386
13412
  }
13387
- let urlString = this.avatarUrlFormat;
13388
- if (urlString.startsWith("//")) {
13389
- urlString = "https:" + urlString;
13413
+ if (error46) {
13414
+ const errorDescription = urlParams.get("error_description") || error46;
13415
+ throw new Error(`OAuth authentication failed: ${errorDescription}`);
13416
+ }
13417
+ const storedState = localStorage.getItem("youversion-auth-state");
13418
+ if (state !== storedState) {
13419
+ throw new Error("Invalid state parameter - possible CSRF attack");
13420
+ }
13421
+ if (!code && state) {
13422
+ this.obtainLocation(window.location.href, state);
13423
+ }
13424
+ const codeVerifier = localStorage.getItem("youversion-auth-code-verifier");
13425
+ const redirectUri = localStorage.getItem("youversion-auth-redirect-uri");
13426
+ if (!code || !codeVerifier || !redirectUri) {
13427
+ throw new Error("Missing required authentication parameters");
13390
13428
  }
13391
- urlString = urlString.replace("{width}", width.toString());
13392
- urlString = urlString.replace("{height}", height.toString());
13393
13429
  try {
13394
- return new URL(urlString);
13395
- } catch {
13396
- return null;
13430
+ const tokenRequest = SignInWithYouVersionPKCEAuthorizationRequestBuilder.tokenURLRequest(
13431
+ code,
13432
+ codeVerifier,
13433
+ redirectUri
13434
+ );
13435
+ const response = await fetch(tokenRequest);
13436
+ if (!response.ok) {
13437
+ throw new Error(`Token exchange failed: ${response.status} ${response.statusText}`);
13438
+ }
13439
+ const responseText = await response.text();
13440
+ const tokens = JSON.parse(responseText);
13441
+ const result = this.extractSignInResult(tokens);
13442
+ YouVersionPlatformConfiguration.saveAuthData(
13443
+ result.accessToken || null,
13444
+ result.refreshToken || null,
13445
+ result.idToken || null,
13446
+ result.expiryDate || null
13447
+ );
13448
+ localStorage.removeItem("youversion-auth-code-verifier");
13449
+ localStorage.removeItem("youversion-auth-redirect-uri");
13450
+ localStorage.removeItem("youversion-auth-state");
13451
+ const cleanUrl = new URL(window.location.href);
13452
+ cleanUrl.search = "";
13453
+ window.history.replaceState({}, "", cleanUrl.toString());
13454
+ return result;
13455
+ } catch (error210) {
13456
+ localStorage.removeItem("youversion-auth-code-verifier");
13457
+ localStorage.removeItem("youversion-auth-redirect-uri");
13458
+ localStorage.removeItem("youversion-auth-state");
13459
+ throw error210;
13397
13460
  }
13398
13461
  }
13399
- get avatarUrl() {
13400
- return this.getAvatarUrl();
13462
+ /**
13463
+ * Redirects to the server callback endpoint to obtain authorization code
13464
+ */
13465
+ static obtainLocation(callbackURL, state) {
13466
+ const url2 = new URL(callbackURL);
13467
+ const params = new URLSearchParams(url2.search);
13468
+ if (params.get("state") !== state) {
13469
+ throw new Error("Invalid state parameter");
13470
+ }
13471
+ const serverCallbackUrl = new URL(
13472
+ `https://${YouVersionPlatformConfiguration.apiHost}/auth/callback`
13473
+ );
13474
+ params.forEach((value, key) => {
13475
+ serverCallbackUrl.searchParams.set(key, value);
13476
+ });
13477
+ window.location.href = serverCallbackUrl.toString();
13478
+ }
13479
+ /**
13480
+ * Extracts sign-in result from token response
13481
+ */
13482
+ static extractSignInResult(tokens) {
13483
+ const idClaims = this.decodeJWT(tokens.id_token);
13484
+ const permissions = tokens.scope.split(" ").map((p) => p.trim()).filter((p) => p.length > 0).filter(
13485
+ (p) => Object.values(SignInWithYouVersionPermission).includes(
13486
+ p
13487
+ )
13488
+ );
13489
+ const resultData = {
13490
+ accessToken: tokens.access_token,
13491
+ expiresIn: tokens.expires_in,
13492
+ refreshToken: tokens.refresh_token,
13493
+ idToken: tokens.id_token,
13494
+ permissions,
13495
+ yvpUserId: idClaims.sub,
13496
+ name: idClaims.name,
13497
+ profilePicture: idClaims.profile_picture,
13498
+ email: idClaims.email
13499
+ };
13500
+ return new SignInWithYouVersionResult(resultData);
13501
+ }
13502
+ /**
13503
+ * Decodes JWT payload for UI display purposes.
13504
+ *
13505
+ * Note: We intentionally do not verify the JWT signature here because:
13506
+ *
13507
+ * 1. YouVersion's backend verifies all tokens on API requests
13508
+ * 2. This decoded data is only used for UI display
13509
+ * 3. No security decisions are made based on these claims
13510
+ *
13511
+ * @private
13512
+ */
13513
+ static decodeJWT(token) {
13514
+ const segments = token.split(".");
13515
+ if (segments.length !== 3) {
13516
+ return {};
13517
+ }
13518
+ let base643 = segments[1]?.replace(/-/g, "+").replace(/_/g, "/");
13519
+ while (base643 && base643.length % 4 !== 0) {
13520
+ base643 += "=";
13521
+ }
13522
+ try {
13523
+ if (base643) {
13524
+ const data = atob(base643);
13525
+ return JSON.parse(data);
13526
+ } else {
13527
+ return {};
13528
+ }
13529
+ } catch (error46) {
13530
+ if (process.env.NODE_ENV === "development") {
13531
+ console.error("JWT decode failed:", error46);
13532
+ }
13533
+ return {};
13534
+ }
13535
+ }
13536
+ static signOut() {
13537
+ YouVersionPlatformConfiguration.clearAuthTokens();
13538
+ }
13539
+ /**
13540
+ * Retrieves user information for the authenticated user by decoding the provided JWT access token.
13541
+ *
13542
+ * This function extracts the user's profile information directly from the JWT token payload.
13543
+ *
13544
+ * @param accessToken - The JWT access token obtained from the login process.
13545
+ * @returns A Promise resolving to a YouVersionUserInfo object containing the user's profile information.
13546
+ * @throws An error if the access token is invalid or cannot be decoded.
13547
+ */
13548
+ static userInfo(idToken) {
13549
+ if (!idToken || typeof idToken !== "string") {
13550
+ throw new Error("Invalid access token: must be a non-empty string");
13551
+ }
13552
+ try {
13553
+ const claims = this.decodeJWT(idToken);
13554
+ if (!claims || Object.keys(claims).length === 0) {
13555
+ throw new Error("Invalid JWT token: Unable to decode token payload");
13556
+ }
13557
+ const userInfoData = {
13558
+ id: claims.sub,
13559
+ name: claims.name,
13560
+ avatar_url: claims.profile_picture,
13561
+ email: claims.email
13562
+ };
13563
+ return new YouVersionUserInfo(userInfoData);
13564
+ } catch (error46) {
13565
+ if (error46 instanceof Error) {
13566
+ throw new Error(`Failed to decode user information from JWT: ${error46.message}`);
13567
+ } else {
13568
+ throw new Error("Failed to decode user information from JWT: Unknown error");
13569
+ }
13570
+ }
13571
+ }
13572
+ /**
13573
+ * Refreshes the access token using the stored refresh token.
13574
+ *
13575
+ * @returns Promise<SignInWithYouVersionResult | null> - New tokens if refresh succeeds, null otherwise
13576
+ * @throws An error if refresh fails or no refresh token is available
13577
+ */
13578
+ static async refreshTokens() {
13579
+ const refreshToken = YouVersionPlatformConfiguration.refreshToken;
13580
+ const appKey = YouVersionPlatformConfiguration.appKey;
13581
+ const existingIdToken = YouVersionPlatformConfiguration.idToken;
13582
+ if (!refreshToken || !existingIdToken) {
13583
+ throw new Error("No refresh token or id token available");
13584
+ }
13585
+ if (!appKey) {
13586
+ throw new Error(
13587
+ "YouVersionPlatformConfiguration.appKey must be set before refreshing tokens"
13588
+ );
13589
+ }
13590
+ try {
13591
+ const url2 = new URL(`https://${YouVersionPlatformConfiguration.apiHost}/auth/token`);
13592
+ const parameters = new URLSearchParams({
13593
+ grant_type: "refresh_token",
13594
+ refresh_token: refreshToken,
13595
+ client_id: appKey
13596
+ });
13597
+ const request = new Request(url2, {
13598
+ method: "POST",
13599
+ body: parameters,
13600
+ headers: {
13601
+ "Content-Type": "application/x-www-form-urlencoded"
13602
+ }
13603
+ });
13604
+ const response = await fetch(request);
13605
+ if (!response.ok) {
13606
+ throw new Error(`Token refresh failed: ${response.status} ${response.statusText}`);
13607
+ }
13608
+ const tokens = await response.json();
13609
+ const result = new SignInWithYouVersionResult({
13610
+ accessToken: tokens.access_token,
13611
+ expiresIn: tokens.expires_in,
13612
+ refreshToken: tokens.refresh_token,
13613
+ idToken: existingIdToken,
13614
+ permissions: tokens.scope.split(" ").map((p) => p.trim()).filter((p) => p.length > 0).filter(
13615
+ (p) => Object.values(SignInWithYouVersionPermission).includes(
13616
+ p
13617
+ )
13618
+ )
13619
+ });
13620
+ YouVersionPlatformConfiguration.saveAuthData(
13621
+ result.accessToken || null,
13622
+ result.refreshToken || null,
13623
+ result.idToken || null,
13624
+ result.expiryDate || null
13625
+ );
13626
+ return result;
13627
+ } catch (error46) {
13628
+ if (error46 instanceof Error) {
13629
+ throw new Error(`Token refresh failed: ${error46.message}`);
13630
+ } else {
13631
+ throw new Error("Token refresh failed: Unknown error");
13632
+ }
13633
+ }
13634
+ }
13635
+ /**
13636
+ * Checks if the current access token is expired or about to expire.
13637
+ *
13638
+ * @returns true if token is expired or about to expire
13639
+ */
13640
+ static isTokenExpired() {
13641
+ const expiryDate = YouVersionPlatformConfiguration.tokenExpiryDate;
13642
+ if (!expiryDate) {
13643
+ return true;
13644
+ }
13645
+ return (/* @__PURE__ */ new Date()).getTime() >= expiryDate.getTime();
13646
+ }
13647
+ /**
13648
+ * Refreshes the access token if it's expired or about to expire.
13649
+ *
13650
+ * @returns Promise<boolean> - true if refresh was successful or not needed, false if failed
13651
+ */
13652
+ static async refreshTokenIfNeeded() {
13653
+ if (!this.isTokenExpired()) {
13654
+ return true;
13655
+ }
13656
+ try {
13657
+ const result = await this.refreshTokens();
13658
+ return !!result;
13659
+ } catch {
13660
+ YouVersionPlatformConfiguration.clearAuthTokens();
13661
+ return false;
13662
+ }
13401
13663
  }
13402
13664
  };
13403
13665
  var YouVersionAPI = class {
@@ -13454,117 +13716,6 @@ var URLBuilder = class {
13454
13716
  );
13455
13717
  }
13456
13718
  }
13457
- static userURL(accessToken) {
13458
- if (typeof accessToken !== "string" || accessToken.trim().length === 0) {
13459
- throw new Error("accessToken must be a non-empty string");
13460
- }
13461
- try {
13462
- const url2 = new URL(this.baseURL);
13463
- url2.pathname = "/auth/me";
13464
- const searchParams = new URLSearchParams();
13465
- searchParams.append("lat", accessToken);
13466
- url2.search = searchParams.toString();
13467
- return url2;
13468
- } catch (error46) {
13469
- throw new Error(
13470
- `Failed to construct user URL: ${error46 instanceof Error ? error46.message : "Unknown error"}`
13471
- );
13472
- }
13473
- }
13474
- };
13475
- var MAX_RETRY_ATTEMPTS = 3;
13476
- var RETRY_DELAY_MS = 1e3;
13477
- var YouVersionAPIUsers = class {
13478
- /**
13479
- * Presents the YouVersion login flow to the user and returns the login result upon completion.
13480
- *
13481
- * This function authenticates the user with YouVersion, requesting the specified required and optional permissions.
13482
- * The function returns a promise that resolves when the user completes or cancels the login flow,
13483
- * returning the login result containing the authorization code and granted permissions.
13484
- *
13485
- * @param requiredPermissions - The set of permissions that must be granted by the user for successful login.
13486
- * @param optionalPermissions - The set of permissions that will be requested from the user but are not required for successful login.
13487
- * @returns A Promise resolving to a SignInWithYouVersionResult containing the authorization code and granted permissions upon successful login.
13488
- * @throws An error if authentication fails or is cancelled by the user.
13489
- */
13490
- static async signIn(requiredPermissions, optionalPermissions) {
13491
- if (!requiredPermissions || !(requiredPermissions instanceof Set)) {
13492
- throw new Error("Invalid requiredPermissions: must be a Set");
13493
- }
13494
- if (!optionalPermissions || !(optionalPermissions instanceof Set)) {
13495
- throw new Error("Invalid optionalPermissions: must be a Set");
13496
- }
13497
- const appKey = YouVersionPlatformConfiguration.appKey;
13498
- if (!appKey) {
13499
- throw new Error("YouVersionPlatformConfiguration.appKey must be set before calling signIn");
13500
- }
13501
- const url2 = URLBuilder.authURL(appKey, requiredPermissions, optionalPermissions);
13502
- const strategy = AuthenticationStrategyRegistry.get();
13503
- const callbackUrl = await strategy.authenticate(url2);
13504
- const result = new SignInWithYouVersionResult(callbackUrl);
13505
- if (result.accessToken) {
13506
- YouVersionPlatformConfiguration.setAccessToken(result.accessToken);
13507
- }
13508
- return result;
13509
- }
13510
- static signOut() {
13511
- YouVersionPlatformConfiguration.setAccessToken(null);
13512
- }
13513
- /**
13514
- * Retrieves user information for the authenticated user using the provided access token.
13515
- *
13516
- * This function fetches the user's profile information from the YouVersion API, decoding it into a YouVersionUserInfo model.
13517
- *
13518
- * @param accessToken - The access token obtained from the login process.
13519
- * @returns A Promise resolving to a YouVersionUserInfo object containing the user's profile information.
13520
- * @throws An error if the URL is invalid, the network request fails, or the response cannot be decoded.
13521
- */
13522
- static async userInfo(accessToken) {
13523
- if (!accessToken || typeof accessToken !== "string") {
13524
- throw new Error("Invalid access token: must be a non-empty string");
13525
- }
13526
- if (YouVersionPlatformConfiguration.isPreviewMode && accessToken === "preview") {
13527
- return YouVersionPlatformConfiguration.previewUserInfo || new YouVersionUserInfo({
13528
- first_name: "Preview",
13529
- last_name: "User",
13530
- id: "preview-user",
13531
- avatar_url: void 0
13532
- });
13533
- }
13534
- const url2 = URLBuilder.userURL(accessToken);
13535
- const request = YouVersionAPI.addStandardHeaders(url2);
13536
- let lastError = null;
13537
- for (let attempt = 1; attempt <= MAX_RETRY_ATTEMPTS; attempt++) {
13538
- try {
13539
- const response = await fetch(request);
13540
- if (response.status === 401) {
13541
- throw new Error(
13542
- "Authentication failed: Invalid or expired access token. Please sign in again."
13543
- );
13544
- }
13545
- if (response.status === 403) {
13546
- throw new Error("Access denied: Insufficient permissions to retrieve user information");
13547
- }
13548
- if (response.status !== 200) {
13549
- throw new Error(
13550
- `Failed to retrieve user information: Server responded with status ${response.status}`
13551
- );
13552
- }
13553
- const data = await response.json();
13554
- return data;
13555
- } catch (error46) {
13556
- lastError = error46 instanceof Error ? error46 : new Error("Failed to parse server response");
13557
- if (error46 instanceof Error && (error46.message.includes("401") || error46.message.includes("403"))) {
13558
- throw error46;
13559
- }
13560
- if (attempt < MAX_RETRY_ATTEMPTS) {
13561
- await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS * attempt));
13562
- continue;
13563
- }
13564
- }
13565
- }
13566
- throw lastError || new Error("Failed to retrieve user information after multiple attempts");
13567
- }
13568
13719
  };
13569
13720
  var BOOK_IDS = [
13570
13721
  "GEN",
@@ -14953,191 +15104,15 @@ function Toolbar({ border = "top" }) {
14953
15104
  var BibleReader = Object.assign({}, { Root: Root5, Content: Content4, Toolbar });
14954
15105
 
14955
15106
  // src/components/SignInButton.tsx
14956
- import React11 from "react";
15107
+ import React9 from "react";
14957
15108
  import { Loader2 } from "lucide-react";
14958
-
14959
- // src/providers/YVPProvider.tsx
14960
- import {
14961
- createContext as createContext4,
14962
- useContext as useContext4,
14963
- useEffect as useEffect3,
14964
- useState as useState4,
14965
- useCallback
14966
- } from "react";
14967
-
14968
- // src/providers/YVPErrorBoundary.tsx
14969
- import { Component } from "react";
14970
- import { jsx as jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
14971
- var YVPErrorBoundary = class extends Component {
14972
- constructor(props) {
14973
- super(props);
14974
- this.state = { hasError: false, error: null };
14975
- }
14976
- static getDerivedStateFromError(error46) {
14977
- return { hasError: true, error: error46 };
14978
- }
14979
- componentDidCatch(error46, errorInfo) {
14980
- const { onError } = this.props;
14981
- if (onError) {
14982
- onError(error46, errorInfo);
14983
- }
14984
- if (process.env.NODE_ENV === "development") {
14985
- console.error("YVP Error Boundary caught error:", error46, errorInfo);
14986
- }
14987
- }
14988
- render() {
14989
- const { hasError, error: error46 } = this.state;
14990
- const { children, fallback } = this.props;
14991
- const isDevelopment = process.env.NODE_ENV === "development";
14992
- if (hasError) {
14993
- if (fallback) {
14994
- return fallback;
14995
- }
14996
- return /* @__PURE__ */ jsxs6("div", { style: { padding: "20px", textAlign: "center" }, children: [
14997
- /* @__PURE__ */ jsx12("h2", { children: "Something went wrong" }),
14998
- /* @__PURE__ */ jsx12("p", { children: "We encountered an error while loading YouVersion Platform components." }),
14999
- isDevelopment && error46 && /* @__PURE__ */ jsxs6("details", { style: { marginTop: "10px" }, children: [
15000
- /* @__PURE__ */ jsx12("summary", { children: "Error details (development only)" }),
15001
- /* @__PURE__ */ jsx12("pre", { style: { textAlign: "left", overflow: "auto" }, children: error46.toString() })
15002
- ] })
15003
- ] });
15004
- }
15005
- return children;
15006
- }
15007
- };
15008
-
15009
- // src/providers/YVPProvider.tsx
15010
- import { jsx as jsx13 } from "react/jsx-runtime";
15011
- var YVPContext = createContext4(null);
15012
- function YVPProvider({
15013
- config: config2,
15014
- children,
15015
- errorFallback,
15016
- onError,
15017
- theme = "light"
15018
- }) {
15019
- const [authState, setAuthState] = useState4({
15020
- isAuthenticated: false,
15021
- isLoading: false,
15022
- accessToken: null,
15023
- result: null,
15024
- error: null
15025
- });
15026
- useEffect3(() => {
15027
- const initializeAuth = () => {
15028
- YouVersionPlatformConfiguration.appKey = config2.appKey;
15029
- YouVersionPlatformConfiguration.installationId = config2.installationId ?? null;
15030
- const strategy = new WebAuthenticationStrategy({
15031
- redirectUri: config2.redirectUri || ""
15032
- });
15033
- AuthenticationStrategyRegistry.register(strategy);
15034
- const existingToken = YouVersionPlatformConfiguration.accessToken;
15035
- if (existingToken) {
15036
- setAuthState({
15037
- isAuthenticated: true,
15038
- isLoading: false,
15039
- accessToken: existingToken,
15040
- result: null,
15041
- error: null
15042
- });
15043
- return;
15044
- }
15045
- WebAuthenticationStrategy.handleCallback();
15046
- const storedCallback = WebAuthenticationStrategy.getStoredCallback();
15047
- if (storedCallback) {
15048
- try {
15049
- const result = new SignInWithYouVersionResult(storedCallback);
15050
- const { accessToken, errorMsg } = result;
15051
- if (accessToken) {
15052
- YouVersionPlatformConfiguration.setAccessToken(accessToken);
15053
- }
15054
- setAuthState({
15055
- isAuthenticated: !!accessToken,
15056
- isLoading: false,
15057
- accessToken: accessToken ?? null,
15058
- result,
15059
- error: errorMsg ? new Error(errorMsg) : null
15060
- });
15061
- } catch (error46) {
15062
- setAuthState({
15063
- isAuthenticated: false,
15064
- isLoading: false,
15065
- accessToken: null,
15066
- result: null,
15067
- error: error46
15068
- });
15069
- }
15070
- } else {
15071
- setAuthState({
15072
- isAuthenticated: false,
15073
- isLoading: false,
15074
- accessToken: null,
15075
- result: null,
15076
- error: null
15077
- });
15078
- }
15079
- };
15080
- initializeAuth();
15081
- }, [config2.appKey, config2.installationId, config2.redirectUri]);
15082
- const signOut = useCallback(() => {
15083
- YouVersionPlatformConfiguration.setAccessToken(null);
15084
- setAuthState({
15085
- isAuthenticated: false,
15086
- isLoading: false,
15087
- accessToken: null,
15088
- result: null,
15089
- error: null
15090
- });
15091
- }, []);
15092
- const fetchUserInfo = useCallback(async () => {
15093
- if (!authState.isAuthenticated || !authState.accessToken) {
15094
- throw new Error("User is not authenticated");
15095
- }
15096
- return YouVersionAPIUsers.userInfo(authState.accessToken);
15097
- }, [authState.isAuthenticated, authState.accessToken]);
15098
- const value = {
15099
- config: config2,
15100
- client: ApiClient,
15101
- auth: authState,
15102
- signOut,
15103
- fetchUserInfo
15104
- };
15105
- return /* @__PURE__ */ jsx13(YVPErrorBoundary, { fallback: errorFallback, onError, children: /* @__PURE__ */ jsx13(YVPContext.Provider, { value, children: /* @__PURE__ */ jsx13("div", { className: "yv:contents", "data-yv-sdk": true, "data-yv-theme": theme, children }) }) });
15106
- }
15107
- function useYVP() {
15108
- const context = useContext4(YVPContext);
15109
- if (!context) {
15110
- throw new Error("useYVP must be used within a YVPProvider");
15111
- }
15112
- return context;
15113
- }
15114
-
15115
- // src/hooks/useAuthentication.ts
15116
- import { useCallback as useCallback2 } from "react";
15117
- function useAuthentication() {
15118
- const { auth, signOut, fetchUserInfo, client: _client } = useYVP();
15119
- const signIn = useCallback2(
15120
- async (requiredPermissions = [], optionalPermissions = []) => {
15121
- return await YouVersionAPIUsers.signIn(
15122
- new Set(requiredPermissions),
15123
- new Set(optionalPermissions)
15124
- );
15125
- },
15126
- []
15127
- );
15128
- return {
15129
- auth,
15130
- signIn,
15131
- signOut,
15132
- fetchUserInfo
15133
- };
15134
- }
15109
+ import { useYVAuth } from "@youversion/platform-react-hooks";
15135
15110
 
15136
15111
  // src/components/youversion-logo.tsx
15137
15112
  import "react";
15138
- import { jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
15113
+ import { jsx as jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
15139
15114
  function YouVersionLogo(props) {
15140
- return /* @__PURE__ */ jsxs7(
15115
+ return /* @__PURE__ */ jsxs6(
15141
15116
  "svg",
15142
15117
  {
15143
15118
  xmlns: "http://www.w3.org/2000/svg",
@@ -15147,7 +15122,7 @@ function YouVersionLogo(props) {
15147
15122
  "aria-label": "YouVersion",
15148
15123
  ...props,
15149
15124
  children: [
15150
- /* @__PURE__ */ jsx14(
15125
+ /* @__PURE__ */ jsx12(
15151
15126
  "mask",
15152
15127
  {
15153
15128
  id: "youversion-logo-mask",
@@ -15159,7 +15134,7 @@ function YouVersionLogo(props) {
15159
15134
  style: {
15160
15135
  maskType: "alpha"
15161
15136
  },
15162
- children: /* @__PURE__ */ jsx14(
15137
+ children: /* @__PURE__ */ jsx12(
15163
15138
  "path",
15164
15139
  {
15165
15140
  fill: "url(#youversion-logo-gradient-a)",
@@ -15170,9 +15145,9 @@ function YouVersionLogo(props) {
15170
15145
  )
15171
15146
  }
15172
15147
  ),
15173
- /* @__PURE__ */ jsxs7("g", { mask: "url(#youversion-logo-mask)", children: [
15174
- /* @__PURE__ */ jsx14("path", { fill: "url(#youversion-logo-gradient-c)", d: "M0 0h26v26H0z" }),
15175
- /* @__PURE__ */ jsx14(
15148
+ /* @__PURE__ */ jsxs6("g", { mask: "url(#youversion-logo-mask)", children: [
15149
+ /* @__PURE__ */ jsx12("path", { fill: "url(#youversion-logo-gradient-c)", d: "M0 0h26v26H0z" }),
15150
+ /* @__PURE__ */ jsx12(
15176
15151
  "path",
15177
15152
  {
15178
15153
  fill: "#FEF5EB",
@@ -15181,8 +15156,8 @@ function YouVersionLogo(props) {
15181
15156
  clipRule: "evenodd"
15182
15157
  }
15183
15158
  ),
15184
- /* @__PURE__ */ jsx14("path", { fill: "#FF3D4D", d: "M4.774 20.468h4.073v3.055l-2.036-1.019-2.037 1.019v-3.055Z" }),
15185
- /* @__PURE__ */ jsx14(
15159
+ /* @__PURE__ */ jsx12("path", { fill: "#FF3D4D", d: "M4.774 20.468h4.073v3.055l-2.036-1.019-2.037 1.019v-3.055Z" }),
15160
+ /* @__PURE__ */ jsx12(
15186
15161
  "path",
15187
15162
  {
15188
15163
  fill: "#FEF5EB",
@@ -15190,8 +15165,8 @@ function YouVersionLogo(props) {
15190
15165
  }
15191
15166
  )
15192
15167
  ] }),
15193
- /* @__PURE__ */ jsxs7("defs", { children: [
15194
- /* @__PURE__ */ jsxs7(
15168
+ /* @__PURE__ */ jsxs6("defs", { children: [
15169
+ /* @__PURE__ */ jsxs6(
15195
15170
  "linearGradient",
15196
15171
  {
15197
15172
  id: "youversion-logo-gradient-a",
@@ -15201,12 +15176,12 @@ function YouVersionLogo(props) {
15201
15176
  y2: 26,
15202
15177
  gradientUnits: "userSpaceOnUse",
15203
15178
  children: [
15204
- /* @__PURE__ */ jsx14("stop", { stopColor: "#C93D34" }),
15205
- /* @__PURE__ */ jsx14("stop", { offset: 1, stopColor: "#7A2629" })
15179
+ /* @__PURE__ */ jsx12("stop", { stopColor: "#C93D34" }),
15180
+ /* @__PURE__ */ jsx12("stop", { offset: 1, stopColor: "#7A2629" })
15206
15181
  ]
15207
15182
  }
15208
15183
  ),
15209
- /* @__PURE__ */ jsxs7(
15184
+ /* @__PURE__ */ jsxs6(
15210
15185
  "linearGradient",
15211
15186
  {
15212
15187
  id: "youversion-logo-gradient-c",
@@ -15216,8 +15191,8 @@ function YouVersionLogo(props) {
15216
15191
  y2: 26,
15217
15192
  gradientUnits: "userSpaceOnUse",
15218
15193
  children: [
15219
- /* @__PURE__ */ jsx14("stop", { stopColor: "#C93D34" }),
15220
- /* @__PURE__ */ jsx14("stop", { offset: 1, stopColor: "#7A2629" })
15194
+ /* @__PURE__ */ jsx12("stop", { stopColor: "#C93D34" }),
15195
+ /* @__PURE__ */ jsx12("stop", { offset: 1, stopColor: "#7A2629" })
15221
15196
  ]
15222
15197
  }
15223
15198
  )
@@ -15228,51 +15203,46 @@ function YouVersionLogo(props) {
15228
15203
  }
15229
15204
 
15230
15205
  // src/components/SignInButton.tsx
15231
- import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
15232
- var SignInButton = React11.forwardRef(
15206
+ import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
15207
+ var SignInButton = React9.forwardRef(
15233
15208
  ({
15234
15209
  background = "light",
15235
15210
  className,
15236
15211
  disabled,
15237
15212
  onAuthError,
15238
15213
  onClick,
15239
- onSuccess,
15240
- optionalPermissions = [],
15214
+ permissions = [],
15241
15215
  radius = "rounded",
15242
- requiredPermissions = [],
15216
+ redirectUrl,
15243
15217
  size = "default",
15244
15218
  variant = "default",
15245
15219
  ...props
15246
15220
  }, ref) => {
15247
- const { signIn, auth } = useAuthentication();
15248
- const [localLoading, setLocalLoading] = React11.useState(false);
15221
+ const { signIn, auth } = useYVAuth();
15249
15222
  const handleClick = async (e) => {
15250
15223
  e.preventDefault();
15251
15224
  if (onClick) {
15252
15225
  onClick(e);
15253
15226
  }
15254
- setLocalLoading(true);
15255
15227
  try {
15256
- const result = await signIn(requiredPermissions, optionalPermissions);
15257
- if (onSuccess) {
15258
- onSuccess(result);
15259
- }
15228
+ await signIn({
15229
+ redirectUrl,
15230
+ permissions
15231
+ });
15260
15232
  } catch (error46) {
15261
15233
  if (onAuthError) {
15262
15234
  onAuthError(error46);
15263
15235
  }
15264
- } finally {
15265
- setLocalLoading(false);
15266
15236
  }
15267
15237
  };
15268
- const buttonLoading = Boolean(auth.isLoading || localLoading);
15238
+ const buttonLoading = auth.isLoading;
15269
15239
  let buttonCopy = "Sign in with YouVersion";
15270
15240
  if (size === "short") {
15271
15241
  buttonCopy = "Sign in";
15272
15242
  }
15273
- const loadingSpinner = /* @__PURE__ */ jsx15(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" });
15243
+ const loadingSpinner = /* @__PURE__ */ jsx13(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" });
15274
15244
  if (size === "icon") {
15275
- return /* @__PURE__ */ jsxs8(
15245
+ return /* @__PURE__ */ jsxs7(
15276
15246
  Button,
15277
15247
  {
15278
15248
  ...props,
@@ -15281,6 +15251,7 @@ var SignInButton = React11.forwardRef(
15281
15251
  variant === "outline" ? "yv:border" : "yv:border-none",
15282
15252
  className
15283
15253
  ),
15254
+ "data-yv-sdk": true,
15284
15255
  disabled: buttonLoading ? true : disabled ?? false,
15285
15256
  ref,
15286
15257
  onClick: (e) => void handleClick(e),
@@ -15295,13 +15266,13 @@ var SignInButton = React11.forwardRef(
15295
15266
  variant: background === "light" ? "outline" : "default",
15296
15267
  children: [
15297
15268
  buttonLoading ? loadingSpinner : null,
15298
- /* @__PURE__ */ jsx15(YouVersionLogo, {}),
15299
- /* @__PURE__ */ jsx15("span", { className: "yv:sr-only", children: buttonCopy })
15269
+ /* @__PURE__ */ jsx13(YouVersionLogo, {}),
15270
+ /* @__PURE__ */ jsx13("span", { className: "yv:sr-only", children: buttonCopy })
15300
15271
  ]
15301
15272
  }
15302
15273
  );
15303
15274
  }
15304
- return /* @__PURE__ */ jsxs8(
15275
+ return /* @__PURE__ */ jsxs7(
15305
15276
  Button,
15306
15277
  {
15307
15278
  ...props,
@@ -15310,6 +15281,7 @@ var SignInButton = React11.forwardRef(
15310
15281
  variant === "outline" ? "yv:border" : "yv:border-none",
15311
15282
  className
15312
15283
  ),
15284
+ "data-yv-sdk": true,
15313
15285
  disabled: buttonLoading ? true : disabled ?? false,
15314
15286
  ref,
15315
15287
  onClick: (e) => void handleClick(e),
@@ -15324,7 +15296,7 @@ var SignInButton = React11.forwardRef(
15324
15296
  variant: background === "light" ? "outline" : "default",
15325
15297
  children: [
15326
15298
  buttonLoading ? loadingSpinner : null,
15327
- /* @__PURE__ */ jsx15(YouVersionLogo, {}),
15299
+ /* @__PURE__ */ jsx13(YouVersionLogo, {}),
15328
15300
  buttonCopy
15329
15301
  ]
15330
15302
  }
@@ -15334,12 +15306,12 @@ var SignInButton = React11.forwardRef(
15334
15306
  SignInButton.displayName = "SignInButton";
15335
15307
 
15336
15308
  // src/components/verse-of-the-day.tsx
15337
- import React12 from "react";
15309
+ import React10 from "react";
15338
15310
 
15339
15311
  // src/components/icons/votd.tsx
15340
15312
  import "react";
15341
- import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
15342
- var SvgComponent = (props) => /* @__PURE__ */ jsxs9(
15313
+ import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
15314
+ var SvgComponent = (props) => /* @__PURE__ */ jsxs8(
15343
15315
  "svg",
15344
15316
  {
15345
15317
  width: "44",
@@ -15349,8 +15321,8 @@ var SvgComponent = (props) => /* @__PURE__ */ jsxs9(
15349
15321
  fill: "none",
15350
15322
  xmlns: "http://www.w3.org/2000/svg",
15351
15323
  children: [
15352
- /* @__PURE__ */ jsx16("title", { children: "Sun" }),
15353
- /* @__PURE__ */ jsx16(
15324
+ /* @__PURE__ */ jsx14("title", { children: "Sun" }),
15325
+ /* @__PURE__ */ jsx14(
15354
15326
  "path",
15355
15327
  {
15356
15328
  fillRule: "evenodd",
@@ -15364,8 +15336,8 @@ var SvgComponent = (props) => /* @__PURE__ */ jsxs9(
15364
15336
  );
15365
15337
 
15366
15338
  // src/components/icons/share.tsx
15367
- import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
15368
- var SvgComponent2 = (props) => /* @__PURE__ */ jsxs10(
15339
+ import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
15340
+ var SvgComponent2 = (props) => /* @__PURE__ */ jsxs9(
15369
15341
  "svg",
15370
15342
  {
15371
15343
  xmlns: "http://www.w3.org/2000/svg",
@@ -15375,14 +15347,14 @@ var SvgComponent2 = (props) => /* @__PURE__ */ jsxs10(
15375
15347
  fill: "none",
15376
15348
  ...props,
15377
15349
  children: [
15378
- /* @__PURE__ */ jsx17(
15350
+ /* @__PURE__ */ jsx15(
15379
15351
  "path",
15380
15352
  {
15381
15353
  fill: "currentColor",
15382
15354
  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"
15383
15355
  }
15384
15356
  ),
15385
- /* @__PURE__ */ jsx17(
15357
+ /* @__PURE__ */ jsx15(
15386
15358
  "path",
15387
15359
  {
15388
15360
  fill: "currentColor",
@@ -15394,8 +15366,8 @@ var SvgComponent2 = (props) => /* @__PURE__ */ jsxs10(
15394
15366
  );
15395
15367
 
15396
15368
  // src/components/bible-app-logo-lockup.tsx
15397
- import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
15398
- var SvgComponent3 = (props) => /* @__PURE__ */ jsxs11(
15369
+ import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
15370
+ var SvgComponent3 = (props) => /* @__PURE__ */ jsxs10(
15399
15371
  "svg",
15400
15372
  {
15401
15373
  xmlns: "http://www.w3.org/2000/svg",
@@ -15405,8 +15377,8 @@ var SvgComponent3 = (props) => /* @__PURE__ */ jsxs11(
15405
15377
  fill: "none",
15406
15378
  ...props,
15407
15379
  children: [
15408
- /* @__PURE__ */ jsx18("title", { children: "Bible App" }),
15409
- /* @__PURE__ */ jsx18(
15380
+ /* @__PURE__ */ jsx16("title", { children: "Bible App" }),
15381
+ /* @__PURE__ */ jsx16(
15410
15382
  "mask",
15411
15383
  {
15412
15384
  id: "bible-app-logo-lockup-mask",
@@ -15418,7 +15390,7 @@ var SvgComponent3 = (props) => /* @__PURE__ */ jsxs11(
15418
15390
  style: {
15419
15391
  maskType: "alpha"
15420
15392
  },
15421
- children: /* @__PURE__ */ jsx18(
15393
+ children: /* @__PURE__ */ jsx16(
15422
15394
  "path",
15423
15395
  {
15424
15396
  fill: "url(#bible-app-logo-lockup-gradient-a)",
@@ -15429,9 +15401,9 @@ var SvgComponent3 = (props) => /* @__PURE__ */ jsxs11(
15429
15401
  )
15430
15402
  }
15431
15403
  ),
15432
- /* @__PURE__ */ jsxs11("g", { mask: "url(#bible-app-logo-lockup-mask)", children: [
15433
- /* @__PURE__ */ jsx18("path", { fill: "url(#bible-app-logo-lockup-gradient-c)", d: "M63.562 0H80v16.438H63.562z" }),
15434
- /* @__PURE__ */ jsx18(
15404
+ /* @__PURE__ */ jsxs10("g", { mask: "url(#bible-app-logo-lockup-mask)", children: [
15405
+ /* @__PURE__ */ jsx16("path", { fill: "url(#bible-app-logo-lockup-gradient-c)", d: "M63.562 0H80v16.438H63.562z" }),
15406
+ /* @__PURE__ */ jsx16(
15435
15407
  "path",
15436
15408
  {
15437
15409
  fill: "#FEF5EB",
@@ -15440,18 +15412,18 @@ var SvgComponent3 = (props) => /* @__PURE__ */ jsxs11(
15440
15412
  clipRule: "evenodd"
15441
15413
  }
15442
15414
  ),
15443
- /* @__PURE__ */ jsx18("path", { fill: "#FF3D4D", d: "M66.58 12.94h2.575v1.932l-1.287-.644-1.288.644v-1.931Z" }),
15444
- /* @__PURE__ */ jsx18("g", { fill: "#FEF5EB", clipPath: "url(#bible-app-logo-lockup-clip)", children: /* @__PURE__ */ jsx18("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" }) })
15415
+ /* @__PURE__ */ jsx16("path", { fill: "#FF3D4D", d: "M66.58 12.94h2.575v1.932l-1.287-.644-1.288.644v-1.931Z" }),
15416
+ /* @__PURE__ */ jsx16("g", { fill: "#FEF5EB", clipPath: "url(#bible-app-logo-lockup-clip)", children: /* @__PURE__ */ jsx16("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" }) })
15445
15417
  ] }),
15446
- /* @__PURE__ */ jsx18(
15418
+ /* @__PURE__ */ jsx16(
15447
15419
  "path",
15448
15420
  {
15449
15421
  fill: "currentColor",
15450
15422
  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"
15451
15423
  }
15452
15424
  ),
15453
- /* @__PURE__ */ jsxs11("defs", { children: [
15454
- /* @__PURE__ */ jsxs11(
15425
+ /* @__PURE__ */ jsxs10("defs", { children: [
15426
+ /* @__PURE__ */ jsxs10(
15455
15427
  "linearGradient",
15456
15428
  {
15457
15429
  id: "bible-app-logo-lockup-gradient-a",
@@ -15461,12 +15433,12 @@ var SvgComponent3 = (props) => /* @__PURE__ */ jsxs11(
15461
15433
  y2: 16.438,
15462
15434
  gradientUnits: "userSpaceOnUse",
15463
15435
  children: [
15464
- /* @__PURE__ */ jsx18("stop", { stopColor: "#C93D34" }),
15465
- /* @__PURE__ */ jsx18("stop", { offset: 1, stopColor: "#7A2629" })
15436
+ /* @__PURE__ */ jsx16("stop", { stopColor: "#C93D34" }),
15437
+ /* @__PURE__ */ jsx16("stop", { offset: 1, stopColor: "#7A2629" })
15466
15438
  ]
15467
15439
  }
15468
15440
  ),
15469
- /* @__PURE__ */ jsxs11(
15441
+ /* @__PURE__ */ jsxs10(
15470
15442
  "linearGradient",
15471
15443
  {
15472
15444
  id: "bible-app-logo-lockup-gradient-c",
@@ -15476,12 +15448,12 @@ var SvgComponent3 = (props) => /* @__PURE__ */ jsxs11(
15476
15448
  y2: 16.438,
15477
15449
  gradientUnits: "userSpaceOnUse",
15478
15450
  children: [
15479
- /* @__PURE__ */ jsx18("stop", { stopColor: "#C93D34" }),
15480
- /* @__PURE__ */ jsx18("stop", { offset: 1, stopColor: "#7A2629" })
15451
+ /* @__PURE__ */ jsx16("stop", { stopColor: "#C93D34" }),
15452
+ /* @__PURE__ */ jsx16("stop", { offset: 1, stopColor: "#7A2629" })
15481
15453
  ]
15482
15454
  }
15483
15455
  ),
15484
- /* @__PURE__ */ jsx18("clipPath", { id: "bible-app-logo-lockup-clip", children: /* @__PURE__ */ jsx18("path", { fill: "#fff", d: "M65.52 2.472h12.521V9.68h-12.52z" }) })
15456
+ /* @__PURE__ */ jsx16("clipPath", { id: "bible-app-logo-lockup-clip", children: /* @__PURE__ */ jsx16("path", { fill: "#fff", d: "M65.52 2.472h12.521V9.68h-12.52z" }) })
15485
15457
  ] })
15486
15458
  ]
15487
15459
  }
@@ -15494,7 +15466,7 @@ import {
15494
15466
  getDayOfYear,
15495
15467
  useVersion as useVersion3
15496
15468
  } from "@youversion/platform-react-hooks";
15497
- import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
15469
+ import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
15498
15470
  async function share({ title, text, url: url2 }) {
15499
15471
  if (navigator.share) {
15500
15472
  try {
@@ -15520,8 +15492,8 @@ function VerseOfTheDay({
15520
15492
  showBibleAppAttribution = true,
15521
15493
  size = "default"
15522
15494
  }) {
15523
- const day = React12.useMemo(() => dayOfYear || getDayOfYear(/* @__PURE__ */ new Date()), [dayOfYear]);
15524
- const verseRef = React12.useRef(null);
15495
+ const day = React10.useMemo(() => dayOfYear || getDayOfYear(/* @__PURE__ */ new Date()), [dayOfYear]);
15496
+ const verseRef = React10.useRef(null);
15525
15497
  const { data, loading: loadingVerseOfTheDay, error: errorVerseOfTheDay } = useVerseOfTheDay(day);
15526
15498
  const {
15527
15499
  passage,
@@ -15553,34 +15525,34 @@ function VerseOfTheDay({
15553
15525
  await share({ text });
15554
15526
  }
15555
15527
  };
15556
- return /* @__PURE__ */ jsxs12(
15528
+ return /* @__PURE__ */ jsxs11(
15557
15529
  "section",
15558
15530
  {
15559
15531
  "data-size": size,
15560
15532
  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",
15561
15533
  children: [
15562
- /* @__PURE__ */ jsxs12("div", { className: "yv:flex yv:items-center yv:gap-2", children: [
15563
- showSunIcon ? /* @__PURE__ */ jsx19(
15534
+ /* @__PURE__ */ jsxs11("div", { className: "yv:flex yv:items-center yv:gap-2", children: [
15535
+ showSunIcon ? /* @__PURE__ */ jsx17(
15564
15536
  "div",
15565
15537
  {
15566
15538
  "data-slot": "card-icon",
15567
15539
  className: "yv:col-start-1 yv:row-start-1 yv:self-start yv:justify-self-start",
15568
- children: /* @__PURE__ */ jsx19(SvgComponent, { className: "yv:shrink-0 yv:h-10 yv:w-10" })
15540
+ children: /* @__PURE__ */ jsx17(SvgComponent, { className: "yv:shrink-0 yv:h-10 yv:w-10" })
15569
15541
  }
15570
15542
  ) : null,
15571
- /* @__PURE__ */ jsx19("div", { className: "yv:grow yv:grid", children: /* @__PURE__ */ jsx19(
15543
+ /* @__PURE__ */ jsx17("div", { className: "yv:grow yv:grid", children: /* @__PURE__ */ jsx17(
15572
15544
  "p",
15573
15545
  {
15574
15546
  className: "trim-both yv:line-clamp-1 yv:text-muted-foreground yv:uppercase yv:text-xs yv:font-medium yv:select-none",
15575
15547
  children: "Verse of The Day"
15576
15548
  }
15577
15549
  ) }),
15578
- showShareButton ? /* @__PURE__ */ jsx19(
15550
+ showShareButton ? /* @__PURE__ */ jsx17(
15579
15551
  "div",
15580
15552
  {
15581
15553
  "data-slot": "card-action",
15582
15554
  className: "yv:col-start-2 yv:row-span-2 yv:row-start-1 yv:self-start yv:justify-self-end",
15583
- children: /* @__PURE__ */ jsx19(
15555
+ children: /* @__PURE__ */ jsx17(
15584
15556
  Button,
15585
15557
  {
15586
15558
  "aria-label": "Share",
@@ -15588,13 +15560,13 @@ function VerseOfTheDay({
15588
15560
  onClick: () => void handleShareVerse(),
15589
15561
  size: "icon",
15590
15562
  variant: "ghost",
15591
- children: /* @__PURE__ */ jsx19(SvgComponent2, { className: "yv:h-6! yv:w-6!" })
15563
+ children: /* @__PURE__ */ jsx17(SvgComponent2, { className: "yv:h-6! yv:w-6!" })
15592
15564
  }
15593
15565
  )
15594
15566
  }
15595
15567
  ) : null
15596
15568
  ] }),
15597
- /* @__PURE__ */ jsx19("div", { children: passage ? /* @__PURE__ */ jsx19(
15569
+ /* @__PURE__ */ jsx17("div", { children: passage ? /* @__PURE__ */ jsx17(
15598
15570
  Verse.Html,
15599
15571
  {
15600
15572
  ref: verseRef,
@@ -15603,12 +15575,12 @@ function VerseOfTheDay({
15603
15575
  html: passage?.content || ""
15604
15576
  }
15605
15577
  ) : null }),
15606
- /* @__PURE__ */ jsx19("p", { className: "yv:text-(--yv-gray-30) yv:font-medium yv:text-sm", children: referenceText }),
15607
- showBibleAppAttribution ? /* @__PURE__ */ jsx19(
15578
+ /* @__PURE__ */ jsx17("p", { className: "yv:text-(--yv-gray-30) yv:font-medium yv:text-sm", children: referenceText }),
15579
+ showBibleAppAttribution ? /* @__PURE__ */ jsx17(
15608
15580
  "div",
15609
15581
  {
15610
15582
  className: "yv:grid yv:grid-cols-1 yv:mt-4 yv:justify-between yv:items-center yv:gap-2 yv:w-full",
15611
- children: /* @__PURE__ */ jsx19(SvgComponent3, { "data-slot": "attribution", className: "yv:justify-self-end" })
15583
+ children: /* @__PURE__ */ jsx17(SvgComponent3, { "data-slot": "attribution", className: "yv:justify-self-end" })
15612
15584
  }
15613
15585
  ) : null
15614
15586
  ]
@@ -15618,7 +15590,7 @@ function VerseOfTheDay({
15618
15590
 
15619
15591
  // src/components/bible-widget-view.tsx
15620
15592
  import { usePassage as usePassage3, useVersion as useVersion4 } from "@youversion/platform-react-hooks";
15621
- import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
15593
+ import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
15622
15594
  function BibleWidgetView({
15623
15595
  reference,
15624
15596
  versionId,
@@ -15631,19 +15603,19 @@ function BibleWidgetView({
15631
15603
  include_headings: true,
15632
15604
  include_notes: true
15633
15605
  });
15634
- return /* @__PURE__ */ jsxs13(
15606
+ return /* @__PURE__ */ jsxs12(
15635
15607
  "section",
15636
15608
  {
15637
15609
  "data-yv-sdk": true,
15638
15610
  "data-yv-theme": background === "dark" ? "dark" : "light",
15639
15611
  className: "yv:flex yv:flex-col yv:bg-card yv:p-6 yv:max-w-md yv:rounded-2xl",
15640
15612
  children: [
15641
- passage?.human_reference ? /* @__PURE__ */ jsxs13("h2", { className: "yv:font-bold yv:tracking-widest yv:text-xs yv:uppercase", children: [
15613
+ passage?.human_reference ? /* @__PURE__ */ jsxs12("h2", { className: "yv:font-bold yv:tracking-widest yv:text-xs yv:uppercase", children: [
15642
15614
  passage.human_reference,
15643
15615
  " ",
15644
15616
  version2?.local_abbreviation
15645
15617
  ] }) : null,
15646
- /* @__PURE__ */ jsx20(
15618
+ /* @__PURE__ */ jsx18(
15647
15619
  BibleTextView,
15648
15620
  {
15649
15621
  fontSize: 16,
@@ -15652,9 +15624,9 @@ function BibleWidgetView({
15652
15624
  versionId
15653
15625
  }
15654
15626
  ),
15655
- /* @__PURE__ */ jsxs13("div", { className: "yv:grid yv:grid-cols-[1fr_auto] yv:gap-4 yv:items-center yv:mt-4", children: [
15656
- /* @__PURE__ */ jsx20("div", { className: "yv:text-balance yv:text-muted-foreground yv:justify-self-start yv:font-bold yv:text-[0.5rem]", children: version2?.copyright_short }),
15657
- /* @__PURE__ */ jsx20("div", { className: "yv:justify-self-end", children: /* @__PURE__ */ jsx20(SvgComponent3, { fontSize: 12 }) })
15627
+ /* @__PURE__ */ jsxs12("div", { className: "yv:grid yv:grid-cols-[1fr_auto] yv:gap-4 yv:items-center yv:mt-4", children: [
15628
+ /* @__PURE__ */ jsx18("div", { className: "yv:text-balance yv:text-muted-foreground yv:justify-self-start yv:font-bold yv:text-[0.5rem]", children: version2?.copyright_short }),
15629
+ /* @__PURE__ */ jsx18("div", { className: "yv:justify-self-end", children: /* @__PURE__ */ jsx18(SvgComponent3, { fontSize: 12 }) })
15658
15630
  ] })
15659
15631
  ]
15660
15632
  }
@@ -15662,17 +15634,18 @@ function BibleWidgetView({
15662
15634
  }
15663
15635
 
15664
15636
  // src/index.ts
15665
- import { BibleSDKProvider } from "@youversion/platform-react-hooks";
15637
+ import {
15638
+ YouVersionProvider,
15639
+ useYVAuth as useYVAuth2
15640
+ } from "@youversion/platform-react-hooks";
15641
+ injectStyles();
15666
15642
  export {
15667
15643
  ApiClient,
15668
- AuthClient,
15669
- AuthenticationStrategyRegistry,
15670
15644
  BOOK_CANON,
15671
15645
  BOOK_IDS,
15672
15646
  BibleChapterPicker,
15673
15647
  BibleClient,
15674
15648
  BibleReader,
15675
- BibleSDKProvider,
15676
15649
  BibleTextView,
15677
15650
  BibleVersionPicker,
15678
15651
  BibleWidgetView,
@@ -15685,13 +15658,10 @@ export {
15685
15658
  SignInWithYouVersionResult,
15686
15659
  URLBuilder,
15687
15660
  VerseOfTheDay,
15688
- WebAuthenticationStrategy,
15689
- YVPErrorBoundary,
15690
- YVPProvider,
15691
15661
  YouVersionAPI,
15692
15662
  YouVersionAPIUsers,
15693
15663
  YouVersionPlatformConfiguration,
15664
+ YouVersionProvider,
15694
15665
  YouVersionUserInfo,
15695
- useAuthentication,
15696
- useYVP
15666
+ useYVAuth2 as useYVAuth
15697
15667
  };