mirror of
https://github.com/standardnotes/app
synced 2026-10-02 12:14:02 -04:00
* feat: Add new icons
* Revert "feat: Add new icons"
This reverts commit 0acb403fe8.
* feat: Add new icons for account menu
* feat: Add new Icons
* feat: Add "currentPane" state to prefs view
* feat: Update account menu to new design
* feat: Add input component with icon & toggle
* fix: sync icon & function
* fix: Fix eye icon
* feat: Create re-usable checkbox
feat: Add "merge local" option
* feat: Allow using className on IconButton
* feat: Add disabled state on input
feat: Make toggle circle
* refactor: Move checkbox to components
* feat: Handle invalid email/password error
* feat: Implement new design for Create Account
* feat: Implement new account menu design
* feat: Add disabled option to IconButton
* feat: Set account menu pane from other component
* feat: Add 2fa account menu pane
feat: Add lock icon
* feat: Remove unnecessary 2FA menu pane
feat: Reset current menu pane on clickOutside
* feat: Change "Log in" to "Sign in"
* feat: Remove sync from footer
* feat: Change "Login" to "Sign in"
feat: Add spinner to "Syncing..."
refactor: Use then-catch-finally for sync
* feat: Use common enableCustomServer state
* feat: Animate account menu closing
* fix: Reset menu pane only after it's closed
* feat: Add keyDown handler to InputWithIcon
* feat: Handle Enter press in inputs
* Update app/assets/javascripts/components/InputWithIcon.tsx
Co-authored-by: Antonella Sgarlatta <[email protected]>
* Update app/assets/javascripts/components/InputWithIcon.tsx
Co-authored-by: Antonella Sgarlatta <[email protected]>
* refactor: Use server state from AccountMenuState
* Update app/assets/javascripts/components/AccountMenu/CreateAccount.tsx
Co-authored-by: Antonella Sgarlatta <[email protected]>
* Update app/assets/javascripts/components/AccountMenu/ConfirmPassword.tsx
Co-authored-by: Antonella Sgarlatta <[email protected]>
* feat: Use common AdvancedOptions
* feat: Add "eye-off" icon and toggle state
* feat: Allow undefined values
* refactor: Remove enableCustomServer state
* feat: Persist server option state
* feat: Add bottom-100 and cursor-auto util classes
refactor: Use bottom-100 and cursor-auto classes
* refactor: Invert ternary operator
* refactor: Remove unused imports
* refactor: Use toggled as prop instead of state
* refactor: Change "Log in/out" to "Sign in/out"
* refactor: Change "Login" to "Sign in"
* refactor: Remove hardcoded width/height
* refactor: Use success class
* feat: Remove hardcoded width & height from svg
* fix: Fix chevron-down icon
Co-authored-by: Antonella Sgarlatta <[email protected]>
Co-authored-by: Antonella Sgarlatta <[email protected]>
123 lines
4.3 KiB
TypeScript
123 lines
4.3 KiB
TypeScript
import PencilOffIcon from '../../icons/ic-pencil-off.svg';
|
|
import PlainTextIcon from '../../icons/ic-text-paragraph.svg';
|
|
import RichTextIcon from '../../icons/ic-text-rich.svg';
|
|
import TrashIcon from '../../icons/ic-trash.svg';
|
|
import PinIcon from '../../icons/ic-pin.svg';
|
|
import UnpinIcon from '../../icons/ic-pin-off.svg';
|
|
import ArchiveIcon from '../../icons/ic-archive.svg';
|
|
import UnarchiveIcon from '../../icons/ic-unarchive.svg';
|
|
import HashtagIcon from '../../icons/ic-hashtag.svg';
|
|
import ChevronRightIcon from '../../icons/ic-chevron-right.svg';
|
|
import RestoreIcon from '../../icons/ic-restore.svg';
|
|
import CloseIcon from '../../icons/ic-close.svg';
|
|
import PasswordIcon from '../../icons/ic-textbox-password.svg';
|
|
import TrashSweepIcon from '../../icons/ic-trash-sweep.svg';
|
|
import MoreIcon from '../../icons/ic-more.svg';
|
|
import TuneIcon from '../../icons/ic-tune.svg';
|
|
import MenuArrowDownIcon from '../../icons/ic-menu-arrow-down.svg';
|
|
import AuthenticatorIcon from '../../icons/ic-authenticator.svg';
|
|
import SpreadsheetsIcon from '../../icons/ic-spreadsheets.svg';
|
|
import TasksIcon from '../../icons/ic-tasks.svg';
|
|
import MarkdownIcon from '../../icons/ic-markdown.svg';
|
|
import CodeIcon from '../../icons/ic-code.svg';
|
|
|
|
import AccessibilityIcon from '../../icons/ic-accessibility.svg';
|
|
import HelpIcon from '../../icons/ic-help.svg';
|
|
import KeyboardIcon from '../../icons/ic-keyboard.svg';
|
|
import ListedIcon from '../../icons/ic-listed.svg';
|
|
import SecurityIcon from '../../icons/ic-security.svg';
|
|
import SettingsIcon from '../../icons/ic-settings.svg';
|
|
import StarIcon from '../../icons/ic-star.svg';
|
|
import ThemesIcon from '../../icons/ic-themes.svg';
|
|
import UserIcon from '../../icons/ic-user.svg';
|
|
import CopyIcon from '../../icons/ic-copy.svg';
|
|
import DownloadIcon from '../../icons/ic-download.svg';
|
|
import InfoIcon from '../../icons/ic-info.svg';
|
|
import CheckIcon from '../../icons/ic-check.svg';
|
|
import CheckBoldIcon from '../../icons/ic-check-bold.svg';
|
|
import AccountCircleIcon from '../../icons/ic-account-circle.svg';
|
|
import CloudOffIcon from '../../icons/ic-cloud-off.svg';
|
|
import SignInIcon from '../../icons/ic-signin.svg';
|
|
import SignOutIcon from '../../icons/ic-signout.svg';
|
|
import CheckCircleIcon from '../../icons/ic-check-circle.svg';
|
|
import SyncIcon from '../../icons/ic-sync.svg';
|
|
import ArrowLeftIcon from '../../icons/ic-arrow-left.svg';
|
|
import ChevronDownIcon from '../../icons/ic-chevron-down.svg';
|
|
import EmailIcon from '../../icons/ic-email.svg';
|
|
import ServerIcon from '../../icons/ic-server.svg';
|
|
import EyeIcon from '../../icons/ic-eye.svg';
|
|
import EyeOffIcon from '../../icons/ic-eye-off.svg';
|
|
import LockIcon from '../../icons/ic-lock.svg';
|
|
|
|
import { toDirective } from './utils';
|
|
import { FunctionalComponent } from 'preact';
|
|
|
|
const ICONS = {
|
|
lock: LockIcon,
|
|
eye: EyeIcon,
|
|
'eye-off': EyeOffIcon,
|
|
server: ServerIcon,
|
|
email: EmailIcon,
|
|
'chevron-down': ChevronDownIcon,
|
|
'arrow-left': ArrowLeftIcon,
|
|
sync: SyncIcon,
|
|
'check-circle': CheckCircleIcon,
|
|
signIn: SignInIcon,
|
|
signOut: SignOutIcon,
|
|
'cloud-off': CloudOffIcon,
|
|
'pencil-off': PencilOffIcon,
|
|
'plain-text': PlainTextIcon,
|
|
'rich-text': RichTextIcon,
|
|
code: CodeIcon,
|
|
markdown: MarkdownIcon,
|
|
authenticator: AuthenticatorIcon,
|
|
spreadsheets: SpreadsheetsIcon,
|
|
tasks: TasksIcon,
|
|
trash: TrashIcon,
|
|
pin: PinIcon,
|
|
unpin: UnpinIcon,
|
|
archive: ArchiveIcon,
|
|
unarchive: UnarchiveIcon,
|
|
hashtag: HashtagIcon,
|
|
'chevron-right': ChevronRightIcon,
|
|
restore: RestoreIcon,
|
|
close: CloseIcon,
|
|
password: PasswordIcon,
|
|
'trash-sweep': TrashSweepIcon,
|
|
more: MoreIcon,
|
|
tune: TuneIcon,
|
|
accessibility: AccessibilityIcon,
|
|
help: HelpIcon,
|
|
keyboard: KeyboardIcon,
|
|
listed: ListedIcon,
|
|
security: SecurityIcon,
|
|
settings: SettingsIcon,
|
|
star: StarIcon,
|
|
themes: ThemesIcon,
|
|
user: UserIcon,
|
|
copy: CopyIcon,
|
|
download: DownloadIcon,
|
|
info: InfoIcon,
|
|
check: CheckIcon,
|
|
'check-bold': CheckBoldIcon,
|
|
'account-circle': AccountCircleIcon,
|
|
'menu-arrow-down': MenuArrowDownIcon,
|
|
};
|
|
|
|
export type IconType = keyof typeof ICONS;
|
|
|
|
type Props = {
|
|
type: IconType;
|
|
className?: string;
|
|
};
|
|
|
|
export const Icon: FunctionalComponent<Props> = ({ type, className = '' }) => {
|
|
const IconComponent = ICONS[type];
|
|
return <IconComponent className={`sn-icon ${className}`} />;
|
|
};
|
|
|
|
export const IconDirective = toDirective<Props>(Icon, {
|
|
type: '@',
|
|
className: '@',
|
|
});
|