@insforge/nextjs 0.4.0 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +497 -96
- package/dist/api.d.mts +12 -1
- package/dist/api.d.ts +12 -1
- package/dist/api.js +59 -3
- package/dist/api.js.map +1 -1
- package/dist/api.mjs +57 -2
- package/dist/api.mjs.map +1 -1
- package/dist/index.css +170 -26
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +147 -35
- package/dist/index.d.ts +147 -35
- package/dist/index.js +937 -519
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +903 -500
- package/dist/index.mjs.map +1 -1
- package/dist/middleware.d.mts +10 -4
- package/dist/middleware.d.ts +10 -4
- package/dist/middleware.js +55 -12
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.mjs +51 -11
- package/dist/middleware.mjs.map +1 -1
- package/package.json +4 -5
- package/src/styles.css +737 -551
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/styles.css"],"sourcesContent":["/**\r\n * InsForge Next.js Component Library Styles\r\n * A standalone CSS file for auth components - no Tailwind required!\r\n */\r\n\r\n/* Font Face Declaration */\r\n@font-face {\r\n font-family: 'Manrope';\r\n src: url('./fonts/Manrope-VariableFont_wght.ttf') format('truetype');\r\n font-weight: 100 900;\r\n font-style: normal;\r\n font-display: swap;\r\n}\r\n\r\n/* CSS Variables */\r\n:root {\r\n --font-manrope: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n}\r\n\r\n/* Reset and Base Styles */\r\n.insforge-auth-container * {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* Main Container - App handles layout, we just provide the card */\r\n.insforge-auth-container {\r\n width: 100%;\r\n max-width: 400px;\r\n background: white;\r\n}\r\n\r\n.insforge-branding {\r\n padding: 8px 8px 16px 8px;\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 4px;\r\n}\r\n\r\n.insforge-branding-text {\r\n color: var(--black, #000);\r\n font-family: var(--font-manrope);\r\n font-size: 12px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: normal;\r\n}\r\n\r\n/* Form Card */\r\n.insforge-auth-card {\r\n width: 100%;\r\n border-radius: 12px;\r\n box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.25);\r\n}\r\n\r\n.insforge-auth-content {\r\n padding: 24px 24px 40px 24px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: stretch;\r\n gap: 24px;\r\n}\r\n\r\n/* Header */\r\n.insforge-auth-header {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: start;\r\n align-items: start;\r\n gap: 8px;\r\n}\r\n\r\n.insforge-auth-title {\r\n color: #000;\r\n font-family: Inter;\r\n font-size: 32px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 48px;\r\n}\r\n\r\n.insforge-auth-subtitle {\r\n color: #828282;\r\n font-family: Inter;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 24px;\r\n}\r\n\r\n/* Error Banner */\r\n.insforge-error-banner {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.75rem;\r\n padding: 1rem;\r\n margin-bottom: 1.5rem;\r\n background-color: #fef2f2;\r\n border: 1px solid #fecaca;\r\n border-radius: 0.5rem;\r\n color: #dc2626;\r\n font-size: 0.875rem;\r\n line-height: 1.25rem;\r\n}\r\n\r\n.insforge-error-icon {\r\n flex-shrink: 0;\r\n width: 1.25rem;\r\n height: 1.25rem;\r\n}\r\n\r\n/* Form Elements */\r\n.insforge-form {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: stretch;\r\n gap: 24px;\r\n}\r\n\r\n.insforge-form-group {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: stretch;\r\n gap: 4px;\r\n}\r\n\r\n.insforge-form-label-row {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.insforge-form-label {\r\n color: #000;\r\n font-family: Inter;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 24px;\r\n}\r\n\r\n.insforge-form-link {\r\n color: #828282;\r\n text-align: right;\r\n font-family: Inter;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 24px;\r\n}\r\n\r\n.insforge-form-link:hover {\r\n color: #828282;\r\n text-decoration: underline;\r\n}\r\n\r\n/* Input Container for Password (with icon) */\r\n.insforge-input-wrapper {\r\n position: relative;\r\n}\r\n\r\n.insforge-input {\r\n width: 100%;\r\n display: flex;\r\n padding: 8px 8px 10px 12px;\r\n align-items: center;\r\n gap: 8px;\r\n align-self: stretch;\r\n border-radius: 4px;\r\n border: 1px solid #BCBCBC;\r\n background: #FFF;\r\n font-family: Inter;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n}\r\n\r\n.insforge-input::placeholder {\r\n color: #A6A6A6;\r\n}\r\n\r\n.insforge-input:focus {\r\n outline: none;\r\n}\r\n\r\n.insforge-input-with-icon {\r\n padding-right: 3rem;\r\n}\r\n\r\n.insforge-input-icon-btn {\r\n position: absolute;\r\n right: 8px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n background: transparent;\r\n border: none;\r\n color: #A6A6A6;\r\n cursor: pointer;\r\n transition: color 0.2s;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.insforge-input-icon-btn:hover {\r\n color: #6b7280;\r\n}\r\n\r\n/* Primary Button */\r\n.insforge-btn-primary {\r\n border-radius: 4px;\r\n background: #000;\r\n width: 100%;\r\n display: flex;\r\n padding: 12px 16px;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 10px;\r\n align-self: stretch;\r\n color: #FFF;\r\n font-family: Manrope;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 600;\r\n line-height: normal;\r\n border: none;\r\n cursor: pointer;\r\n}\r\n\r\n.insforge-btn-primary:hover {\r\n background: #303030;\r\n}\r\n\r\n.insforge-btn-primary:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n}\r\n\r\n.insforge-btn-primary .insforge-btn-loader {\r\n display: none;\r\n animation: insforge-spin 1s linear infinite;\r\n}\r\n\r\n.insforge-btn-primary[data-loading] .insforge-btn-loader {\r\n display: block;\r\n}\r\n\r\n/* Text Link Section */\r\n.insforge-text-center {\r\n text-align: center;\r\n margin: -12px 0 0 0;\r\n color: #828282;\r\n font-family: Inter;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 24px;\r\n}\r\n\r\n.insforge-link-primary {\r\n color: #2563EB;\r\n font-family: Inter;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 24px;\r\n}\r\n\r\n.insforge-link-primary:hover {\r\n text-decoration: underline;\r\n}\r\n\r\n/* Divider */\r\n.insforge-divider {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 24px;\r\n align-self: stretch;\r\n}\r\n\r\n.insforge-divider::before,\r\n.insforge-divider::after {\r\n content: '';\r\n flex: 1;\r\n height: 1px;\r\n background: #C6C6C6;\r\n}\r\n\r\n.insforge-divider-text {\r\n color: #C6C6C6;\r\n font-family: Manrope;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 600;\r\n line-height: normal;\r\n}\r\n\r\n/* OAuth Section */\r\n.insforge-oauth-container {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: stretch;\r\n gap: 12px;\r\n}\r\n\r\n/* OAuth Button */\r\n.insforge-oauth-btn {\r\n display: flex;\r\n height: 36px;\r\n padding: 8px 12px;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 12px;\r\n border-radius: 6px;\r\n border: 1px solid #E4E4E7;\r\n background: #FFF;\r\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.10);\r\n color: #09090B;\r\n text-align: center;\r\n font-family: Inter;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 500;\r\n line-height: 20px;\r\n cursor: pointer;\r\n}\r\n\r\n.insforge-oauth-btn:hover {\r\n background: #f9fafb;\r\n border-color: #9ca3af;\r\n}\r\n\r\n.insforge-oauth-btn:disabled {\r\n opacity: 0.6;\r\n cursor: not-allowed;\r\n}\r\n\r\n.insforge-oauth-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n}\r\n\r\n.insforge-oauth-loader {\r\n display: none;\r\n animation: insforge-spin 1s linear infinite;\r\n}\r\n\r\n.insforge-oauth-btn[data-loading] .insforge-oauth-icon {\r\n display: none;\r\n}\r\n\r\n.insforge-oauth-btn[data-loading] .insforge-oauth-loader {\r\n display: block;\r\n}\r\n\r\n/* Spin Animation */\r\n@keyframes insforge-spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n/* UserButton Styles */\r\n.insforge-user-button-container {\r\n position: relative;\r\n display: inline-block;\r\n}\r\n\r\n.insforge-user-button {\r\n padding: 0.25rem;\r\n background: transparent;\r\n border: none;\r\n border-radius: 9999px;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.5rem;\r\n}\r\n\r\n.insforge-user-button:hover {\r\n background: rgba(0, 0, 0, 0.05);\r\n}\r\n\r\n.insforge-user-button-detailed {\r\n border-radius: 0.5rem;\r\n padding: 0.5rem;\r\n}\r\n\r\n.insforge-user-button-info {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n gap: 0.125rem;\r\n}\r\n\r\n.insforge-user-button-name {\r\n font-size: 0.875rem;\r\n font-weight: 600;\r\n color: #111827;\r\n line-height: 1.25rem;\r\n text-align: left;\r\n}\r\n\r\n.insforge-user-button-email {\r\n font-size: 0.75rem;\r\n color: #6b7280;\r\n line-height: 1rem;\r\n text-align: left;\r\n}\r\n\r\n.insforge-user-avatar {\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n border-radius: 9999px;\r\n object-fit: cover;\r\n}\r\n\r\n.insforge-user-avatar-placeholder {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n background: #3b82f6;\r\n color: white;\r\n font-weight: 600;\r\n font-size: 0.875rem;\r\n border-radius: 9999px;\r\n}\r\n\r\n.insforge-user-dropdown {\r\n position: absolute;\r\n top: 100%;\r\n right: 0;\r\n margin-top: 0.5rem;\r\n min-width: 10rem;\r\n background: white;\r\n border: 1px solid #e5e7eb;\r\n border-radius: 0.5rem;\r\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\r\n z-index: 50;\r\n overflow: hidden;\r\n padding: 0.25rem;\r\n}\r\n\r\n.insforge-sign-out-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n gap: 0.5rem;\r\n width: 100%;\r\n padding: 0.5rem 0.75rem;\r\n font-size: 0.875rem;\r\n font-family: inherit;\r\n color: #dc2626;\r\n background: transparent;\r\n border: none;\r\n border-radius: 0.375rem;\r\n cursor: pointer;\r\n transition: background 0.2s;\r\n text-align: left;\r\n}\r\n\r\n.insforge-sign-out-button:hover {\r\n background: #fef2f2;\r\n}\r\n\r\n/* Loading State */\r\n.insforge-loading {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 2rem;\r\n color: #6b7280;\r\n font-size: 0.875rem;\r\n}\r\n\r\n/* Password Strength Indicator */\r\n.insforge-password-strength {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.25rem;\r\n margin-top: 0.5rem;\r\n}\r\n\r\n.insforge-password-requirement {\r\n height: 1.5rem;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n}\r\n\r\n.insforge-password-check {\r\n width: 1.25rem;\r\n height: 1.25rem;\r\n border-radius: 9999px;\r\n display: flex;\r\n border-width: 2px;\r\n border-style: solid;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.2s ease-in-out;\r\n background-color: transparent;\r\n border-color: #a3a3a3;\r\n flex-shrink: 0;\r\n}\r\n\r\n.insforge-password-check-valid {\r\n background-color: #22c55e;\r\n border-color: transparent;\r\n}\r\n\r\n.insforge-password-check-icon {\r\n color: #fff;\r\n stroke-width: 3;\r\n}\r\n\r\n.insforge-password-requirement-label {\r\n color:#000;\r\n font-family: Inter;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 24px;\r\n}\r\n\r\n/* Responsive adjustments */\r\n@media (max-width: 640px) {\r\n .insforge-auth-card {\r\n padding: 2rem 1.5rem;\r\n }\r\n\r\n .insforge-auth-title {\r\n font-size: 1.75rem;\r\n }\r\n}\r\n\r\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/styles.css"],"sourcesContent":["/**\n * InsForge Next.js Component Library Styles\n * A standalone CSS file for auth components - no Tailwind required!\n */\n\n/* Font Face Declaration */\n@font-face {\n font-family: 'Manrope';\n src: url('./fonts/Manrope-VariableFont_wght.ttf') format('truetype');\n font-weight: 100 900;\n font-style: normal;\n font-display: swap;\n}\n\n/* CSS Variables */\n:root {\n --font-manrope: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n/* Reset and Base Styles */\n.insforge-auth-container * {\n box-sizing: border-box;\n}\n\n/* Main Container - App handles layout, we just provide the card */\n.insforge-auth-container {\n width: 100%;\n max-width: 400px;\n background: white;\n}\n\n.insforge-branding {\n background: #FAFAFA;\n padding: 8px 8px 16px 8px;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n gap: 4px;\n}\n\n.insforge-branding-text {\n color: #000;\n font-family: var(--font-manrope);\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n}\n\n/* Form Card */\n.insforge-auth-card {\n width: 100%;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.25);\n}\n\n.insforge-auth-content {\n padding: 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: stretch;\n gap: 24px;\n}\n\n/* Header */\n.insforge-auth-header {\n display: flex;\n flex-direction: column;\n justify-content: start;\n align-items: start;\n gap: 8px;\n}\n\n.insforge-auth-title {\n color: #000;\n font-family: Inter;\n font-size: 24px;\n font-style: normal;\n font-weight: 600;\n line-height: 32px; /* 133.333% */\n}\n\n.insforge-auth-subtitle {\n color: #828282;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px; /* 171.429% */\n}\n\n/* Error Banner */\n.insforge-error-banner {\n display: flex;\n padding: 8px 8px 8px 12px;\n margin-bottom: 16px;\n align-items: center;\n gap: 8px;\n align-self: stretch;\n border-radius: 4px;\n border: 2px solid #DC2626;\n background: #FEF2F2;\n color: #DC2626;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px; /* 142.857% */\n}\n\n.insforge-error-icon {\n color: #EF4444;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n}\n\n/* Form Elements */\n.insforge-form {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: stretch;\n gap: 24px;\n}\n\n.insforge-form-group {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: stretch;\n gap: 4px;\n}\n\n.insforge-form-label-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.insforge-form-label {\n color: #000;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n}\n\n.insforge-form-link {\n color: #828282;\n text-align: right;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n}\n\n.insforge-form-link:hover {\n color: #828282;\n text-decoration: underline;\n}\n\n/* Input Container for Password (with icon) */\n.insforge-input-wrapper {\n position: relative;\n}\n\n.insforge-input {\n width: 100%;\n display: flex;\n padding: 8px 8px 10px 12px;\n align-items: center;\n gap: 8px;\n align-self: stretch;\n border-radius: 4px;\n border: 1px solid #BCBCBC;\n background: #FFF;\n font-family: Inter;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n\n.insforge-input::placeholder {\n color: #A6A6A6;\n}\n\n.insforge-input:focus {\n outline: none;\n}\n\n.insforge-input-with-icon {\n padding-right: 3rem;\n}\n\n.insforge-input-icon-btn {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n background: transparent;\n border: none;\n color: #A6A6A6;\n cursor: pointer;\n transition: color 0.2s;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.insforge-input-icon-btn:hover {\n color: #6b7280;\n}\n\n/* Primary Button */\n.insforge-btn-primary {\n border-radius: 4px;\n background: #000;\n width: 100%;\n display: flex;\n margin: 16px 0 0 0;\n padding: 8px 16px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n align-self: stretch;\n color: #FFF;\n font-family: Manrope;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n border: none;\n cursor: pointer;\n}\n\n.insforge-btn-primary:hover {\n background: #303030;\n}\n\n.insforge-btn-primary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.insforge-btn-primary .insforge-btn-loader {\n display: none;\n animation: insforge-spin 1s linear infinite;\n}\n\n.insforge-btn-primary[data-loading] .insforge-btn-loader {\n display: block;\n}\n\n.insforge-btn-primary .insforge-btn-check {\n display: none;\n}\n\n.insforge-btn-primary[data-confirmed] .insforge-btn-check {\n display: block;\n}\n\n/* Text Link Section */\n.insforge-text-center {\n text-align: center;\n color: #828282;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n}\n\n.insforge-link-primary {\n color: #000;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n}\n\n/* Divider */\n.insforge-divider {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 24px;\n align-self: stretch;\n}\n\n.insforge-divider::before,\n.insforge-divider::after {\n content: '';\n flex: 1;\n height: 1px;\n background: #C6C6C6;\n}\n\n.insforge-divider-text {\n color: #C6C6C6;\n font-family: Manrope;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n}\n\n/* OAuth Section */\n.insforge-oauth-container {\n display: grid;\n gap: 12px;\n width: 100%;\n}\n\n/* ============================================================================\n SMART OAUTH GRID LAYOUT SYSTEM\n Pattern: 1→1x1, 2→1x2, 3→1x3, 4→2x2, 5+→auto (3 per row, last row centered)\n ============================================================================ */\n\n/* 1 provider: single column, full width - displays \"Continue with Provider\" */\n.insforge-oauth-container[data-provider-count=\"1\"] {\n grid-template-columns: 1fr;\n}\n\n/* 2 providers: two columns - displays \"Provider\" */\n.insforge-oauth-container[data-provider-count=\"2\"] {\n grid-template-columns: repeat(2, 1fr);\n}\n\n/* 3 providers: three columns - icon only */\n.insforge-oauth-container[data-provider-count=\"3\"] {\n grid-template-columns: repeat(3, 1fr);\n}\n\n/* 4 providers: 2x2 grid - displays \"Provider\" */\n.insforge-oauth-container[data-provider-count=\"4\"] {\n grid-template-columns: repeat(2, 1fr);\n}\n\n/* 5+ providers: Universal 6-column grid system\n - Grid columns managed by OAuthProviderList component via inline styles\n - This provides precise control over button positioning */\n.insforge-oauth-container:not([data-provider-count=\"1\"]):not([data-provider-count=\"2\"]):not([data-provider-count=\"3\"]):not([data-provider-count=\"4\"]) {\n grid-template-columns: repeat(6, 1fr);\n}\n\n/* OAuth Button */\n.insforge-oauth-btn {\n display: flex;\n width: 100%;\n height: 36px;\n padding: 8px 12px;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n gap: 12px;\n border-radius: 6px;\n border: 1px solid #E4E4E7;\n background: #FFF;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.10);\n color: #09090B;\n text-align: center;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 20px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n/* Full mode: show icon + \"Continue with Provider\" */\n.insforge-oauth-btn[data-display-mode=\"full\"] {\n justify-content: center;\n}\n\n/* Short mode: show icon + \"Provider\" */\n.insforge-oauth-btn[data-display-mode=\"short\"] {\n justify-content: center;\n padding: 8px;\n gap: 8px;\n}\n\n/* Icon only mode: show only icon */\n.insforge-oauth-btn[data-display-mode=\"icon\"] {\n justify-content: center;\n gap: 0;\n}\n\n.insforge-oauth-btn[data-display-mode=\"icon\"] .insforge-oauth-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.insforge-oauth-btn:hover {\n background: #f9fafb;\n border-color: #9ca3af;\n}\n\n.insforge-oauth-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.insforge-oauth-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.insforge-oauth-loader {\n display: none;\n animation: insforge-spin 1s linear infinite;\n}\n\n.insforge-oauth-btn[data-loading] .insforge-oauth-icon {\n display: none;\n}\n\n.insforge-oauth-btn[data-loading] .insforge-oauth-loader {\n display: block;\n}\n\n/* Spin Animation */\n@keyframes insforge-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* UserButton Styles */\n.insforge-user-button-container {\n position: relative;\n display: inline-block;\n}\n\n.insforge-user-button {\n padding: 0.25rem;\n background: transparent;\n border: none;\n border-radius: 9999px;\n cursor: pointer;\n transition: all 0.2s;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n}\n\n.insforge-user-button:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.insforge-user-button-detailed {\n border-radius: 0.5rem;\n padding: 0.5rem;\n}\n\n.insforge-user-button-info {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.125rem;\n}\n\n.insforge-user-button-name {\n font-size: 0.875rem;\n font-weight: 600;\n color: #111827;\n line-height: 1.25rem;\n text-align: left;\n}\n\n.insforge-user-button-email {\n font-size: 0.75rem;\n color: #6b7280;\n line-height: 1rem;\n text-align: left;\n}\n\n.insforge-user-avatar {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 9999px;\n object-fit: cover;\n}\n\n.insforge-user-avatar-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n background: #3b82f6;\n color: white;\n font-weight: 600;\n font-size: 0.875rem;\n border-radius: 9999px;\n}\n\n.insforge-user-dropdown {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 0.5rem;\n min-width: 10rem;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 0.5rem;\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n z-index: 50;\n overflow: hidden;\n padding: 0.25rem;\n}\n\n.insforge-sign-out-button {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 0.5rem;\n width: 100%;\n padding: 0.5rem 0.75rem;\n font-size: 0.875rem;\n font-family: inherit;\n color: #dc2626;\n background: transparent;\n border: none;\n border-radius: 0.375rem;\n cursor: pointer;\n transition: background 0.2s;\n text-align: left;\n}\n\n.insforge-sign-out-button:hover {\n background: #fef2f2;\n}\n\n/* Loading State */\n.insforge-loading {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 2rem;\n color: #6b7280;\n font-size: 0.875rem;\n}\n\n/* Password Strength Indicator */\n.insforge-password-strength {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n margin-top: 0.5rem;\n}\n\n.insforge-password-requirement {\n height: 1.5rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.insforge-password-check {\n width: 1.25rem;\n height: 1.25rem;\n border-radius: 9999px;\n display: flex;\n border-width: 2px;\n border-style: solid;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease-in-out;\n background-color: transparent;\n border-color: #a3a3a3;\n flex-shrink: 0;\n}\n\n.insforge-password-check-valid {\n background-color: #22c55e;\n border-color: transparent;\n}\n\n.insforge-password-check-icon {\n color: #fff;\n stroke-width: 3;\n}\n\n.insforge-password-requirement-label {\n color:#000;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n}\n\n/* Verification Code Input */\n.insforge-verification-code-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 24px;\n}\n\n.insforge-verification-instructions {\n color: #525252;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n\n.insforge-verification-instructions > span {\n color: #000;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n}\n\n.insforge-verification-code-inputs {\n display: flex;\n flex-direction: row;\n gap: 12px;\n justify-content: center;\n align-items: center;\n}\n\n.insforge-verification-code-input {\n width: 100%;\n height: 48px;\n padding: 8px 12px;\n border-radius: 4px;\n border: 1px solid #E0E0E0;\n background: #FFF;\n text-align: center;\n font-size: 16px;\n font-style: normal;\n line-height: 20px;\n font-weight: 600;\n font-family: var(--font-manrope);\n color: #000;\n transition: all 0.2s ease-in-out;\n outline: none;\n}\n\n.insforge-verification-code-input:focus {\n border-color: #000;\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n}\n\n.insforge-verification-code-input:disabled {\n background-color: #F5F5F5;\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n/* Verification Instructions */\n.insforge-verification-instructions {\n color: #4F4F4F;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n margin-bottom: 8px;\n}\n\n.insforge-verification-email {\n color: #000;\n font-weight: 600;\n}\n\n.insforge-resend-code {\n color: #525252;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n text-align: center;\n}\n\n.insforge-resend-link {\n color: #000;\n font-family: Inter;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n}\n\n.insforge-resend-link:hover {\n text-decoration: underline;\n}\n\n.insforge-resend-link:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Responsive adjustments */\n@media (max-width: 640px) {\n .insforge-auth-card {\n padding: 2rem 1.5rem;\n }\n\n .insforge-auth-title {\n font-size: 1.75rem;\n }\n\n .insforge-verification-code-container {\n gap: 8px;\n }\n\n .insforge-verification-code-input {\n width: 40px;\n height: 48px;\n font-size: 20px;\n }\n}\n\n"],"mappings":"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","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
|
-
import { ReactNode } from 'react';
|
|
3
|
+
import { ReactNode, CSSProperties, InputHTMLAttributes } from 'react';
|
|
4
4
|
|
|
5
5
|
interface InsforgeUser {
|
|
6
6
|
id: string;
|
|
@@ -19,25 +19,8 @@ interface InsforgeSession {
|
|
|
19
19
|
expiresAt: string;
|
|
20
20
|
createdAt: string;
|
|
21
21
|
}
|
|
22
|
-
interface AuthContextValue {
|
|
23
|
-
user: InsforgeUser | null;
|
|
24
|
-
session: InsforgeSession | null;
|
|
25
|
-
isLoaded: boolean;
|
|
26
|
-
isSignedIn: boolean;
|
|
27
|
-
signIn: (email: string, password: string) => Promise<void>;
|
|
28
|
-
signUp: (email: string, password: string) => Promise<void>;
|
|
29
|
-
signOut: () => Promise<void>;
|
|
30
|
-
updateUser: (data: Partial<InsforgeUser>) => Promise<void>;
|
|
31
|
-
}
|
|
32
|
-
interface AuthProviderProps {
|
|
33
|
-
children: ReactNode;
|
|
34
|
-
baseUrl: string;
|
|
35
|
-
onAuthChange?: (user: InsforgeUser | null) => void;
|
|
36
|
-
}
|
|
37
22
|
interface SignInProps {
|
|
38
|
-
baseUrl: string;
|
|
39
23
|
afterSignInUrl?: string;
|
|
40
|
-
providers?: OAuthProvider[];
|
|
41
24
|
appearance?: {
|
|
42
25
|
container?: React.CSSProperties;
|
|
43
26
|
form?: React.CSSProperties;
|
|
@@ -60,9 +43,7 @@ interface SignInProps {
|
|
|
60
43
|
onError?: (error: Error) => void;
|
|
61
44
|
}
|
|
62
45
|
interface SignUpProps {
|
|
63
|
-
baseUrl: string;
|
|
64
46
|
afterSignUpUrl?: string;
|
|
65
|
-
providers?: OAuthProvider[];
|
|
66
47
|
appearance?: {
|
|
67
48
|
container?: React.CSSProperties;
|
|
68
49
|
form?: React.CSSProperties;
|
|
@@ -76,6 +57,9 @@ interface SignUpProps {
|
|
|
76
57
|
passwordPlaceholder?: string;
|
|
77
58
|
submitButtonText?: string;
|
|
78
59
|
loadingButtonText?: string;
|
|
60
|
+
verifyButtonText?: string;
|
|
61
|
+
loadingVerifyButtonText?: string;
|
|
62
|
+
verifiedButtonText?: string;
|
|
79
63
|
signInText?: string;
|
|
80
64
|
signInLinkText?: string;
|
|
81
65
|
signInUrl?: string;
|
|
@@ -100,40 +84,68 @@ interface ProtectProps {
|
|
|
100
84
|
interface ConditionalProps {
|
|
101
85
|
children: ReactNode;
|
|
102
86
|
}
|
|
103
|
-
type OAuthProvider = 'google' | 'github';
|
|
104
|
-
|
|
105
|
-
|
|
87
|
+
type OAuthProvider = 'google' | 'github' | 'discord' | 'facebook' | 'linkedin' | 'instagram' | 'tiktok' | 'apple' | 'x' | 'spotify' | 'microsoft';
|
|
88
|
+
interface OAuthProviderConfig {
|
|
89
|
+
name: string;
|
|
90
|
+
svg: JSX.Element;
|
|
91
|
+
className: string;
|
|
92
|
+
}
|
|
106
93
|
|
|
107
|
-
interface
|
|
108
|
-
|
|
94
|
+
interface InsforgeContextValue {
|
|
95
|
+
user: InsforgeUser | null;
|
|
96
|
+
session: InsforgeSession | null;
|
|
109
97
|
isLoaded: boolean;
|
|
110
|
-
|
|
98
|
+
isSignedIn: boolean;
|
|
99
|
+
setUser: (user: InsforgeUser | null) => void;
|
|
100
|
+
signIn: (email: string, password: string) => Promise<void>;
|
|
101
|
+
signUp: (email: string, password: string) => Promise<void>;
|
|
102
|
+
signOut: () => Promise<void>;
|
|
103
|
+
updateUser: (data: Partial<InsforgeUser>) => Promise<void>;
|
|
104
|
+
sendVerificationCode: (email: string, type: 'signup' | 'signin') => Promise<void>;
|
|
105
|
+
verifySignUpCode: (email: string, password: string, code: string) => Promise<void>;
|
|
106
|
+
verifySignInCode: (email: string, code: string) => Promise<void>;
|
|
107
|
+
oauthProviders: OAuthProvider[];
|
|
108
|
+
isConfigLoaded: boolean;
|
|
109
|
+
baseUrl: string;
|
|
111
110
|
}
|
|
112
|
-
interface
|
|
111
|
+
interface InsforgeProviderProps {
|
|
113
112
|
children: ReactNode;
|
|
114
113
|
baseUrl: string;
|
|
114
|
+
frontendUrl?: string;
|
|
115
|
+
onAuthChange?: (user: InsforgeUser | null) => void;
|
|
116
|
+
useBuiltInAuth?: boolean;
|
|
115
117
|
}
|
|
116
|
-
declare function
|
|
117
|
-
declare function
|
|
118
|
+
declare function InsforgeProvider({ children, baseUrl, frontendUrl, onAuthChange, useBuiltInAuth }: InsforgeProviderProps): react_jsx_runtime.JSX.Element;
|
|
119
|
+
declare function useInsforge(): InsforgeContextValue;
|
|
118
120
|
|
|
119
|
-
declare function useAuth():
|
|
121
|
+
declare function useAuth(): {
|
|
122
|
+
signIn: (email: string, password: string) => Promise<void>;
|
|
123
|
+
signUp: (email: string, password: string) => Promise<void>;
|
|
124
|
+
signOut: () => Promise<void>;
|
|
125
|
+
isLoaded: boolean;
|
|
126
|
+
isSignedIn: boolean;
|
|
127
|
+
};
|
|
120
128
|
|
|
121
129
|
declare function useUser(): {
|
|
122
130
|
user: InsforgeUser | null;
|
|
123
131
|
isLoaded: boolean;
|
|
132
|
+
updateUser: (data: Partial<InsforgeUser>) => Promise<void>;
|
|
133
|
+
setUser: (user: InsforgeUser | null) => void;
|
|
124
134
|
};
|
|
125
135
|
|
|
126
136
|
declare function useSession(): {
|
|
127
137
|
session: InsforgeSession | null;
|
|
128
138
|
isLoaded: boolean;
|
|
129
|
-
isSignedIn: boolean;
|
|
130
139
|
};
|
|
131
140
|
|
|
132
|
-
declare function useOAuthProviders():
|
|
141
|
+
declare function useOAuthProviders(): {
|
|
142
|
+
providers: OAuthProvider[];
|
|
143
|
+
isLoaded: boolean;
|
|
144
|
+
};
|
|
133
145
|
|
|
134
|
-
declare function SignIn({
|
|
146
|
+
declare function SignIn({ afterSignInUrl, appearance, title, subtitle, emailLabel, emailPlaceholder, passwordLabel, passwordPlaceholder, forgotPasswordText, submitButtonText, loadingButtonText, signUpText, signUpLinkText, signUpUrl, dividerText, onSuccess, onError, }: SignInProps): react_jsx_runtime.JSX.Element;
|
|
135
147
|
|
|
136
|
-
declare function SignUp({
|
|
148
|
+
declare function SignUp({ afterSignUpUrl, appearance, title, subtitle, emailLabel, emailPlaceholder, passwordLabel, passwordPlaceholder, submitButtonText, loadingButtonText, verifyButtonText, loadingVerifyButtonText, verifiedButtonText, signInText, signInLinkText, signInUrl, dividerText, onSuccess, onError, }: SignUpProps): react_jsx_runtime.JSX.Element;
|
|
137
149
|
|
|
138
150
|
declare function UserButton({ afterSignOutUrl, mode, appearance, }: UserButtonProps): react_jsx_runtime.JSX.Element | null;
|
|
139
151
|
|
|
@@ -143,4 +155,104 @@ declare function SignedOut({ children }: ConditionalProps): react_jsx_runtime.JS
|
|
|
143
155
|
|
|
144
156
|
declare function Protect({ children, fallback, redirectTo, condition, }: ProtectProps): string | number | bigint | true | Iterable<react.ReactNode> | Promise<react.AwaitedReactNode> | react_jsx_runtime.JSX.Element | null;
|
|
145
157
|
|
|
146
|
-
|
|
158
|
+
interface AuthContainerProps {
|
|
159
|
+
children: ReactNode;
|
|
160
|
+
style?: CSSProperties;
|
|
161
|
+
}
|
|
162
|
+
declare function AuthContainer({ children, style }: AuthContainerProps): react_jsx_runtime.JSX.Element;
|
|
163
|
+
|
|
164
|
+
interface AuthHeaderProps {
|
|
165
|
+
title: string;
|
|
166
|
+
subtitle?: string;
|
|
167
|
+
}
|
|
168
|
+
declare function AuthHeader({ title, subtitle }: AuthHeaderProps): react_jsx_runtime.JSX.Element;
|
|
169
|
+
|
|
170
|
+
interface AuthErrorBannerProps {
|
|
171
|
+
error: string;
|
|
172
|
+
}
|
|
173
|
+
declare function AuthErrorBanner({ error }: AuthErrorBannerProps): react_jsx_runtime.JSX.Element | null;
|
|
174
|
+
|
|
175
|
+
interface AuthFormFieldProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
176
|
+
label: string;
|
|
177
|
+
id: string;
|
|
178
|
+
}
|
|
179
|
+
declare function AuthFormField({ label, id, className, ...props }: AuthFormFieldProps): react_jsx_runtime.JSX.Element;
|
|
180
|
+
|
|
181
|
+
interface AuthPasswordFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
182
|
+
label: string;
|
|
183
|
+
id: string;
|
|
184
|
+
showStrengthIndicator?: boolean;
|
|
185
|
+
forgotPasswordLink?: {
|
|
186
|
+
href: string;
|
|
187
|
+
text?: string;
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
declare function AuthPasswordField({ label, id, showStrengthIndicator, forgotPasswordLink, value, className, onFocus, ...props }: AuthPasswordFieldProps): react_jsx_runtime.JSX.Element;
|
|
191
|
+
|
|
192
|
+
interface AuthSubmitButtonProps {
|
|
193
|
+
children: ReactNode;
|
|
194
|
+
isLoading?: boolean;
|
|
195
|
+
confirmed?: boolean;
|
|
196
|
+
disabled?: boolean;
|
|
197
|
+
style?: CSSProperties;
|
|
198
|
+
}
|
|
199
|
+
declare function AuthSubmitButton({ children, isLoading, confirmed, disabled, style, }: AuthSubmitButtonProps): react_jsx_runtime.JSX.Element;
|
|
200
|
+
|
|
201
|
+
interface AuthDividerProps {
|
|
202
|
+
text?: string;
|
|
203
|
+
}
|
|
204
|
+
declare function AuthDivider({ text }: AuthDividerProps): react_jsx_runtime.JSX.Element;
|
|
205
|
+
|
|
206
|
+
interface AuthLinkProps {
|
|
207
|
+
text: string;
|
|
208
|
+
linkText: string;
|
|
209
|
+
href: string;
|
|
210
|
+
}
|
|
211
|
+
declare function AuthLink({ text, linkText, href }: AuthLinkProps): react_jsx_runtime.JSX.Element;
|
|
212
|
+
|
|
213
|
+
interface AuthOAuthProvidersProps {
|
|
214
|
+
providers: OAuthProvider[];
|
|
215
|
+
onClick: (provider: OAuthProvider) => void;
|
|
216
|
+
disabled?: boolean;
|
|
217
|
+
loading: OAuthProvider | null;
|
|
218
|
+
}
|
|
219
|
+
declare function AuthOAuthProviders({ providers, onClick, disabled, loading, }: AuthOAuthProvidersProps): react_jsx_runtime.JSX.Element | null;
|
|
220
|
+
|
|
221
|
+
interface AuthBrandingProps {
|
|
222
|
+
text?: string;
|
|
223
|
+
href?: string;
|
|
224
|
+
}
|
|
225
|
+
declare function AuthBranding({ text, href }: AuthBrandingProps): react_jsx_runtime.JSX.Element;
|
|
226
|
+
|
|
227
|
+
type DisplayMode = 'full' | 'short' | 'icon';
|
|
228
|
+
interface AuthOAuthButtonProps {
|
|
229
|
+
provider: OAuthProvider;
|
|
230
|
+
onClick: (provider: OAuthProvider) => void;
|
|
231
|
+
disabled?: boolean;
|
|
232
|
+
loading?: boolean;
|
|
233
|
+
displayMode?: DisplayMode;
|
|
234
|
+
style?: React.CSSProperties;
|
|
235
|
+
}
|
|
236
|
+
declare function AuthOAuthButton({ provider, onClick, disabled, loading, displayMode, style }: AuthOAuthButtonProps): react_jsx_runtime.JSX.Element | null;
|
|
237
|
+
|
|
238
|
+
interface AuthPasswordStrengthIndicatorProps {
|
|
239
|
+
password: string;
|
|
240
|
+
}
|
|
241
|
+
declare function validatePasswordStrength(password: string): boolean;
|
|
242
|
+
declare function AuthPasswordStrengthIndicator({ password }: AuthPasswordStrengthIndicatorProps): react_jsx_runtime.JSX.Element;
|
|
243
|
+
|
|
244
|
+
interface AuthVerificationCodeInputProps {
|
|
245
|
+
length?: number;
|
|
246
|
+
value: string;
|
|
247
|
+
email: string;
|
|
248
|
+
onChange: (value: string) => void;
|
|
249
|
+
disabled?: boolean;
|
|
250
|
+
}
|
|
251
|
+
declare function AuthVerificationCodeInput({ length, value, email, onChange, disabled, }: AuthVerificationCodeInputProps): react_jsx_runtime.JSX.Element;
|
|
252
|
+
|
|
253
|
+
declare const OAUTH_PROVIDER_CONFIG: Record<OAuthProvider, OAuthProviderConfig>;
|
|
254
|
+
declare function getProviderConfig(provider: OAuthProvider): OAuthProviderConfig | null;
|
|
255
|
+
declare function getProviderName(provider: OAuthProvider): string;
|
|
256
|
+
declare function isProviderSupported(provider: string): provider is OAuthProvider;
|
|
257
|
+
|
|
258
|
+
export { AuthBranding, AuthContainer, AuthDivider, AuthErrorBanner, AuthFormField, AuthHeader, AuthLink, AuthOAuthButton, AuthOAuthProviders, AuthPasswordField, AuthPasswordStrengthIndicator, AuthSubmitButton, AuthVerificationCodeInput, type ConditionalProps, InsforgeProvider, type InsforgeSession, type InsforgeUser, OAUTH_PROVIDER_CONFIG, type OAuthProvider, type OAuthProviderConfig, Protect, type ProtectProps, SignIn, type SignInProps, SignUp, type SignUpProps, SignedIn, SignedOut, UserButton, type UserButtonProps, getProviderConfig, getProviderName, isProviderSupported, useAuth, useInsforge, useOAuthProviders, useSession, useUser, validatePasswordStrength };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
|
-
import { ReactNode } from 'react';
|
|
3
|
+
import { ReactNode, CSSProperties, InputHTMLAttributes } from 'react';
|
|
4
4
|
|
|
5
5
|
interface InsforgeUser {
|
|
6
6
|
id: string;
|
|
@@ -19,25 +19,8 @@ interface InsforgeSession {
|
|
|
19
19
|
expiresAt: string;
|
|
20
20
|
createdAt: string;
|
|
21
21
|
}
|
|
22
|
-
interface AuthContextValue {
|
|
23
|
-
user: InsforgeUser | null;
|
|
24
|
-
session: InsforgeSession | null;
|
|
25
|
-
isLoaded: boolean;
|
|
26
|
-
isSignedIn: boolean;
|
|
27
|
-
signIn: (email: string, password: string) => Promise<void>;
|
|
28
|
-
signUp: (email: string, password: string) => Promise<void>;
|
|
29
|
-
signOut: () => Promise<void>;
|
|
30
|
-
updateUser: (data: Partial<InsforgeUser>) => Promise<void>;
|
|
31
|
-
}
|
|
32
|
-
interface AuthProviderProps {
|
|
33
|
-
children: ReactNode;
|
|
34
|
-
baseUrl: string;
|
|
35
|
-
onAuthChange?: (user: InsforgeUser | null) => void;
|
|
36
|
-
}
|
|
37
22
|
interface SignInProps {
|
|
38
|
-
baseUrl: string;
|
|
39
23
|
afterSignInUrl?: string;
|
|
40
|
-
providers?: OAuthProvider[];
|
|
41
24
|
appearance?: {
|
|
42
25
|
container?: React.CSSProperties;
|
|
43
26
|
form?: React.CSSProperties;
|
|
@@ -60,9 +43,7 @@ interface SignInProps {
|
|
|
60
43
|
onError?: (error: Error) => void;
|
|
61
44
|
}
|
|
62
45
|
interface SignUpProps {
|
|
63
|
-
baseUrl: string;
|
|
64
46
|
afterSignUpUrl?: string;
|
|
65
|
-
providers?: OAuthProvider[];
|
|
66
47
|
appearance?: {
|
|
67
48
|
container?: React.CSSProperties;
|
|
68
49
|
form?: React.CSSProperties;
|
|
@@ -76,6 +57,9 @@ interface SignUpProps {
|
|
|
76
57
|
passwordPlaceholder?: string;
|
|
77
58
|
submitButtonText?: string;
|
|
78
59
|
loadingButtonText?: string;
|
|
60
|
+
verifyButtonText?: string;
|
|
61
|
+
loadingVerifyButtonText?: string;
|
|
62
|
+
verifiedButtonText?: string;
|
|
79
63
|
signInText?: string;
|
|
80
64
|
signInLinkText?: string;
|
|
81
65
|
signInUrl?: string;
|
|
@@ -100,40 +84,68 @@ interface ProtectProps {
|
|
|
100
84
|
interface ConditionalProps {
|
|
101
85
|
children: ReactNode;
|
|
102
86
|
}
|
|
103
|
-
type OAuthProvider = 'google' | 'github';
|
|
104
|
-
|
|
105
|
-
|
|
87
|
+
type OAuthProvider = 'google' | 'github' | 'discord' | 'facebook' | 'linkedin' | 'instagram' | 'tiktok' | 'apple' | 'x' | 'spotify' | 'microsoft';
|
|
88
|
+
interface OAuthProviderConfig {
|
|
89
|
+
name: string;
|
|
90
|
+
svg: JSX.Element;
|
|
91
|
+
className: string;
|
|
92
|
+
}
|
|
106
93
|
|
|
107
|
-
interface
|
|
108
|
-
|
|
94
|
+
interface InsforgeContextValue {
|
|
95
|
+
user: InsforgeUser | null;
|
|
96
|
+
session: InsforgeSession | null;
|
|
109
97
|
isLoaded: boolean;
|
|
110
|
-
|
|
98
|
+
isSignedIn: boolean;
|
|
99
|
+
setUser: (user: InsforgeUser | null) => void;
|
|
100
|
+
signIn: (email: string, password: string) => Promise<void>;
|
|
101
|
+
signUp: (email: string, password: string) => Promise<void>;
|
|
102
|
+
signOut: () => Promise<void>;
|
|
103
|
+
updateUser: (data: Partial<InsforgeUser>) => Promise<void>;
|
|
104
|
+
sendVerificationCode: (email: string, type: 'signup' | 'signin') => Promise<void>;
|
|
105
|
+
verifySignUpCode: (email: string, password: string, code: string) => Promise<void>;
|
|
106
|
+
verifySignInCode: (email: string, code: string) => Promise<void>;
|
|
107
|
+
oauthProviders: OAuthProvider[];
|
|
108
|
+
isConfigLoaded: boolean;
|
|
109
|
+
baseUrl: string;
|
|
111
110
|
}
|
|
112
|
-
interface
|
|
111
|
+
interface InsforgeProviderProps {
|
|
113
112
|
children: ReactNode;
|
|
114
113
|
baseUrl: string;
|
|
114
|
+
frontendUrl?: string;
|
|
115
|
+
onAuthChange?: (user: InsforgeUser | null) => void;
|
|
116
|
+
useBuiltInAuth?: boolean;
|
|
115
117
|
}
|
|
116
|
-
declare function
|
|
117
|
-
declare function
|
|
118
|
+
declare function InsforgeProvider({ children, baseUrl, frontendUrl, onAuthChange, useBuiltInAuth }: InsforgeProviderProps): react_jsx_runtime.JSX.Element;
|
|
119
|
+
declare function useInsforge(): InsforgeContextValue;
|
|
118
120
|
|
|
119
|
-
declare function useAuth():
|
|
121
|
+
declare function useAuth(): {
|
|
122
|
+
signIn: (email: string, password: string) => Promise<void>;
|
|
123
|
+
signUp: (email: string, password: string) => Promise<void>;
|
|
124
|
+
signOut: () => Promise<void>;
|
|
125
|
+
isLoaded: boolean;
|
|
126
|
+
isSignedIn: boolean;
|
|
127
|
+
};
|
|
120
128
|
|
|
121
129
|
declare function useUser(): {
|
|
122
130
|
user: InsforgeUser | null;
|
|
123
131
|
isLoaded: boolean;
|
|
132
|
+
updateUser: (data: Partial<InsforgeUser>) => Promise<void>;
|
|
133
|
+
setUser: (user: InsforgeUser | null) => void;
|
|
124
134
|
};
|
|
125
135
|
|
|
126
136
|
declare function useSession(): {
|
|
127
137
|
session: InsforgeSession | null;
|
|
128
138
|
isLoaded: boolean;
|
|
129
|
-
isSignedIn: boolean;
|
|
130
139
|
};
|
|
131
140
|
|
|
132
|
-
declare function useOAuthProviders():
|
|
141
|
+
declare function useOAuthProviders(): {
|
|
142
|
+
providers: OAuthProvider[];
|
|
143
|
+
isLoaded: boolean;
|
|
144
|
+
};
|
|
133
145
|
|
|
134
|
-
declare function SignIn({
|
|
146
|
+
declare function SignIn({ afterSignInUrl, appearance, title, subtitle, emailLabel, emailPlaceholder, passwordLabel, passwordPlaceholder, forgotPasswordText, submitButtonText, loadingButtonText, signUpText, signUpLinkText, signUpUrl, dividerText, onSuccess, onError, }: SignInProps): react_jsx_runtime.JSX.Element;
|
|
135
147
|
|
|
136
|
-
declare function SignUp({
|
|
148
|
+
declare function SignUp({ afterSignUpUrl, appearance, title, subtitle, emailLabel, emailPlaceholder, passwordLabel, passwordPlaceholder, submitButtonText, loadingButtonText, verifyButtonText, loadingVerifyButtonText, verifiedButtonText, signInText, signInLinkText, signInUrl, dividerText, onSuccess, onError, }: SignUpProps): react_jsx_runtime.JSX.Element;
|
|
137
149
|
|
|
138
150
|
declare function UserButton({ afterSignOutUrl, mode, appearance, }: UserButtonProps): react_jsx_runtime.JSX.Element | null;
|
|
139
151
|
|
|
@@ -143,4 +155,104 @@ declare function SignedOut({ children }: ConditionalProps): react_jsx_runtime.JS
|
|
|
143
155
|
|
|
144
156
|
declare function Protect({ children, fallback, redirectTo, condition, }: ProtectProps): string | number | bigint | true | Iterable<react.ReactNode> | Promise<react.AwaitedReactNode> | react_jsx_runtime.JSX.Element | null;
|
|
145
157
|
|
|
146
|
-
|
|
158
|
+
interface AuthContainerProps {
|
|
159
|
+
children: ReactNode;
|
|
160
|
+
style?: CSSProperties;
|
|
161
|
+
}
|
|
162
|
+
declare function AuthContainer({ children, style }: AuthContainerProps): react_jsx_runtime.JSX.Element;
|
|
163
|
+
|
|
164
|
+
interface AuthHeaderProps {
|
|
165
|
+
title: string;
|
|
166
|
+
subtitle?: string;
|
|
167
|
+
}
|
|
168
|
+
declare function AuthHeader({ title, subtitle }: AuthHeaderProps): react_jsx_runtime.JSX.Element;
|
|
169
|
+
|
|
170
|
+
interface AuthErrorBannerProps {
|
|
171
|
+
error: string;
|
|
172
|
+
}
|
|
173
|
+
declare function AuthErrorBanner({ error }: AuthErrorBannerProps): react_jsx_runtime.JSX.Element | null;
|
|
174
|
+
|
|
175
|
+
interface AuthFormFieldProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
176
|
+
label: string;
|
|
177
|
+
id: string;
|
|
178
|
+
}
|
|
179
|
+
declare function AuthFormField({ label, id, className, ...props }: AuthFormFieldProps): react_jsx_runtime.JSX.Element;
|
|
180
|
+
|
|
181
|
+
interface AuthPasswordFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
182
|
+
label: string;
|
|
183
|
+
id: string;
|
|
184
|
+
showStrengthIndicator?: boolean;
|
|
185
|
+
forgotPasswordLink?: {
|
|
186
|
+
href: string;
|
|
187
|
+
text?: string;
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
declare function AuthPasswordField({ label, id, showStrengthIndicator, forgotPasswordLink, value, className, onFocus, ...props }: AuthPasswordFieldProps): react_jsx_runtime.JSX.Element;
|
|
191
|
+
|
|
192
|
+
interface AuthSubmitButtonProps {
|
|
193
|
+
children: ReactNode;
|
|
194
|
+
isLoading?: boolean;
|
|
195
|
+
confirmed?: boolean;
|
|
196
|
+
disabled?: boolean;
|
|
197
|
+
style?: CSSProperties;
|
|
198
|
+
}
|
|
199
|
+
declare function AuthSubmitButton({ children, isLoading, confirmed, disabled, style, }: AuthSubmitButtonProps): react_jsx_runtime.JSX.Element;
|
|
200
|
+
|
|
201
|
+
interface AuthDividerProps {
|
|
202
|
+
text?: string;
|
|
203
|
+
}
|
|
204
|
+
declare function AuthDivider({ text }: AuthDividerProps): react_jsx_runtime.JSX.Element;
|
|
205
|
+
|
|
206
|
+
interface AuthLinkProps {
|
|
207
|
+
text: string;
|
|
208
|
+
linkText: string;
|
|
209
|
+
href: string;
|
|
210
|
+
}
|
|
211
|
+
declare function AuthLink({ text, linkText, href }: AuthLinkProps): react_jsx_runtime.JSX.Element;
|
|
212
|
+
|
|
213
|
+
interface AuthOAuthProvidersProps {
|
|
214
|
+
providers: OAuthProvider[];
|
|
215
|
+
onClick: (provider: OAuthProvider) => void;
|
|
216
|
+
disabled?: boolean;
|
|
217
|
+
loading: OAuthProvider | null;
|
|
218
|
+
}
|
|
219
|
+
declare function AuthOAuthProviders({ providers, onClick, disabled, loading, }: AuthOAuthProvidersProps): react_jsx_runtime.JSX.Element | null;
|
|
220
|
+
|
|
221
|
+
interface AuthBrandingProps {
|
|
222
|
+
text?: string;
|
|
223
|
+
href?: string;
|
|
224
|
+
}
|
|
225
|
+
declare function AuthBranding({ text, href }: AuthBrandingProps): react_jsx_runtime.JSX.Element;
|
|
226
|
+
|
|
227
|
+
type DisplayMode = 'full' | 'short' | 'icon';
|
|
228
|
+
interface AuthOAuthButtonProps {
|
|
229
|
+
provider: OAuthProvider;
|
|
230
|
+
onClick: (provider: OAuthProvider) => void;
|
|
231
|
+
disabled?: boolean;
|
|
232
|
+
loading?: boolean;
|
|
233
|
+
displayMode?: DisplayMode;
|
|
234
|
+
style?: React.CSSProperties;
|
|
235
|
+
}
|
|
236
|
+
declare function AuthOAuthButton({ provider, onClick, disabled, loading, displayMode, style }: AuthOAuthButtonProps): react_jsx_runtime.JSX.Element | null;
|
|
237
|
+
|
|
238
|
+
interface AuthPasswordStrengthIndicatorProps {
|
|
239
|
+
password: string;
|
|
240
|
+
}
|
|
241
|
+
declare function validatePasswordStrength(password: string): boolean;
|
|
242
|
+
declare function AuthPasswordStrengthIndicator({ password }: AuthPasswordStrengthIndicatorProps): react_jsx_runtime.JSX.Element;
|
|
243
|
+
|
|
244
|
+
interface AuthVerificationCodeInputProps {
|
|
245
|
+
length?: number;
|
|
246
|
+
value: string;
|
|
247
|
+
email: string;
|
|
248
|
+
onChange: (value: string) => void;
|
|
249
|
+
disabled?: boolean;
|
|
250
|
+
}
|
|
251
|
+
declare function AuthVerificationCodeInput({ length, value, email, onChange, disabled, }: AuthVerificationCodeInputProps): react_jsx_runtime.JSX.Element;
|
|
252
|
+
|
|
253
|
+
declare const OAUTH_PROVIDER_CONFIG: Record<OAuthProvider, OAuthProviderConfig>;
|
|
254
|
+
declare function getProviderConfig(provider: OAuthProvider): OAuthProviderConfig | null;
|
|
255
|
+
declare function getProviderName(provider: OAuthProvider): string;
|
|
256
|
+
declare function isProviderSupported(provider: string): provider is OAuthProvider;
|
|
257
|
+
|
|
258
|
+
export { AuthBranding, AuthContainer, AuthDivider, AuthErrorBanner, AuthFormField, AuthHeader, AuthLink, AuthOAuthButton, AuthOAuthProviders, AuthPasswordField, AuthPasswordStrengthIndicator, AuthSubmitButton, AuthVerificationCodeInput, type ConditionalProps, InsforgeProvider, type InsforgeSession, type InsforgeUser, OAUTH_PROVIDER_CONFIG, type OAuthProvider, type OAuthProviderConfig, Protect, type ProtectProps, SignIn, type SignInProps, SignUp, type SignUpProps, SignedIn, SignedOut, UserButton, type UserButtonProps, getProviderConfig, getProviderName, isProviderSupported, useAuth, useInsforge, useOAuthProviders, useSession, useUser, validatePasswordStrength };
|