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