@adminiumjs/ui 0.1.0-rc.1
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/LICENSE +661 -0
- package/dist/components/alert/Alert.d.ts +27 -0
- package/dist/components/alert/Alert.d.ts.map +1 -0
- package/dist/components/alert/Alert.js +25 -0
- package/dist/components/alert/Alert.js.map +1 -0
- package/dist/components/alert/index.d.ts +3 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/index.js +2 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/auth-layout/AuthLayout.d.ts +54 -0
- package/dist/components/auth-layout/AuthLayout.d.ts.map +1 -0
- package/dist/components/auth-layout/AuthLayout.js +30 -0
- package/dist/components/auth-layout/AuthLayout.js.map +1 -0
- package/dist/components/auth-layout/index.d.ts +3 -0
- package/dist/components/auth-layout/index.d.ts.map +1 -0
- package/dist/components/auth-layout/index.js +2 -0
- package/dist/components/auth-layout/index.js.map +1 -0
- package/dist/components/auth-screens/ForgotPasswordForm.d.ts +80 -0
- package/dist/components/auth-screens/ForgotPasswordForm.d.ts.map +1 -0
- package/dist/components/auth-screens/ForgotPasswordForm.js +50 -0
- package/dist/components/auth-screens/ForgotPasswordForm.js.map +1 -0
- package/dist/components/auth-screens/ResetPasswordForm.d.ts +55 -0
- package/dist/components/auth-screens/ResetPasswordForm.d.ts.map +1 -0
- package/dist/components/auth-screens/ResetPasswordForm.js +45 -0
- package/dist/components/auth-screens/ResetPasswordForm.js.map +1 -0
- package/dist/components/auth-screens/SignInForm.d.ts +67 -0
- package/dist/components/auth-screens/SignInForm.d.ts.map +1 -0
- package/dist/components/auth-screens/SignInForm.js +47 -0
- package/dist/components/auth-screens/SignInForm.js.map +1 -0
- package/dist/components/auth-screens/TwoFactorForm.d.ts +54 -0
- package/dist/components/auth-screens/TwoFactorForm.d.ts.map +1 -0
- package/dist/components/auth-screens/TwoFactorForm.js +47 -0
- package/dist/components/auth-screens/TwoFactorForm.js.map +1 -0
- package/dist/components/auth-screens/index.d.ts +9 -0
- package/dist/components/auth-screens/index.d.ts.map +1 -0
- package/dist/components/auth-screens/index.js +5 -0
- package/dist/components/auth-screens/index.js.map +1 -0
- package/dist/components/autosave-indicator/AutosaveIndicator.d.ts +28 -0
- package/dist/components/autosave-indicator/AutosaveIndicator.d.ts.map +1 -0
- package/dist/components/autosave-indicator/AutosaveIndicator.js +14 -0
- package/dist/components/autosave-indicator/AutosaveIndicator.js.map +1 -0
- package/dist/components/autosave-indicator/index.d.ts +3 -0
- package/dist/components/autosave-indicator/index.d.ts.map +1 -0
- package/dist/components/autosave-indicator/index.js +2 -0
- package/dist/components/autosave-indicator/index.js.map +1 -0
- package/dist/components/avatar/Avatar.d.ts +48 -0
- package/dist/components/avatar/Avatar.d.ts.map +1 -0
- package/dist/components/avatar/Avatar.js +104 -0
- package/dist/components/avatar/Avatar.js.map +1 -0
- package/dist/components/avatar/index.d.ts +3 -0
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/avatar/index.js +2 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/avatar-stack/AvatarStack.d.ts +21 -0
- package/dist/components/avatar-stack/AvatarStack.d.ts.map +1 -0
- package/dist/components/avatar-stack/AvatarStack.js +16 -0
- package/dist/components/avatar-stack/AvatarStack.js.map +1 -0
- package/dist/components/avatar-stack/index.d.ts +3 -0
- package/dist/components/avatar-stack/index.d.ts.map +1 -0
- package/dist/components/avatar-stack/index.js +2 -0
- package/dist/components/avatar-stack/index.js.map +1 -0
- package/dist/components/badge/Badge.d.ts +22 -0
- package/dist/components/badge/Badge.d.ts.map +1 -0
- package/dist/components/badge/Badge.js +21 -0
- package/dist/components/badge/Badge.js.map +1 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/badge/index.js +6 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/banner/Banner.d.ts +21 -0
- package/dist/components/banner/Banner.d.ts.map +1 -0
- package/dist/components/banner/Banner.js +24 -0
- package/dist/components/banner/Banner.js.map +1 -0
- package/dist/components/banner/index.d.ts +3 -0
- package/dist/components/banner/index.d.ts.map +1 -0
- package/dist/components/banner/index.js +2 -0
- package/dist/components/banner/index.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +22 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js +24 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/breadcrumbs/index.d.ts +3 -0
- package/dist/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/breadcrumbs/index.js +2 -0
- package/dist/components/breadcrumbs/index.js.map +1 -0
- package/dist/components/bulk-action-bar/BulkActionBar.d.ts +35 -0
- package/dist/components/bulk-action-bar/BulkActionBar.d.ts.map +1 -0
- package/dist/components/bulk-action-bar/BulkActionBar.js +17 -0
- package/dist/components/bulk-action-bar/BulkActionBar.js.map +1 -0
- package/dist/components/bulk-action-bar/index.d.ts +3 -0
- package/dist/components/bulk-action-bar/index.d.ts.map +1 -0
- package/dist/components/bulk-action-bar/index.js +2 -0
- package/dist/components/bulk-action-bar/index.js.map +1 -0
- package/dist/components/button/Button.d.ts +27 -0
- package/dist/components/button/Button.d.ts.map +1 -0
- package/dist/components/button/Button.js +43 -0
- package/dist/components/button/Button.js.map +1 -0
- package/dist/components/button/index.d.ts +3 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/index.js +2 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/card/Card.d.ts +27 -0
- package/dist/components/card/Card.d.ts.map +1 -0
- package/dist/components/card/Card.js +41 -0
- package/dist/components/card/Card.js.map +1 -0
- package/dist/components/card/index.d.ts +3 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js +2 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/checkbox/Checkbox.d.ts +13 -0
- package/dist/components/checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/Checkbox.js +16 -0
- package/dist/components/checkbox/Checkbox.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/index.js +2 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/chip-input/ChipInput.d.ts +29 -0
- package/dist/components/chip-input/ChipInput.d.ts.map +1 -0
- package/dist/components/chip-input/ChipInput.js +96 -0
- package/dist/components/chip-input/ChipInput.js.map +1 -0
- package/dist/components/chip-input/index.d.ts +3 -0
- package/dist/components/chip-input/index.d.ts.map +1 -0
- package/dist/components/chip-input/index.js +2 -0
- package/dist/components/chip-input/index.js.map +1 -0
- package/dist/components/choice-chips/ChoiceChips.d.ts +40 -0
- package/dist/components/choice-chips/ChoiceChips.d.ts.map +1 -0
- package/dist/components/choice-chips/ChoiceChips.js +76 -0
- package/dist/components/choice-chips/ChoiceChips.js.map +1 -0
- package/dist/components/choice-chips/index.d.ts +3 -0
- package/dist/components/choice-chips/index.d.ts.map +1 -0
- package/dist/components/choice-chips/index.js +2 -0
- package/dist/components/choice-chips/index.js.map +1 -0
- package/dist/components/combobox/Combobox.d.ts +54 -0
- package/dist/components/combobox/Combobox.d.ts.map +1 -0
- package/dist/components/combobox/Combobox.js +127 -0
- package/dist/components/combobox/Combobox.js.map +1 -0
- package/dist/components/combobox/index.d.ts +3 -0
- package/dist/components/combobox/index.d.ts.map +1 -0
- package/dist/components/combobox/index.js +2 -0
- package/dist/components/combobox/index.js.map +1 -0
- package/dist/components/command-palette/CommandPalette.d.ts +62 -0
- package/dist/components/command-palette/CommandPalette.d.ts.map +1 -0
- package/dist/components/command-palette/CommandPalette.js +91 -0
- package/dist/components/command-palette/CommandPalette.js.map +1 -0
- package/dist/components/command-palette/index.d.ts +4 -0
- package/dist/components/command-palette/index.d.ts.map +1 -0
- package/dist/components/command-palette/index.js +3 -0
- package/dist/components/command-palette/index.js.map +1 -0
- package/dist/components/command-palette/useCommandK.d.ts +9 -0
- package/dist/components/command-palette/useCommandK.d.ts.map +1 -0
- package/dist/components/command-palette/useCommandK.js +24 -0
- package/dist/components/command-palette/useCommandK.js.map +1 -0
- package/dist/components/confirm-modal/ConfirmModal.d.ts +38 -0
- package/dist/components/confirm-modal/ConfirmModal.d.ts.map +1 -0
- package/dist/components/confirm-modal/ConfirmModal.js +40 -0
- package/dist/components/confirm-modal/ConfirmModal.js.map +1 -0
- package/dist/components/confirm-modal/index.d.ts +3 -0
- package/dist/components/confirm-modal/index.d.ts.map +1 -0
- package/dist/components/confirm-modal/index.js +2 -0
- package/dist/components/confirm-modal/index.js.map +1 -0
- package/dist/components/count-badge/CountBadge.d.ts +13 -0
- package/dist/components/count-badge/CountBadge.d.ts.map +1 -0
- package/dist/components/count-badge/CountBadge.js +20 -0
- package/dist/components/count-badge/CountBadge.js.map +1 -0
- package/dist/components/count-badge/index.d.ts +3 -0
- package/dist/components/count-badge/index.d.ts.map +1 -0
- package/dist/components/count-badge/index.js +2 -0
- package/dist/components/count-badge/index.js.map +1 -0
- package/dist/components/date-input/DateInput.d.ts +53 -0
- package/dist/components/date-input/DateInput.d.ts.map +1 -0
- package/dist/components/date-input/DateInput.js +38 -0
- package/dist/components/date-input/DateInput.js.map +1 -0
- package/dist/components/date-input/index.d.ts +3 -0
- package/dist/components/date-input/index.d.ts.map +1 -0
- package/dist/components/date-input/index.js +2 -0
- package/dist/components/date-input/index.js.map +1 -0
- package/dist/components/delta-pill/DeltaPill.d.ts +25 -0
- package/dist/components/delta-pill/DeltaPill.d.ts.map +1 -0
- package/dist/components/delta-pill/DeltaPill.js +36 -0
- package/dist/components/delta-pill/DeltaPill.js.map +1 -0
- package/dist/components/delta-pill/index.d.ts +3 -0
- package/dist/components/delta-pill/index.d.ts.map +1 -0
- package/dist/components/delta-pill/index.js +2 -0
- package/dist/components/delta-pill/index.js.map +1 -0
- package/dist/components/divider/Divider.d.ts +15 -0
- package/dist/components/divider/Divider.d.ts.map +1 -0
- package/dist/components/divider/Divider.js +23 -0
- package/dist/components/divider/Divider.js.map +1 -0
- package/dist/components/divider/index.d.ts +3 -0
- package/dist/components/divider/index.d.ts.map +1 -0
- package/dist/components/divider/index.js +2 -0
- package/dist/components/divider/index.js.map +1 -0
- package/dist/components/drawer/Drawer.d.ts +44 -0
- package/dist/components/drawer/Drawer.d.ts.map +1 -0
- package/dist/components/drawer/Drawer.js +45 -0
- package/dist/components/drawer/Drawer.js.map +1 -0
- package/dist/components/drawer/index.d.ts +3 -0
- package/dist/components/drawer/index.d.ts.map +1 -0
- package/dist/components/drawer/index.js +2 -0
- package/dist/components/drawer/index.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenu.d.ts +35 -0
- package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenu.js +38 -0
- package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -0
- package/dist/components/dropdown-menu/index.d.ts +3 -0
- package/dist/components/dropdown-menu/index.d.ts.map +1 -0
- package/dist/components/dropdown-menu/index.js +2 -0
- package/dist/components/dropdown-menu/index.js.map +1 -0
- package/dist/components/empty-state/EmptyState.d.ts +26 -0
- package/dist/components/empty-state/EmptyState.d.ts.map +1 -0
- package/dist/components/empty-state/EmptyState.js +24 -0
- package/dist/components/empty-state/EmptyState.js.map +1 -0
- package/dist/components/empty-state/index.d.ts +3 -0
- package/dist/components/empty-state/index.d.ts.map +1 -0
- package/dist/components/empty-state/index.js +2 -0
- package/dist/components/empty-state/index.js.map +1 -0
- package/dist/components/filter-chip/FilterChip.d.ts +26 -0
- package/dist/components/filter-chip/FilterChip.d.ts.map +1 -0
- package/dist/components/filter-chip/FilterChip.js +17 -0
- package/dist/components/filter-chip/FilterChip.js.map +1 -0
- package/dist/components/filter-chip/index.d.ts +3 -0
- package/dist/components/filter-chip/index.d.ts.map +1 -0
- package/dist/components/filter-chip/index.js +2 -0
- package/dist/components/filter-chip/index.js.map +1 -0
- package/dist/components/form-field/FormField.d.ts +50 -0
- package/dist/components/form-field/FormField.d.ts.map +1 -0
- package/dist/components/form-field/FormField.js +31 -0
- package/dist/components/form-field/FormField.js.map +1 -0
- package/dist/components/form-field/index.d.ts +3 -0
- package/dist/components/form-field/index.d.ts.map +1 -0
- package/dist/components/form-field/index.js +2 -0
- package/dist/components/form-field/index.js.map +1 -0
- package/dist/components/icon/Icon.d.ts +36 -0
- package/dist/components/icon/Icon.d.ts.map +1 -0
- package/dist/components/icon/Icon.js +24 -0
- package/dist/components/icon/Icon.js.map +1 -0
- package/dist/components/icon/index.d.ts +3 -0
- package/dist/components/icon/index.d.ts.map +1 -0
- package/dist/components/icon/index.js +2 -0
- package/dist/components/icon/index.js.map +1 -0
- package/dist/components/icon-button/IconButton.d.ts +19 -0
- package/dist/components/icon-button/IconButton.d.ts.map +1 -0
- package/dist/components/icon-button/IconButton.js +31 -0
- package/dist/components/icon-button/IconButton.js.map +1 -0
- package/dist/components/icon-button/index.d.ts +3 -0
- package/dist/components/icon-button/index.d.ts.map +1 -0
- package/dist/components/icon-button/index.js +2 -0
- package/dist/components/icon-button/index.js.map +1 -0
- package/dist/components/icon-tile/IconTile.d.ts +24 -0
- package/dist/components/icon-tile/IconTile.d.ts.map +1 -0
- package/dist/components/icon-tile/IconTile.js +32 -0
- package/dist/components/icon-tile/IconTile.js.map +1 -0
- package/dist/components/icon-tile/index.d.ts +3 -0
- package/dist/components/icon-tile/index.d.ts.map +1 -0
- package/dist/components/icon-tile/index.js +2 -0
- package/dist/components/icon-tile/index.js.map +1 -0
- package/dist/components/input/Input.d.ts +28 -0
- package/dist/components/input/Input.d.ts.map +1 -0
- package/dist/components/input/Input.js +34 -0
- package/dist/components/input/Input.js.map +1 -0
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/index.d.ts.map +1 -0
- package/dist/components/input/index.js +2 -0
- package/dist/components/input/index.js.map +1 -0
- package/dist/components/input-group/InputGroup.d.ts +34 -0
- package/dist/components/input-group/InputGroup.d.ts.map +1 -0
- package/dist/components/input-group/InputGroup.js +23 -0
- package/dist/components/input-group/InputGroup.js.map +1 -0
- package/dist/components/input-group/index.d.ts +3 -0
- package/dist/components/input-group/index.d.ts.map +1 -0
- package/dist/components/input-group/index.js +2 -0
- package/dist/components/input-group/index.js.map +1 -0
- package/dist/components/kbd/Kbd.d.ts +8 -0
- package/dist/components/kbd/Kbd.d.ts.map +1 -0
- package/dist/components/kbd/Kbd.js +10 -0
- package/dist/components/kbd/Kbd.js.map +1 -0
- package/dist/components/kbd/index.d.ts +3 -0
- package/dist/components/kbd/index.d.ts.map +1 -0
- package/dist/components/kbd/index.js +2 -0
- package/dist/components/kbd/index.js.map +1 -0
- package/dist/components/key-value-list/KeyValueList.d.ts +27 -0
- package/dist/components/key-value-list/KeyValueList.d.ts.map +1 -0
- package/dist/components/key-value-list/KeyValueList.js +16 -0
- package/dist/components/key-value-list/KeyValueList.js.map +1 -0
- package/dist/components/key-value-list/index.d.ts +3 -0
- package/dist/components/key-value-list/index.d.ts.map +1 -0
- package/dist/components/key-value-list/index.js +2 -0
- package/dist/components/key-value-list/index.js.map +1 -0
- package/dist/components/label/Label.d.ts +14 -0
- package/dist/components/label/Label.d.ts.map +1 -0
- package/dist/components/label/Label.js +17 -0
- package/dist/components/label/Label.js.map +1 -0
- package/dist/components/label/index.d.ts +3 -0
- package/dist/components/label/index.d.ts.map +1 -0
- package/dist/components/label/index.js +2 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/modal/Modal.d.ts +48 -0
- package/dist/components/modal/Modal.d.ts.map +1 -0
- package/dist/components/modal/Modal.js +48 -0
- package/dist/components/modal/Modal.js.map +1 -0
- package/dist/components/modal/index.d.ts +3 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/modal/index.js +2 -0
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/mono-text/MonoText.d.ts +13 -0
- package/dist/components/mono-text/MonoText.d.ts.map +1 -0
- package/dist/components/mono-text/MonoText.js +14 -0
- package/dist/components/mono-text/MonoText.js.map +1 -0
- package/dist/components/mono-text/index.d.ts +3 -0
- package/dist/components/mono-text/index.d.ts.map +1 -0
- package/dist/components/mono-text/index.js +2 -0
- package/dist/components/mono-text/index.js.map +1 -0
- package/dist/components/number-stepper/NumberStepper.d.ts +29 -0
- package/dist/components/number-stepper/NumberStepper.d.ts.map +1 -0
- package/dist/components/number-stepper/NumberStepper.js +50 -0
- package/dist/components/number-stepper/NumberStepper.js.map +1 -0
- package/dist/components/number-stepper/index.d.ts +3 -0
- package/dist/components/number-stepper/index.d.ts.map +1 -0
- package/dist/components/number-stepper/index.js +2 -0
- package/dist/components/number-stepper/index.js.map +1 -0
- package/dist/components/otp-input/OtpInput.d.ts +30 -0
- package/dist/components/otp-input/OtpInput.d.ts.map +1 -0
- package/dist/components/otp-input/OtpInput.js +35 -0
- package/dist/components/otp-input/OtpInput.js.map +1 -0
- package/dist/components/otp-input/index.d.ts +3 -0
- package/dist/components/otp-input/index.d.ts.map +1 -0
- package/dist/components/otp-input/index.js +2 -0
- package/dist/components/otp-input/index.js.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +26 -0
- package/dist/components/pagination/Pagination.d.ts.map +1 -0
- package/dist/components/pagination/Pagination.js +34 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/components/pagination/index.d.ts +3 -0
- package/dist/components/pagination/index.d.ts.map +1 -0
- package/dist/components/pagination/index.js +2 -0
- package/dist/components/pagination/index.js.map +1 -0
- package/dist/components/password-strength/PasswordStrength.d.ts +29 -0
- package/dist/components/password-strength/PasswordStrength.d.ts.map +1 -0
- package/dist/components/password-strength/PasswordStrength.js +43 -0
- package/dist/components/password-strength/PasswordStrength.js.map +1 -0
- package/dist/components/password-strength/index.d.ts +3 -0
- package/dist/components/password-strength/index.d.ts.map +1 -0
- package/dist/components/password-strength/index.js +2 -0
- package/dist/components/password-strength/index.js.map +1 -0
- package/dist/components/permission-matrix/PermissionMatrix.d.ts +90 -0
- package/dist/components/permission-matrix/PermissionMatrix.d.ts.map +1 -0
- package/dist/components/permission-matrix/PermissionMatrix.js +62 -0
- package/dist/components/permission-matrix/PermissionMatrix.js.map +1 -0
- package/dist/components/permission-matrix/index.d.ts +3 -0
- package/dist/components/permission-matrix/index.d.ts.map +1 -0
- package/dist/components/permission-matrix/index.js +2 -0
- package/dist/components/permission-matrix/index.js.map +1 -0
- package/dist/components/popover/Popover.d.ts +19 -0
- package/dist/components/popover/Popover.d.ts.map +1 -0
- package/dist/components/popover/Popover.js +21 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/popover/index.d.ts +3 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popover/index.js +2 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/progress-bar/ProgressBar.d.ts +24 -0
- package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -0
- package/dist/components/progress-bar/ProgressBar.js +35 -0
- package/dist/components/progress-bar/ProgressBar.js.map +1 -0
- package/dist/components/progress-bar/index.d.ts +3 -0
- package/dist/components/progress-bar/index.d.ts.map +1 -0
- package/dist/components/progress-bar/index.js +2 -0
- package/dist/components/progress-bar/index.js.map +1 -0
- package/dist/components/radio/Radio.d.ts +25 -0
- package/dist/components/radio/Radio.d.ts.map +1 -0
- package/dist/components/radio/Radio.js +28 -0
- package/dist/components/radio/Radio.js.map +1 -0
- package/dist/components/radio/index.d.ts +3 -0
- package/dist/components/radio/index.d.ts.map +1 -0
- package/dist/components/radio/index.js +2 -0
- package/dist/components/radio/index.js.map +1 -0
- package/dist/components/radio-card/RadioCard.d.ts +22 -0
- package/dist/components/radio-card/RadioCard.d.ts.map +1 -0
- package/dist/components/radio-card/RadioCard.js +16 -0
- package/dist/components/radio-card/RadioCard.js.map +1 -0
- package/dist/components/radio-card/index.d.ts +3 -0
- package/dist/components/radio-card/index.d.ts.map +1 -0
- package/dist/components/radio-card/index.js +2 -0
- package/dist/components/radio-card/index.js.map +1 -0
- package/dist/components/runtime-chip/RuntimeChip.d.ts +54 -0
- package/dist/components/runtime-chip/RuntimeChip.d.ts.map +1 -0
- package/dist/components/runtime-chip/RuntimeChip.js +46 -0
- package/dist/components/runtime-chip/RuntimeChip.js.map +1 -0
- package/dist/components/runtime-chip/index.d.ts +3 -0
- package/dist/components/runtime-chip/index.d.ts.map +1 -0
- package/dist/components/runtime-chip/index.js +2 -0
- package/dist/components/runtime-chip/index.js.map +1 -0
- package/dist/components/search-input/SearchInput.d.ts +27 -0
- package/dist/components/search-input/SearchInput.d.ts.map +1 -0
- package/dist/components/search-input/SearchInput.js +36 -0
- package/dist/components/search-input/SearchInput.js.map +1 -0
- package/dist/components/search-input/index.d.ts +3 -0
- package/dist/components/search-input/index.d.ts.map +1 -0
- package/dist/components/search-input/index.js +2 -0
- package/dist/components/search-input/index.js.map +1 -0
- package/dist/components/secret-input/SecretInput.d.ts +27 -0
- package/dist/components/secret-input/SecretInput.d.ts.map +1 -0
- package/dist/components/secret-input/SecretInput.js +49 -0
- package/dist/components/secret-input/SecretInput.js.map +1 -0
- package/dist/components/secret-input/index.d.ts +3 -0
- package/dist/components/secret-input/index.d.ts.map +1 -0
- package/dist/components/secret-input/index.js +2 -0
- package/dist/components/secret-input/index.js.map +1 -0
- package/dist/components/segmented-control/SegmentedControl.d.ts +35 -0
- package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -0
- package/dist/components/segmented-control/SegmentedControl.js +67 -0
- package/dist/components/segmented-control/SegmentedControl.js.map +1 -0
- package/dist/components/segmented-control/index.d.ts +3 -0
- package/dist/components/segmented-control/index.d.ts.map +1 -0
- package/dist/components/segmented-control/index.js +2 -0
- package/dist/components/segmented-control/index.js.map +1 -0
- package/dist/components/select/Select.d.ts +17 -0
- package/dist/components/select/Select.d.ts.map +1 -0
- package/dist/components/select/Select.js +14 -0
- package/dist/components/select/Select.js.map +1 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/index.js +2 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/skeleton/Skeleton.d.ts +18 -0
- package/dist/components/skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/skeleton/Skeleton.js +30 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/skeleton/index.d.ts +3 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/skeleton/index.js +2 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/slider/Slider.d.ts +17 -0
- package/dist/components/slider/Slider.d.ts.map +1 -0
- package/dist/components/slider/Slider.js +14 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/index.d.ts.map +1 -0
- package/dist/components/slider/index.js +2 -0
- package/dist/components/slider/index.js.map +1 -0
- package/dist/components/snackbar/Snackbar.d.ts +21 -0
- package/dist/components/snackbar/Snackbar.d.ts.map +1 -0
- package/dist/components/snackbar/Snackbar.js +12 -0
- package/dist/components/snackbar/Snackbar.js.map +1 -0
- package/dist/components/snackbar/index.d.ts +3 -0
- package/dist/components/snackbar/index.d.ts.map +1 -0
- package/dist/components/snackbar/index.js +2 -0
- package/dist/components/snackbar/index.js.map +1 -0
- package/dist/components/spinner/Spinner.d.ts +22 -0
- package/dist/components/spinner/Spinner.d.ts.map +1 -0
- package/dist/components/spinner/Spinner.js +28 -0
- package/dist/components/spinner/Spinner.js.map +1 -0
- package/dist/components/spinner/index.d.ts +3 -0
- package/dist/components/spinner/index.d.ts.map +1 -0
- package/dist/components/spinner/index.js +2 -0
- package/dist/components/spinner/index.js.map +1 -0
- package/dist/components/status-pill/StatusPill.d.ts +19 -0
- package/dist/components/status-pill/StatusPill.d.ts.map +1 -0
- package/dist/components/status-pill/StatusPill.js +16 -0
- package/dist/components/status-pill/StatusPill.js.map +1 -0
- package/dist/components/status-pill/index.d.ts +3 -0
- package/dist/components/status-pill/index.d.ts.map +1 -0
- package/dist/components/status-pill/index.js +2 -0
- package/dist/components/status-pill/index.js.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +31 -0
- package/dist/components/stepper/Stepper.d.ts.map +1 -0
- package/dist/components/stepper/Stepper.js +49 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/stepper/index.d.ts +3 -0
- package/dist/components/stepper/index.d.ts.map +1 -0
- package/dist/components/stepper/index.js +2 -0
- package/dist/components/stepper/index.js.map +1 -0
- package/dist/components/success-state/SuccessState.d.ts +27 -0
- package/dist/components/success-state/SuccessState.d.ts.map +1 -0
- package/dist/components/success-state/SuccessState.js +14 -0
- package/dist/components/success-state/SuccessState.js.map +1 -0
- package/dist/components/success-state/index.d.ts +3 -0
- package/dist/components/success-state/index.d.ts.map +1 -0
- package/dist/components/success-state/index.js +2 -0
- package/dist/components/success-state/index.js.map +1 -0
- package/dist/components/switch/Switch.d.ts +11 -0
- package/dist/components/switch/Switch.d.ts.map +1 -0
- package/dist/components/switch/Switch.js +13 -0
- package/dist/components/switch/Switch.js.map +1 -0
- package/dist/components/switch/index.d.ts +3 -0
- package/dist/components/switch/index.d.ts.map +1 -0
- package/dist/components/switch/index.js +2 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +32 -0
- package/dist/components/tabs/Tabs.d.ts.map +1 -0
- package/dist/components/tabs/Tabs.js +43 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/tabs/index.d.ts +3 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/index.js +2 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tag/Tag.d.ts +30 -0
- package/dist/components/tag/Tag.d.ts.map +1 -0
- package/dist/components/tag/Tag.js +35 -0
- package/dist/components/tag/Tag.js.map +1 -0
- package/dist/components/tag/index.d.ts +3 -0
- package/dist/components/tag/index.d.ts.map +1 -0
- package/dist/components/tag/index.js +2 -0
- package/dist/components/tag/index.js.map +1 -0
- package/dist/components/textarea/Textarea.d.ts +19 -0
- package/dist/components/textarea/Textarea.d.ts.map +1 -0
- package/dist/components/textarea/Textarea.js +11 -0
- package/dist/components/textarea/Textarea.js.map +1 -0
- package/dist/components/textarea/index.d.ts +3 -0
- package/dist/components/textarea/index.d.ts.map +1 -0
- package/dist/components/textarea/index.js +2 -0
- package/dist/components/textarea/index.js.map +1 -0
- package/dist/components/toast/Toast.d.ts +67 -0
- package/dist/components/toast/Toast.d.ts.map +1 -0
- package/dist/components/toast/Toast.js +63 -0
- package/dist/components/toast/Toast.js.map +1 -0
- package/dist/components/toast/index.d.ts +5 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/toast/index.js +3 -0
- package/dist/components/toast/index.js.map +1 -0
- package/dist/components/toast/useToastQueue.d.ts +73 -0
- package/dist/components/toast/useToastQueue.d.ts.map +1 -0
- package/dist/components/toast/useToastQueue.js +191 -0
- package/dist/components/toast/useToastQueue.js.map +1 -0
- package/dist/components/toggle-matrix/ToggleMatrix.d.ts +58 -0
- package/dist/components/toggle-matrix/ToggleMatrix.d.ts.map +1 -0
- package/dist/components/toggle-matrix/ToggleMatrix.js +95 -0
- package/dist/components/toggle-matrix/ToggleMatrix.js.map +1 -0
- package/dist/components/toggle-matrix/index.d.ts +3 -0
- package/dist/components/toggle-matrix/index.d.ts.map +1 -0
- package/dist/components/toggle-matrix/index.js +2 -0
- package/dist/components/toggle-matrix/index.js.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +33 -0
- package/dist/components/tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/tooltip/Tooltip.js +19 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/index.js +2 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/two-phase-modal/TwoPhaseModal.d.ts +45 -0
- package/dist/components/two-phase-modal/TwoPhaseModal.d.ts.map +1 -0
- package/dist/components/two-phase-modal/TwoPhaseModal.js +50 -0
- package/dist/components/two-phase-modal/TwoPhaseModal.js.map +1 -0
- package/dist/components/two-phase-modal/index.d.ts +3 -0
- package/dist/components/two-phase-modal/index.d.ts.map +1 -0
- package/dist/components/two-phase-modal/index.js +2 -0
- package/dist/components/two-phase-modal/index.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useUndoableAction.d.ts +62 -0
- package/dist/hooks/useUndoableAction.d.ts.map +1 -0
- package/dist/hooks/useUndoableAction.js +85 -0
- package/dist/hooks/useUndoableAction.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cn.d.ts +33 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +59 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +2 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/tones.d.ts +40 -0
- package/dist/lib/tones.d.ts.map +1 -0
- package/dist/lib/tones.js +91 -0
- package/dist/lib/tones.js.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +15 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +186 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/context.d.ts +21 -0
- package/dist/theme/context.d.ts.map +1 -0
- package/dist/theme/context.js +7 -0
- package/dist/theme/context.js.map +1 -0
- package/dist/theme/index.d.ts +9 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +5 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/subscribe.d.ts +12 -0
- package/dist/theme/subscribe.d.ts.map +1 -0
- package/dist/theme/subscribe.js +14 -0
- package/dist/theme/subscribe.js.map +1 -0
- package/dist/theme/types.d.ts +32 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +23 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/theme/useTheme.d.ts +14 -0
- package/dist/theme/useTheme.d.ts.map +1 -0
- package/dist/theme/useTheme.js +27 -0
- package/dist/theme/useTheme.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
|
+
/** Alert tone vocabulary (info/pos/warn/danger callouts). */
|
|
3
|
+
export type AlertTone = 'info' | 'pos' | 'warn' | 'danger';
|
|
4
|
+
export interface AlertProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {
|
|
5
|
+
/** Semantic tone. Default `info`. */
|
|
6
|
+
tone?: AlertTone | undefined;
|
|
7
|
+
/** Override the leading icon (defaults per tone). */
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
/** Bold first line. */
|
|
10
|
+
title: ReactNode;
|
|
11
|
+
/** Supporting copy (children also land here). */
|
|
12
|
+
body?: ReactNode;
|
|
13
|
+
/** Optional CTA (link/Button) rendered under the body. */
|
|
14
|
+
action?: ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* ARIA live semantics: pass `alert` when the callout appears dynamically
|
|
17
|
+
* for a failure, `status` for polite updates. Static page content omits it.
|
|
18
|
+
*/
|
|
19
|
+
role?: 'alert' | 'status' | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Alert / Callout — tone-soft background + `color-mix` tone border, icon +
|
|
23
|
+
* title + body + optional CTA; tones info/pos/warn/danger
|
|
24
|
+
* (research/design-system.md §3 Tier 3).
|
|
25
|
+
*/
|
|
26
|
+
export declare function Alert({ tone, icon, title, body, action, className, children, ...props }: AlertProps): import("react").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=Alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../src/components/alert/Alert.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK9D,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAgB3D,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAC7E,qCAAqC;IACrC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,qDAAqD;IACrD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uBAAuB;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,iDAAiD;IACjD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAa,EACb,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,UAAU,+BAwBZ"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { AlertTriangle, CheckCircle2, Info, XCircle } from 'lucide-react';
|
|
3
|
+
import { cn } from '../../lib/cn.js';
|
|
4
|
+
import { toneMixBorderClasses } from '../../lib/tones.js';
|
|
5
|
+
const toneClasses = {
|
|
6
|
+
info: 'bg-info-soft [&_[data-part=alert-icon]]:text-info',
|
|
7
|
+
pos: 'bg-pos-soft [&_[data-part=alert-icon]]:text-pos',
|
|
8
|
+
warn: 'bg-warn-soft [&_[data-part=alert-icon]]:text-warn',
|
|
9
|
+
danger: 'bg-danger-soft [&_[data-part=alert-icon]]:text-danger',
|
|
10
|
+
};
|
|
11
|
+
const defaultIcons = {
|
|
12
|
+
info: _jsx(Info, {}),
|
|
13
|
+
pos: _jsx(CheckCircle2, {}),
|
|
14
|
+
warn: _jsx(AlertTriangle, {}),
|
|
15
|
+
danger: _jsx(XCircle, {}),
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Alert / Callout — tone-soft background + `color-mix` tone border, icon +
|
|
19
|
+
* title + body + optional CTA; tones info/pos/warn/danger
|
|
20
|
+
* (research/design-system.md §3 Tier 3).
|
|
21
|
+
*/
|
|
22
|
+
export function Alert({ tone = 'info', icon, title, body, action, className, children, ...props }) {
|
|
23
|
+
return (_jsxs("div", { "data-tone": tone, className: cn('flex items-start gap-3 rounded-lg border p-3.5', toneClasses[tone], toneMixBorderClasses[tone], className), ...props, children: [_jsx("span", { "data-part": "alert-icon", "aria-hidden": "true", className: "mt-px shrink-0 [&_svg]:size-4 [&_svg]:stroke-2", children: icon ?? defaultIcons[tone] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-body font-bold leading-snug text-fg", children: title }), body === undefined && children === undefined ? null : (_jsx("div", { className: "mt-0.5 text-body-sm text-fg-muted", children: body ?? children })), action === undefined || action === null ? null : _jsx("div", { className: "mt-2", children: action })] })] }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=Alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../../src/components/alert/Alert.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG1E,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAK1D,MAAM,WAAW,GAA8B;IAC7C,IAAI,EAAE,mDAAmD;IACzD,GAAG,EAAE,iDAAiD;IACtD,IAAI,EAAE,mDAAmD;IACzD,MAAM,EAAE,uDAAuD;CAChE,CAAC;AAEF,MAAM,YAAY,GAAiC;IACjD,IAAI,EAAE,KAAC,IAAI,KAAG;IACd,GAAG,EAAE,KAAC,YAAY,KAAG;IACrB,IAAI,EAAE,KAAC,aAAa,KAAG;IACvB,MAAM,EAAE,KAAC,OAAO,KAAG;CACpB,CAAC;AAoBF;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,IAAI,GAAG,MAAM,EACb,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACG;IACX,OAAO,CACL,4BACa,IAAI,EACf,SAAS,EAAE,EAAE,CACX,gDAAgD,EAChD,WAAW,CAAC,IAAI,CAAC,EACjB,oBAAoB,CAAC,IAAI,CAAC,EAC1B,SAAS,CACV,KACG,KAAK,aAET,4BAAgB,YAAY,iBAAa,MAAM,EAAC,SAAS,EAAC,gDAAgD,YACvG,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,GACtB,EACP,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,0CAA0C,YAAE,KAAK,GAAO,EACtE,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACrD,cAAK,SAAS,EAAC,mCAAmC,YAAE,IAAI,IAAI,QAAQ,GAAO,CAC5E,EACA,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,MAAM,YAAE,MAAM,GAAO,IAClF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
|
+
export interface AuthLayoutProps extends Omit<ComponentPropsWithRef<'div'>, 'style'> {
|
|
3
|
+
/**
|
|
4
|
+
* `split` (default) renders the 44% brand panel + form side per
|
|
5
|
+
* designs/Login.dc.html; `single` renders only the centered 380px form
|
|
6
|
+
* column (narrow contexts: modals, Electron sign-in, mobile web).
|
|
7
|
+
*/
|
|
8
|
+
variant?: 'split' | 'single' | undefined;
|
|
9
|
+
/** Logo block pinned to the top of the brand panel (brand tile + wordmark). */
|
|
10
|
+
logo?: ReactNode;
|
|
11
|
+
/** Brand headline ("Turn any database into a dashboard."). */
|
|
12
|
+
headline?: ReactNode;
|
|
13
|
+
/** Supporting copy under the headline. */
|
|
14
|
+
description?: ReactNode;
|
|
15
|
+
/** Extra brand content under the description (feature checklist, …). */
|
|
16
|
+
brandContent?: ReactNode;
|
|
17
|
+
/** Testimonial card slot (see `AuthTestimonial`). */
|
|
18
|
+
testimonial?: ReactNode;
|
|
19
|
+
/** Trust badges slot pinned to the bottom ("SOC 2 Type II · GDPR · …"). */
|
|
20
|
+
trustBadges?: ReactNode;
|
|
21
|
+
/** Corner slot on the form side (theme toggle IconButton). */
|
|
22
|
+
corner?: ReactNode;
|
|
23
|
+
/** Centered caption under the form card ("Protected by …"). */
|
|
24
|
+
footer?: ReactNode;
|
|
25
|
+
/** The auth screen (SignInForm, TwoFactorForm, …) — capped at 380px. */
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* AuthLayout — Tier-5 auth shell (research/design-system.md §3 Tier 5,
|
|
30
|
+
* designs/Login.dc.html + designs/Auth & Onboarding.dc.html): split
|
|
31
|
+
* brand panel with the accent gradient, logo block, testimonial + trust-badge
|
|
32
|
+
* slots, and a 380px form column. The brand panel is purely decorative
|
|
33
|
+
* marketing surface: it is `aria-hidden`, collapses away below `lg`, and the
|
|
34
|
+
* layout uses logical flow only, so RTL mirrors for free.
|
|
35
|
+
*/
|
|
36
|
+
export declare function AuthLayout({ variant, logo, headline, description, brandContent, testimonial, trustBadges, corner, footer, className, children, ...props }: AuthLayoutProps): import("react").JSX.Element;
|
|
37
|
+
export interface AuthTestimonialProps extends Omit<ComponentPropsWithRef<'figure'>, 'style' | 'role'> {
|
|
38
|
+
/** Quote body (already-quoted copy per the comp). */
|
|
39
|
+
quote: ReactNode;
|
|
40
|
+
/** Attribution name ("Dana K"). */
|
|
41
|
+
name: ReactNode;
|
|
42
|
+
/** Attribution role/company ("Head of Eng, Northwind"). */
|
|
43
|
+
role?: ReactNode;
|
|
44
|
+
/** Leading avatar element (e.g. an `Avatar`). */
|
|
45
|
+
avatar?: ReactNode;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* AuthTestimonial — the translucent testimonial card that lives on the
|
|
49
|
+
* AuthLayout brand panel (designs/Login.dc.html): white/10 card, quote,
|
|
50
|
+
* attribution line. Colors are fixed white alphas because the card always
|
|
51
|
+
* sits on the accent gradient.
|
|
52
|
+
*/
|
|
53
|
+
export declare function AuthTestimonial({ quote, name, role, avatar, className, ...props }: AuthTestimonialProps): import("react").JSX.Element;
|
|
54
|
+
//# sourceMappingURL=AuthLayout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../src/components/auth-layout/AuthLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAa9D,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAClF;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,+EAA+E;IAC/E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wEAAwE;IACxE,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,qDAAqD;IACrD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,wEAAwE;IACxE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,eAAe,+BAqEjB;AAED,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/D,qDAAqD;IACrD,KAAK,EAAE,SAAS,CAAC;IACjB,mCAAmC;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,iDAAiD;IACjD,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,+BAoBtB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '../../lib/cn.js';
|
|
3
|
+
/**
|
|
4
|
+
* The brand-panel accent gradient from designs/Login.dc.html /
|
|
5
|
+
* designs/Auth & Onboarding.dc.html: `linear-gradient(155deg, accent,
|
|
6
|
+
* color-mix(accent 62%, black))`. A static class over token vars, so it
|
|
7
|
+
* follows every accent palette at runtime.
|
|
8
|
+
*/
|
|
9
|
+
const brandGradientClass = 'bg-accent bg-[linear-gradient(155deg,var(--accent),color-mix(in_srgb,var(--accent)_62%,#000))]';
|
|
10
|
+
/**
|
|
11
|
+
* AuthLayout — Tier-5 auth shell (research/design-system.md §3 Tier 5,
|
|
12
|
+
* designs/Login.dc.html + designs/Auth & Onboarding.dc.html): split
|
|
13
|
+
* brand panel with the accent gradient, logo block, testimonial + trust-badge
|
|
14
|
+
* slots, and a 380px form column. The brand panel is purely decorative
|
|
15
|
+
* marketing surface: it is `aria-hidden`, collapses away below `lg`, and the
|
|
16
|
+
* layout uses logical flow only, so RTL mirrors for free.
|
|
17
|
+
*/
|
|
18
|
+
export function AuthLayout({ variant = 'split', logo, headline, description, brandContent, testimonial, trustBadges, corner, footer, className, children, ...props }) {
|
|
19
|
+
return (_jsxs("div", { "data-part": "auth-layout", "data-variant": variant, className: cn('flex min-h-dvh w-full bg-bg text-fg', className), ...props, children: [variant === 'split' ? (_jsxs("div", { "data-part": "auth-brand-panel", "aria-hidden": "true", className: cn('hidden w-[44%] shrink-0 select-none flex-col justify-between gap-10 overflow-hidden p-11 text-white lg:flex', brandGradientClass), children: [_jsx("div", { "data-part": "auth-brand-logo", children: logo }), _jsxs("div", { className: "flex max-w-[440px] flex-col items-start", children: [headline === undefined ? null : (_jsx("div", { className: "text-[32px] font-extrabold leading-[1.15] tracking-[-0.03em]", children: headline })), description === undefined ? null : (_jsx("div", { className: "mt-4 max-w-[40ch] text-[15px] leading-relaxed text-white/80", children: description })), brandContent === undefined ? null : _jsx("div", { className: "mt-7 w-full", children: brandContent }), testimonial === undefined ? null : (_jsx("div", { "data-part": "auth-testimonial-slot", className: "mt-7 w-full", children: testimonial }))] }), trustBadges === undefined ? (_jsx("div", {})) : (_jsx("div", { "data-part": "auth-trust-badges", className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-[12px] text-white/60", children: trustBadges }))] })) : null, _jsxs("div", { className: "relative flex min-w-0 flex-1 flex-col items-center justify-center p-6 sm:p-10", children: [corner === undefined ? null : (_jsx("div", { "data-part": "auth-corner", className: "absolute end-6 top-6", children: corner })), _jsxs("main", { "data-part": "auth-form-column", className: "w-full max-w-[380px]", children: [children, footer === undefined ? null : (_jsx("div", { "data-part": "auth-footer", className: "mt-7 flex items-center justify-center gap-1.5 text-center text-caption text-fg-subtle [&_svg]:size-3.5", children: footer }))] })] })] }));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* AuthTestimonial — the translucent testimonial card that lives on the
|
|
23
|
+
* AuthLayout brand panel (designs/Login.dc.html): white/10 card, quote,
|
|
24
|
+
* attribution line. Colors are fixed white alphas because the card always
|
|
25
|
+
* sits on the accent gradient.
|
|
26
|
+
*/
|
|
27
|
+
export function AuthTestimonial({ quote, name, role, avatar, className, ...props }) {
|
|
28
|
+
return (_jsxs("figure", { "data-part": "auth-testimonial", className: cn('flex max-w-[40ch] items-center gap-3 rounded-lg border border-white/15 bg-white/10 p-4', className), ...props, children: [avatar === undefined ? null : _jsx("div", { className: "shrink-0", children: avatar }), _jsxs("div", { className: "min-w-0", children: [_jsx("blockquote", { className: "text-[12.5px] leading-normal text-white/90", children: quote }), _jsxs("figcaption", { className: "mt-1 text-caption text-white/60", children: [name, role === undefined ? null : _jsxs(_Fragment, { children: [" \u00B7 ", role] })] })] })] }));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=AuthLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthLayout.js","sourceRoot":"","sources":["../../../src/components/auth-layout/AuthLayout.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC;;;;;GAKG;AACH,MAAM,kBAAkB,GACtB,gGAAgG,CAAC;AA6BnG;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,OAAO,GAAG,OAAO,EACjB,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACQ;IAChB,OAAO,CACL,4BACY,aAAa,kBACT,OAAO,EACrB,SAAS,EAAE,EAAE,CAAC,qCAAqC,EAAE,SAAS,CAAC,KAC3D,KAAK,aAER,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CACrB,4BACY,kBAAkB,iBAChB,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,6GAA6G,EAC7G,kBAAkB,CACnB,aAED,2BAAe,iBAAiB,YAAE,IAAI,GAAO,EAC7C,eAAK,SAAS,EAAC,yCAAyC,aACrD,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/B,cAAK,SAAS,EAAC,8DAA8D,YAC1E,QAAQ,GACL,CACP,EACA,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClC,cAAK,SAAS,EAAC,6DAA6D,YACzE,WAAW,GACR,CACP,EACA,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,aAAa,YAAE,YAAY,GAAO,EACrF,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClC,2BAAe,uBAAuB,EAAC,SAAS,EAAC,aAAa,YAC3D,WAAW,GACR,CACP,IACG,EACL,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAC3B,eAAO,CACR,CAAC,CAAC,CAAC,CACF,2BACY,mBAAmB,EAC7B,SAAS,EAAC,uEAAuE,YAEhF,WAAW,GACR,CACP,IACG,CACP,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,SAAS,EAAC,+EAA+E,aAC3F,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,2BAAe,aAAa,EAAC,SAAS,EAAC,sBAAsB,YAC1D,MAAM,GACH,CACP,EACD,6BAAgB,kBAAkB,EAAC,SAAS,EAAC,sBAAsB,aAChE,QAAQ,EACR,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,2BACY,aAAa,EACvB,SAAS,EAAC,wGAAwG,YAEjH,MAAM,GACH,CACP,IACI,IACH,IACF,CACP,CAAC;AACJ,CAAC;AAcD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACa;IACrB,OAAO,CACL,+BACY,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CACX,wFAAwF,EACxF,SAAS,CACV,KACG,KAAK,aAER,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,UAAU,YAAE,MAAM,GAAO,EACvE,eAAK,SAAS,EAAC,SAAS,aACtB,qBAAY,SAAS,EAAC,4CAA4C,YAAE,KAAK,GAAc,EACvF,sBAAY,SAAS,EAAC,iCAAiC,aACpD,IAAI,EACJ,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAM,IAAI,IAAI,IAChC,IACT,IACC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/auth-layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/auth-layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
|
+
/** Payload emitted by `ForgotPasswordForm.onSubmit`. */
|
|
3
|
+
export interface ForgotPasswordFormValues {
|
|
4
|
+
email: string;
|
|
5
|
+
}
|
|
6
|
+
/** All user-visible strings (required — i18n). */
|
|
7
|
+
export interface ForgotPasswordFormLabels {
|
|
8
|
+
/** Heading, e.g. "Reset your password". */
|
|
9
|
+
title: ReactNode;
|
|
10
|
+
/** Muted copy, e.g. "Enter your email and we'll send you a link…". */
|
|
11
|
+
subtitle?: ReactNode | undefined;
|
|
12
|
+
email: string;
|
|
13
|
+
emailPlaceholder?: string | undefined;
|
|
14
|
+
submit: string;
|
|
15
|
+
/** "Back to sign in" link. */
|
|
16
|
+
back?: string | undefined;
|
|
17
|
+
/** Field error for a missing/malformed email. */
|
|
18
|
+
emailInvalid: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ForgotPasswordFormProps extends Omit<ComponentPropsWithRef<'form'>, 'style' | 'onSubmit' | 'onError' | 'title'> {
|
|
21
|
+
labels: ForgotPasswordFormLabels;
|
|
22
|
+
/** Fires with the validated email — the host app calls the API. */
|
|
23
|
+
onSubmit: (values: ForgotPasswordFormValues) => void;
|
|
24
|
+
/** "Back to sign in" handler; renders the back link when provided. */
|
|
25
|
+
onBack?: (() => void) | undefined;
|
|
26
|
+
/** Server-side failure banner (danger `Alert`, `role="alert"`). */
|
|
27
|
+
error?: ReactNode;
|
|
28
|
+
/** Request in flight. */
|
|
29
|
+
loading?: boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The instance cannot send this mail at all — 11-electron.md §8.2's email row
|
|
32
|
+
* ("Enabled only when SMTP is configured in settings; otherwise buttons
|
|
33
|
+
* disabled"). Distinct from `loading`, which means "wait"; this means "not
|
|
34
|
+
* from here". Pair it with {@link ForgotPasswordFormProps.notice} — a disabled
|
|
35
|
+
* button with no explanation is the exact thing `designs/Empty States.dc.html`
|
|
36
|
+
* forbids.
|
|
37
|
+
*/
|
|
38
|
+
disabled?: boolean | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Info `Alert` above the field: why the form is disabled, and what to do
|
|
41
|
+
* instead. Not `error` — an unconfigured relay is the operator's state of the
|
|
42
|
+
* world, not this visitor's mistake, and `role="alert"` would interrupt a
|
|
43
|
+
* screen reader to say so.
|
|
44
|
+
*/
|
|
45
|
+
notice?: ReactNode;
|
|
46
|
+
defaultEmail?: string | undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* ForgotPasswordForm — request-a-reset-link screen per
|
|
50
|
+
* designs/Login.dc.html (FORGOT state). Controlled composition: zero
|
|
51
|
+
* fetching. On success the host swaps in `ForgotSentState`.
|
|
52
|
+
*
|
|
53
|
+
* Endpoint contract (apps/server/src/routes/auth):
|
|
54
|
+
* `POST /api/v1/auth/password/forgot` with `{ email }` → always
|
|
55
|
+
* `200 { data: { ok: true } }` (no user enumeration — show the sent state
|
|
56
|
+
* regardless); `429` (3/hour bucket) — pass a message via `error`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function ForgotPasswordForm({ labels, onSubmit, onBack, error, loading, disabled, notice, defaultEmail, className, ...props }: ForgotPasswordFormProps): import("react").JSX.Element;
|
|
59
|
+
export interface ForgotSentStateProps extends Omit<ComponentPropsWithRef<'div'>, 'style' | 'title'> {
|
|
60
|
+
/** Heading, e.g. "Check your email". */
|
|
61
|
+
title: ReactNode;
|
|
62
|
+
/** Copy echoing the address ("We sent a reset link to ava@… It expires in 15 minutes."). */
|
|
63
|
+
body?: ReactNode;
|
|
64
|
+
/** Primary button label ("Back to sign in"). */
|
|
65
|
+
doneLabel: string;
|
|
66
|
+
onDone?: (() => void) | undefined;
|
|
67
|
+
/** Resend link line ("Didn't get it?" + link). */
|
|
68
|
+
resendLabel?: string | undefined;
|
|
69
|
+
onResend?: (() => void) | undefined;
|
|
70
|
+
/** Muted prefix before the resend link ("Didn't get it?"). */
|
|
71
|
+
resendHint?: ReactNode;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* ForgotSentState — the SENT confirmation from designs/Login.dc.html,
|
|
75
|
+
* reusing `SuccessState` (pos mail-check tile + heading + copy + Done) with a
|
|
76
|
+
* resend link line. Re-submitting hits the same
|
|
77
|
+
* `POST /api/v1/auth/password/forgot` endpoint (3/hour rate bucket).
|
|
78
|
+
*/
|
|
79
|
+
export declare function ForgotSentState({ title, body, doneLabel, onDone, resendLabel, onResend, resendHint, className, ...props }: ForgotSentStateProps): import("react").JSX.Element;
|
|
80
|
+
//# sourceMappingURL=ForgotPasswordForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ForgotPasswordForm.d.ts","sourceRoot":"","sources":["../../../src/components/auth-screens/ForgotPasswordForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAUzE,wDAAwD;AACxD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,KAAK,EAAE,SAAS,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACvF,MAAM,EAAE,wBAAwB,CAAC;IACjC,mEAAmE;IACnE,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACrD,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAID;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAe,EACf,QAAgB,EAChB,MAAM,EACN,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,uBAAuB,+BAsEzB;AAED,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7D,wCAAwC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,4FAA4F;IAC5F,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACpC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,IAAI,EACJ,SAAS,EACT,MAAM,EACN,WAAW,EACX,QAAQ,EACR,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,+BAqBtB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { ArrowLeft, KeyRound, Mail, MailCheck } from 'lucide-react';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { cn } from '../../lib/cn.js';
|
|
5
|
+
import { Alert } from '../alert/index.js';
|
|
6
|
+
import { Button } from '../button/index.js';
|
|
7
|
+
import { FormField } from '../form-field/index.js';
|
|
8
|
+
import { IconTile } from '../icon-tile/index.js';
|
|
9
|
+
import { InputGroup } from '../input-group/index.js';
|
|
10
|
+
import { SuccessState } from '../success-state/index.js';
|
|
11
|
+
const looksLikeEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
|
|
12
|
+
/**
|
|
13
|
+
* ForgotPasswordForm — request-a-reset-link screen per
|
|
14
|
+
* designs/Login.dc.html (FORGOT state). Controlled composition: zero
|
|
15
|
+
* fetching. On success the host swaps in `ForgotSentState`.
|
|
16
|
+
*
|
|
17
|
+
* Endpoint contract (apps/server/src/routes/auth):
|
|
18
|
+
* `POST /api/v1/auth/password/forgot` with `{ email }` → always
|
|
19
|
+
* `200 { data: { ok: true } }` (no user enumeration — show the sent state
|
|
20
|
+
* regardless); `429` (3/hour bucket) — pass a message via `error`.
|
|
21
|
+
*/
|
|
22
|
+
export function ForgotPasswordForm({ labels, onSubmit, onBack, error, loading = false, disabled = false, notice, defaultEmail, className, ...props }) {
|
|
23
|
+
const [email, setEmail] = useState(defaultEmail ?? '');
|
|
24
|
+
const [fieldError, setFieldError] = useState(undefined);
|
|
25
|
+
const handleSubmit = (event) => {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
// Belt and braces: the button is disabled, but a form still submits on
|
|
28
|
+
// Enter in some browsers, and this must not raise a "check your email" for
|
|
29
|
+
// mail that has nowhere to go.
|
|
30
|
+
if (disabled)
|
|
31
|
+
return;
|
|
32
|
+
if (!looksLikeEmail(email.trim())) {
|
|
33
|
+
setFieldError(labels.emailInvalid);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
setFieldError(undefined);
|
|
37
|
+
onSubmit({ email: email.trim() });
|
|
38
|
+
};
|
|
39
|
+
return (_jsxs("form", { noValidate: true, "data-part": "forgot-password-form", className: cn('flex w-full flex-col', className), onSubmit: handleSubmit, ...props, children: [onBack === undefined || labels.back === undefined ? null : (_jsx(Button, { variant: "link", onClick: onBack, iconLeft: _jsx(ArrowLeft, { className: "size-3.5 rtl:rotate-180" }), className: "mb-5 self-start text-body-sm font-bold text-fg-muted hover:text-accent", children: labels.back })), _jsx(IconTile, { tone: "accent", size: "lg", icon: _jsx(KeyRound, {}) }), _jsx("h1", { className: "mt-4 text-[23px] font-extrabold tracking-[-0.02em] text-fg", children: labels.title }), labels.subtitle === undefined ? null : (_jsx("p", { className: "mt-1.5 text-[13.5px] leading-relaxed text-fg-muted", children: labels.subtitle })), error === undefined || error === null ? null : (_jsx(Alert, { tone: "danger", role: "alert", title: error, className: "mt-4" })), notice === undefined || notice === null ? null : (_jsx(Alert, { tone: "info", title: notice, className: "mt-4" })), _jsxs("div", { className: "mt-6 flex flex-col gap-4", children: [_jsx(FormField, { label: labels.email, error: fieldError, children: _jsx(InputGroup, { type: "email", name: "email", autoComplete: "email", iconLeading: _jsx(Mail, {}), placeholder: labels.emailPlaceholder, value: email, disabled: loading || disabled, onChange: (event) => setEmail(event.target.value) }) }), _jsx(Button, { type: "submit", loading: loading, disabled: disabled, className: "w-full", children: labels.submit })] })] }));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* ForgotSentState — the SENT confirmation from designs/Login.dc.html,
|
|
43
|
+
* reusing `SuccessState` (pos mail-check tile + heading + copy + Done) with a
|
|
44
|
+
* resend link line. Re-submitting hits the same
|
|
45
|
+
* `POST /api/v1/auth/password/forgot` endpoint (3/hour rate bucket).
|
|
46
|
+
*/
|
|
47
|
+
export function ForgotSentState({ title, body, doneLabel, onDone, resendLabel, onResend, resendHint, className, ...props }) {
|
|
48
|
+
return (_jsxs("div", { "data-part": "forgot-sent-state", className: cn('flex w-full flex-col', className), ...props, children: [_jsx(SuccessState, { title: title, body: body, doneLabel: doneLabel, onDone: onDone, icon: _jsx(MailCheck, {}), className: "px-0 py-0" }), resendLabel === undefined || onResend === undefined ? null : (_jsxs("p", { className: "mt-4 text-center text-body-sm text-fg-muted", children: [resendHint === undefined ? null : _jsxs(_Fragment, { children: [resendHint, " "] }), _jsx(Button, { variant: "link", className: "text-body-sm font-bold", onClick: onResend, children: resendLabel })] }))] }));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=ForgotPasswordForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ForgotPasswordForm.js","sourceRoot":"","sources":["../../../src/components/auth-screens/ForgotPasswordForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
|
+
import type { PasswordScore } from '../password-strength/index.js';
|
|
3
|
+
/** Payload emitted by `ResetPasswordForm.onSubmit`. */
|
|
4
|
+
export interface ResetPasswordFormValues {
|
|
5
|
+
password: string;
|
|
6
|
+
}
|
|
7
|
+
/** All user-visible strings (required — i18n). */
|
|
8
|
+
export interface ResetPasswordFormLabels {
|
|
9
|
+
/** Heading, e.g. "Set a new password". */
|
|
10
|
+
title: ReactNode;
|
|
11
|
+
/** Muted copy, e.g. "Must be at least 8 characters." */
|
|
12
|
+
subtitle?: ReactNode | undefined;
|
|
13
|
+
password: string;
|
|
14
|
+
confirmPassword: string;
|
|
15
|
+
submit: string;
|
|
16
|
+
/** Field error when the password is under `minLength`. */
|
|
17
|
+
tooShort: string;
|
|
18
|
+
/** Field error when the confirmation does not match. */
|
|
19
|
+
mismatch: string;
|
|
20
|
+
/** Accessible name for the strength meter ("Password strength"). */
|
|
21
|
+
strength: string;
|
|
22
|
+
/** Strength labels for scores 1–4, e.g. ['Weak','Fair','Good','Strong']. */
|
|
23
|
+
strengthLabels: readonly [string, string, string, string];
|
|
24
|
+
/** Reveal-eye accessible names. */
|
|
25
|
+
showPassword: string;
|
|
26
|
+
hidePassword: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ResetPasswordFormProps extends Omit<ComponentPropsWithRef<'form'>, 'style' | 'onSubmit' | 'onError' | 'title'> {
|
|
29
|
+
labels: ResetPasswordFormLabels;
|
|
30
|
+
/** Fires with the validated new password — the host app calls the API. */
|
|
31
|
+
onSubmit: (values: ResetPasswordFormValues) => void;
|
|
32
|
+
/** Server-side failure banner (expired/used token …). */
|
|
33
|
+
error?: ReactNode;
|
|
34
|
+
/** Request in flight. */
|
|
35
|
+
loading?: boolean | undefined;
|
|
36
|
+
/** Minimum password length. Default 8 (server policy). */
|
|
37
|
+
minLength?: number | undefined;
|
|
38
|
+
/** Injectable strength scorer, forwarded to `PasswordStrength`. */
|
|
39
|
+
score?: ((password: string) => PasswordScore) | undefined;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* ResetPasswordForm — set-a-new-password screen per designs/Login.dc.html
|
|
43
|
+
* (RESET state): password + segmented strength meter + confirm field with
|
|
44
|
+
* mismatch validation. Controlled composition: zero fetching.
|
|
45
|
+
*
|
|
46
|
+
* Endpoint contract (apps/server/src/routes/auth):
|
|
47
|
+
* `POST /api/v1/auth/password/reset` with `{ token, newPassword }` — the
|
|
48
|
+
* single-use `token` comes from the emailed link (URL param) and is held by
|
|
49
|
+
* the host app; this component only emits the validated password →
|
|
50
|
+
* - `200 { data: { ok: true } }` — navigate to sign-in;
|
|
51
|
+
* - `400/401` (expired or already-used token, password under 8 chars) —
|
|
52
|
+
* pass a message via `error`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function ResetPasswordForm({ labels, onSubmit, error, loading, minLength, score, className, ...props }: ResetPasswordFormProps): import("react").JSX.Element;
|
|
55
|
+
//# sourceMappingURL=ResetPasswordForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResetPasswordForm.d.ts","sourceRoot":"","sources":["../../../src/components/auth-screens/ResetPasswordForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAUzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,uDAAuD;AACvD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,KAAK,EAAE,SAAS,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,cAAc,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACvF,MAAM,EAAE,uBAAuB,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACpD,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,mEAAmE;IACnE,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,aAAa,CAAC,GAAG,SAAS,CAAC;CAC3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,KAAK,EACL,OAAe,EACf,SAAa,EACb,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,sBAAsB,+BAsFxB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Eye, EyeOff, Lock, ShieldCheck } from 'lucide-react';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { cn } from '../../lib/cn.js';
|
|
5
|
+
import { Alert } from '../alert/index.js';
|
|
6
|
+
import { Button } from '../button/index.js';
|
|
7
|
+
import { FormField } from '../form-field/index.js';
|
|
8
|
+
import { IconButton } from '../icon-button/index.js';
|
|
9
|
+
import { IconTile } from '../icon-tile/index.js';
|
|
10
|
+
import { InputGroup } from '../input-group/index.js';
|
|
11
|
+
import { PasswordStrength } from '../password-strength/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* ResetPasswordForm — set-a-new-password screen per designs/Login.dc.html
|
|
14
|
+
* (RESET state): password + segmented strength meter + confirm field with
|
|
15
|
+
* mismatch validation. Controlled composition: zero fetching.
|
|
16
|
+
*
|
|
17
|
+
* Endpoint contract (apps/server/src/routes/auth):
|
|
18
|
+
* `POST /api/v1/auth/password/reset` with `{ token, newPassword }` — the
|
|
19
|
+
* single-use `token` comes from the emailed link (URL param) and is held by
|
|
20
|
+
* the host app; this component only emits the validated password →
|
|
21
|
+
* - `200 { data: { ok: true } }` — navigate to sign-in;
|
|
22
|
+
* - `400/401` (expired or already-used token, password under 8 chars) —
|
|
23
|
+
* pass a message via `error`.
|
|
24
|
+
*/
|
|
25
|
+
export function ResetPasswordForm({ labels, onSubmit, error, loading = false, minLength = 8, score, className, ...props }) {
|
|
26
|
+
const [password, setPassword] = useState('');
|
|
27
|
+
const [confirm, setConfirm] = useState('');
|
|
28
|
+
const [reveal, setReveal] = useState(false);
|
|
29
|
+
const [fieldErrors, setFieldErrors] = useState({});
|
|
30
|
+
const handleSubmit = (event) => {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
const nextErrors = {};
|
|
33
|
+
if (password.length < minLength)
|
|
34
|
+
nextErrors.password = labels.tooShort;
|
|
35
|
+
if (confirm !== password)
|
|
36
|
+
nextErrors.confirm = labels.mismatch;
|
|
37
|
+
setFieldErrors(nextErrors);
|
|
38
|
+
if (nextErrors.password !== undefined || nextErrors.confirm !== undefined)
|
|
39
|
+
return;
|
|
40
|
+
onSubmit({ password });
|
|
41
|
+
};
|
|
42
|
+
const revealToggle = (_jsx(IconButton, { size: "sm", label: reveal ? labels.hidePassword : labels.showPassword, "aria-pressed": reveal, onClick: () => setReveal((current) => !current), className: "text-fg-subtle [&_svg]:size-4", children: reveal ? _jsx(EyeOff, {}) : _jsx(Eye, {}) }));
|
|
43
|
+
return (_jsxs("form", { noValidate: true, "data-part": "reset-password-form", className: cn('flex w-full flex-col', className), onSubmit: handleSubmit, ...props, children: [_jsx(IconTile, { tone: "accent", size: "lg", icon: _jsx(ShieldCheck, {}) }), _jsx("h1", { className: "mt-4 text-[23px] font-extrabold tracking-[-0.02em] text-fg", children: labels.title }), labels.subtitle === undefined ? null : (_jsx("p", { className: "mt-1.5 text-[13.5px] text-fg-muted", children: labels.subtitle })), error === undefined || error === null ? null : (_jsx(Alert, { tone: "danger", role: "alert", title: error, className: "mt-4" })), _jsxs("div", { className: "mt-6 flex flex-col gap-4", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(FormField, { label: labels.password, error: fieldErrors.password, children: _jsx(InputGroup, { type: reveal ? 'text' : 'password', name: "new-password", autoComplete: "new-password", iconLeading: _jsx(Lock, {}), value: password, disabled: loading, onChange: (event) => setPassword(event.target.value), trailing: revealToggle }) }), _jsx(PasswordStrength, { value: password, label: labels.strength, labels: labels.strengthLabels, ...(score === undefined ? {} : { score }) })] }), _jsx(FormField, { label: labels.confirmPassword, error: fieldErrors.confirm, children: _jsx(InputGroup, { type: reveal ? 'text' : 'password', name: "confirm-password", autoComplete: "new-password", iconLeading: _jsx(Lock, {}), value: confirm, disabled: loading, onChange: (event) => setConfirm(event.target.value) }) }), _jsx(Button, { type: "submit", loading: loading, className: "w-full", children: labels.submit })] })] }));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ResetPasswordForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResetPasswordForm.js","sourceRoot":"","sources":["../../../src/components/auth-screens/ResetPasswordForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
|
+
/** Payload emitted by `SignInForm.onSubmit`. */
|
|
3
|
+
export interface SignInFormValues {
|
|
4
|
+
email: string;
|
|
5
|
+
password: string;
|
|
6
|
+
/** "Keep me signed in" checkbox state (session length is a server concern). */
|
|
7
|
+
remember: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** All user-visible strings (required — i18n). */
|
|
10
|
+
export interface SignInFormLabels {
|
|
11
|
+
/** Heading, e.g. "Welcome back". */
|
|
12
|
+
title: ReactNode;
|
|
13
|
+
/** Muted copy under the heading. */
|
|
14
|
+
subtitle?: ReactNode | undefined;
|
|
15
|
+
email: string;
|
|
16
|
+
password: string;
|
|
17
|
+
/** "Forgot?" link next to the password label. */
|
|
18
|
+
forgot: string;
|
|
19
|
+
/** "Keep me signed in". */
|
|
20
|
+
remember: string;
|
|
21
|
+
submit: string;
|
|
22
|
+
/** Field error for a missing/malformed email. */
|
|
23
|
+
emailInvalid: string;
|
|
24
|
+
/** Field error for an empty password. */
|
|
25
|
+
passwordRequired: string;
|
|
26
|
+
/** Reveal-eye accessible names. */
|
|
27
|
+
showPassword: string;
|
|
28
|
+
hidePassword: string;
|
|
29
|
+
/** Divider text between the SSO slot and the fields ("or"). */
|
|
30
|
+
dividerLabel?: string | undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface SignInFormProps extends Omit<ComponentPropsWithRef<'form'>, 'style' | 'onSubmit' | 'onError' | 'title'> {
|
|
33
|
+
labels: SignInFormLabels;
|
|
34
|
+
/** Fires with the validated credentials — the host app calls the API. */
|
|
35
|
+
onSubmit: (values: SignInFormValues) => void;
|
|
36
|
+
/** "Forgot?" link handler (navigates to the forgot-password screen). */
|
|
37
|
+
onForgotPassword?: (() => void) | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Server-side failure banner slot (e.g. "Invalid email or password").
|
|
40
|
+
* Rendered as a danger `Alert` with `role="alert"`.
|
|
41
|
+
*/
|
|
42
|
+
error?: ReactNode;
|
|
43
|
+
/** Request in flight: submit shows a spinner, all fields disable. */
|
|
44
|
+
loading?: boolean | undefined;
|
|
45
|
+
/** SSO buttons slot rendered above the fields with an `or` divider. */
|
|
46
|
+
sso?: ReactNode;
|
|
47
|
+
/** Slot under the submit button ("New to Adminium? Create an account"). */
|
|
48
|
+
footer?: ReactNode;
|
|
49
|
+
defaultEmail?: string | undefined;
|
|
50
|
+
/** Initial "Keep me signed in" state. Default false (unchecked). */
|
|
51
|
+
defaultRemember?: boolean | undefined;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* SignInForm — email + password screen per designs/Login.dc.html. Controlled
|
|
55
|
+
* composition: zero fetching; the host app owns the request and feeds back
|
|
56
|
+
* `error`/`loading`.
|
|
57
|
+
*
|
|
58
|
+
* Endpoint contract (apps/server/src/routes/auth):
|
|
59
|
+
* `POST /api/v1/auth/login` with `{ email, password }` →
|
|
60
|
+
* - `200 { data: { user } }` — session cookie set, navigate into the app;
|
|
61
|
+
* - `202 { data: { twoFactorRequired: true, challengeToken } }` — render
|
|
62
|
+
* `TwoFactorForm` and present the token at `/api/v1/auth/2fa/verify`;
|
|
63
|
+
* - `401 INVALID_CREDENTIALS` / `429` (5/min bucket) — pass a message via
|
|
64
|
+
* `error`.
|
|
65
|
+
*/
|
|
66
|
+
export declare function SignInForm({ labels, onSubmit, onForgotPassword, error, loading, sso, footer, defaultEmail, defaultRemember, className, ...props }: SignInFormProps): import("react").JSX.Element;
|
|
67
|
+
//# sourceMappingURL=SignInForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignInForm.d.ts","sourceRoot":"","sources":["../../../src/components/auth-screens/SignInForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAWzE,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACvF,MAAM,EAAE,gBAAgB,CAAC;IACzB,yEAAyE;IACzE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5C;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,uEAAuE;IACvE,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,OAAe,EACf,GAAG,EACH,MAAM,EACN,YAAY,EACZ,eAAuB,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,+BAgHjB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Eye, EyeOff, Lock, Mail } from 'lucide-react';
|
|
3
|
+
import { useId, useState } from 'react';
|
|
4
|
+
import { cn } from '../../lib/cn.js';
|
|
5
|
+
import { Alert } from '../alert/index.js';
|
|
6
|
+
import { Button } from '../button/index.js';
|
|
7
|
+
import { Checkbox } from '../checkbox/index.js';
|
|
8
|
+
import { Divider } from '../divider/index.js';
|
|
9
|
+
import { FormField } from '../form-field/index.js';
|
|
10
|
+
import { IconButton } from '../icon-button/index.js';
|
|
11
|
+
import { InputGroup } from '../input-group/index.js';
|
|
12
|
+
const looksLikeEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
|
|
13
|
+
/**
|
|
14
|
+
* SignInForm — email + password screen per designs/Login.dc.html. Controlled
|
|
15
|
+
* composition: zero fetching; the host app owns the request and feeds back
|
|
16
|
+
* `error`/`loading`.
|
|
17
|
+
*
|
|
18
|
+
* Endpoint contract (apps/server/src/routes/auth):
|
|
19
|
+
* `POST /api/v1/auth/login` with `{ email, password }` →
|
|
20
|
+
* - `200 { data: { user } }` — session cookie set, navigate into the app;
|
|
21
|
+
* - `202 { data: { twoFactorRequired: true, challengeToken } }` — render
|
|
22
|
+
* `TwoFactorForm` and present the token at `/api/v1/auth/2fa/verify`;
|
|
23
|
+
* - `401 INVALID_CREDENTIALS` / `429` (5/min bucket) — pass a message via
|
|
24
|
+
* `error`.
|
|
25
|
+
*/
|
|
26
|
+
export function SignInForm({ labels, onSubmit, onForgotPassword, error, loading = false, sso, footer, defaultEmail, defaultRemember = false, className, ...props }) {
|
|
27
|
+
const [email, setEmail] = useState(defaultEmail ?? '');
|
|
28
|
+
const [password, setPassword] = useState('');
|
|
29
|
+
const [remember, setRemember] = useState(defaultRemember);
|
|
30
|
+
const [reveal, setReveal] = useState(false);
|
|
31
|
+
const [fieldErrors, setFieldErrors] = useState({});
|
|
32
|
+
const rememberId = useId();
|
|
33
|
+
const handleSubmit = (event) => {
|
|
34
|
+
event.preventDefault();
|
|
35
|
+
const nextErrors = {};
|
|
36
|
+
if (!looksLikeEmail(email.trim()))
|
|
37
|
+
nextErrors.email = labels.emailInvalid;
|
|
38
|
+
if (password.length === 0)
|
|
39
|
+
nextErrors.password = labels.passwordRequired;
|
|
40
|
+
setFieldErrors(nextErrors);
|
|
41
|
+
if (nextErrors.email !== undefined || nextErrors.password !== undefined)
|
|
42
|
+
return;
|
|
43
|
+
onSubmit({ email: email.trim(), password, remember });
|
|
44
|
+
};
|
|
45
|
+
return (_jsxs("form", { noValidate: true, "data-part": "sign-in-form", className: cn('flex w-full flex-col', className), onSubmit: handleSubmit, ...props, children: [_jsx("h1", { className: "text-[23px] font-extrabold tracking-[-0.02em] text-fg", children: labels.title }), labels.subtitle === undefined ? null : (_jsx("p", { className: "mt-1.5 text-[13.5px] text-fg-muted", children: labels.subtitle })), sso === undefined ? null : (_jsxs(_Fragment, { children: [_jsx("div", { className: "mt-6 flex flex-col gap-2.5", children: sso }), _jsx(Divider, { label: labels.dividerLabel, className: "my-5" })] })), error === undefined || error === null ? null : (_jsx(Alert, { tone: "danger", role: "alert", title: error, className: sso === undefined ? 'mt-6' : '' })), _jsxs("div", { className: cn('flex flex-col gap-4', sso === undefined && (error === undefined || error === null) ? 'mt-6' : 'mt-4'), children: [_jsx(FormField, { label: labels.email, error: fieldErrors.email, children: _jsx(InputGroup, { type: "email", name: "email", autoComplete: "email", iconLeading: _jsx(Mail, {}), value: email, disabled: loading, onChange: (event) => setEmail(event.target.value) }) }), _jsx(FormField, { label: labels.password, error: fieldErrors.password, tag: onForgotPassword === undefined ? undefined : (_jsx(Button, { variant: "link", className: "text-[12px] font-bold", onClick: onForgotPassword, children: labels.forgot })), children: _jsx(InputGroup, { type: reveal ? 'text' : 'password', name: "password", autoComplete: "current-password", iconLeading: _jsx(Lock, {}), value: password, disabled: loading, onChange: (event) => setPassword(event.target.value), trailing: _jsx(IconButton, { size: "sm", label: reveal ? labels.hidePassword : labels.showPassword, "aria-pressed": reveal, onClick: () => setReveal((current) => !current), className: "text-fg-subtle [&_svg]:size-4", children: reveal ? _jsx(EyeOff, {}) : _jsx(Eye, {}) }) }) }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { id: rememberId, checked: remember, disabled: loading, onCheckedChange: (state) => setRemember(state === true) }), _jsx("label", { htmlFor: rememberId, className: "cursor-pointer text-body-sm text-fg-muted", children: labels.remember })] }), _jsx(Button, { type: "submit", loading: loading, className: "w-full", children: labels.submit })] }), footer === undefined ? null : (_jsx("div", { "data-part": "sign-in-footer", className: "mt-5 text-center text-body-sm text-fg-muted", children: footer }))] }));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=SignInForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignInForm.js","sourceRoot":"","sources":["../../../src/components/auth-screens/SignInForm.tsx"],"names":[],"mappings":"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"}
|