@insforge/nextjs 0.7.5 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ if (typeof document !== 'undefined' && typeof window !== 'undefined') {
6
6
  if (!document.getElementById(styleId)) {
7
7
  const style = document.createElement('style');
8
8
  style.id = styleId;
9
- style.textContent = "/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n@import \"https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&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-border-style:solid;--tw-leading:initial;--tw-font-weight: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-duration:initial;--tw-content:\"\"}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-green-500:oklch(72.3% .219 149.579);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-neutral-400:oklch(70.8% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-manrope:\"Manrope\",sans-serif}}@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(--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(--default-font-feature-settings,normal);font-variation-settings:var(--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(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--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}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.top-1\\/2{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-\\[18px\\]{height:18px}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-\\[18px\\]{width:18px}.w-full{width:100%}.max-w-\\[400px\\]{max-width:400px}.min-w-40{min-width:calc(var(--spacing)*40)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-6{gap:calc(var(--spacing)*6)}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-none{--tw-border-style:none;border-style:none}.border-\\[\\#D4D4D4\\]{border-color:#d4d4d4}.border-\\[\\#E0E0E0\\]{border-color:#e0e0e0}.border-\\[\\#E4E4E7\\]{border-color:#e4e4e7}.border-blue-600{border-color:var(--color-blue-600)}.border-gray-200{border-color:var(--color-gray-200)}.border-neutral-400{border-color:var(--color-neutral-400)}.border-red-600{border-color:var(--color-red-600)}.border-transparent{border-color:#0000}.bg-\\[\\#FAFAFA\\]{background-color:#fafafa}.bg-black{background-color:var(--color-black)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.stroke-\\[3\\]{stroke-width:3px}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-8{padding-right:calc(var(--spacing)*8)}.pl-3{padding-left:calc(var(--spacing)*3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-manrope{font-family:var(--font-manrope)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-8{--tw-leading:calc(var(--spacing)*8);line-height:calc(var(--spacing)*8)}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\\[\\#09090B\\]{color:#09090b}.text-\\[\\#525252\\]{color:#525252}.text-\\[\\#737373\\]{color:#737373}.text-\\[\\#828282\\]{color:#828282}.text-\\[\\#A3A3A3\\]{color:#a3a3a3}.text-\\[\\#A6A6A6\\]{color:#a6a6a6}.text-black{color:var(--color-black)}.text-gray-500{color:var(--color-gray-500)}.text-gray-900{color:var(--color-gray-900)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.shadow-\\[0_1px_2px_0_rgba\\(0\\,0\\,0\\,0\\.10\\)\\]{--tw-shadow:0 1px 2px 0 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)}.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)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.placeholder\\:font-normal::placeholder{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.placeholder\\:text-\\[\\#A3A3A3\\]::placeholder{color:#a3a3a3}.before\\:h-px:before{content:var(--tw-content);height:1px}.before\\:flex-1:before{content:var(--tw-content);flex:1}.before\\:bg-\\[\\#E5E5E5\\]:before{content:var(--tw-content);background-color:#e5e5e5}.before\\:content-\\[\\'\\'\\]:before{--tw-content:\"\";content:var(--tw-content)}.after\\:h-px:after{content:var(--tw-content);height:1px}.after\\:flex-1:after{content:var(--tw-content);flex:1}.after\\:bg-\\[\\#E5E5E5\\]:after{content:var(--tw-content);background-color:#e5e5e5}.after\\:content-\\[\\'\\'\\]:after{--tw-content:\"\";content:var(--tw-content)}@media (hover:hover){.hover\\:border-\\[\\#9ca3af\\]:hover{border-color:#9ca3af}.hover\\:bg-\\[\\#f9fafb\\]:hover{background-color:#f9fafb}.hover\\:bg-black\\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-black\\/5:hover{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.hover\\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\\:text-gray-600:hover{color:var(--color-gray-600)}}.focus\\:border-black:focus{border-color:var(--color-black)}.focus\\:shadow-\\[0_0_0_2px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]:focus{--tw-shadow:0 0 0 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)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-\\[\\#F5F5F5\\]:disabled{background-color:#f5f5f5}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:opacity-60:disabled{opacity:.6}}@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-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{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-duration{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}@keyframes spin{to{transform:rotate(360deg)}}";
9
+ style.textContent = "/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n@import \"https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&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-border-style:solid;--tw-leading:initial;--tw-font-weight: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-duration:initial;--tw-content:\"\"}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-blue-50:oklch(97% .014 254.604);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-neutral-400:oklch(70.8% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-manrope:\"Manrope\",sans-serif}}@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(--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(--default-font-feature-settings,normal);font-variation-settings:var(--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(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--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}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.top-1\\/2{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-block{display:inline-block}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-\\[18px\\]{height:18px}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-\\[18px\\]{width:18px}.w-full{width:100%}.max-w-\\[400px\\]{max-width:400px}.max-w-md{max-width:var(--container-md)}.min-w-40{min-width:calc(var(--spacing)*40)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-none{--tw-border-style:none;border-style:none}.border-\\[\\#D4D4D4\\]{border-color:#d4d4d4}.border-\\[\\#E0E0E0\\]{border-color:#e0e0e0}.border-\\[\\#E4E4E7\\]{border-color:#e4e4e7}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-600{border-color:var(--color-blue-600)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-700{border-color:var(--color-gray-700)}.border-neutral-400{border-color:var(--color-neutral-400)}.border-red-600{border-color:var(--color-red-600)}.border-transparent{border-color:#0000}.bg-\\[\\#059669\\]{background-color:#059669}.bg-\\[\\#FAFAFA\\]{background-color:#fafafa}.bg-black{background-color:var(--color-black)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-8{padding-right:calc(var(--spacing)*8)}.pl-3{padding-left:calc(var(--spacing)*3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-manrope{font-family:var(--font-manrope)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-8{--tw-leading:calc(var(--spacing)*8);line-height:calc(var(--spacing)*8)}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\\[\\#09090B\\]{color:#09090b}.text-\\[\\#525252\\]{color:#525252}.text-\\[\\#737373\\]{color:#737373}.text-\\[\\#828282\\]{color:#828282}.text-\\[\\#A3A3A3\\]{color:#a3a3a3}.text-\\[\\#A6A6A6\\]{color:#a6a6a6}.text-black{color:var(--color-black)}.text-blue-500{color:var(--color-blue-500)}.text-blue-900{color:var(--color-blue-900)}.text-gray-300{color:var(--color-gray-300)}.text-gray-500{color:var(--color-gray-500)}.text-gray-900{color:var(--color-gray-900)}.text-purple-700{color:var(--color-purple-700)}.text-purple-900{color:var(--color-purple-900)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_1px_2px_0_rgba\\(0\\,0\\,0\\,0\\.10\\)\\]{--tw-shadow:0 1px 2px 0 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)}.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)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.placeholder\\:font-normal::placeholder{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.placeholder\\:text-\\[\\#A3A3A3\\]::placeholder{color:#a3a3a3}.before\\:h-px:before{content:var(--tw-content);height:1px}.before\\:flex-1:before{content:var(--tw-content);flex:1}.before\\:bg-\\[\\#E5E5E5\\]:before{content:var(--tw-content);background-color:#e5e5e5}.before\\:content-\\[\\'\\'\\]:before{--tw-content:\"\";content:var(--tw-content)}.after\\:h-px:after{content:var(--tw-content);height:1px}.after\\:flex-1:after{content:var(--tw-content);flex:1}.after\\:bg-\\[\\#E5E5E5\\]:after{content:var(--tw-content);background-color:#e5e5e5}.after\\:content-\\[\\'\\'\\]:after{--tw-content:\"\";content:var(--tw-content)}@media (hover:hover){.hover\\:border-\\[\\#9ca3af\\]:hover{border-color:#9ca3af}.hover\\:bg-\\[\\#f9fafb\\]:hover{background-color:#f9fafb}.hover\\:bg-black\\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-black\\/5:hover{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.hover\\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\\:text-gray-600:hover{color:var(--color-gray-600)}}.focus\\:border-black:focus{border-color:var(--color-black)}.focus\\:shadow-\\[0_0_0_2px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]:focus{--tw-shadow:0 0 0 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)}.focus\\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-\\[\\#F5F5F5\\]:disabled{background-color:#f5f5f5}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:opacity-60:disabled{opacity:.6}}@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-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{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-duration{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}@keyframes spin{to{transform:rotate(360deg)}}";
10
10
  if (document.head) {
11
11
  document.head.appendChild(style);
12
12
  }
@@ -59,6 +59,7 @@ __export(src_exports, {
59
59
  AuthPasswordStrengthIndicator: () => AuthPasswordStrengthIndicator,
60
60
  AuthSubmitButton: () => AuthSubmitButton,
61
61
  AuthVerificationCodeInput: () => AuthVerificationCodeInput,
62
+ InsforgeCallback: () => InsforgeCallback,
62
63
  InsforgeProvider: () => InsforgeProvider,
63
64
  OAUTH_PROVIDER_CONFIG: () => OAUTH_PROVIDER_CONFIG,
64
65
  Protect: () => Protect,
@@ -73,7 +74,6 @@ __export(src_exports, {
73
74
  isProviderSupported: () => isProviderSupported,
74
75
  useAuth: () => useAuth,
75
76
  useInsforge: () => useInsforge,
76
- useSession: () => useSession,
77
77
  useUser: () => useUser,
78
78
  validatePasswordStrength: () => validatePasswordStrength
79
79
  });
@@ -107,55 +107,24 @@ async function syncTokenToCookie(token) {
107
107
  function InsforgeProvider({
108
108
  children,
109
109
  baseUrl,
110
- frontendUrl,
111
- onAuthChange,
112
- useBuiltInAuth = true
110
+ onAuthChange
113
111
  }) {
114
112
  const [user, setUser] = (0, import_react.useState)(null);
115
- const [session, setSession] = (0, import_react.useState)(null);
116
113
  const [isLoaded, setIsLoaded] = (0, import_react.useState)(false);
117
114
  const refreshIntervalRef = (0, import_react.useRef)(null);
118
115
  const [insforge] = (0, import_react.useState)(() => (0, import_sdk.createClient)({ baseUrl }));
119
116
  const loadAuthState = (0, import_react.useCallback)(async () => {
120
117
  try {
121
118
  const sessionResult = insforge.auth.getCurrentSession();
122
- const session2 = sessionResult.data?.session;
123
- const token = session2?.accessToken || null;
119
+ const session = sessionResult.data?.session;
120
+ const token = session?.accessToken || null;
124
121
  if (!token) {
125
122
  setUser(null);
126
- setSession(null);
127
123
  if (onAuthChange) {
128
124
  onAuthChange(null);
129
125
  }
130
126
  setIsLoaded(true);
131
- return;
132
- }
133
- const cachedUserStr = localStorage.getItem("insforge-user-profile");
134
- if (cachedUserStr) {
135
- try {
136
- const cachedData = JSON.parse(cachedUserStr);
137
- if (cachedData.user) {
138
- const userData = {
139
- id: cachedData.user.id,
140
- email: cachedData.user.email,
141
- name: cachedData.profile?.nickname || "",
142
- avatarUrl: cachedData.profile?.avatar_url || ""
143
- };
144
- setUser(userData);
145
- setSession({
146
- userId: cachedData.user.id,
147
- token,
148
- expiresAt: "",
149
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
150
- });
151
- if (onAuthChange) {
152
- onAuthChange(userData);
153
- }
154
- setIsLoaded(true);
155
- }
156
- } catch (e) {
157
- console.warn("[InsforgeProvider] Failed to parse cached user data:", e);
158
- }
127
+ return { success: false, error: "no_session" };
159
128
  }
160
129
  try {
161
130
  await syncTokenToCookie(token);
@@ -170,44 +139,40 @@ function InsforgeProvider({
170
139
  avatarUrl: userResult.data.profile?.avatarUrl || ""
171
140
  };
172
141
  setUser(userData);
173
- setSession({
174
- userId: userResult.data.user.id,
175
- token,
176
- expiresAt: "",
177
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
178
- });
179
- localStorage.setItem("insforge-user-profile", JSON.stringify(userResult.data));
180
142
  if (onAuthChange) {
181
143
  onAuthChange(userData);
182
144
  }
145
+ setIsLoaded(true);
146
+ return { success: true };
183
147
  } else {
184
- localStorage.removeItem("insforge-auth-token");
185
- localStorage.removeItem("insforge-user-profile");
148
+ await insforge.auth.signOut();
186
149
  try {
187
150
  await fetch("/api/auth", { method: "DELETE" });
188
151
  } catch (error) {
189
152
  }
190
153
  setUser(null);
191
- setSession(null);
192
154
  if (onAuthChange) {
193
155
  onAuthChange(null);
194
156
  }
157
+ setIsLoaded(true);
158
+ return { success: false, error: "invalid_token" };
195
159
  }
196
160
  } catch (error) {
197
161
  console.error("[InsforgeProvider] Token validation failed:", error);
198
- localStorage.removeItem("insforge-auth-token");
199
- localStorage.removeItem("insforge-user-profile");
162
+ await insforge.auth.signOut();
200
163
  try {
201
164
  await fetch("/api/auth", { method: "DELETE" });
202
165
  } catch (error2) {
203
166
  }
204
167
  setUser(null);
205
- setSession(null);
206
168
  if (onAuthChange) {
207
169
  onAuthChange(null);
208
170
  }
209
- } finally {
210
171
  setIsLoaded(true);
172
+ return {
173
+ success: false,
174
+ error: error instanceof Error ? error.message : "authentication_failed"
175
+ };
211
176
  }
212
177
  }, [insforge, onAuthChange]);
213
178
  (0, import_react.useEffect)(() => {
@@ -228,15 +193,7 @@ function InsforgeProvider({
228
193
  name: userResult.data.profile?.nickname || "",
229
194
  avatarUrl: userResult.data.profile?.avatarUrl || ""
230
195
  };
231
- const sessionData = {
232
- userId: userResult.data.user.id,
233
- token: authToken,
234
- expiresAt: "",
235
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
236
- };
237
196
  setUser(userData);
238
- setSession(sessionData);
239
- localStorage.setItem("insforge-user-profile", JSON.stringify(userResult.data));
240
197
  if (onAuthChange) {
241
198
  onAuthChange(userData);
242
199
  }
@@ -252,12 +209,6 @@ function InsforgeProvider({
252
209
  avatarUrl: ""
253
210
  };
254
211
  setUser(userData);
255
- setSession({
256
- userId: fallbackUser.id || "",
257
- token: authToken,
258
- expiresAt: "",
259
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
260
- });
261
212
  if (onAuthChange) {
262
213
  onAuthChange(userData);
263
214
  }
@@ -305,14 +256,12 @@ function InsforgeProvider({
305
256
  );
306
257
  const signOut = (0, import_react.useCallback)(async () => {
307
258
  await insforge.auth.signOut();
308
- localStorage.removeItem("insforge-user-profile");
309
259
  await fetch("/api/auth", { method: "DELETE" }).catch(() => {
310
260
  });
311
261
  if (refreshIntervalRef.current) {
312
262
  clearInterval(refreshIntervalRef.current);
313
263
  }
314
264
  setUser(null);
315
- setSession(null);
316
265
  if (onAuthChange) {
317
266
  onAuthChange(null);
318
267
  }
@@ -340,7 +289,6 @@ function InsforgeProvider({
340
289
  value: {
341
290
  // Auth
342
291
  user,
343
- session,
344
292
  isLoaded,
345
293
  isSignedIn: !!user,
346
294
  setUser,
@@ -348,6 +296,7 @@ function InsforgeProvider({
348
296
  signUp,
349
297
  signOut,
350
298
  updateUser,
299
+ reloadAuth: loadAuthState,
351
300
  // Email verification (commented out - verification disabled for now)
352
301
  // sendVerificationCode,
353
302
  // verifySignUpCode,
@@ -379,12 +328,6 @@ function useUser() {
379
328
  return { user, isLoaded, updateUser, setUser };
380
329
  }
381
330
 
382
- // src/hooks/useSession.ts
383
- function useSession() {
384
- const { session, isLoaded } = useInsforge();
385
- return { session, isLoaded };
386
- }
387
-
388
331
  // src/components/SignIn.tsx
389
332
  var import_react6 = require("react");
390
333
  var import_sdk4 = require("@insforge/sdk");
@@ -476,13 +419,10 @@ function cn(...inputs) {
476
419
  // src/components/auth/AuthBranding.tsx
477
420
  var import_link = __toESM(require("next/link"));
478
421
  var import_jsx_runtime2 = require("react/jsx-runtime");
479
- function AuthBranding({ text = "Secured by", href = "https://insforge.dev", className }) {
480
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: cn(
481
- "bg-[#FAFAFA] px-2 py-4 flex flex-row justify-center items-center gap-1",
482
- className
483
- ), children: [
484
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-xs font-medium text-black font-manrope", children: text }),
485
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_link.default, { href, target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { width: "83", height: "20", viewBox: "0 0 83 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
422
+ function AuthBranding() {
423
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "bg-[#FAFAFA] px-2 py-4 flex flex-row justify-center items-center gap-1", children: [
424
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-xs font-medium text-black font-manrope", children: "Secured by" }),
425
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_link.default, { href: "https://insforge.dev", target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { width: "83", height: "20", viewBox: "0 0 83 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
486
426
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
487
427
  "path",
488
428
  {
@@ -542,15 +482,23 @@ function AuthBranding({ text = "Secured by", href = "https://insforge.dev", clas
542
482
 
543
483
  // src/components/auth/AuthContainer.tsx
544
484
  var import_jsx_runtime3 = require("react/jsx-runtime");
545
- function AuthContainer({
546
- children,
547
- style,
548
- className
549
- }) {
550
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: cn("w-full max-w-[400px]", className), style, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "w-full rounded-xl overflow-hidden shadow-lg", children: [
551
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "bg-white p-6 flex flex-col justify-center items-stretch gap-6", children }),
552
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(AuthBranding, {})
553
- ] }) });
485
+ function AuthContainer({ children, appearance = {} }) {
486
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
487
+ "div",
488
+ {
489
+ className: cn(
490
+ "w-full max-w-[400px] rounded-xl overflow-hidden shadow-lg",
491
+ appearance.containerClassName
492
+ ),
493
+ children: [
494
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: cn(
495
+ "bg-white p-6 flex flex-col justify-center items-stretch gap-6",
496
+ appearance.cardClassName
497
+ ), children }),
498
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(AuthBranding, {})
499
+ ]
500
+ }
501
+ );
554
502
  }
555
503
 
556
504
  // src/components/auth/AuthHeader.tsx
@@ -558,21 +506,19 @@ var import_jsx_runtime4 = require("react/jsx-runtime");
558
506
  function AuthHeader({
559
507
  title,
560
508
  subtitle,
561
- className,
562
- titleClassName,
563
- subtitleClassName
509
+ appearance = {}
564
510
  }) {
565
511
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: cn(
566
512
  "flex flex-col justify-start items-start gap-2",
567
- className
513
+ appearance.containerClassName
568
514
  ), children: [
569
515
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h1", { className: cn(
570
516
  "text-2xl font-semibold text-black leading-8",
571
- titleClassName
517
+ appearance.titleClassName
572
518
  ), children: title }),
573
519
  subtitle && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: cn(
574
520
  "text-sm font-normal text-[#828282] leading-6",
575
- subtitleClassName
521
+ appearance.subtitleClassName
576
522
  ), children: subtitle })
577
523
  ] });
578
524
  }
@@ -602,14 +548,12 @@ var import_jsx_runtime6 = require("react/jsx-runtime");
602
548
  function AuthFormField({
603
549
  label,
604
550
  id,
605
- className = "",
606
- labelClassName,
607
- inputClassName,
551
+ appearance = {},
608
552
  ...props
609
553
  }) {
610
554
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: cn(
611
555
  "flex flex-col justify-center items-stretch gap-1",
612
- className
556
+ appearance.containerClassName
613
557
  ), children: [
614
558
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
615
559
  "label",
@@ -617,7 +561,7 @@ function AuthFormField({
617
561
  htmlFor: id,
618
562
  className: cn(
619
563
  "text-sm font-normal text-black leading-6",
620
- labelClassName
564
+ appearance.labelClassName
621
565
  ),
622
566
  children: label
623
567
  }
@@ -632,7 +576,7 @@ function AuthFormField({
632
576
  "text-sm font-normal leading-5",
633
577
  "placeholder:text-[#A3A3A3] placeholder:font-sm placeholder:font-normal",
634
578
  "focus:outline-none focus:border-black",
635
- inputClassName
579
+ appearance.inputClassName
636
580
  ),
637
581
  ...props
638
582
  }
@@ -647,6 +591,41 @@ var import_lucide_react3 = require("lucide-react");
647
591
  // src/components/auth/AuthPasswordStrengthIndicator.tsx
648
592
  var import_lucide_react2 = require("lucide-react");
649
593
  var import_jsx_runtime7 = require("react/jsx-runtime");
594
+ function AuthPasswordStrengthIndicator({
595
+ password,
596
+ config,
597
+ appearance = {}
598
+ }) {
599
+ const requirements = createRequirements(config);
600
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
601
+ "div",
602
+ {
603
+ className: cn("mt-3 flex flex-col gap-3", appearance.containerClassName),
604
+ children: requirements.map((req) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-2", children: [
605
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
606
+ "div",
607
+ {
608
+ className: cn(
609
+ "flex items-center justify-center w-4 h-4 rounded-full border-2 transition-colors",
610
+ req.test(password) ? "bg-[#059669] border-transparent" : "border-neutral-400 bg-white"
611
+ ),
612
+ children: req.test(password) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.Check, { className: "w-3 h-3 text-white" })
613
+ }
614
+ ),
615
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
616
+ "span",
617
+ {
618
+ className: cn(
619
+ "text-sm font-normal leading-5 text-[#525252]",
620
+ appearance.requirementClassName
621
+ ),
622
+ children: req.label
623
+ }
624
+ )
625
+ ] }, req.label))
626
+ }
627
+ );
628
+ }
650
629
  function createRequirements(config) {
651
630
  const requirements = [];
652
631
  const minLength = config.passwordMinLength;
@@ -689,30 +668,6 @@ function validatePasswordStrength(password, config) {
689
668
  const requirements = createRequirements(config);
690
669
  return requirements.every((req) => req.test(password));
691
670
  }
692
- function AuthPasswordStrengthIndicator({
693
- password,
694
- config,
695
- className
696
- }) {
697
- const requirements = createRequirements(config);
698
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: cn("flex flex-col gap-1 mt-2", className), children: requirements.map((requirement, index) => {
699
- const isValid = requirement.test(password);
700
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "h-6 flex items-center gap-1", children: [
701
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
702
- "div",
703
- {
704
- className: cn(
705
- "w-5 h-5 rounded-full flex items-center justify-center transition-all duration-200",
706
- "border-2 flex-shrink-0",
707
- isValid ? "bg-green-500 border-transparent" : "bg-transparent border-neutral-400"
708
- ),
709
- children: isValid && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.Check, { className: "text-white stroke-[3]", size: 12 })
710
- }
711
- ),
712
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-sm font-normal text-black leading-6", children: requirement.label })
713
- ] }, index);
714
- }) });
715
- }
716
671
 
717
672
  // src/components/auth/AuthPasswordField.tsx
718
673
  var import_jsx_runtime8 = require("react/jsx-runtime");
@@ -723,9 +678,7 @@ function AuthPasswordField({
723
678
  emailAuthConfig,
724
679
  forgotPasswordLink,
725
680
  value,
726
- className = "",
727
- labelClassName,
728
- inputClassName,
681
+ appearance = {},
729
682
  onFocus,
730
683
  ...props
731
684
  }) {
@@ -742,7 +695,7 @@ function AuthPasswordField({
742
695
  {
743
696
  className: cn(
744
697
  "flex flex-col justify-center items-stretch gap-1",
745
- className
698
+ appearance.containerClassName
746
699
  ),
747
700
  children: [
748
701
  (label || forgotPasswordLink) && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex justify-between items-center", children: [
@@ -752,7 +705,7 @@ function AuthPasswordField({
752
705
  htmlFor: id,
753
706
  className: cn(
754
707
  "text-sm font-normal text-black leading-6",
755
- labelClassName
708
+ appearance.labelClassName
756
709
  ),
757
710
  children: label
758
711
  }
@@ -778,7 +731,7 @@ function AuthPasswordField({
778
731
  "text-sm font-normal leading-5",
779
732
  "placeholder:text-[#A3A3A3] placeholder:font-sm placeholder:font-normal",
780
733
  "focus:outline-none focus:border-black",
781
- inputClassName
734
+ appearance.inputClassName
782
735
  ),
783
736
  value,
784
737
  onFocus: handleFocus,
@@ -816,7 +769,6 @@ function AuthSubmitButton({
816
769
  isLoading = false,
817
770
  confirmed = false,
818
771
  disabled = false,
819
- style,
820
772
  className
821
773
  }) {
822
774
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
@@ -832,7 +784,6 @@ function AuthSubmitButton({
832
784
  "disabled:opacity-50 disabled:cursor-not-allowed",
833
785
  className
834
786
  ),
835
- style,
836
787
  disabled: disabled || isLoading || confirmed,
837
788
  children: [
838
789
  isLoading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react4.Loader2, { className: "w-5 h-5 animate-spin", size: 20 }),
@@ -856,10 +807,10 @@ function AuthDivider({ text = "or", className }) {
856
807
 
857
808
  // src/components/auth/AuthLink.tsx
858
809
  var import_jsx_runtime11 = require("react/jsx-runtime");
859
- function AuthLink({ text, linkText, href, className, linkClassName }) {
810
+ function AuthLink({ text, linkText, href, appearance = {} }) {
860
811
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("p", { className: cn(
861
812
  "text-center text-sm font-normal text-[#828282] leading-6",
862
- className
813
+ appearance.containerClassName
863
814
  ), children: [
864
815
  text,
865
816
  " ",
@@ -869,7 +820,7 @@ function AuthLink({ text, linkText, href, className, linkClassName }) {
869
820
  href,
870
821
  className: cn(
871
822
  "text-sm font-medium text-black leading-6",
872
- linkClassName
823
+ appearance.linkClassName
873
824
  ),
874
825
  children: linkText
875
826
  }
@@ -1083,7 +1034,7 @@ function AuthOAuthProviders({
1083
1034
  onClick,
1084
1035
  disabled,
1085
1036
  loading,
1086
- className
1037
+ appearance = {}
1087
1038
  }) {
1088
1039
  if (!providers || providers.length === 0) {
1089
1040
  return null;
@@ -1128,7 +1079,7 @@ function AuthOAuthProviders({
1128
1079
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: cn(
1129
1080
  "grid gap-3 w-full",
1130
1081
  getGridClass(),
1131
- className
1082
+ appearance.containerClassName
1132
1083
  ), children: providers.map((provider, index) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1133
1084
  AuthOAuthButton,
1134
1085
  {
@@ -1137,7 +1088,8 @@ function AuthOAuthProviders({
1137
1088
  disabled,
1138
1089
  loading: loading === provider,
1139
1090
  displayMode: getDisplayMode(),
1140
- style: getGridColumnStyle(index)
1091
+ style: getGridColumnStyle(index),
1092
+ className: appearance.buttonClassName
1141
1093
  },
1142
1094
  provider
1143
1095
  )) });
@@ -1152,8 +1104,7 @@ function AuthVerificationCodeInput({
1152
1104
  email,
1153
1105
  onChange,
1154
1106
  disabled = false,
1155
- className,
1156
- inputClassName
1107
+ appearance = {}
1157
1108
  }) {
1158
1109
  const inputRefs = (0, import_react5.useRef)([]);
1159
1110
  const handleChange = (index, digit) => {
@@ -1190,7 +1141,7 @@ function AuthVerificationCodeInput({
1190
1141
  };
1191
1142
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: cn(
1192
1143
  "flex flex-col justify-center items-center gap-6",
1193
- className
1144
+ appearance.containerClassName
1194
1145
  ), children: [
1195
1146
  /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { className: "text-sm font-normal text-[#525252] leading-5", children: [
1196
1147
  "We've sent a verification code to your inbox at",
@@ -1218,7 +1169,7 @@ function AuthVerificationCodeInput({
1218
1169
  "transition-all duration-200 outline-none",
1219
1170
  "focus:border-black focus:shadow-[0_0_0_2px_rgba(0,0,0,0.1)]",
1220
1171
  "disabled:bg-[#F5F5F5] disabled:cursor-not-allowed disabled:opacity-60",
1221
- inputClassName
1172
+ appearance.inputClassName
1222
1173
  ),
1223
1174
  autoComplete: "one-time-code"
1224
1175
  },
@@ -1238,7 +1189,6 @@ function SignIn({
1238
1189
  emailPlaceholder = "example@email.com",
1239
1190
  passwordLabel = "Password",
1240
1191
  passwordPlaceholder = "\u2022\u2022\u2022\u2022\u2022\u2022",
1241
- forgotPasswordText = "Forget Password?",
1242
1192
  submitButtonText = "Sign In",
1243
1193
  loadingButtonText = "Signing in...",
1244
1194
  signUpText = "Don't have an account?",
@@ -1294,7 +1244,7 @@ function SignIn({
1294
1244
  setOauthLoading(null);
1295
1245
  }
1296
1246
  }
1297
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(AuthContainer, { style: appearance.container, children: [
1247
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(AuthContainer, { appearance: { containerClassName: appearance.containerClassName }, children: [
1298
1248
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AuthHeader, { title, subtitle }),
1299
1249
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AuthErrorBanner, { error }),
1300
1250
  /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
@@ -1342,7 +1292,7 @@ function SignIn({
1342
1292
  {
1343
1293
  isLoading: loading,
1344
1294
  disabled: loading || oauthLoading !== null,
1345
- style: appearance.button,
1295
+ className: appearance.buttonClassName,
1346
1296
  children: loading ? loadingButtonText : submitButtonText
1347
1297
  }
1348
1298
  )
@@ -1444,7 +1394,7 @@ function SignUp({
1444
1394
  setOauthLoading(null);
1445
1395
  }
1446
1396
  }
1447
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(AuthContainer, { style: appearance.container, children: [
1397
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(AuthContainer, { appearance: { containerClassName: appearance.containerClassName }, children: [
1448
1398
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(AuthHeader, { title, subtitle }),
1449
1399
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(AuthErrorBanner, { error }),
1450
1400
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
@@ -1494,7 +1444,7 @@ function SignUp({
1494
1444
  {
1495
1445
  isLoading: loading,
1496
1446
  disabled: loading || oauthLoading !== null,
1497
- style: appearance.button,
1447
+ className: appearance.buttonClassName,
1498
1448
  children: loading ? loadingButtonText : submitButtonText
1499
1449
  }
1500
1450
  )
@@ -1524,8 +1474,7 @@ var import_jsx_runtime18 = require("react/jsx-runtime");
1524
1474
  function UserButton({
1525
1475
  afterSignOutUrl = "/",
1526
1476
  mode = "detailed",
1527
- appearance = {},
1528
- className
1477
+ appearance = {}
1529
1478
  }) {
1530
1479
  const { user, signOut } = useInsforge();
1531
1480
  const [isOpen, setIsOpen] = (0, import_react8.useState)(false);
@@ -1550,7 +1499,7 @@ function UserButton({
1550
1499
  }
1551
1500
  if (!user) return null;
1552
1501
  const initials = user.nickname ? user.nickname.charAt(0).toUpperCase() : user.email.split("@")[0].slice(0, 2).toUpperCase();
1553
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: cn("relative inline-block", className), ref: dropdownRef, children: [
1502
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: cn("relative inline-block", appearance.containerClassName), ref: dropdownRef, children: [
1554
1503
  /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1555
1504
  "button",
1556
1505
  {
@@ -1565,7 +1514,6 @@ function UserButton({
1565
1514
  appearance.buttonClassName
1566
1515
  ),
1567
1516
  onClick: () => setIsOpen(!isOpen),
1568
- style: appearance.button,
1569
1517
  "aria-expanded": isOpen,
1570
1518
  "aria-haspopup": "true",
1571
1519
  children: [
@@ -1599,7 +1547,6 @@ function UserButton({
1599
1547
  "shadow-lg z-50 overflow-hidden p-1",
1600
1548
  appearance.dropdownClassName
1601
1549
  ),
1602
- style: appearance.dropdown,
1603
1550
  children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1604
1551
  "button",
1605
1552
  {
@@ -1666,6 +1613,69 @@ function Protect({
1666
1613
  }
1667
1614
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_jsx_runtime21.Fragment, { children });
1668
1615
  }
1616
+
1617
+ // src/components/InsforgeCallback.tsx
1618
+ var import_react10 = require("react");
1619
+ var import_navigation2 = require("next/navigation");
1620
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1621
+ function CallbackContent({
1622
+ redirectTo,
1623
+ onSuccess,
1624
+ onError
1625
+ }) {
1626
+ const router = (0, import_navigation2.useRouter)();
1627
+ const searchParams = (0, import_navigation2.useSearchParams)();
1628
+ const isProcessingRef = (0, import_react10.useRef)(false);
1629
+ const { reloadAuth } = useInsforge();
1630
+ (0, import_react10.useEffect)(() => {
1631
+ const processCallback = async () => {
1632
+ if (isProcessingRef.current) return;
1633
+ isProcessingRef.current = true;
1634
+ const error = searchParams.get("error");
1635
+ if (error) {
1636
+ if (onError) {
1637
+ onError(error);
1638
+ } else {
1639
+ router.push("/?error=" + encodeURIComponent(error));
1640
+ }
1641
+ return;
1642
+ }
1643
+ const result = await reloadAuth();
1644
+ if (!result.success) {
1645
+ const errorMsg = result.error || "authentication_failed";
1646
+ if (onError) {
1647
+ onError(errorMsg);
1648
+ } else {
1649
+ router.push("/?error=" + encodeURIComponent(errorMsg));
1650
+ }
1651
+ return;
1652
+ }
1653
+ window.history.replaceState({}, "", window.location.pathname);
1654
+ if (onSuccess) {
1655
+ onSuccess();
1656
+ }
1657
+ const destination = redirectTo || sessionStorage.getItem("auth_destination") || sessionStorage.getItem("oauth_final_destination") || "/";
1658
+ sessionStorage.removeItem("auth_destination");
1659
+ sessionStorage.removeItem("oauth_final_destination");
1660
+ router.push(destination);
1661
+ };
1662
+ processCallback();
1663
+ }, [searchParams, router, redirectTo, onSuccess, onError, reloadAuth]);
1664
+ return null;
1665
+ }
1666
+ function InsforgeCallback({
1667
+ loadingComponent,
1668
+ ...props
1669
+ }) {
1670
+ const defaultLoading = /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "text-center", children: [
1671
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h2", { className: "text-2xl font-semibold mb-4", children: "Completing authentication..." }),
1672
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto" })
1673
+ ] }) });
1674
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react10.Suspense, { fallback: loadingComponent || defaultLoading, children: [
1675
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CallbackContent, { ...props }),
1676
+ loadingComponent || defaultLoading
1677
+ ] });
1678
+ }
1669
1679
  // Annotate the CommonJS export names for ESM import in node:
1670
1680
  0 && (module.exports = {
1671
1681
  AuthBranding,
@@ -1681,6 +1691,7 @@ function Protect({
1681
1691
  AuthPasswordStrengthIndicator,
1682
1692
  AuthSubmitButton,
1683
1693
  AuthVerificationCodeInput,
1694
+ InsforgeCallback,
1684
1695
  InsforgeProvider,
1685
1696
  OAUTH_PROVIDER_CONFIG,
1686
1697
  Protect,
@@ -1695,7 +1706,6 @@ function Protect({
1695
1706
  isProviderSupported,
1696
1707
  useAuth,
1697
1708
  useInsforge,
1698
- useSession,
1699
1709
  useUser,
1700
1710
  validatePasswordStrength
1701
1711
  });